Опубликован: 18.05.2006 | Уровень: для всех | Доступ: платный | ВУЗ: Ульяновский государственный университет
Лекция 10:

Архитектура RISC-процессоров

< Лекция 9 || Лекция 10: 12 || Лекция 11 >
Аннотация: В этой лекции рассматриваются основные черты RISC-процессоров и характеристики современных RISC-процессоров на примере Alpha 21264 и PA-8000, основные направления развития и области применения RISC-процессоров, а также анализируются черты RISC-архитектуры в семействе IA-32. Цель: познакомить учащихся с историей появления процессоров RISC-архитектуры, с основными чертами RISC-процессоров, с характеристиками современных RISC-процессоров, сформировать умения выделять черты RISC-архитектуры в современных процессорах IA-32.

Основные черты RISC-процессоров

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

Замысел RISC- процессора (Reduced Instruction Set Computer, компьютер с сокращенным набором команд ) родился в результате практических исследований частоты использования команд программистами, проведенных в 70-х годах в США и Англии. Их непосредственный итог - известное "правило 80/20": в 80% кода типичной прикладной программы используется лишь 20% простейших машинных команд из всего доступного набора.

Первый "настоящий" RISC-процессор с 31 командой был создан под руководством Дэвида Паттерсона из Университета Беркли, затем последовал процессор с набором из 39 команд. Они включали в себя 20-50 тыс. транзисторов. Плодами трудов Паттерсона воспользовалась компания Sun Microsystems, разработавшая архитектуру SPARC с 75 командами в конце 70-х годов. В 1981 г. в Станфордском университете стартовал проект MIPS по выпуску RISC-процессора с 39 командами. В итоге была основана корпорация Mips Computer в середине 80-х годов и сконструирован следующий процессор уже с 74 командами.

По данным независимой компании IDC, в 1992 году архитектура SPARC занимала 56% рынка, далее следовали MIPS - 15% и PA-RISC - 12,2%

Примерно в то же время Intel разработала серию 80386, последних "истинных" CISC-процессоров в семействе IA-32. В последний раз повышение производительности было достигнуто только за счет усложнения архитектуры процессора: из 16-разрядной она превратилась в 32-разрядную, дополнительные аппаратные компоненты поддерживали виртуальную память, и добавился целый ряд новых команд.

Основные особенности RISC-процессоров:

  1. Сокращенный набор команд (от 80 до 150 команд).
  2. Большинство команд выполняется за 1 такт.
  3. Большое количество регистров общего назначения.
  4. Наличие жестких многоступенчатых конвейеров.
  5. Все команды имеют простой формат, и используются немногие способы адресации.
  6. Наличие вместительной раздельной кэш-памяти.
  7. Применение оптимизирующих компиляторов, которые анализируют исходный код и частично меняют порядок следования команд.

RISC-процессоры 3-го поколения

Самыми крупными разработчиками RISC-процессоров считаются Sun Microsystems (архитектура SPARC - Ultra SPARC), IBM (многокристальные процессоры Power, однокристальные PowerPC - PowerPC 620), Digital Equipment (Alpha - Alpha 21164), Mips Technologies (семейство Rxx00 -- R 10000), а также Hewlett-Packard (архитектура PA-RISC - PA-8000).

Все RISC-процессоры третьего поколения:

  • являются 64-х разрядными и суперскалярными (запускаются не менее 4-х команд за такт);
  • имеют встроенные конвейерные блоки арифметики с плавающей точкой;
  • имеют многоуровневую кэш-память. Большинство RISC-процессоров кэшируют предварительно дешифрованные команды;
  • изготавливаются по КМОП-технологии с 4 слоями металлизации.

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

Повышение производительности RISC-процессоров достигается за счет повышения тактовой частоты и усложнения схемы кристалла. Представителями первого направления являются процессоры Alpha фирмы DEC, наиболее сложными остаются процессоры компании Hewlett-Packard. Рассмотрим процессоры этих фирм более подробно.

Структура процессоров Alpha: 21064, 21264

Структура процессора Alpha 21064 представлена на рис. 10.1.

Структура процессора Alpha 21064

Рис. 10.1. Структура процессора Alpha 21064

