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

Классы МПК:G06F9/22 микроуправление или устройства с микропрограммой
G06F9/28 увеличение операционной скорости, например с помощью нескольких устройств микроуправления, работающих параллельно
Автор(ы):
Патентообладатель(и):Курский государственный технический университет
Приоритеты:
подача заявки:
1999-05-05
публикация патента:

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

Формула изобретения

Модуль системы микропрограммного управления, содержащий блок памяти микропрограмм, блок формирования адреса микрокоманд, регистр микрокоманд, с первого по 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-ю соответственно, вход регистра вектора соответствия является входом вектора соответствия модуля.

Описание изобретения к патенту

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

Известно микропрограммное устройство управления с контролем, включающее блок постоянной памяти, блок формирования адреса микрокоманд, регистр микрокоманд, группу из 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 модуль системы микропрограммного управления, патент № 2152071 i, закреплен участок с идентификатором, равным Ps то j-й модуль формирует начальный адрес этого участка (адрес приема управления) Asj и начинает выполнение микропрограммы с данного адреса. В противном случае запуск модуля mj не производится.

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

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

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

sqi = 0, если за i-м модулем закреплен некоторый участок, завершающийся (сходящийся) в q-й вершине синхронизации;

sqi = 1, если i-й модуль не выполняет ни одного участка из множества участков, сходящихся в q-й вершине синхронизации (или если q-я вершина не входит в текущую микропрограмму, что имеет место тогда, когда nw < q, где w - номер текущей микропрограммы).

В группе модулей mj1, mj2, ..., mjr, реализующих группу синхронизируемых участков модуль системы микропрограммного управления, патент № 2152071q= {Lq1, Lq2,..., Lqr} (эти участки завершаются в вершине синхронизации aq), аналогично прототипу, выделяется некоторый модуль mjh. Модулю mjh присваивается статус ведущего по отношению к вершине аq. Остальные модули, соответственно, получают статус ведомых. Функция ведомых модулей состоит в индикации состояния закрепленных за ними участков. Функцией ведущего модуля является опрос сигнала состояния группы параллельных участков модуль системы микропрограммного управления, патент № 2152071q.

Процесс синхронизации участков модуль системы микропрограммного управления, патент № 2152071q= {Lq1, Lq2,..., Lqr} протекает следующим образом. Ведущий модуль mjh, завершая закрепленный за ним участок Lhq, переходит в режим управления синхронизацией параллельных участков и опрашивает значение сигнала fq - признака состояния группы участков модуль системы микропрограммного управления, патент № 2152071q. Сигнал - признак 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. Как только все участки группы модуль системы микропрограммного управления, патент № 2152071q оказываются завершенными, fq принимает единичное значение. После того как единичный сигнал fq появляется на входе ведущего модуля mjh, последний выходит из режима управления синхронизацией параллельных участков и возобновляет исполнение микропрограммы - синхронизация группы участков модуль системы микропрограммного управления, патент № 2152071q обеспечена.

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

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

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

Сущность изобретения поясняется чертежами, где на фиг. 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 на время, достаточное для образования очередного кода на выходах дешифратора 9.

Одновибратор 39 служит для формирования импульса пуска модуля при завершении группы синхронизируемых параллельных участков.

Шина 40 передачи управления служит для обмена признаками передачи управления между модулями СМПУ.

Линии 41.1, 41.2,., 41.n используются с целью формирования сигналов f1, f2,..., fn - признаков состояния групп параллельных участков модуль системы микропрограммного управления, патент № 21520711, модуль системы микропрограммного управления, патент № 21520712,..., модуль системы микропрограммного управления, патент № 2152071n, сходящихся в вершинах синхронизации a1, a2, ..., an соответственно.

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

Шифратор 48 служит для формирования начального адреса параллельного или последовательного участка микропрограммы в блоке 1 (адреса приема управления) при передаче управления данному модулю от другого модуля СМПУ.

Мультиплексор 49 предназначен для формирования значения опрашиваемого логического условия.

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

Буферный регистр 51 введен для предварительной записи адресов приема управления или кодов операции (с целью исключения необходимости длительной фиксации информации на втором и четвертом информационных входах блока 2 до момента появления первого импульса t1 на выходе генератора 6).

Элемент ИЛИ 52 служит для формирования сигнала, индицирующего появление адреса приема управления на выходе шифратора 48 или кода операции на входе 43 модуля.

Блок элементов ИЛИ 53 обеспечивает объединение адресов, поступающих с входа 43 кода операции модуля и выхода шифратора 48, и их передачу на информационный вход регистра 51.

Блок элементов ИЛИ 54 обеспечивает объединение адресов, поступающих соответственно с выхода регистра 51 и третьего информационного входа блока 2, и передачу адресов на информационный вход регистра 50.

Элемент ИЛИ 55 предназначен для модификации значения младшего разряда адреса следующей микрокоманды в точках ветвления микропрограмм.

Одновибратор 56 предназначен для формирования импульса пуска модуля при появлении адреса на выходе шифратора 48 или кода операции на входе 43 модуля.

