Управляющие автоматы с программируемой логикой

Как видно из названия, логика процессора в данном случае программируется в виде микропрограмм, которые хранятся в микропрограммной памяти (МПП). Микропрограмма - последовательность микрокоманд, которая реализует некоторый подалгоритм. Напомним, что управляющий автомат – это устройство, которое в зависимости от ряда входных признаков имеет на выходе микрокоманду, т.е. совокупность сигналов для управления функциональными элементами операционного автомата. УА с программируемой логикой можно представить в виде двух блоков: схемы формирования адреса (схФАМ) и микропрограммной памяти (МПП). Соответственно, работу УА можно представить в виде двух процессов: определения адреса микрокоманды в МПП и выборки соответствующей микрокоманды из МПП.

 
 

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

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

 
 

В общем виде, микрокоманду можно представить в следующем виде:

 
 

Где управляющее слово – управляющие сигналы для ОА (Yi), а адресная часть – информация для схемы ФАМ. Адресная часть определяет правила нахождения следующей микрокоманды.

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

Возможны следующие типы переходов:

Где естественный порядок (ЕП) – это последовательное выполнение микрокоманд от начала микропрограммы до конца, при этом чтобы определить адрес следующей микрокоманды необходимо знать адрес текущей микрокоманды и прибавить к нему ее длину. Безусловный переход (БП) как и в языках программирования высокого уровня – это переход на команду по заданному адресу (в данном случае адрес следующей микрокоманды задается в адресной части). Условный переход (УП) – это переход по заданному адресу, если выполняется некоторое условие, в противном случае продолжается последовательное выполнение микрокоманд. Подпрограмма – вынесенная последовательность микрокоманд, которая часто используется, можно представить в виде безусловного перехода с возвратом. Цикл – выполнение блока микрокоманды несколько раз, сколько определяется или условием выхода из цикла, или по счетчику заранее заданное число раз. Переход по ключу – это условный переход, в котором одновременно анализируется множество условий (наподобие case в Pascal и switch в С).

Т.о. схема ФАМ – это набор средств для реализации переходов.

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

Рассмотрев выше что должен делать УА, перейдем к его построению, что в данном случае сводится к постоению схемы ФАМ.

Как уже было сказано схему ФАМ можно представить в виде двух частей:

 
 

1. Определим набор слов, с которыми должна работать ОЧ схемы ФАМ:

а. Текущий адрес микрокоманды;

б. Адрес перехода;

в. Адрес возврата из подпрограммы;

г. Счетчик (параметр) цикла;

2. На физическом уровне им будут соответствовать следующие элементы памяти:

а. Регистр-счетчик адреса микрокоманды – Рг-СчАМК ;

б. Входные данные (из предыдущей микрокоманды);

в. Стек адресов возврата;

г. Счетчик;

3. Действия в зависимости от типа перехода (внешний признак):

- для выбора одного из адресов (а, б или в) необходим мультиплексор;

- для модификации адреса при относительной адресации должна использоваться схема модификации адреса (сх модиф АМК);

Определив основные необходимые элементы, построим схему формирования адреса микрокоманды в УА:

Схема ФАМ

На рисунке представлен один из вариантов схемы ФАМ. УЧ в данной схеме является схема УСА, а ОЧ все остальное.

Схема УСА – схема управлением следущим адресом. В зависимости от типа перехода (ТП) и признаков перехода (при УП) выдает набор управляющих сигналов {yi} для ОЧ схемы ФАМ. Множество {yi} небольшое и содержит управляющие сигналы для стека (2), для Рг-СчАМК (2), для мультиплексора MS АМК (2), для Ё. Т.о. схема УСА реализует функции переходов на микропрограммном уровне, представляет собой маленькую ПЗУ, содержащую наборы управляющих сигналов, соответствующих разным комбинациям ТП и признаков перехода.

Операционная часть включает:

MS АМК – мультиплексор, в зависимости от типа перехода выбирает один из 4-х адресов;

Рг-СчАМК - регистр для хранения адреса текущей микрокоманды, совместно с СУММ (сумматор) осуществляют естественный переход. СУММ прибавляет к адресу текущей mкоманды смещение (длину mкоманды) и получается адрес следующей mкоманды;

