Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Организация ЭВМиС; Орлов С.А., Цилькер Б.Я

..pdf
Скачиваний:
422
Добавлен:
25.12.2020
Размер:
5.43 Mб
Скачать

Микропрограммный автомат

141

 

 

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

Рис. 4.1. Обобщенная структура устройства управления

Довольно часто регистры различных узлов УУ объединяют в отдельный узел управляющих (специальных) регистров устройства управления.

Микропрограммный автомат

Как уже отмечалось в главе 3, функционирование ВМ обеспечивают сигналы управления (СУ), формируемые устройством управления, конкретно – микропрограммным автоматом (МПА). На рис. 4.2 представлена информационная модель МПА [143].

Рис. 4.2. Информационная модель микропрограммного автомата

142

Глава 4. Устройства управления

 

 

На вход микропрограммного автомата поступают:

код операции, по которому МПА определяет, какие микропрограммы нужно выполнить для реализации данной команды;

тактовые импульсы, задающие разрешенные моменты формирования сигналов управления;

признаки результата предшествующей арифметической или логической операции (анализируются в микропрограммах команд, реализация которых зависит от выполнения или невыполнения какого-либо условия, представленного одним из признаков);

сигналы из системной шины, поступающие от запоминающих устройств или устройств ввода/вывода и извещающие о событиях в этих устройствах (запросах прерывания, поступлении подтверждений выполнения каких-либо действий и т. п.).

На выходе МПА формируются:

внутренние сигналы управления, циркулирующие внутри центрального процессора и предназначенные для его внутренних узлов;

сигналы в системную шину, предназначенные для управления памятью и системой ввода/вывода.

Обобщенно структуру МПА можно представить в виде, показанном на рис. 4.3.

Рис. 4.3. Обобщенная структура микропрограммного автомата

Сигналы управления вырабатываются формирователем сигналов управления (ФСУ). Каждый СУ «привязан» к определенному периоду тактовых импульсов (ТИ). Отсчет периодов ведется от начала цикла команды с помощью синхронизатора, состоящего из счетчика тактов и дешифратора тактов. Очередной тактовый импульс увеличивает содержимое счетчика тактов на единицу. С выхода дешифратора тактов снимаются сигналы номеров тактовых периодов: T0, ..., Tn–1. При такой

Микропрограммный автомат с аппаратной логикой

143

 

 

организации в МПА предусмотрена обратная связь для обнуления счетчика тактов по окончании цикла команды. Нулевое состояние счетчика соответствует тактовому периоду T0, то есть началу цикла очередной команды.

Цикл команды начинается с микропрограммы выборки, обеспечивающей извлечение кода команды из памяти и его занесение в регистр команды (РК). Этот этап одинаков для любой команды и выполняется с помощью стандартной последовательности СУ. Продолжение цикла команды, находящейся в РК, зависит от ее кода операции. Этот код с помощью дешифратора преобразуется в форму Ik–1...I0, требуемую для работы формирователя сигналов управления. В ФСУ происходит выбор нужной микропрограммы и выработка сигналов управления, определяемых этой микропрограммой. На выбор микропрограммы и ход ее выполнения могут влиять как состояние осведомительных сигналов (признаков), отражающих ход вычислений, так и сигналы о внешних событиях в памяти и системе ввода/вывода, поступающие из системной шины. Выработка сигналов управления выражается в переводе соответствующих линий управления в активное состояние.

Наибольшее распространение получили два варианта микропрограммных автоматов:

с аппаратной или «жесткой» логикой;с программируемой логикой (хранимой в памяти логикой).

Различие между данными вариантами, по сути, сводится к способу реализации формирователя сигналов управления. В обоих случаях при проектировании ФСУ сигналы управления представляются двоичными цифрами 1 (активное состояние СУ) и 0 (отсутствие СУ).

Микропрограммный автомат с аппаратной логикой

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

В качестве примера спроектируем возможную схему ФСУ для гипотетической ВМ, воспользовавшись для этого табл. 4.1, где перечислены все сигналы управления с указанием команд и тактов, когда эти СУ должны формироваться.

