Устройство для контроля времени выполнения программ
Иллюстрации
Показать всеРеферат
СОЮЗ СОВЕТСНИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК (l 9) (l l) (51)4 G 06 F 11/28
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР
flO ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ
ОПИСАНИЕ ИЗОБРЕТЕНИЯ ".
Н АВТОРСКОМУ СВИДЕТЕЛЬСТВУ Д1 „».,—
J с
1 (21 ) 3714481/24-24 . (22) 11.03.84 (46) 30.08.85. Бюл. М 32 (72) Л.В.Дербунович, Т.П.Беличенко, А.Н.Баженов, А,Н.Мызь, А.В.Моисеев и И.Г.Либерг (71) Харьковский политехнический ордена Ленина институт им.В.И.Ленина (53) 681.3 (088.8) (56) Авторское свидетельство СССР
У 439813, кл.G 06 F 11/00,1972.
R.W.Marczynski, е.t.s. А method
for detection of microcomputer
malfunctions. Prace Instytut Podstaw
Informatyki, PAN, Warsaw,1978, В 308, р.12, Fig.4. .(54)(57 ) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ВРЕМЕНИ ВЫПОЛНЕНИЯ ПРОГРАММ, содержащее первый и второй счетчики времени, элемент ИЛИ, четыре элемента И, тактовый вход устройства соединен с первым входом первого элемента И, выход которого соединен с первыми входами второго и третьего элементов И, выходы второго и третьего элементов И соединены со счетными входами первого и второго счетчиков соответственно, выход четвертого элемента И соединен с первым входом элемента ИЛИ выход которого является выходом неисправности уст ройства, о т л и ч а ю щ е е с я тем, что, с целью повышения достоверности контроля, в устройство вве" дены регистр контрольной метки, регистр текущей метки, блок сравнения, блок ассоциативной памяти, блок индикации, дешифратор адреса, триггер и дешифратор кода команды, и\ричем информационный вход устройства соединен с информационными входами первого и второго счетчиков, первым информационным входом регистра контрольной метки и информационным входом дешифратора кода команд, вход разрешения записи устройства соединен с входом записи регистра текущей метки и с входомразре-, шения дешифрации дешифратора кода команд,выход которого соединен с первым входом четвертого элемента И и входом установки нуля триггера, первый выход.дешифратора адреса соединен с входом записи первого счетчика и с входом установки- в "!"òðèããåðà,sûõoä которого соединен с вторым входом первого элемента И, адресный вход устройства соединен с информационными входами дешифратора адреса и регистра текущей метки, информационный выход которого соединен с вторым информационным входом регистра контрольной метки, вход идентификации адреса устройства соединен с тактовым входом дешифратора адреса, второй и третий выходы которого соединены соответственно с входом записи второго счетчика времени и первым входом записи регистра контрольной метки, выход которого соединен с.первыми информационными входами блока сравнения и блока ассоциативной памяти, выход регистра текущей метки соединен с вторыми информационными входами блока сравнения и блока ассоциативной памяти, выход блока сравнения соединен с входом запуска блока ассоциативной памяти, первый и вто. рой выходы которого соединены со11 76336
30 ответственно с вторым входом элемента ИЛИ и вторым входом записи регистра контрольной метки, выход переполнения второго счетчика време ни соединен с инверсным входом элемента ИЛИ, ьыход которого соединен
Изобретение относится к вычислительной технике, предназначено для программно-уплотняемого контроля правильности выполнения рабочей 1IpOp раммы в цифровых управляющих и информационных системах реального времени и может быть использовано для контроля хода выполнения программ в микропроцессорных АСУ.
Цель изобретения — повышение 10 достоверности контроля выполнения программы за счет одновременного програм>но-уплотняемого контроля времени выполнения программы и направления переходов между сегментами программного графа.
На фиг,1 представлена структурная электрическая схема предлагаемого устройства; на фиг.2 — пример выполнения структурной электрической схемы блока ассоциативной памяти; на фиг.3 — пример построения временного графа и графа переходов программы.
Устройство фиг.1) содержит счетчики 1 и 2 времени, дешифратор 3 кода команды, вход 4 данных устройства, адресный вход 5 устройства, вход 6 разрешения записи устройства, тактовый вход 7 устройства, вход 8 идентификации адреса устройства, дешифратор 9 адреса, триггер 10, элементы И 11 - 14, элемент ИЛИ 15, регистр 16 контрольной метки, регистр 17 текущей мет35 ки, блок 18 сравнения, блок 19 ассоциативной памяти, блок 20 индикации, выход 21 устройства.
Информационные входы счетчиков 1 и 2 времени, регистра 16 контрольной метки объединены с информационным входом дешифратора 3 кода команды и подключены к входу 4 данных устройства, вход разрешения дешифра« с входом .блока индикации, выход переполнения первого счетчика соединен с вторыми входами второго и четвертого элементов И и инверсным входом третьего элемента И. ции дешифратора 3 кода команды соединен с входом записи регистра 17 текущей метки и подключен к входу 6 разрешения записи устройства, выход соединен с входом установки в "0" триггера 10 и первым входом элемента
И 14, тактовый вход дешифратора 9 адреса подключен к входу 8 идентификации адреса устройства, информационный вход соединен с информационным входом регистра 17 текущей метки и подключен к адресному входу 5 устройства, первый выход соединен с входом записи счетчика 1 времени и входом установки в "1" триггера 10, второй выход соединен с входом записи счетчика 2 времени, третий — с первым входом записи регистра 16 конт рольной метки, первый вход элемента
И 11 подключен к тактовому входу 7 устройства, второй вход соединен с выходом триггера 10, а выход соединен с первыми входами элемен» тов И 12 и 13, вторые входы элементов И 12 - 14 подключены к выходу переполнения счетчика 1 времени, а выходы - соответственно к счетным входам счетчиков 1 и 2 времени и первому входу элемента ИПИ 15, к инверсному входу которого подключен выход переполнения счетчика 2 вре» мени. Второй информационный вход регистра 16 контрольной метки соединен с первым информационным выходом регистра 17 теку щей метки, второй вход записи соединен с первым выходом блока 19 ассоциативной памяти, второй информационный вход которого соединен с вторым информационным входом блока 18 сравнения и со вторым информационным выходом регистра 17 текущей метки, информационный выход регистра 16 контрольной метки соединен с первыми информационными вхо1176336 4 l0
35 дами блока 18 сравнения и блока 19 ассоциативной памяти, выход блока
18 сравнения соединен с входом запус ка блока 19 ассоциативной памяти, второй выход которого соединен с вторым 5 входом элемента ИЛИ 15, выход которого соединен с входом блока 20 индикации и подключен к выходу 21 устройства.
Блок 19 ассоциативной памяти (фиг.2) содержит ) элементов 22.1, 22.2,... 22.и программируемых постоянных запоминающих устройств (ППЗУ), н элементов 23.1 23.2..., 23. и сравнения. элемент ИЛИ 24, элементы И 25 и 26, элемент HF, 27.
Адресные входы элементов 22.1, 22.2. ... 22. и ППЗУ подключены к первому информационному входу блока, выходы соединены соответственно с первыми входами 11 элементов 23.1, 23.2 ... 23 п сравнения, вторые входы которых подключены к второму информационному входу блока, выходы соединены с и входами элемента
ИЛИ 24, выход которого соединеи с первым входом элемента И 25 и входом элемента НЕ 27, выход которого соединен с первым входом элемента И26,второй вход которого соединен с вторым входом элемента И 25 и подключен к входу запуска блока, выход подключен к второму выходу блока, причем выход элемента И 25 подключен к первому выходу блока.
Устройство работает следующим образом.
В исходном состоянии счетчики
1 и 2 времени, регистр 16 контрольной метки, регистр !7 текущей метки обнулены, триггер 10 сброшен в иу- 40 левое состояние (c6poc происходит при подаче питания на устройство), элементы И 12 и 14 открыты, элемент
И 13 по инверсному входу закрыт сигналом с выхода переполнения счет- 45 чика 1 времени, элемент И 11 закрыт, элемент ИЛИ 15 закрыт, блок 20 индикации отключен.
Для обеспечения работы устройства необходимо построить для контролируемой программы временной граф и граф переходов.
В качестве контролируемой программы берется готовая, полностью отлаженная программа. 55
Для построения временного графа программу разбивают на программные сегменты, время выполнения которых фиксировано. Временной граф пред ставляет собой непустое множеетвовершин и дуг, их соединяющих.
Вершины кодируют начало и конец, команды, а дуги — временные интервалы, соответствующие времени выполнения команды.
Пример построения временного сег мента приведен на фиг.За, где
ti (i = 1 + 19) — времена выполне» ния отдельных команд. Минимальное время выполнения временного сегмента тiï 1 2 3 3 И В 6 П @ э максимальное время выполнения временного сегмента х 1 3 Ф 5 6 8 9 н
11 а 9
Для построения графа переходов программу разбивают на сегменты следующим образом. К разрядов адреса команды представляют в виде двух частей: изменяемой части, содержащей разрядов, в неизменяемой части, содержащей (К-i) разрядов, называемой меткой сегмента. В сегмент включаются команды с одинаковой метс кой. Количество разрядов метки определяет длину сегмента. При необходи» мости увеличения или уменьшения длины сегмента достаточно соответственно уменьшить или увеличить длину метки. Например, при 16-разрядном адресе команды и 8-разрядной метке сегмент содержит 256 команд, при 7-разрядной метке - 512 команд, при 9-разрядной метке — 128 команд.
Граф переходов, с помощью которого проверяется принадлежность адреса выполняемой команды к данному сегменту и разрешение перехода к дру. гому сегменту, представляет собой множество вершин и дуг, их соединяющжс. Вершинами графа являются метки сегментов, а дугами — переходы внутри сегмента или между сегментами, Переходы внутри сегмента кодируются петлей. Устройство разрешает переходы только между смежными вершинами графа, все другие переходы яв-ляются запрещенными. Разрешенные переходы записываются в ППЗУ блока
19 ассоциативной памяти.
Пример построения графа переходов приведен на фиг.Зб, где 22,26,31,27, 28,29 — метки сегментов. Переход от гегмента "26" к сегменту "22" являет
1176336 ся разрешенным переходом, а переход
t! I! t! 7 !!
2 6 - 2 8 - запрещенным .
Контроль в устройстве сводится к одновременному контролю длительности выполнения программы и соответ с твия выполняемых программой переходов графу переходов:.
В начале каждого контролируемого сегмента происходит программное обращение МП-системы к устройству с помощью команд обращения к внешним устройствам, например, команда вывода ОИТ .
Устройство для МП-системы является внешним. Связь между устройством и
МП-системой происходит через интерфейстную магистраль.
Устройство использует следующие управляющие сигналы MII-системы. сигнал идентификации машинного цикль выборки команды (вход 6 устройства); сигнал вьвода информации из МП на внешнее устройство (вход 8 устройства); тактовая частота, поступающая от генератора ИП-системы вход 7
/ устройства).
В устройстве программно-доступными блоками являются счетчики 1 и 2 времени и регистр 16 контрольной метки, т.е. каждому блоку соответствует свой программно-неизменяемый номер, указываемый в команде вывода.
Начало каждого временного сегмента обозначается программным обращением к счетчикам 1,2 времени, причем в счетчик 1 времени записывается минимальное время Т ;„ выполнения временного сегмента программы, а в счетчик 2 времени - разница между макснмальнь;м и минимальным временем Т = Т „- Т.„,„.
Конец каждого временного сегмента обозначается специальной командой, например, NOP » нет операции. Э=а команда не должна использоваться для других целей.
При программном обращении к счетчику 1 времени на адресном входе 5 устройства появляется адрес (программно-неизменяемый номер) счетчика 1, сопровождающийся управляющим сигналом на входе 8 идентификации адреса устройства. Управляющий сигнал разрешает работу дешифратора 9 5 адреса, который вырабатьвает на своем первом выходе сигнал, разрешающий запись с входа 4 данных устройства кода временного интервала
Т!!,, в счетчик 1 времени и переводящий триггер 10 в единичное состояние. На единичном выходе триггера 10 появляется сигнал "Начало контроля".
Аналогично записи в счетчик 1 времени производится запись временного интервала Т в счетчик2 времени сигналом с второго выхода дешифрато! ра 9 адреса при программном обращении к счетчику 2 времени.
Сигнал "Начало контроля откры» вает элемент И 11, который разрешает
15 прохождение тактовых импульсов с тактового входа 7 устройства через открытый элемент И 11 на счетный !! !! вход - 1 счетчика 1 времени, содержимое которого уменьшается по мере
20 выполнения команд контролируемого временного сегмента . Ко гда счетчик 1 времени обнулится, . сигнал обратного переноса с e ro выхода з акры вает элементы И 1 2, 1 4 и открывает по
25 инверсному входу элемент И 13, через который тактовые импульсы проходят на счетный вход "-1" счетчика 2 времени, содержимое которого уменьшается на единицу с приходом каждого тактоЗО вого импульса. Сигнал "конец контроля" формируется на выходе дешифра= тора 3 кода команды в случае появления на входе 4 данных устройства кода команды NOP сопровождающегося
35 управляющим сигналом на входе 6 разрешения записи устройства.
Если дешифратор 3 кода команды обнаружит признак конца временного сегмента раньше, чем обнулится счет40 чик 1 времени (что соответствует выполнению сегмента за время, меньше Т и), то сигнал !!Конец контроля" через открытый элемент И 14, элемент ИЛИ 15 включит блок 20 инди45 кации, поступит на выход 21 устройства и будет воспринят ИП-системой как сигнал ошибки для снятия готовности системы.
Одновременно сигнал !Конец конт5О роля" переводит триггер 10 в нулевое состояние, закрывая по второму входу элемент И 11. Поступление тактовых импульсов на счетный вход "-1" счетчика 1 прекращается.
5 Если дешифратор 3 кода команды обнаружит конец проверяемого временного сегмента после обнуления счетчика 1 времени и до обнуления счет1176336 чика 2 времени (что соответствует выполнению сегмента за время
Т; (Т„„
11 нец контроля переводит в нулевое состояние триггер 10, закрывает элемент И 11 и прекращает поступление тактовых импульсов на счетчик
2 времени. Так как в этот момент элемент И 14 закрыт, то сигнал "Конец 10 контроля" не проходит на выход 21 устройства и блок 20 индикации.
Если счетчик 2 времени обнулится до появления команды NOP (что соответствует выполнению программного сегмента за время, большее Т „ ), -.о сигнал обратного переноса с выхода счетчика 2 времени через инверсный вход элемента ИЛИ 15 включит блок 20 индикации, поступит на выход 21 уст- 20 ройства и будет. воспринят МП-системой как сигнал ошибки для снятия готовности системы.
Одновременно с контролем времени выполнения программ в устройстве осу. 25 ществляется контроль соответствия выполняемых программой переходов графу переходов.
В регистр 16 контрольной, метки программой записывается. контроль- 30 ная метка только один раз в начале контроля. В дальнейшем в процессе контроля смена метки происходит аппаратным путем. Запись контрольной метки в регистр 16 контрольной 35 метки в начале контроля происходит следующим образом.
При программном обращении к регистру 16 контрольной метки на адресном входе 5 появляется номер 40 регистра 16, который расшифровывается дешифратором 9 адреса. На третьем выходе дешифратора 9 адреса появляется сигнал, разрешающий запись кода метки с входа 4 данных в регистр 16 45 контрольной метки.
В регистр 17 текущей метки записывается текущая метка следующим образом. В каждом цикле выборки команды на адресном входе 5 появляется 50 адрес выполняемой команды, принадлежащей контролируемому сегменту графа переходов (т.е. текущая метка1 на входе 6 разрешения записи устройства - сигнал, идентифицирующий цикл 55 выборки команды, который разрешает запись текущей метки в регистр 17 текущей метки.
С информационного выхода регистра 16 контрольной метки и с.второго информационного выхода регистра 17 текущей метки коды меток поступают соответственно на первый и второй информационные входы блока 18 сравнения, где коды сравниваются. Пока текущая метка принадлежИт проверяемому сегменту,. при правильном выполнении программы коды меток должны совпадать.
Несовпадение меток может произойти при наличии в сегменте команды, передающей управление другому сегменту в соответствии с графом переходов; при попытке программы выполнить запрещенный переход, что обусловлено наличием неисправности в МП-системе, При несовпадении меток на выходе блока 18 сравнения появляется сигнал, поступающий на управляющий вход блока 19 ассоциативной памяти.
Одновременно на первый и второй информационные входы блока 19 ассоциативной памяти поступают те же коды контрольной и текущей. меток.
Блок 19 ассоциативной памяти проверяет, является ли текущая метка разрешенной графом переходов. Если текущая метка разрешена, на первом выходе блока появляется сигнал "Смена метки", в противном случае на втором выходе появляется сигнал "Ошибка .
Сигнал "Смена метки" поступает на второй вход записи регистра 16 контрольной метки, разрешая перезапись кода текущей метки из регистра 17 текущей метки. Таким образом происходит смена контрольной метки аппаратным путем;
Следующие текущие метки аналогично сравниваются с новой конт рольной меткой.
В случае запрещенного перехода сигнал "Ошибка поступает на второй вход элемента ИЛИ 15, включает блок
20 индикации и поступает на выход 21 устройства для снятия готовности
MII-системы.
Блок 19 ассоциативной памяти работает следующим образом.
Одновременно коды контрольной и текущей меток поступают соответственно на первый и второй информационные входы блока. Код контрольной метки является адресом. для ц элемен1176336 тов 22.1, 22.2 ... 22. и ППЗУ, в ячейках которых по этому адресу хранится и меток, переходы в которые иэ контрольной метки разрешены графом переходов. Из и элементов
22.1, 22 ° 2,.... 22. й- ППЗУ считываются и. меток; которые поступают на первые входы и элементов 23.1.
23.2, ... 23. и сравнения. На вторые, 10 входы и элементов. 23.1 23.2, ...23.п сравнения поступает код текущей метки.
Если текущая метка совпадает с
i --й меткой, разрешенной графом перехо дов, то на выходе элемента 23, i срав- !5 нения появится сигнал, поступающий на -й вход элемента ИЛИ 24, с выхода,которогб сигнал проходит через элемент И 25, открытый по второму входу сигналом с входа запуска блока 20 на первый выход блока как сигнал разрешения "смены метки"< Если теку» щая метка не. сравнивалась ни с одной иэ И меток (что означает попытку программы выполнить запрещенный переход), то сигнал об ошибке с выхода элемента ИЛИ 24 через элемент
НЕ 27, элемент И 26 проходит на второй выход блока;
Таким образом, устройство выдает 30 сигнал ошибки, если измеренное время выполнения программы меньше расчетного; измеренное время выполнения программы больше расчетногд, а также при попытке программы выполнить запре щенный переход.
Устройство значительно повышает достоверность контроля правильности выполнения программ, что имеет важное значение в управляющих вычислительных системах, работающих в реальном времени.
Дополнительным преимуществом пред. лагаемого изобретения является при» менение его в любых синхронных вычислительных системах. с одним потоком информации и с постоянными программа мие
Предлагаемое устройство для конт" роля выполнения программы выгодно отличается от прототипа, так как использование новых элементов." регистра контрольной метки, регистра текущей метки, блока сравнения, дешифратора адреса, триггера, дешифратора кода команды и блока ассоциативной памяти обеспечило одновременный контроль выполнения программы по времени в соответствии с временным графом и контроль направления перехо» дов в соответствии с графом переходов,а это, в свою очередь, исключило возможность выдачи несанкционирован-. ных команд системой управления на объект при сбоях в аппаратуре.
>176336
1176336
1176336
Составитель И. Сигалов
Редактор И.Ковальчук Техред 3.Палий Корректор ц. Максимишинеа
Заказ 5363/49 Тираж 710 Подписное
ВНИИПИ Государственного комитета СССР по делам иэобретений и открытий
113035, Москва, Ж-35, .Раушская наб.,д. 4/5 "
Филиал ППП Патент", г. Ужгород, ул. Проектная, 4