Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Баранов, С. И. Синтез микропрограммных автоматов

.pdf
Скачиваний:
33
Добавлен:
19.10.2023
Размер:
6.76 Mб
Скачать

раторных вершин подматриц М, и Ms соответственно. Очевидно, что это отношение рефлексивно, симметрично, но не транзитивно. По­ строим граф этого отношения, вершины которого соответствуют под-

Рнс. 7-19. Разбиение MCA М г. М 2 и М3

Рис. 7-20. Граф отношения объедннимости подматриц

матрицам, причем две вершины M t и M s соединим ребром, если M t О M s (рис. 7-20). Тогда, очевидно, для нахождения множеств всех объединимых подматриц необходимо найти все компоненты связности этого графа. Матрицы, попавшие в одну компоненту, подлежат объе­ динению. В графе на рис. 7-20 четыре компоненты, -и, значит, необ­

1 Ѵ о7 З а к а з № 2225

177

ходимо решать четыре, Но Существенно более Простые задачи объеди­ нения следующих подматриц:

АІЦ> М21, AI31;

м 13, AI22. Af32;

Afi3, AI23, AfS3;

М и , AI24. АГ34.

После объединения и учета распределения сдвигов приходим, ми­

нуя объединенную MCA М , к ее подматрицам М и М 2, АІ3, М 4

(табл. 7-24 — 7-27).

Г л а в а в о с ь м а я

ДВА ПРИМЕРА СИНТЕЗА МИКРОПРОГРАММНЫХ АВТОМАТОВ

8-1. Синтез устройства управления арифметического устройства

В данном разделе рассмотрим синтез микропрограммного автомата управ­ ления арифметическим устройством (АУ) параллельного действия, в котором выполняются операции сложения, вычитания, умножения и деления над л-раз- рядными двоичными числами. Предполагается, что к началу операции операнды уже засланы в арифметическое устройство. Как и любое дискретное устройство, АУ можно представить в виде двух частей: операционного устройства и устрой­ ства управления. В операционном устройстве под действием сигналов, приходя­ щих из устройства управления, выполняются микрооперации по передаче слов

и их преобразованию. Операционная часть АУ приведена на рис.

8-1. В АУ вхо­

дят: накапливающий сумматор (См), два регистра (Рг 1 и Рг2),

счетчик тактов

(СчТ) и триггер индикации переполнения (ПП). Число X с фиксированной за­

пятой представляется правильной двоичной дробью вида X = ±

, хгх2 . . . хп,

где Xi f {0, 1), і = 1...........п. Знак ■«+» кодируется символом 0, знак «—» —

символом 1. Алгоритмы выполнения операций с очень небольшими изменениями взяты из работы [13]. ГСА операции сложения изображена на рис. 8-2. Для представления отрицательных чисел при сложении используется модифициро­

ванный обратный код, в котором отрицательное число X = —, х^.,

. . . хп имеет

вид (Х)обр = П.

• • • хп, где старший разряд целой части кода числа ис­

пользуется для представления знака, а следующий разряд целой

части — для

контроля переполнения разрядной сетки сумматора.

и Ргі. Если

Перед началом

операции слагаемые находятся на сумматоре

знак сумматора положителен (sign См = 0), то сумматор участвует в операции в прямом модифицированном коде, в противном случае (sign См = 1 ) — в об­ ратном (См: = (См)обр)- То же самое справедливо и для РгІ: если sign Рг 1 = 0, то к сумматору добавляется прямой код Рг1(См: = См + Ргі), если же sign Ргі = 1, то обратный (См: = См + (Ргі)0бр)• В зависимости от знака результата сумма получается также в прямом или обратном коде. Если sign См = 0, то на сумма­ торе результат находится в прямом коде, если же sign См = 1 — то в обратном, и для получения прямого кода суммы необходимо инвертировать значения каж­ дого разряда сумматора (См: = (См)0бр)- Если значения знакового разряда и разряда переполнения сумматора равны 01 или 10 (sign См ф См [П ]), то ре­ зультат переполняет разрядную сетку машины.

ГСА операции вычитания изображена на рис. 8-3. Алгоритм вычитания от­ личается от сложения лишь тем, что в самом начале операции инвертируется

178

