andrey

Путь к Файлу: /Организация ЭВМ / CISC и RISC архитектуры / CISC и RISC архитектуры / RISC-процессоры.doc

Ознакомиться или скачать весь учебный материал данного пользователя
Скачиваний:   0
Пользователь:   andrey
Добавлен:   13.01.2015
Размер:   100.5 КБ
СКАЧАТЬ

 

Министерство образования Российской Федерации

 

Хабаровский государственный технический университет

 

 

 

 

 

RISC-процессоры

 

 

 

 

 

 

Методическое пособие к изучению курса

“Микропроцессорные системы”

для студентов специальности 220100

“Вычислительные машины, комплексы, системы и сети”

 

 

 

 

 

 

 

 

 

 

 

 

Хабаровск

2002

 

Быстродействующие микропроцессорные СБИС

с сокращенным набором инструкций.

 

Главная причина появления и широкого распространения RISC-микропроцессоров - это существенное преимущество в быстродействии, достигаемое благодаря данной архитектуре.

Пока нет точного определения, что же такое набор RISC-кристаллов: ни изготовитель, ни заказчики не пришли к единому мнению в этом вопросе. Представители компании Motorola говорят, что они знают на него ответ. По словам- Наттаг RISC-архитектуру характеризуют три фактора: команды, которые выполняются за один такт, четкий набор команд и фиксированная длина слова.

Архитектуры RISC становятся последним криком моды. Концепция компьютера с сокращенным набором команд, которая в свое время появилась как академический эксперимент, сейчас выходит из рамок университетских городков и начинает внедрятся изготовителями средств вычислительной техники как перспективный и недорогой способ сохранения конкурентоспособности. Уже сейчас появляются коммерческие машины, обладающие определенными чертами RISC, а в большинстве научно-исследовательских лабораторий фирм разработчики работают с тем или иным компьютером этого типа. "Либо вы будете иметь машину с архитектурой RISC к концу текущего десятилетия либо вам придется туго", - говорит один из разработчиков первой машины RISC Джон Хеннесс, профессор информатики Стан-фордского университета. Фирма изготовитель компьютеров Hewlett-Packard Со. (HP) (Пало Альто) пошла в этом смысле еще дальше: сейчас она переводит целое семейство своих компьютеров на вариант RISC: шаг подобного масштаба ставит концепцию RISC в разряд совершенно новой самостоятельной технологии, а не просто архитектурного эксперимента. Фирма HP постепенно раскрывает свои планы создания целого семейства компьютеров, реализующих принцип RISC.

Главное достоинство RISC заключается в том, что он позволяет обеспечить высокий технико-экономические показатели (большое быстродействие, выражаемое числом выполняемых команд в секунду) без необходимости платить высокую цену за сокращение длительности цикла машины. Принцип RISC предусматривает отказ от излишних архитектурных сложностей во имя повышения быстродействия благодаря упрощению машинных команд и уменьшения их числа, а также благодаря использованию площади полупроводникового кристалла для размещения регистров памяти вместо схем микропрограммного управления. Тем самым достигается экономия числа машинных циклов, требуемых в противном случае для интерпретации микрокода, и обеспечивается возможность хранить часто используемые программные коды и данные в памяти на кристалле. Большинство команд RISC можно выполнять за один машинный цикл.

Мартин Е. Хопкинс, сотрудник научно-исследовательского центра им. Томаса Дж. Уотса корпорации ШМ, говорит, что высокое быстродействие компьютеров RISC объясняется не сокращенным набором команд, а возможностью регулярного многократного использования содержимого регистров. Поэтому Хопкинс предлагает дать сокращению RISC другую расшифровку: "Компьютер с памятью для многократно используемой информации". О преимуществах простоты говорилось много в самой различной форме, начиная от эпиграмм Генри Д. Торо, в которых звучал его ясный, но излишний совет: "Поступайте проще, проще", и кончая современным грубоватым акронимом KISS (Keep it simple, stupid - He усложняй себе жизнь глупец). Сейчас этот призыв обращен к разработчикам СБИС и подкрепляется тем веским аргументом, разработанный студентами 32-разрядный микропроцессор начал работать "с первой же попытки" и превзошел по производительности серийные модели таких производителей, как 432 фирмы Intel, 68000 компании Motorola и VAX 11/780 фирмы DEC.

Ведущий разработчик этой сверхбольшой интегральной схемы Дэйвид Петтерсон, профессор Калифорнийского университета в Беркли, объясняет ее технические характеристики тем, что в ней используется сокращенный набор простых инструкций. Эта особенность нового однокристального микропроцессора отражена в его названии - RISC (Reduced Instruction Set Computer - Компьютер с сокращенным набором инструкций). Петтерсон противопоставляет созданный им компьютер машинам, которые он называет CISC (Complex Instruction Set Computer - компьютер с набором сложных инструкций). Именно последние составляют основную долю машин, выпускаемых промышленностью.

