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

Номер патента: 1564632

Авторы: Демиденко, Календарев, Куновский, Левин

ZIP архив

Текст

(9) И 1) 632 Ц)Р С 06 Г 1112 П Р Р "Ц9131111" й;., Л А ВТОРСКОМ ДЕТЕЛЬСТВУ етислитвам елью вьппение досто ГОСУДАРСТВЕННЫЙ НОМИТЕТПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯПРИ ГКНТ СССР(71) Институт технической кибернки АН БССР(56) Авторское свидетельство СССВ 1180888, кл. С Об Г 9/22, 1985Авторское свидетельство СССР1. 1300479, кл. С 06 Е 11/28, 198(54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ КОДАПРОГРАММ(57) Изобретение относится к вычительной технике, а именно к средконтроля устройств управления. Ц Изобретение относится к вычислительной технике, а именно к устройствам контроля правильности кода программ.Цель изобретения - поверностиНа фиг,1 изображена структурная схема устройства для контроля кода программ; на фиг2 - пример графсхемы алгоритма программы.Устройство содержит первый 1 и второй 2 блоки памяти, первый 3 и второй 4 регистры, первый 5 и второй 6 мультиплексоры, схему 7 сравнения, первый 8 и второй 9 элементы И.Устройство работает следующим образом.Известно, чжет быть предс ето любая программа мо тавлена в вид:-, графсх 2изобретения является повышение достоверности контроля. Устройство содержит блоки 1 и 2 памяти, регистры 3 и 4, мультиплексоры 5 и 6, схему 7 сравнения и элементы И 8 и 9. При этом в устройстве каждой вершине графсхемы алгоритма ставится в соответствие свой индивидуальный признак, что позволяет свести контроль хода программы к сопоставлению признаков каждых двух соседних вершин и обеспечить тем самым гарантированное выявление всех одиночных ошибок на шине адреса и в слове команды на линейных участках программ и при переходе к точкам схождения ветвей графсхемы ал- а горитма программы. 2 ил,мы ее алгоритма (ГСА). Пример ГСА приведен на фиг.2, где А 0 - начальная вершина, А - конечная вершина. Процесс исполнения программы выражается в движении по ГСА из А и А по одной из возможных ветвей .Поставим каждой вершине ГСА в соответствие некоторое двоичное число. Причем так, что полученное множество двоичных чисел не имеет одинаковых элементов и каждой вершине соответствует отличное от других значение двоичного кода. В этом случае исполнение программ.1 сопровождается сменой описанных кодов, а в силу неповторяемости кодов такая смена происходитна каждом шаге программы. Поэтому дконтроля хода программы достаточнопроконтролировать смену кодов вер 156 ч 632шин ГСА в каждые два соседние такта работы микропроцессорной системы, При анализе ГСА выделим особые очки, К особым точкам первого кода относятся условные вершины ГСА, в которых происходит разделение на несколько ветвей, К особым точкам второго рода относятся вершины, в которых происходит объединение ветвей. Участки ГСА, заключенные между особыми точками, являются линейными.Для контроля хода фрагментов программы, содержащих линейные участки и особые точки первого рода, вос Пользуемся следующим приемом. Дпя каждой вершины сформируем код самой вершины и код последующей вершины. Последний разместим в буфер однотактной задержки. А код вершины сравним 2 О с извлеченным иэ буфера задержки кодом. При исправной работе этот код должен совпадать с кодом текущей верШины, а его загрузка должна быть проведена на предшествующем такте. 25Для контроля хода фрагментов программы, содержащих линейные участки и особые точки второго рода, воспользуемся следующим приемом В каждой вершине сформируем код предшествую О щей вершины и код текущей вершины, Код предшествующей вершины сравним с содержимым буфера однотактной задержки, в который затем разместим код текущей вершины. При отсутствии ошибок в исполнении ГСА обеспечивается равенство сравниваемых коцов.При воспроизведении программы из памяти команд микропроцессорной систе. мы извлекаются слова команд програм- що мы. Извлечению каждого слова предшествует появления сигнала чтения памяти команд. Каждой команде соответствует единственное значение адреса ее размещения в памяти команд, Из этого следует, что отображение команд в адресную область памяти команд ставит в соответствие каждой вершине ГСА индивидуальный двоичный код. Поэтому адрес команды может использоваться в качестве кода вершины ГСА, Достоинством такого подхода является стсутствие необходимости в средствах генерации кодов вершины ГСА.При работе микропроцессорной сис 55 темы большее значение имеет правиль-. ность хранения и извлечения слоя команд. Каждой вершине ГСА соответствует единственная команда, но одна и та же команда может соответствовать нескольким вершинам ГСА Для контроля хода программы с учетом контроля правильности слон команд каждой вершине ГСА ставим в соответствие двоичный код, старшие разряды которого есть адрес вершины, а младшие - код соответствующей команды. Назовем его словом адреса - команды. Полученный двоичный код однозначно характериэует вершину и может служить кодом вершины ГСА в процедуре контроля,Для реализации контрольных функций предлагаемое устройство подключается к микропроцессорной системетак, что шина, по которой поступаюткомандные слова соединена с первыминформационным входом устройства, шина адреса системы соединения - с вторым информационным входом устройства, на управляющий вход устройства подается сигнал чтения памяти команд системы. Нарушение хода программы фиксируется устройством сигналом на своем выходе. Пусть адресная шина микропроцессорной системы имеет разрядность ш, а слово команды - разрядность и, Тогда регистрыи 3 имеют разрядность соответственно ш и и, мультиплексор 5 имеет ш-разрядные входы и выход, мультиплексор 6 имеет (ш+п)-разрядные входы и выход. Блоки памяти 1 и 2 имеют ш-разрядный адресный вхОд и (ш+и+1)-разрядный выход,Контроль хода программы реализуется различно для разных вершин ГСА,Для вершин, лежащих На линейных фрагментах и образующих особые точки первого рода, контроль осуществляется путем сравнения двоичного кода адреса - команды предшествующего такта, считываемого с выходов регистров 3 и 4 через мультиплексор 5, с контрольным кодом, считываемым с вторых выходов блока 1 памяти через мультиплексор 6. Контрольное число, извлекаемое с вторых выходов блока 1 памяти, представляет собой значения слова адреса - команды предшествующей вершины ГСА. Если значения сигналов на входах схемы 7 сравнения равны то очередной переход выполнен верне. В противном случае фиксируется нарушение нормального хода исполнения команды. Для вершин ГСА, образующих особые точки второго рода, контроль осуществляется иначе. При этом на одну группу входов схемы 7 сравнения подается код, 5 15646образованный адресом текущей команды считываемой через первый мультиплексор 5 с второго информационноговхода системы, и кодом предшествующей команды, считываемой с выхода первого регистра 3. На вторую группувходов схемы 7 сравнения через второй мультиплексор 6 с вторых выходовблока 2 памяти поступает контрольноечисло, извлекаемое по адресу предшествующей команды,При нормальнойработе оно должно быть равно коду,поступающему напервую группу входовсхемы 7 сравнения.15Управление режимами работы мультиплексоров 6 и 7 осуществляется первым элементом И 8, на входы которогопоступают сигналы с первых выходовблоков 1 и 2 памяти. 20Блок 1 памяти заполнен следующимобразом.В вершинах, являющихся особыми точками второго рода, на его первом вью.ходе присутствует единичный сигнал, 25а код второго выхода есть номер особой точки второго рода в общем рядутаких точек в ГСА прн любом способеизмерения. Всем прочим вершинам соответствует нулевое значение на первом выходе блока 1 памяти, а на еговтором выходе присутствует код, содержащий слово адреса - команды предшествующей вершины ГСА.Блок 2 памяти заполнен следующимобразом. При появлении на его входах35адреса вершины, предшествующей особымточкам второго рода, на первом выходе блока 2 памяти появляется единичный сигнал, При этом на вторых выходах блока формируется код, содержащийадрес последующей вершины, являющейся особой точкой второго рода, и слова команды, адрес которой подан навход блока, При всех иных значенияхсигнала на входе блока на его первомвыходе присутствует нулевой сигнал, асостояние вторых выходов несущественно,Рассмотрим работу устройства нанекотором шаге программы при отработке линейного фрагмента или содержащего особые точки первого рода. При этомпервый выход первого блока 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на вход блокапамяти поступит неверный адрес текущей вершины ГСА. Приэтом с его вторых выходов на вторуюгруппу входов схемы сравнения посту 5пит код, не совпадающий с содержимымрегистров 3 и 4. Например, при ошибочном переходе из А в С вместо А вВ (фиг.2) на вторых выходах первогоблока 1 памяти появится слово адреса - команды, соответствующей вершине С. Вместе с тем в регистрах 3 и4 хранится слово адреса - команды,соответствующее .вершине А. Поэтомуна выходе схемы 7 сравнения формируется единичный сигнал, поступающийна элемент И 9. При поступлении сигнала чтения памяти команд он приходит на второй вход элемента И 9 и открывает его, тем самым возбуждается 2 Овыход устройства, что свидетельствует о наличии ошибки.При возникновении ошибки на первоминформационном входе устройства поступивший код команды фиксируется врегистре 3 задним фронтом сигналачтения памяти команды. На следующемтакте на второй информационный входустройства поступает новое значениетекущего адреса. При этом извлекаемое ЗОпо вторым выходам первого блока 1 памяти контрольное слово в области младших разрядов не совпадает с содержимым регистра 3. Такое расхождениеприведет к появлению на выходе устройства сигнала ошибки по описаннойсхеме. Следовательно, указанные ошибки обнаруживаются.Выше описана. работа устройства налинейных участках программы или уча Остках, содержащих особые точки первого рода,Пусть программа достигла вершины, предшествующей особой точке второго рода. При этом адрес вершины фиксируется в регистре 4 задним фронтом сигнала чтения памяти команд. Сигнал с выхода регистра 4 поступает на вход блока 2 памяти, обеспечивая появление на его первом выходе единичного сигнала. Данный сигнал поступает на второй вход первого элемента И 8. На втором выходе блока 2 памяти появляется код, состоящий из адреса следующей вершины ГСА и слова команды текущей . вершины. Этот код поступает на первую группу входов второго мультиплексора 6, Код командного слова фиксируется в регистре 3 задним фронтом того жесигнала чтения памяти команд,Вслед за этим на второй информационный вход устройства поступает адрес вершины, являющейся особой точкой второго рода, Он поступает навход первого блока 1 памяти, первыйвыход которого при этом возбуждается в единичное состояние. Это приводит к появлению единичного сигнала навыходе первого элемента. И 8. Данныйсигнал поступает на управляющие входы первого 5 и второго б мультиплексоров, в результате чего на их выходыподается информация с первых входов,При этом .на первую группу входов схемы 7 сравнения поступает сигнал, старшие разряды которого образованы адре-.сом текущей вершины, а младшие - командным словом предшествующей вершины.На вторую группу входов схемы 7 сравнения поступает сигнал с второго выхода блока 2 памяти. При отсутствииошибок сигналы на обоих группах входов схемы 7 сравнения совпадают, а навыходе схемы сравнения появляется нулевой сигнал, который передается напервый вход второго элемента И 9 иблокирует его. Поэтому поступлениесигнала чтения памяти команд не приводит к возбуждению выхода устройства. П этому сигналу адрес текущейкоманды и ее код заносятся соответственно в регистры 4 и 3. На первом выходе второго блока 2 памяти появляется нулевой сигнал и,поступая на второй вход первого элемента И 8, блокирует его. Это приводит к переключениюпервого 5 и второго 6 мультиплексоров, на выходы которых теперь подаются их вторые входы, Дальнейшая работа устройства аналогична описанной.Рассмотрим процесс обнаруженияошибки на шине адреса, приводящей кнесанкционированному переходу из любой вершины линейного участка в особую точку второго рода (А - Е фиг.2).Появляющийся при этом единичный сигнал на первом выходе блока 1 памятине приводит к возбуждению выхода первого элемента И 8, так как на второмего входе присутствует блокирующийсигнал . Поэтому на. вторую группу входов схемы 7 сравнения поступает словоадреса " команды текущей особой точки второго рода с вторых выходов блока 1 памяти. На первую группу входовсхемы 7 сравнения поступает слово адреса - команды из регистров 3 и 4,т,е. той вершины, с которой произошел несанкционированный переход, В силу несовпадения сигналов на обеих группах входов схема сравнения формирует единичный сигнал нл первом входе второго элемента И 9. Следовательно, поступление сигнала чтения памяти команд приводит выход устройства в возбужденное состояние, что свидетельствует об обнаружении ошибки.Рассмотрим процесс несанкционированного перехода из вершины, предшествующей особой точке второго рода в другую особую точку второго рода, Пусть произошел переход из вершины С в вершину Е. Тогда появившийся на первом выходе первого блока 1 памяти 15 сигнал совместно с сигналом на первом выходе второго блока 1 памяти переведет выход первого элемента И 8в единичное состояние, что приведет к Устройство дляконтроля кода программ, содержащее первый блок памяти,переключению мультиплексоров 5 и 6. Тогда на первую группу входов схемы 25 7 сравнения поступит код, состоящий из адреса текущей вершины Е и кода команды, с которой произошел переход, взятого из регистра 3. 11 а вто" рую группу входов схемы 7 сравнения поступит код, содержащий слово адреса - команды вершины С, с которой произошел переход, Очевидно, эти коды не совпадут в области старших разрядов и на выходе схемы 7 сравнения формируется единичный уровень. Поэтому при поступлении сигнала чтения памяти команд на выходе устройства появляется сигнал ошибки.. Сходным образом устройство работает и при несанкционированных переходах из одной особой точки второго рода в другую. При этом также обнаруживается искажение на адресной шине.45Для всех описанных режимов аналогичные рассуждения показывают обнаруживаемость ошибок также в слове команды.Формула изобретения схему срлвнения, первый рептр, пар. вый и второй элементы И, причемрап па вхадон устройстнл для подключенак группе адресных выходов контролируемого устройства соединена с. грунпай адресных входов первого блока нлмяти, вход устройства для подключения к выходу чтения контролируемого устройстна соединен с входом записи пернаго регистра и с первым входам первого элемента И, выход которого является выходам ошибки устройства, группавыходов первого регистра соединенас младшими разрядами первой группойвходов схемы сравнения, группой выходов неравенства которой соединенас группой информационных входов первого элемента И, о т л и ч а ю щ е -е с я тем, что, с целью повышениядостоверности контроля, н устройствовведены второй блок памяти, второйрегистр, первый и второй мультиплексарь., причем группа входов устройства для подключения к группе выходовкоманд контролируемого устройства соединена с группой информационных входов первого регистра, группа адресных входов первого блока памяти соединена с группой информационных входон второго регистра и с первой группой входов первого мультиплексора,группа выходов которого соединена состаршими разрядами, первой группы вхадон схемы сравнения, управляющий входпервого элемента И соединен с входомзаписи второго регистра, группа выходов которого соединена с второйгруппой входов первого мультиплексора и с группой адресных входов второго блока памяти, выходы первого ивторого блоков памяти соединены соответственно с первым и вторым входами второго элемента И, группа выходов второго мультиплексор соеди-,нена с второй группой входан схемысравнения, ныход второго элемента Исоедин "н с управляющими входами первого и второго мультиплексоров, группы выходов первого и второго блоковпамяти соединены соответственна с первой и второй групплми информационныхнходан вараго мультиплексора,.Келемеш Техред М.Ходанич Корректор И.Муска еда ьказ 1161 Тираж 565 одписно и от 11 роиэводственно-иэдательский комбинат "11 атент", г, Ужгород, ул гарина, 101 ВНИИПИ Государственного комитета по 113035, Москва, Жиям при ГКНТ ССС

Смотреть

Заявка

4481240, 14.06.1988

ИНСТИТУТ ТЕХНИЧЕСКОЙ КИБЕРНЕТИКИ АН БССР

ЛЕВИН ЕВГЕНИЙ МОИСЕЕВИЧ, ДЕМИДЕНКО СЕРГЕЙ НИКОЛАЕВИЧ, КАЛЕНДАРЕВ АНДРЕЙ СЕМЕНОВИЧ, КУНОВСКИЙ ЭДУАРД БРОНИСЛАВОВИЧ

МПК / Метки

МПК: G06F 11/28

Метки: кода, программ

Опубликовано: 15.05.1990

Код ссылки

<a href="https://patents.su/6-1564632-ustrojjstvo-dlya-kontrolya-koda-programm.html" target="_blank" rel="follow" title="База патентов СССР">Устройство для контроля кода программ</a>

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