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

Иллюстрации

Показать все

Реферат

 

Изобретение может быть использовано в вычислительной технике для контроля выполнения программ в цифровых вычислительных машинах и программируемых контроллерах, построенных по принципу "общей магистрали". Цель изобретения - повышение быстродействия устройства. Правильность выполнения рабочей программы контролируется путем одновремен-22 г9 ^^27

СОЮЗ СОВЕТСКИХ

СОЦИАЛИСТИЧЕСКИХ

РЕСПУБЛИК

ГОСУДАРСТВЕННЫЙ КОМИТЕТ

f70 ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ

ПРИ ГКНТ СССР

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (21) 4745671/24 (22) 03,10.89 (46) 30,01.92. Бюл, 3Ф 4 (71) Харьковский политехнический институт им.B.È.Ëåí ина (72) А.Н.Мызь и В.Г,Якименко (53) 681.3 (088,8) (56) Авторское свидетельство СССР

М 1315981, кл. G 06 F 11/28, 1985.

Авторское свидетельство СССР

М 1434439, кл. G 06 F 11/28, 1987,,, SU„, l709319 +1 (я)5 G 06 F 11/28 (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ВЫПОЛНЕНИЯ ПРОГРАММ (57) Изобретение может быть использовано в вычислительной технике для контроля выполнения программ в цифровых вычислительных машинах и программируемых контроллерах, построенных по принципу

"общей магистрали". Цель изобретения— повышение быстродействия устройства.

Правильность выполнения рабочей программы контролируется путем одновремен1709319 ного с выборкой из основной памяти начальной команды некоторого линейного участка рабочей программы извлечения из памяти устройства для контроля выполнения программ команды проверки правильности выполнения каждой команды линейного участка. Команда проверки содержит информацию, определяющую ожидаемое число импульсов синхронизации машинных циклов. Эта информация помещается в блок счета количества импульсов синхронизации, содержимое которого в дальнейшем уменьшается по мере прохождения линейного участка. Одновременно в ходе выполнения линейного участка программы производится контроль "прохождения" программы по адресам выборки команд путем сравнения текущего адреса программы и адреса-копии, вырабатываемого устройстИзобретение относится к вычислительной технике и может быть использовано для контроля выполнения программ в цифровых вычислительных машинах и программируемых контроллерах, построенных по принципу "общей магистрали", Цель изобретения — повышение быстродействия устройства.

На фиг. 1 представлена функциональная схема устройства для контроля выпол-, нения программ; на фиг, 2 — 6 — примеры реализации функциональных узлов устройства для контроля выполнения программ микропроцессорной системы; на фиг. 2— функциональная схема блока счета количества импульсов синхронизации, на фиг. 3— функциональная схема второго счетчика; на фиг. 5 — функциональная схема третьего коммутатора; на фиг. 6 —. функциональная схема блока ввода-вывода; на фиг. 7 — схема алгоритма функционирования блока микропрогрммного управления устройства; на фиг. 8 — временная диаграмма сигналов на информационных выходах блока микропрограммного управления устройства.

Устройство для контроля выполнения программ (фиг.1) содержит блок 1 счета количества импульсов синхронизации, первый 2 и второй 3 блоки регистров, схему 4 сравнения, блок 5 микропрограммного управления, первый 6, второй 7 и третий 8 счетчики, первый 9, второй 10 и третий 11 коммутаторы, регистр 12 команд, блок 13 оперативной памяти, блок 14 ввода-вывода

35 вом на каждом шаге выполнения программы. К моменту перехода на начало нового линейного участка содержимое блока счетчиковв. обнуляется, выполняется проверка

"поведения" ЭВМ в соответствии с командой проверки устройства и, если это соответствие выполняется, производится формирование новой копии текущего адреса путем извлечения адреса перехода из команды устройства и выборка команды нового линейного участка. Устройство для контроля выполнения программ содержит блок

1 счета количества импульсов синхронизации,-блоки регистров 2, 3, схему сравнения

4, блок 5 микропрограммного управления, счетчики 6, 7 и 11, регистр 12 команд, блок

13 оперативной памяти, блок 14 ввода-вывода и блок 15 постоянной памяти. 2 з.п.ф-лы, 8 ил„1 табл. и блок 15 постоянной памяти, информационный 16 вход устройства, вход-выход адреса данных 17 блока ввода-вывода, информационный 18 вход блока счета количества импульсов синхронизации, выход 19 третьего коммутатора, информационный вход-выход 20 блока ввода-вывода, тактовый вход 21 блока микропрограммного управления, тактовый вход 22 устройства, группу выходов 23 блока микропрограммного управления, вход записи 24 блока счета количества импульсов синхронизации, вход разрешения 25 третьего коммутатора, вход

26 обращения блока ввода-вывода, входы начальной установки 27 устройства и 28 блока микропрограммного управления, синхровход 29 устройства, выход 30 готовности и управляющий вход-выход 31 блока вводавывода, первый 32 вход условий блока микропрограммного управления, управляющий вход-выход 33 устройства, вход 34 подтверждения прерывания устройства, второй 35 вход условий блока микропрограммного управления, вход 36 кода операций блока микропрограммного управления, первый 37 и второй 38 информационные входы третьего коммутатора, информационный выход 39 блока счета количества импульсов синхронизации, третий 40, четвертый 41 и пятый 42 входы условий блока микропрограммного управления, выход 43 переполнения блока счета количества импульсов синхронизации, вход 44 начальной установки и счетный

45 вход блока счета количества импульсов синхронизации, выход 46 блока микропрог1709319 раммного управления, выход 47 ошибки устройства.

Блок 1 (фиг,1) счета количества импульсов синхронизации содержит первый 48 и второй 49 счетчики. Блок 5 (фиг.3) микро- 5 программного управления содержит программируемую логическую матрицу 50, регистр 51, первый 52, второй 53 и третий

54 дешифраторы. Второй 7 (фиг.4) счетчик является восьмиразрядным двоичным счет- 10 чиком 55.

Третий 11 (фиг,5) коммутатор содержит первую 56 и вторую 57 группы формирователей с тремя состояниями.

Блок ввода-вывода (фиг.б) содержит де- 15 шифратор 58 адреса, первый 59 и второй 60 регистры, первый 61 и второй 62 коммутаторы, первый 63, второй 64 и третий 65 триггеры, первый 66, второй 67, третий 68 и четвертый 69 элементы И, первый 70 и вто- 20 рой 71 элементы ИЛИ.

Любую программу, записанную в машинных кодах в памяти ЭВМ, можно представить в виде набора линейных участков, связанных между собой командами переда- 25 чи управления. Команда передачи управле-, ния является завершающей командой линейного участка, если он не последний линейный участок программы — в этом случае линейный участок может завершаться, например, командой "Останов". Начальной командой линейного участка может быть либо команда, являющаяся внешним входом программы, либо команда, на которую производится передача управления одной из команд перехода. Если некоторый линейный участок программы содержит несколько начальных команд (точек вхождения), то он может рассматриваться как цепь из нескольких линейных участков, каждый иэ ко- 40 торых имеет одну начальную команду. В этом случае конечной командой любого звена цепи, кроме последнего, является команда, предшествующая начальной команде следующего звена. 45

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

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

Работу устройства для контроля выполнения программ можно сформулировать следующим образом.

1. После (или в процессе) трансляции исходной программы на язык машинных команд рабочую программу анализирует с целью выявления всех линейных участков. .писак адресов начальных команд линейных участков запоминают.

2. Для каждого линейного участка

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

"своей" команде в зависимости от конструктивных особенностей конкретной ЭВМ. Эта информация запоминается и в дальнейшем используется для контроля прохождения линейного участка при выходе на его начало, 3. Каждому линейному участку программы ставится в соответствие одна из команд устройства контроля в зависимости от типа команды, завершающей данный линейный участок: а) линейному участку программы ЭВМ, завершающемуся командой безусловного перехода, ставится в соответствие команда проверки безусловного перехода (ПБУ) устройства; б) линейному участку программы ЭВМ, завершающемуся командой перехода по условию, ставится в соответствие команда проверки условного перехода (ПУС) устройства; в) линейному участку программы ЭВМ, завершающемуся командой безусловного вызова подпрограмм, ставится в соответствие команда проверки вызова подпрограммы (ВПР) устройства; г) линейному участку программы ЭВМ, завершающемуся командой безусловного возврата из подпрограммы, ставится в соответствие команда проверки возврата из подпрограммы (ВПР) устройства; д) линейному участку программы ЭВМ завершающемуся командой безусловного возврата из подпрограммы прерывания, ставится в соответствие команда проверки возврата из подпрограммы прерывания (ВПП) устройства;

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

