Устройство для контроля хода программы
Иллюстрации
Показать всеРеферат
Изобретение относится к автоматике и вычислительной технике и может быть использовано для контроля кода программы ЭВМ, работающих в реальном масштабе времени. Целью изоб ретения является расширение функцио4 сх 00 го
союз соеетсних
СОЦИАЛИСТИЧЕСНИХ
РЕСПУБЛИК (l9i (13) (504 О 06 F 11 28
ОПИСАНИЕ ИЗОБРЕТЕНИЙ
Н А ВТОРСНОМУ СВИДЕТЕЛЬСТВУ
ГОсудАРстВенный НОмитет сссР
1 10 ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ (61) 1242967 (2 1) 3975644/24-24 (22) 10. 11. 85 (46) 23.07.87. Бюл. У 27 (72) В.Г. Тоценко, А.В. Александров, Д.В. Ершов, H.Б. Парамонов и Н.M.Pець (53) 68 1.3(088.8) (56) Авторское свидетельство СССР
В 1242967, кл. С 06 F 11/28, 1984. (54) УСТРОИСТВО ДЛЯ КОНТРОЛЯ ХОДА
ПРОГРАММЫ (57) Иэобретение относится к автоматике и вычислительной технике и может быть иснольэовано для контроля кода программы ЭВМ, работающих в реальном масштабе времени. Целью изобретения является расширение функцио1325488 нальных возможностей устройства за счет обеспечения возможности проверки выполнения циклических участков программы с неявно заданным числом повторений цикла. Устройство состоит из счетчиков 1, 7, 13 и 14, элементов И-НЕ
2 и 8, элементов И 3,4,9, 10, 12, 17, 18, 20 и 21, элементов ИЛИ 5 и 22, схемы
6 сравнения, триггеров 11,15 и 16 и генератора 19 одиночных сигналов. Устройство позволяет обнаруживать ошибки следующих типов; несоответствие количества выполненных команд линейного участка программы количеству команд линейного участка; выполнение
Изобретение относится к области вычислительной техники, может быть использовано для контроля хода программы специализированной 3ВМ в АСУ, 5 работающих в реальном масштабе времени, и является усовершенствованием устройства по авт.св. Р 1242967.
Целью изобретения является расширение функциональных возможностей устройства за счет возможности проверки циклических участков программ с неявно заданным числом повторений цикла.
На фиг. 1 приведена стРУктУрная схема устройства для контроля хода программы; на фиг ° 2 — структура.специальной команды.
Устройство (фиг. 1) содержит первый счетчик 1, первый элемент И-НЕ 2, 20 первый 3 и второй 4 элементы И, первый элемент ИЛИ 5, схему 6 сравнения, второй счетчик 7, второй элемент И-НЕ 8, третий 9 и четвертый 10 элементы И, первый триггер 11, пятый эле- 26 мент И 12, третий 13 и четвертый 14 счетчики, второй 15 и третий 16 триггеры, первый 17 и второй 18 многовходовые элементы И, генератор 19 одиночных импульсов, седьмой 20 и шестой gp
21 элементы И, второй элемент ИЛИ 22.
Управляющий вход записи кода на счетчик 1 является входом 23 устройства, счетный вход счетчика 1 является входом 24 устройства, установочный вход счетчика 1 является входом 25 устройства, единичные выходы счетчика 1 явкоманды условного перехода при отсутствии условий для ее выполнения; неправильная передача управления при выполнении команды перехода; на одну ветвь программы осуществляется переход из двух ветвей программы по разным значениям признака перехода; количество повторении цикла меньше явно заданного; зацикливание программы; несоответствие числа выполненных повторений цикла для циклов с неявным заданием числа повторений цикла их неявно заданному числу; зациклинивание программы с неявно заданным числом повторений цикла. 2 ил. ляются выходом 26 устройства, второй вход 27 первого элемента И 3 является входом признака конца контроля устройства, второй вход 28 второго элемента И 4 является входом признака контроля перехода, первый 29 и второй
30 входы схемы 6 сравнения являются входами признака перехода и одноразрядного признака условия, выход 31 является выходом неисправности устройства, единичный вход 32 первого триггера 11 является входом признака контроля цикла, вход 33 признака повторений цикла и информационные выходы счетчика 7 являются выходом 34 устройства, информационные входы 35 устройства, вход 36 устройства признака условия перехода, вход 37 устройства признака контроля цикла с неявно заданным числом повторений, информационные выходы 38 и 39 счетчиков 13 и
14 входят в группу информационных выходов устройства.
Специальная команда (фиг. 23 включает поле 40, в котором записывается код команды, одноразрядное поле 41, в которое записывается " 1", если необходимо контролировать правильность условного перехода на участок программы, который начинается этой специальной командой, и "0", если правильность условного перехода не контролируется, одноразрядное поле 42, в котором записывается значение признака условного перехода, по которому на участок программы должен осуществить5488
15
25
50
55 з 132 ся переход, одноразрядное поле 43 признака контроля цикла, в которое записывается "1", если необходимо контролировать правильность выполнения циклического участка программы, который начинается специальной командой, и "0", если правильность выполнения цикла не контролируется, поле 44, в которое записывается число команд, подлежащих выполнению на участке программы, ограниченном специальной командой и первой, встретившейся после нее командой условного перехода или командой останова, поле 45, в которое записывается число повторений цик лического участка программы, одноразрядное поле 46 признака контроля с неявно заданным числом повторений, в которое записывается " 1", если необходимо контролировать правильность выполнения циклического участка программы с неявно заданным числом повторений, который начинается этой командой, и "0", если правильность выполнения цикла не контролируется, поле
47 в которое заносится минимальное число неявно заданных повторений цикла, и поле 48, в которое заносится максимальное число повторений циклического участка программы.
Устройство работает следующим образом.
Если в программе нет команд условных переходов, то заранее можно указать число команд, подлежащих выполнению. В этом случае в начале программы ставится специальная команда, в поле 41 которой записан "0", в поле 44 — число команд, подлежащих выполнению в программе без учета команды останова, в полях 42, 43 и 45 записаны "0". В этом случае устройство контроля хода программы работает следующим образом.
При выполнении специальной команды в устройстве управления ЦВМ производится анализ кода специальной команды. Если в поле 41 специальной команды записан "0", на вход 28 устройства не поступает единичный сигнал признака контроля перехода, элемент
И 4 закрыт и анализ правильности выполнения условного перехода не .производится. На вход 25 устройства поступает управлякщий сигнал занесения кода на счетчик, по которому прямой код числа команд, подлежащих выполнению, записанный в поле 44 специальной команды, преобразовывается. в дополнительный и поступает на счетчик 1. В конце выполнения каждой команды, кроме команды условного перехода и останова, на вход 24 устройства поступает сигнал, по которому содержимое счетчика 1 увеличивается на единицу.
При выполнении команды останова на входе 27 устройства формируется единичный сигнал признака конца контроля. Если ход программы не нарушен, т.е. не пропущена ни одна команда и не выполнено ни одной лишней команды, то все разряды счетчика 1 должны находиться в единичном состоянии. С выхода элемента И-НЕ 2 на вход элемента И 3 поступает нулевой сигнал и на его выходе не формируется единичный сигнал. Если при выполнении программы была пропущена хотя бы одна команда, то к моменту выполнения команды останова не все разряды счетчика 1 находятся в единичном состоянии, на выходе элемента И-НЕ 2 присутствует единичный сигнал. При выполнении команды останова единичный сигнал, поступающий на вход 27 устройства, сфор- мирует на выходе элемента И 3 также единичный сигнал, который поступает на вход элемента ИЛИ 5. На входе элемента ИЛИ 5 формируется единичный сигнал, который поступает на выход
31 устройства и свидетельствует об ошибке в ходе программы. Если при выполнении программы выполнена лишняя команда, то еще до выполнения команды останова на второй вход элемента ИЛИ
5 с выхода переноса из старшего разряда счетчика 1 поступает единичный сигнал и на выходе 31 устройства формируется единичный сигнал.
Если в программе имеются команды условного перехода, то заранее можно указать число команд, выполняемых на участках. программы от начала программы до первой команды условного перехода, между командами условного перехода и от последней ветви программы команды условного перехода до команды останова. Для организации контроля хода программы, первой после каждого разветвления программы, должна выполняться специальная команда. В этом случае при выполнении специальной команды как проверяется правильность выполнения условного перехода, так и задается число команд, подлежащих выполнению на участке программы, до пос1325488 ледующей команды условного перехода или останова. При выполнении команды условного перехода на вход 27 признака конца контроля поступает единичный
5 . сигнал как и при выполнении команды останова.
При выполнении специальной команды участка программы, куда происходит пе редача управления по команде условно- 1О го перехода, при выполнении которой осуществляется контроль правильности перехода, устройство контроля хода программы работает следующим образом.
На вход 28 устройства поступает единичный сигнал, .который открывает элемент И 4. На второй вход элемента
И 4 поступает сигнал с выхода схемы
6 сравнения, на вход 29 которой поступает сигнал признака условного пере-2О хода, сформированный в машине, а на вход 30 поступает сигнал одноразрядного признака с того разряда регистра команд машины, в котором при выполнении специальной команды хранит- 25 ся значение одноразрядного кода, записанного в поле 42. Если условный переход осуществлен правильно, то на входы 29 и 30 устройства поступают .одинаковые сигналы, с выхода схемы 6 на второй вход элемента И 4 поступает нулевой сигнал. Если условный переход осуществлен неправильно, то на входы 29 и 30 устройства поступают разные сигналы, с выхода схемы 6 на
35 второй вход элемента И 4 поступает единичный сигнал и с выхода элемента
И 4 единичный сигнал поступает на третий вход элемента ИЛИ 5. На выходе
31 устройства сформируется единичный сигнал.
При выполнении специальной команды участка программы, на который происходит передача управления по команде условного перехода, устройство работает следующим образом. После дешифрации в устройстве управления ЦВИ кода специальной команды, в поле 41 которой записана "1", на вход 28 устройства контроля хода программы поступает единичный сигнал, который открывает по первому входу элемент И 4.
На второй вход элемента И 4 поступает сигнал с выхода схемы 6 сравнения, на вход 29 которой поступает сигнал ус55 ловного перехода, сформированный в машине.
На вход 30 схемы 6 сравнения поступает сигнал с того разряда регистра команд машины, в котором при вы— полнении специальной команды находится поле 42, где записано эталонное значение сигнала условного перехода.
На выходе схемы 6 сравнения формируется единичный сигнал, если значения сигналов условного перехода не совпадают с эталонным а) Д, и нулевой сигнал, если совпадает, т.е.,если условный переход осуществляется правильно, то на входы 29 и 30 устройства поступают одинаковые сигналы, с выхода схемы 6 на второй вход элемента И
4 поступает нулевой сигнал. Если условный переход осуществлен неправильно, то на входы 29 и 30 устройства поступают разные сигналы и с выхода схемы 6 на второй вход элемента И 4 поступает единичный сигнал. С выхода элемента И 4 единичный сигнал поступает на третий вход элемента ИЛИ 5 и формирует на выходе 3 1 устройства единичный сигнал, свидетельствующий об ошибке в ходе программы.
Если в программе имеются циклические участки и заранее можно указать
1 число повторений цикла, то в этом случае перед циклическим участком ставится специальная команда, в поле
43 которой записана "1", в поле 45 число повторений цикла в дополнительном коде. Первой командой циклического участка ставится специальная команда, в поле 41 которой записана
"0", а в поле 44 — число команд, подлежащих выполнению в циклическом участке без учета команды условного перехода, в полях 42, 43 и 45 записаны
"0". Первой командой участка программы, на который происходит передача управления после выхода из цикла, ставится специальная команда, в поле 41 которой записана "1", в поле 42 записано эталонное значение сигнала условного перехода, а в остальных полях (43, 44 и 45) записаны "0".
В этом случае устройство контроля хода программы работает следующим образом.
При начальных установках цикла в устройстве управления ЦВИ производится анализ кода специальной команды.
Если в поле 43 специальной команды записана " 1", на вход 32 устройства поступает единичный сигнал признака контроля цикла, который устанавливает в единичное состояние триггер 11 и обнуляет все разряды счетчика 7, на
13254 который после этого заносится код из поля 45 специальной команды. При очередном выполнении циклического участка (" тела цикла") в устройстве управления ЦВМ производится анализ кода специальной команды. Так как в поле
4 1 записан "0", на вход 28 устройстяака контроля перехода, элемент И 4
10 закрыт и анализ правильности условного перехода не производится. На вход
25 устройства поступает сигнал, сбрасывающий счетчик 1 в нулевое состояние. На вход 23 устройства поступает управляющий сигнал занесения кода на
15 счетчик, по которому прямой код числа команд, подлежащих выполнению в циклическом участке, записанный в поле
44 специальной команды, преобразует20 ся в дополнительный и поступает на счетчик 1. В конце выполнения каждой команды, кроме команды условного пе,рехода, на вход 24 устройства поступает сигнал, по которому содержимое счетчика 1 увеличивается на единицу.
При выполнении команды условного перехода в начало цикла на входе 33 устройства формируется единичный сигнал условного перехода, который поступает на входы первого 3 и третьего
9 элементов И. Если ход выполнения циклического участка не нарушен, т.е. (не пропущена ни одна команда и не выполнено ни одной лишней команды, то все разряды счетчика 1 должны нахо- .
1 диться в единичном состоянии. С выхода элемента И-НЕ 2 на вход элемента И 3 поступает нулевой сигнал и на его выходе не формируется единичный сигнал.
Если при выполнении циклического
35
40 участка программы была пропущена хотя бы одна команда, то на выходе элемента И-НЕ 2 сформируется единичный сигнал, который сформирует на выходе элемента И 3 также единичный сигнал, который поступает на вход элемента
ИЛИ 5. На выходе элемента ИЛИ 5 формируется единичный сигнал, который поступает на выход 31 устройства и
50 свидетельствует об ошибке в ходе программы. Если при выполнении программы выполнена лишняя команда, то еще до выполнения команды перехода в начало цикла на второй вход элемента ИЛИ 5 с выхода переноса из старшего разряда
55 счетчика 1 поступает единичный сигнал и на выходе 31 устройства формируетва не поступает единичный сигнал приз88 8 ся единичный сигнал ошибки. Единичный сигнал условного перехода с входа 33 поступает на вход элемента И 9, который открыт разрешающим потенциалом с выхода триггера 11. На выходе элемента И 9 формируется сигнал, поступающий на счетный вход счетчика 7, по которому его содержимое увеличивается на единицу.
При выходе из цикла по команде условного перехода в устройстве управления ЦВМ производится анализ специальной команды, выполняемой первой после выхода из цикла. В полях 41 и
42 данной специальной команды записаны " 1™, который в виде единичных сигналов поступают с входов 28 и 30 устройства на первый и второй входы элемента И 12, открытого по первому входу потенциалом выхода триггера 11.
Элемент И 12 срабатывает и выдает на выходе сигнал, устанавливающий в "0"
-триггер 11 и поступающий на вход элемента И 10. Если ход программы не нарушен, т.е. цикл выполнен заданное число раз, то все разряды счетчика 7 должны находиться в единичном состоянии. С выхода элемента И-НЕ 8 на вход элемента И 10 поступает нулевой сигнал и на его выходе не формируется единичный сигнал. Если цикл выполнялся число раз меньше заданного, то при выходе из цикла не все разряды счетчика 7 находятся в единичном состоянии, на выходе элемента И-НЕ 8 присутствует единичный сигнал, который сформирует на вьжоде элемента И 10 также единичный сигнал, который поступает на вход элемента.ИЛИ 5. На выходе элемента ИЛИ 5 формируется еди(ничный сигнал, который поступает на выход 3 1 устройства и свидетельствует об ошибке в ходе программы. Если программа зациклилась, то на второй вход элемента ИЛИ 6 с выхода переноса из старшего разряда счетчика 7 поступает единичный сигнал н на выходе 31 устройства формируется единичный сигнал.
Предлагаемое устройство способно контролировать ход программы и при наличии прерываний. При отработке прерываний содержимое основных регистров машины запоминается в памяти. С выходов 26 и 34 устройства контроля хода программы, соединенных с выходами единичных разрядов соответственно счетчиков 1 и 7, коды, находящиеся на
1325488 10
55 счетчиках, поступают и запоминаются в соответствующих ячейках памяти машины. При возвращении к прерванной программе необходимо восстановить на счетчиках 1 и 7 информацию, которая находится в момент прихода сигнала прерывания. Это делается путем выполнения специальной команды, в полях 44 и 45 которой записаны коды, которые были записаны в память.
Если программа содержит итеративные циклы, для которых число повторе. ния цикла зависит от значений исходных данных, для каждого такого цикла заранее нельзя указать точное число повторений.
В этом случае поступают следующим образом.
Определяются области исходных данных, которые вызывают 1-,2-..., Нкратное повторение цикла. По функциям распределения входных величин вычисляется вероятность попадания исходных . данных в каждую из этих областей. Определяются функции распределения выходных величин при различном числе повторений цикла.
Определяют такое число N 0 повторений цикла, для которого выполняется условие Вер (К) И) <<8, где К вЂ” число повторений цикла; Ю вЂ” наперед заданное положительное число, определяющее допустимую погрешность вычисления функции распределения выходной величины.
Задавая значение доверительной вероятности P попадания входной велиJ чины в интервалы исходных данных, - рассчитывают минимальное И „„„ и максимальное М „, количество повторений цикла для получения результатов с достоверностью о, не меньше заданной, Для контроля хода циклических участков программы с неявно заданным числом повторений цикла перед циклическим участком ставится специальная команда, в поле 46 которой записана
" 1", н поле 47 — минимальное число повторений цикла в дополнительном ко- 50 де, в поле 48 — максимальное число (повторений цикла в обратном коде.
Первой командой циклического участка ставится специальная команда, в поле
41 которой записан "0", в поле 44— число команд, подлежащих выполнению в циклическом участке без учета команды условного перехода, в полях
42, 43, 45, 46, 47 и 48 записаны в
"0". Первой командой участка программы, на которой происходит передача управления после выхода из цикла, ставится специальная команда, в поле
41 которой записана " 1", в поле 42 записано эталонное значение сигнала условного перехода, а н остальных полях (43 — 48) записаны "0".
В этом случае устройство контроля хода программ работает следующим образом.
Перед началом выполнения цикла н устройстве управления ЭВМ производится анализ хода специальной команды.
Если в поле 46 записана " 1", на вход
37 устройства поступает единичный сигнал признака контроля цикла с неявно заданным числом повторений, который устанавливает в единичное состояние триггеры 15 и 16 и обнуляет все разряды счетчиков 13 и 14.
Генератор 19 одиночных импульсов по высокому потенциалу на единичном выходе триггера 15 вырабатывает управляющий сигнал занесения кодов на счетчики, по которому дополнительный код минимального числа повторений цикла, записанный в поле 47 специальной команды, заносится на счетчик
13, а обратный код максимального числа повторений цикла, записанный в поле .48 специальной команды, заносится на счетчик 14.
При выполнении команды условного перехода в начало цикла на входе 33 устройства формируется единичный сигнал условного перехода, который поступает на вход элемента И 21, который открыт разрешающим потенциалом с выхода триггера,15. На выходе элемента И 21 формируется сигнал, поступающий на счетные входы счетчиков 13 и
14, по которому их содержимое увеличивается на единицу.
При выходе из цикла по команде условного перехода в устройстве управления ЭВИ производится анализ специальной.команды, выполняемой первой после выхода из цикла. В поле 4 1 этой команды записана "1", которая в ниде единичного сигнала поступает с входа
36 устройства на вход элемента И 20, второй вход которого управляется потенциалом единичного выхода триггера.
Если число повторений участка программы К7, N„„„, где N „, — минималь5488
I0 IS
30
40
ll 132 ное заданное число повторений, то все разряды счетчика 13 находятся в еди1 1 ничном состоянии, в результате чего многовходовый элемент И 17 срабатывает и формирует на выходе сигнал, устанавливающий в "0" триггер 16> низкий потенциал на выходе которого закрывает шестой элемент И 20, препятствуя тем самым прохождению сигнала условного перехода выхода из цикла, поступающего с входа 36 устройства, Если циклический участок программы выполнится число раз К (И „„, то значение кода счетчика не равно максимальному, в результате чего на выходе многовходового элемента И 17 не вырабатывается сигнал, устанавливающий в нулевое состояние триггер 16, и высокий потенциал на выходе триггера 16 будет держать шестой элемент
И 20 в открытом состоянии. В этом случае при выходе из цикла по команде условного перехода с входа 36 устройства на вход элемента И 20 поступает сигнал контроля цикла с неявно заданным числом повторений, элемент И 20 срабатывает и на выходе вырабатывается сигнал, который, поступая на вход второго элемента ИЛИ 22, сформирует на выходе 31 устройства сигнал ошибки выполнения циклического участка программы с неявно заданным числом повторений. Если число повторений цикла
К )/ И„„и, триггер 16 находится в нулевом состоянии и закрывает низким потенциалом на входе шестой элемент
И 20, препятствуя прохождению через него сигнала условного перехода выхода из цикла и соответственно выработке сигнала ошибки хода программы элементами ИЛИ 22 и 5. Если число повторений циклического участка программы достигнет R = И „, +1, т.е. превысит значение максимально заданного числа на единицу, значение всех разрядов счетчика 14 станет единичным, в результате чего сработает второй многовходовой элемент И 31 и выработает сигнал, который, проходя через второй элемент ИЛИ 22 на вход первого элемента ИЛИ 5, сформирует сигнал ошибки выполнения циклического участка программы.
Формула и з о б р е т е н и я
Устройство для контроля хода программы по авт.св. Ф 1242967, о т л нч а ю щ е е с я тем, что, с целью расширения функциональных возможностей устройства за счет возможности проверки циклических у астков программ с неявно заданным числом повторений цикла, в него введены третий и четвертый счетчики, второй и третий триггеры, генератор одиночных импульсов, первыи и второй многовходовые элементы И, второй элемент ИЛИ, шестой и седьмой элементы И, вход признака контроля цикла устройства соединен с единичными входами второго и третьего триггеров, с входами начальной установки третьего н четвертого счетчиков, прямой выход второго триггера соединен с входом запуска гене-. ратора одиночных импульсов и первым входом шестого элемента И, вход признака повторения цикла устройства соединен с вторым входом шестого элемента И и вторым входом третьего элемента И, выход шестого элемента И соединен со счетными входами третьего и четвертого счетчиков, выход генератора одиночных импульсов соединен с входами записи третьего и четвертого счетчиков, группа информационных входов которых соединена с группой информационных входов устройства, резервные выходы третьего и четвертого счетчиков соединены с входами соответственно первого и второго многовходовых элементов И, выход первого многовходового элемента И соединен с входом установки в "0" третьего триггера, прямой выход которого соединен с первым входом седьмого элемента И, выход которого соединен с первым входом второго элемента ИЛИ, выход второго многовходового элемента И соединен с вторым входом второго элемента ИЛИ, выход которого соединен с пятым входом первого элемента ИЛИ, вход признака условия перехода устройства соединен с вторым входом седьмого элемента И и с входом установки нуля второго триггера, группы разрядных выходов третьего и четвертого счетчиков являются первой и второй группами информационных входов устройства.
1325488 фей Г
Составитель А. Сигалов
Техред Л.Сердюкова Корректор М, Максимишинец
Редактор Л. Гратилло
Заказ 3111/45 Тираж 672 Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб,, д. 4/5
Производственно-полиграфическое предприятие, r,Óærîðoä, ул. Проектная, 4