Устройство для контроля выполнения программ (его варианты)
Изобретение относится к цифровой вычислительной технике и может быть использовано для контроля выполнения программ в цифровых вычист литвльных машинах. Цель изобретенияповьшение достоверности контроля за в лтг .15 . . .. . ходом выполнения программ. Устройство (1 вариант) содержит блок 23 регистров, схему 24 сравнения, блок 25выделения максимального и минимального количеств импульсов,блок 26микропрограммного управления, регистр 27, блок 28 постоянной памяти , элемент И 29, элемент ИЛИ 30, триггер 31. Устройство (II вяриант) содержит регистры, схвму сравнения, блок счетчиков. блок микропрограммного управления, блок постоянной памяти элемент И-НЕ, элементы ИЛИ, триггеры, элементы И, элемент И-НЕ, формирователи импульсов, коммутатор. Использование изобретения позволяет контролировать шины управления микроЭВМ или программируемого контроллера , а также информационно-адресные шины, обеспечивать быструю реакцию на возникшую ошибку, предотвращать возможность аварии управляемого объекта. 2 с.п. ф-лы, 18 ил,. 4 табл. (Л с: 4W
СООЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК. (19} (11) (51)4 G 06 F 11/26
-.ф
ОПИСАНИЕ ИЗОБРЕТЕНИЯ, " К AST0PCKOMY СВИДЕТЕЛЬСТВУ . " - ..:, /
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИЙ (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ВЫПОЛНЕНИЯ ПРОГРАММ (ЕГО ВАРИАНТЫ) (57) Изобретение относится к цифровой вычислительной технике и может быть использовано для контроля выполнения программ в цифровых вычис-. лительных машинах. Цель изобретенияповышение достоверности контроля за
17 Ф (21) 3888708/24-24 (22) 22 ° 04.85 (46) 07.06.87. Бюл. Ф 21 (71) Харьковский политехнический институт им.В.И.Ленина и Харьковское опытно-конструкторское бюро "Теплоавтомат" (72) В.В.Антосик, Л.В.Дербунович, Э.Н.Ковалев, А.Н.Мызь и И.С.Шандрин (53),681.3(088.8) (56) Авторское свидетельство СССР
В 619919, кл. G 06 F 11/00, 1976.
Авторское свидетельство СССР Ф 1019451, кл. G 06 F 11/00, 1983. ., „ ходом выполнения программ. Устройство (1 вариант) содержит блок 23 регистров, схему 24 сравнения, блок
25 выделения максимального и минимального количеств импульсов, блок
26 микропрограммного управления, регистр 27, блок 28 постоянной памяти, элемент И 29, элемент ИЛИ 30, триггер 31. Устройство (EI вариант) содержит регистры, схему сравнения, блок счетчиков, блок микропрограммного управления, блок постоянной памяти, элемент И-НЕ, элементы ИЛИ, триггеры, элементы И, элемент И-НЕ, формирователи импульсов, коммутатор.
Использование изобретения позволяет контролировать шины управления микро3ВМ или программируемого контроллера, а также информационно-адресные шины, обеспечивать быструю реакцию на возникшую ошибку, предотвращать возможность аварии управля, емого объекта. 2 с.п. ф-лы, 18 ил,.
4 табл.
t 13
Изобретение относится к цифровой вычислительной технике и может быть использовано для контроля выполнения программ в цифровых вычислительных машинах и программируемых контроллерах, построенных по принципу "общей магистрали".
Цель изобретения — повышение достоверности контроля за ходом выполнения программ.
На фиг.1 представлена функциональная схема микроЭВМ, поясняющая место предлагаемого устройства в структуре микроЭВМ; на фиг.2 и 3 — функциональные схемы устройства для контроля выполнения программ по первому и второму вариантам соответственно; на фиг.4-6 — функциональные схемы блоков соответственно регистров, микропрограммного управления и выделения максимального и минимального количеств импульсов предлагаемого устройства (вариант 1); на фиг.7-9— функциональные схемы блоков соответственно микропрограммного управления, счетчиков и коммутатора устройства для контроля выполнения программ (вариант 2); на фиг.10 — функциональная схема блока сопряжения микроЭВМ; на фиг.11 — пример выделения линейных участков программы1 на фиг.12— временная диаграмма, поясняющая работу известного устройства при отсутствии сбоев; на фиг.13 — временная диаграмма, поясняющая работу известного устройства при возникновении сбоев программного счетчика микроЭВМ; на Лиг.14 — фрагмент программы, иллюстрирующий процедуру формирования массивов служебной информации; на фиг ° 15-18 — временные диаграммы, поясняющие работу предлагаемого устройства.
МикроЭВМ (фиг.1) содержит процессор 1, устройство 2 для контроля, блок 3 сопряжения, блок 4 памяти, включающий в себя память 5 данных и память 6 программы. Блоки 3 и 4 объединены посредством группы шин
7, включающих в себя адресную 8, информационную 9 и управляющую 10 шины. Процессор 1 соединен с блоком
3 сопряжения посредством группы
11 шин, включающих в себя адресную t2 информационную 13 и управляющую
14 шины, а также с устройством 2 для контроля выполнения программ посредством адресной 12 и управляющей 14
15981 2
55 шин, причем адресная шина 12 подключена к информационному входу 15 устройства, а управляющая шина 14 включает линии управления записью и начальной установкой, подключенные соответственно к входам записи и начальной установки 17 устройства 2 для контроля выполнения программ, а также линию синхронизации, подключенную к входу 18 синхронизации устройства 2 {по первому варианту), линию подтверждения прерывания, подключенную к входу 19 признака перехода, группу линий задания режима,подключенную к группе входов 20 задания режима устройства 2 (по второму варианту) для контроля выполнения программ, выход 21 ошибки которого соединен с входом прерывания процессора 1, а тактовый вход 22 устройства
2 подключен к выходу тактовых сигнаI лов процессора 1.
Устройство 2 для контроля выполнения программ по первому варианту (фиг.2) содержит блок 23 регистров, схему 24 сравнения, блок 25 выделения максимального и минимального количеств импульсов, блок 26 микропрограммного управления, регистр 27, блок 28 постоянной памяти, элемент
И 29, элемент ИЛИ 30 и триггер 31.
Выход 32 блока 23 регистров соединен с первым информационным входом схемы 24 сравнения, выход равенства которой соединен с первым 33 адресным входом блока 26 микропрограммного управления, вход 16 записи устройства 2 соединен с первым входом 34 записи блока 23 регистров, информационный вход 15 устройства 2 соединен с информационным входом 35 блока 23 регистров, вход 17 начальной установки устройства 2 соединен с входом начальной установки регистра 27, блока
28 постоянной памяти, входом 36 обращения блока 26 микропрограммного управления, входом 37 начальной установки блока 25 выделения максимального и минимального количеств импульсов и входом установки в "0" триггера 31, инверсный выход которого является выходом 21 ошибки устройства 2, синхровход 18 устройства 2 соединен с входом синхронизации триггера 31, информационный вход которого соединен с шиной нулевого потенциала, выход блока 28 постоянной памяти соединен с информационным вхо3 13 дом регистра 27, информационным входом 38 блока 25 выделения максимального и минимального количеств импульсов и вторым информационным входом схемы 24 сравнения, группы выходов минимального 39 и.максимального 40 количеств тактовых импульсов блока
25 выделения максимального и минимального количеств импульсов соединены соответственно с группами входов элемента ИЛИ 30 и элемента И 29, выходы которых соединены соответственно с вторым адресным входом 41 блока 26 микропрограммного управления и единичным входом триггера 31, выход элемента ИЛИ 30 соединен с входом 42 запрета блока 25 выделения максимального и минимального количеств импульсов, тактовый вход 22 устройства 2 соединен с тактовым входом 43 и 44 соответственно блока
26 микропрограммного управления и блока 25 выделения максимального и минимального количеств импульсов, выход регистра 27 соединен с входом старших разрядов адреса блока 28 постоянной памяти, первый 45, второй
46, третий 47 и четвертый 48 выходы блока 26 микропрограммного управления соединены соответственно с первым 49 и вторым 50 входами записи блока 25 выделения максимального и минимального количеств импульсов, входом записи регистра 27 и входом младших разрядов адреса блока 28 постоянной памяти, второй вход 51 записи блока 23 регистров соединен с младшим разрядом информационного выхода 48 блока 26 микропрограммного управления.
Устройство 2 для контроля выполнения программ по второму варианту (фиг.3) содержит регистры 52-54, схему 55 сравнения, блок 56 счетчиков, блок 57 микропрограммного управления, блок 58 постоянной памяти, элемент ИЛИ-НЕ 59, элементы ИЛИ
60-62, триггеры 63-65, элементы И
66-68, элемент И-НЕ 69, формирователи 70 и 71 импульсов и коммутатор
72. Группы выходов регистров 52 и
54 соединены соответственно с первыми и вторыми группами информационных входов схемы 55 сравнения, вход
16 записи устройства 2 соединен с входом записи регистра 52, информационный вход 15 устройства 2 соединен с информационным входом регист15981 4 триггера, входом 83 запрета счета
40 блока 56 счетчиков и первым адресным входом 84 блока 57 мипрограммного управления, выход равенства схемы
55 сравнения соединен с вторым адресным входом 85 блока 57 микропро45 граммного управления и через второй формирователь импульсов 71 с вторым входом первого элемента И 66, тактовый вход 22 устройства 2 соединен с тактовыми входами 86 и 87 соответственно блока 56 счетчиков и блока 57 микропрограммного управления, выход третьего регистра 53 соединен с входом старших разрядов адреса блока
58 постоянной памяти, группа выходов которого соединена с группой информационных входов 88 блока 56 счетчиков, группой информационных входов второго регистра 54,первой 89 и второй 90 группа5
f0
f5
35 ра 52, группа входов 20 задания режима устройства 2 соединен с группой счетных входов 73, блока 56 счетчиков, вход 17 начальной установки уст" ройства 2 соединен с входом установки в "0" первого триггера 64, первым входом первого элемента ИЛИ 6 1, входом 74 обращения блока 57 микропрограммного управления и входом начальной установки регистра 53, выход первого триггера 64 соединен с первым входом первого элемента И 66, выход которого соединен с тактовым входом второго триггера 63, выход первого формирователя 70 импульсов соединен с входом 75 записи блока 56 счетчиков, выход элемента И-НЕ 68 является выходом 21 ошибки устройства 2, инверсный и прямой выходы второго 63 и третьего 65 триггеров соединены соответственно с первым и вторым входами элемента И-НЕ 69, выход первого элемента ИЛИ 61 соединен с нулевым входом второго 63 и единичным входом третьего 65 триггеров, первый 76,второй 77, третий 78, четвертый 79, пятый 80 и шестой 81 выходы блока 51 микропрограммного управления соединены соответственно с входом первого формирователя импульсов 70, информационным входом второго триггера 63, входом записи второго регистра 54, первым входом второго элемента И 67, управляющим входом 82 коммутатора
72 и входом младших разрядов адреса блока 58 постоянной памяти, выход второго элемента ИЛИ 60 соединен с, информационным входом первого 64
5 13159 ми информационных входов коммутатора 72
I выход 91 которого соединен с информационным входом третьего регистра
53, четвертый выход 79 блока 57 микропрограммного управления соединен с входом записи третьего регистра 53, инверсный выход третьего триггера
65 и выход первого формирователя 70 импульсов соединены соответственно с первым и вторым входами третьего эле- fO мента И 68, выход которого соединен с вторым входом первого элемента
ИЛИ 61, вход 19 признака перехода устройства 2 соединен с нулевым входам третьего триггера 65, группа вы- 15 ходов 92 минимального количества тактовых импульсов, группа выходов 93 разности максимального и минимального количеств тактовых импульсов и группа информационных выходов 94 бло- 20 ка 56 счетчиков соединены соответственно с группами входов элемента
ИЛИ-HE 59, второго 60 и третьего 62 элементов ИЛИ, выход элемента ИЛИ-НЕ
59 соединен с тактовым входом перво- 25 го 64 триггера, выход второго элемента И 67 соединен с единичным входом второго триггера 63.
Блок 23 регистров (фиг.4) устройства 2 для контроля выполнения про- 30 грамм по первому варианту (фиг.2) содержит регистры 95 и 96, информационные входы которых объединены и
1 являются информационным входом 35 блока 23 регистров, входы записи регистров 95 и 96 соединены и являются первым входом 34 записи блока
23 регистров, выходы регистров 95 и
96 объединены и являются информационным выходом 32 блока 23 регистров, а 40 инверсный вход обращения регистра
95 соединен с прямым входом обраще- ния регистра 96 и является вторым входом 51 записи блока 23 регистров.
Блок 26 микропрограммного управ- 45 ления (фиг.5) устройства 2 по первому варианту для контроля выполнения программ (фиг.2) содержит регистр 97 и блок 98 постоянной памяти, первый, второй и третий выходы которого со- 50 единены соответственно с первым,вторым и третьим информационными входами регистра 97, а также объединены и являются четвертым выходом 48 блока 26 управления контролем, четвер- 55 тый информационный вход и синхровход регистра 97 являются соответственно первым адресным входом 33 и тактовым
81 6 входом 43 блока 26 микропрограммного управления, первый, второй, третий и четвертый выходы регистра 97 подключены соответственно к первому, второму, третьему и четвертому адресным входам блока 98 постоянной памяти, пятый адресный вход и вход обращения которого являются соответственно вторым адресным входом 41 и входом 36 обращения блока 26
f микропрограммного управления, а четвертый, пятый и шестой выходы блока
98 постоянной памяти являются соответственно первым 45, вторым 46 и третьим 47 выходами блока 26 микропрограммного управления.
Блок 25 выделения максимального и минимального количеств импульсов (фиг.6) устройства 2 (вариант 1) для контроля выполнения программ (фиг.2) содержит первый 99 и второй 100 счетчики, первый 101 и второй 102 элементы И и инвертор 103. Первые вхо,цы элементов И 101 и 102 соединены и являются тактовым входом 44 блока
25 выделения максимального и минимального количеств импульсов, второй вход первого элемента И 101 является входом 42 запрета блока 25 выделения максимального и минимального количеств импульсов и соединен через инвертор 103 с вторым входом второго элемента И 102, выходы первого
101 и второго 102 элементов И соединены со счетными входами соответственно первого 99 и второго 100 счетчиков, информационные входы которых объединены и являются группой информационных входов 38 блока 25 выделения максимального и минимального количеств импульсов, входы управления параллельной записью первого 99 и второго 100 счетчиков являются соответственно первым 49 и вторым 50 входами записи блока 25 выделения максимального и минимального количеств импульсов, входы установки в "0 первого 99 и второго 100 счетчиков соединены и являются входом 37 начальной установки блока 25 выделения мак-. симального и минимального количеств импульсов, а выходы первого 99 и. второго 100 счетчиков являются соответственно группой выходов 39 минимального количества тактовых импульсов и группой выходов 40 максимального количества тактовых импульсов
7 . 131 блока 25 выделения максимального и минимального количеств импульсов.
Блок 57 микропрограммного управления (фиг.7) устройства 2 для контроля выполнения программ по второму варианту (фиг.3) содержит регистр
104, блок 105 постоянной памяти и элемент И 106. Тактовый вход 87 блока 57 микропрограммного управления соединен с синхровходом регистра
104 и первым входом элемента И 106.Первый, второй и третий информационные входы регистра 104 соединены соответственно с первым, вторым и четвертым выходами блока 105 постоянной памяти, третий, пятый и седьмой выходы которого подключены соответственно к третьему 78, второму 77 и четвертому 79 выходам блока 57 микропрограммного управления. Шестой выход блока 105 постоянной памяти подключен к второму входу элемента
И 106, выход которого соединен с первым выходом 76 блока 57 микропрограммного управления. Первый и второй выходы регистра 104 объединены и подключены к шестому выходу 81 блока
57 микропрограммного управления и, соответственно, первому и второму адресным входам блока 105 постоянной памяти, третий и четвертый адресные входы и вход обращения которого подключены соответственно к второму адресному входу 85 блока 57 микропро- граммного управления, четвертому выходу регистра 104 и входу обращения блока 57 микропрограммного управления. Четвертый информационный вход. и третий выход регистра 104 подключены соответственно к первому адресному входу 84 и пятому выходу 80 блока
57 микропрограммного управления.
Блок 56 счетчиков (фиг.8) устройства 2 для контроля выполнения.программ по второму варианту (фиг.3) содержит группу счетчиков 107, элементы И 108 и 109 и инвертор 110. Первый вход первого и второго элементов И 108 и 109 соединены с тактовым входом 86 блока 56 счетчиков, второй вход элемента И 108 соединен с входом 83 запрета счета блока 56 счетчиков и через инвертор 110 с вторым входом элемента И 109. Выходы элементов И 108 и 109 соединены со счетными входами соответственно первого и второго счетчиков 107, счетные входы третьего и последующих счетчиков 107 объединены и являются
5981 пы, вторые входы которых объединены и являются второй группой информационных входов 90 коммутатора 72.
35 Выходы. элементов И 112 соединены соответственно с первыми. входами группы элементов ИЛИ 114, вторые входы которых подключены соответственно к выходам элементов И 111 первой груп40 пы. Выходы элементов ИЛИ 114 объединены и являются выходом 91 коммутатора 72.
Блок 3 сопряжения (фиг.10) микро3ВМ содержит приемопередающие.эле45 менты. Для передачи адреса с шины
12 на шину 8 используются элементы
115 управляющие входы которых объединены и соединены с линией 116, входящей в состав шины 14. В зависиJ
50 мости от значения сигнала на управляющем входе элемента 115 он либо закрыт (высокоимпедансное состояние выхода), либо транслирует сигнал с входа на выход. Для двунаправленной
55 передачи данных между шинами 9 и
13 используются попарно объединенные элементы 115, управляющие входы которых соединены с входами 117 и
118, входящими в состав шины 14
f0
f5
8 группой счетных входов 73 блока 56 счетчиков, информационные входы счетчиков 107 объединены и являются группой информационных входов 88 блока
56 счетчиков. Вход 75 записи блока
56 счетчиков соединен с входами записи счетчиков 107. Выходы первого и второго счетчиков 107 являются соответственно группами выходов разности максимального и минимального количеств тактовых импульсов 93 и минимального количества тактовых импульсов 92 блока 56 счетчиков, а выходы третьего и последующих счетчиков 107 объединены и являются группой информационных выходов 94 блока
56 счетчиков.
Коммутатор 72 (фиг.9) устройства
2 для контроля выполнения программ по второму варианту (фиг.3) содержит первую 111 и вторую 112 группы элементов И, элемент И-НЕ (инвертор)
113 и группу элементов ИЛИ 114. Первые входы элементов И 111 первой группы объединены и являются. первой группой 89 информационных входов коммутатор 72, вторые входы элементов И 111 первой группы соединены с управляющим входом 82 коммутатора
72 и через инвертор 113 с первыми входами элементов И 112 второй груп131598
В зависимости от значений сигналов на входах 117 и 118 выбирается то или иное направление передачи данных. Для сопряжения шины lO с шиной
14 используются элементы разных типов: кабельные усилители 119 (без управления), элементы 115, управление которыми производится по линиям
120 и 121, а также асинхронные самоуправляемые двунаправленные элементы 1О
122, выполненные на стандартных логических элементах.
Любую программу, записанную в машинных кодах в памяти микроЭВМ, можно представить в виде набора линей- 15 ных участков, связанных между собой командами передачи управления по условию. Команда перехода по условию является завершающей командой линейного участка, если это не последний 2п линейный участок программы — в этом случае линейный участок может завершаться, например, командой "Останов".
Начальной командой линейного участка может быть либо команда, являю- 25 щаяся внешним входом программы, либо команда, на которую производится передача управления одной из команд перехода по условию. Если некоторый фрагмент программы (фиг.11а) содержит 3g линейный участок (t„ — I,, где команды перехода по условию; прочие команды микроЭВМ) с несколькими точками вхождения (А и В), он может быть представлен в виде линейных участков, каждый из которых имеет одну начальную команду (t,, t>) включает общие команды ветвей фрагмента (й 9 t4) и общую конечную команду условного перехода (I>) 40 (фиг. 116) .
Таким образом, любую программу можно разбить на отдельные линейные участки, на которых поведение ЭВМ строго детерминировано в том смысле, 45 что при правильном прохождении" микроЭВМ через данный линейный участок программы должно быть зарегистрировано определенное число (в заданном интервале Т„ — Т ) тактовых импульсов и строго определенное число Т импульсов на интерфейсных управляющих линиях, которое известно для каждого линейного участка еще до начала работы микроЭВМ по программе.
Наличие интервала Т вЂ” Т объясняется широким использованием в управляющих микроЭВМ режима "Ожидание"..
1 1О
Совокупность интерфейсных управляющих сигналов, которыми сопровождается выполнение команд условных переходов, не зависит от того, выполнено ли проверяемое условие или нет.
Любому линейному участку программы соответствует свой вектор перехода В = 1 А;, А — пара адресов А;, А начальных команд линейных участ1 ков, на которые передается управление конечной командой условного перехода данного линейного участка.
Основную идею работы устройства для контроля выполнения программ микроЭВМ или программируемого контроллера можно выразить следующим образом.
После (или в процессе) трансляции исходной программы на язык машинных команд рабочую программу анализируют с целью выявления всех линейных участков. Список адресов начальных команд линейных участков запоминают.
Для каждого линейного участка предсказывают): минимальное Т„ и максимальное Т числа тактовых им1 пульсов, характеризующих прохождение данного линейного участка программы; число Т импульсов на тех или иных управляющих линиях, которое находят путем последовательного арифметического сложения некоторых констант, каждая из которых соответствует своей команде и зависит от конструктивных особенностей конкретной микроЭВМ (для второго варианта); вектор перехода данного участка, определяющий пару адресов А., А
13 )Э появление которых ожидается в момент окончания прохождения данного линейного участка программы.
Эту информацию заносят в блок постоянной памяти и в дальнейшем в процессе функционирования устройства она используется для контроля прохождения линейного участка при выходе на его начало.
Кроме того, производят пуск рабочей программы. Правильность ее выполнения контролируется специальнымиаппаратными средствами. Одновременно с выбором из основной памяти началь-. ной. команды некоторого линейного участка программы из блока постоянной памяти устройства контроля выполнения программ микроЭВМ извлекается служебная информация, определяющая ожидаемые минимальное число Т, 11 13159 тактовых импульсов, разность д Т =
Т вЂ” Т между максимальным и мини2 мальным числами тактовых импульсов, число Т импульсов на интерфейсньж линиях управления (для второго варианта) и вектор В = 1 А,А перехода этого линейного участка. Множество Т = (Т, dT j (Т (Т,, йТ, Тд}) будем называть характеристическим множеством линейного уча- 10 стка. Зта информация помещается в счетчики, содержимое которых в дальнейшем уменьшается по мере прохождения данного участка программы, т.е. по мере передачи импульсных сигна- 15
-лов тактовой и интерфейсными линия,ми. По приходу Т„ тактовых импуль сов устройство контроля начинает отсчет gТ и проверку на равенство нулю содержимого счетчиков То. Если 20 это условие выполнено, т.е. микроЭВМ достигла начальной команды нового линейного участка, происходит сравне.ние вектора перехода и текущего адреса А программы, и если текущий адрес А1 оказ я рави одному из ожидаемых адресов А ° или А вектора
В, счетчики загружаются новой информацией, соответствующей новому линейному участку программы.. 30
Затем устройство 2 для контроля выполнения программ по первому варианту (фиг.2) посылает сигнал прерывания в процессор если при получении
Т2 тактовых импульсов процессор не 35 перешел к выполнению одного из линейныж участков, начальные адреса которых указаны в векторе перехода этого участка. Сигнал прерывания анализируется процессором и вызывает пе- 40 реход на заранее запланированный режим управления объектом, подключенным к микроЭВМ, после чего устройство 2 устанавливается в исходное состояние и микроЗВМ начинает выполнение программы с нулевого адреса.
При этом устройство 2 для контроля выполнения программ (второй вариант, фиг.3) посыпает сигнал прерыва- 50 ния в процессор при выполнении следующих условий: если в результате сбоя или неисправности процессор переходит к выполнению команды, адрес которой указан в векторе перехода 55 . данного линейного участка, до получения Т импульсов; если при получении Т2 тактовых импульсов процессор
81 12 не перешел к выполнению очередного линейного участка программы; если в интервале между Т, и Т импульсов получен адрес начальной команды следующего линейного участка программы и не произошпо обнуление содержимого счетчиков Т
Сигнал прерывания анализируется процессором и либо вызывает переход на заранее запланированный режим управления объектом, подключенным к микроЗВМ, либо процессор разрешает дальнейшую работу и происходит самосинхронизация устройства контроля и микроЭВМ.
Таким образом, существенно уменьшается вероятность появления аварийнык ситуаций, которые могут возникнуть в управляемом объекте в результате беспорядочного "блуждания микроЭВМ по рабочей программе, минуя .операторы условной передачи управления (выполняя ошибочные переходы) вследствие сбоя или отказа.
Работа известного устройства в отсутствие и при возникновении указанных сбоев поясняется временными диаграммами (соответственно фиг.12 и 13)., Эпюры 123-125 (фиг. 12) отображают процесс загрузки (момент 126 времени) и постепенного уменьшения содержимого трех счетчиков. Импульс
127 формируется в момент несовпадения содержимого ячейки памяти программ и ячейки дополнительного блока памяти.
При обнаружении ошибки сигнал на выходе устройства принимает нулевое значение (эпюра 128).
Эпюры 123-125 (фиг ° 13) также отображают процесс загрузки (момент
126 времени) и постепенного уменьшения содержимого трех счетчиков. Предположим, что в моменты 129 времени программа непредвиденного дважды изменила свой ход и выполнила ошибочные переходы к последующим линейным участкам, минуя начальные команды этих участков вследствие воздействия помехи (эпюра 130). При этом в известном устройстве не формируются импульсы 127 (показаны пунктиром) в моменты 131 ожидаемого завершения линейных участков. На отрезке времени
126-132 один из счетчиков (эпюра
123) переполняется три раза, а два другие (эпюры 124 и 125) — дважды.
13 131
Импульс 127 несовпадения и сигнал прерывания (эпюра 133) формируются только в момент 132 времени при выходе ЭВМ на начало четвертого (с момента 126 времени) линейного участка. Из этого следует, что время между возникновением сбоя, приводящего к обходу начальной вершины очередного линейного участка, и его обнаружением в известном устройстве может превысить время прохождения линейного участка в случае накопления подобных сбоев, связанных с производственными помехами, может оказаться достаточно большим (соизмеримым с временем срабатывания исполнительного механизма управления объектом).
В результате сбоев в программном счетчике, линии связи, согласующем блоке и т.п. процессор вместо очередной команды линейного участка программы может перейти к выполнению команды ошибочного "останова". При этом в известном устройстве формирование импульсов 127 прекращается и сигнал прерывания в процессор в дальнейшем не поступает, что в ряде случаев недопустимо.
Время между возникновением сбоя и его обнаружением в предлагаемом устройстве не превышает длительности прохождения линейного участка программы, что позволяет организовать своевременную реакцию устройства управления в случае аварийной ситуации.
Память 6 программ микроЭВМ, как правило, выполняется в виде постоянного или полупостоянного запоминающего устройства. Вводимая в память 6 программа представлена в виде последовательности машинных кодов. Ее ввод в память 6 должен сопровождаться вводом заранее подготовленного массива вспомогательной информации в блок 28 (58) постоянной памяти устройства 2 для контроля выполнения программ микроЭВМ.
Процедура подготовки массива вспомогательной информации выполняется следующим образом.
Преобразовывают рабочую программу, занесенную в память 6 микроЭВМ, выделяя линейные участки, как показано на фиг.11а, б и определяют характеристические множества Т = (Т dTj (Т = (T<, LIT, Т )) для каждого полученного линейного участка. На фиг.14 показан пример фрагмента про—
5981 !4
55 граммы, разделенного на линейные участки 1..
При этом необходимо ввести в блок
28 постоянной памяти устройства 2 для контроля выполнения программ (первый вариант, фиг.2) вспомогательную информацию о линейном участке рабочей программы, информацию о любом линейном участке L. разместить в вось1 ми ячейках блока 28 постоянной памяти (табл.1), а в ячейки с адресами
Во и В + 1 ввести первый адрес А; вектора перехода, т.е. соответственно младшую А; и старшую А„ части адреса А; начальной команды первого из двух линейных участков, на которые передается управление завершающей командой J данного линейного участка. В ячейки с адресами В + 2 и
В + 3 вводят второй адрес А вектоо
1 ра перехода„ т.е. соответственно младшую А и старшую А части адреса А начальной команды второго из двух линейных участков, на которые передается управление завершающей командой J данного линейного участка. В ячейки с адресами В + 3 и
Во + 5 вводят соответственно адреса двух ячеек блока 28 постоянной памяти, в которых хранятся первые элементы массивов вспомогательной информации линейных участков, на которые передается управление командой J (В1 о.. о. о.
В21 Б2 В3ь Вl В%э В1+1 353
В = В, В.,„; В, и т.д.) . В ячейку с адресом В + 6 вводят ожидаемое о минимальное число Т, тактовых импульсов, а в ячейку с адресом В + 7 разность dT = Т вЂ” Т„ между максимальным и минимальным числами такто" вых импульсов для данного линейного участка L..
В первые восемь ячеек блока 28 постоянной памяти вводят служебную информацию, служащую для установки в исходное состояние устройства 2 для контроля выполнения программ.
В первую и вторую пары ячеек вводят начальный адрес А„ программы так, что в первой ячейке каждой пары можно расположить младшую часть А
1м а во второй — старшую часть А „ начального адреса А, программы. В пятую и шестую ячейки вводят адрес
В ячейки 28 постоянной памяти,хранящей первый элемент массива вспомогательной информации начального линейного участка программы. В седьмую и восьмую ячейки блока 28 по16
1315981 стоянной памяти вводят соответственно установочные числа импульсов
Т, = 0 и 4 То = О. Это необходимо для обеспечения начальной синхронизации устройства 2 контроля с работой микроЭВМ.
Блок 98 постоянной памяти блока
26 микропрограммного управления запрограммирован в соответствии с табл.2.
Кроме того, вводят в блок 58 постоянной памяти устройства 2 для контроля микроЭВМ (второй вариант, фиг ° 3) вспомогательную информацию о линейных участках рабочей программы.
Информация о любом линейном участке размещается в четырех ячейках блока 58 постоянной памяти (табл.3), при этом в ячейки с адресами В и
В + 1 вводят вектор перехода, т.е. о соответственно адреса двух начальных команд линейных участков, на которые передается управление завершающей командой J данного линейного участка. В ячейку с адресом В + 2 вводят адреса двух ячеек блока 58 постоянной памяти, в которых хранятся первые элементы массивов вспомогательной информации линейных участков, на которые передается управле ние командой J (Во = В„В,, В„ = В ВЗ и т.д.). .В ячейку с адресом В + 3 вводят характеристическое множество
Т = Т, йТ, Т ) данного линейного участка L I
В первые четыре ячейки блока 58 постоянной памяти вводят служебную информацию, служащую для установки в исходное состояние устройства 2, для контроля выполнения программ микроЭВМ. В первую и вторую ячейки .вводят начальный адрес программы А„, в третью ячейку — двойной адрес ячейки (В = B,В„), хранящей пер, вый элемент массива вспомогательной информации начального линейного уча.стка Ь„ программы, в четвертую ячейку — установочное характеристическое множество Т = 1 Т, = 0; DT Ф О;
Т = 0 . Это необходимо для обеспечения начальной синхронизации устройства 2 контроля выполнения программ с работой микроЭВМ.
Блок 105 постоянной памяти блока
57 микропрограммного управления за:программирован в соответствии с табл.4.
40 вие адресов памяти 6 микроЭВМ и .бло;ка 28 постоянной памяти производит .:ся при поступлении сигнала "Общий сброс" с шины 14 на вход 17 началь45 ной Установки устройства 2 и далее на вход начальной установки регист50
5
Устройство 2 для контроля выполнения программ по первому варианту (фиг.2) работает следующим образом.
МикроЭВМ приводится в исходное состояние путем подачи логической
"1" в линию "Общий сброс", входящую в состав шин 10 и 14. Сигнал на этой линии формируется автоматически после включения питания или, например, появляется в результате нажатия соответствующей кнопки на пульте управления.
Сигнал "Общий сброс" приводит в исходное состояние процессор 1 и управляющую часть памяти 5 и 6, а также поступает на вход 17 начальной установки устройства 2, подготавливает выдачу сигнала прерывания из устройства 2 в процессор 1 по линии
21 в случае обнаружения сбоя и настраивает устройство 2 так, что первому адресу первого линейного участка программы соответствует адрес ячейки блока 28 постоянной памяти, хранящей служебную информацию о первом линейном участке.
Подготовка выдачи сигнала прерывания производится следующйм образом.
Сигнал "Общий сброс" поступает с шины 14 (фиг.2) на вход 17 начальной установки устройства 2 и далее на вход установки в "0" триггера
31. Сигнал на инверсном выходе триггера 31 принимает значение логической "1" и поступает на выход 21 устройства 2 для контроля выполнения программ. Это состояние соответствует отсутствию прерывания.
Настройка устройства 2 для контроля выполнения программ на соответстра 27, в результате чего сигналы на выходах этого регистра принимают нулевые значения. Эти сигналы поступают на вход старших разрядов адреса блока 28 постоянной памяти. Одновременно сигнал "Общий сброс" поступает с входа 17 устройства 2 на вход
36 начальной установки блока 26 микропрограммного управления и далее на вход обращения блока 98 постоянной памяти (фиг. 5) .. В результате воздействия сигнала "Общий сброс" на всех выходах блока 98 постоянной па17
18
1315981 мяти устанавливается высокоимпедансное состояние. Это состояние на выходных линиях блока 98 воспринимается на входах связанных с ними элементов как сигнал логической "1".
На информационном входе 15 устройства 2 процессор 1 устанавливает начальный адрес рабочей программы. При наличии сигнала сопровождения по цепи 16-34 на сихровходы регистров 95 10 и 96 младший А „и старший А, части текущего адреса запоминаются соответственно в этих регистрах. Высокоимпедансное состояние управляющего входа 51 блока 23 регистров восприни- 15 мается на прямом входе обращения регистра 96 как сигнал логической "1" (фиг.4), и старшая часть A oc началь-"ного адреса программы поступает с информационного выхода 32 блока 23 ре- 20 гистров на первый вход схемы 24 сравнения.
Сигнал "Общий сброс" поступает с шины 14 на вход 17 начальной установки устройства 2 и далее на вход на- 25 чальной установки блока 28 постоянной памяти, и на его выходах устанавливается высокоимпедансное состояние, кокоторое воспринимается на втором входе схемы 24 сравнения как число "все 30 единицы". При этом сигнал на выходе схемы 24 сравнения принимает значение логической "1", так как коды на входах схемы 24 сравнения не совпадают. Этот сигнал поступает на вход 33 блока 26 микропрограммного управления и далее на четвертый вход регистра 97.
Запись в регистр 97 исходного состояния (1111) производится тактовым сигналом процессора 1 по цепи 22-43-26 40 (фиг.2) и далее на синхровход регистра 97 (фиг.5), в результате чего сигналы на первом, втором, третьем и четвертом выходах этого регистра при-! нимают единичное значение и поступа- 45 ют соответственно на первый, второй, третий и четвертый адресные входы блока 98 постоянной памяти. Одновремснно высокоимпедансное состояние первого, второго и третьего выходов 50 блока 98 постоянной памяти (выход
48 блока 26 микропрограммного управления) воспринимается на входе младших разрядов адреса блока 28 постоянной памяти как сигналы логической
"1". Сигнал "Общий сброс" поступает с входа 17 начальной установки устройства 2 на вход обращения блока 28 постоянной памяти и запрещает поступ.пение содержимого ячейки блока 28 постоянной памяти с адресом 00- 0111 (B, + 7) (табл. 1) на его выход до завершения сигнала "Общий сброс".
Кроме того, сигнал "Общий сброс" поступает с входа 17 начальной установки на вход 37 начальной установки блока 25 выделения максималь" ного и минимального количеств импульсов и далее на входы установки в "О" первого 99 и второго 100 счетчиков (фиг.6). Счетчики 99 и 100 устанавливаются в нулевое состояние, и сигналы на выходах группы выходов
39 и 40 принимают нулевые значения.
В результате воздействия нулевых сигналов, поступающих с группы выходов 40 блока 25 выделения максимального и минимального количества импульсов соответственно на входы группы входов элемента И 29, сигнал на выходе этого элемента также принимает нулевое значение и устанавливается на входе установки в "1" триггера 3 1 (фиг.2)
В результате воздействия нулевых сигналов, поступающих с выходов группы выходов 39 блока 25 выделения минимального и максимального количеств импульсов соответственно на входы группы входов элемента ИЛИ
30, сигнал на выходе этого элемента также принимает нулевое значение.
Этот сигнал поступает на вход 42 запрета блока 25 выделения минимального и максимального количеств импульсов и далее на второй вход элемента
И 101 (фиг.б), запрещая прохождение тактовых сигналов по цепи 22-44-101-99 на счетный вход в режиме вычитания "-1" счетчика 99. Одновременно сигнал логического "0" с входа 42 за" прета блока 25 выделения минимального и максимального количеств импульсов поступает через инвертор
103 на второй вход элемента И 102, разрешая прохождение тактовых сигналов по цепи 22-44-102-100 на счетный вход в режиме суммирования ™+1" . счетчика 100.
Нулевой сигнал с выхода элемента
ИЛИ 30 поступает на вход 41 блока
26 микропрограммного управления и далее на пятый адресный вход блока
98 постоянной памяти.
После- окончания сигнала Общий сброс" процессор 1 автоматически или
ro инициативе оператора переходит к
19 131 выполнению рабочей программы, записанной в постоянной памяти 6 микроЭВМ. При этом счетчик 100 блока 25 выделения минимального и максимального количеств импульсов начинает подсчет тактовых импульсов, поступающих по цепи 22-44-102-100. Одновременно снятие сигнала "Общий сброс" разрешает обращение к блоку 98 постоянной памяти, и содержимое ячейки с адресом 01111 устанавливается на соответствующих его выходах (табл.2, строка 32).
Нулевые сигналы с первого, второго и третьего выходов блока 98 постоянной памяти поступают на выход 48 блока 26 микропрограммного управления и далее по линиям младших разрядов шины адреса на входы младших разрядов адреса блока 28 постоянной памяти. Таким образом, на адресных входах блока 28 постоянной памяти устанавливается адрес
00-000 (В ) (табл.1). Вместе со снятием сигнала "Общий сброс" на входе обращения блока 28 постоянной памяти с его выходов на второй вход схемы 24 сравнения поступает младшая часть ожидаемого адресного слова
А (табл.1). Одновременно нулевой сигнал с линии младшего разряда информационного выхода 48 блока 26 микропрограммного управления поступает на управляющий вход 5.1 блока 23 регистров и далее на инверсный вход е обращения регистра 95, в результате чего младшая часть А начального адреса программы с выходов регистра
95 поступает на выход 32 блока 23 регистров и далее на первый вход схемы 24 сравнения. В результате совпадения ожидаемой А.1м и действительной А, младших частей начального м адреса программы сигнал на выходе схемы 24 сравнения принимает значение логического "О". Этот сигнал поступает на вход 33 блока 26 микропрограммного управления и далее на четвертый информационный вход регистра
97, на первый, второй и третий информационные входы которого поступают сигналы 000 с первого, второго и третьего выходов блока 98 постоянной памяти (табл.2, строка 32). Тактовый сигнал, поступающий по цепи 22-43 на тактовый вход блока 26 микропрограммного управления и далее на синхровход регистра 97, производит запись информационного слова 0000 в этот ре5981 20
45 лы "1", "0", "0" с первого, второго
5
f0
25 гистр. Таким образом, на первом, втором, третьем и четвертом адресных входах блока 98 постоянной памяти устанавливаются нулевые значения сигналов, и,так как на пятом адресномвходе присутствует нулевой сигнал, на выходах блока 97 постоянной памяти устанавливаются значения сигналов, соответствующие строке 17 табл.2 (содержимое ячейки памяти с адресом
00000).
Единичный сигнал с первого и нулевые с второго и третьего выходов блока 97 постоянной памяти поступают на выход 48 блока 26 микропрограммного управления и далее на вход младших разрядов адреса блока 28 постоянной памяти, в результате чего на адресных шинах устанавливается адрес 00-001 (В о + 1) и с его выходов на второй вход схемы 24 сравнения поступает старшая часть ожидаемого адресного слова А„ (табл.
1). Одновременно единичный сигнал с линии младшего разряда информационного выхода 48 блока 26 микропрограммного управления поступает на вход 51 записи блока 23 регистров и далее на прямой вход обращения регистра 96, в результате чего старшая часть А, начального адреса программы с выходов регистра 96 поступает на выход 32 блока 23 регистров и далее на первый вход схемы
24 сравнения. Нулевой сигнал сравнения ожидаемой А и действительной
А старших частей начального адреса программы с выхода схемы 24 сравнения поступают на вход 33 блока 26 микропрограммного управления и далее на четвертый информационный вход регистра 97, на первый, второй и третий информационные входы которого поступают соответственно сигнаи третьего выходов блока 98 постоянной памяти (строка 17, табл.2).Очередной тактовый сигнал, поступающий на синхровход регистра 97, производит запись информационного слова
0001 в этот регистр, и на адресных входах блока 98 постоянной памяти устанавливается адрес 00001, в результате чего на выходах этого блока устанавливалются значения сигналов, соответствующие строке 18 табл.2.
Нулевые сигналы с первого и второго и единичный с третьего выходов блока 98 постоянной памяти поступа131 ют на вход младших разрядов адреса блока 28 постоянной памяти — (адрес 00-100 (Во + 4), с выходов которого на информационный вход регистра 27 поступает информационное слоо во В, — адрес в блоке 28 постояннойпамяти массива служебной информации . для первого линейного участка рабочей программы (табл.1). Одновременно с шестого выхода блока 98 постоянной памяти (выхода 47 блока 26 микропрограммного управления) на вход записи регистра 27 поступает единичный сигнал, производящий запись информационного слова В, в этот рео гистр. Адрес В с выходов регистра
2? поступает на вход старших разрядов адреса блока 28 постоянной памяти.
Кроме того, единичный сигнал с первого и нулевые с второго и третьего выходов блока 98 постоянной памяти поступают соответственно на первый, второй и третий информационные входы регистра 97. Очередной тактовый сигнал, поступающий на синхровход, производит запись информационного слова 0100 в этот регистр, и на адресных входах блока 98 постоянной памяти устанавливается адрес 00100, в результате чего на выходах этого блока устанавливаются значения сигналов, соответствующие
1 строке 21 табл.2. Нулевой сигнал с первого и единичный с второго и третьего выходов блока 98 постоянной памяти поступают на .вход младших разрядов адреса блока 28 постоянной памяти — адрес (В „ + 6), с выхода которого на информационный вход 38 блока 25 выделения минимального и максимального количеств импульсов поступает код числа Т„„ импульсов первого линейного участка (табл.1).
Одновременно с четвертого выхода блока 98 постоянной памяти по цепи 4549 на первый вход записи счетчика
99 блока 25 выделения минимального и максимального количеств импульсов поступает нулевой сигнал, и код Т„„ запоминается в счетчике 99, с выходов которого этот код поступает на группу выходов 39 блока 25 выделения минимального и максимального количеств импульсов и далее на группу входов элемента ИЛИ 30. Сигнал на выходе элемента ИЛИ 30 принимает единичное значение, если Т1,. = 0 и сохраняет нулевое хначение в противном
5981
22 случае. Очередным тактовым сигналом в регистр 97 записывается информационное слово 0110.
Если Т„„ = О, значение сигнала на пятом входе блока 98 постоянной памяти и входе 42 запрета счета блока 25 выделения минимального и максимального количеств импульсов не изменяется. При этом на адресных входах блока 98 постоянной памяти устанавливается адрес 00110 и сигналы на его выходах принимают значения в соответствии со строкой 23 табл.2, а счетчик 100 блока 25 выделения максимального и минимального количеств импульсов продолжает подсчет тактовых импульсов.
При Т „ О, на адресных входах блока 98 постоянной памяти устанавливается адрес 10110 и сигналы на
его выходах принимают значения в соответствии со строкой 7 табл.2, а единичное значение сигнала на входе
42 запрета блока 25 выделения минимального и максимального количеств импульсов поступает на вход элемента И 101 и через инвертор 103 на вход элемента И 102, соответственно отпирая элемент И 101 для прохождения тактовых сигналов с входа 44 блока
25 выделения минимального и максимального количеств импульсов на счетный вход в режиме вычитания счетчика 99 и запирая элемент И 102 для прохождения тактовых сигналов на счетный вход в режиме суммирования счетчика 100 (фиг.б).
Единичные значения сигналов с первого, второго и третьего выходов блока 98 постоянной памяти поступают на вход младших разрядов адреса блока 28 постоянной памяти — адрес (В + 7), C E3blXO+OB KOTOPOI 0 HB. HH» формационный вход 38 блока 25 выделения минимального и максимального количеств импульсов поступает в дополнительном коде число h T импульсов первого линейного участка (табл.1). Одновременно с пятого выхода блока 98 постоянной памяти по цепи 46-50 на второй вход записи счетчика 100 блока 25 выделения минимального и максимального количеств импульсов поступает нулевой сигнал, и код дТ„ запоминается в счетчике
100. Для правильной работы устройства 2 для контроля выполнения программ (фиг.2) число импульсов для каж.
23 l3 дого линейного участка выбирается из условия 1 (дТ с 2" — 1, где n— разрядность счетчика 100. Сигнал на выходе элемента И 29 после установки на выходе 40 блока 25 выделения минимального и максимального количеств импульсов дополнительного кода числа ь Т, импульсов сохраняется нулевое значение, и состояние триггера 31 не изменяется.
После загрузки в блок 25 выделения минимального и максимального количеств импульсов числа 4Т„ устройства 2 начинает сравнение текущих адресов программы А с вектором nef рехода линейного участка. Сравнение выполняется следующим образом. При поступлении очередного тактового импульса на синхровход регистра 97 блока 26 микропрограммного управления в регистре запоминается информационное слово Х111, и на адресных входах блока 98 постоянной памяти устанавливается адрес ХХ111 одной из четырех
его ячеек (табл.2, строки 8, 16, 24, 32) в зависимости от состояний выходов схемы 24 сравнения и элемента
ИЛИ 30 ° При этом нулевые значения сигналов с выхода 48 блока 26 микропрограммного управления поступают на вход младших разрядов адреса блока 28 постоянной памяти (адрес В ), с выходов которого на второй вход схемы 24 сравнения поступает младшая часть А-„ первого ожидаемого адреса
1М
Ч линейного участка L „. Одновременно единичный сигнал с первого выхода блока 98 постоянной памяти блока 26 микропрограммного управления поступает на управляющий вход 51 блока регистров и далее на прямой вход обращения регистра 96, с выходов которого на выход 32 блока регистров и далее на первый вход схемы 24 сравнения поступает младшая часть А „ текущего адреса, записанная в этот регистр очередным управляющим сигналом, поступающим с .входа 16 записи на вход
34 записи блока 23 регистров.
Если А „ = А;, сигнал на выходе схемы 24 сравнения принимает нулевое значение. Этот сигнал поступает на вход 33 блока 26 микропрограммного управления и далее на четвертый вход регистра 97. Очередным тактовым сигналом в регистр 97 заносится информационное слово 0000, и на адресных входах блока 98 постоянной памяти устанавливается адрес одной из двух
15981 24
его ячеек ХОООО (табл.2, строки 1 и
17) в зависимости от состояния выхода элемента ИЛИ 30. Если T = О, на адресных входах блока 98 постоянной
5 памяти — адрес 10000 и на его выходах устанавливаются значения сигналов в соответствии со строкой 1 табл,2. В дальнейшем состояния выходов блока 26 микропрограммного управfg ления не изменяются до выполнения условия Т „ = 0 (счетчик 99 блока 25 выделения минимального и максимального количеств импульсов установится в "0" по приходу на его счетный вход
15 в режиме вычитания Т„„ тактовых импульсов). При Т„„ = 0 с выхода элемен. та ИЛИ 30 на вход 41 блока 26 микропрограммного управления и далее на пятый адресный вход блока 98 постоянной памяти поступает нулевой сигнал, и на выходах этого блока устанавливаются значения сигналов в соответствии со строкой 17 табл.2. Одновременно нулевой сигнал с выхода эле25 мента ИЛИ 30 поступает на вхстд 42 запрета счета блока 25 выделения минимального и максимального количеств импульсов и устанавливает этот блок в режим счета аТ„ (открывает элемент
30 И 103 для прохождения тактовых сигналов на счетный вход в режиме суммирования счетчика 100 и закрывает элемент И 101). После выполнения условий А „= А,- и Т„, = 0 с выхода 48 блока 26 микропрограммного управления на вход младших разрядов адреса блока 28 постоянной памяти поступает информационное слово 001 и значение
А 1 старшей части первого ожидаемо4g го адреса вектора перехода линейного участка L„ постоянной памяти с адресом В + 1 поступает на второй вход схемй 24 сравнения, на первый вход которой анало45 гичным путем поступает значение А с старшей части текущего адреса. Очередной тактовый сигнал на синхровходе 43 регистра 97 записывает в этот регистр информационное слово 0001, 5g на адресных входах блока 98 постоянной памяти при Af = А;с устанавливается адрес 00001 и на выходах этого блока устанавливаются значения сигналов в соответствии со строкой
18 табл.2. На этом цикл контроля линейного участка 1. завершается и проо изводится загрузка В в регистр 27 для контроля линейного участка
25 13159 м 1с с логичным путем всоответствии с табл.2 производится проверка условий А = Ajw и Аqc-" A>с и при выполнений этих условий производится загрузка В в регистр 27 для контроля линейного участка L
Таким образом, при правильном выполнении программы микроЭВМ в начале каждого очередного линейного уча- 10 стка производится загрузка блока 25 вьщеления минимального и максимального количеств импульсов соответствующими значениями Т„ и ci T и счетчик
100 блока 25 вьщеления минимального 15 и максимального количеств импульсов никогда не установится в состояние
"Все единицы". Если при поступлении
Т тактовых импульсов не выполняются условия А = А; и А с = А; (А = 20 ми А с = AA c ), т е в результате сбоя или неисправности процессор 1 перешел к выполнению команды с произвольным адресом, минуя адрес A;(A ), сигнал на выходе элемента И 29 принимает единичное значение. Этот сигнал поступает на вход установки в
"1" триггера 31, и он переходит в единичное состояние. Нулевой сигнал с инверсного выхода этого триггера 30 поступает на выход 21 устройства 2 контроля выполнения программ в качестве сигнала Запрос прерывания".
После обработки прерывания в микро1
ЭВМ устройство 2 для контроля при- 35 водится в исходное состояние описанным путем и микроЭВМ начинает выполнение рабочей программы с нулевого адреса.
Работа устройства 2 (фиг.2) поясняется временной диаграммой (фиг.15), отображающей процесс загрузки (момент 134 времени) и постепенного уменьшения содержимого счетчиков Т1 (энюра 1 35) и лТ (эпюра 136) и формирования сигналов сравнения 137 и прерывания 138 в случае возникновения сбоя 139.
В момент 140 времени происходит совпадение текущего адреса программы А и одного из ожидаемых адресов
А (или А .) ° Импульсы совпадения 137 формируются на входе 33 блока 26 мик) ропрограммного управления в моменты перехода микроЭВМ на начало следующего линейного участка. Содержимое счетчика дТ при этом остается ненулевым и сигнал на входе установки
81 26 в "1" триггера 31 сохраняет нулевое значение. Если в результате возникновения помехи (условно представлена импульсом 139), приводящей к выполнению ошибочного перехода в преде" лах линейного участка программы (или к другому линейному участку программы), сравнение текущего адреса А и одного из ожидаемых адресов А,. или А произойдет не в запланирован1 ный момент 141 времени, а в момент
142 (не показан) до обнуления счетчика Т„, т.е. в момент 143 времени (не показан) после переполнения счетчика аТ, в момент времени 144 переполнения счетчика 100 импульсов дТ сигнал на выходе 21 устройства 2 (эпюра 138) принимает нулевое значение.
Эпюры на фиг.15 свидетельствуют о том, что время между возникновением сбоя и его обнаружением в предлагаемом устройстве не превышает длительности прохождения линейного участка программы, что позволяет организовать своевременную реакцию устройства управления в случае аварийной ситуации.
Устройство 2 для контроля микроЭВМ по второму варианту (фиг.3) работает. следующим образом.
МикроЭВМ приводится в исходное состояние путем подачи логической "1" в линию "Общий сброс", входящую в состав шин 10 и 14.
Сигнал на этой линии формируется автоматически после включения питания или, например, появляется в резулвтате нажатия соответствующей кнопки на пульте управления.
Сигнал "Общий сброс" приводит в исходное состояние процессор 1 и управляющую часть памяти 5 и 6, а также подготавливает выдачу сигнала прерывания из устройства 2 в процессор 1 по линии 2 1 при обнаружении сбоя и настраивает устройство 2 так, что первому адресу первого линейного участка программы соответствует адрес ячейки блока 58 постоянной памяти, хранящей характеристическое множество этого участка.
Подготовка выдачи сигнала прерывания производится следующим образом.
Сигнал "Общий сброс" поступает с шины 14 (фиг.3) на вход 17 начальной установки устройства 2, и далее на вход элемента ИЛИ 61, а с его вы-.
27 13159 хода — на входы установки в единичное состояние триггеров 63 и 65. Единичный сигнал с прямого выхода триггера
65 отпирает элемент И-HE 69, в результате чего нулевой сигнал с ин5 версного выхода триггера 63 поступает на первый вход элемента И-НЕ 69, сигнал на выходе 21 которого принимает единичное значение. Это состояние соответствует отсутствию прерывания.
Настройка устройства 2 для контроля на соответствие адресов памяти 6 микроЭВМ и блока 58 постоянной памяти производится при поступлении сигнала "Общий сброс" с шины 14 на вход
17 начальной установки устройства 2 и далее на вход сброса регистра 53, в результате чего сигналы на выходах этого регистра принимают нулевые значения. Эти сигналы поступают на вход старших разрядов адреса блока 58 постоянной памяти. Одновременно сигнал
"Общий сброс" поступает на вход 74 блока 57 микропрограммного управления и далее на вход обращения блока 105 постоянной памяти (фиг.7). В резуль,,тате воздействия сигнала "Общий сброс" на всех выходах блока 105 по. стоянной памяти устанавливается высокоимпедансное состояние. Это состояние на выходных линиях блока 105 постоянной памяти воспринимается на входах связанных с ними элементов как сигнал логической "1" ° Запись в регистр 104 исходного состояния производится тактовым сигналом процессора 1 по цепи 22-87-57 (фиг.3) и далее на сихровход регистра 104 (фиг.7), в результате чего сигналы на первом и втором выходах этого регистра принимают единичное значение. Эти сигналы поступают по линии
81 на вход младших разрядов адреса блока 58 постоянной памяти. Содержимое ячейки блока 58 постоянной памяти с адресом 00-001 (В + 2) (табл.3) поступает на информационный вход 88 блока 56 счетчиков. Сигнал с шестого выхода блока 105 постоянной памяти (фиг.7) поступает на второй вход элемента И 106 и открывает его для прохождения сигнала по цепи 22-87-57 (фиг.3), 87-106-76 (фиг.7),76-70-75 (фиг.3) на вход 75 записи блока 56 счетчиков и далее на входы записи счетчиков 107 (фиг.8),что вызывает запись характеристического множест81 28 ва Т" с информационного входа 88 о в счетчики 107. Значения Т„ = О, АТ0 8 0 и Т = 0 поступают с выходов первого, второго и последующих счетчиков 107 соответственно на выходы 93, 92 и 94 и далее на группы входов элементов ИЛИ 60, ИЛИ-HE 59 и ИЛИ 62. На выходе элемента ИЛИ 60 устанавливается нулевое значение сигнала, который присутствует на информационном входе триггера 64,входе запрета счетчика 83 блока 56 счетчиков и первом адресном входе 84 блока 57 микропрограммного управления. На выходе элемента ИЛИ-НЕ 59 устанавливается нулевое значение сигнала, который поступает на счетный вход триггера 64. На выходе элемента ИЛИ 62 устанавливается нулевое значение сигнала, который присутствует на втором входе элемента И 67 и запирает его для прохождения сигнала сброса триггера 63 с седьмого выхода 79 блока 105 постоянной памяти по цепи 79-67-63 (фиг.3).. После окончания сигнала "Общий сброс" процессор 1 автоматически или по инициативе оператора переходит к выполнению рабочей программы, записаной в постоянной памяти 6 микроЭВМ.
На информационном входе 15 устройства 2 процессор 1 устанавливает начальный адрес рабочей программы.При наличии сигнала сопровождения этот адрес запоминается в регистре 52 и с его выхода поступает на первый вход схемы 55 сравнения. При включении питания регистр 54 устанавливается в произвольное состояние и с его выхода на первый вход схемы 55 сравнения поступает произвольный "ожидаемый" адрес. На выходе схемы 55 сравнения устанавливается единичный сигнал в случае, если состояние реги.стра 54 совпадает с начальным адресом и нулевой — в противном случае.
Это соответствует неопределенному значению сигнала на втором адресном входе 85 блока 57 микропрограммного управления и на третьем адресном входе блока 105 постоянной памяти. Таким образом, в соответствии с начальной установкой на адресных входах блока
105 постоянной памяти формируется адрес ОХ11. Снятие сигнала "Общий сброс" соответствует обращению к блоку 105 постоянной памяти. Сигналы на его выходах принимают значения в соответствии со строками 4 или 8 табл.4.
1315981 30
t0
2.0
Единичным сигналом с шестого выхода блока 105 постоянной памяти отпирается элемент И 106 и тактовый сигнал поступает по цепи 22-87-106-76-70-75 на вход 39 записи информации блока 56 счетчиков. Происходит повторная запись характеристического множества Т о .в блок 56 счетчиков.
Ф
Первый тактовый сигнал по цепи
22-83-104 производит запись в регистр
104 информационного слова ОХОО. На адресных входах блока 105 постоянной памяти формируется адрес ОХОО, и сигналы на его выходах принимают значения в соответствии со строками 1 или
5 табл.4.
Информационное слово 00 с выхода
81 блока 57 микропрограммного управления поступает на вход младших разрядов адреса блока 58 постоянной памяти, и на его выходах устанавливается содержимое первой (В ) ячейки
A„. Оиждаемый адрес А, поступает на информационные входы регистра 54 и запоминается в нем при поступлении единичного сигнала с третьего выхода 78 блока 105 постоянной памяти на вход записи этого регистра. На выходе схемы 55 сравнения устанавливается нулевое значение сигнала о совпадении текущего адреса А и ожида1 емого А„. Этот сигнал поступает по цепи 55-85 на второй адресный вход 85
1 блока 57 микропрограммного управления и далее на третий вход блока 105 постоянной памяти. Таким образом„ независимо от исходного состояния регистра 54 до прихода второго тактового сигнала на входах блока 105 постоянной памяти устанавливается адрес 0000 и сигналы на его выходах принимают значения, соответствующие строке 1 табл.4. Единичный сигнал с выхода 77 блока 57 микропрограммного управления поступает на информационный вход триггера 63 и, в случае изменения сигнала на его синхровходе, подтверждает единичное состояние отсутствия прерывания, При поступлении второго тактового сигнала в регистре 104 запоминается информационное слово 0110. Единичное значение сигнала с третьего выхода
80 регистра 104 поступает на управляющий вход 82 коммутатора 72 и подключает к его выходам 91 первую группу входов 89. Одновременно информационное слово 10 с выхода 81 блока
57 микропрограммного управления поступает на вход младших разрядов адреса блока 58 постоянной памяти, и на его выходах появляется содержимое третьей В + 2 ячейки В = В В . Перо вая часть В „этого информациойного слова поступает с выходов блока
58 постоянной памяти на первую группу 89 входов коммутатора 72 и с его выходов на информационные входы регистра 53. На входах блока 105 постоянной памяти блока 5? микропрограммного управления устанавливается адрес 0010, и сигналы на его выходах принимают значения, соответствующие строке 3 табл.4. Единичный сигнал с выхода 79 блока 57 микропрограммного управления поступает на вход записи регистра 53, и в регистре запоминается информационное слово В„ — адрес массива служебной ино формации для первого линейного участка L, программ.
При поступлении третьего тактово"
ro сигнала в регистре 104 запоминается информационное слово ОХ11, на адресных входах блока 105 постоянной памяти блока 57 микропрограммного управления устанавливается адрес
0011 и сигналы íà его выходах принимают значения, указанные в строке 4 табл.4, в результате чего содержимое
Т „ячейки ВО + 3 блока 58 постоянной памяти (табл.3) загружается в блок
56 счетчиков.
Код элементов Т„ и Т характеристического множества выбивается таким, чтобы к моменту выбора из памяти 6 микроЭВМ команды с адресом А1 или А содержимое первого, третьего
3 и последующих счетчиков 107, работающих в режиме вычитания (подсчета сигналов на тактовом входе 22 и линиях 20 шины 14), было равно нулю.
Код дТ выбирается из соотношения дТ 1i Т„, где Т вЂ” суммарное количество тактов на линейном участке, в течение которых процессор 1 находится в режиме ожидания при работе с внешними устройствами. В качестве импульсов на интерфейсных управляющих линиях могут быть использованы сигналы управления записью в запоминающее устройство (ЗУ), чтение из
ЗУ, вводом информации с внешних устройств, выводом на внешние устройства, а также сигналы управления арифметико-логическим устройством
40
50
31 13159 при выцолнении той или иной операции (или группы операций) . Количество таких сигналов зависит только от числа соответствующих команд в рассматриваемом линейном участке программы и не связано с быстродействием внешних устройств. Таким образом, линейный участок программы однозначно определен количеством. импульсов на интерфейсных управляющих линиях, В ка- 10 честве тактовых импульсов могут быть использованы сигналы синхронизации выборки или выполнения команды. Например, для микропроцессора КР580ИК80 в качестве тактовых импульсов на так- f5 товый вход устройства могут быть поданы сигналы М» выборки команд. При этом число Т = Т тактовых импуль1 сов строго детерминировано и определяется количеством команд в данном 20 линейном участке программы. Аналогично строго определенное число тактовых импульсов, равное суммарному числу машинных циклов прохождения команд данного линейного участка программы, может быть получено при использовании в качестве сигналов на тактовом входе устройства импульсов SYNC микропроцессора.
В качестве тактовых импульсов могут быть использованы также сигналы тактового генератора микроЭВМ (для микропроцессора К580ИК80 -М,ТТЛ). В этом случае число тактовых импульсов на заданном линейном участке программы определяется в интервале
Т вЂ” Т . Использование режима "Ожи1 дание" связано с тем, что в состав управляющих микроЭВМ могут входить специальные процессоры обмена (каналы, работающие по своей программе ,и потому асинхронные по отношению к центральному процессору).
Во многих приложениях время Т... ожидания асинхронного ответа î готовности внешнего устройства к обмену может быть ограничено из разумных соображений максимальным числом
Т . При этом минимальное число макс тактовых импульсов Т» равно суммарному числу тактов ТТЛ прохождения команд данного линейного участка программы, а максимальное число тактовых импульсов
1 макс
Т =Т + Т о
81 32 где Т вЂ” такты ожидания микропроф цессора.
Если в обмене с микроЭВМ участвует внешнее устройство, для которого невозможно установить Т „ или это время заведомо велико (например, при работе микроЭВМ в мультипроцессорной системе), команда,обеспечивающая такой обмен, может быть выделена, как самостоятельный линейный участок программы, для которого один из ожидаемых адресов А; — адрес следующей команды, а другой А адрес данной команды, число тактовых импульсов Т» равно числу тактов прохождения данной команды. При этом уст,ройство выполняет данный линейный участок в соответствии с описанием до момента прихода сигнала Готовность" внешнего устройства.
Прием информации в счетчик 107 производится и при наличии импульса на его счетном входе (т.е. безусловно), так как управление по .
R,S-входам D-триггеров, составляющих счетчик 107, более приоритетно, чем управление по входу синхронизации С.
После загрузки Т„ на выходах элементов ИЛИ 60 и 62 устанавливается единичное значение сигналов, а на выходе элемента ИЛИ-НЕ 59 — нулевое. Единичный сигнал с выхода элемента ИЛИ 60 поступает на входы 83 блока 56 счетчиков и 84 блока 57 микропрограммного управления. Единичное значение сигнала управления счетом тактов с входа 83 (фиг.8) поступает на второй вход элемента И 108 и открывают его для прохождения тактовых сигналов с входа 86 на счетный вход первого счетчика 107. Одновременно единичный сигнал с входа 83 поступает на вход инвертора 110, и .нулевой сигнал с его выхода запирает элемент И 109, запрещая прохождение тактовых сигналов с входа 86 на счетный вход второго счетчика 107.
Единичный сигнал с входа 81 блока 57 микропрограммного управления (фиг.7) поступает на четвертый вход регистра 104, на первом и втором входах которого присутствуют нулевые сигналы. Следующим тактовым сигналом информационное слово 1ХОО saписывается в регистр 104. На входах блока 105 постоянной памяти блока
57 микропрограммного управления устанавливается адрес 1100 и сигналы зз
1315981
5
f0
f5
55 на его выходах принимают значения, указанные в строке 13 табл.4. Единичный сигнал с выхода 78 блока 57 микропрограммного управления поступает на вход записи регистра 54, на информационный вход которого с выхода блока 58 постоянной памяти поступает информационное слово А;, так как на вход младших разрядов адреса поступает с выхода 81 блока 57 микропрограммного управления информационное слово 00, в блоке 58 постоянной памяти выбирается ячейка В . В регистре
54 запоминается ожидаемый адрес А;, Если очередной текущий адрес А, поступающий в регистр 52 с информационного входа 15 не равен ожидаемому
А, сигнал на выходе схемы 55 сравнения сохраняет единичное значение, и в случае выполнения условия T„ ф 0 (единичный сигнал на первом адресном входе 84 блока 57 микропрограммного управления) на входах блока 105 постоянной памяти формируется адрес
1101, после чего процедура сравнения с текущим адресом повторяется для ожидаемого адреса A . При выполнении
1 условия А А цикл сравнения текуб щего адреса и вектора перехода повторяется для адресов следующих команд данного линейного участка рабочей программы.
Выработка управляющих сигналов блоком 105 постоянной памяти в соответствии с табл.4 обеспечивается следующим образом.
Каждому из 16 наборов входных переменных на четырех адресных шин блока 105 постоянной памяти соответствуют значения сигналов на выходных линиях этого блока, представленные в табл.4. После снятия сигнала "Общий сброс" на входе 74 обращения блока 105 постоянной памяти устанавливается значение сигнала, соответствующее режиму чтения информации из блока 105. В дальнейшем в процессе функционирования устройства блок 105 постоянной памяти постоянно находится в этом режиме. Каждое изменение значения хотя бы одного сигнала на адресных входах блока 105 постоянной памяти приводит к изменению его входных сигналов в соответствии с табл.4.
Так, например, при изменении значения сигнала на третьем входе 85 блока
105 из нуля в единицу при нулевых значениях сигналов на первом, втором и четвертом его входах значения выходных сигналов, установившиеся до этого изменения в соответствии с первой строкой табл.4, устанавливаются в соответствии со второй строкой табл.4, т.е. значение сигнала на четвертом выходе 79 блока 105 переходит из единицы в нуль, причем сигналы на остальных его выходах сохраняют прежние значения.
В случае возникновения сбоя или неисправности, приводящей к "обходу" одной или нескольких команд, процессор 1 может прийти в адрес А< или
А до истечения установленного минимального числа Т,. тактовых импульсов. В этом случае сигнал на выходе схемы 55 сравнения принимает нулевое значение. Этот сигнал поступает на второй вход 85 блока 57 микропрограммного управления и далее на третий вход блока 105 постоянной памяти.На ,адресных входах блока 105 постоянной памяти формируется адрес 1000 (выполнение условия А = А;) или 1001 ° (выполнение условия А q = A ), и на его выходах устанавливаются значения сигналов, указанные соответственно в строках 9 или 10 табл.4. Нулевой сигнал с выхода 77 блока 57 микропрограммного управления поступает на информационный вход триггера 63. На синхровход этого триггера с выхода схемы 55 сравнения по цепи 55-71-66-63 поступает синхросигнал, и триггер 63 устанавливается в нулевое состояние. Единичный сигнал с инверсного выхода триггера 63 поступает на вход элемента И-НЕ 69, и сигнал на его выходе принимает нулевое значение. Этот сигнал поступает в процессор 1 в качестве сигнала "Запрос прерывания". Сигнал "Подтверждение прерывания" поступает по шине 14 управления на вход 19 признака перехода устройства 2 и далее на вход установки в "О" триггера 65, устанавливая его в нулевое состояние. Нулевой сигнал с прямого выхода триггера 65 поступает на второй вход элемента И-НЕ 69 и запрещает выдачу сигнала "Запрос прерывания". Одновременно единичный сигнал с инверсного выхода триггера 65 отпирает элемент
И 68 для прохождения сигнала управления.
Процессор 1 приступает к обработке прерывания, связанного с сигналом от устройства 2 для контроля, и на адресном входе-выходе устанавли35
13159 ваются адреса программы прерывания.
Ожидаемые адреса А и А продолжают
1 поочередно сравнивать с текущими адресами А и на выходе схемы 55 устанавливается единичное значение сиг- 5 нала. Блок 57 микропрограммного управления выдает сигналы управления в соответствии со строками 13 и 14 табл,4, т.е. устройство 2 для контроля выполнения программ находится в состоянии 10 ожидания.
Если при выполнении процессором 1 линейного участка L программы достигается условие Т, = О, сигнал на выходе элемента ИЛИ 60 принимает нулевое 15 значение. Этот сигнал поступает на вход 83 блока 56 счетчиков и далее на второй вход элемента И 108 и через инвертор 110 на второй вход элемента
И 109. Элемент И 108 запирается, и 20 первый счетчик 107 в дальнейшем находится в нулевом состоянии. Элемент
И 109 отпирается для прохождения тактовых сигналов с входа 86 блока 56 счетчиков на счетный вход второго 25 счетчика 107, где в дальнейшем происходит отсчет dT. Одновременно нулевой сигнал с выхода элемента ИЛИ 60 поступает на первый адресный вход
84 блока 57 микропрограммного управ- 30 ления, на выходах которого устанавливаются управляющие сигналы в соответствии со строками 5 или 6 табл.4, т.е ° он продолжает оставаться в состоянии ожидания совпадения адресов.
Если при обработке процессором 1 линейного участка выполняется условие А = А (А = А ), блок 57 микропрограммного управления устанавливает на выходах значения сигналов, ука- 4р занные в строке 1 (2) табл.4. Очередным тактовым сигналом в регистр 104 записывается информационное слово
0110 (0010), на адресных входах блока 105 постоянной памяти появляется 45 адрес 0010, на выходах блока 57 микропрограммного управления устанавливаются управляющие сигналы в соответствии со строкой 3 табл.4, Информационное слово 10 поступает с выхода 81 на вход младших разрядов адреса блока 58 постоянной памяти.
Единичный (нулевой) сигнал с выхода
80 блока 57 микропрограммного управления поступает на управляющий вход
82 коммутатора 72 и подключает к выходам первую 89 или вторую 90 группу входов. Информационное слово В о о 1
= В В из ячейки 58 постоянной памя81 36 ти с адресом В, + 3 поступает на вхо- ды коммутатора 72, и с его выхода на информационные входы регистра 53 поступает информационное слово В,(ag).
Таким образом, происходит выбор массива информации для контроля следующего линейного участка Ь,(L ). Единичный сигнал с выхода 79 блока 57 микропрограммного управления поступает на первый вход элемента И 67 и открывает его для прохождения сигнала с выхода элемента ИЛИ 62 на вход сброса триггера 63. Если к моменту перехода на следующий линейный участок программы выполняется условие
Т0 = О, с выхода элемента ИЛИ 62 на вход сброса триггера 63 поступает нулевой сигнал и его состояние не изменяется. Если условие Тд = О не выполняется, единичный сигнал с выхода элемента ИЛИ 62 сбрасывает триггер 63 в нулевое состояние и íà его инверсном выходе устанавливается сиг" нал логической "1". Сигнал запроса прерывания с выхода 21 устройства
2 для контроля выполнения программы поступает на вход прерывания процессора 1. Запрос прерывания в устройстве 2 для контроля выполнения про. грамм микроЭВМ снимается сигналом
"Подтверждение прерывания процессора 1 в аналогичном порядке.
Следующим тактовым импульсом производится загрузка регистра 104, на адресных входах блока 105 постоянной памяти устанавливается информационное слово 0011 и на выходах блока 57 микропрограммного управления устанавливаются управляющие сигналы в соответствии со строкой 4 табл.4. В результате воздействия этих сигналов на элементы устройства 2 для контроля выполнения программ происходит загрузка характеристического множества Т",.(Т ° ) в блок 56 счетчиков,после чего устройство подготовлено к контролю выполнения линейного участка L,(Ь ) программы микроЭВМ.
Если при поступлении Т тактовых импульсов не выполняется условие
At = A (A t = А ), т.е. в результате сбоя или неисправности процессор 1 перешел к выполнению команды с произвольным адресом, минуя адрес А;(А ), сигнал на выходе схемы ИЛИ-НЕ 59 прйнимает единичное значение. Этот сигнал поступает на синхровход триггера 64 и под воздействием нулевого сигнала на информационный вход это81 38
37 13159 го триггера, поступающего с выхода элемента ИЛИ 60, он переходит в нулевое состояние. Сигнал с выхода триггера 64 поступает на вход элемента И бб, а с его выхода — на синхровход триггера 63. Нулевой сигнал, поступающий на информационный вход триггера 63 с выхода 77 блока 57 микропрограммного управления (табл.4,строки 5 и 6), запоминается в триггере
63, на его инверсном выходе устанавливается сигнал логической "i и с выхода элемента И-НЕ 69 на вход прерывания процессора 1 поступает сигнал запроса прерывания. Процессор 1 15 обрабатывает этот запрос в рассмотренном ранее порядке.
Снятие сигнала запрета прерывания в устройстве 2 для контроля выполнения программ микроЭВМ происходит либо 20 по сигналу "Общий сброс" по цепи
17-61-63(65), либо по сигналу записи информации, поступающему в такте загрузки блока 56 счетчиков (табл.4, строки 4, 8, .12 и 16) с выхода 76 25 блока 57 микропрограммного управления по цепи 76-70-68-61-63(65) на установочные входы триггера 63 и 65, При поступлении в процессор 1 сигнала прерывания от внешнего устро- 3р йства управление с линейного участка передается программе прерывания. Устройство 2 для контроля выполнения программ микроЭВМ обнаруживает выход из рабочей программы по прерыванию по истечении Т тактов с момента начала данного линейного участка и ус,:танавливает триггер 63 в нулевое состояние. В момент передачи управления на программу обработки внешнего прерывания процессор 1 выдает сигнал Подтверждение прерывания", который запрещает выдачу сигнала прерывания из устройства 2 для контроля выполнения программ. После возвращения процессора 1 из программы обработки прерывания на незавершенный линейный участок он достигает одного из ожидаемых адресов и происходит самосинхронизация устройства 2 для кон в 50 троля и процессора 1 путем загрузки служебной информации о следующем линейном участке в блок 56 счетчиков и регистр 53 и установки триггеров
63 и 65 в единичное состояние. 55
Работа устройства 2 по второму варианту (фиг.3) поясняется временными диаграммами (фиг.16, а, б, в), отображающими процесс загрузки (моменты 145 и 146 времени) и постепенного уменьшения содержимого счетчиков Т„(эюра 147), дТ (эпюра 148) и трех счетчиков То (эпюры 149-151) .
В момент 152 времени (фиг.16,a) содержимое счетчика T„ становится равным нулю (эпюра 147) и на информационном входе триггера 64 устанавливается нулевое значение сигнала (эпюра 153). С этого момента времени происходит уменьшение .содержимого счетчика дТ. В момент 154 времени происходит совпадение текущего адреса программы А и одного из ожидаемых адресов А (или А ). Импульс 155 совпа-! 1 дения формируется на синхронизирующем входе триггера 63 в момент перехода микроЭВМ на начало следующего линейного участка. Содержимое счетчика Т при этом остается ненулевым и сигнал на синхровходе триггера 64 сохраняет нулевое значение (эпюра 156).
Если в результате воздействия помехи (условно представлена импульсом
157), приводящей к выполнению ошибочного перехода в пределах линейного участка программы, сравнение текущего адреса А и одного из ожидаемых адресов А; (или А ) произойдет не в запланированный момент 158 времени, а в момент 159 (до обнуления счетчика Т„, момент 160 времени), одновременно с появлением импульса 155 сравнения сигнал на выходе 21 устройства 2 (эпюра 161) принимает нулевое значение.
Если в результате воздействия помехи 157, приводящей к выполнению ошибочного перехода к другому линейному участку программы (фиг.16, б), сравнение текущего адреса А и одного из ожидаемых адресов A (èëè А ) не произойдет и импульс 155 не появится на выходе схемы 55 сравнения до момента 162 обнуления счетчика дТ (эпюра 148), сигнал на синхровходе триггера 64 принимает единичное значение (эпюра 156), состояния триггеров 64 и 63 изменяются и сигнал на выходе 21 устройства 2 принимает нулевое значение (эпюра 161).
Если в результате воздействия помехи 157 в ожидаемый момент времени
154 (фиг.18) на одной из управляющих линий интерфейса число зарегистрированных импульсов оказалось меньше, чем "предсказанное" при предварительном анализе рабочей программы (эпюра
151 не касается горизонтальной оси
39 13 в момент 154 времени), импульс 157 сравнения поступает на синхровход триггера 63, изменение состояния которого приводит к появлению нулевого сигнала (эпюра 16 — "запрос прерывания") на выходе 21 устройства 2.
Эпюры на фиг.16-18 свидетельствуют о том, что время между возникновением сбоя и его обнаружением в предлагаемом устройстве не превышает длительности прохождения линейного участка программы, что позволяет организовать своевременную реакцию устройства управления в случае аварийной ситуации.
Использование изобретения позволяет контролировать шины управления микроЭВМ или программируемого конт. роллера, а также информационно-адресные шины, обеспечивать быструю реакцию на возникшую ошибку (сбой или отказ; время реакции не превышает времени прохождения машиной линейного участка программы), предотвращаТь воэможность аварии управляемого объекта путем устранения бесконтрольного "блуждания" микроЭВМ по программе в результате ошибки (сбоя или отказа).
15981
1. Устройство для контроля выполнения программ, .содержащее блок выделения максимального и минимального количества импульсов, триггер, блок регистров, схему сравнения, элемент И, элемент ИЛИ и блок микропрограммного управления, причем информационный выход блока регистров соединен с первым информационным входом схемы сравнения, выход равенства которой соединен с первым адресным входом блока микропрограммного управления, вход записи устройства соединен с первым входом записи блока ре истров, о т л и ч а ю щ е е с я тем, что, с целью повышения достоверности контроля за ходом выполнения программы, в устройство введены регистр и блок постоянной памяти, причем информационный вход устройства соединен с информационным входом блока регистров вход начальной установки устройства соединен с входами начальной установки регистра, блока постоянной памяти, с входом обращения блока микропрограммного управления, с входом начальной установки блока. выделения40
50 группы выходов первого и второго регистров соединены соответственно с
55 Формула изобретения
f0
25 максимального и минимального количества импульсов и входом установки в "О" триггера, инверсный выход которого является выходом ошибки устройства, синхровход устройства соединен с входом синхронизации триггера, информационный вход которого соединен с шиной нулевого потенциала, выход блока постоянной памяти соединен с информационными входами регистра, блока выделения максимального и минимального количества импульсов и вторым информационным входом схемы сравнения, группы выходов минимального и максимального 1количества тактовых импульсов блока выделения максимального и минимального количества импульсов соединены соответственно с группами входов элемента ИЛИ и элемента И, выходы которых соединены соответственно с вторым адресным входом блока микропрограммного управления и с единичным входом триггера, выход элемента ИЛИ, соединен с входом запрета блока выделения максимального и минимального количестваимпульсов, тактовый вход устройства соединен с тактовыми входами блока микропрограммного управления и блока выделения максимального и минимального количестваимпульсов, выход регистра соединен.с входом старших разрядов адреса блока постоянной памяти, первый, второй,третий и четвертый выходы блока микропрограммного управления соединены соответственно с первым и вторым входами записи блока выделения максимального и минимального количестваимпульсов, входом записи регистра и входом младших разрядов адреса блока постоянной памяти, второй вход записи блока регистров соединен с младшим разрядом информационного выхода блока микропрограммного управления.
2. Устройство для .контроля выполнения программ, содержащее блок,. счетчиков, три триггера, первый элемент И, первый элемент ИЛИ, элемент
И-НЕ, первый формирователь импульсов, два регистра, блок микропрограммного управления и схему сравнения, причем первыми и вторыми группами информационных входов схемы сравнения, вход записи устройства соединен с входом ,записи первого регистра, информационный вход устройства соединен с информационным входом первого регист1315
981 42 дом блока микропрограммного управлени>. и через второй формирователь импульсов с вторым входом первого элемента И, тактовый вход устройства соединен с тактовыми входами блока счетчиков и блока микропрограммного управления, вход начальной установки устройства соединен с входом обращения блока микропрограммного управления и с входом начальной установки третьего регистра, выход которого соединен с адресным входом старших разрядов блока постоянной памяти, группа выходов которого соединена с группой информационных входов блока счетчиков, группой информационных входов второго регистра, первой и второй группами информационных входов коммутатора, выход которого соединен с информационным входом третьего регистра, четвертый выход блока микропрограммного управления соединен с входом записи третьего регистра, инверсный выход третьего триггера и выход первого формирователя импульсов соединены соответственно с первым и вторым входами третьего элемента И, выход которого соединен с вторым входом первого элемента ИЛИ, выход которого соединен с единичным входом третьего триггера, вход признака перехода устройства соединен с нулевым входом третьего триггера, группы выходов минимального количества тактовых импульсов, группа выходов разности максимального и минимального количества тактовых импульсов и группа информационных выходов блока счетчиков соединены соответственно с группами входов элемента ИЛИ-НЕ, второго и третьего элементов ИЛИ, выход элемента ИЛИ-НЕ соединен с тактовым входом первого триггера, выход второго элемента И соединен с нуле:вым входом второго триггера.
Таблица 1 ра, группа входов задания режима уст. ройства соединена с группой счетных входов блока счетчиков, вход начальной установки устройства соединен с входом установки в "О" первого триггера и с первым входом первого элемента ИЛИ, выход первого триггера соединен с первым входом первого элемента И, выход которого соединен с тактовым входом (второго) тригге- 1О ра, выход первого формирователя импульсов соединен с входом записи блока счетчиков, выход элемента И-НЕ является выходом ошибки устройства,инверсный и прямой выходы второго и 15 третьего триггеров соединены соответственно с первым и вторым входами элемента И-HE выход первого элемен-. та.ИЛИ соединен с нулевым входом второго триггера, о т л и ч а ю щ e — 20 е с я тем, что, с целью повышения достоверности контроля за ходом выполнения программы, в устройство введены третий регистр, блок постоянной памяти, коммутатор, второй формирова- 25 тель импульсов, элемент ИЛИ-НЕ, второй и третий элементы ИЛИ, второй и третий элементы И, причем первый, второй, третий, четвертый, пятый и шестой выходы блока микропрограммно- Зр го управления соединены соответственно с входом первого формирователя импульсов, с информационным входом второго триггера, с входом записи второго регистра, с первым входом второго элемента И, с управляющим входом коммутатораи с входом младших . разрядов адреса блока постоянной памяти, выход второго элемента ИЛИ. соединен с информационным входом перво 40
ro триггера, с входом запрета счета блока счетчиков и с первым адресным входом блока микропрограммного управления, выход равенства схемы сравнения соединен с вторым адресным вхоДанные
Линейный участок
Линейны участок
Адрес
Данные ес
А м
Ап м
Ащ
Апм
А м
43
1315981
Аье
А с
L00
Во
Ю вс
Во. вг
ЬТ о
Вф
А1м
° ° °
1с
° ° °
A>í
° ° °
В„ в
Т„„
5Т
° ° °
° ° °
О в
А с
АЕм
Афс
Т„, ЬТ,.
А с о
1 о
В о вь
Продолжение табл.I
1315981
46
Таблица 2
Адрес
1 1
Номер
0 0 1
0 0 0
1 0 0
0 1 1
0 0
1 0
1 0
1 0
1, 0
1 0
1 0
1 1 0
1 1 1
0 0 0
0 1 0
0 1
0 0
0 0 0
1 I 0
1 1 0
1 1 1
0 0 0
14
1 1
1 1
0 0
0 0
0 0
0 0
1Ь
0 0
1 0 0
0 1 1
1 0 1
1 1 0
19
0 0
21
0 0
0 0
0 0
0 0
0 1
0 1
22
1 0
1 1
0 0 0
0 1 0
0 1 0
25
5 4 3 2
1 0 0 0
0 .1
1 0
1 0
1 1
1 1
0 0
0 0
0 1
1 0
1 0
1 1
0 0
0 0
0 1
1 0
1 0
1 1
1 1
0 0
0 0
Данные
I 1 I t ) 1 6 5 4 3 2 1
1 1
0 1
1 1
0 1
0 1
0 0
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
1 1
0 1
1 1
0 1
0 1
0 0
0 1
0 1
0 1
1315981
27
0 0
0 0
0 1
0 1
0 1
0
0 1
29
1 0
1. 0
1 1
1 0
30
1 0
1, 1
0 0
0
Адрес
В
А, А„
Во
Т о
В0
А;
L, В1
А
A) В;
ВО
L °
А„.0 1
0 1
0 1
0 1
0 0
0 1
Таблица 3
Данные Линейный участок
48
Продолжение табл 2
Т»
1 в.
В
ВО
Во т
Таблица 4
Номер
Адрес
I I
О 1
1 О
1 1
О О
О 1
1 1 0
О 1 1
О О. О
1 О 1
1 О О
О
Х
1 О
1 1
0 О
О 1
О О О
1 1 О
1 1 О
О О 0
Х
1 О
О
О О
12
4 3 2 1
О О О О
О 0
0 О
О О
О 1
О 1
О 1
О 1
1 О
1 О
1 О
1315981 Продолжение табл.3
1 I I l l
7 6 5 4 3 2 1
О 1 1 1 1 0
О 1
О 1
1 1
О О .О О
О 1
1 1
О О
О О
О 0
1 1
51
1315981
Данные
0 1 Х 1 0 1
1 0 0
0 1 1
0 0 0
1 1
Фиа/
О, 0
0 1
0 1
0 0
1 1
52
Продолжение табл.4
1315981 ! ! !
Раг. б
1315981
Фие. 7
1315981
У
1
Юа8.Q
1315981
127
Фиг.f7
L г
®aTj; Tyg) лк
Фа@/4
1315981
0
О
1315981
1315981
Составитель И;Сигалов
Техред M.Ходанич Корректор К. Шароши
Редактор Н.Лазаренко
Заказ 2364/5 1
Тираж 672 Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб., д.4/5
Производственно-полиграфическое предприятие, г.Ужгород, ул.Проектная,4

































