SU1649551A1 - Устройство дл контрол хода программ - Google Patents
Устройство дл контрол хода программ Download PDFInfo
- Publication number
- SU1649551A1 SU1649551A1 SU884429772A SU4429772A SU1649551A1 SU 1649551 A1 SU1649551 A1 SU 1649551A1 SU 884429772 A SU884429772 A SU 884429772A SU 4429772 A SU4429772 A SU 4429772A SU 1649551 A1 SU1649551 A1 SU 1649551A1
- Authority
- SU
- USSR - Soviet Union
- Prior art keywords
- input
- program
- output
- block
- adder
- Prior art date
Links
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
Изобретение относитс к вычислительной технике и может быть использовано при построении надежных микропроцессорных систем. Цель изобретени - повышение достоверности контрол . Устройство позвол ет осуществить глубокий контроль хода программы сложной структуры за счет применени механизма коррекции и за счет снижени частоты повтор емости значений текуших сумм (контрольных чис ел) . 1 ил.
Description
Изобретение относител к вычислительной технике и может .быть испопь- зовано при построении нацежлых микропроцессорных систем,.нечувствительных к сбо м программы.
Цель изобретени - повышение достоверности контрол .
На чертеже изображена структурна схема устройства.
Устройство дл контрол хода программ содержит первый блок 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 ма программа в первой своей точке должна иметь нулевую текущую сумму, Аналогичным образом происходит обнуление текущей суммы и в процессе начального запуска (сброса) контролируемой системы.
Claims (1)
- Формула изобретени Устройство дл контрол хода про-, грамм, содержащее первый блок посто нной пам ти, дешифратор, схему сравнени , элемент И и накапливающий сум- матор, причем выход дешифратора соединен с входом синхронизации накапливающего сумматора и первым входом элемента И, выход которого вл етс выходом ошибки устройства, адресный вход устройства соединен с адресным5Q 5входом первого блока пам ти и информационным входом дешифратора, тактовый вход устройства соединен с входом синхронизации дешифратора, вход начальной установки устройства соединен с входом сброса накапливающего сумматора, выход которого соединен с первым входом схемы сравнени , выход неравенства которой соединен с вторым входом элемента И, выход первого блока пам ти соединен с вторым входом схемы сравнени , отличающеес тем, что, с целью повышени достоверности контрол , в устройстве введены комбинационный сумматор и второй блок пам ти, причем адресный вход устройства соединен с адресным входом- второго блока пам ти, выход которого соединен с входом первого операнда комбинационного сумматора, выход которого соединен с входом накапливающего сумматора, вход кода текущего слова программы устройства соединен с входом второго операнда комбинационного сумматора.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU884429772A SU1649551A1 (ru) | 1988-05-23 | 1988-05-23 | Устройство дл контрол хода программ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU884429772A SU1649551A1 (ru) | 1988-05-23 | 1988-05-23 | Устройство дл контрол хода программ |
Publications (1)
Publication Number | Publication Date |
---|---|
SU1649551A1 true SU1649551A1 (ru) | 1991-05-15 |
Family
ID=21376863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SU884429772A SU1649551A1 (ru) | 1988-05-23 | 1988-05-23 | Устройство дл контрол хода программ |
Country Status (1)
Country | Link |
---|---|
SU (1) | SU1649551A1 (ru) |
-
1988
- 1988-05-23 SU SU884429772A patent/SU1649551A1/ru active
Non-Patent Citations (1)
Title |
---|
Авторское свидетельство СССР № 1191904, кл. G 06 F 11/28, 1983. Авторское свидетельство СССР № I300479, кл. G 06 F П//8. , * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7340574B2 (en) | Method and apparatus for synchronizing an industrial controller with a redundant controller | |
US4313200A (en) | Logic test system permitting test pattern changes without dummy cycles | |
US3518413A (en) | Apparatus for checking the sequencing of a data processing system | |
US4683532A (en) | Real-time software monitor and write protect controller | |
CA1081853A (en) | Control store checking system and method | |
GB1274830A (en) | Data processing system | |
US5155829A (en) | Memory system and method for protecting the contents of a ROM type memory | |
EP0048825A2 (en) | Microprocessor controlled machine | |
US3911261A (en) | Parity prediction and checking network | |
US4866713A (en) | Operational function checking method and device for microprocessors | |
US4462072A (en) | Clock system having a stall capability to enable processing of errors | |
JPS641815B2 (ru) | ||
US4410984A (en) | Diagnostic testing of the data path in a microprogrammed data processor | |
US3533078A (en) | Keyboard entry control apparatus | |
SU1649551A1 (ru) | Устройство дл контрол хода программ | |
US5440604A (en) | Counter malfunction detection using prior, current and predicted parity | |
US3618042A (en) | Error detection and instruction reexecution device in a data-processing apparatus | |
US4410988A (en) | Out of cycle error correction apparatus | |
US5210758A (en) | Means and method for detecting and correcting microinstruction errors | |
CA1149068A (en) | Tri-state bussing system | |
JPS6146864B2 (ru) | ||
EP0383260B1 (en) | Elastic buffer circuit | |
SU1645960A1 (ru) | Устройство дл контрол хода программ | |
JPS6049937B2 (ja) | マイクロプログラム制御のデ−タ処理装置 | |
RU2029986C1 (ru) | Устройство для контроля |