Устройство для контроля хода программ Советский патент 1991 года по МПК G06F11/28 

Описание патента на изобретение SU1649551A1

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

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

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

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

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

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

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

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

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

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

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

гг

соответствующую точку. При этом контрольные числа вычисляются заранее и еще до начала работы устройства размещаются в первом блоке 1 постоянной памя ти.

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

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

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

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

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

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

51

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5

Q 5

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

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

название год авторы номер документа
Устройство для контроля хода программ 1988
  • Шубин Николай Алексеевич
  • Комаров Валерий Михайлович
  • Гладштейн Михаил Аркадьевич
  • Альтерман Игорь Зелимович
SU1545223A1
Устройство для контроля хода программ 1987
  • Шубин Николай Алексеевич
  • Комаров Валерий Михайлович
SU1481775A1
Устройство для контроля хода программ 1984
  • Гладштейн Михаил Аркадьевич
  • Шубин Николай Алексеевич
  • Комаров Валерий Михайлович
SU1191912A1
Устройство для контроля хода программ 1987
  • Зиборова Марина Эдуардовна
  • Иванов Михаил Александрович
  • Тышкевич Владимир Георгиевич
SU1508215A1
Устройство для контроля микропроцессорной системы 1988
  • Васильев Владимир Всеволодович
  • Гончаренко Григорий Иванович
  • Жабин Валерий Иванович
  • Савченко Владимир Иванович
  • Самофалов Константин Григорьевич
  • Ткаченко Валентина Васильевна
SU1605239A1
ФОРМИРОВАТЕЛЬ ТЕСТОВ 1991
  • Гремальский Анатолий Александрович
  • Бежан Виорел Евтемьевич
  • Рошка Андрей Алексеевич
RU2012924C1
Устройство для контроля микропроцессорной системы 1990
  • Сидоренко Николай Федорович
  • Ткачев Михаил Павлович
  • Пикин Владимир Юрьевич
  • Остроумов Борис Владимирович
  • Тимонькин Григорий Николаевич
  • Ткаченко Сергей Николаевич
  • Харченко Вячеслав Сергеевич
SU1700558A1
Устройство для контроля программ 1986
  • Гладштейн Михаил Аркадьевич
  • Комаров Валерий Михайлович
  • Шубин Николай Алексеевич
SU1332323A1
Микропроцессорное устройство управления лучом плоской антенной решетки 1984
  • Мазуров Александр Яковлевич
  • Кутузаки Сергей Иванович
  • Ахтямов Тимур Мясугович
SU1206797A1
Устройство микропрограммного управления 1988
  • Карпов Анатолий Федорович
SU1536380A1

Иллюстрации к изобретению SU 1 649 551 A1

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

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

Формула изобретения SU 1 649 551 A1

Документы, цитированные в отчете о поиске Патент 1991 года SU1649551A1

Цифровой генератор периодических сигналов 1984
  • Шафир Иосиф Григорьевич
  • Гончаров Лев Иванович
  • Горелов Сергей Владимирович
SU1191904A1
Приспособление для точного наложения листов бумаги при снятии оттисков 1922
  • Асафов Н.И.
SU6A1
СПОСОБ ПОЛУЧЕНИЯ АЗОТСОДЕРЖАЩИХ СОПОЛИМЕРОВ 0
SU300479A1
Приспособление для точного наложения листов бумаги при снятии оттисков 1922
  • Асафов Н.И.
SU6A1
,

SU 1 649 551 A1

Авторы

Шубин Николай Алексеевич

Даты

1991-05-15Публикация

1988-05-23Подача