Стек хранит адреса возврата: записывает в верхушку адрес текущей mкоманды из Рг-СчАМК и читает из верхушки, когда выполняется операция возврата из микро подпрограммы.

Сч.ц/РгА – счетчик цикла, используется при реализации цикла по параметру (хранит его). При значении счетчика равном нулю (необходимое число раз цикл сработал), признак, равный 0, дает знать схеме УСА, что цикл закончился.

Адрес при БП, УП, подпрограмме задается в адресном поле mкоманды и подается на вход схемы ФАМ (адрес перехода), где и выбирается мультиплексором при соответствующем ТП.

Схема модификации адреса mкоманды используется для относительной адресации на микропрограммном уровне.

Реализация переходов

Циклы

Реализация циклов уже осуществлена в схеме ФАМ (стек адресов возврата).

Условные переходы

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

1. Простые условия всего по одному признаку:

2. Составные условия – функция от нескольких признаков;

3. Многоразрядные условия. Например, код операции из машинной команды, способ адресации (~4 разряда);

Где MS выбора – мультиплексор выбора условия;

ВУ – выбор условия (из предыдущей mкоманды);

Схема 1 – схема формирования сложных условий;

УП – управление полярностью (из предыдущей mкоманды);

Схема формирования сложных условий осуществляет некоторую функцию от набора признаков из операционного автомата, т.о. реализуются такие условия, как ²³², ²=²,²£² и т.д.

При этом равно половина условий является отрицанием другого условия, например, ²<² = не ²³², ²¹² = не ²=², ²>² = не ²£², и т.д. поэтому схеме формирования сложных условий достаточно вычислять половину условий, а инверсные условия образуются с помощью сигнала УП и схемы сложения по модулю 2. Например, пусть нормальное условие вычисляется при УП=0, тогда, чтобы получить инверсное условие от нормального, зададим УП=1 и на выходе схемы будет отрицание (т.к. при УП=1, 1 Å 1 = 0, 0 Å 1 = 1 ).

Реализация оператора ²ключ² (Многоразрядные условия)

Как уже говорилось ранее (см. Формат команды) основной частью команды является код операции (КОП), он задает, что собственно должен делать ЦП по этой команде, при этом по КОП определяется всего лишь адрес соответствующей команде микропрограммы (см. Приложение 1). Т.о. КОП является всего лишь многоразрядным условием, которое анализируется с помощью оператора ²ключ².

Его можно реализовать следующим образом:

В данной схеме ключевое слово (КОП) подается на ПНА (получение начального адреса по ключевому слову), которая обычно реализуется в виде табличного ПЗУ (простое соответствие i-му КОП i-го адреса в МПП). MS – мультиплексора адреса перехода, выбирает адрес из ПНА, если осуществляется оператор ²ключ², иначе выбирается адрес, соответствующий текущему ТП (из адресной части mкоманды (БП, УП, подпрограмма), из РгАМК(ЕП), из стека).

Примечание: КОП показывает, где находится микропрограмма для этой соответствующей ему команде, после чего выполняется эта микропрограмма, независимо от того, что на входе ПНА. Когда она выполнится, будет анализироваться КОП следующей команды и т.д.

Конвейер

Выполнение микрокоманды можно разбить на три этапа:

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

2. Чтение mкоманды из микропрограммной памяти (МПП);

3. Формирование условия в ОЧ (для формирования адреса следующей mкоманды);

Можно попробовать совместить выполнение всех этапов для разных mкоманд, т.е. можно реализовать конвейер. Этапы выполнения микрокоманды можно изобразить в следующем виде:

       
 
 
   
признаки

Т.о. мы имеем три раздельные группы операций, не совместимых во времени для одной и той же mкоманды (сначала вычисляется адрес mкоманды и только потом выполняется обращение по этому адресу в МПП, одновременно это происходить не может; и только после того, как mкоманда выбрана из МПП и известны такие ее поля, как: адресное поле, ВУ, ТП, УП и другие условия в ОЧ могут формироваться признаки). Поэтому можно реализовать не больше трех ступеней конвейера, чтобы их реализовать необходимо ввести регистры-фиксаторы: после 1-го этапа (схемы ФАМ) находится адрес mкоманды в МПП, т.е. необходим регистр адреса mкоманды (РгАМК), после 2-го этапа из МПП читается mкоманда – регистр mкоманды (РгМК) и после 3-го этапа в ОЧ образуются признаки – регистр признаков (Рг пр.).

 
 

