Устройство для контроля выполнения программ (его варианты)

Иллюстрации

Показать все

Реферат

 

Изобретение относится к цифровой вычислительной технике и может быть использовано для контроля выполнения программ в цифровых вычист литвльных машинах. Цель изобретенияповьшение достоверности контроля за в лтг .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 с