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

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

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

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

На фиг.1 изображена схема устройства; на фиг.2 - схема микроконтроллера; на фиг.З - схема системного контроллера; на фиг.4 - временные диаграммы работы устройства и микроконтроллера; на фиг.5 и 6 г- программы, .изображенные- в виде графов.

Устройство контроля последовательности выполнения программ (фиг.1) содержит дешифратор 1, регистры 2-4, шифраторы 5-8, триггеры 9-12, одновибратор 13 и элемент И 14. Устройство также имеет вход 15 сброса, вход 16 синхронизации, первый 17

и второй 18 информационные входы, стробируюпщй вход 19 и выход 20 ошибки.

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

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

36состояния.

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

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

СП

00

о со

00

со

315

21; 39 - сигнал-данных на информа- ционном входе-выходе микропроцессора 21; 40-42 - сигналы на выходах управления чтением, записью и на выходе синхронизации микропроцессора 21 соответственно ; 43 - сигналы на первом выходе системного контроллера 22; 44 сигнал на выходе дешифра- тора 1; 45 - сигнал на инверсном выходе триггер 9; 46-48 - сигналы на выходах триггеров 10-12 соответственно; 49 - сигнал на выходе одно- вибратора 13; 50 - сигнал на выходе элемента И 14; 51 - сигнал на первом выходе шифратора 8„

Рассмотрим работу предлагаемого устройства на примере использования его в микроконтроллере, построенном на базе микропроцессора INTEL - 8080 (см. фиг.2).

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

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

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

На фиг.4 интервалы выполнения команд обозначены римскими цифрами. Каждая команда выполняется в течение нескольких циклов операций (на фиг.4 циклы операции обозначены арабскими цифрами с индексом номера команды, например: обозначение 2 соответствует второму циклу операции первой команды). В свою очередь, каждый цикл операции выполняется в течение нескольких тактов. Длительность такта определяется периодом следования импульсов 37. Микропроцессор 21 осуществляет потактовое выполнение ко.- манд на уровне микрокоманд.

После начальной установки микропроцессор 21 приступает к выполнению

0 ™

5

0

j

5

0

0

5

0

5

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

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

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

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

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

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

В первом такте цикла операции 1, на информационный вход-выход микропроцессор 21 выдает слово состояния, в котором нулевой и третий биты равны единице. По сигналу 42 биты нулевой и первый записываются в регистр 36, а второй и третий биты - в триггеры 10 и 11. Сигнал 47 принимает единичное значение. Во втором такте по сигналу 43 из блока 23 памяти считывается код команды CALL и поступает на информационную шину микроконтроллера. При наличии на информационной шине кодов команд семейства CALL или КЕТ, а также при наличии единичных сигналов 47 и 43 дешифратор 1 вырабатывает сигнал 44. По сигналу 44 устанавливается в 1 триггер 9 (сигнал 45 принимает нулевое значение, разрешая работу триггеру 10), а в регистр .2 записывается адрес вызывающей команды. Код адреса с выхода регистра 2 поступает на вход шифратора 5. Последний

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

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

Как видно лз табл.3, в рассматриваемой программе 5 разрешенных вызывающих команд (из семейства CALL или RET). На выходе шифратора 5 устанавливается код, равный 1.

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

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

В первом такте цикла операции 1г на информационный вход-выход микропроцессора 21 поступает слово состояния, в котором нулевой и третий бить: равны единице. При поступлении сигнала 42 биты состояния переписываются в регистр 36 и триггеры 10 и 11 и на выходе элемента И 14 вырабатывается сигнал 50. itb сигналу 50 одновибратор ГЗ вырабатывает сигнал 49 определенной длительности (длительность сигнала 49 определяется суммарным временем срабатывания шифраторов 5-8), а в регистр 3 записывается адрес вызываемой команды. Кроме того, обнуляются триг

0

5

0

5

0

5

геры 9 и 10 (поз.45 и 46). Код адрес с выхода регистра 3 поступает на вход шифратора 6. Шифратор 6 распознает, какие из команд в программе разрешены в качестве вызывающих, и определяет их порядковый номер в разрешенном перечне. Если команда разрешена в качестве вызываемой, на выходе шифратора 6 устанавливается ее ненулевой порядковый номер в разрешенном перечне. Если команда запрещена в качестве вызываемой, на выходе шфиратора 6 присутствует 5 нулевой код.

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

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

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

0 пары взаимосвязанных команд (вызывающая - вызываемая) в программе.

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

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

Таким образом, в рассматриваемой

программе 6 разрешенных пар взаимосвязанных (вызывающая - вызываемая) команд.

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

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

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

Вершина графа - это фрагмент программы (подпрограммы) от первой команды подпрограммы до первого безусловного изменения счетчика команд микропроцессора после выполнения команд IMP или RET (частный случай после выполнания команды HLT - оста- Нов).

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

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

В табл. 8 показан принцип кодиро- ания шифратора 8,

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

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

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

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

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

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

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

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

5 следующее по порядку значение из натурального ряда: если кодирование соответствует возврату (команда RET), то выбирается значение, выдаваемое шифратором 8 при прямом

0 вхождении в соответствующий узел по данному маршруту. Например, код пути (6-я строка табл.8)равен 1, так как по этому пути происходит возврат в узел 2 (адрес ОА, табл.6),

