ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 5243
Скачиваний: 8
54 Глава 2. Архитектура системы команд
Классификация архитектур
системы команд
В истории развития вычислительной техники как в зеркале отражаются измене-
ния, происходившие во взглядах разработчиков на перспективность той или иной
архитектуры системы команд. Сложившуюся на настоящий момент ситуацию
в области АСК иллюстрирует рис. 2.3.
Архитектура системы команд
2.3. Хронология развития архитектур системы команд
Среди мотивов, чаще всего предопределяющих переход к новому типу АСК,
остановимся на двух наиболее существенных. Первый — это состав операций, вы-
полняемых вычислительной машиной, и их сложность. Второй — место хранения
операндов, что влияет на количество и длину адресов, указываемых в адресной
части команд обработки данных. Именно эти моменты взяты в качестве критериев
излагаемых ниже вариантов классификации архитектур системы команд.
Классификация по составу и сложности команд
Современная технология программирования ориентирована на языки высокого
уровня (ЯВУ), главная цель которых — облегчить процесс программирования.
Переход к ЯВУ, однако, породил серьезную проблему: сложные операторы, харак-
терные для ЯВУ, существенно отличаются от простых машинных операций, реа-
лизуемых в большинстве вычислительных машин. Проблема получила название
семантического разрыва,
а ее следствием становится недостаточно эффективное
Классификация архитектур системы команд 55
выполнение программ на ВМ. Пытаясь преодолеть семантический разрыв, разра-
ботчики вычислительных машин в настоящее время выбирают один из трех под-
ходов и, соответственно, один из трех типов
К:
• архитектуру с полным набором команд: CISC (Complex Instruction Set Com-
puter);
• архитектуру с сокращенным набором команд: RISC (Reduced Instruction Set
Computer);
• архитектуру с командными словами сверхбольшой длины:
(Very Long
Instruction Word).
В вычислительных машинах типа CISC проблема семантического разрыва ре-
шается счет расширения системы команд, дополнения ее сложными командами,
семантически аналогичными операторам ЯВУ. Основоположником CISC-архитек-
туры считается компания IBM, которая начала применять данный подход с семей-
ства машин IBM 360 и продолжает его в своих мощных современных универсаль-
ных ВМ, таких как IBM ES/9000. Аналогичный подход характерен и для компании
Intel в ее микропроцессорах серии 8086 и Pentium. Для CISC-архитектуры ти-
пичны:
• наличие в процессоре сравнительно небольшого числа регистров общего на-
значения;
• большое количество машинных команд, некоторые из них аппаратно реализу-
ют сложные операторы ЯВУ;
• разнообразие способов адресации операндов;
• множество форматов команд различной разрядности;
• наличие команд, где обработка совмещается С обращением к памяти.
типу CISC можно отнести практически все ВМ, выпускавшиеся до середины
1980-х годов, и значительную часть производящихся в настоящее время. Рассмот-
ренный способ решения проблемы семантического разрыва вместе с тем ведет к
усложнению аппаратуры ВМ, главным образом устройства управления, что, в свою
очередь, негативно сказывается на производительности ВМ в целом. Это застави-
ло более внимательно проанализировать программы, получаемые после компиля-
ции с ЯВУ. Был предпринят комплекс исследований
в резуль-
тате которых обнаружилось, что доля дополнительных команд, эквивалентных
операторам ЯВУ, в общем объеме программ не превышает 10-20%, а для некото-
рых наиболее сложных команд даже 0,2%. В то же время объем аппаратных средств,
требуемых для реализации дополнительных команд, возрастает весьма существенно.
Так, емкость микропрограммной памяти при поддержании сложных команд мо-
жет увеличиваться на 60%.
результатов упомянутых исследований привел к серьезно-
му пересмотру традиционных решений, следствием чего стало появление
RISC-
архитектуры.
Термин RISC впервые был использован Д. Паттерсоном и Д. Дит-
целем в 1980 году
Идея заключается в ограничении списка команд ВМ наиболее
часто используемыми простейшими командами, оперирующими данными, размещен-
ными только в регистрах процессорах. Обращение к памяти допускается лишь с
56 Глава 2. Архитектура системы команд
помощью специальных команд чтения и
Резко уменьшено количество фор-
матов команд и способов указания адресов операндов. Сокращение числа форматов
команд и их простота, использование ограниченного количества способов адресации,
отделение операций обработки данных от операций обращения к памяти позволяет
существенно упростить аппаратные средства ВМ и повысить их быстродействие.
RISC-архитектура разрабатывалась таким образом, чтобы уменьшить
за счет со-
кращения
СРI
и
Как следствие, реализация сложных команд за счет последова-
тельности из простых, но быстрых RISC-команд оказывается не менее эффективной,
чем аппаратный вариант сложных команд в CISC-архитектуре.
Элементы RISC-архитектуры впервые появились в вычислительных машинах
CDC 6600 и суперЭВМ компании
Research. Достаточно успешно реализует-
ся RISC-архитектура и в современных ВМ, например в процессорах Alpha фирмы
DEC, серии РА фирмы Hewlett-Packard, семействе PowerPC и т. п.
Отметим, что в последних микропроцессорах фирмы Intel и AMD широко ис-
пользуются идеи, свойственные RISC-архитектуре, так что многие различия меж-
ду CISC и RISC постепенно стираются.
Помимо CISC- и RISC-архитектур в общей классификации был упомянут еще
тип АСК — архитектура с командными словами сверхбольшой длины (VLIW).
Концепция VLIW базируется на RISC-архитектуре, где несколько простых RISC-
команд объединяются в одну сверхдлинную команду и выполняются параллельно.
В плане АСК архитектура VLIW сравнительно мало отличается от
Появил-
ся лишь дополнительный уровень параллелизма вычислений, в силу чего архитек-
туру VLIW логичнее адресовать не к вычислительным машинам, а к вычислитель-
ным системам.
Таблица
Сравнительная оценка CISC-, RISC- и VUW-архитектур
Характеристика
Длина команды
Расположение
полей в команде
Количество
регистров
Доступ к памяти
Варьируется
Варьируется
Несколько (часто
специализированных)
Может выполняться
как часть команд
различных типов
RISC
Единая
Неизменное
Много регистров
общего назначения
Выполняется только
специальными коман-
дами
VLIW
Единая
Неизменное
Много регистров
общего назначения
Выполняется толь-
ко специальными
командами -
Таблица 2.1 позволяет оценить наиболее существенные различия в архитекту-
рах типа CISC, RISC и VLIW.
Классификация по месту хранения операндов
Количество команд и их сложность, безусловно, являются важнейшими фактора-
ми, однако не меньшую роль при выборе АСК играет ответ на вопрос о том, где
могут храниться операнды и каким образом к ним осуществляется доступ. С этих
позиций различают следующие виды архитектур системы команд:
•стековую;
•аккумуляторную;
Классификация архитектур системы команд 57
• регистровую;
• с выделенным доступом к памяти.
Выбор той или иной архитектуры влияет на принципиальные моменты: сколь-
ко адресов будет содержать
часть команд, какова будет длина этих
сов, насколько просто будет происходить доступ к операндам и какой, в конечном
итоге, будет общая длина
Стековая архитектура
Стеком
называется память, по своей структурной организации отличная от ос-
новной памяти ВМ. Принципы построения стековой памяти детально рассматри-
ваются позже, здесь же выделим только те аспекты, которые требуются для пояс-
нения особенностей АСК на базе стека.
Стек образует множество логически взаимосвязанных ячеек (рис. 2.4), вза-
имодействующих по принципу «последним вошел, первым вышел»
Last
In First Out).
2.4. Принцип действия стековой памяти
Верхнюю ячейку называют
вершиной стека.
Для работы со стеком предусмот-
рены две операции:
push
(проталкивание данных в стек) и
(выталкивание дан-
ных из стека). Запись возможна только в верхнюю ячейку стека, при этом вся хра-
нящаяся в стеке информация предварительно проталкивается на одну позицию
вниз. Чтение допустимо также только из вершины стека. Извлеченная информа-
ция удаляется из стека, а оставшееся его содержимое продвигается вверх. В вы-
числительных машинах, где реализована АСК на базе стека (их обычно называют
стековыми), операнды перед обработкой помещаются в две верхних ячейки стеко-
вой памяти. Результат операции заносится в стек. Принцип действия стековой
машины поясним на примере вычисления выражения
а а + +
При описании вычислений с использованием стека обычно используется иная
форма записи математических выражений, известная как обратная польская за-
пись (обратная польская нотация), которую предложил польский математик Я. Лу-
кашевич. Особенность ее в том, что в выражении отсутствуют скобки, а знак опе-
рации располагается не между операндами, а следует за ними (постфиксная форма).
Последовательность операций определяется их приоритетами (табл. 2.2).
Таблица 2.2.
Приоритеты операций в обратной польской нотации
58 Глава 2. Архитектура системы команд
Таблица 2.2
(продолжение)
Операция
Сложение вычитание
Умножение | деление
Возведение в степень
Символ операции
+ |-
*|/
**
Приоритет
2
3
4
преобразовании традиционной записи выражения в постфиксную исполь-
зуется логическая структура, аналогичная стеку, которую, чтобы не путать ее со
стеком вычислительной машины, назовем стеком последовательности операций
(СПО). Формирование выходной строки с выражением в обратной польской но-
тации осуществляется в соответствии со следующим
1. Исходная строка с выражением просматривается слева направо.
2. Операнды переписываются в выходную строку.
3. Знаки операций заносятся в СПО по следующим правилам:
• если СПО пуст, то операция из входной строки переписывается в СПО;
• операция выталкивает из СПО в выходную строку все операции с большим
или равным приоритетом;
• если очередной символ из исходной строки есть открывающая скобка, то он
проталкивается в СПО;
• закрывающая круглая скобка выталкивает все операции из СПО до ближай-
шей открывающей скобки, сами скобки в выходную строку не переписыва-
ются, а уничтожают друг друга.
Процесс получения обратной польской записи для правой части выражения
а а + +
с
представлен в табл. 2.3.
Таблица 2.3.
Формирование обратной польской записи для выражения а = а + + а х с
Просматриваемый символ
Входная
Состояние стека последовательности операций
Выходная строка
1
а
а
2
+
+
3
b
b
4
+
+
+
5
а
а
6
X
X
+
7
с
с
8
+
X
9
+
Таким образом, рассмотренное выше выражение в польской записи имеет вид:
а
=
ab+acx+.
Данная форма записи однозначно определяет порядок загрузки
рандов и операций в стек (рис. 2.5).
a
а
push b
b
а
add
a+b
push a
a
a+b
push с
с
a
a+b
a*c
a+b
add
a+b+a*c
pop a
2.5. Последовательность вычисления выражения а - ab+acx+ на вычислительной машине
со стековой архитектурой