Рассмотрим процесс функционирования предлагаемого модуля. Учитывая, что модуль предназначен для включения в состав системы микропрограммного управления (фиг. 4), его функционирование будем рассматривать во взаимосвязи с другими идентичными модулями.

Первоначально все регистры, триггеры и счетчики (фиг. 1, 2), за исключением счетчика 8, установленного в состояние "11...1", находятся в состоянии логического нуля, поэтому генератор 6 выключен, на всех выходах дешифратора 9 выборки присутствует нулевой уровень сигнала, на выходах дешифратора 10 опроса с первого по (p-1)-й находятся сигналы логического нуля, а на p-м выходе - сигнал логической единицы. Элементы блоков 15.1-15.p-1 находятся с состоянии высокого импеданса ("отключено"). В ячейках блока 1 с ненулевыми адресами записаны микрокоманды, составляющие участки микропрограмм, закрепленные за рассматриваемым модулем. На шине 40 и на линиях 41.1, 41.2,., 41.n присутствует нулевой уровень сигнала. (Цепи начальной установки на фиг. 1 и 2 условно не показаны).

Функционирование модуля (и СМПУ в целом) начинается с момента подачи на вход 43 модуля (фиг. 1) кода выполняемой операции (микропрограммы) и настройки СМПУ на выполнение требуемой микропрограммы. Настройка при этом сводится к записи в регистры 11 всех модулей векторов {Si}, соответствующих выполняемой микропрограмме. Векторы {Si} подаются на входы 47 модулей.

Код операции (КОП), представляющий собой адрес начала соответствующей микропрограммы (адрес начального последовательного участка) в блоке 1, с входа 43 поступает (фиг. 2) на первые входы элемента ИЛИ 52 и блока элементов ИЛИ 53. Поскольку КОП содержит по меньшей мере одну единицу, на выходе элемента 52 возникает положительный перепад уровня сигнала (0 ---> 1), который воздействует на одновибратор 56 и возбуждает на его выходе импульс пуска. Одновременно КОП проходит через блок 53 и устанавливается на информационном входе регистра 51 (на втором входе блока 53 присутствует нулевой код с выхода шифратора 48, обусловленный отсутствием информации на шине 40). Импульс с выхода одновибратора 56 подается на вход синхронизации регистра 51 и задним фронтом фиксирует в нем поступивший КОП. Далее КОП с выхода регистра 51 через блок элементов ИЛИ 54 (на первом входе которого находится нулевой код, обусловленный нулевым состоянием регистра 3) проходит на информационный вход регистра 50.

Одновременно импульс с выхода одновибратора 56 поступает на управляющий выход блока 2 и далее подается (фиг. 1) на вход установки триггера 5, а также - через элемент ИЛИ 32 - на вход установки триггера 14. В результате указанные триггеры переключаются в единичное состояние. Единичный сигнал с прямого выхода триггера 14 открывает элемент И 27, а единичный сигнал с прямого выхода триггера 5 подается на управляющий вход генератора 6 и разрешает формирование на его выходах импульсных последовательностей t1, t2 и t3. Поскольку триггер 13 находится в исходном (нулевом) состоянии и нулевой сигнал с его прямого выхода блокирует элементы И 23 и 24, первые импульсы t1 и t2 с первого и второго выходов генератора 6 соответственно не проходят на выходы элементов 23 и 24.

В свою очередь импульс t3 с третьего выхода генератора 6 через открытый элемент 27 поступает на вход установки триггера 13 и переводит его в состояние логической единицы. Единичный сигнал с прямого выхода триггера 13 открывает элементы 23 и 24. Кроме того, импульс t3 с выхода элемента 27 поступает на счетный вход триггера 14 и задним фронтом возвращает его в состояние логического нуля. Нулевой сигнал с прямого выхода триггера 14 снова закрывает элемент И 27.

Одновременно импульс t3 с третьего выхода генератора 6 передается на вход элемента 37 задержки и далее - на второй вход элемента И 30 и вход элемента 38 задержки. Если на первом входе элемента 30 находится единичный сигнал, то импульс t3 поступает на счетный вход счетчика 8 и передним фронтом переключает его в нулевое состояние, в противном случае передача импульса t3 на счетный вход счетчика 8 не происходит и состояние последнего не изменяется. Импульс t3 с выхода элемента 38 спустя определенное время поступает на первый вход элемента И 31. Если счетчик 8 все еще находится в состоянии "11. . .1" и на p-м выходе дешифратора 10, соответственно, присутствует единичный сигнал, импульс t3 через элемент 31 проходит на вход сброса счетчика 8 и переводит его в нулевое состояние. В противном случае счетчик 8 уже установлен в нулевое состояние, на всех выходах дешифратора 10 присутствует нулевой уровень сигнала и импульс через элемент 31 не проходит. Таким образом, первый импульс t3 обеспечивает переключение счетчика 8 в нулевое состояние и формирует на всех выходах дешифратора 10 нулевой уровень сигнала, блокируя тем самым элементы И 19.1-19.p.