4. Для линейных участков программы

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

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

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

6, Если при прохождении линейного участка в результате сбоя или неисправности вместо очередной команды выполняется несанкционированный переход, в микропроцессорной системе он будет обна5

55 ружен в четвертом машинном цикле после его возникновения, что позволяет организовать своевременную реакцию устройства управления в случае аварийной ситуации.

Память программ контролируемых ЭВМ и программируемых контроллеров выполняется в виде постоянного или полупостоянного запоминающего устройства. Вводимая в память рабочая программа представлена в виде последовательности машинных кодов, Ее ввод в память ЭВМ должен сопровождаться вводом в блок памяти процессора заранее подготовленной программы контроля выполнения рабочей программы. Программа контроля также должна быть представлена в виде последовательности машинных кодов. Форматы команд проверки, конструктивные особенности элементов схемы устройства и алгоритм работы блока управления определяются конструктивными особенностями, интерфейсом и форматом команд конкретной микроЭВМ.

Рассмотрим построение системы контроля выполнения программ для программируемого контроллера, построенного на базе микроЭВМ МС1201.

Форматы команд проверки линейных участков представлены в таблице.

По своему формату команды устройства разделяются на две группы. Команды устройства первой группы, включающей команды проверки ПБУ, ПУС и ВПР, состоят из трех слов. Первое слово команд этой группы состоит из двух частей: кода операции и количества импульсов синхронизации машинных циклов соответствующего линейного участка. Второе и третье слова команд этой группы являются соответственно адресом перехода соответствующего линейного участка программы основного процессора и адресом перехода устройства при завершении проверки этого линейного участка, т.е. адресом команды проверки программы контроля, на которую передается управление при переходе к новому линейному участку рабочей программы.

