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

Иллюстрации

Показать все

Реферат

 

ОП ИСАНИЕ

ИЗОБРЕТЕН ИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ

Союз Советских

Социалистических

Республик (iii 879564 (61) Дополнительное к авт. свнд-ву (22) Заявлено 31. 01. 80 (21) 2902)61/18-24 с присоединением заявки )тЪ (23) Приоритет

Опубликовано 07. 11. 81. Бюллетень № 41

Дата опубликования описания 09. ) 1. 81 (5I)М. Кл.

G 05 В 23/02

G 06 F 11/26

1еЕУАаРСтиаввнх КВМИтвт

СССР

N двлаи иэвбретекнк н втхриткв (53) УДK 621.396 (088. 8) (72) Авторы изобретения

Ю. M. Корбашов, К. В. Семин и В. И. Усков (71) Заявитель (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ПРОГРАИМ

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

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

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

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

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

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

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

Поставленная цель достигается тем, что в устройство для контроля программ, содержащее четыре регистра, коммутатор, блок сравнения и блок управ8 9 1) ления, введены три блок;1 з)1е)) -.IIòoII И, два блока памяти, блок выделеии)1 гр»вЂ” ничных команд и счетчик, подключенный первым выходом к первому входу блок» управления, а вторым и третьим выход»в ми — к первым входам первого и второго блоков элементов И соответственно.

На фиг. 1 приведена функциональная схема устройства; на фиг. 2— функциональная схема варианта построения блока выделения граничных команд.

Устройство содержит блок выделения граничных команд 1, третий блок 2 элементов И, коммутатор 3, блок сравнения 4, блок управления 5, счетчик 6, первый и второй блоки памя- 55 ти 7, 8, четыре регистра 9-12, первый и второй блоки элементов И 13, 14, ячейки блоков памяти 15, — 15,, 16, — 16,, первые выходы которых соединены между собой и подключены через гключени)))е последовательно первый блок памяти, первый регистр, третий блок элемеи— тов И, второй регистр, коммутатор, блок сравнения — ко второму входу блока управления, а вторые выходы первого и второго блоков элементов И соединены между собой и подключеиы через включенные последовательно второй блок памяти, третий регистр — ко вт )рому входу третьего блока элементов !!, соединенного вторым выходом через

?О четвертый регистр со вторым входом коммутатора и со вторым входом первого блока элементов И, третий вход которого подключен к первому входу коммутатора сОединенногО третьим входОм 25 с выходом первого регистра и со вторым входом второго блока элементов И, четвертым входом — с выходом треть— его регистра и с третьим входом второго блока элементов И, а пятым вхо30 дом — с первым выходом блока управления, подключенного вторым выходом к третьему входу третьего блока элементов И, третьим выходом — к управляюIl1Hì входам первого и третьего регистров, четвертым выходом — ко входу счетчика и ко вторым входам первого и второго блоков памяти, а пятым выходом и третьим входом — к первому входу и первому выходу блока выделе— ния граничных команд, соединенного выходом со вторыми входами второго и четвертого регистров, а второй вход блока выделения граничных команд соединен со входом устройства.

4 4 !

> 10 К Hl 1ДГЛЕ)И1Л 1 $)il)III

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

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

В исходном состоянии все регистры, счетчики устройства и ячейки бло— ков памяти не содержат никакой информации. Блок 5 находится в состоянии ожидания сигнала с выхода элемента 21.

Триггер 17 находится в состоянии "0", в которое он устанавливается сигналом установки в исходное по входу 31.

Адрес начальной команды программы (нижняя граница набора) через блок 18 записывается в счетчик 25 и в ре— гистр 27. В результате этого по "нулевому" состоянию регистра 27 на выходе элемента 22 вырабатывается сигнал, который устанавливает триггер 17 в состояние "1", после чего блокируется блок 18 и разблокируется блок 19.

Такое состояние триггера сохраняется до момента установки устройства в исходное состояние. Адрес следующей команды через блок 19 записывается в регистр 26, в результате чего на выходе элемента 21 вырабатывается сигнал, который увеличивает на 1)единицу)) содержимое счетчика 25 и одновременно поступает на вход блока 5, который после этого выдает управляющий сигнал в блок 23. Блок производит сравнение адреса новой команды с увеличенным на единицу адресом предыдущей команды (содержимое счетчика 25) . В зависимости от результата сравнения блок 1 работает следующим образом.

Еспи содержимое регистра 26 равно содержимому счетчика 25 (адреса последующей и предыдущей команд отличаются на единицу), то блок 5 (по сигналу с соответствующего выхода блока 23) производит гашение регистра 26 и устройство переходит в режим ожидания смены команд в ЦВМ. При,.поступлении на регистр 26 адреса новой команды производится, как описано выlIIe, добавление "единицы" в счетчик 2э

5 87 и сравнение его содержимого с содержимым регистра 26. Если они равны, то вновь производится гашение регистра 26 и переход к ожиданию смены команд в ЦВМ. Работа блока 1 в этом случае соответствует выполнению в ЦВМ непрерывной цепочки команд с последовательными адресами, При этом содержимое регистра 27 определяет первую команду,(нижний адрес) набора, а на счетчике 25 происходит расширение верхней границы адресов выполненных команд.

