Устройство для отладки программ
Похожие патенты | МПК / Метки | Текст | Заявка | Код ссылки
Номер патента: 1104521
Авторы: Бурковский, Фомин
Текст
СООЗ СОВЕТСКИХСОЦИАЛИСТИЧЕСКИХРЕСПУБЛИК ц С 06 Р 11 ИЙПИСАНИЕ ИЗОБРЕТЕНИ К АВТОРСКОМ В ЕТЕЛЬСТ л ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТ(56) 1. Авторское свидетельство СССРУ 763900, кл.С 06 Р 1100, 1979.2. Патент США У 3937938,кл. С 06 Р 11/00, 1976. (прототип).(54)(57) УСТРОЙСТВО ДЛЯ ОТЛАДКИ ПРОГРАММ, содержащее первый блок памяти,блок останова, блок задания режимов и первый блок сравнения, информационный и управляющий входы которого являются соответственно входомадреса команды и первым тактовымвходом устройства, выход первого блока сравнения соединен с первым входом блока останова, выход которогоявляется выходом останова устройства,о т л и ч а ю щ е е с я тем, что,с целью повышения производительности,в устройство введены второй блок сравнения, второй и третий блоки памяти,первый и второй коммутаторы, причем выходы блока задания режимовсоединены с управляющими входамипервого, второго и третьего блоковпамяти и первого и второго коммутаторов, первый и второй входы первогокоммутатора соединены соответственнос первым и вторым входами запускаустройства, а выходы соединены с входами запуска блоков памяти и вто,801104521 рым входом блока останова, первыйи второй информационные входы второкоммутатора являются соответственно входом адреса числа и входом адреса эталона устройства, выходы второго коммутатора соединены с адресными входами блоков памяти, информационные входы которых подключены к входам эталонного кода устройства, выходы второго и третьего блоков памяти соединены соответственно с третьим входом блока останова и вторым информационным входом второго блока сравнения, первые информационный и управляющий входы второго блока сравО нения соединены соответственно с Ф входом числа и вторым тактовым входом устройства, выход второго блока сравнения соединен с четвертым вхо- ( дом блока останова, причем блок оста- нова содержит триггер, два элемен- Я та НЕ, элемент И, кнопку и элемент задержки, причем выход триггера является выходом блока, первый вход триггера через кнопку соединен 4,") с шиной нулевого потенциала, а второй 4 В вход через первый элемент НЕ - с вы- .(7 ходом элемента И, первый вход которо-, Я го через элемент НЕ соединен с первым входом блока, второй вход через элемент задержки - с вторым входом б ока, третий и четвертый входы элемента И являются третьим и четвертым входами блока. ,Ж4521 1 использовано при отладке программцифровых вычислительных управляющихмашин (ЦВУМ).5Известно устройство для отладкипрограмм, обеспечивающее в процессеотладки запоминание двух последнихадресов команд условного и безусловного перехода, предшествующих коман Оде,на которой произошел останов в результате сбоя, либо при совпадении ко.да адреса и кода команды, набранныхоператором на пульте ЦВУМ, с текущими значениями кодов адреса и команды. При этом также осуществляется запоминание адреса команды,предшествующей указанным командамперехода. Устройство содержит устройство управления, регистры перехо- щдов, схему управления, схему сравнения, счетчик команд, дешифратор, блокопераций, регистр команд, переключатели, а также узел управления переходами, содержащий элементы И, триггер и элемент задержки 1 ,Недостатком устройства являетсянизкая производительность, так какпри наличии ошибок, не вызывающих останова ЦВУМ, необходимо с целью 30локализации ошибки производить сериюпринудительных остановов, что требует затрат времени и нарушает реальный масштаб времени.Наиболее близким по технической3511 О Изобретение относится к цифровой вычислительной технике и может бытьсущности и достигаемому результату к изобретению является устройство, содержащее блок памяти, блок совпадения, блок останова. Выход блока совпадения подключен к входу блока останова, выход которого при использовании устройства соединен с устройством управления ЦВМ, реализующей отлаживаемые программы. Устрой- ство содержит переключатели выбора параметров, связанные с блоком совпадения через регистры параметров. Блок выбора режима предназначен для перевода устройства в один из режимов работы 2 3.Недостатком укаэанного устройства является низкая производительность отладочных работ из-за сравнительно большого времени локализации бшибки, С целью локализации оператор15 вырабатывает гипотезу о возможном местонахождении ошибки. В результате с помощью описанного оборудования либо указывается точка останова ЦВМ для получения информации о выполняе мых командах на выбранном участке программы, либо указывается участок запоминания числовой информации без останова машины. В первом случае непроизводительные затраты времени складываются из интервалов времени простоя ЦВМ после останова на исправных участках программы, во втором - даже при удачном выборе гипотезы программа пробегает неисп-равный участок. В результате теряется полная информация о состоянии регистров ЦВМ в момент прохождения неисправного участка программы. Как в первом, так и во втором случаях отсутствует автоматизация анализа информации. Оператору необходимо произвести действия для выводов имеющейся информации на дисплей и после этого перейти к ее анализу.Кроме того, в устройстве отсутствуют средства контроля в реальном масштабе времени правильности выполнения программы, В реальном масштабе времени осуществляется только запоминание некоторой информации, которая затем используется оператором для определения правильности выполнения программы и локализации ошибок в ней. Эту работу выполняют после того, как ЦВМ остановлена вследствие сбоя, принудительно или в результате полного выполнения программы.Целью изобретения является повышение производительности отладки. Указанная цель достигается тем, что в устройство для отладки программ, содержащее первый блок памяти, блок останова, блок задания режимов и первый блок сравнения, информационный и управляющий входы которого являются соответственно входом адреса команды и первым тактовым входом устройства, выход первого блока сравнения соединен с первым входом блока останова, выход которого является выходом останова устройства, дополнительно введены второй блок сравнения, второй и третий блоки памяти, первый и второй коммутаторы, причем выходы блока задания режимов соединены с управляющими входами первого. второго и третьего блоков памяти и первого и второго коммутаторов, первый и второй входы первого комму татора соединены соответственно с первым и вторым входами запуска21 3 11045устройства, а выходы соединены с входами запуска блоков памяти и вторым входом блока останова, первыйи второй информационные входы вто 1 рого коммутатора являются соответственно входом адреса числа и входомадреса эталона устройства, выходывторого коммутатора соединены с адресными входами блоков памяти, информационные входы которых подключены 10к входам эталонного кода устройства,выходы второго и третьего блоковпамяти соединены. соответственно стретьим входом блока останова и вторыминформационным входом второго блокасравнения, первые информационный и управляющий входы второго блока сравнения соединены соответственно с входом числа и вторым тактовым входомустройства, выход второго блока срав.нения соединен с четвертым входомблока останова, причем блок останова содержит триггер, два элемента НЕ,элемент И, кнопку и элемент задержки,причем выход триггера является выходом блока, первый вход триггера, через кнопку соединен с шиной нулевогопотенциала, а второй вход - через первый элемент НЕ - с выходом элемента И, первый вход которого через элемент НЕ .соединен с первым входом блока,второй вход через элемент задержкис вторым входом блока, третий и четвертый входы элемента И являютсятретьим и четвертым входами блока.При эксплуатации предлагаемоеустройство подключается к ЦВУМ, накоторой выполняется отлаживаемаяпрограмма. При этом входы адресакоманд устройства соединены с шинами40адреса команды ЦВУМ, входы числа устройства - с шинами данных ЦВУМ, тактовые входы устройства - с тактовыми шинами ЦВУМ, первый вход запускаустройства - с управляющей шиной "Обращение к ОЗУ" ЦВУМ, вход адреса числа устройства - с шинами адреса данных ЦВУМ, а выход останова устройства - с входом останова блока управления ЦВУМ,50 Входы эталонного кода, входы адреса эталона, а также второй вход запуска устройства подключены к универсальной ЭВМ, либо к любой другой аппаратуре, обеспечивающей загрузку уст 15 ройства эталонной информацией.Для начала процесса отладки про" грамм блоки памяти устройства загружа. ют необходимой информацией. При этомв третьем блоке памяти размещают эталонные коды по тем же адресам, покоторым размещаются в ОЗУ ЦВУМ соответствующие им контролируемые данные.Эти же адреса в первом и второмблоках памяти загружают соответственно адресами команд, при выполненении которых производится контрольс помощью указанных эталонов, и признаками контроля. В процессе выполнения отлаживаемой программы при выплнении команд, вырабатывающих сигнал обращения к ОЗУ, производится запускустройства. При этом в первую очередьосуществляется анализ информации, считанной из второго блока памяти. Присчитывании из него определенногопризнака осуществляют контроль выполнения текущей команды ЦВУМ, что определяют с помощью первого блока сравнения. С помощью второго блокасравнения. осуществляют собственноконтроль выполнения текущей команды -контроль совпадения текущих данных с эталонными, считанными из третьего блока памяти. При несовпадении указанных данных устройство вырабатывает на своем выходе сигналы останова ЦВУМ. Во всех остальных случаях, включающих выполнение программой команд, не указанных в числе контролируемых, а также при совпадении текущих данных с эталонными, вмешательство в работу ЦВУМ не производится.Синхронизация работы устройства впроцессе отладки сигналами ЦВУМ,параллельное считывание и обработка необходимой информации обеспечивают получение результата контролядо конца текущей операции ЦВУМ, чтообуславливает высокую точность локализации ошибки.На фиг.1 представлена блок-схемапредлагаемого устройства; на фиг,2функциональная схема блоков памятина фиг. 3 - функциональная схемаблока задания режимов; на фиг.4функциональная схема блока первогокоммутатора; на фиг.5 - функциональная схема блока останова; на фиг,б -функциональная схема схем сравнения,на фиг.7 - функциональная схема второго коммутатора,Предлагаемое устройство (фиг.1)содержит блок 1 останова, первыйблок 2 сравнения, второй блок 3 срав"нения, второй блок 4 памяти, первыйблок 5 памяти, третий блок 6 памяти, первый коммутатор 7, второй коммутатор 8, блок 9 задания режимов,выход 10 останова, входы 11 адресакоманды, первый тактовый вход 12, вхо ды 13 числа, второй тактовый вход 14,входы 15 эталонного кода, первыйвход 16 запуска, второй вход 17 запуска, вход 18 адреса числа, вход 19адреса эталона.Функциональная схема блоков 4-6(фиг.4) содержит первый элементИ 28, второй элемент И 29 и элементИЛИ 30.Функциональная схема блока 125(фиг.6) сравнения содержит элементзадержки 37, элемент И 38, триггеры 39, элемент равнозначности 40и элемент И 41.Функциональная схема коммутатора 8 (фиг.7) содержит элемент И 42первой группы, элемент И 43 второй группы и элемент ИЛИ 44. 20 Первые информационные входы бло ка 2 связаны с входами, 11 устройства, управляющий вход - с входом 12, а выход - с первым входом блока 1, выход которого соединен с выходом 10 устройства. Первый и второй выходы блока 9 связаны с соответствующими управляющими входами блоков 4-8. Первый и второй сигнальные входы коммутатора 7 подключены соответственно к входам 16 и 17 устройст 50 ва, а выход - к входам запуска блоков 4-6 и второму входу блока 1. Первые и вторые сигнальные входы коммутатора 8 соединены соответственно с входами 18 и 19 устройства, а вы 55 ход - с адресными входами блоков 4-6, информационные входы которых подключены к входам 15 устройства. Выходы блоков 4-6 соединены соответственно с третьим входом блока 1,вторыми информационными входами блока 2 и вторыми информационными входами блока 3, первые информационныевходы которого связаны с входами 13устройства, управляющий. вход - с входом 14 устройства, а выход - счетвертым входом блока 1.Первый и второй управляющие входыблоков 4-6 подключены к схеме 20,выходы которой соединены с формирователями 24, регистром 26, формирователями 23 и регистром 21. Адресные входы блоков 4-6 через регистр 21дешифратор 22 и формирователи 23связаны с входами накопителя 25, вторые входы которого подключены к выходам формирователей 24, а выходык информационным входам регистра 26,выходы которого соединены с входамиформирователей 24 и выходами блока,а другие информационные входы - синформационными входами блока.Выходные контакты переключателя27 соединены с выходами блока 9,а входные - с постоянными сигналамилогических уровней "1" и "0".Элемент И 28 коммутатора 7 связан первым и вторым входами соответственно с первым сигнальным и вторым управляющим входами коммутатора.Элемент И 29 коммутатора 7 соединенпервым и вторым входами соответственно с вторым сигнальным и первымуправляющим входами блока. Выходыэлементов И 28 и 29 через элементИЛИ 30 соединены с выходом коммутатора,Четвертый вход блока 1 черезпоследовательно включенные элементы 36, 34, 33 и 31 связан с еговыходом, причем первый и третийвходы блока соединены соответственно с вторым и третьим входами элемента И 34, четвертый вход которогочерез элемент задержки 35 подключенк второму входу блока, а второйвход триггера 31 через кнопку 32соединен с постоянным потенциаломуровня,"0".Первые информационные входыблока 2 подключены к первым входамэлементом И 38, вторые входы которых через элемент задержки 37 соединены с управляющим входом блока, авыходы через первые входы триггеров 39 - с первыми входами элементов равнозначности 40, вторые входы которых связаны с вторыми инфор1104мационными входами блока, а выходы - с входами элемента И 41, выход которого подключен к выходу блока, причем вторые входы триггеров 39соединены с управляющим входом бло ка. Блоки 2 и 3 выполнены идентично.Первые сигнальные входы коммутатора 8 последовательно через первые входы элементов И 42 и ИЛИ 44 связа ны с выходами коммутатора, вторые его сигнальные входы через первые входы элементов И 43 - с вторыми входами элементов ИЛИ 44, причем вторые входы элементов И 42 подклю чены к второму, а вторые входы элементов И 43 - к первому управляющим входам коммутатора.Устройство используют совместно с ЦВУМ, на которой реализуется отла живаемая программа. При этом выход 10 соединяют с входом останова блока управления ЦВУМ, входы 11 - с шинами адреса команды ЦВУМ, выходы 14 с шинами данных ЦВУМ, входы 12 и 13 -25 с тактовыми шинами ЦВУМ, входы 16 - с управляющей шиной "Обращениек ОЗУ" ЦВУМ, входы 16 - с управляющей шиной "Обращение к ОЗУ" ЦВУМ, входы 18 - с шинами адреса числа ЦВУМ, 30 Для обеспечения загрузки блоков памяти устройства его подключают к выходам сопрягаемого источника информации, например, универсальной ЭВМ таким образом, чтобы на входы 15, 19 и 17 устройства поступали соответственно информационные эталонные коды, коды адреса и синхронизирующий сигнал запуска устройства.40Для загрузки устройства эталонной информацией переключатель 27 блока 9 устанавливают в положение 1. В этом положении переключателя 27 на первом выходе блока 9 будет постоянный сиг нал "1" уровня, а на втором - "0" уровня. В результате этого коммутатор 8 подает на адресные входы блоков 4-6 через элементы 43 и 44 код адреса с входов 19, причем элементы 42 О закрываются сигналом "0" с второго управляющего входа. На входы запуска блоков 4-6 через второй сигнальный вход блока 7 и его элементы 29 и 30 поступает сигнал запуска с входа 17 5 устройства. С входов 15 в блоки 4-6 через их соответствующие входы поступает эталонная информация. 5218Сигналы "1" на первом управляющем входе и "0" на втором управляющем .входе блоков 4-6 определяют режим записи информации. По сигналу опроса на соответствующем входе блоков 4-6 схема 20 вырабатывает последовательность сигналов, под действием которых переписывается с адресных входов блоков 4-6 в регистр 21 код адреса и возбуждаются формирователи 23, выбранные сигналами с дешифратора 22, дешифрирующего состояние регистра 21, В результате на выбранные координатные шины в накопителе 25 подаются токи записи. Кроме того, на разрядные шины накопителя 25 подаются токи с формирователей 24, причем эти токи соответствуют коду в регистре 26, переписанному в него с входов 15 по сигналу со схемы 20, Таким образом, в режиме 1 по сигналу на входе 17 осуществляется запись в блоки 4-6 информации из универсальной ЭВМ.Последовательно формируя необходимые сигналы на входах 15, 17 и 19. загружают в блоки 4-6 информацию, необходимую для контроля правильности выполнения программы. Эта информация содержит как координаты точек контроля, так и эталоны контролируемых величин. При этом в ячейки с одинаковыми адресами блоков 5-7 записывается информация, необходимая дляконтроля одной точки программы и формируемая по следующему правилу.Адрес, по которому записываетсяинформация, соответствует адресуячейки ОЗУ ЦВУМ, выделенной для хранения контролируемых данных. По этому адресу в блок 5, выполненный в данном случае одноразрядным, записывают сигнал "1", а в блок 4 - код адреса команды, использующей или вырабатывающей контролируемые данные. В блоке 7 по данному адресу записывают само эталонное значение, подлежащее сравнению с контролируемой величиной, По всем адресам блока 5, не являющихся адресами контролируемых данных, записывают сигнал "0". После загрузки блоков памяти нажатием кнопки 32 в блоке 1 устанавливают в исходное состояние триггер 31 При этом на выходе блока 1 формируется сигнал, не препятствующий выполнению программы ЦВУМ. В режиме контроля программы переключатель 279занимает положение 11. На первом выходе блока 9 устанавливается при этом потенциал уровня "О", а на вто ром - уровня "1", В результате коммутатор 8 подает на адресные входы блоков 4-6 через элементы 42 и 44 адрес числа с входов 18, причем элементы 43 закрываются сигналом "О" с первого управляющего входа. На вход запуска блоков памяти через первый сигнальный вход блока 7 и его элементы 28 и 30 открывается путь для сигнала с входа 16.В процессе выполнения отлаживаемой программы ЦВУМ вырабатывает в каждой машинной операции тактовый сигнал, поступающий через вход 12 на управляющий вход блока 2, В результате происходит обнуление элементов 39, а через некоторое время, определяемое элементом задержки 37, осуществляется занос в триггеры 39 через элементы 38 кода адреса ко-. манды ЦВУМ с входов 11. Аналогично в блоке 3 с помощью другого тактового сигнала, поступающего на вход 14, осуществляется фиксация кода данных с входов 13. На элементах 40 производится анализ совпадения кода, фиксированного в блоке с кодом на его вторых информационных входах. Результирующий: сигнал формируется на выходе элемента 41, т.е, на выходе блока.При выполнении в ЦВУМ команды,35 формирующей сигнал обращения к ОЗУ с входа 16 через коммутатор 7, на входы запуска блоков 4-6 поступает сигнал, осуществляющий считывание информации на регистры 26 блоков 4-6 Если при этом из блока 4 считывается сигнал "О", поступающий через третий вход блока 1 на третий вход элемента 34, то на первом входе элемента 31 будет сигнал "1." независимо от45 сигналов на других входах блока 1, т.е. независимо от информации, считанной из блоков 5 и 6 и выходных сигналов блоков 2 и 3. В результате контроль данных при выполнении те,кущей команды не осуществляется.50 Если из блока 4 считывается сигнал "1", и,кроме того, из блока 5 считывается код, совпадающий с адресом текущей команды, что приводит к 55 появлению сигнала "1" на выходе блока 2 и следовательно на втором вхо. де элемента 34 блока 1, то программа достигается одной из заданных точек контроля, и сигнал на выходе блока 1 зависит от совпадения текущих данных ЦВУМ с эталонным значением, считанным из блока 6. При совпадении на выходе блока 3 присутствует сигнал "1" инвертируемый в сигнал "О" с помощью элемента 36 на вход 1 элемента 34,что определяет формирование сигнала "1" на первый вход элемента 31, не меняющего в результате свое состояние,ЦВУМ, заканчивая выполнение текущей команды, беспрепятственно переходит к выполнению следующих команд программы.При несовпадении текущих данных с эталонным значением на первом входе элемента 34 формируется потенциал "1". В результате в момент прихода на его четвертый вход сигнала с второго входа блока 1, задержанного на элементе 35, на всех входах элемента 34 будут сигналы "1". На его выходе формируется сигнал "О", что приводит к переходу триггера 1 в противоположное состояние, соответствующее на выходе 10 устройства сигналу, блокирующему работу ЦВУМ. Зта ситуация означает, что текущие координаты программы совпадают с координатами одной из контрольных точек, а контролируемая величина не совпадает с эталоном. Останов процесса вычислений в заданной контрольной точке используется оператором для анализа причин несовпадения эталонной величины с результатом вычислений, полученным ЦВУМ.Предлагаемое устройство по сравнению с известными устройствами обеспечивает существенное повышение производительности отладочных работ,Отладка программ ЦВУМ предусматривает их выполнение на управляющей машине с набором входных данных, обеспечивающим проверку максимального числа возможных маршрутов обработки.Формируемые наборы входных данных называются контрольными вариантами. Результаты выполнения программы сравнивают с ожидаемыми значениями (эталонами) и по результатам сравнения судят о наличии в программе ошибок. Предлагаемое устройство повышает производительность отладки за счет сокращения времени локализации ошибки в программе в случае неправильного1104 10 выполнения контрольного варианта, Это достигается автоматическим контролем процесса выполнения с элементами набора эталонных значений. Таким образом, в процессе поиска ошибки сокращается число прогонов контрольного варианта, необходимых оператору для полной локализации ошибки, При этом параметры контрольного варианта, т.е. значения исходных данных, а также эталонные значения промежуточных и окончательных результатов выполнения программы, загружаются в устройство из памяти универсальной цифровой вычислительной машины15 (УЦВМ), где они формируются на этапе отладки программ с использованием имитационныхмоделей ЦВУМ, оборудования системы и модулей окружающей среды. Указанный этап является неоть емлемой частью технологического процесса отладки автоматизированных систем управления и предшествует этапу отладки с использованием реальной ЦВУМ. 25В процессе локализации ошибки в программе, выполняемой в реальном масштабе времени, с помощью известных средств необходимо некоторое число остановов, являющееся случайной величиной возрастающей при расширении зоны поиска, При использовании одного из широко применяемых алгоритмов приближение к месту ошибки производится путем итераций, каждая из которых включает останов35 программы в контрольной точке, разделяющей зону, содержащую ошибку, на две части, При этом либо устанавливается неисправность, если она40 совпадает с контрольной точкой, либо появляется возможность определить часть, содержащую ошибку. Если неисправность не обнаруживается, то производят останов в новой контроль 45 ной точке. Укаэанные действия производят до установления команды, содер 521 12жащей ошибку. Для локализации ошибки по указанному алгоритму в зоне,содержащей, например, 64 командытребуется в среднем 4 останова.При поиске с помощью предлагаемогоустройства при наличии эталонныхзначений на данные, вырабатываемыев каждой команде, выполняется одиностанов машины, который происходитточно по команде, содержащей ошибку.Таким образом, в данном случаескорость локализации ошибки с помощьюпредлагаемого устройства будет в 4 раза выше, Кроме того, с помощью предлагаемого устройства можно эффективно вести поиск и локализацию ошибкиУнестабильной в своем проявлении.В процессе эксплуатации машины возможны неисправности оборудования, являющиеся, например, следствием измененияпараметров элементов в процессе ихстарения или следствием ненадежностимонтажных соединений. Эти причины приводят к периодическим искажениям ко-.манды, не обнаруживаемым встроеннымаппаратным контролем ЦВУМ. Такогорода ошибки сложно обнаружить известными средствами, поскольку вмомент анализа работы ЦВУИ она можетработать исправно,Предлагаемое устройство позволяет выставить постоянный контроль без ущерба для выполнения программы. При этом машина будет остановлена при первом появлении неисправности в момент прохождения программой контрольной точки, каким бы редким это проявление не было. С каждым проявлением ошибки возможно уточнение ее местонахождения.Таким образом, использование предлагаемого устройства значительно сокращает время локализации ошибки при использовании его на этапе эксплуатации ЦВУИ, а также на этапе отладки программ.
СмотретьЗаявка
3542851, 28.01.1983
ПРЕДПРИЯТИЕ ПЯ Г-4152
БУРКОВСКИЙ ИГОРЬ ВЛАДИМИРОВИЧ, ФОМИН ПЕТР ПЕТРОВИЧ
МПК / Метки
МПК: G06F 11/28
Опубликовано: 23.07.1984
Код ссылки
<a href="https://patents.su/10-1104521-ustrojjstvo-dlya-otladki-programm.html" target="_blank" rel="follow" title="База патентов СССР">Устройство для отладки программ</a>
Предыдущий патент: Устройство для функционально-параметрического контроля электронных блоков
Следующий патент: Устройство для решения игровых задач на вычислительных сетях
Случайный патент: Устройство для вывода из распора механического пресса