Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ar_proc.doc
Скачиваний:
39
Добавлен:
29.02.2016
Размер:
552.96 Кб
Скачать

3. Стековые процессоры

3.1 Этапы выполнения команды в фон Неймановском процессоре

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

Можно выделить следующие этапы выполнения команды в классической фон - Неймановской архитектуре:

  1. выборка устройством управления команды из ОП (или из кэш памяти) в регистр команд;

  2. модификация адреса в регистре команд на длину выбранной команды;

  3. обработка кода операции - коммутация АЛУ на соответствующую микропрограмму или операционную схему;

  4. коммутация регистров и АЛУ в соответствии с информацией команды;

  5. вычисление адреса операнда в ОП;

  6. выборка операнда из ОП в АЛУ;

  7. выполнение команды процессором (АЛУ);

  8. обработка результата выполнения команды - запись результата.

Схема взаимодействия регистров процессора и АЛУ представлена на рис 3.1:

Схема взаимодействия регистров процессора и АЛУ

Рис 3.1

3.2 Архитектурные особенности стекового процессора

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

Упрощенная схема стека

Рис 3.2

Прямое использование стека вместо регистров приводит к структуре, в которой остаются внутренние регистры АЛУ. Эта структура обладает тем недостатком, что остаются операции пересылки операндов в АЛУ, приводящие к увеличению времени выполнения операции. Структура простого стекового процессора приведена на рис 3.3

Структура простого стекового процессора

Рис 3.3

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

  1. выполнение команды, операндами которой всегда являются верхний и непосредственно следующий за ним элементы стека (для бинарных операций);

  2. формируемый в АЛУ результат пересылается по месту операнда №2 в стеке;

  3. стек продвигается на один элемент вверх - тем самым результат предыдущей команды автоматически становится операндом следующей команды.

Отметим, что в этом случае АЛУ работает не с чисто стековой структурой, так как доступными (коммутированными) являются два элемента стека.

Отметим положительные особенности данной архитектуры:

- отсутствие этапа коммутации АЛУ с операндами приводит к сокращению времени выполнения команды;

- прямая передача результатов операций от одной к другой через верхний элемент стека позволяет упростить подготовку следующей команды;

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

Схема стекового процессора с прямой коммутацией приведена на рис 3.4

Схема стекового процессора с прямой коммутацией

Рис 3.4

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]