Студентам > Курсовые > Методичка для курсового проектирования по ПТЦА
Методичка для курсового проектирования по ПТЦАСтраница: 5/5
Переход к микроподпрограмме с возвратом
При реализации достаточно сложных вычислений удобно
вос-
пользоваться механизмом микроподпрограмм.
Одна и та же микроподпрограмма может быть
вызвана из
разных точек вызывающих микропрограмм. Поэтому при
вызове
микроподпрограммы необходимо запомнить адрес, с тем,
чтобы
восстановить его при возвращении из микроподпрограммы.
Чтобы
запомнить и восстановить адреса возврата от вложенных
вызо-
вов, используется безадресная память - стек (stack).
Принцип (дисциплина) работы стека описывается
условием
"последний вошел - первым вышел" (Last In -
First Out, LIFO).
чтобы описать этот принцип будем считать, что слова,
хранящи-
еся в стеке, перенумерованы с помощью первых натуральных
чи-
сел 1,2,...,N. Слово с наибольшим номером называют
вершиной
стека.
Стек может выполнять следующие действия:
-"чтение" слова с наибольшим номером,
-"выталкивание" (стирание) из памяти слова с
наибольшим но-
мером,
-"запись" нового слова с присваиванием ему
наибольшего номе-
ра.
При вызове микроподпрограммы выполняется операция
"запи-
си" адреса возврата в стек. При возвращении из
микроподпрог-
раммы выполняется операция "чтения" адреса
возврата, затем -
"выталкивания" его же из стека.
Операция "чтения" без
"выталкивания" выполняется при ис-
пользовании стека для организации циклов.
Разряды с именем "К" определяют тип
выполняемой микро-
инструкции. В связи с тем, что теперь в схеме
существует 4
источника адреса для управляющей памяти, возможны 4 типа
бе-
зусловных переходов, кроме того, возможны различные
условные
переходы в различных сочетаниях комбинирующие эти
источники
адреса и входные переменные.
С помощью комбинационной схемы CS разряды
микроинструкции
"К" преобразуются в сигналы управления стеком и
мультиплексо-
ром.
УПРАВЛЕНИЕ С ПРЕДВОСХИЩЕНИЕМ
В конвейерном варианте для команд переходов по
предикат-
ным переменным, зависящих без сдвига от сигналов управления,
приходится добавлять еще один такт для того, чтобы
"увидеть"
значение переменной, по которой выполняется ветвление, и
выб-
рать нужную МКИ.
Можно построить управляющий автомат, в котором для
уско-
рения выполнения программы выполняются следующие
действия:
Предварительно выбирается из ПЗУ одна из двух
альтернативных
МКИ, соответствующая наиболее вероятному значению
переменной
ветвления. Это значение должно храниться в той МКИ, после
ко-
торой выполняется ветвление. В конце такта выработанное
ре-
альное значение переменной сравнивается с предсказанным,
если
они совпадают, то выбранная из ПЗУ МКИ записывается в
выход-
ной регистр, если нет, то предыдущий такт продлевается,
т.е.
не синхронизируются ОА и RG'МКИ. Микропрограмма будет
такой
же как и для последовательного варианта взаимодействия
ОА и
УА, но в МКИ добавляются два разряда:
F = { 1, если используется предвосхищение; 0, если нет
},
P - наиболее вероятное значение переменной ветвления.
Фрагмент схемы УА, обеспечивающий предвосхищение
может
быть таким:
──────────────┐
│ │W
┌┬──┬┐
│ ─V┬───┐ q
┌A───┐ f
t ││RG││
└──>┤MUX├───>┤ SS
├<──────────────────────┐
──┬───>┤│
│├────>┤
│┌──>┤
├<─────────────────────┐│
│ ││ ││
│ ││t │ │ p
││
│
─┴┴──┴┘
└───┘│
─┴┬───┘
││
│ │ │ │
│j ││
└───┼────────────────┘
│─V┬───┐
┌─────┐ P
┌┬──┬┐p││
│ │
│MUX│ │ ROM
├───>┤│RG│├─┘│
│ │ │
│ │ │ F ││ ││f │
│ │
│ ├───>┤│
│├──┘
│ │
│ │ ││ ││
│ │
│ ▐███>││
│▐██>
│ │
│ │ ││ ││
C │ │
└─────┘
─A┴┴──┴┘
────┴───────────────────┴───────────────────┘└──────
W
Пусть c=1 в конце такта.
Схема SS это автомат, который может находиться в
одном
из двух состояний s0 и s1,
если s0, 0f, то w=1, j=q
если s0, 1f, 0c, то w=0, j=p
если s0, 1f, 1c, p==t, то w=1, j=p
если s0, 1f, 1c, p=/=t, то w=0, j=x, переход в s1
если s1, то w=1, j=q, переход в s0
Copyright © Radioland. Все права защищены. Дата публикации: 2004-09-01 (0 Прочтено) |