Модуль системы микропрограммного управления

Реферат

 

Изобретение относится к автоматике и цифровой вычислительной технике и может быть использовано при построении алгоритмически распределенных устройств микропрограммного управления вычислительных и управляющих систем высокой производительности, проектируемых на базе однотипных БИС (СБИС) и реализующих параллельные алгоритмы обработки информации. Технической задачей изобретения является повышение оперативности синхронизации параллельных участков микропрограмм в системе микропрограммного управления на основе минимизации времени между моментом завершения параллельных участков и моментом появления соответствующего сигнала - признака. Устройство содержит блок памяти микропрограмм, блок формирования адреса микрокоманд, регистр микрокоманд, с первого по р-й регистры передачи управления, триггер управления, генератор тактовых импульсов, счетчик выборки, счетчик опроса, дешифратор выборки, дешифратор опроса, триггер блокировки, триггер, первую и вторую группы из p блоков тристабильных элементов, группу их p элементов ИЛИ - НЕ, с первой по третью группы из р элементов И, с первого по девятый элементы И, первый, второй и третий элементы ИЛИ, группу из p элементов задержки, три элемента задержки, одновибратор, шину передачи управления, n линий состояния параллельных участков, регистр вектора соответствия, дешифратор номера вершины синхронизации, четвертую группу из n элементов И, группу из n элементов ИЛИ. 4 ил.

Изобретение относится к области автоматики и цифровой вычислительной техники и может быть использовано при построении алгоритмически распределенных устройств микропрограммного управления вычислительных и управляющих систем высокой производительности, проектируемых на базе однотипных БИС (СБИС) и реализующих параллельные алгоритмы обработки информации.

Известно микропрограммное устройство управления с контролем, включающее блок постоянной памяти, блок формирования адреса микрокоманд, регистр микрокоманд, группу из N регистров записи (где N - количество автономных микропрограмм), коммутатор управления счетчиком, счетчик выборки, дешифратор выборки, четыре группы из N шинных формирователей, блок управления пуском, блок управления остановом, группу из N элементов задержки, группу из N коммутаторов записи, счетчик опроса, дешифратор опроса, N+1 блоков элементов И, 2N+1 элементов И, группу из N элементов ИЛИ-НЕ, элемент ИЛИ, триггер режимов работы, триггер управления, генератор импульсов (а.с. 1142832 СССР, кл. G 06 F 9/22; G 06 F 11/00; опубл. 28.02.85, БИ N 8).

Недостатком указанного устройства является отсутствие возможности опроса состояния (синхронизации) параллельных участков микропрограмм, закрепленных за другими аналогичными устройствами в составе управляющей системы, и, как следствие, узкая область его применения.

Наиболее близким к предлагаемому устройству по технической сущности является модуль мультимикропрограммной системы, содержащий блок памяти микропрограмм, блок формирования адреса микрокоманд, регистр микрокоманд, N регистров передачи управления (где N - число автономных микропрограмм), первый и второй генераторы тактовых импульсов, счетчики выборки и опроса, дешифраторы выборки и опроса, схему сравнения, счетчик времени ожидания, формирователь признака принадлежности, триггер управления, с первого по четвертый триггеры, первую и вторую группы из N блоков тристабильных элементов, первый и второй блоки тристабильных элементов, группу из N элементов ИЛИ-НЕ, с первой по третью группы из N элементов И, группу из N элементов задержки, с первого по тринадцатый элементы И, с первого по третий элементы ИЛИ, одновибратор, элемент ИЛИ-НЕ, элемент И-НЕ, с первого по четвертый элементы задержки, шину передачи управления, шину синхронизации параллельных участков и линию состояния параллельных участков (патент N 2116665 РФ, кл. G 06 F 9/22; опубл. 27.07.98, БИ N 21).

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

Технической задачей изобретения является повышение оперативности синхронизации параллельных участков микропрограмм в системе микропрограммного управления на основе минимизации времени между моментом завершения параллельных участков и моментом появления соответствующего сигнала - признака.