Команды устройства второй группы, включающей команды проверки ВРП, ВПП, ПРД и РДИ, состоят из одного слова, содержащего две части: код операции и количество импульсов синхронизации машинных циклов соответствующего линейного участка.

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

ЭВМ приводится в исходное состояние путем подачи соответствующего сигнала на линию "Общий сброс", входящую в состав интерфейсных шин. Сигнал на этой линии формируется автоматически после включе1709319

10 ния питания или, например, появляется в результате нажатия соответствующей кнопки на пульте управления.

Сигнал "Общий сброс" поступает на вход 27 (фиг.1) начальной установки устройства и приводит его в исходное состояние следующим образом. С входа 27 начальной установки устройства сигнал "Общий сброс" поступает на вход начальной установки второго 7 счетчика и переводит все его разряды в состояние единицы, и на вход

28 начальной установки блока 5 управления и на вход 28 начальной установки блока 5 управления и переводит его в исходное состояние, причем сигнал с второго выхода 46 блока 5 управления поступает на выход 47 ошибки устройства и воспринимается на входе запроса прерывания ЭВМ как сигнал отсутствия прерывания.

Перевод второго 7 счетчика (фиг.4) в состояние "Все единицы" производится сигналом "Общий сброс", поступающим с входа начальной установки счетчика 7 на вход параллельной записи счетчика 55 и производящим запись в счетчик единичного состояния информационных входов параллельной записи его разряда. При этом сигналы на выходах группы выходов счетчика 7 принимают единичные значения.

Перевод блока 5 (фиг.3) управления в исходное состояние производится сигналом "Общий сброс", поступающим с входа

28 начальной установки блока 5 управления на вход начальной установки регистра 51 и переводящим этот регистр в состояние "Bce нули". Сигналы на выходах группы выходов разрядов регистра 51 принимают нулевые значения.