Второй тактовый импульс t1 с первого выхода генератора 6 через открытый элемент И 23 передается на вход синхронизации блока 2 (фиг. 2) и, поступая далее на вход синхронизации регистра 50, передним фронтом фиксирует в нем ранее установленный на его информационном входе КОП. Одновременно импульс t1 поступает на вход сброса регистра 51 и возвращает его в нулевое состояние; на выходе регистра 51 появляется нулевой код. КОП с выхода регистра 50 подается на информационный выход блока 2 и далее на адресный вход блока 1 (фиг. 1) и формирует на его выходе первую микрокоманду выполняемой микропрограммы (начального последовательного участка реализуемой микропрограммы). Данная микрокоманда с выхода блока 1 поступает на информационный вход регистра 3. Очередной тактовый импульс t2 через открытый элемент 24 проходит на вход синхронизации регистра 3 и фиксирует в нем считанную из блока 1 микрокоманду.

Далее в зависимости от формата считанной микрокоманды (фиг. 3) текущий модуль может функционировать в одном из следующих режимов: выполнения операционной микрокоманды (режим A), передачи управления другим (другому) аналогичным модулям системы, или запуска параллельных участков (режим B), синхронизации параллельных участков микропрограммы (режим C) и завершения микропрограммы (режим D).

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

Режим A. Функционирование модуля в режиме A начинается с момента фиксации в регистре 3 операционной микрокоманды формата Ф1 (фиг. З). На выходах 3.4-3.8 регистра 3 устанавливаются сигналы логического нуля; на выходах 3.1 и 3.2 появляются соответственно адрес следующей микрокоманды (Aсл) и код опрашиваемого логического условия (ЛУ) (который, в частности, может быть нулевым), а на выходе 3.3 формируется операционная часть микрокоманды, содержащая информацию об инициируемых микрооперациях. Операционная часть микрокоманды (код микроопераций) с выхода 3.3 регистра 3 передается на выход 44 модуля и возбуждает требуемые микрооперации (МО). Нулевой сигнал с выхода 3.5 регистра 3 блокирует элементы И 28, 29 и 18.1-18.p. Нулевой сигнал с выхода 3.6 регистра 3 закрывает элементы И 21.1-21.n. Нулевой сигнал с выхода 3.7 регистра 3 запрещает работу дешифратора 12, формируя на всех его выходах сигналы логического нуля, а также блокирует элемент И 26, не допуская тем самым обнуление триггера 13. Сигнал логического нуля с выхода 3.8 регистра 3 блокирует элемент И 25, предотвращая сброс триггера 5.

Одновременно адрес следующей микрокоманды Aсл и код опрашиваемого ЛУ с выходов 3.1 и 3.2 регистра 3 соответственно поступают на третий информационный и управляющий входы блока 2. Код ЛУ далее (фиг. 2) подается на управляющий вход мультиплексора 49 и обеспечивает передачу на его выход значения опрашиваемого логического условия с входа 42 модуля. Старшая часть адреса Aсл с третьего информационного входа блока 2 через блок элементов ИЛИ 54 (на втором входе которого находится нулевой код с выхода регистра 51) проходит на информационный вход регистра 50. Младший разряд этого адреса (являющийся модифицируемым в точках ветвления микропрограммы) поступает на первый вход элемента ИЛИ 55.

Если опрашиваемое логическое условие истинно, то на выходе мультиплексора 49 возникает единичный сигнал. Этот сигнал поступает на второй вход элемента ИЛИ 55 и, проходя на его выход, изменяет значение младшего разряда адреса Aсл на единичное. Если же опрашиваемое ЛУ ложно или код ЛУ является нулевым, на выходе мультиплексора 49 сохраняется нулевой уровень сигнала. В итоге на выход элемента 55 передается исходное значение младшего разряда адреса Aсл. Младший разряд адреса с выхода элемента 55 через соответствующий элемент ИЛИ блока 54 передается на информационный вход регистра 50. Таким образом, на информационном входе регистра 50 появляется исполнительный адрес очередной микрокоманды выполняемого участка микропрограммы, сформированный с учетом значения требуемого логического условия.

Очередной тактовый импульс t1 (фиг. 1) через элемент И 23 проходит на вход синхронизации блока 2 и, поступая далее на вход синхронизации регистра 50 (фиг. 2), обеспечивает прием в него исполнительного адреса следующей микрокоманды. Этот же импульс подтверждает нулевое состояние регистра 51. Адрес с выхода регистра 50 поступает (фиг. 1) на адресный вход блока 1 и обеспечивает считывание очередной микрокоманды. Считанная микрокоманда с выхода блока 1 подается на информационный вход регистра 3 и записывается в данный регистр по переднему фронту очередного импульса 12, приходящего через элемент 24 со второго выхода генератора 6. Далее модуль приступает к выполнению считанной микрокоманды. Ход выполнения очередной микрокоманды аналогичен ходу реализации предшествующей микрокоманды.

