Страница: 10/11
║ ┌┬─────┬┐ │ │ │ │ ┌┘k │║
╚>╡│STACK│╞═>╡3 │ │ │K │ ┌┬──┬┐K' │║
└┴────A┴┘ │ │ │ ╞═══╧>╡│RG│╞╗ │║
║ │ А │ │ │ ││ ││║ │║
║ └─A─┘ └───┘ ─/┴┴──┴┘║ │║
┌───┐ ║ ║ C ║ │║
│MUX│ ┌──┐ ┌╨──────╨┐ ║ │║
0>┤0 ├─>┤M2├>┤ CS ╞<══════════════════╝ │║
a>┤1 │┌>┤ │ │ │ │║
b>┤2 ││ └──┘ └────────┘ │║ k ┌───┐
│А ││e' │║ └─┤ 1 ├─CC
└A──┘└──────────────────────────────────────┘║ ──┤ │
╚═══════════════════════════════════════════╝ SYN └───┘
Переход к микроподпрограмме с возвратом
При реализации достаточно сложных вычислений удобно вос-
пользоваться механизмом микроподпрограмм.
Одна и та же микроподпрограмма может быть вызвана из
разных точек вызывающих микропрограмм. Поэтому при вызове
микроподпрограммы необходимо запомнить адрес, с тем, чтобы
восстановить его при возвращении из микроподпрограммы. Чтобы
запомнить и восстановить адреса возврата от вложенных вызо-
вов, используется безадресная память - стек (stack).
Принцип (дисциплина) работы стека описывается условием
"последний вошел - первым вышел" (Last In - First Out, LIFO).
чтобы описать этот принцип будем считать, что слова, хранящи-
еся в стеке, перенумерованы с помощью первых натуральных чи-
сел 1,2, .,N. Слово с наибольшим номером называют вершиной
стека.
Стек может выполнять следующие действия:
-"чтение" слова с наибольшим номером,
-"выталкивание" (стирание) из памяти слова с наибольшим но-
мером,
-"запись" нового слова с присваиванием ему наибольшего номе-
ра.
При вызове микроподпрограммы выполняется операция "запи-
си" адреса возврата в стек. При возвращении из микроподпрог-
раммы выполняется операция "чтения" адреса возврата, затем -
"выталкивания" его же из стека.
Операция "чтения" без "выталкивания" выполняется при ис-
пользовании стека для организации циклов.
Разряды с именем "К" определяют тип выполняемой микро-
инструкции. В связи с тем, что теперь в схеме существует 4
источника адреса для управляющей памяти, возможны 4 типа бе-
зусловных переходов, кроме того, возможны различные условные
переходы в различных сочетаниях комбинирующие эти источники
адреса и входные переменные.
С помощью комбинационной схемы CS разряды микроинструкции
"К" преобразуются в сигналы управления стеком и мультиплексо-
ром.
УПРАВЛЕНИЕ С ПРЕДВОСХИЩЕНИЕМ
В конвейерном варианте для команд переходов по предикат-
ным переменным, зависящих без сдвига от сигналов управления,
приходится добавлять еще один такт для того, чтобы "увидеть"
значение переменной, по которой выполняется ветвление, и выб-
рать нужную МКИ.
Можно построить управляющий автомат, в котором для уско-
рения выполнения программы выполняются следующие действия:
Предварительно выбирается из ПЗУ одна из двух альтернативных
Реферат опубликован: 28/11/2009