Техническая задача решается тем, что в модуль системы микропрограммного управления, содержащий блок памяти микропрограмм, блок формирования адреса микрокоманд, регистр микрокоманд, с первого по p-й регистры передачи управления (где p - произвольное целое число, определяемое исходя из максимального числа последовательно запускаемых групп параллельных участков микропрограммы, p > 1), триггер управления, генератор тактовых импульсов, счетчик выборки, счетчик опроса, дешифратор выборки, дешифратор опроса, триггер блокировки, триггер, первую группу из p блоков тристабильных элементов, вторую группу из p блоков тристабильных элементов, группу из p элементов ИЛИ-НЕ, с первой по третью группы из p элементов И, с первого по девятый элементы И, первый, второй и третий элементы ИЛИ, группу из p элементов задержки, первый, второй, третий элементы задержки, одновибратор, шину передачи управления, первую линию состояния параллельных участков, причем прямой выход триггера управления подключен к управляющему входу генератора тактовых импульсов, первый выход которого соединен с первым входом первого элемента И, выход которого соединен с входом синхронизации блока формирования адреса микрокоманд, первый и второй информационные входы которого являются входом логических условий модуля и входом кода операции модуля соответственно, информационный выход блока формирования адреса микрокоманд подключен к адресному входу блока памяти микропрограмм, выход которого подключен к информационному входу регистра микрокоманд, выходы адреса следующей микрокоманды и кода логического условия которого соединены соответственно с третьим информационным и управляющим входами блока формирования адреса микрокоманд, управляющий выход которого соединен с входом установки триггера управления и с первым входом первого элемента ИЛИ, выход которого подключен к входу установки триггера, второй выход генератора тактовых импульсов соединен с первым входом второго элемента И, выход которого соединен с входом синхронизации регистра микрокоманд, выход микроопераций которого подключен к выходу микроопераций модуля, третий выход генератора тактовых импульсов соединен с первым входом третьего элемента И, выход которого подключен к первому входу второго элемента ИЛИ, второй вход которого является входом останова модуля, а выход подключен к входу сброса триггера управления, выход признака передачи управления / номера вершины синхронизации регистра микрокоманд соединен с информационными входами регистров передачи управления с первого по p-й, прямые выходы которых подключены к информационным входам блоков тристабильных элементов первой группы с первого по p-й соответственно, выходы которых соединены с шиной передачи управления, которая подключена к четвертому информационному входу блока формирования адреса микрокоманд, а также к информационным входам блоков тристабильных элементов второй группы с первого по p-й, выход метки конца участка регистра микрокоманд соединен с первым входом четвертого элемента И, прямой выход триггера блокировки соединен со вторым входом первого элемента И и со вторым входом второго элемента И, выход которого подключен к входу первого элемента задержки, выход которого подключен к второму входу четвертого элемента И, выход которого соединен со счетным входом триггера блокировки, третий выход генератора тактовых импульсов подключен к первому входу пятого элемента И, выход которого соединен с входом установки триггера блокировки, а также со счетным входом триггера, прямой выход которого подключен ко второму входу пятого элемента И, выход метки передачи управления регистра микрокоманд соединен с первым входом шестого элемента И и с первым входом седьмого элемента И, выход которого соединен с входом сброса счетчика выборки, выход которого подключен к входу дешифратора выборки, выходы с первого по p-й которого соединены с первыми входами элементов И первой группы с первого по p-й соответственно, выходы которых соединены с входами синхронизации регистров передачи управления с первого по p-й соответственно, третий выход генератора тактовых импульсов подключен ко второму входу шестого элемента И, выход которого соединен со счетным входом счетчика выборки, выход метки конца микропрограммы регистра микрокоманд подключен ко второму входу третьего элемента И и к выходу конца микропрограммы модуля, третий выход генератора тактовых импульсов соединен с входом второго элемента задержки, выход которого подключен ко вторым входам элементов И первой группы с первого по p-й, выходы блоков тристабильных элементов второй группы с первого по p-й соединены с входами элементов ИЛИ-НЕ группы с первого по p-й соответственно, выход p-го элемента ИЛИ-НЕ группы подключен к первому входу восьмого элемента И, выход которого соединен со счетным входом счетчика опроса, выход которого соединен с входом дешифратора опроса, выходы с первого по p-й которого подключены к первым входам элементов И второй группы с первого по p-й соответственно, вторые входы которых соединены с выходами элементов ИЛИ-НЕ группы с первого по p-й соответственно, выход второго элемента задержки подключен ко второму входу восьмого элемента И и к входу третьего элемента задержки, выход которого соединен с первым входом девятого элемента И, второй вход и выход которого подключены к p-му выходу дешифратора опроса и к входу сброса счетчика опроса соответственно, выход первого элемента задержки соединен со вторым входом седьмого элемента И, выходы элементов И второй группы с первого по p-й подключены к управляющим входам блоков тристабильных элементов первой и второй группы с первых по p-е соответственно, а также к входам элементов задержки группы с первого по p-й соответственно, выходы которых соединены с входами сброса регистров передачи управления с первого по p-й соответственно, инверсные выходы которых соединены с входами элементов И третьей группы с первого по p-й соответственно, выходы которых подключены к третьему входу седьмого элемента И, дополнительно введены регистр вектора соответствия, дешифратор номера вершины синхронизации, четвертая группа из n элементов И (где n - максимальное число вершин синхронизации в реализуемых микропрограммах), группа из n элементов ИЛИ, со второй по n-ю линии состояния параллельных участков, причем выход метки передачи управления регистра микрокоманд соединен с третьими входами элементов И первой группы с первого по p-й, выход метки конца участка регистра микрокоманд подключен к управляющему входу дешифратора номера вершины синхронизации, выход статуса регистра микрокоманд подключен к первым входам элементов И четвертой группы с первого по n-й, выходы которых соединены с входами третьего элемента ИЛИ с первого по n-й соответственно, выход которого подключен к входу одновибратора, выход которого соединен со вторым входом первого элемента ИЛИ, выход признака передачи управления / номера вершины синхронизации регистра микрокоманд подключен к информационному входу дешифратора номера вершины синхронизации, выходы с первого по n-й которого подключены ко вторым входам элементов И четвертой группы с первого по n-й соответственно, выходы регистра вектора соответствия с первого по n-й соединены с первыми входами элементов ИЛИ группы с первого по n-й соответственно, вторые входы которых соединены с выходами дешифратора номера вершины синхронизации с первого по n-й соответственно, выходы элементов ИЛИ группы с первого по n-й подключены к третьим входам элементов И четвертой группы с первого по n-й соответственно, а также к линиям состояния параллельных участков с первой по n-ю соответственно, вход регистра вектора соответствия является входом вектора соответствия модуля.