Режим В. Переход текущего модуля в режим В происходит после записи в регистр 3 микрокоманды формата Ф2 (фиг. 3). В этом режиме текущий модуль осуществляет запуск группы (подмножества) параллельных участков микропрограмм, закрепленных за другими аналогичными модулями СМПУ (производит передачу управления). На выходах 3.6-3.8 регистра 3 появляются сигналы логического нуля, на выходах 3.1 и 3.2 как и в режиме A формируются соответственно адрес следующей микрокоманды Aсл и код ЛУ, а на выходе 3.3 образуется код МО (в частности, код МО может быть нулевым). Код МО с выхода 3.3 регистра 3 передается на выход 44 модуля. Нулевой сигнал с выхода 3.6 регистра 3 блокирует элементы И 21.1-21.n. Нулевой сигнал с выхода 3.7 блокирует элемент 26 и дешифратор 12. Нулевой сигнал с выхода 3.8 закрывает элемент И 25.

Одновременно на выходе 3.5 регистра 3 образуется единичный сигнал - метка передачи управления (Мпу), а на выходе 3.4 устанавливается код признака передачи управления (ППУ) Ps, определяющий подмножество запускаемых участков микропрограммы, закрепленных за другими модулями. ППУ с выхода 3.4 регистра 3 передается на информационные входы регистров 4.1-4.p. Единичная метка Мпу открывает элементы И 28 и 29, разрешая тем самым прохождение импульсов, управляющих работой счетчика 7. Кроме того, метка Мпу открывает элементы И 18.1-18.p, обеспечивая возможность записи информации в регистры 4.1-4.p.

Импульс t2 с выхода элемента И 24 через элемент 36 задержки поступает на второй вход элемента И 29 и в зависимости от состояния регистров 4.1-4.p либо проходит, либо не проходит на его выход. Если состояние регистров 4.1-4.p является нулевым, то на выходах элементов И 20.1-20.p находится единичный код. Этот код подается на третий вход элемента И 29 и обеспечивает распространение импульса t2 на его выход. Импульс t2 проходит через элемент 29 на вход сброса счетчика 7 и переключает его в нулевое состояние (или подтверждает его нулевое состояние). Нулевой код с выхода счетчика 7 поступает на вход дешифратора 9 и формирует на его выходах нулевой уровень сигнала, обеспечивая тем самым блокировку элементов И 18.1-18.p. Если же состояние по крайней мере одного из регистров 4.1-4.p отлично от нулевого, на выходах элементов И 20.1-20.p устанавливается "неединичный" код, импульс t2 не проходит на вход сброса счетчика 7 и состояние счетчика 7 не изменяется.

Очередной импульс t3 с третьего выхода генератора 6 через элемент И 28 проходит на счетный вход счетчика 7 и передним фронтом увеличивает его содержимое на единицу. Образующийся код "00...01" (в общем случае "0...010... 0") с выхода счетчика 7 передается на вход дешифратора 9 и возбуждает его первый (в общем случае модуль системы микропрограммного управления, патент № 2152071-й) выход. Единичный сигнал с первого модуль системы микропрограммного управления, патент № 2152071-го) выхода дешифратора 9 открывает элемент И 18.1 (18.модуль системы микропрограммного управления, патент № 2152071). В то же время импульс t3 проходит через элемент 37 задержки. Далее импульс t3, будучи задержанным на время формирования очередного кода на выходах дешифратора 9, подается на входы элементов И 18.1-18.p. Импульс t3 проходит через открытый элемент 18.1 (18.модуль системы микропрограммного управления, патент № 2152071) на вход синхронизации регистра 4.1 (4.модуль системы микропрограммного управления, патент № 2152071) и передним фронтом фиксирует код ППУ в регистре 4.1 (4.модуль системы микропрограммного управления, патент № 2152071).

Этот же импульс t3 с выхода элемента 37 задержки подается на второй вход элемента И 30, а также на вход элемента 38. Далее в зависимости от текущего состояния шины 40 и, соответственно, уровня сигнала на выходе элемента ИЛИ-НЕ 17. p импульс t3 либо проходит на выход элемента И 30 и воздействует на счетчик 8, либо не проходит на выход элемента 30. Если на первом входе элемента 30 присутствует сигнал логической единицы (на шине 40 находится нулевой код, т.е. шина 40 свободна), импульс t3 проходит на выход элемента 30 и передним фронтом увеличивает содержимое счетчика 8 на единицу. Код с выхода счетчика 8 поступает на вход дешифратора 10 и возбуждает его модуль системы микропрограммного управления, патент № 2152071-й выход. Если шина 40 занята (на шине 40 ненулевой код и, соответственно, на выходе элемента 17. p нулевой сигнал), то элемент 30 заблокирован нулевым сигналом и прохождение им пульса t3 на счетный вход счетчика 8 запрещается.

