RISC и CISC архитектуры.Сравнение
принципов,ограничения.Способы повышения
быстродействия.
Под архитектурой системы команд (ISA –
Instruction Set Architecture) понимают состав и возможности
системы команд, общий взгляд на систему
команд (СК) и связанную с ней микроархитектуру
процессора с точки зрения программиста.
Во многом именно архитектура СК определяет
трактовку
архитектуры компьютера вообще как «…абстрактного
представления о вычислительной машине
с точки зрения программиста». Исторически
первые микропроцессоры, появившиеся
в 70-х годах XX века, имели относительно
простую систему команд, что объяснялось
небольшими возможностями интегральной
схемотехники. По мере увеличения степени
интеграции ИМС разработчики МП старались
расширять систему команд и делать команды
более функциональными, «семантически
нагруженными». Это объяснялось, в частности,
двумя моментами – во-первых, требованиями
экономить память для размещения программ,
оставлять больше памяти под данные и
т.д., а во-вторых – возможностью реализовать
внутри кристалла процессора сложные
инструкции быстрее, чем при их программной
реализации. В результате появились процессоры
с большими наборами команд, причем команды
эти также зачастую являлись достаточно
сложными. В последствии эти МП назвали
CISC – от Complete Instruction Set Computer – компьютер
с полным набором команд или Complex ISС –
со сложным набором команд. Типичным примером
CISC-процессоров являются процессоры семейства
x86 корпорации Intel и ее конкурентов (а также
Motorola 68K и другие). Наряду с отмеченными
преимуществами процессоры CISC обладали
и рядом недостатков, в частности – команды
оказывались сильно неравнозначными по
времени выполнения (разное количество
тактов), плохо конвейеризовывались, требовали
сложного (и длительного) декодирования
и выполнения. Для повышения производительности
стали использовать жесткую логику управления,
что отразилось на регулярности и сложности
кристаллов (нерегулярные кристаллы менее
технологичны при изготовлении). На кристалле
оставалось мало места для РОН и КЭШ. Кроме
того, исследования показали, что производители
компиляторов и просто программисты не
используют многие сложные инструкции,
предпочитая использовать последовательность
коротких. Разработчики подошли к концепции
более простого и технологичного процессора
с некоторым откатом назад – к простым
и коротким инструкциям. С конца 70-х до
середины 80-х годов появляются проекты
таких процессоров Стэндфордского университета
и университета Беркли (Калифорния) –
MIPS и RISC. В основу архитектуры RISC (от Reduced
Instruction Set Computer – компьютер с сокращенным
набором команд) положены, в частности,
принципы отказа от сложных и многофункциональных
команд, уменьшения их количества, а также
концентрация на обработку всей информации
преимущественно на кристалле процессора
с минимальными обращениями к памяти.
Основные особенности архитектуры RISC:
1. Уменьшение числа команд (до 30-40).
2. Упрощение и унификация форматов команд.
3. В системе команд преобладают короткие
инструкции (например,
часто в СК отсутствуют умножения).
4. Отказ от команд типа память-память (например,
MOVSB в x86).
5. Работа с памятью сводится к загрузке
и сохранению регистров
(поэтому другое название RISC - Load-Store Architecture
- архитектура типа
«загрузка-сохранение»).
6. Преимущественно реализуются 3-х адресные
команды, например: add r1,r2,r3–сл r2 с r3 и рез-т
в r1.
7. Большой регистровый файл - до 32-64 РОН.
8. Предпочтение отдается жесткой логике
управления.
Преимущества архитектуры RISC:
1. Облегчается конвейерная, суперскалярная
и другие виды параллельной обработки,
планирование загрузки, предвыборка, переупорядочивание
и т.д.
2. Более эффективно используется площадь
кристалла (больше памяти – РОН, кэш).
3. Быстрее выполняется декодирование
и исполнение команд – соответственно,
выше тактовая частота. Примерами семейств
процессоров с RISC-архитектурой могут служить
DEC Alpha , SGI MIPS, Sun SPARC и другие. Большинство
современных суперскалярных и VLIW-процессоров
(в т.ч. и Intel) либо имеют архитектуру RISC,
либо реализуют похожие на RISC принципы,
либо – поддерживают CISC-инструкции, но
внутри транслируют их в RISC- подобные команды
для облегчения загрузки конвейеров и
решения других задач. |