Устройство для контроля хода программ
Иллюстрации
Показать всеРеферат
Изобретение относится к цифровой вычислительной технике и может быть использовано в вычислительных устройствах с совмещенной магистралью команд и данных. Целью изобретения является расширение диагностических возможностей устройства за счет выполнения оперативного тестирования микро ЭВМ. Устройство содержит формирователь 1 сигнатур, совмещенную магистраль 8 команд и данных ЭВМ, регистр 15, цифровой компаратор 16, первый одновибратор 22, второй одновибратор 23 и счетчик 25. При пуске микроЭВМ во время выполнения первой команды процессора "Чтение" или "Запись" запускается первый одновибратор 22. Коды команд программы, поступая по совмещенной магистрали 8 команд и данных ЭВМ для выполнения на процессор микроЭВМ, подаются также на вход параллельного формирователя 1 сигнатур. При этом формируют сигнал тактирования последнего. Формируемую сигнатуру периодически записывают по адресу цифрового компаратора 16, на котором при этом происходит сравнение текущей сигнатуры с эталонной, содержащейся в регистре 15. Одновременно происходит перезапуск первого одновибратора 22. Если цифровой компаратор 16 обнаруживает несравнение, формируется сигнал перезапуска микроЭВМ. В случае отсутствия перезапуска первого одновибратора 22 сигнал с его выхода запускается второй одновибратор 23, выходной импульс которого перезапускает микроЭВМ. Счетчик 25 подсчитывает количество перезапусков микроЭВМ и по достижении некоторого заданного числа останавливает работу микроЭВМ. 1 ил.
. СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСНИХ
РЕСПУ БЛИН
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Н Д ВТОРСКОМ,Ф СВИДЕТЕЛЬСТВУ
ГОСУДАРСТВЕННЫЙ НОМИТЕТ
ilO ИЗОБРЕТЕНИЯМ И ОТНРЫТИЯМ
РРИ Гннт СССР (21) 4261331/24-24 (22) 15 ° 06.87 (46) 15.08.89. Бюл. К - 30 (71) Московский инженерно-физический институт (72) А.Н.Косилов и К.Ф.Поденков (53) 681.3 (088.8) (56) Патент Великобритании N - 2066529, кл. С 06 F 11/00, 1981.
Патрик, П. Фазанг. Microbit — способ самоиспытания сложных микрокомпьютеров. — Электроника, 1983, 9 5, с. 34-40. мSU„„1501065 А 1 (др 4 С 06 F 11/28 (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА
ПРОГРАММ (57) Изобретение относится к цифровой вычислительной технике и может быть использовано в вычислительных устройствах с совмещенной магистралью команд и данных. Целью изобретения является расширение диагностических возможностей устройства за счет выполнения оперативного тестирования микроЭВМ. Устройство содержит формирователь 1 сигнатур, совмещенную ма1501065
30 гистраль 8 команд и данных ЭВМ, регистр 15, цифровой компаратор 16, первый одновибратор 22, второй одновибратор 23, счетчик 25 ° При пуске микроЭВМ во время выполнения первой же команды процессора Чтение" или
ll н
Запись запускается первый одновибратор 22. Коды команд программы, поступая по совмещенной магистрали 8 команд и данных ЭВМ для выполнения на процессор микроЭВМ, подаются также на вход параллельного формирователя
1 сигнатур. При этом формируют сигнал тактирования последнего. Формируемую сигнатуру периодически записывают по адресу цифрового компаратоИзобретение относится к цифровой вычислительной технике и может быть использовано в вычислительных устройствах с совмещенной магистралью команд и данных.
Цель изобретения — расширение диагностических возможностей устройства.
На чертеже показана структурная схема устройства.
Устройство содержит формирователь
1 сигнатур, коммутатор 2, дешифратор
3 адреса, первый 4,. второй 5 и третий35
6 элементы И, вход 7 адреса, совмещенную магистраль 8 команд и данных
ЭВМ, вход 9 ".Запись" устройства, вход
10 "Чтение" устройства, первый элемент ИЛИ 11, четвертый 12, пятый 13 40 и шестой 14 элементы И, регистр 15 эталона, схему 16 сравнения, второй
17, третий 18 и четвертый 19 элементы ИЛИ, триггер 20, вход 21 единичного потенциала, одновибратор 22 с 45 перезапуском, формирователь 23 импульсов, седьмой элемент И 24, счетчик 25 импульсов, выход 26 "Перезапуск ЭВМ" и элемент 27 задержки.
Устройство работает следующим образом.
Предполагается,что, поскольку устройство работает в составе микроЭВМ, кроме него к входу 7, магистрали 8, входам 9 и 10 и выходу 26 подключены еще по меньшей мере процессор и ПЗУ (к выходу 26 подключен только процессор). В дальнейшем предполагается также, что активному сигналу в устра 16, на котором при этом происходит сравнение текущей сигнатуры с эталонной, содержащейся в регистре
15 ° Одновременно происходит перезапуск первого одновибратора 22. Если цифровой компаратор 16 обнаруживает несравнение, формируется сигнал перезапуска микроЭВМ. В случае отсутствия перезапуска первого одновибратора 22 сигнал с его выхода запускает второй одновибратор 23, выходной импульс которого перезапускает микроЭВМ. Счетчик 25 подсчитывает количество перезапусков микроЭВМ и по достижении некоторого заданного числа останавливает работу микроЭВМ. 1 ил, ройстве соответствует уровень "1", а пассивному — уровень "0". На линиях 9, 10 и 26 активные сигналы появляются во время выполнения процессором микроЭВМ операций, соответствующих их названиям. Все остальное время на этих линиях находятся уровни "0". Пассивный сигнал с выхода элемента И 6 настраивает коммутатор 2 на передачу данных с магистрали 8 на информационный вход формирователя 1 сигнатур, Активный сигнал с выхода элемента И 6 переключает коммутатор 2 на передачу данных с выхода формирователя 1 на магистраль
8. Активный сигнал на первом выходе дешифратора 3 адреса (выход, подключенный к входам элементов И 5 и 6) появляется при обращениях процессора по адресу формирователя сигнатур.
Все остальное время на первом выходе дешифратора 3 адреса присутствует уровень "0". Активный сигнал на втором выходе дешифратора адреса 3 (выход, подключенный к входу элемента
И 4) появляется при обращениях процессора по адресу сброса формировате ля 1. Все остальное время на втором выходе дешпфратора 3 адреса присутствует уровень "0", Активный сигнал на третьем выходе дешифратора адреса 3 появляется при обращениях процессора по каждому из адресов, принадлежащих области памяти, в которой записана функциональная программа работы микроЭВМ (третий выход дешифратора адреса подключен к вхо1501
lay элемента И 12). Все остальное время на третьем выходе дешифратора
3 адреса присутствует уровень 0", Активный сигнал на четвертом выходе дешифратора адреса 3 (выход, подклю5 ченный к входу элемента И 13) появляется при обращениях процессора по адресу схемы 16, Все остальное время на четвертом выходе дешифратора адреса 3 присутствует уровень "0". Активный сигнал на пятом выходе дешифратора 3 адреса (выхоц, подключенный к входу элемента И 14) появляется при обращениях процессора по адресу регистра 15, Все остальное время на пятом выходе дешифратора 3 адреса присутствует уровень "0", Активный сигнал на шестом выходе дешифратора адреса 3 (выход, подключенный к входу элемента И 24) появляется при обращениях процессора по адресу сброса счетчика 25. Все остальное время на шестом выходе дешифратора адреса 3 присутствует уровень "0". Сигналы на выходе 26 действуют на процессор следующим образом: при появлении активного сигнала процессор останавливается и находится в этом состоянии до тех пор, пока сигнал на выходе 26 вновь не станет пассивным, после чего мироЭВМ выполняет процедуру начального запуска. Предполагается также, что при включении питания устройства триггер 20 и счетчик 25 сбрасывается в состояние "0 . При наличии пассивного сигнала на выходе элемента И 13 схеме 16 запрещено сравнение и на ее выходе установлен пассивный сигнал.
B HoPMRJIbHoM сОстОЯнии на Выходе фОР 40 мирователя 23 установлен уровень
"0". Сброс и тактирование всех схем устройства производятся активными сигналами, После начального запуска, микроЭВМ
45 при появлении любого из активных сигналов Запись" или Чтение" на соответствующих входах устройства на выходе элемента ИЛИ 19 появляется активный сигнал, по фронту которого в триггер 20 записывается "1". По фронту выходного сигнала триггера 20 запускается одновибратор 22, При этом на его выходе появляется уровень "0", По другому входу одновибратор 22 может быть перезапущен ° Если этого не происходит, то после заданной выдержки на выходе одновибратора 22 вновь устанавливается уровень "1" (пол065 6 ностью сформирован выходной импульс) по фронту которого на выходе формирователя 23 формируется единичный импульс заданной последовательности, который через элементы ИЛИ 17 и 18 поступает на выход 26 и микроЭВМ перезапуск аетс я. Одновреме нно ак тивный сигнал с выхода элемента ИЛИ 17 сбрасывает в "0" триггер 20; а фронт этого сигнала увеличивает на единицу содержимое счетчика 25. После перезапуска микроЭВМ по первому активному сигналу на входах 9 или 10 вновь запускается одновибратор 22. При достижении с одержимым с че тчик а 25 некоторого заданного заранее числа (сброс счетчика не производится, а сбои в работе микроЭВМ фиксируются, т.е, микроЭВМ после перезапуска не может войти в режим нормальной работы) на выходе счетчика 25 появляется уровень
"1", который через элемент ИЛИ 18 поступает на выход 26 и останавливает работу микроЭВМ. После этого микроЭВМ может быть вновь запущена в работу только внешним по отношению к ней сбросом счетчика 25 (например, вы ключением и затем включением питания микроЭВМ) . Если максимально допустимое значение содержимого счетчика 25 не дбстигнуто, может быть осуществлен его программный сброс.
Для этого процессор выполняет..операцию записи по адресу сброса счетчика 25. При этом на выходе элемента
И 24 появляется активный сигнал, сбрасывающий содержимое счетчика 25 в ноль. При выполнении программы коды команд, поступая по магистрали
8 из памяти на процессор для выполнения, одновременно с этим подаются через коммутатор 2 на информационные, входы формирователя 1. При этом на выходе элемента И 12 с задержкой, достаточной для надежного установления кода команды на информационных входах формирователя 1, появляется активный сигнал, фронт которого через элемент ИЛИ 11 тактирует формирователь 1, вызывая запись в него текущей входной информации. Требуемая задержка обеспечивается элементом 27 задержки. Таким образом по мере выполнения программы в формирователе 1 формируется сигнатура последовательности кодов команд, поступившых в процессор для выполнения. Сравнивая периодически текущие
150106 5 сигнатуры с заранее определенными эталонными, в случае их равенства делают вывод, что микроЭВМ работает верно а в случае неравенства — неЭ
5 верно. Для обеспечения повторяемости сигнатур в самом начале выполнения программы выполняют сброс в "0" содержимого формирователя 1, Для этого процессор производит запись по адресу сброса формирователя 1. При этом на выходе элемента И 4 формируется активный сигнал, поступающий на вход сброса формирователя 1. При необходимости сформировать в автоном- 15 ном режиме сигнатуру некоторого массива данных процессор последовательно все слова массива записывает по адресу формирователя 1. При этом коды слов массива поступают на информационные входы формирователя 1 через коммутатор 2, а на выходе элемента И 5 формируются активные сигналы, фронты которых через элемент
ИЛИ 11 тактируют формирователь 1, за25 писывая в него текущую входную информацию, причем один тактирующий фронт соответствует одному коду сло" ва массива. Работа в этом режиме облегчается, если программа записи слов массива в формирователь 1 расположе- 30 на вне области памяти функциональной программы, на адреса которой настроен третий выход дешифратора 3 адреса.
При сравнении текущей сигнатуры с заранее определенной эталонной сигна- 35 турой процессор вначале выполняет запись последней по адресу регистра 15.
При этом на выходе элемента И 14 формируется активный сигнал, поступающий на тактовый вход регистра 15. По 40 приходу .этого сигнала значение эталонной сигнатуры запоминается в регистре 15. После этого процессор выполняет чтение текущей сигнатуры, для чего выполняет операцию чтения с ад- 45 реса формирователя 1. При этом на выходе элемента И 6 появляется активный сигнал и значения разрядов информациочных выходов формирователя 1 через коммутатор 2 поступают на магист- 50 раль 8. Считав текущую сигнатуру, процессор выполняет операцию записи ее значения по адресу схемы сравнения
16. При этом на выходе элемента И 13 появляется активный сигнал, разрешаю- 55 щий сравнение схеме 16. Схема 16 выполняет сравнение кода содержащейся в регистре 15 эталонной сигнатуры с кодом текущей сигнатуры, находящейся в это время на магистрали 8. В случае равенства этих кодов на выходе схемы
16 сохраняется уровень "0" и после окончания выполняющейся команды записи процессор продолжит дальнейшее выполнение программы. При неравенстве сравниваемых кодов на выходе схемы
16 появляется активный сигнал, который через элемент ИЛИ 17 сбрасывает в "0" триггер 20, инкрементирует содержимое счетчика 25 и через элемент
ИЛИ 18 осуществляет. перезапуск микроЭВМ. Одновременно с разрешением сравнения схеме 16 активный сигнал с выхода элемента И 13 осуществляет перезапуск одновибратора 22. Таким образом, если в работе микроЭВМ произошла ошибка, выразившаяся в неправильной последовательности кодов команд программы, поступившых для выполнения на процессор, то при первой же после ошибки записи текущей сигнатуры по адресу схемы 16 микроЭВМ перезапускается, Если по каким-либо прининам запись текущей сигнатуры по адресу схемы 16 долгое время не производится, то микроЭВМ также перезапускается срабатыванием.формирователя 23. Реакцией на такие перезапус— ки может быть, к примеру, повторение участка программы начиная с некоторого контрольного адреса. Введя в функциональную программу микроЭВМ командные вставки проверки текущей сигнатуры с таким расчетом, чтобы период записи по адресу схемы 16 не превышал длительности выходного импульса одновибратора 22, достигают достоверного и достаточно полного оперативного тестирования микроЭВМ.
Для работы предлагаемого устройства необходимо, чтобы в одних и тех же точках программы получались одни и те же сигнатуры независимо от пути выполнения программы. Для достижения этого можно использовать следующий метод. В программе выделяют такие контрольные точки: Н (начало) — слово программы, вводимое в процессор первым после начального сброса сигнатурного регистра; КС 1 (контрольное слово первого типа) слово программы, вводимое в процессор первым после выполнения команды безусловного перехода или команды условного перехода при выполнени условия; КС2 (контрольное слово
1501065
10 второго типа) — слово программы, ввод которого в процессор завершает формирование сигнатуры, сравниваемой затем с эталонным значением; СКП
5 (слово команды перехода) — последнее вводимое в процессор слово каждой из команд условного и безусловного переходов; НП (начало подпрограммы)— первое вводимое в процессор слово подпрограммы при передаче ей управления; СВП (слово вызова подпрограммы) — последнее вводимое в процессор слово каждой из команд условного и безусловного вызовов подпрограмм;
СКВ (слово команды возврата) — слово команды условного и безусловного возвратов из подпрограммы (предполагается, что такая команда состоит из одного слова). Каждому выделенному контрольному слову присваивают конт— рольный номер. При этом обязательно присваивают одинаковые контрольные номера взаимодополняющим словам СКП и КС1, а также словам СВП, НП, СКВ, относящимися к одной подпрограмме, Если S — - слово программы, то S+1 слово программы с адресом, на единицу адресации большим адреса слова
S à S — 1 — слово программы с адре30 сом, на единицу адресации меньшим адреса слова S Допустим, S — контрольное слово с контрольным номером такой же номер имеют и слова S+1 и $-1 . Программу микроЭВМ разбивают на линейные отрезки (а;, b ), где — контрольные номера контрольных слов а и Ь, при этом à E (Н, НП, КС1, СКП+1, СКВ-1, СВП+1), b c (КС1 — 1, СКП, СВП, СКВ). Под линейностью отрезков в данном случае по- 40 нимается отсутствие внутри них контрольных слов. Последние могут находиться только на границах отрезков.
Предполагая, что в начале отрезка непосредственно перед вводом в про- 45 цессор слова а „ сигнатура равна путем ввода внутрь отрезка дополнительных командных вставок добиваются того, чтобы в случае правильной последовательности поступавших на про- 50 цессор кодов команд отрезка, сразу после ввода в процессор слова b сигнатура была равна j, Значение сигнатуры, полученное после начального сброса сигнатурного регистра, исполь- 55 зуют в качестве исходной при обработке отрезка (Н, Ь J . В точках КС2 выполняют выдачу текущего значения сигнатуры по адресу схемы 16. Значение эталонной сигнатуры опгеделяют относительно ближайшего предшествующего ITo ходу программь1 данному КСГ нумерованного слова. Если где-либо на участке программы до данного КС2 произошла ошибка любой кратности и вида в последовательности кодов команд, поступающих на процессор, то текущая сигнатура в момент проверки не совпадает с эталонной и ошибка будет обнаружена. Дополнительные командные вставки, вводимые внутрь отрезков, должны позволять произвольным образом корректировать сиг натуру, получаемую в конце отрезка, на основе ее известного значения в начале отрезка и при этом не должны влиять на функциональные результаты работы программы, Этим требованиям удовлетворяет команда записи слова по адресу регистра 15 с непосредственной адресацией (записываемое слово является вторым словом команды). В этом случае подбором второго слова команды корректируют требуемым образом получаемую в конце отрезка сигнатуру.
Фор мула из обретения
Устройство для контроля хода программ, содержащее формирователь сигнатур, коммутатор, дешифратор адреса, первый, второй и третий элементы И, причем выход коммутатора соединен с информационным входом формирователя сигнатур, выход которого соединен с информационным входом коммутатора, вход записи устройства соединен с первыми входами первого и второго эле элементов И, выход первого элемента
И соединен со входом начальной установки формирователя сигнатур, адресный вход устройства соединен с информационным входом дешифратора адреса, первый выход которого соединен со вторым входом второго элемента И и с первым входом третьего элемента И, вход чтения устройства и второй выход дешифратора адреса соединены со вторыми входами соответственно третьего и первого элементов И, выход третьего элемента И соединен с управляющим входом коммутатора, информационный вход-выход устройства через двухстороннюю магистраль соединен с входомвыходом коммутатора, о т л и ч а ю— щ е е с я тем, что, с целью расширения диагностических возможностей за счет оперативного тестирования микро12
1501065
Составитель М.Сигалов
Техред М.Дидык Корректор Л.Бескид
Редактор Л.Пчолинская
Заказ 4869/45 Тираж 668 Подписное
ВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР
113035, Москва, Ж-35, Раушская наб., д. 4/5
Производственно-издательский комбинат "Патент", r.Óæãîðîä, ул. Гагарина,101
ЭВМ, в него введены четыре элемента
ИЛИ, четвертый, пятый, шестой и седьмой элементы И, регистр эталона, схе" ма сравнения, триггер, одновибратор с повторным запуском, формирователь импульсов, элемент задержки и счетчик импульсов, причем вход чтения устройства через элемент задержки соесоединен с первым входом четвертого 10 элемента И, выход которого соединен с первым входом первого элемента ИЛИ,,выход второго элемента И соединен с вторым входом первого элемента ИЛИ, выход которого соединен с тактовым входом формирователя сигнатур, тре-, тий, четвертый, пятый и шестой выхЬды дешифратора адреса соединены соответственно с вторым входом четвертого элемента И первым входом пятого эле-2р мента И, первым входом шестого элемента И и первым входом седьмого эле, мента И, выход пятого элемента И соединен с входом разрешения сравнения схемы сравнения и входом перезапус- 25 ка одновибратора с повторным запуском, выход которого через формирователь импульсов соединен с первым входом второго элемента ИЛИ, выход которого соединен с первым входом третье- 3р
ro элемента ИЛИ, со счетным входом счетчика импульсов и входом установки в "0" триггера., вход записи устройства соединен с первым входом четвертого элемента ИЛИ, вторым входом седьмого элемента И, вторым входом пятого и вторым входом шестого элемента И, выход которого соединен с входом записи регистра эталона, информационный вход устройства соединен с первым входом схемы сравнения и информационным входом регистра эталона, выход которого соединен с вторым входом схемы сравнения, выход неравенства которой соединен с вторым входом второго элемента ИЛИ, вход чтения устройства соединен с вторым входом четвертого элемента ИЛИ, выход которого соединен с тактовым входом триггера, информационный вход триггера соединен с шиной единичного потенциала, выход. триггера соединен с входом запуска одновибратора с повторным запуском, выход седьмого элемента И соединен с входом. установки счетчика импульсов, выход которого соединен с вторым входом третьего элемента ИЛИ, выход которого является выходом перезапуска устройства.