Пояснительная записка (1074723), страница 3
Текст из файла (страница 3)
Рис 7. Микропрограмма операции логического поразрядного И с инверсией первого операнда:
Операция " " выполняется над логическими данными.
По каждой паре сигналов ЗАПР-ДАННЫЕ передается слово разрядностью 8 бит. ВУ выставляет на шину управления сигнал запроса данных ЗАПР и ждет от устройства А сигнала ДАННЫЕ. По этому сигналу ВУ принимает с входной шины переданные данные и снимает с шины управления сигнал ЗАПР.
Оба операнда (А и В) имеют длину по одному слову.
По первой паре сигналов ЗАПР-ДАННЫЕ с входной шины принимается первое логическое слово (А), а по второй паре сигналов ЗАПР-ДАННЫЕ с входной шины принимается второе логическое слово (В).
После того, как операнды были приняты с входной шины, над ними в АЛУ производятся следующие действия: получение инверсного значения B, а затем машинная операция и результат присваивается С.
Вывод данных из ВУ в устройство А производится по сигналу РЕЗ /результат/. ВУ выдает на шины управления ШУ сигнал РЕЗ и одновременно выставляет данные /результат/ на выходную шину ШВЫХ. Устройство А принимает данные и подтверждает прием результата сигналом ПРРЕЗ, после чего ВУ снимает с шины управления сигнал РЕЗ.
Разрядность выходного слова равна 8 бит.
Алгоритм микропрограммы операции " " представлен на рисунке № 8.
Рис 7. Микропрограмма операции логического поразрядного И с инверсией второго операнда:
-
Разработка обобщенной микропрограммы.
Обобщенная микропрограмма /лист 1/ разрабатывается в соответствие с постановкой задачи и фактически объединяет в себе функции всех вышеперечисленных микропрограмм: подключения и отключения, деления, обратного вычитания, вычитания модулей, ,
,
,
.
В обобщённой микропрограмме предусмотрены микрооперации для формирования сигналов: ГОТ, ЗАПР, ЗАН, РЕЗ.
Код операции и данные для работы микропрограммы принимаются с входной шины ШВХ, адрес ВУ – с шины адреса ША. Результат выполнения операции выдаётся на выходную шину ШВЫХ. Управляющие сигналы ПРГОТ, КОП, ДАННЫЕ и ПРРЕЗ, формируемые в инициализирующем устройстве, используются в микропрограмме в качестве условий. Код операции используется в микропрограмме в качестве условия для выполнения заданной операции.
Однако обобщенная микропрограмма не является простой компиляцией вышеперечисленных микропрограмм – она написана так, чтобы минимизировать количество состояний в таблице переходов управляющего автомата.
В связи с этим процедура принятия данных с входной шины и процедура выставления данных /результата/ на выходную шину сделаны общими для всех операций. Это позволило уменьшить количество состояний. Единственным исключением является операция “Логический сдвиг” – в ней по входной шине принимается только один операнд. Поэтому принятие данных осуществляется в самой микропрограмме операции сдвига.
Также для уменьшения количества состояний в таблице переходов управляющего автомата была выделена в отдельный блок процедуры инвертирования знаков первого (А) и второго (В) операндов и результата. Это позволило сэкономить еще несколько состояний. А так же ввиду того, что в микропрограмме присутствуют 2 операции вычитания и обе они осуществляются через АЛУ, заключительная часть этих операций- вычитание и инвертирование отрицательного результата выполнены общими для обеих микропрограмм. Еще одну возможность сокращения числа состояний дало то, что 3 логические операции связаны с логическим И и отличаются только состоянием операндов (прямое или инверсное значения).
Обобщенная микропрограмма работает следующим образом:
Микропрограмма подключения постоянно опрашивает шины адреса и шину управления ПРГОТ. При совпадении адреса на тумблерном регистре (N) устройства с адресом на шинах адреса, при условии, что ПРГОТ=1 и устройство свободно /ЗАН=0/. Для этого в обобщенной микропрограмме вычисляется значение логического выражения ПРГОТ <ЗАН> (ША=N), где N – значение, выставленное на тумблерном регистре; сравнение адресов и вычисление значения операции отношения ША=N производится поразрядным сравнением адресов по формуле: вычислительное устройство /ВУ/ выдает на управляющую шину сигнал готовности /ГОТ=1/ и ждет сигнала КОП от устройства А.
После того как пришел сигнал КОП, ВУ принимает в регистр кода операции код операции, выставленный устройством А на входной шине, выставляет на шину управления сигнал занятости /ЗАН=1/ и снимает сигнал готовности /ГОТ=0/.
После этого ВУ выдает сигнал запроса данных /ЗАПР=1/ и ждет подтверждения от устройства А выдачи данных /ДАННЫЕ/. Как только пришел сигнал ДАННЫЕ ВУ принимает их с входной шины в старшую часть регистра А и снимает сигнал запроса данных /ЗАПР=0/, а затем сигнал ДАННЫЕ.
После этого вычисляются значения 7 логических условий:
где E(2:0) – поле кода операции в команде. По каждому коду операции только одно из логических условий В1-В7 примет значение единица.
Каждое логическое условие В1-В7 управляет запуском определенной микропрограммы операции. Поэтому по коду операции будет выполнена соответствующая операция вычислительного устройства.
После того как соответствующая логическому условию часть обобщенной микропрограммы, ответственная за выполнение вычислений по нужной операции, будет выполнена, обобщенная микропрограмма выдает на выходную шину значение регистра С /результат/ и выставляет на шину управления сигнал готовности результата /РЕЗ=1/. После этого обобщенная микропрограмма дожидается от устройства А сигнала подтверждения приема результата /ПРРЕЗ=1/, и по получении сигнала снимает сигналы готовности результата /РЕЗ=0/ и занятости вычислительного устройства /ЗАН=0/.
В остальном соответствующие части обобщенной микропрограммы работают так же, как соответствующие части отдельных микропрограмм операций.
-
Разработка списка машинных слов, машинных операций и логических условий, сгруппированных по операционным элементам.
Для того чтобы составить список слов, используемых в микропрограмме, необходимо, внимательно просмотрев обобщённую микропрограмму (лист 1), выписать все встретившиеся в ней слова, а затем отсеять повторяющиеся. Также на основании обобщённой микропрограммы необходимо выделить все самостоятельно используемые поля слов. После этого следует определить, какие слова и в каких операционных элементах используются.
Затем, необходимо на основании обобщённой микропрограммы (лист 1) составить список всех встречающихся в ней логических условий и поставить каждому из них в соответствие осведомительный сигнал – Хi. После этого следует определить, какие осведомительные сигналы и в каких операционных элементах формируются.
Потом, выписывая все использующиеся в обобщенной микропрограмме (лист 1) микрооперации, мы каждой операции ставим в соответствие уникальную комбинацию управляющих сигналов ( ), которая будет инициировать выполнение данной микрооперации. При выборе уникальной комбинации управляющих сигналов следует по возможности минимизировать количество самих управляющих сигналов, но так, чтобы все еще была возможна аппаратная реализация заданной микрооперации. Аналогично предыдущему пункту следует определить, какие машинные операции и в каких операционных элементах выполняются.
Ниже приведена таблица №2, в которой собраны все списки слов, условия и управляющие сигналы для обобщенной микропрограммы в целом.
Таблица № 2. Списки машинных слов, машинных операций и логических условий.
Машинные слова | Логические условия | Машинные операции | ||||
Наименование и формат слова | Тип слова | Поля | Логические условия | Осведомительные сигналы | Машинная операция | Управляющие сигналы |
ША(5:0) | Целое | ПРГОТ & <ЗАН> & (ША==N) | X1 | ГОТ:=0 | Y16 | |
N (5:0) | Целое | ГОТ:=1 | Y17 | |||
Швх (7:0) | Целое | ЗАН:=0 | Y18 | |||
Швых (7:0) | Целое | КОП | X2 | ЗАН:=1 | Y19 | |
E (7:0) | Целое | E (4:7) | Данные | X3 | ЗАПР:=0 | Y20 |
A (7:0) | Целое или логич. | A (6:0) | B1 | X4 | ЗАПР:=1 | Y21 |
A (7:1) | B2 | X5 | РЕЗ:=0 | Y22 | ||
A (0) | B3 | X6 | РЕЗ:=1 | Y23 | ||
A (7) | B4 | X7 | E: =Швх | Y24, Y10, Y11 | ||
B (7:0) | Логич | B (7) | B5 | X8 | A: =Швх | Y24, Y11 |
D (7:0) | Целое или логич. | D (6:0) | B6 | X9 | B: =Швх | Y24, Y8, Y11 |
B7 | X10 | Сч:= E(4:7) | Y25, Y10, Y4, Y7 | |||
E (3) | X11 | D (6:0): =A (7:1) | Y26, Y1, Y7 | |||
Сч==0 | X12 | D (6:0): =A (6:0) | Y26, Y0, Y6 | |||
C (7:0) | Целое или логич. | A (7) | X13 | A (6:0): =D (6:0) | Y26, Y11, Y0, Y6 | |
B (7) | X14 | A (7:1): =D (6:0) | Y26, Y1, Y7, Y11 | |||
C (7) | X15 | A (7): =0 | Y27, Y7, Y14, Y15 | |||
Сч (3:0) | Целое | ПРРЕЗ | X16 | A (0): = 0 | Y27, Y0, Y14, Y15 | |
ЗАН | Логич | B (7): =0 | Y27, Y9, Y7, Y14, Y15 | |||
ГОТ | Логич | Сч = Сч-1 | Y28 | |||
ЗАПР | Логич | C: =A | Y29, Y12, Y13, Y15 | |||
РЕЗ | Логич | C: =A-B | Y29, | |||
C: =A&B | Y29, Y12, Y15 | |||||
C: =A V B | Y29, Y13, Y15 | |||||
D: =<C> | Y30, Y15, Y9 | |||||
D: = <A> | Y30, Y15 | |||||
D: =<B> | Y30, Y15, Y8 | |||||
C: =D | Y30, Y12, Y13 Y15, Y9, Y11 | |||||
A: = D | Y30, Y12, Y13 Y15, Y11 | |||||
B: =D | Y30, Y12, Y13 Y15, Y8, Y11 | |||||
D: =A+1 | Y30, Y12 | |||||
D: =B+1 | Y30, Y12, Y8 | |||||
D: =C+1 | Y30, Y12, Y9 | |||||
Швых: = С | Y31 |
Ниже представлены вспомогательные таблицы:
-
таблица №3, в которой показано как с помощью управляющих сигналов кодируются используемые поля слов,
-
таблица № 4, в которой отражена кодировка самих слов,
-
таблица №5 –определение, является ли операнд присваиваемым или тем, которому присваивают,
-
таблица №6, кодирующая операции АЛУ.
Таблица № 3. Кодирование полей слов.
Поля | y0 | y1 | y2 | y3 | y4 | y5 | y6 | y7 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
4 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
5 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
6 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Таблица № 4. Кодирование слов c помощью управляющих сигналов.
Слово | y10 | y9 | y8 |
A | 0 | 0 | 0 |
B | 0 | 0 | 1 |
C | 0 | 1 | 0 |
D | 0 | 1 | 1 |
E | 1 | 0 | 0 |
D (6:0) | 1 | 0 | 1 |
Примечание: Поскольку поле D(6:0) используется очень часто, его удобно в отличие от других полей, закодировать как слово - специальным образом. Тогда будет известно, что коды полей не относятся к D во избежание двусмысленности. С использованием таблицы 5 кодируется только один операнд – присваиваемый или тот, которому присваивают.