В микропроцессоре RISC используется 31 команда. Проектом предусмотрено, что все они выполняются за один такт и имеют одинаковую длину. К ЗУ обращаются только команды загрузки и записи в память. Остальные команды взаимодействуют с регистрами, размещенными на кристалле. Производительность центрального процессора определяется не только его тактовой частотой, но также числом выполняемых команд и эффективностью их выполнения. Разработчики компиляторов, которым приходится решать проблему согласования семантических параметров языка программирования высокого уровня и машинного языка, могут столкнуться с трудностями в реализации сложных инструкции, так как для их выполнения требуется большое число машинных команд.

Принцип работы процессора RISC заключается в отказе от использования сложных команд и имеет целью достижения максимальной эффективности центрального процессора благодаря формированию оптимизированных последовательностей команд с помощью компилятора.

Работавшая под руководством Петтерссона группа студентов Университета в Беркли, не имела никакого опыта разработки, не ставила перед собой цель создать очень компактную и быстродействующую ИС - использовались 4-мкм проектные технологические нормы. Программа компоновки схемы, также разработанная в Университете в Беркли, намерено не выходит за рамки конструкции типа Manhattan (только горизонтальные и вертикальные линии). В результате размеры кристалла получились весьма большими -10.3X8.9мм. Петтерссон объясняет быстрый успех в реализации своего проекта простотой архитектуры RISC, которая позволила обеспечить высокую степень регулярности его структуры. Регулярность компоновки кристалла определяют отношением числа транзисторов, которые должны быть заново разработаны, к числу фактически используемых транзисторов.

Для конструкции RISC пришлось специально разрабатывать только один транзистор из 25, т.е. примерно 1800 транзисторов из общего числа 45000: остальные удалось полностью скопировать. Для повышения производительности большое значение имело то, что, поскольку не понадобилось использовать большую секцию управления, значительную часть площади кристалла удалось выделить для размещения 78 32-разрядных регистров, которые позволяют освободить центральный процессор от необходимости производить коммутацию данных на ввод в память и вывод из нее. Блок регистров еще более эффективен благодаря наложению логических операций регистров с целью сведения к минимуму пересылок данных при вызовах процедур. Некоторые разработчики заявляют, что наложение операций регистров, которое само по себе присуще не только концепции RISC, является самым важным фактором, обусловившим его высокую производительность, Петтерсон утверждает, что при использовании набора сложных команд и требуемого в этом случае управляющего ПЗУ на кристалле не осталось бы места для размещения регистров. Не смотря на то что это замечание является правильным., в некоторых кругах такую точку зрения считают научно не обоснованной. Паттерссон обратился к другой теме работы в области вычислительной техники: под его руководством аспирантам этого года удалось разместить объектно ориентированный язык программирования под названием Smalltalk на кристалле RISC. Первые результаты показывают, что этот микрокомпьютер работает быстрее миникомпыотера Dorado фирмы Xerox Co., построенного на ЭСЛ схемах и стоящего 120 тыс. долларов: последний считался наиболее мощной машиной с языком Smalltalk.

Структура трехкристального RISC микропроцессора третьего поколения семейства 88000 фирмы Motorola.

Архитектура микропроцессоров семейства 88000 предполагает размещение целочисленного блока и блока с плавающей точкой на кристалле центрального процессора 88100 и комбинированные устройства управления памятью с кеш-памятями данных и команд.

Комплект МС88000 содержит кристалл процессора и два идентичных кристалла кеш-памяти, один из которых предназначен для хранения данных , а другой - команд. Процессор - это прибор 88100 , построенный на базе небольшого эффективного регистрового блока с табличным распределением регистров (по методу SCOREBOARD-'табло') и содержащий вычислительные блоки для выполнения как целочисленных операций , так и операций с плавающей точкой . При работе на тактовой частоте 20 МГц его номинальное быстродействие , по данным фирмы MOTOROLA , в миллионах команд в секунду эквивалентно суммарному быстродествию семнадцати компьютеров VAX-11/780 корпорации DEC, а при измерении по методу Драйстоуна составляет 34000 Оп/с, что делает его одним из наиболее быстродействующих существующих RISC-процессоров. Кристалл кеш-памяти 88200 выпускается с встроенным устройством управления памятью (УУП).

Главное преимущество архитектуры 88000 - способность  параллельного выполнения многих операций :

