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

Опубликовано февраля 11, 2017 в Архитектуры процессоров (истоки)

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

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

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

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

  1. выполнение команды, операндами которой всегда являются верхний и непосредственно следующий за ним элементы стека (для бинарных операций);
  2. формируемый в АЛУ результат пересылается по месту операнда №2 в стеке;
  3. стек продвигается на один элемент вверх — тем самым результат предыдущей команды автоматически становится операндом следующей команды.

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

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

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

Да, запомните, что чехол Samsung Galaxy S9 Plus изготавливается из естественных материалов, но бывают чехлы, которые делаются из синтетических материалов.