j4 <<GO (0; g1)>>
m5 {
:=1; B[0-23]:=X[0-23]; (p,S)=A2[0-23]-B[0-23]}g6 <<GO (z; g5, g7)>>
g7 <<GO (p; m6, g5)>>
m6 {A2[0-23]:=B[0-23]}
m7 {d1d0:=d1d0(A2)}
j3 <<GO (0; g5)>>
m9 {
:=1; d1’d0’:=0,0; i:=0; :=0}g8 <<GO (
; m10, g1)>>m10 {
:=1; A1[0-3]:=0,0,0,0; A2[0-23]:=X[0-23]}m11 {d1d0:=d1d0(A2)}
m12 {A1[3],A2[0-23]:=A2[0-23],0}
m13 {B[0-23]:=A1[3],A2[0-22]}
m14 {A1[2-3],A2[0-23]:=A1[3],A2[0-23],0}
m15 {A1[1-3],A2[0-23]:=A1[2-3],A2[0-23],0}
m16 {A1[0-3],A2[0-23]:=A1[1-3],A2[0-23]+0,0,B[0-23],0}
m17 {d1’d0’:=d1’d0’+(d1’d0’)*; Y[4iј(4i+3)]:=A1[0-3]}
g9 <<GO (z1; m19, m18)>>
m18 {A1[0-3]:=0; i:=i+1}
j5 <<GO (0; m12)>>
m19 {
:=0}j6 <<GO (0; g1)
.....................................
j0 <<GO (0; g1)>>
Особенности работы некоторых узлов устройства
Так как разрабатываемое устройство представляется лишь на функциональном уровне необходимо указать особенности функционирования его некоторых узлов.
1. Для коммутации информационных данных будем использовать многоразрядные мультиплексоры шины. От обычных одноразрядных мультиплексоров они отличаются тем, что по определенному слову на адресных входах они коммутируют сразу несколько информационных сигналов с одного из многоразрядных входов на многоразрядный выход соответственно. По существу они представляют собой несколько обычных одинаковых одноразрядных мультиплексоров, адресные линии которых соответственно соединены. Мультиплексор MUX3 снабжен Z-входом, единичный уровень на котором вводит его в Z-состояние. Это необходимо для организации двунаправленной шины данных.
2. Для хранения данных целесообразно использовать многоразрядные регистры хранения. В задаче перевода дробей удобно хранение совместить с арифметическим сдвигом влево на один разряд. Для хранения данных используются регистры RGA1, RGA2, RGB, RG1-RG6. Регистры RGA1 и RGA2 снабжены также сдвиговым входом M и последовательным входом SI. По сигналу “0” на входе M данные в регистре последовательно сдвигаются влево от входа SI к старшим разрядам. Значение старшего разряда теряется.
3. В обеих задачах необходимо использовать операции суммирования. С этой целью в состав операционного автомата входят два многоразрядных сумматора.
Сумматор SM1 используется в задаче перевода дробей и способен выполнять сложение двух 27-разрядных операндов. Результатом сложения является 28-разрядное число. В условном обозначении сумматора SM1 разряды A0, B0, S0 - старшие, а разряды A26, B26, S27 - младшие.
Сумматор SM2 представляет собой устройство, выполняющее сложение двух 25-разрядных операндов и одноразрядного входа переноса cr. Результатом является также 25-разрядное число. Старший разряд при этом отбрасывается.
4. Шинный инвертор Ix24 служит для инвертирования 24 разрядной шины B.
5. В состав управляющего автомата входит инкрементор, выполненый на базе сумматора SM3. Младшие разряды входов и выхода имеют индекс 0.
6. В схеме контроля данных по модулю три используется специальный сумматор SM4. Он суммирует 12 двухразрядных двоичных чисел по модулю три. Приведем принципиальную схему его фрагмента.
Здесь суммируются только два двоичных числа по модулю три. Подавая результат и следующее число на аналогичную схему получим сумматор трех двоичных двухразрядных чисел по модулю три и т.д.
Описание сигналов управляющего автомата
Для управления работой операционного автомата и схемы контроля данных по модулю три используется 17 управляющих сигналов, вырабатываемых с помощью управляющего автомата с естественной адресацией.
Сигналы A0-A2 обеспечивают коммутацию данных и промежуточных результатов, направляя их в регистры хранения.
Сигнал A3 - управляет коммутацией ответа; “0” - ответ задачи перевода дробей, “1”- ответ задачи о нахождении минимального числа.
Сигнал A4 - управляет коммутацией между операндами и схемой контроля.
Сигнал А5 - управляет сбросом контрольных разрядов d1’d0’.
Сигналы
, , - “0” на этих линиях означает разрешение модификации регистров RGA1, RGA2, RGB. “1” запрещает модификацию.Сигнал
- “0” разрешает модификацию выходных регистров RG1-RG6.Сигнал
- “0” разрешает запоминание разрядов d1d0, “1” запрещает их модификациюСигнал
- “0” разрешает запоминание разрядов d1’d0’, “1” запрещает их модификацию.Сигнал SANSWR - “1” устанавливает линию
в “0”, “0” устанавливает эту линию в “1”Сигнал SRDY - “1” устанавливет линию
в “0”, “0” устанавливает эту линию в “1”Сигнал
- устанавливается в “0” для сброса счетстчика CT.Сигнал
- устанавливается в “0” для разрешения сдвига в регистрах. Действителен при условии, что регистрам разрешена модификация.Сигнал INC - “1” разрешает увеличение значения счетчика CT на 1 при каждом тактовом импульсе.
Совокупность перечисленных сигналов представляет собой микрокоманду, исполнение которой проходит в три этапа.
1. Подготовка адреса микрокоманды. Это может быть адрес следующей микрокоманды или адрес некоторой другой микрокоманды, если имел место переход (условный или безусловный).
2. Подготовка самой микрокоманды. Микрокоманда запоминается в регистре микрокоманд RG10.
3. Исполнение микрокоманды. Сигналы управления передаются в операционный автомат и воздействуют на изменение его памяти и вычисление предикатов.
Выполняя один из этих этапов для любой микрокоманды, управляющий автомат одновременно выполняет предыдущий этап для следующей микрокоманды. Таким образом, операционный автомат никогда не “простаивает”, за исключением тех случаев, когда происходит условный или безусловный переход. На время перехода регистру микрокоманд запрещается модификация, а операционному автомату прекращается подача синхронизирующих импульсов, что способствует сохранению значений предиката и успешному выполнению перехода. После подготовки новой микрокоманды в RG10 синхронизация восстанавливается.
Таблица заполнения управляющей памяти
Для кодирования адреса понадобится 6 разрядов.
адрес | метка | k | e A1 | H2 A0 | H1 A2 | H0 A3 | C5 A4 | C4 A5 | C3 | C2 | C1 | C0 | SANSWR | SRDY | INC | ||||
000000 | g1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | |||||||
000001 | m1 | 0 | 0 | 1 | |||||||||||||||
000010 | g2 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | |||||||
000011 | g3 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | |||||||
000100 | j1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | |||||||
000101 | m2 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | |||||||||||
000110 | m3 | 0 | 0 | 1 | 0 | 0 | 0 | ||||||||||||
000111 | m4 | 0 | 1 | 1 | 0 | 1 | |||||||||||||
001000 | g4 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | |||||||
001001 | g5 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | |||||||
001010 | m20 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | |||||||||||
001011 | m8 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | |||||||||
001100 | j4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||
001101 | m5 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | ||||||||||
001110 | g6 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | |||||||
001111 | g7 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | |||||||
010000 | m6 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | ||||||||||
010001 | m7 | 0 | 0 | 1 | 0 | 0 | 0 | ||||||||||||
010010 | j3 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | |||||||
010011 | m9 | 0 | 0 | 0 | 0 | 1 | 0 |
адрес | метка | k | e A1 | H2 A0 | H1 A2 | H0 A3 | C5 A4 | C4 A5 | C3 | C2 | C1 | C0 | SANSWR | SRDY | INC | ||||
010100 | g8 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||
010101 | m10 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | ||||||
010110 | m11 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | ||||||||
010111 | m12 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | |||||||
011000 | m13 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | |||||
011001 | m14 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | ||||||
011010 | m15 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | ||||||
011011 | m16 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | |||
011100 | m17 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | ||||||
011101 | g9 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |||||||
011110 | m18 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | ||||||
011111 | j5 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | |||||||
100000 | m19 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | |||||||||||
100001 | j6 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||
............. | ........ | ||||||||||||||||||
111111 | j0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
По последнему адресу в ПЗУ записана команда безусловного перехода на нулевой адрес. Это сделано с целью организации сброса устройства по сигналу
.