Сущность изобретения состоит в следующем.

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

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

Процесс запуска параллельных участков (межмодульной передачи управления) в СМПУ протекает следующим образом. Модуль с условным номером i (далее - модуль mi, или i-й модуль), инициирующий запуск, формирует и выдает признак передачи управления Ps. Данный признак одновременно воспринимается всеми остальными модулями. Если за некоторым модулем mj, j i, закреплен участок с идентификатором, равным Ps то j-й модуль формирует начальный адрес этого участка (адрес приема управления) Asj и начинает выполнение микропрограммы с данного адреса. В противном случае запуск модуля mj не производится.

Предлагаемый модуль в ходе реализации закрепленного за ним участка микропрограммы аналогично прототипу может опрашивать состояние других модулей (и, следовательно, выполняемых ими участков) и обеспечивать синхронизацию групп параллельных участков.

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

Для обеспечения синхронизации произвольных групп параллельных участков за каждым модулем СМПУ mi закрепляется вектор Si=(s1i, s2i,...,sni), задающий соответствие между вершинами синхронизации параллельных участков и i-м модулем, где nw - число вершин синхронизации в w-й микропрограмме, Q - число микропрограмм, реализуемых системой. Значение компоненты sqi, вектора Si определяется следующим образом: sqi = 0, если за i-м модулем закреплен некоторый участок, завершающийся (сходящийся) в q-й вершине синхронизации; sqi = 1, если i-й модуль не выполняет ни одного участка из множества участков, сходящихся в q-й вершине синхронизации (или если q-я вершина не входит в текущую микропрограмму, что имеет место тогда, когда nw < q, где w - номер текущей микропрограммы).