На основе приведенных данных можно составить следующую систему логических выражений:

РАП_СК = ВК Т0

ЧтЗУ = ВК Т0 LDA Т2 (ADD SUB) Т3

ЗпЗУ = STA Т3

Вв = INP Т3

Выв = OUT Т3

144

Глава 4. Устройства управления

 

 

+1СК = BRZ Z Т2 HLT Т3 (LDA STA INP OUT) Т4 (ADD SUB) Т5 БПУП = (JMP BRZ Z) Т2

РАП_РА = (LDA STA ADD SUB) Т2 ДВВ_РА = (INP OUT) Т2

РДП_Акк = STA Т2 РК_РДП = ВК Т1 Акк_РДП = LDA Т3

РХ_РДП = (ADD SUB) Т3

РY_Акк = (ADD SUB) Т3

Акк_ОпБ = (ADD SUB) Т4

ОСТ = HLT Т2

Таблица 4.1. Описание СУ и моментов их формирования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВК

LDA

STA

ADD

SUB

INP

OUT

JMP

BRZ

HLT

 

 

 

 

 

 

 

 

 

 

 

 

 

РАП_СК

T0

 

 

 

 

 

 

 

 

 

 

 

ЧтЗУ

T0

T2

 

T3

T3

 

 

 

 

 

 

 

ЗпЗУ

 

 

T3

 

 

 

 

 

 

 

 

 

Вв

 

 

 

 

 

T3

 

 

 

 

 

 

Выв

 

 

 

 

 

 

T3

 

 

 

 

 

+1СК

 

T4

T4

T5

T5

T4

T4

 

Т2

 

 

T3

 

 

Z

БПУП

 

 

 

 

 

 

 

T2

T2 Z

 

РАП_РА

 

T2

T2

T2

T2

 

 

 

 

 

 

 

ДВВ_РА

 

 

 

 

 

T2

T2

 

 

 

 

 

РДП_Акк

 

 

T2

 

 

 

 

 

 

 

 

 

РК_РДП

T1

 

 

 

 

 

 

 

 

 

 

 

Акк_РДП

 

T3

 

 

 

 

 

 

 

 

 

 

РХ_РДП

 

 

 

T3

T3

 

 

 

 

 

 

 

РY_Акк

 

 

 

T3

T3

 

 

 

 

 

 

 

Акк_ОпБ

 

 

 

T4

T4

 

 

 

 

 

 

 

ОСТ

 

 

 

 

 

 

 

 

 

 

 

T2

Соответствующая этой системе схема ФСУ показана на рис. 4.4.

Будучи комбинационной схемой, ФСУ позволяет обеспечить очень высокую частоту формирования сигналов управления, что является основным достоинством МПА с аппаратной логикой. В то же время с возрастанием объема и сложности системы команд увеличивается количество сигналов управления и усложняется схема ФСУ, следствием чего становится снижение ее быстродействия. По этой причине МПА с аппаратной логикой характерны, главным образом, для вычислительных

Микропрограммный автомат с программируемой логикой

145

 

 

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

Рис. 4.4. Аппаратная реализация формирователя сигналов управления для гипотетической ВМ

Микропрограммный автомат с программируемой логикой

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

146

Глава 4. Устройства управления

 

 

М. Уилксом в начале 50-х годов [163]1. В основе идеи лежит тот факт, что для инициирования любой микрооперации достаточно сформировать соответствующий СУ на соответствующей линии управления, то есть перевести такую линию в активное состояние. Это может быть представлено с помощью двоичных цифр 1 (активное состояние — есть СУ) и 0 (пассивное состояние — нет СУ). Сигналы управления в МПА с программируемой логикой представляются с помощью управляющих слов — микрокоманд (МК). Микрокоманда соответствует одному такту работы ВМ и определяет, какие СУ должны быть сформированы в данном такте. В простейшем случае каждый из возможных СУ может быть представлен в микрокоманде одним разрядом, а установка i-го разряда в 1 означает необходимость формирования i-го СУ. Последовательность МК, по тактам описывающая выполнение определенного этапа цикла команды, образует микропрограмму (МП).

Микропрограммы составляются для каждого этапа машинного цикла каждой команды ВМ и размещаются в специальном запоминающем устройстве, называемом управляющей памятью (УПМ) или памятью микропрограмм. Процесс формирования сигналов управления сводится к последовательному (с каждым тактовым импульсом) извлечению из управляющей памяти очередной МК микропрограммы. Содержащаяся в МК информация интерпретируется как набор СУ. В терминологии на английском языке микропрограмму часто называют firmware, подчеркивая тот факт, что это нечто среднее между аппаратурой (hardware) и программным обеспечением (software).

Возможное размещение микропрограмм в управляющей памяти показано на рис. 4.5. Основное содержимое УПМ составляют микропрограммы этапа исполнения для каждой из команд, входящих в систему команд ВМ. Некоторые из хранящихся в УПМ микропрограмм являются общими для всех команд, например микропрограмма этапа выборки команды или этапа формирования адреса следующей команды.

Обобщенная структура формирователя сигналов управления МПА с программируемой логикой показана на рис. 4.6. Работу узла задает схема формирования адреса микрокоманды (СФАМ). Она обеспечивает определение адреса очередной микрокоманды, занесение его в регистр адреса управляющей памяти, считывание микрокоманды из управляющей памяти и занесение в регистр микрокоманды.

В состав СФАМ входит синхронизатор, аналогичный по структуре рассмотренному ранее (см. рис. 4.3), и вспомогательные логические схемы.

Цикл любой команды начинается с исходного состояния синхронизатора (такт Т0 — счетчик тактов обнулен). СФАМ заносит в регистр адреса управляющей памяти адрес первой МК микропрограммы выборки команды. В том же такте по сигналу чтения Чт происходит считывание адресуемой микрокоманды из управляющей памяти и ее запись в регистр микрокоманды (РМК).

1Аналогичную идею, независимо от Уилкса, в 1957 году выдвинул российский ученый Н. Я. Матюхин. Предложенное им УУ с программируемой логикой было реализовано в 1962 году в специализированной ВМ «Тетива», предназначенной для системы противовоздушной обороны.

Микропрограммный автомат с программируемой логикой

147

 

 

Рис. 4.5. Размещение микропрограмм в управляющей памяти

Рис. 4.6. Формирователь сигналов управления в микропрограммном автомате с программируемой логикой

148

Глава 4. Устройства управления

 

 

Занесение микрокоманды в РМК эквивалентно формированию указанных в ней сигналов управления. С очередным тактовым импульсом адрес текущей микрокоманды в СФАМ увеличивается на 1, а в РМК считывается следующая микрокоманда. Процесс повторяется до завершения микропрограммы выборки команды.

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

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

Кодирование микрокоманд

Информация о том, какие сигналы управления должны быть сформированы в процессе выполнения текущей микрокоманды, в закодированном виде содержится в микрооперационной части (МО) микрокоманды. Способ кодирования микроопераций во многом определяет сложность аппаратных средств ФСУ и его скоростные характеристики. Известные варианты кодирования сигналов управления можно свести к трем группам: горизонтальному, вертикальному и смешанному кодированию. Структуры микропрограммных автоматов при различных способах кодирования микроопераций показаны на рис. 4.7 [11, 23].

При горизонтальном кодировании (см. рис. 4.7, а) каждый разряд микрооперационной части микрокоманды представляет один из возможных сигналов управления,

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

Микропрограммный автомат с программируемой логикой

149

 

 

то есть определенную микрооперацию. При общем количестве СУ равном m, длина микрооперационной части МК составляет m битов. Единица в определенном разряде МО означает необходимость формирования соответствующего СУ, независимо от состояния остальных битов МО. Независимость разрядов МО позволяет в рамках одного тактового периода одновременно выполнять вплоть до m микро­ операций, причем в любом их сочетании, что является несомненным достоинством горизонтального кодирования. Кроме того, выходы регистра микрокоманды, куда помещается считанная из УПМ микрокоманда, могут быть подключены непосредственно к соответствующим управляемым точкам ВМ без предварительного декодирования МО (показанный на рис. 4.6 дешифратор микрокоманды не нужен). Основной недостаток горизонтального кодирования — большая длина МО, из-за чего возрастают требования к емкости управляющей памяти. По этой причине данный способ кодирования используется, если m ≤ 150.

Рис. 4.7. Способы кодирования микроопераций: а — горизонтальный;

б— вертикальный; в — горизонтально-вертикальный;

гвертикально-горизонтальный

При вертикальном кодировании (см. рис. 4.7, б ) каждой микрооперации присваивается уникальный код, который и указывается в микрооперационной части МК. Разрядность этого кода (длина МО) равна наименьшему целому, большему или равному log2 m, что можно записать как log2 m . Таким образом, требования к емкости управляющей памяти по сравнению с горизонтальным кодированием существенно снижаются, но возникает потребность в дешифраторе для преобразования кода микрооперации в соответствующий сигнал управления. Кроме того, при вертикальном кодировании в МК можно указать лишь один сигнал управления. Микрооперации, которые можно было бы выполнить одновременно, приходится выполнять последовательно в разных тактовых периодах, что ведет к увеличению длины микропрограммы и времени ее реализации.

Компромиссное сочетание достоинств и недостатков горизонтального и вертикального кодирования достигается путем смешанного кодирования. Известны несколько вариантов такого кодирования, среди которых наиболее распространены

горизонтально-вертикальное и вертикально-горизонтальное кодирование. В обоих вариантах множество всех m возможных сигналов управления разбивается на k подмножеств. При разбиении на подмножества каждая микрооперация может присутствовать лишь в одном из подмножеств.

150

Глава 4. Устройства управления

 

 

В варианте горизонтально-вертикального кодирования (см. рис. 4.7, в) в микрооперационной части МК одновременно представлены все k подмножеств, что соответствует идее горизонтального кодирования. МО состоит из k полей (МО1 … МОk), каждое из которых представляет m/k сигналов управления, входящих в соответствующее подмножество. Сигналы управления внутри каждого поля описываются вертикальным способом, то есть представлены кодами, каждый из которых уника-

лен для данного подмножества. В таких условиях поле МОi состоит из log2 (m / k)

битов, а общая длина МО в микрокоманде равна k log2 (m / k) битов. Распределение по подмножествам производится так, чтобы микрооперации, которые можно выполнить одновременно, оказались в разных подмножествах. Этим обеспечивается возможность одновременного выполнения вплоть до k микроопераций. Ввиду того, что микрооперации в каждом поле заданы вертикальным способом (закодированы), для формирования СУ каждое поле в регистре микрокоманд необходимо снабдить дешифратором. Так как количество микроопераций в подмножестве m/k меньше их общего числа m, то такие дешифраторы проще по сравнению с применяемыми в вертикальным кодировании, что положительно сказывается на быстродействии ФСУ.

В вертикально-горизонтальном способе (см. рис. 4.7, г) при разбиении СУ на подмножества ставится задача собрать в подмножестве те микрооперации, которые можно выполнять одновременно, в рамках одной микрокоманды. МО делится на два поля: МОСУ и МОНП. Поле МОСУ, длина которого равна максимальному количеству микроопераций в подмножестве (m/k), кодируется горизонтально, то есть для каждого СУ выделен один разряд, и декодирование содержимого поля МОСУ не требуется. В отдельной микрокоманде может быть представлено только одно из подмножеств. В поле МОНП указывается номер этого подмножества, иными словами, имеет место вертикальное кодирование. Длина этого поля равна log2 k , следовательно, общая длина МО составит m / k + log2 k битов. При смене подмножества меняются и управляемые точки, куда должны быть направлены сигналы управления из каждой позиции МОСУ. Это достигается с помощью демультиплексоров, управляемых кодом номера подмножества из поля МОНП регистра микрокоманд.

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

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

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