Устройство для моделирования дискретных систем
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и предназначено для моделирования сложных дискретных систем. Целью изобретения является расширение функциональных возможностей устройства за счет моделирования требуемых схем динамических приоритетов и логики взаимодействия заявок в многофазных системах массового обслуживания . Устройство содержит группу блоков реализации процесса,группу блоков управления процессами, блок выборки процесса, блок модельного . времени, блок индикации условий,блок управления устройства, элемент И,элемент ИЛИ, коммутатор, блок диагностики состояния ресурсов, блок переменных состояний. Устройство обеспечивает реализацию процессов в соответствии с вводимыми описаниями, включающими порядок захвата/освобождения ресурсов и требуемые при этом емкости ресурсов, схемой установки приоритетов по шагам реализации, описанием . логики установки/сброса переменных состояния системы для синхронизации взаимодействующих процессов. 3 з.п. ф-лы, 14 ил. с & (Л с ьс QO СП 4
СОЮЗ СОВЕТСНИХ
СОЦИАЛИСТИЧЕСНИХ
РЕСПУБЛИК
„„SU»129541 (51)4 G 06 F 15/20
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
ГОСУДАРСТВЕННЫЙ НОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИЙ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (21) 3931286/24-24 (22) 17.07,85 (46) 07.03.87. Бюл. Р 9 (71) Минский радиотехнический институт (72) А.M.Ñóõîäoëüñêèé, О.В.Герман, И.Н.Гальцов и 10.P.Áåéòþê (53) 681.3 (088.8) (56) Авторское свидетельство СССР ,N 708356, кл. G 06 Г 15/20, 1977.
Авторское свидетельство СССР
h" 1091170, кл. G 06 Р 15/20, 1983. (54) УСТРОЙСТВО ДЛЯ МОДЕЛИРОВАНИЯ
ДИСКРЕТНЫХ CHCTEN (57) Изобретение относится к вычис- . лительной технике и предназначено для моделирования сложных дискретных систем. Целью изобретения является расширение функциональных возможностей устройства эа счет моделирования требуемых схем динамических приоритетов и логики взаимодействия заявок в многофаэных системах массового обслуживания. Устройство содержит группу блоков реализации процесса, группу блоков управления процессами, блок выборки процесса, блок модельного . времени, блок индикации условий, блок управления устройства, элемент И,элемент ИЛИ, коммутатор, блок диагностики состояния ресурсов, блок переменных состояний. Устройство обеспечивает реализацию процессов в соответствии с вводимыми описаниями, включающими порядок захвата/освобождения ресурсов и требуемые при этом емкости Я ресурсов, схемой установки приоритетов по шагам реализации, описанием логики установки/сброса переменных состояния системы для синхронизации взаимодействующих процессов. 3 з.п. ф-лы, 14 ил.
Изобретение относится к вычисли тельной технике, может быть использовано для моделирования дискретных систем (например, систем передачи и обработки информации, производственных систем и пр,) и позволяет исследовать многофазные системы массового обслуживания с динамическими схемами приоритезации процессов и сложной логикой взаимодействия процессов. !О
Целью изобретения является расширение функциональных возможностей устройства за счет моделирования требуемых схем динамических приоритетов и логики взаимодействия заявок в многофазных системах массового обслуживания.
На фиг. 1 приведена структурная схема устройства, на фиг, 2 — схема блока реализации процесса; на фиг,3схема блока управления процессом; на фиг, 4 — схема блока выборки процесса; на фиг. 5 — узел опроса блока выборки процесса; на фиг. 6 — схема блока индикации условий; на фиг.7— схема узла проверки состояния; на фиг. 8 — схема формирования импульсов блока индикации условий; на фиг.9 схема коммутатора и коммутирующая ячейка коммутатора; на фиг. 10 — схема блока диагностики состояния ресурсов на фиг ° 11 — схема опроса ресурсов блока диагностики состояния ресурсов, на фиг. 12 — схема блока переменных состояний; на фиг, 13— схема блока модельного времени; на фиг. 14 — алгоритм работы устройства.
Устройство для моделирования дискретных систем содержит идентичные
40 блоки 1 реализации процессов, соответствующие им блоки 2 управления процессом, блок 3 выборки процесса, блок 4 модельного времени, блок 5 индикации условий, блок 6 управле45 ния устройством, элемент И 7, элемент ИЛИ 8, коммутатор 9, блок 10 диагностики состояния ресурсов и блок 11 переменных состояния.
Блок 1 реализации процесса (фиг.2) содержит оперативное запоминающее
10 устройство (ОЗУ) 12, информационный счетчик 13, первый 14 и второй 15 адресные счетчики, первый 16 и второй 17 дешифраторы, регистр 18,схему
19 сравнения на равенство нулю, сумU матор 20, первый 21, второй 22 и третий 23 триггеры, блок 24 усиления импульсов второй 25 и первый 26
1295411 2 элементы ИЛИ, группу схем 27 сравнения, группу элементов И 28, элемент
29 задержки, первый 30 и второй 31 элементы И.
Блок 2 управления процессом (фьг, 3) содержит постоянное запоминающее устройство (ПЗУ) 32, адресный счетчик 33, регистр 34 микрокоманды, генератор 35 тактовых импульсов, мультиплексор 36, второй 37 и первый 38 триггеры, дешифратор 39, первый элемент 40 задержки, первый 41 и второй 42 элементы И, второй элемент 43 задержки, третий 44, первый
45, второй 46 и четвертый 47 элементы ИЛИ, третий 48 и четвертый 49 элементы И, группу выходных элементов И 50, группу схем 51 сравнения и группу опрашивающих элементов И 52, Блок 3 выборки процесса (фиг.4) содержит счетчик 53 и первый регистр
54, первый 55 и второй 56 дешифраторы, вторую 57 и первую 58 схемы срав.нения (соответственно на меньше "0" и равно "0"), второй регистр 59, группу узлов 60 опроса, первый 61 и второй .62 элементы ИЛИ и группу элементов И 63.
Узел 60 опроса (фиг. 5) содержит схема 64 сравнения, мультиплексор
65, регистр 66, элемент 67 задержки, первый 68 и второй 69 элементы
И и элемент ИЛИ 70.
Блок 4 модельного времени (фиг.13) содержит генератор 71 импульсов, счетчик 72 и элемент И 73.
Блок 5 индикации условий (фиг. 6) содержит узлы 74 проверки состояния, триггер 75, формирователь 76 импульсов, первый 77, второй 78, третий
79, шестой 80, четвертый 81 и пятый
82 элементы ИЛИ, первый 83 и второй
84 элементы ИЛИ.
Узел 74 проверки состояния (фиг.7) содержит первый 85 и второй 86 элементы И и элемент ИЛИ 87, а формирователь 76 импульсов (фиг. 8) - триггер 88, элемент 89 задержки и элементы И 90 и 91.
Коммутатор 9 (фиг. 9а) содержит группы элементов И 92 (коммутирующие ячейки) и элементы ИЛИ 93-95.
Блок 10 диагностики состояния ресурсов (фиг. 10) содержит ОЗУ 96, счетчик 97 адреса, регистр 98, с первого по третий блоки 99-101 усиления импульсов, элемент 102 задержки, группу элементов ИЛИ 103, дешифратор 104, 1295411 з узлы (по числу ресурсов) 105 опроса ресурсов и элемент ИЛИ 106, причем узел 105 опроса ресурсов (фиг. 11) содержит регистры 107, мультиплексор 108, накапливающий сумматор (аккумулятор) 109, схему 110 сравнения, триггер 111 и регистр 112.
Блок 11 переменных состояния (фиг. 12) содержит триггеры 113, блок 114 усиления импульсов и де10 шифратор 115.
Схема блока 6 управления устройством соответствует блоку 2 управления процессом и представляет мик ропрограммный автомат с памятью (фиг. 3).
На схемах жирными линиями показаны жгуты, тонкими — провода.
Устройство работает следующим образом.
Моделируемый процесс (в качестве процессов могут выступать коммукационные сообщения в сетях связи, вычислительные задачи (программы), партии деталей в производственных системах и пр.) функционирует в системе, захватывая/освобождая ресурсы, а также взаимодействуя с другими функционирующими процессами, например, через сообщения, разделяемые переменные, се- З0 мафоры. Для задания программы реализации процесса необходимо указать: требования (на каждом шаге реализации) к емкости используемых ресурсов, условия перехода на следующий 35 шаг (предикат(ы), определенный на множестве переменных состояния системы)» Йовые значения (если таковые предусматриваются логикой развития процесса) переменных состояния сис- 40 .темы, устанавливаемые в результате завершения текущего шага реализации, :рассматриваемого процесса.
В соответствии с этим реализацию . 45
D j ro процесса (j 1m) можно представить цепью описаний
И =ст, S,, S,..., Я„...
4 где S (k 1 и).) — описание шага k 50 к ° реализации D ;
Т вЂ” время ввода проо цесса в систему (как правило, Т, =О, однако можно вво- Ы дить процесс в систему в любое заданное время), 4
=Н= — признак конца реализации.
J 1 т где Т вЂ” необходимое для реализации
К шага k время," — относительное приращение или абсолютное (замещаемое) значение приоритета процесса;
R — совокупность пар вида (r >, с ), где r, — номер ресурса, с — запрашиваемая/освобож1
Р даемая емкость (принято,что если с 3 О, то данная величина емкости запрашивается, а если с с0, то емкость освобождается), р = 1,п;
P — совокупность пар вида (1 (й ), к =1,q, где P — номер переменной состояния, а — новое (подлежащее установке) значение переменной Р, ..e(O,13;
P — в отличие от P каждая пара
К К (P 16 ) определяет номер переменной (P ) и значение (hk) которое до но быть выполнено в текущем состоянии системы.
Если это условие не выполняется>то процесс. блокируется.
Необходимыми компонентами S„ являются (в общем случае) время Т„ и приоритет Р., Соответственно, содержимое ячеек
ОЗУ 12 каждого блока 1, (I.=1,m) реализации процесса (фиг ° 2) организовано следующим образом: время (закрывает предыдущий шаг реализации); — приоритет (приращение или абсолютное значение);
t — номер переменной или ресурса; — значение (емкость);
° ° ° — время (закрывает текущий шаг реализации);
° ° ° — признак конца реализации (ф .
Для идентификации содержимого ячейки ОЗУ 12 часть разрядов отводится под кодовый признак: U; — время Т ; U — приоритет Р используемый как новое (абсолютное) значение приоритета; Н вЂ” приоритет Р используемый как приращение (относительное значение) к текущему приоритету,при5 12954 чем приращение может быть и отрица-. тельным (указано число в дополнительном входе); U — номер переменной состояния; Б — HQMep pecypca; U6 запрашиваемая (освобождаемая) емкость ресурса, U данное значение переменной состояния требуется установить U — данное значение перемен9 з ной состояния требуется проверить
U — конец. 10
Разряды кодового признака со счетчика 13 поступают на дешифратор 16 и далее на первые выходы блока 1 (i:=
=1,m) реализации процесса.
Микропрограммный автомат (фиг. 3) 15 принимает команды от ЭВМ (не показана) по второму входу, после чего начинает выполнять микропрограмму, связанную с принятой командой (например, командой "Начать моделировать"). Каж- 20 дая команда (точнее код команды) соответствует в микропрограммном автомате некоторому начальному адресу микропрограммы в ПЗУ 32; Для адресации ПЗУ 32 используется счетчик 33. 25
Для того, чтобы записать адрес в счетчик 33 с вторых выходов блоков 2 или блока 6„ один из разрядов заведен на R--вход триггера 38, поэтому наличие на этом входе " 1" сбрасывает 30 триггер 38 и с некоторой задержкой этот же сигнал поступает через элемент ИЛИ 46 для управления записью в счетчик 33. Триггер 38 определяет код "01", который подается на управляющие входы мультиплексора 36, в результате последний коммутируег направление, соответствующее вторым входам блока. 2 или блока 6 устройства. Таким образом в счетчик 33 запи- 10 сывается начальный адрес микропрограммы (соответствующий конкретной команде, выставленной на вторые входы микропрограммного автомата). Если речь идет о блоках 2, то код команды выставляет блок 6 управления, для которого код команды выставляет ЭВМ, с которой сопряжено устройство, После записи в счетчик 33 начального ад" реса микропрограммы выдается сигнал 50 пуска по одному из входов рассматриваемого автомата для генетатора 35, кроме того, этот же сигнал устанавливает триггер 38, так, что далее на. управляющих входах мультиплексора 36 S5
11 t1 устанавливается код 10 и коммутируется "нижнее" направление - от адресных разрядов регистра 34. Генера11 6 тор 35 выдает две последовательност сигналов (четную и нечеткую). По каждому нечетному сигналу происходит чтение из ПЗУ 32, а по каждому четному реализуется фаза выполнения микpos.aìàHäû (либо операционного, либо логического типа). По сигналу чтения выставляется код на выходах ПЗУ 32, который записывается в регистр 34 этим же сигналом, задержанным в элементе 40, Затем сигнал чтения исчезает и генератор 35 выдает сигнал опроса элементов И 41 и 42, т.е. проверяет разряд S регистра 34, если
S=1 то возбуждается выход элемента
И 4 1 (микрокоманда операционного типа) и единичный сигнал далее подается на все элементы И 50, причем сигналы микроопераций появляются на выходах тех элементов И 50, которым соответствуют единичные разряды поля микроонераций в регистре 34.
После пропадания сигнала на выходе генератора 35 соответственно пропадают сигналы микроопераций, Кроме того, всегда при выполнении микрокоманды операционного типа (один из микрооперационных выходов заведен на вход элемента ИЛИ 45) по микрооперационному сигналу в такте выполнения счетчик 33 увеличивает адрес следующей команды в ПЗУ 32 на
"1". Допустим, что выполняется микрокоманда логического типа (S = О).
В этом случае ни один из элементов
И 50 не возбуждается. При этом номер логического условия коммутируется на вход дешифратора 39 и возбужденным является тот выход дешифратора, который соответствует номеру этого логического условия.
В разряде V регистра 34 записано проверяемое значение логического условия (О или 1). Фактические (или наблюдаемые) значения логических условий собраны в первые входы микропрограммного автомата, причем каждо-, му фактическому логическому условию соответствует конкретная схема 51 сравнения по модулю два. Кроме того, опрашивается только та схема 51 сравнения, которая соответствует номеру проверяемого условия. В случае несовпадения проверяемого и фактического значений логического условия ни один из элементов 52 не возбуждается, по" этому появляется сигнал на выходе элемента И 49, по которому далее
f0
f5
50
7 12 через элемент ИЛИ 46 производится запись в счетчик 33 адресного поля регистра 34, коммутируемого мультиплек— сором 36. В случае совпадения фактического и проверяемого значений логического условия возбуждается выход элемента И 48, коммутируемый на элемент ИЛИ 45, и адрес следующей микрокоманды увеличивается на "1" . Наконец, триггер 37 определяет состояние работы/бездействия микропрограммного автомата.
Таким образом, работа автомата определяется теми микропрограммами, которые записаны в ПЗУ 32. Каждая микропрограмма реализует некоторый порядок действий, устанавливаемый алгоритмом (фиг. 14).
Устройство предназначено для моделирования дискретных систем, в которых выделяются процессы (например, вцчислительные задачи, коммуникационные пакеты, партии деталей) и ресурсы — "стационарные" объекты системы, "обрабатывающие" процессы, Процессы функционируют в системе, захватывая (освобождая) ресурсы и во взаимодействии с другими процессами. Функционирование кажцого процесса в устройстве определяется последовательностью шагов, причем для каждого шага указывается время его выполнения, требуемые ресурсы (и "сколько" каждого ресурса требуется — в относительных долях или емкостях), приоритет (или его приращение) и некоторые логические условия (переменные состояния), которые в общем случае должны быть
HBKoTopblg образом установлены, чтобы процесс мог начать реализацию следующего шага; может быть указано, как следует установить переменные состояния после выполнения очередного шага. Принято, что в первую очередь в модели двигаются процессы с максимальным текущим приоритетом, Из этого описания ясны блоки 1-3 алгоритма, Процесс считается заблокированным, если для перехода на следующий шаг реализации ему не могут быть выделены ресурсы (ввиду их занятости) или переменные состояния установлены так, что они запрещают дальнейшее продвижение. B устройстве принято, что с завершением каждого очередного шага реализации процесса, если требуется установка некоторых переменных состояния, то она производится — блок 5
95411 8 (причем только один раз — блок 6: проверяется, просматривался процесс или нет); в результате изменения переменных возможно, что некоторые процессы разблокируются — блок 7, в блоке 9 проверяются условия: есть ли для процесса свободные ресурсы на следующем шаге и допускается ли следующий шаг переменными состояния, если нет, то блок 10, Процесс считается прерванным, если он завершил очередной — не последний — шаг реализации и ему разрешен переход на следующий шаг (в данном случае, если счетчик времени реализации процесса не обнулен). Блок 11 соответствует системному тупику — нет прерванных процессов и все процессы заблокированы ° В блоке 15 определяется статус прерванного процесса, Функциональным назначением реализации процесса является опрецелепие каждого шага реализации процесса вплоть до его завершения. Содержимое ячеек ОЗУ 12 идентифицируется кодом, декодируемым на дешифраторе 16. Блок
1 участвует в моделировании, если триггер 21 сброшен, Для моделирования процесса в ОЗУ 12 до моделирования записывается вся информация о процессе. Для записи в ОЗУ 12 ЭВМ на вторые входы блоков 2 выставляет слово информации (очередное), Затем ЭВМ выдае команду записи в блок 6, инициируя микропрограмму записи. По команде записи блок 6 определяет, куда "ретранслировать команду (т,е, производит выбор соответствующего блока 2). Для этого выбора используются два типа команды записи: "Продолжение записи" и "Запись в новый блок 1" (служит для выбора нового блока 1, в котором определяется сле45 дующий по порядку процесс). Рассмотрим подробно оба типа команды записи, предварительно укажем, что вторые .входы блоков 2 являются общими — это значит, что для запуска конкретного блока 2 задействуется конкретный выход блока 3, и перед записью во все блоки 1 реализации процессов должна быть выполнена программа начальной установки элементов схем, счетчик
55 53 блока 3 (фиг, 4) по входу от элемента ИЛИ 6 обнуляется, а по входу, обозначенному выше, наращивает содержимое на "1".
9 12
В случае поступления команды "Запись в новый блок 1" блок 6 сигналом микрооперации в третьей группе выхо-. дов увеличивает содержимое счетчика
53 на единицу. В такте выполнения следующей микрокоманды блок 6 сигналом микрооперации в той же группе, коммутируемым на вход элемента ИЛИ
62 блока 3, управляет записью номера блока 1 из счетчика 53 в регистр 54 (фиг. 4). В следующем такте выполнения очередной микрокоманды блок 6 выставляет на IU-й группе выходов код команды "Записать", при этом разряд в группе выходов IU должен быть нулевым и, кроме того, выдает сигнал синхронизации элементов И 63 в блоке 3 по микрооперационному выходу в группе III выходов блока 6.
Этот сигнал (фиг. 4) коммутирует единичный выход дешифратора 56 на тот выход блока 3, который управляет запуском нужного блока 2. Если длительность выполнения микрокоманды не позволяет вовремя установить адрес в счетчике 33 блока 2 до поступления сигнала пуска с выхода блока 3, то выдача кода "Записать" в блоки 2 должна производиться на такт раньше (т.е. в последнем такте, когда во все счетчики 33 всех блоков 2 занесен адрес программы записи, выдается сигнал пуска с требуемого выхода блока 3) . При поступлении на входы блока 6 команды "Продолжение записи" отличие от рассмотренных выше действий связано с отсутствием необходимости наращивания содержимого счетчика 53 блока 3 и записи в регистр
54. Теперь блок 2, получив команду записи по второму входу и сигнал пуска генератора 35, выполняет следующие действия. Если получена команда записи первого типа, то блок 2 сигналом микрооперации на первом выходе, коммутируемым на вход наращива- ния на "1" содержимого счетчика 14 блока 1 (фиг. 2) увеличивает содержимое указанного счетчика на "1", а,в следующем такте выдает сигнал записи в ОЗУ 12. По команде второго типа сначала счетчик 14 сбрасывается, а в следующем такте увеличивает содержимое на единицу, после чего выдает команду записи в ОЗУ 12, Таким образом осуществляется запись в одну ячейку памяти. Для записи в следующую ячейку 3ВМ выставляет но95411 10 вый код на входах блока 1 и выдает очередную команду записи первого или второго типов.
Блок 1 работает следующим образом. для диагностики состояния процесса используются триггеры 21-23, и схема 19 сравнения на равенство "0", Триггер 21 в установленном состоянии определяет, что соответствующий пра10 цесс в системе не существует (например, завершил реализацию и покинул систему), триггер 22 в установленном состоянии указывает, что соответствующий процесс заблокирован, т.е.
1 ему для перехода на следующий шаг реализации либо не могут быть выделены необходимые ресурсы, либо не
"срабатывает " предикат, связанный с этим переходом.
Состояние триггера 23 (указателя просмотра) используется соответствующим блоком 2.для выдачи сигнала разблокировки (блок 6,7 алгоритма на фиг. 14) на соответствующий из микрооперационных выходов, поступающего на соответствующие входы блока 5 индикации условий, Наличие высокого уровня на выходе схемы 19 сравнения. (фиг. 2) определяет статус "ожидающего" процесса, т.е. свидетельствует, что время Т„, необходимое для реализации шага k, истекло и процесс требует выполнения следующего шага реализации. Таким образом можно вы35 делить две активные фазы реализации любого процесса: Ф„ — фаза выполнения перехода на следующий шаг реализации и Ф вЂ” фаза выполнения шага
Б реализации. а
Наиболее простой (в смысле управления) фазе Ф соответствует ненулевое содержимое счетчика 13 и низкий уровень на выходе схемы 19 сравнения, 5 При этом соответствующий блок 2 управления процессом не подает на входы блока 1 реализации процесса никаких управляющих воздействий. Изменение (уменьшение) содержимого
50 счетчика 13 осуществляется сигналом с выхода элемента И 30 при поступлении импульсов на вход блока 1 реализации процесса от блока 4 модельного времени. При обнулении содержимо55 го счетчика 13 любого из блоков 1 возникает высокий уровень на выходе схемы 19 сравнения на равенство нулю, в результате чего обеспечивает" вующие входы блока 3 выборки процесса.
Проверка значения переменной состояния (кодовый признак U ) осущест8 вляется дешифратором 17, схемой 27 сравнения, элементами 28 и 26, при этом номер переменной из счетчика 13 через блок 24 переписывается в регистр 18 и поступает на входы дешифратора !7, в результате возбуждается тот выход дешифратора 17, который соответствует опрашиваемой переменной, После этого считывается следующая ячейка ОЗУ 12 с идентификатором
U . Принято, что номер переменной соответствует номеру спрашиваемого разряда ячейки ОЗУ 12. Сравнение требуемого значения переменной и фактического (текущего) выполняется соответствующей схемой 27 сравнения, выход которой стробируется одноименным элементом И 28. В результате высокий потенциал на выходе элемента
ИЛИ 26 определяет условие совпадения требуемого и фактического значений опрашиваемой переменной состояния, В случае несовпадения значений блок 2 управления рассматриваемым блоком 1 реализации процесса обеспечивает по выходам элементов И 50 установку состояния "Заблокирован" (подачей сигнала на S-вход триггера 22) процесса, восстановление содержимого счетчика 14 (путем перезаписи содержимого счетчика-дублера 15 в счетчик 14, т.е. восстанавливается состояние процесса); передачу управления в блок 6 управления устройством.
В случае успешного перехода на следующий шаг выполнение фазы Ф, в блоке 1; реализации процесса завершается занесением в счетчик 13 времени реализации шага (U ), т.е. ста1 тус "прерванный" процесс = (содержимое счетчика 13) Ф 0 3» (процесс не завершен) ф (процесс не заблокирован).
В соответствии с алгоритмом работы устройства (фиг ° 14, блоки 2, 3) завершение любого шага реализации сопровождается "обращением" к блоку 6 управления устройством (пуск через элемент ИЛИ 8) и остановом генератора 71 модельного времени.
Для того, чтобы снова запустить генератор 71 необходимо выполнить действия, предусмотренные фазой перехода Фд для всех процессов, ожидаю11 1295411 12 ся блокирование и останов генератора 71 импульсов модельного времени в блоке 5 модельного времени и запуск блока 6 управления устройством (через элемент ИЛИ 8).
Когда счетчик 13 обнуляется, начинается фаза Ф . Для останова генератора 71 (фиг. 13) выполняется пуск (рестарт) блока 6 сигналом за— пуска по цепи схема 19 сравнения 10 блока 1 — выход элемента И 85 — эле.мент ИЛИ 77 — элемент ИЛИ 8 — вход
"Пуск" генератора 35 блока 6 (фиг ° 3) .
При этом сигнал с третьего выхода уз:ла 74 блока 5 (фиг. 7) параллельно сигналу на первом выходе узла 74 поступает через элемент ИЛИ 79 на формирователь 76 и далее через элемент
ИЛИ 81 на входы блоков 1, сбрасывая триггеры 22; параллельно сигнал через элемент ИЛИ 82 (фиг. 6) поступает на вход установки триггера 75, в результате своим инверсным выходом триггер 75 блокирует выход блока 4 через элемент И 7. Кроме того, рестарт блока 6 происходит с команды, следующей за последней выполненной командой, этой следующей командой является команда логического типа
30 для проверки условия прерывания— все необходимые признаки собраны в первых выходах блока 5 индикации условий. Таким образом, начинает выполняться фаза Ф . При этом в счетчик 13 (фиг ° 2) последовательно считываются ячейки ОЗУ 12 и выполняется дешифрация их кодовых признаков.
Для адресации ОЗУ 12 используется счетчик 14. Первой ячейкой ОЗУ 12, открывающей следующий шаг реализации, является ячейка, содержащая признак U,,U или U, т.е. приоритет или номер переменной ресурса.
Если выбран приоритет (U, U ), то
2 содержимое счетчика 13 через -блок
24 усиления импульсов поступает на накапливающий сумматор 20. Два управляющих входа накапливающего сумматора 20 (соответственно "Сброс" и "Управление" ) позволяют в случае
U занести в сумматор значение при2 оритета, а в случае U добавить к текущему содержимому сумматора 20 приращение приоритета.
Приоритет процесса есть любое (ограниченное разрядностью ОЗУ 12) неотрицательное число. Выходы сумматора 20 заводятся на соответст13 12954 щих перехода. Порядок выполнения этих действий следующий.
Необходимо найти процесс с макси-. мальным приоритетом из числа ожидающих и не являющихся заблокированными.
Если такого процесса нет, то фаза Фд завершена, в противном случае необходимо попытаться "перевести" данный процесс на следующий шаг реализации.
При этом, возможно, требуется уста- 0 новка новых значений переменных состояния, а также захват/освобождение ресурсов или их частей. Поскольку в этом случае может быть снято условие блокировки с других ожидающих процессов, то необходимо выполнить действия, указанные в блоках 3-10 алгоритма.
Блок 3 выборки процесса обеспечивает выборку процесса с максимальным приоритетом из числа ожидающих и незаблокированных и работает следующим образом.
На первь)е Входы узлов 60 поступают25 коды текущих приоритетов с выходов соответствующих блоков 1 реализации процессов. Узел 60 опроса участвует в цикле опроса только при наличии высокого уровня от элемента И 31 соответствующего блока 1 реализации процесса, который определяет наличие в системе незаблокированного и отдающего процесса. Цикл опроса приоритета всегда начинается с первого узла
60 опроса и заканчивается опросом
35 (сравнением) приоритета в последнем узле 60. B результате опроса приоритета определяется номер процесса с максимальным текущим приоритетом, 40 причем на информационные вьгходы узлов 60 (в порядке их прохождения) коммутируется максимальное значение приоритета из числа опрошенных процессов. 45
При опросе первого узла 60 отрицательный код из регистра 59 посту" пает на входы. узла 60 опроса и далее на мультиплексор 65 и схему 64 сравнения. На другие входы мультиплексора 65 и схемы 64 сравнения поступает текущий приоритет процесса соответствующего рассматриваемого узла 60.
Предположим, что данный процесс участвует в опросе (высокий уровень на втором входе разрешения опроса узла
60 опроса) . Тогда, если приоритет данного процесса больше отрицательного кода, то на прямом выходе схе11 14 мы 64 сравнения имеется высокий уровень, а на инверсном — соответственно низкий, адресные разряды мультиплексора 65 обеспечивают коммутацию большего приоритета (т.е. в данном случае приоритета процесса) и по сигналу записи, задержанному элементом 67 задержки, обеспечивается запись.большего приоритета в регистр бб. При этом сигнал с выхода элемента И 63 через элемент ИЛИ 62 обеспечивает также перезапись содержимого счетчика 53 в регистр 54. Учитывая, что счетчик 53 определяет текущее значение номера опрашиваемого узла 60 опроса, результатом указанных действий является запись в счетчик 54, номера процесса (из числа просмотренных) с максимальным приоритетом.
Если в результате опроса на первых выходах последнего узла 60 опроса имеется отрицательнь и код, то это определяет условие завершения просмотра и выхода в блок 12 алгоритма (поскольку принято, что приоритеты процессов должны быть неотрицательными).
Если процесс не участвует в смотре (например, заблокирован), что соответствует низкому уровню на соответствующем входе узла 60 опроса (фиг.5), ацресные входы мультиплексора 65 обеспечивают коммутацию на Выходе информации с первых информационных входов узла 60.
При завершении цикла опроса в регистре 54 (фиг. 4) находится номер выбранного процесса, который дешифрируется дешифратором 56, возбуждая соответствующий первый вход элемента
И 63, который соответствует выбранному процессу. При подаче сигнала "Пуск" на другие входи элементов И 63 от группы микрооперационных выходов III блока 6 управления устройством обеспечивается стробирование элементов И
63, причем появляется сигнал запуска на соответствующем выходе блока 3 выборки процесса. По этому сигналу запускается соответствующий блок 2 управления процессом и начинается фаза ФА попытки перехода на следующий шаг реализации для выбранного процесса.
Рестарт блока 2 начинается с проверки логических признаков, коммутируемых с выхода соответствующего бло(новое) значение переменной состояния, поступающее на второй вход блока 11 переменных состояния, определяется из разрядных вторых выходов коммутатора 9. Рассмотрим, как осуществляется попытка захвата (освобоядения) ресурсов. Как и в случае установки переменных состояния, номер проверяемого ресурса определяется содержимым регистра 18 блока 1 реализации процесса (фиг. 2), а запрашиваемая (освобождаемая) емкость— кодом в счетчике 13 причем освобождаемой емкости соответствует отрицательный код, запрашиваемой емкости— положительный, Коммутатор 9 обеспечивает выбор соответствующего активному блоку 2 управления процессом направления коммутации, при этом на входы блока 10 диагностики состояния ресурсов поступают соответственно код номера ресурса, код запрашиваемой/освобождае25 мой емкости и управляющие выходы коммутируемого блока 2 управления процессом. Управление блоком 10 диагностики состояния ресурсов может осуществляться через входы от блока б . управления устройством. ОЗУ 96 (фиг, 10) блока диагностики состояния ресурсов содержит общие (исходные) емкости ресурсов системы. Обращение к ОЗУ 96 выполняется по адресу (номеру ресурса), заносимому с входов рассматриваемого блока. Величина общей емкости опрашиваемого ресурса помещается в регистр 98 и далее через блок 100 коммутируется на первые входы узлов 105 опроса ресурсов. Выбор конкретного узла 105 опроса ресурсов, соответствующего принятому номеру ресурса, реализуется возбуждением конкретного выхода дешифратора 104.
Узел 105 разом.
В накапливающем сумматоре 109 и регистре 107 хранится код, соответствующий текущему значению используемой емкости опрашиваемого ресурса (узлы 105). Величина запрашиваемой/
/освобождаемой емкости через блок
99 поступает на входы узлов 105 опроса ресурсов и далее на мультиплексор 108. Триггер 111 обеспечивает (в данном случае) коммутацию информации с вторых входов узлов 105 опроса ресурсов и далее на сумматор
15 1295411 ка 1. Дальнейшие действия блока 2 обеспечивают следующие процессы в блоке 1: увеличение содержимого счетчика 14 на " 1", считывание очередной ячейки ОЗУ 12 в счетчик 13 и декоди- 5 рование идентификатора ячейки И на дешифраторе 16, после чего выполняются действия, связанные с тем, какая информация содержится в считанной ячейке памяти. f0
Пусть при выполнении фазы Ф потA ребовалась установка новых значений переменных состояния в блоке 11 переменных состояния. Это значит, что идентификатором последней считанной ячейки ОЗУ, 12 (фиг. 2) является U
В предыдущей считанной ячейке содержался номер переменной состояния.
Имеем, что в регистре 18 содержится номер переменной состояния, а в счет- 20 чике 13 — значение переменной состояния. Коммутатор 9 (фиг. 9) обеспечивает коммутацию номера переменной и устанавливаемого значения с направления, соответствующего тому блоку управления процессом, который работает в рассматриваемый момент (высокий уровень выхода Г соответст1 вует прямому выходу триггера 37 наличия управления, (фиг. 3) . Каждая коммутирующая ячейка 92 содержит групповые элементы И (фиг. 9о), информация с выходов которых снимается при наличии высокого уровня на ! входе Г; . Таким образом, на выходы групповых элементов ИЛИ 93 коммутируется номер переменной или ресурса, на выходы элемента ИЛИ 94 — с направлений Б — значение переменной
40 состояния (или запрашиваемая/освобождаемая емкость ресурса), на выходй элемента ИЛИ 95 — управляющие разряды (группа микрооперационных выходов В работающего блока управления
45 процессом).
В рассматриваемом случае установки новых значений переменных состояний номер переменной с первых выходов коммутатора поступает на дешифратор 115 блока 11 переменных состоя50 ния (фиг. 12). Под действием управляющего сигнала обеспечивается срабатывание дешифратора 112 и подача сигнала записи на вход С требуемого триггера 113, в результате записыва55 ется информация (О или 1), определяемая состоянием второго входа блока
11 переменных состояния. Требуемое работает следующим об12954
1?
109 ° Под действием сигнала управле-. ния с одного из входов узла 105 опроса ресурсов текущее содержимое ак-, кумулятора складывается с величиной запрашиваемой/освобождаемой емкости, 5 причем результат сложения (интерпретирующий новое значение используемой емкости рассматриваемого ресурса при переходе на следующий шаг реализации процесса) сравнивается с исходной емкостью данного ресурса, код которой поступает на первые входы узла 105.
Управляющий сигнал от дешифратора
104 блока 10 диагностики состояния ресурсов обеспечивает срабатывание схемы 110 сравнения. В случае, если исходная емкость ресурса недостаточна (т.е. запрос на ресурс не может быть удовлетворен), на выходе схемы
110 сравнения имеется низкий уровень.
Это значит, что процесс нужно заблокировать, а для всех опрошенных (дан- I ным процессом).ресурсов восстановить их состояние. Восстановление состояния ресурсов осуществляется перезаписью содержимого регистра 107 всех узлов 105 опроса ресурсов в сумматор
109 путем изменения адресных входов мультиплексора 108 и последовательным сбросом сумматора 109 и добавлением содержимого регистра 107.
В регистре 112 хранится код последней запрашиваемой/освобождаемой емкости, что используется для анализа тупиковых ситуаций, возникающих в системе, В случае невозможности захвата ресурса или значения переменной состояния, не допускающего возможность перехода процесса на следующий шаг реализации, блок 2 управления процессом устанавливает триггер 22 (который был до этого сброшен) и восстанавливает содержимое счетчика 14 записью в него содержимого счетчикадублера 15 (запись в счетчик 15 содержимого счетчика 14 происходит всякий раз при успешной попытке перехода процесса на следующий шаг реализа50 ции или при установке переменных состояния). При выполнении фазы Ф блок
6 все время опрашивает вторые выходы блоков 2. Нулевое содержимое этих выходов заставляет блок 6 инициировать выборку процесса в блоке 3. Окончание выборки в блоке 3 устанавливается блоком 6 в результате проверки первых выходов блока 3. Далее блок 6
18 проверяет логические признаки с первых выходов блока 5 и, если отсутствует системный тупик, блок 6 выдает сигнал пуска соответствующим микрооперационным выходам в группе V вы1 ходов блока 6, который коммутируется на пусковой