В группе модулей mj1, mj2, ..., mjr, реализующих группу синхронизируемых участков q= {Lq1, Lq2,..., Lqr} (эти участки завершаются в вершине синхронизации aq), аналогично прототипу, выделяется некоторый модуль mjh. Модулю mjh присваивается статус ведущего по отношению к вершине аq. Остальные модули, соответственно, получают статус ведомых. Функция ведомых модулей состоит в индикации состояния закрепленных за ними участков. Функцией ведущего модуля является опрос сигнала состояния группы параллельных участков q. Процесс синхронизации участков q= {Lq1, Lq2,..., Lqr} протекает следующим образом. Ведущий модуль mjh, завершая закрепленный за ним участок Lhq, переходит в режим управления синхронизацией параллельных участков и опрашивает значение сигнала fq - признака состояния группы участков q. Сигнал - признак fq формируется на q-й линии состояния параллельных участков и представляет собой результат операции "схемное И" над сигналами {zqk} - признаками состояния модулей СМПУ по отношению к q-й вершине синхронизации. Значение сигнала zqk - признака состояния k-го модуля определяется следующим образом: zqk = 1, если sqk = 1, т.е. k-й модуль не выполняет участков, связанных с вершиной синхронизации аq или такой участок существует (пусть это некоторый участок Lvq), причем этот участок завершен; zqk = 0, если участок Lvq не завершен.

Состояние реализуемого k-м модулем участка Lvq индицируется значением сигнала - признака gqk : gqk = 1, если участок завершен; gqk = 0 иначе.

Сигналы - признаки {zqk} поступают на q-ю линию состояния параллельных участков и формируют сигнал - признак fq. Если среди синхронизируемых участков имеются не завершенные, то fq = 0. Как только все участки группы q оказываются завершенными, fq принимает единичное значение. После того как единичный сигнал fq появляется на входе ведущего модуля mjh, последний выходит из режима управления синхронизацией параллельных участков и возобновляет исполнение микропрограммы - синхронизация группы участков q обеспечена.

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

Для синхронизации различных групп параллельных участков (соответствующих разным вершинам синхронизации) в предлагаемом модуле используются различные линии состояния параллельных участков. Это обеспечивает возможность физически одновременной синхронизации нескольких групп участков. В прототипе такая возможность отсутствует - для опроса состояния различных групп участков используется общая шина, одновременный доступ к которой имеет только один модуль. Это обусловливает дополнительный рост времени опроса состояния параллельных участков в прототипе и в еще большей мере снижает оперативность синхронизации.

Более строгая оценка преимуществ предлагаемого модуля перед прототипом приведена в конце описания.

Сущность изобретения поясняется чертежами, где на фиг. 1 представлена функциональная схема модуля системы микропрограммного управления, на фиг. 2 приведена функциональная схема блока формирования адреса микрокоманд, на фиг. 3 даны форматы микрокоманд, реализуемые модулем, на фиг. 4 изображена структурная схема системы микропрограммного управления на основе предлагаемого модуля.

