1
Изобретение относится к вычислительной технике, в частности к устройствам регистрации результатов испытаний программ в цифровых системах обработки данных.
Создание многомашинных и просто больших вычислительных систем, разработка для таких систем достаточно громоздкого программного обеспеченна выдвигают задачу повьпиения эффективности процесса отладки программ. Решение этой задачи Может быть достигнуто путем развития и совершенствования программных и аппаратурных средств отладки при рациональном их сочетании. В последнее время развитию программных средств уделяется достаточно большое внимание и здесь имеются существенные результаты и успехи. В тоже время интерес к совершенствованию аппаратурных средств ЭВМ незаслуженно понижен и полученные достижения значительно скромнее. Однако ряд средств отладки принципиально может быть реализован
только аппаратным способом, а в ряде случаев аппаратный способ реализашш имеет сушественные преимущества перед программным. Более того, имеющиеся средства характеризуются ограничеш1ыми возможностями и не позволяют, HanpHiмер, получать информацию, необходимую для построения структуры анализируемой программы.
Известно устройство для отладки
10 программ (патент Великобритании), содержащее буферную П€1мять в специализированной мини-ЭВМ tl .
Недостатком данного устройства является отсутствие возможности сформиро15вать структуру анализируемой программы по записям, полученным в результате измерений.
Известно устройство для трассировки программ, содержащее буферную память,
20 счетчик адреса.
Устройство функционирует в двух режимах работы и позволяет получать либо последние адреса реализуемых команд перехода, пибо всю последовательность адресов реализуемых команд перехода 2. .. Недостатком данно1Ч) устройства является отсутствие возможности сформировать структуру анализируемой программы по записям, полученным в результате трассировки. Это объясняется тем, что устройство не позволяет фиксировать в буферной, памяти адреса, по которым осуществляется передача управления в анализируемой про грамме. Устройство не позволяет также фиксировать в буферной памяти адреса нереализуемых команд перехода и адреса по которым предполагалось ветвление программы в случае вьшолнения условия перехода. Наиболее близким к предлагаемому по те.хнической сущности и достигаемому результату является устройство для трас сировки программ, содержащее блок памя ти, регистр адреса контролируемой памят операционный регистр, регистр адреса инструкшга, модификатор, первую группу элементов ИЛИ, первую и вторую группы элементов И, буферную память, причем группа информационных выходов контролируемой памяти соединена с группой информационных входов операционного ре- гистра, группа адресных выходов которого соединена с группой входов второй группы элементов И, группа адресных входов контролируемой памяти соединена с группой выходов регистра адреса контролируемой памяти, группа входов которого соединена с группой выходов первой группы элементов ИЛИ и с группой входов модификатора, грутша выходов модификатора через регистр адреса инструкции соединена с группой входов первой группы элементов И, группы выходов первой и второй групп элементов И соединены соответственно с первой и второй гругшами входов первой группы элементов ИЛИ, входы первой и второй груш элементов И соединены соответственно с первым и вторым управляющими входами устройства. Устройство функционирует в трех режимах. В первом режиме в буферной памяти фиксируются адреса переходов, т.е. те адреса, куда передается управление. Во втором режиме фиксируются в буферн памяти адреса, куда передается управление, а также адреса, откуда получено управление. Таким образом, фиксируются границь линейных участков программ. В третьем реж11ме регистрируется адрес аждой вьшолняемой инструкции, т.е. в уферной памяти формируется трасса анаизируемой программы. Следует отметить, что в третьем режиме в буферной памяти иксируется наиболее полная информация трассе программы, т.е. из нее можно извлечь информацию, получаемую при ункционировании устройства как в первом, ак и во втором режимах работы 33. Недостатком данного устройства является отсутствие возможности сформировать структуру анализируемой программы по записям, полученным в результате трассировки. Это объясняется тем, что устройство не позволяет фиксировать в буферной памяти адреса нереализуемых команд, перехода и адреса, по которым предполагалось ветвление программы в случае вьшолнения условия перехода. Цель изобретения - расщирение функциональных возможностей за счет запоминания адресов нереализуемых команд перехода и адреса, по которому осуществляется ветвление программы при вьшолнении перехода. Поставленная цель достигается тем, что в устройство для отладки программ, содержащее блок памяти, регистр адреса, операционный регистр, регистр адреса инструкции, сумматор, первую группу элементов ИЛИ, первую и вторую грутшы элементов И, блок ферной памяти, причем группа информационных выходов блока памяти соединена с группой информационных входов операционного регистра, . информационный выход регистра адреса инструкции соединена с первыми вяодами элементов И первой группы, выходы которых соединены с первыми входами эле- .ментов ИЛИ первой груггаы, выходы элементов ИЛИ первой группы соединены с входами сумматора и с входами регистра адреса, информационные выходы которого соединены с группой адресных входов блока памяти, выходы сумматора соединены с группой информационных входов регистра инструкции, первая группа информационных выходов операционного регистра соединена с первыми входами элементов И второй группы, выходы которых соединены со вторыми входами элементов ИЛИ .первой группы, вторые входы элементов И первой и второй групп соединены соответственно с первым и вторым входами передачи очередного адреса устройства, в устройство введены регистр кода операции, схема сравнения, третья и четвертая группы элементов И, первый и второй элемент ИЛИ, вторая группа элемен тов ИЛИ, элемент задержки, счетчик адреса и триггер, причем группа информа ционных входов устройства соединена с группой информационных входов регистра кода операции, группа информационны± в ходов которого соединена с первой группой входов схемы сравнения, вторая гру па выходов операционного регистра соединена со второй группой входов схемы сравнения, выход которого подключен к первому входу первого элемента ИЛИ и входу элемента задержки, вход выборки инструкции устройства соединен со вторым входом первого элемента ИЛИ, выход которого соединен со вторыми входа элементов И третьей группы и с первым входом второго элемента ИЛИ, выход которого подключен к сч( тному входу счетчика адреса, выход переполнения и информационные выходы счетчика адреса соединены соответственно, со счетным входом триггера с адресным входом буферного блока памяти, группа информационных выходов которого являе-тся труп пой выходов устройства, выход триггера соединен с управляющим входом бйока буферной памяти, выход переполнения счетчика адреса является управляющим выходом устройства, выход элемента задержки соединен со вторым входом второго элемента ИЛИ и с первыми входами элементов И четвертой группы, выходы которых соединены с первой группой входов элементов ИЛИ второй группы выходы элементов И третьей группы сое динены со вторыми входами элементов ИЛИ второй группы, выходы которых соединены с группой информационных входов буферного блока памяти, первая группа выходов регистра адреса и перйая гфуппа информационньЕС выходов операционного регистра соединены соответственно со вторыми входами элементов И третьей и четвертой групп соответствен- но, установочный вход устройства соединен с третьим входом - второго элемента ИЛИ. Прежде чем описать работу устройства в различных режимах, определим на- .значение отдельных элементов предлагаемого устройства. Устройство включает блок памяти, в котором хранится анализируемая программа. Адресуется памя-вь посредством регистра адреса контролируемой памяти. В исходном состоянии ин струкция, прочитанная из ячейки памяти по адресу, находящемуся в регистре ад- реса, находится в операционном регистре, где временно запоминается для последующей обработки. В последствии адресная часть инструкции через группу адресных выходов операционного регистра, вторую группу элементов И, первую группу элементов ИЛИ, может быть использована для переадресации контролируемой памяти и выборки следующей ршструкции. Посредством сумматора происходит увеличение значения адреса инструкции на единицу и таким образом осуществляется выборка следующей инструкции из смежной области контролируемой пак:ати. .Адрес инструкции из сумматора .может быть передан через регистр адреса инструкции, первую группу элементов И, первую группу элементов, ИЛИ на регистр адреса блока памяти. В зависимости от кода условия ЭВМ вырабатывает сигнал либо по первому, либо по второму управляющему входу устройства, в результате чего соответственно происходит выборка очередной инструкции на операционный регистр либо из смежной области контролируемой памяти, либо по адресу, хранящемуся в адресной части обрабатываемой инструкции. Счетчик адреса обеспечивает адресацию к буферной памяти, которая предназначена для хранения адресов инструкций. Порядок фиксации адресов определяется режимЬм функционирования устройства. Введение новых элементов в устройство для трассировки программ обеспечивает работу предлагаемого устройства в двух режимах. Первьй режим работы аналогичен третьему режиму работы устройства, выбранного в качестве прототипа. В этом режиме в буферной памяти фиксируется наиболее полная информация о трассе программы, т.е. из нее можно извлечь информацию, получаемую при функционировании устройства, выбранного в качестве прототипа, как в первом так и во втором режимах работы. Второй режим работы обеспечивает фиксацию в буферной памяти как адресов всех команд перехода, встречающихся в процессе выполнения анализируемой программы, так и адресов, по которым предполагалось ветвление программы в случае выполнения условия перехода. Этой информации достаточно для того, чтобы построить структуру анализируемой рограммы. . Кроме того, введение новых элементов в устройство для трассировки про- грамм позволяет осуществить сохранение текущей трассы при заполнении буферного устройства в процессе анализа программ посредством перезаписи содержимого буферного устройства (буферной памяти) на внешний носитель. На фиг, 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 входов устройства, управляющий выход 25 устройства группу 26 выходов устройства. Группа информационных выходов блока 1 памяти соединена с группой информационных входов операционного регистра 3. Группа адресных выходов операционного регистра 3 соединена с группой входов второй группы 8 элементов И и с группой входов четвертой группы 13 элементов И. Группа выходов четвертой группы 13 элементов И соединена с пер вой Группой входов второй группы 15 элементов ИЛИ, группа выходов которой соединена с группой информацио шых входов буферной памяти 9. Группа выходов второй группы 8 элементов И соединена со второй группой входов первой группы 6 Элементов ИЛИ, группа выходо которой соединена с группой входов сум матора Бис группой входов регистра 2 адреса контролируемой памяти. Группа выходов регистра 2 адреса соединена с группой адресных входов блока 1 памяти и с группой входов третьей группы 12 элементов И, группа вь1ходов которо соединена со второй группой входов . второй группы 15 элементов ИЛИ. Группа выходов сумматора 5 через регистр 4 адреса инструкции соединена с группой входов первой группы 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 буферной памяти. Затем происходит увеличение содерисимого счетчика 18 на единицу. Одновременно с модификацией содержимого счетчика 18 адреса из ЭВМ поступает сигнал либо по первому 20, либо по второму 21 входу устройства, предназначенный для передачи в регистр 2 адреса очередного адреса анализируемой программьи По этому адресу из контролируемой памяти 1 на операционный регистр 3 выбирается очередная инструкция. Затем вновь из ЭВМ поступает сигнал по третьему 22 управляющему входу устройства, кото рый обеспечивает запись во вторую ячей ку блока 9 памяти, хранящегося в регистре адреса и модификацию на единицу содержимого счетчика 18 адреса. Процесс заполнения блока 9 буферной памяти показан на фиг. 3. Анализируема программа начинает вьшолняться с перво го адреса Ml основной программьи На фиг. 2 каждый квадратик обозначает один адрес. Основная программа выполняется без ветвления вплоть до инструкции с адресом М4. Эта инструкция - инструкция условного перехода. Однако условие перехода не было выполнено, поэто му управление передалось команде М5. Далее основная программа вьшолняется вплоть до инструкции с адресом М8, которая является очередной инструкцией передачи управления, но ее условие, в противоположность инструкции с адресом М4, - вьшолняется. Поэтому после того, как в блоке 9 буферной памяти будет зафиксирована последовательность адресов с Ml до М8, следующим фиксируется адрес перехода S 1. Основная программа прекращается, управление передается вызываемой программе по адресу 5 1. Далее вызываемая программа выполняется непрерьшно до инструкции S4 которая снова является инструкцией условного перехода, в которой условие пер хода вьшолнилось. Как показано на фиг. 2, вызьюаемая программа переходит на команду с адресом 5 7. Затем вызываемая программа вьшолняется до своего конца и передает управление в основную программу в то место, в котором основная программа была первоначально прервана. Таким образом, вызыва мая программа передает управление в основную программу по адресу М 9. С этой инструкции продолжается непрерывное вьшолнение основной программы вплоть доппоследней инструкции М 16. Итак, в первом режиме работь устройства в блок 9 буферной памяти фиксируютс адреса всех последовательно выполняющихся инструкций. После записи адреса анализируемой программы в последнюю ячейку блока 9 ферной памяти счетчик 18 адреса обнуляется, а импульс сквозного переноса проходит с выхода счетчика 18 адреса на управляющий выход 25 устройства и поступает в ЭВМ. Одновременно он поступает на счетный вход триггера 19, На единичном выходе триггера 19 вырабатьшается потенциал, который переводит блок 9 буферной памяти в режим Чтение. Получив сипшл с управл5пощего выхода 25 устройства, ЭВМ прекращает генерацию сигналов по первому 20, второму 21 и входу 22 устройства и начинает вырабатывать сигналы, которые по входу 23 устройства через второй элемент ИЛИ 17 поступают на вход счетчика 18 адреса. На группе выходов 26 устройства вырабатывается информация, считываемая из блока 9 буферной памяти, которая поступает в ЭВМ для хранения и обработки. Частота появления кодов адресов на группе выходов 26 устройства соответствует частоте поступления сигналов по входу 23 устройства. Таким образом, содержимое блока 9 буфер)- ной памяти устройства я трассировки программ переписывается в память ЭВМ. После считывания адреса анализируемой программы из последней ячейки блока 9 буферной очередной сигнал, поступающий по входу 23 устройства, обнуляет счетчик 18 адреса, а импульс сквозного переноса проходит с выхода счетчика 18 адреса на управл5пощий выход 25 устройства и поступает в ЭВМ. Одновременно он поступает на счетный вход триггера 19. С единичного выхода триггера 19 снимается потенциал, который переводит буферную память 9 в peжmvI Запись. Получив сигнал с управляющего выхода 25 ycTpcrftcTBa, ЭВМ возобновляет генерацию сигналов по первому 2О, второму 21 входам 22 устройства в описанной вьпие последовательности. При работе устройства во втором режиме - режиме регистрации данных о структуре анализируемой программы сигналы по третьему управл5пощему входу 22 в устройство не поступают. По группе входов 24 устройств из ЭВМ в регистр Ю кода операции поступает код инструкции перехода. Порядок выборкк инструкций из контролируемой памяти 1 такой же, как и в первом режиме работы устройства. При поступлении на операционный регистр 3 очередной инструкции код операции которой совпадает с кодом операции, хранящемся в регистре 10 кода операции, схема 11 сравнения иьфабатывает сигнал, который поступает на первый элемент ИЛИ 14 и элемент 16 задержки. С выхода первого элемента ИЛИ 14 сигна поступает на вход третьей группы 12 элементов И, тем самым обеспечивая фиксацию в блоке 9 буферной памяти адреса инструкции перехода, хранящегося в момент фиксации.в регистре адреса блока 2 памяти. Увеличение содержимого счетчика 18 адреса на единицу происходит после записи адреса инструкции пере хода в блок 9 буферной памяти сигналом поступающим с выхода первого момента ИЛИ 14 через второй элемент ИЛИ 17 на вход счетчика 18 адреса. Тем самым определяется смежная область блока 9 буферной памяти для записи следующего адреса. Сигнал с выхода элемента 16 задержки поступает на вход четвертой группы 13 элементов И, обеспечивая фиксацию в буферной памятИ: 9 адреса перехода инструкции передачи управления хранящегося на время вьшолнения инструкции в операционном регистре 3. Затем осущест вляется увеличение содержимого счетчика 18 адреса на единицу сигналом, .посту пающим с выхода элемейта 16 задержки через второй элемент ИЛИ 17 на вход счетчика 18 адреса. В результате этого подготавливается адрес буферной памяти 9 для записи следующего адреса. При несовпадении кода операциии выполняемой инструкции с кодом, хранящем ся в регистре 1О кода операции, сх,ема 11 сравнения сигнал не вырабатывает. Таким образом, в блок 9 буферной .памяти фиксируются последовательно в смежных областях памяти адрес инструкции перехода и адрес перехода (независимо от вьшолнения условия . перехода). Дальнейщая работа устройства во втором режиме аналогична работе устройства в первом режиме (фиг. 2,3). Таким образо
устройство для трассировки програм.м функционирует в двух режимах. В первом режиме работы устройства. для определения хода вычислительного .процесса в блоке 9 буферной памяти фиксируются все адреса последовательности вьшопн5яющихся команц анализируемой программы.
ЧТО, с 11елью расширения функциональных возможностей устройства за счет запоминания адресов нереализуемых команд перехода и адреса, по которому осуществляется ветвление программы при вьтолнении перехода, в устройство введены регистр кода операций, схема сравнения, третья и четвертая группы элементов И, Во втором режиме работы устройства в буферную памят ;. записьтаются как адреcia всех команд перехода, встречающихся в процессе выполнения анализируемой программы, так и адреса, по которым предполагается ветвление программы в случае выполнения условия перехода. По результатам работы устройства во втором режиме работы можно построить структуру анализируемой программы. Кроме того устройство для трассировки программ позволяет при необходимости сохранить текущую трассу посредством перезаписи содержимого заполненного буферного устройства на внещний носитель. Формула изобретения Устройство для отладки программ, содержащее блок.памяти, регистр адреса, операционный регистр, регистр адреса инструкции, сумматор, первую группу элементов ИЛИ, первую и вторую группы элементов И, блок буферной памяти, причем группа информационных выходов блока памяти соединена с группой информационных входов операционного регистра, . информационный выход регистра адреса инструкции соединен с первыми входами элементов И первой группы, выходы коаюрых соединены с первыми входами элементов ИЛИ первой группы, выходы элементов ИЛИ первой группы соединены с входами сумматора и с входами регистра адреса, информационные выходы которого соединены с группой адресных входов блока памяти, выходы сумматора соединены с. 1 руппой информационных входов регистра инструкции, первая группа информационных выходов операционного регистра соединена с первыми входами элементов И второй группы, выходы которых, соединены со вторыми входами элементов ИЛИ первой группы, вторые входы элементов И первой и второй групп соединены соответственно с первым и вторым входами передачи очередного адреса устройства, отличаю щ,ё е с я тем, первый и второй элементы ИЛИ, вторая группа элементов ИЛИ, элемент задержки счетчик адреса и триггер, причем группа информа1шонных входов устройства соединена с группой информационных входов регистра кода операции, группа информационных выходов которого соединена с первой группой входов схемы сравнения, вторая группа выходов операционного регистра соединена со второй группой входов схемы сравнения, щлход которой подключен к первому входу первого элемента ИЛИ и входу элемента задержки, вход выборки инструкции устройства соединен со вторым входом первого элемента ИЛИ выход которого соединен со вторыми входами элементов И третьей группы и с первым входом второго элемента ИЛИ, выход которого подключен к счетному входу счетчика адреса, выход перепопнения и информационные выходы счетчика адреса соединены соответственно со счет ным входом триггера и с адресным входом буферного блока памяти, группа информационных выходов которого 5шляется группой выходов устройства, выход триггера соединен с управл5пощим входом блока буферной памяти, выход переполнения счетчика адреса является управляющим входом устройства, выход элемента задержки сое 1инен со вторым входом второго элемента ИЛИ и с первыми входами элементов И четвертой группы, выходы которых соединены с первой группой входов элементов ИЛИ второй группы, выходы элементов И третьей группы соединены со вторыми входами элементов ИЛИ второй группы, выходы которых соединены с группой информационных входов буферного блока памяти, первая группа выходов регистра адреса и первая группа информационных выходов операционного регистра соединены соответственно со вторыми входами элементов И третьей и четвертой групп соответственно, установочный вход устройства соединен с третьим входом второго элемента ИЛИ. Источники информации, принятые во внимание при экспертизе 1. Патент Великобритании № 1436428, кл. (306F 11/О6, 1973. 2.Фараджев В. А. и др. Комплекс аппаратных средства ЭВМ для отладки программ реального времени. - УСИМ, 1980, № 1, с. 49-51. 3,Патент Великобритании № 1441444, кл. 606 F 11/ОО, 1973 (прототип).
название | год | авторы | номер документа |
---|---|---|---|
Устройство для регистрации последовательности выполнения команд в программах | 1983 |
|
SU1260965A1 |
Устройство для отладки программ | 1986 |
|
SU1327112A1 |
Устройство для отладки программ | 1988 |
|
SU1511750A1 |
Устройство для отладки программ | 1985 |
|
SU1280636A1 |
Устройство для запоминания трассы функционирования многопроцессорных систем | 1990 |
|
SU1737454A1 |
Устройство для обмена информацией | 1982 |
|
SU1059561A1 |
Многоканальное устройство для сопряжения ЭВМ | 1988 |
|
SU1695311A1 |
Устройство для определения частот обращения к программам | 1985 |
|
SU1357963A1 |
Устройство для отладки многопроцессорных систем | 1988 |
|
SU1541616A1 |
Устройство для отладки программ | 1982 |
|
SU1083194A1 |
гфра
а
Ki
Авторы
Даты
1982-12-07—Публикация
1981-04-17—Подача