знак вычитаемого, хранящегося в Ргі (sign Р г і: = (sign Рг1)0бр)- Остальная часть алгоритма полностью совпадает с алгоритмом сложения на рис. 8-2.

ГСА операции умножения изображена на рис. 8-4. Множимое и множитель в начале операции помещены соответственно в Ргі и См. Первый шаг операции состоит в передаче множителя из См в Рг2 (Рг2: = См). После этого сумматор, на котором будут накапливаться частичные произведения, «обнуляется»( См: = 0), а в счетчик тактов записывается число разрядов множителя (СчТ: = я). Далее, если в младшем разряде множителя записана единица (Рг2 [я] = 1), к сумме частичных произведений добавляется множимое (См: = См -f- Ргі), в противном случае (Рг2 [п] = 0) это действие пропускается. После этого сумма частичных произведений и множитель сдвигаются вправо на 1 разряд (См: = У?1 (См),

уя

Уе

У«

■У7 ■У,

~Уіо

■Уз

■Уг

&

 

 

1------ :------ 1 0

J

 

 

П П ' = 1

■«--- ^upiCirtSjH.

 

 

 

 

7

 

/7/7

С ч Т

-У,г

 

 

 

 

 

 

 

 

 

 

■Ув

 

Конец

 

71 *

 

 

 

 

Рис. 8-1.

Операционная часть АУ

Рис. 8-2. ГСА Гх операции сло­

 

 

 

 

жения

 

Рг2: = 7?1 (Рг2)), из счетчика тактов вычитается единица (СчТ: = СчТ—1), а

восвободившийся в связи со сдвигом старший разряд Рг2 записывается младший разряд сумматора (Рг2 [1]: = См [л]). Если не все разряды множителя обра­ ботаны (Сч ТФ 0), операции суммирования и сдвигов повторяются. После того как СчТ окажется равным нулю, старшие л разрядов произведения оказываются

вСм. Далее делается округление л-разрядного произведения в зависимости от

значения

(л + 1)-го разряда, который находится,

в первом разряде Рг2. Если

Рг2 [1J =

1,

то значение в сумматоре увеличивается на единицу л-го разряда

(См: =

См +

2—л). После этого определяется знак результата в зависимости от

знаков

сомножителей: если они разные (sign Ргі

ф sign Рг2), то результату

присваивается отрицательный знак (sign См: = 1),

если одинаковые (sign Ргі =

= sign

Рг2),

то это действие пропускается и в знаковом разряде сумматора ос­

тается

нуль — результат положителен.

 

IV * 7*

179

ГСА операции деления изображена на рис. 8-5. Перед началом операции Делимое хранится на сумматоре, а делитель в Ргі. Для получения частного в ходеоперации используется Рг2, который предварнтелышочпщается(Рг2: = 0), и в его знаковый разряд заносится единица, если на сумматоре — отрицатель­ ное число (sign Рг2: = 1). После этого знаковый разряд сумматора обнуляется и в счетчик тактов заносится п (sign См: — 0; СчТ: = п). Далее из делимого вы­ читается делитель (См: = См + (Ргі)0бр). и если на первом шаге окажется, что

знак сумматора положителен (sign См =

0), то делимое больше делителя, резуль­

тат больше единицы, т.

 

е. будет пере­

 

полнение

разрядной

сетки,

что

и

фикси­

 

руется (ПП: =

1).

Если

делимое

меньше

 

делителя,

то

результат

 

первого

 

вычи­

 

тания

отрицателен

(sign

 

См =

1),

 

после

 

чего

частное

сдвигается

в

влево

на

один

 

разряд (Рг2: =

L 1 (Рг2)),

(л +

1)-й разряд

 

Рг2

заносится

инверсия

знака

 

сум-

 

 

 

 

 

 

 

 

 

 

Г

 

 

 

 

 

 

 

 

 

 

См=-См*Рг1 У,

 

 

 

 

 

 

 

 

 

РгІ-МІРП)

 

 

 

 

 

 

 

 

 

 

Cv'RUCn)

у,

 

 

 

 

 

 

 

 

 

Рг2[і]Чм[п]

СчѴ-СчТ-1

У*

signСм:-1 Ч10

 

Конец,

Ук

Рис. 8-3. ГСА Г 2 операции вы­

Рис. 8-4. ГСА Г3 опера­

читания

ции умножения

матора — значение цифры частного на данном шаге, число в сумматоре удваи­ вается сдвигом влево на один разряд (См: = L 1 (См)), а из счетчика тактов вы­ читается единица, так как мы переходим к получению следующей цифры част­ ного (СчТ: = СчТ — 1). Если на каком-либо из предыдущих вычитаний в сум­ маторе оказывается отрицательное число (sign См = 1), то к сдвинутому влево содержимому сумматора добавляется делитель (См: = См + Ргі), в противном случае (при sign См = 0) делитель вычитается (См: = См + (Рг1)0бр)- Спустя п циклов (СчТ = 0) модуль частного заносится в сумматор (См: = |Рг2|), после

180

чего результат округляется по значению (л +

1):й цифры частного, которая

к этому моменту занесена и (я + 1)-іі разряд Рг2,

п в зависимости от знаков де­

лимого и делителя, которые хранятся в знаковых разрядах Рг2 и РгІ, в сумма­

торе

формируется

 

знак

 

результата.

 

Таким образом, для выполнения

сло­

 

жения, вычитания, умножения

и деления

 

в операционном

устройстве

 

АУ должны

 

быть реализованы следующие микроопера­

 

ции:

Уі: См: = (См)обр;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

у»: См: =

См +

РгІ;

 

 

 

 

 

 

 

Уз : См: =

См +

(Рг1)0бр;

 

 

 

 

 

Уі : ПП: = 1;

 

 

 

 

 

 

 

 

 

у5 : sign РгІ: =

(sign

 

 

 

 

 

 

 

уа : Рг2: = См;

 

 

 

 

 

 

 

 

 

у7: См: =

0;

 

 

 

 

 

 

 

 

 

Ув '■СчТ: = я;

 

 

 

 

 

 

 

 

 

уа : Рг2: =

Ri (Рг2);

 

 

 

 

 

 

 

у10 : См: = Ri (См);

 

 

 

 

 

 

 

Уп '■Рг2 [1]: = См [л];

 

 

 

 

 

 

 

у1г: СчТ: = СчТ — 1;

 

 

 

 

 

 

 

Уіз : См: = См + 2_,!;

 

 

 

 

 

 

 

Уы '■sign

См: =

1;

 

 

 

 

 

 

 

Ун : Рг2: = 0;

 

 

 

 

 

 

 

 

 

Уіа : sign Яг2: =

1;

 

 

 

 

 

 

 

у17: sign См: = 0;

 

 

 

 

 

 

 

 

Уis"- Рг2: = И (Рг2);______

 

 

 

 

Ую : Рг2

[я + 1]: = sign См;

 

 

 

 

у20 : См: = И (См);

 

 

 

 

 

 

 

1/гг : См: =

|Рг2 |.

 

 

 

 

 

 

 

 

В ГСА

на

рис.

8-2 — 8-5

слева

от

 

операторных

вершин

запишем

символы

 

этих

микроопераций.

 

Кроме

того,

пере­

 

нумеруем

различные

 

микрокоманды

и

 

запишем операторы

 

—Кщ

справа

 

или

 

над операторной вершиной. Рядом с услов­

 

ными вершинами запишем символы логи­

 

ческих условий:

 

 

 

 

 

 

 

 

 

 

хг : sign См;

 

 

 

 

 

 

 

 

 

x2 : sign РгІ;

См [П];

 

 

 

 

 

 

хя : sign См =

 

 

 

 

 

 

Хі : Рг2 [я];

 

 

 

 

 

 

 

 

 

х5 : СчТ = 0;

 

 

 

 

 

 

 

 

 

 

Рг2 [1];

 

sign Рг2;

 

 

 

 

 

х7 : sign РгІ =

 

 

 

 

 

Хд : СчТ = я;

1].

 

 

 

 

 

 

 

