Начало развития RISC-архитектуры
Первая система, которая может быть названа RISC-системой, — суперкомпьютер CDC 6600, который был создан в 1964 году, за десять лет до появления соответствующего термина. CDC 6600 имел RISC-архитектуру всего с двумя режимами адресации (регистр+регистр и регистр+immediate_constant) и 74 кодами команд (тогда как Intel 8086 имел 400 кодов команд). В CDC 6600 было 11 конвейерных устройств арифметической и логической обработки, а также 5 load units и 2 store units. Память была многоблочной, поэтому все устройства загрузки-хранения могли работать одновременно. Базовая тактовая частота/частота выдачи команд была в 10 раз выше, чем время доступа к памяти. Джим Торнтон и Сеймор Крэй, разработчики CDC 6600, создали в нем мощный процессор, позволявший быстро обрабатывать большие объемы цифровых данных. Главный процессор поддерживался 10-ю простыми периферийными процессорами, выполнявшими операции ввода/вывода и другие функции ОС. [1] Позднее появилась шутка, что термин RISC на самом деле расшифровывается как «Really Invented by Seymour Cray» («На самом деле придуман Сеймуром Крэйем»). Еще одна ранняя RISC-машина — миникомпьютер Data General Nova, разработанный в 1968.
Первая попытка создать RISC-процессор на чипе была предпринята в IBM в 1975. Эта работа привела к созданию семейства процессоров IBM 801, которые широко использовались в различных устройствах IBM. 801-ый в конце концов был выпущен в форме чипа под именем ROMP в 1981 году. ROMP расшифровывается как Research OPD(Office Product Division) Micro Processor, то есть Исследовательский Микро Процессор, разработанный в Департаменте офисных разработок. Как следует из названия, процессор был разработан для «мини»-задач, и когда в 1986 IBM выпустила на его базе компьютер IBM RT-PC, он работал не слишком хорошо. Однако, за выпуском 801-ого процессора последовало несколько исследовательских проектов, в результате одного из которых появилась система POWER.
Однако наиболее известные RISC-системы были разработаны в рамках университетских исследовательских програм, финансировавшихся программой DARPA VLSI. Программа VLSI, практически неизвестная даже сегодня, на самом деле поспособствовала большому количеству открытий в области архитектуры чипов, технологий производства и даже компьютерной графики.
Проект RISC в Университете Беркли был начат в 1980 году под руководством Дэвида Паттерсона и Карло Секвина. Исследования базировались на использовании конвейерной обработки и агрессивного использования техники регистрового окна. В обычном процессоре имеется небольшое количество регистров и программа может использовать любой регистр в любое время. В процессоре, использующем технологии регистрового окна, очень большое количество регистров (например, 128), но программы могут использовать ограниченное количество (например, только 8 в каждый момент времени).
Программа, ограниченная лишь 8-ю регистрами для каждой процедуры, может выполнять очень быстрые вызовы процедур: «окно» просто сдвигается к 8-ми регистровому блоку нужной процедуры, а при возврате из процедуры «окно» сдвигается обратно, к регистрам вызвавшей процедуры. (В обычном процессоре большинство процедур при вызове вынуждены сохранять значения некоторых регистров в стеке для того, чтобы пользоваться этими регистрами при исполнении процедуры. При возврате из процедуры значения регистров восстанавливаются из стека).
Проект RISC произвел на свет процессор RISC-I в 1982 году. В нем было всего 44420 транзисторов (для сравнения: в наиболее современных CISC-процессорах того времени было около 100000 транзисторов). RISC-I имел всего 32 инструкции, но превосходил по скорости работы любой одночиповый процессор того времени. Через год, в 1983, был выпущен RISC-II, который состоял из 40760-ти транзисторов, использовал 39 инструкций и работал в 3 раза быстрее RISC-I.
Практически в то же время, в 1981 году, Джон Хеннесси начал аналогичный проект, названный «MIPS Архитектура» в Стэнфордском университете. MIPS практически полностью сфокусировался на конвейерной обработке, попытавшись «выжать всё» из этой технологии. Конвейерная обработка использовалась и в других продуктах, некоторые идеи, реализованные в MIPS, позволили разработанному чипу работать значительно быстрее аналогов. Наиболее важным было требование выполнения любой из инструкций процессора за один такт. Это требование позволило конвейеру работать на гораздо больших скоростях передачи данных и привело к значительному ускорению работы процессора. С другой стороны, исполнение этого требования имело негативный побочный эффект в виде удаления из набора инструкций таких полезных операций, как умножение или деление.
В первые годы попытки развития RISC-архитектуры были хорошо известны, однако оставались в рамках породивших их университетских исследовательских лабораторий. Многие в компьютерной индустрии считали, что преимущества RISC-процессоров не проявятся при использовании в реальных продуктах из-за низкой эффективности использования памяти в составных инструкциях. Однако с 1986 года исследовательские проекты RISC начали выпускать первые работающие продукты.
Последние годы
Как оказалось в начале 1990-х годов, RISC-архитектуры позволяют получить большую производительность, чем CISC, за счет использования суперскалярного и VLIW-подхода, а также за счёт возможности серьезного повышения тактовой частоты DEC Alpha и упрощения кристалла с высвобождением площади под кеш-память, достигающую огромных размеров. Также, RISC-архитектуры позволили сильно снизить энергопотребление процессора за счет уменьшения числа транзисторов.
Первое время RISC-архитектуры с трудом принимались рынком из-за отсутствия программного обеспечения для них. Эта проблема была быстро решена переносом UNIX-подобных операционных систем (SunOS) на RISC-архитектуры.
В настоящее время многие архитектуры процессоров являются RISC-подобными, к примеру, ARM, DEC Alpha, SPARC, AVR, MIPS, POWER и PowerPC. Наиболее широко используемые в настольных компьютерах процессоры архитектуры x86 ранее являлись CISC-процессорами, однако новые процессоры, начиная с Intel486DX, являются CISC-процессорами с RISC-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции x86-процессоров в более простой набор внутренних инструкций RISC.
С переводом внутренней архитектуры x86 на суперскалярную RISC-архитектуру, подавляющее большинство существующих процессоров используют архитектуру RISC.