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

Иллюстрации

Показать все

Реферат

 

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

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

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

РЕСПУБЛИК (51) 5 С 06 F 11/28

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

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

ПРИ ГКНТ СССР (21) 4425148/24-24 (22) 12.05.88 (46) 23.02.90. Бюл. N -. 7 (71) Рыбинский авиационный технологический институт (72) Н.А. Иубин, В.11. Комаров, N.À,Ãëàäøòåéí и И.З,Альтерман . (53) 681.3 (088.8) (56) Авторское свидетельство СССР

Ф 1191904, кл. G 06 Г 11./28, 1984.

Авторское свидетельство СССР и 1300479, кл. G 06 F 11/28, 1985.

„„SU, È45223

2 (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА

ПРОГРАИ1 (57) Изобретение относится к вычислительной технике и позволяет контролировать пропесс воспроизведения программы в микропроцессорной системе.

Гель изобретения — упрощение устройства. Устройство содержит блок 1 постоянной памяти, сумматор 2, регистр

3, дешифратор 4, сумматор 5 по модулю два и триггер 6. Для обеспечения контроля в устройстве каждому адресу

545223

10 (каждой точке) программы ставится в соответствие некоторое m-раэряднье число. При этом в блоке постоянной памяти размещаются одноразрядные коды, которые дополняют контрольные числа до (m+1 ) -раз рядных, содержащих четное количество единиц, В процессе реализации программы сумматор осуществляет суммирование всех слов программы с ранее накопленными в регистре контрольными суммами, В ре" зультате этого в каждой точке программы вычисляется m-разрядный двоич20 Изобретение относится к вычислительной технике и может быть использовано при построении надежных микропроцессорных систем, не чувствительных к сбоям программы.

Целью изобретения является упрощение устройства.

На чертеже изображена схема предлагаемого устройства.

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

3, вход сброса которого является входом сброса устройства, а вход данных 40 подключен к выходу сумматора 2, вход первоrî oneранда котороrо подключен к и-разрядному информационному входу устройства, а вход второго операнда

- к выходу регистра 3, а также (пг+1)разрядный сумматор 5 по модулю два и триггер 6, выход которого является выходом устройства, вход синхронизации подключен к выходу дешифратора 4, вход. сброса — к входу сброса регист50 ра 3, а информационный вход — к выходу (ш+1)-разрядного сумматора 5 по модулю два, первый вход которого подключен к выходу блока 1 постоянной памяти, а остальные — к выходу сумматора 2. Причем блок 1 постоянной памяти выполнен одноразрядным, а сумматор 2 и регистр 3 — m-разряднымн,;де .

m > n . Неиспользуемые старшие разряды ный код текущей суммы. Указанный код и дополнительный разряд поступают на схему четности ° Если условие четности не соблюдается, то схема четности генерирует сигнал ошибки, который в момент окончания операции чтения очередного слова программы передается на выход устройства. Использование устройства требует введения в контролируемую программу специальных программных блоков, уравнивающих контрольные суммы различных ветвей программы; 1 ип . входа первого операнда сумматора 2 подключены к линии логического "0".

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

8 команд, соединенные между собой посредс гвом шин адреса 9, данных .10 и управления 11. При этом адресный вход устройства соединяется с шиной 9 адреса системы, п-разрядный инЬормаиионный вход — с шиной 10 данных, а управляющий вход — с линией "Чтениеп шины 11 управления.

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

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

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

40

5 15 мое слово поступает на рину 10 данных системы и принимается микропроцессором 7 на декодиронани»з.

Для обеспечения контроля в предлагаемом устройстве каждому адресу (каждой точке) про граммы с тано в ится в соответствие некоторое контрольное

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

m-разрядными суммами из регистра 3, В результате этого в каждой точке программы вычисляется m-разрядный двоичный код текущей суммы. Указанный код с учетом дополнительного разряда, значение которого извлекается иэ блока 1 постоянной памяти по текущему адресу программы, дополняется до (ш+1)-.разрядного и проверяется на четность. Если количество единиц в полученном коде нечетно, то фиксируется ошибка.

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

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

45223 6

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

Затем микропроцессор 7 генерирует

15. на шине 11 управления, сигнал "Чтение, который активирует память 8 команд.

В результате этого из памяти 8 команд на шину 10 данных передается текущее и-разрядное слово программы. Данное слово через информационный вход устройства поступает на вход первого операнда сумматора 2 и складывается

d m-разрядным числом с выхода регистра 3, которое представляет собой сумму всех ранее поступивших в устройство слов программы и является предь»душей контрольной суммой.

В результате сложения текушего слова программы и предыдущей суммы на выходе сумматора 2 формируется текущая контрольная сумма. m-разрядный код текущей суммы и одноразрядный контрольный код с выхода блока 1 постоянной памяти образуют (m+-1)-разрядный код, которь»»» поступает в сумматор 5. Если указанный код содержит четное количество единиц (такая сН туация возникает, например, когда текушая сумма корректна), сумматор 5 формирует нулевой сигнал, который свидетельствует о том, что на данном шаге программы ошибка»»е обнаружена.

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

2 и сумматоре 5. Кроме того, при выполнении микропроцессором 7 операц»1й, не связанных с извлечением текущего слова программы из памяти 8 команд, на шинах адреса 9 и данных 10 системы устанавливаются произвольные коды, которые могут приводить к ложному срабатыванию сумматора 5.

Для получения достоверного результата с выхода сумматора 5 устройство

1545223 выявляет факт обращения микропроцессора 7 к памяти 8 команд, Указанная: функция реализуется дешифратором 4, который срабатывает при появлении на шине 9 системы адреса памяти 8 ко- . манд, а на книне 11 управления - сигнала "Чтение", импульс с выхода де-, шифратора 4 поступает на вход синхронизации триггера 6. По заднему фронту указанного импульса, свидетельствующего об окончании текущей операции чтения памяти 8 команд,триггер 6 фиксирует информацию с выхода

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

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

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

8 команд и отказы ли ий связи в шине

10 данных. Это приводит к чтенью некорректных слов программы из памяти

8 команд системы (ложный код коман ды) . Устройство обеспечивает выявление подобных нарушений нормального хода программы с высокой степенью достоверности.

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

Одновременно на информационный

5 вход устройства подается соответствующее слово программы из памяти 8 команд, что приводит к формированию на выходе сумматора 2 некоторой те" кущей суммы. Тогда на момент окончания в системе операции чтения памяти

8 команд может иметь место следующая полная группа событий:

1) текущая сумма не соответствует дополнительному разряду, т,е. не соблюдается условие четности и фиксируется ошибка, вероятность такого события Р„ = 0,5;

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

