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

Иллюстрации

Показать все

Реферат

 

Изобретение относится к вычислительной технике и может быть использовано при построении надежных микропроцессорных систем. Цель изобретения - повышение достоверности контроля. Устройство позволяет осуществить глубокий контроль хода программы сложной структуры за счет применения механизма коррекции и за счет снижения частоты повторяемости значений текуших сумм (контрольных чис ел) . 1 ил.

®)5 0 06 F 11 28

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

ПО ИЗОБРЕТЕНИЯМ И ОТНРЬ ТИЯМ

ПРИ ГКНТ СССР

Н А ВТОРСИОМУ СВЖДЕТЕЛЬСТВУ (2 i) 4429772/24 (22) 23.05.88 (46} 15.05.91. Бюл. Y - 18 (71) Рыбинский авиационный технологический институт (72} Н. А.Шубин (53) 681. 3 (088. 8) (56) Авторское свидетельство СССР

Ф 191904, кл, С 06 F 11/28, 1983.

Авторское свидетельство СССР !

1 - 1300479, к.п, G 06 F ! 8. 1985, (54) УСТРОЙСТВО ПЛЕ ЮНТРОЛЯ ХО !А

ПРОГРАММ

Изобретение относитс:-. к вычислительной гехнике и может быть использовано при построении н".,ã;åæÿûõ микропроцессорных систем, нечувствительных к сбоям ггрограммы..

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

На чертеже изображена структурная схема устройства.

Устройство для контроля хода программ содержит первый блок 1 постоянной памяти, накапливаю|ггий сумматор 2., схему 3 сравнения, элемент И

4, дешифратор 5, комбинационный сумматор б и второй блок 7 постоянной памяти.

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

2 (57) Изобретение относится к вычислительной технике и может быть использовано при построении надежных микропроцессорных систем. Цель изобМ ретения — повышение достоверности контроля. Устройство позволяет осуществить глубокий контроль хода программы сложной структуры за счет применения механизма коррекции и за счет снижения частоты повторяемости значений текуших сумм (контрольных чис ел) . 1 ил. последней обычно используется посто- у» » янное запоминающее устройство. Каждая команда занимает от одной до нескопьких соседних ячеек памяти и информационно характеризуется массивом слов (байтов).

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

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

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

Для обеспечения контроля в предлагаемом устройстве каждому адресу 10 (каждой точке) программы ставится в соответствие некоторое контрольное число. Указанное число фактически является суммой (например, по модулю

256) всех слов п, которые в. процессе корректных вычислений извлекаются из памяти команд системы к моменту прохождения программы через соответствующую точку. При этом контрольные числа вычисляются заранее и 2п еще до начала работы устройства размещаются в первом блоке 1 постоянной памяти, В процессе реализации программы накапливающий сумматор 2 осуществля- 25 ет суммирование всех извлекаемых микропроцессором слов программы. В результате этого в каждой точке программы вычисляются текущие суммы, которые сравниваются с контрольными числами. Для обеспечения корректности операций сравнения необходимо, чтобы текущие суммы каждой точки программы не зависели от того, по какой траектории воспроизводилась программа к моменту прохождения через указанную точку. Это достигается тем, что в отдельных точках программы, находящихся в различных ее ветвях и, следовательно, принадлежа- щ щих различным траекториям, в устройстве осуществляется необходимая коррекция текущих сумм, Корректирующие коды так жЕ, как и контрольные числа, вычисляются заранее и размещаются во втором блоке 7 постоянной памяти.

Таким образом, при правильном исполнении программы текущие суммы (с учетом коррекции) всегда совпадают с контрольными числами и ошибка не фиксируется. При нарушении хода программы возникает несоответствие между текущими суммами и контрольными числами. Это приводит к появлению на выходе. устройства сигнала ошибки, Рассмотрим работу предлагаемого устройства на некотором шаге ïðîграммы. В процессе реализации укаэанного шага на адресный вход устройства и, следовательно, на вход первогО блока 1 постоянной памяти подается адрес, по которому в микропроцессорной системе из памяти команд извлекается очередное слово программы, Это обеспечивает появление на выходе первого блока 1 постоянной памяти контрольного числа, соответствующеro данной точке программы.

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

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

И 4.

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

