Регистровая архитектура
Аккумуляторная архитектура
Архитектура на базе аккумулятора исторически возникла одной из первых. В ней для хранения одного из операндов арифметической или логической операции в процессоре имеется выделенный регистр — аккумулятор. В этот же регистр заносится и результат операции. Поскольку адрес одного из операндов предопределен, в командах обработки достаточно явно указать местоположение только второго операнда.
Типичная архитектура ЭВМ на базе аккумулятора показана на риунке 2.7.
Для загрузки в аккумулятор содержимого ячейки х предусмотрена команда загрузки load x. По этой команде информация считывается из ячейки памяти х, выход памяти подключается к входам аккумулятора и происходит занесение считанных данных в аккумулятор.
Запись содержимого аккумулятора в ячейку х осуществляется командой сохранения store х, при выполнении которой выходы аккумулятора подключаются к шине, после чего информация с шины записывается в память.
Рисунок 2.7 – Архитектура ЭВМ на основе аккумуляторной АСК
Для выполнения операции в АЛУ производится считывание одного из операндов из памяти в регистр данных. Второй операнд находится в аккумуляторе. Выходы регистра данных и аккумулятора подключаются к соответствующим входам АЛУ. По окончании предписанной операции результат с выхода АЛУ заносится в аккумулятор.
Достоинствами аккумуляторной АСК можно считать короткие команды и простоту декодирования команд. Однако наличие всего одного регистра порождает многократные обращения к основной памяти.
В машинах данного типа процессор включает в себя массив регистров (регистровый файл), известных как регистры общего назначения (РОН), Эти регистры, в каком-то смысле, можно рассматривать как явно управляемый кэш для хранения недавно использовавшихся данных.
Размер регистров обычно фиксирован и совпадает с размером машинного слова, К любому регистру можно обратиться, указав его номер. Количество РОН в архитектурах типа CISC обычно невелико (от 8 до 32), и для представления номера конкретного регистра необходимо не более пяти разрядов, благодаря чему в адресной части команд обработки допустимо одновременно указать номера двух, а зачастую и трех регистров (двух регистров операндов и регистра результата). RISC-архитектура предполагает использование существенно большего числа РОН (до нескольких сотен), однако типичная для таких ЭВМ длина команды (обычно 32 разряда) позволяет определить в команде до трех регистров.
Т а б л и ц а 2.1 – Сравнение вариантов размещения операндов
Тип команд | Достоинства | Недостатки |
Регистр-регистр (0, 3) | Простота реализации; фиксированная длина команды; простые алгоритмы компиляции; одинаковый CPI для всех команд. | Большой объем объектного кода; не всегда используются все поля команды. |
Регистр-память (1, 2) | Компактный объектный код; простота создания исходного кода. | Длинное поле адреса в команде; потеря одного из операндов. |
Память-память (3,3) | Компактный объектный код; малая потребность в РОН. | Низкое быстродействие; разнообразие форматов команд. |
Регистровая архитектура допускает расположение операндов в одной из двух запоминающих сред: основной памяти или регистрах. С учетом возможного размещения операндов в рамках регистровых АСК выделяют три подвида команд обработки:
- регистр-регистр;
- регистр-память;
- память-память.
В варианте «регистр-регистр» операнды могут находиться только в регистрах. В них же засылается и результат. Подтип «регистр-память» предполагает, что один из операндов размещается в регистре, а второй в основной памяти. Результат обычно замешает один из операндов. В командах типа «память-память» оба операнда хранятся в основной памяти. Результат заносится в память. Каждому из вариантов свойственны свои достоинства и недостатки (таблица 2.1).
В выражениях вида (m, n) в первом столбце таблицы m означает количество операндов, хранящихся в основной памяти, a n – общее число операндов в команде арифметической или логической обработки.
Вариант «регистр-регистр» является основным в вычислительных машинах типа RISC, Команды типа «регистр-память» характерны для CISC-машин. Наконец, вариант «память-память» считается неэффективным, хотя и остается в наиболее сложных моделях машин класса CISC.
Возможную структуру и информационные тракты вычислительной машины с регистровой архитектурой системы команд иллюстрирует рисунок 2.8.
Рисунок 2.8 – Архитектура ЭВМ на основе регистровой АСК
Операции загрузки регистров из памяти и сохранения содержимого регистров в памяти идентичны таким же операциям с аккумулятором. Отличие состоит в этапе выбора нужного регистра, обеспечиваемого соответствующими селекторами.
Выполнение операции в АЛУ включает в себя:
выбор регистра первого операнда;
определение расположения второго операнда (память или регистр);
подачу на вход АЛУ операндов и выполнение операции;
выбор регистра результата и занесение в него результата операции из АЛУ.
Обратим внимание на то, что между АЛУ и регистровым файлом должны быть по крайней мере три шины (рисунок 2.8).
К достоинствам регистровых АСК следует отнести: компактность получаемого кода, высокую скорость вычислений за счет замены обращений к основной памяти на обращения к быстрым регистрам. С другой стороны, данная архитектура требует более длинных инструкций по сравнению с аккумуляторной архитектурой.