Организация интегральной операционной части

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

Интегральные ОЧ выпускаются в виде разряднонаращиваемых процессорных секций (ПС) по 2, 4, 8, 16 бит. Процесс проектирования ОЧ на базе ПС упрощается по сравнению с ранее рассмотренным алгоритмом разработки ОЧ на дискретных компонентах.

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

В качестве примера рассмотриморганизацию интегральной ОЧ типа К584ВМ1 (рис. 13). Этот микропроцессор выполнен по технологии И2Л (интегральной инжекционной логики), относится к системам среднего быстродействия, по входам и выходам совместим с элементами ТТЛ технологий, обеспечивает реализацию микроинструкций за цикл, равный 300 – 500 нс. ПС имеет разрядность 4 бита, разряднонаращиваема, выполняет 512 микроинструкций, что позволяет реализовать любую требуемую систему операций.

Основу ОЧ составляет комбинационное арифметико-логическое устройство (АЛУ), выполняющее 8 логических и 8 арифметических действий над двоичными дополнительными кодами. АЛУ имеет два входа, подключенных к мультиплексору первого операнда (МА) и к мультиплексору второго операнда (МВ). Мультиплексоры коммутируют выходные шины возможных источников операндов: усилителей входной шины (ШИНВх), блока регистров общего назначения (БРОН), рабочего регистра (аккумулятора) (РР), расширителя (РРР). Результат с выхода АЛУ может поступать на буферы (ВБ) шины выхода (ШИНВых) и во все вышеперечисленные регистры.

Регистры РОН0 - РОН7 используются как внутренняя сверхоперативная память, РОН7 также может использоваться как накапливающий регистр программного счётчика ПСч, который состоит из РОН7 и комбинационного инкрементора ИПСч. Код с выхода АЛУ также может сдвигаться влево или вправо в мультиплексорах одинарного сдвига СДВ1 и в мультиплексорах сдвига двойного слова СДВ2. Результаты сдвигов фиксируются в РР и в РРР.

АЛУ, ПСч, сдвигатели разрядно наращиваются соответственно по входу и выходу переноса АЛУ (ПАЛУ), инверсным входу и выходу ПСч, двунаправленным инверсным входам/выходам !СД1, !СД2. ИПСч в младшей позиции, в зависимости от условий на входе управления инкрементом (УИ), может вести счёт на +1 или +2, что позволяет использовать ПСч как источник адреса командного цикла с выводом результата на адресную шину (ШинА). Через мультиплексор адреса (МАДР) на ШинА можно также выводить принудительно адрес из РР или РРР при пассивном состоянии сигнала ПР (приоритет).

Управление ПС осуществляется кодом микроинструкции, который вводится по 9-разрядной шине кода микроинструкции (КМИ). Дополнительно в большинстве микроинструкций в управлении участвует входной перенос (ВхПАЛУ). Кроме этого, на ряд операций могут влиять сигналы на входах сдвига !СД1, !СД2. Код микроинструкции на внутренней программируемой логической матрице (ПЛМ) разворачивается в 20-разрядный внутренний код управления (ВнУПР), который фиксируется в регистре операций (РО). Фиксация внутреннего кода управления в РО осуществляется по синхроимпульсу (СИ). Период СИ определяет длительность микрокомандного цикла.

На ПЛМ также воздействуют два бита позиции (ПОЗ 1,0), которые определяют модификацию инструкции в зависимости от позиции ПС в разрядной сетке ОЧ. В старшей секции необходимо обрабатывать знаки. В младшей секции учитывать входные переносы АЛУ, ПСч и воздействие сигнала управления инкрементом. В средних секциях модификации микроинструкции не осуществляется. Кодировка ПОЗ для каждой секции задается жестко путём распайки на плате. ЛУ по окончании


 

 

 

 

каждого микрокомандного цикла могут выводиться на шины ВыхПАЛУ, старший бит мультиплексора А3, старший бит мультиплексора В3, выходы сдвигов !СД1, !СД2, 3/0 бит (старший/младший бит РРР). Многоразрядные коды, как условия, можно выводить на ШИНВых и ШИНА с дальнейшим анализом в блоке микропрограммного управления (до 8 битов/цикл).

Примеры реализации операций в интегральной ОЧ

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

1. Исходный алгоритм детализируется до уровня регистровых пересылок.

2. Размещение необходимых переменных и констант закрепляется за определенными регистрами интегральной ОЧ (распределение аппаратных средств).

3. Формальным регистрам, задействованным в алгоритме, ставятся в соответствие физические регистры ОЧ, при этом учитывается, что сумматор комбинационный (нет накопления результата).

4. Осуществляется отображение исходного алгоритма в системе микроинструкций.

5.

 
 

Выполняется моделирование исполнения микропрограммы на инструментальных средствах либо отладка на макете ОЧ.

