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

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

Автор: Шубин

ZIP архив

Текст

СОЮЗ СОВЕТО ИКПЭИ ЛЮЖЕРВРЕС 11 УБЛИИ . Я)5 0 06 Г 11 28 ОБРЕТЕН 429772/243. 05. 885.05.91, Бюл. Ф ыбинский авиаци(71 ноло ти т гическии и (72) Н.АЛ (53) 681,3 (56) Автор 11 1191904,Авторск 11 1300479, (54) УСТРО ПРОГРЛММ исти убин (08 роСССР1983,СР1 очс,теХО .1 А с видетельство С 06 Г 11/28, илетельство СГ С 06 Г 1,т 28,ДПЕ КОНТРОПЯ кае к.1 т е е св к,п.ЙСТВ чттсттиис пал ь ель ова тх мит ствирапроц тельнь Целсерности контр На чертеже из еаже на укт ма устраис ойство для одержит пена.контроля хвый блок 1пливаюший ная сх а проостограмм сяннойтор 2., 4, деш матор памяти уммамент Ии сумамя ти, н ака схему 3 сра Фратор 5, ки второй б Вчения эле амбинацианет лак 7 пост но бает следутпутм о р ст аэа контралироварой микропр ь необхади нек ад ттрат рамм орной систе яет собой с ранится в п х Функции уст- микропроцессорэам, чта его ан ойство подк ай системе аетсяим аб и т ГОСУДАРСТВЕННЫЙ НОМИТЕТПО ИЗОБРЕТЕНИЯМ И ОТНРЬТИЮьПРИ ГКНТ СССР эобретение отнаситс, к вной гехнике и может бытьно при построении надежи ессарных систем, нечув х к сбоям ттрограммы, ь изобретения - повыше мь 1, Программа предс нокупнасть команд тяти команд. В кач(57) Изобретение относится к вычислительной технике и может быть использовано при построении надежныхмикропроцессорных систем. Цель изобретения - повышение достоверностиконтроля. Устройство позволяет осуществить глубокий контроль хода пграммы сложной структуры за счет применения механизма коррекции и засчет снижения частоты повторяемостизначений текущих сумм (контрольныхчисел) . 1 ил. последней обычно используется постоянное запоминающее устройство. 1(аждая команда занимает от одной до нескапьких соседних ячеек памяти и инФормационно характеризуется массивам слов (байтов).Процесс воспроизведения программы заключается в последовательном (шаг за шагом) извлечении из памяти команд слов программы, их декодировании и реализации. предписанных операций. При этом на каждом шаге праграм мы извлечение очередного слова сопро вождается тем, что на шине адреса системы устанавливается адрес указан ного слова. Затем генерируется сигнал чтения, по которому адресуемое слона поступает на шину данных системы и принимается микропроцессорам на декодирование.Для реализации своиадресный вход соединяется с шиной адреса системы, информационный вход -с шиной данных, а на управляющий входустройства подается сигнал чтения,Нарушение хода программы фиксируетсяпутем генерации устройством на своемвыходе сигнала ошибки,Для обеспечения контроля в пред"лагаемом устройстве каждому адресу 10(каждой точке) программы ставится всоответствие некоторое контрольноечисло. Указанное число фактически является суммой (например, по модулю256) всех слов программы, которые в,процессе корректных вычислений извлекаются из памяти команд системы кмоменту прохождения программы черезсоответствующую точку. При этом контрольные числа вычисляются заранее и 20еще до начала работы устройства размещаются в первом блоке 1 постояннойпамяти,В процессе реализации программынакапливающий сумматор 2 осуществляет суммирование всех извлекаемыхмикропроцессором слов программы. Врезультате этого в каждой точке программы вычисляются текущие суммы,которые сравниваются с контрольными числами. Для обеспечения корректности операций сравнения необходимо, чтобы текущие суммы каждой точкипрограммы не зависели от того, покакой траектории воспроизводиласьпрограмма к моменту прохождения че"рез указанную точку. Это достигается тем, что в отдельных точках программы, находящихся в различных ееветвях и, следовательно, принадлежа" щщих различным траекториям, в устройстве осуществляется необходимая коррекция текущих сумм, Корректирующиекоды так же, как и контрольные числа,вычисляются заранее и размещаются вовтором блоке 7 постоянной памяти.Таким образом, при правильном исполнении программы текущие суммы (сучетом коррекции) всегда совпадаютс контрольными числами и ошибка нефиксируется, При нарушении хода программы возникает несоответствие между текущими суммами и контрольнымичислами. Это приводит к появлению навыходе. устройства сигнала ошибки,Рассмотрим работу предлагаемогоустройства на некотором шаге программы. В процессе реализации укаэанного шага на адресный вход уст" ройства и, следовательно, на входпервогО блока 1 постоянной памятиподается адрес, по которому в микропроцессорной системе из памяти команд извлекается очередное словопрограммы. Это обеспечивает появление на выходе первого блока 1 постоянной памяти контрольного числа, соответствующего данной точке программы.Пусть на рассматриваемый моментвремени в накапливающем сумматоре 2накопилась некоторая сумма, характеризующая работу программы за предыдущее время, Указанная сумма и контрольное число с выхода первого блока1 постоянной памяти поступают насхему 3. Схема 3 сравнивает поступившие числа и в случае их равенстваформирует на своем выходе нулевойлогический уровень, свидетельствующий о корректности выполняемых вычислений, С выхода схемы 3 указанныйсигнал поступает на вход элементаИ 4,Оценка корректности реализуемыхпрограммой вычислений осуществляетсяв процессе обращения микропроцессора. к памяти команд. Факт такогообращения устанавливается путем декодирования дещифратором 5 адреснойинформации системы, При этом на входстробирования дешифратора 5 подаетсясигнал чтения, генерируемый. микропроцессором. Если на шине адресасистемы установлен адрес памяти команд, то указанный сигнал вызываетсрабатывание дешифратора 5, Сигналс выхода дешифратора 5 стробируетэлемент И 4, в результате чего навыход устройства передается инфор"мация с выхода схемы 3. При корректных вычислениях схема 3 фиксирует совпадение текущей суммы сконтрольным числом и сигнал ошибкина выходе устройства не формируется.В процессе обращения микропроцессора к памяти команд на информационный вход устройства подается текущееслово программы, Код указанного слова поступает на вход первого операнда комбинационного сумматора 6,На вход второго операнда комбинационного сумматора 6 поступает код свыхода второго блока 7 постояннойпамяти. В обычных условиях, когдакоррекция текущей суммы не требуется, указанный код является нулевым, 1 О 4 ч 1 1В результате сложения нулевого кода со словом программы последнее без изменений передается на ньход комбинационного сумматора б, откупа поступает на вход накапливающего сумматора 2.После приема микропроцессором текущего слова программы с управляющего входа устройства снимается сигнал чтения, Это нызынает переключение дешифратора 5. в исходное состояние и снятие сигнала стробиронания элемента И 4. По заднему фронту указанного сигнала накапливающий сумматор 2 добавляет к хранящемуся в нем числу код с выхода комбинационного сумматора 6 (слоно программы) и формирует на своем выходе новую сумму. При этом равенство кодов на входах схемы 3 нарушается и она Формирует единичный логический уровень, Однако в этот момент времени элемент И 4 закрыт нулевым уровнем сигнала стробиронания и распространение ложного сигнала ошибки блокировано,На следующем шаге программы устройство выполняет аналогичные действия и т,д, В результате при правильной реализации программь., на выходе устройства никогда не появляется сигнал ошибкиНарушение нормального хоца программы может быть вызвано, например, сбоем счетчика команд н микропроцессоре или отказом адресных линий н.шине адреса. Это приводит к искажению информации на шине адреса и наруше- . нию последовательности.выбора слон программы (ложный переход), Кроме того, возможны отказы ячеек памяти команд и отказы линии связи н шине данных, Это приводит к чтению нскор - ректных слов программы из памяти команд системы (ложный код команды), Предлагаемое устройство обеспечивает выявление подобных нарушений нормального хода программы с высокойстепенью достоверности,Действительно, при искажении информации на адресной шине микропроцессорной системы (ложный переход) из блока 1 постоянной памяти будет извлечено контрольное число, не соответствующее верному состоянию накапливающего сумматора 2, При искажении информации на шине данных микропроцессорной системы (ложный код команды) состояние накапливающего сумматора 2 не бупет соответствовать верному контрольному числу на выходе блока 1 постоянной памяти, В обоих случаях схема 3 зафиксирует неравенствочисел на входах путем установки насноем выходе единичного логическогоуровня, В результате в процессе обращения микропроцессора к памяти команд и появления сигнала стробирования на выходе дешифратора 5 открывается элемент И 4 и на выходе устройства Формируется сигнал ошибки, кото"рый свидетельствует О нарушении нормального хода программы.Однако таким образом устройствоФункцйонирует только при воспроизведении линейных участков программ,не содержащих точек слияния ветвей, 20 В этом случае каждому слову из памяти команд микропроцессорной системыможет быть поставлено в соответствие только одно контрольное число,Указанное обстоятельство и дает воэ можность вычислить и разместить заранее в первом блоке 1 постоянной памяти устройства массив контрольныхчисел, а затем использовать их.Однако реальные программы, как 30 правило, имеют более сложные структуры и содержат точки слияния ветвей, В указанных точках значения текущих сумм зависят от того, по какойтраектории была реализована программа, В общем случае такие суммы, полученные при прохождении различныхтраекторий, не совпадают. Это приводит к тому, что каждой точке слияния должно быть поставлено в соот нетствие несколько контрольных чисел,Эти числа должны выбираться в концереализации соответствующих ветвейи размещаться по одному адресу первого блока 1 постоянной памяти, что не- ,5 ВОЗМОЖНОУстранение указанного противоречия в предлагаемом устройстве обеспечивается за счет использованиякорректирующих кодов, генерируемых 50 вторым блоком 7 постоянной памяти,При этом в различных ветвях контролируемой программы выделяются специальные точки, например такие, через которые программа проходит нбпо- . 5 средственно перед слиянием ветвей,Каждой специальной точке, помимоконтрольного числа, ставится в соответствие некоторый ненулевой код,уравнинающий между собой текущиесуммы, получаемые в процессе реализации различных сходящихся ветвей программы, Во втором блоке 7 постоянной памяти указанные коды размещены по соответствующим адресам (по адресам специальных точек)Остальным точкам программы при этом ставятся в соответствие нулевые коды,В процессе реализации программы на вход второго блока 7 постоянной памяти через адресный вход устройства поступают адреса текущих точек, При этом при прохождении программы через обычные точки на выходе второго блока 7 постоянной памяти уста навлииаются нулевые коды и устройство работает обычным образом, т,е.аналогично описанному, При возбуждении специальной точки на выходе второго блока 7 постоянной памяти устанавливается корректирующий код, Указанный код посредством комбинационного сумматора 6 и накапливающего сумматора 2 складывается с текущим словом программы и со старой суммой, В результате на выходе накапливающегося сумматора 2 Формируется новая сумма, При этом, поскольку сложение реализуется по модулю, то путем подбора корректирующего кода всегда можно получить нужное значе-. ние суммы. Это дает возможность заранее установить и разместить во втором блокепостоянной памяти такие корректирующие коды, при которых значения текущих сумм в точках слияния ветвей и, следовательно, во всех других точках программы не зависят от реализуемых программой траекторий. При этом контрольные числа первого блока 1 постоянной памяти подбираются соответствующим образом, т.е, с учетом коррекции текущих сумм, Аналогичным образом устройство Функционирует и в процессе реализации программ, содержащих подпрограммы, При этом уравнивающие коды выбираются и расставляются с таким расчетом, чтобы обеспечить соблюдение следующих условий, Во-первых, в точках вызова каждой подпрограммы контрольные суммы (и, соответственно, контрольные числа в первом блоке 1 постоянной памяти) должны быть постоянными, напри мер нулевыми, Это дает возможность; поставить в соответствие первой точке каждой подпрограммы Фиксированное контрольное число, не зависящее от,5 10 15 20 25 ЗС 35 40 45 50 55 предыстории корректного хода программы, путемразмещения в точке вызоваподпрограммы соответствующего уравнивающего кода во втором блоке постоянной памяти 7, Во-вторых, в самих подпрограммах уравнивающие кодырасполагаются таким образом, чтобыконтрольные суммы подпрограмм не зависели от траекторий их реализации(уравнивающие коды размещаются передточками слияния ветвей) и имели фиксированные, например нулевые, значения. Это дает возможность заранеевычислить контрольные числа для точеквозврата из подпрограмм,Описанный механизм коррекции впредлагаемом устройстве используетсятакже для снижения частоты повторяемости значений текущих сумм (контрольных чисел) различных точек программы, что позволяет еще больше повысить достоверность реализуемогоконтроля.Для снижения частоты повторяемости значений текущих сумм в предлагаемом устройстве достаточно перед активацией соответствующих точек программы выполнить коррекцию текущихсумм. С этой целью по адресам пред -шествующих точек программы во второмблоке 7 постоянной памяти размещаются необходимые корректирующие коды,При достаточной разрядности накапливающего сумматора 2 это позволяетпрактически для всех точек программы установить уникальные значениятекущих сумм (контрольных чисел) иисключить реализацию в системе необнаруживаемых ложных перЕходов программы,Таким образом, в устройстве реализована возможность коррекции текущих сумм. При этом значения контрольных чисел и корректирующих кодов могут быть вычислены программистом впроцессе разработки программы илиполучены автоматически с помощьютранслятора,В случае обнаружения ошибки в ходе. программы на выходе предлагаемогоустройства генерируется сигнал ошибки. Данный сигнал может быть использован в контролируемой системе длязапуска, например, по прерываниюпрограммы устранения ошибок. В процессе обработки прерывания микропроцессор системы обеспечивает подачуна вход сброса устройства сигнала1 О 1849551 Формул а изобретенияУстройство для контроля хода про-, грамм, содержащее первый блок постоянной памяти, дешифратор, схему сравнения, элемент И и накапливающий сумматор, причем выход дешифратора соединен с входом синхронизации накапливающего сумматора и первым входом элемента И, выход которого является выходом ошибки устройства, адресный вход устройства соединен с адресным Составитель И,СигаловРедактор А.Огар Техред М,Моргентал Корректор Н. КорольЗаказ 1523 Тираж 418 ПодписноеВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР113035, Москва, Ж, Раушская наб., д. 4/5 Производственно-издательский комбинат Патент , г. Ужгород, ул. Гагарина, 1 1Н иГ ин 101 начальной установки, Указанный сигнал поступает на вход сброса накапливающего сумматора 2 и производитобнуление (очистку) текущей суммы.После того, как сигнал начальнойустановки снимается, устройство вновьготово к работе. При этом запускаемая программа в первой своей точкедолжна иметь нулевую текущую сумму,Аналогичным образом происходит обнуление текущей суммы и в процессе начального запуска (сброса) контролируемой системы. входом первого блока памяти и информационным входом дешифратора, тактовый вход устройства соединен с входом синхронизации дешифратора, вход начальной установки устройства соединен с входом сброса накапливающего сумматора, выход которого соединен с первым входом схемы сравнения, выход неравенства которой соединен с вторым входом элемента И, выход первого блока памяти соединен с вторым входом схемы сравнения, о т л и ч а ю щ е е с я тем, что, с целью повышения достоверности контроля, в устройствс введены комбинационный сумматор и второй блок памяти, причем адресный вход устройства соединен с адресным входом второго блока памяти, выход которого соединен с входом первого операнда комбинационного сумматора, выход которого соединен с входом накапливающего сумматора, вход кода текущего слова программы устройства 25 соединен с входом второго операндакомбинационного сумматора.

Смотреть

Заявка

4429772, 23.05.1988

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

ШУБИН НИКОЛАЙ АЛЕКСЕЕВИЧ

МПК / Метки

МПК: G06F 11/28

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

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

Код ссылки

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

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