Операционный_синтез_цифровых_устройств (775248), страница 6
Текст из файла (страница 6)
Рис. 11. Формат микрокоманды УУ с принудительной адресацией
Структурная схема управляющего устройства с принудительной адресацией изображена на рис. 12. Схема управляется двумя тактовыми последовательностями t1 и t2 , одна из которых организует запись на регистр микрокоманды РМК, другая - на регистр адреса микрокоманда РА. В начальном состоянии УУ выполняет "пустую микрокоманду", которая, не генерируя никаких управляющих сигналов, безусловно, передает управление сама себе. Пустая микрокоманда записывается в ячейку ПЗУ нулевого адреса, ее кодовое выражение включает одни нули: Y = 0 - нет управляющих сигналов, X = 0 - безусловный переход, А1 = 0 - переход к микрокоманде нулевого адреса. Работа УУ начинается с записи в регистр адреса начального адреса выбранной микропрограммы АНАЧ. Это осуществляется при помощи кода выбора задачи, который может иметь форму начального адреса микропрограммы или формировать этот адрес через дешифратор. Выполнение текущей микрокоманды вызывает следующую микрокоманду и т.д. до тех пор, пока не будет выполнена вся микропрограмма. Последняя команда микропрограммы передает управление пустой микрокоманде, на этом работа УУ заканчивается.
Запись кода в регистр адреса осуществляется через мультиплексор MS под воздействием управляющих сигналов ПУСК, Р и ┐Р. Сигнал ПУСК является внешним сигналом, Р и ┐Р формируются внутри УУ согласно выражениям.
Рис. 12. Структурная схема управляющего устройства с принудительной адресацией
В управляющем устройстве с программируемой логикой самым объемным и дорогим элементом является постоянное запоминающее устройство. Поэтому задача оптимизации построения УУ сводится в основном к поиску таких способов записи микрокоманд, которые приводили бы к минимизации ПЗУ. Рассмотрим некоторые из них.
3.3.2. Сокращение длины адресного поля микрокоманды
При организации условных переходов управление, как правило, передается либо микрокоманде, соседней с текущей по ПЗУ и отличающейся от нее на единицу адреса, либо микрокоманде некоторого произвольного адреса. В этом случае поле А2 можно исключить из микрокоманды, а А2, если это нужно, формировать по текущему адресу Атек прибавлением к нему единицы. Это можно сделать на счетчике адреса, который одновременно будет выполнять функции регистра адреса. Итак, если в двухадресной микрокоманде следующий адрес Асл формируется по A1 и А2:
Асл = А1 & (Р0 & P{1}) v A2 & ┐P{1}
то в одноадресной микрокоманде - по A1 и Атек:
Асл = A1 & (Р0 & P{1}) v (А тек + 1) & ┐P{1}
В реальных микропрограммах безусловные и условные переходы встречаются далеко не в каждой микрокоманде. Поэтому в ряде случаев целесообразно строить УУ с использованием принципов естественной адресации. При естественной адресации микрокоманды делятся на операционные и управляющие, которые различаются по биту признака микрокоманды (ПРМК). За операционной микрокомандой закрепляется функция генерирования управляющих сигналов и передача управления "естественным образом" следующей по адресу микрокоманда. Управляющая микрокоманда не генерирует управляющих сигналов, она выполняет функцию передачи управления в нарушение "естественного" (друг за другом по адресу) следования микрокоманд.
В УУ с естественной адресацией разрядность микрокоманды значительно уменьшается, и, хотя число микрокоманд в микропрограмме увеличивается, общий объем микропрограммы имеет ярко выраженную тенденцию к снижению. На рис. 13 изображен формат микрокоманд УУ с естественной адресацией. Эти микрокоманды имеют одинаковую длину, но их поля используются различным образом, что определяется значением бита признака макрокоманда.
бит признака МК | |||||
0 | У | операционная МК | |||
1 | X | A | управляющая МК | ||
Рис. 13. Формат микрокоманды УУ с естественной адресацией
3.3.3. Сокращение длины операционного поля микрокоманды
Управляющие сигналы очень редко являются полностью совместимыми. Это означает, что в микропрограмме не будет ни одной микрокоманды, которая генерировала бы все управляющие сигналы одновременно. Последнее обстоятельство позволяет разбить управляющие сигналы на группы, внутри которых они являются несовместимыми, и каждую группу представить коротким позиционным двоичным кодом. Такая процедура сокращает длину операционной части микрокоманды, но требует применения дополнительных дешифраторов. Рассмотрим одну из простейших процедур разбиения множества управляющих сигналов на группы, позволяющую произвести сегментацию операционного поля микрокоманды. Допустим, что управляющий автомат генерирует 10 управляющих сигналов, для которых установлена их попарная совместимость. Для фиксации совместимости удобно воспользоваться матрицей совместимости, изображенной на рис. 14.
Рис. 14. Матрица совместимости
Если сигнал Yi совместим с сигналом Yj , то на пересечении соответствующих столбцов и строк матрицы проставляется единица. Нетрудно видеть, что матрица симметрична относительно главной диагонали, поэтому целесообразно заполнять только половину матрицы.
Воспользуемся следующим алгоритмом разбиения:
-
Создается первое подмножество, куда вносится первый управляющий сигнал из множества управляющих сигналов.
-
Если второй управляющий сигнал несовместим с первым, то его вносят в первое подмножество, иначе образуется новое подмножество.
-
Если третий управляющий сигнал несовместим с первым, то его вносят в первое подмножество, иначе устанавливается несовместимость со вторым сигналом и его вносят во второе подмножество. В случае его совместимости с первыми двумя сигналами создают новое подмножество.
-
Подобную процедуру производят над всеми управляющими сигналами.
-
Если в подмножестве оказывается более двух управляющих сигналов, то к нему добавляется "пустой сигнал" У0 , в противном случае подмножество разбивают на единичные управляющие сигналы. Пустой сигнал У0 соответствует случаю, когда подмножество не генерирует ни одного управляющего сигнала.
Воспользуемся матрицей совместимости (рис. 14) и разобьем множества
Y = {У1, У2, У3, У4, У5, У6, У7, У8, У9, У10} на множества:
У1 = {У1,У3, У7, У0}
Y2 = {У2, У4, У6, У0}
Y3 = {У5, У8, У10, У0}
Y4 = {У9} = У9
Несовместимые сигналы подмножеств У1, У2, У3 могут быть закодированы двухразрядными двоичными кодами Z1Z2 , Z3Z4 и Z5Z6, после чего длина операционного поля микрокоманды сократится с 10 до 7 бит.
В качестве примера приведем таблицу кодирования сегмента Z1Z2:
Рис. 15. Подключение дешифраторов к регистру микрокоманды
z \ y | У1 | У3 | У7 | У0 |
Z1 | 0 | 1 | 1 | 0 |
Z2 | 1 | 0 | 1 | 0 |
Сегментация операционного поля микрокоманды потребовала применения трех двухвходовых дешифраторов, преобразующих двоичный позиционный код в унитарный.
Выходные сигналы дешифраторов, соответствующие нулевому входному коду, не используются, поскольку в этом случае генерируются "пустые микрокоманды, изображена на рис. 15
Рис. 16. Структурная схема управляющего автомата с естественной адресацией
На рис. 16 показана структурная схема управляющего устройства с естественной адресацией, в котором применены все рассмотренные выше методы сокращения объема ПЗУ.
3.3.4. Составление микропрограммы управляющего устройства
Итак, управляющее устройство с программируемой логикой представляет собой стандартную структуру, функционирование которой однозначно определяется содержанием микропрограммы. Отсюда следует, что синтез управляющего устройства сводится главным образом к написанию микропрограммы в принятом формате микрокоманд.
Микропрограмма управляющего устройства с естественной адресацией может быть построена по канонической форме микропрограммы функционирования ОУ.
Для получения канонической формы в исходной микропрограмме необходимо проделать следующие преобразования:
-
исключить описание преобразований в регистровых операциях;
-
преобразовать описание условных операторов к форме, напоминающей форму управляющей микрокоманды;
-
исключить ненужные метки.
Преобразование условных операторов п. 3 требует дополнительных пояснений.
Предположим, что мы имеем следующий сегмент микропрограммы:
ЕСЛИ P1 ТО Ml ИНАЧЕ М2
М2 У1: F1 = F1(A1)
…………………..
M1 У2: F2 = F2(A2)
Тогда действие условного оператора воспринимается таким образом: если Р1=0, то выполняется оператор, непосредственно следующий за оператором условного перехода, в противном случае (Р1=1) -оператор, определяемый меткой Ml.
Выполнение управляющей микрокоманды происходит аналогично: если выбранный признак равен нулю, то выполняется следующая по адресу микрокоманда, в противном случае управление передается микрокоманде адреса А. Отсюда вытекает, что в приведенном сегменте операционного описания может быть исключена часть ИНАЧЕ М2 и метка М2 следующего предложения, после чего действие условного оператора будет восприниматься как выполнение управляющей микрокоманды.
В приведенном сегменте микропрограммы переставим местами операторы с метками:
ЕСЛИ P1 ТО М1 ИНАЧЕ М2
М1 У2: F2 = F2(A2)
………………………
М2 У1: F1 = F1(A1)
Теперь условный оператор не воспринимается как управляющая микрокоманда, поскольку следующий за условным оператор выполняется при единичном значении признака P1.