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

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

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

3-3. Кодирование состояний и сложность комбинационной схемы

Анализ канонического метода показывает, что различные варианты кодирования состояний автомата приводят к различным выражениям функций возбуждения памяти и функций выходов, в результате чего -оказывается, что сложность комбинационной схемы автомата сущест­ венно зависит от выбранного кодирования. Проиллюстрируем это синтезом на задержках абстрактного автомата 5, таблица переходов которого представлена в табл. 2-4. В рассмотренном во второй главе примере (табл. 2-15) состояния автомата 5 были закодированы следую­ щим образом: К (ах) = 00; К (а2) = 01; К (а3) = 1 1 . В результате синтеза функции возбуждения, приведенные в (2-5), имели вид:

 

Фі= хіх2х1х2V АѴ Л V хіх2хіх2 = 1\/ 6 \/ 14;

 

 

 

<р2 = ТаТа-аді V хіЧ хіх2 V хіх2хіх2 V хіх2хіх2 V

 

 

 

 

V

= 0 V 1V 2V 6 V 14-

 

 

 

Закодируем состояния автомата S

иначе: К («і) = 01; /С (а2) =

10;

К (а3)

= 00. Таблица переходов структурного автомата 5 при таком

кодировании

дается в табл.

3-11.

 

Таблица 3-11

Так как таблица функций возбуж­

 

Таблица переходов

 

дения

на задержках совпадает с табли­

 

цей

переходов,

непосредственно

из

структурного

автомата

табл.

3-11

имеем

существенно

более

 

 

 

простые функции возбуждения:

 

 

01

10

00

 

 

 

 

 

Фі= хіх2хіхг V хіх2хіх2 = 4V6;

ф2 = x1r 2x1x2V Xit^xX., — 9VO.

0 0

10

 

01

01

00

01

10

10

00

0 0

При кодировании состояний в этом

 

примере

был

использован

следующий

 

алгоритм,

позволяющий

упростить

функции

возбуждения при

синтезе автомата на задержках:

ат (т = 1...........М) ставится

1.

Каждому

состоянию

автомата

в соответствие целое число

Nm, равное числу переходов в состояние

а,п

равно числу появлений атв поле таблицы

переходов или числу

стрелок, входящих в ат при графическом способе задания автомата).

2.

Числа N х, .

. . ,

Nm, . . . , N м сортируются

по убыванию.

3.

Состояние at

с

наибольшим Nt кодируется

кодом (00 . . . 0).

4.

Следующие /

состояний (/ — число элементов памяти) в упоря­

доченном в п. 2 списке кодируются кодами (00 . . . 01), (00 . . . 10), . . . , (10 . . . 00). ѵ

5. Для кодирования следующих I из оставшихся М —/ —1 состоя­ ний используются все коды, содержащие две единицы, затем 3 единицы и т . д., до тех пор пока все состояния не будут закодированы. В ре­ зультате получаем такое кодирование, при котором чем больше имеется переходов в некоторое состояние, тем меньше единиц содержится в его коде.

47

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

ш3—3 раза; w.z—2 раза; агі— 1 раз; ад, — 1- раз; их—2 раза;

и*— 1 раз.

После кодирования выходных сигналов в соответствии с упорядо­ чиванием (табл. 3-12 и 3-13) таблица выходов автомата S примет вид табл. 3-14.

 

Таблица 3-12

 

Таблица 3-13

 

Кодирование выходных

Кодирование выходных

Ч

сигналов

типа

I

сигналов типа 2

 

 

У і

У і

 

г

 

 

 

 

 

щ

0

0

» 1

0

 

0

1

 

 

W о

t u

1

 

W i

1

0

 

 

 

W i

1

1

 

 

 

 

 

 

 

Таблица 3-14

 

Таблица выходов после изменения кодов

 

 

 

выходных сигналов

 

 

 

 

0

1

0

 

 

 

00

01

11

 

00

 

00

00

01

 

01

 

11

 

10

 

01

10

00

 

Непосредственно из этой таблицы получаем выражения функций выходов:

У і — т і т а у д ' з V TiTo.i'i.Vo = 1 V 6 ;

У2 = TiToA'iA'o V TjToAVa V ТіТоЛ'іЛ'з = 1 V 2 \/ 12;

'■= Т]Т2-

Напомним, что аналогичные выражения при первом варианте ко­ дирования выходных сигналов имели вид:

у1 = т1тгх1,Го V ТхЪХхХъ V ХхЪХіХг V XiXzXiX2 = 0 \/ 5 V 6 \/ 14;

у2 ^=х1 т2 х1 х2 V ТіТа.ѵу.Ѵо '■/ ТчТоДдл'., у т^плул'о — 0 \/ 1 \/ 5 \/ 14;

Г = ТіТо \/ TjT2.

Большое число работ [25, 26, 28], начало которых было положено Хартманисом и Стирном [27, 291, посвящено получению такого ко­

48

дирования, при котором уменьшается зависимость функций возбужде­ ния от переменных обратной связи т х, . . . , т; . Хартманне и Стирн показали, что этот подход тесно связан с существованием определен­ ныхразбиений множества состояний автомата. Как правило, нахож­ дение вариантов кодирования состояний, которые создают ослаблен­ ную функциональную зависимость для функций возбуждения, часто дает более экономичную схему, чем при других типах кодирования.

Упомянутый подход и развитые на его основе методы достаточно подробно изложены в литературе, в том числе и в монографиях [11, 18]. В то же время большинство авторов отмечают сложность этих методов кодирования при синтезе автоматов с большим числом состоя­ ний и переходов и при синтезе частичных автоматов, а также трудно­

сти одновременного

учета сложности функций возбуждения

памяти

и функций выходов.

В связи с этим не будем останавливаться

на этих

методах, а рассмотрим эвристический алгоритм кодирования Состоя­ ний, предложенный в [19] и минимизирующий суммарное число из­ менений элементов памяти на всех переходах автомата. При таком критерии уменьшается сложность схем, реализующих дизъюнкции на входах элементов памяти, т. е. также минимизируется комбинационная схема автомата.

Введем весовую функцию W = h t ms, где tms— \Km Ks |2 — расстояние между кодами состояний ат и as, равное числу элементов памяти, изменяющих свое состояние на переходе (ат, а„); суммирова­ ние производится по всем переходам автомата. Введенная функция W может служить одной из оценок сложности комбинационной схемы

автомата [19],

при этом упрощение комбинационной схемы будет

тем больше, чем меньше W.

 

Алгоритм состоит из следующих шагов:

1. Построим

матрицу

 

 

« 1

ß i

 

 

 

м = а г

ß ,

 

а н

ß «

состоящую из всех различных пар номеров (ar, ßr), таких, что в авто­ мате S есть переход из ааг в а^г.

2. Переставим строки в матрице так, чтобы выполнялось условие

К> ßr} П (аі> ßi, - • , a,_i, ß,_i)=A0, /- = 2, . . . , R. (3-1)

Условие (3-1) означает, что хотя бы один из элементов r-й строки содержится в какой-нибудь из предыдущих строк. Имеются в виду только связные автоматы [19], для которых такая перестановка всегда возможна.

3. Закодируем состояния из первой строки матрицы М следующим образом:

Ка, = (00 . . . 00); /Ср, = (00 . . . 01).

з З а к а з № 2225

49

4. Вычеркнем из матрицы М первую строчку, соответствующую закодированным состояниям аа и ар 4 Получим матрицу М ' .

5.В силу условия (3-1) в начальной строке матрицы М' закодиро­ ван один элемент. Выберем из первой строчки матрицы М' незакоди­ рованный элемент и обозначим его через у.

6.Построим матрицу М ѵ, выбрав из М ' строчки, содержащие у.

Пусть

