Изобретение относится к вычислительной технике, в частности к нроектированию процессоров с контролем.
Известны микропрограммные процессоры, содержащие операционный блок, нервый выход которого через блок сопряжения с оперативной памятью и регистр кода операций соединен с первым входом первого элемента И, выход которого через первый элемент ИЛИ соединен с первым входом регистра адреса микрокоманд, выход которого через блок памяти микрокоманд соединен со входом регистра микрокоманд, первый и второй выходы которого соединены с иервы.м и вторым входами операционного блока, второй н третий выходы которого шинами начала и конца операции соединены со вторыми входами первого элемента И и регистра адреса микрокоманд соответственно и со входами второго элемента ИЛИ. Выход второго элемента ИЛИ через первый элемент НЕ соединен с первыми входами второго и третьего элементов И, выходы которых через первый и третий элементы ИЛИ соответственно соединены с первым и третьим входа.ми регистра адреса микрокоманд, четвертый вход которого соединен с первы.м входом счетчика микрокоманд н шиной синхронизации с четвертым выходом операционного блока, нятый выход которого соединен со вторым входом счетчика микрокоманд, а шестой выход соединен с управляющим входом блока памяти микрокоманд н с первым входом четвертого элемента И. Выход четвертого элемента И соединен с единичным
входом триггера фиксации сбоя, единичный выход которого соединен с третьим входом операционного блока, седьмой выход которого соединен с первым входом первого узла ветвления, второй вход которого соединен с третьим выходом регистра микрокоманд, третий вход соединен со вторым входом второго элемента И и выходом регистра микрокоманд, четвертый выход которого соединен со вторым входом третьего элемента И, выход первого
узла ветвления через третий элемент ИЛИ соединен с третьим входом регистра адреса микрокоманд.
Однако в известных процессорах осуществляется контроль микропрограммных последовательностей параллельно с работой процессора только для неразветвленных участков микропрограммы и требует дополнительного времени для выборки нроверочных чисел из оперативной памяти, что замедляет работу продессора. Проверка разветвляющихся участков микропрограмм производится только в тестовом режиме и отнимает значительную часть рабочего времени процессора. Целью изобретения является повышение надежности и увеличение быстродействия. предлагаемый микропрограммный процессор отличается от известных тем, что в него дополнительно введены сумматор приращений, второй узел ветвления, узел проверки нуля, триггер, элементы И, ИЛИ, НЕ, ИСКЛЮЧАЮЩЕЕ ИЛИ, причем первый вход второго узла ветвления соедин §н с одноименным входом первого узла ветвления, второй вход которого соединен с первыми входами пятого и HiecToro элементов И, через второй элемент НЕ- с первыми входами седьмого и восьмого элементов И, через четвертый элемент ИЛИ и третий элемент НЕ - с третьим входом второго элемента И и с первым входом пятого элемента ИЛИ, со вторым входом второго узла ветвления, третий вход которого соединен с третьим входом первого узла ветвления и с первым входом девятого элемента PI, а выход второго узла ветвления соединен со вторым входом пятого элемента И, второй вход шестого элемейта И соединен с четвертым выходом операционного блока, а выход соединен с единичным входом триггера. Единичный выход триггера соединен со входом четвертого элемента ИЛИ и со вторым входом седьмого э е -тента И, выход которого соединен со вторым входом девятого элемента И, выходы йятого и девятого элементов И и пятого элемента ИЛИ через шестой элемент ИЛИ соединены с первым входом сумматора приращений, первый выход которого соединен с третьим входом счетчика микрокоманд, первый выход которого соединен со вторым входом сумматора приращений и через узел проверки нуля - с первым входом элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, второй вход которого соединен с выходом второго элемента ИЛИ и входом пятого элемента ИЛИ. Выход элемента ИСКЛЮЧАЮЩЕЕ ИЛИ и вторые выходы счетчика микрокоманд и сумматора приращений через седьмой элемент ИЛИ соединены со вторым входом четвертого элемента И, второй вход восьмого элемента И соединен с шестым выходом операционного блока, а выход соединен с нулевым входом триггера..Это позволяет осуществлять контроль микропрограммных последовательностей, включая последовательности с ветвлениями, наралелльно е работой процессора и не замедляет его работу. Функциональная схема микропрограммного процессора показана на чертеже. Микропрограммный процессор содержит собственно аппаратуру 1 процессора и аппаратуру 2 контроля последовательности. Микрокоманды выбираются из памяти 3 микрокоманд в регистр 4 микрокоманды, содержащий поле 5 микрокоманды, поле 6 ветвления, адресное поле 7 и разряд 8 удлинения адресного поля. Поле 5 микрокоманды управляет работой операционного блока 9. Поле 6 ветвления используется в двух назначениях в зависимости от состояния разряда 8 удлинения адресного поля. В обычных микрокомандах в разряде удлинения адресного поля записывается нуль и далее 6 ветвления совместно с адресным полем 7 образуют поЛноразрядный адрес следующей микрокоманды. Выход четвертого элемента ИЛИ 10 имеет при этом значение нуль и через третий элемент НЕ И разрешается работа второго элемента И 12, который передает поле ветвления через первый элемент ИЛИ 13 в старшие разряды регистра 14 адреса микрокоманд, а адресное поле 7 через третьи элементы И 15, ИЛИ 16 передается в его младшие разряды. В микрокомандах, в которых производится ветвление по заданному признаку, в разряде удлинения адресного поля 8 записывается единица, а в поле 6 ветвления записывается код, соответствующий проверке заданного признака. Выход разряда удлинения адресного поля 8 через четвертый элемент ИЛИ 10 и третий элемент НЕ 11 блокирует работу второго элемента И 12, запрещая передачу поля ветвления в старшие разряды регистра 14, адреса микрокоманд, и адрес следующей микрокоманды определяется адресным полем 7, передаваемым через третьи элементы И 15, ИЛИ 16 в младшие разряды регпстра адреса микрокоманд, старшие разряды которого остаются неизменными. Поле 6 ветвления и проверяемые признаки, вырабатываемые операционным блоком 9 на седьмом его выходе передаются на первый вход первого узла 17 ветвлепий, работа которого разрешается при единичном состоянии разряда удлинения адресного поля 8. Выработанный на выходе первого узла ветвлений код через вход третьего элемента ИЛИ 16 передается в младшие разряды регистра адреса микрокоманд, изменяя таким образом адрес следующей микрокоманды в соответствии с результатами ироверки заданного признака. При этом замещаемые кодом ветвления младшие разряды адреса, записанные в адресном поле 7, должны содержать нули. Прием информации в регистр 14 адреса микрокоманд стробируется синхронизирующим сигналом, вырабатываемым операционным блоком 9 в процессе выполнения текущей микрокоманды на шине 18 синхронизации. Выборка микрокоманды управляется операциоиным блоком 9 с помощью передачи сигналов по щине 19 чтения микрокоманд в память 3 микрокоманд. Связь с оперативной памятью осуществляется с помощью блока 20 сопряжения с оперативной памятью. Операционный блок 9 осуществляет арифметические и логические преобразования информации и контролирует правильность их выполнения. Правильность считывания информации из памяти 3 микрокомаид в регистр 4 микрокоманды также контролируется по четности операционным -блоком 9. Выполнение команды разделено на два цика: цикл выборки команды из оперативной наяти и адресных преобразований и цикл исолнения команды в соответствии с кодом опеации. Цикл выборки команды и адресных реобразований является общим для всех оманд, цикл исполнения команды включает
различные микропрограммы для разных команд.
В конце цикла выборки команды и адресных преобразований ее код операции передается в регистр 2 кода операции и операционный блок 9 возбуждает сигнал на шине 22 начала операции. При этом код онерации комаиды через первые элементы И 23, ИЛИ 13 передается в старшие разряды регистра 14 адреса микрокоманд и начинает выполняться микропрограмма цикла исполнения команды.
В конце микрокоманды исполнения команды оиерационный блок 9 возбуждает сигнал на шине 24 конца операции, который гасит регистр адреса микрокоманд и осуществляет переход к выполнению микропрограммы цикла выборки следующей команды, начинающейся с нулевого адреса.
При наличии сигнала на шине иачала операции или на шиие конца операции выход второго элемента ИЛИ 25 имеет единичное значение, выход первого элемента НЕ 26 имеет нулевое значение и прием информации в регистр 14 адреса микрокоманд из регистра 4 микрокоманд через второй элемент И 12 и третий элемент И 15 блокируется, а осуществляется либо путем информации в регистр 14 адреса микрокоманд из регистра 21 кода операции через первые элементы И 23, ИЛИ 13 либо гашение регистра адреса микрокоманд соответственно.
В ходе выполнения циклов выборки и исполнения команды сигналы на шинах начала операции и конца операции отсутствуют, выход второго элемента ИЛИ 25 имеет нулевое значение, а первого элемента ПЕ 26 имеет единичное значение и прием информации в регистр 14 адреса микрокоманд осуществляется через второй элемент И 12, первый элемент ИЛИ 13, и третьи элементы И 15, ИЛИ 16 из соответствующих полей регистра 4 микрокоманды, как ОПисано выше. Для возбуждения сигналов на шинах 22 начала операции и шинах 24 конца операции используются фиксированные значения кодов ветвления.
При работе микропрограммного процессора весьма важным является контроль работы схем образования адреса следующей микрокоманды и схем управления выборкой памяти 3 микрокоманд, так как сбои .этой аппаратуры могут привести к нарушениям последовательности микрокоманд в микропрограмме, которые не будут Обнаружены схемами контроля сч1пъ1ваиня информации из памяти микрокоманд.
Контроль микропрограммных последовательностей осуществляется следующим образом.
Все микропрограммы представляют собой микроподпрограммы, внутри которых отсутствуют ветвления. Ветвления ослчцествляются нрн переходах от одной микропод1 рограммы к другим. Циклы реализуются обычными методами ветвлений.
При правильной работе процессора к началу микропрограммы цикла выборки или цикла исполнения команды счетчик 27 микрокоманд должен быть погащен.
Рассмотрим выполнение микропрограммы цикла выборки команды. В первой микрокоманде первой микропрограммы из поля ветвления через девятый элемент PI 28, шестой элемент ИЛИ 29 и сумматор приращений 30 в счетчик 27 микрокоманд заносится уменьшен0ное на единицу число микрокоманд в этой микроноднрограмме. В каждой последующей микрокоманде через пятый и шестой элементы ИЛИ 31, ИЛИ 29 и сумматор приращений 30
5 Из счетчика микрокоманд вычитается единица. В носледней микрокоманде этой микроподпрограммы, в которой осуществляется ветвление, из счетчика 27 микрокоманд не вычитается единица, а через пятый элемент И 32,
0 шестой элемент ИЛИ 29 и сумматор приращеиий 30 добавляется код ветвящихся разрядов адреса, вырабатываемый вторым узлом ветвления 33.
В первой микрокоманде следующей микро5 подпрограммы, к которой ироизошел переход в результате ветвления, из содержимого счетчика 27 микрокоманд вычитается увеличенный на единицу код ветвящихся разрядов адреса и добавляется уменьшенное на единицу число микрокоманд в этой микроподпрограмме. Эта информация берется из поля 6 ветвления регистра 4 микрокоманды и чепез девятый элемент И 28 и щестой элемент ИЛИ 29 добавляется в сумматоре приращений 30 к содержимому счетчика 27 микрокоманд и результат засылается в счетчик микрокоманд. В каждой последующей микрокоманде этой микроподпрограммы также вычитается единица. В иоследней микрокоманде этой микроподпрограммы вместо вычитания единицы к счетчику 27 микрокоманд прибавляется код ветвящихся разрядов адреса и т. д.
Работа счетчика микрокоманд описанным выше способом осуществляется до выполнения
5 последней микрокоманды микропрограммы нгткла выборки команды. В последней микрокоманде носледней микрополпрограммы в отличие от всех предшествующих окончаний микроподпрограмм с ветвлениями из счетчика
0 микрокоманд вычитается единица, счетчик принимает зцачение О, возбуждается сигнал на тине 22 начала операции и происходит переход к микроирогралтме цикла исполнения команды. Схемы контроля проверяют равеи5 ство нзлю счетчика 27 микрокоманд и в проТБВном случае фиксируют собой последовательности.
При неисправности в схемах формирования адреса или в схемах зыборкн памяти 3 микрокоманд, или в нервом узле зетв.ления 17 в про0цессе выполнения неразветв,тяю1цмхся микроподпрограмм происходит наруитенпо последовательности, выполняется число микрО чОманд, отличное от заданного в счетчике микрокоА анд
5 и к концу выполнения всей микропрограммы
счетчик 27 микрокоманд не будет равен нулю. При Выполнении ветвящихся переходов между микроиод-программа.ми неисправность в указанных схемах приводит к неправильной коррекции содержимого счетчика микрокоманд в конце операции и фиксируется схемами контроля.
При неисправности в аппарате 2 контроля последовательности происходит неправильный подсчет, и в конце операции счетчик 27 микрокоманд также не будет равен НУЛЮ.
Контроль последовательности микропрограммы цикла исполнения команды осуществляется описанным способом. В последней микрокоманде возбуждается сигнал на шине 24 конца опеоации и проверяется равенство нулю счетчика 27 микрокоманд.
Отсутствие сигнала на шине 22 начала операции или шине 24 конца операции при равенстве нулю счетчика 27 микпокоманд воспринимается аппаратурой 2 контроля как сбой последовательности. Кроме того, появление отрицательного знака и переполнение счетчика микрокоманд также соответствует сбою последовательности.
Пеппый ллрл р.ет1 лений 17 прелназначен для сЬормирования адреса микрокоманды, а второй узел ретр.лрний З-- - для приращения содержргмого счетчикл 29 микрокоманд при выполнении УСЛОВНЫХ переходов в микропрограмме. При правильной работе носле выполнения условного перехода это прирашение содержимого счетчика микрокоманд должно быть скорректировано. Наличие двух дублированных УЗЛОВ ветвлений позволяет контролиповать правильность выполнения ветвлений. При сбое во втором узле ветвлений 33 происходит прибавление к счетчику 27 микрокоманд неправильного кода ветвящихся разрядов адреса, а при сбое в первом узле ветвлений 17 - нереход не к заданной микроподнрограмме, что ПРИВОДИТ к неправильной коррекции счетчика 27 микрокоманд в следующей после ветпления микрокоманде, и. в конечном счете, к неравенству нулю счетчика микрокоманд в конце цикла выборки или исполнения
.
Первая микрокоманда каждой микроподпрограммы содержит в поле б ветв.ления уменьшенное на единицу число микрокоманд в этой микропрограмме. Адрес следующей за ней микпокоманды определяется только полем 7, хотя разряд удлинения адресного поля 8 равен гплю. Первая микрокоманда каждой микроподпрогряммы определяется по состоянию триггера 34. Если триггер находится в единичном состоянии, то это означает, что выполняется первая после ветвления микрокоманда, в поле б ветвления которой содержится код для коррекции счетчика 27 микрокоманд. Если тпиггеп нахотится в нулевом состоянии, то поле ветвления выполняемой микрокоманды содержит либо код ветвления, либо старшие разряды адреса следующей микрокоманды в зависимости от значения разряда удлинения
адресного поля 8. Каждое ветвление сопровождается единичным значением разряда удлинения адресного поля 8, который при наличии илгаульса на шине 18 синхронизации открывает шестой элемент И 35 и устанавливает в единичное состояние триггер 34. Единичный выход триггера соединен со вторым входом седьмого элемента И 36, первый вход которого через второй элемент НЕ 37 соединен с разрядом удлинения адресного ноля 8.
Вход гашения триггера 34 соединен с выходом восьмого элемента И 38, первый вход которого через второй элемент НЕ 37 соединен с разрядом удлинения адресного поля 8, а второй вход соединен с щиной 19 чтения микрокоманд. Таким образом триггер 34 устанавливается в единичное состояние в микрокоманде с ветвлением, а гасится в конце следующей за ветвлением микрокоманды (при чтении второй после ветвления микрокоманды). При этом седьмой элемент И 36 будет открыт только в течение первой после ветвления микрокоманды и откроет второй вход девятого элемента И 28, первый вход которого связан с полем б ветвления регистра 4 микрокоманды.. Выход девятого элемента И 28 соединен со входом шестого элемента ИЛИ 29. выход которого соединен с первым входом сумматора 30 приращений, второй вход которого соединен с первым выходом счетчика 27 микрокоманд, а выход соединен с третьим входом счетчика микрокоманд. Сумматор приращений 30 предназначен для контроля выполнения ветвлений. Через него осуществляется приращение счетчика 27 микрокоманд при вынолнеции ветвлений и коррекция содержимого счетчика микрокомаид носле выполнения ветвлений. Таким образом через девятый элемент И 28 и шестой элемент ИЛИ 29 в цервой после ветвления (а после конца и начала онерации) микрокоманде в сумматоре ирцращений 30 к содержимому счетчика 27 микрокоманд добавляется содержимое поля 6 ветвления и результат иомещается в счетчик 27 микрокомаид.
В процессе выполнения каждой последующей микрокоманды, кроме последней в микроподпрограмме, из счетчика 27 микрокоманд вычитается единица (а также и в микрокомандах конца оперании и начала операции). Выход третьего элемента НЕ П. связанного по входу через четвертый элемент ИЛИ 10 с разрядом удлинения адресного поля 8 и триггером 34, имеет единичное значение во всех микрокомандах, кроме первой и последней микрокоманд каждой микроподпрограммы. При этом выход третьего элемента НЕ 11 соединен с первым входом пятого элемента ИЛИ 31, выход КОТОРОГО соединен со входом щестого элемента ИЛИ 29. Второй вход пятого элемента ИЛИ 31 соединен с выходом второго элемента ИЛИ 25, KOTOPFJUI возбуждается при наличии сигнала либ на шине 22 начала операции, либо на щине 24 конца операции. В случае возбуждения одного из выхо9
дов пятого элемента ИЛИ 31 через шестой элемент ИЛИ 29 в сумматоре приращений 30 происходит вычитание единицы из содержимого счетчика 27 микрокоманд.
При выполнении микрокоманды с ветвлением выход разряда 8 удлинения адреса подается на первый вход пятого элемента И 32, на второй вход которого подается код ветвящихся разрядов адреса, вырабатываемых вторым узлом ветвлений 33. Выход пятого элемента И 32 соединен с третьим входом щестого элемента ИЛИ 29. Таким образом при выполнении микрокоманд с ветвлениями код ветвящихся разрядов адреса через пятый элемент И 32 и шестой элемент ИЛИ 29 поступает на вход сумматора приращений 30 и добавляется к счетчику 27 микрокоманд.
Гашение счетчика 27 микрокоманд осуществляется сигналом на шине гатаения счетчика 39. Работа счетчика 27 микрокоманд синхронизирована сигналом на шине 18 синхронизации.
Выход счетчика 27 микрокоманд соединен со входом узла 40 проверки нуля, выход которого соединен с первым входом элемента ИСКЛЮЧАЮЩЕЕ ИЛИ 41, второй вход которого соединен с выходом второго элемента ИЛИ 26. Элемент ИСКЛЮЧАЮЩЕЕ ИЛИ 41 возбуждается либо когда содержимое счетчика 27 микрокоманд равно ндлю, но нет сигналов на шинах 22 начала операции или шинах 24 конца операции, либо когда есть сигналы на шинах начала операции или конца операции, но счетчик микрокоманд не равен НУЛЮ.
Выход элемента ИСКЛЮЧАЮЩЕЕ ИЛИ 41 соединен с первым входом седьмого элемента ИЛИ 42, второй вход которого соединен с единичным выходом знакового разряда (отрицательный знак) счетчика микрокоманд, третий его вход соединен с выходом переполнения сумматора прирашений 30, а выход соединен со вторым входом четвертого элемента И 43, второй вход которого соединен с шиной 19 чтения микрокоманд. Выход четвертого элемента И 43 соединен с единичным входом триггера 44 фиксации сбоя, единичный выход которого соединен с третьим входом операционного блока 9.
Таким образом триггер 44 фиксации сбоя устанавливается в единичное состояние при несовпадении сигналов на шинах начала операции или конца операции с сигналом равенства счетчика микрокоманд, а также в случае переполнения сумматора приращений и появления отрицательного содержимого счетчика микрокоманд. При этом операиионный блок 9 прскрптцлст выполнение текуцдей цоследовате.гыюсти.
Фор м у л а изобретения
А1икропрограммный процессор, содержащий операпирнный блок, первый выход которого чепез блок сопряжения с оперативной памятью и регистр кода операций соединен с нервым входом первого элемента И, выход которого через первый элемент ИЛИ соединен
10
с первым входом регистра адреса микрокоманд, выход которого через блок памяти микрокоманд соединен со входом регистра микрокоманд, первый и второй выходы которого соединены с первым и вторым входами операционного блока, второй и третий выходы которого шинами начала и конца операции соединены со вторыми входами первого элемента И и регистра адреса микрокоманд соответственно и со -в.ходами второго элемента ИЛИ, выход которого через первый элемент НЕ соединен с первыми входами второго и третьего элементов И, выходы которых через первый и третий элементы ИЛИ соответственно соединены с первым и третьим входами регистра адреса микрокоманд, четвертый вход которого еоединен с первым входом счетчика микрокоманд и шиной синхронизации с четвертым выходом операционного блока, пятый выход
которого соединен со вторым входом счетчика микрокоманд, а шестой выход соединен с управляюшим входом блока памяти Л1икрокоманд и с первым входом четвертого э.лемента И, выход которого соединен с единичны.
входом триггера фиксации сбоя, единичный выход которого соединен с третьим входом операционного блока, седьмой выход которого соединен с первым входом первого узла ветвления, второй вход которого соединен с третьим выходом регистра микрокоманд, третий вход соединен со вторым входом второго элемента И и выходом регистра микрокоманд, четвертый выход которого соединен со вторым входом третьего элемента И, выход первого
узла ветвления через третий элемент ИЛИ соединен с третьим входом регистра адреса микрокоманд, о т л ич а ю П1.и и с я тем, что, с целью повышения надежности и увеличения быстродействия, в него дополнительно введены сумматор прирашений, второй узел ветвления, узел проверки НУЛЯ, триггер, элементы И, ИЛИ. НЕ, ИСКЛЮЧАЮЩЕЕ ИЛИ, причем первый вход второго узла ветвления соединен с одноименным входом первого узла ветвления, второй вход которого соединен с первым-и входами пятого и шестого элементов И, через второй элемент НЕ - с первыми входами седьмого и восьмого э.лементов И, через четвертый элемент ИЛИ и третий элемент НЕ -
с третьим входом второго элемента И и с первым входом пятого элемента ИЛИ, со вторым входом второго узла ветв.чения, третий вход которого соединен с третьим входом первого узла ветвления и с первыл1 входом девятого
элемента И, а выход второго уз.ла ветв.лення соединен со вторым входом пятого элемента И, второй вход шестого элемента И соединен с четвертым выходом операционного блока, а выход соединен с единичным входом
триггера, единичный выход КОТОРОГО соединен со входом четвертого элемента ИЛИ и со вторым входом седьмого элемента И, выход которого соетинен со вторым входом девятого элемента И, выходы пятого и девятого элементов И и пятого элемента ИЛИ через шестой
название | год | авторы | номер документа |
---|---|---|---|
Микропрограммный процессор | 1978 |
|
SU765809A2 |
Микропрограммное устройство для контроля и управления | 1985 |
|
SU1325476A1 |
Микропрограммное устройство управления | 1974 |
|
SU503240A1 |
Микропрограммное устройство управления | 1982 |
|
SU1156071A1 |
Микропрограммное устройство управления | 1983 |
|
SU1142833A1 |
Устройство для программного управления | 1988 |
|
SU1500994A1 |
Микропрограммное устройство управления | 1980 |
|
SU881748A1 |
Микропрограммное устройство управления (его варианты) | 1983 |
|
SU1125625A1 |
Микропрограммное устройство управления | 1983 |
|
SU1109751A1 |
Микропрограммное устройство управ-лЕНия | 1979 |
|
SU842815A1 |
Авторы
Даты
1976-11-15—Публикация
1974-06-10—Подача