Устройство для контроля программ Советский патент 1981 года по МПК G05B23/02 G06F11/26 

Описание патента на изобретение SU879564A1

(54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ПРОГРАММ

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

название год авторы номер документа
Устройство для контроля программ 1980
  • Корбашов Юрий Михайлович
  • Кошелев Владимир Павлович
  • Семин Константин Васильевич
  • Усков Владимир Иванович
SU879563A1
Устройство для контроля хода программ 1979
  • Корбашов Юрий Михайлович
  • Семин Константин Васильевич
  • Усков Владимир Иванович
SU983712A1
Устройство для контроля программ 1983
  • Корбашов Юрий Михайлович
  • Семин Константин Васильевич
SU1136172A1
Устройство для фиксации трассы выполнения программы 1983
  • Корбашов Юрий Михайлович
  • Семин Константин Васильевич
SU1136170A1
Устройство для обмена информацией между аналоговой и цифровой вычислительными машинами 1990
  • Иванов Александр Юрьевич
  • Святный Владимир Андреевич
  • Чурилова Галина Павловна
SU1755372A1
Устройство для контроля хода программ 1980
  • Корбашов Юрий Михайлович
  • Семин Константин Васильевич
  • Усков Владимир Иванович
SU1057949A1
Устройство для обмена информацией между цифровой и аналоговой вычислительными машинами 1982
  • Витенберг Исаак Моисеевич
  • Иванов Александр Юрьевич
  • Святный Владимир Андреевич
  • Чурилова Галина Павловна
SU1053119A1
Устройство для отладки программ 1983
  • Корбашов Юрий Михайлович
  • Семин Константин Васильевич
SU1290334A1
Устройство для управления параллельным выполнением команд в электронной вычислительной машине 1982
  • Яковлев Владимир Михайлович
  • Кузнецов Геннадий Иванович
  • Демниченко Александр Степанович
  • Лобкова Ольга Николаевна
  • Акимов Лев Николаевич
  • Хетагуров Ярослав Афанасьевич
SU1078429A1
Имитатор абонентов 1983
  • Кафидов Александр Сергеевич
  • Еременко Людмила Павловна
  • Тараров Михаил Иванович
  • Куракин Юрий Павлович
  • Сорокин Адольф Андреевич
SU1291987A1

Иллюстрации к изобретению SU 879 564 A1

Реферат патента 1981 года Устройство для контроля программ

Формула изобретения SU 879 564 A1

Изобретение относится к области вычислительной техники, в частности к организации контроля программ. Известно устройство для контроля программ 1 , в котором зоннай памят состоит из трех основных частей: быстродействующего запоминающего бло ка для хранения адресов, схем селекции и хранения адресов, схем считыва ния и визуального вывода зафиксированных адресов. Недостаток устройства состоит в том, что оно не обеспечивает контрол полноты использования команд в программах. Наиболее близким по технической сущности решением к изобретению является устройство 2, в котором в системе, содержащей главную память блок команд, блок контроля памяти, блок канала, блок исполнения и пульт управления имеется устройство, состоящее из коммутатора, регистра вер ней границы адресов, регистра нижней границы адресов, регистра нижнего адреса программы, регистра количества адресов, используемых в системе, блоков сравнения, логической схемы, вырабатывающей сигнал записи программных событий и распределителя импульсов. Основной недостаток прототипа заключается в малой достоверности контроля программ, так как устройство не обеспечивает проверку полноты использования команд программами. При KOJBT- роле вьтолняемой программы в устройстве проверяется, входят ли адреса выполняемых команд в разрешенный диапазон адресов, но адреса использованных программами команд не фиксируются. Целью изобретения является повышеиие достоверности контроля программ. Поставленная цель достигается тем, что в устройство для контроля программ, содержащее четыре регистра, коммутатор, блок сравнения и блок управ3Нления, введе Ы три блока -элементов 11, два блока памяти, блок иыдоления гряничньпс команд и счетчик, подк./тючешгый первым выходом к первому входу блока управления, а вторым и третьим выхода ми - к первым входам первого и второго блоков элементов И соответственно, первые выходы которых соединены между собой и подключены через ЕКлюченЕгые последовательно первый блок.памяти, первый регистр, третий блок элементов И, второй регистр, KONwyraTOp, блок сравнения - ко второму входу бло ка управления, а вторые выходы первого и второго блоков элементов И соединены между собой и подключены через включенные последовательно второй блок памяти, третий регистр - ко второ.му входу третьего блока элементов И соединенного вторым выходом через четвертый регистр со вторым входом коммутатора и со вторым входом первого блока элементов И, третий вход которого подключен к первому входу коммутатора, соединенного третьим входом с выходом первого регистра и со вторым входом второго блока элементов И, четвертым входом - с выходом третьего регистра и с третьим входом второго -блока элементов И, а пятым входом - с первым выходом блока управления, подключенного вторым выходом к третьему входу третьего блока элементов И, третьим выходом - к управляющим входам первого и третьего регистров, четвертым выходом - ко входу счетчика и ко вторым входам первого и второго блоков памяти, а пятым выходом и третьим входом - к первому входу и первому выходу блока выделения граничных команд, соединенного выходом со вторыми входами второго и четвертого регистров, а второй вход блока выделения граничных команд соединен со входом устройства. , На фиг. 1 приведена функциональная схема устройства; на фиг. 2 функциональная схема варианта построения блока выделения граничных команд . Устройство содержит блок выделения граничных ко1у(анд 1, третий блок 2 элементов И, коммутатор 3, бл сравнения 4, блок управления 5, счет чик 6, первый и второй блоки памяти 7, 8, четыре регистра 9-12, первый и второй блоки элементов И 13, 1 ячейки блоков памяти 15,-15п, 16i-16 4 1 В.1де,ленин граничных коанд состоит из триггера 17, блоков 18, 19, 20 элементов И, элементов 21, 22 Н, блоков 23, 24 сравнения, счетчика 25, регистров 26, 27, 28,, 28,, 29, , 29,, блоков 30,, 30, элементов И, входа 31, Устройство работает следующим образом. последовательности адресов команд, поступающих на вход устройства, производится блоком I, который на своих выходах границы наборов команд, В исходном состоянии все регистры, счетчики устройства и ячейки блоков памяти не содержат никакой информации. Блок 5 находится в состоянии ожидания сигнала с выхода элемента 21. Триггер 17 находится в состоянии О, в которое он устанавливается сигналом установки в исходное по входу 31, Адрес начальной команды программы (нижняя граница набора) через блок 18 записывается в счетчик 25 и в регистр 27. В результате этого по нулевому состоянию регистра 27 на выходе элемента 22 вырабатывается сигнал, которьш устанавливает триггер 17 в состояние 1, после чего блокируется блок 18 и разблокируется блок 19. Такое состояние триггера сохраняется до момента установки устройства в исходное состояние. Адрес следующей команды через блок 19 записывается в регистр 26, в результате чего на выходе элемента 21 вырабатывается сигнал, который увеличивает на единицу содержимое счетчика 25 и одновременно поступает на вход блока 5, который после этого выдает управляющий сигнал в блок 23. Блок производит сравнение адреса новой команды с увеличенным на единицу адресом предыдущей команды (содержимое счетчика 25). В зависимости от результата сравнения блок 1 работает следующим образом. Если содержимое ретистра 26 равно содержимому счетчика 25 (адреса последующей и предь дущей команд отличаются на единицу), то блок 5 (по сигналу с соответствующего выхода блока 23) производит гашение регистра 26 и устройство переходит в режим ожидания смены команд в ЦВМ, При,поступлении на регистр 26 адреса новой команды производится, как описано выше, добавление единицы в счетчик 2.5 5 и сравнение :его содержимого с содержн мым регистра 26. Если они равны, то вновь производится гашение регистра 26 и переход к ожиданию смены команд в ЦВМ. Работа блока 1 в этом слу чае соответствует выполнению в ЦВМ непрерывной цепочки команд с последовательными адресами. При этом содержи мое регистра 27 определяет первую команду /(нижний адрес) набора, а на счетчике 25 происходит расширение верхней границы адресов вьтолненных команд. В том случае, когда содержимые счетчика 25 и регистра 27 неравны (ад реса последующей и предыдущей команд отличаются на число, не равное единице) , работа блока 1 соответствует переходу в программе от одного набора команд (с последовательными адресами) к другому, то есть передаче управления в программе, В этом случае сигнал с соответствующего выхода блока 23 уменьшает на единицу содержимое счетчика 25 (возврат к адресу предыдущей команды, от которой произведена передача управления) и поступает в блок 5, который в ответ подает сигнал на регистры 28,, 28 (в них записывается содержимое регистра 27 и счетчика 25 соответственно), а затем управляющий сигнал на блок 20 (содержимое регистра 26 записывается в регистр 27 и в счетчик 25) и гасит регистр 26. В результате в регистрах 28j , 282 будут записаны граничные адреса предыдущего набора команд, а в регистре 27 и счетчике 25 - нижний гра ничный адрес последующего набора команд, С целью экономии объема памяти пр изводится дальнейшая, обработка полученных данных. С б;1ока 5 на вход блока 24 подают ся управляющие сигналы, по которым блок 24 производит попарное сравнение содержимых регистров 28,, 282, 29, , 29, то есть производится проверка совместимости границ предыдущего и последующего наборов. Сначала сравниваются содержимые регистров 28 и 29i (нижняя граница последующего и верхняя граница предыдущего наборов) Если содержимое регистра 28, больше содержимого регистра 29t (не пересек ющиеся наборы команд), по сигналу с |блока 5 через блюки 10 содержимые 46 егистров 29, , 29j записываются в реистры 12, 10, а содержимьте регистов 28, , 28 записываются в регисты 29, , 292 . Если содержимое регистра 28, не ревышает содержимого регистра 29з. , то, по сигналу с блока 5 блок 24 прозводит сравнение содержимых регистов 28 и 29| (верхняя граница последующего и нижняя граница предыдущего наборов). Если содержимое регистра 28i меньше содержимого регистра 29i , то блок 1 работает как . и в предыдущем случае. Если содержимое регистра 28. не меньше содержимого регистра 29, , то, по сигналу с блока 5 блок 24 производит сравнение содержимых регистров 28, , 29, (нижние границы обоих наборов). Если содержимое регистра 28, меньше содержимого регистра 29, , по сигналу с блока 5 содержимое регистра 28| передается в регистр 29i (производится расширение нижней границы набора) . Если содержимое регистра 28, не менее содержимого регистра 29, , то по сигналу с блока 5 блок 24 производит сравнение содержимых регистров 282, 29i {верхние границы наборов). Если содержимое регистра 282 больше содержимого регистра 29г, то содержимое регистра 282 передается в регистр 29г (производится расширение верхней границы набора) . Если содержимое регистра 282 не превьш1ает содержимого регистра 292, то, по сигналу с блока 5, производится гашение регистра 26 и устройство переходит к ожиданию смены команды в ЦВМ. . Таким образом, блок на своих выходах формирует граничные адреса непрерывных наборов команд с последовательными адресами, при этом, в том случае, когда два соседних набора команд перекрываются, блок 1 из двух пар граничных адресов формирует граничные адреса только для одного набора команд (имеющего односторонне или двусторонне расширенные границы, либо неизменные границы, например, когда границы одного из наборов команд полностью включают в себя границы другого), что позволяет экономить объем памяти, например, при циклическом выполнении некоторого участка программы. Дальше устройство работает следующим образом. Как было отмечено выше, если два соседних набора адресов команд (с гра ницами, записанными в регистрах 28,, 29) 2 не лерес.екаются, содержимое регистров 29),i передается в регистры 12, 10. После этого производится сравнение границ набора адресов команд, записанных в регистрах 12 и 10 с границами всех предьщущих наборов, которые были зафиксированы устройством и которые хранятся в ячейках блоков 7, 8 При этом в ячейках 15 блока 7 хранятся нижние границы наборов адресов команд, а в соответствующих ячейках 16 блока 8 - верхние границы. Сравнение границ набора адресов ко манд, зафиксированных в регистрах 10 12 с границами предыдущих наборов производится следующим образом. По сигналам с блока 5 производится запись содержимого ячеек 15 и 16 в регистры 9 и 11, а затем сдвиг информации, записанной в блоках 7, 8 на одну ячейку в с торону ячеек 15,, 16( , то есть содержимое ячеек ISj , 1 передается в ячейки 15i , 16( соответственно, ячеек 5з, 16 - в ячей ки 15г , 162 соответственно и так далее. Содержимое ячеек 15i , 16i при этом освобождается (если ранее они содержали информацию о границах некоторого набора адресов команд). Затем по сигналу с блока 5 блок 3 подключает регистры 12 и li к блоку который производит сравнение их содержимых. Если содержимое регистра 1 больше содержимого регистра 1J, то есть границы набора записаны в регис рах 9, 11, то содержимое регистров 9 11 (по сигналу с блока 5) через блоки 13, 14 передается в ячейки 15п, 16п. Затем по сигнаау, с блока 5 производится передача нового содержимого ячее; 15) и 16, (ранее это было со держимым ячеек 152, ) регистры и 11 соответственно, то есть на регистры 9, 11 записываются границы др гого набора адресов команд, а затем Производится сдвиг содержимого ячеек 7,8 на одну ячейку в направлении яч ек I5i , 16, . Если содержимое регистра 12 не больше содержимого регистра 1 , то п сигналу с блока 5 блок 3 подключает регистры 10 и„ 9 к блоку 4, который сравнивает их содержимые. В том случае, когда содержимое регистра 10 меньше содержимого регистра 9, содержимое регистров 9, II передается в ячейки 15п5 16п5 в регистры 9, 11 записывается содержимое ячеек 15i , 16| (как и в пред111дущем случае) . Если содержимое регистра 10 не меньше содержимого регистра 9, то производится сравнение содержимого регистров 12 и 9, Если содержимое регистра 12 больще содержимого регистра 9, то по сигналу с блока 5 содержимое регистра 9 передается в регистр 12, после чего производится сравнение регистров 10, 11. Если же содержимое регистра 12 не больше содержимого регистра 9, то сразу производится сравнение регистров 10 и 11. При этом, если содержимое регистра 10 меньше содержимого регистра 11, то содержимое регистра 11 через блок 2 передается в регистр 10, после чего регистры 9, 11 обнуляются. Если же содержимое регистра 10 не меньше содержимого регистра 11, то регистры 9, 11 сразу обнуляются. После этого в регистры 9, 11 передаются содержимые ячеек Ъ , 16) и производится сравнение границ набора адресов команд (записанных в регистрах 12, 10) , измененных или нет в результате сравнения с предыдущим содержимым ячеек 15i, 6|, с новым содержимым этих ячеек. До тех пор, пока не будет произведено сравнение границ, записанных в регистрах 10, 12, с содержимым всех ячеек 15, 16, счетчик 6 блокирует блок 13. При этом в каждом цикле сравнения, содержимого регистров 10, 12 с содержимыми ячеек 15i и 16f в счетчик 6 добавляется единица. После того, как будет произведено п циклов сравнения, после окончания последнего цикла сравнения, содержимое счетчика 6 будет увеличено ещё на одну единицу, что приведет к его переполнению и в результате сигналами с соответствующих выходов счетчика 6 будет заблокирован блок 14 и разблокирован блок 13. Затем блок 5 по сигналу переполнения со счетчика 6, вырабатывает управляющий сигнал, по которому содержимое регистров 10, 12 через блок 13 передается в ячейки 15п, 16п блоков 7, 8. Таким образом, после того как блок 1 выработал граничные адреса набора команд, эти границы набора фиксируются в регистрах 10, 12 и устройство прои водит поочередное сраинение границ нового набора с границами предыдущег набора, то есть с ячейками 1.5, 16 бл ков 7, 8. В результате каждого цикла сравнения содержимое регистров 10, 1 может изменяться. Если границы новог набора перекрываются с границами одн го из предыдущих наборов, записанными в данный момент в регистрах 9, 11, то на регистрах 10, 12 производится расширение границ набора, регистры 9 11 устанавливаются в состояние О, а в ячейки 15п, 16п записывается нулевая информация. Если же наборы команд не перекры,ваются, то содержимое регистров 10, i 12 изменяется, а в ячейки 15п, 16п записывается содержимое регистров 9, В результате контроля программ (ы выполненных на ЦВМ в ячейках блоков 8 будут записаны соответственно нижние и верхние границы наборов команд с последовательными адресами, вьшолненных при прохождении программ. Контроль программ, вьшолняемызс на ЦВМ с помощью предлагаемого устройства, производится следующим образом. Устройство подключается к счетчику команд ЦВМ и устанавливается в исходное состояние. После этого производится поочередное включение всех программ. По окончании вьтолнения программ содержимые блоков 7, 8 известным способом выводятся на печать Команды, зафиксированные в програм jMax, известны, поэтому необходимо сравнить список адресов команд, использованных при составлении программы, с результатом контроля, проведенным данным устройством, то есть со списком адресов команд, действительно выполненных на ЦВМ. В том случае, когда адрес какой-ли бо из известных команд отсутствует в распечатке содержимого блоков 7, 8, необходимо провести проверку этой команды. Таким образом, в отличие от прототипа, устройство позволяет повысить достоверность контроля программ, выполненных на ЦВМ. Б памяти устройства фиксируются адреса всех команд, ис пользованных при прохождении программ, что позволяет обнаружить все лишние команды, то есть команды,не использованные при выполнении nporpaNfMbi, но задействованные при ее составлении. Формула изобретения Устройство для контроля программ, содержащее четыре регистра, коммутатор , блок сравнения и блок управления, отличающее ся тем, что, с целью повьшения достоверности контроля программ, в него .введены три блока элементов И, два блока памяти, блок вьщеления граничных, команд и счетчик, подключенный первым выходом к первому входу блока управления, а вторым и третьим выходами - к первым входам первого и второго блоков элементов И, соответственно первые выходы которых соединены между собой и подключены через включенные последовательно первый блок памяти, первый регистр, третий блок элементов И, второй регистр, коммутатор, блок сравнения - ко второму входу блока управления, а вторые выходы первого и второго блоков элементов И соединены между собой и подключены через включенные последовательно второй блок памяти, третий регистр - ко второму входу третьего блока элементов И, соединенного вторым выходом через четвертый регистр со вторым входом коммутатора, и со вторым входом первого блока элементов И, третий вход которого подключен к первому входу коммутатора, соединенного третьим входом с выходом первого регистра и со вторым входом второго блока элементов И, четвертым входом - с выходом третьего регистра и с третьим входом второго блока элементов И, а пятым входом - с первым выходом блока управления, подключенного вторым выходом к третьему входу третьего блока элементов И, третьим выходом - к управляющим входам первого и третьего регистров, четвертым выходом - ко входу счетчика и ко вторым входам первого и второго блоков памяти, а пятым выходом и третьим входом - к первому входу и первому выходу блока выделения граничных команд, соединенного выходами со вторыми входа|И второго и четвертого регистров, второй вход блока выделения граничч87956412

ных команд соединен со входом устрой- 1. Патент США № 3935563, . 340-172.5, опублик. 1976.

. Источники информации, кл. 340-172.5, опублик. 1976 (протопринятые во внимание при экспертизе s тип) .

fpu.l

2. Патент США № 3931611,

SU 879 564 A1

Авторы

Корбашов Юрий Михайлович

Семин Константин Васильевич

Усков Владимир Иванович

Даты

1981-11-07Публикация

1980-01-31Подача