Устройство для контроля кода программ

 

Изобретение относится к вычислительной технике, а именно к средствам контроля устройств управления. Целью изобретения является повышение достоверности контроля. Устройство содержит блоки 1 и 2 памяти, регистры 3 и 4, мультиплексоры 5 и 6, схему 7 сравнения и элементы И 8 и 9. При этом в устройстве каждой вершине графсхемы алгоритма ставится в соответствие свой индивидуальный признак, что позволяет свести контроль хода программы к сопоставлению признаков каждых двух соседних вершин и обеспечить тем самым гарантированное выявление всех одиночных ошибок на шине адреса и в слове команды на линейных участках программ и при переходе к точкам схождения ветвей графсхемы алгоритма программы. 2 ил.

СОЮЗ СОВЕТСНИХ

СОЦИАЛИСТИЧЕСНИХ

РЕСПУБЛИК щ) G 06 F 11/28

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

Н А ВТОРСКОМ У СВИДЕТЕЛЬСТВУ

ГОСУДАРСТВЕННЫЙ НОМИТЕТ

ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ

ПРИ ГКНТ СССР (21) 4481 240/24-24 (22) 14 .06.88 (46) 15.05.90. Бюл. h - 18 (71) Институт технической кибернетики АН БССР (72) Е .И.Левин, С.Н.Демиденко, А.С.Календарев и Э.Б.Куновский (53) 681.3(088.8) (56). Авторское свидетельство СССР

В 1180888, кл. G 06 F 9/22, 1985.

