54
Глава 2. Архитектура системы команд
Классификация архитектур системы команд
В истории развития вычислительной техники как в зеркале отражаются измене­ния, происходившие во взглядах разработчиков на перспективность той или иной архитектуры системы команд. Сложившуюся на настоящий момент ситуацию в области АСК иллюстрирует рис. 2.3.
Рис. 2.3. Хронология развития архитектур системы команд
Среди мотивов, чаще всего предопределяющих переход к новому типу АСК, остановимся на двух наиболее существенных. Первый — это состав операций, вы­полняемых вычислительной машиной, и их сложность. Второй — место хранения операндов, что влияет на количество и длину адресов, указываемых в адресной части команд обработки данных. Именно эти моменты взяты в качестве критериев излагаемых ниже вариантов классификации архитектур системы команд.
Классификация по составу и сложности команд
Современная технология Программирования ориентирована на языки высокого уровня (ЯВУ), главная цель которых— облегчить процесс программирования. Переход к ЯВУ, однако, породил серьезную проблему: сложные операторы, харак­терные для ЯВУ, существенно отличаются от простых машинных операций, реа­лизуемых в большинстве вычислительных машин. Проблема получила название семантического разрыва, а ее следствием становится недостаточно эффективное
Классификация архитектур системы команд 55
выполнение программ на ВМ. Пытаясь преодолеть семантический разрыв, разра­ботчики вычислительных машин в настоящее время выбирают один из трех под­ходов и, соответственно, один из трех типов АС К:
•   архитектуру с полным набором команд: CISC (Complex Instruction Set Com­puter);
•   архитектуру с сокращенным набором команд: RISC (Reduced Instruction Set . Computer);
•   архитектуру с командными словами сверхбольшой длины: VLIW (Very Long Instruction Word).
. В вычислительных машинах типа CISC проблема семантического разрыва ре­шается за счет расширения системы команд, дополнения ее сложными командами, семантически аналогичными операторам ЯВУ. Основоположником CISC-архитек­туры считается компания IBM, которая начала применять данный подход с семей­ства машин IBM 360 и продолжает его в своих мощных современных универсаль­ных ВМ, таких как IBM ES/9000. Аналогичный подход характерен и для компании Intel в ее микропроцессорах серии 8086 и Pentium. Для CISC-архитектуры ти­пичны:
•   наличие в процессоре сравнительно небольшого числа регистров общего на­значения;
•   большое количество машинных команд, некоторые из них аппаратно реализу­ют сложные операторы ЯВУ;
•   разнообразие способов адресации операндов;
•   множество форматов команд различной разрядности;
•  наличие команд, где обработка совмещается С обращением к памяти.
К типу CISC можно отнести практически все ВМ, выпускавшиеся до середины 1980-х годов, и значительную часть производящихся в настоящее время. Рассмот­ренный способ решения проблемы семантического разрыва вместе с тем ведет к усложнению аппаратуры ВМ, главным образом устройства управления, что, в свою очередь, негативно сказывается на производительности ВМ в целом. Это застави­ло более внимательно проанализировать программы, получаемые после компиля­ции с ЯВУ. Был предпринят комплекс исследований [128,158,177,209], в резуль­тате которых обнаружилось, что доля дополнительных команд, эквивалентных операторам ЯВУ, в общем объеме программ не превышает 10-20%, а для некото­рых наиболее сложных команд даже 0,2%. В то же время объем аппаратных средств, требуемых для реализации дополнительных команд, возрастает весьма существенно. Так, емкость микропрограммной памяти при поддержании сложных команд мо­жет увеличиваться на 60%.
Детальный анализ результатов упомянутых исследований привел к серьезно­му пересмотру традиционных решений, следствием чего стало появление RISC-архитектуры. Термин RISC впервые был использован Д. Паттерсоном и Д. Дит-целем в 1980 году [177]. Идея заключается в ограничении списка команд ВМ наиболее часто используемыми простейшими командами, оперирующими данными, размещен­ными только в регистрах процессорах. Обращение к памяти допускается лишь с
56 Глава 2. Архитектура системы команд
помощью специальных команд чтения и записи. Резко уменьшено количество фор­матов команд и способов указания адресов операндов. Сокращение числа форматов команд и их простота, использование ограниченного количества способов адресации, отделение операций обработки данных от операций обращения к памяти позволяет существенно упростить аппаратные средства ВМ и повысить их быстродействие. RISC-архитектура разрабатывалась таким образом, чтобы уменьшить выч за счет со­кращения CPI и τ,ιρ. Как следствие, реализация сложных команд за счет последова­тельности из простых, но быстрых RISC-команд оказывается не менее эффективной, чем аппаратный вариант сложных команд в CISC-архитектуре.
Элементы RISC-архитектуры впервые появились в вычислительных машинах CDC 6600 и суперЭВМ компании Cray Research. Достаточно успешно реализует­ся RISC-архитектура и в современных ВМ, например в процессорах Alpha фирмы DEC, серии РА фирмы Hewlett-Packard, семействе PowerPC и т. п.
Отметим, что в последних микропроцессорах фирмы Intel и AMD широко ис­пользуются идеи, свойственные RISC-архитектуре, так что многие различия меж­ду CISC и RISC постепенно стираются.
Помимо CISC- и RISC-архитектур в общей классификации был упомянут еще один тип АСК — архитектура с командными словами сверхбольшой длины (VLIW). Концепция VLIW базируется на RISC-архитектуре, где несколько простых RISC-команд объединяются в одну сверхдлинную команду и выполняются параллельно. В плане АСК архитектура VLIW сравнительно мало отличается от RISC. Появил­ся лишь дополнительный уровень параллелизма вычислений, в силу чего архитек­туру VLIW логичнее адресовать не к вычислительным машинам, а к вычислитель­ным системам.
Таблица 2.1. Сравнительная оценка CISC-, RISC- и VUW-архитектур
Характеристика
CISC
RISC
VIJW
Длина команды
Варьируется
Единая
Единая
Расположение полей в команде
Варьируется
Неизменное
Неизменное
Количество регистров
Несколько (часто специализированных)
Много регистров общего назначения
Много регистров общего назначения
Доступ к памяти
Может выполняться как часть команд различных типов
Выполняется только специальными коман­дами
Выполняется толь­ко специальными командами -
Таблица 2.1 позволяет оценить наиболее существенные различия в архитекту­рах типа CISC, RISC и VLIW.
Классификация по месту хранения операндов
Количество команд и их сложность, безусловно, являются важнейшими фактора­ми, однако не меньшую роль при выборе АСК играет ответ на вопрос о том, где могут храниться операнды и каким образом к ним осуществляется доступ. С этих позиций различают следующие виды архитектур системы команд:
ш ·стековую;
Ш · аккумуляторную;
Hosted by uCoz