Материалы

Архитектуры системы команд

Рейтинг:   / 0
ПлохоОтлично 

С развитием вычислительной техники появлялись различные архитектуры системы команд (АСК), некоторые из них становились основными на каком-то этапе. Сложившуюся на настоящий момент ситуацию в области архитектуры команд иллюстрирует рисунок.

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

 

Современная технология программирования ориентирована на языки высокого уровня (ЯВУ), главная цель которых - облегчить процесс программирования. Переход к ЯВУ, однако, породил серьезную проблему: сложные операторы, характерные для ЯВУ, существенно отличаются от простых машинных операций, реализуемых в большинстве вычислительных машин. Проблема получила название семантическою разрыва, а ее следствием становится недостаточно эффективное выполнение программ на ЭВМ. Пытаясь преодолеть семантический разрыв, разработчики вычислительных машин в настоящее время выбирают один из трех подходов и, соответственно, один из трех типов АСК:

  • архитектуру с полным набором команд: CISC (Complex Instruction Set Соmputer);
  • архитектуру с сокращенным набором команд: RISC (Reduced Instruction Set Compllter);
  • архитектуру с командными словами сверхбольшой длины: VLIW (Vегу Long Instruction Word)

В вычислительных машинах типа CISC проблема семантического разрыва решается за счет расширения системы команд, дополнения ее сложными командами, семантически аналогичными операторам ЯВУ.

Основоположником СISС-архитектуры считается компания IBM, которая начала применять данный подход с семейства машин IBM 360 и продолжает его в своих мощных современных универсальных ЭВМ, таких, как IBM ES/9000. Аналогичный подход характерен и для компании Intel в ее микропроцессорах серии 8086 и Pentium. Эта архитектура является практическим стандартом для рынка микрокомпьютеров.

Для СISС-архитектуры типичны:

  • наличие в процессоре сравнительно небольшого числа регистров общего назначения;
  • большое количество машинных команд, некоторые из них аппаратно реализуют сложные операторы ЯВУ;
  • широкое использование микропрограммирования;
  • разнообразие способов адресации операндов;
  • разная временная структура выполнения команд;
  • множество форматов команд различной разрядности (Pentium - длина команды 1-10 байт);
  • преобладание двухадресного формата команд;
  • наличие команд, где обработка совмещается с обращением к памяти.

Рассмотренный способ решения проблемы семантического разрыва вместе с тем ведет к усложнению аппаратуры ЭВМ, главным образом, устройства управления, что, в свою очередь, негативно сказывается на производительности ЭВМ в целом. Это заставило более внимательно проанализировать программы, получаемые после компиляции с ЯВУ. Был предпринят комплекс исследований, в результате которых обнаружилось, что доля дополнительных команд, эквивалентных операторам ЯВУ, в общем объеме программ не превышает 10-20%, а для некоторых наиболее сложных команд даже 0,2%. В то же время объем аппаратных средств, требуемых для реализации дополнительных команд, возрастает весьма существенно. Так, емкость микропрограммной памяти при поддержании сложных команд может увеличиваться на 60%.

Детальный анализ результатов упомянутых исследований привел к появлению RISC-архитектуры. Термин RISC впервые был использован Д. Паттерсоном и Д. Дитцелем в 1980 году. Идея заключается в ограничении списка команд ЭВМ наиболее часто используемыми простейшими командами, оперирующими данными, размещенными только в регистрах процессорах. Сложные команды ЯВУ выполняются набором простых, число которых больше чем в СISC, но время их выполнения меньше.

Основные особенности RISC-архитектуры:

  • небольшое число команд с простым декодированием;
  • резко уменьшено количество форматов команд;
  • почти все команды выполняются за один такт;
  • ограничено количество способов адресации;
  • длинный регистровый файл, что позволяет большему объему данных храниться в регистрах на процессорном кристалле большее время и упрощает работу компилятора по распределению регистров под переменные;
  • обращение к памяти допускается лишь с помощью специальных команд чтения и записи;
  • используются трехадресные команды, что помимо упрощения дешифрации дает возможность сохранять большее число переменных в регистрах без их последующей перезагрузки
  • эффективно загружен конвейер команд.

Элементы RISС-архитектуры впервые появились в вычислительных машинах CDC 6600 и супер-ЭВМ компании Сгау Research. Однако окончательно понятие RISC в современном его понимании сформировалось на базе трех исследовательских проектов компьютеров: процессора 801 компании IBM, процессора RISC университета Беркли и процессора MIPS Стенфордского университета.

Разработка экспериментального проекта компании IBM началась еще в конце 70-х годов, но его результаты никогда не публиковались и компьютер на его основе в промышленных масштабах не изготавливался. В 1980 году Д.Паттерсон со своими коллегами из Беркли начали свой проект и изготовили две машины, которые получили названия RISC-I и RISC-II. Главными идеями этих машин было отделение медленной памяти от высокоскоростных регистров и использование регистровых окон. В 1981году Дж.Хеннесси со своими коллегами опубликовал описание стенфордской машины MIPS, основным аспектом разработки которой была эффективная реализация конвейерной обработки посредством тщательного планирования компилятором его загрузки.

Достаточно успешно реализуется RISС-архитектура и в современных ВМ, например в процессорах Alpha серии РА фирмы Hewlett-Packard, семействе PowerPC и т. п. Отметим, что в последних микропроцессорах фирмы Intel и AMD широко используются идеи, свойственные RISС- архитектуре, так что многие различия между CISC и RISC постепенно стираются.

Концепция архитектуры команд cо словами сверхбольшой длины (VLIW) базируется на RISС-архитектуре, где несколько простых RISC- команд объединяются в одну сверхдлинную команду и выполняются параллельно. См. процессоры Itanium, Transmeta.

Важную роль в выборе АСК играет ответ на вопрос о том, где могут храниться операнды и каким образом к ним осуществляется доступ. С этих позиций различают следующие виды архитектур системы команд:

  • стековую;
  • аккумуляторную;
  • регистровую;
  • с выделенным доступом к памяти.
Яндекс.Метрика