B процессе обращения микропроцессора к памяти команд на информационный вход устройства подается текущее слово программы. Код указанного слова поступает на вход первого операнда комбинационного сумматора 6, На вход второго операнда комбинационного сумматора 6 поступает код с выхода второго блока 7 постоянной памяти. В обычных условиях, когда коррекция текущей суммы не требуется, указанный код является нулевым, 1Ы > 1 1

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

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

Однако в этот момент времени элемент

И 4 закрыт нулевым уровнем сигнала с1робирования и распространение ложного сигнала ошибки блокировано.

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

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

Данн61х Это приВодит к чтению нскор— ректных слов программы из памяти команд системы (ложный код команды).

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

Однако таким образом устройство функцйонирует только при воспроизведении линейных участков программ, не содержащих точек слияния ветвей, 20 В этом случае каждому слову.из памяти команд микропроцессорной системы может быть поставлено в соответствие только одно контрольное число, Указанное обстоятельство и дает воэ25 можность вычислить и разместить заранее в первом блоке 1 постоянной памяти устройства массив контрольных чисел, а затем использовать их.

Однако реальные программы, как правило, имеют более сложные структуры и содержат точки слияния ветвей. В указанных точках значения текущихсуммзависятоттогО9ПОкакОй траектории была реализована программа. В общем случае такие суммы, полученные при прохождении различных траекторий, не совпадают. Это приводит к тому, что каждой точке слияния должно быть поставлено в соот4О ветствие несколько контрольных чисел, Эти числа должны выбираться в конце реализации соответствующих ветвей и размещаться по одному адресу первого блока 1 постоянной памяти, что не, 5 ВОЗМОЖНО

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

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

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

В процессе реализации программы на вход второго блока 7 постоянной памяти через адресный вход устройства поступают адреса текущих точек, При этом при прохождении программы через обычные точки на выходе второго блока 7 постоянной памяти уста навлииаются нулевые коды и устройство работает обычным образом, т,е. аналогично описанному, При возбуждении специальной точки на выходе второго блока 7 постоянной памяти устанавливается корректирующий код, Указанный код посредством комбинационного сумматора 6 и накапливающего сумматора 2 складывается с текущим словом программы и со старой суммой. В результате на выходе накапливающегося сумматора 2 формируется новая сумма, При этом, поскольку сложение реализуется по модулю, то путем подбора корректирующего кода всегда можно получить нужное значе= ние суммы. Это дает возможность заранее установить и разместить во втором блоке ? постоянной памяти такие корректирующие коды, при которых значения текущих сумм в точках слияния ветвей и, следовательно, во всех других точках программы не зависят от реализуемых программой траекторий.

При этом контрольные числа первого блока I постоянной памяти подбираются соответствующим образом, т.е. с учетом коррекции текущих сумм. Аналогичным образом устройство функционирует и в процессе реализации программ, содержащих подпрограммы, При этом уравнивающие коды выбираются и расставляются с таким расчетом, чтобы обеспечить соблюдение следующих условий, Во-первых, в точках вызова каждой подпрограммы контрольные суммы (и, соответственно, контрольные числа в первом блоке 1 постоянной памяти) должны быть постоянными, напри мер нулевыми, Это дает возможность; поставить в соответствие первой точке каждой подпрограммы фиксированное контрольное число, не зависящее от, 5

ЗС

55 предыстории корректного хода программы, путем размещения в точке вызова подпрограммы соответствующего уравнивающего кода во втором блоке постоянной памяти 7, Во-âòoðûõ, в самих подпрограммах уравнивающие коды располагаются таким образом, чтобы контрольные суммы подпрограмм не зависели от траекторий их реализации (уравнивающие коды размещаются перед точками слияния ветвей) и имели фиксированные, например нулевые, значения. Это дает возможность заранее вычислить контрольные числа для точек возврата из подпрограмм.

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

Для снижения частоты повторяемости значений текущих сумм в предлагаемом устройстве достаточно перед активацией соответствующих точек программы выполнить коррекц.по текущих сумм. С этой целью по адресам пред— шествующих точек программы во втором блоке 7 постоянной памяти размещаются необходимые корректирующие коды.

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

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

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

1б49551

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

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

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

Редактор А.Orap Техред М,Моргентал Корректор Н. Король

Заказ 1523 Тираж 418 Подпи с но е

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

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

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

1Ф II

Г ин 101 начальной установки, указанный сигнал поступает на вход сброса накапливающего сумматора 2 и производит обнуление (очистку) текущей суммы.

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

25 соединен с входом второго операнда комбинационного сумматора.