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

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

Авторы: Барсуков, Илюшин, Назаров

ZIP архив

Текст

(53)М. Кл. 6061 1/26 9 веуаеретеаешЯ квинтет СССР в дваи изобретений и еткриткЯ(54) УСГРОйСТВО Д особом, а в ряде особ реализашщ реимущества перед го, имеющиеся я ограниченные позволяют, напринеобходимую ируемо устройство для отладки атент Великобритании), соферную память в специалиини-ЭВМ 1 ,ком данного устройства явтствие возможности сформи ру анализируемой програм полученным в результате изство для трассировки шее буферную память,вух реолучать либооманд Изобретение относится к вычислительной технике, в частности к устройствам регистрации результатов испытаний программ в цифровых системах обработки данных.Создание многомашинных и простобольших вычислительных систем, разработка для таких систем достаточно громоздкого программного обеспечения выдвигают задачу повышения эффективности процесса отладки программ. Решение этой задачи может быть достигнуто путем развития и совершенствования программных и аппаратурных средств отладки при рациональном их сочетании. В последнее время развитию программных средств уделяется достаточно большое внимание и здесь имеются существенные результаты и успехи. В тоже время интерес к совершенствованию аппаратурных средств ЭВМ незаслуженно понижен и полученные достижения значительно скромнее. Однако ряд средств отладки принципиально может быть реализован только аппаратным спслучаев аппаратный спимеет сушественные ппрограммным, Более тосредства характеризуютсми возможностями и нмер, получать информацию,для построения структуры анализпрограммы.Известнопрограмм (идержащее бузированной мНедостатляется отсувать структупо записям,мерений.Известно устройи программ, содержасчетчик адреса.Устройство функционирует в джимах работы и позволяет ппоследние адреса реализуемых к3 98009перехода, либо Всю последовательностьадресов реализуемых команд перехода 2Недостатком данного устройства является отсутствие возможности сформировать структуру анализируемой программыпо записям, полученным в результатетрассировки.Это обьясняется тем, что устройствоне позволяет фиксировать в буферной памяти адреса, по которым осуществляетсяпередача управления в анализируемой программе, Устройство не позволяет такжефиксировать в буферной памяти адресанереализуемых команд перехода и адреса, 15по которым предполагалось ветвлениепрограммы в случае выполнения условияперехода.Наиболее близким к предлагаемомупо технической сущности и достигаемомурезультату является устройство для трассировки программ, содержащее блок памяти, регистр адреса контролируемой памяти,операционный регистр, регистр адресаинструкции, модификатор, первую группуэлементов ИЛИ, первую и вторую группыэлементов И, буферную память, причем.группа информационных выходов контролируемой памяти соединена с группойинформационных входов операционного ре- З 0гистра, группа адресных выходов которого соединена с группой входов второйгруппы элементов И, группа адресныхвходов контролируемой памяти соединенас группой выходов регистра адреса конт 35ролируемой памяти, группа входов которого соединена с группой выходов первой группы элементов ИЛИ и с группойвходов модификатора, группа выходовмодификатора через регистр адреса инструкции соединена с группой входовпервой группы элементов И, группы выходов первой и второй групп элементовИ соединены соответственно с первой ивторой группами входов первой группы45элементов ИЛИ, входы первой и второйгрудищ элементов И соединены соответственно с первым и вторым управляющимивходами устройства.Устройство функционирует в трех режимах. В первом режиме в буферной па 50мяти фиксируются адреса переходов, т,е,те адреса, куда передается управление.Во втором режиме фиксируются в буфернойпамяти адреса, куда передается управление, а также адреса, откуда полученоуправление. Таким образом, фиксируютсяграницы линейных участков программ, Втретьем режиме регистрируется адрес 6 4каждой выполняемой инструкции, т.е. в буферной памяти формируется трасса анализируемой программы. Следует отметить, что в третьем режиме в буферной памяти фиксируется наиболее полная информация о трассе программы, т,е. иэ нее можно извлечь информацию, получаемую при функционировании устройства как в первом, так и во втором режимах работыЯ.Недостатком данного устройства является отсутствие возможности сформировать структуру анализируемой программы по записям, полученным в результате трассировки.Это объясняется тем, что устройство не позволяет фиксировать в буферной па.мяти адреса нереализуемых команд. перехода и адреса, по которым предполагалось ветвление программы в случае выполнения условия перехода.Цель изобретения - расширение функциональных возможностей за счет запоминания адресов нереализуемых команд перехода и адреса, по которому осуществляется ветвление программы при выполнении перехода.Поставленная цель достигается тем, что в устройство для отладки программ, содержащее блок памяти, регистр адреса, операционный регистр, регистр адреса инструкции, сумматор, первую группу элементов ИЛИ, первую и вторую группы элементов И, блок буферной памяти, причем группа информационных выходов блока памяти соединена с группой информационных входов операционного регистра, информационный выход регистра адреса инструкции соединена с первыми вйодами элементов И первой группы, выходы кото рых соединены с первыми входами эле.ментов ИЛИ первой группы, выходы элементов ИЛИ первой группы соединены с входами сумматора и с входами регистра адреса, информационные выходы которого соединены с группой адресных -входов блока памяти, выходы сумматора соединены с группой информационных входов ре" гистра инструкции, первая группа информационных выходов операционного регистра соединена с первыми входами элементов .И второй группы, выходы которых соединены со вторыми входами элементов ИЛИ первой группы, вторые входы элементов И первой и второй групп соединены соответственно с первым и вторым входами передачи очередного адреса устройства, в устройство введены регистр кода операции, схема сравнения, третья и четвертая группы элементов И, первый и вто5 980 рой элемент ИЛИ, вторая группа элементов ИЛИ, элемент задержки, счетчик адреса и триггер, причем группа информационных входов устройства соединена с группой информационных входов регистра кода операции, группа информационных выхоров которого соединена с первой группой входов схемы сравнения, вторая группа выходов операционного регистра сое- . динена. со второй группой входов схемы 10 сравнения, выход которого подключен к первому входу первого элемента ИЛИ и входу элемента задержки, вход выборки инструкции устройства соединен со вторым входом первого элемента ИЛИ, вы ход которого соединен со вторыми входами элементов И третьей группы и с первым входом второго элемента ИЛИ, выход которого подключен к сч тному входу счетчика адреса, выход переполнения и 20 информационные выходы счетчика адреса соединены соответственно, со счетным входом триггера с адресным входом буферного блока памяти, группа информационных выходов которого является груп пой выходов устройства, выход триггера соединен с управляю)цим входом бЛока буферной памяти, выход переполнения счетчика адреса является управляющим выходом устройства, выход элемента 30 задержки соединен со вторым входом второго элемента ИЛИ и с первыми входами элементов И четвертой группы, выходы которых соединены с первой группой входов элементов ИЛИ второй группы,з 5 выходы элементов И третьей группы соединены со вторыми входами элементов ИЛИ второй группы, выходы которых соединены с группой информационных входов буферного блока памяти, первая 40 группа выходов регистра адреса и первая группа информационных выходов операционного регистра соединены соответственно со вторыми входами элементов И третьей и четвертой групп соОтветствен но, установочный вход устройства соединен с третьим входом второго элемента ИЛИ. Прежде чем описать работу устройства в различных режимах, определим на.значение отдельных элементов предлагаемого устройства, Устройство включает блок памяти, в котором хранится анализируемая программа. Адресуется память55 посредством регистра адреса контролируемой памяти. В исходном состоянии ин струкция, прочитанная из ячейки памяти по адресу, находящемуся в регистре ад 096 6реса, находится в операционном регистре,где временно запоминается для последующей обработки. В последствии адреснаячасть инструкции через группу адресныхвыходов операционного регистра, вторуюгруппу элементов И, первую группу элементов ИЛИ, может быть использованадля переадресации контролируемой памяти и выборки следующей инструкции. Посредством сумматора происходит увеличение значения адреса инструкции на единицу и таким образом осуществляется выборка следующей инструкции из смежнойобласти контролируемой пак:яти, Адресинструкции из сумматора может бытьпередан через регистр адреса инструкции,первую группу элементов И, первуюгруппу элементов, ИЛИ на регистр адреса блока памяти, В зависимости от кодаусловия ЭВМ вырабатывает сигнал либопо первому, либо повторому управляющему входу устройства, в результате чего соответственно происходит"выборкаочередной инструкции на операционныйрегистр либо из смежной области контролируемой памяти, либо по адресу, хранящемуся в адресной части обрабатываемой инструкции. Счетчик адреса обеспечивает адресацию к буферной памяти, которая предназначена для хранения адресов инструкций. Порядок фиксации адресов определяется режимбм функционирования устройства,Введение новых элементов в устройство для трассировки программ обеспечивает работу предлагаемого устройства вдвух режимах. Первый режим работыаналогичен третьему режиму работы устройства, выбранного в качестве прототипа, В этом режиме в буферной памятификсируется наиболее полная информацияо трассе программы, т.е. из нее можноизвлечь информацию, получаемую прифункционировании устройства, выбранногов качестве прототипа, как в первом таки во втором режимах работы. Второй режим работы обеспечивает фиксацию в буферной памяти как адресов всех команд перехода, встречающихся в процессе выполнения анализируемой программы, так и адресов, по которым предполагалось ветвление программы в случае выполнения условия перехода. Этой информации достаточно для того, чтобы построить структуру анализируемой программы.Кроме того, введение новых элементов в устройство для трассировки про7 9800грамм позволяет осуществить сохранениетекушей трассы при заполнении буферногоустройства в процессе анализа программпосредством пррезаписи содержимогобуферного устройства (буферной памяти)на внешний носитель.На фиг, 1 приведена структурная сеема устройства для отладки программ;на фиг, 2 - пример последовательностивыполнения команд анализируемых программ; на фиг. 3 - пример заполнениябуферной памяти в различных режимахработы устройства.Устройство для трассировки программсодержит блок 1 памяти, регистр 2 адреса, операционный регистр 3, регистр 4адреса инструкции, сумматор 5, первуюгруппу 6 элементов ИЛИ, первую 7 ивторую 8 группы элементов И, блок 9буферной памяти, регистр 10 кода операции, схему 11 сравнения, третью 12 ичетвертую 13 группы элементов И, первый элемент ИЛИ 14, вторую группу 15элементов ИЛИ, элемент 16 задержки,второй элемент ИЛИ 17, счетчик 18 адреса, триггер 19, первый 20 и второй21 входы передачи, вход 22 очередногоадреса и выбьрки инструкции,устайовочный;и управляющий входы 23 устройства,группу 24 входов устройства, управляю-30щий выход 25 устройства группу 26 выходов устройства,Группа информационных выходов блока 1 памяти соединена с группой информационных входов операционного регист. ра 3, Группа адресных выходов операционного регистра 3 соединена с группой входов второй группы 8 элементов И ис группой входов четвертой группы 13 4 Оэлементов И, Группа выходов четвертой группы 13 элементов И соединена с первой группой входов второй группы 15элементов ИЛИ, группа выходов которойсоединена с группой информационныхвходов буферной памяти 9. Группа выходов второй группы 8 элементов И соединена со второй группой входов первой группы 6 элементов ИЛИ, группа выходовкоторой соединена с группой входов сумматора 5 и с группой входов регистра2 адреса контролируемой памяти. Группа выходов регистра 2 адреса соединена сгруппой адресных входов блока 1 памяти и с группой входов третьей группы5512 элементов И, группа выходов которойсоединена со второй группой входов второй группы 15 элементов ИЛИ. Группа выходов сумматора 5 через регистр 96, 84 адреса инструкции соединена с группой входов первой группы 7 элементов И, группа выходов которой соединена с первой группой входов первой группы 6 элементов ИЛИ, Первый 20 и второй 21 входы устройства подключены соответственно к входам первой группы 7 и второй группы 8 элементов И. Группа операционных выходов операционного регистра 3 соединена со второй группой входов схемы 11 сравнения, выход которой подключен к первому входу первого элемента. ИЛИ 14 и к входу элемента 16 задержки. Выход элемента 16 задержки подключен к входу четвертой группы 13 элементов И и ко второму входу второ.- го элемента ИЛИ. Выход первого элемента ИЛИ 14 подключен к входу третьей группы 12 элементов И и к первому входу второго элемента ИЛИ 17, выход которого подключен к входу счетчика 18 адреса и к четвертому 23 управляющему входу устройства. Второй вход первого элемента ИЛИ 14 подключен к входу 22 устройства. Группа выходов счетчика 18 адреса соединена с группой адресных входов буферной памяти 9, группа выходов которой соединена с группой 26 выходов устройства, Выход счетчика 18 адреса подключен к управляющему выходу 25 устройства и к счетному входу триггера 19, единичный выход которого подключен к входу буферной памяти 9. Группа 24 входов устройства соединена с группой входов регистра 10 кода операции, группа выходов которого соединена с первой группой входов схемы 11 сравнения. Устройство работает следующим образом,При работе устройства в первом режиме - режиме регистрации адресов всехвыполняемых инструкций - из ЭВМ повходу 22 устройства поступают сигналы,следующие с частотой выборки инструкций из блока 1 памяти. Первый управляющий сигнал, поступивший на третий 22управляющий вход устройства проходитчерез первый элемент ИЛИ 14 и поступает как на разрешающий, вход третьейгруппы 12 элементов И, так и,черезвторой элемент ИЛИ 17 на вход счетчика18, Код адреса, хранящийся в этот момент времени в регистре адреса 2 контролируемой памяти, проходит через третьюгруппу 12 элементов И, вторую группу15 элементов ИЛИ и фиксируется в первой ячейке блока 9 буферной памяти.После считывания адреса анализируемой программы иэ последней ячейки блока 9 буферной очередной сигнал, поступающий по входу 23 устройства, обнуляет счетчик 18 адреса, а импульс сквозного переноса проходит с выхода счетчика 18 адреса на управляющий выход 25 устройства и поступает в ЭВМ. Одновременно он поступает на счетный вход триг гера 19, С единичного выхода триггера 19 снимается потенциал, который переводит буферную память 9 в режим фЗаписьф. Получив сигнал с управляющего выхода 25 устройства, ЭВМ возобновляет гвнерацию сигналов по первому 20, второмф 21 входам 22 устройства в описанной выше последовательности,При работе устройства во втором режиме - режиме регистрации данных о структуре анализируемой программы- сигналы по третьему управляющему входу 22 в устройство не поступают. По группе входов 24 устройства из ЭВМ в регистр 10 кода операции поступает код инструкции перехода. Порядок выборки инструкций из контролируемой памяти.9 9800Затем происходит увеличение содержимого счетчика 18 на единицу. Одновременно с модификацией содержимого счетчика18 адреса из ЭВМ поступает сигнал либо по первому 20, либо по второму 21 5входу устройства, предназначенный дляпередачи .в регистр 2 адреса очередногоадреса анализируемой программы. Поэтому адресу из контролируемой памяти1 на операционный регистр 3 выбирается очередная инструкция. Затем вновьиз ЭВМ поступает сигнал по третьему22 управляющему входу устройства, который обеспечивает запись во вторую ячейку блока 9 памяти, хранящегося в регистре адреса и модификацжо на единицусодержимого счетчика 18 адреса,Процесс заполнения блока 9 буфернойпамяти показан на фиг. 3. Анализируемаяпрограмма начинает выполняться с первого адреса М 1 основной программы. Нафиг. 2 каждый квадратик обозначаетодин адрес. Основная программа выполняется без ветвления вплоть до инструкции с адресом М 4. Эта инструкция - инструкция условного перехода. Однако условие перехода не было выполнено, поэтому управление передалось команде М 5.Далее основная программа выполняетсявплоть до инструкции с адресом М 8, ко- ЗОторая является очередной инструкцией: передачи управления, но ее условие впротивоположность инструкции с адресомМ 4, - выполняется. Поэтому после того,как в блоке 9 буферной памяти будетзафиксирована последовательность адресов с М 1 до М 8, следующим фиксируется адрес перехода 6 1. Основная программа прекращается, управление передается вызываемой программе по адресу 401. Далее вызываемая программа выполняется непрерывно до инструкции 64,которая снова является инструкцией условного перехода, в которой условие перехода выполнилось. Как показано нафиг. 2, вызываемая программа переходит на команду с адресом 57. Затемвызываемая программа выполняется досвоего конца и передает управление восновную программу в то место, в котором основная программа была первоначально прервана. Таким образом, вызывае.мая программа передает управление восновную программу по адресу М 9. Сэтой инструкции продолжается непрерыв 55ное выполнение основной программывплоть доппоследней инструкции М 16.Итак, в первом режиме работы устройства в блок 9 буферной памяти фиксируются 9610адреса всех последовательно выполняющихся инструкций.После записи адреса анализируемой программы в последнюю ячейку блока 9 буферной памяти счетчик 18 адреса об нуляется, а импульс сквозного переноса проходит с выхода счетчика 18 адреса на управляющий выход 25 устройства и поступает в ЭВМ. Одновременно он поступает на счетный вход триггера 19. На единичном выходе триггера 19 вырабатывается потенциал, который переводит блок 9 буферной памяти в режим фЧтениеф. Получив сигнал с управляющего выхода 25 устройства, ЭВМ прекращает генерацию сигналов по первому 20, второму 21 и входу 22 устройства и начинает вырабатывать сигналы, которые по входу 23 устройства через второй элемент ИЛИ 17 поступают на вход счетчика 18 адреса. На группе выходов 26 устройства вырабатывается информация, считываемая из блока 9 буферной памяти, которая поступает в ЭВМ для хранения и обработки. Частота появления кодов адресов на группе выходов 26 устйства соответствует частоте поступления сйгналов по входу 23 устройства. Таким образом, содержимое блока 9 буферной памяти устройства для трассировки программ переписывается в память ЭВМ.11 980096 12первом режиме ра- Во втором режиме работы устройствав буферную память записываются как адрена операционный ре- са всех команд перехода, встречающихсяструкции код опера- в процессе выполнения анализируемой ет с кодом операции, 5 программы, так и адреса, по которым тре 10 кода операции, предполагается ветвление программы в слувырабатывает сиг- чае выполнения условия перехода. По реает на первый эле- зультатам работы устройства во втором мент 16 задержки, режиме работы можно построить струклемента ИЛИ 14 сигнал 10 туру анализируемой программы. ретьей группы 12амым обеспечивая Кроме того устройство для трассировбуферной памяти а, ки программ позволяет при необходимости сохранить текущую трассу посредстехода,вом перезаписи содержимого заполненноеличение и о го буферного устройства на внешний но еличение содержимогоситель. 55 1 такой же, как и вботы устройства,При поступлениигистр 3 очередной инции которой совпадахранящемся в региссхема 11 сравнениянал, который поступмент ИЛИ 14 и элеС выхода первого эпоступает на вход тэлементов И, тем сфиксацию в блоке 9реса инструкции перв момент фиксации,блока 2 памяти. Увсчетчика 18 адреса на единицу происходит после записи адреса инструкции перехода в блок 9 буферной памяти сигналом,поступаюшим с выхода первого момента 20ИЛИ 14 через второй элемент ИЛИ 17на вход счетчика 18 адреса. Тем самымопределяется смежная область блока 9буферной памяти для записи следующегоадреса. 25Сигнал с выхода элемента 16 задержкипоступает на вход четвертой группы 13элементов И, обеспечивая фиксацию вбуферной памяти 9 адреса перехода инструкции передачи управления храняшего- З 0ся на время выполнения инструкции воперационном регистре 3. Затем осуществляется увеличение содержимого счетчика 18 адреса на единицу сигналом, поступаюшим с выхода элемента 16 задержкичерез второй элемент ИЛИ 17 на входсчетчика 18 адреса, В результате этогоподготавливается адрес буферной памяти9 для записи следующего адреса.1При несовпадении кода операциии вь"; 4,полняемой инструкции с кодом, хранящемся в регистре 10 кода операции, схема11 сравнения сигнал не вырабатывает.Таким образом, в блок 9 буферной,памяти фиксируются последовательно в смеж 45ных областях памяти адрес инструкцииперехода и адрес перехбда (независимоот выполнения условия перехода), Дальнейшая работа устройства во втором режиме аналогична работе устройства впервом режиме (фиг, 2,3). Таким образом,50устройство для трассировки программфункционирует в двух режимах. В первомрежиме работы устройства.для определения хода вычислительного, процесса вблоке 9 буферной памяти фиксируютсявсе адреса последовательности выполняющихся команц анализируемой программы. Формула изобретения Устройство для отладки программ, содержащее блок памяти, регистр адреса, операционный регистр, регистр адреса инструкции, сумматор, первую группу элементов ИЛИ, первую и вторую группы элементов И, блок буферной памяти, причем группа информационных выходов блока памяти соединена с группой информационных входов операционного регистра, информационный выход регистра адреса инструкции соединен с первыми входами элементов И первой группы, выходы которых соединены с первыми входами элементов ИЛИ первой группы, выходы элементов ИЛИ первой группы соединены с входами сумматора и с входами регистра адреса, информационные выходы которого соединены с группой адресных входов блока памяти, выходы сумматора соединены с. группой информационных входов регистра инструкции, первая группа информационных выходов операционного регистра соединена с первыми входами элементов И второй группы, выходы которых, соединены со вторыми входами элементов ИЛИ. первой группы, вторые входы элементов И первой и второй групп соединены соответственно с первым и вторым входами передачи очередного адреса устройства, о т л и ч а ю ш,е е с я тем, что, с целью расширения функциональных возможностей устройства за счет запоминания адресов нереализуемых команд перехода и адреса, по которому осуществляется ветвление программы при выполнении перехода, в устройство введены регистр кода операций, схема сравнения, третья и четвертая группы элементов И,М 00 первый и второй элементы ИЛИ, вторая группа элементов ИЛИ, элемент задержки, счетчик адреса и триггер, причем группа информационных входов устройства соединена с группой информационных ВходоВ регистра кода операции, группа информационных выходов которого соединена с первой группой входов схемы сравнения, вторая группа выходов операционного ре-, гистра соединена со второй группой вхо о дов схемы сравнения, выход которой подключен к первому входу первого элемента ИЛИ и входу элемента задержки, вход выборки инструави устройства соединен со вторым входом первого элемента ИЛИ, 1 выход которого соединен со вторыми входами элементоВ И третьей группы и с первым входом второго элемента ИЛИ, выход которого подключен к счетному входу счетчика адреса, выход переполне- що ния и информационные выходы счетчика адреса соединены соответственно со счетным входом триггера и с адресным входом буферного блока памяти, группа информационных выходов которого являет з ся группой выходов устройства, выход триггера соединен с управляющим входом блока буферной памяти, выход переполнения счетчика адреса является управляюням входом устройства, ыд эле- . Зо мента задержки соединен со вторым вхо 96 14дом второго элемента ИЛИ и с первымивходами элементов И четвертой группы,выходы которых соединены с первойгруппой входов элементов ИЛИ второйгруппы, выходы элементов И третьейгруппы соединены со вторыми входамиэлементов ИЛИ второй группы, выходыкоторых соединены с группой информационных входов буферного блока памяти,первая группа выходов регистра адресан первая группа информационных выходов операционного регистра соединенысоответственно со вторыми входами элементов И третьей и четвертой группсоответственно, установочный вход устройства соединен с третьим входом второго элемента ИЛИ,Источники информации,принятые во внимание при экспертизе1. Патент Великобритании1436428, кл. 606 Г 11/06, 1973. 2. Фараджев В, А. и др, Комплексаппаратных средств ЭВМ для отладкипрограмм реального времени. - УСИМ,1980 ф1 ь с. 49-51.3. Патент Великобритании1441444, кл. 606 Г 11/00, 1973Тираж 731 НИИПИ Государственного комитета по делам изобретений и открытий 13035, Москва, Ж 35, Раушская на

Смотреть

Заявка

3301644, 17.04.1981

ВОЙСКОВАЯ ЧАСТЬ 44388-Р1

БАРСУКОВ АЛЕКСЕЙ ГРИГОРЬЕВИЧ, ИЛЬЮШИН АЛЕКСАНДР ИВАНОВИЧ, НАЗАРОВ СТАНИСЛАВ ВИКТОРОВИЧ

МПК / Метки

МПК: G06F 11/26

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

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

Код ссылки

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

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