Посмотрим временные диаграммы для случаев без конвейера и с трехступенчатым конвейером:

Сх ФАМ 1 mк   2 mк    
МПП   1 mк   2 mк    
ОЧ   1 mк   2 mк
Сх ФАМ 1 mк 2 mк 3 mк 4 mк    
МПП   1 mк 2 mк 3 mк 4 mк    
ОЧ   1 mк 2 mк 3 mк 4 mк
Без конвейера
3-хступенчатый конвейер

 
 

Как видно по диаграмме в первом случае на выполнение микрокоманды требуется три интервала времени, при этом каждый из этапов mкоманды выполняются за один интервал, а потом простаивают. При полной загрузке конвейера простаивание отсутствует, и в общем случае mкоманда выполняется за один интервал.

Рассмотрим конкретный пример: адрес 3-й mкоманды определяется схемой ФАМ в то время, когда происходит выборка из МПП 2-й mкоманды и выполнение в ОЧ 1-й mкоманды. При этом 2-я mкоманда формирует признаки для выполнения 3-й mкоманды, используя признаки от 1-й mкоманды для получения 4-й mкоманды и адреса 5-й mкоманды.

Не обязательно совмещать во времени все три группы операций, можно строить одно- или двухступенчатые конвейеры, при этом они будут определяться числом регистров-фиксаторов, используемых в УА. Т.к. в полном конвейере должно быть три регистра-фиксатора, то может быть соответственно три одноступенчатых конвейера (с Рг АМК, Рг МК и Рг пр.), и три двухступенчатых конвейера (с различными комбинациями этих регистров).

Простейшая машина

1. Выборка команды (как минимум инструкции); счетчик должен увеличиваться

2. Дешифрация команды – определить, что она делает

3. Вычисление адреса первого операнда

4. Выборка первого операнда

5. Вычисление адреса второго операнда

6. Выборка второго операнда

7. Выполнение операций

8. Запись результата

9. Завершающие операции

переход на пункт 1

Пункты 1, 2, 9 как правило выполняются с любой командой

Операционный автомат

1) слова, число слов, их функции и использование

2) операции (арифметико-логические à АЛУ, MS-сдвигатель)

Операционный автомат

1. Инструкция (команда)

2. Счетчик команд (РС)

3. Операнд 1

4. Операнд 2, результат

5. Указатель стека

6. Внутренний буферный регистр адреса

7. Регистр признаков (состояний) (PS)

8. Рг МК

9. Входное слово

10. Выходное слово (2 типа: адрес, данные)

Простейшие машины обязаны иметь РЗУ хотя бы для внутренних слов.

РЗУ – добавляем программно доступные адресуемые регистры – РОНы

№ регистра указывается либо в команде, либо и микрокоманде

В программе должно быть КОП, СА, № Рг

Простейшая универсальная машина

2 разряда определяют формат операнда

Квадрослово – другой формат команды

УА с программируемой логикой

 
 

КОП – код операции

ПНА КОП – получение начального адреса по коду операции

УСА – управление следующим адресом

ТП – тип перехода

ВУ – выбор условия

ИС – интерфейсные сигналы

 
 

Рг признаков

Говорим о признаках программно известных и программно неизвестных, но нужных в ходе выполнения алгоритмов

внутренние признаки

системные признаки

Схема управления сдвигами – набор мультиплексоров

Системы памяти

Памятью ЭВМ называется совокупность устройств, для запоминания, хранение и выдачи информации. Отдельные устройства, входящие в эту совокупность называют запоминающими устройствами (ЗУ) или памятью того или иного типа.

Производительность и вычислительные возможности ЭВМ в значительной степени определяются составом и характеристиками ее ЗУ. В составе ЭВМ используется одновременно несколько типов ЗУ (несколько типов памяти), отличающихся принципом действия, характеристиками и назначением.

Емкость памяти определяется максимальным количеством данных, которые могут в ней храниться.

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

Наши рекомендации