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

Иллюстрации

Показать все

Реферат

 

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

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

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

РЕСПУБЛИК (59 4 б 06 F ll 28

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

Н АBTOPCHOMV СВИДЕТЕЛЬСТВУ

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

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

ПРИ ГКНТ СССР (21) 4305638/24-24 (22) 16.06.87 (46) 23.05.89. Бюл. № 19 (71) Рыбинский авиационный технологический институт (72) H. А. Шубин и В. М. Комаров (53) 681.3(088.8) (56) Патент Великобритании № 2035633, кл. G 06 F 11/30, 1982.

Авторское свидетельство СССР № 1191912, кл. G 06 F ll/28, 1984.

„„SU„„ i4Si 775 А

2 (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА ПРОГРАММ (57) Изобретение относится к области вычислительной техники и позволяет контролировать процесс выполнения программ в микропроцессорных системах. Цель изобретения — повышение достоверности контроля. Устройство, содержащее блок постоянной памяти, накапливающий сумматор 2, схему 3 сравнения, элемент И 4, мультиплексор 5, элемент ИЛИ 6, подключается к шинам контролируемой системы. Изобретение обеспечивает глубокий оперативный контроль хода программы, причем за счет анализа процесса исполнения команд оно обладает большей достоверностью. 2 ил.

1481775

3

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

Цель изобретения — повышение достоверности контроля хода программ.

На фиг. 1 изображена структурная схема устройства; на фиг. 2 — базовые структуры программирования контролируемой системы.

Устройство для контроля программ содержит блок 1 постоянной памяти и накапливающий сумматор 2, схему 3 сравнения и элемент И 4, мультиплексор 5 и элемент ИЛИ 6.

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

Пусть необходимо контролировать ход программы некоторой микропроцессорной системы. Программа представляет собой совокупность команд и хранится o памяти команд. В качестве последней обычно выступает постоянное запоминающее устройство.

Каждая команда занимает от одной до нескольких соседних ячеек памяти и информационно характеризуется массивом слов (ба йтов) .

Процесс воспроизведения программы заключается в последовательном (шаг за шагом) извлечения из памяти команд слов программы, их декодировании и исполнении принятых команд. При этом извлечение каждого очередного слова программы сопровождается тем, что на шине адреса системы устанавливается адрес указанного слова. Затем генерируется сигнал чтения памяти команд, по которому адресуемое слово поступает на шину данных системы и принимается микропроцессором. После извлечения всех слов, составляющих текущую команду, и их декодирования микропроцессор исполняет принятую команду.

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

Такими сигналами являются «Чтение» или

«Запись» при обращении к памяти и «Ввод» н «Вывод» при обращении к портам.

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

4

Для обеспечения контроля в предлагаемом устройстве каждому адресу (каждой точке) программы ставится в соответствие некоторое контрольное число. Указанное число является суммой (например, по модулю 256) всех слоя программы, извлекаемых из памяти команд системы к моменту прохождения программы через соответствующую точку, и всех кодов, появляющихся на шине управления системы в процессе исполнения команд, предшествовавших текущей. При этом контрольные числа вычисляются заранее и еще до работы устройства размещаются в блоке 1 постоянной памяти.

В процессе реализации программы на каждом ее шаге вычисляются текущие суммы, которые в определенные моменты времени сравниваются с контрольными числами.

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

Рассмотрим работу предлагаемого устройства в процессе реализации некоторой команды. На этапе выборки команды на адресный вход устройства и, следовательно, на вход блока 1 постоянной памяти подается адрес, по которому в микропроцессорной системе из памяти команд извлекается очередное слово программы. Это обеспечивает появление на выходе блока 1 постоянной памяти контрольного числа, соответствующего данной точке программы.

Пусть на рассматриваемый момент вре- . мени в накапливающем сумматоре 2 накопитель некоторая сумма, характеризующая работу программы за предыдущее время. Указанная сумма и контрольное число с выхода блока 1 поступают на схему 3. Схема 3 сравнивает поступившие числа и в случае их равенства формирует на своем выходе нулевой логический уровень, свидетельствующий о корректности выполняемых вычислений. С выхода схемы 3 указанный сигнал посгупает на вход элемента

И 4.

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

Одновременно с сигналом чтения памяти команд на информационный вход устройства подается текущее слово программы. Код указанного слова через мультиплексор 5, управляемый тем же сигналом чтения па1481725

5 «0

55 мяти команд, пепедается нг вход накапливающего сумматора 2.

Во время действия сигнала чтения памяти команд на шHHe управления системы устанавливается также сигнал «Чтение». Указанный сигнал через вход управляющих сигналов поступает в устройство и через элеме;.т ИЛИ 0 подается «а вход синхронизации накапливающего сумматора 2.

В момент окончания сигналг «Чтение» накапливающий сумматоГг 2 добавляет к хранящемуся в нем .ислу поступившее слово и формируе-. на своем выход= HOBylo сумму.

При этом равенство кодов i:à входах схемы 3 нарушается H oi!2 формирует единичный логический уровень. Однако в этот момент времени элемент И 4 закрыт нулевым уровнем сигналг чтения памяти команд и распространение ложного сигналя ошибки блскироьано.

При послед; юц,ем чтении микропроцессоРОМ СЛОВ ПРОГРаМ.ЛЫ, СОСТ2ВЛЯЮЩИХ ТЕКХгщую команду, ус-.рсйство рабочтает уже описанным образом. После прие.,1а и декодирования коман ы начинается этап ее испол нения.

Во время исполнения команды на входе стробирсвания устройства устанавливается нулевой потенциал (сигнал чтения памяти команд отсутствует). Это приводит к переключению мультиплексора 5 и подаче на вход накапливающего сумм:Top2 2 параллельного кода с входа управляющих сигналов устройства. В процессе обращения микропроцессора к данным на указанном входе появляется один из управляющих сигналов «Чтение», «Запись», «Ввод» или

«Вывод». Это приводит к формированию па входе накапливающего сумматора 2 кода, в котором указанные сигналы представлены различными разрядами (различными весами). Одновременно срабатывает элемент

ИЛИ 6 и формирует сигнал синхронизации накапливающего сумматора 2. По заднему фронту указанного сигнала (задний фронт свиде-.ельствует Об окончании операции обращения к данным) накапливающий сумматор 2 добавляет к ранее вычисленной сум ле параллельный код управляющих сигналов, который вследствие задержки, вносимой мультиплексором 5, еще сохраняется на входе накапливающего сумматора

2. В результате этого значение суммы корректируется, причем ее приращение однозначно определяется активным управляющим сигналом, т. е. типом вьшолненного обра1ц ния к данным.

Если в процсссе исполнения команды обращение к данным осуществляется несколько раз, то устройство соответствующее число раз повторяет описанные действия по корректировке текугцей суммы. Таким образом, в результате исполнения команды и выполнения соответствующих шагов программы на выходе накапливающего сумматора 2 формируется обновлен Ое значение текущей cyv.,i!û. !ричем указанная сумма отличается от предыду1цей ня вполне определенную геличину, 32BH;ящую от количества и типа совершенных обращений, 1 н к р 0 и р 0 !i, с с с 0 р 2 к д г н н ы . . i . В ч 2 с т и О м с. 1 учае, когда исполнение кo.:.21«,<ь: не связано с осра;цением микропроцсссора к данным (операции осуществляются BI .утри микропроцессора) текущая сумма Остается неизменной. ! гоС. 1Е ИСПОЛ НРННЯ ТЕ1ХУЩЕй КОМ2НДЫ МИKp0:ip0tLccc0p перехо !".1 к Быбсрке следующей. В процессе !-.pнемя пеpBoi слова новой командь: сх". ы 3 осуществляет сравнение получен;гой ь накапливающем сумматоре 2 суммы с контрольным числом. В Pe3«, 16TBTñ э : 0 . 0 dHBLHIIBI!P««ÐTÑß пРЯвильность нсг1олнения только —.0 завершенной команды. При этс;, сели iiãpóøåHHé хода программ -, не было (т. е. все операции обря 1ен«1я к дгпнь,. выполнены так, как Ожидалось), То Tcl,",щая суммг совпадает с контрольнь1м числом. В момент

liccT«i ï.lcHHRi H2 вход стробирОвяния устройства сигнала чтения 1:амяти команд эле:лент И 4 остается закрытым нулевым уровнем с выходя схемы 3 анализа и сигнал ошибки на выходе устройства не появляется.

Нарушения правильного хода программы проявляются на этгпах выборки и исполtPHHR команд. Г1ричем нг этапаx выборки команд воз.ложны нарушения последовательности обращений микропроцессора к памяти команд (к этому приводит, например, сбой программного счетчика микропроцессора или отказ линий шины адреса cистемы), а также прием ложного слова программы (отказ соответствх«ющей ячейки;1ямяти команд или линий LUHHbt:L2HHblX CIIC10 iibt}. В CBOIO очередь, на этапах исполнения команд возможны пропуски или реализа,ни ложных обращений .;1икропроцессоря к данным, которые возникают в случае формирования некорректны.< управляющн. сигналов (сбой микропроцессора или отказ линий шины управления системы).

Предлагаемое устройство обеспечивает выявление подобных нарушений нормального хода программы. Действительно, при нарушении последовгтельнсст . обращения MHкропроцессоря к,1амятн команд на адресНОМ ВХОДЕ "CTOLгЙСТВг I .ОЯВ, 1Я ТСЯ НЕДОСТОверный адрес. 1!ри этом нз блока 1 постоянной пгмяти нзвлекаегся контрольное число, не соотве-«ствующее текущей сумме накапливающего сумматора . Г1рп приеме микрспрсцсcссром .Iожнсгс слова программы некорректная инфсрм2 HR появляется на информационном входе устройства. Это приводит к вь;ислению накапливясщим сумматором 2 теку1цей су iглы, не соответствующей контрольному чис,.«у. Аналогичная ситуа1481775

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

Во всех описанных случаях схема 3 фиксирует неравенство кодов и генерирует устойчивый уровень логической елиницы, который поступает на вход элемента 14.

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

При этом запускаемая программа в первой своей точке должна иметь нулевое контрольное число. Аналогичным образом происходит очистка накапливающего сумматора 2 и в процессе начального запуска (сброса контролируемой системы.

Таким образом, устройство позволяет контролировать ход программы в микропроцессорной системе с момента начального ее запуска, а также после устранения ошибок. Однако использование предлагаемого устройства налагает некоторые ограничения на программирование микропроцессорной. системы. Без учета этих ограничений в предложенном устройстве обеспечивается контроль лишь линейных участков программы. Линейный участок программы при широко распространенном в настоящее время структурном подходе к программированию называется базовой структурой «Следование». Однако этой структуры недостаточно, чтобы представить даже самые IIpocтые практические программы. Теория показывает, что логическая структура любой сколь угодно сложной программы, может быть выражена комбинацией трех базовых структур: к уже упомянутой структуре

«Следование» добавляются структуры «Развилка» и «Цикл» (фиг. 2) . При этом последняя может иметь две разновидности.

Внутри базовых структур «Развилка» и

«Цикл» осуществляется ветвление вычислительного процесса с последующим объединением ветвей. Объединение ветвей программы осуществляет обращение по одному и тому же адресу после прохода ветвей программы. Суммы кодов команд, находящихся в различных ветвях, в общем

55 случае не совпадают. В результате этого при объединении ветвей программы без принятия дополнительных мер предложенное устройство зафиксирует ошибку программы, хотя таковой и нет. Для исключения этого являения необходимо искусственно выравнивать текущие суммы программы перед каждым объединением ветвей. Это легко обеспечивается путем размещения перед каждой точкой объединения ветвей дополнительных команд (уравнивающих блоков), не имеющих функционального значения с точки зрения процесса решения задачи, реализуемой микропроцессорной системой. Уравнивающие блоки изображены на фиг. 2 заштрихованными прямоугольниками, причем их различная штриховка подчеркивает различное значение уравнивающих чисел в различных ветвях программы.

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

При подключении устройства к системе, построенной на базе микропроцессора КР 580 такое «директивное» уравнивание реализуется программным блоком, состоящим из двух команд «Запрещение прерывания» и «Разрешение прерывания». В процессе исполнения этих команд на выходе INTE микропроцессора появляется импульс, который поступает на вход сброса устройства и осуществляет обнуление текущей суммы.

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

Для устранения указанного недостатка необходимо применять естественное уравнивание путем суммирования кодов команд уравнивающих блоков (вход сброса устройства не возбуждается). В качестве контрольных сумм точек слияния ветвей программы в этом случае рационально принимать не нулевые, а такие суммы, которые получаются при естественном прохождении программой одной из сходящихся ветвей.

Это дает возможность исключить из соответствующих ветвей уравнивающие блоки.

В частности, из базовых структур (фиг. 2) исключаются блоки, заштрихованные крестнакрест.

1481775

Фор иуда изобретения

4(игл

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

Редактор С. Патрушева Техред И. Верес Корректор М. Васильева

Заказ 263 I/50 Тираж 669 Подписное

ВНИИГ!И Государственного комитета по изобретениям и открытиям при ГКНТ СССР !! 3035, Москва, Ж вЂ” 35, Раушская наб., д. 4/5

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

Оставшиеся уравнивающие блоки (косая штриховка на фиг. 2) удобно реализовать на основе команд с непосредственной адресацией. В частности, в случае использования микропроцессора КР 580 каждый уравнивающий блок может быть реализован одной единственной командой типа «Сравнение содержимого аккумулятора с некоторым числом». Учитывая, что суммирование кодов команд осуществляется по модулю, во втором байте такой команды можно всегда разместить число, дополняющее текущую сумму до заданного значения. Определение же величины уравнивающего числа может осуществляться либо программистом в процессе разработки программы, либо автоматически с помощью соответствующего транслятора в процессе формирования объектного кода программы.

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

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

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