- а код прямого пути в узел 2 по адресу 07 (табл.6, 1-я строка) также равен 1-1 (1-я строка, табл.8). Воз враты в узел 1 (4-я и 5-я строки, табл.6) обозначены кодом 7 (4-я и

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

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

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

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

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

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

После обработки временного интервала одновибратором 13 сигнал 49 устанавливается в нулевое состояние. По перепаду, из 1 в О сигналом 49 в регистр 4 записывается код 1. Триггер J 2 своего значения (нулевого) не меняет, сигнал 48 ошибки не вырабатывается. Программа продолжает выполняться до следующей точки контроля (до следующей команды семейства CALL или RET).

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

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

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

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

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

0

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

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

5

0

5

5

выход которого соединен с входом. установки в О второго триггера,

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

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

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

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

название год авторы номер документа
Устройство для программного управления технологическим оборудованием 1989
  • Харченко Вячеслав Сергеевич
  • Сперанский Борис Олегович
  • Тюрин Сергей Феофентович
  • Улитенко Валентин Павлович
  • Тимонькин Григорий Николаевич
  • Ткаченко Сергей Николаевич
  • Крюков Дмитрий Зиновьевич
SU1714575A1
Устройство для адресации памяти 1984
  • Николайчук Олег Игоревич
SU1160409A1
Устройство для адресации памяти 1987
  • Черняев Владимир Григорьевич
  • Пархоменко Николай Григорьевич
  • Лозбенев Владимир Юрьевич
SU1481760A1
Устройство для проверки выполнения последовательности команд микропроцессора 1984
  • Овечкин Юрий Григорьевич
SU1247874A1
Устройство для контроля микропроцессорной системы 1987
  • Гладштейн Михаил Аркадьевич
  • Комаров Валерий Михайлович
  • Шубин Николай Алексеевич
  • Альтерман Игорь Зелимович
SU1474650A2
Устройство для сопряжения центрального процессора с группой арифметических процессоров 1988
  • Михнов Юрий Павлович
SU1529236A1
Устройство для контроля микропроцессора 1989
  • Гладштейн Михаил Аркадьевич
  • Комаров Валерий Михайлович
  • Шубин Николай Алексеевич
  • Альтерман Игорь Зелимович
SU1817096A1
Устройство для контроля микропроцессора 1988
  • Гладштейн Михаил Аркадьевич
  • Комаров Валерий Михайлович
  • Шубин Николай Алексеевич
  • Альтерман Игорь Зелимович
SU1599862A1
Электронная вычислительная машина для ускоренной обработки запросов прерываний 1988
  • Голицын Валентин Васильевич
  • Швырев Владимир Петрович
  • Парфенов Валентин Васильевич
SU1621029A1
Устройство прерываний микропроцессорной системы 1988
  • Тимонькин Григорий Николаевич
  • Харченко Вячеслав Сергеевич
  • Ткаченко Сергей Николаевич
  • Тюрин Сергей Феофанович
  • Подзолов Герман Константинович
  • Хлебников Николай Иванович
  • Гнедовский Юрий Михайлович
  • Маслова Инна Анатольевна
SU1621030A1

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

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

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

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

Таблица Номер битаОJ23

Назначение Указывает на Указывает наУказываетУказывает

бита обращение к обращение кна обраще-на первый

памяти устройствуние к стекуцикл операввода-выводации команды

Таблица 2

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

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

00 Ml : CALL M2 CD 0700 03CALL МЗ CD OBOO

06HLT76

07M2: CZ M3 CD OBOO OARETC9

OB M3: RETC9

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

Код на входе Код на выходе адрес команды

00 01 02 03 04 05 06 07 08 09 ОА 0В

1 О О 2 О О О 3

о о

А 5

13

15363891

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

Код на входе

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

О

1 2 3 А 5

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

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

Т

Код на выходе

ТаблицаЗ

о о о о

4 О

О О

о о о

5

О

1 О

о о о

о о о о о о

о о

2 3

о о

Код на выходе шифратора 7

Таблицаб

с использованием кодов адресов команд

15

3536389

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

с использованием кодов на выходах шифраторов 5 и 6

Примечание.

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

ТаблицаВ

7 - код на выходе регистра 4 в исходном состоянии.

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

О 1

2 3 4 5 6 7

16

Т а б л и ц а 7

с использованием кодов на выходе шифратора 7

Таблица9

о о о о о о о 1

о о о о о о о

2

о

3

о о о о о о

о

7

о о о о о о

о о

7

о о о о о

о о о

о о о о

о о о о о о о о

Коды на выходе шифратора 8

t

тя

z

и

68С9С51

мг

Mb

.5

фиг.Ц

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

Устройство для контроля последовательности выполнения программ 1985
  • Соловей Григорий Борисович
SU1254493A1
Приспособление для точного наложения листов бумаги при снятии оттисков 1922
  • Асафов Н.И.
SU6A1
Устройство для контроля следования модулей программы 1985
  • Подсвиров Александр Александрович
  • Кормилицына Наталия Петровна
  • Глонти Евгений Владимирович
  • Шуленин Юрий Васильевич
SU1249521A1
Приспособление для точного наложения листов бумаги при снятии оттисков 1922
  • Асафов Н.И.
SU6A1

SU 1 536 389 A1

Авторы

Пушкарев Юрий Яковлевич

Гайворонский Михаил Алексеевич

Даты

1990-01-15Публикация

1987-12-15Подача