Четверг, 19.09.2024
Kober
Меню сайта
Поиск
Категории раздела
Шпоры Орг ЭВМ [42]
Шпоры ОС [22]
Главная » Статьи » Шпоры Орг ЭВМ

12. Структура, функционирование микропрограммных устройств управления. Виды микропрограммного управления (МПУ) и их сравнительная оценка

12. Структура, функционирование микропрограммных устройств управления. Виды микропрограммного управления (МПУ) и их сравнительная оценка

 

 


 

Рассмотрим, каждый из функциональных блоков, представленных на рисунке:

·  Секвенсор – формирует последовательность адресов.

·  ПНА (Преобразователь начального адреса) – формирует адрес первой микрооперации команды.

·  Микропрограммная память – память, содержащая микрокоманды.

Рассмотрим, какие функции должен выполнять секвенсор для нормальной работы схемы:

·  Транслирует адрес в микропрограммную память.

·  Инкрементирует адрес.

·  Реализовывает операцию безусловного перехода (адрес перехода может содержаться либо в микрокоманде, либо в регистре)

·  Реализовывает операцию 2-х направленного условного перехода.

 

 

Рис. 6.9. Структуры МПА при различных способах кодирования микроопераций:

 

а — минимальном; б — максимальном; б — максимальном с шифратором; г— горизонтально-вертикальном; д — вертикально-горизонтальном

 

При максимальном (вертикальном) кодировании (см. рис. 6.9, б) каждой мик­рооперации присваивается определенный код, например, ее порядковый номер в полном списке возможных микроопераций. Этот код и заносится в МО. Такой способ кодирования требует минимальных аппаратных затрат в ПМП на хранение микрокоманд, однако возникает необходимость в дешифраторе ДшМК, который должен преобразовать код микрооперации в соответствующий сигнал уп­равления. При большом количестве СУ дешифратор вносит значительную временную задержку, а главное — в каждой МК указывается лишь один сигнал управления, инициирующий только одну микрооперацию, за счет чего увеличиваются длина микропрограммы и время ее реализации.

Последний недостаток устраняется при подключении к выходам ДшМК шифратора (Ш) (см. рис. 6.9, в), что приводит к увеличению количества СУ, формируемых одновременно. Естественно, что помимо кодов отдельных микроопераций должны быть предусмотрены коды, представляющие и определенные комбинации микроопераций. Для повышения универсальности шифратор целесообразно строить на базе  запоминающего устройства.

При близких NMK и ND вариант в теряет смысл, где ND — количество выходов дешифратора.

Минимальное и максимальное кодирование являются двумя крайними точками широкого спектра возможных решений задачи кодирования СУ. Промежуточ­ное положение занимает групповое или смешанное кодирование.

Здесь все сигналы управления (микрооперации) разбиваются на К групп.

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

  В горизонтально-вертикальном методе (см. рис. 6.9, г) в каждую группу включаются взаимно несовместимые сигналы управления (микрооперации), то есть СУ, которые никогда не встречаются вместе в одной микрокоманде. При этом сигналы, обычно формируемые в одном и том же такте, оказываются в разных груп­пах. Внутри каждой группы сигналы управления кодируются максимальным (вер­тикальным) способом, а группы — минимальным (горизонтальным) способом.

Каждой группе У, выделяется отдельное поле в микрооперационной части МК.

При вертикально-горизонтальном способе (см. рис. 6.9, д) все множество сигналов управления (микроопераций) также делится на несколько групп, однако в группу включаются сигналы управления (микрооперации), наиболее часто встречающиеся вместе в одном такте. Поле МО делится на две части: MO1 и МО2. Поле МО1, длина которого равна максимальному количеству сигналов управления (микроопераций) в группе, кодируется горизонтально, а поле МО2, указывающее на принадлежность к определенной группе, — вертикально. Со сменой группы меняются и управляемые точки, куда должны быть направлены сигналы управления из каждой позиции М01. Это достигается с помощью демультиплексоров (Дмп), управляемых кодом номера группы из поля М02.

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

       Иногда используется двухуровневое кодирование микроопераций. На первого уровне с вертикальным кодированием выбирается микрокоманда, поле МО которой является адресом горизонтальной микрокоманды второго уровня — нанокоманды Данный способ сочетания вертикального и горизонтального микропрограммирования часто называют нанопрограммированием. Метод предполагает двухуровневую систему кодирования микроопераций и, соответственно, двухуровневую организацию управляющей памяти.

 

