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

 

Изобретение относится к вычислительной технике и может быть использовано для контроля хода выполнения программ ЭВМ, работающих в реальном масштабе времени. Цель изобретения - повышение глубины контроля хода программ. Устройство для контроля хода программ содержит два регистра адреса 1 и 18, два блока сравнения 2 и 8, счетчик 3 адреса, счетчик 10 ошибок, счетчик 16 прерываний, блок 19 памяти, блок 7 стековой памяти, три D-триггера 11, 12 и 13, элементы И 24-38, элементы ИЛИ 22, 23, элемент 17 задержки. Устройство обеспечивает контроль хода выполнения программы ЭВМ путем контроля последовательности состояний счетчика команд ЭВМ с помощью дублирующего счетчика адреса в устройстве по векторам адресов в канале ЭВМ. 1 з.п. ф-лы, 9 ил.

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

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

РЕСПУБЛИН

„.Я0„„1539785 А i (51)5 G 06 Р 11/28

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

Н ABTOPCHOMV СВИДЕТЕЛЬСТВУ (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА

ПРОГРАММ (57) Изобретение относится к вычислительной технике и может быть использовано для контроля хода выполнения программ ЭВМ, работающих в реальном масштабе времени. Цель изоб43 г .39

Фиа.s

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

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

ПРИ ГКНТ СССР (21) 4366282/24-24 (22) 20.01.88 (46) 30,01.90. Бюп. Р 4 (72) Л.А.Литвин и В.Ю.Чмутов (53) 681. 3(088. 8) (56) Авторское свидетельство СССР

И 1236487, кл. G 06 F 11/28, 1986.

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

У 1249521, кл. С 06 Р 11/28, 1986.

2 ретения - повышение глубины контроля хода программ. Устройство для контроля хода программ содержит два регистра адреса 1 и 18, два блока сравнения 2 и 8, счетчик 3 адреса, счетчик

10 ошибок, счетчик 16 прерываний, блок 19 памяти, блок 7 стековой памяти, три D-триггера ll, 12 и 13, элементы И 24-38, элементы ИЛИ 22, 23, элемент 17 задержки. Устройство обеспечивает контроль хода выполнения программы 3BN путем контроля последовательности состояний счетчика команд ЭВМ с помощью дублирующего счетчика адреса в устройстве по векторам адресов в канале ЭВМ. I з.п. ф-лы, а 10 ил, 9

1539785 выми входами элементов И первой группы 5, выходы которых соединены с первыми входами группы 4 элементов ИЛИ.

Информационные входы и выходы блока

7 соединены соответственно с выходами счетчика 3 адреса и первыми входами второго блока 8 сравнения, выход которого соединен с вторыми входами элементов И первой группы 5 и первыми входами восьмого 31 и девятого 32 элементов И, выходы которых соединены соответственно с вторыми входами четвертого 23 и второго 21 элементов

ИЛИ. Вход 42 сигнала синхронизации соединен с первым входом седьмого элемента И 30, управляющим входом второго регистра 1 адреса, С-входами первого 11 и второго 12 П-триггеров и вторым инверсным входо1ч шестого элемента И 29, первые входы которого соеди нены с инверсными входами счетчика

10 ошибок, а выход — со счетным входом счетчика 3 адреса, управляющий вход которого соединен с выходом четвертого элемента ИЛИ 23. Вход 40 сигнала ВВОД и вход 41 сигнала ВЫВОД соединены соответственно с первым и вторым входами первого элемента ИЛИ

20, выход которого соединен с первыми входами первого 24, третьего 26, четвертого 27, пятого 28 и четырнадцатого 37 элементов И, вторыми входами второго 25 и восьмого 31 элементов И, первым инверсным и,вторым инверсным входами соответственно десятого 33 и девятого 32 элементов И и входом элемента 17 задержки, выход которого соединен с первым входом двенадцатого элемента И 35 и инверсным входом чтения блока 19 памяти. Входы первого блска 2 сравнения соединены с выходами счетчика 3 адреса, информационные входы которого соединены с выходами группы 4 элементов ИЛИ, а выход блока 2 сравнения соединен с вторыми входами третьего 26 и четвертого 27 элементов И, выходы которых соединены соответственно с первым входом четвертого элемента ИЛИ

22 и входом сброса счетчика 10 ошибок, выход переноса которого соединен с первым входом пятнадцатого элемента И 38, а счетный вход — с выходом четвертого элемента ИЛИ 22, второй вход которого соединен с выходом генератора 9 импульсов. Выход первого дешифратора 14 соединен с

D-входом первого D-триггера 11 и

Изобретение относится к вычислительной технике и может быть использовано для контроля хода выполнения программы ЭВМ, работающих в реальном масштабе времени.

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

На фиг. 1 представлена структурная схема устройства для контроля хода программа, на фиг. 2 - структур- ная схема блока стековой памяти; на фиг. 3 — диаграммы сигналов ЭВМ с общей шиной: а — диаграмма сигналов информационных шин контролируемого канала; б — диаграмма сигнала синхронизации активного устройства (СИА); в и r — диаграммы сигналов соответственно ВВОД и ВЫВОД; на фиг. 4 — таблица команд ЭВМ с разбивкой по операции; на фиг. 5 — пример фрагментов выполняемой программы; на фиг. 6— таблица разрешенной очередности фрагментов; на фиг. 7 и 8 — временные диаграммы работы устройства; на 25 фиг, 9. — формат константы; на.фиг.10диаграммы сигналов при занесении информации в первый регистр адреса.

Устройство для контроля хода программ (фиг. 1) содержит второй регистр10

1 адреса, первый. блок 2 сравнения, счетчик 3 адреса, группу 4 элементов

ИЛИ, первую 5 и вторую 6 rpynrqr элементов И, блок 7 стековой памяти, второй блок 8 сравнения, генератор 9

35 импульсов, счетчик 10 ошибок, первый

11, второй 12 и третий 13 П-триггеры, первый 14 и второй 15 дешифраторы, счетчик 16 прерываний, элемент

17 задержки, первый регистр 18 адре- 40 са, блок 19 памяти, первый 20, второй 21, третий 22 и четвертый 23 элементы ИЛИ, элементы И 24-38, информационные входы 39 устройства, вход 40 сигнала ВВОД, вход 41 сигна- 45 ла ВЫВОД, вход 42 сигнала синхронизации и первый 43 и второй 44 выходы сбоя. Информационные входы второго регистра 1 соединены с информационными входами 39 устройства, входами 50 первого 14 и второго 15 дешифраторов, первыми информационными входами первого регистра 18 адреса и первыми входами элементов И второй группы

6, выходы которых соединены с вторыми входами группы 4 элементов ИЛИ. Выходы второго регистра 1 адреса соединены с первыми входами первого 2 и второго 8 блоков сравнения и пер1539785 6 вторым входом седьмого элемента И

30, выход которого соединен с управляющим входом занесения блока 7, управляющий вход выборки которого соединен с выходом второго элемента

ИЛИ 21. Выход первого D-триггера 11 соединен с вторыми входами элементов

И второй группы 6 .и вторым входом пятого элемента И 28, выход которого соединен с первым входом третьего элемента ИЛИ 23. Выход второго дешифратора 15 соединен с D-входом второго D-триггера 12, выход которого соединен спервым входом второго элемента И 25, вторыми входами первого

24 и четырнадцатого 37 элементов И, . третьими входами десятого 33 и двенадцатого 35 элементов И, вторые и четвертые входы которых соединены соответственно с выходом одиннадцатого элемента И 34 и третьим входом четырнадцатого элемента И 37, четвертый инверсный вход и выход которого соединены соответственно с третьим входом первого элемента И 24, первым разрядом информационных входов 39 устройства и первым входом второго элемента ИЛИ 21, Второй раз.ряд информационных входов 39 соединен с третьим входом четырнадцатого элемента И 37 и D-входом третьего

D-триггера 13, С-вход и выход которого соединены соответственно с выходом второго элемента И 25 и вторыми входами тринадцатого 36 и пятнадцатого 38 элементов И, выходы которых соединены соответственно с вторым 44 и первым 43 выходами сбоя, а первый вход тринадцатого элемента И 36 сое динен с выходом .блока 19 памяти. Вы-! ход первого элемента И 24 соединен со счетным входом суммирования счетчика 16 прерываний, счетный вход вычитания которого соединен. с выходом восьмого элемента И 31. Выходы десятого 33 и двенадцатого 35 элементов

И соединены соответственно с первым и вторым входами первого регистра

18 адреса, выходы которого соединены с адресными входами блока 19 памяти, а первые выходы первого регистра 18 адреса соединены с его вто-, рыми информационными входами.

Блок 7 стековой памяти (фиг. 2) содержит счетчик 45 адреса, накопитель 46, группу 47 элементов И, группу 48 элементов ИЛИ, регистр 49, первый 50 и второй 51 элементы за10

55 держки и элемент ИЛИ 52, причем выходы счетчика 45 адреса соединены с адресными входами накопителя 46, информационные входы которого соединены с первыми входами группы 47 элементов И и являются информационными входами блока 7. Выходы накопителя

46 и выходы группы 47 элементов И соединены соответственно с первыми и вторыми входами группы 48 элемен-: тов ИЛИ, выходы которых соединены с информационными входами регистра 49, выходы которого являются выходами блока 7, а управляющий вход регистра 49 соединен с выходом элемента

ИЛИ 52. Счетный вход суммирования счетчика 45 адреса соединен с входом первого элемента 50 задержки, вторыми входами группы 47 элементов И и является управляющим входом занесения блока 7. Счетный вход вычитания счетчика 45 адреса соединен с входом второго элемента 51 задержки, вторым инверсным входом элемента

ИЛИ 52 и является управляющим входом занесения блока 7. Выход первого элемента 50 задержки соединен с управляющим входом записи накопителя

46 и первым входом элемента ИЛИ 52, а выход второго элемента 51 задержки соединен с управляющим входом чтения накопителя 46.

Устройство работает следующим образом.

Работу устройства рассмотрим на примере ЭВМ с общей шиной. Выполняя программу, ЭВМ выполняет непрерывную последовательность команд. Выполнение команды начинается с операции по выборке команды. Для выполнения любой команды процессору требуется выполнить хотя бы одну операцию обращения. к каналу. Для некоторых команд требуется выполнить несколько операций.

Первой такой операцией для всех команд является ввод данных из ячейки памяти ЭВМ, адрес которой определяется счетчиком команд. Все операции обращения к каналу для ввода и вывода данных назовем циклами обращения к каналу. После дешифрации команды процессор начинает операцию по выборке операндов, инициируя, если это необходимо, в зависимости от кода команды и метода адресации один или несколько циклов ввода. Далее производится операция по выполнению команды и, если требуется записать резуль-.

1539785 тат в память или регистр BY здесь и в дальнейшем BY — внешнее устройство, начинается цикл вывода. Затем процессор может начать операцию обслуживания,которая вызывается выполнением внутренних или внешних прерываний. Для различных команд последовательность операций может быть различной. Но любую из команд процессор .10 начинает с операции по выборке команды, переходя затем к выполнению какой-либо другой операции или к их последовательности. В некоторых случаях после операции выборки текущей 15 команды процессор может перейти к операции выборки следующей команды, для чего ему требуется выполнить хотя бы одну операцию обращения к каналу. Как правило, ЭВМ с .общей шиной 20 выполняют байтовые операции, поэтому, когда процессор использует счетчик команд для выборки слова из памяти

ЭВМ, его содержимое автоматически увеличивается на 2. Новое содержимое счетчика команд является адресом слою ва, используемого при выполнении данной команды, или адресом следующей команды, - которую необходимо выполнить.

На фиг. 4 в таблице 53 представлены для примера некоторые команды с разбивкой по операциям: команда 1

MOU. +4, ВУ1, определяющая вывод значения счетчика команд, увеличенного . на 4 единицы, в регистр ВУ1; команда

2 - MOUO С, ВУ2, определяющая вывод константы С в регистр внешнего устройства ВУ2; команды 3 и 4 — любые команды ЭВМ. В строках 54-57 таблицы 40

53 показаны укаэанные команды, в столбце 58 — коды счетчика команд, которые он имеет при выполнении команд; в столбце 59 — коды адресов, которые пересылаются в канале ЭВМ 45 при выполнении указанных команд; в столбце 60 — содержимое ячеек или регистров с адресами, указанными в столбце 59. Значения кодов счетчика команд и адресов здесь и далее относительные и приведены в восьми ичных кодах. Знаками ХХХ указаны произвольные значения кодов.

В .процессе выполнения ЭВМ програмMbI производится выполнение следующих по порядку, или происходит переход по новому адресу по командам условного и безусловного перехода и по прерываниям от BY.

На фиг. 5 показан пример выполнения фрагментов программы: Фрагмент

61 — программа выполнения команд, следующих друг за другом, фрагмент

62 — программа, к которой происходит переход по новому адресу в результате выполнения заданного условия; фрагмент 63 †. программа обслуживания устройства. 1, вызвавшего прерывание; фрагмент 64 — программа обслуживания устройства 2, вызвавшего прерывание.

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

65 — команда возврата из прерывания.

Как видно из таблицы 53 (фиг. 4) и из фрагментов 61-64 (фиг. 5) счетчик команд в пределах каждого фрагмента занимает последовательные состояния с дискретностью наращивания, равной 2. При переходе программы иэ одного фрагмента к другому код счетчика изменяется в зависимости от структуры программы. Код адреса в канале ЭВМ, кроме упорядоченных значений кодов счетчика, принимает периодически значения произвольных кодов, определяемые местом положения операндов в памяти ЭВМ. Аппаратного доступа к счетчику команд в ЭВМ не имеется, доступ возможен только к каналу .ЭВМ;

Способом контроля хода выполнения программы является контроль последовательности кодов состояний счетчика команд ЭВМ с помощью дублирующего счетчика 3 адреса в устройстве для контроля по векторам адресов в канале

ЭВМ. При переходе программы из одного фрагмента в другой производится программная запись нового адреса в дублирующий счетчик 3 адреса устройства.

Учет произвольных кодов адресов, периодически появляющихся в канале ЭВМ и не совпадающих с кодами счетчика команд ЭВМ,.производится счетчиком 10 ошибок, выход переноса которого является сигналом ошибки хода выполне- . ния программы. Разрядность счетчика

10 ошибок определяет зону нечувствительности устройства, количественно выражающуюся в числе не совпадающих произвольных кодов, следующих подряд

ppyl за другом. При очередном совпа1539785 10

55 дении кода счетчика команд ЭВМ, а значит, и кода счетчика 3 адреса с кодом адреса в канале ЭВМ происходит: сброс в "0" счетчика 10 ошибок, Запо-, минание адресов возврата в случае прерывания программы внешними устройствами производится в блоке 7, глубина прерываний, т.е. количество программ обработки прерываний, следую-! щих подряд друг за другом, фиксируется счетчиком 16 прерываний. Последовательность выполнения фрагментов программы контролируется путем сравнения выполняемой последовательности с таблицей разрешенной очередности, записанной в блок 19 памяти. Таблица

66 очередности (фиг. 6) представляет собой матрицу с элементами "0" и "1".

В столбце 67 и в строке 68 таблицы 2р

66 указаны номера всех фрагментов программы, которая выполняется. Столбец 67 обозначает фрагменты, которые выполняются в данный момент, а строка 68 — фрагменты, которые могут сле- 25 довать за ними. Код "0", расположенный в пересечении i-й строки с j-м столбцом, означает, что фрагменту с номером j разрешено следовать после выполнения i-го фрагмента, в противном 30 случае в пересечении находится код

"1". На фиг. 6 приведен пример заполнения матрицы. Так, фрагмент с номером 02 может выполняться .только после фрагмента с номером 01. В случае, если фрагмент 02 начнет выполняться после какого-либо другого фрагмента, на выходе блока 19 памяти появится сигнал ошибки хода выполнения программы. Адресами для блока 19 4р памяти являются коды, составленные из номеров столбца 67 и строки 68. Для укаэанного примеракод адреса - 0102 °

Работа устройства начинается с начальной установки в "0" счетчика 16 прерываний, счетчика 45 адреса блока

7 и первого регистра 18 адреса (цепи установки в "О" на фиг. 1 не показаны). Сигналом начальной установки может быть, например, сигнал начальной установки всех устройств, подключенных к каналу, вырабатываемый процес Р сором ЭВМ при включении питания ЭВМ.

Каждый фрагмент программ начинается командами 54 и 55.

Выполнение фрагмента 61 (фиг. 5).

При выполнении команды 54 производятся следующие действия (фиг. 4). При состоянии счетчика команд ЭВМ "000" заносится из блока памяти ЭВМ в процессор код команды 1, счетчик команд устанавливается в состояние "002".

По этому адресу заносится в процессор адрес ВУ1, которым является дешифратор 14, счетчик команд ЭВМ при этом устанавливается в состояние

"004". После этого производится цикл вывода. В канале ЭВМ, а значит, и на информационных входах 39 устройства появляется адрес ВУ1, который дешифрируется дешифратором 14, на выходе которого появляется сигнал "1". После,установки адреса процессором вырабатывается сигнал СИА (фиг. 3), поступающий на вход 42 устройства, по переднему фронту которого заносится адрес в регистр 1 адреса, уста,навливается в "1" D-триггер 11, по. сигналу через элемент И 30 производится занесение в блок 7 содержимого счетчика 3 адреса (фиг. 7). После этого на информационных входах

39 устройства появляются данные, значение которых равно коду счетчика команд ЭВМ, относящемуся к выполняемой команде ("000"), увеличенному на "004", а на вход 41 устройства от

ЭВМ поступает сигнал ВЫВОД (фиг. 3), по которому в счетчик 3 адреса производится занесение указанных данных (фиг. 7): данные через группу 6 элементов И и через группу 4 элементов

ИЛИ поступают на информационные входы счетчика 3 адреса, а сигнал ВЫВОД через элемент ИЛИ 20, элемент И 28 и элемент ИЛИ 23 — на управляющий вход.

Так как коды регистра 1 адреса и счетчика 3 адреса не совпадают, то на выходе блока 2 сравнения присутствует сигнал "0", разрешающий прохождение сигнала ВЫВОД через элемент

И 26 и элемент ИЛИ 22 на счетный вход счетчика 10 ошибок, который увеличивает свое содержимое на единицу (факт несовпадения кодов на фиг. 7 показан разными направлениями штриховки на эпюрах сигналов регистра 1 адреса и счетчика 3 адреса). Поскольку счетчик

10 ошибок находится не в нулевом состоянии, сигнал заднего фронта сигнала

СИА через элемент И 29 не проходит на счетчик 3 адреса. На фиг. 7, разрешающее действие сигналов показано точкой, а запре1 ающее — крестиком.

Сигнал ВЫВОД, задержанный элементом 17 задержки, поступает на вход чтения блока 19 памяти. По заднему фронту

1539785

12 данного сигнала производится чтение данных по адресу, определяемому регистрам 18 адреса. Так как адрес равен 0, на выходе блока памяти

11 t I сигнал не появляется. Действие ко5 манды 54 завершается.

Выполняется следующая команда 55, при этом производятся следующие действия. При состоянии счетчика команд

ЭВМ "004" заносится из блока памяти

ЭВМ в процессор код команды 2. По переднему фронту сигнала СИА адрес

"004" с информационных входов 39 устройства заносится в регистр l адреса, D-триггер 11 устанавливается в состояние "О", так как на выходе де шифратора 14 теперь присутствует сигнал "0". После этого на вход 40 устройства поступает сигнал ВВОД. По- 2р скольку коды регистра 1 адреса и счетчика 3 адреса совпадают, на выходе блока 2 сравнения присутствует сигнал "0", открываю1ций по инверсному входу элемент И 27. Сигнал ВВОД через 25 элементы ИЛИ.20 и И 27 сбрасывает ечетчик 20 ошибок в нулевое состояние.

По заднему фронту СИА срабатывает элемент И 29, на первых входах которого присутствуют сигналы 1 с 30 инверсных выходов счетчика 10 ошибок, и в счетчик 3 адреса заносится "1" (следует иметь в виду, что вес млад-. ших разрядов регистра 1 адреса и счетчика 3 адреса равен 2, поскольку коды адресов в канале четные).Состо-, яние счетчика 3 адреса становится равным "006". После выполнения процес сором цикла ввода кода команды 2 счетчик команд ЭВМ устанавливается в сос- lo тояние "006". После этого выполняется цикл ввода константы С, после которого состояния счетчика команд ЭВМ и счетчика 3 адреса равны "010". Затем выполняется цикл ввода адреса ВУ2, 45 после чего состояния указанных счетчиков равны "012". После этого выполняется цикл вывода. На информационньгх входах 39 устройства появляется адрес ВУ2, который дешифрируется дешиф- 5р ратором 15, на выходах которого появляется сигнал "1". После установки адреса процессором вырабатывается сигнал СИА (фиг. 3), по переднему фронту которого заносится в регистр

1 адреса адрес ВУ2 и D-триггер 12 устанавливается в "1", После этого. на информационных входах 39 появляется значение константы С. Формат константы С показан на фиг. 9. В 1-м разряде (поле 69) находится признак

11 tt

l, если э то фрагмент программы обработки прерываний, и "0" - если э то очередной фрагмент, во 2-м разряде (поле 70 ) находится признак " 1 " необходимости контроля хода про граммы, в остальных разрядах (поле 7 1 ) номер фрагмента . На вход 4 1 устройст ва поступает сигнал ВЫВОД, по которому выполняются следующие действия .

Если признак контроля хода программы равен " 1 ", D-триггер 1 3 сигналом

ВЫВОД через элементы ИЛИ 20 и И 2 5 устанавливается в ". 1 ", и разрешается работа, элемента И 3 7 по третьему входу и. элементов И 3 3 и 35 по ч етвертому входу . Бсли признак фрагмента в поле 6 9 (фиг . 9 ) рутвен " О", что соответствует выполнению фрагмента 6 1 (фиг . 5 ), то сигналом ВЫВОД через элементы И 3 7 и ИЛИ 2 1 производится выборка из блока 7 занесенного в него ранее адреса (фиг . 1 0, а ), по сле чего на выходах блока 7 присутствуют сигналы "0" . Счетчик 1 6 прерываний находится в нулевом состоянии, р азрешая работу элемента И 34, сигнал

" 1 " с которого поступает на вторые входы элементов И 3 3 и 3 5, поэтому задержанный элементом 1 7 задержки сигнал ВЫВОД через элемент И 35 поступает на второй управляющий вход регистра 1 8 адреса и передним фронтом производит запись информации с первой половины регистра 18 во вторую (фиг. 10,б). В данный момент информация равна "О". После этого задним фронтом сигнала ВЫВОД через элемент И 33 производится запись в первую половину регистра 18 адреса номера фрагмента, присутствующего на информационных входах 39 устройства (фиг. 10,в), после чего производится чтение информации в блоке 19 памяти по адресу регистра 18 задним фронтом задержанного сигнала ВЫВОД (фиг. 10,г). В данном случае информация на выходе блока 19 памяти равна "0", так как фрагмента с номером

"00" в матрице нет (фиг. 6). Поскольку коды регистра 1 адреса и счетчика

3 адреса не совпадают, на выходе блока 2 сравнения присутствует сигнал "1", разрешающий, работу элемента

И 26 по второму входу. Сигнал ВЫВОД передним фронтом через элементы И 26 и ИЛИ 22 запишет "1" в счетчик 10

1539785 ошибок, сигнал "0" с инверсного выхода первого разряда которого запретит работу элемента И 29, что не позволит пройти заднему фронту сигнала .

СИА на счетный вход счетчика 3 адреса, который остался в состоянии

"012". На этом выполнение команды 55 заканчивается.

Выполняется следующая команда 56 °

При этом передним фронтом сигнала

СИА в регистр 1 адреса с информационных входов 39 устройства заносится код счетчика команд ЭВМ, равный "012", D-триггер 12 устанавливается в "О".

Совпадение кодов регистра 1 адреса и счетчика 3 адреса приводит к сбросу в "О" счетчика 10 ошибок сигналом

ВВОД через элемент И 27 и добавлению

l в счетчик 3 адреса по заднему фрон- 2р ту сигнала СИА через элемент И 29, после чего его код равен "014".

В дальнейшем выполняются последующие команды фрагмента 61. Счетчик

10 накапливает единицы в случаях несовпадения адреса в канале ЭВМ и кода в счетчике 3 адреса, что происходит при обращении процессора по произвольному адресу для получения операнда или к внешнему устройству. 3{j

А в случае совпадения указанных адресов, что происходит по.крайней мере всегда при выполнении процессором операции по выборке команды., с которой начинается выполнение любой команды, счетчик 10 ошибок сбрасывается в "О". Если нарушается ход выполнения программы, то коды счетчика команд ЭВМ и счетчика 3 адресов не совпадают, счетчик 10 ошибок переполня- 4р ется, и сигнал с его выхода переноса через элемент И 38 поступает на первый выход 43 сбоя устройства, сигнализируя об ошибке в ходе выполнения команд. 45

Выполнение фрагмента 62. Например, после выполнения команды 57 фрагмента 61 в результате условного перехода процессор переходит к выполнению фрагмента 62 (фиг. 5). В этом 50 случае происходит выполнение команд

54 и 55 аналогично описанному для фрагмента 61, но с учетом других кодов счетчика команд 3ВМ. При этом во время выполнения операции команды

55 вывода информации в ВУ2 номер фрагмента 61 переписывается с первой половины регистра 18 во вторую, а в первую половину записывается номер фрагмента 62. По заднему фронту за-! держанного сигнала ВЫВОД производит- ся чтение блока 19 памяти. B бите, определемом адресом 6162, находится признак "0", поэтому сигнала ошибки на выходе блока 19 не будет. Если же переход программы произойдет оши— бочно от фрагмента 6! к какому либо другому фрагменту, например к фрагменту 03, тогда при чтении информации с блока 19 памяти по адресу 6103 на втором выходе 44 сбоя устройства появится сигнал "1", сигнализирующий-.об ошибке в ходе выполнения фрагментов проrpаммы.

Выполнение фрагмента 63.

Фрагмент 63 представляет собой, например, программу обслуживания внешнего устройства, вызвавшего прерывание, т.е. программу обработки прерывания. Например, при выполнении команды 56 фрагмента 62 произошло прерывание программы (фиг. 5). При этом, процессор заканчивает выполнение команды 56, код счетчика команд

ЭВМ и код счетчика 3 адреса становят.ся равными "044". Затем в результате ,. выполнения операций по прерыванию программы код счетчика команд ЭВМ становится равным адресу первой команды программы прерывания (в данном примере "100") и выполняется первая команда 54 фрагмента 63 аналогично описанной для фрагмента 61. Содержимое счетчика 3 адреса заносится в блок 7. Значение кода счетчика команд ЭВМ, увеличенное на 4 ("104"), заносится в счетчик 3 адреса. Из-за несовпадения кодов регистра 1 адреса и счетчика 3 адреса увеличение содержимого последнего не происходит.Следующая команда 55 выполняется аналогично описанной для фрагмента 61, но при выполнении последней операции вывода (код счетчика команд ЭВМ равен "112", см. фиг., 8) имеются следующие отличия. В первом разряде (поле 69, фиг. 9) находится признак

fI 1 II признак программы прерывания, поэтому выборки из блока 7 сигналов

ВЫВОД не происходит, поскольку, элемент И 37 закрыт по четвертому входу сигналом с первого разряда информационных входов 39 устройства.

По переднему фронту сигнала ВЫВОД в счетчик 16 прерываний через открытый элемент И 24 заносится "1", в связи с чем на выходе элемента И 34 при539785 16

15 1 сутствует сигнал 0", запрещающий работу элементов И 33 и 35, поэтому содержимое регистра 18 не меняется.

Таким образом, в вершине блока 7 находится адрес команды, к выполнению которой процессор должен возвратиться после выполнения программы обработки прерываний, а в регистре 18 сохраняется код 6162.

Выполнение фрагмента 64.

Фрагмент 64 представляет собой, например, программу обслуживания другого внешнего устройства с высшим приоритетом, вызвавшего прерывание.

Например, при выполнении команды 56 фрагмента 63 произошло последующее прерывание программы. В этом случае после выполнения команды 56 процессор переходит к выполнению первой команды фрагмента 64 (фиг. 5). Выпол некие команд 54 и 55 происходит аналогично выполнению, описанному для фрагмента 63. При этом содержимое счетчика 3 адреса, равное "114", заносится в вершину блока 7. За адресом "114" расположен записанный ранее в блок 7 адрес "044". После занесения в счетчик 16 прерываний "1", содержимое его стало равным "2". В регистре 18 адреса сохраняется код

6162. Продолжается выполнение следующих команд фрагмента с контролем хода выполнения, команд. После выполнения фрагмента 64 происходит возврат к прерванной программе.

Возврат из прерывания (фрагмент

64) происходит следующим образом.

При выполнении последней команды

65 возврата из прерывания в счетчик команд ЭВМ )заносится адрес "114", с которого продолжается выполнение фрагмента 63. По переднему фронту сигнала СИА в регистр I адреса заносится адрес "114", который совпадает в адресом, находящимся в вершине блока 7 (фиг. 8), В результате совпадения указанных адресов на выходе блока 8 сравнения появляется сигнал

"1", разрешающий по первым входам работу элементов И 31 и 32 и по вторым входам работу элементов И группы 5. Передним фронтом сигнала ВВОД через элемент И 31 производится вычитание "1" со счетчика 16 прерываний.

Сигналом ВВОД, поступающим через элементы И 31 и ИЛИ 23 на управляющий вход счетчика 3 адреса, производится запись в него содержимого

15 го

55 ("114") регистра 1 адреса через группу 5 элементов И и группу 4 элементов ИЛИ. В результате равенства кодов регистра 1 адреса и счетчика 3 адреса на выходе блока 2 сравнения присутствует сигнал "1", разрешающий сброс сигналом ВВОД счетчика 10 ошибок. По заднему фронту сигнала

ВВОД, поступающему через элементы

И 32 и ИЛИ 21 на управляющий вход вы.борки блока 7, производится операция выборки, после которой в вершине блока 7 находится адрес "044". Регистр

18 адреса своего состояния не меняет, так как закрыты элементы И 33 и

35 по третьим входам сигналом "0", поступающим с выхода D-триггера 12 (обращения к дешифратору 15 не происходит) и по вторым входам сигналом

"0" с выхода элемента И 34 (счетчик

16 прерываний имеет не нулевое состояние). Продолжается выполнение фрагмента 63 с контролем последователь- ности выполняемых команд.

В случае обращения программы обработки прерывания (фрагмент 63) к какому-либо другому фрагменту программы, например к фрагменту 61, будут. выполняться команДы 54 и 55.

Выполнение их будет происходить аналогично описанному для фрагмента 61, но состояние регистра 18 при этом изменяться не будет, поскольку элементы И 33 и 35 закрыты по вторым входам сигналом "0" с выхода элемента И 35 (счетчик 16 находится в состоянии "1"). При выполнении команды

54 в блок 7 произойдет занесение соответствующего адреса, однако при выполнении команды 55 выполнится операция выборки, поскольку отсутствие признака "1" в 1р константы С для фрагмента 61 разрешит работу элемента И 37, блок 7 вернется в прежнее состояние.

По завершении работы программы обработки прерывания(фрагмент 63) выполняется команда 65 возврата из прерывания. При этом в счетчик команд ЭВМ заносится адрес "044", который .совпадает с адресом, находя-. щимся в вершине блока 7. В дальнейшем работа устройства происходит аналогично опйсанной при возврате из прерывания (фрагмент 64, фиг ° 8) °

При этом в счетчик 3 адреса заносится адрес "044" из блока 7, который устанавливается в "О". Счетчик 16

l7! 539785

25, 30 прерываний после вычитания единицы также устанавливается в "0". После выхода из прерывания и выполнения команды 57 фрагмента 62 (счетчик команд ЭВМ в состоянии "044" ) происходит дальнейшее выполнение команд фрагмента 62 с контролем хода выполнения программы.

Сигналы, появляющиеся на первом

43 и втором 44 выходах сбоя устройства,сигнализируют о нарушении хода выполнения соответственно команд и фрагментов программы, -Указанные сигналы можно использовать для принятия соответствующих мер, например, для останова ЭВМ и автоматического перезапуска программы с ее начала или с какого-либо фрагмента. В некоторых случаях, например для отдельных участков фрагментов или для каких-либо фрагментов, контроль хода программы производить не требуется. Для этого необходимо выполнить команду 55 со значением признака контроля во втором разряде константы С, равным "0" (фиг. 8). При этом D-триггер 13 по переднему фронту сигнала ВЫВОД устанавливается в состояние "0" и запрещает прохождение сигналов ошибок через элементы И 38 и 36 на выходы 43 и 44 сбоя устройства соответственно.

На время действия сигнала ВЫВОД работа элементов И 33, 35 и 37 блокируется сигналом "0" с второго разряда информационных входов 39 устройства, поэтому состояние регистра 18 адреса и блока 7 не меняется. Для

"включения" контроля необходимо выполнить команды 54 и 55 с признаком контроля во втором разряде константы С, равным "1". Выполнение команд

54 и 55 не нарушает работоспособности устройства и ЭВМ, поэтому их можно выполнять в любом месте фрагментов программы.

Блок 7 (фиг. 2) работает следующим образом.

Счетчик 45 адреса в исходном состоянии находится в нулевом состоянии.

При поступлении на управляющий вход занесения блока 7 сигнала производится добавление единицы в счетчик 45 адреса и разрешение занесения информации с информационных входов че- . рез группу 47 элементов И и группу

48 элементов ИЛИ в регистр 49. Сигналом с выхода элемента 50 задержки, поступающим на вход записи накопите35

55 ля, производится запись в него информации, присутствующей на информационных входах, Сигнал с выхода элемента 50, поступая через элемснт ИЛИ

52 на управляющий вход регистра 49, записывает также указанную информацию в регистр 49. При поступлении на управляющий вход выборки блока 7 сигнала производится вычитание единицы со счетчика 45 адреса, этим же сигналом, задержанным элементом 51 задержки, производится операция чтения информации с накопителя 46. Задним фронтом сигнала поступающего ка управляющий вход выборки, через элемент ИЛИ 52 производится занесение считанной с накопителя 46 информации через группу 48 элементов ИЛИ в регистр 49.

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

ЭВМ, с учетом прерываний, с помощью контроля состояний счетчика команд

ЭВМ и таблицы разрешенной очередности фрагментов, что обеспечивает надежность и эффективный контроль работоспособности ЭВМ.

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

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

ИЛИ соединен с входом элемента задержки, выход первого элемента И вЂ” с входом суммирования счетчика прерываний, о т л и ч а ю щ е е с я тем, что, с целью повышения глубины контроля программ, в устройство введены второй дешифратор, блок стеконой памяти, первый и второй блоки сравнения, второй регистр адреса, первый, 19

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

10 вход устройства соединен с первыми

i входами элементов И второй группы, выход второго элемента ИЛИ вЂ” с входом чтения блока стековой памяти, выход которого соединен с вторым входом второго блока сравнения, входы ввода и вывода устройства соединены соответственно с первым и вторым входами первого элемента ИЛИ, выход ко15 торого соединен с. первыми входами

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

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

35 входом второго триггера, выход кото40 рого соединен с вторыми входами первого и второго элементов И, с первым входом десятого элемента И, выход которого соединен с первым входом записи первого регистра адреса, выходы счетчика прерываний соединены с входами одиннадцатого элемента И, выход которого соединен с вторым входом десятого и первым входом двенад45 цатого элементов И, выход которого

50 соединен с вторым входом записи первого регистра адреса, выход которого соединен с вторым информационным входом первого регистра адреса, выход элемента задержки соединен с вторым входом двенадцатого элемента И и с ( входом обращения блока памяти, выход которого соединен с первым входом тринадцатого элемента И, выход перво55 ментов И и с вторыми входами элементов10 го элемента ИЛИ соединен с первым входом четырнадцатого, с третьим входом десятого, с вторыми входами восьмого и девятого элементов И, выход второго элемента И вЂ” с тактовым входом третьего триггера, выход которого соединен с первым входом пятнадцатого и вторым входом тринадцатого элементов И, выходы которых являются соответственно первым и вторым выходами сбоя устройства, выход первого дешифратора соединен с вторым входом седьмого элемента И и информационным входом первого триггера, выход которого соединен с вторым входом пятого элемента И и вторыми входами элементов И второй группы, выходы которых соединены с второй группой входов группы элементов ИЛИ, выходы которых соединены с информационными входами счетчика адреса, выход пятого элемента И соединен с вторым входом третьего элемента ИЛИ, выход которого соединен с входом записи счетчика адреса, информационный выход которого соединен с вторым входом первого блока сравнения и информационным входом блока стековой памяти, выход равенства первого блока срАвнения соединен с вторыми входами третьего и четвертого элементов И, выходы которых соединены соответственно с первым входом четвертого элемента

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

1539785

Ф) Bgo8

2). B6ido8 цатого элементов И и с информационным входом третьего триггера.

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