Единичный сигнал с модуль системы микропрограммного управления, патент № 2152071-го выхода дешифратора 10 поступает на первый вход элемента И 19.модуль системы микропрограммного управления, патент № 2152071 и в случае, если шина 40 свободна и на второй вход элемента 19. модуль системы микропрограммного управления, патент № 2152071 подается единичный сигнал с выхода элемента 17.модуль системы микропрограммного управления, патент № 2152071, передается на выход элемента 19. модуль системы микропрограммного управления, патент № 2152071. Единичный сигнал с выхода элемента 19.модуль системы микропрограммного управления, патент № 2152071 поступает на управляющие входы блоков 15. модуль системы микропрограммного управления, патент № 2152071 16. модуль системы микропрограммного управления, патент № 2152071 и обеспечивает передачу информации (кода признака передачи управления либо нулевого кода, так как в общем случае модуль системы микропрограммного управления, патент № 2152071 модуль системы микропрограммного управления, патент № 2152071 модуль системы микропрограммного управления, патент № 2152071) с прямого выхода регистра 4.модуль системы микропрограммного управления, патент № 2152071 на шину 40. Одновременно сигнал с выхода элемента 19.модуль системы микропрограммного управления, патент № 2152071 переводит элементы блока 16.модуль системы микропрограммного управления, патент № 2152071 высокоимпедансное состояние, отключая тем самым второй вход элемента 19.модуль системы микропрограммного управления, патент № 2152071 (и обусловливая работу этого элемента в режиме безусловной передачи сигнала с его первого входа на выход). В то же время единичный сигнал с выхода элемента 19.модуль системы микропрограммного управления, патент № 2152071 поступает на вход элемента 35.модуль системы микропрограммного управления, патент № 2152071 задержки, с заданным сдвигом во времени появляется на его выходе и осуществляет сброс регистра 4.модуль системы микропрограммного управления, патент № 2152071.

Если модуль системы микропрограммного управления, патент № 2152071 = p, т.е. считывание информации осуществлялось из регистра 4.p, то единичный сигнал с p-го выхода дешифратора 10 открывает элемент 31. Импульс t3 с выхода элемента 38 проходит через элемент 31 на вход сброса счетчика 8, переводит его в нулевое состояние и инициирует тем самым очередной цикл опроса регистров 4.1-4.p. Если модуль системы микропрограммного управления, патент № 2152071 модуль системы микропрограммного управления, патент № 2152071 p, то элемент И 31 оказывается закрытым, импульс с выхода элемента 38 задержки не проходит на вход сброса счетчика 8 и последний, соответственно, остается в прежнем состоянии.

Одновременно с выдачей на шину 40 кода ППУ формируется исполнительный адрес следующей микрокоманды. Этот процесс происходит так же, как и в режиме A (см. выше). Полученный исполнительный адрес с информационного выхода 2.1 блока 2 подается на адресный вход блока 1 и обеспечивает считывание следующей микрокоманды. Если в соответствии с реализуемым алгоритмом управления после запуска параллельных участков текущий модуль должен продолжать функционирование, то следующая микрокоманда должна иметь формат Ф1 или Ф2 (фиг. 3). В противном случае для очередной микрокоманды должен использоваться формат Ф3 или Ф4. (Работа модуля при считывании микрокоманд форматов Ф3 и Ф4 будет детально рассмотрена ниже.).

Рассмотрим функционирование модуля в режиме приема и анализа кодов признаков передачи управления.

Коды ППУ с шины 40 передачи управления поступают на четвертые информационные входы блоков 2 и одновременно анализируются всеми модулями системы. Анализ кода ППУ Ps, некоторым модулем mk сводится к выяснению, существует ли в множестве участков, реализуемых k-м модулем, параллельный участок, идентификатор которого совпадает с Ps. Код Ps поступает (фиг. 2) на вход шифратора 48. Если участка с идентификатором Ps не существует, то на выходе шифратора 48, а следовательно, и на выходе элемента ИЛИ 52 сохраняются сигналы логического нуля. Модуль mk игнорирует код Ps.

В случае существования такого участка на выходе шифратора 48 формируется начальный адрес Ask этого участка в блоке 1 (адрес приема управления). Адрес Ask с выхода шифратора 48 через блок элементов ИЛИ 53 проходит на информационный вход регистра 51. Одновременно этот же адрес поступает на второй вход элемента ИЛИ 52. Так как адрес Ask не является нулевым, на выходе элемента 52 образуется положительный перепад уровня сигнала. Этот перепад воздействует на одновибратор 56 и формирует на его выходе импульс пуска. Данный импульс передается на вход синхронизации регистра 51 и фиксирует в нем адрес Ask.

Импульс с выхода одновибратора 56, кроме того, поступает (фиг. 1) на вход установки триггера 5 и - через элемент ИЛИ 32 - на вход установки триггера 14 и подтверждает единичное состояние триггера 5, переключая в то же время в единичное состояние триггер 14. Единичный сигнал с прямого выхода триггера 14 открывает элемент И 27. Очередной импульс t3, поступая через элемент 27 на вход установки триггера 13 и счетный вход триггера 14, переключает первый в состояние логической единицы, а второй - в состояние логического нуля. Нулевой сигнал с прямого выхода триггера 14 снова блокирует элемент 27, а единичный сигнал с прямого выхода триггера 13 открывает элементы 23 и 24.

