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

 

ОПИСАНИЕ

ИЗОБРЕТЕНИЯ

Союз Советских

Социалистических

Рес ублин

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Дополнительное к авт. свид-ву (22) Заявлеио 133.179 (2f) 2842043/18-24 (51)М. Kh. с присоединением заявки ¹ (23) Приоритет6 06 F ll/28

Государственный комитет

СССР по делам изобретений и открытий

Опубликовано 23.07.81„бюллетень Н9 27 (53) УДК 681.3 (088.8) Дата опубликования описания 23.0781

A.ß.Аврукин, Н.М.Мелешко, В.В.Хорошавин, М.Я.Черп и М.Е.Неменман (72) Авторы изобретения (71) Заявитель (54) УСТРОЙСТВО ДЛЯ ОТЛАДКИ ПРОГРАММ

Изобретение относится к вычислительной технике и может быть исполь" зовано в ЭВМ для автоматической отладки программ, Известно устройство для отладки программ, содержащее память типа ОЗУ, куда при отладке записываются адреса условных и безусловных переходов (1) .

Известно устройство, в котором на двух регистрах запоминаются адреса двух последних переходов (21.

Известно также устройство, в котором отладка программ осуществляется путем передачи управления с уровня программы отладчика на уровень отлаживаемой программы, выполнения одной команды отлаживаемой программы, запоминания информации о. состоянии отлаживаемой программы в блоке хранения и возврата управления на уровень программы отладчика. Для этого устройство содержит триггер сбоя, триггер автоматического переключения, триггеры возврата, четыре ряда клапанов и логические схемы И, ИЛИ и

НЕ (3).

Недостатком этих устройств является то, что н них регистрируют только один из многих возможных типов программных событий, сведения в которых нужны при отладке прог5

Нанболее близким к изобретению по технической сущности является устройство регистрации программных событий, позволяющее зарегистрировать, 10 а затем сообщить управляющей программе сведения о поступлении таких событий, происшедших в ходе выполнения коМанды отлаживаемой програм мы, как выборка команды из заданной области оперативной памяти, иэменеf5 ние содержимого заданных ячеек оперативной памяти, изменение содержимого заданных регистров общего назначения и успешное выполнение команды перехода. Анализ наступления

20 первых трех типов событий п15оиэводится перед выполнением команды, анализ успешного выполнения команды перехода производится после выполнения команды. Устройство работает

25 непосредственно с процессором ЭВМ и содержит блок управления, местную память, регистр команд, коммутатор и буферный регистр, первый вход которого соединен с первым выходом

30 коммутатора, второй вход соединен

849218

t0

ЗО

60

65 с первым выходом блока управления, а первый выход соединен с первым входом местной памяти, второй вход которой соединен с вторым выходом узла управления, а выход соединен с третьим входом буферного регистра, второй выход которого соединен с первым входом коммутатора, второй вход которого соединен с первым выходом регистра команд, первый вход которого соединен с третьим выходом узла управления, первый вход которого соединен с вторым выходом регистра команд, второй вход которого соединен с вторым выходом коммутатора, третий вход которого через первую входную шину устройства соединен с выходом коммутатора процессора ЭВМ, вход которого через первую выходную шину устройства соединен с третьим выходом коммутатора четвертый вход которого соединен с четвертым выходом блокауцравления, пятый выход которого через вторую выходную шину устройства соедине, с входом устройства управления процессора ЭВМ, выход которого через вторую входную шину устройства подается на второй вход блока управления.

В. этом устройстве регистрация изменения содержимого заданных ячеек оперативной памяти и заданныхрегистров общего назначения производится как и регистрация выборки команды иэ заданной области оперативной памяти, перед выполненирм ко. манды путем моделирования ее выполнения (4) .

Однако анализируемые события могут происходить не в каждой команде.

Для исключения анализа невозможных событий используются модификаторы возможных событий для каждой команды, которые хранятся в местной памяти, .что увеличивает ее объем. Кроме того, управляющей программе в ходе выполнения отлаживаемой программы необходимы сведения о наступлении изменения содержимого заданных регистров с плавающей точкой и выполнения команды с заданным кодом операции, а также некоторой предысто-. рии в виде последовательности ко манд, выполняющихся процессором ЭВМ перед текущей командой, чего же позволяет сделать известное устройство.

Цель изобретения - расширение функций устройства эа счет обеспечения возможности фиксации событий, связанный с изменением содержания регистров и группы ячеек памяти.

Поставленная цель достигается тем, что в устройство,, содержащее блок управления, блок местной памяти, регистр команд, коммутатор и буферный регистр, причем первый, второй и третий выходы коммутатора соединены соответственно с первым входом буферного регистра, первым выходом устройства и первым входом регистра команд, первый и второй выходы которого соединены соответственно с первым входом коммутатора и.первым входом блока местной памяти, первый, второй, третий, четвертый и пятый выходы блока управления соединены соответственно с вторым входом буферного регистра вторым выходом устройства, вторым входом коммутатора, вторым входом регистра команд, вторым входом блока. местной памяти, выход которого соединен с третьим входом буферного регистра, первый и второй выходы буферного регистра соединенные соответственно с третьим входом коммутатора и третьим входом блока местной памяти, первый и второй входы устройства соединены соответственно с четвертым входом коммутатора и первым входом блока управления, введены дешифратор, узел регистрации и блок стековой памяти, причем третий выход регистра .команд соединен с входом дешифратора, выход которого соединен с вторым входом блока управления, шестой и седьмой выходы блока управления соединены соответственно с первым входом блока стековой памяти и входом узла регистрации, выход. которого соединен с третьим входом блока управления, выход блока стековой памяти соединен с четвертым входом буферного регистра, третий выход которого соединен с вторым входом блока стековой памяти.

Кроме того, блок управления содержит формирователь адреса микрокоманд, регистр адреса микрокоманд, блок памяти микрокоманд, регистр микрокоманд и дешифратор, причем выход формирователя адреса микрокоманд соединен с входом регистра микрокоманд, выход которого соединен с входом блока памяти микрокоманд, выход блока памяти микрокоманд соединен с входом регистра микрокоманд, первый и второй выходы которого соединены соответственно с первым входом формирователя адреса микрокоманд и первым входом дешифратора, первый выход дешифратора соединен с вторым входом формирователя адреса микрокоманд, остальные выходы дешифратора образуют групйу выходов блока, первый, второй и третий входы блока соединены с третьим, четвертым и пятым входами формирователя адреса микрокоманд, второй и третий входы блока соединен с втоРым и третьим входом дешифратора.

На фиг.1 представлена блок-схема устройства для отладки программы; на фиг.2 — блок управления; на фиг.З - блок местной памяти; на фиг.4 — стековая памятЫ на фиг.5

849218

d0 узел регистрации; на фиг.б — коммутатор.

Устройство содержит блок 1 управления, блок 2 местной памяти, регистр 3 команд, коммутатор 4, буферный регистр 5,.дешифратор 6, узел 7 регистрации, блок 8 стековой памяти, входы 9 и 10 устройства и выход 11 и 12 устройства.

Блок 1 управления (фиг.2) пред" назначен для управления устройством и содержит формирователь 13 адреса микрокоманд, регистр 14 адресов микрокоманд, блок 15 памяти микрокоманд, регистр 16 микрокоманд, дешифратор 17, входы 18-20, и выходные 21-27 блоки. На пятый. вход формирователя 13 адресов микрокоманд и второй вход дешифратора 17 через вход 18 блока 1 управления, который соединен с вторым входом 10 устройства, поступают управляющие сигналы процессора. На четвертый вход формирователя 13 адресов микрокоманд и третий вход дешифратора 17 через вход 19 подается информация с выхода узла 7 регистрации. На третий вход формирователя 13 через третий вход 20 поступает информация с выхода дешифратора б. Выход форми рователя 13 соединен с входом регистра 14, выход которого подается на вход блока 15. Выход блока 15 соединен с входом регистра 16 микрокоманд, с первого выхода которого информация поступает на первый вход формирователя 13, а с второго выхода — на первый вход дешифратора 17 °

Выходы дешифратора 17 через выходы

21-26 блока соединены с входами буферного регистра 5, блока 2, регистра 3 команд, коммутатора 4, блока 8, узла 7 регистрации, соответственно, а через выход 27 с второй выходной шиной 12 устрбйства — c входом устройства управления ЭВМ.

Блок 2 местной памяти (фиг.3) предназначен для хранения заданных кодов команд, начального и конечного значений адресов для каждого типа регистрируемых программных событий, номеров регистров общего назначения и с плавающей точкой и кодов прерываний и содержит регистр 28. адреса, коммутатор 29, регистр 30 данных. и узел 31 хранения информации, вы-. полненный по принципу полупроводникового биполярного запоминающего устройства на интегральных схемах и содержащий и интегральных схем (по числу разрядов в запоминаемом слове), каждая иэ которых включает в себя дешифратор 32 х, дешифратор

33 у, усилители-формирователи записи и усилители 34 считывания и запоминающую триггерную матрицу 35.

Входами блока местной памяти являются шины 36, по которым поступают адреса и управлягчкчие сигналы из бло5 !

О

45 ков 37 и 38 управления,связывающие блок 2 с регистром 3 и буферным регистром 5. Выходом блока 2 является шина 39, по которой, информация поступает на вход буферного регистра

5 (фиг.1) .

Стековая память 8 (фиг.4) предназначена для хранения адресов команд, выполняющихся последними, и состоит из счетчика 40 стека, узла

41 хранения информации (фиг.3), шины 42, являющейся входом стековой памяти 8 от блока 1 управления (фиг.1), шины 43, которая соединяет стековую память 8 с буферным регистром 5, и выходной шины 44, соединяющей выход стековой памяти 8 с входом буферного регистра 5.

Узел 7 регистрации (фиг.5)предназначен для хранения масок программных событий, подлежащих регистрации и признаков происшедших событий. В него входят триггер 45 режима регистрации, триггер 46 наступления события, триггер 47 маски регистрации выборкикоманды из заданной области оперативной памяти, триггер 48 маски регистрации изменения заданных ячеек оперативной памяти, триггер 49 маски регистрации УЧпешного выполнения команды перехода, триггер 50 маски

Г регистрации выполнения команды с за-. данным кодом операции, триггер 51 маски регистрации изменения содержимого заданных регистров общего назначения, триггер 52 маски регистрации изменения содержимого заданных регистров с плавающей точкой, триггер

53 регистрации обращения к оперативной памяти 53, триггер 54 регистрации обращения к регистру общего назначения, триггер 55 регистрации обращения к регистру с плавающей точкой, триггер 56 успешного выполнения команды перехода, входная шина 57, соединяющая узел 58 регистрации масок событий с выходом блока 1 управления (фиг.1).

Коммутатор (фиг.б) состоит иэ трех элементов И, одного элемента

ИЛИ, имеющего три эквипотенциальных выхода, вход 59 от буферного регист- ра 5, вход 60 от регистра 3 команд, вход 61, соединенный с входом 9 устройства, вход 62 от блока 1 управления, выходы 63-65, соединенные с входами буферного регистра 5, регистра 3 команд и выходом 11 устройства, соответственно.

Устройство работает следующим образом.

В систему команд ЭВМ вводятся пять дополнительных команд, которые дешифрируются дешифратором б и выполняются под управлением блока 1.

Первая команда имеет вид

849218

50 а а . !

2{+i где а. иа, йч +1 — адреса, соответ ствующие i-му ти55

d0

Она поступает на регистр 3 команд с выхода коммутатора 4, на который она подается с первого входа 9 устройства. Код команды с выхода регистра 3 подается на дешифратор б и с его выхода на вход блока 1 управления, коТорый начин ет выполнение этой команды. Выполнений начинается с того, что поле модификатора М подается на вход дешифратора б с выхода регистра 3 команд. В зависимости от значения модификатора М блок 1 управления формирует адреса блока 2.

Адресное поле А, команды с первого выхода регистра 3 через коммутатор

4 и выход 11 подается в процессор, где по сигналам от блока 1, идущим по второй выходной шине 12 на вход устройства управления процессора, последнее формирует присущим для данной ЭВМ способом значение адреса

A в адресном регистре процессора.

Сформированный адрес с выхода адресного регистра процессора через коммутатор процессора, первый вход

9 и коммутатор 4 подается на вход буферного регистра 5. С выхода регистра 5 этот адрес поступает в регистр 30 данных и блок 2 по шине через коммутатор 29. Через коммутатор 29 в регистр 30 заносится также значение модификатора с выхода регистра 3. По шине .36 на вход блока

2 поступают от блока 1 управляющие сигналы в коммутатор 29, команда записи — в узел 31 хранения информации и адрес — в регистр 28 адреса.

Таким образом, сформированное слово вида записывается в блок 2 по адресу, определяемому значением модификатора

М. Затем с выхода регистра 3 команд адресное поле команды А через ком2 мутатор 4 и первый выход ll поступает в процессор, где формируется адрес и поступает в буферный регистр

5. С выхода регистра 5 этот адрес, как и A, записывается совместно с модификатором М в. блок 2. В результате, в блоке 2 храни ся информация вида пу событий;

i=1,2,3, (1=0 для M=1, i=1 для

Мр2, 1=2 для M=4, i=3 для М=8).

Параллельно с формированием информации в блоке 2 в узле 7 производится установка в 1 различных триггеров в зависимости от значения модификатора М. Модификатор М может принимать только четыре значения:

M=1,2,4 и 8.

Если М=1,2 или 4, блок 1 вырабатывает сигнал установки в 1 триггера 45. Кроме того, если М=l, устанавливается в 1 триггер 47. Если M=2, устанавливается в 1 триггер 48. Если М=4, устанавливается в . 1 триггер 49. На этом выполнении команды для значений M=1,2 или 4 заканчивается.

Если М=8, трйггер 45 не устанавливается. Значение A из 2 подается в регистр 5, с его выхода через коммутатор 4 и первый выход ll поступает в адресный регистр процессора.

Адрес А1 определяет начальный адрес поля оперативной памяти процессора, 15 в которое передается содержимое блока 8 устройства. После этого слово блока 8 по адресу, определяемому значением счетчика 40, считывается иэ узла 41 по выходной шине 44 в бу20 ферный регистр 5. С .выхода регистра

5 слово через коммутатор 4 по выходной шине 11 подается на регистр данных оперативной памяти процессора.

Значение счетчика 40 стека уменьшается на единицу, а в операционную память по адресу в адресном регистре процессора записывается слово, находящееся в регистре данных оперативной памяти. Содержимое адресного регистра процессора подается на первый вход арифметико-логического устройства процессора (АЛУ) .

Значение адреса A с выхода блока 2 через буферный регистр 5, коммутатор 4, выходную шину 11 и комму35 татор процессора подается на второй вход АЛУ. По сигналам от блока 1 управления устройство управления процессора задает операцию вычитания значения адреса на первом входе АЛУ

40 из значения A на втором входе. Результат вычитания сообщается блоку

1. Если результат нулевой, т.е. адреса совпадают, на этом выполнении команды заканчивается. Если реэуль- .

45 тат не нулевой, блок 1 управления вызывает модификацию адреса в адресном регистре процессора на величину одного слова оперативной памяти присущим данному процессору способом.

Далее в регистр данных оперативной памяти процессора поступает следующее слово. блока 8 и записывается в оперативную память по адресу в адресном регистре. Счетчик 40 стека, уменьшается на единицу. Адрес в адресном регистре процессора сравнивается со значением адреса А, являющегося конечным адресом поля оперативной памяти процессора, в которое переписывается содержимое блока 8.

Выполнение команды заканчивается, когда адрес в адресном регистре процессора становится равным адресу Ар °

Разность А>-A„ может принимать значения (в единицах, равных величи849218

10 не слова), от 0 до m-1 (где m — глубина стековой памяти) .

Таким образом, можно считать в оперативную память процессора либо часть стековой памяти, либо все m слов.

Вторая команда имЕет Вид

Как и при выполнении команды с

КОП в блоке 2 по соответствующим адресам запоминается информация вида где R номер регистров общего назначения в командах с кодами КОП номер регистров с плавающей точкой в командах с кодами КОП

При выполнении этих команд, как и при выполнении команды с кодом

КОП„, в блоке 2 по адресам, соответствующим коду команд, запоминается информация

В узле .7 при выполнении обеих команд устанавливается в 1 триггер 45. Кроме того, для команды с кодом КОП устанавливается в 1 триггер 51, а для команды с кодом

КОПд устанавливается в 1 триггер

52. Как и в команде с кодом КОПд а,, а, — адреса, определяемые кодом команды. Для команды с кодом

КОП i†= для команды с кодом KOII>

i=5 для команды с кодом KOII 1=6.

50

Пятая команда имеет вид

После дешифрации кода операции дешифратором 6 на него подается мо дификатор М и, В зависимости от значений битов модификатор, блок 1 управления производит следующие действия в узле 7 регистрации:

Если бит. 0 модификатора равен 0, сбрасывается в 0 триггер 47.

Если бит 1 модификатора равен 0, сбрасывается в 0 триггер 48.

60

Р где A) и А — значения адресов, Опре- 15 деляемые полями команды. КОП переписывается из поля КОП команды. В узле 7 регистрации устанавливаются в 1 триггеры 45 и и 50. 20

Третьи и четвертая команды имеют вид

Если бит 2 модификатора равен 0, сбрасывается в 0 триггер 49.

Если бит 3 модификатора равен 0, сбрасывается в 0 триггер 50.

Если бит 4 модификатора равен 0, сбрасывается в 0 триггер 51.

Если бит 5 модификатора равен 0, сбрасывается в 0 триггер 52.

Если модификатор М весь нулевой или в ходе выполнения команды все триггеры 47-52 маски оказываются сброшенными в 0, сбрасывается в О. триггер 45 режима регистра-, ции. Больше в команде никаких действий не производится.

Перед выборкой любой команды из оперативной памяти процессора блок

1 управления анализирует триггер 46 в узле 7 регистрации ° Если он установлен в 1, блок 1 управления по второму выходу 12 посылает в устройство управления процессора сиГнал запроса на программное прерЫвание. Одновременно иэ блока 2 по фиксированному адресу считывается в буферный регистр 5 код прерывания. При входе в прерывание блок 1 посылает сигнал сброса в 0 триггера 46, а код прерывания с выхода регистра 5 через коммутатор 4 по первому выходу 11 подается в процес. сор.

Если прн анализе триггер 46 нахо-; дится в состоянии 0, блок 1 уп:равления анализирует триггер 45 °

Если триггеР в состоянии 1, т.е. режим регистрации задан, анализируется триггер 47. Если триггер

47 установлен в 1, адрес A соответствующий данному типу событий (зто определяется блоком 1 управления, который задает соответствующий адрес из блока 2), с выхода блока 2 через буферный регистр 5 и коммутатор 4 по выходу 11 подается на второй вход АЛУ процессора. По сигналам от блока 1 процессор подает адрес команды, находящийся в адресном регистре процессора, на первый .вход АЛУ и задает ь АЛУ операцию вычитания адреса А на втором входе из адреса команды A на первом входе.

Результат вычитания устройство управления процессора по второму входу

10 сообщает блоку 1 управления. Если результат неотрицателен, т.е. A ..

А, из блока 2 через регистр 5, коммутатор 4 и выход 11 подается адрес

A на второй вход АЛУ процессора, соответствующий панному типу событий. IIo сигналам от блока 1 управления процессор .подает на первый вход

АЛУ адрес команды из адресного,регистра процессора и задает операцию вычитания значения адреса A на пер-, 849218

65 вом входе АЛУ иэ значения адреса А на втором входе. Результат вычитания устройства управления процессора сообщает блоку 1 управления по входу 10. Если результат неотрицателен, т.е. AcA, устанавливается в 1 триггер 46 в узле 7 регистрации, а в блоке 2 по фиксированному адресу формируется код, соответствующий данному типу событий. Блок

1 по выходу 12 посылает в процессор сигнал, разрешающий переход к выборке команды.

Если при анализе триггера 47 оказывается, что он в состоянии 0, либо адрес команды не попадает в заданный интервал (A,À ), блок 1 управления анализирует трЖ-гер 50.

Если он установлен в 1, производится анализ попадания адреса команды (которая будет выполняться), находящегося в адресном регистре процессора, на попадание в интервал адресов (A A<), соответствующий данному типу событий. Если команда находится в указанной области памяти, по адресу в адресном регистре процессора она читается из оперативной памяти в регистр данных оперативной памяти процессора. В буферном регистре 5 находится слово местной памяти в ида оставшееся там после сравнения адресов. С выхода регистра 5 часть слова {КОП) через коммутатор 4 по выходу 11 подается на второй вход АЛУ процессора. По сигналам от блока

1 процессор подает код операции выбранной из памяти команды на первый вход АЛУ и задает операцию вычитания значения кода операции на первом входе иэ. значения кода операции на втором входе. Результат вычитания процессор сообщает блоку 1 управления по входу 10. Если результат нулевой, т.е. коды операции совпадают, устанавливается в 1 триггер 46, а в блоке 2 по фикстрованному адресу формируется код, соответствующий данному типу событий. После этого блок

1 управления подает в процессор по выходу 12 сигнал разрешения перехода к выборке команды.

Если значения кодов операции не совпадают, либо команда находится не в указанной области оперативной памяти, или триггер 50 находится в состоянии 0, установка триггера

46 не производится. Устройству управления процессора разрешается переход к выборке и выполнению команды.

Если триггер 46 установлен в 1, до окончания выполнения данной команды регистрация других событий, которые могут произойти в ходе ее выполнения, не производится, хотя

t0

45 соответствующие триггеры маски установлены в 1 .

В начале выборки команды адрес команды иэ процессора по входной шине 9 через коммутатор 4 подается в буферный регистр 5. Иэ регистра 5 этот адрес запоминается в блоке 8 по адресу, определяемому значением . счетчика 40. После записи слова в блок 8 значение счетчика 40 стека увеличивается на единицу. Кроме того, если в узле 7 триггер 45 установлен в 1, адрес текущей команды иэ буФерного регистра 5 запоминается в блоке 2 по фиксированному адресу. Эти действия в устройстве производят параллельно с выборкой команды в процессоре.

В ходе выполнения команды происходит обращение к ячейкам оперативной памяти либо. к регистрам общего назначения или с плавающей точкой с целью изменения их содержимого.

Если происходит обращение к оперативной памяти, сигнал обращения от устройства управления процессора по входу 10 поступает на вход блока 1, управления. Блок 1 вырабатывает сигнал установки в 1 триггера 53.

Затем анализируется триггер 48. Если он установлен в 1, блок 1 по выходу 12 посылает в процессор сигнал для приостановки выполнения команды.Когда приостановка выполнения команды произошла, устройство управления процессора сообщает об этом блоку 1. После этого значение адреса, по которому производится обращение к памяти, из адресного регистра процессора подается на первый вход АЛУ.

На второй вход АЛУ подаются значения адреса A A, соответствующие данному тийу событий, и сравниваются со значением адреса A. Если адрес памяти попадает в заданный интервал адресов (A« A<),в регистре регистрации масок событий производится установка в 1 триггера

46, а в блоке 2 запоминается по фиксированному адресу код, соответствующий данному типу событий.

Если триггер 48 маски в состоянии 0 либо адрес памяти не попадает в интервал адресов (A«A>), триггер 46 не устанавливается и код в блоке 2 не запоминается. Причем, если триггер 48 маски находится в состоянии 0, блок 1 не вырабатывает сигнал в устройство управления процессора на приостановку выполнения команды.

В обоих случаях {зарегистрировано событие или нет) после анализа адреса памяти блок 1 по выходу 12 посылает в процессор сигнал на продолжение выполнения команды. Триггер 53 в узле 7 сбрасывается в 0 .

849?18

14. В одной команде может производиться изменение содержимого нескольких ячеек оперативной памяти.

Каждый раз адреса этих ячеек анализируются, если задан режим регистрации этого события. Но это происходит до тех пор, пока адрес одной из ячеек не попадет в изданный интервал.

B результате устанавливается в 1 триггер 46, а прерывания выполнения команды для анализа последующих адресов ячеек памяти не производятся.

При обращении к регистрам общего назначения или с плавающей точкой с целью изменения их содержимого .сигнал обращения от процессора через вход 10 поступает на вход блока 1, который вырабатывает сигнал установки в 1 . триггера 54 или 55 в зависимости от типа сигнала обращения

Затем блок 1 анализирует триггер 51 или 52 маски в зависимости от того какой триггер (54 или 55) установлен. Если соответствующий триггер маски установлен в 1, блок 1 посылает по выходу 12 сигнал в процессор на приостановку выполнения ко- манды. После того, как приостановка произошла, о чем процессор сообщает блоку 1 сигналом по входу 10, адрес выполняемой команды из блока 2 через буферный регистр 5 и коммутатор 4 по выходу 11 подается на первый вход АЛУ процессора. На второй вход

АЛУ подаются поочередно адреса А и A ., соответствующие анализируемому типу событий, и сравниваются с адресом текущей команды. Если адрес команды находится в интервале адресов (A,,A<), блок 1 посылает в процессор сигналы, по которым процессор подает номер регистра, к которому произошло обращение на первый вход

АЛУ. В буферном регистре 5 находится слово местной памяти вида оставшееся после сравнения адресов.

Это слово подается на вход коммутатора 4, и с его выхода по выходу 11 номер регистра R заносится. на второй вход АЛУ. По сигналам от блока

1 устройство процессор задает в АЛУ операцию вычитания значения R< на втором входе из значения R на первом входе и сообщает результат вычитания блоку 1. Если результат неотрицателен, т.е. RyjR<, на второй вход

АЛУ подается значение R и задается операция вычитания значения R на первом входе из значения R на втором входе. Если результат этого вычитания также неотрицателен, т.е. R<В блок 1 посылает сигнал:установки в 1 триггера 46, а в блоке 2 по фиксированному адресу запоминается код, соответствующий данному типу событий.

ЗО

6 0

Если соответствующий триггер маски не установлен в 1, либо текущая команда не находится в заданной области памяти, либо номер регистра не попадает в интервал (В,, В),триггер 46 не. устанавливается и код прерывания не формируется, Кроме того, если при анализе оказывается, что триггер маски в состоянии 0, блок

1 не вырабатывает сигнал в процессор на приостановку выполнения програмMbl в

В обоих случаях .(зарегистрировано событие или нет) блок 1 посылает по выходу 12 сигнал в процессор для продолжения выполнения команды и сбрасывает в 0 . триггер 54 или

55. В одной команде может происходить изменение содержимого несколь-" ких регистров. Номера этих регистров анализируются до тех пор, пока номер одного из них не попадает в интервал (R, Р . В результате установлен в 1 триггер 46, и последующие приостановки выполнения команды для анализа номера регистра не производятся.

В случае успешного выполнения команды перехода сигнал об этом, вырабатываемый в процессоре, подается в блок 1 по входу 10. Блок 1 устанавливает в 1 триггер 56. После окончания выполнения команды бло.

1 анализирует триггер. 49. Если он установлен в 1, адрес команды перехода из блока 2 через буферный регистр 5 и коммутатор 4 по выходу

11 подается на первый вход АЛУ процессора. На второй вход АЛУ поочередно подаются адреса A и А<, соответствующие данному типу событий, и сравниваются с адресом команды. Если команда перехода находится в заданной области оперативной памяти, т.е. ее адрес поПадает в интервал (A< А ) и триггер 56 установлен в 1, устанавливается в 1 триггер 46, и в блоке 2 по фиксированному адресу запоминается соответствующий данному событию код. В противном случае триггер 46 не устанавливается и код в местной памяти не запоминается.

Изобретение позволяет ЭВМ самой регистрировать непредусмотренное изменение памяти и программно-доступ- . ных регистров. Причем отлаживаемая программа может выполняться совместно с другими программами, если ЭВМ работает в многопрограммном режиме.

По сравнению с прототипом время на отладку сокращается в 1,5-2 раза.

Экономический ":.ффект составляет

40000 руб в год.

Формула изобретения

Устройство для отладки программ, содержащее блок управления, блок

849218

16 местной памяти, регистр команд, коммутатор и буферный регистр, причем первый, второй и третий выходы коммутатора соединены соответственно с первым входом буферного регистра, первым выходом устройства и первым входом регистра команд, первый и второй выходы которого соединены соответственно с первым входом коммутатора и первым входом блока местной памяти, первый, второй, третий,четвертый и пятый выходы блока управления соединены соответственно с вторым входом буферного регйстра,вторым выходом устройства, вторым входом коммутатора, вторым входом регистра команд, вторым входом блока местной памяти, выход которого соединен с третьим входом буферного регистра, первый и второй выходы буферного регистра соединены соответственно с третьим входом коммутатора и третьим входом блока местной памяти, первый и второй входы устройства соединены соответственно с четвертым входом коммутатора и первым входом блока управления, о т л и ч а ю щ е е с я тем, что, с целью Расширения. функциональных возможностей устройства за счет обеспечения возможности фиксации событий, связанных с изменением содержания регистров группы ячеек памяти, в него введены дешифратор, узел регистрации и блок стековой памяти, причем третий выход регистра команд соединен с входом дешифратора, выход которого соединен с вторым входом блока управления, шестой и седьмой выходы блока управления соединены соответственно с первым входом блока стековой памяти и входом узла регистрации, выход которого соединен с третьим входом блока управления, выход блока стековой памяти соединен с четвертым входом буферно го регистра, третий выход которого соединен с вторым входом блока стековой памяти.

2. Устройство по п.l, о т л и— ч а ю щ е е с я тем, что блок управления содержит формирователь адреса микрокоманд, регистр адреса микрокоманд, блок памяти микРокоманд, регистр микрокоманд и дешифратор, причем выход формирователя адреса .микрокоманд соединен с входом регистра микрокоманд, выход которого соединен с входом блока памяти микрокоманд, выход блока памяти микроко15 манд соединен с входом регистра микрокоманд, первый и второй выходы которого соединены соответственно с первым входом формирователя адреса микрокоманд, и первым входом дешифратора, первый выход дешифратора соединен с вторым входом. формирователя адреса команд, остальные выходы дешифратора образуют группу выходов блока, первый, второй и третий входы блока соединены соответственно с третьим, четвертым и пятым входами формирователя адреса микрокоманд, второй и третий входы блока соединены с вторым и третьим входом дешифратора.

Источники информации, принятые во внимание при экспертизе

1 ° Патент CttIA Р 3673573, кл. 340-172 ° 5, 1972 °

2.. Авторское свидетельство СССР

9 598077., кл. G 06 F 9/20, 1978.

3. Авторское свидетельство СССР

Р 277410, кп. G 06 F 9/00, 1970.

4. Катцан. Вычислительные машины системы 370, М., Мир, 1974 (прототип) .

849218 . Фиг.б

Составитель И.Сигалов

Редактор Г.Кацалап Техред M.Ãîëèíêà Корректор Л. Иван

Заказ 6095/64 Тираж 745 Подписное

ВНИИПИ Государственного комитета СССР по делам изобретений и открытий

113035, Москва, Ж-35, Раушская наб., д.4/5

Филиал ППП Патент, r.Óæãoðîä, ул.Проектная, 4

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

 

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

Изобретение относится к вычислительной технике, а именно к устройствам для контроля и отладки цифровых управляющих систем, и может быть использовано для имитации функционирования объекта управления, в частности корабельного оружия

Изобретение относится к компьютерным технологиям, в частности к системам и способам формирования дамп файла при возникновении сбоя в работе программы (аварийном завершении программы) в вычислительных системах с ограниченными ресурсами

Изобретение относится к системе с многоядерным центральным процессором, в частности к способу устранения исключительной ситуации в многоядерной системе

Изобретение относится к вычислительной технике и может быть использовано при построении управляющих вычислительных машин (УВМ), нечувствительных к сбоям программ

Изобретение относится к вычислительной технике и может быть использовано в управляющих вычислительных машинах (УВМ), например в системах управления газотурбинного двигателя

Изобретение относится к вычислительной технике и предназначено для автоматизированной отладки программного обеспечения мультимашинных систем, работающих в реальном масштабе времени и имеющих общую память

Изобретение относится к вычислительной технике и может быть использовано в управляющих вычислительных машинах (УВМ)

Изобретение относится к вычислительной технике и может быть использовано для выявления циклических процессов анализируемой программы, регистрации их параметров и хранения регистрируемой информации в блоке памяти с последующей выдачей по запросу
Наверх