Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
42 Мухопад Теория дискретных устройств.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
10.48 Mб
Скачать

4.5. Управление взаимосвязанными процессами

Если речь идет о системе взаимодействующих МПА, то ситуация меняется. В этом случае существуют обращения из одного МПА к выполнению подпро­грамм, реализуемых другими МПА. Осуществляется такая система с помощью веду­щего автомата Мура и автоматов подпрограмм Мили.

Эта же задача может быть реализована комплексом автоматов, если все подпрограммы, включая ведущую, рассматривать как единый автомат Мили. Тогда при независимой разметке каждого из алгоритмов для получения графов автоматов Мили следует сделать зависимыми номера состояний автоматов, т.е., если в первом МПА состояния , то во втором автомате необходимо занумеровать состояния, начиная с , в третьем – с .

В работе [34] показано, что в таком случае для рекурсивного обращения к подпрограммам в структуру автомата целесообразно ввести дополнительную па­мять в виде регистров с односторонней связью (стек первого типа) и устройства формирования МК управления стеком на основании анализа состояний регистра памяти (логическая подсистема). В отличие от работы [34], эта идея в данном параграфе проработана детально и изложена подробно.

На рис. 90 представлены графы микропрограмм с кодами , где – логические условия переходов от a(t) к a(t + 1), представленные в табл. 34, а – выходные микрооперации. Здесь аR – код возврата из микропрограммы. В этом случае структура МПУ приобретает вид рис. 91. Кроме стека (блок СТ), отличие от классической структуры МПА лишь в том, что появился так называе­мый регистр микрокоманд (РМК), рассчитанный на три поля:

Z – поле кода подпрограмм;

K – поле кода a(t);

Y – поле кода микроопераций.

Функционирует данное МПУ в следующей последовательности:

Если код поля Z равен нулю, то МПУ работает как обычный автомат Мили, т.е. код поля К, представляющий собой a(t), передается на Pг a(t), и автомат переходит к выполнению следующего такта расшифровки a(t) для определения нового состояния a(t + 1) той подпрограммы (например, ведущей), которую он осуществляет. Если код поля , то код поля К сохраняется в стеке, а содержимое кода Z вместо a(t) переписывается на Pг a(t), и автомат переходит к выполнению подпрограммы точно так же, как и к расшифровке обратного состояния МПА, ибо состояния во всех графах подпрограмм закодированы различными номерами (по условию).

Стек, используемый для реализации вложенных вызовов микропрограмм, управляется сигналами

Рис. 90

Таблица 33

Обозна-чение

Логическое условие

Обозна-чение

Микрооперация

X1

Сигнал «Пуск»

Y1

Начальная установка

X2

Тактовый сигнал (для Yi)

Y2

Увеличение СчХ

X3

[СчХ] = [PгA]

Y3

X4

Сигнал из ЧБ1

Y4

Выборка и

X5

Внешний сигнал «Стоп»

Y5

;

X6

Сигнал «Продолжение»

Y6

Ожидание

Рис. 91

Таблица 34

a(t)

Код К a(t)

a(t + 1)

Код К a(t + 1)

X

Y

а(t) адрес ПЗУ

N

a1

0001

a2

a3

a3

0010

011

011

x1

x11

x11

y1y2

y6y7

z2

00001

00010

00011

1

2

3

a2

0010

a2

a5

a3

0010

0101

0011

x9

x10

x5

y3y4

y4

y3

00100

00101

00110

4

5

6

a3

0011

a4

0100

1

y6

00111

7

a4

0100

a1

a1

0001

0001

x2

x6

y1y2y3

z1

01000

01001

8

9

a5

0101

a2

0010

1

z1

01010

10

a6

0110

a7

ar

a8

0111

0000

1000

x4

x14

x13

y5y6y7

y3y4

y7

01011

01100

01101

11

12

13

a7

0111

ar

ar

0000

0000

x8

x5

y7

y1y2y3

01110

01111

14

15

a8

1000

ar

0000

1

z2

10000

16

a9

1001

a10

a9

ar

1010

1001

0000

x1

x12

x11

y1

y2y3y4

10001

10010

10011

17

18

19

a10

1010

a9

a9

1001

1001

x3

x7

y3y4

y5y6

10100

10101

20

21

– в регистр a(t) заносится код Z, а код вершины из поля К по сигналу записывается в стек.

команда используется, если код поля К содержит код вершины воз­врата, тогда из стека по сигналу «выталкивается» код a(t), записанный перед вы­зовом микропрограммы Z.

Синтез МПУ такого типа не имеет особенностей, т.е. по графам автоматов составляется единая (как для одного автомата) таблица переходов (табл. 34), которая является основой составления системы булевых функций для ПЛМ. Затем на основании этой таблицы составляется табл. 36, являющаяся основой формирования содержимого ПЗУ по адресу A(t). В табл. 35 символами обозначены номера позиций 1 в коде a(t) поля К, который заносится в стек.

Таблица 35

N

а(t)

Содержание

Примечания

Y

Z

K

00000

1

00001

y1y2

0010

2

00010

y6y7

0011

3

00011

S1S4

0011

Вызов z2

К(a9) = 1001

4

00100

y3y4

0010

5

00101

y4

0101

6

00110

y3

0011

7

00111

y6

0100

8

01000

y1y2y3

0001

9

01001

S2S3

0001

Вызов z1

К(a6) = 0110

10

01010

11

01011

y5y6y7

S2S3

0010

0111

Вызов z1

МПП z1

12

01100

y3y4

0000

13

01101

y7

1000

14

01110

y7

0000

15

01111

y1y2y3

0000

16

10000

S1S4

0000

Вызов z2

МПП z2

17

10001

y1

1010

18

10010

y2y3y4

1010

19

10011

0000

20

10100

y3y4

1011

21

10101

y5y6

1001

Таблица 36

Наименование

сигнала

Назначение

С1

Запись в PгA

С2

Запись в PгY

С3

Увеличение счетчика СчХ

С4

Сложение и на сумматоре 1 (1)

С5

Сложение и на сумматоре 2 (2)

С6

Выборка из числового блока 1 (ЧБ1)

С7

Выборка из числового блока 2 (ЧБ2)

Заметим, что в поле Z нужно указывать вовсе не код микропрограммы Z, а код состояния a(t + 1), обозначающий начало этой микропрограммы. Например, для перехода к (см. рис. 90 и 91) нужно указать код . Т.е. поле К и поле Z в РМК должны быть одной разрядности. Независимо от того, что количество подпрограмм может быть малым (например, при числе микропрограмм меньше 8 хватило бы для кода Z всего 3 разрядов), необходимое число разрядов в поле Z значительно больше, чем для кода K. Например, при общем количестве состоя­ний в микропрограммах, равном 63, разрядность поля К и поля Z равна 6, хотя число подпрограмм Z < 8.

Таким образом, введение в структуру МПУ стековой памяти и логической подсистемы формирования признаков управления ею позволяет построить устройство для одновременной реализации комплекса взаимозависимых микропрограмм.