Основные функциональные блоки процессора Alpha 21064:

  • I-cache - кэш команд.
  • IRF - регистровый файл целочисленной арифметики.
  • F-box - устройство арифметики с плавающей точкой.
  • E-box - устройство целочисленной арифметики (7 ступеней конвейера).
  • I-box - командное устройство (управляет кэш команд, выборкой и дешифрацией команд).
  • A-box - устройство управления загрузкой/сохранением данных. Управляет процессом обмена данными м/у IRF, FRF, кэш данных и внешней памятью.
  • Write Buffer - буфер обратной записи.
  • D-cache - КЭШ данных.
  • BIU - интерфейсный блок, с помощью которого подключаются внешняя кэшпамять, размером 128 Кб-8 Мб.

Сравнительные характеристики Alpha 21164 и 21264

Процессор Alpha 21264 отличается значительной новизной по сравнению с предшественником 21164. Он обладает кэш-памятью первого уровня большего объема, дополнительными функциональными блоками, более эффективными средствами предсказания ветвлений, новыми инструкциями обработки видеоданных и широкой шиной.

Alpha 21264 читает до четырех инструкций за один такт и может одновременно исполнять до шести инструкций. Самое большое его отличие от модели 21164 - это способность выполнять команды (впервые для Alpha) с изменением их очередности (Out-of-Order).

Эффективность выполнения Out-of-Order определяется количеством инструкций, которыми может манипулировать ЦП в целях определения оптимального порядка выполнения команд. Чем больше инструкций ЦП может для этого использовать, тем лучше, тем дальше он может заглядывать вперед. Процессоры Intel класса Р6 (Pentium Pro, Pentium II, Xeon) могут одновременно обращаться не менее чем с 40 командами. У других процессоров данный показатель значительно больше: PA-8000 фирмы HP оперирует 56 командами, а процессор Alpha справляется с 80 командами.

Как и большинство RISC-процессоров, Alpha содержит набор из 32 целочисленных и 32 регистров с плавающей запятой, все они имеют разрядность 64 бита. Для повышения эффективности внеочередного выполнения команд процессор 21264 дополнительно к обычному набору регистров снабжен еще 48 целочисленными регистрами и 40 регистрами с плавающей запятой.

Каждый регистр может временно хранить значения текущих команд. Если обрабатывается какая-либо инструкция, нет необходимости перегружать результат в целевой регистр - вместо этого ЦП просто переименовывает временный регистр (Register Renaming).

Подобное переименование регистров есть и в других процессорах. Однако в 21264 реализована уникальная "хитрость" - он имеет задублированный набор целочисленных регистров, каждый из 80 целочисленных регистров дублируется еще раз. Таким образом, на чипе в целом - 160 целочисленных регистров. Это одна из причин, почему, несмотря на сложность выполнения Out-of-Order, допустима высокая частота процессора 21264.

Блоки целочисленных операций в обеих группах идентичны не полностью. Одна из них содержит блок умножения, а вторая - специальную логику для обработки движущихся изображений (MPEG). Для этого набор команд Alpha был дополнен пятью новыми командами. Самая интересная из них - PERR - служит для оценки движения, т.е. выполнения задачи, возникающей как при сжатии, так и декомпрессии MPEG. Команда PERR выполняет работу девяти обычных инструкций. Таким образом, процессор 21264 может декодировать видеопоследовательности MPEG-2, а также DVD-аудиоданные AC-3 в режиме реального времени без использования дополнительных периферийных устройств.

В процессоре 21264, в отличие от его предшественников практически полностью реорганизована иерархия кэш-памяти. Он снабжен одним 64-Кбайт кэшем первого уровня (L1) для инструкций и еще одним 64-Кбайт кэшем первого уровня для данных; оба являются двукратно-ассоциативными. Кэш-память второго уровня (L2) была вынесена за пределы чипа - к ней можно обращаться через 128-бит backside-шину.

Сравнительные характеристики Alpha 21164 и 21264 приведены в табл. 10.1.

Таблица 10.1. Сравнительные характеристики Alpha 21164 и 21264
ЦП Alpha 21164 Alpha 21264
Тактовая частота, МГц 600 600
Кэш L1 Емкость:8(I)+8(D) Емкость: 64(I)+64(D)
Блокируется при числе непопаданий, равном 2 8
Число ФИУ 4 6
Емкость файла 32 (I) 80 (I), 2 копии
Регистров 32 (FP) 72 (FP)
Переименование регистров нет да
Внеочередное выполнение команд нет да
Динамическое предсказание переходов да усовершенствованное
Шина верхнего кэша системная выделенная
Поддержка мультимедиа нет да
Число транзисторов 9,3 млн 15,2 млн
Площадь, мм2 298 302
< Лекция 9 || Лекция 10: 12 || Лекция 11 >
Виктория Монахова
Виктория Монахова
Евгений Коваленко
Евгений Коваленко