После окончания сигнала "Общий сброс" ЭВМ автоматически или по инициативе оператора переходит к выполнению рабочей программы, записанной в ее память. На тактовый вход 22 устройства поступает первый импульс тактовой частоты тактового генератора основного процессора либо внешнего независимого генератора. С входа 22 этот сигнал поступает на тактовый вход 21 блока 5 управления, с первого информационного выхода 23 которого на входы соответствующих элементов устройства поступают сигналы управления, предусмотренные первым шагом микропрограммы функционирования. Работа блока 5 управления представлена следующим (фиг.7) алгоритмом.

Шаг 1, По сигналу "Общий сброс" описанным путем аппаратно устанавливаются в исходное состояние второй счетчик 7 и блок 5 управления (см.фиг.7, оператор "Начальная установка" ), 5

Шаг 2. Устройство находится в состоянии ожидания обмена с основным процессором. Переход устройства из режима ожидания в режим контроля выполнения программы осуществляется путем ввода в устройство адреса перехода, т.е. адреса команды проверки, соответствующей начальной команде (первого) очередного контролируемого линейного участка рабочей программы. Для этого в рабочей программе микроЭВМ предусматривается команда загрузки стартового адреса в устройство. При выполнении микроЭВМ такой команды с выхода адреса-данных микроЭВМ на информационный вход 16 устройства и далее (фиг.1) на вход адреса данных 17 блока 14 ввода-вывода поступает, например, адрес при обращении к процессору как к внешнему устройству (адрес при обращении к процессору как к ячейке памяти). Этот адрес поступает с адресного входа 17 (фиг.6) блока 14 ввода-вывода на группу управляющих входов дешифратора 58, с выхода которого на первый вход элемента И 66 поступает сигнал обращения к блоку 14 ввода-вывода, отпирающий этот элемент для прохождения сигнала "Выбор внешнего устройства" микроЭВМ по цепи 33 — 31 на вход данных первого 63 триггера. Эта информация запоминается в триггере в момент прохождения сигнала си нхрон изации активного устройства микроЭВМ на вход 33 управления устройства (фиг.1) и далее по цепи 33 — 31 на синхровход этого триггера.

Сигнал обращения с выхода триггера 63 поступает на первые входы элементов И 67 и

68, отпирая их для прохождения сигналов

"Ввод данных" (" Вывод данных") микроЭВМ по цепи 33 — 31 — 67 (68) — 70 — 31 — 33 на вход сигнала синхронизации пассивного устройства микроЭВМ. Одновременно на вход-выход 16 адреса данных устройства поступает информация о стартовом адресе.

Со входа 16 (фиг,1) эта информация поступает по цепи 16 — 17 и далее 17 — 59 (фиг.6) на информационный вход первого 59 регистра блока 14 ввода-вывода. По сигналу "Вывод данных", поступающему по цепи 33-31 — 68—

71 — 59 на вход записи регистра, стартовый адрес запоминается в регистре 59 и устанавливается на информационных входах второго 62 коммутатора. Одновременно сигнал "Вывод данных" поступает на вход установки триггера 65 и переводит его в единичное состояние. Сигнал готовности информации для ввода в устройство с выхода триггера 65 поступает на выход 30 готовности блока 14 ввода-вывода и далее (фиг.1) по цепи 30 — 32 на первый 32 адресный вход блока 5 управления в качестве сигнала

1709319

20

40

"Ввод". При этом выполняется переход к шагу 5 алгоритма, в противном случае — к шагу 3 алгоритма(фиг.7, оператор 2 "Ввод" ).

Шаг 3. Вывод информации о состоянии устройства выполняется под управлением блока 5 управления по инициативе микроЭВМ. Информация о состоянии устройства используется для организации процедур анализа и локализации ошибки и для восстановления хода выполнения рабочей программы микроЭВМ путем передачи управления начальной команде некоторого линейного участка программы. Для этого в рабочей программе микроЭВМ предусматривается команда (или процедура из нескольких команд) загрузки копии адреса, собственного адреса устройства (и информации о состоянии других элементов устройства) в микроЭВМ. При выполнении микроЭВМ команды (или процедуры) ввода информации из устройства описанным в шаге 2 путем производится обращение к устройству и сигнал "Ввод данных" микроЭВМ, поступающий по цепи 33 — 31 — 67 — 64 на вход установки триггера 64, переводит его в единичное состояние. Сигнал готовности блока