Модуль системы микропрограммного управления (фиг. 1) содержит блок 1 памяти микропрограмм, блок 2 формирования адреса микрокоманд, регистр 3 микрокоманд с выходами 3.1 адреса следующей микрокоманды, 3.2 кода логического условия, 3.3 микроопераций, 3.4 признака передачи управления / номера вершины синхронизации, 3.5 метки передачи управления, 3.6 статуса, 3.7 метки конца участка, 3.8 метки конца микропрограммы, регистры 4.1-4.p передачи управления (p - произвольное целое число, определяемое исходя из максимального числа последовательно запускаемых групп параллельных участков микропрограммы, p > 1), триггер 5 управления, генератор 6 тактовых импульсов, счетчик 7 выборки, счетчик 8 опроса, дешифратор 9 выборки, дешифратор 10 опроса, триггер 13 блокировки, триггер 14, первую группу блоков тристабильных элементов 15.1-15. p, вторую группу блоков тристабильных элементов 16.1-16.p, группу элементов ИЛИ-НЕ 17.1-17.p, первую группу элементов И 18.1-18.p, вторую группу элементов И 19.1-19.p, третью группу элементов И 20.1-20.p, первый 23, второй 24, третий 25, четвертый 26, пятый 27, шестой 28, седьмой 29, восьмой 30, девятый 31 элементы И, первый 32, второй 33 и третий 34 элементы ИЛИ, группу элементов задержки 35.1-35.p, первый 36, второй 37, третий 38 элементы задержки, одновибратор 39, шину 40 передачи управления, первую линию 41.1 состояния параллельных участков, причем прямой выход триггера 5 управления подключен к управляющему входу генератора 6 тактовых импульсов, первый выход которого соединен с первым входом элемента И 23, выход которого соединен с входом синхронизации блока 2 формирования адреса микрокоманд, первый и второй информационные входы которого являются входом 42 логических условий модуля и входом 43 кода операции модуля соответственно, информационный выход 2.1 блока 2 формирования адреса микрокоманд подключен к адресному входу блока 1 памяти микропрограмм, выход которого подключен к информационному входу регистра 3 микрокоманд, выходы 3.1 адреса следующей микрокоманды и 3.2 кода логического условия которого соединены соответственно с третьим информационным и управляющим входами блока 2 формирования адреса микрокоманд, управляющий выход 2.2 которого соединен с входом установки триггера 5 управления и с первым входом элемента ИЛИ 32, выход которого подключен к входу установки триггера 14, второй выход генератора 6 тактовых импульсов соединен с первым входом элемента И 24, выход которого соединен с входом синхронизации регистра 3 микрокоманд, выход 3.3 микроопераций которого подключен к выходу 44 микроопераций модуля, третий выход генератора 6 тактовых импульсов соединен с первым входом элемента И 25, выход которого подключен к первому входу элемента ИЛИ 33, второй вход которого является входом 45 останова модуля, а выход подключен к входу сброса триггера 5 управления, выход 3.4 признака передачи управления / номера вершины синхронизации регистра 3 микрокоманд соединен с информационными входами регистров 4.1-4.p передачи управления, прямые выходы которых подключены к информационным входам блоков тристабильных элементов 15.1-15.p соответственно, выходы которых соединены с шиной 40 передачи управления, которая подключена к четвертому информационному входу блока 2 формирования адреса микрокоманд, а также к информационным входам блоков тристабильных элементов 16.1-16.p, выход 3.7 метки конца участка регистра 3 микрокоманд соединен с первым входом элемента И 26, прямой выход триггера 13 блокировки соединен со вторым входом элемента И 23 и со вторым входом элемента И 24, выход которого подключен к входу элемента 36 задержки, выход которого подключен к второму входу элемента И 26, выход которого соединен со счетным входом триггера 13 блокировки, третий выход генератора 6 тактовых импульсов подключен к первому входу элемента И 27, выход которого соединен с входом установки триггера 13 блокировки, а также со счетным входом триггера 14, прямой выход которого подключен ко второму входу элемента И 27, выход 3.5 метки передачи управления регистра 3 микрокоманд соединен с первым входом элемента И 28 и с первым входом элемента И 29, выход которого соединен с входом сброса счетчика 7 выборки, выход которого подключен к входу дешифратора 9 выборки, выходы с первого по p-й которого соединены с первыми входами элементов И 18.1-18.p соответственно, выходы которых соединены с входами синхронизации регистров передачи управления 4.1-4. p соответственно, третий выход генератора 6 тактовых импульсов подключен ко второму входу элемента И 28, выход которого соединен со счетным входом счетчика 7 выборки, выход 3.8 метки конца микропрограммы регистра 3 микрокоманд подключен ко второму входу элемента И 25 и к выходу 46 конца микропрограммы модуля, третий выход генератора 6 тактовых импульсов соединен с входом элемента 37 задержки, выход которого подключен ко вторым входам элементов И 18.1-18.p, выходы блоков тристабильных элементов 16.1-16.p соединены с входами элементов ИЛИ-НЕ 17.1-17.p соответственно, выход элемента ИЛИ-НЕ 17.p подключен к первому входу элемента И 30, выход которого соединен со счетным входом счетчика 8 опроса, выход которого соединен с входом дешифратора 10 опроса, выходы с первого по p-й которого подключены к первым входам элементов И 19.1-19.p соответственно, вторые входы которых соединены с выходами элементов ИЛИ-НЕ 17.1-17. p соответственно, выход элемента 37 задержки подключен ко второму входу элемента И 30 и к входу элемента 38 задержки, выход которого соединен с первым входом элемента И 31, второй вход и выход которого подключены к p-му выходу дешифратора 10 опроса и к входу сброса счетчика 8 опроса соответственно, выход элемента 36 задержки соединен со вторым входом элемента И 29, выходы элементов И 19.1-19.p подключены к управляющим входам блоков тристабильных элементов 15.1, 16.1,..., 15.p, 16.p соответственно, а также к входам элементов 35.1-35.p задержки соответственно, выходы которых соединены с входами сброса регистров передачи управления 4.1-4. p соответственно, инверсные выходы которых соединены с входами элементов И 20.1-20.p соответственно, выходы которых подключены к третьему входу элемента И 29, а также дополнительно введенные регистр 11 вектора соответствия, дешифратор 12 номера вершины синхронизации, четвертую группу элементов И 21.1 -21.n (где n - максимальное число вершин синхронизации в реализуемых микропрограммах), группу элементов ИЛИ 22.1-22.n, линии 41.2-41. n состояния параллельных участков, причем выход 3.5 метки передачи управления регистра 3 микрокоманд соединен с третьими входами элементов И 18.1-18. p, выход 3.7 метки конца участка регистра 3 микрокоманд подключен к управляющему входу дешифратора 12 номера вершины синхронизации, выход 3.6 статуса регистра 3 микрокоманд подключен к первым входам элементов И 21.1-21. n, выходы которых соединены с входами элемента ИЛИ 34 с первого по n-й соответственно, выход которого подключен к входу одновибратора 39, выход которого соединен со вторым входом элемента ИЛИ 32, выход 3.4 признака передачи управления / номера вершины синхронизации регистра 3 микрокоманд подключен к информационному входу дешифратора 12 номера вершины синхронизации, выходы с первого по n-й которого подключены ко вторым входам элементов И 21.1-21. n соответственно, выходы регистра 11 вектора соответствия с первого по n-й соединены с первыми входами элементов ИЛИ 22.1-22.n соответственно, вторые входы которых соединены с выходами дешифратора 12 номера вершины синхронизации с первого по n-й соответственно, выходы элементов ИЛИ 22.1-22.n подключены к третьим входам элементов И 21.1 -21.n соответственно, а также к линиям 41.1-41. n состояния параллельных участков соответственно, вход регистра 11 вектора соответствия является входом 47 вектора соответствия модуля.

