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

Иллюстрации

Показать все

Реферат

 

УСТРОЙСТЮ ДЛЯ КОНТРОЛЯ ХОДА ПРОГРАММ, содержащее первый блок постоянной памяти, блок оперативной памяти и дешифратор, причем выход первого блока постоянной памяти, вход и выход блока оперативной памяти через двунаправленную шину данных соединены с информационным входом выходом устройства, входы чтения первого блока постоянной памяти и блока оперативной памяти соединены с вхогдом чтения устройства, группа адресных входов устройства соединена с группой входов дешифратора, с группами адресных входов первого блока постоянной памяти и блока оперативной памяти, первый и второй выходы дешифратора соединены с входами обращения соответственно первого блока постоянной памяти и блока оперативной памяти, вход записи устройства соединен с входом записи блока оперативной памяти, отличающееся тем, что, с целью повьшгения достоверности контроля хода программы, в устройство введены сумматор , регистр, схема сравнения, первый и второй элементы И, элемент ИЛИ и второй блок постоянной памяти, причем информационный вход устройства соединен с входом первого операнда сумматора, выход которого соединенс информационным входом регистра , группа адресных входов устройства соединена с адресным входом второго блока постоянной памяти, информационный выход которого сое§ динен с первым входом схемы сравнения , выход которой соединен с первым входом первого элемента И, первый выход дешифратора и вход чтения устройства соединены соответственно S с первым и вторым входами второго и элемента И, выход которого соедиИен с тактовым входом регистра и с вто- . рым входом первого элемента И, выгсо со ход которого является выходом ошибки устройства и соединен с первым входом элемента ИЛИ, вход начальной уста5 новки устройства соединен с вторым входом элемента ИЛИ, выход которого соединен с входом сброса регистра, информационный выход регистра соединен с вторым входом схемы сравнения и с входом второго операнда сумматора .

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

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

РЕСПУБЛИК

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

