Устройство для отладки программ — SU 849218 (original) (raw)
н 849218 Союз Советских Социалистических Реснублин(22) Заявлеио 131179 (21) 2842043/18-24с присоединением заявки йо(51) М. Кл.з 6 06 Р 11/28 Государственный комитет СССР но делам изобретений и открытий(088.8). Дата опубликования описания 23.0781 А.Я.Аврукин, Н.М.Мелешко, В,В.Хорошавин, М.Я.Черп и М.Е.Неменман(71 ) Заявитель 54) УСТРОЙСТВО ДЛЯ ОТЛАДКИ ПРОГРАММ Изобретение относится к вычислительной технике и может быть исполь"зовано в ЭВМ для автоматической отладки программ,Известно устройство для отладкипрограмм, содержащее память типа ОЗУ,куда при отладке записываются адреса условных и безусловных переходов 1 .Известно устройство, в котором надвух регистрах запоминаются адресадвух последних переходов 2),Известно также устройство, в котором отладка программ осуществляется путем передачи управления суровня программы отладчика на уровень отлаживаемой программы, выполнения одной команды отлаживаемой программы, запоминания информации о.состоянии отлаживаемой программыв блоке хранения и возврата управления на уровень программы отладчика. Для этого устройство со"держит триггер сбоя, триггер автоматического переключения, триггеры возврата, четыре ряда клапанов и логические схемы И, ИЛИ иНЕ 3)Недостатком этих устройств является то, что н них регистрируют только один из многих возможных типов программных событий, сведения в которых нужны при отладке прог 5Нанболее близким к изобретению потехнической сущности является устройство регистрации программных событий, позволяющее зарегистрировать, 10а затем сообщить управляющей программе сведения о поступлении таких событий, происшедших в ходе вынолнения коМанды отлаживаемой програм мы, как выборка команды из заданной области оперативной памяти, иэмене ние содержимого заданных ячеек оперативной памяти, изменение содержимого заданных регистров общего назначения и успешное выполнение команды перехода. Анализ наступления 20 первых трех типов событий п 13 оиэводится перед выполнением команды, анализ успешного выполнения команды перехода производится после выполнения команды. Устройство работает 25 непосредственно с процессором ЭВМи содержит блок управления, местную память, регистр команд, коммутатор и буферный регистр, первый вход которого соединен с первым выходом З 0 коммутатора, второй вход соединенака фПатент, г.Ужгород, ул тная, 4 иал 6095/64 Тираж 745 ВНИИПИ Государственного ком по делам иэобретений и от 113035, Москва, Ж, Раушс510 15 120 25 ЗО 35 40 45 50 55 60 65 с первым выходом блока управления, а первый выход соединен с первым входом местной памяти, второй вход которой соединен с вторым выходом узла управления, а выход соединен с третьим входом буферного регистра, второй выход которого соединен с первым входом коммутатора, второй вход которого соединен с первым выходом регистра команд, первый вход которого соединен с третьим выходом узла управления, первый вход которого соединен с вторым выходом регистра команд, второй вход которого соединен с вторым выходом коммутатора, третий вход которого через первую входную шину устройства соединен с выходом коммутатора процессора ЭВМ, вход которого через первую выходную шину устройства соединен с третьим выходом коммутатора четвертый вход которого соединен с четвертым выходом блокауцравления, пятый выход которого через вторую выходную шину устройства соединен с входом устройства управления процессора ЭВМ, выход которого через вторую входную шину устройства подается на второй вход блока управления.В. этом устройстве регистрация изменения содержимого заданных ячеек оперативной памяти и заданныхрегистров общего назначения производится как и регистрация выборки команды иэ заданной области оперативной памяти, перед выполненирм ко. манды путем моделирования ее выполнения 4 .Однако анализируемые события могут происходить не в каждой команде. Для исключения анализа невозможных событий используются модификаторы возможных событий для каждой команды, которые хранятся в местной памяти, .что увеличивает ее объем. Кроме того, управляющей программе в ходе выполнения отлаживаемой пРограммы необходимы сведения о наступлении изменения содержимого заданных регистров с плавающей точкой и выполнения команды с заданным кодом операции, а также некоторой предйсто-. рии в виде последовательности ко- манд, выполняющихся процессором ЭВМ перед текущей командой, чего же позволяет сделать известное устройство.Цель изобретения - расширение функций устройства эа счет обеспечения возможности фиксации событий, связанный с изменением содержания регистров и группы ячеек памяти.Поставленная цель достигается тем, что в устройство содержащее блок управления, блок местной па" мяти, регистр команд, коммутатор и буферный регистр, причем первый, второй и третий выходы коммутатора соединены соответственно с первым входом буферного регистра, первым выходом устройства и первым входом регистра команд, первый и второй выходы которогосоединены соответственно с первым входом коммутатора и.первым входом блока местной памяти, первый, второй, третий, четвертый и пятый выходы блока управления соединены соответственно с вторым входом буферного регистра вторым выходом устройства, вторым входом коммутатора, вторым входом регистра команд, вторым входом блока. местной памяти, выход которого соединен с третьим входом буферного регистра, первый и второй выходы буферного регистра соединенные соответственно с третьим входом коммутатора и третьим входом блока местной памяти, первый и второй входы устройства соединены соответственно с четвертым входом коммутатораИ первым входом блока управления, введены дешифратор, узел регистрации и блок стековой памяти, причем третий выход регистра .команд соединен с входомдешифратора, выход которого соединен с вторым входом блока управления, шестой и седьмой выходы блока управления соединены соответственно с первым входом блока стековой памяти и входом узла регистрации, выход которого соединен с третьим входом блока управления, выход блока стековой памяти соединен с четвертым входом буферного регистра, третий выход которого соединен с вторым входом блока стековой памяти. Кроме того, блок управления содержит формирователь адреса микро- команд, регистр адреса микрокоманд, блок памяти микрокоманд, регистр микрокоманд и дешифратор, причем выход формирователя адреса микрокоманд соединен с входом регистрамикрокоманд, выход которого соединенс входом блока памяти микрокоманд,выход блока памяти микрокоманд соединен с входом регистра микрокоманд, первый и второй выходы которого соединены соответственно с первым входом формирователя адреса микрокоманд и первым входом дешифратора, первый выход дешифратора соединен с вторым входом формирователя адреса микрокоманд, остальные выходы дешифратора образуют групйу выходов блока, первый, второй и третий входы блока соединены с третьим, четвертым и пятым входами формирователя адреса микрокоманд, второй и третий входы блока соединен с вторым и третьим входом дешифратора,На фиг.1 представлена блок-схема устройства для отладки программы; на фиг.2 - блок управления; на фиг,З " блок местной памяти; на фиг.4 - стековая памятЫ на фиг.5узел регистрации; на Фиг.6 - коммутатор.Устройство содержит блок 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 поступает информация свыхода дешифратора 6. Выход формирователя 13 соединен с входом регистра 14, выход которого подаетсяна вход блока 15. Выход блока 15соединен с входом регистра 16 микрокоманд, с первого выхода которогоинформация поступает на первый входформирователя 13, а с второго выхода - на первый вход дешифратора 17Выходы дешифратора 17 через выходы21-26 блока соединены с входами буферного регистра 5, блока 2, регистра 3 команд, коммутатора 4, блока 8,узла 7 регистрации, соответственно,а через выход 27 с второй выходнойшиной 12 устрбйства - с входом устройства управления ЭВМ,Блок 2 местной памяти (фиг.З)предназначен для хранения заданныхкодов команд, начального и конечного значений адресов для каждого типарегистрируемых программных событий,номеров регистров общего назначенияи с плавающей точкой и кодов прерываний и содержит регистр 28. адреса,коммутатор 29, регистр 30 данных.и узел 31 хранения информации,выполненный по принципу полупроводникового биполярного запоминающегоустройства на интегральных схемахи содержащий и интегральных схем(по числу разрядов в запоминаемомслове), каждая иэ которых включаетв себя дешифратор 32 х, дешифратор33 у, усилители-формирователи записи и усилители 34 считывания и запоминающую триггерную матрицу 35.Входами блока местной памяти являют"ся шины 36, по которым поступают адреса и управлягчцие сигналы из бло 5055 60 5 О 15 20 25 30 35 40 45 ков 37 и 38 управления,связывающиеблок 2 с регистром 3 и буферным регистром 5. Выходом блока 2 являетсяшина 39, по которой, информация поступает на вход буферного регистра5 (Фиг.1),Стековая память 8 (фиг,4) предназначена для хранения адресов команд, выполняющихся последними, исостоит из счетчика 40 стека, узла41 хранения информации (Фиг.З),шины 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). Коммутатор (фиг.6) состоит иэ трех элементов И, одного элемента ИЛИ, имеющего три эквипотенциальных выхода, вход 59 от буферного регист- ра 5, вход 60 от регистра 3 команд, вход 61, соединенный с входом 9 устройства, вход 62 от блока 1 управления, выходы 63-65, соединенные с входами буферного регистра 5, регистра 3 команд и выходом 11 устройства, соответственно.Устройство работает следующим образом.В систему команд ЭВМ вводятся пять дополнительных команд, которые дешифрируются дешифратором 6 и выполняются под управлением блока 1. Первая команда имеет видОна поступает на регистр 3 команд с выхода коммутатора 4, на который она подается с первого входа 9 устройства. Код команды с выхода регистра 3 подается на дешифратор б и с его выхода на вход блока 1 управления, который начинАет выполнение этой команды, Выполнений начинается с того, что поле модификатора М подается на вход дешифратора б с выхода регистра 3 команд. В зависимости от значения модификатора М блок 1 управления формирует адреса блока 2. Адресное поле А команды с первого выхода регистра 3 через коммутатор 4 и выход 11 подается в процессор, где по сигналам от блока 1, идущим . по второй выходной шине 12 на вход устройства управления процессора, последнее формирует присущим для данной ЭВМ способом значение адреса А в адресном регистре процессора.Сформированный адрес с выхода адресного регистра процессора через коммутатор процессора, первый вход 9 и коммутатор 4 подается на вход буферного регистра 5. С выхода регистра 5 этот адрес поступает в регистр 30 данных и блок 2 по шине через коммутатор 29. Через коммутатор 29 в регистр 30 заносится также значение модификатора с выхода регистра 3. По шине .36 на вход блока 2 поступают от блока 1 управляющие сигналы в коммутатор 29, команда записи - в узел 31 храненияинформации и адрес - в регистр 28 адреса. Таким образом, сформированное слово вида записывается в блок 2 по адресу, определяемому значением модификатора М. Затем с выхода регистра 3 команд адресное поле команды А через ком 2 мутатор 4 и первый выход 11 поступает в процессор, где Формируется адрес и поступает в буферный регистр 5. С выхода регистра 5 этот адрес, как и А, записывается совместно с модификатором М в блок 2. В результате, в блоке 2 хранися информация видаа где а . и а, - адреса, соответЬН 1ствующие З.-му типу событий; 1=1 2 3, (1=0 для М=1 5.=1 для Мр 2, 1=2 для М=4, 1=3 для М=8). Параллельно с формированием информации в блоке 2 в узле 7 произво дится установка в 111 различных триггеров в зависимости от значения модификатора М. Модификатор М может принимать только четыре значения: М=1,2,4 и 8. Если М=1,2 или 4, блок 1 вырабатывает сигнал установки в 1 триггера 45. Кроме того, если М=1, устанавливается в 1 триггер 47. Если М=2, устанавливается в 1 триггер 48, Если М=4, устанавливается в.1 триггер 49, На этом выполнениикоманды для значений М=1,2 или 4 заканчивается.Если М=8, трнггер 45 не устанавливается. Значение А из 2 подаетсяв регистр 5, с его выхода через коммутатор 4 и первый выход 11 поступает в адресный регистр процессора,Адрес А 1 определяет начальный адресполя оперативной памяти процессора, 15 в которое передается содержимоеблока 8 устройства. После этого слово блока 8 по адресу, определяемомузначением счетчика 40, считываетсяиэ узла 41 по выходной шине 44 в бу ферный регистр 5. С .выхода регистра5 слово через коммутатор 4 по выходнойшине 11 подается на регистр данных оперативной памяти процессора.Значение счетчика 40 стека уменьшается на единицу, а в операционную памятьпо адресу в адресном регистрепроцессора записывается слово, находящееся в регистре данных оперативной памяти. Содержимое адресного регистра процессора подается на первыйвход арифметико-логического устройства процессора (АЛУ) .Значение адреса А с выхода блока 2 через буферный регистр 5, коммутатор 4, выходную шину 11 и коммутатор процессора подается на второйвход АЛУ. По сигналам от блока 1управления устройство управленияпроцессора задает операцию вычитаниязначения адреса на первом входе АЛУ 40 из значения А на втором входе. Результат вычитания сообщается блоку1. Если результат нулевой, т.е. адреса совпадают, на этом выполнениикоманды заканчивается. Если реэуль тат не нулевой, блок 1 управлениявызывает модиФикацию адреса в адресном регистре процессора на величинуодного слова оперативной памяти присущим данному процессору способом.5 О Далее в регистр данных оперативнойпамяти процессора поступает следующее слово. блока 8 и записывается воперативную память по адресу в адресном регистре. Счетчик 40 стека,уменьшается на единицу. Адрес в адресном регистре процессора сравнивается со значением адреса А, являющегося конечным адресом поля оперативной памяти процессора, в котороепереписывается содержимое блока 8 бО Выполнение команды заканчивается,когда адрес в адресном регистрепроцессора становится равным адресу АрРазность А 2-А может принимать 65 ения (в единицах, равных величиэначне слова), от 0 до в(где ш - глубина стековой памяти) .Таким образом, можно считать в оперативную память процессора либо часть стековой памяти, либо все ш слов.Вторая команда имЕет Вид Как и при выполнении команды с ОП 1 в блоке 2 по соответствующим дресам запоминается информация в Й+где Аи А значения адрес деляемые полям писывается из по зле 7 регистраци в 1 триггеры четвертая команды опре команКОП уста 5 иды. КОП пекоманды. Внавливаютси 50. мею тьи и д де В номер регистровназначения в ккодами КОПномер регистрощей точкой в ккодами КОП егоах омандв соманд лава ах с При выпо и при выпол КОП, в бло ветствующим ется информ ненни этих кенин командые 2 по адрекоду команд ндК как домоот- минасам,зап В узле 7 при выполнении обеих коустанавливается в 1 триг 45. Кроме того, для команды сом КОП устанавливается в 1ггер 51, а для команды с кодомустанавливается в 1 тригге52. Как и в команде с кодом КОПда, а- адреса, определяемыекодом команды. Для команды с кодомКОП 1=4; для команды с кодом КОП1=5, для команды с кодом КОП 1=6. мандгеркодтри Пятая команд еет в После дешидешифраторомдификатор М ичений битов мравления проивия в узле 7Если бит. 00, сбрасыгер 47. фрации кода опер6 на него подаетВ зависимостиодификатор, блокэводит следующиерегистрации:модификатора равается в 0 ациися мо- от зна уп- дейсте и модификатора рвается в 01 Если бит 0, сбра ер 48. иг Если бит 2 модификатора равенО, сбрасывается в фО триггер 49,Если бит 3 модификатора равен0 ф, сбрасывается в 0 триггер 50.Если бит 4 модификатора равенффО, сбрасывается в 0 триггер 51.Если бит 5 модификатора равенО, сбрасывается в 0 триггер 52,Если модификатор М весь нулевойили в ходе выполнения команды всетриггеры 47-52 маски оказываютсясброшенными в О, сбрасываетсяв О триггер 45 режима регистра-,ции. Больше в команде никаких действий не производится.Перед выборкой любой команды изоперативной памяти процессора блок1 управления анализирует триггер 46в узле 7 регистрацииЕсли он установлен в 11 ф, блок 1 управленияпо второму выходу 12 посылает вустройство управления процессорасиГнал запроса на программное преРЫвание. Одновременно иэ блока 2 поФиксированному адресу считываетсяв буферный регистр 5 код прерывания. При входе в прерывание блок 1посылает сигнал сбросав 0 триггера 46, а код прерывания с выходарегистра 5 через коммутатор 4 попервому выходу 11 подается в процессор.Если прн анализе триггер 46 нахо.;дится в состоянии 0, блок 1 управления анализирует триггер 45Если триггер в состоянии 1,т.е. режим регистрации задан, анализируется триггер 47. Если триггер 40 47 установлен в 1, адрес А,соответствующий данному типу событий(зто определяется блоком 1 управления, который задает соответствующийадрес из блока 2), с выхода блока 2 45 через буФерный регистр 5 и коммутатор 4 по выходу 11 подается на второй вход АЛУ процессора. По сигналамот блока 1 процессор подает адрес команды, находящийся в адрес ном регистРе процессора, на первыйвход АЛУ и задает ь АЛУ операциювычитания адреса А на втором входеиз адреса команды А на первом входе.Результат вычитания устройство управ.ления процессора по второму входу10 сообщает блоку 1 управления. Если результат неотрицателен, т.е. А .А, из блока 2 через регистр 5, коммутатор 4 и выход 11 подается адресА на второй вход АЛУ процессора, 60 соответствующий панному типу событий. По сигналам от блока 1 управления процессор подает на первый входАЛУ адрес команды из адресного,регистра процессора и задает операцию 65 вычитания значения адреса А на пер-,вом входе АЛУ иэ значения адреса А на втором входе. Результат вычитания устройства управления процессора сообщает блоку 1 управления по входу 10, Если результат неотрицателен, т,е. А(А , устанавливается в 1 триггер 46 в узле 7 регистрации, а в блоке 2 по фиксированному адресу формируется код, соответствующий данному типу событий. Блок 1 по выходу 12 посылает в процессор сигнал, разрешающий переход к выборке команды.Если при анализе триггера 47 оказывается, что он в состоянии 0, либо адрес команды не попадает в заданный интервал А ,А 1, блок 1 управления анализирует триггер 50. Если он установлен в 1, производится анализ попадания адреса команды (которая будет выполняться), находящегося в адресном регистре процессора, на попадание в интервал адресов АА 1, соответствующий дан" ному типу событий, Если команда находится в указанной области памяти, по адресу в адресном регистре процессора она читается из оперативной памяти в регистр данных оперативной памяти процессора. В буферном регистре 5 находится слово местной памяти вида оставшееся там после сравнения адресов. С выхода регистра 5 часть слова (КОП) через коммутатор 4 по выходу 11 подается на второй вход АЛУ процессора. По сигналам от блока 1 процессор подает код операции выбранной из памяти команды на первый вход АЛУ и задает операцию вычитания значения кода операции на первом вхо- де иэ. значения кода операции на втором входе. Результат вычитания процессор сообщает блоку 1 управления по входу 10. Если результат нулевой, т.е. коды операции совпадают, устанавливается в 1 триггер 46, а в блоке 2 по фикстрованному адресу формируется код, соответствующий дан- ному типу событий. После этого блок 1 управления подает в процессор по выходу 12 сигнал разрешения перехода к выборке команды.Если значения кодов операции не совпадают, либо команда находится не в указанной области оперативной памяти, или триггер 50 находится в состоянии Офф, установка триггера 46 не производится. Устройству управ- ления процессора разрешается переход к выборке и выполнению команды,Если триггер 46 установлен в 11, до окончания выполнения данной команды регистрация других событий, которые могут произойти в ходе ее выполнения, не производится, хотя50 55 60 65 5 30 15 20 25 ЗО 35 40 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. После этого значение адреса, по которому производится обращение к памяти, из адресного регистра процессора подается на первый вход АЛУ.На второй вход АЛУ подаются значения адреса А и А , соответствующие данному тийу событий, и сравниваются со значением адреса А. Если адрес памяти попадает в заданный интервал адресов А, А 3,в регистре регистрации масок событий производится установка в 1 триггера 46, а в блоке 2 запоминается по Фиксированному адресу код, соответствующий данному типу событий. Если триггер 48 маски в состоянии 0, либо адрес памяти не попадает в интервал адресов А,А), триггер 46 не устанавливается и код вблоке 2 не запоминается. Причем,если триггер 48 маски находится в состоянии 0, блок 1 не вырабатывает сигнал в устройство управления процессора на приостановку выполнения команды.В обоих случаях зарегистрировано событие или нет) после анализа адреса памяти блок 1 по выходу 12 посылает в процессор сигнал на продолжение выполнения команды. Триггер 53 в узле 7 сбрасывается в ф 0,. В одной команде может производиться изменение содержимого нескольких ячеек оперативной памяти. Каждый раз адреса этих ячеек анализируются, если задан режим регистрации этого события. Но это происходит до тех пор, пока адрес одной из ячеек не попадет в изданный интервал. В результате устанавливается в 1 триггер 46, а прерывания выполнения команды для анализа последующих адресов ячеек памяти не производятся.При обращении к регистрам общего назначения или с плавающей точкой с целью изменения их содержимого .сигнал обращения от процессора через вход 10 поступает на вход блока 1, который вырабатывает сигнал установки в 1. триггера 54 или 55 в зависимости от типа сигнала обращения Затем блок 1 анализирует триггер 51 или 52 маски в зависимости от того какой триггер (54 или 55) установлен. Если соответствующий триггер маски установлен в 1, блок 1 посылает по выходу 12 сигнал в процессор на приостановку выполнения ко- манды. После того, как приостановка произошла, о чем процессор сообщает блоку 1 сигналом по входу 10, адрес выполняемой команды из блока 2 через буферный регистр 5 и коммутатор 4 по выходу 11 подается на первый вход АЛУ процессора. На второй вход АЛУ подаются поочередно адреса А и А , соответствующие анализируемому типу событий, и сравниваются с адресом текущей команды. Если адрес команды находится в интервале адресов АА), блок 1 посылает в процессор сигналы, по которым процессор подает номер регистра, к которому произошло обращение на первый вход АЛУ. В буферном регистре 5 находится слово местной памяти видаоставшееся после сравнения адресов.Это слово подается на вход коммутатора 4, и с его выхода по выходу 11номер регистра Е, заносится. на вто"рой вход АЛУ. По сигналам от блока1 устройство процессор задает в АЛУоперацию вычитания значения В 1 навтором входе из значения З на первомвходе и сообщает результат вычитания блоку 1. Если результат неотрицателен, т.е. НЗВ , на второй вхоДАЛУ подается значение В и задаетсяоперация вычитания значения Н на первом входе из значения Н на второмвходе. Если результат этого вычитания также неатрицателен, т.е. ННблок 1 посылает сигнал:установки в1 триггера 46, а в блоке 2 пофиксированному адресу запоминаетсякод, соответствующий данному типусобытий.Если соответствующий триггер маски не установлен в 1, либо текущая команда не находится в заданной области памяти, либо номер регистра не попадает в интервал В В,триггер 46 не устанавливается и код прерывания не формируется, Кроме того, если при анализе оказывается, что триггер маски в состоянии 0, блок 1 не вырабатывает сигнал в процессор на приостановку выполнения программывВ обоих случаях (зарегистрировано событие или нет) блок 1 посылает по выходу 12 сигнал в процессор для продолжения выполнения команды и сбрасывает в 0. триггер 54 или 55. В одной команде может происходить изменение содержимого несколь-" ких регистров. Номера этих регистров анализируются до тех пор, пока номер одного из них не попадает в интервал В, Р . В результате установлен в 1 триггер 46, и после" дующие приостановки выполнения команды для анализа номера регистра не производятся.В случае успешного выполнения команды перехода сигнал об этом, вырабатываемый в процессоре, подается в блок 1 по входу 10, Блок 1 устанавливает в 1 триггер 56. После окончания выполнения команды бло, 1 анализирует триггер. 49. Если онустановлен в 1, адрес команды перехода из блока 2 через буферный регистр 5 и коммутатор 4 по выходу 11 подается на первый вход АЛУ процессора. На второй вход АЛУ поочередно подаются адреса А и А, соответствующие данному типу событий, и сравниваются с адресом команды. Если команда перехода находится в заданной области оперативной памяти, т.е. ее адрес поПадает в интервал А,А 1 и триггер 56 установлен в 1 ф, устанавливается в ф 1 триггер 46, и в блоке 2 по фиксированному адресу запоминается соответствующий данному событию код. В противном случае триггер 46 не устанавливается и код в местной памяти незапоминается.Изобретение позволяет ЭВМ самой регистрировать непредусмотренное из" менение памяти и программно-доступ-, ных регистров. Причем отлаживаемая программа может выполняться совместно с другими программами, если ЭВМ работает в многопрограммном режиме, По сравнению с прототипом время на отладку сокращается в 1,5-2 раза,Экономический ":.ффект составляет 40000 руб в год. Устройство для отладки программ,содержащее блок управления, блок 5 0 15 20 25 ЗО 35 40 45 50 55 60 Формула изобретенияместной памяти, регистр команд, коммутатор и буферный регистр, причемпервый, второй и третий выходы коммутатора соединены соответственно спервым входом буферного регистра,первым выходом устройства и первымвходом регистра команд, первый ивторой выходы которого соединены соответственно с первым входом коммутатора и первым входом блока местнойпамяти, первый, второй, третий ,четвертый и пятый выходы блока управления соединены соответственно с вторым входом буферного регйстра,вторымвыходом устройства, вторым входомкоммутатора, вторым входом регистракоманд, вторым входом блока местнойпамяти, выход которого соединен стретьим входом буферного регистра,первый и второй выходы буферного регистра соединены соответственно стретьим входом коммутатора и третьимвходом блока местной памяти, первыйи второй входы устройства соединенысоответственно с четвертым входомкоммутатора и первым входом блокауправления, о т л и ч а ю щ е е с ятем, что, с целью Расширения. Функциональных возможностей устройства засчет обеспечения возможности фиксации событий, связанных с изменениемсодержания регистров группы ячеекпамяти, в него введены дешифратор,узел регистрации и блок стековой памяти, причем третий выход регистракоманд соединен с входом дешифратора,выход которого соединен с вторымвходом блока управления, шестой иседьмой выходы блока управления соединены соответственно с первым входом блока стековой памяти и входомузла регистрации, выход которого соединен с третьим входом блока управления, выход блока стековой памятисоединен с четвертым входом буферного регистра, третий выход которогосоединен с вторым входом блока стековой памяти.2. Устройство по п,1, о т л и -ч а ю щ е е с я тем, что блок управления содержит формирователь адресамикрокоманд, регистр адреса микрокоманд, блок памяти микРокоманд,регистр микрокоманд и дешифратор,причем выход формирователя адреса,микрокоманд соединен с входом регистра микрокоманд, выход которогосоединен с входом блока памяти микрокоманд, выход блока памяти микроко манд соединен с входом регистра микрокоманд, первый и второй выходы которого соединены соответственно спервым входом Формирователя адресамикрокоманд, и первым входом дешифратора, первый выход дешифратора соединен с вторым входом. формирователя адреса команд, остальные выходы дешифратора образуют группу выходов блока,первый, второй и третий входы блокасоединены соответственно с третьим,четвертым и пятым входами формирователя адреса микрокоманд, второй итретий входы блока соединены с вторыми третьим входом дешифратора.30Источники информации,принятые во внимание при экспертизе1. Патент США Р 3673573,кл. 340-1725, 19722,. Авторское свидетельство СССРР 598077., кл. С 06 Р 9/20, 1978.3. Авторское свидетельство СССРР 277410, кп, 6 06 Г 9/00, 1970.4, Катцан, Вычислительные машинысистемы 370, М., Мир, 1974 (прототип) .