Блок 2 формирования адреса микрокоманд (фиг. 2) включает шифратор 48 адреса приема управления, мультиплексор 49, регистр 50 адреса, буферный регистр 51, элемент ИЛИ 52, блоки элементов ИЛИ 53 и 54, элемент ИЛИ 55 и одновибратор 56, причем вход шифратора 48 является четвертым информационным входом блока формирования адреса микрокоманд, управляющий и информационный входы мультиплексора 49 являются соответственно управляющим и первым информационным входами блока формирования адреса микрокоманд, d-1 старших разрядов третьего информационного входа которого (где d - разрядность адреса микрокоманды) соединены с d-1 старшими разрядами первого входа блока элементов ИЛИ 54, а младший разряд подключен к первому входу элемента ИЛИ 55, второй вход и выход которого соединены соответственно с выходом мультиплексора 49 и младшим разрядом первого входа блока элементов ИЛИ 54, вход синхронизации регистра 50 подключен к входу синхронизации блока формирования адреса микрокоманд, а выход является информационным выходом блока формирования адреса микрокоманд, второй информационный вход которого соединен с первым входом элемента ИЛИ 52 и первым входом блока элементов ИЛИ 53, выход которого соединен с информационным входом регистра 51, вход сброса которого соединен с входом синхронизации блока формирования адреса микрокоманд, а выход подключен к второму входу блока элементов ИЛИ 54, выход которого подключен к информационному входу регистра 50, выход шифратора 48 соединен с вторым входом блока элементов ИЛИ 53 и вторым входом элемента ИЛИ 52, выход которого соединен с входом одновибратора 56, выход которого подключен к входу синхронизации регистра 51 и управляющему выходу блока формирования адреса микрокоманд.