Вѵ = (y j , . . . , у{, ■■■, Yf )

— множество элементов

 

из

мат­

рицы Му, которые уже закодированы.

Их коды обозначим К у1,

. . . ,

/Cvf, ■• ■, /<YF соответственно.

 

 

 

 

 

 

 

 

 

 

7.

Для

каждого Kyf (/ = 1, . . . ,

F)

найдем

— множество

кодов,

соседних с Kyf и еще не занятых для кодирования состояний

 

 

 

автомата.

Построим

множество

1

F

1

 

 

Если

 

 

 

Dv = (J Сѵ .

 

 

 

 

 

 

 

 

 

 

 

 

 

f=i

'

 

 

 

 

 

 

D \ = 0 , т о строим

 

 

 

 

 

F

 

 

, где

 

 

 

новое множество Dy — (J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f=i

 

 

 

 

Су, — множество кодов, у которых кодовое

рассто­

 

 

 

яние с кодом Ку

равно двум. Если

и Dy =

0

,

стро­

 

 

 

им аналогично D3V,

. . . , Dy, до

тех

пор пока

 

не най­

Рис. 3-4. Граф

дется Dy

 

0 (п =

1,2, 3,

. . .).

Пусть Dy =

{/Сбх, • • •.

K6g, . .

.

, Кбв}-

 

 

 

 

 

 

 

 

 

 

автомата с 5 со­

 

 

 

 

 

 

 

 

 

 

стояниями

 

 

8.

 

 

 

 

 

Для

каждого

Kög

находи

 

 

 

Kyf |2 — кодовые расстояния между

К&

 

и всеми

использованными

кодами

Ку, (f =

1,

. . . , F).

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

9.

Находим2 WB= 2

Weh g = 1,

. . . ,

G.

 

 

 

 

 

 

10.

Из

Dy

выбираем

 

Kv, у которого

Wg = min Wg . Элемент у

(состояние ау) кодируем кодом Ку-

 

 

 

g e

а

 

 

 

 

 

 

 

 

 

 

 

 

 

W.

Из

матрицы М'

вычеркнем строчки, в которых оба элемента

закодированы, в результате чего получим новую матрицу, которую

также обозначим через М \

Если в матрице М' не осталось ни одной

строчки, переходим к п. 12,

иначе к п. 5.

 

12.

Вычисляем функцию

W = S fms, где fms= | К,п — Ks |2.

13.

Конец.

 

 

 

 

 

Оценкой качества кодирования по рассмотренному алгоритму мо­

жет служить

число

/г =

W/p, где р — число переходов

в автомате.

Очевидно, что

1

<<Д,

причем чем меньше значение /г,

тем ближе1

1Ниже вместо «элемент <хг, соответствующий закодированному состоянию

аа», будем говорить «закодированный элемент а Л». Кроме того, если вторая

строчка есть (ßj, а 4), то вычеркиваем и ее, таю как ее элементы уже закодиро­ ваны.

- Если в автомате имеется переход из

в ау и из ау

в о^, то \Vgj входит

дважды в ll^g, см. ниже в примере переходы (а4, аъ) и (а6,

а4).

50

кодирование к соседнему, при котором к = 1. Эксперименты с про­ граммой на ЦВМ М220, проведенные для автоматов различной слож­ ности (число состояний М = 10-н 128), дали значения к в пределах

1,4 — 2,1 [19].

Без подробных пояснений приведем пример кодирования состояний авто­ мата, граф которого изображен на рис. 3-41:

12

24

25

 

 

 

М =

32

 

 

 

 

 

 

 

43

 

 

 

 

 

 

 

 

45

 

 

 

 

 

 

 

 

54

 

 

 

 

 

 

 

 

51

 

 

 

 

 

 

К1= 000;

ЛГ2 =

001.

 

Кодирование

будем

иллюстрировать

картой

 

Карно:

 

 

 

00

ТоТд

И

 

10

 

 

 

оГ

 

 

 

 

о

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

24

 

 

 

 

 

 

 

 

25

 

 

 

24

 

 

 

32

 

 

 

 

М'

=

V= 4;

М.і

43

В*= [2}.

43

45

 

 

45

 

 

 

 

 

 

 

 

 

54

 

 

 

54

 

 

 

 

 

 

 

 

 

 

 

 

 

 

51

 

 

 

 

 

 

 

 

С\ = {101, 011);

D\ = С\ =

{101, 011}.

117101= I 101 — 001

1;

117011 =

I он — 001 |2= 1.

Выбираем К, =

101.

 

Т-дТз

 

 

 

 

 

 

00

И

 

10

 

 

 

01

 

 

 

 

0

1

'2

 

 

 

 

 

Ті

 

 

 

 

 

 

I4

1Дугам графа ие приписаны входные и выходные сигналы, так как они не используются в алгоритме.

3*

51

 

25

 

 

 

 

32

 

25

 

M '

43

Y = 5;

Mr, = 45

ß 6= |2, 4, 1).

 

45

 

54

 

 

54

 

51

 

 

51

 

 

 

 

СІ={011); C.‘ = [100,

111);

cj =

{100, 010);

 

 

D' = C\ U C.‘ U C\ =

[Oil,

100, 111,

010}.

 

r ou =

|011 — 001 |з + I Oil — 101 141011 — 101 I- +

I Oil — 000 p =

 

u + o o =

I 100— 001 [2+1 100— 101 p +

I 100— 101 p +

 

= 1+ 2 + 2 + 2 = 7;

I 100 — 000 [2 =

 

№nl =

I 111 — 001 |2 + I 111 — 101 |2 +

I 111 — 101 |2 +

I 111 — 000 [2 = +

' +

 

 

 

 

 

 

= 2 + 1 +

1 + 3 = 7

U7„I0=

1010— 001 | 2 + 1010— 101 |a +

I 010 — 101 |2 +

| 010 — 000 l2 =

 

 

 

 

 

 

 

= 2 + 3 + 3 + 1 = 9 .

 

l^ioo = niin {U7он» Ч^юоі

 

N^oiol-

/ + = 100.

 

 

 

TiT,

 

 

 

 

 

00

01

 

11

 

10

 

32

Y = 3;

32

Ba = (2, 4J.

M '

43

43

 

 

 

 

C' = {011);

C*=

{111};

D‘ = C' U C> = (Oil,

111],

И+и =

1011— 001 |2 +

I Oil -101 |2=

1 + 2 =

3;

ll7m =

}111 — 001 l3 +

I 111 — 101 [2 =

2 + 1 =

3;

 

r 0u = r m ; /Сз = 0ІІ.

 

 

 

 

t2t3

 

 

 

00

01

11

10

 

1 2

CO

5 4

k = W/p = 10 : 8 = 1,25.

52

Глава четвертая

ГРАФ-СХЕМЫ АЛГОРИТМОВ

4 -1. Микропрограммы работы дискретных устройств

При описании работы широкого класса дискретных систем автома­ тики, вычислительной техники и телефонии в большинстве случаев оказывается удобным представить эти системы в виде двух частей: операционного устройства и устройства управления. Так, в вычисли­ тельной машине к операционному устройству относят блоки памяти, регистры, сумматоры, каналы передачи информации, шифраторы и дешифраторы, а к устройству управления — ту часть машины, кото­ рая, координируя действия всех перечисленных устройств, определяет последовательность переработки информации. Задачей устройства управления является, таким образом, выработка распределенной во времени последовательности управляющих сигналов, под воздейст­ вием которых в операционном устройстве осуществляется некоторая операция. Иногда целесообразно многоступенчатое представление дискретной системы. Так, в одних случаях, например при. проектиро­ вании центрального устройства управления ЦВМ, арифметическое устройство (АУ) в целом рассматривается как часть операционного устройства, тогда как при проектировании самого АУ в нем выде­ ляется свой автомат управления, а к операционной части АУ отно­ сятся его регистры, сумматор, регистр кодов арифметических опера­ ций и счетчик сдвигов.

Задача синтеза операционных устройств вследствие их регуляр­ ности и большой повторяемости в настоящее время хорошо изучена и не представляет серьезных трудностей. Иначе обстоит дело с уст­ ройством управления, которое является наименее регулярной частью дискретной системы и совершенно не повторяется при переходе от од­ ной системы к другой. В связи с этим проектирование устройства уп­ равления представляет наибольшую сложность и, более того, часто проектирование системы после выбора основных частей операцион­ ного устройства сводится, в основном, к проектированию устройства управления.

Порядок выполнения операций в дискретном устройстве опреде­ ляется микропрограммой, представляющей собор совокупность мик­ роопераций и логическихусловий. Под микрооперацией мы будем понимать элементарный процесс переработки информации в дискрет­ ной системе или какой-либо ее части, происходящий за время одного такта работы автомата (промежуток между двумя последовательными моментами дискретного автоматного времени) [7]. Для выполнения той или иной микрооперации устройство управления должно выраба­ тывать управляющие сигналы, которые будем называть сигналами микроопераций и обозначать строчными буквами с индексами: y lt . . . , уп, . . . , yN. Если в устройстве одновременно реализуется несколько микроопераций, то это множество микроопераций назовем микроко­ мандой и будем обозначать прописной буквой Y с индексами. Так, если Y t = \уп , . . . , уш, . . . , уш ] — микрокоманда, то микроопе-

53

рации уп , . . . , уи,, ■■■, ijtu выполняются одновременно в один и тот же момент автоматного времени. При U — 1 микрокоманда Y, со­ стоит из одной микрооперации. Не исключен случай U = О, когда множество микроопераций, образующих микрокоманду, пусто. Микро­ команду, состоящую из пустого множества микроопераций, будем обо­ значать символом Y 0. Реализация такой микрокоманды равносильна отсутствию выполнения каких-либо элементарных операций. В слу­ чае синхронных дискретных устройств микрокоманду К0 удобно ин­ терпретировать как пропуск такта, когда не поступают никакие сиг­ налы от устройства управления к операционному устройству.

Выполнение микропрограммы состоит в последовательном выпол­ нении отдельных микрокоманд. Эта последовательность определяется

булевыми

функциями а,-,- множества двоичных переменных X =

= {л*!,

Xj, . . . , xL\, поступающих на вход устройства управле­

ния. Если в микропрограмме все микрокоманды различны (а если это не так, то их всегда можно перенумеровать), то каждой паре микро­ команд К,-, Yj (не исключен случай і = у) соответствует функция сс,-,-, равенство единице которой разрешает выполнение микрокоманды Y; после завершения выполнения микрокоманды У). Очевидно, что среди множества функций а п , . . . ,- <xiR (R — число различных микроко­ манд в микропрограмме) в каждый момент времени не может быть бо­ лее одной, равной единице. В противном случае процесс реализации микропрограммы не был бы детерминированным, т. е. нельзя было бы с определенностью сказать, какая из микрокоманд будет выполняться в следующий момент времени после микрокоманды Yt.

Для записи микропрограмм работы дискретных устройств будем использовать язьік граф-схем алгоритмов и логических схем алго­ ритмов.

4-2. Граф-схемы алгоритмов

Граф-схема алгоритма (ГСА) — ориентированный связный граф, содержащий вершины четырех типов: начальную, конечную, опера­ торную и условную (рис. 4-1).

Конечная, операторная и условная вершины имеют по одному входу, начальная вершина входов не имеет. Начальная и операторные вершины имеют по одному выходу, а условная — два выхода, поме­ ченных символами 1 и 0. Конечная вершина выходов не имеет. ГСА удовлетворяет следующим условиям:

1. Содержит конечное число вершин, каждая из которых принад­ лежит одному из перечисленных выше типов.

2.Имеет одну начальную и одну конечную вершины.

3.Входы и выходы вершин соединяются друг с другом с помощью дуг, направленных всегда от выхода ко входу.

4.Каждый выход соединен только с одним входом.

5.Любой вход соединяется по крайней мере с одним выходом.

6.Для любой вершины графа существует по крайней мере один путь из этой вершины к конечной вершине.

54

7.Один из выходов условной вершины может соединяться с ее входом, что недопустимо для операторной вершины.

8.В каждой условной вершине записывается один из элементов множества X = {хг, . . . , xh . . . , xL), называемого множеством ло­ гических условий. Разрешается в различных условных вершинах за­ пись одинаковых элементов множества X.

9.В каждой операторной вершине записывается оператор (микро­

команда)

Y t

— подмножество множества Y =

\ух,

. . . , уп, . . . , yN],

называемого

множеством

микроопераций1:

 

 

 

Y {

I Уіі> ■• ■> УіиI

■• ■! Уіи}’ Уіи

^

1

U •

При

U = 0 Yt = 0 ,

что допустимо. Разрешается

также запись

в различных операторных вершинах одинаковых подмножеств мно­ жества микроопераций.

При большом числе дуг, приходящих на один вход вершины, на­ глядность графического изображения может потеряться, в связи с чем позволим изображать дуги, входящие в вершины, так, как показано на рис. 4-2.

 

 

 

О

Рис. 4-1.

Вершимы ГСА

Рис. 4-2. Допустимое изображение

 

 

 

вершин ГСА

Пример ГСА,

содержащей

16 условных и 11

операторных вершин,

приведен на рис. 4-3.

 

 

Предположим, что в операторных вершинах

ГСА записаны опера­

торы Уф, . . . , Y т— все разные, так что операторную вершину можно отождествить с записанным в ней оператором. Начальной вершине

поставим в соответствие оператор

У0, а конечный — Уг+1. Пусть в

ГСА имеется путь из вершины

Уг (і. — 0,

1,

. . . , Т)

в вершину У;-

(/ = 1, . . . ,

Т + 1) вида

 

 

 

 

 

 

 

 

у іРа ■■■ Ріг

■■■ Pir Y j

 

(4-1)

проходящий только через условные вершины рп ...........piR.

 

Очевидно,

что каждому такому

пути

соответствует конъюнкция

а,.. = х?(і • • •

х \ у . . . х‘иг, тде

x.r

£

X — логическое

условие,

за­

писанное в условной вершине pir\

eir

£

(0,

1) — символ, приписан­

ный выходу

условной вершины ріг,

через

который

проходит

путь

(4-1); х\г= хіг\ х°іг = хіг.

1 Слова «микрокоманда» и «оператор» при описании .ГСА рассматриваются как синонимы. В случае содержательных граф-схем алгоритмов (см. следующий параграф) всегда будем использовать термин «микрокоманда», что чаще встре­ чается в литературе, например в [7].

55

Г-н

Если между вершинами У,- и Уу имеется несколько (например, Н)

путей,

проходящих

через условные вершины, то аі}

равно дизъюнк-

ции конъюнкций,

соответствующих всем путям, т.

е.

н

а..— V а *.,

где а'ң — конъюнкция, соответствующая /t-му пути из У;

в Уу. Назо­

вем а

функцией перехода от оператора (микрокоманды)

У£ к опера­

тору (микрокоманде) Уу.

 

 

 

Очевидно, что множество функций а .

аі.т-и

является орто-

 

 

 

 

 

Рис. 4-3. Пример ГСА

тональным (а,-уа;/; О; /г = 1............Т -|- 1) и полным V а,-у= 1 •

Полное ортогональное множество функций называют нормальным [8 ]. Всевозможные наборы значений переменных а^ и. . . , xL обозна­ чим через Др . . . , Д2і.. Определим процесс выполнения ГСА, начи­

ная с оператора У0 (начальный оператор) на произвольной бесконеч­ ной последовательности наборов Дт1, . . . , Amq, . . . следующим об­ разом1:

Выписываем оператор

У0.

1

В

дальнейшем будем

предполагать, что значения логических условии

*і, .

. . ,

Xi могут изменяться только в моменты выполнения операторов.

56