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

Реферат

 

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

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

Известен микропрограммный модуль, содержащий блок памяти микрокоманд, счетчик, регистр микрокоманд, демультиплексор, мультиплексор, триггер пуска, генератор тактовых импульсов, блок элементов ИЛИ, блок ключей с тристабильным выходом, K+1 блоков элементов И (где K - количество входов приема управления, прием информации с которых блокируется), сумматор, элемент И, два элемента ИЛИ (авт.св. СССР N 1427366, кл.G 06 F 9/22, опубл.30.09.88).

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

Наиболее близким к предлагаемому устройству по технической сущности является микропрограммное устройство управления, содержащее блок постоянной памяти, блок формирования адреса микрокоманд, регистр начала микропрограммы, регистр состояния параллельных участков, триггер управления, генератор тактовых импульсов, регистр адреса следующей микрокоманды, регистр микроопераций, регистр формата микрокоманды, группу из N-1 элементов И (N-максимальное количество параллельно выполняемых участков микропрограмм), элемент ИЛИ, блок элементов ИЛИ, два элемента И, два блока элементов И, одновибратор и три элемента задержки (авт. св. СССР N 1647566, кл.G 06 F 9/22, опубл. 07.05.91 ).

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

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

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

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

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

В прототипе при запуске (инициализации) группы, включающей p параллельных участков (модулей системы), осуществляется одновременная выдача соответствующего количества различных адресов (адресов передачи управления) и специальных меток начала участков микрокоманд. Для этого используется N-1 (m+1)-разрядных внешних выходов и N-1 (m+1)-разрядных входов для приема адресов передачи управления и указанных меток, где N - число устройств в составе управляющей системы, определяемое максимальным числом параллельно выполняемых участков микропрограмм; m - разрядность адресов передачи управления, соответствующая емкость микропрограммной памяти (блока памяти микропрограмм). Добавление в систему, построенную на основе прототипа, (N+1)-го устройства приводит к необходимости увеличения числа внешних входов и выходов устройств на 2(m+1), а с учетом входов и выходов, используемых для приема и выдачи меток конца параллельных участков, - на 2(m+2). При емкости микропрограммной памяти, равной 256 словам, абсолютное увеличение числа входов и выходов каждого из устройства при включении в систему (N+1)-го модуля составит 20.

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

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

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

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

После поступления на вход модуля Ml кода Ks на выходе блока памяти начальных адресов формируется код инициализации Kls(0) , определяющий "момент" начала функционирования (запуска) l-го модуля при реализации системой s-й микропрограммы, и адрес инициализации Als(0) , соответствующий началу первого выполняемого данным модулем участка. На этом настройка системы на реализацию s-й микропрограммы завершается.

После настройки системы внешнее устройство запускает модуль Mi, за которым закреплен начальный последовательный участок s-й микропрограммы, и Mi начинает выполнение микропрограммы с адреса Ais(0) , считанного из блока памяти начальных адресов в ходе настройки. После выполнения начального последовательного участка i-й модуль выдает на шину передачи управления код Ki(0), который одновременно воспринимает всеми остальными модулями системы и сравнивается с их собственными кодами инициализации. При совпадении кода Ki(0) с кодом инициализации j-го модуля Kjs(0) модуль Mj начинает выполнение микропрограммы с адреса Ajs(0) , установленного в ходе настройки, в противном случае модуль остается в состоянии ожидания.

Завершая исполнение некоторого участка микропрограммы, модуль Mj осуществляет самонастройку на следующий запуск (прием управления), а именно формирует код инициализации Kjs(m+1) , задает соответствующий адрес Ajs(m+1) и, таким образом, подготавливается к запуску со стороны другого устройства (здесь под m понимается порядковый номер участка, выполняемого текущим модулем). Указанные код и адрес размещаются непосредственно в последней микрокоманде завершаемого участка и могут быть произвольным образом модифицированы, что обеспечивает высокую функциональную гибкость устройства.

В дальнейшем модуль Mk, передающий управление модуля Mj, вырабатывает код инициализации Kk(n) = Kjs(m+1) и, таким образом, запускает j-й модуль с подготовленного в ходе его самонастройки адреса Ajs(m+1).

Так как возможно существование нескольких альтернативных вариантов инициализации одного и того же модуля (по различным адресам), например, когда адрес приема управления j-го модуля зависит от результата проверки логических условий другими модулями, модуль Mk при передаче управления другим устройствам вместе с соответствующим кодом инициализации Kk(n) выдает код коррекции адреса dAk(n). После идентификации совпадения кода Kk(n) с кодом инициализации Kjs(m+1) модуль Mj модифицирует полученный ранее адрес Ajs(m+1) путем добавления к нему кода коррекции dAk(n) и приступает к выполнению микропрограммы с нового адреса Ajs(m+1)+dAk(n) . Код коррекции адреса является неизменным для всех одновременно запускаемых модулей.

Число внешних входов и выходов, используемых для приема/передачи управления, в предлагаемом устройстве определяется как 2(m*+d+1), где d - разрядность кода инициализации, а m* - разрядность кода коррекции адреса. Так как различные микропрограммы не могут выполняться системой одновременно, коды инициализации, присвоенные участкам различных микропрограмм, могут совпадать. Это позволяет значительно снизить значение параметра d.

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

Количественная оценка эффективности предлагаемого технического решения по отношению к прототипу приводится в конце описания.

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

Микропрограммное устройство управления (фиг.1) содержит блок 1 постоянной памяти, блок 2 формирования адреса микрокоманд, регистр 3 состояния, регистр 4 микроопераций, регистр 5 адреса следующей микрокоманды, регистр 6 формата микрокоманды, триггер 10 управления, генератора 11 тактовых импульсов, первый 26 и второй 27 элементы И, первый элемент ИЛИ 31, первый одновибратор 40, первый 45 и второй 46 элементы задержки, причем первый, второй и третий информационные входы блока 2 формирования адреса микрокоманд соединены с входом 48 логических условий устройства, с выходом регистра 5 адреса следующей микрокоманды и с выходом регистра 3 состояния соответственно, первый вход элемента ИЛИ 31 является входом 49 запуска устройства, выход элемента ИЛИ 31 соединен со счетным входом триггера 10 управления, вход сброса которого соединен с выходом одновибратора 40, прямой выход триггера 10 управления подключен к входу запуска генератора 11 тактовых импульсов, первый выход которого соединен с входом синхронизации регистра 6 формата микрокоманды и входом элемента 45 задержки, выход которого подключен к первым входам элементов И 26 и 27, второй выход генератора 11 тактовых импульсов соединен с входом синхронизации блока 2 формирования адреса микрокоманд, выход которого соединен с адресным входом блока 1 постоянной памяти, выход 1.2 микроопераций которого соединен с информационным входом регистра 4 микрооперации, выход 1.3 формата микрокоманды блока 1 постоянной памяти подключен к информационному входу регистра 6 формата микрокоманды, выход 7 метки опроса состояния параллельных участков которого соединен с управляющим входом блока 2 формирования адреса микрокоманд, выход 8 метки запуска параллельных участков регистра 6 формата микрокоманды подключен к второму входу элемента И 27 и к второму входу элемента И 26, выход которого соединен с входом синхронизации регистра 4 микроопераций, выход которого является выходом 51 микроопераций устройства, а также введенные блок 12 памяти начальных адресов, регистр 13 кода логического условия, сумматор 14, регистр 15 кода инициализации, схему 16 сравнения, буферный регистр 17, коммутатор 18 адреса, коммутатор 19 кода инициализации, триггер 20 режима, триггер 21 передачи управления, триггер 22 приема управления, второй 23 и первый 24 блоки тристабильных элементов, шину 25 передачи управления, третий 28, четвертый 29 и пятый 30 элементы И, четвертый 32, второй 33, седьмой 35, шестой 36, третий 37 и пятый 38 элементы ИЛИ, элемент ИЛИ-НЕ 39, второй 41, третий 42, четвертый 43 и пятый 44 одновибраторы, причем входы регистра 3 состояния с первого по (N-1)-й (N - число однотипных устройство в составе управляющей системы) являются входами 50.1 - 50.N-1 признаков начала/конца участков устройства соответственно, инверсный выход триггера 10 управления соединен с входами одновибраторов 41 и 42, выходы которых соединены с первым и вторым входами элемента ИЛИ 33 соответственно, выход которого является выходом 52 признака начала/конца участка устройства, выход 9 метки конца участка регистра 6 формата микрокоманды подключен к третьему воду элемента И 26 и к первому входу элемента И 28, второй вход которого соединен с выходом элемента 45 задержки, выход элемента И 28 подключен к первым входам элементов ИЛИ 37 и 32 и к первому входу элемента ИЛИ 38, выход которого соединен с входом сброса регистра 4 микроопераций, выход 51.1 конца работы которого подключен к второму входу элемента ИЛИ 32, выход которого соединен с входом одновибратора 40, выход 8 метки запуска параллельных участков регистра 6 формата микрокоманды соединен с третьим входом элемента ИЛИ 32, выход элемента И 27 подключен к второму входу элемента ИЛИ 38 и к входу установки триггера 21 передачи управления, прямой выход которого соединен с первым входом элемента И 29, второй вход которого соединен с выходом элемента ИЛИ-НЕ 39, выход элемента И 29 подключен к управляющим входам блоков тристабильных элементов 23 и 24 и к входам и к входу одновибратора 43, выход которого соединен с входом сброса триггера 21 передачи управления и с вторым входом элемента ИЛИ 31, выход 1.2 микроопераций блока 1 постоянной памяти соединен с первым информационным входом коммутатора 19 кода инициализации и с информационным входом блока тристабильных элементов 24, выход которого подключен к шине 25 передачи управления, которая соединена с информационным входом блока тристабильных элементов 23, выход которого соединен с входами элемента ИЛИ-НЕ 39, вход 47 номера операции устройства соединен с адресным входом блока 12 памяти начальных адресов, выход 12.1 адреса инициализации которого подключен к первому информационному входу коммутатора 18 адреса, выход 12.2 кода инициализации блока 12 памяти начальных адресов соединен с вторым информационным входом регистра 15 кода инициализации, выход которого соединен с входами элемента ИЛИ 36 и с первым входом схемы 16 сравнения, выход которой подключен к первому входу элемента И 30, второй вход которого соединен с выходом элемента ИЛИ 36, выход элемента И 30 подключен к счетному входу триггера 22 приема управления, инверсный выход которого соединен с входом одновибратора 44, выход которого соединен с первым входом одновибратора 44, выход которого соединен с первым входом элемента ИЛИ 35, с входами сброса буферного регистра 17, регистра 15 кода инициализации, триггера 22 приема управления и с третьим входом элемента ИЛИ 31, вход 47.1 настройки устройства подключен к входу установки триггера 20 режима и к входу элемента 46 задержки, выход которого соединен с вторым входом элемента ИЛИ 35, счетным входом триггера 20 режима и с вторым входом элемента ИЛИ 37, выход которого соединен с входом синхронизации регистра 15 кода инициализации, прямой и инверсный выходы триггера 20 режима соединения с первым и вторым управляющими входами коммутатора 19 кода инициализации соответственно, прямой выход триггера 20 режима подключен к первому управляющему входу коммутатора 18 адреса, второй информационный вход которого соединен с выходом 1.1 адреса блока 1 постоянной памяти, инверсный выход триггера 20 режима соединен с вторым и третьим управляющими входами коммутатора 18 адреса, выход 34.2 кода логического условия которого соединен с информационным входом регистра 13 логического условия, выход которого подключен к второму информационному входу блока формирования адреса микрокоманд, прямой выход триггера 22 приема управления подключен к четвертому и инверсному управляющим входам коммутатора 18 адреса и к входу синхронизации буферного регистра 17, информационный вход которого соединен с выходом регистра 5 адреса следующей микрокоманды, выход блока тристабильных элементов 23 образован выходом 23.1 кода инициализации и выходом 23.2 кода коррекции адреса, выход 23.1 кода инициализации блока тристабильных элементов 23 подключен к второму входу схемы 16 сравнения, выход 23.2 кода коррекции адреса блока тристабильных элементов 23 соединен с третьим информационным входом коммутатора 18 адреса, выход 34.1 адреса которого подключен к первому входу сумматора 14, второй вход и выход которого соединены с выходом буферного регистра 17 и информационным входом регистра 5 адреса следующей микрокоманды соответственно, первый выход генератора 11 тактовых импульсов подключен к входу синхронизации регистра 13 кода логического условия и к третьему входу синхронизации регистра 5 адреса следующей микрокоманды.

