- •В. Ф. Нестерук Организация эвм и систем
- •Удк 004.2 (075)
- •Редактор н. Н. Пацула
- •История развития электронных цифровых вычислительных машин
- •Организация операционных устройств
- •Организация операционной части
- •Пример структурной организации оч для выполнения логических операций
- •Пример реализации оч для суммирования чисел с фиксированной запятой в прямых кодах
- •Выходных шинах, применяемых в схеме устройства элементов и узлов, либодля выработки лу в схему могут вводиться специальные элементы и узлы.
- •Микрооперации Логические условия
- •Организация интегральной операционной части
- •Примеры реализации операций в интегральной оч
- •Аппаратное наращивание интегральной оч
- •Организация управляющей части
- •Типовая структура управляющей части
- •Пример структурной реализации бму серии к584 ву1
- •Основные режимы адресации бму
- •Интерфейсные средства микроЭвм
- •Организация системы синхронизации
- •Пример интегрального контроллера синхронизации к583вг1
- •Организация микроЭвм с микропрограммным управлением
- •Типовые циклы функционирования микроЭвм
- •Организация командного управления
- •Форматы и адресность команд
- •Адресации в командном цикле
- •Библиографический список
- •Содержание
Примеры реализации операций в интегральной оч
При отображении алгоритма выполняемой операции в системе микроинструкций используется следующая методика.
Исходный алгоритм детализируется до уровня регистровых пересылок.
Размещение необходимых переменных и констант закрепляется за определенными регистрами интегральной ОЧ (распределение аппаратных средств).
Формальным регистрам, задействованным в алгоритме, ставятся в соответствие физические регистры ОЧ, при этом учитывается, что сумматор комбинационный (нет накопления результата).
Осуществляется отображение исходного алгоритма в системе микроинструкций.
Выполняется моделирование исполнения микропрограммы на инструментальных средствах либо отладка на макете ОЧ.
Рассмотрим пример выполнения логической операции. В соответствии с приведённой выше методикой исходный алгоритм (рис. 14 а) детализируется до уровня регистровых пересылок (рис. 14 б). Закрепляем за логическим регистром R1 физический регистр РОН0, а за логическим регистром R2 – РОН1. Для размещения результата будем использовать РОН2. Учитывая систему микроинструкций и комбинационные свойства сумматора, для сохранения промежуточных результатов и пересылок используем РР.
Результирующая микропрограмма приведена на рис. 14 в.
Если в ОЧ реализуется набор микропрограмм (операций), то рекомендуется в общем алгоритме работы микроЭВМ реализовать общий протокол ввода и общий протокол вывода для всех операций, то есть исходные операнды и результаты будут размещаться в одних и тех же регистрах для всех операций.
Пример фрагмента микропрограммы операции суммирования чисел в прямых кодах представлен в табл. 4. Исходным считаем алгоритм, приведённый на рис. 9, а отображение на уровень регистровых пересылок выполнено при разработке соответствующей ГСА (см. рис. 11). За исходными операндами закрепляются РОН0, РОН1, за результатом – РОН2. В РОН3 хранится константа вида 10…0, РОН4 и РОН5 используются для временного размещения модулей операндов. Мнемокоды инструкций соответствуют требованиям отладчика К584EMUL.
Таблица 4
Микропрограмма операции суммирования
№ |
Адрес |
Мнемокод инструкции |
Примечание |
1 |
2 |
3 |
4 |
1 |
00 0000 |
PОН0:=ШИНвх |
Ввод операнда А |
2 |
00 0001 |
PОН1:=ШИНвх |
Ввод операнда В |
3 |
00 0010 |
РР:=!PОН0+П (П=1) |
А = 0 ? Если да, то идти к 27 |
4 |
00 0011 |
РР:=!PОН1+П (П=1) |
В = 0 ? Если да, то идти к 29 |
5 |
00 0100 |
РР:=!П (П=1) |
РР = 0..0 |
6 |
00 0101 |
РР:=СЦП (РР+П) (П=1) |
РР = 10...0 |
7 |
00 0110 |
PОН3:=РР+П (П=0) |
Сохранение маски 10...0 в РОН3 |
8 |
00 0111 |
РР:=PОН0+П (П=0) |
Пересылка А |
9 |
00 1000 |
РР:=!PОН3 and РР |
Выделение Ам |
10 |
00 1001 |
PОН4:=РР+П (П=0) |
Сохранение Ам |
11 |
00 1010 |
РР:=PОН1+П (П=0) |
Пересылка В |
12 |
00 1011 |
РР:=!PОН3 and РР |
Выделение Вм |
13 |
00 1100 |
PОН5:=РР+П (П=0) |
Сохранение Вм |
14 |
00 1101 |
РР:=PОН0+П (П=0) |
Пересылка А |
15 |
00 1110 |
РР:=PОН1 xor РР |
Сравнение знаков |
16 |
00 1111 |
РР:=СЦЛ (РР+П) (П=0) |
Если !СД1 = 0, идти к 30 |
17 |
01 0000 |
РР:=PОН4+П (П=0) |
Пересылка Ам |
18 |
01 0001 |
РР:=PОН5+РР+П (П=0) |
См = Ам + Вм |
19 |
01 0010 |
PОН2:=РР+П (П=0) |
Сохранение См |
20 |
01 0011 |
РР:=СЦЛ (РР+П) (П=0) |
Если !СД1=0, идти к 36 |
21 |
01 0100 |
РР:=PОН0+П (П=0) |
Пересылка А в РР |
Продолжение табл. 4
1 |
2 |
3 |
4 |
22 |
01 0101 |
РР:=PОН3 and РР |
Формирование ЗнС |
23 |
01 0110 |
PОН2:=PОН2 or РР |
Формирование С |
24 |
01 0111 |
РРР:=!П (П=1) |
Сообщение «Переполнения нет» |
25 |
01 1000 |
ШИНвых:=РРР+П(П=0) |
Вывод сообщения |
26 |
01 1001 |
ШИНвых:=PОН2 |
Вывод С, "Конец" |
27 |
01 1010 |
РР:=PОН1+П (П=0) |
Пересылка В в РР |
28 |
01 1011 |
PОН2:=РР+П (П=0) |
Сохранение С, идти к 24 на вывод |
29 |
01 1100 |
РР:=PОН0+П (П=0) |
Пересылка А в РР, идти к 28 |
30 |
01 1101 |
РР:=PОН4+П (П=0) |
Пересылка Ам в РР |
31 |
01 1110 |
РР:=РР-PОН1-1+П (П=1) |
См = Ам – Вм |
32 |
01 1111 |
PОН2:=РР+П (П=0) |
Сохранение См |
33 |
10 0000 |
РР:=!РР+П (П=1) |
Если См = 0, идти к 37 |
34 |
10 0001 |
РР:=PОН2+П (П=0) |
Пересылка См в РР |
35 |
10 0010 |
РР:=СЦЛ (РР+П) (П=0) |
Если !СД1=0, идти к 38, иначе к 21 |
36 |
10 0011 |
РРР:=!П (П=0) |
«Переполнение», идти к 25 |
37 |
10 0100 |
PОН2:=!П (П=1) |
С = 0, идти к 24 |
38 |
10 0101 |
РР:=PОН5+П (П=0) |
Пересылка Вм в РР |
39 |
10 0110 |
РР:=РР-PОН4-1+П (П=1) |
См = Вм – Ам |
40 |
10 0111 |
PОН2:=РР+П (П=0) |
Пересылка См |
41 |
10 1000 |
РР:=PОН1+П (П=0) |
Пересылка В в РР, идти к 22 |
Так как система микроинструкций алгоритмически избыточна, реализовать конкретную микропрограмму можно многими путями с учетом требований технического задания. Например, если требуется самая дешевая реализация без ограничений во времени, алгоритм реализуется программным путем, без привлечения дополнительных аппаратных средств. Если требуется ускоренная реализация, привлекаются внешние аппаратные средства, ускоряющие выполнение тех или иных инструкций.
В первом случае все требуемые константы можно формировать внутри процессора программным путем. Во втором случае все требуемые константы желательно вводить из внешней постоянной памяти, а функции, требующие ускорения, реализовать во внешних аппаратных средствах (быстром умножителе, быстром сдвигателе и т.п.).