Микропрограммные автоматы с жесткой и программируемой логикой
Как уже было упомянуто выше, все множество технологий, используемых при реализации микропрограммных автоматов устройств управления, можно свести к двум категориям:
- МПА с «жесткой» логикой или аппаратурной реализацией;
- МПА с программируемой логикой.
Микропрограммный автомат с жесткой логикой
Обычно тип микропрограммного автомата (МПА), формирующего сигналы управления, определяет название всего УУ. Так, УУ с жесткой логикой управления имеет в своем составе МПА с жесткой (аппаратной) логикой. При создании такого МПА выходные сигналы управления реализуются за счет однажды соединенных между собой логических схем.
Типичная структура микропрограммного автомата с жесткой логикой управления показана на рис. 2.4.
Исходной информацией для УУ служат: содержимое регистра команды, флаги, тактовые импульсы и сигналы, поступающие с шины управления. Код операции, хранящийся в РК, используется для определения того, какие сигналы управления (СУ) и в какой последовательности должны формироваться, при этом, с целью упрощения логики управления, желательно иметь в УУ отдельный логический сигнал для каждого кода операции (I0, I1 ... Ik). Это может быть реализовано с помощью дешифратора. Дешифратор кода операции преобразует код j-й операции, поступающей из регистра команды (РК), в единичный сигнал нa j-м выходе. Машинный цикл выполнения любой команды состоит из нескольких тактов.
Рис. 2.4. Структура МПА с жесткой логикой
Сигналы управления, по которым выполняется каждая микрооперация, должны вырабатываться в строго определенные моменты времени, поэтому все СУ «привязаны» к импульсам синхронизации (СИ), формируемым узлом синхроимпульсов. Период СИ должен быть достаточным для того, чтобы сигналы успели распространиться по трактам данных и другим цепям. Каждый СУ ассоциируется с одним из тактовых периодов в рамках машинного цикла. Формирование сигналов, отмечающих начало очередного тактового периода, возлагается на синхронизатор. Синхронизатор содержит счетчик тактов, осуществляющий подсчет СИ. Узел синхроимпульсов после завершения очередного такта работы добавляет к содержимому счетчика тактов единицу. К выходам счетчика подключен дешифратор тактов, с которого и снимаются сигналы тактовых периодов: Т1, …, Тn. В i-м состоянии счетчика тактов, то есть во время i-го такта, дешифратор тактов вырабатывает единичный сигнал на своем i-м выходе. При такой организации в УУ должна быть предусмотрена обратная связь, с помощью которой по окончании цикла команды счетчик тактов опять устанавливается в состояние Т1.
Дополнительным фактором, влияющим на последовательность формирования СУ, являются состояние осведомительных сигналов (флагов), отражающих ход вычислений, и сигналы с шины управления. Эта информация также поступает на вход УУ, причем каждая линия здесь рассматривается независимо от остальных.
Микропрограммный автомат с программируемой логикой
Принципиально иной подход, позволяющий преодолеть сложность УУ с жесткой логикой, был предложен британским ученым М. Уилксом в начале 50-х годов. В основе идеи лежит тот факт, что для инициирования любой микрооперации достаточно сформировать соответствующий СУ на соответствующей линии управления, то есть перевести такую линию в активное состояние. Это может быть представлено с помощью двоичных цифр 1 (активное состояние – есть СУ) и 0 (пассивное состояние – нет СУ). Для указания микроопераций, выполняемых в данном такте, можно сформировать управляющее слово, в котором каждый бит соответствует одной управляющей линии. Такое управляющее слово будет представлять из себя микрокоманду. Таким образом, микрокоманда может быть представлена управляющим словом со своей комбинацией нулей и единиц.
Последовательность микрокоманд, реализующих определенный этап машинного цикла, образует микропрограмму. В терминологии на английском языке микропрограмму часто называют firmware, подчеркивая тот факт, что это нечто среднее между аппаратурой (hardware) и программным обеспечением (software). Микропрограммы для каждой команды ВМ и для каждого этапа цикла команды размещаются в специальном ЗУ, называемом памятью микропрограмм (ПМК). Процесс формирования СУ можно реализовать, последовательно (с каждым тактовым импульсом) извлекая микрокоманды микропрограммы из памяти и интерпретируя содержащуюся в них информацию о сигналах управления.
Идея заинтересовала многих конструкторов ВМ, но была нереализуема, поскольку требовала использования быстрой памяти относительно большой емкости. Вновь вернулись к ней в 1964 году, в ходе создания системы IBM 360. С тех пор устройства управления с программируемой логикой стали чрезвычайно популярными и были встроены во многие ВМ. В этой связи следует упомянуть запатентованный академиком В. М. Глушковым принцип ступенчатого микропрограммирования, который он впервые реализовал в машине «Проминь».
Отличительной особенностью микропрограммного автомата с программируемой логикой является хранение микрокоманд в виде кодов в специализированном запоминающем устройстве – памяти микропрограмм. Каждой команде ВМ в этом ЗУ в явной форме соответствует микропрограмма, поэтому часто устройства управления, в состав которых входит микропрограммный автомат с программируемой логикой, называют микропрограммными.
Типичная структура микропрограммного автомата представлена на рис. 2.5. В составе узла присутствуют: память микропрограмм (ПМП), регистр адреса микрокоманды (РАМ), регистр микрокоманды (РМК), дешифратор микрокоманд (ДшМК), преобразователь кода операции, формирователь адреса следующей микрокоманды (ФАСМ), формирователь синхроимпульсов (ФСИ). Запуск микропрограммы выполнения операции осуществляется путем передачи кода операции из РК на вход преобразователя, в котором код операции преобразуется в начальный (первый) адрес микропрограммы Ан. Этот адрес поступает через ФАСМ в регистр адреса микрокоманды. Выбранная по адресу Ан из ПМП микрокоманда заносится в РМК.
Каждая микрокоманда в общем случае содержит микрооперационную (МО) и адресную (А) части. Микрооперационная часть микрокоманды поступает на дешифратор микрокоманды, на выходе которого образуются управляющие сигналы Сi инициирующие выполнение микроопераций в исполнительных устройствах и узлах ВМ. Адресная часть микрокоманды подается в ФАСМ, где формируется адрес следующей микрокоманды Амк Этот адрес может зависеть от адреса на выходе преобразователя кода операции Ан, адресной части текущей микрокоманды А и значений осведомительных сигналов (флагов) X, поступающих от исполнительных устройств. Сформированный адрес микрокоманды снова записывается в РАМ, и процесс повторяется до окончания микропрограммы.
Рис. 2.5. Структура МПА с программируемой логикой