Блок данных , размещаемый на кристалле процессора , позволяет осуществлять обмен данными между кеш-памятью данных и регистровым блоком, а блок команд - обмениваться командами между кеш-памятью команд и регистровым блоком . Одновременно устройство для обработки целых чисел и полей битов будет выполнять команды параллельно с операциями , происходящими в блоке с плавающей точкой , состоящем из двух подблоков . Эти возможности параллельной работы , предусмотренные в комплекте кристаллов . позволяют создавать два особенно важных вида систем , для которых , как заявляет фирма MOTOROLA , не пригоден ни один другой RISC -процессор; речь идет о многопроцессорных и отказоустойчивых системах. Основой архитектуры нового семейства 88000 является регистровый блок процессора: (ключевое отличие от других RISC-архитектур)

Очень важное значение имеет выбор размера регистрового блока. Он должен быть достаточно большим , чтобы удовлетворять нужды компьютера, но не настолько большим , чтобы его среднее время реакции стало слишком длительным . необходимость создания хорошего сверхскоростного регистрового блока в этом случае была настоятельной , поскольку данный блок должен обслуживать многие функциональные устройства , работающие параллельно. Разработчики решили создать небольшой эффективный регистровый блок применяя для его построения принципы суперкомпьютерной архитектуры, аналогичные принятым в машинах компании CRAY. Процессор 88100 содержит регистровый блок из тридцати двух 32-битных регистров со встроенной схемой табличного распределения регистров, которая следит за состоянием регистров, так что программистам не приходится об этом беспокоится, когда собирается вся необходимая информация , регистровый блок дает сигнал к началу выполнения операций различных функциональных устройств. Оригинальная внутренняя шина кристалла-кремниевая шина:

Соединяет регистровый блок с параллельно работающими специальными функциональными устройствами, каждое специальное функциональное устройство процессора 88100 имеет свой адрес на шине, что касается ввода-вывода, то разработчики выбрали полную 'гарвардскую' архитектуру. Это означает, что они целиком разделили устройство ввода - вывода для данных и команд, причем каждое устройство в\в реализовали с полным 32-бит трактом для обработки как адресов, так и данных.

Разработчики первых RISC-микропроцессоров игнорировали команды с плавающей точкой , поскольку их нельзя выполнять за один такт . Росс и его группа разработчиков решили, что команды с плавающей точкой и тем самым блок для выполнения операции с плавающей точкой должны принадлежать тракту обработки данных RISC-машины, поэтому они создали параллельный блок с плавающей точкой, названный ими специальным функциональным устройством 1, состоящим из двух частей :умножителя и сумматора. Блок с плавающей точкой - неотъемлемая часть структуры RISC процессора, обладающая равными возможностями доступа к регистровому блоку, кремниевой шине и к блокам данных и команд, в каждом такте может начинаться выполнение двух операций с плавающей точкой, одного сложения и одного умножения, здесь не приходится терять в скорости из-за необходимости обращаться к внекристальным средствам для выполнения операций с плавающей точкой.

Архитектура семейства 88000 предусматривает необычайные возможности расширения, например, разработчики из фирмы MOTOROLA зарезервировали 256 кодов операций для каждого специального функционального устройств. А также выделили дополнительные адреса кремниевой шины для шести будущих специальных устройств - с номерами от 2 до 7, заказчики могут сами вводить дополнительные специальные функциональные устройства; для этого они должны разработать устройство со своими командами, а фирма MOTOROLA реализует его.

Процессор 88100 - это одна половина RISC - проекта фирмы MOTOROLA ; вторая, не менее важная половина - это подсистема кеш-памяти 88200 с встроенным УУП. Данная подсистема предназначена для работы с четырехпортовой 'гарвардской' архитектурой процессора с 32-бит портами адресов и данных блока данных, который подключается к банку, содержащему до четырех подсистем кеш-памяти УУП. Кеш-память 88200 выполнена по множественно(модульно)-ассоциативному (SET-ASSOCIATIVE) принципу, а не по принципу прямого отображения, в первом случае каждому адресу основной памяти могут соответствовать две или более ячеек кеш-памяти, а во втором случае каждой ячейке основной памяти назначается конкретный адрес кеш-памяти.

Множественно-ассоциативный принцип управления кеш-памятью существенно уменьшает вероятность "пробуксовки" возникающей в кеш-памяти прямого отображения, когда два последовательно используемых адреса сталкиваются в этой кеш-памяти.

Реализованная в кристалле 88200 множественно-ассоциативная организация кеш-памяти обеспечивает отображение каждой ячейки основной памяти на четыре ячейки кеш-памяти, что способствует уменьшению вероятности столкновений между адресами основной памяти в кеш-памяти, кристалл 88200 является также физической кеш-памятью - в противоположность логической кеш-памяти, которую реализуют некоторые пользователи ЫЗСмикропроцессоров, физическая кеш-память отличается от логической тем, что ее не приходится полностью очищать при переключениях с задачи на задачу, как логическую.

