Устройство для контроля программ
Иллюстрации
Показать всеРеферат
Изобретение относится к вычис-: лительной технике и может быть использовано в аппаратных и гибридных мониторах для организации контроля и отладки программ. Цель изобретения - повьшение полноты, контроля программ. Цель достигается тем, что в устройство, содержащее два блока памяти, регистр адреса, счетчик адреса, первый блок сравнения и первьш блок синхронизации, введены три счетчика, восемь триггеров , четыре элемента И, элемент задержки, элемент 2И-ИЛИ, элемент ИЛИ, элемент ИЛИ-НЕ, два дешифратора , второй блок сравнения и второй блок синхронизации. Устройство может быть использовано в аппаратных и гибридных мониторах для проверки полноты использования программами ячеек памяти и проверки реализации переходов по .командам условного перехода . 2 ил. i (Л N5 СЛ 1C 00
ССВОЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСНИХ
РЕСПУБЛИК
gg 4 С 06 F 11/28
ОПИСАНИЕ ИЗОБРЕТЕНИЯ g
ГОСУДАРСТВЕННЫЙ НОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИЙ (21) 3856490/24-24 (22) 12.02,85 (46) 15.08.86. Бюл. Р 30 (72) !О,Н. Гарнатко, А,И, Ляхов, С.Л. Улыбин и Э.В. Щенов (53) 68!.3(088.8) (56) Авторское свидетельство СССР !
Ф 879564, кл. G Ой F 11/26, 1981.
Авторское свидетельство СССР
Р 879563, кл, С 06 F 11/26, 1981.
{54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ПРОГРАММ.
{57) Изобретение относится к вычис-: лительной технике и может быть использовано в аппаратных и гибридных мониторах для организации контроля и отладки программ. Цель
„„SU„„1251128 А1 изобретения — повышение полноты. контроля программ. Цель достигается тем, что в устройство, содержащее два блока памяти, регистр адреса, счетчик адреса, первый блок сравнения и первый блок синхронизации, введены три счетчика, восемь триггеров, четыре элемента И, элемент задержки, элемент 2И-ИЛИ, элемент
ИЛИ, элемент ИЛИ-НЕ, два дешифратора, второй блок сравнения и второй блок синхронизации. Устройство может быть использовано в аппаратных и гибридных мониторах для проверки полноты использования программами ячеек памяти и проверки реализации переходов по командам условногопере" хода. 2 ил.
1251!28
20
Изобретение относится к вычислительной технике и может быть использовано в аппаратных и гибридных мониторах для организации контроля и отладки программ.
Целью изобретения является повышение полноты надежности контроля программ, На чертеже приведена функциональная схема устройства, Устройство содержит счетчик 1 эоны, первый 2 и второй 3 блоки памяти, счетчик 4 заполнения, счетчик 5 переходов, восемь триггеров 6-13, второй 14 и первый )5 блоки синхронизации, четыре элемента И )6-)9, регистр 20 адреса, элемент 21 задержки, два блока сравнения 22 и 23, счетчик 24 адреса, элемент 2И-ИЛИ
25, первый 26 и второй 27 дешифратоI ры, элемент 28 ИЛИ, элемент ИЛИ-НЕ
29, выход 30 устройства "Окончание контроля", группу входов номера зоны
31 устройства, вход 32 признака "Номер зоны" устройства, группу входов адреса 33 устройства, вход 34 признака "Адрес" устройства, группу входов данных 35 устройства, вход 36 признака Команда" устройства, выход
37 устройства "Окончание контроля", Счетчик 1 зоны имеет разрядов l и делит адресное пространство на зон по 2" слов в каждом ()с+Х=тп, где m — количество разрядов в адресной константе процессора). Он предназначен для хранения очередного номера зоны (старших E разрядов ад ресных констант процессора), которую необходимо проконтролировать. к
Блок 2 памяти имеет емкость 2 бит, его ячейки адресуются младшими
K-разрядами адресной константы процессора, принадлежащей к зоне, определяемой счетчиком 1 зоны. Он предназначен для фиксации факта обращения по каждому адресу, принадлежащему к выбранной зоне, при этом в ячей ки блока 2 памяти, адресуемые младшими К -разрядами этих адресов, заносится признак.
Счетчик 4 заполнения имеет ) разрядов и подсчитывает число ячеек блока 2 памяти, заполненных признаком.
Наличие в счетчике 3 заполнения k разрядного кода 1...1 указывает на то, что программа обратилась по всем адресам, входящим в выбранную зону.
Блок 3 памяти имеет емкость 2 " бит, его ячейки адресуются младшими
k-ðàçðÿäàìè адресной константы процессора, принадлежащей к зоне> опред=-..ëÿåìîé счетчиком 1 зоны. Он предназначен для фиксации факта, что команда условного перехода не была реализована ни разу за все время выполнения программы. При этом в ячейки блока 3 памяти, адресуемые младшими k -разрядами адресов, по которым находятся нереализованные команды условного перехода, записывается "1", Счетчик 5 переходов имеет р разрядов и считает число нереализованных команд условного перехода. Наличие в счетчике 5 переходов р-разрядного кода 0...0 при коде 1...1 в счетчике
3 заполнения свидетельствует о том, что все команды условного перехода, расположенные в выбранной зоне, были реализованы. В этом случае в процессор поступает сигнал 30 "Полное прохождение зоны" и в счетчик 1 эоны прибавляется "1". Количество разрядов счетчика 5 переходов определяется из соотношения p logzd> где d — максимально возможное количество команд условного перехода, содержащихся в к зоне объемом 2 слов и не реализованных за первыи прогон программы, Устройство работает следующим об разом.
В исходном состоянии (цепи установки узлов устройства в исходное состояние не показаны) все счетчики, ячейки блоков памяти, регистр, триггеры, за исключением триггера 6, установлены в "0" ° Триггер 6 находится в состоянии ")". Второй блок
14 синхронизации находится в состоянии ожидания сигнала с выхода элемента )6 И, а первый блок 15 синхро низации — в состоянии ожидания сигнала с входа 36 признака "Команда" устройства.
При необходимости проконтролировать программы, расположенные в оп- ределенной зоне, номер этой зоны засылается на счетчик 1 зоны. Для этого с группы входов номера зоны 31 устройства на группу ийформационных входов счетчика l зоны подается нужный номер зоны. Этот номер записывается на счетчик 1 зоны сигналом, приходящим с входа 32 признака "Номер зоны" устройства на вход записи счет. чиха 1 эоны.
1251128
Проверка полноты использования программы ячеек памяти с командами и данными осуществляется следующим образом.
Адреса команд и данных выполняемых программ поступают на группу информации входов регистра 20 адреса и записываются в него сигналом с входа 34 признака "Адрес" устройства, проходящим на вход записи ре- 10 гистра 20 адреса. Кроме того, сигнал с входа 34 признака "Адрес" устройства поступает на вход элемента 21 задержки. Младшие k разрядов регистра 20 адреса поступают на группу ад- 15 ресных входов блока 2 памяти. Старшие 1 разрядов адреса с регистра 20 адреса поступают на вторую группу входов блока 22 сравнения, на первую группу входов которого приходит 1 — 20 разрядный номер зоны с группы информационных выходов счетчика 1 зоны.
Если старшие разрядов регистра 20 адреса совпадают с номером эоны, записанным на счетчике 1 зоны, то на выходе блока 22 сравнения появля11 11 ется 1, поступающая на первый вход. элемента И 1 6 и открывающая е г о . На второй вход элемента И 1 6 приходит сигнал с выхода элемента 2 1 з аде рж- 30 к и, э аде ржан ный на время с ра б атыв ания регистра 2 0 адреса и блока 2 2 сравнения . На выходе элемента И 1 6 появляется сигнал, который поступает, на вход блока 1 4 синхронизации и э а35 пускает его.
На первом выходе блока 14 синхронизации появляется сигнал, который поступает на вход считывания блока, 2 памяти. С выхода блока 2 памяти информация, считанная из ячейки, адресом которой является содержимое младших k разрядов регистра 20 адреса, поступает на информационный вход триггера 7.
Сигнал с второго выхода блока 14 синхронизации поступает на вход записи триггера 7 и записывает на него информацию, считанную из блока 2 памяти.
Сигнал с третьего выхода блока 14 синхронизации поступает на вход записи блока 2 памяти и записывает в ранее считанную ячейку информацию, которая поступает на информационный вход блока 2 памяти с прямого выхода триггера 6.
Прямой выход триггера 6 соединен с четвертым входом элемента 2И-ИЛИ
25, а его инверсный выход — с вторым входом элемента 2И-ИЛИ 25. Прямой выход триггера 7 соединен с первым входом элемента 2И-ИЛИ 25, а его инверсный выход — с третьим входом элемента 2И-ИЛИ 25. На выходе элемента
2И-ИЛИ 25 "1" появляется талька в том случае, если триггеры б и 7 находятся в противофазе. Таким образом наличие "1" на выходе элемента
2И-ИЛИ 25 указывает на то, что программа обратилась по адресу, хранящемуся на регистре 20 адреса первый раз. При последующих обращениях программы па этому адресу содержимое триггеров 6 и 7 будет совпадать и, следовательно, на выходе элемента
2И-ИЛИ 25 будет "0", Кроме того, сигнал с третьего выхода блока 14 синхронизации поступает на первый элемент И )7, второй вход которого соединен с выходом элемента 2И-ИЛИ 25, Если на выходе элемента 2И-ИЛИ 25
"1", та на выходе элемента И 17 появляется сигнал, который поступает на вход "+1" счетчика 4 заполнения и добавляет к его содержимому "1" °
Когда программа обратится па всем адресам, принадлежащим к зоне, номер которой хранится на счетчике 1 зоны, на счетчике 4 заполнения появится k разрядный кад )...1, Этот код поступает на группу входов элемента И 18, и на выходе которого, появляется сигнал, который поступает на установочный вход триггера 8. С выхода триггера 8 "I" поступает на первый вход элемента И 19 и на вход сброса счетчика 4 заполнения, поддерживая его в нулевом состоянии до момента прихода "1" на второй вход элемента И 19.
Таким образом, наличие "1" на выходе триггера 8 указывает на то„ что программа использовала адреса всех ячеек памяти зоны, номер которой указан на счетчике 1 зоны. На второй вход элемента И 19 приходит "1", если все команды условного перехода, расположенные в выбранной счетчиком 1 зоне, реализованы.
Проверка реализации команд условного перехода осуществляется следующим образом.
После того как процессор передаст в память адрес команды, на группе входов данных 35 появится считанная
125) 128 информация, ) ц разрядов которой, отведенных в командах условного перехо. да под код операции, поступают на информационные входы дешифратора 26, Если эта информация соответствует кодам операций команд условного перехода и на управляющий вход дешифратора 26 с выхода блока 22 сравнения приходит "1" (ячейка, из которой считана информация, принадлежит к выбранной счетчиком 1 зоне), то на выходе дешифратора 26 появляется ")", При этом на входе 36 признака "Команда" устройства появляется сигнал, поступающий на вход запуска блока
15 синхронизации и запускающий его.
Сигнал с первого выхода блока 15 поступает на входы записи триггеров
9 и 10, На триггер 9 записывается информация, приходящая на его информационный вход с выхода дешифратора
26, На триггер 10 записывается информация, поступающая на е "o информационный вход с выхода блока 23 сравнения. На выходе блока 23 сравнения вырабатывается "1", если содержимое регистра 20 адреса, поступающее на его первую группу входов, совпадает с содержимым счетчика 24 адреса, поступающим на его вторую группу входов. При этом регистр 20 адреса хранит адрес текущей команды, а счетчик 24 адреса — увеличенный на "1" адрес предьдущей команды, который был сформирован в предыдущем цикле работы блока 15 синхронизации, Таким образом на триггер.10 записывается ")"„ если выполняютс« команды с последовательными адресами, Сигнал с второго блока 15 синхронизации поступае- на вход -1" счетчика 24 адреса и вычитает из его содержимого "1". Таким образом, на счетчике 24 адреса формируется адрес предыцущей команды, младшие k -разрядов которого поступают на группу адресных входов блока 3 памяти.
Сигнал с третьего выхода блока 15 синхронизации поступает на вход считывания блока 3 памяти, выход которого соединен с информационным входом триггера 11, Сигнал с четвертого выхода блока с
)5 синхронизации поступает на вход записи триггера 1) и записывает на него информацию, считанную из блока
3 памяти.
Сигнал с пятого выхода блока 15 синхронизации поступает на управляющий вход дешифратора 27, информациоппые входы которого соединены с выходами триггеров 10-13. Дешифратор
27 вырабатывает сигнал на первом выходе, если триггеры 10, 12 и 13 находятся в единичном состоянии, а
1)).триггер 11 — в нулевом. На втором выходе дешифратора 27 сигнал появляется, если триггеры 10 и 13 находятся в нулевом состоянии, а триггеры 11 и 12 — в единичном. Единичное состоя. ние триггера 10 указывает на то, что выполняются команды с последовательными адресами, Единичное состояние триггера 11 указывает на то, что условный переход по предыдущей команде
20 не был реализован ни разу, Единичное состояние триггера 12 указывает на то, что предыдущая команда была командой условного перехода, извлечен.ной из зоны, выбранной счетчиком
Единичное состояние триггера !3 указывает на то, что предыдущая команда была использована программой впервые. Первый и второй выходы дешифратора 27 соединены соответственно с первым и вторым входами элемента
ИЛИ 28 и входами "+1" и "-1" счетчика
5 переходов. Появление сигнала на одном из выходов дешифратора 27 вызывает появление сигнала на выходе
З5 элемента ИЛИ 28, Который поступает на вход записи блока 3 памяти и записывает в ячейку, адресуемую младшими
k-разрядами адреса предыдущей команды, информацию с выхода триггера 10, Кроме того, появление сигнала на первом или втором выходе дешифратора
27 вызывает соответственно увеличение или уменьшение на "1" содержимого счетчика 5 перехода, Таким образом, при появлении команды условного перехода устройство реагирует изменением содержимого счетчика 5 переходов и соответствующей ячейки блока 3 памяти только на две ситуации. Первая ситуация; команда условного перехода ис-! пользуется впервые и переход по ней не реализуется, при этом содержимое счетчика 5 переходов увеличивается на "I".и в соответствующую ячейку блока 3 памяти записывается "1 вторая ситуация: команда условного перехода используется вторично, а переход по ней реализуется вперые
1251128 при этом содержимое счетчика 5 переходов уменьшается на "1" и в соответ ствующую ячейку блока 3 памяти записывается "0".
Содержимое счетчика 5 переходов показывает, сколько использованных команд условного перехода, извлеченных из выбранной счетчиком 1 зоны памяти процессора, не были на текущий момент времени ни разу реализо- 10 ваны. Эти команды зафиксированы в блоке 3 памяти записью "1" в ячейки, адресуемые младшими k -разрядами адресов, по которым зти команды находятся в памяти процессора ° Инфор- 15 мация с выходов счетчика 5 переходов поступает на входы элемента
ИЛИ-НЕ 29, выход которого соединен с вторым входом элемента И 19. На выходе элемента ИЛИ-НЕ 29 появляет 20 ся "1", если на его входы приходит код 00...0. При этом, если на первый вход элемента И 19 приходит "1", то на его выходе появляется сигнал, который поступает на выход сигнала 30 25
"Полное прохождение зоны" уст-. ройства, вход сброса триггера 8, вход записи триггера 6 и вход
"+1" счетчика -1 зоны. Содержимое счетчика 1 зоны увеличи- ЗО вается на "1", т.е. увеличивается номер зоны. Триггер 6 изменяет свое состояние на противоположное, так как его информационный вход и инверсный выход соединены между собой.
Триггер 8 сбрасывается и разрешает счетчику 4 заполнения считать импульсы, приходящие на его вход "+1". Так как состояние триггера 6 противоположно состоянию ячеек в блоке 2 памя-4О ти, последний готов к контролю полноты использования адресов новой зоны памяти, Таким образом, происходит автоматическая смена номера зоны
IIpH3HBKoM того, %TO BCe IIpo» 45 граммы, расположенные в адресном пространстве процессора, проконтролированы, является сигнал с выхода переполнения счетчика 1 зоны, посту" лающий на выход сигнала 37 "Полное 5О прохождение всех зон" устройства.
Сигнал с седьмого выхода блока 15 синхронизации поступает на входы записи счетчика 24 адреса и триггеров 12 и 13. На триггер 12 переписы- вается состояние триггера 9, а на триггер 13 записывается информация, приходящая на его информационный вход с выхода элемента 2И-ИЛИ 25, Таким образом, триггеры !2 и !3 готовятся к следующему циклу работы блока 15 управления. На счетчик ?4 адреса записывается информация, приходящая на его информационные входы с выходов регистра 20 адреса, Сигнал с шестого выхода блока 15 синхронизации поступает на вход "+1" счетчика 24 адреса и увеличивает его содержимое на "l" ° Таким образом, счетчик 24 адреса готовится к следующему циклу работы блока 15 синхронизации, Предлагаемое устройство позволяет фиксировать каждый адрес, используемый программой, а также фиксировать адреса команд условного перехода, переход по которым не был реализован ни разу, Признаком того, что программы, содержащиеся в выбранной зо-. не, проконтролированы, является появление сигнала "Окончание контроля" на выходе 30 устройства, Признаком того, что проконтролированы все программы, расположенные в адресном пространстве процессора, является появление сигнала "Полное прохождение всех зон" на выходе 37 устройства.
Непоявление сигнала "Полное прохождение зоны" через отрезок времени, величина которого определяется разработчиком программ, является признакомтого, что программы содержащиеся в выбранной зоне, либо не использовали все адреса зоны, либо не реализовали все команды условного перехода, расположенные в зоне, Для выявления конкретных причин отсутствия сигнала
"Полное прохождение зоны" содержимое памяти устройства известным способом может быть выведено на печать.
Формула изобретения устройство для контроля программ, содержащее первый и второй блоки памяти, регистр адреса, счетчик адреса,, первый блок сравнения и первый блок синхронизации, причем группа информационных выходов регистра адреса соединена с первой группой информационных входов первого блока сравнения, группа информационных выходов счетчика адреса соединена с второй группой информационных входов первого блока сравнения, о т л и ч а ю" щ е е с я тем, что, с целью повышения полноты контроля программ, в
1251128
55 устройство введены счетчик зоны, счетчик заполнения, счетчик переходов, восемь триггеров, четыре элемента И, элемент задержки, элемент
2И-ИЛИ, элемент ИЛИ, элемент ИЛИ-НЕ, первый и второй дешифраторы, второй блок сравнения и второй блок синхронизации, причем входы номера зоны устройства и признака номера зоны устройства соединены соответственно с информационными входами и входом зоны счетчика зоны, информационный выход и выход переполнения которого соединены соответственно с первой группой информационных выходов второ. го блока сравнения и выходом окончания контроля устройства, входы данных, признака команды и адресные входы устройства соединены соответственно с информационными входами первого дешифратора, с входом запуска первого блока синхронизации, с информационным входом регистра адреса, вход признака адреса устройства соединен с входом записи регистра адреса и через элемент задержки — с первым входом первого элемента И, выход которого соединен с входом запуска второго блока синхронизации, группа информационных выходов регистра адреса соединена с информационным входом счетчика адреса, выходы старших и младших разрядов регистра адреса соединены соответственно с вторыми информационными входами второго блока сравнения и адресными входами первого блока памяти, выход второго блока сравнения соединен с входом опроса первого дешифратора и вторым входом первого элемента И, прямой выход первого триггера соединен с информационным входом первого блока памяти и первым входом элемента 2И-ИЛИ, первый и второй тактовый выходы второго блока синхронизации соединены соответственно с входом считывания первого блока памяти и входом записи второго триггера, прямой и инверсный выходы которого соединены соответственно с вторым и третьим, входами элемента
2И-ИЛИ, третий выход первого блока синхронизации соединен с первым входом второго элемента И и с входом записи первого блока памяти, информационный выход которого соединен с информационным входом второго триггера, инверсный выход первого триггера соединен с информационным входом первого триггера и четвертым
l входом элемента 2И-ИЛИ, выход которого соединен с вторым входом второго элемента И, выход которого соединен с счетным входом счетчика заполнения, информационный выход счетчика заполнения соединен с входом третьего элемента И, выход которого соединен с единичным входом третьего триггера, прямой выход третьего триггера соединен с первым входом четвертого элемента И и входом сброса счетчика заполнения, выход элемента ИЛИ.-НЕ соединен с вторым входом четвертого элемента И, выход которого является выходом окончания контроля зоны устройства и соединен с нулевыми входами третьего триггера, входом записи первого триггера и счетным входом счетчика зон, первый выход первого блока синхронизации соединен с входами записи четвертого и пятого триггеров, второй, третий, четвертый, пятый и шестой выходы первого блока синхронизации соединены соответствейно с входом вычитания единицы счетчика адреса, с входом считывания второго блока памяти, с входом записи шестого триггера, с входом опроса второго дешифратора и с входом +1" счетчика адреса, выход младших разрядов которого соединен с адресными входами второго блока памяти, седьмой выход первого блока синхронизации соединен с входом записи счетчика адреса, седьмого и восьмого триггеров, выход первого дешифратора соединен с информационным входом четвертого триггера, выход которого соединен с информационным входом седьмого триггера, выход первого блока сравнения соединен с информационным входом пятого триггера, выход которого соединен с входом данных второго блока памяти, выход элемента 2И-ИЛИ соединен с информационным входом восьмого триггера, выходы пятого, шестого, седьмого и восьмого триггеров соединены соответ. ственно с первым, вторым, третьим и четвертым информационными входами второго дешифратора, первый выход второго дешифратора соединен с вхои тт дом +1 счетчика переходов и с первым входом элемента ИЛИ, второй выход второго дешифратора соединен с вторым входом элемента ИЛИ и с входом "-1" счетчика переходов, выход которого соединен с входом элемента ИЛИ-НЕ, 1251128
3f 32
Составитель И. Сигалов
Техред О Сопко Корректор М, Демчик
Редактор К, Волощук
Заказ 4414/48 Тираж 671 Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035, Москва, Ж-35, Раушская наб,,д.4/5
Производственно-полиграфическое предприятие, r. Ужгород, ул, Проектная,