В том случае, когда содержимые счетчика 25 и регистра 27 неравны (адреса последующей и предыдущей команд отличаются на число, не равное единице), работа блока 1 соответствует пе— реходу в программе от одного набора команд 1с последовательными адресами) к другому, то есть передаче управления в программе.

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

28,, 28@ (в них записывается содержимое регистра 27 и счетчика 25 соответственно), а затем управляющий сигнал на блок 20 (содержимое регистра 26 записывается в регистр 27 и в счетчик 25) и гасит регистр 26. ров 28 и 29 (верхняя граница по10 следующего и нижняя граница предыдущего наборов). Если содержимое регистра 28 меньше содержимого регистра 29, то блок 1 работает как . и в предыдущем случае. Если содержимое регистра 28 не меньше содержимого регистра 29>, то, по сигналу с блока 5 блок 24 производит сравнение содержимых регистров 28, 29, (нижние границы обоих наборов). у0 Если содержимое регистра 28, меньше содержимого регистра 29,, по сигналу с блока 5 содержимое регистра 28 передается в регистр 29I (производится расширение нижней границы набора) . г5 Если содержимое регистра 28, не менее содержимого регистра 29, то по сигналу с блока 5 блок 24 производит сравнение содержимых регистров 28, 29 7верхние границы наборов). Если содержимое регистра 28 больше содержимого регистра 29, то содержимое регистра 28 передается в регистр 29 (производится расширение верхней границы набора) . Если содержимое регистра 28< не превышает содержимого ре35 гистра 29, то, по сигналу с блока 5, производится гашение регистра 26 и устройство переходит к ожиданию смены команды в ЦВМ.

Таким образом, блок 1 на своих вы40 ходах формирует граничные адреса непрерывных наборов команд с последовательными адресами, при этом, в том случае, когда два соседних набора команд перекрываются, блок. 1 из двух

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

55 программы.

В результате в регистрах 28,, 28 будут записаны граничные адреса предыдущего набора команд, а в регистре 27 и счетчике 25 — нижний граничный адрес последующего набора команд.

С целью экономии объема памяти производится дальнейшая обработка полученных данных.

С блока 5 на вход блока 24 подаются управляющие сигналы, по которым

l блок 24 производит попарное сравнение содержимых регистров 28,, 28, 29,, 29, то есть производится проверка совместимости границ предыдущего и последующего наборов. Сначала сравниваются содержимые регистров 28 и 29 (нижняя граница последующего и верхняя граница предыдущего наборов) .

° Если содержимое регистра 28, больше содержимого регистра 29 (не пересекающиеся наборы команд), по сигналу с

1блока 5 через блоки 30 содержимые

9564 6 регистров 29,, 29 з аписываются в регистры 1?, 10, а содержимые регистров 28,, 28 записываются в регистры 29, 29, .

Если содержимое регистра 28> не превышает содержимого регистра 29» то, по сигналу с блока 5 блок 24 производит сравнение содержимых регисткогда границы одного иэ наборов команд полностью включают в себя границы другого), что позволяет экономить объем памяти, например, при циклическом выполнении некоторого участка

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

879

564

Как было отмечено выше, если дan соседних набора адресов команд (с границами, записанными в регистрах 28,„, 29 не пересекаются, содержимое ре) гистров 29>, передается в регистры 12, 10.

После этого производится сравнение границ набора адресов команд, записанных в регистрах 12 и 10 с границами всех предыдущих наборов, которые быпи зафиксированы устройством и которые хранятся в ячейках блоков 7„ 8.

При этом в ячейках 15 блока 7 хранятся нижние границы наборов адресов команд, а в соответствующих ячейках 16 блока 8 — верхние границы.

Сравнение границ набора адресов команд, зафиксированных в регистрах 10, 12 с границами предыдущих наборов производится следующим образом.