У1111 осуществляет преобразование адресов, причем это может делаться одновременно с поиском данных в кеш-памяти, часть логического адреса передается в кеш-память, когда полный адрес поступает в ууп. если имеет место попадание для кеш-памяти (искомые данные находятся здесь), кеш-память выдает всех "кандидатов" из четырехмодульной ассоциации, однако, поскольку использовалась только часть логического адреса, пока еще неизвестно, какое из четырех слов запрашивается, в этот момент преобразованный физический адрес из ууп также оказывается готовым, так как он вычисляется параллельно, теперь, поскольку все четыре слова кеш-памяти найдены и представленны одновременно, нужное слово можно быстро выбрать. Еще один параллельный процесс - это текущее управление когерентностью кеш-памяти, на каждом кристалле 88200 размещается специализированный процессор, так называемый контролер шины памяти, который следит за когерентностью кеш-памяти, этот контролер непрерывно наблюдает за тем, какие изменения производятся в ячейках основной памяти и во всех кеш-памятях, гарантирует когерентность своей собственной кеш-памяти - текущие правильные слова сохраняются, а устаревшие и недействительные значения вычищаются, весь набор кристаллов рассчитан на параллельную работу. Фирма MOTOROLA заявляет, что одновременно могут выполняться одиннадцать операций, как правило, подсистема кеш-памяти будет осуществлять управление когерентностью, проверять наличие и отсутствие нужных слоев в кеш-памяти и производить преобразование адресов, в то же самое время блок данных и блок команд, размещаемые на кристалле процессора, будут взаимодействовать с регистровым блоком. По-видимому у фирмы Motorola имеется еще дополнительные возможности повышения скоростных характеристик RISC-процессоров. Кристаллы, изготавливаемые по 1.5 мкм КМОП-технологии с двухслойной металлизацией и двумя слоями поликремния, могут быть переведены на 0.8 мкм технологию независимо от архитектуры, которая как указывает Браун, оптимизирована для работы с операционной системой UNIX.

Процессоры семейства Power PC

На сегодняшний день семейство PowerPC реально представлено четырьмя процессорами - PowerPC 601,603,604 и 620 (плюс имеющим упрощенную архитектуру 602-м, предназначенным для использования в контролерах различных устройств). Процессоры были представлены в 1992-1994 годах как результат работ фирм IBM, Motorola и Apple. Цель, объеденившая усилия трех мощных фирм, состояла в разработке недорогого и быстродействующего процессора для широкого спектра вычислительных устройств

- от персонального компьютера-блокнота и недорогих настольных систем до серверов. Основой архитектуры микропроцессоров семейства PowerPC является архитектура RISC-микропроцессора Power фирмы ЮМ, применяющегося в рабочей станции RS\6000 этой же фирмы. В Power PC сохранены свойства архитектуры POWER (Performance Optimized With Enhanced RISC), но усовершенствован процесс параллельного выполнения команд, предусмотрены возможности применения современных технологий программирования.

Рассмотрим элементы архитектуры и принципы функционирования процессоров семейства на примере Power PC 601. Приводимые в тексте характеристики и элементы архитектуры, относящиеся к другим представителям семейства, особо оговариваются.

Общая характеристика процессора

Наиболее   ответственные операции выполняются высокоскоростными, но дорогими чипами на основе арсенида галлия, менее ответственные - ЭСЛ, далее - ТТЛШ и т.д. таким образом достигается баланс между высокой производительностью низкой ценой.

Второй признак шкалируемости - возможность увеличения мощности систем путем дополнения существующей системы различными расширениями или замены одной ее части другой, совместимой, но имеющей лучшие характеристики.

Процессор Power PC 601 имеет 32-разрядную архитектуру, которая позволяет обрабатывать 8-, 16- и 32-разрядные целые числа, а также 32-и 64- разрядные числа с плавающей запятой. Размер шины данных процессора - 64 разряда, шины адреса - 32 разряда. Первоначально процессор мог работать на тактовых частотах 55,66,80 и 100 МГц и был выполнен на

0.64-микронной 3.6 вольтовой технологии на 2.8 млн. транзисторов и размещался на кристалле размером 11x11 мм. Сейчас 601-е переведены на

0.5-микронную технологию, которая позволила производить процессоры работающие на тактовых частотах 75,90 и 120 МГц. В схемотехническом отношении он полностью совместим с TTL-приборами и на частоте 66 МГц потребляет 9 Вт.

603-й процессор работает на частоте 80 МГц (603 Е - на 100 МГц), выполнен на 1.6 млн. транзисторов и размещен на кристалле, площадь которого на 85 кв. мм меньше, чем 601-го, напряжение питания снижено до

3.3В. Максимальная тактовая частота работы 604-го - 150 МГц, при построении процессора применена 3.3-вольтовая CMOS-технология с разрешением 0.5 мкм. Готовится к выходу к выходу семейство 604е с частотой 166-200 МГц и выше, построенное на 0.35 миллиметровой технологии. Их быстродействие по SPECint и SPECip от 225.

