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

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

Авторы: Альтерман, Гладштейн, Комаров, Шубин

ZIP архив

Текст

вычисли - контролиия прого ьнои техн и позволяе роват едй оцес прои аммыель и те в, ма ро блок 1 2, рег 5 пом во СССР8, 1984СССР8, 1985 трулю еченияому адре с СОЮЗ СОВЕТСКИХСОЦИАЛИСТИЧЕСКИХРЕСПУБЛИК ГОСУДАРСТВЕННЫЙ КОМИТЕТПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМПРИ ГКНТ, СССР(71) Рыбинский авиационньлогический институт(56) Авторское св иде тель с тВ 1191904, кл. С 06 Г 11/2Авторское свицетельствоУ 1300479, кл. С 06 Р 11/2 ЯО.Я 4522) УСТР 01 СТВО ДЛЯ КО 11 ТРОЛЯ ХОДАГ РА 111) Изобретение относится к р в микропроцессорно 1. зобретения - упрощен ства. Устройство содержит стоянной памяти, сумматор 3, дешиФратор 4, сумматор два и триггер 6. Для обес контроля в устройстве кажд(каждой точке) программы ставитсяв соответствие некоторое ш-разрядноечисло, При этом в блоке постояннойпамяти размещаются одноразрядные коды, которые дополняют контрольныечисла до (ш+1) -разрядных, содержащихчетное количество единиц, В процессереализации программы сумматор осуществляет суммирование всех словпрограммы с ранее накопленными в регистре контрольными суммами, В ре"зультате этого в каждой точке программы вычисляется ш"разрядный двоичИзобретение относится к вычислительной технике и может быть исполь зовано при построении надежных микропроцессорных систем, не чувствительных к сбоям программы.25Целью изобретения является упрощение устройства.На чертеже изображена схема предлагаемого устройства.Устройство для контроля хода прог 30 рамм содержит блок 1 постоянной памяти, сумматор 2, регистр 3 и дешифратор 4, кодовый вход которого подключен к входу блока 1 постоянной памяти и является. адресным .входом устройства, вход выборки является управляю 35 щим входом устройства, а выход подключен к вхрду синхронизации регистра 3, вход сброса которого является входом сброса устройства, а вход данных 40 подключен к выходу сумматора 2, вход первого операнда которого подключен к и-разрядному инФормационному входу устройства, а вход второго операнда - к выходу регистра 3, а также (тп+1)- разрядный сумматор 5 по модулю два и триггер 6, выход которого является выходом устройства, вход синхронизации подключен к выходу дешифратора 4, вход. сброса - к входу сброса регист 50 ра 3, а информационный вход - к выходу (ш+1)-разрядного сумматора 5 по модулю два, первый вход которого подключен к выходу блока 1 постоянной памяти, а остальные - к выходу сумматора 2. Причем блок 1 постоянной памяти выполией одноразрядным, а сумматор 2 и регистр 3 - ш-разрядными, ;де . ши. Неиспользуемые старшие разряды ный код текущей суммы. Указанный коди дополнительный разряд поступают насхему четностиЕсли условие четности не соблюдается, то схема четностигенерирует сигнал ошибки, который вмомент окончания операции чтения очередного слова программы передаетсяна выход устройства. Использованиеустройства требует введения в контролируемую программу специальных программных блоков, уравнивающих контрольные суммы различных ветвей программы; 1 ип. входа первого операнда сумматора 2 подключены к линии логического 0".Для реализации своих функций устройство подключается к контролируемой микропроцессорной системе, стандартно содержащей микропроцессор 7 и память 8 команд, соединенные между собой посредствомм шин адреса 9, данных .10 и управления 11. При этом адресный вход устройства соединяется е шиной 9 адреса системы, п-разрядный инФормаиионный вход - с шиной 10 данных, а управляющий вход - с линией "Чтениеп шины 11 управления.Устройство работает следующим образом.Пусть необходимо контролировать ход программы микропроцессорной системы. Программа представляет собой совокупность команд и хранится в .памяти 8 команд. В качестве последней обычно используют постоянное запомиающее устройство. Каждая команда занимает от одной до нескольких соседних ячеек памяти и информационно характерйзуется массивом и-разрядных слов .(байтов) .Процесс воспроизведения программы заключается в последовательном (шаг за шагом) извлечении микропроцессором 7 из памяти 8 команд слов программы, декодировании и реализации предписанных операций. При этом на каждом шаге программы извлечение очередного слова сопровождается тем,что на шине 9 адреса системы устанавливается адрес укаэанного слова. Затем на шине 1 управления генерируется сигнал "Чтение, по которому адресуе25 ЗО 35 40 45 50 55 5 15мое слово поступает на рину 10 данныхсистемы и принимается микропроцессором 7 на декодиронанир .Для обеспечения контроля в предлагаемом устройстве каждому адресу(каждой точке) программы становитсяв соответствие некоторое контрольноеш-разрядное. число. Указанное числофактически является суммой всех словпрограммы, которые в процессе корректных вычислений извлекаются из памяти 8 команд системы к моменту прохождения программы через соответствующую точку. При этом в блоке 1 постоянной памяти еще до начала вычислений размещаются однозарядные коды,которые дополняют контрольные числадо (ш+1)-разрядных кодов, содержащихчетное количество единиц,В процессе реализации программысумматор 2 осуществляет суммированиевсех .и-разрядных слов программы сш-разрядными суммами из регистра 3,В результате этого в каждой точкепрограммы вычисляется ш-разрядныйдвоичный код текущей суммы. Указанный код с учетом дополнительного разряда, значение которого извлекаетсяиэ блока 1 постоянной памяти по текущему адресу программы, дополняетсядо (ш+1) -.разрядного и проверяется начетность. Если количество единиц вполученном коде нечетно, то фиксируется ошибка.В процессе корректных вычисленийтекущие суммы всегда дополняются дочетных кодов, те. соблюдается условие четности иошибка не фиксируется.При нарушении хода программы возникает несоответствие между суммами и дополнительными разрядами. Причем ука-.эанное несоответствие зарождается вмомент сбоя и затем сохраняется в течение длительного времени. Это объясняется тем, что при добавлении к однажды полученной некорректной суммекорректного кода (слова программы)результат все равно остается некорректным. Таким образом, в устройстве генерируется поток некорректныхсумм. При этом несмотря на то, чточасть из этих сумм с учетом дополнительного разряда может удовлетворятьусловию четности, в конце концов наступает момент, когда указанное усиовие не выполняется, т.е. фиксируется ошибка и на.выходе устройствапоявляется соответствующий сигнал. 45223 6Рассмотрим работу устройства нанекотором шаге программы. В процессе реализации указанного. шага на адрес-.ный вход устройства и, следовательно, 5на вход блока 1 постоянной памяти подается адрес, по которому в микропроцессорной системе из памяти 8 команд извлехается очередное слово программы. Это обеспечивает появление на выходе блока 1 постоянной памяти одноразрядного контрольного кода, соответствующего данной точке программы.Затем микропроцессор 7 генерирует 15.на шине 11 управления, сигнал "Чтение",который активирует память 8 команд.В результате этого из памяти 8 команд на шину 10 данных передается текущее и-разрядное слово программы. Данное слово через информационный вход устройства поступает на вход первого операнда сумматора 2 и складывается с ш-разрядным числом с выхода регистра 3, которое представляет собой сумму всех ранее поступивших в устройство слов программы и является предьдущей контрольной суммой.В результате сложения текушего слова программы и предыдущей суммы на выходе сумматора 2 формируется текущая контрольная сумма. ш-разрядный код текущей суммы и одноразрядный контрольный код с выхода блока 1 постоянной памяти образуют (ш+1)-разрядный код, который поступает в сумматор 5, Если указанный код содержит четное количество единиц (такая ситуация возникает, например, когда текушая сумма корректна), сумматор 5 формирует нулевой сигнал, который свидетельствует о том, что на данном шаге программы ошибка не обнаружена,Однако указанный сигнал достовЬ- рен только в момент окончания в контролируемой системе операции чтения текущего слова программы из памяти 8 команд. Это .связано с наличием естественных задержек и переходных процессов в памяти 8 команд, сумматоре 2 и сумматоре 5. Кроме того, при выполнении микропроцессором 7 операцйй, не связанных с извлечением текущего слова программы из памяти 8 команд, на шинах адреса 9 и данных 10 системы устанавливаются произвольные коды, которые могут приводить к ложному срабатыванию сумматора 5.Для получения достоверного результата с выхода сумматора 5 устройствовыявляет Факт обращения микропроцессора 7 к памяти 8 команд, Указаннаяфункция реализуется дешифратором 4,который срабатывает при появлении нашине.9 системы адреса памяти 8 ко- .манд, а на шине 11 управления - сигнала "Чтение", импульс с выхода де-,шифратора 4 поступает на вход синхронизации триггера Х. По заднемуфронту указанного импульса, свидетельствующего об окончании текущейоперации чтения памяти 8 команд,триггер Х фиксирует информацию с выходасумматора 5. Поскольку в этотмомент в ремени на выходе сумматора 5 находится достоверная информация Ьереодные процессы в системе и устройстве закончились), то втриггере б и, соответственно, на выходе устройства Фиксируется результат контроля текущей суммы,Одновременно по заднему Фронту импульса с выхода дешиЬратора 4 в регистр 3 с выхода сумматора 2 заносится текущая сумма, которая сохраняется до следующего шага программы (становится предыдущей), На следующемшаге программы устройства выполняются аналогичные действия и т.д. Л результате этого при правильной реализапии программы текущие суммы в совокупности с дополнительными разрядамивсегда удовлетворяют условию четности. Это постоянно Фиксируется триггером б, и на выходе устройства не появляется сигнал ошибки.11 арушение нормального хода прог-.раммы может быть вызвано, например,сбоем счетчика команд в микропроцессоре 7 или отказом адресных линий вшине 9 адреса. Это приводит к искажению информации на шине 9 адреса и нарушеньцо последовательности выбораслов программы (ложный переход) . Ероме того, возможны отказы ячеек памяти8 команд и отказы лиий связи в шине10 данных. Это приводит к чтенью некорректных слов программы из памяти8 команд системы (ложный код коман-,ды), Устройство обеспечивает выявление подобных нарушений нормальногохода программы с высокой степенью достоверности,Действительно, пусть в некоторыймомент времени произошел ложный пе -реход программы. В результате этогона адресный вход устройства посо;,"ет неверный адрес .по которому из блока 1 постоянной памяти извлекается одноразрядный код.Одновременно на информационный 5вход устройства подается соответствующее слово программы из памяти 8команд, что приводит к формированиюна выходе сумматора 2 некоторой те"кущей суммы. Тогда на момент окончания в системе операции чтения памяти8 команд может иметь место следующаяполная группа событий;1) текущая сумма не соответствуетдополнительному разряду, т,е, не соблюдается условие четности и Фиксируется ошибка; вероятность такого события Р = 0,5;2) текущая сумма случайно оказаласьравной той, которая соответствуетданной точке программы и ри к оррек т- .ной реализации вычислений; очевидно,что такой сбой не будет обнаружен нина текущем, ни на следующих шагах программы; вероятность этого события 25 Г = .1/23) текущая сумма соответствует дополнительному разряду; сбой не обна-.руя:икается на данном шаге программы, ; о может быть обнаружен на следующих;30 вероятность этого события обозначимчерез Рб.Таким образом, на первом послеложного перехода шаге программы ошиб - ка не будет обнаружена свероятностьюю1Р = Р + Р =+ РЭ - 2 оРассмотрим работу устройства наследующем шаге программы, если ошибка 40 не обнаружена на предыдущем, т.е,рассмотрим развитие 2-й и 3-й ситуа"ций. Очевидно, что если имела место2-я ситуапия, то на следующем шагепрограммы она сохраняется, т,е, ошиб ка не обнаруживается. Если имела место 3-я ситуация, то на новом шагепрограммы с равной вероятностью можно ожидать появление 1-й либо 3-й ситуации, Тогда вероятность необнаружения ошибки за два шага программыопределится как1,- + О,эР.Аналогично для 1-го шага программыполучим1 1Р =+ 05 1Я 2 ъ 3Отсюда очевидно, что с ростом количества шагов программы величина Р, 154 5223 1 Обыстро падает и устремляется к величинеРн 25 характеризующей вероятность необнаружения ошибки устройством в целом,Аналогичным образом устройство работает при обнаружении некорректных кодов программы, При этом 2-я ситуа О ция никогда не имеет места (иначе поступающее слово программы является корректным) . Поэтому вероятность обнаружения искажения одиночного слова программы в устройстве равна единице, 15Таким образом, в устройстве обнаруживаются практически все некорректные переходы (исключая липь случай совпадения текущей суммы с корректной) и искажения кодов программы.20В случае обнаружения ошибки на выходе сумматора 5 образуется единичный сигнал, В результате этого в момент окончания операции чтения памяти 8 команд системы триггер 6 пере ходит в единичное состояние и формирует на выходе устройства сигнал ошибки. Указанный сигнал может быть использован в контролируемой системе для запуска, например, по прерыванию 3 О программы устранения ошибки. В процессе обработки прерывания микропроцессор 7 системы обеспечивает .подачу на вход сброса устройства сигнала начальной установки. Указанный сигнал поступает на регистр 3 и триггер 6 и производит обнуление (очистку); контрольной суммы, и результата контроля, После того, как сигпал началь - ной установки снимается, устройство 4 О вновь готово к работе. Аналогичным образом происходит оч ис тка устройс тва в процессе начального запуска (сброса) контролируемой системы.Использование предлагаемого 45 устройства налагает некоторые ог ранич ения на п рог раммиров ание микропроцессорной системы. Без учета этих ограничений в устройстве обеспечивается контроль липь линейных уча: 50 стков программы. Линейный участок программы при широко распространенном структурном подходе к программированию называется базовой структурой пСледование. Однако этой структуры недостаточно, чтобы представить даже самые простые практические программы. Логическая структура любой сколь угодно сложной программы может быть Фвыражена комбинацией трех базовыхструктур: к указанной структуре пСледованиеп добавляется структура Развилка" и "Пикл" (фиг,2) . При этом последняя может иметь две разновидности. Очевидно, что внутри базовыхструктур "Развилка" и Пикл" осуществляется ветвление вычислительногопроцесса с .последующим объединениемветвей,Объединение ветвей программы осуществляется обращением по одному итому же адресу после прохода ветвейпрограммы. Суммы кодбв команд (словпрограммы), находящихся в различныхветвях, в общем случае не совпадают,В результате этого при объединенииветвей программы без принятия дополнительных мер устройство фиксируетошибку программы, хотя таковой нет,Для исключения этого явления необходимо искусственно выравнивать текущие суммы слов программы перед каждым объединением ветвей, то легко обеспечивается путем размещения пе - ред каждой точкой объединения ветвей дополнительных управляющих команд (уравпивающих блоков), не имеющих функционального значения с точки зрения процесса решения задачи, реализуемой микропроцессорной системой.Значение уравнивающих чисел может быть различным в различных ветвях программы. В простейшем случае уравнивание сумм может осуществляться до нулевого значения. При этом вход в каждую точку слияния ветвей программы происходит с нулевым значением контрольной суммы, т.е. нулевым состоянием регистра 3. Наиболее просто обнуление сумм может быть реализовано путем подачи на вход сброса устройства соответствующего сигнала в момент исполнения программой уравнивающего блока. При подключении устройства к системе, построенной на базе микропроцессора КР 580, такое "директивное" уравнение реализуется программным блоком, состоящим из двух команд: пЗапрещение прерыванияи "Разрешение прерывания (01, Е 1) . В процессе исполнения этих команд на выходе микропроцессора появляется импульс, который поступает на вход сброса устройства и осуществляет обнуление суммы,Однако использогание "директивного" уравнивания снижает достоверность1545223 контроля устройства, Это связано стем, что часть ложных переходов программы не будет обнаружена, посколькув результате такого уравнивания возникающие после сбоя некорректные суммы могут принимать нулевые (корректные) значения еще до момента фикса-.ции ошибки на выходе устройства,Для.устранения указанного недостатка необходимо применять естественное уравнивание путем суммирования кодов команд уравнивающих блоков (вход сброса устройства не возбуждается) . Составитель И.СигаловТехред А, Кравчук Корректор А.Обручар Редактор В.Петраш Заказ 492 Тираж 565 ПодписноеВНКП 1 И Государственного комитета по изобретениям и открытиям при ГКНТ СССР 113035, Москва Ж, Раушская наб., д, 4/5 Ф Производственно-издательский . ко бинат Патент , г. Ужгород, ул. Гагарина, 10, В качестве контрольных сумм точек слияния ветвей программы в этом случае рационально принимать не нулевые,. а такие суммы, которые получаются . .и естественном прохождении программой одной из сходящихся ветвей. Это дает возможность исключить из указанных ветвей уравнивающие блоки. Описанный .способ уравнивания контрольных сумм различных ветвей программы может быть использован и при вызове подпрограмм. Для этого достаточно обнулять контрольные суммы непосредствейно перед вызовом подпрограмм и уравнивать до нулевого значения контрольные суммы самих подпрограмм, При этом уравнивающие блоки программируются вручную или автоматически с помощью транслятора,Формула изобретенияУстройство для контроля хода программ, содержащее блок постоянной памяти, регистр, сумматор и дешифратор,причем адресный вход устройства соединен с адресным входом блока постоянной памяти, информационный входустройства соединен с входом первогооперанда сумматора, выход которогосоедийен с информационнымвходом регистра, выход которого соединен с.входом второго операнда сумматора,вход начальной установки устройствасоединен с нулевым входом регистра,отличающееся тем, что, сцелью упрощения устройства, в неговведены (щ+1)-разрядный сумматор помодулю два (где щ-разрядность контролируемого кода) и триггер, причем адресный вход устройства соединен с информационным входом дешифратора, входвыборки которого является управляющимвходом устройства, выход дешыЬратора 25 соединен с вхоцом записи регистра йтактовым входом триггера, выход кото- рого является выходом ошибки устройств:., щ-разрядный выход сумматорасоединен соответственно с первыми 30 щ-входами сумматора по модулю два,:выход блока постоянной памяти соединен с (щ+1)-м входом сумматора по модулю два, выход которого соединен синформационным входом триггера, входначальной установки устройства соединен с нулевым входом триггера.

Смотреть

Заявка

4425148, 12.05.1988

РЫБИНСКИЙ АВИАЦИОННЫЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ

ШУБИН НИКОЛАЙ АЛЕКСЕЕВИЧ, КОМАРОВ ВАЛЕРИЙ МИХАЙЛОВИЧ, ГЛАДШТЕЙН МИХАИЛ АРКАДЬЕВИЧ, АЛЬТЕРМАН ИГОРЬ ЗЕЛИМОВИЧ

МПК / Метки

МПК: G06F 11/28

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

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

Код ссылки

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

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