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

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

Авторы: Виноградов, Козлов, Павлов, Сараф

ZIP архив

Текст

Изобретение относится к вычислительной технике и может быть использовано для автоматизированной отладки программ в режиме реального вре 5мени.Целью изобретения является понышение производительности отладкипрограмм.На чертеже представлена схема 10устройства для отладки программ.Устройство содержит первый блок 1памяти, первыми информационными входами подключенный к адресным входам2 устройства и соединенный вторыми 15 информационными входами с информационными входами 3 устройства, ИнФормационный выход блока 1 подключенк информационному выходу ч устройства. Вход 5 признака кода команды устройства соединен с входом обращенияблока 1 памяти и информационным входом первого триггера 6, выход которого соединен с синхровходами второго7, третьего 8 и четвертого 9 триггеров. Вход 10 начала цикла команды устройства соединен с синхровходомпервого триггера 6, вторым входомэлемента И 11 и с синхрсвходом пято- го триггера 12. Выход элемента И 11 ЗО соединен с первым входом элемента И 13, выход которого соединен с первым входом элемента ИЛИ 1 ч и входом признака записи блока 1 памяти, выход элемепта ИЛИ 14 соединен со счетным входом гервого счетчика 15, информационные выходы которого соединены с адре.сньпж входами блока 1 памяти.Входы регистра 16 режимов соединены с информационньщи входами 17 задания 40 режимсн устройства. Первый выход регистра 16 режимов соединен с установочным входом второго триггера 7. Второй выход регистра 16 режимов соединен с информационным входом шестого триггера 18, выход которого соединен с вторым входом элемента И 13, Третий выход регистра 16 режимов соединен с первым нходом элемента ИЛИ 19, выход которого соединен с третьим входом элемента И 13, Четвертый выход регистра 16 режимов соединен с первым входом элемента И 20, второй вход которого соединен с вторым управляющим входом 2 1 устройства. Выход элемента И 20 соединен с вторым входом элемента ИЛИ 14 и входом признака чтения блока 1 памяти. Группа адресных входов 2 устройства соеливена с входаи первого д".аифрат.- ра 22. Первый и второй вьгходы к-сорого соединены с информационным входом и входом обращения блока 23 памяти соответственно, Адресные входы блока 23 памяти соединены с группой информационных входов 3 устройства. Вход 2 ч записи устройства соединен с входом записи блока 23 памяти, выход которого соединен с информацион-. ным входом второго триггера 7. Группа информационных нходон 3 устройства соединена с информационными входами второго 25 и третьего 26 дедифраторов, выходы которых соединены с информационньпи входами третьего 8 и четвертого 9 триггеров соответственно. Синхровходы третьего 8 и четнертого 9 триггеров соединены с выходом первого триггера 6. Выход третьего триггера 8 соединен с первым входом элемента И 7, а выход четвертого триггера 9 соединен с. первым входом элемента И 28. Вторые входы элементов И 27 и И 28 соединены с выходом пятого триггера 12, информационный вход которого соединен с третьим входом 29 признака обращения к стековой памяти устройстна. Выходы элементов И 27 и И 28 соедине- вы со,входом сложения и вычитания реверсивного счетчика 30, старший информационный выход которого соединен с вторым входом элемента ИНИ 19, Группа установочньж входов реверсивного счетчика 30 соединена с. группой информационных входов 3 устройства, а установочный синхоовход реверсивного счетчика 30 соединен с входомустановки кода уровня вложения устройства 31. Выход переполнения первого счетчика 15 соединен с синхровходом пятого триггера 18. Выход второго триггера 2 соединен с вторым входом элемента ИБлок 1 памяти в составе устройства для отладки программ выполняет роль буферного оперативного запоминающего устройства, в котором во время трассировки программы в реальномвремени запоминается адрес выполняемой команды, код выполняемой команды резул-. тат выполнения команды,.Устройство Функционирует н четырех режимах.В режиме один разргюг .а трассировка программы с запоминанием н блокепамяти всех вылов.яемых команд. В5 151 режиме два разрешена трассировка программы с запоминанием в блоке 1 памяти только тех команд, коды которых до трассировки были заданы. В режиме три разрешена трассировка программы с запоминанием в блоке 1 памяти команд только тех подпрограмм, уров- вень вложения которых не превышает заданного до трассировки в реверсивном счетчике 30. В режиме четыре разрешено чтение результатов трассировки для дальнейшей обработки,В режимах запоминания команд режимы один или два на вход 5 устройства из отлаживаемой системы подается сигнал, информирующий о том, что производится выборка кода команды из памяти отлаживаемой системы.На вход 10 устройства иэ отлаживаемой системы подается строб, сопровождающий начало цикла команды, выполняемой в отлаживаемой системе. Врежиме один разрешена трассировка программы с запоминанием в блоке 1 памяти всех выполняемых команд. При этом с первого выхода регистра 16 режимов на установочный вход второго триггера 7 поступает сигнал, который устанавливает выход второго триггера 7 в состояние "1". Тогда сигнал с входа 10 устройства, который сопровождает начало каждого машинного цикла команды, через первый 11, второй 13 элементы И поступает на вход записи блока 1 памяти и записывает в него информацию, поступающую с группы адресных 2 и группы информационных 3 входов устройства, а также поступая на счетный вход счетчика 15, наращивает адрес блока 1 памяти.В режиме два разрешена трассировка программы с запоминанием в блоке 1 памяти только тех команд, коды которых до трассировки были заданы. При этом до трассировки программ необходимо соответствующим образом заполнить блок 23 памяти. При этом на группе адресных входов 2 устройства формируется адрес, который поступает на вход дешифратора 22 устанавливает на первом и втором выходе дешифратора 22 уровни "0" и "1" соответственно. Уровень "1", поступая на вход обращения блока 23 памяти, разрешает выбор блока 23 памяти, По группе информационных входов, 3 устройства перебираются все возмож 1750 5 10 15 20 25 30 35 40 45 50 55 ные комбинаци;, причем каждая комбинация сопровож,лается стробом на входе 24 устройства, который, поступая на вход записи блока 23 памяти, обеспечивает запись по адресу, сформчрованному на группе информационных входов, значение "0". После чего весьобъем блока 23 будет заполнен нулями, что соответствует запрещению записи в блок 1 памяти всех команд изсистемы команд. Далее на группе адресных входов 2 устройства формируется код, который, поступая на вход дешифратора 22, устанавливает на первом и втором выходе дешифратора 22 уровни "1". На группе информационных входов 3 устройства формируется код той команды, которую надо запомнить вблоке 1 памяти во время трассировкипрограмм. Этот код команды сопровождается стробом на входе 24 устройства, который, поступая на вход записи второго блока 23 памяти, обеспечивает запись по адресу, сформированномуна группе информационных входов, значение "1". Если при трассировке необходимо запоминать несколько команд, то эту процедуру необходимо повторить столько раз,сколько кодов команднеобходимо запомнить в трассе программы, причем на группе информационныхвходов 3 устройства необходимо выставить соответствующий код команды. После этой процедуры устройство для отладки программ готова к функционированию во втором режиме. На первом выходе регистра 16 режимов установлен уровень "0". Первый триггер 6 формирует импульс для машинного цикла, в котором на группе информационных входов 3 устройства появляется код команды, который поступает на блок 23 памяти. На его выходе появляется логический уровень либо "0", либо "1" в зависимости от того, что было записано в блок 23 памяти на этапе подготовки трассировки программы. Если на выходе второго дополнительного блока 23н н памяти появляется уровень 0 , то импульсом с выхода первого триггера 6 второй триггер 7 устанавливается в нуль, который, поступая на первый вход первого элемента И 11, запрещает прохождение синхроимпульса для записи в блок 1 памяти. Если на выходе блока 23 памяти появляется уровень "1", то импульсом с выхода первого триггера 6 второй триггер 7 ус 151175055 танавливается в единицу, которая, поступая на первый вход первого элемента И 11, разрешает прохождение синхроимпульсов для записи в блок 1 памяти. После того, как счетчик 15 сформировал сигнал о переполнении, если на втором выходе регистра 16 режимов установлен уровень "0", то третий триггер 18 устанавливает состояние нуля, запрещая прохождение синхроимпульса для записи в блок 1 памяти. Если на втором выходе регистра 16 режимов установлен уровень "1", то третий триггер 18 устанавливает состояние единицы и трассировка программы продолжается.В режиме три разрешена трассировка программы с запоминанием в блоке 1 памяти команд только тех подпрограмм, уровень вложения которых не превышает заданного до трассировки в реверсивном счетчике 30. При этом до трассировки необходимо задать уровень вложения подпрограмм, подлежащих трассировке. Для этого на группе информационных входов 3 формируется уровень вложения подпрограмм следующим образом; значение инФормационных разрядов (кроме старшего) равно уровню вложения подпрограмм, подлежащих трассировке (отсчет с нуля), а значение старшего информационного разряда равно единице. После этой процедуры устройство для отладки программ готово к функционированию в третьем режиме. Для этого на третьем выходе регистра 16 режимов устанавливается уровень "0". Второй дешифратор 25 работает таким образом, что на выходе ега появляется уровень " 1", когда на группе информационных входов появляются коды команд условного или безусловного выбора подпрограмм. Если код команды перехода 3 появился при выборке команды (на выходе первого триггера 6 появится уровень "1"), то на выходе триггера устанавливается уровень "1", На выходе пятого триггера 12 уровень " 1" появляется только в том случае, если в машинном цикле команды (стробируется вторым синхровходом 10 устройства) есть обращения к стековой памяти (на третьем синхровходе устройства появляется уровень "1"), это означает,что после команды условного вызоваподпрограммы действительно произошел 5 10 15 20 25 30 35 40 45 50 переход на выполнение подпрограмм:(выполнилась стекова- операция по охранению адреса возврата). При этомна выходе элемента И 27 появляетсяуровень "1", который вызывает уменьшение содержимого реверсивного счетчика 30 на единицу. Цепочка третийдешифратор 26, четвертый триггер 9 иэлемент И 28 работает аналогичнос той лишь разницей, что уровень "1"появляется на выходе третьего дешифратора 26, когда на группе информационных входов появляются коды команд условного или безусловного возврата из подпрограмм. При этом появление уровня "1" на выходе элементаИ 28 вызывает увеличение содержимогореверсивного счетчика 30 на единицу,Таким образом выполнение команд перехода на подпрограмму вызывает уменьшение значения реверсивного счетчикана единицу, а выполнение команд возврата из подпрограмм - увеличениесодержимого реверсивного счетчика наединицу. Как только количество вложений в подпрограммы (выполнениекоманд обращения к подпрограммамбез соответствующих команд возвратаиз подпрограмм) достигнет заданногодо трассировки значения, состояниестаршего информационного выхода реверсивного счетчика 30 окажется равным нулю, что приведет к появлениюна третьем входе элемента 13 уровня 0", что запрещает наращиваниезначения счетчика 15 и приводит к запрету трассировки команд данной подпрограммы, до тех пор пока не выполнится команда возврата из подпрограммы,В режиме четыре на третьем выходерегистра 16 режимов устанавливаетсяуровень "1", что разрешает прохождение сигналов чтения с второго управляющего входа 21 устройства. При этомна выходе 4 устройства появляютсярезультаты трассировки, которые затем могут быть преобразованы в удобный для анализа вид. Формула изобретения Устройство для отладки программ, содержащее первый и второй блоки памяти, первый, второй и третий триггеры, первый, второй и третий элементы И, элемент ИЛИ, счетчик адреса, первый дешифратор и регистр режимов,1511750 ка памяти. гера и вторым входом первого элеСоставитель И.Сигалов Редактор О.Спесивых Техред И,Дидык Корректор О.КравцоваЗаказ 5905/52 Тираж ббР ПодписноеВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР113035, Москва, Ж, Раушская наб., д, 4/5 Производственно-издательский комбинат "Патент", г.ужгород, ул, Гагарина,101 причем адресные входы устройства соединены с входами первого дешифратора и с первой группой информационных входов первого блока памяти, выходы которого являются информационными выходами устройства, первый и второй выходы первого дешифратора соединены соответственно с входом обращения и с информационным входом второго блока памяти, информационные входы устройства соединены с адресными входами второго блока памяти и второй группой информационных входов первого блока памяти, признаки кода коман ды и начала цикла команды устройства соединены соответственно с информационным входом и входом синхронизации первого триггера, прямой выход которого соединеч с входом синхрочизации второго триггера, информационный выход второго блока памяти соединен с информационным входом второго триггера, о т л и ч а ю щ е е с я тем, что, с целью повышения 25 производительности отладки программ, в устройство введены второй и третий дешифраторы, четвертый, пятый и шестой триггеры и счетчик вложенности, причем информационные входы устройства соединены с входами второго и третьего цешифраторов, выходы которых соединены с информационными входами соответственно третьего и четвертого триггеров, выход первого триггера соединен с тактовыми вхо 35 дами третьего и четвертого триггеров, входы задания режимов устройства соединены с информационными входами регистра режимов, первый Вы- ход которого соединен с единичным входом второго триггера, прямой выход которого соединен с первым входом первого элемента И, вход начала цикла команды устройства соедид 5 нен с тактовым входом пятого тригмента И, выход к,.",.рого соединен спервым входом первого элемента И;второй, третий и четвертый выходырегистра режимов соединены соответственно с информационным входом шестого триггера, с первым входом пер.вого элемента ИЛИ и с первым входомтретьего элемента И, выходы шестоготриггера и первого элемента ИЛИ соединены соответственно с вторыми итретьими входами второго элемента И,выход которого соединен с входомпризнака записи первого блока памятии с первым входом второго элементаИЛИ, вход признака чтения устройствасоединен с вторым входом третьего,элемента И, выход которого соединенс входом признака чтения первогоблока памяти и вторым входом второгоэлемента ИЛ 1, выход второго элемента И 1 И соединен со счетным входомсчетчика адреса, информационный выход и выход переполнения которогосоединены соответственно с адресным входом первого блока памяти ис тактовым входом шестого триггера,выходы признака кода команды и признака обращения к стеновой памяти устройства соединены соответственно свходом обращения: первого блока и"мяти и с информационным входом пятоготриггера, выход которого соединен свторыми входами четвертого и пятогоэлементов И, выходы четвертого и пятого элементов И соединены соответственно с входами сложения и вычитания счетчика вложенности, выход старшего разряда которого соединен с вторым входом первого элемента ИЛИ, информационный вход, входы признаковустановки кода и записи устройствасоединены соответственно с информационным входом счетчика вложенностис признаком записи счетчика вложенности и с входом записи второго бло

Смотреть

Заявка

4360557, 07.01.1988

ПРЕДПРИЯТИЕ ПЯ Р-6886

ВИНОГРАДОВ ВЛАДИМИР ЛЬВОВИЧ, КОЗЛОВ АЛЕКСАНДР ЕГОРОВИЧ, ПАВЛОВ АЛЕКСАНДР ПАВЛОВИЧ, САРАФ ИГОРЬ БОРИСОВИЧ

МПК / Метки

МПК: G06F 11/28

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

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

Код ссылки

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

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