Назначение элементов модуля системы микропрограммного управления (фиг. 1) состоит в следующем.

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

Регистр 3 микрокоманд предназначен для приема и фиксации микрокоманд, поступающих с выхода блока 1, на время их обработки.

Регистры 4.1-4.p передачи управления предназначены для приема, временного хранения и выдачи признаков передачи управления при работе модуля в режиме передачи управления другим аналогичным модулям системы.

Триггер 5 управления используется для управления работой генератора 6.

Генератор 6 тактовых импульсов служит для формирования трех сдвинутых друг относительно друга импульсных последовательностей t1, t2, t3, синхронизирующих работу различных элементов модуля.

Счетчик 7 выборки, дешифратор 9 выборки и элементы И 18.1-18.p предназначены для управления записью признаков передачи управления в регистры 4.1-4.p.

Счетчик 8 опроса и дешифратор 10 опроса предназначены для управления считыванием информации из регистров 4.1-4.p. Регистр 11 вектора соответствия необходим для хранения вектора Si, определяющего соответствие между текущим (i-м) модулем и множеством вершин синхронизации параллельных участков выполняемой микропрограммы.

Дешифратор 12 предназначен для преобразования двоичного кода номера вершины синхронизации, поступающего с выхода 3.4 регистра 3, в соответствующий унитарный код (код "1 из n") и формирования сигналов g1i, g2i,..., gni - признаков состояния параллельных участков. Сигнал ggi приобретает единичное значение тогда, когда i-й модуль завершает выполнение параллельного участка, сходящегося в q-й вершине синхронизации. Дешифратор 12 имеет управляющий вход (V) и функционирует только при наличии на этом входе единичного сигнала. При нулевом сигнале на управляющем входе дешифратора 12 на всех его выходах независимо от кода на информационном входе присутствует сигнал логического нуля.

Триггер 13 блокировки служит для закрытия элементов И 23 и 24 при работе модуля в режиме управления синхронизацией параллельных участков или при нахождении модуля в состоянии ожидания.

Триггер 14 необходим для управления передачей импульса синхронизации t3 через элемент И 27.

