Организация вычислительных систем

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

Показывать лекцию целиком

Основные черты 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-процессоров:

  • Сокращенный набор команд (от 80 до 150 команд).
  • Большинство команд выполняется за 1 такт.
  • Большое количество регистров общего назначения.
  • Наличие жестких многоступенчатых конвейеров.
  • Все команды имеют простой формат, и используются немногие способы адресации.
  • Наличие вместительной раздельной кэш-памяти.
  • Применение оптимизирующих компиляторов, которые анализируют исходный код и частично меняют порядок следования команд.
  • 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.

    (рис 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.

    Сравнительные характеристики 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

    Процессоры PA-RISC компании Hewlett-Packard

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

    Высокая производительность PA-8000 во многом определяется наличием большого набора функциональных устройств. В состав PA-8000 входят 10 исполнительных устройств: два арифметико-логических устройства (АЛУ) для выполнения целочисленных операций, два устройства для выполнения операций сдвига/слияния данных, два устройства для выполнения умножения/сложения чисел с плавающей точкой, два устройства деления/вычисления квадратного корня и два устройства выполнения операций загрузки/записи.

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

    Кристалл может анализировать все 56 командных строк одновременно и выдавать в каждом такте по 4 готовых для выполнения команды в функциональные устройства. Это позволяет процессору автоматически выявлять параллелизм уровня выполнения команд.

    Суперскалярный процессор PA-8000 обеспечивает полный набор средств выполнения 64-битовых операций, включая адресную арифметику, а также арифметику с фиксированной и плавающей точкой. При этом кристалл полностью сохраняет совместимость с 32-битовыми приложениями и с предыдущими и будущими реализациями PA-RISC. Это первый процессор, в котором реализована 64-битовая архитектура PA-RISC.

    Пиковая производительность RISC-процессоров

    Пиковая производительность RISC - процессоров представлена в табл. 10.2.

    Пиковая производительность RISC - процессоров
    Микропроцессор Частота, МГц Производительность, MFLOPS
    DEC Alpha 21164 700 1400
    DEC Alpha 21264 800 1600
    HP PA-8000 180 720
    HP PA-8200 236 944
    HP PA-8500 400 1600
    SGI/MIPS R10000 250 500
    SGI/MIPS R12000 300 600
    Sun Ultra SPARC II 300 600
    Sun Ultra SPARC III 600 1200

    Области применения RISC-процессоров

    Современные RISC-процессоры находят применение как:

  • рабочие станции высшего ценового класса (12-15 тысяч долларов). Работают под ОС VMS, Unix;
  • персональные рабочие станции (3-7 тыс. $). ОС: Windows NT, Solaris;
  • серверы;
  • RISC ПК.
  • Вопросы для самоконтроля

  • С чем связано появление RISC-процессоров?
  • Основные особенности RISC-процессоров.
  • Назовите фирмы-разработчики RISC процессоров.
  • Архитектурные особенности процессоров Alpha.
  • Архитектурные особенности процессора PA-8000.
  • Области применения RISC-процессоров.
  • Вернуться к учебному плану