Устройство для контроля хода программ

Номер патента: 1645960

Авторы: Литвин, Чмутов

Есть еще 2 страницы.

Смотреть все страницы или скачать ZIP архив

Текст

16459 ЬО Составитель И,Сигаледактор Л,Пчолинская Техред И.Дидык Корректор Т,Па водственно-издательский комбинат "Патент", г. Ужгород, ул. Гагарина, 10 Заказ350 Тираж 416 ПодписноеВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ ССС113035, Москва, Ж, Раушская наб., д. 4/555 вход 20 признака вывода устройстваи выход 29 сбоя устройства,Устройство работает спедующим образом,Дпя примера рассютрим работу устройства применительно к ЭВМ с общейшиной, Выполняя программу, ЭВМ вьгполняет непрерывную последовательность команд Выполнение командыначинается с операции по выборке кода команды, Для выполнения любойкоманды процессору требуется цыподнить хотя бы одну операцию обращенияк каналу, для некоторых команд требуется выполнить несколько операций,Первой такой операцией дпя всех команд является ввод кода команды изячейки памяти ЭВМ, адрес которой определяется счетчиком команд ЭВМ, Всеоперации обращения к каналу для ввода и вывода данных назовем цикламиобращения к каналу СИгналы, поступаюшие от процессора в канал, показаиы на фиг,4После дешифрации команды процессор начинаеФ операцию поюборке операндов, инициируя, еслиэто необходимо, в зависимости откода команды и метода адресации,один нли несколько циклов ввода, Далее производится операция по выполнению действия команды и при необходимости вывода результатов командыв память или в регистр внешнего устройства (ВУ) начинется цикл ввода,В некоторых случаях после операциивыборки текущей команды процессорможет перейти к операции выборкиследующей команды, Поскольку ЭВМ собщей шиной могут выполнять байтовыеоперации, то при выборке очередногослова из памяти по адресу счетчикакоманд его содержимое автоматическиувеличивается на 2, при этом увеличение содержимого происходит в первую очередь после выборки слова, Новое содержимое счетчика команд является адресом -операции, используемым при выполйении данной командЫипи адресом следующей команды, Привыполнении линейного фрагмента програмж, т,е, такого, в котором нетусловных или безусловных переходов,содержимое счетчика команд последовательно наращивается на 2, при,этом вканале ЭВМ коды адресов меняются непоследовательно, так как прн выполненни команд происходит обращение клюбым ячейкам памяти в случае ин 5 1 О 15 20 25 30 35 40 45 50 дексной, косвенной, относительнойадресации нли в случае обращения кВУ, Аппаратный доступ к счетчикукоманд ЭВМ отсутствует, доступ возможен только к каналу ЭВМ, а доступк содержимому счетчика команд возможен только программыай,На фиг,5 в таблице представленыдпя примера некоторые команды с разбивкой по операциям. Команда К 1(МОЧ, СК, СЧ) определяет вывод значения счетчика команд (СК) в счетчик 7 адреса (СЧ) устройства и состоит из трех циклов обращения к каналу: ввод кода команды К 1 нз памятиЭВМ по адресу 002; ввод, адреса счет"чика 7 адреса из памяти по адресу004 и вывод значения счетчика командЭВМ в счетчик 7 адреса по адресу ХХ 1,где ХХ - произвольное значение кода,определяемое присвоенным счетчикуадресом, Команда К 2 (МОЧ 4 С,) определяет вывод константы (С) в сумматор 11 устройства и состоит из четырех циклов обращения к каналу: вводкода команды К 2 из памяти ЭВМ по адресу 006 ввод константы (С) нз памяти по адресу 010; ввод адреса сумматора 11 из памяти по адресу 012 ивывода значения константы (С) в сую.матор 11 по адресу ХХ 2, определяемому присвоенным сумматору 11 адресомКоманда КЗ (МОЧ КС, РГ) определяетвывод константы контрольной суммы(КС) в регистр 13 устройства и состоит нз четырех циклов обращения к каналу, аналогичных описанным, командаусловного перехода (КУП), находится впамяти ЭВМ по адресу 116В процессе выполнения ЭВМ програм мы производится выполнение команд, следующих последовательно, или происходит переход по новому адресу по командам усповного и безусловного пере ходов и по прерываниям от ВУ, На фиг,6 показана программа, состоящая иэ нескольких фрагментов, нумерация которых показана в кружках, при этом фрагменты, сходящиеся в одной точке, имеют одинаковые номера, Ромбаж показаны команды условного перехода, длиняюви черточками - команды К 1, К 2, КЭ, короткиж черточками " команды програмю цифры со знаками + обозначают значение константы (С), которое содержат команды К 2На фиг,7 показан один из фрагментов программ, в кото 1645960 6ром показаны места расположения команд Кэ, К 2, КЗ н КУП,Способом контроля хода выполнения программы является контроль вконце каждого фрагмента состояниясчетчика команд ЭВМ с помощью счетчика 7 устройства, а также контрольномера каждого фрагмента, представляющего собой контрольную сумму (КС),которую содержит команда К 3, Для получения ожидаемого значения КС фрагмента в сумматор 11 устройства вводится с помощью команды К 1 константа (С), определяемая заранее дпякаждого фрагмента,Подготовка устройства к работезаключается в нумерации всех фрагментов программ и в определениизначений констант (С) дпя каждогофрагмента с условием, чтобы предыдущее значение сумматора 11, сложенное со значением константы С, давалон результате номер фрагмента (значе.ние КС) Команда К записывается первой в фрагменте, за ней - командаК 2, в конце фрагмента - команда К 3(фиг,7) .Работа устройства начинается сначальной установки в "0" триггеров3 5 н сумматора 11 (цепн устанонкив "0" на фиг, не показаны)Сигналом начальной установки может быть,например, сигнал начальной установкивсех устройств, подключенных к каналу, вырабатываеиий процессором привключении питания ЭВМ, Первой ныполняемой командой фрагмента 5 (фиг.6)является команда К 1, которая заноситзначение счетчика команд ЭВМ в счетчик 7 устройства, При выполнениицикла 002 (Эиг,5) в процессор заносится из памяти код команды, затемныполняется цикл 004, во время которого в процессор из памяти ЭВМ заносится адрес счетчика 7, определенныйзаранее, По переднему фронту сигналаСИА срабатывает формирователь 16(фнг,8 а) и через элемент И 24, открытый по первому входу нысоким уровнемот иннерсного выхода триггера 4,подтверждает состояние "0" триггера3 или устанавливает его в фО"По переднему фронту сигнала СИА заноситсятакже в регистр 3 значение адреса004, присутствующего в канале, ПослеэтогО в канале устанавливается адресХХ 1 счетчика 7 (фиг86), который депвфруется дешифратором 1; по передне 10 15 20 25 30 35 40 45 50 55 му фронту сигнала СИА триггер 3 устанавливается в "1" в регистр 13 заносится адрес ХХ 1, Передним Фронтом сигнала нывода адрес 006 счетчика команд ЭВМ заносится н счетчик 7На этом выполнение команды К 1 закан чивается.Следующей выполняется команда К 2На информационных входах 25 появляет ся адрес 006 (фиг,8 в), передний фронт сигнала СИА сбрасывает триггер 3 н "0" и заносит в регистр 13 адрес 006, после чего вследствие равенства содержимого счетчика 7 и регистра 13 на выходе блока 12 сравнения появляется сигнал "1", поступакщий на первый вход элемента И 22Информация со счетчика 7 поступает через блок 8 элементов И и через блок 10 элементов ИЛИ на входы блока 12 сравнения, На управляющем входе блока 8 элеЭчег та И присутствует высокий уровень с выхода элемента НЕ 18, поскольку на ныходе элемента И 21 низкий уро вень, так как на его первом входе присутствует низкий уровень с прямого выхода триггера 5Передним фронтом сигнала СИА триггер 3 сбрасывает ся н "0", а передним фронтом сигнал ввода через элемент И 22 в счетчик 7 по счетному входу заносится "1" и устанавливается в "1" триггер 6, после чего значение счетчика 7 становит ся равным 010, Поскольку учитываются только четные значения счетчика 7, младщий разряд в регистр 13 с группы информационных входов 25 не принима ется, и, следовательно, не сравнивается и блоке 12 сравнения, Цикл 010 (фиг,8 г) выполняется аналогично опи санному циклу 006, при этом триггер 6 сбрасывается в "0" импульсом фор мирователя 16 от переднего фронта сигнала СИА, а затем устанавливается в "1" сигналом с ныхода элемента И 22, в счетчик 7 также заносится "1", его содержимое становится равным О 2Цикл 012 (фиг9 а) выполняется аналогично циклу 010, После ны полнения цикла 012 иа группе информационных входах 25 появляется адрес ХХ 2 (фиг,96), определяемый адресом сумматора 11, дешифруется дещифрато ром 2, после чего по переднему фрон ту сигнала СИА триггер 4 устанавливается в , в регистр3 заносиг ся значение ХХ 2Передюм фронтом сигнала вывода через открытые эле 1645960менты И 20 и 23 в сумматор заноситсязначение константы С для выполняемо го фрагмента к суммнруется с предыдущей КС, в результате чего содержимое сумматора 11 равно КС (номеру)выполняемого фрагмента, Задний фроНтсигнала вывода через открытый элемент И 20 устанавливает по счетному входу в "1" триггер 5, На этом . 1 Овыполнение команды К 2 заканчивается,При выполнении цикла 014 следукщейкоманды программы (фиг,8 в) триггер 4сбрасывается в "0", в регистр 13 заносится значение О 4, которое сравнивается с содержимым счетчика 7, и. т.даналогично описанному,В дальнейшем производится выполнение после"довательных команд фрагмента программы, счетчик 7 при этом увеличивает последовательно свое содержимоена единицу,Последней командой выполняемогоФрагмента является команда КЗ, Циклы10, 112, 114 выполняются аналогичноописанным циклам 006, 010, 012 дпякоманды К 2При сравнении одинаковых(114) значений счетчика 7 и регистра13 по переднему фронту сигнала вводав счетчик 7 заносится единица и ус ЗОтанавливается в "1" триггер 6Приусловии последовательного выполнениявсех команд какого либо фрагментасчетчик 7, последовательно наращивая свое содержимое, в конце фрагмен 35та соответствует счетчику команд ЭВМпо содержимому В случае пропускакаких-либо команд или перехода програию в результате сбоя на другойфрагмент содержимое счетчика 7 и 40счетчика команд ЭВМ различно, сравнения не происходит и триггер 6 приюполнении команды КЗ (в данном примере цикл 114) в не устанапивает ся45111 ри появлении иа группе ииформационных входов 25 адреса ХХ 2 (4 иг,10 значение адреса заносится в регистр 13, кроме того, адрес ХХ 2 дешифрует 50 ся дешифратором 2, поэтому передним фронтом сигнала СИА триггер 4 устанавливается в "1"Сигналом с формюрователя 6 триггер 6 в "Оф не сбрасывается, так как элемент И 24 закрыт 55 по второму входу низким уровнем с инверсного еахода триггера 4, Перед ним фронтом сигнала вывода через от крытые элементы И 20 и 21 и элемент ЙЛЯ Г 4 в регистр 13 заносится значение КС выполняемого фрагмента, атакже запускается формирователь 15Сигнал вывода, поступая через открытые элементы И 20 и 21 на управляющий вход блока 9 элементов И, подклн.чает выход сумматора 11, содержимымкоторого является значение контрольной суммы выполняемого фрагмента, через блок 10 элементов ИЛИ к второйгруппе входов блока 12 сравненияБлок 8 элементов И блокируется элементом НЕ 8В результате сравнениязначений регистра 13 н сумматора 11на выходе блока 12 сравнения присутствует высокий уровень, поступающий на первый управляющий вход кпюча,на втором управлякщем входе которогоприсутствует высокий уровень с прямого восхода триггера 6, Сигнал с выхода формирователя 15 через ключ 17 непроходит, и на восходе 29 устройствасигнал ошибки отсутствует, Заднимфронтом сигнала вывод через открытыйэлемент И 20 триггер 5 по счетномувходу сбрасывается в "0"Выполнениекоманды КЗ и контроля фрагмента программа заканчивается,Таким образом, в случае пропускакоманд или перехода программы с одного фрагмента на другой к моментусравнения контрольных сумм регистра13 и сумматора 11 триггер 6 находится в состоянии "0", что приводит коткрытому состоянию ключа по второмуинформационному входу, Если фрагментюполняется правильно, но в результате сбоя при выполнении командыусловного перехода программе переходит на другой фрагмент неразрешеннойпоследовательности, то происходит несравнение контрольках сумм сумматора1 и регистра 13; ключ 17 открыт попервому информационному входу, Возможен вариант, когда к моменту сравнения на обоих информационных входахключа 17 присутствуют низкие уровни,Во всех перечисленных случаях снгнапс выхода формирователя 15 через ключ17 поступает на выход 29,устройства,сигнализируя о сбое в ходе выпопнеиияпрограммы,Если во время выполнения фрагментапрограюы происходит прерывание основной программ и ЭВМ начинает выполнеиие програюаю обслуживания прерывания, состояние устройства не изменяется и при возврате ЭВМ к прерван 1645960ному Фрагменту продолжается нормальная р а бот а у ст ро йс тв а.Возможен также контроль фрагментовпрограммы обслуживания прерыванияВэтом случае в фрагмент программы необходимо записать команды К 1, К 2,КЗ и, кроме того, в начале программы(до команд К 1, К 2, КЗ) произвести занесение в стек содержимого ЭВМ, счет- Очика 7 и сумматора 11, а при выходеиз программы восстановить из стекаих содержимоеТаким образом, устройство позволяет при сравнительно мапых аппаратурных затратах эффективно проводитьконтроль выполнения программы,Формула изобретения20Устройство дпя контроля хода программ, содержащее первый и второй дешифраторы, регистр адреса, блок сравнения, первый и второй блоки элементов И, блок элементов ИЛИ, три 25 триггера, шесть элементов И и элемент ИЛИ, причем группа информацион ных входов устройства соединена с группами информационных входов первого и второго дешифраторов и груп пой входов регистра адреса, группа выходов которого соединена с первой группой входов блока сравнения, вью ходы первого и второго дешифраторов соединены с информационными входами 35 соответственно первого и второго триггеров, прямоте выходы которых соединены с первыми входами соответственно первого и второго элементов И, вход признака вывода устрой 40 ства соединен с вторыми входами пер вого и второго элементов И, тактовый вход устройства соединен с тактовыми входами первого и второго триггеров, выход второго элемента И 45 соединен с тактовым входом третьего триггера, прямой выход которого со единен с первым входом третьего эпе мента И, группы выходов первого и второго блоков элементов И соединены соответственно с первой и второй группами входом бпока элементов ИЛИ, выход четвертого элемента И соединен со счетным входом счетчика адре са, о т л и ч а ю щ е е с я тем,что, с целью упрощения, оно содержитнакапливающий сумматор, четвертыитриггер, первый и второй Формирователи импульсов, элемент НЕ и ключ,причем выход первого элемента И соединен с входом записи счетчика адреса, выход которого соединен с группой информационных входов первогоблока элементов И, группа информационных входов устройства соединенас группами информационных входовсчетчика адреса и накапливающего сумматора, группа выходов которого соединена с группой информационныхвходов второго блока элементов И,вход признака ввода устройства соединен с первым входом четвертого элемента И, выход которого соединен сединичным входом четвертого триггера, выход второго элемента И соединен с первым входом пятого элементаИ с вторым входом третьего элементаИ, выход которого соединен непосредственно с управляющим входом второго блока элементов И, с первым входомэлемента ИЛИ и через элемент НЕ ипервый формирователь импульсов соответственно с управляющим входом блока элементов И и управляющим входомключа, группа выходов блока элементов ИЛИ соединена с второй группойвходов блока сравнения, выход равенства которого соединен с вторым входом четвертого элемента И и первыминформационным входом ключа, тактовый вход устройства соединен с вторым входом элемента ИЛИ и через второй формирователь импульсов с первымвходом шестого элемента И, выходкоторого соединен с нулевым входомчетвертого триггера, прямой выход которого соединен с вторым информационным входом ключа, выход которогоявляется выходом сбоя устройства,инверсный выход второго триггерасоединен с вторым входом шестогоэлемента И, инверсный выход третьеготриггера соединен с информационнымвходом третьего триггера и с вторымвходом пятого элемента И, выход которого соединен с входом записи накапливающего сумматора, выход элемента ИЛИ соединен с входом записирегистра адреса,

Смотреть

Заявка

4652905, 20.02.1989

ПРЕДПРИЯТИЕ ПЯ Ю-9420

ЛИТВИН ЛЕОНИД АЛЕКСЕЕВИЧ, ЧМУТОВ ВАЛЕРИЙ ЮРЬЕВИЧ

МПК / Метки

МПК: G06F 11/28

Метки: программ, хода

Опубликовано: 30.04.1991

Код ссылки

<a href="https://patents.su/10-1645960-ustrojjstvo-dlya-kontrolya-khoda-programm.html" target="_blank" rel="follow" title="База патентов СССР">Устройство для контроля хода программ</a>

Похожие патенты