ПЗ (1075436), страница 2
Текст из файла (страница 2)
___
B3 = E(2)^E(1)^E(0)
___ ___
B4 = E(2)^E(1)^E(0)
___
B5 = E(2)^E(1)^E(0)
___
B6 = E(2)^E(1)^E(0)
B7 = E(2)^E(1)^E(0)
где Е(2:0) - поле кода операции в команде. По каждому коду операции только одно из логических условий В1-В7 примет значение единица.
Каждое логическое условие В1-В7 управляет запуском определенной микропрограммы операции. Поэтому по коду будет выполнена соответствующая операция вычислительного устройства.
Для отключения ВУ от интерфейса используется микропрограмма отключения, которая снимает сигнал занятости устройства /3АН=0/. По этому сигналу устройство А снимает адрес с шины адреса, освобождая интерфейс для работы с другими устройствами.
На рисунке 1 приведен алгоритм микропрограмм подключения и отключения ВУ от общей шины.
Рис 1. Подключение и Отключение от Общей Шины.
-
Микропрограмма операции Деление
Операция деления выполняется над целыми двоичными числами со знаком. Длина каждого операнда /числителя и знаменателя/ - 10 бит (два слово), где младшие 9 бит определяют сам операнд, а 10й бит - знак операнда. Длина результата - 10(два слова). На входные шины данных сначала поступает числитель, а затем – знаменатель, регистр С разрядностью 8 используется как счетчик деления (частное). На выходные шины данных выдается сначала старшие разряды произведения, а затем младшие.
Операции сложения, вычитания и сравнения выполняются через ALU. В операции деления используется модули двух операндов, а знак получается, как сумма по модулю двух знаков делителя и знаменателя.
Рис 2. Операция Деление
-
Микропрограмма операции Вычитание модулей обратное
Для Выполнения микрооперации вычитание модулей обратное необходимо получить значения в регистры А и В в обратном порядке. Для этого Отправляются запросы на шины и присваиваются значения регистрам в обратном порядке, сначала для регистра В, потом для регистра А. После этого, для того, чтобы обозначить модуль, значения А(9) и В(9) обнуляются. После этого выполняется обычное вычитание А-В на АЛУ.
Рис 3. Операция Вычитание Модулей Обратное
-
Микропрограмма операции Сложение
Сложение производится на АЛУ с обычными данными: 1й операнд в регистре А и второй – в регистре В.
Рис 4. Операция Сложение
-
Микропрограмма операции Вычитание
Вычитание производится на АЛУ с обычными данными: 1й операнд в регистре А и второй – в регистре В.
Рис 5. Операция Вычитание
-
Микропрограмма операции A&B
Операция выполняется с обычными данными на АЛУ: 1й операнд в регистре А и 2второй – в регистре В.
Рис 6. Операция A&B
-
Микропрограмма операции A | B
Операция выполняется с обычными данными на АЛУ: 1й операнд в регистре А и 2второй – в регистре В.
Рис 7. Операция A | B
-
Микропрограмма операции Отрицание
Операция выполняется с обычными данными на АЛУ: единственный операнд находится в регистре А
Рис 8. Операция !A
З. Разработка обобщенной микропрограммы
Обобщенная микропрограмма /лист 1/ разрабатывается в соответствие с постановкой задачи и фактически объединяет в себе функции всех вышеперечисленных микропрограмм: подключения и отключения, деления, вычитания модулей обратного, сложения, вычитания, А&B, A|B, !A.
В обобщённой микропрограмме предусмотрены микрооперации для формирования сигналов: ГОТ, ЗАПР, ЗАН, РЕЗ.
Код операции и данные для работы микропрограммы принимаются с входной шины ШВХ, адрес ВУ - с шины адреса ША Результат выполнения операции выдаётся на выходную шину ШВЫХ.
Управляющие сигналы ПРГОТ, КОП, ДАННЫЕ и ПРРЕЗ, формируемые в инициализирующем устройстве, используются в микропрограмме в качестве условий. Код операции используется в микропрограмме в качестве условия для выполнения заданной операции. Однако обобщенная микропрограмма не является простой компиляцией вышеперечисленных микропрограмм - она написана так, чтобы минимизировать количество состояний в таблице переходов управляющего автомата. В связи с этим процедура принятия данных с входной шины и процедура выставления данных /результата/ на выходную шину сделаны общими для всех операций.
Обобщенная микропрограмма работает следующим образом:
Микропрограмма подключения постоянно опрашивает шины адреса и шину управления ПРГОТ. При совпадении адреса на тумблерном регистре (N) устройства с адресом на шинах адреса, при условии, что ПРГОТ=1 и устройство свободно /ЗАН=0/. Для этого в обобщенной микропрограмме
вычисляется значение логического выражения ПРГОТ ^ <ЗАН> ^ (ША=N), где N - значение, выставленное на тумблерном регистре. Вычислительное устройство /ВУ/ выдает на управляющую шину сигнал готовности /ГОТ=1/ и ждет сигнала КОП от устройства А. После того как пришел сигнал КОП, ВУ принимает в регистр кода операции код операции, выставленный устройством А на входной шине, выставляет на шину управления сигнал занятости /3АН=1/ и снимает сигнал готовности /ГОТ=0/.
После этого ВУ выдает сигнал запроса данных /ЗАПР=1/ и ждет подтверждения от устройства А выдачи данных /ДАННЫЕ/. Как только пришел сигнал ДАННЫЕ ВУ принимает их с входной шины в старшую часть регистра А и снимает сигнал запроса данных /ЗАПР=0/, а затем сигнал ДАННЫЕ.
После этого вычисляются значения 7 логических условий:
___ ___
B1 = E(2)^E(1)^E(0)
___ ___
B2 = E(2)^E(1)^E(0)
___
B3 = E(2)^E(1)^E(0)
___ ___
B4 = E(2)^E(1)^E(0)
___
B5 = E(2)^E(1)^E(0)
___
B6 = E(2)^E(1)^E(0)
B7 = E(2)^E(1)^E(0)
где Е(2:0) - поле кода операции в команде. По каждому коду операции только одно из логических
условий В1-В7 примет значение единица.
Каждое логическое условие В1-В7 управляет запуском определенной микропрограммы операции. Поэтому по коду операции будет выполнена соответствующая операция вычислительного устройства.
После того как соответствующая логическому условию часть обобщенной микропрограммы, ответственная за выполнение вычислений по нужной операции, будет выполнена, обобщенная микропрограмма выдает на выходную шину значение регистра С /результат/ и выставляет на шину управления сигнал готовности результата /РЕ3=1/. После этого обобщенная микропрограмма дожидается от устройства А сигнала подтверждения приема результата /ПРРЕ3=1/, и по получении сигнала снимает сигналы готовности результата /РЕ3-О/ и занятости вычислительного устройства /ЗАН=0/.
В остальном соответствующие части обобщенной микропрограммы работают так же, как соответствующие части отдельных микропрограмм операций.
4.Разработка списка машинных слов, машинных операции и логических условий, сгруппированных по операционным элементам.
Для того чтобы составить список слов, используемых в микропрограмме, необходимо, внимательно просмотрев обобщённую микропрограмму (лист 1), выписать все встретившиеся в ней слова, а затем отсеять повторяющиеся. Также на основании обобщённой микропрограммы необходимо выделить все самостоятельно используемые поля слов. После этого следует определить, какие слова и в каких операционных элементах используются.
Затем, необходимо на основании обобщённой микропрограммы (лист 1) составить список всех встречающихся в ней логических условий и поставить каждому из них в соответствие осведомительный сигнал - Xi. После этого следует определить, какие осведомительные сигналы и в каких операционных элементах формируются.
Потом, выписывая все использующиеся в обобщенной микропрограмме (лист 1) микрооперации, мы каждой операции ставим в соответствие уникальную комбинацию управляющих сигналов ( У1 , У2, … ), которая будет инициировать выполнение данной микрооперации. При выборе уникальной комбинации управляющих сигналов следует по возможности минимизировать количество самих управляющих сигналов, но так, чтобы все еще была возможна аппаратная реализация заданной микрооперации. Аналогично предыдущему пункту следует определить, какие машинные операции и в каких операционных элементах выполняются.
Ниже приведены таблицы, в которых собраны все списки слов, условия и управляющие сигналы для обобщенной микропрограммы в целом.
| Имя | Тип | Формат | Примечание |
| A | IL | A(0:9) | Первый операнд |
| B | IL | В(0:9) | Второй операнд |
| C | LO | С(0:9) | Результат |
| D | IL | D(0:2) | Код операции |
| ЗАН | О | ЗАН(0) | Бит хранящий значение шины занятости устройства |
| ЗАПР | О | ЗАПР(0) | Бит хранящий значение шины запроса на передачу данных |
| ГОТ | О | ГОТ(0) | Бит хранящий значение шины готовности устройства |
| РЕЗ | О | РЕЗ(0) | Бит хранящий значение шины готовности передачи данных |
Микрооперации:
| B1 | Конъюнкция |
| B2 | Сложение |
| B3 | Вычитание |
| B4 | Вычитание модулей обратное |
| B5 | Конъюнкция |
| B6 | Дизъюнкция |
| B7 | Отрицание |
Логические Условия:
| Х1 | ГОТ^(ША=N)^(ЗАН) | Х7 | В2 |
| Х2 | КОП | Х8 | В3 |
| Х3 | В4 | Х9 | В5 |
| Х4 | ДАННЫЕ | Х10 | В6 |
| Х5 | В7 | Х11 | ПРРЕЗ |
| Х6 | В1 | Х12 | A > B |
Машинные Операции:
| Y1 | ГОТ := 1 | Y17 | C:=A&B |
| Y2 | D:=ШВх | Y18 | C:=A | B |
| Y3 | ГОТ:=0 | Y19 | C:= !A |
| Y4 | ЗАН:=1 | Y20 | C:=A - B |
| Y5 | ЗАПР:=1 | Y21 | Зн := А(9) +(mod2)В(9) |
| Y6 | A:=ШВх | ||
| Y7 | ЗАПР:=0 | ||
| Y8 | B:=ШВх | ||
| Y9 | ЗАН:=0 | Y25 | С := 0 |
| Y10 | РЕЗ:=1 | Y26 | A := A - B |
| Y11 | ШВых:=C | Y27 | C := C + 1 |
| Y12 | РЕЗ:=0 | Y28 | C(9) := Зн |
| Y13 | А(9):=0 | ||
| Y14 | В(9):=0 | ||
| Y15 | С:=A-B | ||
| Y16 | C:=A + B |
5. Разработка закодированного графа обобщенной микропрограммы.
Закодированный граф обобщенной микропрограммы составляется на основе обобщенной микропрограммы, списка микроопераций и списка логических условий путем подстановки соответствующих управляющих сигналов в соответствии с текущей микрооперацией в каждый узел графа. Логические условия являются условиями перехода. После этого для всех узлов полученного графа присваиваются значения: порядковый номер вершины, начиная с 0й.
6. Синтез и схемы операционных элементов.