ИЛИ, выход первого элемента .задержки соединен с первым входом элемента

ИЛИ, вход суммирования счетчика адреса — с входом первого элемента задержки .и с вторыми входами элементов

И группы, а вход вычитания счетчика адреса — с входом второго элемента задержки и с вторым входом элемента

ИЛИ, входы первого и второго элементов задержки, информационные входы блока памяти и выходы регистра являются соответственно входом занесения блока, входом чтения блока, информационными входами и выходами блока.

1539785

1539785

Фроменп Ю1

1539785

ФРаМенв б4

Ь 6 иг. Д

ЙОННЫЮ О

Яюдорка из

g стет 7 д

Лжив I 1f, g 1- N пОАОЗУЙ0

Составитель Сигалов

Редактор А.Лежнина Техред М.Ходанич Корректор В. Кабаций > .Заказ 220 Тираж 555 Подписное

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

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

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

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

 

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

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

Изобретение относится к вычислительной технике

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

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

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

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

Изобретение относится к вычислительной технике, в частности к проектированию устройств для контроля и защиты от сбоев в управляющих ЭВМ

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

Изобретение относится к автоматике и вычислительной технике

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

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

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

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

Изобретение относится к вычислительной технике и может быть использовано при построении управляющих вычислительных машин (УВМ), нечувствительных к сбоям программ

Изобретение относится к вычислительной технике и может быть использовано в управляющих вычислительных машинах (УВМ), например в системах управления газотурбинного двигателя

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

Изобретение относится к вычислительной технике и может быть использовано в управляющих вычислительных машинах (УВМ)

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