14 ввода-вывода для вывода в микроЭВМ с выхода триггера 64 поступает на выход готовности 30 блока 14 ввода-вывода и далее (фиг,1) по цепи 30-32 на первый 32 адрес- ный вход блока 5 управления в качестве сигнала "Вывод". При этом выполняется переход к шагу 4 алгоритма, в противном случае — к шагу 2 алгоритма (фиг.7, оператор 3

"В ы вод").

Шаг 4. При выполнении микроЭВМ команды (или процедуры) ввода информации из устройства описанным в шаге 2 путем производится обращение к устройству и по сигналу "Ввод данных" .микроЭВМ, поступающему по цепи 33 — 31-67 — 61 на вход разрешения коммутатора 61, запись подготовленной в регистре 60 копии адреса, при прохождении которого обнаружена ошибка, в микроЭВМ, Появление сигнала

"Вывод" на адресном входе 32 блока 5 управления свидетельствует о том, что микроЭВМ выполнила ввод копии адреса, при прохождении которого произошла ошибка, и блок 14 ввода-вывода готов к загрузке информации о состоянии программного счетчика устройства. Вывод этой информации производится следующим образом. С выхода 23 блока 5 управления на вход разрешения коммутатора 10 поступает сигнал разрешения и информация о состоянии выходов программного счетчика 8 устройства поступает через коммутатор на вход 20 данных блока 14 ввода-вывода и далее (фиг,6) на информационный вход регистра 60, Одновременно с выхода 23 блока 5 управления на вход 26 обращения блока 14 ввода-вывода и далее на вход записи регистра 60 поступает; сигнал "Обращения для вывода", и состояние программного счетчика 8 устройства запоминается в этом регистре. Одновременно сигнал "Обращения для вывода" поступает на синхровход триггера 64, триггер переводится в нулевое состояние и сигнал "Вывод" на входе 32 блока 5 управления снимается и выполняется, переход к шагу 2 алгоритма (фиг.7, оператор 4 "Вывод информации о состоянии устройства").

Шаг 5. С информационного выхода 23 (фиг,1) блока 5 управления на вход 26 обращения блока 14 ввода-вывода и далее (фиг.6) на вход разрешения коммутатора 62 поступает сигнал "Обращения для ввода", и информация о стартовом адресе устройства с информационного выхода регистра 59 по цепи 59 — 62 — 20 (фиг.6), 20 — 3 (фиг.1) поступает на информационный вход параллельной записи регистра 3. С информационного выхода 23 блока 5 управления по цепи 23 — 3 на вход параллельной записи регистра 3 поступает сигнал записи, и информация о стартовом адресе устройства записывается в регистр 3. Одновременно сигнал "Обращения для ввода" поступает на синхровход триггера 65 и переводит его s нулевое состояние и сигнал "Ввод" на адресном входе 32 блока 5 управления снимается. Сигнал с информационного выхода 23 блока 5 управления, поступающий на вход параллельной записи счетчика 8, производит запись сгартового адреса устройства в этот счетчик. На этом операция ввода стартового адреса устройства заканчивается и выполняется переход к шагу 6 алгоритма (фиг.7, оператор 5

"Ввод стартового адреса").

Шаг 6. После ввода в программный счетчик стартового адреса устройство переходит в состояние ожидания очередного импульса синхронизации активного устройства. Этот импульс поступает от микроЭВМ по цепи 29 — 40 на адресный вход 40 блока 5 управления при выполнении основным процессором выборки первой команды контролируемого линейного участка и выполняется

1 переход к шагу 7 алгоритма, в противном случае продолжается опрос состояния адресного входа 40 блока 5 управления с частотой следования тактовых импульсов, поступающих по цепи 22 — 21 на тактовый вход блока 5 управления, т.е. переход к шагу 6 алгоритма (фиг. 7, оператор 6 "Синхроимпульс").

Шаг 7, Одновременно с появлением импульса синхронизации активного устройства микроЭВМ устанавливает на

1709319

10

20

30

40