Рассмотрим, как происходит работа схемы. Изначально по шине данных в регистр команд записывается команда. После этого она передаётся в ПНА. На выходе, в секвенсор передаётся адрес первой микрокоманды. Секвенсор передаёт микрокоманду из входа D на дешифратор, который декодирует её и формирует набор управляющих сигналов. Напомним, что набор управляющих сигналов есть суть работы устройства управления.  Также из секвенсора, из входа A, на мультиплексор поступает адрес следующей команды, после маскирования с флагами поступающими либо из регистра состояния (результат, накопленный на предыдущих итерациях), либо непосредственно из вне (например, от внешних устройств) и передаётся на вход секвенсора. В случае если необходимо совершить переход, то адрес перехода передаётся с выхода секвенсора на его вход, для этого существует отдельная шина (внимание на рисунок).  Для синхронизации работы, в схеме присутствует формирователь синхроимпульсов. От формирователя синхроимпульсов есть управляющие линии ко всем устройствам схемы, но чтобы не загромождать рисунок, они попросту опущены. 

Итак, этапы работы данной схемы модно обозначить как:

1.     Формирование адреса микрокоманды.

2.     Чтение микрокоманды.

3.     Исполнение микрокоманды.

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

При включении питания, первое, что необходимо сделать, это :

1.     Обнулить регистр микрокоманд.

2.     Подать по каналу I нулевого адреса.

Для нормальной работы микропрограммная память должна содержать следующие команды:

·   Чтение микрокоманды (тоже является микрокомандой).

·   Обнуление адреса.

Виды микропрограммного управления:

Горизонтальное микропрограммирование

Достоинства:

1) Если нужен ввод новой МК, то никаких схемотехнических изменений нет. 2) Добавление новой МО к существенному увеличению схемы УУ не приводит 3) Нет схемы дешифрации

Недостатки:

1) Сложность (длинна операционной части МК определяется количеством МО, следовательно, емкость памяти МК увеличивается) 2) Сложность доступа 3) Из операционной части полезную информацию несет 10-15%

Горизонтальное микропрограммирование применяется в простых устройствах обработки с

малым количеством МО.

Вертикальное микропрограммирование.

Достоинства:

1) nоч = ]log2(M+1)[ (длина операционной части) 2) появление новых МК к принципиальным трудностям не приводит 3) емкость памяти МК достаточно небольшая.

Недостатки:

1) нужна дешифрация 2) две одинаковых МО в одной МК не могут быть, следовательно, количество МК возрастает.

Смешанное микропрограммирование.

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

1) Длина любого поля niоч = ]log2(Mi+1)[ 2) Длина операционной части nоч = Σniоч 3) Внутри подмножества любая МО кодируется вертикальным способом, может реализовываться способ горизонтально – вертикального программирования.

1.     Горизонтальные – количество разрядов равно количеству функциональных сигналов.

·   Быстродействие – максимальное.

·   Производительность – максимальная.

·   Затраты оборудования – максимальные

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

·     Быстродействие  - невысокое (нужно время на дешифрацию).

·     Производительность – минимальная (по 1-му функциональному сигналу).

·     Затраты оборудования – много меньше, чем в горизонтальной.

2.     Смешанная.

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

Так вот, необходимо всю совокупность МОП разделить на несовместимые группы.  Дальше необходимо организовать между группами  горизонтальное управление, а внутри группы вертикальное.

·   Быстродействие – среднее.

·   Производительность – не хуже, чем у горизонтального.

·   Затраты оборудования – средние.

Данные вариант является золотой серединой в плане характеристик, но его существенным недостатком является сложность настройки.

3.     2-х уровневое микропрограммное управление.

В устройстве управления нет регистра микрокоманды и регистра адреса микрокоманды, но на выходе памяти микрокоманд, есть память нанокоманд.   Внутри микрокоманды нанокоманда может встречаться несколько раз, поэтому можно сказать, что в памяти  микрокоманд, расположен горизонтальный набор нанокоманд.  Затраты оборудования примерно как у смешанного, но за счёт лишнего блока, получается лишнее считывание из памяти. Конечно, этот недостаток можно обойти, за счёт введение конвейера, но конвейер обладает рядом своих проблем (ветвление и т.д.).  Данный вариант используется в архитектуре NetBurnst.


 

При горизонтальном микропрограммировании (см. рис. 6.9, а) под каждый сигнал управления в микрооперационной части микрокоманды выделен один разряд (RMO = Ncy). Это позволяет в рамках одной микрокоманды формировать любые сочетания СУ, чем обеспечивается максимальный параллелизм выполнения микроопераций. Кроме того, отсутствует необходимость в декодировании МО и выхода регистра микрокоманды могут быть непосредственно подключены к соответствующим управляемым точкам ВМ. Широкому распространению горизонтален микропрограммирования тем не менее препятствуют большие затраты на хранение микрооперационных частей микрокоманд  ,  причем  эффективность использования ПМП получается низкой, так как при большом числе микроопераций в каждой отдельной МК реализуется лишь одна или несколько из них, то есть подавляющая часть разрядов МО содержит нули.

 

Категория: Шпоры Орг ЭВМ | Добавил: Kober (10.06.2013)
Просмотров: 2896
Архив записей
Copyright MyCorp © 2024
Бесплатный хостинг uCoz