По сигналам с блока 5 производится запись содержимого ячеек 15 и 16 в регистры 9 и 11, а затем сдвиг информации, записанной в блоках 7, 8 на одну ячейку в сторону ячеек 15,, 16(, то есть содержимое ячеек 15г, 16 передается в ячейки 15, 16 соответственно, ячеек 15, 16з — в ячейки 15, 16 соответственно и так далее. Содержимое ячеек 15 16 при этом освобождается (если ранее они содержали информацию о границах некоторого набора адресов команд) .

Затем по сигналу с блока 5 блок 3 подключает регистры 12 и 11 к блоку 4, который производит сравнение их содержимых, Если содержимое регистра 12 больше содержимого регистра 11, то есть границы набора записаны в регистрах 9, 11, то содержимое регистров 9, 11 (по сигналу с блока 5) через блоки 13, 14 передается в ячейки 15, 16д. Затем по сигналу с блока 5 производится передача нового содержимого ячеек 15, и 16, (ранее это было содержимым ячеек 15>, 16 ) в регистры 9

И 11 соответственно, то есть .на регистры 9, 11 записываются границы дру— гого набора адресов команд, а затем производится сдвиг содержимого ячеек

7, 8 на одну ячейку в направлении ячеек 15, 16 .

Если содержимое регистра 12 не больше содержимого регистра 11, то по сигналу с блока 5 блок 3 подключает регистры 10 и„9 к блоку 4, который сравнивает их содержимые. В том слу—

Чае, когда содержимое регистра 10

25 зо

55 меньше содержимого регистра 9, содержимое регистров 9, 11 передается в ячейки 15п, 16„, а в регистры 9, 11 записывается содержимое ячеек 15>

16, (как и в предыдущем случае) .

Если содержимое регистра 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 передаются содержимые ячеек 15, 16> и производится сравнение границ набора адресов команд (записанных в регистрах 12, 10), измененных или нет в результате сравнения с предыдущим содержимым ячеек 15, 16, с новым содержимым этих ячеек.

До тех пор, пока не будет произведено сравнение границ, записанных в регистрах 10, 12, с содержимым всех ячеек 15, 16, счетчик 6 блокирует блок 13. При этом в каждом цикле сравнения. содержимого регистров 10, 12 с содержимыми ячеек 15 и 16 в счетчик 6 добавляется "единица". После того, как будет произведено л циклов сравнения, после окончания последнего цикла сравнения, содержимое счетчика 6 будет увеличено еще на одну

"единицу", что приведет к его переполнению и в результате сигналами с соответствующих выходов счетчика 6 будет заблокирован блок 14 и разблокирован блок 13. Затем блок 5 по сигналу переполнения со счетчика 6, вырабатывает управляющий сигнал, по которому содержимое регистров 10, 12 через блок 13 передается в ячейки 15д, 16п блоков 7, 8.

Таким образом, после того как блок 1 выработал граничные адреса набора ко879564

10 манд, эти границы набора фиксируются в регистрах 10, )2 и устройство производит поочередное сравнение границ нового набора с границами предыдущего набора, то есть с ячейками 15, 16 блоков 7, 8. В результа.е каждого цикла сравнения содержимое регистров 10, 12 может изменяться. Если границы нового набора перекрываются с границами одного из предыдущих наборов, записанными 10 в данный момент в регистрах 9, 11, то на регистрах 10, 12 производится расширение границ набора, регистры 9, 11 устанавливаются в состояние "0", а в ячейки 15п, 16> записывается нулевая информация.

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

30 второго блока элементов И, четвертым входом — с выходом третьего регистра и с третьим входом второго блока элементов И, а пятым входом — с первым выходом блока управления, подключенного вторым выходом к третьему входу третьего блока элементов И, третьим выходом — к управляющим входам перво-, го и третьего регистров, четвертым выходом — ко входу счетчика и ко вторым входам первого и второго блоков памяти, а пятым выходом и третьим входом — к первому входу и первому выходу блока выделения граничных команд, соединенного выходами со вторыми входа н второго и четвертого регистров, второй вход блока выделения граничЕсли же наборы команд не перекры, ваются, то содержимое регистров 10, 112 изменяется, а в ячейки 15>, 16П записывается содержимое регистров 9, 11.

В результате контроля программ (ы), выполненных на ЦВМ в ячейках блоков 7, 25

8 будут записаны соответственно нижние и верхние границы наборов команд с последовательными адресами, вьгполненных при прохождении программ.

Контроль программ, выполняемых на ЦВМ с помощью предлагаемого устройства,производится следующим образом.

Устройство подключается к счетчи35 ку команд ЦВМ и устанавливается в исходное состояние. После этого производится поочередное включение всех программ. По окончании выполнения программ содержимые блоков 7, 8 изб вестным способом выводятся на печать.

Команды, зафиксированные в програм1 мах известны, поэтому необходимо

|сравнить список адресов команд, использованных при составлении програм45 мы, с результатом контроля, проведенным данным устройством, то есть со списком адресов команд, действительно выполненных íà ЦВМ.

В том случае, когда адрес какой-ли50 бо из известных команд отсутствует в распечатке содержимого блоков 7, 8, необходимо провести проверку этой команды.

Таким образом, в отличие от прото55 типа, устройство позволяет повысить достоверность контроля программ, выполненных на ЦВМ. Б памяти устройства фиксируются адреса всех команд, использованных при прохождении программ, It I1 что позволяет обнаружить все лишние команды, то есть команды,не использованные при выполнении программы, но задействованные при ее составлении.

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

ll В79564 ных команд соединен со входом устройства.

Источники информации, | принятые во внимание при экспертизе

l. Патент США У 3935563, кл. 340-172.5, опублик. 1976.

2. Патент США В 3931611, кл. 340-172.5, опублик. 1976 (прото5 тип) °

Составитель Н. Горбунова

Редактор Н. Коляда Техред О.Легеза Корректор С. Шекмар

Заказ 9719/18 Тираж 943 Подписное

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

113035 Москва Ж-35 Ра ская наб. . 4/5 !

Б л6

Филиал ППП "Патент", r. Ужгород, ул. Проектная, 4