К ABTOPCHOMY СВИДЕТЕЛЬСТВУ

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

ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И OTHPblTHA (21) 3741904/24-24 (221 16,05.84 (46) 15.11,85. Бюл. В 42 (71) Рыбинский авиационный технологический институт (72) М. А, Гладштейн, Н, А, Шубин и В. М. Комаров (53) 681.3(088,8) (561 Авторское свидетельство СССР

У 894713, кл. G 06 F ll/28, 1980.

Патент Великобритании Р 2035633, кл. 06 F ll/30, .опублик. 1982. (54)(57) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА

ПРОГРАК1, содержащее первый блок постоянной памяти, блок оперативной памяти и дешифратор, причем выход первого блока постоянной памяти, вход и выход блока оперативной памяти череэ двунаправленную шину данных соединены с информационным входом— выходом устройства, входы чтения первого блока постоянной памяти и блока оперативной памяти соединены с вхо-. дом чтения устройства, группа адресных входов устройства соединена с группой входов дешифратора, с груп- пами адресных входов первого блока постоянной памяти и блока оперативной памяти, первый и второй выходы дешифратора соединены с входами обращения. соответственно первого блока постоянной памяти и блока оперативной памяти, вход записи устройства соединен с входом записи блока

ÄÄSUÄÄ 11 191.2 A ав4 0 оперативной памяти, о т л и ч а ю щ е е с я тем, что, с целью повышения достоверности контроля хода программы, в устройство введены сумматор, регистр, схема сравнения, первый и второй элементы И, элемент

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

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

1191912 г

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

Цель изобретения - повышение достовернрсти контроля хода программы, На фиг. 1 изображена структурная схема устройства; на фиг. 2 ». базовые10 структуры программирования.

Устройство для контроля хода программ содержит процессор 1, двунаправленная шина данных которого:и младшие разряды выходной шины адреса IS подключены к соответствующим выводам первого блока постоянной памяти 2, блок оперативной памяти 3 и устройство ввода-вывода 4, вход чтения кото рого соедйненс входамичтения перво- 3) го блокапостоянной памяти3 нс выходрм чтения процессора 1, старшие разряды выходной шины адреса которого подключены квходу дешифратора5,пер-* вый выход которого соединен с входом . выборки первого блока постоянной памя ти 2, второй выход подключен к входу выборки блоКа оперативной памяти 3, а третий выход соединен с входом выборки чстройства ввода-вывода 4, 30 внешние входы и выходы которого образуют внешнюю шину 6, а вход записи связан с входом записи блока оперативной памяти 3 и с выходом записи процессора 1, последовательно соединенные сумматор 7, регистр 8, схему сравнения 9 и первый элемент И 10, выход которого подключен к входу пре1 рывания процессора 1 и к входу элемен та ИЛИ II выход которого подключен 40 к R-входу регистра 8, вход синхронизации которого соединен с вторым входом первого элемента И 10 и с выходом второго элемента И 12, первый вход которого подключен к первому выходу дешифратора 5, а второй вход соединен с выходом чтения процессора 1, младшие разряды выходной шины адреса которого подключены к входу второго блока постоянной памяти 13, выход которого соединен с вторым входом схемы сравнения 9, первый и второй входы сумматора 7 подключены соответ" ственно к выходу регистра 8 и к шине данных процессора 1, вход сброса которого соединен с вторым входом элемента ИЛИ 12. Второй блок постоянной памяти 13 подключен таким образом. что на его входы выборки к чтения (не показаны) постоянно подается уровень

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

Процессор 1 в соответствии с программой опрашивает устройство вводавывода 4, В начале опроса процессор

1 формирует на выходной шине адреса код, старшие разряды которого поступают на дешифратор 5 и возбуждают его третий выход. Сигнал с выхода дешифратора 5 поступает на вход выборки устройства ввода-вывода 4 и подготавливает его к циклу обмена информации с процессором 1. Одновременно младшие разряды шины адреса процессора 1 поступают на адресный вход устройства ввода-вывода 4, которое в соответствии с принятым адресом подключает к своему выводу данных один из входов каналов внешней шины 6. При использовании для обмена информацией между процессором

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

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

2. При этом контроль осуществляется путем сравнения результата суммирова. ния (например, по модулю 256. всех байтов команд, предшествовавших очередному байту исполняемой команды и считанных ранее из первого блока постоянной памяти 2,с некоторым контрольным:; числом, извлекаемым иэ второго блока постоянной памяти 13:по

t тому же адресу, что и очередной байт команды из первого блока постоянной памяти 2. Контрольное число, извлекаемое иэ постоянного запоминающего устройства 13, представляет собой сумму по тому же модулю всех предшествующих байтов, считанных из первого блока постоянной памяти 2, Если результат суммирования совпадает с KQHTpoJIbHblH числом, то делается вывод, .что программа работает верно.

В противном случае фиксируется нарушение нормального исполнения проГр BMM61 °

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

Запись или чтение информации из блока оперативной памяти 3 осуществляется соответственно по сигналам процессора 1 "Запись" или "Чтение".

После окончания обработки в процессоре 1 накапливаются данные, которые подлежат передаче в устройство 15 .ввода-вывода 4. Передача данных из процессора 1 в устройство ввода-вывода 4 осуществляется по укаэанной схеме посредством выдачи адресной информации иэ процессора l и возбуж- 20 дения им сигнала "Запись". Устройство ввода-вывода 4 последовательно принимает данные из процессора 1 и возбуждает выходные каналы внешней шины 6. По выходным каналам внешней ши-И ны 6 данные иэ устройства ввода-вывода 4 в виде управляющих воздействий поступают на регулируемый объект.

После возбуждения последнего выходного канала внешней шины 6 про- 30 цессор 1 вновь переходит к опросу устройства ввода-вывода 4, чем осуществляется циклическое воспроизведение программы функционирования уст", ройства.

Для надежного функционирования всего устройства должно быть обес-. печено надежное исполнение его управ ляющей программы, состоящей иэ кабо- ливающий их в исходное состояние. ра команд, хранящихся в первом бло- 4р ке постоянной памяти 2. Однако в реальных условиях нормальное исполнение программы может нарушаться вследствие различных причин: сбоев и отказов аппаратуры, помех, кратковременного пропадания питающих ния в первом блоке постоянной памяти 2. напряжений и т.п. В условиях постоянно повышающейся сложности программ и расширения областей применения программных вычислительных систем gp последствия этих сбоев становятся все более значительными. Для восста- постоянной памяти 2, подготавливая новления работоспособности устройст- его к выдаче байта команды иэ ячейва управления после сбоя программы ки, определяемой младшими разрядами необходимо прежде всего за мини- адреса, Одновременно сигнал с пермальное время обнаруживать сам факт нарушения корректного исполнения программы и принимать соответ1191912 адреса поступают на второе постоянное запоминающее устройство 13, что обеспечивает появление на его выходе первого контрольного числа, равного кулю. Схема сравнения 9 сравнивает контрольное число с числом, находящимся в регистре 8, и вследст-; вие их равенства формирует сигнал, запирающий элемент И 10, Для приема байта команды из блока постоянной nal мяти 2 процессор генерирует сигнал

"Чтение", что вызывает появление считываемого байта команды на шине данных и его занесение в процессор, Одновременно сигнал "Чтение" проходит через открытый элемент И 12 и не про" ходит через закрытый элемент И 10.

При этом байт команды, находящийся на шине данных, суммируется сумматором 7 с числом, находящимся в регистре 8, В момент окончания сигнала

"Чтение" на выходе элемента И 12 формируется сигнал, записывающий результат суммирования с выхода сумматора

7 в регистр 8, в котором он запоминается до следующего цикла чтения очередного байта команды из блока постоянной памяти 2. При записи в регистр 8 нового значения равенство чисел на входах схемы сравнения нарушается и она выдает сигнал, отпирающий элемент И 10, Но так как в это время сигнал на втором его входе уже отсутствует, то этоне приводит к формированию сигнала на выходе этого элемента И 10. В дальнейшем при правильной работе программы принцип действия устройства совершенно иденти— чен укаэанному, Для чтения очередного байта из блока постоянной памяти 2 процессор снова формирует на младших разрядах адреса адрес ячейки„ в которой он находится. При этом из постоянного запоминающего устройства 13 по этому адресу считывается новое значение контрольного числа, совпадающего с состоянием регистра

8 в этот момент времени, что обеспечивает закрывание элемента И 10 ,и т,д, Таким образом, при правильной работе программы на выходе элемента

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

1 к блоку оперативной памяти 3 или устройству ввода-вывода 4 элемент

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

О формации на шине адреса и нарушению последовательности выбора команд ли» бо к отказу ячеек блока постоянной памяти 2, или отказу линий связи в l5 шине данных, это приводит к чтению неверных кодов команд из блока постоянной памяти 2, ОДнако предлагаемое ленин запроса прерывания обеспечивается подачей напряжения +12 В на вывод системного контроллера, т.е, на выход подтверждения прерывания, Таким образом, в предлагаемом устройстве реализуется контроль за правильностью работы программы. При нарушениях ее нормального исполнения, вызванного сбоем или нарушением информации на адресной шине, либо искажением кодов команд программы, 50

55 устройство обеспечивает выявление по20 добных нарушений нормального хода про« граммы. Действительно, при искажении, информации на адресной шине из постоянного запоминающего устройства 13 будет извлечено контрольное слово, не соответствующее верному состоянию регистра 8, При искажении информации на шине данных состояние регистра 8 не будет соответствовать верному кон»

30 трольному слову на выходе постоянного запоминающего устройства 13, Однако в обоих случаях схема сравнения 9 зафиксирует неравенство чисел на ее входах и откроет элемент И 10.

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

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

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

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

Структурный подход к программированию, М.: Мир, 1980 )называется базовой структурой "Следование". Однако этой структуры недостаточно, чтобы» .представить даже самые простые практические программы. Логическая структура любой сколь угодно сложной программы может быть выражена комбинацией трех базовых структур: указанной структуры "Следование", иРаэвилка и Цикл, Все эти базовые и и и структуры приведены на фиг. 2, При этом структура "Цикл" может иметь две разновидности, Каждая базовая ! структура программы имеет один вход и один выход, Однако внутри базовых структур,"Развилка" и "Цикл" осущест" вляется ветвление: вычислительного процесса с последующим объединением ветвей. Объединение ветвей программы осуществляется обращением по од-ному и .тому же адресу после прихода ветвей программы. Суммы кодов операций, находящихся в различных ветвях, в общем случае не совпадают, В результате этого при объединении ветвей программы без принятия дополнительных мер предложенное устройство зафиксирует сбой программы, хотя такового и нет. Для исключения этого явления необходимо искусственно выравнивать суммы кодов операций перед каждым объединением ветвей, Это легко обеспечивается путем размещения перед каждой точкой объединения.ветвей дополнительных управляющих команд, не имеющих функционального зна55 рабочей програмиы в объектную программу. При этом в качестве объекта воздействия уравнивающей команды дол жен выбираться регистр микропроцесчения с точки зрения процесса решения задачи, решаемой микропроцессорной системой. Эти команды изображены,на фиг. 2 заштрихованными прямоугольни

5 хами, причем их различная штриховка подчеркивает различное значение (уравнивание сумм кодов операций может осуществляться до нулевого значения ). При этом вход в каждую базовую структуру программы и выход из нее будет происходить с нулевым значением контролируемой суммы, т.е.. нулевым состоянием регистра 8. Недостатком уравнивания до нулевых значений контролируемой суммы является то, что сбои программы, приводящие к пропуску целого количества ее базовых структур, не будут обнаружены, Для обнаружения таких сбоев значения контрольной суммы кодов операций при выходе из различных базовых структур должны быть различны. Ilpo» ще всего это значение контрольной суммы сопоставить с номером базовой структуры в полной логической структуре программы, При этом в базовой структуре "Цикл" в зацикливающей

30 ветви программы уравнивание должно осуществляться до входного значения контрольной суммы, т,е. номера предыдущей базовой. структуры, а в выходной ветви — до выходного значения контрольной суммы, т.е. номера выпол" ненной базовой структуры.

В простейшем случае уравнивание контрольной суммы может быть реалиФ. зовано одной единственной командой

Э в качестве которой в системе, исполь40 зующей многобайтные команды, удобно использовать команды с непосредственной адресацией. Учитывая, что сум-, мирование кодов операций осущест45 вляется по некоторому модулю во втором байте команды, считываемой из блока постоянной памяти 2, всегда можно указать число, дополняющее контрольную сумму до заданного значения. Определение величины урав50 нивающего числа может осуществлятьлся либо программистом в процессе разработки программы, либо автоматически с помощью программы ассемблера при трансляции разработанной

1191912

Фиг. 1

„Paad ил ю"

„ леса/вюзи" сора, не используемый в данной точке программы.

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

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

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

1 б

ВНИИПИ Заказ 7164/46

Тираж 709 Подписное

Филиал ППП "Патент" г.ужгород, ул.Проектная, 4