устройство для контроля хода программы управляющей вычислительной машины

Классы МПК:G06F11/28 с помощью проверки правильности порядка обработки данных
Автор(ы):, ,
Патентообладатель(и):Иванов Анатолий Иванович,
Кладов Виталий Евгеньевич,
Забродский Валерий Борисович
Приоритеты:
подача заявки:
1991-03-19
публикация патента:

Изобретение относится к вычислительной технике и может быть использовано при построении управляющих вычислительных машин (УВМ), нечувствительных к сбоям программ. Цель - повышение оперативности контроля за счет осуществления контроля непосредственно при считывании команд, расширение функциональных возможностей за счет возможности работы при наличии прерываний в контролируемой УВМ, сокращение аппаратных затрат. Сущность изобретения: устройство для контроля хода программы УВМ содержит счетчик 1, блок памяти 2, схему сравнения 3, триггеры очистки 4, прерывания 5, ошибки 6, элемент И 7, элемент ИЛИ-НЕ 9, элементы ИЛИ 8 и 10. 2 ил.
Рисунок 1, Рисунок 2

Формула изобретения

УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ХОДА ПРОГРАММЫ УПРАВЛЯЮЩЕЙ ВЫЧИСЛИТЕЛЬНОЙ МАШИНЫ, содержащее блок памяти, схему сравнения, триггеры прерывания, очистки и ошибки, элемент И, элемент ИЛИ, причем первая группа входов схемы сравнения подключена к группе входов адреса данных устройства, отличающееся тем, что, с целью повышения оперативности контроля, расширения функциональных возможностей за счет возможности работы при наличии прерываний в контролируемой УВМ и сокращения аппаратурных затрат, оно содержит счетчик, второй элемент ИЛИ и элемент ИЛИ НЕ, причем группа входов адреса/данных устройства соединена с информационной группой входов счетчика, группа выходов которого соединена с группой адресных входов блока памяти, выход и группа информационных выходов которого соединены соответственно с первым входом элемента ИЛИ НЕ и второй группой входов схемы сравнения, выход которой соединен с первым входом второго элемента ИЛИ, второй вход которого соединен с выходом элемента ИЛИ НЕ, выход второго элемента ИЛИ соединен с информационным входом триггера ошибки, выход которого является выходом сбоя устройства, синхровход триггера ошибки соединен с выходом элемента И, инверсный вход установки триггера ошибки соединен с выходом триггера прерывания, инверсный вход сброса которого является входом обращения к векторам прерывания устройства, первый вход первого элемента ИЛИ, инверсный вход установки триггера очистки, инверсный вход установки триггера прерывания и синхровход счетчика подключены к входу обращения к ПЗУ программы устройства, синхровход триггера очистки является входом очистки устройства, выход триггера очистки соединен с входом выбора режима счетчика, с входом выбора страницы блока памяти, с вторым входом элемента ИЛИ НЕ и первым входом элемента И, второй вход которого соединен с выходом первого элемента ИЛИ, второй вход которого является входом чтения устройства, информационный вход триггера очистки подключен к шине нулевого потенциала устройства.

Описание изобретения к патенту

Изобретение относится к вычислительной технике и может быть использовано при построении надежных управляющих вычислительных машин (УВМ), нечувствительных к сбоям программ.

Цель изобретения повышение оперативности контроля за счет осуществления контроля непосредственно при считывании команд, расширение функциональных возможностей за счет возможности работы при наличии прерываний в контролируемой УВМ, а также сокращение аппаратных затрат.

На фиг.1 показана структурная схема устройства; на фиг.2 пример программы.

Устройство (фиг. 1) содержит источник 1, блок памяти 2, схему сравнения 3, триггеры очистки 4, прерывания 5, ошибки 6, элемент И 7, первый 8 элемент ИЛИ, элемент ИЛИ-НЕ 9, второй 10 элемент ИЛИ, линии УВМ: шина адреса/данных 11, линия обращения к ПЗУ программы 12, очистки 13, обращения к векторам прерывания 14, чтения 15, выход сигнала сбоя устройства 16.

На фиг.2 представлен пример части программы УВМ, а также прошивки основного поля (связанного с группой информационных выходов) второй страницы блока памяти 2.

Приняты следующие обозначения: Ai адреса команд условного и безусловного перехода; l(Ai) адрес на который возможен переход при выполнении команд условного и безусловного перехода; B длина конвейера команд; X произвольный адрес, не входящий в зону программы ПЗУ.

Устройство предназначено для контроля хода программы УВМ, построенных на базе современных процессоров, имеющих конвейер команд (например, микропроцессоры 1810 ВМ86, INTEL 18086).

В данных процессорах используется опережающая выборка команд и формируется очередь команд. При передаче управления в другое место программы (на начало нового линейного участка программы) конвейер команд очищается и после этого начинает заполняться командами нового линейного участка программы. Сигнал очистки конвейера (для микропроцессора 1810 ВМ86, напри- мер, это сигнал y устройство для контроля хода программы управляющей   вычислительной машины, патент № 20592871устройство для контроля хода программы управляющей   вычислительной машины, патент № 2059287 QSO= устройство для контроля хода программы управляющей   вычислительной машины, патент № 2059287Oустройство для контроля хода программы управляющей   вычислительной машины, патент № 2059287 активный уровень которого ("1") появляется при QS1 0; QSO 1 идентифицирует переход к началу нового линейного участка программы и подается на соответствующий вход устройства.

Активный ("0") уровень сигнала на линиях обpащения к ПЗУ программы 12 и к векторам прерывания 14 вырабатывают в УВМ (с помощью входящего в его состав селектора адреса) при обращении процессора УВМ соответственно к зоне адресов, по которым хранится программа, выполняемая УВМ, и к зоне, где хранятся векторы прерывания, сохраняясь до окончания цикла обращения по данному адресу.

Сигнал сбоя ("0") на линии 16 может подаваться в УВМ в качестве сигнала запроса прерывания.

При сигнале логического "0" на своем входе разрешения записи счетчик 1 работает в режиме параллельной записи, а при "1" счета. Запись и счет производится по фронту 1/0 на синхровходе счетчика.

Запись информации в триггеры 4 и 6 происходит по фронту 0/1 на их синхровходах.

При равенстве кодов схемы сравнения 3 и на ее выходе появляется сигнал логическая "1", при неравенстве логический "0".

Блок памяти 2 состоит из двух страниц. При логической "1" на входе выбора страницы выбирается первая страница, а при логическом "0" вторая.

Первая страница идентична ПЗУ программ контролируемой УВМ. Вторая страница прошита так, что адресу на его входе ставится в соответствие на выходе адрес начала нового линейного участка программы контролируемой УВМ (фиг.2), на который может произойти переход в данной точке программы. Число команд, следующих за командой условного или безусловного перехода и считанных в конвейер команд процессора УВМ к моменту ее выполнения, является недетерминированным (в силу недетерминированного времени поступления в УВМ прерываний, вызывающих очистку конвейера), поэтому на второй странице блока памяти 2 по всем адресам Ai; Ai+B записано обозначение l(Ai). По адресам программы УВМ, в которых при отсутствии прерываний, невозможен переход на другие линейные участки программы, записывается произвольная информация Х, не попадающая в зону адресов ПЗУ программы УВМ.

Во второй странице блока памяти 2 один бит данных связан с его отдельным выходом. Он имеет значение, равное "0", если адрес перехода в данной точке программы УВМ не может быть определен заранее ("1" если может) в противном случае).

К программе УВМ предъявляется требование, чтобы интервал между командами условного и безусловного перехода превышал длину конвейера команд процессора УВМ. Нарушение данного требования крайне маловероятно в связи с малой длиной конвейера (1-2 команды) и легко устранимо вставкой команды ОР (нет операции).

Контроль работы УВМ осуществляется путем сравнения реальных и прогнозируемых значений кодов команд и адресов перехода на новый линейный участок программы. Таким образом обеспечивается контроль правильности считывания команд при выполнении линейного участка программы и правильность переходов на новый линейный участок программы.

Предлагаемое устройство работает следующим образом.

При включении питания и при переходе на новый линейный участок программы в процессоре с конвейером команд происходит его очистка, сопровождающаяся появлением активного уровня ("1") сигнала на линии очистки 13, это приводит к сбросу триггера очистки 4 и переводу счетчика 1 в режим записи.

Процессор УВМ, обращаясь к ПЗУ программы за 1-й командой линейного участка программы, выдает ее адрес. Обращение сопровождается появлением активного ("0"), уровня сигнала на линии обращения к ПЗУ программ 12, по которому происходит запись адреса в счетчик 1 и установка триггера очистки 4. Счетчик 1 переводится в режим счета, в блоке памяти 2 выбирается первая страница. При считывании последующих команд по сигналу обращения к ПЗУ программ ("0") происходит наращивание счетчика 1. При отсутствии сбоев значение счетчика 1 совпадает со значением счетчика команд процессора УВМ. С блока памяти 2 считывается ожидаемая команда. Считывание команды в УВМ сопровождается активными уровнями сигналов ("0") на линиях обращения к ПЗУ программы 12 и чтения 15, что приводит к появлению сигнала логического "0" на выходе элемента ИЛИ 8 и синхровходе триггера ошибки 6. Сравнение ожидаемой и реально считываемой команды происходит в схеме сравнения 3. При совпадении во время фронта 0/1 на синхровходе триггера ошибки 6 на выходе схемы сравнения 3 и информационном входе триггера ошибки 6 на выходе схемы сравнения 3 и информационном входе триггера 6 логической "1", триггер 6 остается в установленном состоянии, сигнал сбоя ("0") на линию 16 не выдается. При себе в момент фронта 0/1 на синхровходе триггера 6, на выходе схемы сравнения 3 и информационном входе триггера 6 "0", триггер 6 сбрасывается, в УВМ выдается сигнал сбоя.

В ответ на него УВМ прерывает свою работу, переходе к программе обработки прерывания по сбою, что сопровождается чтением вектора прерывания и появлением активного уровня сигнала на линии 14, что сбрасывает триггер прерывания 5 и устанавливает триггер ошибки 6, снимая сигнал сбоя ("0") на линии 16.

При переходе на новый линейный участок контролируется адрес перехода. Переход на новый линейный участок сопровождается появлением активного уровня ("1") на линии очистки 13, что приводит к сбросу триггера очистки 4, выбирается вторая страница блока памяти 2. С него считывается адрес, на который возможен переход в данной точке программы. Сравнение происходит по появлению активного уровня сигнала на линии "Обращение ПЗУ программ" 12, появление которого свидетельствует о выдаче адреса первой команды нового линейного участка. При этом триггер очистки 4 устанавливается, на его выходе, на выходе элемента И 7, синхровходе триггера ошибки появляется фронт 0/1, по которому аналогично производится сравнение ожидаемого и реального адреса перехода.

В ряде случае адрес перехода не может быть определен заранее. К их числу относится переход к программе обработки прерывания, когда адрес перехода зависит от считываемого вектора прерывания, возврат из прерывания, когда адрес перехода определяется точкой, в которой произошло прерывание основной программы УВМ, косвенная адресация перехода, когда адрес перехода зависит от изменяющего содержания определенной ячейки ОЗУ УВМ.

В эти моменты контроль УВМ устройством временно прерывается. Происходит это следующим образом.

При переходе к программе обработки прерывания по активному уровню сигнала на линии "Обращение к векторам прерывания" 14 происходит сброс триггера прерывания 5, и за счет активного уровня сигнала ("0") на входе установки триггера ошибки поддерживается пассивное состояние сигнала на линии сбоя 16. По активному уровню ("0") сигнала на линии "Обращение к ПЗУ программ" 12, появляющемуся при считывании первой команды нового линейного участка, триггер 5 сбрасывается, контроль работы УВМ возобновляется.

По адресу последней команды программы обработки прерывания, а также команд, где адрес перехода не может быть определен заранее, во второй странице блока памяти бит блокировки имеет активное значение ("0"). При переходе на новый линейный участок по активному уровню сигнала очистки на линии 13 сбрасывается триггер очистки 4, выбирается вторая страница блока памяти 2. При этом при активном значении бита блокировки ("0") на выходе элемента ИЛИ-НЕ 9 и элемента ИЛИ 10 появляется сигнал логической "1", что поддерживает пассивное состояние сигнала сбоя на линии 16. По активному уровню ("0") сигнала на линии "Обращение к ПЗУ программ" 12, появляющемуся при считывании первой команды нового линейного участка, триггер 4 сбрасывается, контроль работы УВМ возобновляется.

Класс G06F11/28 с помощью проверки правильности порядка обработки данных

способ устранения исключительной ситуации в одном из ядер многоядерной системы -  патент 2437144 (20.12.2011)
способ обучения летного состава с использованием в качестве тренажера учебно-летной ракеты и устройство для обучения летного состава в виде учебно-летной ракеты -  патент 2422910 (27.06.2011)
способ формирования дамп файла -  патент 2393530 (27.06.2010)
имитатор ир-60-500 для отладки корабельных цифровых управляющих систем -  патент 2138846 (27.09.1999)
устройство для контроля управляющей вычислительной машины -  патент 2094842 (27.10.1997)
способ контроля и отладки программ реального времени и устройство для его осуществления -  патент 2050588 (20.12.1995)
устройство для отладки программ -  патент 2049349 (27.11.1995)
устройство для контроля управляющей вычислительной машины -  патент 2011216 (15.04.1994)
Наверх