Блок формирования адреса микрокоманд (фиг.2) содержит первый 53 и второй 54 мультиплексоры, коммутатор 55 условий, первый 56 и второй 57 элементы И и счетчик 58 адреса, причем информационные входы мультиплексоров 553 и 54 являются первым и третьим информационными входами блока формирования адреса микрокоманд соответственно, выходы мультиплексоров 53 и 54 соединены с прямым и инверсным информационными входами коммутатора 55 условий соответственно, управляющие входы мультиплексоров 53 и 54 в объединении с информационным входом счетчика 58 адреса подключен к второму информационному входу блока формирования адреса микрокоманд, вход синхронизации которого соединен с первым входом элемента И 56 и прямым входом элемента И 57, выход которого соединен с входом записи счетчика 58 адреса, управляющий вход блока формирования адреса микрокоманд соединен с управляющими входами коммутатора 55 условий, выход которого подключен к инверсному входу элемента И 57 и второму входу элемента И 56, выход которого соединен с суммирующим входом счетчика 58 адреса, выход которого является выходом блока формирования адреса микрокоманд.

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

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

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

Регистр 4 микроопераций служит для приема и выдачи на выход 51 устройства кодов микроопераций.

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

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

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

Триггер 10 управляющим служит для управления запуском и остановом генератора 11, а также для индикации текущего состояния устройства.

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

Регистр 13 кода логического условия обеспечивает временное сохранение кодов логических условий и кодов опроса состояния параллельных участков, поступающих с выхода 1.1 блока 1.

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

Регистр 15 кода инициализации служит для размещения и выдачи кодов инициализации устройства.

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

Буферный регистр 17 предназначен для временного хранения и выдачи исходного адреса инициализации устройства на вход сумматора 14 при реализации режима коррекции адреса инициализации.

Коммутатор 18 адреса служит для подключения входа сумматора 14 и информационного входа регистра 13 либо к выходу 12.1 блока 12, либо к выходу 1.1 блока 1, либо к выходу блока 23 в зависимости от значений сигналов на управляющих входах.

Коммутатор 19 кода инициализации предназначен для подключения информационного входа регистра 15 или к выходу 12.2 блока 12, или к выходу 1.2 блока 1 в зависимости от значений сигналов на управляющих входах.

Триггер 20 режима служит для индикации текущего режима работы устройства и управления коммутаторами 18 и 19.

Шина 25 передачи управления введена для организации возможности передачи кодов инициализации и коррекции адреса при реализации устройством режима передачи управления.

Триггер 21 передачи управления служит для управления выдачей информации на шине 25 при реализации режима передачи управления.

Триггер 22 приема управления предназначен для управления коммутатором 18 и процессом коррекции адреса инициализации при приеме управления со стороны другого устройства.