Структура процессора семейства 602, 603.

Рассмотрим общую структуру процессора PowerPC, представленную на рис. 1. Здесь и далее в тексте будем использовать названия аппаратных ресурсов, в том числе и регистров, принятые в [1, 2]. В структуре процессора PowerPC имеются три исполнительных блока: Ш (Integer Unit), FPU (Floatingpoint Unit) и BPU (Branch Processing Unit). Два из них - Ш и FPU - предназначены для обработки целых чисел и чисел с плавающей запятой, а третий - BPU - выполняет передачи управления. Блоки работают параллельно, обеспечивая одновременное выполнение трех команд. В основу работы каждого из блоков каждого положен принцип конвейра, именно поэтому процессор PowerPC и его архитектуру называют суперскалярными.

Важной характеристикой, в значительной мере влияющей на быстродействие любого процессора с RISC-архитектурой, является количество регистров в его составе. Блок обработки целых чисел содержит 32 регистра общего назначения - GPRs (General-Purpose Registers), длиной в 32 разряда каждый. Второй обрабатывающий блок имеет 32, 64-разрядные регистры с плавающей запятой - FPRs (Floatingpoint Registers).

Блок команд (Instruction Unit) состоит из очереди команд IQ (Instruction Queue) и блока BPU. Он обеспечивает централизованное управление движением команд в исполнительные блоки, буферирование их и блокировку конвейра. BPU ищет команду перехода в нижней половине очереди, состоящей из элементов QO...Q3, и предсказывает адрес следующей выполняемой за ней команды до вычисления значения признака перехода. Выбранная ветвь программной последовательности выполняется одновременно с вычислением признака вплоть до определения истинного направления движения. Если одна из команд последовательности должна выполнится в BPU, она только декодируется и не выходит из блока команд. Если для ее выполнения требуются ресурсы FPU или Ш, то она направляется в соответствующий исполнительный блок и выполняется до стадии записи результата. Запись осуществляется, если переход выбран верный. В этом случае обработка команд продолжается без прерываний по предсказанной ветви. Если выбор ветви ошибочен, очередь считается недействительной и формируется заново из команд правильновыбранной последовательности.

Все команды PowerPC кодируются одним словом, то есть 32 разрядами. Очередь содержит 8 команд и может быть заполнена в результате однократного обращения к кэш-памяти. Верхняя половина очереди (Q4...Q7) обеспечивает буферирование команд для снижения частоты доступа к кэш-памяти. Команды обработки целых чисел и перехода направляются в соответствующие блоки обработки из элементов QO...Q3, при этом QO Обеспечивает внутреннее декодирование для Ш.

Взаимодействие процессора с устройствами, подключаемыми к его магистрали, происходит через кэш-память и очереди чтения (Read Queue) и записи (Write Queue), входящие в блок памяти (Memory Uinit). В 8-канальном ассоциативном кэш на 32 Кбайта хранятся активные в текущий момент команды и данные. Обращение к кэш происходит по фиксированным адресам, которые являются результатом преобразования логических адресов блоком управления памятью MMU (Memory Management Unit). Очереди служат для временного хранения данных, перемещаемых между внешним интерфейсом и кэшпамятью.

MMU преобразует логический адрес в физический, поддерживая страничную организацию памяти, а также представление памяти как системы сегментов и блоков. При этом длина страницы, как обычно, фиксированна и равна 4 Кбайтам, длина сегмента также фиксирование и равна 256 Мбайтам, блок может быть любой длины в диапазоне от 128 Кбайт до 8 Мбайт, Основные функции MMU реализуются аппаратными средствами трех типов: UTLB (Unified Translaition Lookaside Buffer), ITLB (Instraction Translaition Lookaside Buffer) и ВАТ (Block Address Translation).

Процессор может быть включен в мультипроцессорную систему и взаимодействовать со многими задатчиками из системной магистрали с помощью центрального внешнего арбитра. Логика "подслушивания" системной магистрали позволяет поддерживать согласованность информации в кэш- и системной памяти.

РЕГИСТРЫ. Процессоры PowerPC могут работать в двух режимах -пользовательском и супервизорном, при этом им соответствуют два уровня привилегий - низкий и высокий. В первом выполняются прикладные программы операционной системы. Это разделение позволяет операционной системе управлять прикладными программами, например реализовывать механизм вертуальной памяти, защиту своих программ и критических ресурсов системы от ошибок пользователя. Команды управления состоянием процессора, механизмом преобразования адреса могут выполнятся только на супервизорном уровне.

Рассмотрим назначение и выполняемые функции основных регистров (рис. 2).

