Классификация по месту хранения операндов
Стековая архитектура
В вычислительных машинах, где реализована АСК на базе стека (их обычно называют стековыми), операнды выбираются из двух верхних ячеек стековой памяти. Результат операции заносится в вершину стека. Принцип действия стековой машины поясним на примере вычисления выражения:
а = а + b + а*с.
При описании вычислений с использованием стека обычно используется иная форма записи математических выражений, известная как обратная польская нотация, которую предложил польский математик Я. Лукашевич. Особенность ее в том, что в выражении отсутствуют скобки, а знак операции располагается не между операндами, а следует за ними (постфиксная форма). Последовательность операций определяется их приоритетами. Рассмотренное выше выражение в польской нотации примет вид:
а = ab+ ac*+.
Данная форма записи однозначно определяет порядок загрузки операндов и выполнения операций в стековой архитектуре. Порядок выполнения команд в стековой АСК представлен на рисунке 2.5.
Информация может быть занесена в вершину стека из памяти или из АЛУ. Для записи в стек содержимого ячейки памяти с адресом х выполняется команда push x, по которой информация считывается из ячейки памяти, заносится в регистр данных, а затем проталкивается в стек. Результат операции из АЛУ заносится в вершину стека автоматически.
Сохранение содержимого вершины стека в ячейке памяти с адресом x производится командой pop x. По этой команде содержимое верхней ячейки стека подается на шину, с которой и производится запись в ячейку х, после чего производится инкремент указателя стека: SP+1.
Для выполнения арифметической или логической операции на вход АЛУ по дается информация, считанная из двух верхних ячеек стека (при этом содержимое стека продвигается на две позиции вверх, то есть операнды из стека удаляются). Результат операции заталкивается в вершину стека. Возможен вариант, когда результат сразу же переписывается в память с помощью автоматически выполняемой операции pop х.
Верхние ячейки стековой памяти, где хранятся операнды и куда заносится результат операции, как правило, делаются более быстродействующими и размещаются в процессоре, в то время как остальная часть стека может располагаться в основной памяти и частично даже на магнитном диске.
К достоинствам АСК на базе стека следует отнести возможность сокращения адресной части команд, поскольку все операции производятся через вершину стека, то есть адреса операндов и результата в командах арифметической и логической обработки информации указывать не нужно. Код программы получается компактным. Достаточно просто реализуется декодирование команд.
Архитектура ЭВМ на основе стековой АСК
С другой стороны, стековая АСК по определению не предполагает произвольного доступа к памяти, из-за чего компилятору трудно создать эффективный программный код, хотя создание самих компиляторов упрощается. Кроме того, стек становится «узким местом» ЭВМ в плане повышения производительности.
Аккумуляторная архитектура
Архитектура на базе аккумулятора исторически возникла одной из первых. В ней для хранения одного из операндов арифметической или логической операции в процессоре имеется выделенный регистр — аккумулятор. В этот же регистр заносится и результат операции. Поскольку адрес одного из операндов предопределен, в командах обработки достаточно явно указать местоположение только второго операнда.
Для загрузки в аккумулятор содержимого ячейки х предусмотрена команда загрузки load x. По этой команде информация считывается из ячейки памяти х, выход памяти подключается к входам аккумулятора и происходит занесение считанных данных в аккумулятор.
Запись содержимого аккумулятора в ячейку х осуществляется командой сохранения store х, при выполнении которой выходы аккумулятора подключаются к шине, после чего информация с шины записывается в память.
Архитектура ЭВМ на основе аккумуляторной АСК
Для выполнения операции в АЛУ производится считывание одного из операндов из памяти в регистр данных. Второй операнд находится в аккумуляторе. Выходы регистра данных и аккумулятора подключаются к соответствующим входам АЛУ. По окончании предписанной операции результат с выхода АЛУ заносится в аккумулятор.
Достоинствами аккумуляторной АСК можно считать короткие команды и простоту декодирования команд. Однако наличие всего одного регистра порождает многократные обращения к основной памяти.
Регистровая архитектура
В машинах данного типа процессор включает в себя массив регистров (регистровый файл), известных как регистры общего назначения (РОН), Эти регистры, в каком-то смысле, можно рассматривать как явно управляемый кэш для хранения недавно использовавшихся данных.
Размер регистров обычно фиксирован и совпадает с размером машинного слова, К любому регистру можно обратиться, указав его номер. Количество РОН в архитектурах типа CISC обычно невелико (от 8 до 32), и для представления номера конкретного регистра необходимо не более пяти разрядов, благодаря чему в адресной части команд обработки допустимо одновременно указать номера двух, а зачастую и трех регистров (двух регистров операндов и регистра результата). RISC-архитектура предполагает использование существенно большего числа РОН (до нескольких сотен), однако типичная для таких ЭВМ длина команды (обычно 32 разряда) позволяет определить в команде до трех регистров.
Сравнение вариантов размещения операндов
Тип команд | Достоинства | Недостатки |
Регистр-регистр (0, 3) | Простота реализации; фиксированная длина команды; простые алгоритмы компиляции; одинаковый CPI для всех команд. | Большой объем объектного кода; не всегда используются все поля команды. |
Регистр-память (1, 2) | Компактный объектный код; простота создания исходного кода. | Длинное поле адреса в команде; потеря одного из операндов. |
Память-память (3,3) | Компактный объектный код; малая потребность в РОН. | Низкое быстродействие; разнообразие форматов команд. |
Регистровая архитектура допускает расположение операндов в одной из двух запоминающих сред: основной памяти или регистрах. С учетом возможного размещения операндов в рамках регистровых АСК выделяют три подвида команд обработки:
· регистр-регистр;
· регистр-память;
· память-память.
Вариант «регистр-регистр» является основным в вычислительных машинах типа RISC, Команды типа «регистр-память» характерны для CISC-машин. Наконец, вариант «память-память» считается неэффективным, хотя и остается в наиболее сложных моделях машин класса CISC.
2.8 Архитектура ЭВМ на основе регистровой АСК
Операции загрузки регистров из памяти и сохранения содержимого регистров в памяти идентичны таким же операциям с аккумулятором. Отличие состоит в этапе выбора нужного регистра, обеспечиваемого соответствующими селекторами.
Выполнение операции в АЛУ включает в себя:
· выбор регистра первого операнда;
· определение расположения второго операнда (память или регистр);
· подачу на вход АЛУ операндов и выполнение операции;
· выбор регистра результата и занесение в него результата операции из АЛУ.
Обратим внимание на то, что между АЛУ и регистровым файлом должны быть по крайней мере три шины (рисунок 2.8).
К достоинствам регистровых АСК следует отнести: компактность получаемого кода, высокую скорость вычислений за счет замены обращений к основной памяти на обращения к быстрым регистрам. С другой стороны, данная архитектура требует более длинных инструкций по сравнению с аккумуляторной архитектурой.
Архитектура с выделенным доступом к памяти
В архитектуре с выделенным доступом к памяти обращение к основной памяти возможно только с помощью двух специальных команд: load и store. В английской транскрипции данную архитектуру называют Load/Store architecture. Команда load (загрузка) обеспечивает считывание значения из основной памяти и занесение его в регистр процессора (в команде обычно указывается адрес ячейки памяти и номер регистра). Пересылка информации в противоположном направлении производится командой store (сохранение). Операнды во всех командах обработки информации могут находиться только в регистрах процессора (чаще всего в регистрах общего назначения). Результат операции также заносится в регистр. В архитектуре отсутствуют команды обработки, допускающие прямое обращение к основной памяти. Допускается наличие в АСК ограниченного числа команд, где операнд является частью кода команды.
Состав и информационные тракты ЭВМ с выделенным доступом к памяти соответствуют рисунку 2.8. Две из трех шин, расположенных между массивом РОН и АЛУ, обеспечивают передачу в арифметико-логическое устройство операндов, хранящихся в двух регистрах общего назначения. Третья служит для занесения результата в выделенный для этого регистр. Эти же шины позволяют загрузить в регистры содержимое ячеек основной памяти и сохранить в ОП информацию, находящуюся в РОН.
АСК с выделенным доступом к памяти характерна для всех вычислительных машин с RISC-архитектурой. Команды в таких ЭВМ, как правило, имеют длину 32 бита и трехадресный формат. К достоинствам АСК следует отнести простоту декодирования и исполнения команды.
7. Классификация архитектур процессоров по мощности системы команд. CISC- и RISC- архитектуры и их основные особенности. Модели современных CISC- и RISC- процессоров и их области применения.
В зависимости от мощности используемой системы команд выделяют два вида процессоров:
CISC(Complex Instruction Set Computer - компьютер с полным набором команд)
RISC(Reduced Instruction Set Computer - компьютер с сокращенным набором команд)
Процессоры семейства Intel 80х86 представляют собой классическое направление компьютеров с CISC-архитектурой.
При зарождении RISC-архитектуры (начало 70-х годов) она действительно соответствовала своему наименованию (мощность системы команд составляла не более 100 различных типов команд, в то время как CISC-архитектура имела мощность системы команд до 300 команд). Современные модели RISC-процессоров имеют мощность системы команд, не уступающую CISC. В настоящее время основным признаком RISC-архитектуры является не столько сокращение набора команд, сколько стремление к выполнению подавляющего большинства команд за один машинный такт
Под машинным тактом понимается интервал времени между двумя последовательными синхросигналами, поступающими от генератора и задающими темп работы основных схем процессора. Принято считать, что элементарные действия, выполняемые процессором за один такт, лишь в простейшем случае соответствуют одной машинной команде, и носят название микрооперации. К простейшим микрооперациям можно отнести пересылку между двумя регистрами, сложение (вычитание) в АУ и т.п.
В процессорах с RISC-архитектурой понятие микрооперация (микрокоманда) становится фактически тождественной понятию машинной операции (команды).
Основные особенности СISC-архитектуры:
· наличие в процессоре сравнительно небольшого числа регистров общего назначения;
· большое количество машинных команд, некоторые из них аппаратно реализуют сложные операторы ЯВУ;
· разнообразие способов адресации операндов;
· множество форматов команд различной разрядности;
· наличие команд, где обработка совещается с обращением к памяти (регистр-память и память-память).