Очередной импульс t1 через открытый элемент И 23 подается на вход синхронизации блока 2 и фиксирует адрес Ask (фиг. 1, 2) в регистре 50 (на информационном выходе 2.1 блока 2). Адрес Ask с информационного выхода 2.1 блока 2 поступает на адресный вход блока 1 и обеспечивает считывание первой микрокоманды запускаемого участка. Модуль mk приступает к выполнению заданного участка и далее функционирует аналогично работе модуля при реализации начального участка микропрограммы - межмодульная передача управления обеспечена.

Режим C. Работа модуля в режиме C начинается с момента записи в регистр 3 микрокоманды формата Ф3 или Ф4 (фиг. 3). Рассматриваемый режим соответствует выполнению процедуры синхронизации группы параллельных участков микропрограммы модуль системы микропрограммного управления, патент № 2152071q= {Lq1, Lq2,..., Lqr}. Если считанная микрокоманда имеет формат Ф3, то текущий модуль (пусть текущий модуль имеет номер i) функционирует как ведомый по отношению к вершине аq синхронизации параллельных участков группы модуль системы микропрограммного управления, патент № 2152071q. Если же микрокоманда имеет формат Ф4, то модуль работает как ведущий.

Первоначально предположим, что микрокоманда характеризуется форматом Ф3 (i-й модуль - ведомый). В этом случае i-й модуль завершает выполнение соответствующего параллельного участка Lqkiмодуль системы микропрограммного управления, патент № 2152071 модуль системы микропрограммного управления, патент № 2152071q и переходит в пассивное состояние. На выходах 3.1-3.3, 3.5, 3.6 и 3.8 регистра 3 формируются нулевые сигналы, на выходе 3.7 появляется единичный сигнал - метка конца участка (Мку), а на выходе 3.4 образуется код номера вершины синхронизации (НВС), в которой завершается выполненный участок Lkiq (в данном случае это вершина aq).

Нулевой сигнал с выхода 3.5 регистра 3 закрывает элементы И 28 и 29, запрещая тем самым поступление импульсов синхронизации на входы счетчика 7, а также блокирует элементы И 18.1-18.p, не допуская запись кода НВС в регистры 4.1-4. p. Нулевой сигнал с выхода 3.6 регистра 3 закрывает элементы И 21.1-21. n. Нулевой сигнал с выхода 3.8 регистра 3 блокирует элемент И 25. Так как на выходах 3.1 и 3.2 регистра 3 находятся нулевые коды, на первом входе блока элементов ИЛИ 54 (фиг. 2) также устанавливается нулевой код. (Это обеспечивает возможность последующего приема управления от другого аналогичного модуля СМПУ по адресу Asi с выхода шифратора 48 или запуска модуля путем подачи на вход 43 очередного кода операции.).

Одновременно метка Мку с выхода 3.7 регистра 3 (фиг. 1) открывает элемент И 26. В результате импульс синхронизации t2, поступающий с выхода элемента И 24 через элемент 36 задержки на второй вход элемента 26, проходит на счетный вход триггера 13 и задним фронтом устанавливает его в состояние логического нуля. Нулевой сигнал с прямого выхода триггера 13 блокирует элементы И 23 и 24, запрещая прохождение на их выходы импульсов синхронизации t1 и t2 с первого и второго выходов генератора 6. Таким образом, считывание микрокоманд из блока 1 прекращается - i-й модуль переходит в пассивное состояние. Несмотря на пассивное состояние, i-й модуль может продолжать выдачу кодов ППУ на шину 40 (если эти коды еще не были считаны из регистров 4.1-4. p), что обеспечивается поступлением импульса t3 с третьего выхода генератора 6 через элемент 37 задержки и элемент И 30 на счетный вход счетчика 8. Выдача кодов ППУ происходит аналогично описанному выше (см. режим B).

Одновременно с рассмотренными выше действиями i-й модуль индицирует завершение параллельного участка Lkiq. Этот процесс протекает следующим образом. Метка Мку с выхода 3.7 регистра 3 поступает на управляющий вход дешифратора 12. В результате код НВС aq, передаваемый с выхода 3.4 регистра 3 на информационный вход дешифратора 12, преобразуется в соответствующий унитарный код. На q-м выходе дешифратора 12 возникает единичный сигнал gqi - признак завершения параллельного участка Lkiq. Данный сигнал далее поступает на второй вход элемента ИЛИ 22.q и формирует на его выходе сигнал zqi - признак состояния i-го модуля по отношению к вершине синхронизации аq. (На первом входе элемента 22.q находится нулевой сигнал sqi = 0 с q-го выхода регистра 11 вектора соответствия.) Сигнал zqi вместе с аналогичными сигналами с выходов элементов ИЛИ 22.q остальных модулей СМПУ участвует в формировании сигнала fq - признака состояния группы синхронизируемых параллельных участков модуль системы микропрограммного управления, патент № 2152071q на линии 41.q состояния параллельных участков.

(Поскольку элемент 22. q имеет выходной каскад с открытым коллектором, уровень сигнала на выходе данного элемента при наличии единичного сигнала на его входе (входах) определяется уровнем сигнала fq на линии 41.q состояния параллельных участков. Если fq = 0, то сигнал на выходе элемента 22.q также является нулевым.)

