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

Иллюстрации

Показать все

Реферат

 

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

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

РЕСПУБЛИК (я)5 G 06 F 11/28

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

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

ПРИ ГКНТ СССР

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

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) 1444783 (21) 4763201/24 (22) 27.11.89 (46) 23.11,91. Бюл. М 43 (71) Рыбинский авиационный технологический институт (72) И.З.Альтерман, M.À.Ãëàäøòåéí, В,M.Комаров и Н.А,Шубин (53) 681.3 (088.8) (56) Авторское свидетельство СССР

hL 1444783, кл, G 06 F 11/28, 1987. (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ МИКРОПРОЦЕССОРА (57) Изобретение Ьтносится к вычислительной технике и может найти применение при

Г. Ы,„, 1693610 А2 построении микропроцессорных устройств для повышения их надежности. Цель изобретения — расширение функциональных возможностей за счет контроля содержимого указателя стека микропроцессора при выполнении стековых команд. Устройство для контроля микропроцессора содержит счетчик 1, схему 2 сравнения, регистры 4 и

5, блок постоянной памяти 6, сумматор 7, мультиплексор 8, элементы И 3, 9 — 11, триггеры 13, 14 и элемент НЕ 12. 8 устройство введены дешифратор 15, регистры 16, 17, сумматор 18, схема сравнения 19, счетчик

20, мультиплексор 21, блок задания 22 границы стека,, элементы И 23-25, элементы

ИЛИ 27 — 29 и триггер 30. 1 ил„1 табл.

169 610

Изобретение отнссится к вычислительной технике и является у=Овершенствовя HI ем устройства по авт,св. N. 1444783.

Цель изобретения — расширение функциональных возмэх<нсс1 8ti! за счет <(Онтроля содер>кимаго указателя стека микропроцессора при выполнении стековы-, команд, На чертеже изображена структурная схема устройства, Устройство для ко -и роля микропроцессорной системы содержит первый счетчих " -, первую схему 2 сравнения и первый 3 элемент И, первый 4 и BI(рай 5 ре-истры, блок

6 постоянной памяти, гервый сумматор 7, первыл мультиплексор 8, второй 9, третий

10 и четвертый 1 . элементы И, элемент НЕ

12, первый 13 и в горой 14 грип еры, дешифратор 15, третий 16 и четвертый 17 регистphi, BT0poA сумматор 18, BTop IIo схемy 19 сравнения, BTopol>I c48T< Nl:. 20, 3 iopoY. iv IIIIIEBтиплексор 21, блока 22 зад ;:í —,"èÿ границы стека, пятыми элемент И 23, шестой 24 II седьмой 25 элемен.гы И, I

30, ВыхОд 31 неисправн эсти ycтpoMcTBB

Устоойство работает сл<3дчощим ohpc>" зом.

После sêëþ÷åíèÿ питания н с, <еме конi ролируемого ми«эопрацесссра 26 формируется сигнал сбрсса RE!>ЕТ, который «8-зез шину управления пос упает на входы сброса первого счетчика 1, втарсго регистра 5 и тригl 8po!3 13, 14 М .,10, i!Ec приводит I< их

УстBHQIÇI<8 ?? ?????????????? ?????????????????? ???? 40<?????? ????mho c??8!??34k ???????????? i ??????????>рацессара 26 также уста нявлиВяс1 ся В !4ул<3808 ???????????? ??????, ?????????? ???????????????????????????? 26 ???????????????? ??????????????????????????????lc ?????????????? ?? ??c??o??????h???? ???????????? l-!o ????????<-?????? ??????????????????. ?????? ?????????????????????????????? (??580 ?????????????????? ?????????? ?? ?????? ?????? ?? ????????????????, ???????? ?????? ??;- ?? ???? ??1.????????????????????. ?? ???????????????????? ?????????? ????????!?? ????<.-????>ощеЙ команды может Г ы гь больше адреса предыдушей команды саспнетстненно на адну,,цве или три единиць< младшего разряда при условии правильного функционирования микропроцес=ора, Кроме того, н системе команд микропроцессора имеютс1 команды переходов. кимое счет ика команд микропроцессора, MoM8I4T считывания первого бЯЙта команды легко идентифицируется по совпадени>0 Сигнс>лов на Ли IYiSI!(Bb!60pl<<4 IE8pBOI O байта комяндь. (М1) и чтения памяти (AEMRI, шины упранлгния микропроцессора 26. В этот момент срабатывает третий элемент И 10 и код перва<с байта команцы, установленный н 3ТО всемв на шине данных

40 ,з

55 фиксируе гся н первом регистре 4. Этот байт поступает на ацресные входы блока 6 постоянной памяти, в результате чего на его основном вы" îäå бу,цет установлен код, равный количеству балт В команде, а на дополнительном выходе — ксд типа команд (операционная команда — команда перехода), В ч я (." т i4 О " r и, д л я к О н т р о л я м и к р опроцессора серии КР580 коды, хранимые данные н блоке 6 постоянной памяти, должны соответстзовать данным, приведенным в табл.1. Каждая клеточка этой таблицы соответствует одному из 256 возможных адресов. Код н кажp«ой клетке состоит из двух ц«фр. Правая u,èôpà сооТВ8ТсЕ вует десятиричному эквиваленту двоичного кода, формируемого на основном выхаце блока 6 постоянной памяти и равна количес ву байт,l,2 или 3) команды микропроцессора. Левая цифра соответствует состоянию дополнительного выхода блока 6 постоянной памяти и равна единице, если адресный байт соответствует команде перехода, в противном случае равна нул:,о.

Таким образом, и:в:ыходах блока 6 постоянной памяги непосредсгненно после момента фиксацли перногс байта 0-<еоедной командь н первом реги=тре 4 будет установлен код н соответствил с данными таблицы.

В результате возмо>кны две ситуации: очередная команда не является командой п8рехода Очередная команда команда перехода.

В первом случае ча вход D первого триггера 13 поступает сигнал логического "0", и по окончании сигнала с выхода iðåòüåãо элемента И 10 первый триггер 13 не изменяет

cB08Io состс>яния, Код байтности очередной команды с >снонного выхода бло:<а 6 постоянной памяти поступает на первый вход сумматора 7, а на второй ега вход через первый мультиплексор 8 пос,упает кад из нторого регистра 5.

ПО этим Дсзнн ым пеРВый сУмматаР 7 формирует сумму и перенос (для микропроцессора КР580 мультиплексор 8, сумматор 7 и Р8гистР 5 сОДеожа1 пo Дэс> Днаич<4ых Раз ряда, так как дгоичный код байтности может быть толь.<0 01, 10 или 1 1), Сумма поступаст

I B вход н орога регистра 5 и записывается н него по заднему фронту сигнала с выхода третьего =,Båìå: —;та И 10 алагадаря элеме:-ггу

HE 12, Си нал с выхода последнего проходит также на вход инкрементирования первого счет ика 1 через второй элемент И 9, если значBHèå переноса на выхода первого сумматора 7 равно логической " 1", 50

1аким образом. в первом счетчике 1 (старшие разряды) и во втором регистре 5 (младшие разряды) формируется ожидаемый код адреса первого байта следующей команды. Этот код поступает на вход первой схемы 2 сравнения. В момент извлечения первого байта следующей команды микропроцессор 26 формирует ее адрес на шине адреса и сигналы М1 и MEMR на шине управления.

Если микропроцессор работает без сбоев, то выданный адрес совпадает с ожидаемым адресом, поступающим из первого счетчика 1 и второго регистра 5. В этом случае на инвертирующем выходе первой схемы 2 сравнения устанавливается нулевой потенциал, что обеспечивает пассивный логический уровень на выходе первого элемента И 3, Если же имеет место сбой, то адреса будут неравны, на выходе первой схемы 2 сравнения появляется сигнал логической единицы, Совпадение этого сигнала с активным сигналом с инверсного выхода первого триггера 13 и сигналом с выхода третьего элемента И 10 вызывает срабатывание первого элемента И 3. установку второго триггера 14 и появление на выходе третьего элемента ИЛИ 29, т.е. на выходе 31 устройства, активного сигнала, свидетельствующего о неправильной работе микропроцессора.

Если же очередная команда — команда перехода, то на дополнительном выходе блока 6 постоянной памяти будет установлен единичный сигнал, В результате по заднему фронту сигнала с выхода третьего элемента И 10, благодаря элементу НЕ 12, первый триггер 13 переходит в единичное состояние, Сигнал с его инверсного выхода блокирует контроль совпадения адресов при извлечении следующей команды с помощью первого элемента И 3. Кроме того, происходит переключение первого мультиплексора 8 и он подключает к второму входу первого сумматора 7 младшие разряды шины адреса контролируемого микропроцессора.

Таким образом, при извлечении первого байта команды следующий.за командой перехода контроль не проводится, а ее адрес пл юс байт ность команды (ожидаем ы и адрес следующей команды) фиксируется в первом счетчике 1 и втором регистре 5. Фиксация старших разрядов адреса в счетчике

1 производится сигналом с выхода четвертого элемента И 11, работа которого разрешается единичным сигналом с выхода триггера 13.

Запись младших разрядов, представляющих собой сумму младших разрядов адре5

45 са очередной команды с ее байтность о, с выхода первого сумматора 7 во второй регистр 5. а также учет переноса с выхода сумматора 7 в счетчик 1 происходит совершенно аналогично первому случаю. Кроме того, по окончании считывания команды, следующей за командой перехода(если она. конечно, сэма не является командой перехода), происходит возврат первого триггера

13 в состояние логического "0" и, следовательно, восстанавливается режим контроля.

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

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

Для контроля за поведением указателя стека микропроцессора 2 дешифратор 15 настраивается на селекцию только одной команды — "Загрузка указателя стека". В системе команд микропроцессора КР580 этой командой является команда LX(SP, D16, Когда в первом регистре 4 фиксируется код этой команды, единичный сигнал с выхода дешифратора разрешает работу пятого элемента И 23. В результате в следующих циклах выполнения этой команды по сигналу MEMR на шине управления производится запись в регистры 16 и 17 данных, адресующих вершину стека.

Эти же данные фиксируются в указателе стека микропроцессора 26, Одновременно с записью данных в регистры 16 и 17 по сигналу с выхода пятого элемента И 23 производится очистка второго счетчика 20.

Данные о вершине стека с выходов регистров 16 и 17 постоянно присутствуют на первом входе второго сумматора 18. На второй вход сумматора 18 поступает код с выхода счетчика 20, являющийся текущим смещением указателя стека микропроцессора 26 или, иначе, индексом относительно вершины стека.

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

Однако разрядность счетчика 20 может быть существенно уменьшена с учетом выполнения реальных программ. В этих случаях старшие разряды второго входа сумматора 6

111 долж и ы быть 11одкл к.че I ь! 1< потев ц!лэл /

"Лаг.1", гак как сумматоз 18 реализует функцию е1ычита13ия l3BpLIJI ны стека и индекса. т.B. для корректного отслеживания указателя стека микропроцессора индекс должен быть устан!звлен на втс рам ьходе сумматора

18 в дополнительном коде

В момент обращения к стеку микроп,зацессора 26 формируе"ся сигнал Я ГАСК на шине управления, катсрый разблокирует элементы И 24 и 25, flpv реагп1зации цикла

"Запись в стек" сигнал микрспроцессс!ра

MEMW с шины упаавг1ения через элемент И

25 поступает на вход АE!1кидаемый Kîä указателя стека микропроцессг1рэ 26. Этот кад поступает на вход втог3а л схемы 19 сравнеНИЯ.

Если микропроцессор 26 работает без сбоев, то выданнь и адрес ячей < л стека сoBпадает с ожлдэемым адре!:Ql поступающим из сумматора 18. В этом случае на инвертируязщем выхгде второ!л схемы 19 сравнеHèsl устанавливае п=я нулевой потеH циэл, что обеспечивае.г пассивный логический уровень на вхоце вторсга эг1ементэ

ИЛИ 28.

Если же имеет место сбой указателя стека, то адреса не равны, на выхо,це вторзй схемы 19 сравненля г1оявляется сигнал логической "1" который ч эрез злемечт ИЛИ 78 проходит на вход третьего триггера 30. Установка его в единич11с!е состояние произойдет в момен г среза сигнала IAFMW, который через инверснь!й вход первого элемента ИЛИ 27 пзступаэт нэ синхровход третьего триггера ЗО. Единичный сигнаг! с триггера 30 постугает через тоетий элемент

ИЛИ 29 на выход у=трайства 31 и свидетельствует о неправильной работе микропроцессора 26.

Таким образом, после реализац1ли цикла записи информации в стек на вь хоце второго сумматора 18 всегца устанавл IBB ется адрес последней ззпалне:-:но!л ячейки стека. Этот же адрес фиксирует= 1 в указателе стека микропроцессора 26 па окончании выполнения стековой команды.

Если сбои указателя стека микропрзцессора 26 не имек)т место, та в иикг!е

"Чтение из стека" микропроцессор 26 выдает на шину адреса адре.-. ячейки стека. соатBeTcTByIoLIIvvi адресу Н; выхоце сумматора

18. Тогда на инвер. ирую!цем выхзде второй схемы 19 сравнен!!я устанэвли13эе3ся нулевой потенциал, свидетег11.г гву1ощии о ра5

ЗО

55 венстве адресов нэ ее входах. Результат сравнения адресов фиксируется в третьем триггере 30 по фронту синхросигнала, поступающего на соответствующий вход триггера 30 через элементы И 24 и ИЛИ 27 в момент ссвпадения сигналов S"! АСК и

MEMR на ш!лне управления микропроцессора 26.

Одновременно этот >ке сигнал, поступая на вход инкрементирования счетчика 20, увеличлвает на единицу индекс на его выходе, соответственно увеличивая на единицу индекс нэ его выходе, соответственно увеличивая на единицу адрес на выходе сумматора 18. Это полностью согласуется с действиями микропроцессора 26, который по окончании каждого цикла "Чтение из стека" увеличивает содержимое указателя стека на единицу, В случае сбоя указателя стека микропроцессора 26 фиксация сигнала ошибки на выходе 31 устройства при выполнении цикла "Чтение лз стека" производится аналогично, Для кснтроля глубины стека, нарушаемой вследствие ложных переходов программного счетчика микропроцессора 26, второй мультипле1<сор 21 производит сопоставление индекса на выхоце счетчика 20 с кодом, установленным в блоке 22 задания. Двоичный код с выхода блока 22 задания подключает на инвертирующий выход мультиплексора 21 соответству1ощий разряд с выхода счетчика 20.

Данный разряд выбирается пользователем с помощью блока 22 задания в качестве границы стека, исходя из программы, выполняемой микропроцессором, Например, если глубина стека равна 64 ячейкам памяти, то в качестве контрольного выбирается 6 — 7 разряд счетчика 20, Появление на нем сигнала логического "0" в момент реализации стековой! программы будет свидетельствовать о переполнении стека, т,е, о нарушении выбранной глубины.

В результате на инверсном выходе мультиплексора 21 появляется единичный сигнал, l

Если микропроцессор 26 работает без сбоев, та при реэлизацли обращения к стеку на выбранном входе мультиплексора 21 всегда присутствует сигнал логической "1", который не может перевести триггер 30 в эк3ивнае состояние.

1693610

Таким образом, в устройстве постоянно контролируется правильность изменения программного счетчика (за исключением моментов перехода) и указателя стека микропроцессора. Также в устройстве контролируется глубина стека, косвенно характеризующая корректность переходов микропроцессора по программе.

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

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

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

40 вход которого соединен с выходом дешифратора, информационный вход которого соединен с выходом первого регистра, первый информационный вход второй схемы сравнения соединен с входом устройства для подключения к шине адреса контролируемого микропроцессора, выход второго сумматора соединен с вторым информационным входом второй схемы сравнения, первые входы шестого и седьмого элементов И соединены с входом устройства для подключения к выходу сигнала обращения к стеку контролируемого микропроцессора, вторые входы пятого и шестого элементов И соединены с входом устройства для подключения к выходу чтения памяти контролируемого микропроцессора, второй вход седьмого элемента И соединен с входом устройства для подключения к выходу записи в память контролируемого микропроцессора, инверсный вход пятого элемента И соединен с входом устройства для подключения к выходу признака первого байта команды контролируемого микропроцессора, прямой и инверсный выходы первого элемента ИЛИ и входы инкрементирования и декрементирования второго счетчика соединены соответственно с выходами шестого и седьмого элементов И, выход блока задания границы стека соединен с адресным входом второго мультиплексора, инверсный выход которого соединен с первым входом второго элемента ИЛИ, второй вход которого соединен с инверсным выходом второй схемы сравнения, выходы первого и второго элементов ИЛИ соединены соответственно с С- и 0-входами третьего триггера, R-вход которого соединен с входом устройства для подключения к выходу сброса контролируемого микропроцессора, выходы второго и третьего триггеров соединены соответственно с первым и вторым входами третьего элемента ИЛИ, выход которого является выходом неисправности устройства.

1693610

Продолжение таблицы

Содеожимое блока б постоянной

Младшие разряды адреса г шие

ЯДЫ са

01 13

01 13

01 13

) Î

01

1:

02

О

О

Продолжение таблицы

Содержимое блока 6 постоянной пам

У)лад ив раз

Старшие разряды адоеса

9 А

Составитель Д.Банюхин

I; —:õðåä M.Уоргентал Корректор 3.Лончакова

Редактор А.Козориз

Заказ 4(П9 Тираж Г1одписное

ВНИИПИ Государственно о комитега по изобретениям и открытиям при ГКНТ СССР

113035, .,1осква,Ж-35, Раушская наб., 4/5

Производствен-го-издательский комбинат "Г1атен-", г, Ужгород, ул.Гагарина, 101

1 л

Д й, 6

B

А

В

С

I) 01 01

01 01

01 03

01 03 .01 " 01

01 01

01 01

01 01

01 01

01 01

01 01

01 01

11 13

00 13

11 13

01 i3

Î I

01

01

01

01

О I

01

01

О

О

О

01, 01

00 13

02 13

ОI, 13

Oi 1З