Авторское свидетельство СССР ! . 1300479, кл. С 06 F 11/28, 1987. (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ КОДА

ПРОГРАИ11 (57) Изобретение относится к вычисли- тельной технике, а именно к средствам контроля устройств управления. Целью

Изобретение относится к вычислительной технике, а именно к устройствам контроля правильности кода программ.

Цель изобретения — повышение достоверности.На фиг.l изображена структурная схема устройства для контроля кода программ, на фиг ° 2 — пример графсхемы алгоритма программы.

Устройство содержит первый 1 и второй 2 блоки памяти, первый 3 и второй 4 регистры, первый 5 и второй

6 мультиплексоры, схему 7 сравнения, первый 8 и второй 9 элементы И.

Устройство работает следующим образом.

Известно, что любая программа может быть представлена в вир.-:, графсхе„„SU„„1564632 А 1

2 изобретения является повышение достоверности контроля. Устройство содержит блоки l и 2 памяти, регистры 3 и

4, мультиплексоры 5 и 6, схему 7 сравнения и элементы И 8 и 9. При этом в устройстве каждой вершине графсхемы алгоритма ставится в соответствие свой индивидуальный признак, что позволяет свести контроль хода программы к сопоставлению признаков каждых двух соседних вершин и обеспечить

1ем самым гарантированное выявление всех одиночных ошибок на шине адреса и в слове команды на линейных участках программ и при переходе к точкам схождения ветвей графсхемы алгоритма программы. 2 ил. мы ее алгоритма (ГСА). Пример ГСА приведен на фиг.2, где А — начальная вершина, A конечная вершина.

Процесс исполнения программы выражается в движении по ГСА из А и A„ по одной из возможных ветвей.

Поставим каждой вершине ГСА в соответствие некоторое двоичное число.

Причем так, что полученное множество двоичных чисел не имеет одинаковых элементов и каждой вершине соответствует отличное от других значение двоичного кода. В этом случае исполнение программы сопровождается сменой описанных кодов, а в силу неповторяемости кодов такая смена происходит на каждом шаге программы. Поэтому для контроля хода программы достаточно проконтролировать смену кодов вер1564632 шин ГСА в каждые два соседние такта работы микропроцессорной системь{, При анализе ГСА выделим особые { ..1чки. К особым точкам первого кода относятся условные вершины ГСА, в которых происходит разделение на несколько ветвей, К особым точкам второго рода относятся вершины, в которых происходит объединение ветвей. Участки ГСА, заключенные между особыми точками, явЛяются линейными.

Для контроля хода фрагментов программы, содержащих линейные участки

И особые точки первого рода, вос- 15 г{ольэуемся следу{ощим приемом. Дпя каждой вершины сформируем код самой вершины и код последующей вершины.

Последний разместим в буфер однотактной задержки. А код вершины сравним с извлеченным иэ буфера задержки кодом. При исправной работе этот код должен совпадать с кодом текущей верШины, а его загрузка должна быть проведена на предшествующем такте. 25

Для контроля хода фрагментов программы, содержащих линейные участки и особые точки второго рода, воспользуемся следующим приемом.. В каждой вершине сформируем код предшествую- 3О щей вершины и код текущей вершины.

Код предшествующей вершины сравним с содержимым буфера однотактной задержки, в который затем разместим код текущей вершины. При отсутствии ошибок в исполнении ГСА обеспечивается равенство сравниваемых коцов.

При воспроизведении программы из памяти команд микропроцессорной системы извлекаются слова команд програм- щ мы. Извлечению каждого слова предшествует появления сигнала чтения памяти команд. Каждой команде соответствует единственное значение адреса ее размещения в памяти команд, Из этого следует, что отображение команд в адресную область памяти команд ставит в соответствие каждой вершине

ГСА индивидуальный двоичный код. Поэтому адрес команды может использоваться в качестве кода вершины ГСА.

Достоинством такого подхода является стсутствие необходимости в средствах генерации кодов вершины ГСА.

При работе микропроцессорной сис55 темы большее значение имеет правиль-. ность хранения и извлечения слоя команд. Каждой вершине ГСА соответствует единственная команда, но одна и та же команда может соответствовать нескольким вершинам I CA,. Для контроля хода программы с учетом контроля правильности слон команд каждой вершине ГСА ставим в соответствие двоичный код, старшие разрядь. которого есть адрес вершины, а младшие — код соответствующей команды. Назовем его словом адреса — команды. Полученный двоичный код однозначно характериэует вершину и может служить кодом вершины ГСА в процедуре контроля.

Для реализации контрольных функций предлагаемое устройство подключается к микропроцессорной системе так, что шина, по которой поступают командные слова,, соединена с первым информационным входом устройства, шина адреса системы соединения — с вторым информационным входом устройства, на управляющий вход устройства подается сигнал чтения памяти команд системы. Нарушение хода программы фиксируется устройством сигналом на своем выходе. Пусть адресная шина микропроцессорной системы имеет разрядность m, а слово команды — разрядность и. Тогда регистры 4 и 3 имеют разрядность соответственно m и и, мультиплексор 5 имеет m-разряднь{е входы и выход, мультиплексор 6 имеет (m+n)-разрядные входы и выход. Блоки памяти 1 и 2 имеют m-разрядный адресный вход и (m+n+I)-разрядный выход, Контроль хода программь{ реализуется различно для разных вершин ГСА, Для вершин, лежащих На линейных фрагментах и образующих особые точки первого рода, контроль осуществляется путем сравнения двоичного кода адреса — команды предшествующего такта, считываемого с {зыходов регистров 3 и 4 через мультиплексор 5, с контрольным кодом, считываемым с вторых выходов блока 1 памяти через мультиплексор 6. Контрольное число, извлекаемое с вторых выходов блока 1 памяти, представляет собой значения слова адреса— команды предшествующей вершины ГСА.

Если значения сигналов на входах схемы 7 сравнения равны„ то очередной переход выполнен верне. В противном случае фиксируется нарушение нормального хода исполнения команды. Для вершин ГСА, образующих особые точки в".орого рода, контроль осуществляется иначе. При этом на одну группу входов схемы 7 сравнения подается код, 5 15646 образованный адресом текущей команды считываемой через первый мультиР плексор 5 с второго информационного входа системы, и кодом предшествующей команды, считываемой с выхода первого регистра 3. На вторую группу входов схемы 7 сравнения через второй мультиплексор 6 с вторых выходов блока 2 памяти поступает контрольное число, извлекаемое по адресу предшествующей команды. При нормальной работе оно должно быть равно коду, поступающему на первую группу входов схемы 7 сравнения.

Управление режимами работы мультиплексоров 6 и 7 осуществляется первым элементом И 8, на входы которого поступают сигналы с первых выходов блоков 1 и 2 памяти. 20

Блок 1 памяти заполнен следующим образом.

В вершинах, являющихся особыми точками второго рода, на его первом sbr ходе присутствует единичный сигнал, 25 а код второго выхода есть номер особой точки второго рода в общем ряду таких точек в ГСА прн любом способе ° измерения. Всем прочим вершинам соответствует нулевое значение на пер- Зп вом выходе блока 1 памяти, а на его втором выходе присутствует код, содержащий слово адреса — команды предшествующей вершины ГСА.

Блок 2 памяти заполнен следующим образом. При появлении на его входах

35 адреса вершины, предшествующей особым точкам второго рода, на первом выходе блока 2 памяти появляется единичный сигнал, При этом на вторых выхо- 4Q дах блока формируется код, содержащий адрес последующей вершины, являющейся особой точкой второго рода, и слова команды, адрес которой подан на вход блока. При всех иных значениях сигнала на входе блока на его первом выходе присутствует нулевой сигнал, а состояние вторых выходов несущественно.

Рассмотрим работу устройства на некотором шаге программы при отработке линейного фрагмента или содержащего особые точки первого рода. При этом первый выход первого блока 1 памяти находИтся в невозбужденном состоянии и блокирует первый элемент И 8. Нулевой сигнал на выходе элемента И 8 поступает на управляющие входы первого и второго мультиплексоров 5 и 6. При

32 6 этом на выход обоих мультиплексоров передается информация с их вторых групп входов. Пусть в результате выполнения предшествующего шага в регистре 3 хранится некоторое значение команды, а в регистре 4 — некоторое значение адреса. Выход регистра 4 через вторую группу входов перного мультиплексора 5 поступает на старшие разряды первой группы входов схемы 7 сравнения. На младшие разряды первой группы входов этой схемы поступает выход регистра 3. При выполнении текущего шага на адресной шине формируется адрес текущей команды. Этот адрес поступает на вход первого блока 1 памяти, обеспечивая появление на его вторых выходах контрольного числа. Выбранное контрольное число поступает на вторую группу входов второго мультиплексора 6 и с его выходов — на вторую группу входов схемы 7 сравнения. Сигналы на ее обоих входах в случае их равенства формируют нулевой сигнал, закрывающий второй элемент И 9. Затем на управляющий вход устройства подается сигнал чтения памяти команд, который поступает на второй .вход второго элемента И 9. Поскольку элемент И 9 заперт сигналом с выхода схемы 7 сравнения, его выход остается в невозбужденном состоянии, что свидетельствует об отсутствии ошибки.

Одновременно с сигналом чтения памяти команд на первый информационный вход устройства подается очередное слово команды. По заднему фронту сигнала чтения памяти слово адреса заносится в регистр 4, а слово команды заносится в регистр 3. При записи в регистры 3 и 4 равенство чисел на входах схемы 7 сравнения нарушается и она выдает сигнал, открывающий второй элемент. И 9. Но так как. в это время сигнал на его втором входе уже отсутствует, это не приводит к формированию сигнала на выходе устройства.

На следующем шаге программы устройство выполняет аналогичные действия и т д, При нарушениях в работе микропроцессорной системы, приводящих к искажениям на адресной шине или в командном слове, соответствующие ошибки обнаруживаются устройством. При ошибке в слове, поступившем на второй информационный вход устройства, 1564632 на вход блока 1 памяти поступит неверный адрес текущей вершины ГСА. При этом с его вторых выходов на вторую группу входов схемы сравнения пасту5 пит код, не совпадающий с содержимым регистров 3 и 4. Например, при ошибочном переходе из А в С вместо А в

В (фиг.2) на вторых выходах первого блока 1 памяти появится слово адреса — команды, соответствующей вершине С. Вместе с тем в регистрах 3 и

4 хранится слово адреса — команды, соответствующее .вершине А. Поэтому на выходе схемы 7 сравнения формируется единичный сигнал, поступающий на элемент И 9. При поступлении сигнала чтения памяти команд он приходит на второй вход элемента И 9 и открывает его, тем самым возбуждается 2О выход устройства, что свидетельствует о наличии ошибки.

При возникновении ошибки на первом информационном входе устройства поступивший код команды фиксируется в регистре 3 задним фронтом сигнала чтения памяти команды. На следующем такте на второй информационный вход устройства поступает новое значение текущего адреса. При этом извлекаемое ЗО по вторым выходам первого блока 1 памяти контрольное слово в области младших разрядов не совпадает с содержимым регистра 3. Такое расхождение приведет к появлению на выходе устройства сигнала ошибки по описанной схеме. Следовательно, указанные ошибки обнаруживаются.

Вьппе описана. работа устройства на линейных участках программы или уча- 4О стках, содержащих особые точки первого рода.

Пусть программа достигла вершины, предшествующей особой точке второго 45 рода. При этом адрес вершины фиксируется в регистре 4 задним фронтом сигнала чтения памяти команд. Сигнал с выхода регистра 4 поступает на вход блока 2 памяти, обеспечивая появление на его первом выходе единичного сигнала. Данный сигнал поступает на второй вход первого элемента И 8. На втором выходе блока 2 памяти появляется код, состоящий из адреса следующей вершины ГСА и слова команды текущей . вершины. Этот код поступает на первую группу входов второго мультиплексора

6. Код командного слова фиксируется в регистре 3 задним фронтом того же сигнала чтения памяти команд.

Вслед за этим на второй информационный вход устройства поступает адрес вершины, являющейся особой точкой второго рода. Он поступает на вход первого блока 1 памяти, первый выход которого при этом возбуждается в единичное состояние. Это приводит к появлению единичного сигнала на выходе первого элемента. И 8. Данный сигнал поступает на управляющие входы первого 5 и второго 6 мультиплексоров, в результате чего на их выходы подается информация с первых входов.

При этом .на первую группу входов схемы 7 сравнения поступает сигнал, старшие разряды которого образованы адресом текущей вершины, а младшие — командным словом предшествующей вершины.

На вторую группу входов схемы 7 сравнения поступает сигнал с второго выхода блока 2 памяти. При отсутствии ошибок сигналы на обоих группах входов схемы 7 сравнения совпадают, а на выходе схемы сравнения появляется нулевой сигнал, который передается на первый вход второго элемента И 9 и блокирует его. Поэтому поступление сигнала чтения памяти команд не приводит к возбуждению выхода устройства. П этому сигналу адрес текущей команды и ее код заносятся соответственно в регистры 4 и 3. На первом выходе второго блока 2 памяти появляется нулевой сигнал и, поступая на второй вход первого элемента И 8, блоки.рует его. Это приводит к переключению первого 5 и второго 6 мультиплексоров, на выходы которых .теперь подаются их вторые входы. Дальнейшая работа устройства аналогична описанной.

Рассмотрим процесс обнаружения ошибки на шине адреса, приводящей к несанкционированному переходу из любой вершины линейного участка в особую точку второго рода (А Е фиг.2).

Появляющийся при этом единичный сигнал на первом выходе блока 1 памяти не приводит к „возбуждению выхода первого элемента И 8, так как на втором его входе присутствует блокирующий сигнал . Поэтому на. вторую группу входов схемы 7 сравнения поступает слово адреса " команды текущей особой точки второго рода с вторых выходов блока 1 памяти. На первую группу входов схемы 7 сравнения поступает слово ад1564632 реса — команды из регистров 3 и 4, т.е. той вершины, с которой произошел несанкционированный переход, В силу несовпадения сигналов на обеих группах входов схема сравнения формирует единичный сигнал на первом входе второго элемента И 9. Следовательно, поступление сигнала чтения памяти команд приводит выход устройства в возбужденное состояние, что свидетельствует об обнаружении ошибки.

Рассмотрим процесс несанкционированного перехода из вершины, предшествующей особой точке второго рода в другую особую точку второго рода.

Пусть произошел переход из вершины

С в вершину Е. Тогда появившийся на первом выходе первого блока 1 памяти сигнал совместно с сигналом на пер- 20 вом выходе второго блока 1 памяти переведет выход первого элемента И 8 в единичное состояние, что приведет к переключению мультиплексоров 5 и 6.

Тогда на первую группу входов схемы 25

7 сравнения поступит код, состоящий из адреса текущей вер-лины Е и кода команды, с которой произошел переход, взятого из регистра 3. 11а вторую группу входов схемы 7 сравнения 3р поступит код, содержащий слово адреса — команды вершины С, с которой произошел переход. Очевидно, эти коды не совпадут в области старших разрядов и на выходе схемы 7 сравнения формируется единичный уровень. Поэтому при поступлении сигнала чтения памяти команд на выходе устройства появляется сигнал ошибки. . Сходным образом устройство рабо- 4О тает и при несанкционированных переходах из одной особой точки второго рода в другую. При этом также обнаруживается искажение на адресной шине.

Для всех описанных режимов аналогичные рассуждения показывают обнаруживаемость ошибок также в слове команды. о Р м у л а и з обретения

Устройство для контроля кода программ, содержащее первый блок памяти, схему сравнения, первый рг I ll(тр, Il вый и второй элементы 11, призеM I p :.-па входов устройства для падключ с Illa l к группе адресных выходов контролируемого устройства соединена с. групп и адресных входов первого блока памяти, вход устройства для подключения к выходу чтения контролируемого устройства соединен с входом записи перного регистра и с первым входом первого элемента И, выход которого является выходом ошибки устройства, группа выходов первого регистра соединена с младшими разрядами первой группой входов схемы сравнения, группой выходов неравенства которой соединена с группой информационных входов пер— вого элемента И, о т л и ч а ю щ е е с я тем, что, с целью повышения достоверности контроля, н устройство введены второй блок памяти, второй регистр, первый и второй мультиплексорь., причем г -,уппа входов устройства для подключения к группе выходов команд контролируемого устройства соединена с группой информационных входов первого регистра, группа адресных входов первого блока памяти соединена с группой информационных входов второго регистра и с первой группой входов первого мультиплексора, группа выходов которого соединена со старшими разрядами, первой группы входов схемы сравнения, управляющий вход первого элемента И соединен с входом записи второго регистра, группа выходов которого соединена с второй группой входов первого мультиплексора и с группой адресных входов второго блока памяти, выходы первого и второго блоков памяти соединены соответственно с первым и вторым входами второго элемента И, группа выходов втoporc мультиплексор соеди-, нена " второй группой входов схемы сравнения, выход второго элемента И соедин "н с управляющими входами первого и второго мультиплексоров, группы выходов первого и второго блоков памяти соединены соответственно с первой и второй группами информационных входов вIopol мультиплексора.

156

Составитель И.Сигалов

Техред N.Õîäàíè÷ Корректор И.Муска

Ре дактор М.Келемеш

Тираж 565

Заказ 1161

Подписное

ВНИИПИ Государственного комитета по изобретениям и открьггиям при ГКНТ СССР

113035, Москва, И-35, Раушская наб., д. 4/5

Производственно-издательский комбинат "Патент", r, Ужгород, ул. Гагарина, 101

Устройство для контроля кода программ Устройство для контроля кода программ Устройство для контроля кода программ Устройство для контроля кода программ Устройство для контроля кода программ Устройство для контроля кода программ 

 

Похожие патенты:

Изобретение относится к вычислительной технике и может быть использовано в радиоэлектронной промышленности в процессе серийного производства микропроцессорных систем

Изобретение относится к вычислительной технике и может быть использовано для отладки и оперативного контроля сложных цифровых устройств различного назначения

Изобретение относится к вычислительной технике, может быть использовано при построении надежных микропроцессорных систем (МПС) и обеспечивает контроль МПС с тремя шинами

Изобретение относится к вычислительной технике и может быть использовано для настройки, отладки и проверки работы специализированных микроЭВМ

Изобретение относится к цифровой вычислительной технике, может быть использовано при отладке программ специализированных ЦВМ, содержащих в своем составе штатные блоки постоянной памяти с рабочими программами, и является усовершенствованием изобретения по а.с

Изобретение относится к вычислительной технике и может быть использовано в устройствах отладки программ, устройствах правильности выполнения программ

Изобретение относится к вычислительной технике, предназначено для формирования смесей команд заданного состава и может быть использовано для отладки программно-аппаратного обеспечения вычислительных средств и оценки их производительности

Изобретение относится к вычислительной технике и предназначено для формирования смесей команд, обладающих заданным качеством и может быть использовано для отладки программно-аппаратного обеспечения вычислительных средств и оценки их производительности

Изобретение относится к вычислительной технике, может быть использовано для контроля хода программ в мультипроцессорных и мультипрограммных вычислительных системах и является усовершенствованием изобретения по а.с

Изобретение относится к вычислительной технике и позволяет контролировать процесс воспроизведения программы в микропроцессорной системе

Изобретение относится к вычислительной технике, а именно к устройствам для контроля и отладки цифровых управляющих систем, и может быть использовано для имитации функционирования объекта управления, в частности корабельного оружия

Изобретение относится к компьютерным технологиям, в частности к системам и способам формирования дамп файла при возникновении сбоя в работе программы (аварийном завершении программы) в вычислительных системах с ограниченными ресурсами

Изобретение относится к системе с многоядерным центральным процессором, в частности к способу устранения исключительной ситуации в многоядерной системе

Изобретение относится к вычислительной технике и может быть использовано при построении управляющих вычислительных машин (УВМ), нечувствительных к сбоям программ

Изобретение относится к вычислительной технике и может быть использовано в управляющих вычислительных машинах (УВМ), например в системах управления газотурбинного двигателя

Изобретение относится к вычислительной технике и предназначено для автоматизированной отладки программного обеспечения мультимашинных систем, работающих в реальном масштабе времени и имеющих общую память

Изобретение относится к вычислительной технике и может быть использовано в управляющих вычислительных машинах (УВМ)

Изобретение относится к вычислительной технике и может быть использовано для выявления циклических процессов анализируемой программы, регистрации их параметров и хранения регистрируемой информации в блоке памяти с последующей выдачей по запросу
Наверх