Устройство для контроля выполнения программ
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и может быть.не1о пользовано для контроля выполнения программ в цифровых вычислительных машинах и программируемых контроллерах , построенных по принципу Общей магистрали. Цель изобретения - повышение достоверности контроля за ходом выполнения программ. Процессор содержит счетчики, триггер, блоки регистров, схему сравнения, элементы ИЛИ,блок управления, блок постоянной памяти, коммутаторы, регистр команд , блок оперативной памяти, блок ввода-вьюода и блок анализа ветвлений . 2 з.п. ф-лы, 21 ил., 1 табл. с (О
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК (д) 4 С 06 F 11/28
f
\ 1
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ
ГОСУДАРСТВЕННЫЙ КОМИТЕТ
ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ
ПРИ ГКНТ СССР (21) 4219152/24-24 (22) 03,04.87 (46) 30. 10. 88. Вюл. Ф 40 (71) Харьковский политехнический институт им. В.И.. Ленина (72) В.В. Антосик, Л.В. Дербунович, А.Н. Мызь, В.В. Нешвеев, Л.Н, Иванов, В,И. Лобанов, С.А. Морозов и А.Д. Черкай (53) 681.3(088.8) (56) Авторское свидетельство СССР
11 1019451, кл. С 06 F 11/00, 1983, Авторское свидетельство СССР
11 1315991, кл. G 06 F !1/28, 1985. (54) УСТРОЙСТВО gJIH KOHTPOJIH BbIIIOJIНЕНИЯ ПРОГРАММ,.SU„„1434439 д 1 (57) Изобретение относится к вычислительной технике и может быть .использовано для контроля выполнения программ в цифровых вычислительных машинах и программируемых контроллерах, построенных по принципу "Общей магистрали". Цель изобретения — повышение достоверности контроля за ходом выполнения программ, Процессор содержит счетчики, триггер, блоки регистров, схему сравнения, элементы
ИЛИ,блок управления, блок постоянной памяти, коммутаторы, регистр команд, блок оперативной памяти, блок ввода-вывода и блок анализа ветвлений. 2 з.п. ф-лы, 21 ил., 1 табл.
1434439
Изобретение относится к цифровой вычислительной технике и может быть использовано для контроля выполнения программ в цифровых вычислительных машинах и программируемых контроллерах, построенных по принципу "Общей магистрали".
Целью изобретения является повышение достоверности контроля за ходом выполнения программ. ! На фиг. 1 представлена функциональная схема устройства процессора для контроля выполнения программ; на фиг. 2-10 — примеры реализации функциональных узлов устройства для контроля выполнения программ микропроцессорной системы на базе микропроцессора КР58РИКЯО; на фиг. 2— функциональная схема первого блока регистров; на фиг. 3 — функциональная схема второго блока регистров; на фиг. 4 — функциональная схема блока управления; на фиг. 5 — функциональная схема первого счетчика; на фиг. 6 — функциональная схема второго счетчика; на фиг. 7 — функциональная схема первого коммутатора; на фиг.8 — функциональная схема второго коммутатора; на фиг. 9 — функциональная схема третьего коммутатора; на фиг. 10 — функциональная схе-ма блока ввода-вывода; на фиг. 11 функциональная схема блока анализа ветвлений; на фиг. 12 - граф-схема
35 алгоритма функционирования блока управления; на фиг. 13 — и временная . диаграмма выполнения процессором про-. верки правильности прямого хода программы микроЭВМ; на фиг. 14 — времен- 4 ная диаграмма выполнения процессором проверки правильности перехода микроЭВМ; на фиг. 15 — временная диаграм-ма выполнения процессором записи адреса перехода микроЭВМ; на фиг. 16 временная диаграмма, поясняющая работу процессора в режиме вывода в микроЭВМ информации об ошибке; нафиг.1720 — граф-схема алгоритма . работы блока управления; на фиг. 21 — вре50 менная диаграмма сигналов на информационных выходах блока управления .
Устройство для контроля выполнения программ (фиг.1) содержит счетчик 1 количества импульсов синхронизации, триггер 2, первый 3 и второй 4 блоки регистров, схема 5 сравнения, первый 6 и второй 7 элементы ИЛИ, блок
8 упраВления, блок 9 постоянной памя-:. ти, первый 10, второй l I и третий 12 счетчики, первый 13, второй 14 и третий 15 коммутаторы, регистр 16 команд, блок 17 оперативной памяти, блок 18 ввода-вывода и блок 19 анализа ветвлений. Информационный выход
20 первого блока 3 регистров соединен с первым информационным входом схемы 5 сравнения, информационный вход 21 первого блока 3 регистров является информационным входом 22 процес" сора, инверсный выход триггера 2 является выходом 23 ошибки процессора, выход блока 9 постоянной памяти соединен с информационным входом 24 второго блока 4 регистров, входом 25 счетчика 1 и вторым информационным входом схемы 5 сравнения. Группа выходов 26 счетчика 1 соединена соот".< ветственно с группой входов первого элемента ИЛИ 6, выход которого соединен с первым адресным входом 27 блока 8 управления, тактовый вход 28 блока 8 управления является тактовым входом 29 процессора, первый управ» ляющий выход 30 блока 8 управления соединен с входом 31 записи первого
10 счетчика, входом 32 блокировки первого коммутатора 13, входом 33 повторного запуска блока 19 анализа ветвлений, счетным входом 34 второго счетчика 11, входом 35 записи блока
17 оперативной памяти, входом 36 обращения блока 18 ввода-вывода, вхо" дом 37 записи второго блока 4 регистров, счетным входом 38 и входом 39 записи третьего счетчика 12, входами 40 управления второго !4 и 41 третьего 15 коммутаторов, а также с входами 42 записи счетчика 1 и регистра 16 команд, и входом обращения блока 9 постоянной памяти. Первый вход второго элемента ИЛИ 7 соединен с входами 43-46 начальной установки соответственно первого 10, второго
11, третьего 12 счетчиков, блока 8 управления и является входом 47 начальной установки устройства, Выход второго элемента ИЛИ 7 подключен к входу установки в ноль триггера 2, вход "установки в единицу которого соединен с вторым информационным выходом 48 блока 8 управления, третий информационный выход 49 которого соединен с вторым входом второго элемента ИЛИ 7 ° Вход 50 синхронизации блока 19 анализа ветвлений соединен с входом 51 записи первого 3 блока з 1434439
4 регистров и счетным входом 52 счетчи — ключен к информационному выходу 26 ка l и является синхровходом 53 уст- счетчика 1 . Счетчик 1 количества ройства. Тактовый 54, информационный импульсов синхронизации является пя55 входы и первый выход 56 блока 19 тиразрядным двоичным счетчиком, ин—
5 анализа ветвлений подключены соответ- формационные входы параллельной заственно к тактовому входу 28 бло- писи которого объединены и являютка 8 управления, выходу схемы 5 срав- ся информационным входом 25 счетчинения и второму адресному входу 57 ка 1, выходы разрядов счетчика явблока 8 управления. Выход блока 9 по- р ляются группой 26 выходов счетчика, стоянной памяти через магистраль вход 42 записи которого является вхосоединен с информационным выходами дом параллельной записи счетчика, а
58-60 соответственно первого 13, в счетный вход 52 счетчика l является второго 14, третьего 15 коммутаторов, счетным входом в режиме вычитания информационным входом регистра 1 6 15 "1 " счетчика l.. команд, информационным входом-выхо- Первый блок 3 регистров (фиг.2) дом 61 блока 17 оперативной памяти содержит восьмиразрядные регистры 89 и первым информационным входом-выхо-., и 90, информационные входы которых дом 62 блока 18 ввода-вывода. Вто- объединены и являются шестнадцатиразрой выход 63 блока 19 анализа ветвле- gp рядным информационным входом 21 перний подключен к входу 64 обращения вого блока 3 регистров, синхровходы первого блока 3 регистров, счетному регистров 89 и 90 соединены и являвходу 65 и входу бб обращения перво- ются входом 5) записи первого блого счетчика 10 и входу 67 управле- ка 3 регистров, одноименные выходы ния первого коммутатора 13. Информа- 2В регистров 89 и 90 соответственно соеционный вход 68 и выход 69 первого динены и являются восьмиразрядным счетчика 10 соединены соответственно информационным выходом 20 первого с информационным выходом 20 первого блока 3 регистров, а инверсный вход блока 3 регистров и с информационным обращения регистра 89 соединен с входом 70 первого коммутатора 13. gp прямым входом обращения регистра 90:
Информационный выход 71 второго счет- и является входом 64 обращения перчика 11 подключен к адресному входу вого блока 3 регистров.
72 блока 17 оперативной памяти. Выход Второй блок 4 регистров (фиг.3)
73 готовности и адресный вход 74 содержит восьмиразрядные регистры 91 блока 18 ввода-вывода соединены соот- и 92, информационные входы которых ветственно с третьим адресным входом соответственно соединены и .являются
75 блока 8 управления и с информа-, восьмиразрядным информационным вхоционным входом 21 первого блока 3 дом 24 второго блока 4 регистров, регистров, а второй информационный информационные выходы регистров 91 и вход-выход 76 и вход-выход 77 управ- 4О 92 объединены и являются шестнадцатиления блока 18 ввода-вывода являются разрядным информационным выходом 82 соответственно входом-выходом 78 дан- второго блока 4 регистров, входы паных и входом-выходом 79 управления раллельной записи регистров 91 и 92 устройства. Четвертый адресный вход объединены и являются входом 37 запи80 блока 8 управления является вхо- 4 си второго блока 4 регистров. дом 81 подтверждения прерывания уст- Блок 8 управления (фиг.4) содерройства. Информационный выход 82 вто- жит программируемую логическую матрирого блока 4 регистров соединен с цу 93, пятиразрядный регистр 94, информационным входом 83 третьего первый 95, второй 96 и третий 97 десчетчика 12, информационный выход 84 шифраторы, первый вход программируекоторого подключен к адресному вхо- мой логической матрицы 93 является ду блока 9.постоянной памяти и ин- -первым адресным входом 27 блока 8 формационному входу 85.второго комму- управления, второй, третий и четвертатора 14. Информационный выход ре- тый входы программируемой логической гистра 16 команд соединен с пятым матрицы 93 объединены и являются втоадресным входом 86 блока 8 управле- рым адресным входом 57 блока, пятый ния и с первым информационным входом и шестой входы программируемой логи87 третьего коммутатора 15 второй ческой матрицы 93 объединены и являинформационный вход 88 которого под- ются третьим адресным входом 75 бло5 143443 ка седьмой вход программируемой логической матрицы 93 является четвертым адресным входом 80 блока, восьмой, девятый и десятый входы программируемой логической матрицы 93 объе5 дннены и является пятым адресным входом 86 блока, одиннадцатый вход программируемой логической матрицы
93 соединен с входом начальной уста- !О новки регистра 94 и является входом
46 начальной установки блока, двенадцатый, тринадцатый, четырнадцатый, пятнадцатый и шестнадцатый входы программируемой логической матрицы подключены соответственно к группе информационных выходов регистра 94, первый, второй и третий выходы программируемой логической.матрицей 93 соединены соответственно с группой управляющих входов первого дешифратора 95, инверсный вход обращения которого является тактовым входом 28 блока и соединен с входом обращения программируемой логической матрицы 25
9), входом параллельной записи регистра 94 и прямым входом обращения второго дешифратора 96, группа управляющих входов которого подключена к четвертому и пятому выходам про- 30 граммируемой логической матрицы 93, шестой, седьмой и восьмой выходы которой соединены с группой управляющих входов третьего дешифратора 97, группы выходов первого 95, второго
96 и третьего 97 дешифраторов, девя. тый, десятый, одиннадцатый и двенаццатый выходы программируемой логи ческой матрицы 93 объединены и являются первым информационным выходом
30 блока, тринадцатый и четырнадцатый выходы программируемой логической матрицы 93 являются соответственно вторым 48 и третьим 49 информацион- . ными выходами программируемой логичес- «
J кой матрицы 93, пятнадцатый, шест= надцатый, семнадцатый, восемнадца" тый и девятнадцатый выходы которой соединены с группой информационных входов регистра 94.
Первый счетчик 10 (фиг. 5 ) содержит восьмиразрядные двоичные счетчики 98 и 99, первый 100 и второй .101 элементы И и инвертор 102, информационный вход параллельной записи счетчика 98 соединен с информацион" ным входом параллельной записи вто" рого счетчика 99 и является восьмиразрядным информационным входом 68
9 6 первого счетчика 10, информационные выходы счетчиков 98 и 99 образуют шестнадцатиразрядный выход 69 первого счетчика 10, вход начальной установки счетчиков 98 и 99 соединен с входом 43 начальной установки первого счетчика 10, вход параллельной записи счетчика 98 подключен к выходу элемента И 100, первый вход которого соединен с первым входом второго элемента И 101 и является входом 31 записи первого .счетчика !О, второй вход первого элемента И 100 является входом 36 обращения первого счетчика 10 и подключен через инвертор
102 к второму входу второго элемента И 101, выход которого соединен с входом параллельной записи второго счетчика 99, счетный вход счетчика 98 подключен к выходу прямого переноса счетчика 99, счетный вход которого является счетным входом 65 первого счетчика 10.
Второй счетчик 11 (фиг.6) является восьмиразрядным двоичным счетчи" ком 103; информационные входы параллельной записи которого соединены с шиной единичного потенциала, информационные выходы счетчика 103 являются информационным выходом 71 первого счетчика 11, вход параллельной запи= си ачетчика 103 является входом 44 начальной установки второго счетчика
ll, а счетные входы суммирования "+1" и вычитания "-!" счетчика.103 и являются счетным входом 34 второго счетчика 11.
Третий счетчик 12 является шест-., надцатиразрядным,двоичным счетчиком, имеющим входы 45 начальной установки, 39 параллельной записи, счетный вход 38, шестнадцатиразрядный информационный вход 83 параллельной записи и шестнадцатиразрядный информационный выход 84.
Первый коммутатор 13 (фиг.7 ) содержит первую 104 и вторую 105 группы из восьми шинных формирователей с тремя состояниями, первый 106 и второй 107 элементы И и инвертор 108, информационные входы шинных формиро-. вателей первой 104 и второй 105 групп являются шестнадцатиразрядным информационным входом 70 первого коммутатора 13, выходы шинных формирователей первой 104 и второй 105 групп соответственно соединены и являются восьмиразрядным выходом 58 первого
7 14344 коммутатора 13, управляющие входы шинных формирователей первой группы
104 соединены с выходом первого элемента И 106, первый вход которого
5 соединен с первым входом второго элемента И 107 и является входом 32 блокировки первого коммутатора 13, второй вход первого элемента И 106 является входом 67 управления первого коммутатора 13 и соединен через инвертор 108 с вторым входом второго элемента И 107, выход которого подключен к входам управления шинных формирователей второй группы 105.
Второй коммутатор 14 (фиг.8) содержит первую 109 и вторую 110 группы из восьми шинных формирователей с тремя состояниями, выходы шинных формирователей первой !09 и второй Zp
110 групп соответственно соединены и являются восьмиразрядным информационным выходом 59 второго коммутатора
14, информационные входы шинных формирователей первой 109 и второй 1!0 25 групп объединены и являются шестнадцатиразрядным информационным входом
85 второго коммутатора 14, управляющие входы шинных формирователей первой 109 и второй 110 группы объеди- 30 иены и являются входом 40 управления второго коммутатора 14.
Третий коммутатор 15 (фиг.9) содержит первую группу 111 из трех и вторую группу 112 из пяти шинных формирователей с тремя состояниями, информационные выходы которых и являются восьмиразрядным информационным выходом 60 третьего коммутатора 15, управляющие входы шинных формировате- 40 лей первой 111 и второй 112 групп соединены и являются входом 41 управления третьего коммутатора 15, а информационные входы шинных формирователей первой 111 и второй 112 групп 45 соответственно являются первым 87 и вторым 88 информационными входами третьего коммутатора 15.
Блок 18 ввода-вывода (фиг.10) содержит дешифратор 113 арреса пер 50 вый 114 и второй 115 восьмиразрядные регистры, первый 116 и второй 117 восьмиразрядные буферные регистры, первый 118 и второй элементы И 119 и элемент ИЛИ 120, группа из шестнадцати (восьми ) входов дешифратора 113 адреса является адресным входом 74 блока 18 ввода-вывода, выход дешифратора 113 адреса соединен с
39 первымн входами первого. !18 и ВТоро
ro 119 элементов И, группа информационных входов параллельной записи первого регистра 114 соответственно соединена с группой выходов первого буферного регистра 116 и является первым информационным входом-выходом 62 блока 18 ввода-вывода, вход параллельной записи первого регистра 114 и управляющий вход первого
I буферного регистра 116 объединены и являются входом 36 обращения блока
18 ввода-вывода, выходы первого 118 и второго 119 элементов И объединены и являются выходом 73 готовности блока 18 ввода-вывода, группа информационных выходов первого регистра
114 соответственно соединена с групI пой информационных входов второго буферного регистра 117, управляюший вход которого подключен к входу параллельной записи регистра 114 и к первому входу элемента ИЛИ 120, второй вход которого соединен с выходом второго элемента И 119 и с входом параллельной записи второго регистра
115, группа выходов которого соот, — . ветственно соединена с группой инфор— мационных входов первого буферного регистра 116, группа информационных входов параллельной записи второго регистра 115 соответственно соединена с группой выходов второго буферного регистра 117 и является вторым информационным входом-выходом 76 блока 18 ввода-вывода, а выход элемента ИЛИ
1 20 и вторые входы первого 118 и второго 119 элементов И объединены и являются входом-выходом 77 управления блока 18 ввода-Bb!Hopa.
Блок 19 анализа ветвлений (фиг.11) содержит первый 1 21, второй 122 и третий 123 триггеры, первый 124 и второй 125 двухразрядные счетчики, первый 126, второй 127, третий 128, четвертый 129 и пятый 130 элементы И, первый 131 и второй 132 элементы
И-НЕ, первый 133 и второй 134 элементы ИЛИ и первый 135 и второй 136 инверторы, вход установки в ноль и информационный вход первого триггера
121 соединены и подключены к выходу второго инвертора 136, вход которого является синхровходом 50 блока 19 анализа ветвлений, синхровход первого триггера 121 является тактовым входом 54 блока 19 анализа ветвлений и соединен с первыми входами пер1434439
9 вого 131 и второго 132 элементов
И-НЕ, единичный выход первого триггера 121 соединен с вторым входом первого элемента И-НЕ 132, первым входом первого элемента И 126 и входом установки .в единицу третьего триггера
123, выход первого элемента И-11Е 131 подключен к первому входу первого элемента ИЛИ 133 и к синхровходу вто- 1О рого триггера 122, вход установки в единицу которого соединен с входом начальной установки первого счетчика
124 и с выходом первого элемента II
126, второй вход которого является входом 33 повторного запуска блока 19 анализа ветвлений, первый вход второ, го элемента ИЛИ.!34 является инфор" мационным входом 55 блока 19 анализа ветвлений, вторые входы первого 133 20 и второго 134 элементов ИЛИ, второго элемента И-НЕ 132 и первые входы третьего 128 и четвертого 129 элементов И соединены с информационным выходом старшего разряда первого счет" 25 чика 124, выходы первого !33 и второго 134 элементов ИЛИ подключены соответственно к счетному входу в режиме суммирования первого счетчика 124 и, к первому входу второго элемента ЗО, И 127, второй вход которого соединен, с единичным выходом второго тригге ра 122, вьмод второго 127 элемента И подключен к информационному входу, второго триггера 122, второму входу третьего элемента И 128 и через инвертор 135 к второму входу четвертого элемента И 129, выход второго элемента И-НЕ соединен с нулевым входом третьего триггера 123, единичный выход 40 ! которого соединен с третьими входами третьего 128 и четвертого элементов
И !29, выходы которых подключены соответственно к входу начальной уста-, новки и счетному входу в режиму сум- 45 мирования второго счетчика 125, инфор- мационные выходы которого соединены соответственно с первым и вторым входами пятого элемента И 130, информационный выход младшего разряда пер- 50 вого счетчика 124 и выход третьего элемента И 128 объединены и являются вторым выходом 63 блока 19 анализа ветвлений, а единичный выход второго триггера 122, информационный выход старшего разряда первого счетчика 124 и выход пятого элемента И 130 объединены и являются первым выходом 56 блока 19 анализа ветвлений.! о
Любую программу, записанную в машинах кодах в памяти ЭВМ, можно представить в виде набора линейных участков, связанных между собой командами передачи управления . Команда передачи управления является завершающей командой линейного участка, если он не последний линейный участок программы — в этом случае линейный участок может завершаться, например, командой "Останов".. Начальный командой линейного участка может быть либо команда„ являющаяся внешним входом программы, либо команда, на которую производится передача управления одной из команд перехода. Если некоторый линейный участок программы содержит несколько начальных команд (точек вхождения ), то он может рассматриваться как цепь из нескольких ли- нейных участков, каждый из которых имеет одну начальную команду. В этом случае конечной командой любого звена цепи, кроме последнего, является команда, предшествующая начальной команде следующего звена.
Таким образом, любую программу можно разбить на отдельные линейные участки, на которых "поведение" ЭВМ строго детерминированно, в том смыслет что при правильном 11проходении"
ЭВМ через данный линейный участок программы на управляющей линии синх-. ронизации машинных циклов должно быть зарегистрировано строго определенное число импульсов, которое известно для каждого линейного участка еще до начала работы ЭВМ по программе. Это утверждение остается справедливым и тогда, когда процесс прохождения данного участка временно приостанавливается в связи с реакцией на внешние прорраммно-независимые события (прерывания). В этих случаях используется стековый механизм запоминания и восстановления необходимой информации, Следование сигналов синхрониза ции машинных циклов, которыми сопровождается выполнение команд передачи управления, не зависит от того, выполнено ли проверяемое условие или нет.
Основную идею работы устройства для контроля выполнения программ можно выразить следующим образом.
1. После (или в процессе) транс" ляции исходной программы на язык машинных команд рабочую программу анаl434439
10
25
50
55 лизируют с целью выявления всех линейных участков. Список адресов начальных команд линейных участков запоминают.
2. Для каждого линейного участка
"предсказывается" .число импульсов на управляющей линии синхронизации машинных циклов путем последовательного арифметического сложения некоторых констант, каждая из которых соответствует "своей" команде в зависимости от конструктивных особенностей конкретной ЭВМ. Эта информация запоминается и в дальнейшем используется для контроля прохождения линейного участка при выходе íà его начало.
3. Каждому линейному участку программы становится в соответствие одна из команд диагностического процессора в зависимости от типа команды, завершающей данный линейный участок: а) линейному участку программы
ЭВМ, завершающемуся командой безусловного перехода, ставится в соответствие команда проверки безусловного перехода (БПУ) процессора; б) линейному участку программы
ЭВМ, завершающемуся командой перехода по условию, ставится в соответствие команда проверки условного перехода (ПУС) процессора; в) линейному участку программы
ЭВМ, завершающемуся командой безусловного вызова подпрограммы, ста вится в соответствие команда проверки вызова подпрограммы (ВПР) процессора;
r) линейному участку программы
ЭВМ, завершающемуся командой вызова подпрограммы по условию, ставится в соответствие команда проверкй ус-. ловного вызова подпрограммы (ВПУ) процессора; д) линейному участку программы
ЭВМ, завершающемуся командой безусловного возврата из подпрограммы, ставится в соответствие команда проверки возврата из подпрограммы (ВБУ) процессора; е) линейному участку программы
ЭВМ, завершающемуся командой возврата иэ подпрограммы по условию, ставится в соответствие команда проверки условного возврата из подпрограммы (ВУС) процессора; ж) линейному участку программы
ЭВМ, завершающемуся командой последовательной цепи операций, ставится в соответствие команда проверки про должения последовательных операций ПРД) процессора; э) линейному участку программы
ЭВМ, заввршающемуся командой передачи управления по вычисленному адресу (командой, реализующей программный переключатель на более чем два адреса — или командой передачи управления в неконтролируемую область памяти, ставится в соответствие команда перехода в режим диалога с ЭВМ (РДИ) процессора.
4. Для линейных участков программы ЭВМ, завершающихся командами передачи управления по заданному адресу, адрес передачи управления запоминается и в дальнейшем используется для контроля правильности перехода при выходе на конец линейного участка.
5. Производится пуск рабочей программы. Правильность ее выполнения контролируется специальными аппаратными средствами. Одновременно с выбором из основной памяти начальной ко" манды некоторого линейного участка из памяти. процессора для контроля выполнения программ извлекается команда проверки правильности выполнения линейного участка, содержащая информацию, определяющую ожидаемое число импульсов синхронизации машинных циклов. Эта информация помещается в счетчик, содержимое которого в дальнейшем уменьшается по мере .отработки ,данного линейного участка программы, т.е. по мере передачи от ЭВМ импульсов синхронизации. Одновременно в ходе выполнения линейного участка производится контроль прохождения" программы по адресам выборки команд.
К моменту перехода на начало нового линейного участка содержимое счетчика количества импульсов синхронизации становится равным нулю. В момент обнуления счетчика выполняется проверка "поведения" ЭВМ в соответствии с командой проверки процессора для контроля выполнения программ и, если это соответствие выполняется, проиэводится выборка команды проверки нового линейного участка.
6. Если при "прохождении" линейного участка в результате сбоя или неисправности вместо очередной команды выполняется несанкционированный переход, в микропроцессорной системе на базе микропроцессора КР580ИК80 будет
13
1434439
Проверка безусловного перехода
ПБУ
ПУС
Проверка перехода по условию
ВПР
Проверка. бе зуслов ного вызова подпрограммы
ВПУ
ВБУ
ВУС а
Проверка продолжения последовательности операций
ПРД
Переход в режим диалога
РДИ обнаружен в третьем машинном цикле после его возникновения, что позволяет организовать своевременноменную реакцию устройства управления в случае аварийной ситуации.
Память программ контролируемой микроЭВМ и программируемых контрол. леров выполняется в виде постоянного или полупостоянного запоминающего
: устройства. Вводимая в память рабо", чая программа представлена в виде по, следовательности машинных кодов. Ее ! ввод в память микроЭВМ должен сопровождаться вводом в блок памяти про: цессора заранее подготовленной программы контроля выполнения рабочей, программы. Программа контроля также должна быть представлена в виде последовательности машинных кодов. Форматы команд проверки, конструктивные особенности элементов схемы процессо ра и алгоритм работы блока микропрограммного управления определяются конструктивными особенностями, ин.терфейсом и форматом команд конкрет:ной микроЭВМ.
Обозна- Назначение команды чение
Проверка вызова подпрограммы по условию
Проверка возврата иэ подпрограммы безусловного
Проверка возврата иэ подпрограммы по условию
Рассмотрим построение системы конт;. роля выполнения программ для микроЭВМ на базе микропроцессора КР580ИК80.
Форматы команд проверки линейных участков представлены в таблице.
По своему формату команды процес" сора разделяются на две группы. Команды процессора первой группы, включающей команды проверки. ПБУ, ПУС, ВПР и ВПУ, имеют пятибайтную структу" ру. Первый байт команд этой группы состоит из двух частей: трехраэрядного кода операции машинных циклов соответствующего линейного участка.
Второй и третий байты команд этой группы являются соответственно млад« шим и старшим байтами адреса перехода соответствующего линейного участка. Четвертый и пятый байты команд первой группы являются соответственно младшим и старшим байтами адреса пе-. рехода процессора, т.е..адреса команды проверки программы контроля, на
25 которую передается управление при переходе. к новому линейному участку рабочей программы.
Номер Формат команды байта
I I6I5 I 4I 3I XI 1I О
1 Код команды Количество импульсов синхр, 2 Младший байт адреса нерехо" да линейного участка
3 Старший байт адреса перехода процессора
Младший байт адреса перехода процессора
Старший байт адреса перехода процессора
1 Код команды Количество импульсов синхр.
15 1434
Команды процессора второй группы, включающей команды проверки ВВУ, ВУС,.
ПРД и РДИ, имеют однобайтную структуру. Байт команды этой группы состоит
5 из трехразрядного кода операции и пятиразрядного кода количества им пульсов синхронизации машинных циклов команд соответствующего линейного участка. l0
Устройство работает следующим образом.
ЭВМ приводится в исходное состояние путем подачи соответствующего сигнала в линию "Общий сброс", входя- 15 щую в состав интерфейсных шин. Сигнал на этой линии формируется автоматически после включения питания или, например, появляется в результате нажатия соответствующей кнопки на пульте управления.
Сигнал "Общий сброс" поступает на вход 47 (фиг. 1) начальной установки процессора и приводит его в исходное состояние следующим .образом. С входа 25
47 начальной установки процессора сигнал "Общий сброс" поступает на входы 43 и 45 начальной установки соответственно первого 10 и третьего
12 счетчиков и переводит их в нулевое 30 состояние, на вход 44 начальной установки второго счетчика и переводит все его разряды в состояние единицы, на вход 46 начальной установки блока 3, и переводит его в исходное состояние, З через элемент ИЛИ 7 на вход установки в ноль триггера 2 и устанавливает
его в нулевое состояние, причем единичный сигнал с инверсного выхода триггера 2 поступает на выход 23
40 ошибки процессора и воспринимается на входе запроса прерывания микроЭВМ как сигнал отсутствия прерывания.
Перевод первого счетчика 10 (фиг. 5) в нулевое состояние производится сигналом "Общий сброс", поступающим с входа 43 начальной установки счетчика 10 на входы начальной установки счетчиков 98 и 99 и переводящим эти счетчики в состояние "Bce нули ° При 50 этом сигналы на выходах группы выходов 69 счетчика 10 принимают нулевые значения.
Перевод второго счетчика 11 (фиг. 6) в состояние "Все единицы" производится сигналом "Общий сброс", поступающим с входа 44 начальной установки счетчика 11 на вход параллельной записи счетчика 103 и производящим
16
439 запись в счетчик единичного состояния информационных входов параллельной записи его разрядов, При этом сигналы на выходах группы 71 выходов счетчика 11 принимают единичные значения °
Перевод блока 8 (фиг. 4) управления н исходное состояние производится сигналом "Общий сброс", поступающим с входа.46 начальной установки блока
8 управления на вход начальной установки регистра 94 и переводящим этот регистр в состояние "Все нули". Сиг; калы на выходах группы выходов разрядов регистра 94 принимают нулевые значения.
После окончания сигнала "Общий сброс" микроЭВМ автоматически или по инициативе оператора переходит к выполнению рабочей программы,. записанной в ее памяти. На тактовый вход
29 для контроля выполнения программ поступает первый импульс тактовой частоты тактового генератора микропроцессора либо внешнего независимого генератора. С входа 29 этот сигнал поступает .на тактовый вход 28 блока 8 управления, с первого информационного выхода 30 которого на входы соответ" ствующих элементов процессора посту- пает сигналы управления, предусмотренные первым шагом микропрограммы
его функционирования . Работа блока 8 управления представлена следующим (фиг.12) алгоритмом.
Шаг 1. По сигналу "Общий сброс" описанным путем аппаратно устанавливаются в исходное состояние первый
10, второй 11 и третий 12 счетчики, блок 8 управления и триггер 2 ошибки (см. фиг.l2 оператор 1 "Начальная установка").
Шаг 2. По адресу (0000), определяемому выходными сигналами счетчика
12, из блока 9 постоянной памяти выбирается первый байт очередной команды процессора и загружается соответственно первая часть, определяющая код,команды проверки, в регистр )6 команд, и вторая часть, определяющая койичество импульсов синхронизации машинных циклов очередного линейного участка, в счетчик 1. Выборка команды обеспечивается. путем подачи сигна-. лов с первого выхода 30 блока 8 управления на вход обращения блока 9 постоянной памяти, вход 42 записи
17 14344 счетчика 1 и вход записи регистра !6 команд.
Производится инкремент счетчика 12 путем подачи сигнала с выхода 30 блока 8 управления на счетный вход 38 третьего счетчика 12, в результате чего на адресных входах блока 9 постоянной памяти устанавливается ацрес второго байта команды проверки, если выбранная команда пятибайтная, и адрес следующей команды проверки, если выбранная команда — однобайтная (фиг.,12, оператор 2 "Выборка ко1 манд). 15
Шаг .3. Если с соответствующего выхода микроЭВМ на вход 81 подтверждения прерывания процессора и далее на четвертый адресный вход блока 8 управления поступает сигнал "Под1 тверждение прерывания" и микроЭВМ переходит к отработке подпрограммы обслуживания прерывания выполняется переход к шагу 7 алгоритма,в против-! ном случае к шагу 4 (фиг, l 2, опера- 25
1 тор 3 "Прерывание" ), Шаг 4. Завершение линейного участка программы микроЭВМ сопровождается обнулением счетчика I, содержимое которого уменьшается по мере обработ- З0 ки линейно го участка путем подачи сигналов синхронизации машинных циклов с соответствующего выхода микроЭВМ на синхровход 53 процессора и далее на счетный вход 52 в режиме вычитания счетчика 1, Нулевые сигналы с группы выходов 26 счетчика поступают соответственно на группу входов первого элемента ИЛИ 6, нулевой сигнал с выхода которого воспринима- 40 ется на первом адресном входе 27 блока 8 управления как сообщение "Конец линейного участка" ° Если на вход
27 блока 8 управления поступает сигнал "Конец линейного участка", выполняется переход к шагу 8 алгоритма, в противном случае — к шагу 6 (фиг.12, оператор 4 "Конец линейного участка ") !
liar 5, Линейный участок, состоящий из команд последовательной цепи операций (команды пересылок, арифметические операции, команды ввода, вывода, установки флагов и т.п.), микроЭВМ "проходит" путем инкремента программного счетчика микропроцессора.
Содержимое програмного счетчика мик-, роЭВИ устанавливается на шине адреса микроЭВМ н циклах обращения к па39 !8 мяти, содержащей контролируемую программу. Проверка правильности "прохожцения" микроЭВИ линейного участка программы осуществляется путем сравнения текущих адресов обращения мик" роЭВМ к рабочей программе и синхронно изменяющегося адреса-копии, хранящегося в первом счетчике 10. Процедура сравнения текущего адреса и адреса-копии и проверка правильности последовательного хода рабочей программы выполняется под управлением блока 19 анализа ветвлений. Работа блока 19 анализа ветвлений в режиме проверки правильности последовательного хода программы поясняется временной диаграммой, представленной на фиг.l3.
После окончания сигнала "Общий сброс" (момент времени 137, эпюра
138, фиг.13) микроЭВМ по второму тактовому сигналу 139 (эпюра 140, фиг. 13) формируется сигнал 141 синхронизации микропроцессорной системы (эпюра 142, фиг.13). Этот сигнал поступает на синхровход 53 процессора и далее (cM.фиг.l) на вход 51 записи первого блока 3 регистров. Одновременно с информационного входа 22 процессора :на информационный вход 21 первого блока 3 регистров поступает текущий начальный адрес 143 рабочей программы (эпюра 144, фиг.13) микроЭВИ и запоминается в нем (эпюра
145 фиг. 13)„
Одновременно сигнал синхронизации с синхровхода 53 процессора поступает на счетный вход-52 в режиме вычи