Теперь рассмотрим случай, когда считанная i-м модулем микрокоманда имеет формат Ф4. В этом случае модуль завершает выполнение параллельного участка Lkiq и переходит в режим управления синхронизацией параллельных участков группы модуль системы микропрограммного управления, патент № 2152071q. На выходах 3.3, 3.5 и 3.8, как и ранее, устанавливаются нулевые сигналы, на выходе 3.7 формируется единичная метка Мку, а на выходе 3.4 образуется код НВС аq. В отличие от рассмотренного случая (когда считанная микрокоманда имеет формат Ф3) на выходе 3.6 регистра 3 появляется единичный сигнал - признак статуса текущего модуля по отношению к q-й вершине синхронизации (текущий модуль является ведущим), а на выходах 3.1 и 3.2 устанавливаются соответственно адрес следующей микрокоманды Aсл и код ЛУ (по адресу Aсл с учетом значения ЛУ будет осуществлен переход после завершения группы параллельных участков модуль системы микропрограммного управления, патент № 2152071q ).

Адрес Aсл подается на третий информационный вход блока 2, после чего в блоке 2 происходит формирование исполнительного адреса следующей микрокоманды. Этот процесс протекает аналогично рассмотренному выше (см. режим A). Код ЛУ подается на управляющий вход мультиплексора 49 (фиг. 2) и формирует на его выходе значение опрашиваемого ЛУ. Последнее, в свою очередь, через элемент ИЛИ 55 модифицирует значение младшего разряда адреса Aсл. Таким образом, на информационном входе регистра 50 образуется исполнительный адрес следующей микрокоманды.

Одновременно с процессом получения адреса следующей микрокоманды импульс t2 сбрасывает триггер 13 (фиг. 1), проходя на его счетный вход через открытый элемент И 26, а код НВС аq возбуждает единичный сигнал gqi на q-м выходе дешифратора 12. (Указанные действия происходят так же, как и при обработке микрокоманды формата Ф3, поэтому подробно не рассматриваются.) Единичный сигнал с q-го выхода дешифратора 12 формирует сигнал - признак zqi на выходе элемента ИЛИ 22.q.

В то же самое время единичный сигнал (признак статуса) с выхода 3.6 регистра 3 поступает на первые входы элементов И 21.1, 21.2,..., 21.n, обеспечивая текущему модулю возможность опроса уровня сигнала на линиях 41.1,41.2,. , 41. n (и, следовательно, возможность опроса состояния групп параллельных участков модуль системы микропрограммного управления, патент № 21520711, модуль системы микропрограммного управления, патент № 21520712,..., модуль системы микропрограммного управления, патент № 2152071n, сходящихся в вершинах синхронизации a1, а2,..., аn) соответственно. Одновременно на вторых входах элементов 21.1, 21.2,..., 21.n появляются сигналы с первого, второго, и т.д., n-го выходов дешифратора 12. Поскольку среди названных сигналов единичным является только сигнал на q-м выходе дешифратора 12(gqi =1), элементы И 21.1,..., 21.q-1,21.q+1,.., 21.n оказываются закрытыми, а элемент 21. q открывается. На выходах элементов 21.1, . . . , 21.q-1, 21.q+1,..., 21.n фиксируется нулевой уровень сигнала; сигнал на выходе элемента 21.q определяется уровнем сигнала fq на линии 41. q. Таким образом, i-й модуль приступает к опросу уровня сигнала на линии 41. q.

Если fq = 0, т.е. некоторые параллельные участки группы модуль системы микропрограммного управления, патент № 2152071q все еще не завершены, то на выходе элемента И 21.q сохраняется нулевой сигнал. В свою очередь, нулевой сигнал будет и на выходе элемента ИЛИ 34, а, следовательно, и на выходе одновибратора 39. Как только все параллельные участки группы модуль системы микропрограммного управления, патент № 2152071q оказываются завершенными, на линии 41.q образуется единичный сигнал fq=1. В результате на входах элемента 21.q происходит совпадение единиц и на его выходе возникает положительный перепад уровня сигнала. Этот перепад распространяется через элемент ИЛИ 34 на вход одновибратора 39 и возбуждает на его выходе импульс пуска.

Импульс с выхода одновибратора 39 через элемент ИЛИ 32 подается на вход установки триггера 14 и переводит его в состояние логической единицы. Единичный сигнал с прямого выхода триггера 14 открывает элемент И 27. Очередной импульс t3 с третьего выхода генератора 6 проходит через элемент 27. В результате триггер 13 переключается в единичное состояние, а триггер 14 по заднему фронту импульса t3 возвращается в состояние логического нуля. Единичный сигнал с прямого выхода триггера 13 открывает элементы И 23 и 24 и обеспечивает возможность прохождения через них импульсов синхронизации t1 и t2.