К первой группе регистров, то есть тем, которые доступны из прикладных программ, относятся: GPRs (General-Purpose Registers), FPRs (Floatingpoint Registers), FPSCR (Floating Point Status and Control Registers), SPRs (Special-Purpose Registers).

GPRs -32 регистра общего назначения, все команды обработки целых используют их для размещения операндов и результатов.

FPRs - 32 регистра для размещения операндов и результатов команд обработки чисел с плавающей запятой, могут содержать данные одинарной и двойной точности.

CR - регистр с восемью 4-разрядными полями, в которых отражаются некоторые признаки, свойства результатов арифметических и логических команд над целыми и числами с плавающей запятой (например, знак, равенство 0), а также команд пересылки, сравнения; используется при выполнении переходов.

FPSCR - регистр состояния и управления операциями с плавающей запятой, в нем фиксируются особенности выполнения, а также тип результата     этих     операций,     содержатся     разряды    управления округлением.

SPRs - группа из шести специальных регистров. Рассмотрим три из них: LR (Link Register) может быть применен для хранения адреса перехода и использован в специальной команде, а также для хранения адреса возврата после команды перехода; CTR (Count Register) -содержимое регистра уменьшается на единицу при выполнении некоторых команд перехода; XER (Integer Exeption Register) - содержит разряды переноса, переполнения и два специальных поля.

Разрядность всех регистров группы - 32, кроме FPRs в которых содержится по 64 разряда.

Регистры второй группы доступны из программ супервизорного уровня. К ним относят MSR (Machine State Register), SRs (Segment Regesters) и SPRs; все регистры группы - 32-разрядные.

MSR определяет состояние процессора, которое запоминается при исключении и восстанавливается после их обработки. SRs -16 регистров для поддержки механизма управления памяти.

SPRs - регистры, поддерживающие систему прерываний, страничное преобразование логического адреса в физический, блочное представление памяти, и другие регистры. Обращение к некоторым из них выполняется по умолчанию как часть процесса выполнения команды. С помощью специальных команд все регистры группы программно доступны.

Система команд и режимы адресации

Все команды PowerPC кодируются 12-разрядными словами, при этом

форматы однотипных команд совпадают. Это обеспечивает эффективное декодирование, выполняемое одновременно с выборкой операндов. Фиксированная длина и одинаковый формат команды значительно упрощают их выполнение в конвейерном режиме. Систему команд процессоров PowerPC делят на группы, включающие команды:

* обработки целых:

-арифметические,

- сравнения,

- логические,

-сдвига;

* обработки чисел с плавающей запятой:

- арифметические,

- комбинированные умножение-сложение,

- округления и преобразования,

-сравнения,

- пересылки в/из FPCSCR;

* загрузки/хранения:

- загрузки/хранения целых

- загрузки/хранения блока целых данных,

- загрузки/хранения чисел с плавающей запятой,

- пересылки чисел с плавающей запятой,

- синхронизация обращений к памяти;

* передачи управления:

- перехода и прерывания,

- логических операций над содержимым CR;

* управления процессором;

- пересылки в/из SPRs,

- пересылки в/из MSR;

* управления памятью:

- супервизорного управления кэш,

- пользовательского управления кэш,

- модификации сегменттного регистра,

- управления TLB,

Команды обработки целых оперируют с байтами, полусловами и словами. Команды обработки чисел с плавающей запятой оперируют операндами одинарной (одно слово) и двойной точности (одно двойное слово). В архитектуре PowerPC команды выравнены по границе слова. Предусмотрены загрузка и хранение байта, полуслова и слова операциями обмена между памятью и 32 регистрами из группы GPRs. Предусмотрены также загрузка и хранение слов двойных слов операциями обмена между памятью и регистрами из группы FPRs.

Вычислительные команды не модифицируют память. Для использования в вычислениях операнда из памяти и его модификации он должен быть предварительно загружен в регистр, модифицирован и затем перезаписан в нужную ячейку определенными командами.

Выполнение команд процессором PowerPC может быть прервано возникновением исключения, вызванного или выполнением какой-то команды, или появлением внешнего асинхронного события. Оба вида исключений могут вызвать один из многих компонентов системного ПО.

В архитектуре PowerPC применены два простых режима адресации памяти. Для их рассмотрения вводится понятие эффективного адреса. Эффективным адресом (ЕА) называют 32-разрядный адрес, вычисляемый процессором при обращении к памяти за данными, при выполнении команды перехода или при выборке следующей по порядку команды.

Первый режим называют косвенной регистровой адресацией с индексированием из кода команды, при этом

EA=(rA|0)+offset

второй - косвенной регистровой с индексированием из регистра в этом случае

ЕА=(гА|0)+rВ

здесь гВ и гА|0 - содержимое определенного регистра из группы GPRs или значение 0; offset - целое число из кода команды, также может быть равно 0.