25 Р = 1/2

3) текущая с умма соответствует дополнительному разряду; сбой не обна-. ру»:ивается на данном шаге программы, ;::о может быть обнаружен на следующих;

3О вероятность этого события обозначим через Р>.

Таким образом, на первом после ложного перехода mare программы о пиб— ка не будет обнаружена с вероятностью

Р = P + P = ---- + Р

1Н Q. Э 2111 3

Рассмотрим работу устройства на следующем шаге программы, если ошибка

4О не обнаружена на предыдущем, т.е. рассмотрим развитие 2-й и 3-й ситуаций. Очевидно, что если имела место

2-я ситуапия, то на следующем шаге программы она сохраняется, т,е. ошиб45 ка не обнаруживается. Если имела место 3-я ситуация, то на новом шаге программы с равной вероятностью можно ожидать появление 1-й либо 3-й ситуации. Тогда вероятность необнаружения ошибки за два шага программы определится как

1 — ---,„- + 0,5Р>.

Аналогично для i-го шага программы получим

1 1-1

Р = ---- + О 5 P

2 1 1 з*

Отсюда очевидно, что с ростом количества marов программы величина P, 1545223

1О быстро падает и устремляется к величине

P н 2

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

В случае обнаружения ошибки на выходе сумматора 5 образуется единичный сигнал. В результате этого в момент окончания операции чтения памяти 8 команд системы триггер 6 переходит в единичное состояние и формирует на выходе устройства сигнал ошибки. Указанный сигнал может быть использован в контролируемой системе для запуска, например, по прерыванию 3О программы устранения ошибки. В процессе обработки прерывания микропроцессор 7 системы обеспечивает .подачу на вход сброса устройства сигнала начальной установки. Указанный сигнал поступает на регистр 3 и триггер 6 и производит обнуление (очистку) -. контрольной суммы, и результата контроля. После того, как сигпал началь— ной установки снимается, устройство вновь готово к работе. Аналогичным образом происходит очис тка устройства в процессе начального запуска (сброса) контролируемой системы.

Использование предлагаемого 45 устройства налагает некоторые

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

Логическая структура любой сколь угодно сложной программы может быть выражена комбинацией трех базовых структур: к указанной структуре Следованиеп добавляется структура Развилка" и "Пикл" (фиг.2) . При этом последняя может иметь две разновидности. Очевидно, что внутри базовых структур "Развилка" и "Пикл" осуществляется ветвление вычислительного процесса с .последующим объединением ветвей.

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

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

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

Значение уравнивающих чисел может быть различным в различных ветвях программы. В простейп.ем случае уравнивание сумм может осуществляться до нулевого значения. При этом вход в каждую точку слияния ветвей программы происходит с нулевым значением контрольной суммы, т.е. нулевым состоянием регистра 3. Наиболее прос-о обнуление сумм может быть реализовано путем подачи на вход сброса устройства соответствующего сигнала в момент исполнения программой уравнивающего блока. При подключении устройства к системе, построенной на базе микропроцессора КР580, такое "директивное" уравнение реализуется программным блоком, состоящим из двух команд: пЗапрещение прерывания, и "Разрешение прерывания (DI, EI) . В процессе исполнения этих команд на выходе микропроиессора появляется импульс, который поступает на вход сброса устройства и осуществляет обнуление суммы, Однако использогание "директивного" уравнивания снижает достоверность

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

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

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

Техред А. Кравчук

Корректор A ° Обручар

Редактор В.Петраш

Заказ 492 Тираж 565 Подписное

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

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

1Т 11

Ф

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

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

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

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

25 соединен с входом записи регистра и тактовым входом триггера, выход кото рого является выходом ошибки устройс -а:., m-разрядный выход сумматора соединен соответственно с первыми

30 m-входами сумматора по модулю два, выход блока постоянной памяти соединен с (m+1)-м входом сумматора по модулю два, выход которого соединен с информационным входом триггера, вход начальной установки устройства соединен с нулевым входом триггера.