Изобретение относится к вычислительной технике и может быть использовано для контроля хода выполнения программ ЭВМ, работающих в реальном масштабе времени.
Цель изобретения - упрощение устройства.
На фиг.1 представлена структурная схема устройства для контроля хода программы; на фиг. 2 - схема формирователя импульсов; на фиг.З - схема ключа; на фиг.4 - диаграммы сигналов ЭВМ с общей шиной: а - диаграмма сигналов информационных шин контролируемого канала, б - диаграмма тактового сигнала СИА, в, г - диаграммы сигналов соответственно ввода и вывода; на фиг.З - таблица команд с разбивкой по операциям; на фиг.6 пример программы; на фиг.7 - один
из фрагментов программы; на фиг.8-10- временные диаграммы работы устройства при выполнении команд соответственно Kl, K2 и КЗ.
Устройство для контроля хода программ содержит первый 1 и второй 2 дешифраторы, первый 3, второй 4, третий 5 и четвертый 6 триггеры, счетчик 7 адреса, первый 8 и второй 9 блоки элементов И, блок 10 элементов ИЛИ, накапливающий сумматор 11, блок 12 сравнения, регистр 13 адреса, элемент ИЛИ 14, первый 15 и второй 16 формирователи импульсов, ключ 17, элемент НЕ 18 и шесть элементов И 19-24. На фиг.1 обозначены также группа информационных входов 25, .тактовый вход 26 устройства СИА, вход 27 признака ввода устройства,
о
4ь
сл
CD 0
вход iJH признака вывода устройства и выход 29 сбоя устройства.
Устройство работает следующим образом
Для примера рассмотрим работу уст ройства применительно к ЭВМ с общей шиной. Выполняя программу, ЭВМ выполняет непрерывную последователь ность команд. Выполнение команды начинается с операции по выборке кода команды. Для выполнения любой команды процессору требуется дополнить хотя бы одну операцию обращения к каналу, для некоторых команд требуется выполнить несколько операций. Первой такой операцией для всех команд является ввод кода команды из ячейки памяти ЭВМ, адрес которой определяется счетчиком команд ЭВМ. Все операции обращения к каналу для ввода и вывода данных назовем циклами обращения к каналу. Сигналы, поступающие от процессора в канал, показа) на фиг.4. После дешифрации команды процессор начинает операцию по выборке операндов, инициируя, если это необходимо, в зависимости от кода команды и метода адресации, один или несколько циклов ввода. Далее производится операция по выполнению действия команды и при необходимости вывода результатов команды в память или в регистр внешнего устройства (ВУ) начинается цикл ввода. В некоторых случаях после операции выборки текущей команды процессор может перейти к операции ьыбсрки следующей команды. Поскольку ЭВМ с общей шиной могут выполнять байтовые операции, то при выборке очередного слова из памяти по адресу счетчика команд его содержимое автоматически увеличивается на 2, при этом увеличение содержимого происходит в первую очередь после выборки слова. Новое содержимое счетчика команд является адресом-операции, используемым при выполнении данной команды или адресом следующей команды. При выполнении линейного фрагмента программы, т.е. такого, в котором нет условных или безусловных переходов, содержимое счетчика команд последовательно наращивается на 2, при.этом в канале ЭВМ коды адресов меняются не последовательно, так как при выполнении команд происходит обращение к любым ячейкам памяти в случае ин
0
5
5
0
5
0
5
0
5
дексной, косвенной, относительной адресации или в случае обращения к ВУ Аппаратный доступ к счетчику команд ЭВМ отсутствует, доступ возможен только к каналу ЭВМ, а доступ к содержимому счетчика команд возможен только программный.
На фиг.5 в таблице представлены для примера некоторые команда с разбивкой по операциям. Команда KI (MOV, CK, СЧ) определяет вывод значения счетчика команд (СК) в счетчик 7 адреса (СЧ) устройства и состоит из трех циклов обращения к каналу: ввод кода команды К1 из памяти ЭВМ по адресу 002; ввод .адреса счет- чика 7 адреса из памяти по адресу 004 и вывод значения счетчика команд ЭВМ в счетчик 7 адреса по адресу XXI, где XX - произвольное значение кода, определяемое присвоенным счетчику 7 адресом. Команда К2 (MOV-KC.Z) определяет вывод константы (с) в сумматор 11 устройства и состоит из четырех циклов обращения к каналу: ввод кода команды К2 из памяти ЭВМ по адресу 006; ввод константы (С) из памяти по адресу 010; ввод адреса сумматора 11 из памяти по адресу 012 и вывода значения константы (С) в сум матор 11 по адресу ХХ2, определяемому присвоенным сумматору 1 1 адресом. Команда КЗ (MOV КС, РГ) определяет вывод константы контрольной суммы (КС) в регистр 13 устройства и состоит из четырех циклов обращения к каналу, аналогичных описанным, команда условного перехода (КУП), находится в памяти ЭВМ по адресу П6.
I
В процессе выполнения ЭВМ программы производится выполнение команд, следующих последовательно, или происходит переход по новому адресу по командам условного и безусловного переходов и по прерываниям от ВУ. На фиг.6 показана программа, состоящая из нескольких фрагментов, нумерация которых показана в кружках, при этом фрагменты, сходящиеся в одной точке, имеют одинаковые номера. Ромбами показаны команды условного перехода, длинными черточками - команды К1, К2, КЗ, короткими черточками - команды программы. Цифры со знаками + обозначают значение константы (С), которое содержат команды К2. На показан один из фрагментов программы, в кото
ром показаны места расположения команд К1 , К2, КЗ и КУП.
Способом контроля хода выполнения программы является контроль в конце каждого фрагмента состояния счетчика команд ЭВМ с помощью счетчика 7 устройства, а также контроль номера каждого фрагмента, представляющего собой контрольную сумму (КС) которую содержит команда КЗ. Для получения ожидаемого значения КС фрагмента в сумматор 11 устройства вводится с помощью команды К1 константа (С), определяемая заранее для каждого фрагмента.
Подготовка устройства к работе заключается в нумерации всех фрагментов программы и в определении значении констант (С) для каждого
фрагмента с условием, чтобы предыдущее значение сумматора 11, сложенное со значением константы С, давало в результате номер фрагмента (значение КС). Команда KI записывается первой в фрагменте, за ней - команда К2, в конце фрагмента - команда КЗ (фиг.7).
Работа устройства начинается с начальной установки в О триггеров 3-5 и сумматора 11 (цепи установки в О на фиг. 1 не показаны). Сигналом начальной установки может быть, например, сигнал начальной установки всех устройств, подключенных к кана- лу, вырабатываемый процессором при включении питания ЭВМ. Первой выполняемой командой фрагмента 5 (фиг.6) является команда К1, которая заносит значение счетчика команд ЭВМ в счет- чик 7 устройства. При выполнении цикла 002 (фиг.5) в процессор заносится из памяти код команды, затем выполняется цикл 004, во время которого в процессор из памяти ЭВМ зано- сится адрес счетчика 7, определенный заранее. По переднему фронту сигнала СИА срабатывает формирователь 16 (фиг.8а) и через элемент И 24, открытый по первому входу высоким уровнем от инверсного выхода триггера 4, подтверждает состояние О триггера 3 или устанавливает его в О. По переднему фронту сигнала СИА заносится также в регистр 13 значение адреса 004, присутствующего в канале. После этого в канале устанавливается адрес XXI счетчика 7 (фиг.86), который дешифруется дешифратором 1; по передне5
5
0
0 0 5 0 5
му фронту сигнала СИА триггер 3 устанавливается в 1 в регистр 13 заносится адрес XXI. Передним фронтом сигнала вывода адрес 006 счетчика команд ЭВМ заносится в счетчик 7. На этом выполнение команды К1 закант чивается.
Следующей выполняется команда К2. На информационных входах 25 появляется адрес 006 (фиг.вв), передний фронт сигнала СИА сбрасывает триггер 3 в О и заносит в регистр 13 адрес 006, после чего вследствие равенства содержимого счетчика 7 и регистра 13 на выходе блока 12 сравнения появляется сигнал 1, поступающий на первый вход элемента И 22. Информация со счетчика 7 поступает через блок 8 элементов И и через блок 10 элементов ИЛИ на входы блока 12 сравнения. На управляющем входе блока 8 элемента И присутствует высокий уровень с выхода элемента НЕ 18, поскольку на выходе элемента И 21 - низкий уровень, так как на его первом входе присутствует низкий уровень с прямого выхода триггера 5. Передним фронтом сигнала СИА триггер 3 сбрасывается в О, а передним фронтом сигнал ввода через элемент И 22 в счетчик 7 по счетному входу заносится 1 и устанавливается в 1 триггер 6, после чего значение счетчика 7 становится равным 010. Поскольку учитываются только четные значения счетчика 7, младший разряд в регистр 13 с группы информационных входов 25 не принимается, и, следовательно, не сравнивается в блоке 12 сравнения. Цикл 010 (фиг.8г) выполняется аналогично описанному циклу 006, при этом триггер 6 сбрасывается в О импульсом формирователя 16 от переднего фронта сигнала СИА, а затем устанавливается в 1 сигналом с выхода элемента И 22, в счетчик 7 также заносится 1, его содержимое становится равным 012. Цикл 012 (фиг.9а) выполняется аналогично циклу 010. После выполнения цикла 012 на группе информационных входах 25 появляется адрес ХХ2 (фиг.96), определяемый адресом сумматора И, дешифруется дешифратором 2, после чего по переднему фрон ту сигнала СИА триггер 4 устанавливается в 1, в регистр 13 заносит ся значение ХХ2. Передним фронтом сигнала вывода через открытые эле-
менты И 20 и 23 в сумматор заносится значение константы С для выполняемо го фрагмента и. суммируется с предыдущей КС, в результате чего содержи- мое сумматора 11 равно КС (номеру) выполняемого фрагмента Задний фронт сигнала вывода через открытый элемент И 20 устанавливает по счетно- му входу в 1 триггер 5. На этом
выполнение команды К2 заканчивается. При выполнении цикла 014 следующей команды программы (фнг.Зв) триггер 4 сбрасывается в О, в регистр 13 заносится значение 014, которое срав- нивается с содержимым счетчика 7, и .т.д. аналогично описанному. В дальнейшем производится выполнение последовательных команд фрагмента программы, счетчик 7 при этом увеличи- вает последовательно свое содержимое на единицу.
Последней командой выполняемого фрагмента является команда КЗ. Циклы ПО, 112, 114 выполняются аналогично описанным циклам 006, 010, 012 для команды К2. При сравнении одинаковых (114) значений счетчика 7 и регистра 13 по-переднему фронту сигнала ввода в счетчик 7 заносится единица и ус- танавливается в 1 триггер 6. При условии последовательного выполнения всех команд какого-либо фрагмента счетчик 7, последовательно наращивая свое содержимое, в конце фрагмен- та соответствует счетчику команд ЭВМ по содержимому. В случае пропуска каких-либо команд или перехода программы в результате сбоя на другой фрагмент содержимое счетчика 7 и
счетчика команд ЭВМ различно, сравнения не происходит и триггер 6 при выполнении команда КЗ (в данном примере цикл 114) в 1 не устаналива- ется.
При появлении на группе информа- ционных входов 25 адреса ХХ2 (фиг.Ю значение адреса заносится в регистр 13, кроме того, адрес ХХ2 дешифрует- ся дешифратором 2, поэтому передним фронтом сигнала СИА триггер 4 устанавливается в I. Сигналом с формирователя 16 триггер 6 в О не сбрасывается, так как элемент И 24 закры по второму входу низким уровнем с инверсного выхода триггера 4. Передним фронтом сигнала вывода через открытые Элементы И 20 и 21 и элемент
ИЛИ 14 в регистр 13 заносится значение КС выполняемого фрагмента, а также запускается формирователь 15. Сигнал вывода, поступая через открытые элементы И 20 и 21 на управляющий вход блока 9 элементов И, подключает выход сумматора I1, содержимым которого является значение контрольной суммы выполняемого фрагмента, через блок 10 элементов ИЛИ к второй группе входов блока 12 сравнения. Блок 8 элементов И блокируется элементом НЕ 18. В результате сравнения значений регистра 13 и сумматора 11 на выходе блока 12 сравнения присутствует высокий уровень, поступающий на первый управляющий вход ключа на втором управляющем входе которого присутствует высокий уровень с прямого выхода триггера 6. Сигнал с выхода формирователя 15 через ключ 17 не проходит, и на выходе 29 устройства сигнал ошибки отсутствует. Задним фронтом сигнала вывод через открытый элемент И 20 триггер 5 по счетному входу сбрасывается в О. Выполнение команды КЗ и контроля фрагмента программы заканчивается.
Таким образом, в случае пропуска команд или перехода программы с одного фрагмента на другой к моменту сравнения контрольных сумм регистра 13 и сумматора 11 триггер 6 находится в состоянии О, что приводит к открытому состоянию ключа по второму информационному входу. Если фрагмент выполняется правильно, но в результате сбоя при выполнении команды условного перехода программы переходит на другой фрагмент неразрешенной последовательности, то происходит не- сравнение контрольных сумм сумматора 11 и регистра 13; ключ 17 открыт по первому информационному входу. Возможен вариант, когда к моменту сравнения на обоих информационных входах ключа 17 присутствуют низкие уровни. Во всех перечисленных случаях сигнал с выхода формирователя 15 через ключ 17 поступает на выход 29 .устройства, сигнализируя о сбое в ходе выполнения программы.
Если во время выполнения фрагмент программы происходит прерывание основной программы и ЭВМ начинает выполнение программы обслуживания прерывания, состояние устройства не изменяется и при возврате ЭВМ к прерван-
ному фрагменту продолжается нормальная работа устройства
Возможен также контроль фрагментов программы обслуживания прерывания В этом случае в фрагмент программы необходимо записать команды Kl, К2, КЗ и, кроме того, в начале программы (до команд К1, К2, КЗ) произвести занесение в стек содержимого ЭВМ, счет- чика 7 и сумматора 11, а при выходе из программы восстановить из стека их содержимое.
Таким образом, устройство позволяет при сравнительно малых аппара- турных затратах эффективно проводить контроль выполнения программы.
Формула изобретения
Устройство для контроля хода программ, содержащее первый и второй дешифраторы, регистр адреса, блок сравнения, первый и второй блоки элементов И, блок элементов ИЛИ, три триггера, шесть элементов И и элемент ИЛИ, причем группа информационных входов устройства соединена с группами информационных входов первого и второго дешифраторов и труп- пой входов регистра адреса, группа выходов которого соединена с первой группой входов блока сравнения, выходы первого и второго дешифраторов соединены с информационными входами соответственно первого и второго триггеров, прямые выходы которых соединены с первыми входами соответственно первого и второго элементов И, вход признака вывода устрой- ства соединен с вторыми входами первого и второго элементов И, тактовый вход устройства соединен с тактовыми входами первого и второго триггеров, выход второго элемента И соединен с тактовым входом третьего триггера, прямой выход которого соединен с первым входом третьего элемента И, группы выходов первого и второго блоков элементов И соединены соответственно с первой и второй группами входом блока элементов ИЛИ, выход четвертого элемента И соединен со счетным входом счетчика адреса, отличающееся тем,
10
5
0
5 0 5 0 5 0 5
что, с целью упрощения, оно содержит накапливающий сумматор, четвертьо триггер, первый и второй формирователи импульсов, элемент НЕ и ключ, причем выход первого элемента И соединен с входом записи счетчика адреса, выход которого соединен с группой информационных входов первого блока элементов И, группа информационных входов устройства соединена с группами информационных входов счетчика адреса и накапливающего сумматора, группа выходов которого соединена с группой информационных входов второго блока элементов И, вход признака ввода устройства соединен с первым входом четвертого элемента И, выход которого соединен с единичным входом четвертого триггера, выход второго элемента И соединен с первым входом пятого элемента И с вторым входом третьего элемента И, выход которого соединен непосредственно с управляющим входом второго блока элементов И, с первым входом элемента ИЛИ и через элемент НЕ и первый формирователь импульсов соответственно с управляющим входом блока элементов И и управляющим входом ключа, группа выходов блока элементов ИЛИ соединена с второй группой входов блока сравнения, выход равенства которого соединен с вторым входом четвертого элемента И и первым информационным входом ключа, тактовый вход устройства соединен с вторым входом элемента ИЛИ и через второй формирователь импульсов с первым входом шестого элемента И, выход которого соединен с нулевым входом четвертого триггера, прямой выход которого соединен с вторым информационным входом ключа, выход которого является выходом сбоя устройства, инверсный выход второго триггера соединен с вторым входом шестого элемента И, инверсный выход третьего триггера соединен с информационным входом третьего триггера и с вторым входом пятого элемента И, выход которого соединен с входом записи накапливающего сумматора, выход элемента ИЛИ соединен с входом записи регистра адреса.
28 26
3feJ
19
Ч
н
название | год | авторы | номер документа |
---|---|---|---|
Устройство для контроля хода программ | 1988 |
|
SU1539785A1 |
Цифровая электронная вычислительная машина последовательного действия | 1976 |
|
SU658564A2 |
Цифровая электронная вычислительная машина последовательного действия | 1975 |
|
SU532295A1 |
Устройство для контроля управляющей ЭВМ | 1988 |
|
SU1619280A1 |
Устройство для контроля памяти | 1983 |
|
SU1280459A1 |
Устройство для отладки микроЭВМ | 1985 |
|
SU1410708A1 |
Пульсотахометр | 1985 |
|
SU1250244A1 |
Устройство для обработки видеоинформации | 1988 |
|
SU1640714A1 |
Устройство для контроля хода программы | 1983 |
|
SU1236487A1 |
Устройство для подключения устройств ввода-вывода к многосегментной магистрали | 1987 |
|
SU1564638A2 |
Изобретение относится к вычис- лительной технике и может быть использовано для контроля хода выпол- нения программ ЭВМ, работающих в реальном масштабе времени. Цель изобретения - упрощение устройства. Устройство содержит два дешифратора, четыре триггера, счетчик адреса, два блока элементов И, блок элементов ИЛИ, накапливающий сумматор, блок сравнения, регистр адреса, элемент ИЛИ, два формирователя импульсов, ключ, элемент НЕ и шесть элементов И. Устройство позволяет осуществлять контроль последовательности прохождения Фрагментов программы с помощью контрольной суммы фрагментов, вычисляемой накапливающим сумматором. 10 ил.
/ 7 f
Ж
8
Ы18
ҐЦ
WW
н
I ie
С
-и
П
У V
Фаг.1
Ј
н
0tf&2
Фиг. 5
Фиг. 6
ФигЛ
Фиг. W
Устройство для контроля хода программы | 1983 |
|
SU1236487A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Устройство для контроля хода программ | 1988 |
|
SU1539785A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Авторы
Даты
1991-04-30—Публикация
1989-02-20—Подача