Эти простые режимы адресации позволяют эффективно формировать адрес для обращений к памяти. Вычисление адреса может быть выполнено за один цикл, при этом используется 32-разрядная двоичная беззнаковая арифметикл и перенос из старшего разряда игнорируется.

Управление памятью

MMU имеет два источника логического адреса, подлежащего преобразованию в физический. Адрес команды при последовательной выборке и при выполнении команд передачи управления формирует блок команд, а адрес для доступа к данным формирует блок обработки целых чисел.

Старшие разряды логического (эффективного) адреса преобразуются в разряды физического адреса. Младшие разряды адреса без изменений направляются во внутренний кэш, где они формируют индекс в пространстве тэгов 8-кнальной ассоциативной памяти. Старшие разряды физического адреса сравниваются с выбранным тэгом. При некэшируемых обращениях или кэпшромахах непреобразованные младшие разряды адреса подключаются к преобразованным старшим и результирующий 32-разрядный код адреса используется блоком памяти и системным интерфейсом для обращения к системной памяти.

Блок управления памятью реализует защиту в соответствии с уровнями привилегий и типом запроса - запись или чтение.

При выборке команды вначале просматривается 4-элементный ITLB с целью получения ее физического адреса. Промахи при обращении в ITLB за командой и все обращения за данными приводят к просмотру UTLB и ВАТ. В большинстве случаев физический адрес находится в одном из TLB и оказывается доступным для кэш-памяти без выполнения преобразования. В случаях промахов во всех TLB процессор автоматически просматривает таблицы (например, таблицу страниц) в памяти, используя информацию в одном из SPRs супервизорного уровня и в соответствующем сегментном регистре.

Кэш-подсистема памяти

На кристалле процессора построен 8-канальный ассоциативный смешанный (для команд и данных) кэш емкостью 52 Кбайта. Линия кэш, содержащая 64 байта, как показано на рис. 3. представлена двумя секторами по восемь слов, каждый из которых независимо контролирует шину адреса, загружается, выгружается, принимает статус недостоверности. Кэш физически адресуем и может работать в режимах обратной и сквозной записи. Процессор позволяет управлять способом записи и поддержкой соответствия информации, хранящейся в кэш, информации в памяти. Используется LRU-алгоритм замещения.

Как видно из рис. 1, кэш обменивается с блоком команд и блоком загрузки/хранения восемью словами. Окружающая электроника отбирает, формирует и направляет требуемую информацию в требуемый блок. Запись в кэш выполняется побайтно.

Блок команд сообщает кэш-памяти адрес следующей выбираемой команды. В случае попадания кэш возвращает требуемую команду и столько следующих за ней, сколько может быть размещено в 8-словной очереди команд, вплоть до конца сектора кэш. Если очередь пуста, восемь слов (полный сектор) одновременно могут быть загружены в очередь.

Поле тэгов кэш-памяти имеет адресный вход, обслуживающий выборку команд и обращение на загрузку/хранение, и вход для слежения за обменом в магистрали. Поэтому "подслушивание" магистрали не требует дополнительных циклов, пока не случится кэш-попадание, при котором необходимо изменить статус хранящейся в кэш-памяти информации.

Каждая линия состоит из двух секторов, четырех разрядов состояния (по два на сектор), нескольких разрядов управления замещением и адресного тэга. Два разряда состояния реализуют MESI (modifed-exclusiv-shared-invalid)- протокол для согласования кэш в мультипроцессорной (или многокэшевой) системе.

Очередь чтения-записи (Memory Unit)

Процессор имеет очереди чтения и записи для временного хранения данных, перемещаемых между подключаемыми к магистрали устройствами и внутренней кэш-памятью процессора. Это данные команд загрузки/хранения при кэш-промахе, читаемые и записываемые данные для поддержки соответствия (когерентности) информации в основной и кэш-памяти, а также данные, используемые при обращении к таблицам и в других операциях. Рассматриваемое устройство используется в основном в операциях с адресами и в командах загрузки/хранения при кэш-промахе. Очередь чтения состоит из двух элементов, очередь записи - из трех элементов. Каждый элемент очереди записи может содержать 8 слов - один сектор данных. Один элемент очереди записи, предназначен для записи в системную память модифицированного сектора кэш-памяти при обращении в него со стороны другого процессора.

Остальные два элемента очереди записи используются в операциях хранения и для обратной записи модифицированных секторов; это значит, что если кэш полон, то один из секторов в соответствии с LRU-алгоритмом загружается в очередь записи и оттуда в системную память. Поэтому для поддержания когерентности памяти элементы очереди записи сравниваются с адресами "подслушивания" так же, как тэги кэш. Если произошло попадание в элемент очереди записи "при подслушивании", данные сохраняются в системной памяти до загрузки их задатчиком в свой кэш. Команды загрузки и хранения считаются выполненными,   если  выполнено   соответствующее  преобразование адреса.

