Микропрограммный процессор
Иллюстрации
Показать всеРеферат
Союз Советских
Социалистических
Республик
<„,765809
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Дополнительное к авт, сеид-ву 9 535567 (22) Заявлено09. 11. 78 (21) 2681280/18-24 с присоединением заявки ¹â€” (23) Приоритет—
Опубликовано 2309.80,бк>ллетень № 35
Дата опубликования описания 25,09.80 (51)м К, 3
G 06 F 15/00
Государственный комитет
СССР по делам изобретений и откр ыти и (53) УДК 681. 325 (088. 8) В. С. Харченко, С, Н. Ткаченко, Г. Н. Тимонькин и И. П. Барбаш (72) Авторы изобретения (71) Заявитель (54 ) МИКРОПРОГРАММНЫИ ПРОЦЕССОР
Изобретение относится к вычислительной технике, в частности к самоконтролируемым процессорам, В основном изобретении по авт. 5 свил. Р 535567 описан микропрограмный процессор, содержаший операционный блок, первый выход которого через блок сопряжения с оперативной памятью и регистр кода операций сое- 10 динен с первым входом элемента И, выход которого через первый элемент
ИЛИ соединен с первым входом регистра адреса микрокоманд, выход которого через блок памяти микрокоманд 15 соединен с входом регистра микрокоманд, первый и второй выходы которого соединены с первыми и вторыми входами операционного блока, второй и третий выходы которого шинами на- 2Q чала и конца операции соединены с вторыми входами первого элемента И и регистра адреса микрокоманд соответственно и с входами второго элемента HJIH, выход которого через пер- 25 вый элемент НЕ соединен с первыми входами второго и третьего элементов Ы, выходы которого через первый и третий элементы ИЛИ соответственно соединены с первым и третьим вхо- 3Р дами регистра адреса микрокоманд, четвертый вход которого соединен с первым входом счетчика микрокоманд .и шиной синхронизации с четвертым выходом операционного блока, пятый выход которого соединен с вторым входом счетчика микрокоманд, а шестой выход соединен с управляюшим входом блока памяти микрокоманд и с первым входом четвертого элемента И, выход которого соединен с единичным входом триггера фиксации сбоя, единичный выход которого соединен с третьим входом операционного блока, седьмой выход которого соединен с первым входом первого узла,ветвления, второй вход которого соединен с третьим выходом регистра микро.команд, третий выход соединен с вторым входом второго элемента И и выходом регистра микрокоманд, четвертый выход которого соединен с вторым входом третьего элемента И, выход первого узла ветвления через третий элемент ИЛИ соединен с третьим входом регистра адреса микрокоманд, а первый вход второго узла ветвления соединен с одноименным входом первого узла ветвления, второй вход которого соединен с первыми
765809 входами пятого и шестого элементов
И, через второй элемент НŠ— с первыми входами седьмого и восьмого элементов И, через четвертый элемент ИЛИ и третий элемент НŠ— с третьим входом второго элемента И и с первым входом пятого элемента ИЛИ, с вторым входом второго узла ветвления, третий вход которого соединен с третьим входом первого узла ветвления и с первым входом девятого элемента И,а выход второго узла ветвления соединен с вторым входом пятого элемента И, второй вход шестого элемента И соединен с четвертым выходом операционного блока, а выход соединен . с единичным входом триггера, единич- 15 ный выход которого соединен с вхо-дом четвертого элемента ИЛИ и с вторым входом седьмого элемента И, выход которого соединен с вторым входом девятого элемента И, выход пято- () го и девятого элементов И и пятого элемента ИЛИ через шестой элемент
ИЛИ соединены с первым входом сумматора приращения, первый выход которого соединен с третьим входом счетчика микрокоманд, первый выход которого соединен с вторым входом сумматора приращений и через узел проверки нуля — с первым входом элемента
ИСКЛЮЧАЮЩЕЕ ИЛИ, второй вход которого соединен с выходом второго элемента ИЛИ и выходом пятого элемента
ИЛИ, выход элемента ИСКЛЮЧАЮЩЕЕ ИЛИ и вторые выходы счетчика микрокоманд и сумматора приращений через седьмой элемент ИЛИ соединены с вторым входом четвертого элемента И, второй вход восьмого элемента И соединен с шестым выходом операционного блока, а выход соединен с нулевым входом три ггера P).
Низкая оперативность диагностирования этого устройства обусловлена тем, что результаты контроля выдаются только по окончании реализации операции, что ограничивает примене» ние такого процессора в составе 3BN, 45 работающих в реальном масштабе времени, и тем саьым сужает область его возможного применения, а низкая глубина диагностирования обусловлена невозможностью идентификации микроподпрограммы или перехода, на которых произошел сбой в микропрограмме.
Цель изобретения - повышение надежности устройства.
Это достигается тем, что в микропрограммный процессор по авт.свид.
9 535567 дополнительно введены второй триггер, узел проверки единицы, дешифратор, четвертый элемент НЕ и с десятого по четырнадцатый элементы
И, причем выход дешифратора подключен к четвертому входу операционного блока, вход дешифратора соединен с выходом десятого элемента И, первый вход которого соединен с единичным выходом триггера фиксации сбоя, вто. рой вход десятого элемента И подключен к выходу счетчика микрокоманд и входу узла проверки единицы, первый вход одиннадцатого элемента И соединен с единичным выходом второго триггера и с первым входом двенадцатого элемента И, нулевой выход второго триггера соединен с первым входом тринадцатого элемента
И, второй вход которого соединен с первым входом четырнадцатого элемеьта И, с вторым входом одиннадцатого элемента И, через четвертый элемент
НŠ— с вторым входом двенадцатого элемента И и с третьим выходом регистра микрокоманд, выход узла проверки единицы соединен с единичным входом -второго триггера и с вторым входом четырнадцатого элемента И, выход которого соединен с дополнительным четвертым входом седьмого элемента ИЛИ, пятый дополнительный вход которого соединен с выходом тринадцатого элемента И, дополнительный шестой вход седьмого элемента
ИЛИ соединен с выходом двенадцатого элемента И, третий вход которого соединен с третьим входом одиннадцатого элемента И и с первым входом счетчика микрокоманд, нулевой вход второго -триггера соединен с выходом одиннадцатого элемента И.
Сущность изобретения состоит в осуществлении контроля каждой микроподпрограммы, что позволяет повысить оперативность диагностирования. Кроме того, в процессоре при получении сигнала сбоя после реализации микроподпрограммы возможна идентификация места сбоя между сбоем при ветвлении и сбОем во время реализации линейной части микропрограммы. Этим достйгается повышение глубины диагностирования.
На чертеже приведена функциональная схема Микропрограммного процессора.
Процессор содержит аппаратуру соб-. ственно. процессора (элементы 1-26) и аппаратуру контроля (элементы 2752). Аппаратура собственного процессора состоит из второго 1 и четвертого 2 элементов ИЛИ, первого 3 и третьего 4 элементов НЕ,. первого 5 и второго 6 элементов И, первого элемента ИЛИ 7, третьего элемента
И 8, третьего элемента ИЛИ 9, регистра адреса 10, памяти микрокоманд 11, регистра микрокоманд 12, содержащего поле 13 микрокоманды, поле 14 ветвления, поле 15 адреса и разряд 16 удлиненйя адресного поля, операционный блок 17 с выходами конца операции 18, начала операции 19, логических условий 20 чтения микрокоманд
21, гашения счетчика микрокоманд 22 и тактовых импульсов (шина синхронизации) 23, блока 24 сопряжения с ОЗУ
765809первого узла ветвления 25, регистра 26 кода операции. Аппаратура контроля процессора состоит из восьмого
27 и шестого 28 элементов И, второго элемента HE 29, первого триггера 30, седьмого элемента И 31, второго узла ветвления 32, пятого элемента ИЛИ
33, девятого 34 и пятого 35 элементов И, шестого элемента ИЛИ 36, девятого элемента И 37, дешифратора 38, сумматора 39 приращений, счетчика
40 микрокоманд, узла проверки руля
41, узла проверки единицы 42, элемента 42, элемента ИСКЛ{9ЧАЮЩЕЕ ИЛИ
43, одиннадцатого элемента И 44, четвертого элемента НЕ 45, четырнадцатого элемента И 46, второго триггера c
47, двенадцатого 48 и триннадцатого
49 элементов И, седьмого элемента
ИЛИ 50, четвертого элемента И 51 и триггера фиксации сбоя 52.
Микрокоманды считываются иэ блока 20 памяти 11 в регистр микрокоманд 12 по сигналу в операционный блок 17, который осуществляет необходимые преобразования информации и, кроме тогс контролируют правильность их выполнения. Правильность считывания из блока памяти 11 в регистр 12 также контролируется блоком 17.
Информация с выходов полей 14 и
15 используется для формирования адреса следующей микрокоманды. При этом поле ветвлений 14 используется в зависимости от состояния разряда 16. В линейных микрокомандах значение разряда 16 равно 0 и поля 14 и 15 совместно образуют адрес следующей микрокоманды. При этом сигналы с поля 14 через элементы И 6, ИЛИ 7 поступают по тактовому импульсу с выхода 23 операционного блока 17 в старшие разряды регистра адреса 10, в млад- 40 шие разряды которого через элементы
И 8 и ИЛИ 9 записывается информация с fIQJIR 15 регистра микрокоманд 12.
В микрокомандах ветвления значение разряда 16 равно единице, а в по- 45 ле 14 записаны код логических условий. Поэтому через элементы ИЛИ 2 и
НЕ 4 блокируется запись информации в регистр адреса 10 с выхода поля 14.
Код логических условий и сигналы ло- 50 гических условий поступают на входы первого узла ветвления 25 с поля 14 и выхода 20 операционного блока 17 соответственно. С выхода узла 25 код значений логических условий через элемент ИЛИ 9 записывается в регистр адреса 10, модифицируя тем самым адрес следующей микрокоманды в соответствии со значениями логических условий.
Выполнение команды разделено на 40 два цикла. Один цикл выборки и адресных преобразований, который является общим для всех команд, и цикл исполнения команд, который включает различные микропрограммы для разных. 65 команд. В конце ццкла выборки код операции передается в регистр 26 и операционный блок 17 возбуждает сиг нал на выходе 19 начала операции. При этом содержимое регистра 26 через элементы И 5, ИЛИ 7 записывается в старшие разряды регистра адреса 10.
После этого начинает выполняться микропрограмма цикла исполнения команды.
В конце микрокоманды цикла исполнения операционный блок 17 возбуждает сигнал конца операции на выходе 18, который сбрасывает регистр адреса 10 и осуществляет переход к выполнению микропрограммы цикла вы" борки следующей команды.
Сигналами с выходов 18 и 19 операционного блока 17 блокируется запись в регистре адреса 10 с регистра микрокоманд 12 и осуществляется либо прием информации из региСтра 26, либо установка регистра адреса 10 в нуль соответственно. Для возбуждения сигналов на выходах 18 и 19 операционного блока 17 используются фиксированные значения кодов ветвления.
Контроль микропрограммы осущест- вляется следующим образом, В начале линейной микроподпрограммы в счетчик 40 записан код числа микрокоманд в последовательности, который затем уменьшается на единицу с каждой следующей микрокомандой. В предпоследней микрокоманде последовательности в счетчике 40 записана единица, Если следующей выполняется микрокоманда ветвления, что подтверждается единицей в разряде 16 регистра микрокоманд 12, то сигнал сбоя отсутствует. При любом другом порядке появления единицы в счетчике .и единицы в разряде 16 формируется сигнал сбоя. Таким образом осуществляется оперативный контроль каждой ° линейной микроподпрограммы.
Контроль правильности реализации переходов осуществляется следующим образом, В микрокоманде ветвления к содержимому счетчика прибавляется, код логических условий ветвления. В первой микрокоманде следующей последовательности к содержимому счетчика 40 прибавляется уменьшенный на единицу код числа микрокоманд в последовательности и вычитается увеличенный на единицу код логических условий. Поэтому при правильной реализации ветвления в счетчике 40 остается код числа микрокоманд в пос ледовательности, а при оШибочной код, отличный от кода числа микрокоманд в последовательности, что будет обнаружено при контроле числа микрокоманд в микрокоманде ветвления, либо в микрокоманде линейной последовательности, следующей за той, 765809 в которой содержимое счетчика 40 равно единице.
Для идентификации места сбоя между линейной последовательностью и переходом служит дешифратор 38, который включается в работу по сигналу обнаружения ошибки. Дешифратор анализирует содержимое счетчика 40 и в случае, если код счетчика соответствует одной из возможных разностей кодов логических условий (соответствующих ошибочным переходам) выдает в операционный блок 17 признак ошибочного перехода. Если же код счетчика не соответствует ошибочному переходу, то, следовательно, сбой произошел во время реализации данной ли- 15 нейной последовательности. В зависимости от одного из двух возможных результатов диагностирования операционный блок 17 выдает команду на повторение микропрограммы, начиная либо с конкретной линейной последовательности, либо организует повторную реализацию ошибочного перехода.
Это позволяет реализовать оперативный контроль микропрограммного процессора в процессе реализации операции.
Рассмотрим функционирование аппаратуры контроля процеосора.
В первой микрокоманде микроподпрограммы из поля ветвления 14 регистра микрокоманд 12 через элементы 3()
И 34, HJIH 36, и сумматор 39 в счетчик 40 записывается уменьшенный на единицу код числа микрокоманд в этой последовательности. В каждой следующей микрокоманде через элементы ИЛИ 35
33 и 36 и сумматор 39 от содержимого счетчика 40 вычитается единица, срабатывает узел проверки единицы 42, который устанавливает в единицу второй триггер 47, который открывает 4О элементы И 44 и 48.
В последней микрокоманде, в которой осуществляется ветвление, из счетчика 40 единица не вычитается, а с выхода второго узла ветвления 32 через элемент И 35,, открытый сигна- 4 лом с выхода разряда 16 регистра микрокоманд 12, элемент ИЛИ 36 и сумматор 39 добавляется код ветвящих разрядов адреса. Одновременно по сигналу с выхода разряда 16 регистра мик-50 рокоманд 12 через элемент И 44 второй триггер 47 устанавливается в нуль, блокируя формирование сигнала сбоя.
Первая микрокоманда каждой микропрограммы определяется по состоянию пер ого триггера 30. Если триггер установлен в единицу, то этим идентифицируется первая после ветвления микрокоманда..Если же второй триггер 40 находится в нуле, то в поле ветвления Щ
14 регистра микрокоманд 12 содержится либо код ветвления (при единичном значении .разряда 16 регистра микро,команд 12)> либо старшие разряды адре,=а следующей микрокоманды (при нулевом значении разряда 16 регистра микрокоманд 12) . Установка первого триггера 30 в единицу осуществляется по тактовому импульсу и единичному сигналу с выхода разряда 16, которые открывают элемент И 27. В следующей микрокоманде после ветвления через открытый в этом такте элемент И 28 первый триггер 30 устанавливается в нуль.
В первой микрокоманде следующей микроподпрограммы, к которой произошел переход, из содержимого счетчика
40 вычитается увеличенный на единицу код логических условий и добавляется уменьшенное на единицу число микрокоманд в этой микроподпрограмме. Эта информация поступает из поля ветвления 14 регистра микрокоманд 12 через элементы И 28, ИЛИ 29. Далее при отсутствии сбоев процессор функционирует аналогично описанному выше.
В последней микрокоманде последней микроподпрограммы в разряде 16 регистра микрокоманд 12 записана единица. При этом из счетчика 40 микрокоманд вычитается единица, он принимает нулевое значение, возбуждается сигнал на выходе 19 операционного блока 17 и происходит переход к микропрограмме цикла исполнения команды.
Сбои в процессоре могут возникать в схемах формирования адреса или в схемах выборки памяти микрокоманд
11, а также в первом узле ветвления
25.
Это приводит к тому, что в. счетчике оказываются записанными коды, отличные от заданных.
Перед ветвлением микропрограммы правильным является следующий порядок прохождения микрокоманд: первой выдается микрокоманда М1 (предпоследняя в микроподпрограмме), которой соответствует единичный код в счетчике," затем выдается микрокоманда М2 (последняя в.микроподпрограмме), которая имеет единичное значение разряда ветвления 16.
Если сбОй произошел при выполнении предыдущего данной микроподпрограмме ветвления или в самой микроподпрограмме, то это в функциональном отношении приводит к следующим трем случаям: после микрокоманды N1 не выдается микрокоманда N2, микрокоманда М2 выдается раньше микрокоманды М1; микрокоманды М2 и Mi выдаются одновременно.
Рассмотрим работу аппаратуры контроля в этих случаях. В первом случае после срабатывания узла 42 устанавливается в единицу триггер 47, Если в следующем такте разряд 16 регистра микрокоманд 12 имеет нулевое значение, то сигналом с выхода элемента НЕ 45 элемент И 48 открывается и через элемент ИЛИ 50
765809
50 и И 51 триггер фиксации сбоя 52 устанавливается в единицу, блокирует операционный блок 17 и, кромв того, открывает элемент И 37. Через элемент И 37 содержимое счетчика 40 поступает в дешифратор 38 для анализа. Если причиной ошибки является неверный переход, то на выходе дешифратора 38, соответствующем номеру этого перехода, возникает сигнал, который поступает в операционный блок. Если же содержимое счетчика не соответствует одному из возможных остатков при неверном переходе, то принимается решение о сбое при реализации данкой линейной последовательности микрокоманд. 15
Во втором случае по сигналу с выхода разряда 16 регистра микрокоманд
12 срабатывает элемент И 49, открытый нулевым выходом второго триггера 47 и через элементы ИЛИ 50 и И 51 триг- 2щ
rep фиксации сбоя 52 устанавливается в единицу. Далее аналогично описанному производится диагностика сбоя.
В третьем случае по сигналам с выходов узла проверки единицы 42 и разряда 16, регистра микрокоманд 12 срабатывает элемент И 46, который аналогично описанному устанавливает триггер фиксации сбоя 52 в единицу и работа устройства повторяется, Диагностирование осуществляется описанным выше способом.
В предпоследней микрокоманде последней микроподпрограмьы счетчик 40 устанавливается в единицу, а в последней микрокоманде с выхода 16 регистра микрокоманд 12 поступает сигнал метки, поэтому схема контроля не срабатывает и устройство переходит к следующему циклу работы. .Отсутствие сигнала на шинах 22 gp начала операции и 24 конца операции при равенстве нулю счетчика 40 воспринимается как сбой аппаратуры. Кроме того, сигналы отрицательного знака счетчика 40 и переполнения сумматора 39, которые поступают на первые . два входа элемента ИЛИ 50 также воспринимаются, как сбой.
Элемент ИСКЛЮЧИИЦЕЕ ИЛИ 43 возбуждается либо, когда содержимое счетчика 40 микрокоманд равно нулю, но нвт сигналов на шинах 22 и 24, либо в противоположном случае.
Таким образом, введение в процессор деши ратора, второго триггера, узла проверки единицы и указанных 55 связей позволяет существенно повысить оперативность, и глубину диагностирования.
По сравнению с устройством, описанным в основном авторском свидетельстве, проверяется правильность функционирования после реализации каждой микроподпрограммы, а не всей микропрограммы.
Кроме того, оперативно выявляется и место возникновения сбоя при реализации линейной части микропрограммы, либо при ветвлении, что облегчает процесс восстановления информации и уменьшает время поиска неисправности.
Формула изобретения
Микропрограммный процессор по авторскому свидетельству Р 535567, о т л и ч а ю щ и: и с я тем, что, с целью повышения надежности устройства, в него дополнительно введен второй триггер, узел проверки единицы, дешифратор, четвертый элемент HE и с десятого по .четырнадцатый элементы И, причем выход дешифратора соединен с четвертым входом операционного блока, вход дешифратора соединен с выходом десятого элемента И, первый вход которого соединен с единичным выходом триггера фиксации сбоя, второй вход десятого элемента И соединен с выходом счетчика микрокоманд и с входом узла проверки единицы, первый вход одиннадцатого элемента И соединен с единичным выходом второго триггера и с первым входом двенадцатого элемента И, нулевой выход второго триггера соединен с первым входом тринадцатого элемента И, второй вход которого соединен с первым входом четырнадцатого элемента И, с вторым входом одиннадцатого элемента И, через четырнадцатый элемент НЕ с вторым входом двенад- цатого элемента И и с третьим выходом регистра микрокоманд, выход узла про,верки единицы соединен с единичным выходом второго триггера и с вторым входом четырнадцатого элемента И, выход которого соединен с дополнительным четвертым входом седьмого элемента ИЛИ, пятый дополнительный вход которого соединен с выходом тринадцатого элвмента И, дополнительный шестой вход седьмого элемента ИЛИ соединен с выходом двенадцатого элемента И, трвтий вход которого соединен с третьим входом одиннадцатого элемента И и с первым входом счетчика микрокоманд,нулевой вход второго триггера соедийен с выходом одиннадцатого элемента H.
Источники информации, принятые во внимание при экспертизе
1. Авторское свидетельство СССР
9 535567, кл. G 06 F 15/00, 1974 (прототип).
765809
Составитель Г. Пономарева
Ре акто E. Гонча Тех е Ж.Кастелевич Ко екто С. Шекмар
Заказ 6510/45 Тираж ° Подписное
ВНИИПИ Государственного комитета СССР по делам изобретений и открытий
113035 Москва Ж-35 Ра окая наб. д. 4 5 филиал ППП Патент, г. Ужгород, ул. Проектная, 4