Системы RISC и CISC

 

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

В компании IBM этой тенденции противостояла группа разработчиков во главе с Джоном Коком (John Cocke); они попытались воплотить идеи Сеймура Крея, создав экспериментальный высокоэффективный мини-компьютер 801. Хо­тя компания IBM не занималась сбытом этой машины, а результаты экспери­мента были опубликованы только через несколько лет [170], весть быстро раз­неслась по свету, и другие производители тоже занялись разработкой подобных архитектур.

В 1980 году группа разработчиков в университете Беркли во главе с Дэвидом Паттерсоном (David Patterson) и Карло Секвином (Carlo Sequin) начала разра­ботку не ориентированных на интерпретацию процессоров VLSI [161, 164]. Для обозначения этого понятия они придумали термин RISC, а новый процессор назвали RISC I, вслед за которым вскоре был выпущен RISC II. Немного позже, в 1981 году, Джон Хеннеси (John Hennesy) в Стенфорде разработал и выпустил другую микросхему, которую он назвал MIPS [91]. Эти две микросхемы разви­лись в коммерчески важные продукты SPARC и MIPS соответственно.

Новые процессоры существенно отличались от коммерческих процессоров того времени. Поскольку они были несовместимы с существующей продукцией, разработчики вправе были включать туда новые наборы команд, которые могли бы повысить общую производительность системы. Первоначально основное вни­мание уделялось простым командам, которые могли быстро выполняться. Одна­ко вскоре разработчики осознали, что ключом к высокой производительности компьютера является разработка команд, которые можно быстро запускать. То есть не так важно, как долго выполняется та или иная команда, важнее то, сколь­ко команд в секунду может быть запущено.

В то время, когда разрабатывались эти простые процессоры, всеобщее внима­ние привлекало относительно небольшое количество команд (обычно около 50). Для сравнения: число команд в компьютерах VAX производства DEC и больших компьютерах производства IBM в то время составляло от 200 до 300. Компьютер RISC (Reduced Instruction Set Computer — компьютер с сокращенным набором команд) противопоставлялся системе CISC (Complex Instruction Set Compu­ter — компьютер с полным набором команд). В качестве примера машины ти­па CISC можно привести компьютер VAX, который доминировал в то время в университетской среде. На сегодняшний день мало кто считает, что главное отличие RISC и CISC состоит в количестве команд, но названия сохраняются до сих пор.

С этого момента началась грандиозная идеологическая война между сторон­никами RISC и разработчиками VAX, Intel и мэйнфреймов IBM. По мнению первых, наилучший способ разработки компьютеров — включение туда неболь­шого количества простых команд, каждая из которых выполняется за один цикл тракта данных (см. рис. 2.2), то есть производит над парой регистров какую-либо арифметическую или логическую операцию (например, сложение или операцию логического И) и помещает результат обратно в регистр. В качестве аргумента они утверждали, что, даже если системе RISC приходится выполнять 4 или 5 ко­манд вместо одной, которую выполняет CISC, RISC все равно выигрывает в ско­рости, так как RISC-команды выполняются в 10 раз быстрее (поскольку они не интерпретируются). Следует также отметить, что к этому времени быстродейст­вие основной памяти приблизилось к быстродействию специальных командных ПЗУ, поэтому недостатки интерпретации были налицо, что еще более подни­мало популярность компьютеров RISC.

Учитывая преимущества RISC в плане производительности, можно было предположить, что на рынке такие компьютеры, как Alpha компании DEC, долж­ны доминировать над компьютерами CISC (Pentium и т. д.). Однако ничего по­добного не произошло. Возникает вопрос: почему?

Во-первых, компьютеры RISC несовместимы с другими моделями, а многие компании вложили миллиарды долларов в программное обеспечение для про­дукции Intel. Во-вторых, как ни странно, компания Intel сумела воплотить те же идеи в архитектуре CISC. Процессоры Intel, начиная с процессора 486, содержат

RISC-ядро, которое выполняет самые простые (и обычно самые распространен­ные) команды за один цикл тракта данных, а по обычной технологии CISC ин­терпретируются более сложные команды. В результате обычные команды вы­полняются быстро, а более сложные и редкие — медленно. Хотя при таком «гибридном» подходе производительность ниже, чем в архитектуре RISC, новая архитектура CISC имеет ряд преимуществ, поскольку позволяет использовать старое программное обеспечение без изменений.

Таненбаум Э. Архитектура компьютера. 5-е изд. (+CD). — СПб.: Питер, 2007. — 844 с: ил.

Предлагаю ознакомиться с аналогичными статьями: