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

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

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

Их

Их

5

Их

0x0

6

Их

101

7

11х

0x1

8

X X 1

о о

5

 

X X 1

100

4

X X 1

101

7

ХІХ

100

4

ХІХ

101

7

ХІХ

010

6

Іхх

100

4

Іхх

101

7

XXX

100

4

XXX

101

7

Проделав в D всевозможные операции поглощения, получим по­ крытие D 0, являющееся исходным для дальнейшей процедуры1:

х 11

1x0

4

 

01х

6

 

1x 1

7

1x1

01х

4

 

Их

6

Их

Их

5

 

0x0

6

 

0x 1

8

X X 1

00х

5

ХІХ

010

6

XXX

100

4

 

101

7

Алгоритм получения равносильных подграфов, состоящий из Я шагов (Я •<«), аналогичен алгоритму для подграфа с одной исходящей операторной вершиной с той лишь разницей, что:

а) , если в результате X-операции получается отмеченный куб, у которого в первых т координатах стоят только единицы, то этот от­ меченный куб из покрытия удаляется. Например,

*11 1x0 У4 X Их 0x0 УѴ,

1 Для наглядности первые три координаты отделены от логической части куба и не приписываются каждому кубу, однако их наличие в этих кубах все время подразумевается.

6*

147

б) ранг отмеченного куба и, следовательно, вопрос об оставлении этого куба в покрытии на следующем шаге определяется правыми п координатами.

После этих замечаний приведем без дополнительных пояснении состоящую из трех шагов процедуру получения равносильных ГСА для покрытия D 0. Производные операторы сведены в табл. 7-7.

Сводная таблица производных операторов

9

А'і

6

4

32

10

Л'о

4

5

33

11

хі

4

6

34

12

Л'з

7

4

35

13

Лі

4

5

36

14

5

6

37

15

Ч

5

8

38

16

Л'о

5

4

39

17

Л'о

5

7

40

18

А'і

7

6

41

19

х,2

6

5

42

20

X ,,

6

4

43

21

X .,

6

7

44

22

■Ѵ.Ч

8

6

45

23

Лі

7

5-

46

24

■ч

7

8

47

25

Ч

5

22

48

26

Ч

5

12

49

27

Ч

16

6

50

28

Ч

17

8

51

29

х3

15

14

52

30

X .,

14

11

53

31

Х о

15

24

 

 

1 шаг

 

 

 

xll

1x0

4

 

 

 

Olx

6

 

 

 

lxl

7

 

 

 

xlO

11

 

 

 

lxx

12

 

 

 

xll

18

 

 

 

Oxx

19

 

 

lxl

Olx

4

 

 

 

1Ix

6

 

 

 

xlx

9

 

 

 

Oxx

10

 

 

 

1x0

20

 

 

 

lxl

21

 

 

 

 

 

 

Л'з

17

16

54

А'і

12

22

55

* 3

24

и

56

Х о

6

12

57

Л'2

9

13

58

*2

9

23

59

*

20

10

60

л3

21

10

61

21

20

62

X

l

4

19

63

X

i

12

6

64

Ч

7

19

65

X3

18

11

66

xa

11

13

67

x\

12

19

68

x

l

12

5

69

x „

18

23

70

X~3

23

13

71

X l

26

22

72

4

 

32

22

73

X 2

25

33

74

X o

25

34

75

xll

lxl

Таоліща 7-7

x 3

28

27

-V;i

31

27

л’з

28

30

Л'о

29

33

л-з

29

34

31

30

Л'о

9

47

Л'о

9

49

Лі

35 .

10

Лі

40

10

Лз

37

36

Л;,

39

36

Л'з

37

38

Лз

39

38

Лз

43

41

А'з

48

41

Л'о

42

47

Л'о

42

49

Л'з

43

45

Л'о

44

47

44

49

Лз

48

45

2 шаг

1XX

12

Oxx

19

ххО

41,

45

xlx

42

44

XX1

43,

48

XXX

46

xlx

 

9

Oxx

10

lxx

35,

40

xxO

36,

38

XX1

37

39

148

11*

1lx

5

 

 

 

 

11*

 

Ox*

 

22

 

 

O.V'O

6

 

 

 

 

 

 

25,

29

 

0*1

8

 

 

 

 

 

 

*1*

 

 

*10

Н

 

 

 

 

 

 

1**

 

26,

32

 

ХІ 1

15

 

 

 

 

 

 

x*0

 

27,

30

 

1x0

16

 

 

 

 

 

 

X*1

 

28,

31

 

1*1

17

 

 

 

 

 

 

*0*

 

33,

34

 

Ox*

22

 

 

 

 

 

 

 

 

 

 

 

*00

11

 

 

 

 

**1

 

*0*

 

47,

49

 

*01

• 24

 

 

3 шаг

 

 

 

——

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xxl

00*

5

 

XXX

46, 68,

69,

70,

71,

72,

73,

74,

75

 

*00

13

 

 

 

 

 

 

 

 

 

 

 

*01

23

1*1

XXX

60, 61, 62, 63, 64, 65, 66, 67

XXX

10*

12

И*

XXX

50, 51,

52,

53,

54,

55,

56,

57,

58,

59

Как видно из результатов третьего шага, имеется 9 вариантов реа­ лизации покрытия для Y lt 8 вариантов для Y 2 и 10 вариантов для Y 3. Все варианты раскрыты с помощью таблицы производных операторов (табл. 7-7) и сведены в табл. 7-81. Очевидно, что, выбрав по одному варианту для каждого из Y lt У 2, Y 3, получим подграф ГСАГ равно­ сильный подграфу Г на рис. 7-8, в котором будет столько условных вершин, сколько производных операторов (без повторения одинако­ вых) содержится в выбранных вариантах. Например, выбрав вари­

анты Ь-,, Ь1 2 и bls, получим ГСА с 12 условными вершинами.

. ,

Y m,

Пусть в общем случае есть т исходящих операторов Y lt . .

для каждого из которых в таблице вариантов имеется Rj (/ =

1, .

. . ,

т) вариантов реализации. Очевидно, что задача нахождения подграфа с минимальным числом условных вершин сводится к выбору из этой таблицы таких т вариантов (по одному для каждого Yj), чтобы сум­ марное число производных операторов в выбранных вариантах (без повторений) было минимальным. Назовем эту задачу задачей опреде­ ления минимального покрытия таблицы вариантов. Ясно также, что число всевозможных различных подграфов, которое можно построить

по такой таблице,

равно R x . . . Rj . . . R m. В нашем примере это

число равно 9-8-10

= 720.

Метод Петрика (Petrick) нахождения минимального покрытия таб­ лицы Квайна при минимизации булевых функций (этот метод на рус­ ском языке подробно изложен в[7])может быть модифицирован при­ менительно к поставленной задаче. Пусть в таблице вариантов для каждого Yj (/ = 1, . . . , т) имеются варианты Ь{ 1 , . . . , bjr, . . . ,

1 В вариантах для Yj операторы заключаются в скобки, если они ветре" чаются хотя бы в одном варианте для У(- Ф Yj.

149

К

Г5

Q s

Q

Q

Таблица вариантов реализации

. юс о с о — • см —< ^

в

 

 

юсмс о

—• —- см^

• о

С О О і я Г іЛ я Г я Г —

 

 

 

 

 

 

 

ѵ;

t-'- э

 

ю я т см

 

 

юсмсо

^см

j - ,

со со о г -

я т

 

 

 

 

t o

см СО ^

 

 

 

Тх

 

 

 

 

 

 

j â

Ю СО СМ —

СМ —

 

 

ю

смсм——

 

 

СО Ю

я Г СМ я Г —«

• г?

Ю

СМ СО см см

 

_

СМ Ю

СО см

 

 

-е і

Ю СМ СО СМ — •

 

 

 

 

 

 

 

 

— CM CM

 

СО

 

J a

юс о

см—

 

•с>

о toсм

 

 

ю смсм —

 

 

 

 

г -

0 5

с о

- -

©

о

•О

с о с о

с о см — ■см

 

 

СО N . СО С5 СО4о о

J a

c o c o с о см—.

 

-

о со со

 

см

 

 

 

СО о

о

— о

 

j T

о яг—смсм

 

 

см юо см

 

 

j

T

t o c o

 

 

 

 

О

CJ N

см

 

 

j

T

 

 

 

 

 

 

 

 

ю СО ю

СО с о —• с о

 

 

г«- 'S *

яг

 

*а>-

Т

- Г С5 СО — СО

 

 

^

«3- Г Г —

CM

J a

с о

я т

с о

— см

 

 

t'-

Я Г

 

 

wCr

 

 

СМ СО юо — с о

 

 

Г -

'Ч * ’ ö* —

 

 

 

.

 

 

 

 

 

 

 

 

G5 СО — CO CO 0 5

J a

CD " Г

я г —

См -Н

 

 

 

 

 

 

j â

 

о

ЯГ я г —

 

 

 

 

t o

см 05

 

 

 

j a

 

4

 

 

 

 

 

 

 

 

 

 

 

bjRj. Каждый вариант bjr можно пред­

ставить

как

конъюнкцию Кіг символов

производных

операторов,

входящих

в

этот

вариант. Например,

варианту

bg

из табл. 7-8 соответствует

конъюнк­

ция 69-48-41•18-23-19. Совокупность вариантов для оператора У ■. можно вы-

разить как \ j J(/г, тогда совокупность

всех вариантов для Y lt . . . , Y m будет

 

т I к,-

іг

 

 

 

Л

V К

 

 

 

/=1 \Т=1

/

 

все­

 

Раскрывая скобки

и производя

возможные операции

вида

А -А =

А,

получим дизъюнкцию из R x . . . R j . . .

R m

конъюнкций,

где

R j (j

=

,

т)

— число вариантов

реализации

Yj.

Выбирая конъюнкцию

с минимальным

числом сомножителей, получим мини­ мальное покрытие таблицы вариантов и, следовательно, минимальный подграф ГСА. Трудность такого решения этой задачи, в том числе на быстродействую­ щих ЦВМ, состоит в том, что с ростом числа исходящих операторов и числа вариантов внутри операторов число по­

лученных конъюнкций растет

очень

быстро. Так, при

т — 10 и R j

10

для всех у = \, . . .

, т число этих конъ­

юнкций равно 1010.

 

 

Покажем, как можно существенно сжать таблицу вариантов без потери минимального покрытия. Начнем с при­ мера. Рассмотрим варианты Ь1 и 64 из массива У\:

Ьі h

46 70

(12) 42

19(47)

(12) '

Предположим, что варианты для по­ крытия Y 2 и Y 3 уже выбраны, в связи

счем возможны четыре случая:

1)ни в одном из вариантов для У2 и

Y 3 не встречаются производные опера­ торы 12 и 47;

150

2)среди этих вариантов встречается оператор 12 и не встречается оператора 47;

3)среди этих вариантов встречается оператор 47 и не встречается

оператора

12;

 

вариантов встречаются оба оператора,

12 и 47.

 

4)

среди этих

 

Обозначим через с\ и с\ число

операторов,

которые добавляются

к зафиксированному для У2 и У3

покрытию в t-м случае (из четырех

перечисленных), если

Уф покрывается Ьх и 64

соответственно.

 

1.

с)

=

3; с' — 4,

так как ни 12, ни 47 не входят в покрытия для

Уа или

У3;

 

с|=

3 (12 входит, 47 — нет);

 

 

 

2.

с\

-=

2;

 

 

 

 

3.

сз =

3;

 

с\=

3 (47 входит, 12 — нет);

 

 

 

4.

cf =

2;

 

с*= 2 (оба оператора входят впокрытия для У2или У3).

Как

видно

из

рассмотренных

примеров, Ьг

всегда

нехуже

Ь4

(с [< с |,

і — 1,

2,

3, 4) независимо от выбора вариантов для покрытия

У2 и У8.

Спомощью рассуждений, аналогичных только что приведенным, нетрудно показать, что среди двух вариантов покрытия некоторого исходящего оператора У;- вариант bs не хуже варианта bt (bs^ b t), если выполняются два условия1:

1.

LS< L ,;

 

Bs) > 0,

где Ls

и

Lt — длины

вариантов

2.

(Lt — Ls) — Р (Bt \

bs и bt (число производных операторов в этих

вариантах);

Bt

и Bs

множества операторов, заключенных в скобки в вариантах Ь, и

bs со­

ответственно;

Bt \

Bs — разность множеств

Bt и

Bs\

Р (Bt \

ß s) —

число элементов в множестве Bt \

Bs.

 

 

 

 

квазипорядка,

Очевидно,

что

отношение

bs ^ b

t

есть отношение

которое рефлексивно (bs

bs)

и транзитивно

(если

bt и Ъ, <<; Ьг,

то bs sC. br).

Будем также

говорить,

что

bs

и Ь(

несравнимы,

если

b„ ^

bt и b[

bs,

и эквивалентны,

если

ös <;

bt

и bt ^

bs.

 

 

Сравним для примера несколько вариантов из табл. 7-8.

 

 

а.

Ьв и Ь9:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Lc = 6,

7-9= 7,

L e < L 9;

 

 

 

 

 

(Lg Le) P (В0 \ В в) = (7— 6)—P ((23, 11, 13)\{11, 13))= 1 - 1

= 0;

 

 

 

 

 

bg-

 

 

 

 

 

 

 

 

б. bg и b7:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7-e= 6,

L7 = 6,

Lg — L7;

 

 

 

 

 

(L-i Lg) P (B7 \B g ) = (6—6) —73 ((47,

11, 12)\{.l 1,

13}) =

 

 

 

' = ( 6—6)— P (47,

12) =

—2;

 

 

 

 

 

 

 

 

 

 

b g ^ b 7.

 

 

 

 

 

 

 

 

1 Строго говоря, первое условие вытекает из второго,- поэтому достаточно выполнения лишь условия 2.

151

Проверим обратное:

 

 

 

 

 

 

 

L7 — L(i,

 

(LG- L

7) - P ({ 1 1 ,

13)\(47, 11, 12}) = (6 —6) —Р ({13}) = — 1;

 

 

67 ^ Ьв

. Варианты Ьй и 67 несравнимы.

в.

62

и Ь4:

 

 

 

 

 

 

 

ZLо — 4,

— 4,

7.о — I.j ]

 

 

(Lj — L2) - P

({47,

1 2 j\Q ) = 0—2 = —2;

 

 

 

 

ь2 4 =&4-

 

Проверим обратное:

 

 

 

 

 

 

 

Lj ~ L2,

 

 

 

(Lo— Lj) —Р (0 \{ 4 7 , 12}) = О—Р (0 ) = 0—0 = 0;

 

 

 

 

£ > J

& 2 .

 

г.

Сравнение Ь21

и Ь24

показывает,

что Ь2 1 0 Ь2 4 и ö2j- 0 ö 21> т. е.

они эквивалентны.

Алгоритм сжатия таблицы вариантов очевиден. Сравнивая попарно варианты в пределах каждого массива У) (/ -- 1, . . . , т), оставляем только те варианты, которые ни разу не оказались хуже других. Если какая-либо пара вариантов из оставшихся эквивалентна, то доста­ точно оставить в таблице любой из них. Таким образом, в каждом мас­ сиве Yj (j = 1, . . . , in) после сжатия будут только несравнимые ва­ рианты. Сжатие табл. 7-8 приводит к табл. 7-9, в которой У7 и Y 3 содержат по одному варианту, а УС,— два варианта, £>10 и Ьг1. Од­ нако если в табл. 7-8 в Ьіг операторы 49, 23 и 13 были заключены в

скобки, то в табл.

7-9 они без скобок,

так как их нет в вариантах для

Уі

и Y 3.

 

 

 

 

 

 

 

 

 

Таблица 7-9

 

Таблица 7-10

Результат

первого сжатия

таблицы

Минимальное

покрытие

таблицы

 

 

вариантов

 

вариантов

 

 

К,

 

 

V,

V,

 

Y:,

 

ь.

friu

Ьп

fr14

by

fr10

fr16

 

46

60

61

50

46

60

50

'

(12)

9

9

26

(12)

9

26

 

19

47

49

22

19

47

22

 

 

(12)

23

(12)

 

(12)

(12)

 

 

 

13

 

 

 

 

152

В

результате сравнения ft10,

и 6 и

в табл. 7-9 оказывается, что

b,„

Ь1ІУ и мы приходим к табл.

7-10,

где содержится всего один ва­

риант подграфа ГСА, в котором будет

минимальное число условных

вершин. Соответствующий подграф с 9

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

ден на рис. 7-9.

 

 

 

 

Рис. 7-9. Минимальный подграф,

равносильный подграфу

 

 

 

 

 

на рис. 7-8

 

 

Таким образом, процедуру сжатия нужно проводить несколько раз.

Если

после окончательного

сжатия

в

одном или нескольких из

Yj (у --

1, . . . ,

т) остается более одного варианта, то можно приме­

нить описанную выше модификацию ме­

Ф

 

тода

Петрика,

поскольку

размерность

хі

задачи после сжатия существенно со­

 

 

кращается.

метод был

разработан

 

 

Изложенный

 

Хі

для минимизации ГСА, однако оказалось,

 

 

что он может быть без всяких изменений

 

 

использован для минимизации многовы­

Рис. 7-10. Соответствие между

ходных

схем

с непересекающимися

условной вершиной (а) и пере-,

множествами

значений реализуемых

ключательным контактом (б)

ими

выходных

функций,

построенных

 

 

.на переключательных контактах. Рис. 7-10 иллюстрирует однознач­ ное соответствие между условной вершиной и переключательным кон­ тактом. На рис. 7-11 показан пример шестивыходной релейной схемы до и после минимизации.

В случае неполностью определенной ГСА можно ввести понятие неполностью определенного отмеченного покрытия, в которое вклю­

чим кубы вида csZ, где Z — символ нейолной определенности, а cs — соответствующий куб, на котором это покрытие не определено. Алго­ ритм получения равносильных подграфов остается прежним с той

лишь разницей, что в -результате операции crYt х csZ получается

153

куб

cpY h

где ср определяется как и ранее, но координата х, по ко­

торой

происходит склеивание, не

подчеркивается (так же, как и в

случае c Y ,

х csY , ). Если считать,

что ГСА Г на рис.

7-8

не опреде-

 

 

 

лена на наборах

 

а)

X ,

 

 

 

 

 

 

 

ХІ1

10х

Z

 

 

 

1x1

10х

Z

 

 

 

Их

lOx

Z

^

—1_______________ „л

ff

 

X,

Xs

 

'

f

 

 

1—I I

I I

°4

 

—1r

~ ~ | X S

-------

afl

 

 

 

1

 

 

Ez

n

x2

 

 

 

 

r

 

 

 

 

 

\

\ 1

 

 

 

 

Ч 1Тx3

 

 

 

 

 

. H r

------------------------------------------------------ off

 

 

 

Рис. 7-11. Схема на переключательных контактах:

а — до минимизации,

б — после минимизации

 

 

 

 

 

 

то в результате минимизации получим подграф с 7 условными верши­ нами.

7-2. Учет распределения сдвигов при минимизации граф-схем алгоритмов

Из содержательного смысла работы дискретного устройства, по­ ведение которого описано граф-схемой алгоритма, часто можно опре­ делить, какие логические условия могут меняться (или не меняться) во время выполнения того или иного оператора. Например,, если в ЦВМ в каждый момент времени выполняется не более одной команды— отсутствует локальный параллелизм [13], то код этой команды не ме­ няется от момента ее появления в регистре команд до выбора следую­ щей команды.

Если каждому оператору Yt (t = 0, 1, . . . , Т + 1; Y0, Y T+l

начальный и конечный операторы) ГСА или MCA поставлено в соот­ ветствие некоторое подмножество Bt логических условий, элементы которого могут изменяться во время выполнения оператора Yt, то

154

говорят, что задано распределение сдвигов. Распределение сдвигов является дополнительной к ГСА или MCA информацией о логике ра­ боты устройства, и эта дополнительная информация может быть ис­ пользована для упрощения ГСА или MCA.

Если каждому оператору Y t поставлено в соответствие полное мно­

жество логических

условий (Bt = X = [xlt . . .

, xL\),

то

такое рас­

пределение

сдвигов

называется

универсальным.

Если

же

для всех

t = 0, 1, . .

. , Т

1 Bt = 0

(ни одно логическое условие не изме­

няется во время выполнения операторов), то такое распределение сдви­ гов называется пустым.

Пусть для MCA М (табл. 7-11) задано распределение сдвигов:

Уо

Уі-

Уз

г 4

Уз

Ув

Y о

B q — 0 ;

Y 4 -------------------

ß . j - -

( х 2 } ;

Yi

Вх— \х2, х3);

Y г,

В5={л'1; х2, *з);

Y 2-------

В2 = [х2];

Y о-------

В(; = [х2]

Y з

В3 [хі, х2, х3];

Кк

Вк =

0 .

Таблица 7-11

MCA М до учета распределения сдвигов

У,

у,

уа

У.

у-.

у«

ук

*2*1

 

 

*2*1

- *2*1

 

 

 

 

*2*1

 

 

 

 

 

 

 

 

 

 

X2 Ху

 

 

 

*2

 

 

 

 

 

*2*1

 

 

 

 

 

 

*2*1

 

 

 

*2

 

 

 

 

 

*2*1

 

 

 

 

 

 

 

 

 

 

 

*1

*1

 

 

 

 

 

 

 

 

*2

 

 

 

 

 

*2*1*3

*2*1

 

 

 

 

 

 

*2*1*3

 

*1

 

 

 

*

*1

 

 

 

 

 

 

 

1

 

 

/

 

 

 

 

 

 

 

155

Анализ столбца Y x показывает, что

оператор

может

выпол­

няться только после У0 и Y 2, но всегда

при хх= 1

и х2 — 0.

Из рас­

пределения сдвигов видно,

что л*1 не изменяется во время выполнения

оператора Уг, т. е. после выполнения Y L логическое условие х х

остается равным единице.

В связи с этим в строку Ух можно вместо

переменной х х подставить ее значение — единицу. Так как x s входит

в распределение сдвигов для И1, то значение х 2

может

измениться,

а потому в строке

Ух нельзя х 2

заменить на нуль.

 

Перейдем к следующему столбцу, У„. Аналогично У2 выполняется

после Y-a только при ,vx = 1,

 

не входит в распределение сдвигов

для Y о (.vx

Во),

поэтому в строке У, можно заменить х х на единицу.

Продолжая точно так же для остальных операторов, придем к MCA

М' в табл.

7-12.

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 7-12

 

MCA М' после учета распределения сдвигов

 

 

У і

Y o

У з

у .,

У 5

y e

У к

 

 

Уо

Л'іЛ'2

 

 

X i

•Ѵ Л

 

 

У і

 

 

А'2

 

 

 

Ао

к 2

-Ѵ'2

 

 

 

А2

 

 

у 3

 

 

 

X i

X i

 

 

У 4

 

 

 

 

 

 

I ■

у *

 

X 1

 

 

 

 

-Ѵ'і

Уо

 

 

1

 

 

 

 

 

 

 

 

 

 

 

Интересно заметить, что все элементы столбца У„ оказались рав­ ными нулю. Это значит, что к оператору У„ нельзя перейти ни от ка­ кого оператора, а потому строку и столбец У„ из MCA М' можно уда­ лить.

На рис. 7-12 и 7-13 приведены граф-схемы Г и Г', построенные по MCA М и М ’. Как видно из нашего примера, учет распределения сдви­ гов позволил существенно упростить ГСА и MCA.

В работе [8] предложена простая процедура учета распределения сдвигов при минимизации MCA, сущность которой сводится к следую­ щему. Для каждого столбца Yt (t = 1...........Т + 1) матричной схемы

156