Введение в архитектуру компьютеров

Пусть процессор вычисляет значение выражения


Программа решения этой задачи для одноадресного компьютера может быть следующей (табл. 2.4).

Таблица 2.4. Пример программы



Номер

команды

Команда

Комментарии

1

2

3

 – рабочая ячейка

4

5

6

 – рабочая ячейка

7

8

9

10

Замечание. Выполнение команды типа

 подразумевает, что результат операции помещается в первый регистр, в данном случае в

регистр

Как следует из приведенной программы, операнд a

выбирается из памяти 2 раза (команды 4 и 5), b

– 3 раза (команды 2, 7 и 8). Кроме того, потребовались дополнительные обращения к памяти для запоминания и вызова из памяти результатов промежуточных вычислений (команды 3, 6, 9, 10).

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

Указанные соображения получили свое воплощение в ряде логических структур процессора. Одна из них – процессор со стековой памятью. Принцип ее работы поясняет схема, представленная на рис. 2.2.

Стековая память представляет собой набор из n регистров, каждый из которых способен хранить одно машинное слово. Одноименные разряды регистров P1, P2, ..., Pn соединены между собой цепями сдвига. Поэтому весь набор регистров может рассматриваться как группа n?разрядных сдвигающих регистров, составленных из одноименных разрядов регистров P1, P2, ..., Pn. Информация в стеке может продвигаться между регистрами вверх и вниз.

Движение вниз: (P1) ® P2, (P2) ® P3, ..., а P1

заполняется данными из главной памяти.

Движение вверх: (Pn) ® Pn?1, (Pn?1) ® Pn?2, а Pn

заполняется нулями.


Рис. 2.2. Стековая организация процессора

Регистры P1

и P2 связаны с АЛУ, образуя два операнда для выполнения операции. Результат операции записывается в P1. Следовательно, АЛУ выполняет операцию
.

Одновременно с выполнением арифметической операции (АО) осуществляется продвижение операндов вверх, не затрагивая P1, т. е. (P3) ® P2, (P4) ® P3 и т. д.

Таким образом, АО используют подразумеваемые адреса, что уменьшает длину команды. В принципе, в команде достаточно иметь только поле, определяющее код операции. Поэтому компьютеры со стековой памятью называют безадресными. В то же время команды, осуществляющие вызов или запоминание информации из главной памяти, требуют указания адреса операнда. Поэтому в ЭВМ со стековой памятью используются команды переменной длины. Например, в KDF-9 команды АО – однослоговые, команды обращения к памяти и передач управления – трехслоговые, остальные – двуслоговые.

Команды располагаются в памяти в виде непрерывного массива слогов независимо от границ ячеек памяти. Это позволяет за один цикл обращения к памяти вызвать несколько команд.

Для эффективного использования возможностей такой памяти в ЭВМ вводятся спецкоманды:

·    дублирование ~ (P1) ® P2, (P2) ® P3, ... и т. д., а (P1) остается при этом неизменным;

·    реверсирование ~ (P1) ® P2, а (P2) ® P1, что удобно для выполнения некоторых операций.

Рассмотрим тот же пример для новой ситуации (табл. 2.5):

.

Таблица 2.5.

Реализация программы со стековой памятью



п/п

Команда

P1

P2

P3

P4

1

2

2

3

4

5

1

Вызов b

b

2

Содержание раздела