Блоки 23 и 24 тристабильных элементов предназначены соответственно для блокировки/разрежения приема управляющей информации с шины 25 и выдачи информации на шину 25.

Элемент ИЛИ 36 служит для формирования сигнала состояния регистра 15 кода инициализации.

Элемент И 30 обеспечивает блокировку срабатывания триггера 22 при отсутствии кода инициализации в регистре 15 (при нулевом состоянии регистра 15).

Элемент ИЛИ-НЕ 39 служит для формирования сигнала состояния шины 25 передачи управления.

Элемент И 29 обеспечивает блокировку процесса выдачи управляющей информации при наличии информации на шине 25.

Одновибратор 40 предназначен для формирования импульса останова устройства, обеспечивающего надежное переключение триггера 10.

Элемент 45 задержки обеспечивает сдвиг момента подачи тактового импульса t2 с выхода генератора 11 на входы элементов И 26 - 28 на время формирования сигналов - управляющих меток на выходах регистра 6 формата микрокоманды.

Элемент И 26 предназначен для управления прохождением импульса t2 с выхода элемента 45 на вход синхронизации регистра 4.

Элемент И 27 служит для управления прохождением импульса t2 с выхода элемента 45 на вход сброса регистра 4 и вход установки триггера 21.

Элемент И 28 используется для управления передачей импульса t2 с выхода элемента 45 на вход сброса регистра 4, вход синхронизации регистра 15 и вход элемента ИЛИ 32.

Элемент ИЛИ 32 служит для объединения сигналов с выхода 8 регистра 6, с выхода элемента И 28, с выхода 51.1 конца работы регистра 4 и формирования сигнала возбуждения одновибратора 40.

Одновибраторы 41 и 42 предназначены для формирования соответственно импульса R - метки начала участка микропрограммы и импульса Q - метки конца участка, причем одновибратор 41 реагирует на отрицательный (l > 0), а одновибратор 42 - на положительный (0 > l) перепад уровня сигнала на входе.

Элемент ИЛИ 33 обеспечивает объединение импульсов R и Q и формирование обобщенного сигнала (импульса) - метки изменения состояния устройства.

Элемент 40 задержки обеспечивает сдвиг момента подачи импульса настройки на входы синхронизации регистров 5 и 15 и установки триггера 20 в нулевое состояние на время формирования адреса инициализации на выходе сумматора 14.

Элемент ИЛИ 37 предназначен для объединения сигналов синхронизации записи кода инициализации в регистр 15, поступающих с выхода элемента И 28 и элемента 46 задержки в режимах самонастройки и настройки соответственно.

Элемент ИЛИ 38 обеспечивает объединение сигналов сброса регистра 4, поступающих с выходов элементов И 27 и 28 в режимах соответственно передачи управления и завершения параллельного или последовательного участка микропрограмм.

Одновибратор 43 служит для формирования импульса, обеспечивающего сброс триггера 21 и инициализацию устройства после завершения процесса передачи управления; одновибратор 43 реагирует на положительный перепад уровня сигнала на его входе и формирует импульс с задержкой, величина которой определяется требуемым временем фиксации информации на шине 25.

Одновибратор 44 предназначен для формирования импульса, осуществляющего фиксации адреса инициализации в регистре 5, сброс регистров 17, 15, триггера 22 и запуск устройства в режиме приема управления; одновибратор 44 срабатывает по отрицательному перепаду уровня сигнала на его выходе и вырабатывает импульс с задержкой, соответствующей времени окончания процесса коррекции адреса инициализации и формирования окончательного (исполнительного) адреса микрокоманды на выходе сумматора 14.

Элемент ИЛИ 35 служит для объединения сигналов, синхронизирующих процесс записи информации в регистр 5.

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

Первоначально все регистры и триггеры, входящие с состав устройства (фиг.1), а также счетчик 58 адреса (фиг.2) находятся в состоянии логического нуля. Нулевой сигнал с прямого выхода триггера 10 управления запрещает рабо