(54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА ПРОГРАММЫ
название | год | авторы | номер документа |
---|---|---|---|
Устройство для контроля хода программы | 1985 |
|
SU1325488A2 |
Устройство для контроля хода программ | 1984 |
|
SU1242967A2 |
Устройство для отладки программ | 1985 |
|
SU1280636A1 |
Устройство для контроля программ | 1988 |
|
SU1529226A1 |
Микропрограммное устройство с контролем переходов | 1977 |
|
SU711573A1 |
Устройство для контроля хода программ | 1988 |
|
SU1728864A1 |
Устройство для контроля хода программ | 1990 |
|
SU1737455A2 |
Микропрограммное устройство управления с контролем | 1983 |
|
SU1270772A1 |
Устройство для контроля времени выполнения программы | 1985 |
|
SU1298753A1 |
Устройство для контроля хода программ | 1983 |
|
SU1101831A1 |
I
Изобретение относится к вычислитёл ной технике, в частности к устройствам контроля ЦВМ и -может быть испольэова- но для контроля хода программы как в специализированных, так и в универсальных ЦВМ.
Известны устройства контроля хода программы Б ЦВМ, реализующие способы контроля хода программы, основанные на введении избыточной инфор шшга в коа команды Ul .
Однако избыток информахши щяшопит к увеличению разрядкой сетки машины.
Известно устройство контроля хоаа программы, в состав которого входят схема сборси, счетчик, счетчик с ишипь ческим переносом, генератор, схема сравнения, регистр, клапаны. Данное устройство осуществляет контроль хода щмипраммы путем провертси правильности порядка выполнения контролывлх подпрограмм l2J,
Недостатком устройства является не способность обнаруживать сбои в ходе
основной программы, не приводящие к нарушению порядка выполнения контрольных подпрограмм.
Наиболее близким по технической сут№ности к предлагаемому является устройство, содержащее триггер, элемент И и счетчик, и использующееся для контроля безусловных переходов и контроля линейных участков программы (участков, не содержащих команд условных переходов) путем подсчета числа команд, выполненных на участке, ограниченном сверху и снизу специальными ксфдандами двух тяпрв, и .сраъквта выполненного числа команд с заданным. Причем число камааа на каждом контролируем участке долнс но быть равно максимально воа ожному числу, которое можно записать на счегчик ГЗ.
Однако использование специальных команд двух типов и постоянное число команд на контролируемых участках приводит к значительным программным затратам для организации контроля хода прорраммы. Другим недостатком устройства является неспособность контролировать выполнение условных переходов.
Цель изобретения - увеличение коитролируюшей способности устройства.
Поставленная цель достигается тем, что в устройство для контроля хода программы, содержащее счетчик, инфор.ац онные входы которого образуют группу информационных входов устройства, управляющий, счетный и установочный входы счетчика являются, соответственно, первым вторым и третьим управляющими входами устройства, введены первый и второй элементы И, элемент ИЛИ, элемент И-НЕ и схема сравнения, причем инфор 19ционные выходы счетчика соединены со входами элемента И-НЕ и я&ляются группой выходов устройства, выход элемента И-НЕ соединен с первым входом первого элемента И, выход которого соединен с первым входом элемента ИЛИ, выход переполнения счетчика соединен со вторым входом элемента ИЛИ, выход которого является управляющим выходом устройства, выход схемы сравнения соединен с первым входом второго элемента И, выход которого соединен с третьим входом элемента ИЛИ, второй вход первого элемента И является входом признака конца контроля устройства второй вход второго элемента И являетс входом признака контроля перехода, первый и второй входы схемы сравнения являются входами признака перехода и одноразрядного признака условия.
Устройство для контроля хода программы реализует аппаратно-программный способ контроля хода программы, основанный на проверке хода программы на отдельных участках программы к на проверке правильности переходов с одного участка программы на другой. Участки, на которые разбдаается программа начинаются специальной командой.и заканчиваются кс«мандами условного перехода ипн останова. При выполнении специальной команды проверяется правкльвость попадания на участок путем сравнения действительного значения сигнала - признака перехода, сформированного в маш не, по которому был осуществлен переход к выполнению участка, с эталонным эна- ченнем, хранимым в специальнойкоманде. Кроме того, при выполненииспец альноЙ команды задается число команд, цодлезкаошх выполнению на участке-программы. При выполнении участка npoi раммы производится счет числа выполненных команд и сравнение подсчитанного числа команд с заданным. Сигнал ошибки формируется если неправильно осуществлен переход на выполнение участка программы, если число команд, выполненных на участке программы, превысило заданное или меньше заданного. На фиг. 1 приведена функциональная
схема предлагаемого устройства для контроля хода программы;на фиг. 2 структура специальной команды; на фиг.Зструктурная схема программы; на фиг. 4то же, при переходе на одну ветвь прог5 раммы из двух ветвей программ по разным значениям признака перехода.
Устройство для контроля хода программы включает счетчик 1,и элемент И-НЕ2, первый 3 и второй 4 элементы И, эле0 мент 5 ИЛИ и схема 6 сравнения. Причем информационные входы занесения кода на счетчик 1 подключены ко входам устройства, а управляющий вход занесения на счет чик 1 подключен ко входу 7 устройства,
счетный вход счетчика соединен со входом
8устройства, а к управляющему входу сброса счетчика в нуль подключен вход
9устройства, единичньш выходы разрядов счетчика 1 подключены к выходам
10устройства и ко входам элемента И-НЕ 2, выходы которого соединены с одним входом элемента И 3, другой вход которого подключен ко входу 11 устройства, а выход - к первому входу элемента ИЛИ 5, второй вход которого подключен к выходу переноса из старшего разряда счетчика 1, а третий вход - к выходу элемента И 4, первый вход которого соединен со входом 12 устройства, а второй вход соединен с выходом схемы
6 сравнения, первый вход которой подключен ко входу 13 устройства, а второй вход соединен со входом 14 устройства, выход элемента ИЛИ 5 соединен с выходом 15 устройства.
Специальная команда (фиг. 2) включает поле 16, в котором записывается код команды, одноразрядное поле 17, в котором записывается I, если необходимо контролировать правильность условного перехода на участок программы, который начинается этой специальной командой, и О, если правильность условного перехода не контролируется, одноразрядное .поле 18 , в котором записывается значение признака условного перехода, по которому на участок программы до , жен осуществляться переход,поле 19, в котором записывается число кетданя, подлежащих выполнению на участке програм мы, ограниченном специальной командой и первой, встретившейся после нее, командой условного перехода или командой останова, причем специальная команда считается первой.
Если Б программе нет команд условных переходов, то заранее можно указать число команд, подлежащих выполнению. В этом случае в начале программы ставится специальная команда, в поле 17 которой записаны О, а в поле 19 - число команд, подлежащих выполнению в прог рамме, без учета команды останова. В этом случае устройство контроля хода
программы работает следующим образе.
При выполнении специальной команды в устройстве управления машины производится анализ кода специальной команды Если в поле 1 7 специальной команды записан О, на вход 12 устройства не поступает единичный сигнал признака контроля перехода, элемент И 4 закрыт, и анализ правильности выполнения условного перехода не проводится. На вход 9 устройства поступает сигнал, сбрасывающий счетчик 1 в нулевое состояние. На вход 7 устройства поступает управляющий сигнал занесения кода на счетчик, по которому прямой код числа команд, подлежащих выполнению, записанный в поле 19 .специальной команды, преобразовывается в дополнительный и поступает на счетчик 1. В конце выполнения каждой команды, кроме команд условного перехода и .останова, на вход 8 устройства поступает сигнал, по которому содержимое счетчика 1 увеличивается на единицу.
При выполнении команды останова на входе 11 устройства формируется единичныи сигнал признака конца контроля. Если ход щэограммы не нарушен, т.е. не пропущена ни одна команда и не выполнено ни одной лишней команды, то все разряды счетчика 1 должны находиться в единичном состоянии. С выхода элемента И-НЕ 2 на вход элемента И 3 поступает нулевой сигнал и на его выходе не формируется единичный сигнал. Если при выполнении программы была пропущена хотя бы одна команда, то к моменту выпол нения команды останова не все разряды счетчика 1 находятся в единичном состоянии, на выходе элемента И-НЕ 2 присутствует единичный сигнал. При выполнении команды останова единичный сиг нал поступающий на вход 11 устройства, сформирует на выходе элемента И 3 также единичный сигнал, который поступает на вход элемента ИЛИ 5. На выходе элемента ИЛИ 5 формируется единичный сигнал, который поступает на выход 15 устройства и свидетельствует об ошибке в ходе программы. Если при выполнении программы выполнена лишняя команда, то еше до выполнения команды останова па второй вход элемента ИЛИ 5 свыхода переноса из старшего разряда счетчика поступает единичный сигнал, и на выходе 15 устройства формируется единичный сигнал.
Если в программе имеются .команды условных переходов, то заранее можно указать число команд, выполняемых на участках программы от начала программы до первой команды условного перехода, между командами условных переходов и от последней в ветви программы команды условного перехода до команды останова. Для организации контроля хода программ первой, после каждого разветвления программы, должна выполняться команда. В этом случае при выполнении специальной команды как проверяется правильность выполнения условного перехода, так и задается число команд, подлежащих выполнению на участке программы, до следующей команды условного перехода или останова. При выполнении команды условного перехода на вход 11 признака конца контроля поступает единичный сигнал, как и при выпол 1ении команды останова.
При выполнении специальной команды участка программы, куда происходит передача управления по команде условного перехода, при выполнении которой осуществляется контроль правильности перехода, устройство контроля хода программы работает следующим образом.
На вход 12 устройства поступает единичный сигнал, который открывает по одному входу элемент И 4. На второй вход элемента И 4 поступает сигнал с выхода схемы 6 сравнения, на вход 13 которой поступает сигнал признака условного перехода, сформированный в машине, а на вход 14 поступает сигнал одноразрядного -признака с того разряда регистра команд машины, в котором при выполнении специальной команды хранится значение одноразрядного кода, записанного в поле 18. Если условный переход осуществлен правильно, то на входы 13 и 14 устройства поступают одинаковые сигналы, с выхода схемы 6 на второй вход элемента И 4 поступает нулевой сигнал. Если условный переход осуществлен неправильно, то на входы 13 и 14 устройства поступают разные сигналы, с выхода схемы 6 на второй вход элемента И 4 поступает единичный сигнал, и с выхода элемента И 4 единичный сигнал поступает на третий вход элемента ИЛИ 5. На выходе 15 устройства сформируется единичный сигнал. При выполнении специальной команды участка программы, на который прокоходит передача управления по команде условного перехода, устройство работает следующим образом. После дешифрации в устройстве управления машины кода специальной команды. в поле 17 которой записана , на вход 12 устройства контроля хода программы поступает единичный сигнал, который от крывает по первому входу элемента И 4 На второй вход элемета И 4 поступает сигнал с выхода схемы отрицания равнозначности, на вход 13 которой поступает .сигнал условного перехода ( uj ), сформированный в машине. На вход 14 схемы отрицания равнозначности 6 посту пает сиграл с того разряда регистра команд машины, в котором при выполнении сигнальной команды находится поле 18, где записано этало:;ное значение сигнала условного перехода {uJg).Ha выходе схемы отрицания равнозначности формцр -ется единичный сигнал, если Ф , И нулевой сигнал, если --Э Э I т.е., если условный перехо осуществлен правильно, то на входы 13 и 14 устройства поступают одинаковые сигналы, с выхода схемы 6 на второй вхо элемента И 4 поступает нулевой сигнал. Если условный переход осуществлен неправильно, то на входы 13 и 14 устройства поступают разные сигналы и с выхода схемы 6 на второй ход элемента И 4 поступает единичный сигнал. С выхода элемента И 4 единичный сигнал поступает на третий вход элемента ИЛИ 5 и сфор 1ирует на выходе 15 устройства единичный с игнал, свидетельствующий об ошибке в ходе программы. Предлагаемое устройство способно контролировать ход программы и при наличии прерываний. При отработке прерываний содержимое оснотвных регистров ма шины запоминается в памяти. С выходов 10 устройства контроля хода программы, соединенных с выходами единичных разрядов счетчика 1, код, находящийся на счетчике, поступает и запсвминается в од 55
ной из ячеек памяти машины. При возврашённи к прерванной ограмме нео&ходимо восстановить на счетчике 1 инфорн8
нены.
Пусть в ходе программы произошла ошибка типа: переход произошел не на ту 6 мацию, которая находится в момент прихода сигнала прерывания. Это делается путем выполнения специальной команды, в поле 17 которой записан О (не нужно проверять правильность выполнения уоловного перехода), а в поле 19 записан прямой код числа, которое было записано в память. Рассмотрим работу устройства на пр мере обнаружения некоторых типов ош юоК;В ходе программы. Будем считать, что условные переходы выполняются по признаку UJ . Пусть произошла ошибка типа: пер)е- ход произошел, а условия перехода не вь1 рлнились. Структурная схема программы (фиг. 3) включает специальные команды 20,23 и 24, рабочие команды 21 и 25 программы, команда 22 условного перехода по признаку ш , либо команды 26 и 27 условных переходов, либо команды останова. Программа разбита на три участка. Каждый участок начинается специальнойГ командой 20, 23 и 24 и заканчивается либо командами условного перехода, либо командами останова 22,26 и 27. Команда 22 осуществляет передачу управления на участок программ, начинающийся специальной командой 23, если ш 1, и на участок программы, начинающийся командой 24, если wJ 0, В специальной команде 23 в полях 17 и 18 записаны единицы, в специальной команде 24 в поле 17 - 1, в поле 18 . Предположим, что в результате ошибки в ходе программы при значении признака после выполнения команды 22 ошибочно произошла передача управления на участок программы, начинающийся специ- альной командой 24 (переход произошел, а условия перехода не выполнились). В этом случае при выполнении специальной команды 24 на вход 14 устройства поступает нулевой сигнал (), поскольку в команде 24 в поле 18 записан О, а на вход 13 устройства поступает единичный сигнал (). На выходе схемы 6 формируется единичный сигнал, который проходит через открытый по первому входу элемент И 4 и поступает на третий 5, формируя на его выходе сигнал ошибки. Таким образом Предлагаемое устрой;;тво обнаруживает ошибку типа: переход произошел, а условкя перехода не выполкоманду на которую должен был произойти. Предположим, что в машине в реэульггате выполнения операции сформирован нулевой сигнал. При выполнении команды 22 должна произойти передача у№равпения .на специальную команду 24, но из-за ошибок в ходе программы произошла передача управления на одну из рабочих команд 25 (переход произошел не на одну команду, на которую должен был произойти). Поскольку на участке программы от специальной команды 20 до команды условного перехода 22 ошибок в ходе программы не было (иначе при выполне- НИИ команды 22 это было бы зафиксировано), то все разряды счетчика 1 находятся в единичном состоянии. При выполнении одной из рабочих команд 25 на второй вход счетчика 1 поступает ед ничный сигнал. На выходе переноса из старшего разряда счетчика 1 формирует ся единичный сигнал, который поступает на второй вход элемента ИЛИ 5 и формирует на выходе устройства сигнал об ошибке в ходе программы Таким образом предлагаемое устройство обнаруживает ошибки в случае, ког.да переход произошел не на ту команду, на которую должен был произойти. Предлагаемое устройство осуществляет контроль хода программы и для случая, когда на одну ветвь программы осуществляется переход из двух ветвей программ, по разным значениям признака перехода. Структурная схема такой программы (фиг. 4) включает специальные коман ды 28,29,33 и 35, рабочие команды 30 и 36 программы, команды 31 и 32 уоловной передачи управления, команда 34 безусловной передачи управления, команда 37 останова или условной передачи уп равления. Приняты обозначения для ветвей программы: с 28-й по 31-ю команду ветвь К, с 29-й по 32-ю команду -ветв и , с 36-й по 37-ю команду - ветвь j . Из ветви К в ветвь j необходимо попасть при значении признака перехода UJ 0, из ветви Z в ветвь J необходимо псяасть при значении признака перехода . Для контроля правильности усло&ных переходов предлагаемым устройством следует из команды 31 передать управ,ление при (л) °9 в специальную команду 33, в 17 и 18 разрядах которой записан код Ю, а в поле 19 - код числа команд, подлежащих выполнению в ветви j программы, увеличенный на единицу (в ходе программы на счетчике I устройст86 ва считаются команды 33 и 34 и не считается команда 37). После специальной команды 33 выполняется команда 34 безусловной передачи управления, по которой осуществляется переход на выполнение первой рабочей команды 36 ветви J программы. При переходе из ветви в BeTBbj по команде 32 условной передачи управления при значении признака и) 1 осуществляется перех од на выполнение специальной команды 35, в 17 и 18 разрядах которой записан код 11, а в поле 19 - код числа команд, подлежащих выполнению в ветви j (без учета команды 37). Работа устройства при выполнении специальных команд (33 к 35) рассмотрена выше. Таким образом предлагаемое устройство обнаруживает ошибки в ходе программы в случае, когда на одну ветвь программы осуществляется переход из двух ветвей программ по разным значениям признака перехода. Формула изобретения Устройство для контроля хода программы содержащее счетчик, информационные входы которого образуют группу . информационных входов устройства, управляющий, счетный и установочный входы счетчика являются управляющими входами устройства, отличающееся тем, что, с цепью увеличения контролирующей способности, в устройство введены первый и второй элементы И, элемент ИЛИ, элемент И-НЕ И схема сравнения, причем иш|)ормаш1онные выхощ.1 счетчика соединены со входами элемента И-НЕ и являются группой выходов устройства, выход элемента И-НЕ соединен с первым входом первого элемента И, выход которого соединен с первым входом элемента ИЛИ, выход переполнения счетчика соедине.н со вторым входом элемента ИЛИ, выход которого Является управляющим выходом устройства, выход схемы сравнения соединен с первым входом второго элемента И, выход которого соединен с третьим входом элемента ИЛИ, второй вход первого элемента И является входом признака конца контроля устройства, второй вход второго элемента И является входом признака контроля перехода, первый и второй входы схемы сравнения являются входами признака перехода и одноразрядного признака условия. Источники информации, принятые во внимание при экспертизе 1.Ушаков Г. Н. Аппаратным контроль и надежность спепиалиэированных ЭВМ. М., Советское радио , 1969, с, 32-33. 2.Клямко Э. И. Схемный и тестовый контроль автоматических вычиоV Ч/ 1/ 8924
Фиг. 1
Фаг.2 612 лительных машин, М., Советское радио , 1963, с. 86-87, рис. 14. 3. Клямко Э. И. Схемный и тестовый контроль авт(Ж1атических вычислительных машин, М., Советское радно, 1963, с. 58-59, рис. 6 (прототип).
Авторы
Даты
1981-12-23—Публикация
1980-01-21—Подача