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