Ха ■Рг2 [я +

 

 

 

 

 

 

Матричные

 

схемы

алгоритмов

для

Рис. 8-5. ГСА Г4 операции деле-

граф-схем Г г—Л, приведены

в табл.

8-1—

ния

8-4.

 

 

 

 

 

 

Kj

встречается дважды. Так как при объединении

В ГСА Гі и Г2 оператор

все операторы в пределах одной

ГСА должны быть различными, в MCA Мг и

Л42 второй оператор

 

переобозначен и заменен на Ур

181

У»

Уі

У2

Уз

У4

у;

Уо

Уі

У2

Уз

У4

у5

у;

Уі

*1

У і

*1

 

 

 

 

Таблица 8-1

MCA M-L операции сложения

 

 

У 2

У з

У 4

у ;

У к

Х\Х2

Ѵ а

 

 

 

X2

*2

 

 

 

 

 

*1*3

*1

*1*3

 

 

*1*3

*1

*1*3

 

 

 

 

1

*3

MCA Мг операции вычитания

У ,

У з

У 4

У 6

1

Хп *2

*1*3

*1*3

* 1 * 2

* 1 * 2

А'з

Таблица 8-2

у ; У,С

*і *1*3

*і *1*3

1

*3

*3

 

182

Y 2

^0

^2

у.

^7

Х і

^8 *5*4

у»

Ум

^2 ^3

У.

^3

А

У9

Ум

У11

У»

Yіз *1 Х1

У и

*5*1 *5*1

У15

MCA M3 операции умножения

 

Таблица 8-3

 

 

 

у

6

У 7

^8

 

У 9

Г ю

 

Ук

 

1

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

*4

 

 

 

 

 

 

 

 

*5*4

 

*5*8

*5*8*7

д.'5л:6а:7

 

 

 

 

 

 

 

 

*7

 

 

 

 

 

 

 

 

1

 

MCA Mi операции деления

 

Таблица 8-4

 

 

 

 

У 4

^9

^10

^11

Уі*

Уіз

Уі4

у »

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

1

 

 

*8*1

 

 

 

 

 

*8

 

 

 

 

 

 

 

*8*1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

* 7

 

 

 

 

 

* 7

 

 

 

 

 

 

 

 

1

 

 

 

 

*1

*1

 

 

 

 

 

 

 

 

1

 

 

 

' *6

ха

* 0 * 7

* 9 * 7

183

 

 

 

 

Объединенная MCA М'

выполне

 

Уі'

У2

У3

•У4

1

Ѵ>

у»

У7

У8

 

 

 

 

 

 

 

 

уо

РіР2л1

PjWj/'ä

PjP2*1*2

 

 

PjP2 р1р2

 

 

у.

 

PlPo-Vo

PlP2*2

 

 

 

 

 

 

 

PiP2V

PjP2*2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

у2

 

 

 

PlP2XIх

 

 

 

 

PIP2

 

 

 

РіР2*і*з

 

 

 

 

 

 

 

 

 

 

 

 

 

уз

 

 

 

Р1Р2Х1Х3

 

 

 

 

 

 

 

 

р1р2х1х3

 

 

 

 

 

 

 

 

 

Р1Р2<ѵ8х1

 

 

 

 

 

У4

 

 

 

 

 

 

 

 

 

У5

PlPo^l

P±Pox l ,x2

P%P2*1*2

 

 

 

 

 

 

У6

 

 

 

 

 

 

 

Р1Р2

 

У/.

 

PiP2x4

 

 

 

 

 

 

РіР2*4

у8

 

P1 P2V 4

 

 

 

 

 

 

plP2xSx4

ув

ухо

уи

у12

У13

1

1

W i

 

P V

 

У14

P1P2X5X1

Р1Р2ХЬХ1

У1б

 

 

 

У16

 

 

РіРгАз

 

 

 

р1р2х3

184

 

 

 

Таблица 8-5

ния арифметических операций

У В

^ 1 0

У . 1

У 1 2

У 13

У 1 4

1

У »

у ю

1

ѵ К

р1р2

РіР2

РіР2л1

РіРз^і

 

р1р2х8

РіР3А*1

РіРа*1

Р1Р2Х8Х1

PlP2v5v6 р1р2хЪхвх7

fJlPox7

Рір2х7

РіР2Л1 Р1Р2Х1

Р1Р2

•4

Р1Р2Х5

р1р2хЯ Р1Р2ХЯХ"

РіР2*1*3 РіР2*1*3

р1р2Х1Х3

р1р2х1х-3

р1р2

р1р2

р1р2

р1р2хЬх6х7

P i P ^ ' t

Plp2*7

p l p 2

Р1Р2

Pj^PjA'gX-

P1P2X3

P1P2X3

185

 

 

 

 

Объединенная MCA М после

 

У1

V',

У3

У4

1 У5

Ув У 7 У8

уо

РіР2'Ѵ1

Pi P2*i*2

P l P o - V l - V o

 

РІР2

РіР2

У1

 

Р2 2

Р2Л2

 

 

 

 

Po-':2

Р2

 

 

 

 

 

 

 

 

У2

 

 

 

РіР2*1*3

 

РіР2

 

 

 

 

РіР2*1*3

 

 

 

 

 

 

 

 

 

 

 

РіР2*1*3

 

 

 

 

 

 

Рі Р2а1лЗ

 

 

 

 

 

 

РіР2*8*1

 

 

у4

 

 

 

 

 

 

У5

А'і

*1*2

л' ^ л * 2

 

 

 

У6

 

 

 

 

 

I

к7

 

*4

 

 

 

*4

 

 

 

 

 

CD

 

*5*4

 

 

 

*5*4

У9

 

 

 

 

 

 

У10

 

 

 

 

 

 

У11

 

 

 

 

 

 

У12

 

 

 

 

 

 

У13

 

*1

 

 

 

уы

 

*5*1

*5*1

 

 

 

У15

 

 

 

 

 

 

Р2*3

УІ6

Р2Ѵ3

186

учета распределения

сдвигов

 

 

 

У9

Y

1

У

У12 у 13

У14

У15

у16

110

1

Г11

 

Р,Р2

РіР2Х1

РіРо

Рз.Р2А1

Plp2*S Р^р2АХ

PlD2*8*l РіР2л’і

*5*в *5*6*7

р2*7

Р2Л’7

*1 *1

1

Л'.

Таблица 8-6

V * К

РіР2*1*3

PlD2*l*3

Рі Р2а1лЗ

РіР2*1*3

РіРо РХР2

Р1Р2

*5*6*7

Р2А7

р2Л'7

Р„

*2

А*о

*9*7

*9*7

Р2*3

Р2*3

187

Подсчитаем число букв Kt1s в одинаковых элементах MCA М,,,

/VIS (q, s =

= 1, 2, 3, 4; q ± s): K 13 = 15, K 13 = 0, К и = 1, К ,3 = О, К м -

1, КЗІ = 3.

Непосредственно из этих чисел видно, что соседними кодами должны быть за­

кодированы пары MCA (Mj,

Л4о) н (/VI3, /Ѵ14). Закодируем MCA /VIх—М4 следую­

щим образом:

Л'/о — (01); М3 — (10); М., — (11).

М 4 — (00);

Определяющими конъюнкциями для MCA /VI4—/ѴІ4 будут:

Pi = РіР'У

Р2 = РіРУ, Р3 = РіРУ, Pi = PlP2-

Рис. 8-6. Объединенная ГСА Г выполнения арифметических опера­ ции

После этого строим объединенную MCA /ѴГ, которая приведена в табл. 8-5. Так как ни один оператор не меняет логических условий ри и р 2, в MCA М' можно учесть распределение сдвигов, после чего получаем MCA Л4 (табл. 8-6). Для перехода от MCA М к объединенной ГСА необходимо выписать формулы перехода и привести их к скобочной форме. Разбиение MCA на подматрицы по­ зволяет разбить систему формул перехода на подсистемы, и тогда одинаковые подформулы нужно искать только в пределах каждой подсистемы. Объединен­ ная MCA М разбивается на три подматрицы: /VI1, М %и /И3.1 В подматрице М1 исходящими будут все операторы MCA М, кроме Ув, Г и , У12, в Л4а — опера­ тор Уе и в М3 — операторы У1г и У, 2. Соответственно имеем три подсистемы формул перехода. Выписывая из MCA М формулы перехода и приводя их к ско­ бочной форме, получим2:

1 Читателю предлагается самостоятельно проделать это разбиение.

3 Приведение к скобочной форме сделано с учетом доопределения формул перехода, выписанных из MCA в табл. 8-6. Неопределенность в данном случае

188