Устройство для контроля выполнения программ (его варианты)
Похожие патенты | МПК / Метки | Текст | Заявка | Код ссылки
Номер патента: 1315981
Авторы: Антосик, Дербунович, Ковалев, Мызь, Шандрин
Текст
.фИЕ ИЗОБРЕТЕНИЯ; "- У СВИДЕТЕЛЬСТВУ ОПИС АВТОРСКОМ ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТ(46) 07.06.87. Бюл. В 21 (71) Харьковский политехнический институт им,В.И.Ленина и Харьковское опытно-конструкторское бюро "Тепло- автомат"(56) Авторское свидетельство СССР В 619919, кл. С 06 Р 11/00, 1976.Авторское свидетельство СССРВ 1019451, кл. С 06 Р 11/00, 1983.(54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ВЫПОЛНЕНИЯ ПРОГРАММ (ЕГО ВАРИАНТЫ) (57) Изобретение относится к цифровой вычислительной технике и может быть использовано для контроля выполнения программ в цифровых вычис-, лительных машинах. Цель изобретения - повышение достоверности контроля заР ш чходом выполнения программ. Устройство (1 вариант) содержит блок 23 регистров, схему 24 сравнения, блок 25 выделения максимального и минимального количеств импульсов, блок 26 микропрограммного управления, регистр 27, блок 28 постоянной памяти, элемент И 29, элемент ИЛИ 30, триггер 31. Устройство (Е 1 вариант) содержит регистры, схему сравнения, блок счетчиков, блок микропрограммного управления, блок постоянной памяти, элемент И-НЕ, элементы ИЛИ, триггеры, элементы И, элемент И-НЕ, формирователи импульсов, коммутатор. Использование изобретения позволяет контролировать шины управления мик- роЭВМ или программируемого контроллера, а также инФормационно-адресные шины, обеспечивать быструю реакцию на возникшую ошибку, предотвращать возможность аварии управля, емого объекта. 2 с.п. Ф-лы, 18 ил 4 табл.мяти устанавливается высокоимпедансное состояние. Это состояние на выходных линиях блока 98 воспринимается на входах связанных с ними элементов как сигнал логической "1".На информационном входе 15 устройства 2 процессор 1 устанавливает начальный адрес рабочей программы, При наличии сигнала сопровождения по цепи 16-34 на сихровходы регистров 95 10 и 96 младший Аи старший А, части текущего адреса запоминаются соответственно в этих регистрах. Высокоимпедансное состояние управляющего входа 51 блока 23 регистров восприни мается на прямом входе обращения регистра 96 как сигнал логической "1" (фиг.4), и старшая часть А 0 началь"ного адреса программы поступает с информационного выхода 32 блока 23 ре гистров на первый вход схемы 24 сравнения.Сигнал "Общий сброс" поступает с шины 14 на вход 17 начальной установки устройства 2 и.далее на вход на чальной установки блока 28 постоянной памяти, и на его выходах устанавливается высокоимпедансное состояние, кокоторое воспринимается на втором входе схемы 24 сравнения как число "все ЗО единицы . При этом сигнал на выходе схемы 24 сравнения принимает значение логической "1", так как коды на входах схемы 24 сравнения не совпадают. Этот сигнал поступает на вход 33 блока 26 микропрограммного управления и далее на четвертый вход регистра 97. Запись в регистр 97 исходного состояния (1111) производится тактовым сигналом процессора 1 по цепи 22-43-26 40 (фиг.2) и далее на синхровход регистра 97 (фиг.5), в результате чего сигналы на первом, втором, третьем и четвертом выходах этого регистра принимают единичное значение и поступа ют соответственно на первый, второй, третий и четвертый адресные входы блока 98 постоянной памяти. Одновременно высокоимпедансное состояние первого, второго и третьего выходов 50 блока 98 постоянной памяти (выход 48 блока 26 микропрограммного управления) воспринимается на входе младших разрядов адреса блока 28 постоянной памяти как сигналы логической 55 "1". Сигнал "Общий сброс" поступает с входа 17 начальной установки устройства 2 на вход обращения блока 28 постоянной памяти и запрещает поступ.пение содержимого ячейки блока 28 постоянной памяти с адресом 00- 0111 (В, + 7) (табл, 1) на его выход до завершения сигнала "Общий сброс".Кроме того, сигнал "Общий сброс" поступает с входа 17 начальной установки на вход 37 начальной установки блока 25 выделения максималь" ного и минимального количеств импульсов и далее на входы установки в "0" первого 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 автоматически илипо инициативе оператора переходит к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 сравнения принимает значение логического "0". Этот сигнал поступает на вход 33 блока 26 микропрограммного управления и далее на чет" вертый информационный вход регистра 91, на первый, второй и третий информационные входы которого поступают сигналы 000 с первого, второго и третьего выходов блока 98 постоянной памяти (табл.2, строка 32). Тактовый сигнал, поступающий по цепи 22-43 на тактовый вход блока 26 микропрограммного управления и далее на синхровход регистра 97, производит запись информационного слова 0000 в этот ре 5981 20 3035 45 лы "1", "0", "0" с первого, второго 55 5 Ю 15 20 25 гистр. Таким образом, на первом, вто" ром, третьем и четвертом адресных входах блока 98 постоянной памяти устанавливаются нулевые значения сигналов, и,так как на пятом адресномвходе присутствует нулевой сигнал, на выходах блока 97 постоянной памяти устанавливаются значения сигналов, соответствующие строке 17 табл.2 (содержимое ячейки памяти с адресом 00000).Единичный сигнал с первого и нулевые с второго и третьего выходов блока 97 постоянной памяти поступают на выход 48 блока 26 микропрограммного управления и далее на вход младших разрядов адреса блока 28 постоянной памяти, в результате чего на адресных шинах устанавливается адрес 00-001 (В 0 + 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 5981 10 15 20 25 30 35 40 45 50 55 ют на вход младших разрядов адреса блока 28 постоянной памяти - (адрес 00-100 (Во + 4), с выходов которого на информационный вход регистра 27 поступает информационное слоово В, - адрес в блоке 28 постоянной памяти массива служебной информации . для первого линейного участка рабочей программы (табл.1). Одновременно с шестого выхода блока 98 постоянной памяти (выхода 47 блока 26 микропрограммного управления) на вход записи регистра 27 поступает единичный сигнал, производящий запись информационного слова В, в этот реогистр. Адрес В с выходов регистра12 поступает на вход старших разрядов адреса блока 28 постоянной памяти.Кроме того, единичный сигнал с первого и нулевые с второго и третьего выходов блока 98 постоянной памяти поступают соответственно на первый, второй и третий информационные входы регистра 97, Очередной тактовый сигнал, поступающий на синхровход, производит запись информационного слова 0100 в этот регистр, и на адресных входах блока 98 постоянной памяти устанавливается адрес 00100, в результате чего на выходах этого блока устанавливаются значения сигналов, соответствующие строке 21 табл.2. Нулевой сигнал с первого и единичный с второго и третьего выходов блока 98 постоянной памяти поступают на .вход младших разрядов адреса блока 28 постоянной памяти - адрес (В+ 6), с выхода которого на информационный вход 38 блока 25 выделения минимального и максимального количеств импульсов поступает код числа Т импульсов первого линейного участка (табл.1), Одновременно с четвертого выхода блока 98 постоянной памяти по цепи 45- 49 на первый вход записи счетчика 99 блока 25 выделения минимального и максимального количеств импульсов поступает нулевой сигнал, и код Т запоминается в счетчике 99, с выходов которого этот код поступает на группу выходов 39 блока 25 вьделения минимального и максимального количеств импульсов и далее на группу входов элемента ИЛИ 30. Сигнал на вы. ходе элемента ИЛИ 30 принимает единичное значение, если Т,. = 0 и сохраняет нулевое хначение в противном 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 (фиг.6),Единичные значения сигналов с первого, второго и третьего выходов блока 98 постоянной памяти поступают на вход младших разрядов адреса блока 28 постоянной памяти - адрес (В + 7), с выходов тороо на информационный вход 38 блока 25 вьделения минимального и максимального количеств импульсов поступает в дополнительном коде число дТ импульсов первого линейного участка(табл.1), Одновременно с пятого выхода блока 98 постоянной памяти поцепи 46-50 на второй вход записисчетчика 100 блока 25 вьделения минимального и максимального количествимпульсов поступает нулевой сигнал,и код дТ запоминается в счетчике100. Для правильной работы устройства 2 для контроля выполнения программ (фиг.2) число импульсов для каж23 13 дого линейного участка выбирается из условия 1 ( дТ ( 2" - 1, где а - разрядность счетчика 100. Сигнал на выходе элемента И 29 после установки на выходе 40 блока 25 выделения минимального и максимального количеств импульсов дополнительного кода числа ь Т, импульсов сохраняется нулевое значение, и состояние триггера 31 не изменяется.После загрузки в блок 25 выделения минимального и максимального количеств импульсов числа 4 Т устройства 2 начинает сравнение текущих адресов программы А с вектором перехода линейного участка. Сравнение выполняется следующим образом. При поступлении очередного тактового импульса на синхровход регистра 97 блока 26 микропрограммного управления в регистре запоминается информационное слово Х 111, и на адресных входах блока 98 постоянной памяти устанавливается адрес ХХ 111 одной из четырех его ячеек (табл.2, строки 8, 16, 24, 32) в зависимости от состояний выходов схемы 24 сравнения и элемента ИЛИ 30При этом нулевые значения сигналов с выхода 48 блока 26 микропрограммного управления поступаютна вход младших разрядов адреса блока 28 постоянной памяти (адрес В), с выходов которого на второй вход схемы 24 сравнения поступает младшая часть Апервого ожидаемого адреса1 МЧлинейного участка Ь , Одновременно единичный сигнал с первого выхода блока 98 постоянной памяти блока 26микропрограммного управления поступает на управляющий вход 51 блокарегистров и далее на прямой вход обращения регистра 96, с выходов которого на выход 32 блока регистров идалее на первый вход схемы 24 сравнения поступает младшая часть Атекущего адреса, записанная в этот регистр очередным управляющим сигналом,поступающим с .входа 16 записи на вход34 записи блока 23 регистров,Если А = А; , сигнал на выходесхемы 24 сравнения принимает нулевоезначение. Этот сигнал поступает навход 33 блока 26 микропрограммногоуправления и далее на четвертый входрегистра 97. Очередным тактовым сигналом в регистр 97 заносится информационное слово ОООО, и на адресныхвходах блока 98 постоянной памятиустанавливается адрес одной из двух 15981 24его ячеек ХОООО (табл.2, строки 1 и17) в зависимости от состояния выхода элемента ИЛИ 30. Если Т, = О, наадресных входах блока 98 постоянной 5памяти - адрес 10000 и на его выходах устанавливаются значения сигналов в соответствии со строкой 1табл,2. В дальнейшем состояния выходов блока 26 микропрограммного управ ления не изменяются до выполнения условия Т= 0 (счетчик 99 блока 25выделения минимального и максимального количеств импульсов установитсяв 0" по приходу на его счетный вход 15 в режиме вычитания Т тактовых импульсов), При Т = 0 с выхода элемен.та ИЛИ 30 на вход 41 блока 26 микропрограммного управления и далее напятый адресный вход блока 98 постоянной памяти поступает нулевой сигнал,и на выходах этого блока устанавливаются значения сигналов в соответствии со строкой 17 табл,2. Одновременно нулевой сигнал с выхода эле мента ИЛИ 30 поступает на вход 42запрета счета блока 25 выделения минимального и максимального количествимпульсов и устанавливает этот блокв режим счета лТ (открывает элемент 30 И 103 для прохождения тактовых сигналов на счетный вход в режиме суммирования счетчика 100 и закрывает элемент И 101). После выполнения условий А= А; и Т, = 0 с выхода 48блока 26 микропрограммного управления на вход младших разрядов адресаблока 28 постоянной памяти поступаетинформационное слово 001 и значениеА 1 старшей части первого ожидаемо го адреса вектора перехода линейного участка 1. из ячейки блока 28 постоянной памяти с адресом В + 1 поступает на второй вход схемй 24 сравнения, на первый вход которой анало гичным путем поступает значение А сстаршей части текущего адреса. Очередной тактовый сигнал на синхровходе 43 регистра 97 записывает в этотрегистр информационное слово 0001, 50 на адресных входах блока 98 постоянной памяти при Ас = А;с устанавливается адрес 00001 и на выходах этого блока устанавливаются значениясигналов в соответствии со строкой 55 18 табл.2, На этом цикл контроля линейного участка 1. завершается и проризводится загрузка В в регистр 27для контроля линейного участка25 13159Если А = А; или А = А;, аналогичным путем всоответствии с табл.2 производится проверка условий А = А 1 м и А с -" А и при выполнений этих условий производится загрузка В в регистр 27 для контроля линейного участка 1.Таким образом, при правильном выполнении программы микроЭВМ в начале каждого очередного линейного уча стка производится загрузка блока 25 вьщеления минимального и максимального количеств импульсов соответствующими значениями Т и а Т и счетчик 100 блока 25 вьщеления минимального 15 и максимального количеств импульсов никогда не установится в состояние "Все единицы". Если при поступлении Т тактовых импульсов не выполняются условия Ам 1 м и А = А; (А = 20 = Аи Ас = А ), т.е. в результате сбоя или неисправности процессор 1 перешел к выполнению команды с произвольным адресом, минуя адрес А;(А ), сигнал на выходе элемента И 29 принимает единичное значение. Этот сигнал поступает на вход установки в "1" триггера 31, и он переходит в единичное состояние. Нулевой сигнал с инверсного выхода этого триггера 30 поступает на выход 21 устройства 2 контроля выполнения программ в качестве сигнала Запрос прерывания После обработки прерывания в микроЭВМ устройство 2 для контроля при водится в исходное состояние описанным путем и микроЭВМ начинает выполнение рабочей программы с нулевого адреса.Работа устройства 2 (фиг.2) пояс няется временной диаграммой (фиг.15), отображающей процесс загрузки (момент 134 времени) и постепенного уменьшения содержимого счетчиков Т 1 (энюра 135) и дТ (эпюра 136) и фор- ф 5 мирования сигналов сравнения 137 и прерывания 138 в случае возникновения сбоя 139.В момент 140 времени происходит совпадение текущего адреса программы А и одного из ожидаемых адресов А 1 (или А,)Импульсы совпадения 137 формируются на входе 33 блока 26 мик 1ропрограммного управления в моменты перехода микроЭВМ на начало следующего линейного участка. Содержимое счетчика Т при этом остается ненулевым и сигнал на входе установки 81 26в "1" триггера 31 сохраняет нулевое значение. Если в результате возникновения помехи (условно представлена импульсом 139), приводящей к выполнению ошибочного перехода в преде" лах линейного участка программы (или к другому линейному участку программы), сравнение текущего адреса Аи одного из ожидаемых адресов А, или А произойдет не в запланирован"1ный момент 141 времени, а в момент 142 (не показан) до обнуления счетчика Т, т.е. в момент 143 времени (не показан) после переполнения счет" чика аТ, в момент времени 144 переполнения счетчика 100 импульсов Т сигнал на выходе 21 устройства 2 (эпюра 138) принимает нулевое значение.Эпюры на фиг.15 свидетельствуют о том, что время между возникновением сбоя и его обнаружением в предлагаемом устройстве не превышает длительности прохождения линейного участка программы, что позволяет организовать своевременную реакцию устройства управления в случае аварийной ситуации.Устройство 2 для контроля микроЭВМ по второму варианту (фиг.З) работает. следующим образом.МикроЭВМ приводится в исходное состояние путем подачи логической "1" в линию "Общий сброс", входящую в состав шин 10 и 14.Сигнал на этой линии формируется автоматически после включения питания или, например, появляется в резулвтате нажатия соответствующей кнопки на пульте управления.Сигнал "Общий сброс" приводит в исходное состояние процессор 1 и управляющую часть памяти 5 и 6, а также подготавливает выдачу сигнала прерывания из устройства 2 в процессор 1 по линии 2 1 при обнаружении сбоя и настраивает устройство 2 так, что первому адресу первого линейного участка программы соответствует адрес ячейки блока 58 постоянной памяти, хранящей характеристическое множество этого участка.Подготовка выдачи сигнала прерывания производится следующим образом.Сигнал "Общий сброс" поступает с шины 14 (фиг.З) на вход 17 начальной установки устройства 2, и далее на вход элемента ИЛИ 61, а с его вы-.27 13159хода - на входы установки в единичноесостояние триггеров 63 и 65. Единичный сигнал с прямого выхода триггера65 отпирает элемент И-НЕ 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 (фиг.З) и далее на сихровход регистра 104 (фиг.7), в результате чего сигналы на первом и втором выходах этогорегистра принимают единичное значение. Эти сигналы поступают по линии 81 на вход младших разрядов адреса блока 58 постоянной памяти. Содержимое ячейки блока 58 постоянной памятис адресом 00-001 (В + 2) (табл.З) поступает на информационный вход 88 блока 56 счетчиков. Сигнал с шестого выхода блока 105 постоянной памяти(фиг,7) поступает на второй вход элемента И 106 и открывает его для прохождения сигнала по цепи 22-87-57(фиг.З), 87-106-76 (фиг.7),76-70-75 55 (фиг.З) на вход 75 записи блока 56счетчиков и далее на входы записи счетчиков 107 (фиг.8),что вызывает запись характеристического множест 81 28ва Т" с информационного входа 88ов счетчики 107. Значения Т = О, АТ 0 1 0 и Т = О поступают с выходов первого, второго и последующих счетчиков 107 соответственно на выходы 93, 92 и 94 и далее на группы входов элементов ИЛИ 60, ИЛИ-НЕ 59 и ИЛИ 62. На выходе элемента ИЛИ 60 устанавливается нулевое значение сигнала, который присутствует на информационном входе триггера 64,входе запрета счетчика 83 блока 56 счетчиков и первом адресном входе 84 блока 57 микропрограммного управления. На выходе элемента ИЛИ-НЕ 59 устанавливается нулевое значение сигнала, который поступает на счетный вход триггера 64. На выходе элемента ИЛИ 62 устанавливается нулевое значение сигнала, который присутствует на втором входе элемента И 67 и запирает его для прохождения сигнала сброса триггера 63 с седьмого выхода 79 блока 105 постоянной памяти по цепи 9-67-63 (фиг,З). После окончания сигнала "Общий сброс" процессор 1 автоматически или по инициативе оператора переходит к выполнению рабочей программы, записаной в постоянной памяти 6 микроЭВМ.На информационном входе 15 устройства 2 процессор 1 устанавливает начальный адрес рабочей программы.При наличии сигнала сопровождения этот адрес запоминается в регистре 52 и с его выхода поступает на первый вход схемы 55 сравнения. При включении питания регистр 54 устанавливается в произвольное состояние и с его выхода на первый вход схемы 55 сравнения поступает произвольный "ожидаемый" адрес. На выходе схемы 55 сравнения устанавливается единичный сигнал в случае, если состояние реги,стра 54 совпадает с начальным адресом и нулевой - в противном случае. Это соответствует неопределенному значению сигнала на втором адресном входе 85 блока 57 микропрограммного управления и на третьем адресном входе блока 105 постоянной памяти. Таким образом, в соответствии с начальной установкой на адресных входах блока 105 постоянной памяти формируется адрес ОХ 11. Снятие сигнала "Общий сброс" соответствует обращению к блоку 105 постоянной памяти. Сигналы на его выходах принимают значения в соответствии со строками 4 или 8 табл,4.5 10 15 2.0 25 30 40 45 50 55 Единичным сигналом с шестого выхода блока 105 пбстоянной памяти отпирается элемент И 106 и тактовый сигнал поступает по цепи 22-87-106- -76-70-75 на вход 39 записи информации блока 56 счетчиков. Происходит повторная запись характеристического множества Т о в блок 56 счетчиков.ФПервый тактовый сигнал по цепи 22-83-104 производит запись в регистр 104 информационного слова ОХОО. На адресных входах блока 105 постоянной памяти формируется адрес ОХОО, и сигналы на его выходах принимают значения в соответствии со строками 1 или 5 табл.4.Информационное слово 00 с выхода 81 блока 57 микропрограммного управления поступает на вход младших разрядов адреса блока 58 постоянной памяти, и на его выходах устанавливается содержимое первой (В ) ячейки А. Оиждаемый адрес А, поступает на информационные входы регистра 54 и запоминается в нем при поступлении единичного сигнала с третьего выхода 78 блока 105 постоянной памяти на вход записи этого регистра. На выходе схемы 55 сравнения устанавливается нулевое значение сигнала о совпадении текущего адреса А и ожидаемого А. Этот сигнал поступает по цепи 55-85 на второй адресный вход 85 блока 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, и в регистре запоминается информационное слово В - адрес массива служебной иноформации для первого линейного участка 1., программ.При поступлении третьего тактово" го сигнала в регистре 104 запоминается информационное слово ОХ 11, на адресных входах блока 105 постоянной памяти блока 57 микропрограммного управления устанавливается адрес 0011 и сигналы на его выходах принимают значения, указанные в строке 4табл,4, в результате чего содержимое+Тячейки ВО + 3 блока 58 постояннойпамяти (табл.3) загружается в блок56 счетчиков.Код элементов Т и Т характеристического множества выбивается таким, чтобы к моменту выбора из памяти 6 микроЭВМ команды с адресом А 1 или А содержимое первого, третьего5и последующих счетчиков 107, работающих в режиме вычитания (подсчета сигналов на тактовом входе 22 и линиях 20 шины 14), было равно нулю. Код ЬТ выбирается из соотношения ЬТТ, где Т - суммарное количество тактов на линейном участке, в течение которых процессор 1 находится в режиме ожидания при работе с внешними устройствами. В качестве импульсов на интерфейсных управляющих линиях могут быть использованы сигналы управления записью в запоминающее устройство (ЗУ), чтение из ЗУ, вводом информации с внешних устройств, выводом на внешние устройства, а также сигналы управления арифметико-логическим устройством35 40 45 50 55 31 13159 при выцолнении той или иной операции (или группы операций). Количество таких сигналов зависит только от числа соответствующих команд в рассматриваемом линейном участке программы и не связано с быстродействием внешних устройств. Таким образом, линейный участок программы однозначно определен количеством импульсов на интерфейсных управляющих линиях, В ка честве тактовых импульсов могут быть использованы сигналы синхронизации выборки или выполнения команды. Например, для микропроцессора КР 580 ИК 80 в качестве тактовых импульсов на так товый вход устройства могут быть поданы сигналы М выборки команд. При этом число Т = Т тактовых импуль 1сов строго детерминировано и определяется количеством команд в данном 20 линейном участке программы, Аналогично строго определенное число тактовых импульсов, равное суммарному числу машинных циклов прохождения команд данного линейного участка про граммы, может быть получено при использовании в качестве сигналов на тактовом входе устройства импульсов БУМС микропроцессора. В качестве тактовых импульсов могут быть использованы также сигналы тактового генератора микроЭВМ (для микропроцессора К 580 ИК 80 -М,ТТЛ). В этом случае число тактовых импульсов на заданном линейном участке программы определяется в интервале Т - Т . Использование режима "Ожидание" связано с тем, что в состав управляющих микроЭВМ могут входить специальные процессоры обмена (каналы, работающие по своей программе ,и потому асинхронные по отношению к центральному процессору). Во многих приложениях время Т, ожидания асинхронного ответа о готовности внешнего устройства к обмену может быть ограничено из разумных соображений максимальным числом Т. . При этом минимальное числомакстактовых импульсов Т равно суммарному числу тактовТТЛ прохождения команд данного линейного участка программы, а максимальное число тактовых импульсов1 фмакс+О 81 32 где Т - такты ожидания микропро 9цессора,Если в обмене с микроЭВМ участвует внешнее устройство, для которогоневозможно установить Тилиэто время заведомо велико (например, при работе микроЭВМ в мультипроцессорной системе), команда,обеспечивающая такой обмен, может бытьвыделена, как самостоятельный линейный участок программы, для которогоодин из ожидаемых адресов А; - адрес следующей команды, а другой Аадрес данной команды, число тактовыхимпульсов Т равно числу тактов прохождения данной команды, При этом уст,ройствовыполняет данныйлинейный уча.сток в соответствиис описаниемдо момента прихода сигнала Готовность.внешнего устройства.Прием информации в счетчик 107производится и при наличии импульса на его счетном входе (т.е. безусловно), так как управление по .К,Я-входам Б-триггеров, составляющих счетчик 107, более приоритетно,чем управление по входу синхронизации С.После загрузки Т на выходахэлементов ИЛИ 60 и 62 устанавливается единичное значение сигналов, ана выходе элемента ИЛИ-НЕ 59 - нулевое. Единичный сигнал с выхода элемента ИЛИ 60 поступает на входы 83блока 56 счетчиков и 84 блока 57 микропрограммного управления. Единичноезначение сигнала управления счетомтактов с входа 83 (фиг.8) поступаетна второй вход элемента И 108 и открывают его для прохождения тактовых сигналов с входа 86 на счетныйвход первого счетчика 107. Одновременно единичный сигнал с входа 83поступает на вход инвертора 110, и.нулевой сигнал с его выхода запирает элемент И 109, запрещая прохождение тактовых сигналов с входа 86 насчетный вход второго счетчика 107.Единичный сигнал с входа 81 блока 57 микропрограммного управления(фиг.7) поступает на четвертый входрегистра 104, на первом и второмвходах которого присутствуют нулевые сигналы. Следующим тактовым сигналом информационное слово 1 ХОО записывается в регистр 104, На входахблока 105 постоянной памяти блока57 микропрограммного управления устанавливается адрес 1100 и сигналы5 Ю 15 20 25 30 35 40 45 50 55 на его выходах принимают значения, указанные в строке 13 табл.4. Единичный сигнал с выхода 78 блока 57 микропрограммного управления поступает на вход записи регистра 54, на информационный вход которого с выхода блока 58 постоянной памяти поступает информационное слово А;, так как на вход младших разрядов адреса поступает с выхода 81 блока 57 микропрограммного управления информационное слово 00, в блоке 58 постоянной памяти выбирается ячейка В . В регистре 54 запоминается ожидаемый адрес А;, Если очередной текущий адрес А, поступающий в регистр 52 с информационного входа 15 не равен ожидаемому А 1, сигнал на выходе схемы 55 сравнения сохраняет единичное значение, и в случае выполнения условия Т0 (единичный сигнал на первом адресном входе 84 блока 57 микропрограммного управления) на входах блока 105 постоянной памяти формируется адрес 1101, после чего процедура сравнения с текущим адресом повторяется для ожидаемого адреса А . При выполнении1условия АА цикл сравнения текущего адреса и вектора перехода повторяется для адресов следующих команд данного линейного участка рабочей программы.Выработка управляющих сигналов блоком 105 постоянной памяти в соответствии с табл.4 обеспечивается следующим образом.Каждому из 16 наборов входных переменных на четырех адресных шин блока 105 постоянной памяти соответствуют значения сигналов на выходных линиях этого блока, представленные в табл.4. После снятия сигнала "Общий сброс" на входе 74 обращения блока 105 постоянной памяти устанавливается значение сигнала, соответствующее режиму чтения информации из блока 105. В дальнейшем в процессе функционирования устройства блок 105 постоянной памяти постоянно находится в этом режиме. Каждое изменение значения хотя бы одного сигнала на адресных входах блока 105 постоянной памяти приводит к изменению его входных сигналов в соответствии с табл.4, Так, например, при изменении значения сигнала на третьем входе 85 блока 105 из нуля в единицу при нулевых значениях сигналов на первом, втором и четвертом его входах значения выходных сигналов, установившиеся до этого изменения в соответствии с первой строкой табл.4, устанавливаются в соответствии со второй строкой табл.4, т.е. значение сигнала на четвертом выходе 79 блока 105 переходит из единицы в нуль, причем сигналы на остальных его выходах сохраняют прежние значения.В случае возникновения сбоя или неисправности, приводящей к "обходу одной или нескольких команд, процессор 1 может прийти в адрес А 1 или А до истечения установленного минимального числа Т, тактовых импульсов. В этом случае сигнал на выходе схемы 55 сравнения принимает нулевое значение. Этот сигнал поступает на второй вход 85 блока 57 микропрограммного управления и далее на третий вход блока 105 постоянной памяти.На ,адресных входах блока 105 постоянной памяти формируется адрес 1000 (выполнение условия А= А;) или 1001(выполнение условия А= А ), и на его выходах устанавливаются значения сигналов, указанные соответственно в строках 9 или 10 табл.4. Нулевой сигнал с выхода 77 блока 57 микропрограммного управления поступает на информационный вход триггера 63, На синхровход этого триггера с выхода схемы 55 сравнения по цепи 55-71-66- -63 поступает синхросигнал, и триггер 63 устанавливается в нулевое состояние. Единичный сигнал с инверсного выхода триггера 63 поступает на вход элемента И-НЕ 69, и сигнал на его выходе принимает нулевое значение. Этот сигнал поступает в процессор 1 в качестве сигнала "Запрос прерывания". Сигнал "Подтверждение прерывания" поступает по шине 14 управления на вход 19 признака перехода устройства 2 и далее на вход установки в "0" триггера 65, устанавливая его в нулевое состояние. Нулевой сигнал с прямого выхода триггера 65 поступает на второй вход элемента И-НЕ 69 и запрещает выдачу сигнала "Запрос прерывания". Одновременно единичный сигнал с инверсного выхода триггера 65 отпирает элемент И 68 для прохождения сигнала управления.Процессор 1 приступает к обработке прерывания, связанного с сигналом от устройства 2 для контроля, и на адресном входе-выходе устанавли35 13159 ваются адреса программы прерывания.Ожидаемые адреса А и А продолжаютпоочередно сравнивать с текущими адресами А и на выходе схемы 55 устанавливается единичное значение сигнала. Блок 57 микропрограммного управления выдает сигналы управления в соответствии со строками 13 и 14 табл,4,т.е, устройство 2 для контроля выполнения программ находится в состоянии 10ожидания.Если при выполнении процессором 1линейного участка Ь программы достигается условие Т, = О, сигнал на выходе элемента ИЛИ 60 принимает нулевое 15значение, Этот сигнал поступает навход 83 блока 56 счетчиков и далее навторой вход элемента И 108 и через инвертор 110 на второй вход элементаИ 109. Элемент И 108 запирается, и 20первый счетчик 107 в дальнейшем находится в нулевом состоянии. ЭлементИ 109 отпирается для прохождения тактовых сигналовс входа 86 блока 56счетчиков на счетный вход второго 25счетчика 107, где в дальнейшем происходит отсчет дТ. Одновременно нулевой сигнал с выхода элемента ИЛИ 60поступает на первый адресный входр 4 блока 57 микропрограммного управления, на выходах которого устанавливаются управляющие сигналы в соответствии со строками 5 или 6 табл.4,т.еон продолжает оставаться в состоянии ожидания совпадения адресов.Если при обработке процессором 1линейного участка выполняется условие А = А (А= А ), блок 57 микропрограммного управления устанавливает на выходах значения сигналов, указанные в строке 1 (2) табл.4. Очередным тактовым сигналом в регистр 104записывается информационное слово0110 (0010), на адресных входах блока 105 постоянной памяти появляется 45адрес 0010, на выходах блока 57 микропрограммного управления устанавливаются управляющие сигналы в соответствии со строкой 3 табл.4,Информационное слово 10 поступаетс выхода 81 на вход младших разрядовадреса блока 58 постоянной памяти,Единичный (нулевой) сигнал с выхода80 блока 57 микропрограммного управления поступает на управляющий вход82 коммутатора 72 и подключает к выходам первую 89 или вторую 90 группувходов. Информационное слово Во о= ВВиз ячейки 58 постоянной памя 81 36ти с адресом В, + 3 поступает на входы коммутатора 72, и с его выхода наинформационные входы регистра 53 поступает информационное слово В(В).Таким образом, происходит выбор массива информации для контроля следующего линейного участка Ь (Ь ). Единичный сигнал с выхода 79 блока 57микропрограммного управления поступает на первый вход элемента И 67 иоткрывает его для прохождения сигнала с выхода элемента ИЛИ 62 на входсброса триггера 63. Если к моментуперехода на следующий линейный участок программы выполняется условиеТ 0 = О, с выхода элемента ИЛИ 62 навход сброса триггера 63 поступаетнулевой сигнал и его состояние неизменяется. Если условие Т 0 = 0 невыполняется, единичный сигнал с выхода элемента ИЛИ 62 сбрасывает триггер 63 в нулевое состояние и на егоинверсном выходе устанавливается сиг"нал логической "1". Сигнал запросапрерывания с выхода 21 устройства2 для контроля выполнения программыпоступает на вход прерывания процессора 1. Запрос прерывания в устройстве 2 для контроля выполнения программ микроЭВМ снимается сигналом"Подтверждение прерывания процессора 1 в аналогичном порядке.Следующим тактовым импульсом производится загрузка регистра 104, наадресных входах блока 105 постояннойпамяти устанавливается информационноеслово 0011 и на выходах блока 57 микропрограммного управления устанавливаются управляющие сигналы в соответствии со строкой 4 табл.4, В результате воздействия этих сигналовна элементы устройства 2 для контроля выполнения программ происходитзагрузка характеристического множества Т",(Т ) в блок 56 счетчиков,после чего устройство подготовлено кконтролю выполнения линейного участка Ь (Ь ) программы микроЭВМ,Если при поступлении Т тактовыхимпульсов не выполняется условиеА = А;(А= А ), т.е. в результатесбоя или неисправности процессор 1перешел к выполнению команды с произвольным адресом, минуя адрес А;(А ),сигнал на выходе схемы ИЛИ-НЕ 59 прйнимает единичное значение. Этот сигнал поступает на синхровход триггера 64 и под воздействием нулевогосигнала на информационный вход это15981 2 5 10 15 го 25 ЗО 35 40 45 50 55 1 13 Изобретение относится к цифровой вычислительной технике и может бытьиспользовано для контроля выполнения программ в цифровых вычислительных машинах и программируемых контроллерах, построенных по принципу "общей магистрали".Цель изобретения - повышение до" стоверности контроля за ходом выполнения программ.На фиг,1 представлена функциональная схема микроЭВМ, поясняющая место предлагаемого устройства в структуре микроЭВМ; на фиг.2 и 3 - функциональные схемы устройства для контроля выполнения программ по первому и второму вариантам соответственно; на фиг.Щ- функциональные схемы блоков соответственно регистров, мик" ропрограммного управления и выделения максимального и минимального количеств импульсов предлагаемого устройства (вариант 1); на фиг.7-9 - функциональные схемы блоков соответственно микропрограммного управления, счетчиков и коммутатора устройства для контроля выполнения программ (вариант 2); на фиг.10 - Функциональная схема блока сопряжения микроЭВМ; на фиг,11 - пример выделения линейных участков программы: на фиг.12 - временная диаграмма, поясняющая работу известного устройства при отсутствии сбоев; на Фиг.13 - временная диаграмма, поясняющая работу известного устройства при возникновении сбоев программного счетчика микро- ЭВМ; на Фиг.1 Щ - фрагмент программы, иллюстрирующий процедуру формирования массивов служебной информации; на фиг.15-18 - временные диаграммы, поясняющие работу пРедлагаемого устройства.МикроЭВМ (Фиг.1) содержит процессор 1, устройство 2 для контроля, блок 3 сопряжения, блок щ памяти, включающий в себя память 5 данных и память 6 программы, Блоки 3 и Щ объединены посредством группы шин 7, включающих в себя адресную 8, информационную 9 и управляющую 10 шины. Процессор 1 соединен с блоком 3 сопряжения посредством группы 11 шин, включающих в себя адресную 12, информационную 13 и управляющую 1 Щ шины, а также с устройством 2 для контроля выполнения программ посредством адресной 12 и управляющей 1 Щ шин, причем адресная шина 12 подключена к информационному входу 15 устройства, а управляющая шина 1 Щ включает линии управления записью и начальной установкой, подключенные соответственно к входам записи и начальной установки 17 устройства 2 для контроля выполнения программ, а также линию синхронизации, подключенную к входу 18 синхронизации устройства 2 (по первому варианту), линию подтверждения прерывания, подключенную к входу 19 признака перехода, группу линий задания режима,подключенную к группе входов 20 задания режима устройства 2 (по второму варианту) для контроля выполнения программ, выход 21 ошибки которого соединен с входом прерывания процессо" ра 1, а тактовый вход 22 устройства 2 подключен к выходу тактовых сигналов процессора 1.Устройство 2 для контроля выполнения программ по первому варианту (фиг.2) содержит блок 23 регистров, схему 2 Щ сравнения, блок 25 выделения максимального и минимального количеств импульсов, блок 26 микропрограммного управления, регистр 27, блок 28 постоянной памяти, элемент И 29, элемент ИЛИ 30 и триггер 31. Выход 32 блока 23 регистров соединен с первым информационным входом схемы 2 Щ сравнения, выход равенства которой соединен с первым 33 адресным входом блока 26 микропрограммного управления, вход 16 записи устройства 2 соединен с первым входом ЗЩ записи блока 23 регистров, информационный вход 15 устройства 2 соединен с инФормационным входом 35 блока 23 регистров, вход 17 начальной установки устройства 2 соединен с входом начальной установки регистра 27, блока 28 постоянной памяти, входом 36 обращения блока 26 микропрограммного управления, входом 37 начальной установки блока 25 выделения максимального и минимального количеств импульсов и входом установки в 0" триггера 31, инверсный выход которого является выходом 21 ошибки устройства 2, синхровход 18 устройства 2 соединен с входом синхронизации триггера 31, информационный вход которого соединен с шиной нулевого потенциала, выход блока 28 постоянной памяти соединен с информационным вхо81 38 37 13159го триггера, поступающего с выходаэлемента ИЛИ 60, он переходит в нулевое состояние. Сигнал с выходатриггера 64 поступает на вход элемента И бб, а с его выхода - на синхровход триггера 63. Нулевой сигнал, поступающий на информационный входтриг. гера 63 с выхода 77 блока 57 микропрограммного управления (табл.4,строки 5 и 6), запоминается в триггере 1063, на его инверсном выходе устанавливается сигнал логической "1" и свыхода элемента И-НЕ 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сигнала прерывания от внешнего устройства управление с линейного участкапередается программе прерывания. Устройство 2 для контроля выполненияпрограмм микроЭВМ обнаруживает выходиз Рабочей программы по прерываниюпо истечении Т тактов с момента начала данного линейного участка и ус;танавливает триггер 63 в нулевое состояние. В момент передачи управленияна программу обработки внешнего прерывания процессор 1 выдает сигналПодтверждение прерывания", которыйзапрещает выдачу сигнала прерыванияиз устройства 2 для контроля выполнения программ. После возвращенияпроцессора 1 из программы обработкипрерывания на незавершенный линейный участок он достигает одного изожидаемых адресов и происходит самосинхронизация устройства 2 для контроля и процессора 1 путем загрузкислужебной информации о следующем линейном участке в блок 56 счетчикови регистр 53 и установки триггеров63 и 65 в единичное состояние, 55Работа устройства 2 по второмуварианту (фиг.З) поясняется временными диаграммами (фиг.16, а, б, в),отображающими процесс загрузки (моменты 145 и 146 времени) и постепенного уменьшения содержимого счетчиков Т (эюра 147)1 Т (эпюра 148) и трех счетчиков То (эпюры 149-151) . В момент 152 времени (фиг.16,а) содержимое счетчика Т становится равным нулю (эпюра 147) и на информационном входе триггера 64 устанавливается нулевое значение сигнала (эпюра 153). С этого момента времени происходит уменьшение .содержимого счетчика лТ. В момент 154 времени происходит совпадение текущего адреса программы А и одного из ожидаемых адресов А (или А ). Импульс 155 совпадения формируется на синхронизирующем входе триггера 63 в момент перехода микроЭВМ на начало следующего линейного участка, Содержимое счетчика ЮТ при этом остается ненулевым и сигнал на синхровходе триггера 64 сохраняет нулевое значение (эпюра 156),Если в результате воздействия помехи (условно представлена импульсом 157), приводящей к выполнению ошибочного перехода в пределах линейного участка программы, сравнение текущего адреса А и одного из ожидаемых адресов А; (или А ) произойдет не в запланированный момент 158 времени, а в момент 159 (до обнуления счетчика Т, момент 160 времени), одновременно с появлением импульса 155 сравнения сигнал на выходе 21 устройства 2 (эпюра 161) принимает нулевое значение.Если в результате воздействия помехи 157, приводящей к выполнению ошибочного перехода к другому линейному участку программы (фиг.16, б), сравнение текущего адреса А и одного из ожидаемых адресов А;(или А ) не произойдет и импульс 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 40 30 35 1. Устройство для контроля выполнения программ, .содержащее блок выделения максимального и минимального количества импульсов, триггер, блок регистров, схему сравнения, элемент И, элемент ИЛИ и блок микропрограммного управления, причем информационный выход блока регистров соединен с первым информационным входом схемы сравнения, выход равенства которой соединен с первым адресным входом блока микропрограммного управления, вход записи устройства соединен с первым входом записи блока реистров, о т л и ч а ю щ е е с я тем, что, с целью повышения достоверности контроля за ходом выполнения программы, в устройство введены регистр и блок постоянной памяти, причем информационный вход устройства соединен с информационным входом блока регистров вход начальной установки устройства соединен с входами начальной установки регистра, блока постоянной памяти, с входом обращения блока микропрограммного управления, с входом начальной установки блока. выделения 40 45 50 группы выходов первого и второго регистров соединены соответственно с1 записи устройства соединен с входом ,записи первого регистра, информациФормула изобретения 5 1 О 15 20 25 максимального и минимального количества импульсов и входом установкив 0" триггера, инверсный выход которого является выходом ошибки устройства, синхровход устройства соединен с входом синхронизации триггера, информационный вход которого соединен с шиной нулевого потенциала, выход блока постоянной памяти соединен с информационными входами регистра, блока выделения максимального и минимального количества импульсови вторым информационным входом схемы срав. нения, группы выходов минимального и максимальногоколичества тактовых импульсов блока выделения максимального и минимального количества импульсов соединены соответственно с группами входов элемента ИЛИ и элемента И, выходы которых соединены соответственно с вторым адресным входом блока микропрограммного управления и с единичным входом триггера, выход элемента ИЛИ, соединен с входом запрета блока выделения максимального и минимального количестваимпульсов, тактовый входустройства соединен с тактовыми входами блока микропрограммного управления и блока выделения максимального и минимального количестваимпульсов, выход регистра соединен.с входом старших разрядов адреса блока постоянной памяти, первый, второй,третий и четвертый выходы блока микропрограммного управления соединены соответственно с первым и вторым входами записи блока выделения максимального и минимального количестваимпульсов, входом записи регистра и входом младших разрядов адреса блока постоянной памяти, второй вход записи блока регистров соединен с младшим разрядом информационного выхода блока микропрограммного управления.2. Устройство для .контроля выполнения программ, содержащее блок, счетчиков, три триггера, первыйэлемент И, первый элемент ИЛИ, элемент И-НЕ, первый формирователь импульсов, два регистра, блок микропрограммного управления и схему сравнения, причем первыми и вторыми группами информационных входов схемы сравнения, вход онный вход устройства соединен с информационным входом первого регист981 42дом блока микропрограммного управлени. и через второй формирователь импульсов с вторым входом первого элемента И, тактовый вход устройства соединен с тактовыми входами блока счетчиков и блока микропрограммного управления, вход начальной установки устройства соединен с входом обращенияблока микропрограммного управленияи с входом начальной установки третьего регистра, выход которого соединен с адресным входом старших разрядов блока постоянной памяти, группавыходов которого соединена с группойинформационных входов блока счетчиков, группой информационных входоввторого регистра, первой и второйгруппами информационных входов коммутатора, выход которого соединен синформационным входом третьего регистра, четвертый выход блока микропрограммного управления соединен свходом записи третьего регистра, инверсный выход третьего триггера ивыход первого формирователя импульсов соединены соответственно с первым и вторым входами третьего элемента И, выход которого соединен с вторым входом первого элемента ИЛИ, выход которого соединен с единичнымвходом третьего триггера, вход признака перехода устройства соединенс нулевым входом третьего триггера,группы выходов минимального количества тактовых импульсов, группа выходов разности максимального и минимального количества тактовых импульсови группа информационных выходов блока счетчиков соединены соответственно с группами входов элемента ИЛИ-НЕ,второго и третьего элементов ИЛИ,выход элемента ИЛИ-НЕ соединен с тактовым входом первого триггера, выходвторого элемента И соединен с нуле:вым входом второго триггера,Таблица 1 Даннь Линейныйучасток Линейны участок Адрес Данные п м м йс м ра, группа входов задания режима уст.ройства соединена с группой счетныхвходов блока счетчиков, вход начальной установки устройства соединен свходом установки в "О" первого триггера и с первым входом первого элемента ИЛИ, выход первого триггерасоединен с первым входом первогоэлемента И, выход которого соединенс тактовым входом (второго) тригге Ора, выход первого формирователя импульсов соединен с входом записи блока счетчиков, выход элемента И-НЕ является выходом ошибки устройства,инверсный и прямой выходы второго и 15третьего триггеров соединены соответственно с первым и вторым входамиэлемента И-НЕ, выход первого элемен-.та.ИЛИ соединен с нулевым входом второго триггера, о т л и ч а ю щ е - 2 Ое с я тем, что, с целью повышениядостоверности контроля за ходом выполнения программы, в устройство введены третий регистр, блок постояннойпамяти, коммутатор, второй формирователь импульсов, элемент ИЛИ-НЕ, второй и третий элементы ИЛИ, второй итретий элементы И, причем первый,второй, третий, четвертый, пятый ишестой выходы блока микропрограммного управления соединены соответственно с входом первого формирователяимпульсов, с информационным входомвторого триггера, с входом записивторого регистра, с первым входомвторогоэлемента И, с управляющимвходом коммутатораи с входом младших .разрядов адреса блока постоянной памяти, выход второго элемента ИЛИ. соединен с информационным входом перво 4 Ого триггера, с входом запрета счетаблока счетчиков и с первым адреснымвходом блока микропрограммного управления, выход равенства схемы сравнения соединен с вторым адресным вхо44 43 1315981 Аье Ас вф Ю47 1315981 27 28 0 . 0 О О 0 1 О 1 0 1 0 0 О, 1 О 1 О 1 29 1 0 0 0 0 30 1 О О 31 1, 11 О 0 О О 32 0 0 Адрес А,А Во То Вф А; В В А В; 3 А О 1 О 1 0 1 0 1 0 О О 1 Таблица 3 Данные Линейныйучасток 48Продолжение табл 2 1 О 1, О 1 13 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 микропро граммного управления и через второйформирователь импульсов 71 с вторымвходом первого элемента И 66, тактовый вход 22 устройства 2 соединен стактовыми входами 86 и 87 соответст венно блока 56 счетчиков и блока 57микропрограммного управления, выходтретьего регистра 53 соединен с входомстарших разрядов адреса блока58 постоянной памяти, группа выходовкоторого соединена с группой информационных входов 88 блока 56 счетчиков,группой информационных входов второгорегистра 54,первой 89 и второй 90 группа 5 10 15 20 г 5 30 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 выходы блока 57микропрограммного управления соединены соответственно с входом первогоформирователя импульсов 70, информационным входом второго триггера 63,входом записи второго регистра 54,первым входом второго элемента И 67,управляющим входом 82 коммутатора72 и входом младших разрядов адресаблока 58 постоянной памяти, выходвторого элемента ИЛИ 60 соединен с, информационным входом первого 64Заказ 2364/5 1В Подписимитета СССР ткрытий ская наб., д.4/5 ктная,4 оизводственно-нолиграфическое предприятие, г,ужгород Составитель И.СигаловРедактор Н.Лазаренко Техред М.Ходанич Корректор И.Ш5 13159ми информационных входов коммутатора 72выход 91 которого соединен с информационным входом третьего регистра53, четвертый выход 79 блока 57 микропрограммного управления соединен свходом записи третьего регистра 53,инверсный выход третьего триггера65 и выход первого формирователя 70импульсов соединены соответственно с первым и вторым входами третьего элемента И 68, выход которого соединенс вторым входом первого элемента ИЛИ 61, вход 19 признака перехода устройства 2 соединен с нулевым входам третьего триггера 65, группа вы ходов 92 минимального количества тактовых импульсов, группа выходов 93 разности максимального и минимального количеств тактовых импульсов игруппа информационных выходов 94 блока 56 счетчиков соединены соответственно с группами входов элемента ИЛИ-НЕ 59, второго 60 и третьего 62элементов ИЛИ, выход элемента ИЛИ-НЕ 59 соединен с тактовым входом первого 64 триггера, выход второго элемента И 67 соединен с единичным входом второго триггера 63.Блок 23 регистров (фиг.4) устройства 2 для контроля выполнения про- ЗОграмм по первому варианту (фиг.2)содержит регистры 95 и 96, информационные входы которых объединены иявляются информационным входом 35блока 23 регистров, входы записи регистров 95 и 96 соединены и являются первым входом 34 записи блока23 регистров, выходы регистров 95 и96 объединены и являются информационным выходом 32 блока 23 регистров, а 40 инверсный вход обращения регистра 95 соединен с прямым входом обраще-ния регистра 96 и является вторым входом 51 записи блока 23 регистров.Блок 26 микропрограммного управ ления (фиг.5) устройства 2 по первому варианту для контроля выполнения программ (фиг.2) содержит регистр 97 и блок 98 постоянной памяти, первый, второй и третий выходы которого со единены соответственно с первым,вторым и третьим информационными входами регистра 97, а также объединены и являются четвертым выходом 48 блока 26 управления контролем, четвер тый информационный вход и синхровход регистра 97 являются соответственно первым адресным входом 33 и тактовым 81 6входом 43 блока 26 микропрограммного управления, первый, второй, третий и четвертый выходы регистра 97 подключены соответственно к первому, второму, третьему и четвертому адресным входам блока 98 постоянной памяти, пятый адресный вход и вход обращения которого являются соответственно вторым адресным входом 41 и входом 36 обращения блока 26 1микропрограммного управления, а четвертый, пятый и шестой выходы блока 98 постоянной памяти являются соответственно первым 45, вторым 46 и третьим 47 выходами блока 26 микропрограммного управления. Блок 25 выделения максимального и минимального количеств импульсов (фиг.б) устройства 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 для контроля выполнения программ по второму варианту (фиг.З) содержит регистр 104, блок 105 постоянной памяти и элемент И 106. Тактовый вход 87 блока 57 микропрограммного управления соединен с синхровходом регистра 104 и первым входом элемента И 106 Первьй, второй и третий информационные входы регистра 104 соединены соответственно с первым, вторым и четвертым выходами блока 105 постоянной памяти, третий, пятый и седьмой выходы которого подключены соответственно к третьему 78, второму 77 и четвертому 79 выходам блока 57 микропрограммного управления. 1 Пестой выход блока 105 постоянной памяти подключен к второму входу элемента И 106, выход которого соединен с первым выходом 76 блока 57 микропрограммного управления. Первый и второй выходы регистра 104 объединены и подключены к шестому выходу 81 блока 57 микропрограммного управления и, соответственно, первому и второму адресным входам блока 105 постояннойпамяти, третий и четвертый адресные входы и вход обращения которого подключены соответственно к второму адресному входу 85 блока 57 микропро- граммного управления, четвертому выходу регистра 104 и входу обращения блока 57 микропрограммного управления. Четвертый информационный вход, и третий выход регистра 104 подключены соответственно к первому адресному входу 84 и пятому выходу 80 блока 57 микропрограммного управления.Блок 56 счетчиков (фиг,8) устройства 2 для контроля выполнения.программ по второму варианту (фиг.З) содержит группу счетчиков 107, элементы И 108 и 109 и инвертор 110. Первый вход первого и второго элементов И 108 и 109 соединены с тактовым входом 86 блока 56 счетчиков, второй вход элемента И 108 соединен с входом 83 запрета счета блока 56 счетчиков и через инвертор 110 с вторым входом элемента И 109. Выходы элементов И 108 и 109 соединены со счетными входами соответственно первого и второго счетчиков 107, счетные входы третьего и последующих счетчиков 107 объединены и являются5981 пы, вторые входы которых объединеныи являются второй группой информационных входов 90 коммутатора 72.35 Выходы. элементов И 112 соединены соответственно с первыми. входами группы элементов ИЛИ 114, вторые входыкоторых подключены соответственно квыходам элементов И 111 первой груп пы. Выходы элементов ИЛИ 114 объединены и являются выходом 91 коммутатора 72.Блок 3 сопряжения (фиг.10) микроЭВМ содержит приемопередающие.эле менты, Для передачи адреса с шины12 на шину 8 используются элементы115, управляющие входы которых объединены и соединены с линией 116,входящей в состав шины 14. В зависи 50 мости от значения сигнала на управляющем входе элемента 115 он либозакрыт (высокоимпедансное состояниевыхода), либо транслирует сигнал свхода на выход. Для двунаправленной 55 передачи данных между шинами 9 и13 используются попарно объединенныеэлементы 115, управляющие входы которых соединены с входами 117 и118, входящими в состав шины 14. 10 15 20 25 8группой счетных входов 73 блока 56 счетчиков, информационные входы счетчиков 107 объединены и являются группой информационных входов 88 блока 56 счетчиков. Вход 75 записи блока 56 счетчиков соединен с входами записи счетчиков 107. Выходы первого и второго счетчиков 107 являются соответственно группами выходов разности максимального и минимального количеств тактовых импульсов 93 и минимального количества тактовых импульсов 92 блока 56 счетчиков, а выходы третьего и последующих счетчиков 107 объединены и являются группой информационных выходов 94 блока 56 счетчиков.Коммутатор 72 (фиг,9) устройства 2 для контроля выполнения программ по второму варианту (фиг.З) содержит первую 111 и вторую 112 группы элементов И, элемент И-НЕ (инвертор) 113 и группу элементов ИЛИ 114. Первые входы элементов И 111 первой группы объединены и являются первой группой 89 информационных входов коммутатор 72, вторые входы элементов И 111 первой группы соединены с управляющим входом 82 коммутатора 72 и через инвертор 113 с первымивходами элементов И 112 второй груп 131598В зависимости от значений сигналовна входах 117 и 118 выбирается тоили иное направление передачи данных. Для сопряжения шины 10 с шиной14 используются элементы разных типов: кабельные усилители 119 (безуправления), элементы 115, управление которыми производится по линиям120 и 121, а также асинхронные самоуправляемые двунаправленные элементы 10122, выполненные на стандартных логических элементах.Любую программу, записанную в машинных кодах в памяти микроЭВМ, можно представить в виде набора линейных участков, связанных между собойкомандами передачи управления по условию. Команда перехода по условиюявляется завершающей командой линейного участка, если это не последний 20линейный участок программы - в этомслучае линейный участок может завершаться, например, командой "Останов".Начальной командой линейного участка может быть либо команда, являющаяся внешним входом программы, либокоманда, на которую производится передача управления одной из командперехода по условию. Если некоторыйфрагмент программы (фиг.11 а) содержит 30линейный участок (1 - 1 где 1команды перехода по условию;прочие команды микроЭВМ) с несколькими точками вхождения (А и В), он может быть представлен в виде линейных участков, каждый из которых имеет одну начальную команду (СС) включает общие команды ветвейфрагмента (й , Т 4) и общую конечнуюкоманду условного перехода (1) 40(фиг. 116) .Таким образом, любую программуможно разбить на отдельные линейныеучастки, на которых поведение ЭВМстрого детерминировано в том смысле,что при правильном прохождении"микроЭВМ через данный линейный участок программы должно быть зарегистрировано определенное число (в заданном интервале Т - Т) тактовых 50импульсов и строго определенное число Т импульсов на интерфейсных управляющих линиях, которое известнодля каждого линейного участка ещедо начала работы микроЭВМ по про- дграмме.Наличие интервала Т - Т объясняется широким использованием в управляющих микроЭВМ режима "Ожидание" 1 10Совокупность интерфейсных управляющих сигналов, которыми сопровождается выполнение команд условных переходов, не зависит от того, выполнено ли проверяемое условие или нет.Любому линейному участку програм"мы соответствует свой вектор перехода В = 1 А;, А- пара адресов А;,А начальных команд линейных участ 1ков, на которые передается управление конечной командой условногоперехода данного линейного участка.Основную идею работы устройствадля контроля выполнения программмикроЭВМ или программируемого контроллера можно выразить следующимобразом.После (или в процессе) трансляции исходной программы на язык машинных команд рабочую программу анализируют с целью выявления всех линейных участков. Список адресов начальных команд линейных участков запоминают.Для каждого линейного участкапредсказывают): минимальное Т имаксимальное Т числа тактовых им 2пульсов, характеризующих прохождениеданного линейного участка программы; число Т импульсов на тех илииных управляющих линиях, которое находят путем последовательного арифметического сложения некоторых констант, каждая из которых соответствует своей команде и зависит от конструктивных особенностей конкретной микроЭВМ (для второго варианта);вектор перехода данного участка,определяющий пару адресов А., А3Эпоявление которых ожидается в моментокончания прохождения данного линейного участка программы,Эту информацию заносят в блок постоянной памяти и в дальнейшем впроцессе функционирования устройстваона используется для контроля прохож.дения линейного участка при выходена его начало.Кроме того, производят пуск рабочей программы. Правильность ее выполнения контролируется специальными .аппаратными средствами, Одновременнос выбором из основной памяти началь-.ной. команды некоторого линейногоучастка программы из блока постоянной памяти устройства контроля выполнения программ микроЭВМ извлекается служебная информация, определяющая ожидаемые минимальное число Т, 11 13159тактовых импульсов, разность з Т =Т - Т между максимальным и мини 2мальным числами тактовых импульсов,число Т импульсов на интерфейсныхлиниях управления (для второго варианта) и вектор В = 1 А ,Аперехода этого линейного участка. Множество Т = Т ЮТ у (Т Т рТ, ТО 1) будем называть характеристическим множеством линейного участка, Зта информация помещается всчетчики, содержимое которых в дальнейшем уменьшается по мере прохождения данного участка программы, т.е.по мере передачи импульсных сигналов тактовой и интерфейсными линия,ми. По приходу Т тактовых импульсов устройство контроля начинаетотсчет д Т и проверку на равенство нулю содержимого счетчиков То. Если 20 это условие выполнено, т.е. микроЭВМ достигла начальной команды нового линейного участка, происходит сравне.ние вектора перехода и текущего адреса А программы, и если текущий адрес А 1 оказался равным одному из ожидаемых адресов А. или А вектора В, счетчики загружаются новой информацией, соответствующей новому линейному участку программы 30Затем устройство 2 для контроля выполнения программ по первому варианту (фиг.2) посылает сигнал прерывания в процессор если при получении Т 2 тактовых импульсов процессор не 35 перешел к выполнению одного из линейныж участков, начальные адреса которых указаны в векторе перехода этого участка, Сигнал прерывания анализируется процессором и вызывает пе реход на заранее запланированный режим управления объектом, подключенным к микроЭВМ, после чего устройство 2 устанавливается в исходное состояние и микроЗВМ начинает вы полнение программы с нулевого адреса.При этом устройство 2 для контроля выполнения программ (второй вариант, фиг.3) посыпает сигнал прерыва ния в процессор при выполнении следующих условий: если в результате сбоя или неисправности процессор переходит к выполнению команды, адрес которой указан в векторе перехода 55 . данного линейного участка, до получения Т импульсов; если при получении Т 2 тактовых импульсов процессор 81 12не перешел к выполнению очередноголинейного участка программы; если винтервале между Т . и Т 2 импульсовполучен адрес начальной команды следующего линейного участка программыи не произошло обнуление содержимого счетчиков ТСигнал прерывания анализируетсяпроцессором и либо вызывает переходна заранее запланированный режим управления объектом, подключенным кмикроЗВМ, либо процессор разрешаетдальнейшую работу и происходит самосинхронизация устройства контроля имикроЭВМ,Таким образом, существенно уменьшается вероятность появления аварийнык ситуаций, которые могут возникнуть в управляемом объекте в результате беспорядочного "блуждания микроЭВМ по рабочей программе, минуяоператоры условной передачи управления (выполняя ошибочные переходы)вследствие сбоя или отказа.Работа известного устройства вотсутствие и при возникновении указанных сбоев поясняется временнымидиаграммами (соответственно фиг.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 должен сопровождаться вводом заранее подготовленногомассива вспомогательной информациив блок 28 (58) постоянной памяти устройства 2 для контроля выполненияпрограмм микроЭВМ.Процедура подготовки массива вспомогательной информации выполняетсяследующим образом.Преобразовывают рабочую программу,занесенную в память б микроЭВМ, выделяя линейные участки, как показанона фиг.11 а, б и определяют характеристические множества Т= Т, оТ(Т =Т , йТ, Т 1) для каждого полученного линейного участка. Нафиг.14 показан пример фрагмента про -5981 14 5 1 О 15 20 25 30 35 40 45 5055 граммы, разделенного на линейные участки 1.При этом необходимо ввести в блок 28 постоянной памяти устройства 2 для контроля выполнения программ (первый вариант, фиг.2) вспомогательную информацию о линейном участке рабочей программы, информацию о любом линейном участке ., разместить в восьми ячейках блока 28 постоянной памяти (табл.1), а в ячейки с адресами В о и Во + 1 ввести первый адрес А; вектора перехода, т.е. соответственно младшую А; и старшую А части адреса А, начальной команды первого из двух линейных участков, на которые передается управление завершающей командой Л данного линейного участка. В ячейки с адресами В + 2 иВ + 3 вводят второй адрес А вектоо1 ра перехода т.е. соответственно младшую А м и старшую А части адреса А начальной команды второго из двух линейных участков, на которые передается управление завершающей командой Л данного линейного участка. В ячейки с адресами В + 3 и Во + 5 вводят соответственно адреса двух ячеек блока 28 постоянной памяти, в которых хранятся первые элементы массивов вспомогательной информации линейных участков, на которые передается управление командой Л (Во, , о, о. - В Б - В, В = Вэ В;+," Вэ В = В, В , ; В, и т.д.). В ячейку с адресом В + б вводят ожидаемоеоминимальное число Т, тактовых импуЛьсов, а в ячейку с адресом В + 7 разность ВТ = Т - Т между максимальным и минимальным числами такто" вых импульсов для данного линейного участка 1.1В первые восемь ячеек блока 28 постоянной памяти вводят служебную информацию, служащую для установки в исходное состояние устройства 2 для контроля выполнения программ, В первую и вторую пары ячеек вводят начальный адрес А программы так, что в первой ячейке каждой пары можно расположить младшую часть А1 м ф а во второй - старшую часть Аначального адреса А, программы. В пятую и шестую ячейки вводят адрес В ячейки 28 постоянной памяти,хранящей первый элемент массива вспомогательной информации начального линейного участка программы, В седьмую и восьмую ячейки блока 28 по 16151315981стоянной памяти вводят соответственно установочные числа импульсов Т, = О и д То = О. Это необходимо для обеспечения начальной синхронизации устройства 2 контроля с работой микроЭВМ.Блок 98 постоянной памяти блока 26 микропрограммного управления запрограммирован в соответствии с табл.2.Кроме того, вводят в блок 58 постоянной памяти устройства 2 для контроля микроЭВМ (второй вариант, фиг.З) вспомогательную информацию о линейных участках рабочей программы. Информация о любом линейном участке размещается в четырех ячейках блока 58 постоянной памяти (табл.З), при этом в ячейки с адресами В и В + 1 вводят вектор перехода, т,е.осоответственно адреса двух начальных команд линейных участков, на которые передается управление завершающей командой Л данного линейного участка. В ячейку с адресом В + 2 вводят адреса двух ячеек блока 58 постоянной памяти, в которых хранятся первые элементы массивов вспомогательной информации линейных участков, на которые передается управле ние командой Л (Во = ВВ В = ВВЗ и т.д,). В ячейку с адресом В+ 3 вводят характеристическое множество Т" =Т, й Т, Тданного линейного участка 1.3В первые четыре ячейки блока 58 постоянной памяти вводят служебную информацию, служащую для установки в исходное состояние устройства 2, для контроля выполнения программ микроЭВМ. В первую ивторую ячейки вводят начальный адрес программы А, в третью ячейку - двойной адрес ячейки (Во = В,В), хранящей пер, вый элемент массива вспомогательной информации начального линейного уча.стка Ь программы, в четвертую ячейку - установочное характеристическое множество Т = 1 Т, = О; ВТ, Ю О; Т = О . Это необходимо для обеспечения начальной синхронизации устройства 2 контроля выполнения программ с работой микроЭВМ. Блок 105 постоянной памяти блока 57 микропрограммного управления за:программирован в соответствии с табл.4.40 вие адресов памяти 6 микроЭВМ и бло;ка 28 постоянной памяти производит- ,ся при поступлении сигнала "Общий сброс" с шины 14 на вход 17 началь ной установки устройства 2 и далеена вход начальной установки регист 50 55 5 10 15 20 25 30 35 Устройство 2 для контроля выполнения программ по первому варианту (фиг.2) работает следующим образом.МикроЭВМ приводится в исходное состояние путем подачи логической "1" в линию "Общий сброс", входящую в состав шин 10 и 14. Сигнал на этой линии формируется автоматически после включения питания или, например, появляется в результате нажатия соответствующей кнопки на пульте управления.Сигнал "Общий сброс" приводит в исходное состояние процессор 1 и управляющую часть памяти 5 и 6, а также поступает на вход 17 начальной установки устройства 2, подготавливает выдачу сигнала прерывания из устройства 2 в процессор 1 по линии 21 в случае обнаружения сбоя и настраивает устройство 2 так, что первому адресу первого линейного участка программы соответствует адрес ячейки блока 28 постоянной памяти, хранящей служебную информацию о первом линейном участке.Подготовка выдачи сигнала прерывания производится следующйм образом.Сигнал "Общий сброс" поступает с шины 14 (фиг.2) на вход 17 начальной установки устройства 2 и далее на вход установки в "О" триггера 31. Сигнал на инверсном выходе триггера 31 принимает значение логической "1" и поступает на выход 21 устройства 2 для контроля выполнения программ. Это состояние соответствует отсутствию прерывания.Настройка устройства 2 для контроля выполнения программ на соответстра 27, в результате чего сигналы навыходах этого регистра принимают нулевые значения. Эти сигналы поступают на вход старших разрядов адреса блока 28 постоянной памяти. Одновременно сигнал "Общий сброс" поступает с входа 17 устройства 2 на вход36 начальной установки блока 26 микропрограммного управления и далеена вход обращения блока 98 постоянной памяти (Фиг. 5)В результате воздействия сигнала "Общий сброс" навсех выходах блока 98 постоянной па
СмотретьЗаявка
3888708, 22.04.1985
ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ ИМ. В. И. ЛЕНИНА, ХАРЬКОВСКОЕ ОПЫТНО-КОНСТРУКТОРСКОЕ БЮРО "ТЕПЛОАВТОМАТ"
АНТОСИК ВАЛЕРИЙ ВАСИЛЬЕВИЧ, ДЕРБУНОВИЧ ЛЕОНИД ВИКТОРОВИЧ, КОВАЛЕВ ЭДУАРД НИКОЛАЕВИЧ, МЫЗЬ АЛЕКСАНДР НИКОЛАЕВИЧ, ШАНДРИН ИГОРЬ СТЕПАНОВИЧ
МПК / Метки
МПК: G06F 11/26
Метки: варианты, выполнения, его, программ
Опубликовано: 07.06.1987
Код ссылки
<a href="https://patents.su/34-1315981-ustrojjstvo-dlya-kontrolya-vypolneniya-programm-ego-varianty.html" target="_blank" rel="follow" title="База патентов СССР">Устройство для контроля выполнения программ (его варианты)</a>
Предыдущий патент: Устройство для обнаружения и локализации ошибок при передаче информации
Следующий патент: Устройство тестового контроля цифровых блоков
Случайный патент: Имитатор отрицательной индуктивности