Устройство для контроля хода программы
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и может быть использовано для контроля хода программы ЭВМ, а также для отладки их программного обеспечения. Цель изобретения - повышение достоверности контроля. В устройство для контроля программы, содержащее блок 1 памяти, первый и второй регистры 4 и 5, первый и второй счетчики 6 и 7 времени, триггер 8 пуска, блок 9 индикации, блок 10 сравнения, дешифратор 11 адреса, элементы И 15 - 18, элемент ИЛИ 21, введены генератор 2 единиц, блок 3 регистров, шифратор 12 кодов, первый коммутатор 13, второй коммутатор 14, пятый элемент И 19, одновибратор 20, второй элемент ИЛИ 23, четвертый элемент ИЛИ 24. Сущность изобретения заключается в повышении достоверности контроля за счет реализации возможности функционирования в четырех новых режимах: с автоматическим заданием масштаба уставок времени и контролем всех переходов с автоматическим заданием масштаба уставок времени и контролем всех переходов между заданными участками программы с программным заданием масштаба уставок времени и контролем всех переходов с программным заданием масштаба уставок времени и контролем переходов между заданными участками программы. 5 ил.
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК (51)5 G 06 F 11/28
ГОСУДАРСТВЕННЫЙ КОМИТЕТ
ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ
ПРИ ГКНТ СССР
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (21) 4488399/24 (22) 30.09.88 (46) 15.07.91. Бюл. М.26 (72) В.А.Ткаченко, С.Н.Ткаченко, Г,Н,Тимонькин, В.С.Харченко, А.В,Моченков и
С.С.Мощицкий (53) 681.3 (088.8) (56) Авторское свидетельство СССР
Q 1363220, кл. G 06 F 11/28, 1987.
Авторское свидетельство СССР
М 1176336, кл. G 06 F 11/28, 1985. (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА
ПРОГРАММ (57) Изобретение относится к вычислительной технике и может быть использовано для контроля хода программы ЭВМ, а также для .отладки их программного обеспечения.
Цель изобретения — повышение достоверности контроля, В устройство для контроля программы, содержащее блок 1 памяти, первый и второй регистры 4 и 5, первый и второй счетчики 6 и 7 времени, триггер 8
Изобретение относится к вычислительной технике и может быть использовано для контроля хода программ ЭВМ.
Цель изобретения — повышение достоверности контроля.
На фиг. 1 изображена функциональная схема устройства; на фиг. 2 — схема блока памяти; на фиг. 3 — схема блока регистров; нв фиг. 4 — схема блока сравнения; на фиг. 5
-схема блока регистров контрольной метки.
Устройство контроля хода программы содержит блок 1 памяти, генератор 2 единиц, блок 3 регистров, первый регистр 4, второй регистр 5, первый счетчик 6 времени, второй счетчик 7 времени, триггер 8 пуска, блок 9 индикации, блок 10 сравнения, де„„5U„„1663612 А1 пуска, блок 9 индикации, блок 10 сравнения, дешифратор 11 адреса, элементы И 15-18, элемент ИЛИ 21, введены генератор 2 единиц, блок 3 регистров, шифратор 12 кодов, первый коммутатор 13, второй коммутатор
14, пятый элемент И 19, одновибратор 20, второй элемент ИЛИ 22, третий элемент
ИЛИ 23, четвертый элемент ИЛИ 24. Сущность изобретения заключается в повышении достоверности контроля за счет реализации возможности функционирования в четырех новых режимах: с автоматическим заданием масштаба уставок времени и .контролем всех переходов; с автоматическим заданием масштаба уставок времени и контролем всех переходов. между заданными участками программы; с программным заданием масштаба уставок времени и контролем всех переходов; с программным заданием масштаба уставок времени и контролем переходов между заданными участками программы. 5 ил. шифратор 11 адреса, шифратор 12 кодов, первый коммутатор 13, второй коммутатор
14, первый 15, второй 16, третий 17, четвертый 18, пятый 19 элементы И, одновибратор
20, элемент ИЛИ 21, элемент ИЛИ 22, элемент ИЛИ 23, элемент ИЛИ 24, выход 25 устройства, первую группу 26 входов устройства, вторую группу 27 входов устройства, первый вход 28 устройства, второй вход
29 устройства, выход 30 блока 1 памяти, выход 31 блока памяти, группу 32 выходов блока 3 регистров, группу 33 выходов блока
3 регистров, группу 34 выходов регистра 4, группу 35 выходов регистра 5, выходы 36 и
37 счетчика 7 времени, выходы 38, 39, 40, 41;
42, 43, 44 дешифратора 11 адреса.
1663612
Выход 30 блока 1 памяти подключен к первому входу элемента ИЛИ 24, выход которого подключен к входу блока 9 индикации и выходу 25 устройства, Выход 31 блока
1 памяти подключен к первому управляющему входу регистра 4 контрольной метки, группа 34 выходов которого подключена к первой группе входов блока 10 сравнения и группе входов блока 1 памяти. Группа выходов генератора 2 единиц подключена к первой группе входов первого коммутатора 13, группа выходов которого подключена к группе информационных входов счетчика 6 времени.
Группа 32 выходов блока 3 регистров соединена с группой входов шифратора 12, группа выходов которого подключена к первой группе входов второго коммутатора 14.
Группа 33 выходов блока 3 регистров подключена к второй группе входов блока 10 сравнения, выход которого подключен к входу блока 1 памяти. Группа 35 выходов регистра 5 соединена с первой группой входов регистра 4 и второй группой входов блока 1 памяти, а также с третьей группой входов блока 10 сравнения, Выход счетчика 6 времени подключен к первым входам элементов И 16 и 18, а также к инверсному входу элемента И 17, выход
- которого соединен со счетным входом счетчика 7 времени, Выход 36 счетчика 7 времени подключен к инверсному входу элемента
И 19, выход которого подключен к второму входу элемента ИЛИ 24, выход 37 счетчика
7 времени подключен к инверсному входу элемента ИЛИ 24.
Единичный выход триггера 8 пуска подключен к первому входу элемента И 15, выход которого соединен с вторым входом элемента И 16 и прямым входом элемента И
17. Выход 38 дешифратора 11 адреса соединен с первым входом элемента ИЛИ 21 и прямым входом элемента И 19, Выход 39 дешифратора 11 подключен к второму входу элемента ИЛИ 21, выход которого соединен с нулевым входом триггера 8 пуска и вторым входом элемента И 18, выход которого подключен к третьему входу элемента WIN 24.
Выход 40 дешифратора 11 адреса подключен к первому управляющему входу блока 3 регистров и входу одновибратора 20, выход которого соединен с первыми управляющими входами коммутаторов 13 и 14, а также с первыми входами элементов ИЛИ 22 и 23.
Выход 41 дешифратора 11 адреса подключен к совмещенному установочному входу триггера 8 пуска, второму управляющему входу регистра 4,.а также второму управляющему входу блока 3 регистров.
20
50
Выход 42 дешифратора 11 адреса подключен к третьему входу блока 3 регистров,. выход 43 дешифратора 11 адреса подключен к второму управляющему входу коммутатора 14 и второму входу элемента ИЛИ 23, выход которого соединен с синхровходом счетчика 7 времени. В ыход 44 дешифратора
",1 адреса подключен к второму управляющему входу коммутатора 13 и второму входу элемента ИЛИ 22, выход которого подключен к синхровходу счетчика 6 времени, Группа выходов коммутатора 14 подключена к группе информационных входов счетчика 7 времени, Выход элемента И 15 соединен с вторым входом элемента И 16, выход которого подключен к счетному входу счетчика 6 времени, а также к прямому входу элемента И 17, Группа 26 входов устройства подключена к группе адресных входов дешифратора 11 адреса. а также отдельными разрядами подключена к группе входов регистра 5, Группа 27 входов устройства подключена к вторым группам входов коммутатора 13 и коммутатора 14, а также отдельными разрядами к второй группе в;;одов регистра 4 и группе входов блока 3 регистров. Вxîä 28 устройства подключен к управляющему входу дешифратора 11 адреса, управляющему входу регистра 5 и управляющему входу блока 10 сравнения. Вход 29 устройства подключен к второму входу элемента И 15.
Блок 1 памяти (фиг. 2) содержит перепрограммируемые запоминающие элементы 45 памяти, блок элементов 46,1-46.п сравнения, элемент И 47, элемент И 48, элемент И 49, выход 30, выход 31, группу 32 входов, группу 33 входов, управляющий вход от блока 10 сравнения.
Группа выходов запоминающих элементов 45 отдельными разрядами подклю- чена к первым группам входов элементов
46.1-46.ï сравнения соответственно, выходы которых подключены к соответствующим входам элемента ИЛИ 49.
Выход элемента И 47 является выходом
30 блока, а выход элемента И 48 является выходом 31 блока. Выход элемента ИЛИ 49 подключен к инверсному входу элемента И
47 и первому входу элемента И 48.
Группа 32 входов подключена к группе входов запоминающего устройства 45. . Группа 33 входов блока подключена к вторым группам входов элементов 46,1-46.п
5 сравнения. Управляющий вход блока подключен к второму входу элемента И 48 и прямому входу элемента И 47, Блок 3 регистров (фиг. 3) содержит регистр 50 маски, регистр 51, триггер 52 установки, группу 32 выходов, группу 33
1663612
25
40
50 выходов, группу 27 входов, вход 40, вход 41, вход 42.
Группа выходов регистра 50 маски является группой 32 выходов блока. Группа выходов регистра 51 является группой 33 выходов блока. Единичный выход триггера
52 установки подключен к установочному входу регистра 51.
Группа 27 входов блока подключена к группам входов регистра 50 маски и регистра 51, вход 40 подключен к синхровходам регистра 50 маски и регистра 51, вход 41 подключен к нулевому входу триггера 52 установки, вход 42 подключен к совмещенному установочному входу триггера 52 установки.
Блок 10 сравнения (фиг. 4) содержит элемент 53 сравнения, блок элементов И
54.1-54.п, блок элементов И 55.1-55,п, выход блока на блок 1 памяти, группу 33 входов, группу 34 входов, группу 35 входов, управляющий вход 28.
Выход по несовпадечию элемента 53 сравнения является выходом блока.
Группа выходов блока элементов И
54.1-54.п подключена к группе А входов элемента 53 сравнения. Группа выходов блока элементов И 55.1-55.п подключена к группе
В входов элемента 53 сравнения, Группа 33 входов подключена отдельными разрядами к первым входам элементов И 54.1-54,п блока и элементов И
55.1-55.п блока, группа 34 входов блока подключена отдельными разрядами к вторым входам элементов И 54.1-54.п блока соответственно. Группа 35 входов блока подключена отдельными. разрядами к вторым входам элементов И 55.1 — 55.п блока.
Вход 28 блока является управляющим входом элементов 53 сравнения.
Блок 4 регистра контрольной метки (фиг. 5) содержит регистр 56, коммутатор 57, элемент ИЛИ 58, элемент 59 задержки, группу 34 выходов, группу 27 входов, группу
35 входов, входы 31 и 41, Группа выходов оегистра 56 является группой 34 выходов блока, группа выходов. коммутатора подключена к группе входов элемента 59 задержки, группа выходов которого подключена к группе входов регистра 56, выход элемента ИЛИ 58 подключен к синхровходу регистра 56, группа 27 входов блока подключена к первой группе входов коммутатора 57, группа 35 входов блока подключена к второй группе входов коммутатора, вход 31 блока подключен к первому входу элемента ИЛИ 58 и первому управляющему входу коммутатора 57, вход 41 блока подключен к второму управляющему входу коммутатора 57 и второму входу элемента
ИЛИ 58.
Блок 1 памяти предназначен для хранения и проверки адресов разрешенных переходов. Он представляет собой ассоциативное запоминающее устройство, в котором по адресу данной команды хранятся адреса возможных разрешенных переходов отданной команды к всевозможным другим.
Перепрограммируемые запоминающие элементы памяти 45 предназначены для хранения и выдачи по пришедшему коду адреса адресов разрешенных переходов.
Блок элементов 46,1-46.п сравнения предназначен для сравнения кодов адресов текущих команд с кодами разрешенных адресов, записанных в перепрограммируемом запоминающем устройстве 45.
Элемент И 47 предназначен для формирования сигнала "Ошибка". Элемент И 48 предназначен для формирования сигнала
"Смена метки", Элемент ИЛИ 49 предназначен для объединения выходов элементов
46.1-46.п сравнения, Генератор 2 единиц предназначен для формирования последовательности сигналов, имеющих потенциал логической единицы.
Блок 3 регистров предназначен для хранения и выдачи кода маски на шифратор 12, блок 10 сравнения в различных режимах работы устройства.
Регистр 50 маски предназначен для получения, хранения и выдачи кода маски.
Регистр 51 предназначен для выдачи кода маски на блок 10 сравнения в режимах, когда производится контроль абсолютно всех переходов.
Триггер 52 предназначен для установки и удержания регистра 51 в единичном состоянии при программном обращении к регистру 51.
Регистр 4 контрольной метки предназначен для хранения и выдачи кода контрольной метки. Регистр 5 предназначен для хранения и выдачи кода адреса текущей команды.
Счетчики 6 и 7 времени предназначены длч фиксации минимальной и максимальной границ времени соответственно при контроле времени выполнения контролируемой программы, Триггер 8 пуска предназначен для формирования сигнала "Начало контроля". Блок
9 индикации предназначен для световой регистрации наличия ошибки в программе, Блок 10 сравнения предназначен для регистрации наличия переходов, путем сравнения кодов appecos предыдущей команды с последующей.
1663612
Элемент 53 сравнения предназначен для выдачи сигнала наличия перехода на блок 1 памяти при несравнении кодов адресов команд, Блоки элементов И 54.1-54.п и 55,1-55,п предназначены для осуществления контроля изменений в разрядах сравниваемых кодов адресов команд с помощью кода маски, Дешифратор 11 адреса предназначен для выработки сигналов управления программно-доступными блоками схемы, а также выработки сигналов для управления функционированием устройства в соответствии с заданным алгоритмом.
Шифратор 12 кодов предназначен для формирования кодов уставок масштаба времени для автоматической перезаписи в счетчики 6 и 7 времени в соответствии с кодом маски.
Коммутаторы 13 и 14 предназначены для управления записью кодов времени в счетчики 6 и 7 времени либо автоматически с шифратора 12, либо программно.
Элемент И 15 предназначен для пропуска в устройство импульсов тактовой частоты при наличии разрешающего сигнала с выхода триггера 8 пуска.
Элементы И 16, 17, 18 предназначены для осуществления контроля времени обра ботки участка программы. Элемент И 19 предназначен для контроля времени выполнения контролируемого участка программы, если есть требование строго фиксировать количество обработанных команд в определенный промежуток времени, Одновибратор 20 предназначен для осуществления синхронизации работы счетчиков 6 и 7 и блока 3 регистров и шифратора 12 кодов при автоматическом задании масштаба уставок времени.
Элемент ИЛИ 21 предназначен для обьединения выходов 38 и 39 дешифратора 11 адреса, чтобы сформировать сигнал "Конец контролируемого участка", Элементы ИЛИ 22, 23 предназначены для формирования сигнала синхронизации для управления работой счетчиков 6 и 7 времени.
Элемент ИЛИ 24 предназначен для формирования сигнала "Ошибка" для блока 9 индикации и запроса на прерывание для микропроцессорной системы.
Устройство работает следующим образом.
Устройство позволяет производить контроль хода выполнения программы как по времени, так и контролировать переходы.
Причем контроль по времени возможно реализовать двояким путем (в зависимости от требований к программированию):
10
15 ванию, таким образом: контролируются переходы между участ45
55
40 с программным заданием интервала времени, в течение которого должны быть обработаны команды данного участка программы; с автоматическим заданием интервала времени, причем контролировать выполнение участка программы можно нестрого, в интервале времени >min < Т < Ттах, а также, задаваясь определенным числом команд, которые должны быть обработаны, фиксировать количество выполняемых команд в данный момент времени.
Контроль переходов осуществляется в зависимости от требований к программироками программы; контролируются абсолютно все переходы как между участками, так и внутри их
Исходя из изложенного, можно выделить несколько режимов функционирования устройства контроля хода программы: с автоматическим заданием масштаба уставок времени и контролем абсолютно всех переходов; с автоматическим заданием масштаба уставок времени и контролем переходов между заданными участками программы; с программным заданием масштаба уставок времени и контролем абсолютно всех переходов; с программным заданием масштаба уставок времени и контролем переходов между заданными участками программы, Устройство для микропроцессорной системы является внешним. Связь между устройством и микропроцессорной системой происходит через интерфейсную магистраль, Устройство использует следующие управляющие сигналы микропроцессорной системы: сигнал идентификации машинного .цикла выборки команд (метка М1 — пятый разряд слова состояния — вход 28 устройства; импульсы тактовоЙ частоты, поступающие от генератора микропроцессорной системы, — вход 29 устройства.
В устройстве программно-доступными блоками являются счетчики 6 и 7 времени, регистр 4 контрольной метки, регистр 50 маски, регистр 51 в блоке 3 регистров, каждому блоку соответствует свой программнонеизменяемый номер, В исходном состоянии все элементы памяти обнулены (цепи установки в нуль условно не показаны). При этом в блок 1 памяти, представляющий собой ассоциативное запоминающее устройство, занесены адреса разрешенных переходов.
1663612
5
Рассмотрим функционирование устройства контроля в первом режиме, Программа составляется с выполнением требований структурности. Программа разбивается на контролируемые участки, причем длина участка (количество команд) зависит от длины кода маски Nm>x = 2 — 1, представляющего собои комбинацию "1", обозначающих разряды, которые могут модифицироваться; для каждого контролируемого участка эта разрешающая зона может изменяться. Таким образом, фиксируется изменение любого разряда кода адреса, Начало контролируемого участка — код маски, конец обозначается кодом адреса А,, идентифицирующим, например, команду вывода
OVTPVT.
Микропроцессор (например, К 580) выставляет на шину адреса код адреса регистра 50 маски, а на шину данных код маски.
Адрес регистра 50 маски через группу
26 входов устройства поступает на группу входов дешифратора 11 адреса, а код маски через группу 27 входов устройства поступа ет на группу входов регистра 50 маски блока
3 регистров. Дешифратор 11 адреса расшифровывает адрес регистра 50 маски и на его выходе появляется сигнал, который разрешит запись кода маски в регис гр 50 маски. Управляющим сигналом для дешифратора 11 адреса является сигнал идентификации машинного цикла выборки команды (метка М1 — пятый разряд слова состояния) на входе 28 устройства. Код числа с группы 32 выходов регистра 50 маски поступает на шифратор 12, на выходе которого будет сформирован код, обозначающий масштаб времени максималь-о допустимого выполнения контролируемого участка программы.
Данный код через коммутатор 14 по управляющему сигналу с выхода 40 дешифратора 11 адреса по заднему фронту через одновибратор 20 и через элемент ИЛИ 23 запишется в счетчик 7 максимального времени. По тому же управляющему сигналу с выхода элемента ИЛИ 22 через коммутатор
13 в счетчик 6 минимального времени с группы выходов генератора 2 единиц запишется код, представляющий собой набор логических единиц. Таким образом, в счетчик 6 записан код минимального времени выполнения контролируемого участка, а в счетчик 7 записан код максимального времени выполнения того же участка.
Далее микропроцессор обращается к регистру 4 контрольной метки, т.е: адрес этого регистра поступает на группу 26 входов устройства и на группу входов дешифратора 11 адреса. По управляющему сигналу с выхода 41 дешифратора 11 адреса по заднему фронту возбуждается триггер 8 пуска. По сигналу на единичном выходе триггера 3 пуска откроется элемент И 15, тем самым разрешается проход с входа 29 устройства на выходэлемента И 15тактовых импульсов.
Сигналы тактовой частоты с выхода элемента И 15 поступают на открытый элемент
И 16 и закрытый по инверсному входу элемент И 17. Сигнал с выхода элемента И 16 поступает на счетный вход "-1" счетчика 6, содержимое которого уменьшается по мере выполнения команд контролируемого участка программы. Когда счетчик 6 времени обнуляется, сигнал обратного перехода с его выхода закрывает элементы И 16 и 18, а открывает по инверсному входу элемент И
17, через который тактовые импульсы проходят на счетный вход "-1" счетчика 7 максимального времени, содержимое которого уменьшается на единицу с приходом каждого тактового импульса. Сигнал "Конец контроля" формируется на выходе 39 дешифратора 11 адреса, по приходу на его группу входов неизменяемого кода адреса
А>, идентифицирующего команду вывода.
Если дешифратор 11 адреса обнаружит признак конца временного участка раньше, чем обнулится счетчик 6 времени (что соответствует выполнению участка программы за время, меньшее Tmin), то сигнал "Конец контроля" через открытый элемент И 18, элемент ИЛИ 24 включит блок 9 индикации, поступит на выход 25 устройства и будет воспринят микроп роцессорной системой как сигнал ошибки. запрос на прерывание.
Одновременно сигнал "Конец контроля" переводит триггер 8 пуска в нулевое состояние, закрывая по второму входу элемент И 15. Поступление тактовых импульсов на счетный вход "-1" счетчика 6 времени прекращается.
Если дешифратор 11 адреса обнаружит конец прсверяемого временного сегмента после обнуления счетчика 6 времени и до обнуления счетчика 7 максимального времени, что соответствует выполнению участка программы за время Т (Tmin < Т < Tmax) то сигнал "Конец контроля" переводит в нулевое состояние триггер 8 пуска, закрывает элемент И 15 и прекращает поступление
-тактовых импульсов на счетчик 7 максимального времени, так как в этот момент элемент И 18 закрыт, то сигнал "Конец контроля" не проходит на вход 25 устройства и блок 9 и н 1и ка ци и.
Если счетчик 7 максимального времени обнулится до появления кода адреса А> (что соответствует выполнению программного
1663612 участка за время, большее Тп х), то сигнал обратного переноса с выхода 37 счетчика 7 времени через инверсный вход элемента
ИЛИ 24 включит блок 9 индикации, поступит на выход 25 устройства и будет воспринят микропроцессорной системой как запрос на прерывание, Если необходимо контролировать строго определенное количество команд в заданное время, то программа составляется таким образом, чтобы после адреса As, обозначающего конец контролируемого участка программы, следовал неизменяемый адрес АБ "+1".
При поступлении этого адреса на группу входов дешифратора 11 адреса на выходе
38 дешифратора 11 появится сигнал, который откроет по прямому входу элемент И 19.
В этот момент на выходе 36 счетчика 7 времени должен присутствовать сигнал логической единицы, что соответствует тому, что произошла выборка N команд, если же в данный момент будет выбрано больше или меньше, чем N команд, то на выходе 36 счетчика 7 времени будет присутствовать сигнал логического нуля, данный сигнал поступит на инверсный вход элемента И 19, наличие сигнала на выходе которого будет означать присутствие ошибки, что зарегист .рирует блок 9 индикации. а также сигнал ошибки поступит на выход 25 устройства.
Одновременно с контролем времени выполнения программ в устройстве осуществляется контроль переходов, В силу того, что кодом маски можно задавать самые различные зоны изменений разрядов в коде адреса, контролируются абсолютно все переходы.
Контроль переходов осуществляется следующим образом, Как описывалось вы- ше, регистр 4 контрольной метки является программно-доступным, В регистр 4 конт.рольной метки программно записывается контрольная метка в начале контроля, т,е. при запуске устройства. В дальнейшем в процессе контроля смеси метки происходит аппаратным путем, Запись происходит следующим образом. Микропроцессор на шину данных выставляет код контрольной метки, а на шину адреса — код адреса регистра 4. У дешифратора 11 адреса возбуждается выход 41, сигналом с этого выхода информация с группы
27 входов запишется в регистр 4 контрольной метки. В регистр 5 записывается адрес выполняемой текущей команды, который поступает с группы 26 входов устройства, Этот код будет записываться по сигналу, идентифицирующему цикл выборки команды. С групп 34 и 35 выходов регистров 4 и 5
50 коды поступают на первые и вторые группы входов блока 10 сравнения. Код контрольной метки с выхода 34 регистра 4 поступает на входы блока элементов И 54.1-54.п, а код текущего адреса поступает на входы блока элементов И 55.1-55 п с гоуппы 35 выходов регистра 5. Код маски с группы 33 выходов регистра 51 поступает на соответствующие входы элементов И 54,1-54.п и 55.1-55.п блоков.
Таким образом, коды на группах выходов элементов И 54,1-54.п и 55.1-55.п будут сформированы в соответствии с законом расстановки "1" и "0" в коде маски, т.е, любое изменение разрядов в маскируемой зоне в коде адреса, что соответствует переходу, будет зафиксировано в кодах на группах выходов блоков элементов И 54,154.n è 55.1-55.п. Данные коды поступают на первую и вторую группы входов блока 53 сравнения соответственно, где по заднему фронту управляющего сигнала с выхода 28 устройства (который иДентифицирует выборку команды — метка M1) проходит сравнение этих кодов. Сигнал несовпадения кодов на выходе блока 10 сравнения поступает на управляющий вход блока 1 памяти, Одновременно с поступлением кодов контрольной метки и текущего адреса на блок 10 сравнения, они поступают на соответствующие группы 34 и 35 входов блока 1 памяти, Блок 1 памяти проверяет, является ли совершенный программой переход разрешенным. Код с группы 34 входов блока 1 памяти является адресом, по которому в перепрограммируемом запоминающем устройстве
45 содержатся адреса всех возможных разрешенных переходов из данного адреса.
Считанные коды адресов поступают на первые группы входов соответствующих элементов сравнения 46.1-46,п блока, где они сравниваются с кодом адреса текущей команды.
Если происходит сравнение, т.е, переход разрешен, то на выходе 31 блока 1 памяти появляется сигнал перезаписи кода адреса текущей команды в регистр 4 контрольной метки, где с этого момента данный код становится контрольным. В противном случае на выходе 30 блока 1 памяти появляется сигнал "Ошибка".
Следующие коды адресов текущих команд сравниваются с новым контрольным кодом (по существу, кодом адреса предыдущей команды), В случае запрещенного перехода сигнал "Ошибка" поступает на вход элемента
ИЛИ 24, включает блок 9 индикации и посту пает на выход 25 устройства для перевода
1663612
10
25
30 режима
40 микропроцессорной системы в режим прерывания.
Таким образом, устройство выдает сигнал ошибки в случае, когда программа выполняется не в расчетное время, а также при любом запрещенном переходе.
Рассмотрим работу устройства во втором режиме (с автоматическим заданием масштаба установок времени и контролем переходов между заданными участками программы). KGK указывалось выше, выбор функционирования устройства в том или ином режиме зависит от требований к устройству контроля и требований к программированию, Как и для первого режима программа разбивается на программные участки. Началом контролируемого участка считается код маски, конец обозначается кодом адреса А> (например, команда вывода) ° К разрядов адреса команды представляют в виде двух частей: изменяемой части, содержащей I разрядов, и неизменяемой части, содержащей (К-1) разрядов, называемой меткой участка. В участок включаются команды с одинаковой меткой. Для одного участка разряды меток должны совпадать, Контроль времени с автоматическим заданием масштаба уставок времени происходит аналогично описанному для первого
Одновременно с контролем времени происходит контроль переходов; В отличие от первого режима после записи кода маски в регистр 50 маски и записи кода контрольной метки в регистр 4 контрольной метки по управляющему сигналу с выхода 41 дешифратора 11 адреса происходит программное обращение к регистру 51, Неизменяемый адрес этого регистра поступает на группу входов дешифратора 11, в результате возбуждается выход 42.
Сигнал с этого выхода 42 дешифратора
11 адреса установит триггер 52 установки в единичное состояние, сигнал на единичном выходе триггера 52 поступит на установочный вход регистра 51, который будет удерживаться в единичном состоянии в течение всего режима (т,е. происходит отключение регистра 51). (Триггер 52 установки обнуляется сигналом запуска системы с выхода 41 дешифратора 11 адреса при обращении к регистру 4 контрольной метки в начале выполнения программы при всяком режиме).
В регистр 5 записывается текущая метка по управляющему сигналу, иденцифицирующему цикл выборки команды.
С группы 34 выходов регистра 4 контрольной метки и группы 35 выходов регистра 5 коды метки поступают на соответствующие группы входов блока 10
55 сравнения, где коды сравниваются. Код маски представляет собой набор единиц, так как регистр 51 установлен в единичное со-. стояние, следовательно, этот код не оказывает влияния на работу блока 10 сравнения, Пока текущая темка принадлежит проверяемому участку, при правильном выполнении программы коды меток должны совпадать.
Несовпадение меток может произойти при наличии в участке программы команды, передающей управление другому участку— разрешенный переход, а также при попытке программы выполнить запрещенный переход, что обусловлено наличием неисправно- сти в микропроцессорной системе, При несовпадении меток на выходе блока 10 сравнения появляется сигнал, поступающий на управляющий вход блока 1 памяти.
Одновременно на группу 32 входов блока 1 памяти поступает код контрольной метки, а на группу 33 входов поступает код текущей метки. Блок 1 памяти проверяет, является ли переход разрешенным, Код контрольной метки является адресом, по которому в перепрограммируемом запоминающем устройстве 45 записаны разрешенные переходы.
Если текущая метка разрешена, то на выходе 31 блока 1 памяти при наличии разрешающего сигнала с блока 10 сравнения появляется сигнал "Смена метки", в противном случае на выходе 30 блока 1 памяти появится сигнал "Ошибка", Сигнал "Смена метки" перепишет текущую метку в регистр
4 контрольной метки, а сигнал "Ошибка" включает блок 9 индикации и поступает на выход 25 устройства, а затем в микропроцессорную систему как запрос на прерывание, Рассмотрим функционирование устройства контроля в третьем режиме (с программным заданием масштаба уставок времени и контролем абсолютно всех переходов), Программа для третьего режима составляется аналогично описанному для первого режима эа исключением того, что вслед за командой записи кода маски в реги"тр 50 маски следуют программные обращения к счетчикам 6 и 7 времени, причем обращением к этим счетчикам является начало каждого временного участка. В счетчик 6 времени записывается минимальное время Tmin выполнения временного участка программы, а в счетчик 7 времени — разница между максимальным и минимальным временем ЛТ =
Tm« — Tmi>. Конец временного участка обозначается неизменяемым адресом А,(при необходимости ставится и адрес А, + 1).
1663612
20
50
Код маски в этом режиме используется исключительно для контроля абсолютно всех переходов, как в первом режиме, Фукнционирование устройства в третьем режиме начинается программным обращением к регистру 50 маски. Код маски запишется в регистр 50 маски по управляющему сигналу с выхода 40 дешифратора 11 адреса. Далее п ри программном обращении к счетчику 6 времени на группе 26 адресных входов устройства появляется адрес счетчика 6 времени, сопровождающийся управляющим сигналом на входе 28 устройства. Управляющий сигнал разрешает работу дешифратора 11 адреса, который вырабатывает на своем выходе 44 сигнал, разрешающий прохождение кода коммутатор 13 и запись по заднему фронту в счетчик 6 времени кода временного интервала-Т п п. Аналогично записи в счетчик 6 происходит запись временного интервала в счетчик 7 времени сигналом с выхода 43 дешифратора 11 адреса при программном обращении к счетчику 7 времени.
Таким образом, информация, записанная в счетчики при обращении к регистру 50 маски, будет заменена программно-принудительно. Контроль начинается при обращении к регистру 4 контрольной метки, т,е. сигнал с выхода 41 дешифратора 11 адреса установит в единичное состояние триггер 8 пуска, открывая тем самым элемент И 15для пропуска тактовых импульсов с входа 29 устройства.
Работа счетчиков 6 и 7 будет происходить аналогично описанному в первом режиме. Далее контроль времени, а также контроль переходов происходит аналогично описанному в первом режиме, Программная запись временных интервалов позволяет вводить коррекцию по ходу выполнения программы, Рассмотрим характерные особенности функционирования устройства контроля в четвертом режиме (с программным заданием масштаба уставок времени и контролем переходов между заданными участками программы).
В этом режиме программа составляется следующим образом. Программа разбивается на временные участки. Начало каждого временного участка обозначается и рограм-. мным обращением к счетчикам 6 и 7 времени. Конец каждого временного участка обозначается приходом кода адреса
Аэ(Аз+1). К разрядов адреса команды представляют в виде двух частей: изменяемой части и неизменяемой части, метка участка.
В участок включаются команды с одинаковой меткой.
Таким образом, контроль времени в четвертом режиме происходит, как описано в третьем режиме, а контроль переходов осуществляется, как описано во втором режиме.
Формула изобретения
Устройство для контроля хода программы, содержащее блок памяти, первый и второй регистры, первый и второй счетчики времени, триггер пуска, блок индикации, блок сравнения. дешифратор адреса, первый, второй, третий и четвертый элементы И и первый элемент ИЛИ, причем первый выход блока памяти подключен к первому прямому входу первого элемента ИЛИ, выход которого соединен со входом блока индикации и является выходом ошибки устройства, второй выход блока памяти соединен с первым входом записи первого регистра, группа выходов которого соединена с первой группой информационных входов блока сравнения и с группой адресных входов блока памяти, группа выходов второго регистра соединена с первой группой информационных входов первого регистра, группой информационных входов блока памяти и второй группой информационных входов блока сравнения, прямой выход триггера пуска соединен с первым входом первого элемента И, выход которого соединен с первым и прямым входами соответственно второго и третьего элементов И, выход переполнения первого счетчика времени соединен с вторым входом второго элемента И, с инверсным входом третьего элемента И и с первым входом четвертого элемента И, выход третьего элемента И соединен со счетным входом второго счетчика времени, выход переполнения которого соединен с инверсным входом первого элемента ИЛИ, выход равенства блока сравнения соединен с входом обращения блока памяти, первый выход дешифратора адреса соединен с вторым входом записи первого регистра, выходы второго и четвертого элементов И соединены соответственно со счетным входом первого счетчика времени и вторым прямым входом первого элемента ИЛИ, группа адресных входов устройства соединена с группами информационных входов дешифра гора адреса и второго регистра, группа информационных входов устройства соединена с второй группой информационных входов первого регистра, вход признака выборки команды устройства соединен со стробирующим входом дешифратора адреса, входом записи второго регистра, тактовый вход устройства соединен с вторым входом первого элемента И, о т л и ч а e1663612 щ е е с я тем, что, с целью повышения достоверности контроля, в него введены генератор единиц, блок регистров, шифратор кодов, первый и второй коммутаторы, пятый элемент И, одновибратор, второй, третий и 5 четвертый элементы ИЛИ, причем группа информационных выходов генератора единиц соединена с первой группой информа- ционных входов первого коммутатора, группа выходов которого соединена с груп- 10 пой информационных входов первого счетчика времени, перва