MISC против RISC против CISC

Микропроцессоры типа VLIW

Основные отличия CISC и RISC архитектур

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

В попытке достижения компромисса между CISC и RISC были созданы микропроцессоры типа VLIW. Хотя идеи VLIW сформулированы уже давно, до настоящего времени они были известны в основном специалистам в области компьютерных архитектур.

VLIW фактически подразумевает создание одного "большого" и в некотором роде виртуального процессора из параллельной группы "маленьких". Новизны бы здесь не было никакой, если бы не программный способ этого объединения - за его формирование отвечает генератор кода компилятора. Архитектурные особенности вынуждают разработчиков использовать в качестве "подпроцессоров" RISC-машины: только механизм load/store позволяет "упаковать" в одно длинное слово команды группу подкоманд, выполняющихся подпроцессорами.

.

MISC ( Компьютер с Минимальным Набором Команд ) - дальнейшее развитие идеи, состоящей в том, что принцип "простоты", изначальный для RISC процессоров, слишком быстро отошёл на задний план. В пылу борьбы за максимальное быстродействие, RISC догнал и перегнал многие CISC процессоры по сложности. Между тем очевидны многие проблемы RISC архитектуры.:

а. RISC команды всё ещё медленны. Используется многоступенчатый конвейер для их выполнения. Однако всякий раз при ветвлении программы конвейер сбрасывается и заполняется заново. Большинство ухищрений по выделению новых ступеней конвейера и предсказанию ветвлений уже исчерпали себя.

б. С увеличением быстродействия растёт разрыв между быстрым процессором и медленной памятью. Для увеличения скорости доступа к памяти необходимо использовать кеш память для буферизации потоков данных и команд. Кеш память вносит свою гамму проблем и удорожает систему в целом.

в. RISC процессоры очень неэффективны на операциях вызова и возврата подпрограмм. Эффективность этого механизма критична для языков высокого уровня. Многие RISC процессоры используют большой регистровый файл с окнами для облегчения вызова подпрограмм. Однако, окно должно быть достаточно большое для сохранения локальных данных. Большой регистровый файл - это потеря наиболее драгоценных ресурсов процессора и замедление при переключении контекста на его сохранение и восстановление.

По мнению авторов этой концепции сокращение набора команд является эффективным шагом по повышению производительности. Они исследовали вопрос достижения высокой производительности с ограничением на максимальную простоту. Авторы MISC процессора пришли к выводу, что число команд должно быть в районе 32-х, и использовали для их кодировки 5-и разрядное поле команды.