Особенности архитектуры процессора PowerPC 604

Остановимся на основных элементах архитектуры процессора PowerPC 604, отличающих его от предшественников, и более подробно - на измене ниях и дополнениях в структуре.

Процессор имеет шесть исполнительных блоков, которые могут работать параллельно. Это прежде всего уже известные FPU и BPU. Отдельный блок LSU (Load/Store Unit) применен для выполнения команд загрузки/хранения. Для обработки целых чисел в структуре выделены три в значительной степени независимые части: два блока SCIU (Single-Cycle mtegr Units) - для выполнения операций, требующих одного такта (например, для сложения), и блок МСШ (Multiple-Cycle Integer Units) - для операций, требующих многих тактов (например, для операций умножения, деления).

Работа всех исполнительных блоков строится на общих принципах. Для уменьшения блокировок конвейера в каждом из блоков предусмотрены специальные аппаратные средства Reservation Station. В этом структурном элементе временно хранятся команды, диспетчированные в данный исполнительный блок, но для выполнения которых отсутствуют операнды-источники. Каждому исполнительному блоку соответствуют два элемента Reservation Station. Они же служат и для сбора ожидаемых командой операндов. Источников операндов несколько. В случае SCIU, например, операнд может быть получен из регистра группы GPRs или Rename Buffers, или шин результатов (Result Buses). Для правильного выполнения нескольких возникших одновременно запросов на некоторый программно доступный регистр применены дополнительные регистры, называемые Rename Buffers. Они служат для временного хранения результатов команд до момента разрешения записи их в требуемый регистр. Разрешение поступает от структурного элемента процессора, именуемого Completion Unit, ответственного за правильное завершение выполнения команд. Двенадцать rename-регистров предназначены для GPRs, восемь - для FPRs и восемь - для регистра условий CR.

Теперь несколько слов об элементах структуры некоторых исполнительных блоков. В аппаратные средства каждого SCIU входят три части: быстрый сумматор/компаратор, часть для выполнения логических операций и часть для выполнения сдвигов. Все операции выполняются за один такт. В каждый данный момент только одна из указанных частей SCIU может выполнять команду.

Блок МСШ содержит устройство умножения/деления целых 32-разрядных чисел. Одновременно с командами умножения и деления он может выполнять команды чтения и записи в специальные регистры. LSU пересылает данные между кэш-памятью данных и другими исполнительными блоками, используя шину результатов. Рассматриваемый блок также формирует адреса при передачах в/из системной памяти, поддерживает выполнение команд управления кэшпамятью.

Обратимся к основным структурным элементам процессора, предназначенным для управления системной памятью и организации взаимодействия с ней. Процессор имеет два MMU-блока: один - для команд, другой - для данных. В его составе два 4-канальных ассоциативных модуля кэш-памяти

- для команд и данных, емкостью в 16 Кбайт каждый. Процессор обеспечивает поддержку преобразования адресов виртуальной памяти для страниц фиксированной длины и блоков переменной длины. Операции преобразования адресов выполняются с помощью двух 2-канальных TLB на 128 элементов каждый. Так же как и в случае с кэшпамятью, один используется для преобразования адресов команд, а другой - для данных. Все TLB и блоки кэш-памяти используют LRU-алгоритмы замещения.

Итак, на примере микропроцессоров семейства PowerPC мы рассмотрели вариант практической реализации современных концепций архитектуры.

Наверх страницы

Внимание! Не забудьте ознакомиться с остальными документами данного пользователя!

Соседние файлы в текущем каталоге:

    На сайте уже 21970 файлов общим размером 9.9 ГБ.

    Наш сайт представляет собой Сервис, где студенты самых различных специальностей могут делиться своей учебой. Для удобства организован онлайн просмотр содержимого самых разных форматов файлов с возможностью их скачивания. У нас можно найти курсовые и лабораторные работы, дипломные работы и диссертации, лекции и шпаргалки, учебники, чертежи, инструкции, пособия и методички - можно найти любые учебные материалы. Наш полезный сервис предназначен прежде всего для помощи студентам в учёбе, ведь разобраться с любым предметом всегда быстрее когда можно посмотреть примеры, ознакомится более углубленно по той или иной теме. Все материалы на сайте представлены для ознакомления и загружены самими пользователями. Учитесь с нами, учитесь на пятерки и становитесь самыми грамотными специалистами своей профессии.

    Не нашли нужный документ? Воспользуйтесь поиском по содержимому всех файлов сайта:



    Каждый день, проснувшись по утру, заходи на obmendoc.ru

    Товарищ, не ленись - делись файлами и новому учись!

    Яндекс.Метрика