Блоки 15.1-15. p тристабильных элементов служат для передачи информации (признаков передачи управления) с прямых выходов регистров 4.1-4.p соответственно на шину 40 передачи управления.

Блоки 16.1-16. p тристабильных элементов совместно с элементами ИЛИ-НЕ 17.1-17. p соответственно служат для формирования сигналов, характеризующих текущее состояние шины 40.

Элементы И 19.1-19.p предназначены для формирования сигналов управления блоками 15.1- 15.p, 16.1-16.p тристабильных элементов соответственно и сброса регистров 4.1-4.p соответственно.

Элементы И 20.1-20. p служат для формирования сигналов состояния регистров 4.1-4.p соответственно.

Элементы И 21.1, 21.2,..., 21.n введены с целью формирования сигналов e1i, e2i, . .., eni - признаков завершения групп параллельных участков микропрограммы, сходящихся к первой (a1), второй (a2), и т.д., n-й (аn) вершинам синхронизации соответственно.

Элементы ИЛИ 22.1, 22.2,..., 22.n предназначены для формирования сигналов z1i, z2i,..., zni - признаков состояния текущего (i-го) модуля по отношению к первой (a1), второй (а2), и т.д., n-й (аn) вершинам синхронизации соответственно. Элементы 22.1, 22.2,..., 22.n имеют выходные каскады с открытым коллектором и поэтому требуют подключения внешней нагрузки. Внешние нагрузочные резисторы R элементов 22.1, 22.2,..., 22.n показаны на фиг. 1 пунктиром (через Uпит обозначено напряжение источника питания).

Элементы И 23 и 24 служат для блокировки прохождения импульсов синхронизации t1 и t2 с первого и второго выходов генератора 6 соответственно.

Элемент И 25 используется с целью блокировки распространения импульса t3 с третьего выхода генератора 6 на вход сброса триггера 5.

Элемент И 26 служит для запрещения передачи импульса синхронизации t2 с выхода элемента 36 задержки на счетный вход триггера 13 блокировки.

Элемент И 27 обеспечивает блокировку распространения импульса t3 с третьего выхода генератора 6 на вход установки триггера 13 и на счетный вход триггера 14.

Элементы И 28 и 29 служат для формирования сигналов управления счетчиком 7 выборки.

Элемент И 30 предназначен для запрещения передачи импульсов t3 с выхода элемента 37 задержки на счетный вход счетчика 8 опроса в случае занятости шины 40.

Элементы И 31 и задержки 38 служат для формирования сигнала сброса счетчика 8 при окончании очередного цикла опроса регистров 4.1-4.p (при появлении единичного сигнала на p-м выходе дешифратора 10), при этом элемент 38 предотвращает сброс счетчика 8 сразу же после его переключения в состояние " 11...1" и возбуждения единичного сигнала на p-м выходе дешифратора 10, задерживая импульс t3 на время выдачи информации из регистра 4.p на шину 40.

Элемент ИЛИ 32 использован для объединения импульсов пуска модуля с управляющего выхода 2.2 блока 2 и с выхода одновибратора 39.

Элемент ИЛИ 33 предназначен для объединения импульса t3 с выхода элемента И 25 и импульса "стоп" с входа 45 модуля.

Элемент ИЛИ 34 обеспечивает объединение сигналов - признаков e1i, e2i,.. .eni, с выходов элементов И 21.1, 21.2,., 21.n соответственно.

Элементы 35.1-35.p используются для задержки поступления сигналов сброса регистров 4.1-4. p соответственно на время выдачи информации на шину 40 передачи управления.

Элемент 36 обеспечивает задержку поступления импульса синхронизации t2 на время, достаточное для установления информации на выходах регистра 3 после подачи на его вход синхронизации переднего фронта этого импульса t2.

Элемент 37 обеспечивает задержку передачи импульса синхронизации t3 с третьего выхода генератора 6 на время, достаточное для образования очередного кода на выходах дешифрато