Наглядной иллюстрацией практической реализации изложенных выше принципов и расширения функциональных возможностей могут служить секционированные процессоры с микропрограммным управлением. Каждая процессорная секция выполняет расширенные функции операционного автомата небольшой разрядности.
Для повышения разрядности центральный процессор составляется из нескольких секций.
Несмотря на то, что в настоящее время выпуск секционированных процессоров прекращен, их рассмотрение позволит глубже понять принципы построения и функционирования современных однокристальных микропроцессоров и систем, построенных на их основе. В дальнейшем рассматривается секционированный микропроцессор К584.
Структурно–функциональная организация процессора. Структурная схема отдельной микропроцессорной секции изображена рис. 1.6.1.
В состав секции входят следующие узлы:
? арифметическо–логическое устройство (АЛУ), предназначенное для выполнения восьми арифметических и восьми логических операций. На входы АЛУ поступают операнды А, В и сигнал П переноса АЛУ. С выходов АЛУ снимаются результаты операций над операндами А, В, а также выходной сигнал ПВых переноса АЛУ и сигналы G, Р для ускоренного переноса;
?
рабочий регистр (РР)
, выполняющий основные функции при обработке информации;
?
дополнительный регистр (ДР)
, или рабочий регистр расширения, используемый при операциях с двойной точностью,
?
блок регистров общего назначения
(POH)
,
состоящий из восьми регистров Р0…Р7, предназначенных для хранения и обмена информацией между блоками секций. Регистр Р7 обычно используется для выполнения функций счетчика, который обеспечивает Последовательность выполнения команд: при увеличении содержимого счетчика на +1 выполняется следующая микрокоманда; при увеличении на +2 следующая микрокоманда пропускается; режим отсутствия счета используется для занесения нового содержимого в Р7, что необходимо для реализации переходов;
?
блок позиционного управления (БПУ)
, вносящий необходимые изменения в работу секции в зависимости от занимаемой ею позиции (младшей, средней, старшей) в процессоре, составленном из нескольких секций. Требуемая позиция секции устанавливается с помощью сигналов П1, П0;
?
сдвигатели рабочего и дополнительного регистром (
C
РР, СДР)
при использовании сигналов БПУ позволяют выполнить операции сдвига содержимого указанных регистров;
?
схема селекции (СС),
осуществляющая выбор разрядов дополнительного регистра ДР в зависимости от позиции, занимаемой секцией. С ее двухфункциональной выходной линии снимается младший (ДРО) или старший (ДРЗ)
разряды содержимого ДР;
?
блок инкрементора (БИ),
предназначенный для изменения содержимого счетчика команд счетчика в зависимости от значений сигналов переноса на входе счетчика (ПСТ) и управления инкрементором (УИ), поступающих на их вход. С выхода блока инкрементора БИ снимаются выходной сигнал переноса счетчика (ПСТВых) и старшие разряды операндов А (СтА) и В (СтВ). Режимы работы схемы селекции СС и блока инкрементора БИ координируются сигналами П1, П0, поступающими на вход блока позиционного управления БПУ (табл. 1.6.1). С помощью сигналов, поступающих на вход БИ, устанавливается режим работы регистра Р7 — счетчик или
POH
(табл. 1.6.2);
? мультиплексор
A (MA)
управляет прохождением операндов А из
POH
или входной шины (ШВх) на вход АЛУ или выходную шину (ШВых). Входная и выходная шины составлены из 4–х линий;
? мультиплексор В
(MB)
управляет прохождением операндов В с
РР, ДР или ШВх на вход АЛУ; выходной мультиплексор (МВых) осуществляет передачу операнда А, а также операндов с выхода АЛУ на ШВых или входы
РР, ДР,
POH;
? мультиплексор адреса (МАдр) принимает операнды, поступающие на его вход из регистров
РР, ДР и счетчика команд (Р7), и передает их на шину адреса (ШАдр), составленную из 4–х линий. Если на управляющий вход мультиплексора МАдр, называемый входом приоритета счетчика
(ПР), поступает сигнал, ПР = 1, то на ШАдр выдается содержимое счетчика (Р7). При ПР = 0 на ШАдр поступает содержимое РР или ДР в зависимости от конкретной выполняемой микрокоманды;
? программируемая логическая матрица (ПЛМ) преобразует 9–разрядный код микрокоманды, который поступает в секцию по шине микрокоманд (ШМК), составленной из 9–и линий, в 20–разрядное внутреннее управляющее слово, обеспечивающее управление работой всех блоков микропроцессорной секции;
? регистр микроопераций (РМО), состоящий из 20– и
D
–триггеров, предназначен для запоминания внутреннего управляющего слова на время выполнения микрокоманды. Использование регистра микроопераций РМО, загрузка которого производится по положительному фронту синхроимпульса (при изменении сигнала из 0 в 1), позволяет во время выполнения текущей микрокоманды производить в ПЛМ прием и преобразование кода следующей микрокоманды.
Система микрокоманд. Код микрокоманды состоит из девяти разрядов (К8/К0). Используется два формата кода микрокоманд:
? первый формат содержит операционное поле из 4 старших разрядов К8/К5, определяющее в основном функции АЛУ; дополнительное поле из разрядов К4 и КЗ, расширяющее возможности кодирования; селекторное поле из трех младших разрядов К2/К0 (ррр), позволяющее выбрать один из восьми
POH,
который участвует в выполняемой микрооперации;
? второй формат состоит из одного поля, содержащего все разряды К8/К0 кода МК.
Для удобства пользования система микрокоманд разбивается на шесть групп. Рассмотрим особенности МК каждой группы.
Группа 1.
С помощью МК этой группы (табл. 1.6.3) выполняются МО пересылки между внутренними узлами МПС без участия АЛУ. Источником информации является
POH
(Р) или ШВх, приемником —
POH
(Р), РР, ДР или ШВых.
Группа 2.
В эту группу (табл. 1.6.4) включены арифметические и логические операции, выполняемые АЛУ. Операции, обозначенные в табл. 1.6.4 звездочкой (*), зависят от кода
kkkk
и приведены в табл. 1.6.5. Эти операции выполняются в общем случае над операндами А, В, поступающими в АЛУ соответственно через мультиплексоры А, В (рис. 1.6.1), из источников указанных в графе «Описание микрооперации» табл. 1.6.4 (левая колонка относится к операнду А, а правая — к операнду В).
Следует выделить три вида операций (табл. 1.6.5).
Операции над двумя операндами.
К ним относятся три (1–3) арифметических и все восемь (8–15) логических операций.
Операции над одним операндом.
Эти операции (4–7) позволяют выполнить передачу через АЛУ прямого, обратного или дополнительного кода операндов А и В, а также пересылку с приращением: А + 1, В + 1.
Операции без участия операндов.
Операцию П = 1 – ?П можно использовать для установки нулей и единиц во всех разрядах любого из четырех приемников информации: Р, РР, ДР, ШВых.
Группа 3.
Операции этой группы (табл. 1.6.6) позволяют выполнить сложение, комбинируя источники (Р, РР ДР, ШВх) и приемники (Р, РР, ДР, ШВых) информации. Операции ДР + П (3.7, 3.12) фактически являются пересылочными и дополняют операции группы 1, причем имеется возможность инкрементировать содержимое дополнительного регистра ДР.
Группы 4, 5.
Эти операции (табл. 1.6.7 и 1.6.8) позволяют реализовать полный набор сдвигов содержимого, рабочего регистра (РР) или регистра двойной длины (РР, ДР), составленного из последовательного соединения РР и ДР. В последнем случае возможно совмещение сдвига с подсуммированием сигнала переноса П в РР.
Различают арифметические, логические и циклические сдвиги вправо и влево на один разряд, которые соответственно имеют обозначения: САП, САЛ, СЛП, СДЛ, СЦП, СЦЛ. Выполнение отдельных операций сдвигов проиллюстрировано в виде диаграмм на рис. 1.6.2.
При арифметических сдвигах старший (левый) разряд используется как знаковый; при сдвигах вправо он сохраняется. При работе с операндами двойной длины различают одно– и двухзнаковые сдвиги, реализуемые в старшей позиции МП соответственно при П0 = 1 и П0 = 0. В первом случае старший разряд выходной шины АЛУ помещается только в старший разряд рабочего регистра РР, во втором случае — в старшие разряды РР и ДР. При логических сдвигах место освободившегося разряда занимает нуль. Для циклических сдвигов характерно о, что информация циркулирует вдоль регистров, не покидая их.
Группа 6.
Операции этой группы (табл. 1.6.9) позволяют выполнить сложение или вычитание при активном сигнале переноса П в сочетании с правым арифметическим или левым циклическим сдвигом результата в регистре двойной длины РР, ДР Эти микрооперации обеспечивают эффективную реализацию алгоритмов умножения и деления двоичных чисел.