55 входе-выходе 16 адреса данных устройства адрес первой команды контролируемого линейного участка. Этот адрес поступает по цепи 16-17 на вход-выход 17 адреса данных блока 14 ввода-вывода и далее на группу управляющих входов дешифратора 58 и сигнал на его выходе принимает нулевое значение. Этот сигнал запирает элемент И 66 для прохождения сигнала выбора внешнего устройства по цепи 33 — 31 — 66 — 63 на вход данных триггера 63, и по сигналу синхронизации активного устройства этот триггер переходит в нулевое состояние, Единичный сигнал с инверсного выхода триггера 63 поступает по цепи 63 — 69 — 71 — 59 на вход параллельной записи регистра 59 и адрес первой команды контролируемого линейного участка, поступивший с входа 17 на информационные входы этого регистра, запоминается в нем. С информационного выхода 23 блока

5 управления по цепи 23-26 и далее на вход разрешения коммутатора 62 поступает сигнал разрешения и информация об адресе первой команды контролируемого линейного участка поступает по цепи 59-62-20 (фиг.6) и далее (фиг.1) по цепи 20 — 6 на вход параллельной записи регистра 6. С информационного выхода 23 блока 5 управления по цепи 23 — 6 на вход параллельной записи регистра 6 поступает сигнал записи, и информация об адресе первой команды контролируемого линейного участка запоминается в этом регистре. Выполняется переход к шагу 8 алгоритма (фиг,7, оператор 7

"Ввод копии адреса"), Шаг 8. По стартовому адресу, определяемому выходными сигналами счетчика 8, из блока 15 постоянной памяти выбирается первое слово очередной команды устройства и загружается соответственно первая часть, определяющая код команды проверки в регистр 12 команд и вторая часть, определяющая количество импульсов синхронизации машинных циклов выборки команд очередного линейного участка, — в блок 1 счета количества импульсов синхронизации. Выборка команды обеспечивается путем подачи сигналов с первого 23 информационного выхода блока 5 управления на вход обращения блока 15 постоянной памяти, вход 24 записи блока 1 счета количества импульсов синхронизации и вход записи регистра 12 команд. Одновременно с первого

23 информационного выхода блока 5 управления на вход 45 начальной установки блока

1 счета количества импульсов синхронизации и далее (фиг.2) на вход начальной установки счетчика 49 дополнительных синхроимпульсов поступает сигнал начальной установки и переводит его в нулевое состояние. Выполняется переход к шагу 9 алгоритма (фиг.7, оператор 8 "Выборка команды. Сброс счетчика дополнительных синхроимпульсов").

2.

Шаг 9. После начальной установки блока 1 счета количества импульсов синхронизации сигнал об отсутствии переполнения счетчика 49 дополнительных синхроимпульсов этого блока с выхода 43 признаков переполнения поступает на адресный вход 42 блока 5 управления. Счетчик 49 дополни-, тельных синхроимпульсов производит подсчет количества импульсов синхронизации машинных циклов каждой команды. микроЭВМ, втечение которых производится обращение к оперативной памяти либо внешним устройством микроЭВМ. При превышении максимального допустимого количества обращений к внешним устройствам в ходе выполнения команды микроЭВМ с выхода признаков переполнения блока 1 счета количества импульсов синхронизации поступает "Признак переполнения счетчика дополнительных синхроимпульсов", свидетельствующий о неправильном прохождении текущей команды микроЭВМ, и выполняется переход к шагу 10 алгоритма, в противном случае — к шагу 12 (фиг.7, оператор 9 "Признак переполнения,").

Шаг 10. На втором 46 информационном выходе блока 5 управления устанавливается сигнал "Флаг ошибки". Этот сигнал постуг з- ет на выход 47 ошибки устройства и воспринимается на входе запроса прерывания микроЭВМ как сигнал запроса прерывания на обслуживание устройства. Одновременно выполняется загрузка информации о копии адреса, при прохождении которого обнаружена ошибка, из регистра 6 копии адреса в блок 14 ввода вывода. Загрузка копии адреса обеспечивается путем подачи сигналов с первого 23 информационного выхода блока 5 управления на вход разрешения коммутатора 9 и вход 26 обращения блока 14 ввода-вывода. Информация о копии адреса поступает по цепи 6 — 9 — 20 на вход данных блока 14 ввода-вывода и далее (фиг.6) по цепи 20 — 60 на информационный вход регистра 60, где запоминается по сигналу обращения, поступающему с входа 26 обращения на вход параллельной записи этого регистра. Выполняется переход к шагу 11 алгоритма (фиг,7, оператор 10 "Установка флага ошибки". Загрузка информации об ошибке" ).

Шаг 11. В ответ на запрос прерывания, поступивший в микроЭВМ с выхода 47 ошибки устройства, с выхода подтверждения прерывания микроЭВМ на вход 34 подтверждения прерывания устройства и далее

1709319

16 (фиг,1) на адресный вход 35 блока 5 управления поступает сигнал подтверждения прерывания на обслуживание устройства. В ответ на этот сигнал выполняется переход к шагу 2 алгоритма, т.е. устройство переходит в режим ожидания обмена с микроЭВМ для вывода информации об ошибке и ввода нового стартового адреса, в противном случае выполняется переход к шагу 10 алгоритма, т.е, устройство подтверждает установку флага ошибки до выхода микроЭВМ на его обслуживание (фиг.7, оператор 11 "Прерывание ).

Шаг 12. Если с соответствующего выхода микроЭВМ на вход 34 подтверждения прерывания устройства и далее (фиг.1) на адресный вход 35 блока 5управления поступает сигнал "Подтверждение прерывания" на обслуживание внешних устройств и микроЭВМ переходит к выполнению подпрограмм прерывания, выполняется переход к шагу 14 алгоритма, в противном случае — к шагу 13 (фиг,7, оператор 12 "Прерыванием), Шаг 13, После ввода копии адреса начальной команды первого контролируемого линейного участка и выборки команды собственной программы контроля устройство переходит в режим контроля прохождения команд микроЭВМ. B ответ на каждый синхроимпульс устройство проверяет правильность следования адресов программы микроЭВМ на входе-выходе 16 адреса данных. При появлении очередного синхроимпульса выполняется переход к шагу 15 алгоритма, в противном случае — к шагу 12 (фиг.7, оператор "Синхроимпульс9).

Шаг 14. Загрузка состояния устройства в стек предусматривает выполнение следующих операций.

А. Запись в стек команды (состояние регистра 12 команд) и состояния счетчика 48 блока 1 счета количества импульсов синхронизации. При этом с информационного выхода 23 (фиг.1) блока 5 управления на вход

25 разрешения коммутатора 11 и далее (фиг.5) на входы разрешения, первой 56 и второй 57 групп повторителей с тремя состояниями поступает сигнал управления и повторители отпираются для прохождения информации о состоянии регистра 12 команд и блока 1 счета количества синхроимпульсов соответственно по цепям 12-37 (фиг.1), 37 — 56 — 19 (фиг.5), 19 — 13 (фиг.1) и 48—

39 (фиг.2), 39 — 38 (фиг.1), 38 — 57-19 (фиг.5), 19 — 13 (фиг.1) на информационный вход-выход блока 13 оперативной памяти. С информационного выхода 23 блока 5 управления на вход обращения блока 13 оперативной памяти поступает сигнал обращения для записи, и состояние входов-выходов данных

55 записывается в ячейку блока 13 оперативной памяти. Адрес ячейки памяти определяется состоянием счетчика 7, информация о котором поступает с информационного выхода этого счетчика на адресный вход блока

13 оперативной памяти, Б. Декремент счетчика 7 (указателя стека). С информационного выхода 23 блока 5 управления поступает сигнал на счетный вход в режиме вычитания счетчика 7 и производит декремент содержимого этого счетчика.

B. Запись в стек содержимого программного счетчика 8. С информационного выхода 23 блока 5 управления на вход разрешения коммутатора 10 поступает сигнал разрешения и информация о состоянии программного счетчика 8 поступает по цепи

8 — 10-13 на вход-выходданных блока 13 оперативной памяти, С информационного выхода 23 блока 5 управления на вход обращения блока 13 оперативной памяти поступает сигнал обращения для записи, и состояние входов-выходов записывается в ячейку памяти блока 13 оперативной памяти.

Г. Декремент счетчика 7 (указателя стека}. Выполняется указанным по п,Б путем.

Д. Запись в стек содержимого счетчика

6 копии адреса. С информационного выхода

23 блока 5 управления на вход разрешения коммутатора 9 поступает сигнал разрешения и информация о состоянии счетчика 6 копии адреса поступает по цепи 6 — 9 — 13 на вход-выход данных блока 13 оперативной памяти. С информационного выхода 23 блока 5 управления на вход обращения блока

13 оперативной памяти поступает сигнал обращения для записи, и состояние входоввыходов записывается в ячейку памяти блока 13 оперативной памяти.

Е. Декремент счетчика 7 (указателя стека), Выполняется указанным по п.Б путем.

Таким образом, при входе в подпрограмму устройство сохраняет в стеке не только собственный адрес возврата из подпрограммы, код команды и количество импульсов синхронизации незавершенного линейного участка, но и копию адреса возврата основного процессора, что существенно повышает достоверность контроля выполнения программы микроЭВМ. Выполняется переход к шагу 2 алгоритма (фиг.7, оператор 14 "Загрузка состояния устройства в стек").

Шаг 15. Завершение линейного участка программы микроЭВМ сопровождается обнулением счетчика 48 блока 1 счета количества импульсов синхронизации, содержимое которого уменьшается по мере обработ21

1709319

22 программного счетчика микроЭВМ. При выполнении микроЭВМ команд переходов формирование адреса копии устройства производится путем записи в счетчик 6 копии адреса содержимого второго слова ко- 5 манды устройства после подтверждения правильности их выполнения микроЭВМ.

Запись адреса перехода в счетчик 6 выполняется под управлением блока 5 управления, С информационного выхода 23 блока 5 10 управления на вход обращения блока 15 постоянной памяти поступает сигнал обращения и информация об адресе перехода с выхода блока 15 постоянной памяти поступает на информационный вход параллель- 15 ной записи счетчика 6 копии адреса.

Одновременно с информационного выхода

23 блока 5 управления на вход записи счетчика 6 поступает сигнал записи и адрес перехода запоминается в этом счетчике. С 20 информационного выхода 23 блока 5 управления на счетный вход счетчика 8 поступает сигнал счета и производит инкремент его содержимого. С информационного выхода счетчика 8 на адресный вход блока 15 посто- 25 янной памяти поступает адрес третьего слова команды проверки перехода (адрес информации о собственном адресе перехода устройства). Одновременно с информационного выхода 23 блока 5 управления на 30 вход обращения блока 15 постоянной памяти поступает сигнал обращения и информация о собственном адресе перехода устройства поступает с выхода блока 15 постоянной памяти на информационный вход 35 параллельной записи регистра 3. С информационного выхода 23 блока 5 управления на вход параллельной записи регистра 3 поступает сигнал записи, и информация о собственном адресе перехода записывает- 40 ся в регистр 3. С информационного выхода

23 блока 5 управления на вход параллельной записи счетчика 8 поступает сигнал записи, и информация о собственном адресе перехода запоминается в счетчике 8. С вы- 45 хода счетчика 8. адрес команды проверки очередного линейного участка поступает на адресный вход блока 15 постоянной памяти, и выполняется переход к шагу 8 алгоритма (фиг.7, оператор 26 "Запуска адреса перехо- 50 да").

Шаг 27. Завершение линейного участка программы микроЭВМ командой вызова подпрограммы сопровождается выполнением команды ВПР устройства. Выполняет- 55 ся операция сравнения текущего адреса микроЭВМ и адреса-копии устройства, описанная в шаге 16 алгоритма. Если с выхода блока 4 сравнения на вход 41 блока 5 управления поступает сигнал "Последовательный ход" (сигнал равенства текущего адреса микроЭВМ и адреса-копии), выполняется переход к шагу 17 алгоритма. в противном случае выполняется переход к шагу 28 алгоритма (фиг.7, оператор 27 "Последовательный ход г).

Шаг 28. Проверка правильности выполнения микроЭВМ передачи управления при выполнении команд вызова подпрограмм заключается в сравнении текущего адреса микроЭВМ и ожидаемого адреса перехода, содержащегося во втором слове команды устройства, и выполняетс