пояснительная записка (1075018), страница 3
Текст из файла (страница 3)
3.9. Микропрограмма операции "!( )"
Операция "!( )" выполняется над логическими данными.
По каждой паре сигналов ЗАПР-ДАННЫЕ передается слово разрядностью 8 бит. ВУ выставляет на шину управления сигнал запроса данных ЗАПР и ждет от устройтсва А сигнала ДАННЫЕ. По этому сигналу ВУ принимает с входной шины переданные данные и снимает с шины управления сигнал ЗАПР.
Оба операнда (А и В) имеют длину по одному слову.
По первой паре сигналов ЗАПР-ДАННЫЕ с входной шины принимается первое логическое слово (А), а по второй паре сигналов ЗАПР-ДАННЫЕ с входной шины принимается второе логическое слово (В).
После того, как операнды были приняты с входной шины, над ними в АЛУ производится машинная операция !( ) и результат присваивается С.
Вывод данных из ВУ в устройство А производится по сигналу РЕЗ /результат/. ВУ выдает на шины управления ШУ сигнал РЕЗ и одновременно выставляет данные /результат/ на выходную шину ШВЫХ. Устройство А принимает данные и подтверждает прием результата сигналом ПРРЕЗ, после чего ВУ снимает с шины управления сигнал РЕЗ.
Разрядность выходного слова равна 8 бит.
Алгоритм микропрограммы операции "!( )" представлен на рисунке № 9.
4. Разработка обобщенной микропрограммы
Обобщенная микропрограмма /лист 1/ разрабатывается в соответствие с постановкой задачи и фактически объединяет в себе функции всех вышеперечисленных микропрограмм: подключения и отключения, деления, арифметического сдвига, вычитания модулей, обратного вычитания модулей, ,
, !(
).
В обобщённой микропрограмме предусмотрены микрооперации для формирования сигналов: ГОТ, ЗАПР, ЗАН, РЕЗ.
Код операции и данные для работы микропрограммы принимаются с входной шины ШВХ, адрес ВУ – с шины адреса ША. Результат выполнения операции выдаётся на выходную шину ШВЫХ. Управляющие сигналы ПРГОТ, КОП, ДАННЫЕ и ПРРЕЗ, формируемые в инициализирующем устройстве, используются в микропрограмме в качестве условий. Код операции используется в микропрограмме в качестве условия для выполнения заданной операции.
Однако обобщенная микропрограмма не является простой компиляцией вышеперечисленных микропрограмм – она написана так, чтобы минимизировать количество состояний в таблице переходов управляющего автомата.
В связи с этим процедура принятия данных с входной шины и процедура выставления данных /результата/ на выходную шину сделаны общими для всех операций. Это позволило уменьшить количество состояний на 6*6=36 состояний.
Так как при операции "деление" с входной шины принимается не 2, а 3 операнда (вернее 3 слова – так как делимое имеет размер в 2 слова), то в части обобщенной микропрограммы, соответствующей операции "деление" предусмотрена возможность принятия с входной шины 3-его операнда. В дополнение к этому, так как при операции "деление" на выходную шину выдается не 1, а 2 операнда (остаток и частное), в части обобщенной микропрограммы, соответствующей операции "деление" предусмотрена возможность выдачи на выходную шину 2-ого операнда.
Также для уменьшения количества состояний в таблице переходов управляющего автомата была выделена в отдельный блок процедура инвертирования знака второго операнда (В). Это позволило сэкономить еще 8 состояний.
Обобщенная микропрограмма работает следующим образом:
Микропрограмма подключения постоянно опрашивает шины адреса и шину управления ПРГОТ. При совпадении адреса на тумблерном регистре (N) устройства с адресом на шинах адреса, при условии, что ПРГОТ=1 и устройство свободно /ЗАН=0/ (для этого в обобщенной микропрограмме вычисляется значение логического выражения ПРГОТ ЗАН (ША=N), где N – значение, выставленное на тумблерном регистре; сравнение адресов и вычисление значения операции отношения ША=N производится поразрядным сравнением адресов по формуле: ) вычислительное устройство /ВУ/ выдает на управляющую шину сигнал готовности /ГОТ=1/ и ждет сигнала КОП от устройства А.
После того как пришел сигнал КОП, ВУ принимает в регистр кода операции код операции, выставленный устройством А на входной шине, выставляет на шину управления сигнал занятости /ЗАН=1/ и снимает сигнал готовности /ГОТ=0/.
После этого ВУ выдает сигнал запроса данных /ЗАПР=1/ и ждет подтверждения от устройства А выдачи данных /ДАННЫЕ/. Как только пришел сигнал ДАННЫЕ ВУ принимает их с входной шины в старшую часть регистра А и снимает сигнал запроса данных /ЗАПР=0/.
После этого вычисляется логическое условие . Если В1=1, значит должна выполняться операция "деление" и, следователно, нужно прочитать дополнительное слово с входной шины. Поэтому ВУ выдает сигнал запроса данных /ЗАПР=1/ и ждет подтверждения от устройства А выдачи данных /ДАННЫЕ/. Как только пришел сигнал ДАННЫЕ ВУ принимает их с входной шины в младшую часть регистра А и снимает сигнал запроса данных /ЗАПР=0/.
После этого ВУ выдает сигнал запроса данных /ЗАПР=1/ и ждет подтверждения от устройства А выдачи данных /ДАННЫЕ/. Как только пришел сигнал ДАННЫЕ ВУ принимает их с входной шины в регистр В и снимает сигнал запроса данных /ЗАПР=0/.
После этого вычисляются значения 7 логических условий:
где E(2:0) – поле кода операции в команде. По каждому коду операции только одно из логических условий В1-В7 примет значение единица.
Каждое логическое условие В1-В7 управляет запуском определенной микропрограммы операции. Поэтому по коду операции будет выполнена соответствующая операция вычислительного устройства.
После того как соответсвующая логическому условию часть обобщенной микропрограммы, ответсвенная за выполнение вычислений по нужной операциии, будет выполнена, обобщенная микропрограмма выдает на выходную шину значение регистра С /результат/ и выставляет на шину управления сигнал готовности результата /РЕЗ=1/. После этого обобщенная микропрограмма дожидается от устройства А сигнала подтверждения приема результата /ПРРЕЗ=1/, и по получении сигнала снимает сигналы готовности результата /РЕЗ=0/ и занятости вычислительного устройства /ЗАН=0/.
Если при выполнении операции "деление" возник сигнал деления на ноль /ПР=1/, то обобщенная микропрограмма не выставляет на выходную шину никого результата, а сразу снимает сигналы готовности результата /РЕЗ=0/ и занятости вычислительного устройства /ЗАН=0/.
Если при вычислении логического условия ЗнВ в ходе выполнения операции "деление" или "вычитание модулей" получилось, что ЗнВ=1, то вызывается специально выделенная процедура инвертирования знака числа В. В самом конце своей работы данная процедура вычисляет логическое условие В1, и если В1=1, то переходит к микрооперации увеличения счетчика в операции "деление"; если В1=0, то процедура переходит к следующей микрооперации (после той, из которой вызвали процедуру) в операции "вычитание модулей" или "вычитание модулей обратное".
В остальном соответствующие части обобщенной микропрограммы работают так же, как соответсвующие части отдельных микропрограмм операций.
5. Разработка списка машинных слов, машинных операций и логических условий, сгруппированных по операционным элементам
Для того чтобы составить список слов, используемых в микропрограмме, необходимо, внимательно просмотрев обобщённую микропрограмму (лист 1), выписать все встретившиеся в ней слова, а затем отсеять повторяющиеся. Также на основании обобщённой микропрограммы необходимо выделить все самостоятельно используемые поля слов. После этого следует определить, какие слова и в каких операционных элементах используются.
Затем, необходимо на основании обобщённой микропрограммы (лист 1) составить список всех встречающихся в ней логических условий и поставить каждому из них в соответствие осведомительный сигнал – Хi. После этого следует определить, какие осведомительные сигналы и в каких операционных элементах формируются.
Потом, выписывая все использующиеся в обобщенной микропрограмме (лист 1) микрооперации, мы каждой операции ставим в соответствие уникальную комбинацию управляющих сигналов ( ), которая будет инициировать выполнение данной микрооперации. При выборе уникальной комбинации управляющих сигналов следует по возможности минимизировать количество самих управляющих сигналов, но так, чтобы все еще была возможна аппаратная реализация заданной микрооперации. Аналогично предыдущему пункту следует определить, какие машинные операции и в каких операционных элементах выполняются.
Результаты всех вышеприведенных действий представлены ниже.
Управляющие сигналы и их функции.
Выполняемая функция | Управляющий сигнал |
E:=ШВх | У1 |
ЗАПР:=0 | У2 |
ЗАПР:=1 | У3 |
ЗАН:=0 | У4 |
ЗАН:=1 | У5 |
ГОТ:=0 | У6 |
ГОТ:=1 | У7 |
РЕЗ:=0 | У8 |
РЕЗ:=1 | У9 |
ТзнА:=ШВх5 и сигнал смены режима РгА(15:8) | У10 |
ТзнВ:=ШВх5 и сигнал смены режима РгВ | У11 |
Выбор инф. входа для MSзн и MSA2 | У12 |
Выбор инф. входа для MSA и MSB | У14 |
Выбор инф. входа для MSA и MSB | У15 |
Выбор нового режима РгА(15:8), РгА(7:0) и РгВ | У16 |
Выбор нового режима РгА(15:8), РгА(7:0) и РгВ | У17 |
Сигнал смены режима РгA(7:0) | У18 |
Швых:=C | У19 |
Выбор функции АЛУ | У20 |
Выбор функции АЛУ | У21 |
Выбор функции АЛУ | У22 |
Выбор функции АЛУ | У23 |
Выбор функции АЛУ | У24 |
Выбор инф. входа для MSC | У25 |
Выбор нового режима РгС и РгD | У26 |
Сигнал смены режима РгC | У28 |
Сигнал смены режима РгD | У29 |
Сч:=0 | У30 |
Сч:=Сч + 1 | У31 |
Сч:=Сч - 1 | У32 |
Машинные операции и их управляющие сигналы.
Микрооперация | Управляющие сигналы |
E:=ШВх | У1 |
ЗАПР:=0 | У2 |
ЗАПР:=1 | У3 |
ЗАН:=0 | У4 |
ЗАН:=1 | У5 |
ГОТ:=0 | У6 |
ГОТ:=1 | У7 |
РЕЗ:=0 | У8 |
РЕЗ:=1 | У9 |
ТзнА:=ШВх7 | У10 |
ТзнВ:=ШВх7 | У11 |
А(15:8):=ШВх | У16, У17, У10, У15 |
А(15:8):=С | У16, У17, У10, У14 |
А(15:8):=D | У16, У17, У10, У14, У15 |
А(7:0):=ШВх | У16, У17, У18, У15 |
А(7:0):=C | У16, У17, У18, У14 |
L1(A.0) | У17, У10, У18 |
В:=ШВх | У16, У17, У11, У15 |
В:=С | У16, У17, У11, У14 |
В:=D | У16, У17, У11, У14, У15 |
С:=A(15:8) | У26, У28, У25 |
С:=A(7:0) | У26, У28, У25, У12 |
С:=B | У26, У28, У25, У20, У22, У24 |
С:=A(15:8) – 1 | У26, У28, У25, У20, У21, У22, У23 |
С:=!A(15:8) | У26, У28, У25, У24 |
С:=A(15:8) – B – 1 | У26, У28, У25, У21, У22 |
С:=A(15:8) + B | У26, У28, У25, У23 |
С:=1 | У26, У28, У25, У20, У21, У24 |
С:=А(7:0) + В | У26, У28, У25, У23, У12 |
С(7):=ТзнА | У26, У28 |
У26, У28, У12 | |
С:=A(15:8) /\ B | У26, У28, У25, У20, У22, У23, У24 |
С:=A(15:8) \/ B | У26, У28, У25, У20, У21, У22, У24 |
С:=!((A(15:8) /\ B)) | У26, У28, У25, У22, У24 |
D:=A(15:8) | У26, У29 |
D:=B | У26, У29, У20, У22, У24 |
Сч:=0 | У30 |
Сч:=Сч + 1 | У31 |
Сч:=Сч - 1 | У32 |
Швых:=C | У19 |
РегЗ1=ЗнА | У33 |
R=A(1:7) | У34 |
Сч=K(4:7) | У35 |
R=L1(R.0) | У36 |
R=R1(R.0) | У37 |
C(7:1)=R | У38 |
C(0)=РегЗ1 | У39 |
Машинные слова