Устройство для контроля хода программ
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и может быть использовано при построении надежных микропроцессорных систем. Цель изобретения - повышение достоверности контроля. Устройство содержит блок 4 формирования сигнатуры, блок 5 памяти, дешифратор 6, блок 7 сравнения и элемент И 8. Устройство позволяет обнаруживать ошибки, проявляющиеся в виде замены одной точки слияния другой. 1 з.п. ф-лы, 7 ил.
СОЮЗ СОВЕТСНИХ
СОЦИАЛ ИСТИЧЕСНИХ
РЕСПУБЛИН (5р 4 .G 06 F 11/28
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
ГОСУДАРСТВЕННЫЙ НОМИТЕТ
ПО ИЗОБРЕТЕНИЯМ И ОТНРЫТИЯМ
ПРИ fHHT СССР
К АВТОРСКОМ,Ф СВИДЕТЕЛЬСТВУ
1. (21) 4345418/24-24; 4368400/24-24 (22) 17,1 2,87 (46) 15,09.89. Бюл. № 34 (7l) Московский инженерно-физический институт (72) М.Э.Зиборова, M.А,Иванов и
В.Г,Тышкевич (53) 681.3(088,8) (56) Авторское свидетельство -СССР
¹ 1019451, кл, G 06 F ll/OQ, 1983, Авторское свидетельство СССР № 1300479, кл. G 06 F 11/28, 1987, „„Я0„„1508215
2 (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА . ПРОГРАММ (57) Изобретение относится к вычислительной технике и может быть использовано при построении надежных микропроцессорных систем, Цель изобретения — повышение достоверности контроля, Устройство. содержит блок
4 формирования сигнатуры, блок 5 памяти, дешифратор 6, блок 7 сравнения и элемент И 8. Устройство позволяет обнаруживать ошибки, проявляющиеся в виде замены одной точки слияния другой, 1 з.п. ф-лы, 7 ил.
3 150821
Изобретение относится к вычислительной технике и может быть использовано при построении надежных микропроцессорных систем„
Цель изобретения — повышение достоверности контроля.
На фиг.1 приведена схема устройства для контроля хода программ: на фиг.2 — схема блока формирования сиг- 10 натур;, на фиг.3 - пример конкретного выполнения блока формирования сигнатур; на фиг,4 — схема формирователя контрольного кода; на фиг.5 — пример конкретного выполнения 15 блока сумматоров по модулю два; на фиг.6 — схема алгоритма; на фиг„7 таблица, поясняющая логику работы формирователя контрольного кода.
Устройство содержит (фиг,1) груп- 20 пу адресных входов 1, группу инфор-. мационных входов 2, тактовый вход 3, блок 4 формирования сигнатур, блок
5 памяти, дешифратор 6, блок 7 сравнения, элемент И 8 и выход 9 сигна- 25 ла ошибки. Дешифратор 6 имеет первый 10 и второй 11, выходы.
Блок 4 формирования сигнатур (фиг.1 и 2) образуют. формирователь
12 контрольного кода, блок 13 памя- 130 ти и мультиплексор 14.
Формирователь 12 контрольного кода (фиг,3) содержит N регистров 15 разрядностью 1ор !.(, где Ь вЂ” степень простого числа, блоки 16-18 умножения, сложения и деления в поле
GF(L), причем величины, на которые происходит умножение и деление в соответствующих блоках 16 и !8, однозначно определяются элементами сопро-40 вождающей матрицы. Последняя, в свою очередь, однозначно определяется видом образующего многочлена с козффи . циентами из поля СР(1.). Число регистров 15 равно степени образующего мно-45 гочлена.
При L=2 формирователь контрольного када (фиг.4) содержит блок 19 сумматоров по модулю два и N-разрядный регистр 30. 50
При n=N=4 и Р (х)=х +х +1 блок 19 сумматоров по модулю два содержит (фиг,5) четыре сумматора 21 по модулю два (n - разрядность шины данных микропроцессорной системы).
Если блок 4 формирования сигнатур имеет структуру, показанную на фиг,1 устройство работает следующим образом.
Перед началом работы последовательностные элементы блока 12 устанавливаются в начальное состояние S <.
Цепь установки в исходное состояние на фиг.1 не показана. Адресные входы
1 подключаются к шине адреса микропроцессорной системы, информационные входы 2 устройства — к шине данных, а тактовый вход 3 — к линии сигнала чтения памяти команд шины управления системы, Выход 9 сигнала ошибки может быть подан на вход йрерывания систе-. мы.
Контроль хода выполнения программы осуществляется путем сравнения в заданных контрольных точках контрольного кода, сформированного из всех слов программы, предшествующих контрольной точке и считанных из памяти команд системы, с эталонным контрольным числом, сформированным блоком 5 из кода адреса соответствующей контрольной точки. Если сформированный в блоке 12 контрольный код (сигнатура) совпадает с кодовым эталоном, сформированным блоком 5, то программа выполняется правильно, в противном случае на выходе 9 устройства появляется сигнал ошибки.
Реальные программы имеют в своем составе точки слияния ветвей, в которых значения контрольных кодов зависят от того, по какой траектории была реализована программа, В общем случае контрольные коды, полученные прн прохождении различных траекторий, не совпадают. Чтобы обеспечить контроль хода программы, имеющей точки слияния ветвей, в предлагаемом уст-. ройстве в каждой из .указанных точек, 1 осуществляется установка блока 12 в определенные состояния, которые яв" ляются идентификаторами соответствующих точек слияния, после чего процесс фориирования контрольного кода начинается заново.
В процессе воспроизведения программы в каждый момент генерации системой адреса гочки слияния ветвей на выходе 1 О. дешифратора 6 появляется сигнал логической единицы, который приводит к появлению на выходах мультиплексора 14 кода с выходов блока 13, на выходах которого формируется код начального состояния блока 12, Кодидентификатор поступает на вторую группу информационных входов блока
12, после чего процесс формирования .
1 508215 сигнатуры начинается заново. При ло- гическом нуле на управляющем входе мультиплексора 14 на его выходы проходит код с выходов блока 12, который в этом случае работает обычным образом. Блок 13 осуществляет преобразование контрольного кода, полученного после прохождения точек программы, предшествующих точке слияния, в код начального состояния блока 12, -
Каждому выходному коду блока 13 соответствует несколько входных — по числу ветвей, сходящихся в данной точке слияния, Блоки 5 и 13 могут быть реализованы в виде комбинационных схем, В этом случае они строятся на основе соответствующих им таблиц истинности по известным правилам синтеза многовыходных комбинационных схем (диаграммы Вейтча, карты
Карно), Пусть например, программа (фиг.6) имеет две точки слияния: в первой, имеющей адрес А „, сходятся две ветви, сигнатуры которых S, и S, во второй, имеющей адрес А, сходятся три ветви, сигнатуры которых S, Б 4 и S . Поставим в соответствие указанным точкам слияния коды-идентифи< 2 каторы S< и S, соответствующие начальным состояниям блока 12, в которые тот устанавливается при прохождении данных точек, Тогда логика работы блока 12 описывается таблицей, представленной на фиг.7, где Sк сигнатура, полученная в конце программы.
Блок 5 выдает на своих выходах
9 э Э коды S,... S < Б,, когда на его входах коды A ...А ...А соответственно, где S, — эталонная сигнатура в i-й
К контрольной точке с адресом А ., На выходе 10 дешифратора 6 сигнал логической единицы появляется, когда на входах 1 — код одного из адресов А, и А или адрес команды начального пуска. На выходе ll дешифратора 6 сигнал логической единицы появляется, когда на входах 1 — один из кок дов А;.
Так как предлагаемая структура устройства не накладывает никаких ограничений на расположение точек конт роля, последние можно расположить вточках, имеющих одинаковые сигнатуры, что максимально упрощает блок 5, Если выбрать контрольные точки ука" занным способом по каким-либо причинам не удается, их можно выбрать с таким расчетом, чтобы эталонные сиг натуры отличались в минимальном числе разрядов, что также существенно уменьшает аппаратные затраты на реализацию устройства. . I
Время обнаружения ошибки определяется в рассмотренном случае расстоянием от места ее возникновения до ближайшей контрольной точки.
10
Для уменьшения времени обнаружения ошибки можно использовать схему блока 4, показанную на фиг.2, На выходе 11 дешифратора 6 в этом случае постоянно находится уровень логической единицы. Контроль хода выполнения программы осуществляется путем сравнения контрольного кода, сформированного из всех слов программы, предшествующих очередному и считанных ранее из памяти команд системы, с эталонным контрольным числом, извлекаемым иэ блока 5 по тому же адресу, что и очередное слово из памяти ко15
20 манд. Если сформированный в блоке 12
25 контрольный код (сигнатура) совпадает с кодовым эталоном, считанным из блока 5, программа выполняется правильно, в противном случае на выходе 9 появляется сигнал ошибки. Мас30 сив контрольных кодов вычисляется и . размещается в блоке 5 заранее, при этом по тем адресам, которые возбуждаются в памяти команд системы при прохождении программой точек слияния, в блоке 5 хранятся начальные состояния блока 12,.соответствующие указанным точкам, 35
Использование изобретения обеспе
40 чивает. увеличение достоверности контроля: устройство позволяет обнаруживать ошибки, проявляющиеся в виде замены одной точки слияния другой.
Предлагаемое устройство может быть
45 использовано и для контроля блоков микропрограммного управления. В этом случае функции блока 5 и дешифратора 6 выполняют дополнительные разряды памяти микрокоманд.
50 Ф о р м у л а и з о б р е т е н и я
1. Устройство для контроля хода
55 программ, содержащее дешифратор, блок формирования сигнатур, блок сравнения и элемент И, причем выход элемента И является выходом сигнала ошибки устройства, тактовый вход устройства со
1508215 единен с, тактовым входом блока форми-.
1 рования,сигнатур и первым входом элемента И, информационный выход блока формирования. сигнатур соединен с первым .входом блока сравнения, выход которого соединен с вторым входом элемента И, группа информационных входов устройства соединена с группой информационных входов блока фор- 10 мирования сигнатур ° о т л и ч а ющ е е с я тем, что, е целью повышения достоверности контроля, в устройство введен блок памяти, причем адресные входы устройства соединены 15 с информационными входами дешифратора и адресными входами блока памяти, выходы которого соединены с вторым входом блока сравнения, первый и второй выходы дешифратора соеди- 20 иены соответственно с входом модифи,кации сигнатуры блока формирования ,:сигнатур и с третьим входом элемен та И.
2. Устройство по п, 1, о т л и ч а ю щ е е с я тем, что блок формирования сигнатур содержит формиро- ватель контрольного кода, узел памяти и мультиплексор, группа выходов которого соединена с первой группой, информационных входов формирователя контрольного кода, вторая группа информационных входов которого образует группу информационных входов блока, группа выходов формирователя контрольного кода соединена с группой адресных входов узла памяти, первой группой информационных входов мультиплексора и является группой выходов блока, вторая группа информационных входов мультиплексора соеди"нена с группой выходов узла памяти, тактовый вход формирователя контрольного кода и управляющий вход мультиплексора образуют соответственно тактовый вход и вход модификации сигна- . туры блока., 1508? Г5
Фиа
Л1
14
2.f
22
2л
Фиг.4
15082) 5
Фиг.7
Составитель И.Сигалов
Редактор А,Orap Техред Л.Олийнык. Корректор Т. Палий
Заказ 5541/50 Тираж 668 Подписное
ВНИИПИ Государственного комитета ло изобретениям и открытиям при ГКНТ СССР
113035, Иосква, Ж-35, Раушская наб., д. 4/5
Производственно-издательский комбинат "Патент", г. Ужгород, ул. Гагарина, 101