ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
государственное образовательное учреждение высшего профессионального образования
восточно-сибирский государственный технологический университет
Оценка емкостимикропрограммного устройства управления
Методическиеуказания к выполнению самостоятельной расчётной работы по дисциплине «Теория проектирования ЭВМ» длястудентов специальности 220100 «Вычислительные машины, комплексы, системыи сети»
С.Б-М.Базарова,
Е.П.Машеева
Улан-Удэ
2005 г.
В данной самостоятельной расчетной работе представлен теоретическийматериал по проектированию микропрограммных устройств управления. Рассмотрены способы формированияуправляющих сигналов и адресации микрокоманд, схемные реализации автоматов.Приведена методика микропрограммирования для разработки микропрограмм.
Содержание
1. Цель работы… 4
2. Теоретическаячасть. 4
2.1.Микропрограммный и схемный принципы управления. 4
2.2. Структурамикропрограммного устройства управления. 7
2.3. Классификациясистем микропрограммного управления. 9
2.3.1. Способыформирования управляющих сигналов. 10
2.3.2. Адресациямикрокоманд. 15
3. Задание кработе. 19
4. Методическиеуказания. 20
5.Содержаниеотчета………………………………………………..23
Списоклитературы…………………………………………………..25
Самостоятельная расчётная работа
оценка ёмкости микропрограммного устройства управлении1.Цель работы
1. Изучитьметоды формирования функциональных сигналовмикропрограммного устройства управления(МПУУ).
2. Изучить способы адресации микрокоманд МПУУ.
3. Получить навыки программирования микрокоманд.
4. Получить навыки выбора оптимальных микропрограмм.2. Теоретическая часть2.1. Микропрограммный исхемный принципы управления
Любое цифровое устройство обработкиинформации можно рассматривать состоящим из двух блоков: операционного и управляющего.
Операционный блок характеризуется совокупностью определённых в нем микроопераций. Каждая микрооперация представляет собой некоторый выполняемый в операционном блоке элементарный акт передачи или преобразованияинформации. Микрооперации инициируются поступлением управляющих функциональныхсигналов на соответствующие входы узлов операционного блока.
Часть цифрового вычислительного устройства, предназначенная для выработки последовательностей управляющихфункциональных сигналов, называется управляющим блоком или управляющимустройством.
Микрооперация — элементарная операция, выполняемая подвоздействием одного функционального сигнала.
Интервал времени, отводимый на выполнение микрооперации,называется рабочим тактом или тактом цифровогоустройства.
Совокупность микроопераций, выполняемых в операционном блоке втечение такта, образует микрокоманду.
Группа микрокоманд, реализующих одну машинную команду илиотдельную процедуру, называется микропрограммойи реализуется за определённое число тактов.
Исходные данные для проектирования микропрограммногоустройства управления задаются как алгоритмы выполнения операций в ихмикропрограммной интерпретации. Каждая операторная вершина схемы алгоритмадолжна соответствовать одному такту работы устройства управления и содержатьвсе микрооперации, выполняемые в этом такте. Условные вершины на схемеалгоритма сопровождаются значениями логических условий, при которых выполняютсяусловные переходы.
Для реализации машинной команды необходимо насоответствующие линии операционного блока подать управляющие функциональныесигналы, определенным образомраспределенные во времени.
Последовательность управляющихсигналов задается поступающими на входыблока кодом операции, сигналами из операционного блока, несущимиинформацию об особенностях операндов, aтакже синхросигналами, задающими границы тактов.
Формально управляющий блок может рассматриваться какконечный автомат, определяемый:
1) множествами входных сигналов Zи U:
Z= {z1, z2, ..., zp},
U= {u1,u2, …, un},
соответствующих задаваемому извне коду операции Zи двоичным значениям осведомительныхсигналов U, отображающих текущее состояниеоперационного блока. Осведомительному сигналу uj ставится всоответствие логическое условие u’j;
2) множеством двоичных выходных сигналов V:
V= {v1,v2, ..., vm},
соответствующихмножеству микроопераций операционногоблока. При vi= 1 возбуждается i-я микрооперация;
3) множеством подлежащих реализациимикропрограмм, устанавливающих в зависимости от значений входных сигналовуправляющие сигналы, выдаваемые блоком в определённыетакты.
По множествам входных и выходных сигналов и микропрограммамопределяется множество внутренних состоянийблока Q:
Q= {q1, q2, ..., qr},
мощность которого (объём памяти управляющего блока) в процессе проектирования стараются минимизировать.
Существует 2 основных метода построения логики управляющих автоматов.
1. Управляющий автомат с жесткой (схемной) логикой.
Для каждой операции, задаваемой кодом операции команды, строитсянабор комбинационных схем, которые в нужныхтактах возбуждают соответствующие управляющие сигналы. Иначе говоря,строится конечный автомат, в котором необходимое множество состоянийреализуется на запоминающих элементах, а функции переходов и выходовреализуются с помощью комбинационных схем.
2. Управляющий автомат с хранимой в памятилогикой.
Каждойвыполняемой в цифровом устройстве операции ставится в соответствие совокупностьхранимых в памяти слов — микрокоманд, каждая из которых содержит информацию омикрооперациях, подлежащих выполнению в течение одного машинного такта, иуказания, какое должно быть выбрано из памяти следующее слово. В этом случаефункции переходов и выходов управляющего автомата хранятся в памяти в видесовокупности микропрограмм. Обычно микропрограммы хранятся в специальной памятимикропрограмм.2.2. Структурамикропрограммного устройства управления
Микропрограммирование представляет с одной стороны, принциптехнической реализации вычислительных машин (в первую очередь процессора), а сдругой стороны один из методов организации их математического обеспечения.Микропрограммный подход обладает рядом положительных качеств по сравнению спринципом жесткой логики: обеспечивается большая гибкость, облегчаетсяразработка логики устройства управления и имеется возможность ее легкойпеределки в процессе проектирования и модернизации ЭВМ.
Обобщённая структура микропрограммного устройства управления(МПУУ) показана на рис. 1.1.
SHAPE * MERGEFORMAT
Память микропрограмм
ФАМ
Регистр команды
PгMK
ДШМО
Операционное устройство
Z
U
V
МПУУ
Рис.1.1. Обобщённая структура МПУУ
Выполнение команд на микропрограммном уровне сводится к расшифровке кода операции Zрегистра команд и формированию начального адреса микропрограммы реализации операции. Блок формирования адреса микрокоманд (ФАМ)формирует адрес микрокоманды, который в общем случае зависит от кодавыполняемой операции Z, кода предыдущеймикрокоманды и значений осведомительных сигналов Uот операционного устройства.
Содержимое выбранной ячейки памяти микрокоманд поступает врегистр микрокоманд (РгМК). В общем случае микрокомандасодержит операционную и адресную части (рис.1.2). В операционной частимикрокоманды размещаются микрооперации (управляющие сигналы), инициирующиевыполнение элементарных действий операционного узла. Адресная частьмикрокоманды содержит поле логических условий U’ и значение адреса следующеймикрокоманды. В общем случае в адресной части могут быть указаны два адреса (адреспо выполнению условия и адрес по невыполнению условия).
SHAPE * MERGEFORMAT
PгMK
U/ A0 A1
v1 … vm
операционная часть адресная часть
Рис.1.2. Формат микрокоманды
ИзРгМК операционная часть микрокоманды в общем случае поступает на дешифратор микроопераций (ДШМО), который вырабатываетнекоторую совокупность управляющих функциональных сигналов V, подаваемых воперационное устройство. Адрес следующеймикрокоманды определяется следующимобразом. Если поле логических условий вмикрокоманде пусто, то адресопределяется полем А0. Если значение поля U’≠ 0, то адрес определяется значениями осведомительных сигналов. Если проверяемое условиевыполняется, то переход выполняется поадресу А1, иначе выбирается микрокоманда по адресу А0.
Структура и функциональные особенности микропрограммируемых устройств управления в значительной степени зависят от типа микропрограммной памяти, способа формирования управляющих функциональных сигналов и способа адресации микрокоманды.2.3. Классификация системмикропрограммного управления
Системы микропрограммного управления можно классифицироватьпо ряду признаков.
1. По способу формирования управляющих функциональных сигналов:
а) горизонтальное микропрограммирование;
б) вертикальноемикропрограммирование;
в) смешанное микропрограммирование.
2. По способу адресации микрокоманд:
а)принудительная адресация;
б)естественнаяадресация.
3.По способу кодирования микроопераций:
а)прямое;
б)косвенное.
4.По способу использования микрокоманд:
а)однофазные микрокоманды;
б)многофазные микрокоманды.
5. По типу памяти микропрограмм:
а) статическое микропрограммирование;
б)динамическое микропрограммирование.
Первые два основных классификационных признака МПУУ рассмотримниже. В данном параграфе кратко опишем остальные классификационные признаки.
В случае прямого кодирования микрокоманд каждое поле микрокомандимеет фиксированные функции.
Косвенноекодирование характеризуется наличием дополнительных полей, содержимое которыхменяет смысл основных полей микрокоманды.Таким образом, интерпретация полей,формирующих управляющие сигналы, зависит от бит дополнительных полей.Косвенное кодирование сокращает объёмпамяти микропрограмм, так как позволяет уменьшать длину микрокоманд.Однако косвенное кодирование в некоторой степени нарушает стройностьмикропрограммного управления, вызывает усложнение дешифраторов и приводит кснижению скорости работы из-за потерь времени на дешифрирование дополнительныхполей микрокоманды.
При однофазной микрокоманде все микрооперации выполняютсяодновременно в течение одного такта.
Примногофазной микрокоманде такт разбивается на фазы или микротакты, и указанные вмикрокоманде микрооперации выполняются вразличные микротакты. В этом случае приходится учитывать временныезависимости между отдельнымимикрооперациями. Однако становится возможным включать в микрокомандувзаимоисключающие микрооперации, разводя их по разным микротактам.
При статическом микропрограммировании в качестве памятимикрокоманд используется постоянная память. При динамическом микропрограммировании память микрокоманд находится воперативной памяти.
Динамическое микропрограммирование позволяет оперативноизменять микропрограммы. В последнее время нашло применение смешанное статическо-динамическое микропрограммирование.2.3.1. Способы формирования управляющих сигналов
При горизонтальном микропрограммировании (рис.2.1) каждому разряду операционной частимикрокоманды ставится в соответствиеопределённый управляющий функциональныйсигнал, то есть определённая микрооперация. При такоммикропрограммировании операционная часть содержит mразрядов (m — общеечисло микроопераций).
SHAPE * MERGEFORMAT
PгMK
1 … 0
v1 … vm
операционная часть адресная часть
Рис. 2.1. Горизонтальное микропрограммирование
Общее числомикроопераций в ЭВМ может достигать нескольких сотен, поэтому, под операционнуючасть требуется отводить большое количество разрядов. Горизонтальное кодированиеприменяется при относительно небольшом количестве микроопераций.
Пример. Пусть микропрограмма выполнения операции содержит 22 различныхмикроопераций. В алгоритме выполнения операции на определенном шаге возможноодновременное выполнение 4 микроопераций. При горизонтальноммикропрограммировании будет выделено 22 бита в операционной частимикрокоманды. За каждым разрядоммикрокоманды будет закреплена определенная микрооперация (прямое кодирование).Микропрограммирование будет заключаться в указании в соответствующих разрядахмикрокоманды символа 1. Если в такте можно выполнить несколько микроопераций,то соответствующее количество (максимально 4) символов 1 будет указано вмикрокоманде.
При вертикальном микропрограммировании (рис.2.2) микрооперацияопределяется двоичным кодом, содержащимся в операционной частимикрокоманды. Количество разрядов операционной части — mo= int(log2m).
SHAPE * MERGEFORMAT
PгMK
1 0 .. . 1
адресная часть
m0
ДШМО
v1 … vm
в операционный блок
Рис.2.2. Вертикальноемикропрограммирование
Этот способ кодирования требует наименьшегоколичества разрядов в операционной части микрокоманды. Однако при этомнеобходимо использовать дешифратор на большое количество выходов. Привертикальном кодировании в микрокомандеуказывается лишь одна микрооперация, что приводит к увеличению длинымикропрограмм.
Пример. Пусть микропрограмма выполнения операции содержит 22 различныхмикроопераций. В алгоритме выполнения операции на определенном шаге возможноодновременное выполнение 4 микроопераций. При вертикальноммикропрограммировании будет выделено 5 битов (int(log222)=5) в операционной части микрокоманды.Микропрограммирование будет заключаться в указании двоичного кодамикрооперации. В микрокоманде будет указана только одна микрооперация.
В настоящее время наибольшее распространение получило смешанное микропрограммирование, в которомсочетаются методы горизонтального и вертикального микропрограм-мирования.При смешанном микропрограммированиимножество микроопераций Vразбивается на k — групп(полей), каждое содержит определённоеколичество функциональных сигналов. В общемслучае:
Микрооперации внутри каждой группы кодируются либо горизонтальным, либо вертикальным методом. Можно выделить два способа: горизонтально-вертикальный ивертикально-горизонтальный.
При горизонтально — вертикальном микропрограммировании (рис.2.3) каждой группевыделяется отдельное поле в операционной части микрокоманды, микрооперации внутри группы кодируются вертикально.
SHAPE * MERGEFORMAT
PгMK
адресная часть
ДШМО1
v1… … … vm
в операционный блок
ДШМОk
1 0 1 … 0 1 0
Рис. 2.3. Горизонтально-вертикальное микропрограммирование
Каждому полю соответствует свой дешифратормикроопераций. Группа содержит те микрооперации, которые не встречаются вместев одной микрокоманде. Из группы может выполниться только одна микрооперация.Одновременно выполняемые микрооперации в такте размещаются в разные группы.Этот способ кодирования обеспечивает меньшую гибкость, чем горизонтальноекодирование. Изменение хотя бы одной микрокоманды может потребовать новогоразбиения полей.
Пример. Пусть микропрограмма выполнения операции содержит 22 различныхмикроопераций. В алгоритме выполнения операции возможно одновременноевыполнение 4 микроопераций. Все множество микроопераций необходимо разбить на 4подмножества. Одновременно выполняемые микрооперации микрокоманды размещаются вразные группы. Микрооперации внутри группыкодируются двоичным кодом. Для данного примера при горизонтально-вертикальномспособе выделим 4 группы (зоны) в микрокоманде. Если в микрокоманде можно выполнить несколько микроопераций, то всоответствующих полях будутзапрограммированы двоичные кодымикроопераций данной группы.
При вертикально — горизонтальном микропрограммировании (рис.2.4) подмножества микроопераций (номергруппы) кодируются вертикально, амикрооперации внутри группы кодируются горизонтально.
SHAPE * MERGEFORMAT
PгMK
0 1 1 .. . 0
адресная часть
ДШ
v1 … vm
в операционный блок
.. .
Набор комбина-ционных схем
.. .
.
.
.
Рис. 2.4. Вертикально-горизонтальное микропрограммирование
Количество разрядов в группе будетопределяться совокупностью одновременно выполняемых микроопераций (возможно вразличных сочетаниях). Номер группыкодируется двоичным кодом.
Схемная реализация вертикально-горизонтальногокодирования заключается в следующем. Проектируется набор комбинационных схем,состоящих из элементов И. Выходдешифратора номера группы поступает на комбинационную схему и инициализирует соответствующийнабор элементов И. На второй вход элементов И схемы поступает разряд из РгМК. Комбинационнаясхема вырабатывает подмножество Vjуправляющих сигналов. Набор комбинационных схемвырабатывает множество V управляющих сигналов.
Вертикально-горизонтальное кодирование позволяет строитьоптимальные программы, как по длинемикрокоманды, так и по длине микропрограммы. Но при этом теряетсястройность микропрограммирования, так как используется косвенное кодирование. Схемнаяреализация является наиболее сложной из всех способов формирования управляющихсигналов.
Пример. Пусть микропрограмма выполнения операции содержит 22 различныхмикроопераций. В алгоритме выполнения операции возможно одновременноевыполнение 4 микроопераций. При вертикально-горизонтальном способе выделим подмножествамикроопераций, которые можно выполнить одновременно. При анализе алгоритмавыполнения операции необходимо просмотреть все возможные сочетания одновременноговыполнения микроопераций. Микрооперации подмножества кодируются вертикальнымспособом, но нет закрепления микроопераций за соответствующими разрядамимикрокоманды (применяется косвенное кодирование). Каждому подмножествумикроопераций ставится в соответствие двоичный код группы.
Пусть некоторая микрооперация встречается в разных сочетанияхмикроопераций, тогда количество разрядовпри вертикальном кодировании будет превышать 4. Если в такте можно выполнить несколько микроопераций, то в разрядахмикрокоманды будет запрограммировано определенное количество 1 (не больше 4) иуказан двоичный код группы микроопераций.2.3.2. Адресация микрокоманд
При принудительнойадресации вкаждой микрокоманде содержится операционная и адресная части. Если микрокомандане изменяет линейного порядка микрокоманд,то в операционной части указаны микрооперации, в адресной части полелогических условий пусто и указан только одинадрес следующей микрокоманды.Если микрокоманда изменяет линейный порядок микрокоманд, то наряду смикрооперациями в поле U’ содержится код логическогоусловия и указываются два адреса. Условно можно принять, что при подтверждении проверяемого условияадрес следующей микрокоманды определяется полем адреса А1, а при невыполнении условия — адрес следующей микрокоманды определяется полем адреса А0.Схемная реализация автомата с принудительной адресациейпоказана на рис.2.5.
Функционирование автоматапроисходит следующим образом. В регистр микрокоманды РгМК поступает микрокоманда из памяти микропрограмм по содержимому регистра адреса РгА.Начальный адрес, как было сказано выше, определяется кодом выполняемойоперации. Управляющие функциональные сигналы с РгМК поступают на определенныевходы узлов операционного блока путем соответствующего преобразования,зависящего от используемого способа кодирования. Код логического условияпоступает на дешифратор ДШ и соответствующий выход дешифратора поступает навход логического элемента И. На второйвход элемента И поступает значениеосведомительного сигнала из операционного блока. При выполнении проверяемогоусловия выход элемента ИЛИ разрешаетпоступление адреса А1 в РгА памяти микропрограмм. При невыполнениипроверяемого
SHAPE * MERGEFORMAT
PгMK
&
1
.
. 1
.
&
в операционный блок ДШ
m
операцион-
ная часть U/ A0 A1
ПЗУ
Pг A
осведомительные сигналы
из операционного блока
un … u1
.
.
.
Рис. 2.5.Автомат с принудительной адресацией
условия выход элемента НЕ разрешает поступление адреса А0 в РгА.Таким образом происходит формирование адресаследующей микрокоманды. Синхронизацию чтения следующей микро-команды из памятиможно определить выбором максимального из времени выполнения микрокоманды воперационном блоке и времени формирования адреса микрокоманды в автомате.
При естественной адресации используются микрокоманды двух типов: операционная и управляющая. В микрокомандувводится бит признака Р микрокоманды. В структуре операционной микрокоманды (Р=0) нет адресного поля, указаны толькомикрооперации. По умолчанию адрес следующеймикрокоманды образуется инкрементированием адреса текущей микрокоманды –СчА:=СчА+1. Управляющая микрокоманда (Р=1) изменяет линейный порядок следованиямикрокоманд. В управляющей микрокоманде содержится код логического условия U’и адресследующей микрокоманды. Привыполнении условия в счетчик адреса заносится адрес следующей микрокоманды — СчА:=В.При невыполнении условия адрес следующей микрокоманды образуется инкрементированием адреса текущеймикрокоманды — СчА:=СчА+1. Схемнаяреализация автомата с естественной адреса