Вашкевич Н.П., Захаров А.П. Проектирование и моделирование микропрограммных цифровых устройств с помощью PCAD
.pdf31
Продолжение табл. 6
№ |
Наименование |
МО, |
условия |
ее |
Признаки, |
вырабатываемые |
в |
||||||||
п/п |
выполнения |
и |
представление |
в |
результате |
выполнения МО |
и |
||||||||
|
операторах присваивания |
|
|
комментарии |
|
|
|
|
|
||||||
7 |
Определение |
кода |
знака |
Для чисел в прямом коде |
|||||||||||
|
частного и его запись в регистр |
наличие сигнала переполнения не |
|||||||||||||
|
частного. |
|
|
|
|
|
|
|
влияет на определение кода знака |
||||||
|
Если переполнения не было, то |
частного, так как он определяется |
|||||||||||||
|
определение кода знака частного и |
по формуле z =x |
0 |
y |
0 |
|
|||||||||
|
|
0 |
|
|
|
||||||||||
|
его запись в регистр Р2 |
|
|
|
|
|
|
|
|||||||
|
производится так же как и для |
|
|
|
|
|
|
|
|||||||
|
чисел с фиксированной точкой. |
|
|
|
|
|
|
|
|
||||||
|
Если переполнение было, то код |
|
|
|
|
|
|
|
|||||||
|
знака частного для мантисс в |
|
|
|
|
|
|
|
|||||||
|
дополнительном |
|
|
|
коде |
|
|
|
|
|
|
|
|||
|
определяется |
только |
в |
результате |
|
|
|
|
|
|
|
||||
|
первого |
такта |
деления |
мантисс |
|
|
|
|
|
|
|
||||
|
после денормализации делимого. |
|
|
|
|
|
|
|
|
||||||
|
Запись кода знака частного в |
|
|
|
|
|
|
|
|||||||
|
младший разряд регистра Р2 при |
|
|
|
|
|
|
|
|||||||
|
наличии |
|
|
|
переполнения |
|
|
|
|
|
|
|
|||
|
осуществляется |
только |
после |
|
|
|
|
|
|
|
|||||
|
первого такта деления |
|
|
|
|
|
|
|
|
|
|
||||
|
Р2(n):=z0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
Восстановление |
|
последнего |
Производится так же как и при |
|||||||||||
|
остатка |
делимого |
и |
коррекция |
делении чисел |
с |
фиксированной |
||||||||
|
частного |
|
|
|
|
|
|
|
точкой |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32
Продолжение табл. 6
№ |
Наименование |
МО, |
условия |
ее |
Признаки, |
вырабатываемые |
в |
||||||||||
п/п |
выполнения и |
представление |
в |
результате |
выполнения |
МО |
и |
||||||||||
|
операторах присваивания |
|
|
комментарии |
|
|
|
|
|||||||||
9 |
Определение порядка результата |
Возможны особые случаи: |
|
||||||||||||||
|
с |
учетом |
|
|
возможной |
- |
при Pz |
> |
Pmax.доп. |
||||||||
|
денормализации делимого P =P′ |
x |
- |
вырабатывается |
сигнал |
пере- |
|||||||||||
|
|
|
|
|
|
|
|
z |
|
полнения порядка ОV=1; |
|
|
|||||
|
Py |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
РСМ |
|
:= РСМ |
|
+ |
|
+1 |
|
|
- |
при |
Pz |
< |
Pmin.доп. |
|||
|
p |
p |
Р1 |
|
|
||||||||||||
|
|
|
|
1 |
|
|
вырабатывается |
сигнал |
анти- |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
переполнения Uп=1 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
На рис. 4 для примера представлен фрагмент ГСА операции сложения двоичных чисел с плавающей точкой - сложение мантисс после выравнивания порядков слагаемых и нормализация результата сложения. Для этого фрагмента ГСА в целях его завершенности предполагается, что начальному оператору соответствует размещение результатов выполненных микроопераций выравнивания порядков слагаемых в регистрах РСМм и Р1м, а конечному оператору - микрооперации записи результатов сложения в ОЗУ. Во фрагменте ГСА использованы два возможных способа записи логических условий: в первом случае значение сигнала переполнения разрядной сетки мантисс V, равное единице, свидетельствует о нарушении нормализации результата сложения мантисс влево; во втором случае условие нарушения нормализации результата сложения мантисс вправо записано в виде отношения HR = 0, при его ложности производится нормализация мантиссы результата влево.
33
Рис. 4 Фрагмент ГСА операции сложения чисел с плавающей точкой
34
1.3 Операционный автомат с магистральной структурой
На рис. 5 приведена структура операционого автомата c магистральной структурой.
|
|
|
|
|
|
|
|
О п ерацио н н ый |
|
|
|
|
|
|
|
||
Äàí í ûå |
|
|
|
àâòî ì àò |
|
Результаты |
|||||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ÐÀ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mикро о п ерация М j |
|
|
|
|
|
Ð0 |
|
|
|
|
|
|
|
О сведо м ительн ые |
|||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ñèãí àëû X i |
|
|
|
|
|
|
|
|
|
Ð7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
До п о лн ительн ые |
|
|
|
|
|
|
|
ÀÑ |
|
|
|
|
|
|
Уп равлен ие |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
ï àì ÿòüþ |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
ñèãí àëû Yi |
|
|
|
|
|
|
ÀËÓ |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ÐÏ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 5 Структура операционного автомата с магистральной структурой
Операционный автомат включает:
–блок из 8-ми регистров общего назначения Р0 - Р7, предназначенных для хранения промежуточных результатов;
–регистр адреса РА, определяющий адрес оперативной памяти при чтении и записи данных;
–регистр аккумулятор АС, хранящий один из операндов или результат выполнения микрооперации;
–арифметико-логическое устройство АЛУ, в котором выполняются заданные микрооперации;
–регистр признаков РП, хранящий признаки выполненной микрооперации.
Все регистры операционного автомата 8-ми разрядные. В табл 7 приведен состав микроопераций Мj их 8-ми разрядная кодировка, а также описаны действия выполняемые каждой из них.
35
Таблица 7
|
Состав микроопераций |
||
|
|
|
|
N |
Код микрооперации |
Действие |
|
|
|||
п/п |
м8 м7 м6 м5 м4 м3 м2 м1 |
||
|
|||
1 |
0000 0000 |
АС = РА |
|
|
|||
|
|
|
|
2 |
0000 0001 |
РА = РА + АС |
|
|
|||
|
|
|
|
3 |
0000 0010 |
Арифметический сдвиг вправо АС |
|
|
|||
|
|
|
|
4 |
0000 0011 |
Арифметический сдвиг вправо Р7 |
|
|
|||
|
|
|
|
5 |
0000 0100 |
Циклический сдвиг вправо АС |
|
|
|||
|
|
|
|
6 |
0000 0101 |
Циклический сдвиг вправо Р7 |
|
|
|||
|
|
|
|
7 |
0000 0110 |
Арифметический сдвиг влево АС |
|
|
|||
|
|
|
|
8 |
0000 0111 |
Арифметический сдвиг влево Р7 |
|
|
|||
|
|
|
|
9 |
0000 1000 |
Циклический сдвиг влево АС |
|
|
|||
|
|
|
|
10 |
0000 1001 |
Циклический сдвиг влево Р7 |
|
|
|||
|
|
|
|
11 |
0000 1010 |
Пустая микрокоманда (NOP ) |
|
|
|||
|
|
|
|
12 |
0000 1011 |
Стоп |
|
|
|||
|
|
|
|
13 |
0000 1100 |
П(РА) = АС, запись в память содержимого |
|
аккумулятора по адресу в регистре РА |
|||
|
|
||
|
|
|
|
14 |
0000 1101 |
АС = П(РА), чтение в аккумулятор из памяти |
|
по адресу в регистре РА |
|||
|
|
||
|
|
|
|
15 |
0000 1110 |
АС => Стек |
|
|
|||
|
|
|
|
16 |
0000 1111 |
АС <= Стек |
|
|
|||
|
|
|
36
Продолжение табл.7
N |
Код микрооперации |
Действие |
|
п/п |
м8 м7 м6 м5 м4 м3 м2 м1 |
||
|
|||
17 |
0001 <N> |
АС = АС + Р(N), где N номер регистра Р0-Р7 |
|
|
|||
|
|
|
|
18 |
0010 <N> |
АС = АС & Р(N), где & операция коньюнкции |
|
|
|||
|
|
|
|
19 |
0011 <N> |
АС = АС U Р(N), где U операция дизъюнкции |
|
|
|
|
|
20 |
0100 <N> |
Р(N) = АС |
|
|
|||
|
|
|
|
21 |
0101 <N> |
АС = Р(N) |
|
|
|||
|
|
|
|
22 |
0110 <N> |
АС = АС - Р(N) |
|
|
|||
|
|
|
|
23 |
0111 <N> |
АС = ~Р(N), где ~ операция инверсии |
|
|
|||
|
|
|
|
24 |
1000 <N> |
Р(N) = Р(N) + 1 |
|
|
|||
|
|
|
|
25 |
1001 <N> |
Р(N) = Р(N) - 1 |
|
|
|||
|
|
|
Примечание: Операция сдвига в операционном автомате может выполняться только в регистрах АС и Р7 и всегда осуществляется на 1 разряд.
При выполнении микроопераций в регистре РФ формируются следующие признаки: N, C, V, Z, T. Ниже приведены правила формирования отдельных признаков.
Признак N - знак результата микрооперации;
1, если зн ак результата вып о лн ен ия
Ï ðèçí àê N = |
м икро о п ерации о трицательн ый; |
|
|
|
0, в п ро тивн о м случае. |
Признак Z - признак нулевого результата;
1, если результат вып о лн ен ия П ризн ак Z = м икро о п ерации равен 0;
0, в п ро тивн о м случае.
Признак V - переполнение;
37
1, åñëè ï ðè âûï î ëí åí èè ì èêðî -êî ì àí äû Ï ðèçí àê V = âî çí èêëî ï åðåï î ëí åí èå;
0, в п ро тивн о м случае.
Признак С - выдвигаемый разряд, при операциях сдвига и арифметических микрооперациях. В операционном автомате выполняется 2 вида сдвигов: арифметмческий и циклический. В операциях циклического сдвига признак С формируется в соответствии с рис. 6.
7 |
0 |
|
|
C |
|
ÀÑ |
|
|
|
|
|
|
|
а) |
|
7 |
0 |
|
|
C |
|
ÀÑ |
|
|
|
||
|
|
|
|
|
|
б) |
|
Рис. 6 Циклический сдвиг влево (a) и вправо (б)
При операциях арифметического сдвига признак С формируется в соответствии с рис. 7.
7 6 |
0 |
|
ÀÑ |
C |
ÀÑ |
7 6 5 |
0 |
а) |
|
7 6 |
1 0 |
ÀÑ |
|
ÀÑ |
C |
|
|
7 6 5 |
0 |
б)
Рис. 7 Арифметический сдвиг влево (а) и вправо (б)
При необходимости арифметического сдвига 16-ти разрядного числа в операциях умножения и деления (рис. 8), необходимо число располагать в
38
регистре АС (старшие 8 разрядов) и в регистре Р7 (младшие 8 разрядов). В регистре АС необходимо выполнить арифметический сдвиг (при этом нулевой разряд выдвинется в С), а в регистре Р7 выполнить циклический сдвиг (при этом разряд из С вдвигается в 7 разряд Р7).
7 |
0 |
7 |
0 |
ÀÑ |
C |
|
Ð7 |
Рис. 8 Сдвиг 2n разрядного числа
Признак T - разряд переноса из 3-го разряда аккумулятора в 4-й разряд. Используется при работе с двоично-десятичными числами.
Для ускорения выполнения микроопераций операционный автомат использует 8 дополнительных бинарных управляющих сигналов Yi=(y1, у2, у3, у4, у5, у6, у7, у8). Данные сигналы формируются управляющим автоматом и подаются в операционный автомат совместно с микрокомандой в одном такте. Одновременно может формироваться несколько сигналов Уi, при условии, что совместное действие микрокоманды и дополнительных сигналов не приводит к противоречиям. В табл. 8 приведен состав дополнительных сигналов Yi.
Таблица 8
|
Состав дополнительных сигналов |
|
||
|
|
|
|
|
N |
Дополнительный |
Кодировка |
допо- |
Действие |
п/п |
сигнал |
лнительного сигнала |
|
|
|
|
|
|
|
1 |
У1 |
0000 0001 |
|
АС = 0 |
|
|
|
|
|
2 |
У2 |
0000 0010 |
|
АС = АС + 1 |
|
|
|
|
|
3 |
У3 |
0000 0100 |
|
РА = 0 |
|
|
|
|
|
4 |
У4 |
0000 1000 |
|
С = 0 |
|
|
|
|
|
|
|
|
|
39 |
|
|
|
|
|
Продолжение табл.8 |
|
|
|
|
|
|
|
N |
Дополнительный |
Кодировка |
допо- |
Действие |
|
п/п |
сигнал |
лнительного сигнала |
|
|
|
|
|
|
|
|
|
5 |
У5 |
0001 0000 |
|
С = 1 |
|
|
|
|
|
|
|
6 |
У6 |
0010 0000 |
|
РА = РА + 1 |
|
|
|
|
|
|
|
7 |
У7 |
0100 0000 |
|
Резерв |
|
|
|
|
|
|
|
8 |
У8 |
1000 0000 |
|
Резерв |
|
|
|
|
|
|
|
2. Разработка алгоритма работы операционного устройства.
Алгоритм работы операционного устройства строится на основе использования СА. На рис. 9 приведена СА вычисления выражения У = 2(В+0,625А). Целые числа А и В, заданные в дополнительном коде, хранятся в оперативной памяти по адресам 0 и 1, результат У записывается в память по адресу 2. Каждая из вершин СА включает одну микрокоманду и, если это необходимо, дополнительные сигналы Yi. Если в данном такте в операционный автомат подаются только дополнительные сигналы Yi, то необходимо использовать пустую микрооперацию NOP (см. вершину 1 на СА). При вычислении значений 0.5А, 0.25А, 0.125А используется арифметический сдвиг вправо AR(AC). При вычислении значения 2(В+0.625А) используется арифметический сдвиг влево AL(AC), после которого осуществляется проверка на переполнение (V).
3. Микропрограммный управляющий автомат с программируемой логикой
На рис. 10 показана структура микропрограммного управляющего автомата с принудительной адресацией микрокоманд [2,7].
Н ачало
ó1,
ó3,
Nop 1
AC=Ï (RA) 2
AR(AC) 3
P6 = AC |
4 |
|
AR(AC)
5
AR(AC) 6
AC=AC+R6; ó6 7
AC=AC+Ï (PA) 8
AL(AC);
ó6 9
1
V 10 0
Ï (PA)=AC 11
Êî í åö
40
AC=0
PA=0
A => AC
PA=PA+1
0.5A => AC
0.25A => AC
0.125A => AC
0.625A => AC; ÐÀ=ÐÀ+1
B+0.625A => AC
2(B+0.625) => AC
ÐÀ=ÐÀ+1
2(B+0.625) —> Ï
Рис. 9 Схема алгоритма
Автомат включает:
–ПЗУ, постоянное запоминающее устройство. В нем хранится микропрограмма управления цифровым устройством;