Следующий импульс t1 через элемент 23 поступает на вход синхронизации блока 2 и фиксирует ранее сформированный исполнительный адрес следующей микрокоманды в регистре 50 (фиг. 2). Далее этот адрес появляется на информационном выходе 2.1 блока 2 (фиг. 1), адресует блок 1 и обеспечивает считывание из него очередной микрокоманды. По переднему фронту импульса t2 данная микрокоманда записывается в регистр 3. Таким образом, текущий модуль вновь приступает к выполнению микропрограммы. Дальнейший ход работы модуля ничем не отличается от рассмотренного ранее.

Режим D. Работа модуля в рассматриваемом режиме начинается с момента фиксации в регистре 3 микрокоманды формата Фk (фиг.3). На выходах 3.1-3.7 регистра 3 формируется нулевой уровень сигнала, а на выходе 3.8 появляется единичный сигнал - метка конца микропрограммы (Мкмп). Метка Мкмп поступает на выход 46 конца микропрограммы модуля и индицирует завершение выполнения текущей микропрограммы. Одновременно эта же метка открывает элемент И 25. Импульс t3 с третьего выхода генератора 6 проходит через элемент И 25, элемент ИЛИ 33 и поступает на вход сброса триггера 5, переключая его в нулевое состояние. Нулевой сигнал с прямого выхода триггера 5 блокирует работу генератора 6; таким образом, текущий модуль (и система в целом) заканчивает выполнение конечного последовательного участка микропрограммы и переходит в состояние ожидания задания на реализацию очередной микропрограммы (операции). Перед началом выполнения очередной микропрограммы элементы модуля вновь устанавливаются в исходное состояние, после чего на вход 43 модуля подается КОП, в регистры 11 модулей СМПУ записываются соответствующие векторы { Si} и система переходит к реализации следующей микропрограммы. Переход модуля в пассивное состояние может быть также принудительно осуществлен путем подачи на вход 45 останова модуля сигнала "стоп".

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

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

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

модуль системы микропрограммного управления, патент № 2152071..

где f14 - частота следования импульсов генератора 14 тактовых импульсов;

R15 - разрядность счетчика 15 времени ожидания.

В наихудшем случае, когда параллельные участки завершаются непосредственно после (r-1)-го цикла опроса, имеет место

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

Формулы (1) и (2) справедливы в том случае, когда отсутствует возможность одновременной синхронизации нескольких групп параллельных участков (шина 50 синхронизации параллельных участков перед началом очередного цикла опроса состояния параллельных участков считается свободной). В случае наличия такой возможности (что в большей степени соответствует практическим ситуациям) среднее время синхронизации Т составит

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

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

В предлагаемом модуле сигнал - признак завершения группы параллельных участков появляется непосредственно в момент окончания последнего из участков группы, т.е. когда формируется последний из единичных сигналов zqi на выходе элемента ИЛИ 22.q (фиг. 1). Этот сигнал, в свою очередь, формирует единичный сигнал fq на линии 41.q состояния параллельных участков, который подается ведущему модулю (на третий вход элемента И 21.q). Роль сигнала - признака завершения параллельных участков в предлагаемом модуле фактически играет импульс пуска с выхода одновибратора 39. Таким образом, время синхронизации составляет

T* = t21.q + t34 + t39, (4)

где t21.q, t34 - задержка прохождения сигнала через элемент 21.q и элемент 34 соответственно;

t39 - время срабатывания одновибратора 39.

Формула (4) оказывается справедливой при любых вариантах сочетания групп синхронизируемых параллельных участков, в том числе при одновременной синхронизации нескольких таких групп. Это обеспечивается тем, что каждой группе параллельных участков модуль системы микропрограммного управления, патент № 2152071q соответствует отдельная линия 41.q состояния параллельных участков (фиг. 1, 4). Процессы синхронизации участков различных групп протекают независимо. Максимальное число одновременно синхронизируемых групп участков определяется числом вершин синхронизации в микропрограмме.

Нетрудно видеть, что модуль системы микропрограммного управления, патент № 2152071 (так как для обеспечения устойчивой работы модулей период следования тактовых импульсов должен в несколько раз превышать задержку логических элементов), поэтому на основе сопоставления формул (3) и (4) можно установить, что Т* < < Т.

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

Класс G06F9/22 микроуправление или устройства с микропрограммой

развертывание образа микропрограммы при наличии множества собственников -  патент 2510952 (10.04.2014)
самоконтролируемый автомат -  патент 2502121 (20.12.2013)
обработка электронных чернил -  патент 2358308 (10.06.2009)
устройство программного управления -  патент 2261470 (27.09.2005)
модуль мультимикроконтроллерной сети -  патент 2151421 (20.06.2000)
устройство программного управления -  патент 2146064 (27.02.2000)
модуль системы программного управления -  патент 2145434 (10.02.2000)
мультимикроконтроллерная система -  патент 2120135 (10.10.1998)
модуль мультимикропрограммной системы -  патент 2116665 (27.07.1998)
модуль микроконтроллерной сети -  патент 2112272 (27.05.1998)

Класс G06F9/28 увеличение операционной скорости, например с помощью нескольких устройств микроуправления, работающих параллельно

Наверх