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

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

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

В работе [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 Тактовый сигнал (для Y i) 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   a2 a3 a3   x 1 x 11 x 11 y 1 y 2 y 6 y 7 z 2    
a2   a2 a5 a3   x 9 x 10 x 5 y 3 y 4 y 4 y 3    
a3   a4     y 6    
a4   a1 a1   x 2 x 6 y 1 y 2 y 3 z 1    
a5   a2     z 1    
a6   a7 a r a8   x 4 x 14 x 13 y 5 y 6 y 7 y 3 y 4 y 7    
a7   a r a r   x 8 x 5 y 7 y 1 y 2 y 3    
a8   a r     z 2    
a9   a10 a9 a r   x 1 x 12 x 11 y 1 y 2 y 3 y 4    
a10   a9 a9   x 3 x 7 y 3 y 4 y 5 y 6    

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

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

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

Таблица 35

N а(t) Содержание Примечания
Y Z K
           
    y 1 y 2      
    y 6 y 7      
      S1S4   Вызов z 2 К(a9) = 1001
    y 3 y 4      
    y 4      
    y 3      
    y 6      
    y 1 y 2 y 3      
      S2S3   Вызов z 1 К(a6) = 0110
           
    y 5 y 6 y 7 S2S3   Вызов z 1 МПП z 1
    y 3 y 4      
    y 7      
    y 7      
    y 1 y 2 y 3      
      S1S4   Вызов z 2 МПП z 2
    y 1      
    y 2 y 3 y 4      
           
    y 3 y 4      
    y 5 y 6      

Таблица 36

Наименование сигнала Назначение
С1 Запись в PгA
С2 Запись в PгY
С3 Увеличение счетчика СчХ
С4 Сложение и на сумматоре 1 (S1)
С5 Сложение и на сумматоре 2 (S2)
С6 Выборка из числового блока 1 (ЧБ1)
С7 Выборка из числового блока 2 (ЧБ2)

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

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


Глава 5


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: