Устройство для контроля последовательности выполнения программ

Иллюстрации

Показать все

Реферат

 

Изобретение относится к вычислительной технике и может быть использовано в системах управления. Цель изобретения - расширение области применения за счет расширения класса контролируемых программ. Устройство содержит три регистра, четыре триггера, дешифратор, одновибратор, четыре шифратора, элемент И. Цель достигается за счет того, что устройство позволяет производить анализ правильности хода программы в соответствии с закодированным маршрутом. 3 ил., 9 табл.

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

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

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

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

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ

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

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

ПРИ ГКНТ СССР

1 (21) 4344477/24-24 (22) 15.12.87 (46) 1 .01.90. Бюл. 5 2 (71) Особое конструкторское бюро

"Юг" Головного монтажно-технологи-. !! !! ческого управления 10r (72) Ю.Я.Пушкарев и М.А,Гайворонский (53) 681.3 (088.8) (56) Авторское свидетельство СССР

N- 1254493, кл. G 06 F 11/28, 1985.

Авторское свидетельство СССР

1!! 1249521, кл, G 06 F 11/28, 1985.. (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ПОСЛЕДОВАТРЛЬНОСТИ ВЫПОЛНЕНИЯ ПРО PAMM

Изобретение относится к вычислительной технике и может бить использовано н системах управления для контроля программируемых устройств, Цель изобретения — расширение области применения устройства эа счет расширения класса контролируемых программ, На фиг.l изображена схема устройства; на фиг,2 — схема микроконтроллера; на фиг ° 3 — схема системного контроллера; на фиг.4 — временные диаграммы работы устройства и микроконтроллера; на фиг,5 и 6 !" программы, изображенные. в виде графов, Устройство контроля последовательности выполнения программ (фиг.1) содержит дешифратор 1, регистры 2-4, шифраторы 5-8, триггеры

9-12, однонибратор 13 и элемент И 14.

Устройство также имеет вход 15 сброса, вход 16 синхронизации, первый 17

ÄÄSUÄÄ 1536389 А1

2 . (57) Изобретение относится к вычис- лительной технике и может быть использовано в системах управления.

Цель изобретения — расширение об" ласти применения за счет расширения класса контролируемых программ. Устройство содержит три: регистра, четыре триггера, дешифратор, одновибратор, четыре шифратора, элемент И.

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

Микроконтроллер (фиг.2) содержит микропроцессор 21, системный контроллер 22, блок 23 памяти, блок 24 ввода-вывода, устройство 25 для контроля последовательности выполнения программ, управляющие выходы

26 и 27, управляющие входы 28 и 29, выходы управления чтением, 30 и записью 30 микропроцессора, вход 31 синхронизации.

Системный контроллер 22 (фиг.3) содержит элементы И 32-35 и регистр

36 состояния.

На фиг.4 принедечы временные диаграммы работы устройства, где приняты следующие обозначения позициями:

37 — импульсы на входе 16 синхронизации микропроцессора; 38 — сигнал на адресном выходе микропроцессора

1536389

10

3S

21; 39 — сигнал: данных на информационном входе-выходе микропроцессора

21; 40-42 — сигналы на выходах управления чтением, записью и на выходе синхронизации микропроцессора

21 соответственно 43 — сигналы на первом выходе системного контроллера ,22; 44 — сигнал на выходе,цешифра тора 1; 45 — сигнал на инверсном ,выходе триггер 9; 46-48 — сигналы на

1 выходах триггеров 10-12 соответственно; 49 — сигнал на выходе адновибратора 13;.50 — сигнал на выходе элемента И 14; 51 — сигнал на первом

: выходе шифратора 8.

Рассмотрим работу предлагаемого .

| устройства на примере использования

,его в микроконтроллере, построенном на базе микропроцессора INTEL — 8080 (см. фиг.2) °

Микроконтроллер работает следую, щим образом.

Для проведения микроконтроллера в исходное,, состояние HB. вход 15 сброса подается сигнал начальной уста- новки, На вход синхронизации микро.контроллера подается серия импуль сов 37, Работа микроконтроллера основана

1 на выполнении программ (набора ко"1

I манд), хранимой в блоке 23 памяти. ,, Структура блока 23 памяти в каждом конкретном примере микроконтрогглера может быть различной. Влок 23 памяти может состоять из комбинации постоянной и оперативной памяти в произвольных областях адресного пространства микропроцессора 21. При этом управляющая .программа хранится в постоянных областях памяти„ а данные — в оперативной области, На фиг,4 интервалы выполнения команд обозначены римскими цифрами, Каждая команда выполняется в течение нескольких циклов операций (на фиг,4 циклы операции обозначены арабскими цифрами с индексом номера команды, например: обозначение 2 соответствует второму циклу операции первой команды). В свою очередь, каждый цикл операции выполняется:в течение нескольких тактов. Длительность такта определяется периодом следования импульсов 37 ° Микропроцессор 21 осуществляет потактовое выполнение ко. — . манд на. уровне микрокоманд, После начальной установки микропроцессор 2) приступает к выполнению команды. В первом цикле операции выполнения каждой команды микропроцессор 21 производит считывание самой команды из блока 23 памяти. В первом такте любого цикла команды микропроцессор выдает на шину 18 данных слово состояния.

Назначение битов состояния показано в табл,1.

Устройство 25 для контроля последовательности выполнения программы осуществляет контроль правильности функционирования микроконтроллера..Рассмотрим более подробно выполнение процедуры контроля.

Устройство 25 контролирует правильность прохождения программой определенных точек, В качестве характерных точек контроля в программе выбираются точки вызова подпрограмм (семейство команд CALL) и точки возврата из подпрограмм на основную программу (семейство команд RET).

В табл.2 приведен текст программы для микропроцессора серии 580 (зарубежный аналог INTEL — 8080), на примере которой рассмотрим детально принципы контроля.

Например, микроконтроллер приступает к выполнению команды 1 — CALL по адресу 001 (для упрощения, исполнение команд на фиг,4 показано неполностью).

В первом такте цикла операции 1г на информационный вход-выход микропроцессор 21 выдает слово состояния, в котором нулевой и третий биты равны единице. По сигналу 42 биты нулевой и первый записываются в регистр 36,.а второй и третий биты— в триггеры 10 и 11. Сигнал 47 принимает единичное значение, Во втором такте по сигналу 43 из блока 23 памяти считывается код команды CALI„ и постунает на информационную шину микроконтроллера, При наличии на информационной шине кодов команд семейства CALL или RET а также при наличии единичных сигналов 47 и 43 дешифратор 1 вырабатывает сигнал 44.

По сигналу 44 устанавливается в 1 триггер 9 (сигнал 45 принимает нулевое значение, разрешая работу триггеру 10), а в регистр 2 записывается адрес вызывающей команды.

Код адреса с выхода регистра 2 поступает на вход шифратора 5. Последний

6389 О геры 9 и 10 (поз.45 и 46), Код адреса с выхода регистра 3 поступает на вход шифратора 6. Шифратор 6 распознает, какие из команд в программе

5 разрешены в качестве вызывающих и II и определяет их.порядковый номер в "разрешенном" перечне. Если команда

"разрешена" в качестве "вызываемой", на выходе шифратора 6 устанавливается ее ненулевой порядковый номер в

"разрешенном перечне". Если команда запреп(ена в качестве вызываемой", на выходе шфиратора 6 присутствует

15 HYJTRBoH код, Таблица истинности шифратора 6 для рассматриваемой программы приведена в табл.4.

153

Как видно,из табл.3, в рассматриваемой программе 5 разрешенных

"вызывающих." команд (из семейства

CAI.1. или РЕТ)-. На выходе шифратора 20

5 устанавливается код, равный 1, В последующих циклах операции выполнения команды 1 (на временной диаграмме фиг.4 для упрощения подробно не показаны) микропроцессор 21 25 считывает иэ блока 23 памяти адрес вызываемой подпрограммы, В последнем цикле операции выполнения команды

1 микропроцессора 21 производит запаса адреса возврата на основную программу в область стека блока 23 памяти. При выполнении этой працедуры в триггер 10 записывается единичный 2-й бит слова состояния (см. позицию 46), По единичному сигналу

46 разрешается работа одновибратора

13. На этом завершается выполнение команды 1.

Микропроцессор 21 приступает в выполнению команды 11 (первой коман- 40 ды вызываемой подпрограммы по адресу 07,, установленному на адресном выходе микропроцессора 21).

В первом такте цикла операции 1 на информационный вход-выход микро45 процессора 21 поступает слово. состояния, в котором нулевой и третий биты равны единице. При поступлении сигнала 42 биты состояния переписываются в регистр 36 и триггеры !0 и 11 и на выходе элемента И 14 вырабатывается сигнал 50, Ifo сигналу

50 одновибратор 13 вырабатывает сигнал 49 определенной длительно- сти (длительность сигнала 49 опре55 деляется суммарным временем срабатывания шифраторов 5-8), а в регистр

3 записывается адрес вызываемой" команды. Кроме того, обнуляются триг30

50 распознает, какие иэ команд в программе разрешены в качестве "выэыII вающих-., и определяет их порядковый номер в "разрешенном" перечне. Если .команда разрешена в качестве вызывающей", на выходе шифратора 5 устанавливается ее ненулевой порядковый номер в "разрешенном перечне", Если команда запрещена в качестве

"вызывающей", на выходе шифратора 5 присутствует нулевой код.

Таблица истинности шифратора 5 для рассматриваемой цели примерной программы приведена в табл.3.

Как видно из табл. 4, в рассатриваемой программе 5 разрешенных "вызываемых" команд, На выходе шифратора 6 устанавливается код, равный 3.

Коды с выходов шифраторов 5 и 6 поступают на входы шифратора 7. Шифратор 7 распознает: та или разрешенная вызывающая команда вызвала необходимую вызываемую команду" и определяет порядковый номер "разрешенной" пары взаимосвязанных команд ("вызывающая — вызываемая") в программе.

Если пара команд "разрешена" в программе, на, выходе шифратора 7 устанавливается порядковый номер этой пары. В противном случае на

I выходе шифратора 7 присутствует нулевой код.

Таблица истинности шифратора 7 для рассматриваемой программы приведена в табл,5. .Таким образом, в рассматриваемой программе 6 "разрешенных" пар взаимосвязанных ("вызывающая — вызываемая") команд.

При коде 1 на выходе шифратора 5 и коде 3 на выходе шифратора 6 на выходе шифратора 7 устанавливается

/ код, равный 1.

Код с выхода шифратора 7 поступает на первый вход шифратора. 8 °

Для понимания принципа кодирования шифратора 8 проанализирует структуру рассматриваемой программы, представленной в виде графа на фиг.5 и 6 (на фиг,6,показан граф программы, а на фиг.5 текст программы изображен в виде графа), Как видно на фиг.6, граф состоит иэ трех вершин.

1536389

Вершина графа — это фрагмент программы (подпрограммы) от первой команды подпрограммы до первого безусловного изменения счетчика команд микропроцессора после выполнения команд lMP или КЕТ (частный случай после выполнания команды HLT — остав(ов), В табл.6 представлены все возможь ые пути следования программы (переходы между вершинамн графа), начиная

q.ía÷àëüH0é, условно заданной точки д, которая соответствует исходному

c„ îñòîÿíèþ системы; Причем эти переходы показаны как с использованием нумерации вершин графа, так и с исПользованием адресов пар взаимосвязанных ("вызывающая — вызываемая") команд. В число путей включаются все пути движения (маршрут) от начала программы вперед по ходу следования, а также пути, содержащие возврат на

1 .шаг, В табл.Д показаны значения шифраторов 5-7 в процессе путей следова ния в соответствии с табл.6, т,е. маршруты хода программы показаны

При помощи значений кодов на выходах шифраторов 5-7.

В табл. 8 показан принцип кодирования шифратора 8, Расмотрим подробно принцип .кодирования шифратора 8 в соответствии с табл,8.

В графе 2 показаны пути движения с использованием кодов на выходе шифратора 7 (аналогично табл.7). Кодом

7 обозначено начальное состояние (переход из состояния О).

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

Этот код присутствует в исходном состоянии (после начальной установки) на выходе регистра 4. Код 7 выбран иэ расчета удобства установки регистра в исходное состояние (все единицы), хотя максимальным значением при кодировании шифратора 8 для рассматриваемой программы (как видно из табл,8) мог бы быть код 4.

Последовательность кодирования (см. табл.8) следующая. На первом

mare кодируются все пути длиной в один переход (для рассматриваемой программы 1-я и 2-я строки табл.8).

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

10 для всей путей уменьшаются на 1 член.

На следующем втором шаге. производится кодирование и подстановка ко- дов во все пути длиной в два перехода (для рассматриваемого случая

3-я 4-я и 5-я строки), Процесс кодирования — подстановки продолжается до тех пор, пока все пути не будут закодированы.

Принцип выбора кодов для шифрато2О ра 8 (см. табл . 8 справа от выделенной линии) следующий, Если кодирование на очередном mare соответствует продвижению вперед по программе (команда CALL), то выбирается

25 следующее по порядку значение из натурального ряда: если кодирование соответствует возврату (команда

КЕТ), то выбирается значение, выдаваемое шифратором 8 при прямом вхождении в соответствующий узел по данному маршруту, Например, код пути (6-я строка табл,8) равен 1, так как по этому пути происходит возврат в узел 2 (адрес 0А, табл.6), 35 а код прямого пути в узел 2 по адресу 07 (табл.6, 1-я строка) также равен .1 (1-я строка, табл.8), Возвраты в узел 1 (4-я и 5-я строки, табл,6) обозначены кодом 7 (4-я и

40 5-я строки, табл.8), также как и прямой путь в узел 1 (переход иэ состояния 0).

Таблица истинности шифратора 8 для рассматриваемой программы показана в табл„9

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

Если программа для данной точки контроля выполняется без сбоев и ошибок (проходит верный путь), на втором выходе шифратора 8 устанавливается ненулевой код пути, а на первом выходе шифратора 8 присутствует нулевой сигнал. В случае ошибки (сбоя) на втором выходе шифратора 8 устанавливается ошибочный (ну1О

36389

9 15 левой) код пути, а сигнал на первом выходе шифратора 8 принимает единичное значение.

Для рассматриваемого случая при коде I на выходе шифратора 7 и коде

7 на выходе регистра 4 на выходе шифратора 8 устанавливается код, равный 1 (см. табл.9). Сигнал 51 имеет нулевое значение. Код с второго выхода шифратора 8 поступает на информационный вход регистра 4, После обработки временного интервала одновибратором 13 сигнал 49 устанавливается в нулевое состояние, По перепаду из "1" в "0" сигналом

49 в регистр 4 записывается код 1.

Триггер l2 своего значения (нулево-. го) не меняет, сигнал 48 "ошибки" не вырабатывается. Программа продолжает выполняться до следующей точки контроля {до следующей команды семейства CALI. или RET), В случае сбоя нарушается правильчый ход выполнения программы, в результате чего искажается запрограммированное кодирование шифраторов

5-8. В этом случае в точке контроля сигнал 51 принимает единичное .значение {см. фиг.4), По сигналу 49 триггер 12 устанавливается в "1", Единичный сигнал 48 на выходе триггера 12 сигнализирует об ошибке в функционировании микроконтроллера, В зависимости от задач, решаемых микроконтроллером, сигнальный выход 20 подключается внешним соединением либо к входу останова, либо к входу прерывания микропроцессора, Например, если сигнальный выход

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

Если подключить выход 20 к входу прерывания, то при возникновении единичного сигнала 48 микропроцессор

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

Ф о р м у л а изобретения

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

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

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

Таблица) (о

Номер бита ) . 2 (3 !

Назначение Указывает на Указывает на бита обращение к обращение к ! памяти устройству ввода-вывода

Указывает на первый цикл операции команды

Указывает на обращение к стеку

Т а б л и ц а 2

Текст программы

Адрес Метка Мнемоника Операнд Код

CD 0700

CD ОВОО

76

СВ 0ВОО

С9

С9

М1:

03

Об

07

ОА

ОВ

САЕЛ.

САЕЛ.

HLT

CZ

RKT

RET

М?

Ii3:.Таблица3

Таблица истинности шифратора 5

Код на выходе

КОД на ВХОДе (адрес команды) ционного входа устройства, выход второго триггера соединен со стробирующим входом одновибратора, выход которого соединен с входом

Записи третьего регистра и, с входом

5 записи четвертого триггера, выход которого соединен с выходом ошибки стройства, выходы первого и второго егистров соединены с входами соотI етственно первого и второго шифраоров, выходы которых соединены оответственно с первым и вторым ходами третьего шифратора, выход которого соединен с первым входом

ОО

01

02

03

04

06

07

0 8

09

ОА

ОВ

О

2

О

О

О

О

9 12 четвертого шифратора, первый и второй выходы которого соединены соответственно с информационным входом четвертого триггера и с инфомационным входом третьего регистра, выход третьего регистра соединен с вторым входом четвертого шифратора, вход сброса третьего регистра соединен с входом установки в "О" четвертого триггера, с вторым входом .установки в "0" первого триггера и с входом сброса устройства для подключения к входу начальной установки электронной вычислительной машины, 13

1536389

Т а б л и ц а 4

Таблица истинности шифратора 6

Код на входе Код на выходе

00 О

01 О

02 0

03 1

04 О

05 О

06 2

07 3

08 0

09 О

ОА 4

ОВ 5

Таблица5

Таблица истинности шифратора 7

Код на выходе Код на выходе О 1 2 3 4 5 шифратора 5 шифратора 6

1

3

0

О

О

О

Таблицаб

Пути следования программы с использованием кодов адресов команд

Q — 00 — 07

Q — 03 — OB

Q — 00 — 07

00 — 07

0 — 03 - OB

Q — 00 — O7

1-2

1-3

1 — 2 (— 1 — 3

1 — 2

O7 — 0В

0А — 03

О — 06

07 — 00-00-0А — 3

1 — 3 — 2с использованием нумерации вершин графа

О 0

О 0

О О

О О

4 О

0 5

Код на

0 0

1 О

0 0

О О

О 0

О 0 выходе

0

3

О

0 шифратора 7

l6

1536389

Таблица 7

Пути следования программы с использованием кодов на выходе шифратора 7 с использованием кодов на выходах шифраторов 5 и 6 уЧ (— 1 — 3

0-2-5

1-2

1-3 (-2-5 (-1-3

3-5

3:- 5 знаком " показано а в правой — значение

П р и м е .ч а н и е. В левой позиции под. значение шифратора 5, шифратора 6., I

Таблица 8

Кодирование путей для шифратора 8

Путь следования (с использованием кодов на выходе шифратора 7) — 3

5 — 3-6

1-3-6 3-6 . 1

7 — код на выходе регистра 4 в исходном состоянии, 4(Таблица9

Таблица истинности шифратора 8

3 4 5 б 7

Код на втором Код на выходе 0 1 2 выходе регистра 4 шифратора 7

7 — 1

7 — 2

Ф

1 — 1

7"-1

7 — 2

7 — 1

О

2

4

6

2

1-3

1-4

2 — 5

1-3 — 6

0 О О 0

О 0 О 3

О 0 О О

0 0 О 0

О О 0 О

0 О О О

О О 0 О

0 1 2 0

Коды на выходе

О 0 0 0

7 О 0 О

О 7 О О

О 0 1 О

0 0 О 0

0 0 О О

О 0 0 О

О 0 0 О шифратора 8

1536389

Фие. У

)536389

1536389

Составитель А,Афанасьев

Редактор F..Êoï÷à ТехредМ,Дидык . Корректор ИЛуска

Заказ 109 Тираж 555 Подписное

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

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

Производственно †издательск. комбинат "Патент", r. Ужгород, ул. Гагарина, 101