В управляющих автоматах с микропрограммной логикой каждой выполняемой машинной операции ставится в соответствие совокупность хранимых в памяти слов — микрокоманд.
Последовательность микрокоманд образует микропрограмму, хранимую в специальной памяти микропрограмм.
Каждая микропрограмма состоит из определенной последовательности микрокоманд, которые после выборки из памяти преобразуются в набор управляющих сигналов.
В таких автоматах блок управления операциями (БУО) выполняет функцию блока хранения и выборки кодов микрокоманд. В машинном такте производится выборка требуемой микрокоманды, выдача сигналов микроопераций, формирование адреса следующей микрокоманды.
Микрокоманда содержит операционную и адресную части. Операционная часть микрокоманды содержит информацию о микрооперациях, выполняемых в различных блоках ЭВМ в течение одного машинного такта под управлением данной микрокоманды. В адресной части микрокоманды находится информация, необходимая для формирования адреса следующей микрокоманды.
Существуют различные способы организации операционной части микрокоманды:
- горизонтальное микропрограммирование;
- вертикальное микропрограммирование;
- смешанное микропрограммирование.
Пригоризонтальном микропрограммировании, каждому разряду операционной части микрокоманды ставится в соответствие один управляющий сигнал, под действием которого выполняется соответствующая микрооперация.
нет необходимости в преобразовании операционной части микрокоманды в УС.
сокращаются затраты времени на формирование УС.
Недостатки горизонтального микропрограммирования:
большая длина операционной части микрокоманды, что ведет к значительным затратам памяти микропрограмм.
В случаевертикального микропрограммирования из операционной части микрокоманды считывается двоичный код, равный номеру управляющей точки (код микрооперации) в которую необходимо послать управляющий сигнал. Операционная часть микрокоманды должна содержать N полей, где N — максимальное количество совместно выполняемых в каждом такте микроопераций. Разрядность каждого поля операционной части микрокоманды определяется по формуле m ≥ log2 М, где М — число управляющих точек ЭВМ, равное числу управляющих сигналов. После считывания микрокоманды, код микрооперации расшифровывается дешифратором, и на одном из его выходов формируется управляющий сигнал.
Достоинством вертикального микропрограммирования:
уменьшение длины микрокоманды,
сокращаются затраты микропрограммной памяти.
Недостатки:
наличие сложных дешифраторов на большое число микроопераций,
в каждой микрокоманде указывается не больше N микроопераций, что приводит к увеличению длины микропрограмм, а значит и к уменьшению быстродействия ЭВМ.
В наше время распространение получили устройства управления со смешанным микропрограммированием, иначе называемым горизонтально-вертикальным.
С целью уменьшения длины операционной части микрокоманды может применяться косвенное кодирование микрооперации: в операционную часть микрокоманды с этой целью вводят дополнительные поля, содержимое которых может изменять коды микрооперации основных полей. Косвенное кодирование уменьшает длину микрокоманды, но снижает быстродействие из-за потери времени на дешифрацию дополнительных полей.
Существуют два вида адресации микрокоманд:
- принудительная адресация;
- естественная адресация.
При естественной адресации адрес следующей микрокоманды принимается равным увеличенному на единицу адресу предыдущей микрокоманды. В этом случае отпадает необходимость во введении адресной части в каждую микрокоманды. Если микрокоманды идут в естественном порядке, то процесс адресации реализуется счетчиком адреса микрокоманды. Для организации безусловных или условных переходов в микропрограмму включаются дополнительные управляющие микрокоманды.
Принудительная адресация микрокоманды заключается в том, что в каждой микрокоманде указывается адрес следующей микрокоманды. Адрес следующей микрокоманды может задаваться безусловно, независимо от значений признаков (осведомительных сигналов, отображающих текущее состояние операционных блоков процессора) или выбираться по условию, определяемому текущими значениями осведомительных сигналов. Для этого в адресную часть МК кроме адресных полей включаются поля для задания условий (осведомительных сигналов).
Формирователь адреса микрокоманды (ФАМ) — предназначен для формирования адреса следующей микрокоманды с учетом множества осведомительных сигналов {X} из операционных блоков ЭВМ и адресной части (АЧ) предыдущей микрокоманды.
Микропрограммная память (МПП) хранит микрооперации и по сформированному адресу в каждом такте выдает значение кода очередной микрокоманды, которая записывается в регистр микрокоманд (РМК). С точки зрения физической реализации управления МПП делится на два вида:
память с постоянно записанной информацией; работает только на чтение информации и, как правило, является более быстродействующей и простой по управлению, нежели память с перезаписью
память, допускающая перезапись информации; предоставляет больше дополнительных возможностей для повышения эффективности работы процессора за счет постоянного совершенствования алгоритмов выполнения операций.
Поля операционной части (ОЧ)при необходимости дешифруются дешифраторами ДШ1 - ДШ1N для выработки множества управляющих сигналов {Y}.
Первоначальное обращение к командам микропрограммы осуществляется по начальному адресу (НА), который соответствует коду операции выполняемой команды.
Использование в составе устройства управления блока микропрограммного управления (в качестве блока управления операциями) приводит к двухуровневому принципу управления процессом обработки данных:
1-ый уровень — система команд ЭВМ (программное управление).
2-ой уровень — микропрограммное управление.
Возникает задача организации перехода от одного уровня к другому.
Для RISC процессоров выгоднее использовать аппаратное управление (автоматы с жесткой логикой). Для расширенного набора сложных команд, как, например, в CISC процессорах, наиболее эффективно (с точки зрения затрат на оборудование) микропрограммное управление. Однако оно приводит к уменьшению быстродействия, так как увеличивается время, затрачиваемое на выработку управляющих сигналов.
Главный же плюс микропрограммного управления — гибкость, позволяющая наращивать систему команд процессора путем изменения содержимого микропрограммной памяти.
Пример — технология MMX. В процессор Pentium были добавлены 57 новых команд. Аппаратные средства остались без изменения.