Рассмотрим пример выполнения логической операции. В соответствии с приведённой выше методикой исходный алгоритм (рис. 14 а) детализируется до уровня регистровых пересылок (рис. 14 б). Закрепляем за логическим регистром R1 физический регистр РОН0, а за логическим регистром R2 – РОН1. Для размещения результата будем использовать РОН2. Учитывая систему микроинструкций и комбинационные свойства сумматора, для сохранения промежуточных результатов и пересылок используем РР.

Результирующая микропрограмма приведена на рис. 14 в.

Если в ОЧ реализуется набор микропрограмм (операций), то рекомендуется в общем алгоритме работы микроЭВМ реализовать общий протокол ввода и общий протокол вывода для всех операций, то есть исходные операнды и результаты будут размещаться в одних и тех же регистрах для всех операций.

Пример фрагмента микропрограммы операции суммирования чисел в прямых кодах представлен в табл. 4. Исходным считаем алгоритм, приведённый на рис. 9, а отображение на уровень регистровых пересылок выполнено при разработке соответствующей ГСА (см. рис. 11). За исходными операндами закрепляются РОН0, РОН1, за результатом – РОН2. В РОН3 хранится константа вида 10…0, РОН4 и РОН5 используются для временного размещения модулей операндов. Мнемокоды инструкций соответствуют требованиям отладчика К584EMUL.

Таблица 4

Микропрограмма операции суммирования

Адрес Мнемокод инструкции Примечание
00 0000 PОН0:=ШИНвх Ввод операнда А
00 0001 PОН1:=ШИНвх Ввод операнда В
00 0010 РР:=!PОН0+П (П=1) А = 0 ? Если да, то идти к 27
00 0011 РР:=!PОН1+П (П=1) В = 0 ? Если да, то идти к 29
00 0100 РР:=!П (П=1) РР = 0..0
00 0101 РР:=СЦП (РР+П) (П=1) РР = 10...0
00 0110 PОН3:=РР+П (П=0) Сохранение маски 10...0 в РОН3
00 0111 РР:=PОН0+П (П=0) Пересылка А
00 1000 РР:=!PОН3 and РР Выделение Ам
00 1001 PОН4:=РР+П (П=0) Сохранение Ам
00 1010 РР:=PОН1+П (П=0) Пересылка В
00 1011 РР:=!PОН3 and РР Выделение Вм
00 1100 PОН5:=РР+П (П=0) Сохранение Вм
00 1101 РР:=PОН0+П (П=0) Пересылка А
00 1110 РР:=PОН1 xor РР Сравнение знаков
00 1111 РР:=СЦЛ (РР+П) (П=0) Если !СД1 = 0, идти к 30
01 0000 РР:=PОН4+П (П=0) Пересылка Ам
01 0001 РР:=PОН5+РР+П (П=0) См = Ам + Вм
01 0010 PОН2:=РР+П (П=0) Сохранение См
01 0011 РР:=СЦЛ (РР+П) (П=0) Если !СД1=0, идти к 36
01 0100 РР:=PОН0+П (П=0) Пересылка А в РР

Продолжение табл. 4

 

01 0101 РР:=PОН3 and РР Формирование ЗнС
01 0110 PОН2:=PОН2 or РР Формирование С
01 0111 РРР:=!П (П=1) Сообщение «Переполнения нет»
01 1000 ШИНвых:=РРР+П(П=0) Вывод сообщения
01 1001 ШИНвых:=PОН2 Вывод С, "Конец"
01 1010 РР:=PОН1+П (П=0) Пересылка В в РР
01 1011 PОН2:=РР+П (П=0) Сохранение С, идти к 24 на вывод
01 1100 РР:=PОН0+П (П=0) Пересылка А в РР, идти к 28
01 1101 РР:=PОН4+П (П=0) Пересылка Ам в РР
01 1110 РР:=РР-PОН1-1+П (П=1) См = Ам – Вм
01 1111 PОН2:=РР+П (П=0) Сохранение См
10 0000 РР:=!РР+П (П=1) Если См = 0, идти к 37
10 0001 РР:=PОН2+П (П=0) Пересылка См в РР
10 0010 РР:=СЦЛ (РР+П) (П=0) Если !СД1=0, идти к 38, иначе к 21
10 0011 РРР:=!П (П=0) «Переполнение», идти к 25
10 0100 PОН2:=!П (П=1) С = 0, идти к 24
10 0101 РР:=PОН5+П (П=0) Пересылка Вм в РР
10 0110 РР:=РР-PОН4-1+П (П=1) См = Вм – Ам
10 0111 PОН2:=РР+П (П=0) Пересылка См
10 1000 РР:=PОН1+П (П=0) Пересылка В в РР, идти к 22

 

 

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

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