ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.12.2021

Просмотров: 5243

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

54 Глава 2. Архитектура системы команд

Классификация архитектур

системы команд

В истории развития вычислительной техники как в зеркале отражаются измене-

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

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

 2.3. Хронология развития архитектур системы команд

Среди мотивов, чаще всего предопределяющих переход к новому типу АСК,

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

операндов, что влияет на количество и длину адресов, указываемых в адресной
части команд обработки данных. Именно эти моменты взяты в качестве критериев
излагаемых ниже вариантов классификации архитектур системы команд.

Классификация по составу и сложности команд

Современная технология программирования ориентирована на языки высокого

уровня (ЯВУ), главная цель которых — облегчить процесс программирования.

Переход к ЯВУ, однако, породил серьезную проблему: сложные операторы, харак-

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

семантического разрыва,

 а ее следствием становится недостаточно эффективное


background image

Классификация архитектур системы команд 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 году

 Идея заключается в ограничении списка команд ВМ наиболее

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


background image

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.

Классификация по месту хранения операндов

Количество команд и их сложность, безусловно, являются важнейшими фактора-

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

•стековую;
•аккумуляторную;


background image

Классификация архитектур системы команд 57

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

Выбор той или иной архитектуры влияет на принципиальные моменты: сколь-

ко адресов будет содержать

 часть команд, какова будет длина этих

сов, насколько просто будет происходить доступ к операндам и какой, в конечном
итоге, будет общая длина

Стековая архитектура

Стеком

 называется память, по своей структурной организации отличная от ос-

новной памяти ВМ. Принципы построения стековой памяти детально рассматри-
ваются позже, здесь же выделим только те аспекты, которые требуются для пояс-
нения особенностей АСК на базе стека.

Стек образует множество логически взаимосвязанных ячеек (рис. 2.4), вза-

имодействующих по принципу «последним вошел, первым вышел»

 Last

In First Out).

 2.4. Принцип действия стековой памяти

Верхнюю ячейку называют

 вершиной стека.

 Для работы со стеком предусмот-

рены две операции:

 push

 (проталкивание данных в стек) и

 (выталкивание дан-

ных из стека). Запись возможна только в верхнюю ячейку стека, при этом вся хра-
нящаяся в стеке информация предварительно проталкивается на одну позицию
вниз. Чтение допустимо также только из вершины стека. Извлеченная информа-

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

 а  а +  +

При описании вычислений с использованием стека обычно используется иная

форма записи математических выражений, известная как обратная польская за-
пись (обратная польская нотация), которую предложил польский математик Я. Лу-
кашевич. Особенность ее в том, что в выражении отсутствуют скобки, а знак опе-
рации располагается не между операндами, а следует за ними (постфиксная форма).
Последовательность операций определяется их приоритетами (табл. 2.2).

Таблица 2.2.

 Приоритеты операций в обратной польской нотации


background image

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+ на вычислительной машине

со стековой архитектурой


Смотрите также файлы