Устройство для отладки программ
Иллюстрации
Показать всеРеферат
СОЮЗ СОВЕТСКИХ СОЦИАЛИСТИЧЕСНИХ
РЕСПУБЛИК
09) (11>
y(sg G 06 F 11 28
1
ОПИСАНИЕ ИЗОБРЕТЕНИЯ, :. .": . .:,", К A8TOPCHCMV СВИДЕТЕЛЬСТВУ
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ,. ходом второго триггера, вход уста,новки в ноль которого соединен с . входом второго элемента НЕ, выходои .третьего элемента ИЛИ и первым входом четвертого блока элементов И, группа выходов которого соединейа с, второй группой входов блока элемен(21) 3472178/18-24 (22) 15.07.82 (46) 23. 10.83 ° Бюл. и 39 (72) С.И. Петренко, А,И. Сахно и В.Г..Сухин (53) 681 ° 325(088.8) (56) 1. Патент США N 3673573, кл. 340-172.5, опублик. 1972.
2. Авторское свидетельство СССР
N 754419, кл. G 06 F 9/36, (прототип). (54)(57) УСТРОЙСТВО ДЛЯ ОТЛАЙ1 И
ПРОГРАММ, содержащее регистр исполнительного адреса, первый блок элеиентов И, регистр адреса команд, первый и второй элементы И, первый счетчик, распределитель иипульсов, блок буферных регистров, первый триггер, первый элемент задержки, первый элеиент ИЛИ, входы которого соединены с группой входов команд переходов устройства, а выход соединен с входом первого элеиента задержки и с первым входом второго элемента Й, . второй вход которого соединен с инверсным выходом первого триггера, вход установки в ноль которого соединен с установочныи входом устройства, а прямой выход соединен с выхо-, дом прерываний устройства, управляющий вход устройства соединен с первым входом первого элемента И, выход которого соединен с входом установки в единицу первого триггера, второй вход первого элемента И соединен с выходом переполнения первого счетчи.- ка, счетный вход которого соединен с, выходом второго элемента И, с управляющим входом распределителя иипульcos и входом записи блока буферных регистров, группа управляющих входов которого соединена с группой выходов распределителя импульсов, выход бло-ка буферных регистров соединен с группой информационных выходов устройства, группа информационных входов регистра исполнительного адреса соединена с группой адресных входов команд перехода устройства, группа выходов регистра исполнительного адреса соединена с группой входов первого блока элементов И, группа выходов которого соединена с группой информационных входов регистра адреса команд, о т л и ч а ю щ е е с я тем, что, с целью увеличения производи- Щ тельности, в него введены третий и четвертый элементы И, второй, третий и четвертый блоки элементов И, первый и второй элементы НЕ, второй и третий элеиенты ИЛИ, второй счетчик, второй и третий элементы задержки, второй триггер, схема сравнения и блок элементов ИЛИ, группа выходов которого соединена с группой информационных входов блока буферных регистров и Йходами второго элемента ИЛИ, выход которого соединен с третьим входом второго элемента И, первая группа входов блока элементов ИЛИ соединена с группой выходов второго блока элементов И, первый вход которого соединен с прямыи вы10499 l 4
2 тов ИЛИ, третья группа входов которого соединена с группой выходов третьего блока элементов И, первый вход которого соединен с выходом второго элемента НЕ и входом установки в единицу второго триггера, второй вход третьего блока элементов
И соединен с выходом четвертого элемента И, входом второго элемента задержки и с вторым входом четвертого блока элементов И, группа входов которого соединена с входами третьего элемента ИЛИ и с выходами второго счетчика, вход установки в ноль которого соединен с выходом второго элемента задержки, а счетный входс выходом третьего элемента задержИзобретение относится к вычислительной технике, а именно к устройствам для программного управления, и может быть использовано в ЭВИ для ,обеспечения отладки программ.
Процесс отладки программ заключается в контроле последовательности чередования исполняемых адресов команд условных и безусловных переходов. фиксация последовательности адресов команд перехода осуществляется обычно в оперативном запоминающем устройстве (ОЗУ} с последующим их считыванием, анализом и исправлением ошибок в программе.
Известно устройство для отладкй программ, содержащее память типа
ОЗУ для записи адресов условных и безусловных переходов (11.
Недостатком устройства является малая производительность.
Наиболее близким к предлагаемому является устройство для управления памятью, содержащее регистр исполнительного адреса, регистр адреса команд, блок буферных регистров,. счетчик, триггер, распределитель, weмент ИЛИ, элементы И, элемент задержки (2).
М
Однако практически все программы в этом устройстве содержат большое количество циклических участков с разным числом повторения каждого ки, вхЪд которого соединен с вторым входом второго блока элементов И и с выходом третьего элемента И, первый вход которого соединен с выходом первого элемента ИЛИ и с первым входом четвертого элемента И, вторЬй вход которого соединен с выходом первого элемента НЕ, вход которого соединен с вторым входом третьего элемента И и с выходом схемы сравнения, первая группа входов которой соединена с группой выходов регистра исполнительного адреса, а вторая группа входов схемы сравнения сое: инена с группой выходов регистра адреса команд и с группой входов второго и третьего блока элементов И. участка; При Отладке; таких программ на известном устройстве в ОЗУ в про цессе прохождения циклического участка записывается один и тот же адрес перехода, что приводит к низкой производительности устройства.
Цель изобретения - увеличение производительности при отладке. программ оперативной памяти ЭВМ.
Эта цель достигается тем, что.в устройство для отладки программ, содержащее регистр исполнительного адреса, первый блок элементов И, ре" гистр адреса команд, первый и второй элементы И, первый счетчик, распределитель импульсов, блок буферных регистров, первый триггер, первый элемент задержки, первый элемент. ИЛИ, входы которого соединены с группой. входов команд переходов устройства, а выход соединен с входом первого элемента задержки и с первым входом второго элемента И, второй вход которого соединен с инверсным выходом первого триггера, вход установки в . ноль которого соединен с установоч-. ным входом устройства, а прямой выход соединен с выходом прерываний
; устройства, управляющий вход устрой-.
30 ства соединен с первым входом. первого элемента И, выход которого соеди- . нен с входом установки в единицу пер." вого триггера, второй вход первого
1049914
25
35
55 элементф И соединен с выходом переполнения первого счетчика, счетный вход которого соединен с выходом второго элемента И, с управляющим входом распределителя импульсов и входом записи блока буферных регистров, группа управляющих входов которого соединена с группой выходов распределителя импульсов, выход блока буферных регистров соединен с группой информационных выходов устройства, группа. информационных входов регистра исполнительного адреса . соединена с группой адресных входов команд перехода устройства, группа выходов регистра исполнительного адреса соединена с группой входов первого блока элементов И, группа выходов которого соединена с группой информационных входов регистра адре- " са команд, введены третий и четвертый элементы И, второй, третий и четвертый блоки элементов И, первый и второй элементы НЕ, второй и третий элементы ИЛИ, второй счетчик, второй и третий элементы задержки, второй триггер, схема сравнения и блок элементов ИЛИ, группа выходов которого соединена с группой инфор; мационных. входов блока буферных регистров и входами второго элемента ИЛИ, выход которого соединен с третьим входом второго элемента И, первая группа входов блока элементов ИЛИ соединена с группой выходов второго блока элементов И, первый. вход которого соединен.с прямым выходом второго триггера, вход установки в ноль которого соединен с входом второго элемента НЕ, выходом третьего элемента ИЛИ и первым входом чет-..40 вертого блока элементов И, группа выходов которого соединена с второй группой входов блока элементов ИЛИ, третья группа входов которого соединена с группой выходов третьего блока элементов И, первый вход. которо-, го соединен с.выходом второго элемента НЕ и входом установки в единицу второго триггера, второй вход третье го блока элементов И соединен с выходом четвертого элемента И, входом второго элемента задержки и с вторым входом четвертого блока элементов И, группа входов которого соединена с входами третьего элемента ИЛИ и с выходами второго счетчика, вход установки в ноль которого соединен с выходом второго элемента задержки, а счетный вход - с выходом третьего элемента задержки, вход которого соединен с вторым входом второго
,блока элементов И и с выходом третьего элемента И. первый вход которого соединен с выходом первого элеиента ИЛИ и с первым входом четвертого элемента И, второй вход которого соединен с выходом первого элемента МЕ, вход которого соединен с вторым входом третьего элемента И и с выходом схемы сравнения, первая груп па входов которой соединена с группой выходов регистра исполнительного адреса, а вторая группа входов схемы сравнения соединена с группой выходов регистра адреса команд и с группой входов второго и третьего блока элементов И.
На чертеже приведена функциональная схема предлагаемого устройства.
Устройство содержит регистр 1 исполнительного адреса, блок 2 элементов И, регистр 3 адреса команд, счетчик 4„ элемент И 5, управляющий вход
6 устройства, триггер 7, вход 8 установки устройства, элемент ИЛИ 9, группу входов 10 команд перехода устройства, элемент И 11, блок 12 буферных регистров, распределитель 13 импульсов, группу информационных выходов 14 устройства, выход 15 прерываний устройства, элемент 16 задержки, элементы НЕ 17 и 18, элементы ИЛИ
19 и 20, элементы И 21 и 22, блоки
23-25 элементов И, элементы 26-27 задержки, триггер 28, счетчик 29, блок 30 элементов ИЛИ, схему 31 сравнения, группу адресных входов 32 команд .перехода.
Регистр 1 предназначен для приема, хранения и выдачи и-разрядного кода исполнительного адреса, поступающего параллельным кодом из ЭВМ на группу входов команд перехода. Блок
2 элементов И представляет собой набор п-двухвходовых элементов И, первые входы, которых объединены и являются первым входом блока 2, Вторые входы составляют rpynny входов элемента И.
Структура регистра 3 аналогична структуре регистра 1, Счетчик 4 предназначен для счета импульсов, является кольцевым и вырабатывает на своем выходе сигнал при переполнениы
Блок 12 состоит из регистров, предназначенных для приема, хранения и
1049914 выдачи и-разрядного параллельного кода, На каждом разрядном входе всех регистров установлены элемен. ты И на три входа. Первые входы всех элементов И объединены и являются 5 . входом записи блока 12. Вторые входы каждых и (по количеству разрядов в регистрах) элементов объединены и образуют группу управляющих входов блока 12. Третьи входы каждого эле- 1Р мента И объединены в группу информационных входов, Запись кода в определенный регистр блока 12 обеспечивается наличием разрешающих потенциалов на входе записи блока 12 и на 15 определенном входе из группы (m) управляющих входов блока 12 (от распределителя 13 импульсов).
Распределитель 13 импульсов выполнен по одной из классических схем. 2р
Количество выходов распределителяm (по числу регистров в блоке 12),образуют группу выходов.
Блоки 23-25 элементов И представляют собой набор и-трехвходовых weментов И, первые входы которых объе" динены в первый вход блоков 23 - 25, объединение вторых входов образует второй вход блоков 23 - 25, Третьи входы элементов И образуют группу Зр входов. Счетчик 29 построен по классической схеме, имеет счетный вход и вход установки в ноль. Съем информации с выходов счетчика — параллельный. Блок 30 элементов ИЛИ представляет собой набор и-трехвходовых элементов ИЛИ. Схема 31 сравнения предназначена для поразрядного сравнения двух параллельных двоичных кодов, поступающих на их группы входов. Сиг- 4р нал (логическая единица) на выходе схемы 31 формируется при поразрядном совпадении сравниваемых кодов.
Входы 6 и 8, выход 15 устройства связан с приоритетной системой ЭВМ. 4S
Сигналы (команды перехода) на группу входов 10 устройства поступают с процессора ЭВИ (например, с дешифратора регистра кода операции).
Группа информационных выходов 14 устройства предназначена для перезаписи кодов из регистров блока 12 в
ОЗУ ЭВМ, Время задержки элементов 16, 26 и 27 задержки выбирается из условия 55 надежного занесения информации в регистр блока 12. При выполнении программ для изменения порядка следования команд используется содержимое регистра 3, где хранится адрес команды перехода. При выполнении программы устройство работает в двух режи" мах, Пока нет циклического участка в линейном режиме, при появлении циклического участка - в циклическом режиме.
Устройство работает следующим об» разом.
В исходном положении регистры 1 и
3, счетчики 4 и 29, распределитель
13 импульсов, блок 12 буферных регистров и триггер 7 обнулены. Цепи уста- новки в ноль на чертеже не показаны.
Кроме того„ триггер 28 устанавливается в исходное (единичное) состояние сигналами с выходов обнуленного счетчика 29 через элементы ИЛИ 20, HE 18.
Для удобства описания работы устройства вначале рассмотрим его работу в линейном режиме.
В этом режиме изменение порядка следования команд происходит под действием команд условного и безусловного перехода, поступающих с группы входов 10 устройства на элемент ИЛИ 9 и далее с его выхода на входы элементов И 11, 2 1 и 22 и элементов 16 задержки.
Так как в исходнои состоянии в регистре 3 записан нулевой код, а в регистр 1 в процессе подготовки
ЭВИ к выполнению команды перехода записывается код адреса команды перехода, то на выходе схемы 31 сравнения вырабатывается сигнал несравнения - логический ноль, который запрещает прохождение сигнала перехода (логическая единица) с выхода элемента ИЛИ 9 через элемент И 21, а пройдя через элемент ЙЕ 17, разрешает прохождение сигнала перехода через элемент И 22 на второй вход блока 24 элементов И, на первом входе которого присутствует разрешающий потенциал (логическая единица) с выхода элемента HE 18 (в исходном состоянии счетчик 29 обнулен, и нулевой код с его выходов поступает на входы элемента ИЛИ 20 и формирует на его выходе и, следовательно, на входе элемента НЕ 18 логический нсаь).
В исходном состоянии в регистре 3 записан нулевой код, поэтому на группе выходов блока 24 также присутствует нулевой код, который поступает
1049914 .
5 на TpeTbe группу входов блока 30.
На других группах входов блока 30 также присутствуют нулевые коды, за счет того, что на первом входе блока
25 элементов И и на втором входе бло-. з ка 23 элементов И присутствуют запрещающие нулевые сигналы, поступающие соответственно с выхода элемента ИЛИ
20 и с выхода элемента И 21, следовательно, на группе выходов блока 30 элементов .ИЛИ также присутствует ну-. левой код, который поступает на входы элемента.ИЛИ 19, формируя на его вы" ходе запрещающий потенциал. Этот сиг- нал поступает на третий вход элемен- .15 та И 11 и запрещает прохождение через . него сигнала перехода. Поэтому на вы" ходе элемента И 11 не появляется сиг нал разрешения записи исходного (нулевого) кода регистра 3 в блок 12 буферных регистров, а в счетчик 4 не добавляется единица. Кроме того, сиг-. нал перехода с выхода элемента ИЛИ 9, пройдя элемент 16 задержки, осуществляет перепись содержимого регистра 1 в регистр 3.
При реализации следующей .команды перехода схема 31 сравнения снова вырабатывает сигнал несравнения (ло- 30 гический ноль), который запрещает прохождение сигнала перехода с выхода элемента ИЛИ 9 через элемент И 2l
Однако, пройдя элемент НЕ 17, сигнал несравнения разрешает прохождение сигнала перехода через элемент И 22 на второй вход блока 24. Так как на выходе элемента И 21 присутствует нулевой сигнал, то счетчик 29 не изменяет своего состояния, и нулевой код с его выхода через элемент ИЛИ 20 поступает на вход элемента НЕ 18. На выходе элемента НЕ 18 формируется единичный сигнал, который поступает на первый вход блока 24 и разрешает 4 передачу .содержимого регистра 3 (код ; адреса предыдущей команды перехода) на третьею группу входов блока 30 и далее на группу информационных входов блока 12 и на входы элемента
ИЛИ 19
В коде адреса команды всегда присутствует хотя бы одна единица. По" этому на выходе элемента ИЛИ 19 формируется сигнал, поступающий на тре- M тий вход элемента И 11, На втором входе элемента И 11 присутствует разрешающий сигнал (логическая единица) с инверсного выхода триггера 7 (триггер 7 в исходном. нулевом состоянии).
Следовательно, сигнал перехода проходит на выход элемента И 11 и поступает на управляющий вход распределителя 13 импульсов. При этом на первом выходе из его группы выходов
;появляется единичный сигнал. Кроме того, сигнал .с выхода элемента И 11 осуществляет прибавление единицы в счетчик 4 и дает разрешение на перепись содержимого регйстра
3(с группы выходов блока 30 элементов
ИЛИ) в регистр блока 12 буферных регистров. Прохождение кодов через блоки 23 и 25 элементов И, как и в первом случае, блокируется сигналами (логические нули) с выходов элементов И 21 и ИЛИ 20 соответственно.
Сигнал с выхода элемента 16 задержки осуществляет перепись содержимого регистра 1 в регистр 3 и тем са мым подготавливает устройство к обра ботке следующей команды условного (безусловного) перехода . Коды адресов команд перехода с регистра 3 переписываются в регистры блока 12, но-. мера которых определяются сигналом на соответствующем выходе группы выходов распределителя 13 импульсов.
Счетчик 4 считает количество реализованных команд переходов и выдает сигнал переполнения при выполнении
m команд перехода.
Сигнал переполнения поступает на второй вход элемента И 5 и при условии разрешения по входу 6 устройства . поступает.на вход триггера 7.-С выхода триггера 7 сигнал выдается в приоритетную систему ЭВМ, сообщая с заполнении всех регистров блока l2.
Нулевой сигнал с триггера 7 поступает на элемент И 11 и блокирует распределитель 13 импульсов, счетчик 4 и блок
12 буферных регистров, Блокировка обеспечивает сохранение содержимого регистров блока 12 до его переписи через группу выходов 14 устройства в оперативную память ЭВИ. Пос ле переписи содержимого этих регистров в оперативную память ЭВМ триггер
7 сбрасывается 1: сигналом по входу 8 и тем самым подготавливает устройство к следующему циклу работы.
Предлагаемое устройство работает по описанному алгоритму до цикличес-. кого участка в программе (в частном случае, до конца программы).
1049914
При наличии циклического участка программы устройство переходит в циклический режим работы. Для определе- .> ния правильности прохождения циклического участка необходимо определить 5 количество повторений этого циклического участка.
При повторении ЭВМ какого-либо участка программы в регистр 1 повторно заносится код адреса команды 10 перехода, по которой был сделан переход при реализации ЭВМ предыдущей ко-. манды перехода..Поэтому код адреса предыдущей команды перехода, хранящийся в регистре 3; совпадает с кодом адреса следующей команды перехода. В этом случае схема 31 сравнения вырабатывает сигнал сравнения (логическая единица), который разрешает прохождение сигнала перехода с 20 выхода элемента ИЛИ 9 через элемент
И 21 и блокирует (через элемент НЕ.17) прохождение сигнала перехода через элемент И 22.
Сйгнал с выхода элемента И 21 поступает на вход элемента 27 задерж ки и на второй вход блока 23 weментов И, на первом входе которого также присутствует разрешающий сигнал с прямого выхода триггера 28(триггер 28 находится в исходном (единичном состоянии), так как счетчик 29 обнулен) . Содержимое регистра 3(код адреса команды перехода циклического участка) через блок 23 элементов И поступает на первую группу входов блока 30 элементов ИЛИ и далее на группу информационных входов блока 12 и входы элемента ИЛИ 19. Блоки 24 и 25 элементов И блокированы сигналом
40 (логический ноль) с выходов элемента И 22 и элемента ИЛИ 20 соответственно, поэтому информация на блок
30 поступает только с выходов блока
23. Так как в коде адреса команды пе45 рехода всегда присутствует хотя бы одна единица, на выходе элемента
ИЛИ 19 формируется сигнал (логическая единица), который поступает на третий вход элемента И 11 и разре" шает прохождение сигнала перехода через элемент И 11 на счетный вход счетчика 4-, на вход записи блока 12 и управляющий вход распределителя 13.
Сигнал с выхода элемента И 11 осу- 55 ществляет прибавление единицы в счетчике 4, переводит распределитель
13 импульсов в следующее положение и дает разрешение на перепись содержимого регистра 3 в регистр (номер которого определяет распределитель
13 импульсов) блока 12 буферных регистров. Сигнал с выхода элемента 16 задержки дает разрешение на перепись содержимого регистра 1 в регистр 3.
Сигнал с выхода элемента 27 задержки прибавляет единицу в счетчике 29. Так как счетчик 29 первоначально обнулен, то после прибавления единицы на его выходах формируется отличный от нуля код, который через элементы ИЛИ 20, НЕ 18 блокирует по первому входу блок
24 .элементов И и сбрасывает триггер
28, блокируя тем самым по первому входу блок 23 элементов И.
Таким образом, произведена запись адреса команды перехода к циклическому участку.
При последующих повторениях этого же участка программы информация в блок 12 не поступает, так как блоки
23, 24 и 25 элементов И блокированы.
На счетный вход счетчика 4 не поступают единицы, так как элемент И 11 блокирован сигналом (логический ноль) с выхода элемента ИЛИ 19. Счетчик 29 считает количество реализованных повторений (циклов) данного участка.
После прохождения циклического участка программы в регистр 1 заносится код адреса очередной команды перехода. Схема 31 сравнения в этом случае формирует на своем выходе сигнал несравнения, который блокирует элемент И 21 и через элемент НЕ 17 разрешает прохождение очередного сигнала перехода (с выхода элемента ИЛИ
9) на выход элемента И 22. Сигнал с выхода элемента И 22 разрешает прохождение содержимого счетчика 29 (количество повторений циклического. участка) через блок 25 элементов И и далее через блок 30 элементов ИЛИ на группу информационных входов блока 12 и входы элемента ИЛИ 19. Сигнал с выхода элемента ИЛИ 19 разрешает прохождение сигнала перехода чеоез элемент И 11, Сигнал с выхода цемента
И 11 производит перевод распределителя 13 в следующее полежение, осу" ществляет прибавление единицы в счетчике 4 и переписывает содержимое счетчика.29 (c группы выходов блока
30) в регистр (номер которого определяет Распределитель .13) блока 12 буферных регистров.
1 l 1049914. 12 Сигнал с выхода элемента И 22, циклическому участку. Количество попройдя элемент 26 задержки, обнуляет второв участка программы в этом слусчетчик 29. Если счетчик 29 заполняет чае равно сумме максимально возможся до окончания повторений участка .. ного кода счетчика 29 и текущего копрограмм, то при поступлении íà грул- 5 . да счетчика 29 после прохождения пу входов 10 устройства очередного цикличе кЬго участка программы. сигнала перехода счетчик 29 обнуля-, -ется (схема 31 сравнения вырабаты" Таким образом, устройство предвает сигнал сравнения и элемент И 21 ставляет эффективное и оперативное открыт), и нулевой код на группе вМ- . 10 средство фиксации последовательности ходов его через элементы ИЛИ 20, адресов реализуемых команд перехода
НЕ 18 устанавливает триггер 28 в еди". в процессе выполнения программы с ничное состояние. Сигнал с прямого автоматическим подсчетом числа повтовыхода триггера 28 разрешает пере" рений циклических участков в про- . запись содержимого регистра 3 через 15 грамме и позволяет исключить гк вторблоки 23 и 30 в блок 12 по ранее ную запись в оперативную память адописанному алгоритму. Содержание . ресов команд переходов циклических .счетчика 4 при этом увеличивается на участков. Тем самым достигается единицу. Следовательно, в блок 12, а . большая производительность предлазатем и в память ЭВИ повторно запи- 20 гаемого устройства по сравнению сывается адрес команды перехода к .с известным.
1049914
ВНИИПИ. Заказ 8427/46
Тираж 706 Подписное филиал Anfl "Патент", г.Ужгород,ул.Проектная,4