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

Номер патента: 1049914

Авторы: Петренко, Сахно, Сухин

ZIP архив

Текст

(19) (11 Зщ С 06 Г 11 д а ъв ИСАНИ РЕТЕНИ ИДЕТЕЛЬСТВ ТОРСНОМ 78/18-2482)й 3673573,блик, 1972.идетельство ССГ 9/36, (прот кл. 3402, Ав Я 754419 тип). ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИ(54)(57) устРойство для 1 отлАдкй ПРОГРАММ, содержащее регистр исполнительного адреса, первый блок элементов И, регистр адреса команд, первый и второй элементы И, первый счетчик, распределитель импульсов, блок буферных регистров, первый триггер, первый элемент задержки, первый элемент ИЛИ, входы которого соединены с группой входов команд переходов устройства, а выход соединен с входом первого элемента задержки и с первым входом второго элемента И, .второй вход которого соединен с инверсным выходом первого триггера, вход установки в ноль которого соединен с установочным входом устройства, а прямой выход соединен с выхо-, дом прерываний устройства, управляющий вход устройства соединен с пер"вым входом первого элемента И, выход.которого соединен с входом установки в единицу первого триггера, второй вход первого элемента И соединен с выходом переполнения первого счетчи.- ка, счетный вход которого соединен с, выходом второго элемента И, с управляющим входом распределителя импуль" сов и входом записи блока буферных регистров, группа управляющих входов которого соединена с группой выходов распределителя импульсов, выход бло ка буферных регистров соединен с группой информационных выходов уст, ройства, группа информационных входов регистра исполнительного адреса соединена с группой адресных входов команд перехода устройства, группа выходов регистра исполнительного адреса соединена с группой входов первого блока элементов И, группа выходов которого соединена с группой информационных входов регистра адреса команд, о т и и ч а ю щ е е с я тем, что, с целью увеличения производи- Щ тельности, в него введены третий и четвертый элементы И, второй, третий и четвертый блоки элементов И, первый и второй элементы НБ, второй и третий элементы ИЛИ, второй счетчик, второй и третий элементы задержки, второй триггер, схема сравнения и блок элементов ИЛИ, группа выходов которого соединена с группой информационных входов блока буферных регистров и Йходами второго элемента ИЛИ, выход которого соединен с третьим входом второго элемента И, первая группа входов блока элементов ИЛИ соединена с группой выходов второго блока элементов И, первый вход которого соединен с прямым вы,. ходом второго триггера, вход уста,новки в ноль которого соединен с входом второго элемента НБ, выходом третьего элемента ИЛИ и первым входом четвертого блока элементов И, группа выходов которого соединейа с , второй группой входов блока элемен1049911 2 тов ИЛИ, третья группа входов которого соединена с группой выходовтретьего блока элементов И, первыйвход которого соединен с выходомвторого элемента НЕ и входом установки в единицу второго триггера,второй вход третьего блока элементовИ соединен с выходом четвертого элемента И, входом второго элемента задержки и с вторым входом четвертогоблока элементов И, группа входовкоторого соединена с входами третьего элемента ИЛИ и с выходами второго счетчика, вход установки в нолькоторого соединен с выходом второгоэлемента задержки, а счетный вход "с выходом третьего элемента задержИзобретение относится к вычислительной технике, а именно к устройствам для программного управления,и может быть использовано в ЭВИ для,обеспечения отладки программ.Процесс отладки программ заключается в контроле последовательности чередования исполняемых адресовкоманд условных и безусловных переходов. Фиксация последовательностиадресов команд перехода осуществляется обычно в оперативном запоминаю.щем устройстве (ОЗУ) с последующимих считыванием, анализом и исправле.нием ошибок в программе.Известно устройство для отладкйпрограмм, содержащее память типаОЗУ для записи адресов условных ибезусловных переходов 111,Недостатком устройства являетсямалая производительность.Наиболее близким к предлагаемомуявляется устройство дпя управленияпамятью, содержащее регистр исполнительного адреса, регистр адреса команд, блок буферных регистров,. счетчик, триггер, распределитель, элемент ИЛИ, элементы И, элемент задержки 2.МОднако практически все программыв этом устройстве содержат большоеколицество циклицеских участков сразным числом повторения каждого ки, вхЬд которого соединен с вторымвходом второго блока элементов И и сВыходом третьего элемента И, первыйвход которого соединен с выходомпервого элемента ИЛИ и с первым входом четвертого элемента И, вторЬйвход которого соединен с выходомпервого элемента НГ, вход которогосоединен с вторым входом третьегоэлемента И и с выходом схемы сравнения, первая группа входов которойсоединена с группой выходов регистра исполнительного адреса, а втораягруппа входов схемы сравнения сое инена с группой выходов регистраадреса команд и с группой входоввторого и третьего блока элементов И. участка; При отладке; таких программна известном устройстве в ОЗУ в про- цессе прохождения циклического участка записывается один и тот же адрес5 перехода, что приводит к низкой производительности устройства.Цель изобретения - увеличение производительности при отладке, программоперативной памяти ЭВМ,10Эта цель достигается тем, что вустройство для отладки программ,содержащее регистр исполнительногоадреса, первый блок элементов И, ре"гистр адреса команд, первый и второйэлементы И, первый счетчик, распределитель импульсов, блок буферных регистров, первый триггер, первый эле"мент задержки, первый элемент ИЛИ,входы которого соединены с группой,входов команд переходов устройства,а выход соединен с входом первогоэлемента задержки и с первым входомвторого элемента И, второй вход которого соединен с инверсным выходомпервого триггера, вход установки в .ноль которого соединен с установоч-.ным входом устройства, а прямой выход соединен с выходом прерываний5 0 15 25 30 35 ются первым входом блока 2, Вторые входы составляют группу входов эле мента и. элемент И соединен с выходом переполнения первого счетчика, счетный вход которого соединен с выходом второго элемента И, с управляющим входом распределителя импульсов и входом записи блока буферных регистров, группа управляющих входов кота" рого соединена с группой выходов распределителя импульсов, выход блока буферных регистров соединен с группой информационных выходов устройства, группа. информационных входов регистра исполнительного адреса . соединена с группой адресных входов команд перехода устройства, группа выходов регистра исполнительного адреса соединена с группой входовпервого блока элементов И, группа выходов которого соединена с группой информационных входов регистра адреса команд, введены третий и четвер" тый элементы И, второй, третий и четвертый блоки элементов И, первый и второй элементы НЕ, второй и третий элементы. ИЛИ, второй счетчик, второй и третий элементы задержки,второй триггер, схема сравнения и блок элементов ИЛИ, группа выходовкоторого соединена с группой инфор; мационных. входов блока буферных регистров и входами второго элемента ИЛИ, выход которого соединен с третьим входом второго элемента И, первая группа входов блока элементов ИЛИ соединена с группой выходов второго блока элементов И, первый. вход которого соединен.с прямым выходом второго триггера, вход установ ки в ноль которого соединен с входом второго элемента НЕ, выходом третьего элемента ИЛИ и первым входом чет- .40 вертого блока элементов И, группа выходов которого соединена с второй группой входов блока элементов ИЛИ, третья группа входов которого соединена с группой выходов третьего бло- ф ка элементов И, первый вход. которо-, го соединен с.выходом второго элемен-. та НЕ и входом установки в единицу второго триггера, второй вход третье. го блока элементов И соединен с выходом четвертого элемента И, входом второго элемента задержки и с вторым входом четвертого блока элементов И, группа входов которого соединена с входами третьего элемента ИЛИ 5 и с выходами второго счетчика, вход установки в ноль которого соединен с выходом второго элемента задержки,а счетный вход - с выходом третьегоэлемента задержки, вход которогосоединен с вторым входом второго,блока элементов И и с выходом третьего элемента И, первый вход которого соединен с выходом первого элеиента ИЛИ и с первым входом четвертого элемента И, второй вход которого соединен с выходом первого элемента НЕ, вход которого соединен с вторым входом третьего элемента И и свыходом схемы сравнения, первая группа входов. которой соединена с группой выходов регистра исполнительногоадреса, а вторая группа входов схемысравнения соединена с группой выходов регистра адреса команд и с группой входов второго и третьего блока элементов И.На чертеже приведена функциональная схема предлагаемого устройства.Устройство содержит регистр 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 элементов И представляет собой набор и-двухвходовых элементов И, первые входы, которых объединены и являСтруктура регистра 3 аналогична структуре регистра 1, Счетчик 4 предназначен для счета импульсов, является кольцевым и вырабатывает на своем выходе сигнал при переполнениь Блок 12 состоит из регистров, предназначенных для приема, хранения ивыдачи и-разрядного параллельногокода, На каждом разрядном входевсех регистров установлены элемен. ты И на три входа. Первые входы всехэлементов И объединены и являются 5, входом записи блока 12. Вторые входы каждых и (по количеству разрядовв регистрах) элементов объединеныи образуют группу управляющих входовблока 12. Третьи входы каждого эле Омента И объединены в группу информационных входов, Запись кода в определенный регистр блока 12 обеспечивается наличием разрешающих потенциалов на входе записи блока 12 и на 15определенном входе из группы (щ) управляющих входов блока 12 (от распределителя 13 импульсов) .Распределитель 13 импульсов выполнен по одной из классических схем. 20Количество выходов распределителящ (по числу регистров в блоке 12),.образуют группу выходов.Блоки 23-25 элементов И представляют собой набор и-трехвходовых элементов И, первые входы которых объе"динены в первый вход блоков 23 - 25объединение вторых входов образуетвторой вход блоков 23 - 25, Третьивходы элементов И образуют группу 30входов, Счетчик 29 построен по классической схеме, имеет счетный вход ивход установки в ноль. Съем информации с выходов счетчика - параллельный. Блок 30 элементов ИЛИ представляет собой набор и-трехвходовых элементов ИЛИ. Схема 31 сравнения предназнацена для поразрядного сравнениядвух параллельных двоичных кодов,поступающих на их группы входов. Сигнал (логическая единица) на выходесхемы 31 формируется при поразрядномсовпадении сравниваемых кодов.Входы 6 и 8, выход 15 устройствасвязан с приоритетной системой ЭВМ. 45Сигналы (команды перехода) на груп"пу входов 10 устройства поступают спроцессора ЭВМ (например, с дешифратора регистра кода операции),Группа информационных выходов 14устройства предназначена для перезаписи кодов из регистров блока 12 вОЗУ ЭВМ,Время задержки элементов 16 26 и 27 задержки выбирается из условия 55 надежного занесения информации в регистр блока 12. При выполнении программ для изменения порядка следования команд используется содержимоерегистра 3, где хранится адрес команды перехода. При выполнении программы устройство работает в двух режи"мах, Пока нет циклического участкав линейном режиме, при появлении циклического участка - в циклическомрежиме.Устройство работает следующим образом.В исходном положении регистры 1 и3, счетчики 4 и 29, распределитель13 импульсов, блок 12 буферных регистров и триггер 7 обнулены, Цепи уста-новки в ноль на чертеже не показаны.Кроме того триггер 28 устанавливается в исходное (единичное) состояние сигналами с выходов обнуленногосчетчика 29 через элементы ИЛИ 20,НЕ 18,Для удобства описания работыустройства вначале рассмотрим егоработу в линейном режиме.В этом режиме изменение порядкаследования команд происходит поддействием команд условного и безусловного перехода, поступающих сгруппы входов 10 устройства на элемент ИЛИ 9 и далее с его выхода навходы элементов И 11 2 1 и 22 и эле-ментов 16 задержки.1Так как в исходнои состоянии в регистре 3 записан нулевой код, а в регистр 1 в процессе подготовки ЭВМ к выполнению команды перехода записывается код адреса команды пере. хода, то на выходе схемы 31 сравнения вырабатывается сигнал несравнения - логический ноль, который запрещает прохождение сигнала перехода (логическая единица) с выхода элемента ИЛИ 9 через элемент И 21, а пройдя через элемент ЙЕ 17, разрешает прохождение сигнала перехода через элемент И 22 на второй вход блока 24 элементов И, на первом входе которого присутствует разрешающий потенциал (логическая единица) с выхода элемента НЕ 18 ( в исходном состоянии счетчик 29 обнулен, и нулевой код с его выходов поступает на входы элемента ИЛИ 20 и формирует на его выходе и, следовательно, на входе элемента НЕ 18 логический нсаь), В исходном состоянии в регистре 3 записан нулевой код, поэтому на группе выходов блока 24 также присутствует нулевой код, который поступаетЮна третью группу входов блока 30.На других группах входов блока 30 также присутствуют нулевые коды, за счет того, что на первом входе блока 25 элементов И и на.втором входе бло-. 5 ка 23 элементов И присутствуют запрещающие нулевые сигналы, поступающие соответственно с выхода элемента ИЛИ 20 и с выхода элемента И 21, следовательно, на группе выходов блока 30 1 О элементов .ИЛИ также присутствует ну-. левой код, который поступает на входы элемента ИЛИ 19, формируя на его вы" ходе запрещающий потенциал, Этот сиг-нал поступает на третий вход элемен- .15 та И 11 и запрещает прохождение через него сигнала перехода. Поэтому на вы" ходе элемента И 11 не появляется сиг нал разрешения записи исходного (нулевого) кода регистра 3 в блок 12 буферных регистров, а в счетчик 4 не добавляется единица. Кроме того, сиг-. нал перехода с выхода элемента ИЛИ 9, пройдя элемент 16 задержки, осуществляет перепись содержимого регистра 1 25 в регистр 3При реализации следующей .команды перехода схема 31 сравнения снова вырабатывает сигнал несравнения 1 ло гический ноль, который запрещает прохождение сигнала перехода с выхода элемента ИЛИ 9 через элемент И 21. Однако, пройдя элемент НЕ 17, сигнал несравнения разрешает прохождение сигнала перехода через элемент И 22 на второй вход блока 24, Так как на выходе элемента И 21 присутствует нулевой сигнал, то счетчик 29 не изменяет своего состояния, и нулевой код с его выхода через элемент ИЛИ 20 поступает на вход элемента НЕ 18. На выходе элемента НЕ 18 формируется единичный сигнал, который поступает на первый вход блока 24 и разрешает 45 передачу, содержимого регистра 3 (код ; адреса предыдущей команды перехода) на третьею группу входов блока 30 и далее на группу информационных входов блока 12 и на входы элемента ИЛИ 19В коде адреса команды всегда присутствует хотя бы одна единица. По" этому на выходе элемента ИЛИ 19 формируется сигнал, поступающий на тре тий вход элемента И 11, На втором входе элемента И 11 присутствует разрешающий сигнал (логическая единица) с инверсного выхода триггера 7 (триггер 7 в исходном. нулевом состоянии).Следовательно, сигнал перехода проходит на выход элемента И 11 и поступает на управляющий вход распределителя 13 импульсов. При этом на первом выходе из его группы выходов ;появляется единичный сигнал, Кроме того, сигнал ,с выхода элемента И 11 осуществляет прибавление единицы в счетчик 4 и дает разрешение на перепись содержимого регистра 3(с группы выходов блока 30 элементов ИЛИ) в регистр блока 12 буферных регистров, Прохождение кодов через блоки 23 и 25 элементов И, как и в первом случае, блокируется сигналами (логические нули) с выходов элементов И 21 и ИЛИ 20 соответственно.Сигнал с выхода элемента 16 задержки осуществляет перепись содержимого регистра 1 в регистр 3 и тем са мым подготавливает устройство к обрафботке следующей команды условного (безусловного) перехода , Коды адресов команд перехода с регистра 3 переписываются в регистры блока 12, но-. мера которых определяются сигналом на соответствующем выходе группы выходов распределителя 13 импульсов.Счетчик 4 считает количество реализованных команд переходов и выдает сигнал переполнения при выполнении я команд перехода.Сигнал переполнения поступает на второй вход элемента И 5 и при условии разрешения по входу 6 устройства . поступает.на вход триггера 7 С выхода триггера 7 сигнал выдается в приоритетную систему ЭВМ, сообщая с заполнении всех регистров блока 12. Нулевой сигнал с триггера 7 поступает на элемент И 11 и блокирует распределитель 13 импульсов, счетчик 4 и блок 12 буферных регистров,Блокировка обеспечивает сохранение содержимого регистров блока 12 до его переписи через группу выходов 14 устройства в оперативную память ЭВИ. Пос ле переписи содержимого этих регистров в оперативную память ЭВМ триггерсбрасывается 1. сигналом по входу 8 и тем самым подготавливает устройство к следующему циклу работы.Предлагаемое устройство работает по описанному алгоритму до циклического участка в программе в частном случае, до конца программы).При наличии циклического участка программы устройство переходит в циклический режим работы. Для определе ния правильности прохождения циклического участка необходимо определить 5 количество повторений этого цикличес кого участка.При повторении ЭВМ какого-либо участка программы в регистр 1 повторно заносится код адреса команды 10 перехода, по которой был сделан переход при реализации ЭВМ предыдущей команды перехода,.Поэтому код адреса предыдущей команды перехода, хранящийся в регистре 3; совпадает с 15 кодом адреса следующей команды перехода. В этом случае схема 31 сравнения вырабатывает сигнал сравнения логическая единица), который разрешает прохождение сигнала перехода с 20 выхода элемента ИЛИ 9 через элемент И 21 и блокирует (через элемент НЕ.17) прохождение сигнала перехода через элемент И 22.25Сйгнал с выхода элемента И 21 поступает на вход элемента 27 задерж- ки и на второй вход блока 23 элементов И, на первом входе которого также присутствует разрешающий сигнал с прямого выхода триггера 28(триггер 28 находится в исходномединичном состоянии), так как счетчик 29 обнулен) . Содержимое регистра 3(код адреса команДы перехода циклического участка) через блок 23 элементов И поступает на первую группу входов блока 30 элементов ИЛИ и далее на группу информационных входов блока 12, и входы элемента ИЛИ 19. Блоки 24 и 25 элементов И блокированы сигналом40 логический ноль) с выходов элемента И 22 и элемента ИЛИ 20 соответственно, поэтому информация на блок 30 поступает только с выходов блока 23. Так как в коде адреса команды пе 45 рехода всегда присутствует хотя бы одна единица, на выходе элемента ИЛИ 19 Формируется сигнал (логическая единица), который поступает на третий вход элемента И 11 и разре" шает прохождение сигнала перехода через элемент И 11 на счетный вход счетчика 4, на вход записи блока 12 и управляющий вход распределителя 13 Сигнал с выхода элемента И 11 осу ществляет прибавление единицы в счетчике 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 1 количество повторений циклическогоучастка) через блок 25 элементов И и далее через блок 30 Элементов ИЛИ нагруппу инФормационных входов блока 12и входы элемента ИЛИ 19. Сигнал свыхода элемента ИЛИ 19 разрешает прохождение сигнала перехода чеоез элемент И 11, Сигнал с выхода эНементаИ 11 производит перевод распределителя 13 в следующее полежение, осу"ществляет прибавление единицы всчетчике 4 и переписывает содержимоесчетчика.29 (с группы выходов блока30) в регистр (номер которого определяет распределитель 13) блока 12 буферных регистров.111049914, 12СигнВ с выхода элемента И 22, циклическому участку. Количество по- пройдя элемент 26 задержки, обнуляет второв участка программы в этом слусчетчик 29. Если счетчик 29 заполняет чае равно сумме максимально возможся до окончания повторений участка . ного кода счетчика 29 и текущего копрограмм, то при поступлении на грул . да счетчика 29 после прохождения пу входов 10 устройства очередного цикличекЬго участка программы. сигнала перехода счетчик 29 обнуля-,ется (схема 31 сравнения вырабаты" Таким обравом, устройство предвает сигнал сравнения и элемент И 21ставляет эффективное и оперативное открыт), и нулевой код на группе вМ- . 10 средство фиксации последовательности ходов его через элементы ИЛИ 20, адресов реализуемых команд перехода НЕ 18 устанавливает триггер 28 в еди". в процессе выполнения программы с ничное состояние. Сигнал с прямого автоматическим подсчетом числа повтовыхода триггера 28 разрешает пере"рений циклических участков в про- . запись содержимого регистра 3 через 5 грамме и позволяет исключить повтор- блоки 23 и 30 в блок 12 по ранееную запись в оперативную память адописанному алгоритму. Содержание . ресов команд переходов циклических .счетчика 4 при этом увеличивается на участков. Тем самым достигается единицу. Следовательно, в блок 12, а большая производительность предлазатем и в память ЭВИ повторно запи гаемого устройства по сравнению сывается адрес команды перехода к .с известным.ВНИИПИ. Заказ 8427/4 Тираж 706 Подписное юфилиал ППП "Патент",Ужгород,ул.Проектная

Смотреть

Заявка

3472178, 15.07.1982

ПРЕДПРИЯТИЕ ПЯ М-5156

ПЕТРЕНКО СТАНИСЛАВ ИВАНОВИЧ, САХНО АНАТОЛИЙ ИВАНОВИЧ, СУХИН ВЛАДИМИР ГЕОРГИЕВИЧ

МПК / Метки

МПК: G06F 11/28

Метки: отладки, программ

Опубликовано: 23.10.1983

Код ссылки

<a href="https://patents.su/8-1049914-ustrojjstvo-dlya-otladki-programm.html" target="_blank" rel="follow" title="База патентов СССР">Устройство для отладки программ</a>

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