Организация ЭВМ и систем: Курс лекций (Позиционные системы счисления. Процессоры семейства IA-32. Лазерные принтеры), страница 6

Но как построить дешёвую ЭВМ, которая будет выполнять все сложные команды, предназначенные для высокоскоростных и дорогих ЭВМ? Решением возникшей проблемы стала интерпретация. Эта технология была впервые предложена Уилксом в 1951 году. Фактически, данной технологией было положено начало трёхуровневым машинам. Все предыдущие машины имели только два уровня: уровень системы команд, на котором и писались все программы, и цифровой логический уровень, который выполнял команды непосредственно.

IBM создала архитектуру System/360, семейство ЭВМ, различных по цене и производительности. Аппаратное обеспечение без интерпретации использовалось только в самых дорогих моделях.

Простые ЭВМ с интерпретацией команд имели некоторые другие преимущества, в частности, возможность добавлять новые команды при минимальных затратах даже после покупки ЭВМ.

В 1970-е годы рынок ЭВМ быстро развивался, и спрос на дешёвые ЭВМ провоцировал создание процессоров с интерпретацией. В те годы интерпретация использовалась практически во всех ЭВМ, от мини-ЭВМ, до самых больших. Эта тенденция достигла пика своего развития в ЭВМ VAX фирмы Digital Equipment Corporation. У неё было несколько сотен команд и более двухсот способов определения операндов в каждой команде.

1.4.4. RISC и CISC

В конце 1970-х годов производились массовые эксперименты со сложными интерпретируемыми командами. Разработчики пытались сократить разрыв между языками высокого уровня и машинными языками.

В компании IBM группа разработчиков во главе с Джоном Коком противостояла этой тенденции; они пытались воплотить идеи Сеймура Крея, создав экспериментальную высокоэффективную мини-ЭВМ 801. Практического значения данная разработка не имела, но она явилась толчком для широких исследований и многих разработок в том же направлении.

В 1980 году группа разработчиков в университете Беркли во главе с Дэвидом Паттерсоном и Карло Секвином начала разработку процессоров без использования интерпретации. Новый подход обозначался термином Reduced Instruction Set Computer, в противовес Complete Instruction Set Computer. В 1981 году Джон Хеннеси в Стенфорде разработал и выпустил другую микросхему под названием «Millions of Instructions Per Second», MIPS. Эти две микросхемы со временем развились в SPARC и MIPS соответственно, как мы знаем их сейчас.

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

В RISC обычно было около 50 команд. На сегодняшний день мало кто считает, что главное различие RICS и CISC состоит в количестве команд, но название сохраняется до сих пор.

Между сторонниками RISC и CISC ведётся борьба. Первые считают, что наилучший способ разработки ЭВМ — включение туда небольшого количества простых команд, каждая из которых выполняется за один цикл тракта данных. В качестве аргумента приводится, что даже если RISC должна выполнить пять команд вместо одной команды CISC, команды RISC выполняются в десять раз быстрее, и в результате RISC выигрывает в скорости.

Исходя из этого можно было бы предположить, что ЭВМ типа RISC должны доминировать. Но в действительности ничего подобного не происходит. Возникает вопрос: почему?

Во-первых, ЭВМ типа RISC были несовместимы с другими ЭВМ, а компании вложили миллиарды долларов в ПО для продукции Intel. Во-вторых, процессоры Intel, начиная с 80486 совмещают принципы RISC и CISC. Они содержат ядро RISC, которое выполняет самые простые и самые распространённые команды за один цикл тракта данных, а по обычной технологии CISC интерпретируются сложные и реже используемые команды. При таком комбинированном подходе производительность процессора всё равно получилась несколько ниже, чем процессора RISC, но первый аргумент довершил дело.

2.  Позиционные системы счисления

2.1. Определения

2.2. Арифметика