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

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

Авторы: Комаров, Шубин

ZIP архив

Текст

СОЮЗ СОВЕТСКИХСОЦИАЛИСТИЧЕСКИХРЕСПУБЛИК 119) (11) 77 151) 4 б 06 Р 11 ОПИСАНИЕ ИЗОБРЕК АВТОРСКОМУ СВИДЕТЕЛЬСТВ(54) УСТРОЙСТВО ДЛЯ КОНТ ДА ПРОГРАММ(57) Изобретение относится к о числительной техники и позволя лировать процесс выполнения в микропроцессорных системах. ретения - повышение достовер троля. Устройство, содержащее б тоянной памяти, накапливающий с схему 3 сравнения, элемент И типлексор 5, элемент ИЛИ 6, п ся к шинам контролируемой сист ретение обеспечивает глубокий о контроль хода программы, прич анализа процесса исполнения ком ладает большей достоверностью,ОЛЯ ХО ионный технолог М. К итани2035633 СР984,ство 11/28 ГОСУДАРСТВЕННЫЙ КОМИТЕТПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМПРИ ГКНТ СССР(71) Рыбинский авиаческий институт(56) Патент Великобркл. б 06 Р 11/30, 1982.Авторское свидетель1191912, кл. 6 06 Г бласти выет контропрограмм Цель изобности конлок посумматор 2,4, муль- одключаетемы. Изобперативный ем за счет анд оно об ил.50 55 3Изобретение относится к вычислительнойтехнике и может быть использовано припостроении надежных микропроцессорныхсистем, нечувствительных к сбоям программы.Цель изобретения - повышение достоверности контроля хода программ.На фиг. 1 изображена структурная схемаустройства; на фиг. 2 - базовые структуры программирования контролируемой системы.Устройство для контроля программ содержит блок 1 постоянной памяти и накапливающий сумматор 2, схему 3 сравнения и элемент И 4, мультиплексор 5 и элемент ИЛИ 6,Устройство работает следующим образом.Пусть необходимо контролировать ходпрограммы некоторой микропроцессорнойсистемы. Программа представляет собой совокупность команд и хранится в памяти команд. В качестве последней обычно выступает постоянное запоминающее устройство.Каждая команда занимает от одной до нескольких соседних ячеек памяти и информационно характеризуется массивом слов(байтов)Процесс воспроизведения программы заключается в последовательном (шаг за шагом) извлечения из памяти команд слов программы, их декодировании и исполнениипринятых команд. При этом извлечениекаждого очередного слова программы сопровождается тем, что на шине адреса системы устанавливается адрес указанного слова. Затем генерируется сигнал чтения памятикоманд, по которому адресуемое слово поступает на шину данных системы и принимается микропроцессором. После извлечениявсех слов, составляющих текущую команду,и их декодирования микропроцессор исполняет принятую команду.В процессе исполнения команды микропроцессор может обращаться к памяти ипортам ввода-вывода системы, реализуяпредписанные командой операции приемаили выдачи данных, При этом на шинеадреса системы устанавливается соответствующий адрес данных. Затем на шинеуправления генерируется сигнал, однозначноидентифицирующий выполняемую операцию.Такими сигналами являются Чтение илиЗапись при обращении к памяти и Вводн Вывод при обращении к портам.Для реализации своих функций предлагаемое устройство подключается к микропроцессорной системе таким образом, что егоадресный вход соединяется с шиной адресасистем ы, входы кода команды устройствасоединены с шиной данных, входы текущего состояния программы устройства соединены с шиной управления, Нарушениехода программы фиксируется путем генерации устройством на своем выходе сигнала ошибки. 5 10 15 20 25 30 35 40 45 4Для обеспечения контроля в предлагаемом устройстве каждому адресу (каждой точке) программы ставится в соответствие некоторое контрольное число. Указанное число является суммой (например, по модулю 256) всех слоя программы, извлекаемых из памяти команд системы к моменту прохождения программы через соответствующую точку, и всех кодов, появляющихся на шине управления системы в процессе исполнения команд, предшествовавших текущей. При этом контрольные числа вычисляются заранее и еще до работы устройства размещаются в блоке 1 постоянной памяти.В процессе реализации программы на каждом ее шаге вычисляются текущие суммы, которые в определенные моменты времени сравниваются с контрольными числами. В случае корректных вычислений текущие суммы всегда совпадают с контрольными числами и ошибка не фиксируется. При нарушении же хода программы возникает несоответствие между текущими суммами и контрольными числами, что приводит к появлению на выходе устройства сигнала ошибки.Рассмотрим работу предлагаемого устройства в процессе реализации некоторой команды. На этапе выборки команды на адресный вход устройства и, следовательно, на вход блока 1 постоянной памяти подается адрес, по которому в микропроцессорной системе из памяти команд извлекается очередное слово программы. Это обеспечивает появление на выходе блока 1 постоянной памяти контрольного числа, соответствующего данной точке программы,Пусть на рассматриваемый момент вре- . мени в накапливающем сумматоре 2 накопитель некоторая сумма, характеризующая работу программы за предыдущее время. Указанная сумма и контрольное число с выхода блока 1 поступают на схему 3. Схема 3 сравнивает поступившие числа и в случае их равенства формирует на своем выходе нулевой логический уровень, свидетельствующий о корректности выполняемых вычислений, С выхода схемы 3 указанный сигнал посгупает на вход элемента И 4. Оценка корректности реализуемых программой вычислений осуществляется в момент появления сигнала чтения памяти команд. При корректных вычислениях элемент И 4 в момент появления этого сигнала закрыт нулевым уровнем с выхода схемы 3 и сигнал ошибки на выходе устройства не формируется.Одновременно с сигналом чтения памяти команд на информационный вход устройства подается текущее слово программы, Код указанного слова через мультиплексор 5, управляемый тем же сигналом чтения па 148(7255 )О 15 20 25 30 35 40 45 50 55 мяти Когид, пепедается нг вход накапливающего сумматора 2.Во время действия сигнала чтения памяти команд на шине управления системы устанавливается также сигнал Чтение. Указанный сигнал через вход управляющих сигналов поступает в устройство и через элемент ИЛИ О подается а вход синхронизации накапливающего сумматора 2. В момент оконча 11 ия сигцалг Чтение накапливающий сумматор 2 добавляет к хранящемуся в нем .ислу поступивц 1 ее слово и формирует на своем вь 1 ходе новую сумму. При этом равенство кодов 1 а входах схемы 3 нарушается и она фор лирует единичный логический уровень. Однако в этот момент времени элемент И 4 закрыт нулевым уровнем сигналг чтения памяти команд и распространение ложного сигнала ошибки блокироьацо.При послед; юц,ем чтении микропроцессором слов програм.лы, составляющих текч- ШУЮ Команд", СТРОЙСТВО О 2 ООЧТ 2 ЕТ УЖЕ описанным образом. После прие.,1 а и декодирования команды начинается этап ее исполнения.Во время исполнения команды на входе стробирования устройства устанавливается нулевой потенциал (сигнал чтения памяти команд отсутствует). Это приводит к переключению мультиплексора 5 и подаче на вход накапливающего сумматора 2 параллельного кода с входа управляющих сигналов устзойства. В процессе обрапения микропроцессора к данным на указанном входе появляется один из управляющих сигналов Чтение, ЗгпьСь, Ввод или Вывод. Это приводит к формированию па входе накапливающего сумматора 2 кода, в котором указанные сигналы представлены различными разрядами (различными весами) . Одновременно срабатывает элемент ИЛИ 6 и формирует сигнал синхронизации накапливающего сумматора 2. По заднему фронту указанного сигнала (задний фронт свидетельствует об окончании операции обращения к данным) накапливающий сумматор 2 добавляет к ранее вычисленной сумме параллельный код управляющих сигналов, который вследствие задержки, вносимой мультиплексором 5, еше сохраняется на входе накапливающего сумматора 2. В результате этого значение суммы корректируется, причем ее приращение однозначно определяется активным управлявшим сигналом, т. е. типом Вьшолненного обрацения к данным.Если в процсссе исполнения команды обращение к данным осуществляется несколько раз, то устройство соответствующее число раз повторяет описанные действия по корректировке текугцей суммы. Таким образом, в результате исполнения команды и выполнения соответствующих шагов программы на выходе накапливающего сумматора 2 формируется обновленное значение текушеи суммы.ричем ук 11 згн ная сх мма отличается от предыду 1 цей нг вполне определен ю геличину, зави;яшую от количества и т; па совершенных Обращений микропрогсссорг к дгН 1 ь 1.,1. В частно счуЧав, КОГД 2 ИСПОЛНЕН КО.:ги,Ь НЕ СВЯЗВНО с обра;цением микропроцсссора к данным (операции осуществляются в.утри микропроцессора) текущая сумма остается неизменной.СОС,1 Е ИСПОЛ НРННЯ 1 ЕКуШЕй КОМВНДЫ МИ- кр 051 роцессОр перехо 1 т к Выборке следующей. В процессе понема первого слова новой команды схс: ы 3 осуществляет сравнение получен;Ой ь накапливающемсумматоре 2 суммыконтрольным числом. В результате этого гналцзцруется правильность исг 1 олненця то.1 ь.о что згверценной команды. Прц этс:;, сс;и Нарушений хода программ", не было 1 т. е. все опепгции Обра 1 енпя к дг 1 ыгл Выпотнсны так, как ожидалось), то тек,щая суммг совпадает с контрольнь 1 М числом. В момент псступлсния на Вход стробировация устройства сигнала чтения 1:амяти команд эле:лент И 4 остается закрытым нулевым уровнем с выхода схемы 3 анализа и сигнал ошцбки на выходе устройства не появляется. Нарушения правильного хода программы проявляются нг этгпах выборки и исполнения команд, Г 1 ричем па этапах Выборки команд воз.ложны нарушения последовательности обращений микропроцессора к памяти команд (к этому приводит, например, сбой программного счетчика микропроцессора или отказ линий шины адреса системы), а также прием ложного слова программы (отказ соответствующей ячейки;амятц команд или линий шины данных системы). В свою очередь, на этапах исполнения команд возможны пропуски или реализации ложных обрагцений .цкропроцессора к данным, которые возникают В случае формирования некорректных управляющих сигналов (сбой микропроцессора или отказ линий шины управления системы).Предлагаемое устройство обеспечивает выявление подобных нарушений нормального хода программы. 3 ействительцо, при нарушении последовгтельност . обращения микропроцессора к памяти команд ца адресном Входе устоойствг .Оявляеся недостоверный адрес. Гри этом цз блока 1 постоянной пгмяти цзвлекгегся контрольное число, не соответствующее текущей сумме накапливающего сумматора . Г 1 рц приеме микро;роцессором,1 ожного слоВ 2 программы некорректная иформа,ия появляется на информационном входе устройства, Это приводит к вь;ислению цакапливгошцм сумматором 2 текуцей суммы, це соответствующей контрольному чцс,у. Аналогичная ситуа 148177551015 ция складывается и в результате пропуска или реализации ложных обращений микропроцессора к данным. При этом, несоответствие текущей суммы контрольному числу возникает вследствие поступления некорректной информации на вход управляющих сигналов устройства.Во всех описанных случаях схема 3 фиксирует неравенство кодов и генерирует устойчивый уровень логической елиницы, который поступает на вход элемента 14. В момент чтения микропроцессором памяти команд элемент И 4 открывается, в результате чего на выходе устройства формируется сигнал ошибки. Полученный сигнал может быть использован в контролируемой системе для запуска, например, по прерыванию, программы устранения ошибки. В процессе обработки прерывания микропроцессор системы обеспечивает подачу на вход сброса устройства сигнала начальной установки, Указанный сигнал поступает в накапливающий сумматор 2 и производит обнуление (очистку) текущей суммы, После того, как сигнал начальной установки снимается, устройство вновь готово к работе. При этом запускаемая программа в первой своей точке должна иметь нулевое контрольное число. Аналогичным образом происходит очистка накапливающего сумматора 2 и в процессе начального запуска (сброса контролируемой системы. Таким образом, устройство позволяет контролировать ход программы в микропроцессорной системе с момента начального ее запуска, а также после устранения ошибок, Однако использование предлагаемого устройства налагает некоторые ограничения на программирование микропроцессорной системы. Без учета этих ограничений в предложенном устройстве обеспечивается контроль лишь линейных участков программы. Линейный участок программы при широко распространенном в настоящее время структурном подходе к программированию называется базовой структурой Следование. Однако этой структуры недостаточно, чтобы представить даже самые простые практические программы. Теория показывает, что логическая структура любой сколь угодно сложной программы, может быть выражена комбинацией трех базовых структур; к уже упомянутой структуре Следование добавляются структуры Развилка и Цикл (фиг, 2). При этом последняя может иметь две разновидности. Внутри базовых структур Развилка и Цикл осуществляется ветвление вычислительного процесса с последующим объединением ветвей, Объединение ветвей программы осуществляет обращение по одному и тому же адресу после прохода ветвей программы. Суммы кодов команд, находящихся в различных ветвях, в общем 20 25 30 35 40 45 50 55 случае не совпадают. В результате этого при объединении ветвей программы без принятия дополнительных мер предложенное устройство зафиксирует ошибку программы, хотя таковой и нет, Для исключения этого являения необходимо искусственно выравнивать текущие суммы программы перед каждым объединением ветвей. Это легко обеспечивается путем размещения перед каждой точкой объединения ветвей дополнительных команд (уравнивающих блоков), не имеющих функционального значения с точки зрения процесса решения задачи, реализуемой микропроцессорной системой. Уравнивающие блоки изображены на фиг. 2 заштрихованными прямоугольниками, причем их различная штриховка подчеркивает различное значение уравнивающих чисел в различных ветвях программы. В простейшем случае уравнивание текущих сумм осуществляться до нулевого значения. При этом вход в каждую точку слияния ветвей прогораммы происходит с нулевым значением текущей, суммы, т. е. нулевым состоянием накапливающего сумматора 2. Наиболее просто обнуление текущих сумм может быть реализовано путем подачи на вход сброса устройства соответствующего сигнала в момент исполнения программой уравнивающего блока, При подключении устройства к системе, построенной на базе микропроцессора КР 580 такое директивное уравнивание реализуется программным блоком, состоящим из двух команд Запрещение прерывания и Разрешение прерывания. В процессе исполнения этих команд на выходе 1 ХТЕ микропроцессора появляется импульс, который поступает на вход сброса устройства и осуществляет обнуление текущей суммы.Использование директивного уравнения снижает достоверность контроля предлагаемого устройства. Это связано с тем, что часть ложных переходов программы не обнаружена, поскольку в результате такого уравнивания возникающие после сбоя некорректные текущие суммы могут принимать нулевые (корректные) значения еще до момента фиксации ошибки на выходе устройства,Для устранения указанного недостатка необходимо применять естественное уравнивание путем суммирования кодов команд уравнивающих блоков (вход сброса устройства не возбуждается), В качестве контрольных сумм точек слияния ветвей программы в этом случае рационально принимать не нулевые, а такие суммы, которые получаются при естественном прохождении программой одной из сходящихся ветвей. Это дает возможность исключить из соответствующих ветвей уравнивающие блоки.В частности, из базовых структур (фиг. 2) исключаются блоки, заштрихованные крест- накрест.1481775 10 ФОрмьй зобретбнпя Составитель Л. Си галовРедактор С. Патрушева Техред И. Верес Корректор М. ВасильеваЗаказ 2631/50 Тираж 669 ПодписноеВНИИГ 1 И Государственного комитета по изобретениям и открытиям при ГКНТ СССР3035, Москва, Ж - 35, Раушская наб., д. 45Производственно-издательский комбинат Патент, г. Ужгород, ул. Гагарина, О Оставшиеся уравнивающие блоки (косая штриховка на фиг. 2) удобно реализовать на основе команд с непосредственной адресацией. В частности, в случае использования микропроцессора КР 580 каждый уравнивающий блок может быть реализован одной единственной командой типа Сравнение содержимого аккумулятора с некоторым числом. Учитывая, что суммирование кодов команд осуществляется по модулю, во втором байте такой команды можно всегда разместить число, дополняющее текущую сумму до заданного значения. Определение же величины уравнивающего числа может осуществляться либо программистом в процессе разработки программы, либо автоматически с помощью соответствующего транслятора в процессе формирования объектного кода программы. Устройство для контроля хода программ, содержащее блок постоянной памяти, накапливающий сумматор, схему сравнения и элемент И, причем группа адресных входов устройства соединена с группой адресных входов блока постоянной памяти, группа выходов которого соединена с первой группой входов схемы сравнения, вход начальной установки устройства соединен с входом сброса накапливающего сумматора, группа 5 выходов которого соединена с второй группой входов схемы сравнения, выход схемы сравнения соединен с первым входом элемента И, вход признака чтения устройства соединен с вторым входом элемента И, выход которого является выходом ошибки хода программы устройства, Отлчаюцееся тем, что, с целью повышения достоверности контроля хода программы, в устройство введены мультиплексор и элемент ИЛИ, причем группа входов кода команды устройства соединена с первой группой информационных входов мультиплексора, группа выходов которого соединена с группой информационных входов накапливающего сумматора, группа входов текущего состояния программы устройства 20 соединена с второй группой информационных входов мультиплексора и с группой входов элемента ИЛИ, выход которого соединен с тактовым входом накапливающего сумматора, вход признака чтения устройства соединен с управляющим входом мультиплексора.

Смотреть

Заявка

4305638, 16.06.1987

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

ШУБИН НИКОЛАЙ АЛЕКСЕЕВИЧ, КОМАРОВ ВАЛЕРИЙ МИХАЙЛОВИЧ

МПК / Метки

МПК: G06F 11/28

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

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

Код ссылки

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

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