В 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 Мб.