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

Номер патента: 1536389

Авторы: Гайворонский, Пушкарев

Есть еще 3 страницы.

Смотреть все страницы или скачать ZIP архив

Текст

(51)5 С 06 Р 11 ОСУДАРСТВЕННЫЙ КОМИТЕТПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМПРИ ГКНТ СССР ОПИСАНИ АВТОРСКОМУ БРЕТЕНИ ЕЛЬСТВУ. (57) лите поль Цель аст клас ройс етельство СССР Р 11/28, 1985. ельство СССРР 11/28, 1985. КОНТРОЛЯ ПОСЛЕНЕНИЯ ПРОГРАММ то анал мар Изобретение относится к вычислительной технике и может бить использовано в системах управления дляконтроля программируемых устройств,Цель изобретения - расширениеобласти применения устройства эасчет расширения класса контролируемых программ,На Фиг,1 изображена схема устройства; на Фиг,2 - схема микроконтроллера; на фиг3 - схема системногоконтроллера; на фиг.4 - временныедиаграммы работы устройства и микроконтроллера; на Фиг,5 и 6программы,.изображенные в виде графов,Устройство контроля последовательности выполнения программ(фиг.1) содержит дешифратор 1, регистры 2-4, шифраторы 5-8, триггеры9-12, одновибратор 13 и элемент И 14.Устройство также имеет вход 15 сброса,вход 16 синхронизации, первый 17 р 22 (фиг.З 35 и регист нтролтыИ 3 и С стемныи ко содержит элемен 36 состояния.На Фиг.4 приве граммы работы уст ты следующие обоз 37 - импульсы на зации микропроцес на адресном выход аенные дечы вр ройства начения е пр озициями: синхрони - сигнал оцессора сора; е мик и(21) (22) (46) (71) "Юг" ческ (72) (53) (56) 9 12А Иф 12 (54) ДОВА 4344477/24-2415,12.871,01,90.Особое коГоловногого управлЮ,Я,Пушка681,3 (088.8)Авторское свид4493, кл. С 06торское свидет9521, кл, С 06УСТРОЙСТВО ДЛЯРЛЬНОСТИ 311 ПОЛ Бюл. 11 2нструкторское бюромонтажно-технологи-.ения "Юг"рев и М,А,Гайворонский Изобретение относится к вычис-ьной технике и может быть исовано в системах управления.изобретения - расширение об"применения за счет расширенияа контролируемых программ. Уство содержит три: регистра, четыиггера, дешифратор, одновибрачетыре шифратора, элемент И,достигается эа счет того, чтойство позволяет производитьз правильности хода программытветствии с закодированным.утом, 6 ип. 9 табл,и второй 18 информационные входы, стробирующий вход 19 и выход 20 ошики.Микроконтроллер (Фиг,2) содержит микропроцессор 21, системный контроллер 22, блок 23 памяти, блок 24 ввода-вывода, устройство 25 для контроля последовательности выполнения программ, управляющие выходы 26 и 27, управляющие входы 28 и 29, выходы управления чтением. ЗО и записью 30 а микропроцессора, вход 31 синхронизации.1536389 Редактор Е,К изводственно в издательск. комбинат "Патент", г. Ужгород, ул. Гагарина, 01 ЗакаВНИИПИ Составитель А,АфанасьевТехредМ,Дидык . Корректор И.Хуск 09 Тираж 555 ПодписноеГосударственного комитета по изобретениям и открытиям при ГКНТ СССР113035, Москва, Ж, Раушская наб д, 4/521; 39 - сигнал данных на информационном входе-выходе микропроцессора21; 40-42 - сигналы на выходахуправления чтением, записью и на выходе синхронизации микропроцессора21 соответственно; 43 - сигналы напервом выходе системного контроллера,22; 44 - сигнал на выходе,цешифратора 1; 45 - сигнал на инверсном,выходе триггер 9; 46-48 - сигналы навыходах триггеров 10-12 соответственно; 49 - сигнал на выходе адновибратора 13;.0 - сигнал на выходеэлемента И 14; 51 - сигнал на первомвыходе шифратора 8,Рассмотрим работу предлагаемогоустройства на примере использования,его в микроконтроллере, построенномна базе микропроцессора 1 НТЕЬ - 8080(см. Фиг.2)Микроконтроллер работает следую, щим образом.Для проведения микроконтроллерав исходное состояние на. вход 15 сброса подается сигнал начальной уста-новки, На вход синхронизации микроконтроллера подается серия импуль сов 37,Работа микроконтроллера основанана выполнении программ (набора ко".манд), хранимой в блоке 23 памяти.Структура блока 23 памяти в каждомконкретном примере микроконтроллераможет быть различной, Блок 23 памятиможет состоять из комбинации постоянной и оперативной памяти в произвольных областях адресного пространства микропроцессора 21, При этомуправляющая .программа хранится впостоянных областях памяти а данные - в оперативной области,На Фиг,4 интервалы выполнениякоманд обозначены римскими цифрами.Каждая команда выполняется в течениенескольких циклов операций (на фиг,4циклы операции обозначены арабскимицифрами с индексом номера команды,например: обозначение 2 соответствует второму циклу операции первойкоманды). В свою очередь, каждыйцикл операции выполняется в течениенескольких тактов. Длительность такта определяется периодом следованияимпульсов 37Микропроцессор 21 осуществляет потактовое выполнение ко. -манд на уровне микрокоманд,После начальной установки микропроцессор 2) приступает к выполнению5101520 25 30 В первом такте цикла операции 1 на информационный вход-выход микропроцессор 21 выдает слово состояния, в котором нулевой и третий биты равны единице, По сигналу 42 биты нулевой и первый записываются в регистр 36,.а второй и третий биты - в триггеры 10 и 11, Сигнал 47 принимает единичное значение, Во втором такте по сигналу 43 из блока 23 памяти считывается код команды САН, и постунает на информационную шину микроконтроллера, При наличии на информационной шине кодов команд семейства САУЛ. или КЕТ, а также при наличии единичных сигналов 47 и 43 дешифратор 1 вырабатывает сигнал 44, По сигналу 44 устанавливается в "1" триггер 9 (сигнал 45 принимает нулевое значение, разрешая работу триггеру 10), а в регистр 2 записывается адрес вызывающей" команды. Код адреса с выхода регистра 2 поступает на вход шифратора 5. Последний 40 45 50 55 команды. В первом цикле операциивыполнения каждой команды микропроцессор 21 производит считывание самой команды из блока 23 памяти. Впервом такте любого цикла командымикропроцессор выдает на шину 18данных слово состояния,Назначение битов состояния показано в табл,1,Устройство 25 для контроля последовательности выполнения программы осуществляет контроль правильности функционирования микроконтроллера,.Рассмотрим более подробно выполнениепроцедуры контроля,Устройство 25 контролирует правильность прохождения программой определенных точек, В качестве характерных точек контроля в программе выбираются точки вызова подпрограмм (семейство команд САЕТ) и точки возврата из подпрограмм на основную программу (семейство команд КЕТ).В табл,2 приведен текст программы для микропроцессора серии 580 (зарубежный аналог 1 ИТЕЬ - 8080), на примере которой рассмотрим детально принципы контроля.Например, микроконтроллер приступает к выполнению команды 1 - САН. по адресу 00 (для упрощения, исполнение команд на фиг,4 показано неполностью).6389 Огеры 9 и 10 (поз.45 и 46), Код адресас выхода регистра 3 поступает навход шифратора 6, Шифратор 6 распознает, какие из команд в программе5разрешены в качестве вызывающихи 11и определяет их.порядковый номерв "разрешенном" перечне, Если команда"разрешена" в качестве "вызываемой",на выходе шифратора 6 устанавливается ее ненулевой порядковый номер в"разрешенном перечне". Если командазапрепена в качествевызываемой",на выходе шфиратора 6 присутствует15 нулевой код,Таблица истинности шифратора 6для рассматриваемой программы приведена в табл.4,153 Как видно,из табл.З, в рассматриваемой программе 5 разрешенных"вызывающих." команд (из семействаСА 1.Е или РЕТ). На выходе шифратора 205 устанавливается код, равный 1,В последующих циклах операциивыполнения команды 1 (на временнойдиаграмме Фиг,4 для упрощения подробно не показаны) микропроцессор 21 25считывает иэ блока 23 памяти адресвызываемой подпрограммы, В последнемцикле операции выполнения команды1 микропроцессора 21 производит запись адреса возврата на основнуюпрограмму в область стека блока 23памяти. При выполнении этой процедуры в триггер 10 записывается единичный 2-й бит слова состояния (см. позицию 46), По единичному сигналу46 разрешается работа одновибратора3513, На этом завершается выполнениекоманды 1.Микропроцессор 21 приступает ввыполнению команды 11 (первой команды вызываемой подпрограммы по адресу 07 , установленному на адресномвыходе микропроцессора 21),В первом такте цикла операции 1на информационный вход-выход микро 45процессора 21 поступает слово. состояния, в котором нулевой и третийбиты равны единице, При поступлениисигнала 42 биты состояния переписываются в регистр 36 и триггеры 10и 11 и на выходе элемента И 14 вырабатывается сигнал 50, По сигналу50 одновибратор 13 вырабатываетсигнал 49 определенной длительно-сти (длительность сигнала 49 опре 55деляется суммарным временем срабатывания шифраторов 5-8), а в регистр3 записывается адрес вызываемой"команды. Кроме того, обнуляются триг 30 50 распознает, какие иэ команд в программе разрешены в качестве "выэы 11вающих., и определяет их порядковыйномер в "разрешенном" перечне. Если.командаразрешена в качестве вызывающей", на выходе шифратора 5устанавливается ее ненулевой порядковый номер в "разрешенном перечне",Если команда запрещена в качестве"вызывающей", на выходе шифратора 5присутствует нулевой код,Таблица истинности шифратора 5для рассматриваемой цели примернойпрограммы приведена в табл.З. Как видно из табл,4, в рассатриваемой программе 5 разрешенных "вызываемых" команд, На выходе шифратора 6 устанавливается код, равный 3.Коды с выходов шифраторов 5 и 6поступают на входы шифратора 7, Шифратор 7 распознает: та или разрешенная вызывающая команда вызвала необходимую вызываемую команду" и определяет порядковый номер "разрешенной"пары взаимосвязанных команд ("вызывающая - вызываемая") в программе,Если пара команд "разрешена" впрограмме, на, выходе шифратораустанавливается порядковый номерэтой пары. В противном случае навыходе шифратора 7 присутствует нулевой код,Таблица истинности шифратора 7для рассматриваемой программы приведена в табл,5,.Таким образом, в рассматриваемойпрограмме 6 "разрешенных" пар взаимосвязанных ("выэывающая - вызываемая") команд,При коде 1 на выходе шифратора 5и коде 3 на выходе шифратора 6 навыходе шифратора 7 устанавливается/код, равный 1,Код с выхода шифратора 7 поступает на первый вход шифратора. 8Для понимания принципа кодирования шифратора 8 проанализируетструктуру рассматриваемой программы,представленной в виде графа нафиг,5 и 6 (на Фиг,6 показан графпрограммы, а на Фиг.5 текст программы изображен в виде графа), Каквидно на фиг,6, граф состоит иэ трехвершин,Вершина графа - это Фрагмент программы (подпрограммы) от первой команды подпрограммы до первого безусловного изменения счетчика командмикропроцессора после выполнениякоманд ТМР или КЕТ (частный случайпосле выполнания команды НЬТ - останков),В табл.6 представлены все возможые пути следования программы (переходы между вершинамн графа), начинаяс.начальной, условно заданной точки6, которая соответствует исходномусостоянию системы; Причем эти переходы показаны как с использованиемнумерации вершин графа, так и с исПользованием адресов пар взаимосвязанных ("вызывающая - вызываемая")команд, В число путей включаются всеагути движения (маршрут) от началапрограммы вперед по ходу следования,а также пути, содержащие возврат на1:шаг,В табл,Д показаны значения шифраторов 5-7 в процессе путей следования в соответствии с табл.6, т,е,маршруты хода программы показаныПри помощи значений кодов на выходах1 цифраторов 5-7.В табл. 8 показан принцип кодирования шифратора 8,Расмотрим подробно принцип .кодирования шифратора 8 в соответствиис табл,8,В графе 2 показаны пути движенияс использованием кодов на выходе шифратора 7 (аналогично табл,7). Кодом7 обозначено начальное состояние(переход из состояния О),Для обозначения начального состояния (перехода из состояния О) выбирается код, имеющие максимальноезначение из натурального ряда кодов,используемых при кодировании шифратора 8 для конкретной программы,Этот код присутствует в исходномсостоянии (после начальной установки) на выходе регистра 4, Код 7выбран иэ расчета удобства установкирегистра в исходное состояние (всеединицы), хотя максимальным значением при кодировании шифратора 8 длярассматриваемой программы (как видноиз табл,8) мог бы быть код 4.Последовательность кодирования(см, табл.8) следующая, На первомшаге кодируются все пути длиной водин переход (для рассматриваемой программы 1-яи 2-я строки табл.8).Полученные коды (справа от выделенной линии) соответствуют значениям, которые, должны быть на выходешифратора 8 после первого вызоваподпрограмм. Затем подставляем полученные значения кодов в выражениядля всех путей, Теперь выражения10для всей путей уменьшаются на 1 член.На следующем втором шаге. производится кодирование и подстановка ко-дов во все пути длиной в два перехода (для рассматриваемого случая153-я 4-я и 5-я строки), Процесскодирования - подстановки продолжается до тех пор, пока все путине будут закодированы,Принцип выбора кодов для шифратора 8 (см, табл,8 справа от выделенной линии) следующий, Если кодирование на очередном шаге соответст, вует продвижению вперед по программе (команда САЬЬ), то выбирается25 следующее по порядку значение изнатурального ряда: если кодирование соответствует возврату (командаКЕТ), то выбирается значение, выдаваемое шифратором 8 при прямомвхождении в соответствующий узелпо данному маршруту, Например, кодпути (6-я строка табл,8)равен 1, таккак по этому пути происходит возврат в узел 2 (адрес ОА, табл.б),35а код прямого пути в узел 2 по адресу 07 (табл,6, 1-я строка) такжеравен .1 (1-я строка, табл.8), Воэвраты в узел 1 (4-я и 5-я строки,табл,6) обозначены кодом 7 (4-я и40 5-я строки, табл.8), также как ипрямой путь в узел 1 (переход иэсостояния О).Таблица истинности шифратора 8для рассматриваемой программы показана в табл 9Код на выходе щифратора 8 определяет путь, пройденный программойдо данной точки контроля, и используется для определения кода путидля следующей точки контроля,.Если программа для данной точкиконтроля выполняется без сбоев иошибок (проходит верный путь) навтором выходе шифратора 8 устанавливается ненулевой код пути, а напервом выходе шифратора 8 присутствует.нулевой сигнал. В случае ошибки (сбоя) на втором выходе шифратора 8 устанавливается ошибочный (нуО 36389 9 15левой) код пути, а сигнал на первомвыходе шифратора 8 принимает единичное значение.Для рассматриваемого случая прикоде 1 на выходе шифратора 7 и коде7 на выходе регистра 4 на выходешифратора 8 устанавливается код, равный 1 (см. табл.9). Сигнал 51 имеетнулевое значение, Код с второго выхода шифратора 8 поступает на информационный вход регистра 4,После обработки временного интервала одновибратором 13 сигнал 49устанавливается в нулевое состояние,По перепаду,из "1" в "0" сигналом49 в регистр 4 записывается код 1,Триггер 12 своего значения (нулево-.го) не меняет, сигнал 48 "ошибки"не вырабатывается. Программа продолжает выполняться до следующей точки контроля (до следующей команды семейства СА 1,1. или КЕТ),В случае сбоя нарушается правильчый ход выполнения программы, врезультате чего искажается запрограммированное кодирование шифраторов5-8. В этом случае в точке контролясигнал 51 принимает единичное .значение (см, фиг.4), По сигналу 49триггер 12 устанавливается в "1",Единичный сигнал 48 на выходе триггера 12 сигнализирует об ошибке вфункционировании микроконтроллера,В зависимости от задач, решаемых микроконтроллером, сигнальныйвыход 20 подключается внешним соединением либо к входу останова, либо к входу прерывания микропроцессора, Например, если сигнальный выход20 подключается к входу остановамикроконтроллера, то .в этом случаемикропроцессор 21 входит в состояние ожидания и работа микроконтроллера останавливается. Продолжениевычислительного процесса при этомвозможно после выдачи сигнала начальной установки,Если подключить выход 20 к входупрерывания, то при возникновенииединичного сигнала 48 микропроцессор21 переходит на сервисную подпрограмму обработки прерываний, Сервиснаяподпрограмма позволяет произвестидополнительную диагностику сбойнойситуации и вывести результаты наустройство вывода (дисплей, перфора"тор и др,), Рассмотренный примерпрограмм является простейшим и не отражает многих частных случаев,например ограничений, накладываемыхна возможные пути содержанием программы и спецификой обрабатываемыхданных.Ф о р м у л а изобретения Устройство для контроля последо вательности выполнения программ,содержащее дешифратор, регистр, первый и второй шифраторы и элемент И,о т л и ч а ю щ е е с я тем, что;с целью расширения области примене ния эа счет расширения класса контролируемых программ, в устройствовведены второй и третий регистры,третий и четвертый шифраторы, первый, второй, третий и четвертый триг геры и одновибратор, причем информационные входы первого и второго регистров соединены с первым информационным входом устрочства для подключения к шине адреса электронной 25 вычислительной машины, информационный вход дешифратора соединен с вторым информационным входом устройствадля подключения к шине данных электронной вычислительной машины, пер вый стробирующий вход дешифраторасоединен со стробирующим входом устройства для подключения к выходууправления чтения из памяти электронной вычислительной машины, выход дешифратора соединен с входом записипервого регистра и с входом установки в 1 первого триггера , инверсныйвыход которого соединен с входом .установки вО второго триггера , 40 вход записи которого соединен с входом записи третьего триггера , с первым входом элемента И и с входомсинхронизации устройства для подключ ения к выходу синх ро низа ции элек тронной вычислительной машины , в торой вход элемента И соединен с ра зрядом идентификации первого циклакоманды второго информационного входаа устройства и с информационным 50 входом третьего триггера , выход которо го со единен с в торым с троб ирующим входом д ешиф р а то ра , выход элемента И соединен с входом записи второго регистра , с первым входом устано в к и в . " 0" первого триггера и с ост робирующим входом одновиб ра то р а,информационный вход второго триггерсоединен с разрядом идентификацииобращения к стеку в то ро го . инфо рма153638 Таблица Номер бита .1 . 2 / з Назначение Указывает на Указывает набита обращение кобращение кпамяти устройствуввода-вывода Указываетна первыйцикл операции команды Указываетна обращение к стеку Таблица.2Текст программы 1 Адрес Метка Мнемоника Операнд Код СП 0700СЭ ОВОО76СВ ОВООС 9С 9 М 1: 00 03 Об 07 ОА ОВ САЕЛ.САЕЛ.НЕ,ТСЕНЕТНЕТ М 2 МЗ: Т а б л и ц а 3Таблица истинности шифратора 5 Код на выходе Код наадрес команды) ционного входа устройства, выход второго триггера соединен со стробирукяцим входом одновибратора, выход которого соединен с входом Записи третьего регистра и. с входом5 записи четвертого триггера, выход которого соединен с выходом ошибки стройства, выходы первого и второго егистров соединены с входами соотетственно первого и второго шифра- оров, выходы которых соединены оответственно с первым и вторым ходами третьего шифратора, выход которого соединен с первым входом ОО 01 02 ОЗ 04 05 Об 07 08 09 ОА ОВ 1 0 0 2 О 0 О 3 0 0 4 5 9 12четвертого шифратора, первый и второй выходы которого соединены соответственно с информационным входомчетвертого триггера и с инфомационным входом третьего регистра, выходтретьего регистра соединен с вторымвходом четвертого шифратора, входсброса третьего регистра соединенс входом установки в "0" четвертоготриггера, с вторым входом .установкив 0 первого триггера и с входомсброса устройства для подключения квходу начальной установки электронной вычислительной машины,13 14 1536389 Т а б л и ц а 4 Таблица истинности шифратора 6Код на входе Код на выходе 00 0 01 0 02 О 03 1 04 0 05 0 06 2 07 3 08 0 09 0 ОА 4 ОВ 5т Таблица 5 Таблица истинности шифратора 7 Код на выходе Код на выходе О 1 2 3 4 5шифратора 5 шифратора 6 0 1 2 3 4 5 0 0 О О 0 0 Таблицаб Пути следования программы с использованием кодовадресов команд Ц - ОО - 07 ц - оз - ов Ц - ОО - 07 Ч - ОО - 07 ц - Оз - Оз Ц - ОО - 07 1-2 1-32 2 ( - 1 - 31 - 2 07 - ОВоа - озОВ - 0607 - ОВ-ОБ-ОА- 31 1 -3-2 с использованием нумерациивершин графа О О 0 0 0 0 0 О 4 0 0 5 Код на 0 О 1 О 0 0 0 О 0 0 О 0 выходе О0230Ошифратора 76 1536389 Таблица 7 Пути следования программы с использованием кодов навыходе шифратора 7 с использованием кодов навыходах шифраторов 5 и 6П р и м е ч а н и е. В левой позиции под.значение шифратора 5,шифратора 6.,1 Таблица 8 Кодирование путей для шифратора 8 Путь следования(с использованием кодовна выходе шифратора 7) 2 - 5 1-3-6 6 3 тра 4 в исходном состоянии,а выходе рег 9 Т а блица истинности шифратор Код на втором Код на выходевыходе регистра 4 шифратора 7 О 0 0 О 7 0 О О О 0 О 0 0 0 4 О 0 0 0 О 0 0 О 0 0 О 0ифратора 8 оды ыходе ч Г - 1 - 3 05 Ч 1 1-3 Г-5 Г-3

Смотреть

Заявка

4344477, 15.12.1987

ОСОБОЕ КОНСТРУКТОРСКОЕ БЮРО "ЮГ" ГОЛОВНОГО МОНТАЖНО ТЕХНОЛОГИЧЕСКОГО УПРАВЛЕНИЯ "ЮГ"

ПУШКАРЕВ ЮРИЙ ЯКОВЛЕВИЧ, ГАЙВОРОНСКИЙ МИХАИЛ АЛЕКСЕЕВИЧ

МПК / Метки

МПК: G06F 11/28

Метки: выполнения, последовательности, программ

Опубликовано: 15.01.1990

Код ссылки

<a href="https://patents.su/11-1536389-ustrojjstvo-dlya-kontrolya-posledovatelnosti-vypolneniya-programm.html" target="_blank" rel="follow" title="База патентов СССР">Устройство для контроля последовательности выполнения программ</a>

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