Микропрограммные автоматы_new_!!!!!!!!!+.pptx
- Количество слайдов: 95
Микропрограммные автоматы Программная и аппаратная реализация алгоритмов и автоматов. МПА M. V. Wilkes Микрокоманды, микрооперации, микроинструкции.
Микропрограммные автоматы Цель автомата - получение последовательности значений выходной переменной по последовательности значений входной переменной. На практике конечные автоматы могут быть реализованы как аппаратным, так и программным способом. Прежде чем реализовать автомат схемно, его можно реализовать на машине в виде программы (программную реализацию можно выполнить на любом языке высокого уровня разными способами). И наоборот, имея автомат, мы можем поставить в соответствие ему программу. Преимуществом аппаратной реализации по сравнению с программной является высокое быстродействие. Доводом в пользу программной реализации может служить то, что при таком подходе требуется осуществить только перепрограммирование устройства или замену кода, не затрагивая конкретную элементную базу. Следующий график иллюстрирует соотношение между перечисленными выше вариантами реализации конечных автоматов (диаграмма функциональной сложности):
Микропрограммные автоматы Программная и аппаратная реализация КА Ck C 0 Fk
Микропрограммные автоматы Автомат для реализации микропрограммы
Микропрограммные автоматы Регистры МП автомата. Обозначим: R 1 – регистр, в котором располагается делитель; ACС – накапливающий регистр, в котором располагается делимое; R 2 – в данном регистре производится поразрядное образование частного; Cr – регистр адреса команды (счетчик команд).
Микропрограммные автоматы Входами системы являются: 1) вход, соответствующий операции, которая должна выполняться с помощью микропрограммы и которая служит для определения начального состояния, т. е. первой считываемой ячейки оперативной памяти; 2) переменные p и q, которые являются критериями переходов в микропрограмме. Переменные определяют работу счётчика (Ct) и аккумулятора (АС) Ct АС следующим образом: Сt: р=1, Ct=0 p=0, Ct=1 AC: q=1, AC<0 q=0, AC≥ 0 Вместо того, чтобы рассматривать ячейки памяти, содержащие строки микроалгоритма, можно непосредственно рассматривать сами строки. Тогда алгоритм можно рассматривать, как автомат, состояниями которого являются строки алгоритма.
Микропрограммные автоматы В качестве примера рассмотрим, как реализуется алгоритм деления при помощи сложения или вычитания и сдвигов от начального положения. Алгоритм деления: 1: сдвигаем АС 2: AC + R 1 - дополнительный код 3: если p = 1, то (выход) 4: если p = 0, то (след. шаг) 5: если q = 1, то (10) 6: R 2=1 7: R 2, Cr = Cr-1 8 : АС 9: AC + R 1 (3) 10: АС 11: R 2, Cr = Cr-1 12: AC + R 1 (3) 13: (выход) у1 y 2 y 3 y 4 y 1 y 2 y 1 y 4 y 2
Микропрограммные автоматы Функции переходов-выходов автомата типа Мура:
Микропрограммные автоматы Функции переходов-выходов автомата типа Мура: К данному автомату можно применить формальные методы минимизации автоматов на основании условий эквивалентности Колдуэла. Далее, микропрограмма содержит эквивалентные строки 1 -7, 2 -8 и переходы, которые не сопровождаются никакими выходными сигналами (сигналами, поступающими на исполнительные устройства). Такое поведение микропрограмм допускает минимизацию. Тем самым, методами теории конечных автоматов мы преобразовали алгоритм для программной реализации:
Микропрограммные автоматы Граф автомата Мура исходный. Задача получить минимальный граф из исходного - вида: Минимизированный граф
Микропрограммные автоматы Граф автомата Мура исходный и сокращенный:
Микропрограммные автоматы Граф автомата минимизированный:
Микропрограммные автоматы Морис Винсент Уилкс (Maurice Vincent Wilkes, 26. 06. 1913 -29. 11. 2010) В 1951 году М. В. Уилксом было предложено проектировать управляющие автоматы с помощью микроинструкций, которые хранятся в памяти процессора. (Wilkes, M. V. , Stringer, J. B. `Microprogramming and the Design of the Control Circuits of an Electronic Digital Computer. ' Proc. Camb. Phil. Soc. vol 49 page 230 (1953)). Морис Винсент Уилкс Maurice Vincent Wilkes, 26. 06. 1913 -29. 11. 2010 Учился с 1931 по 1934 год в Кембриджском (Англия) университете, в 1936 получил титул доктора философии, написав диссертацию о распространении радиоволн в ионосфере. После этого работал и преподавал в родном университете. В 1945 году стал руководителем компьютерной лаборатории, и оставался на этом посту до 1980 года.
Микропрограммные автоматы (Microprogramming automat Wilkes) Модель микропрограммного управления по Уилксу М. В. [Wilkes М. V. , Stringer J. В. , Microprogramming and the Design of the Control Circuits in the Electronic Digital Computer, Proc. of the Cambridge Philosophical Society, 49, part 2, pp. 230— 238 (1953). ]
Микропрограммные автоматы МПА Уилкса
Микропрограммные автоматы (Микропрограмма для МПА Уилкса, часть 1)
Микропрограммные автоматы (Микропрограмма для МПА Уилкса, часть 2)
Микропрограммные автоматы Обобщенная схема МПА
Микропрограммные автоматы (Генератор синхроимпульсов)
Микропрограммные автоматы (Алгоритм работы или Диаграмма состояний Автомата)
Микропрограммные автоматы (ФВП для аппаратной реализации Автомата на JK-триггерах) { {
Микропрограммные автоматы (Аппаратная реализация заданного алгоритма )
Микропрограммные автоматы (Микрокоманда для МПА Уилкса, часть 1)
Микропрограммные автоматы (Микропрограмма для МПА часть 1) Число шагов МП=36 Число бит в АЧ МК=6 Емкость управляющей памяти = 36 х(6+3)=324 бит
Микропрограммные автоматы (Микрокоманда для МПА Уилкса, часть 2)
Микропрограммные автоматы (Микропрограмма для МПА часть 2) Число шагов МП=28 Число бит в АЧ МК=5 Емкость управляющей памяти = 28 х(5+2 х7)=532 бит
Микропрограммные автоматы (Реализация МПА на ПЛМ)
Микропрограммные автоматы (Реализация МПА на ПЛМ)
Микропрограммные автоматы (Реализация МПА на ПЗУ)
Микропрограммные автоматы (Реализация МПА на ПЗУ)
Микропрограммные автоматы (Реализация МПА на ПЗУ)
Микропрограммные автоматы (Отображение команд в микропрограммы)
Микропрограммные автоматы (Отображение команд в микропрограммы)
Микропрограммные автоматы (Управляющие МПА) Функция управляющего автомата определяется: 1. множеством входных осведомительных сигналов Х, отображающих состояние операционного автомата; 2. множеством выходных (управляющих) сигналов Y, инициирующих выполнение микроопераций, реализуемых операционным автоматом; 3. закодированной граф-схемой микропрограммы (ГСМ), задающей порядок следования управляющих сигналов Y в зависимости от значений осведомительных сигналов Х. Функционирование управляющего автомата (УА) сводится к генерированию последовательности управляющих сигналов Y, предписанной микропрограммой, и соответствующей последовательностью осведомительных сигналов Х.
Микропрограммные автоматы (Кодирование микрокоманд МПА) Последовательность микрокоманд, выполняющих одну машинную команду или отдельную процедуру, образует микропрограмму. Обычно микропрограммы хранятся в специальной памяти микропрограмм ("управляющей памяти"). В управляющих автоматах с хранимой в памяти программой, микропрограммы используются в явной форме, они программируются в кодах микрокоманд и в таком виде заносятся в память. Поэтому такой метод управления цифровым устройством называется микропрограммированием, а использующие этот метод управляющие блоки – микропрограммными управляющими устройствами (автоматами). Микрокоманда содержит информацию о микрооперациях, которые должны выполняться в данном такте работы устройства, и информацию об адресе следующей микрокоманды.
Микропрограммные автоматы (Микропрограммы, микропрограммирование) Микропрограмма - любая формализованная форма описания работы управляющего и операционного автоматов. Микрооперация - базисное (элементарное) действие, выполняемое в ОА. Микроблок - набор микроопераций, выполняемых в ОА одновременно (в одном такте). Признак (условие) - логическое значение, используемое при переходе к одному из возможных шагов алгоритма; - результат выполнения микрооперации. Микрокоманда - набор сигналов, поступающий из УА в ОА и интерпретируемый как управляющий, т. е. необходимый для выполнения всех микроопераций одного микроблока. Микроинструкция - слово управляющей памяти. - состоит из двух составных частей: микрокоманды и адресной части.
Микропрограммные автоматы (Структура Микрокоманды МПА) Микрокоманда содержит четыре поля: СХ – поле управления выбором опрашиваемого входного осведомительного сигнала хi; А 1 – поле адреса следующей микрокоманды, если опрашиваемый осведомительный сигнал хi= 1; А 0 – поле адреса следующей микрокоманды, если опрашиваемый осведомительный сигнал хi= 0; Y – поле операционной части микрокоманды (поле выходных управляющих сигналов). Способ адресации микрокоманд задаёт правило определения адреса следующей микрокоманды. Существуют два основных способа определения адреса следующей микрокоманды – принудительная адресация и естественная адресация.
Микропрограммные автоматы (Кодирование микрокоманд МПА) Адресная часть микроинструкции содержит информацию, позволяющую в следующем такте работы выбрать (указать) новый адрес управляющей памяти. Реализация именно этого момента является основным предметом дальнейшего рассмотрения и определяет, в основном, структуру, объем аппаратуры и быстродействие УА. Рассмотрим реализация следующих типов переходов между шагами алгоритма, и между микроинструкциями: - безусловный переход, - функциональный переход, - переход к микроподпрограмме с возвратом.
Микропрограммные автоматы (МПУА с принудительной адресацией )
Микропрограммные автоматы (МПА с принудительной адресацией)
Микропрограммные автоматы (МПА с естественной адресацией)
Микропрограммные автоматы (МПА с естественной адресацией)
Микропрограммные автоматы (МПА с естественной II адресацией)
Микропрограммные автоматы (Блок-схема микропрограммы) Особенности алгоритма: • Оператор перехода (условная вершина), g 1 - ждущий. • Оператор перехода g 2 - не двунаправленный потребуются эквивалентные преобразования алгоритма
Микропрограммные автоматы (Эквивалентность алгоритмов. Ограничения. ) Алгоритмы эквивалентны, если они преобразуют информацию одинаковым образом, не обязательно за одно и тоже число тактов. Наиболее распространенным приемом эквивалентного преобразования алгоритмов и микропрограмм является включение микроблоков и, соответственно, тактов, в которых не выполняется модификация памяти ОА "нет операции". Принятые ограничения, позволяют упростить схему на начальных ограничения этапах проектирования (от ограничений легко впоследствии и отказаться): - на каждом шаге процесса вычислений ветвление может осуществляться только по одной двузначной переменной (условию) - т. е. ветвление возможно лишь на два направления; - начальные значения всех регистров УА являются нулевыми. ** Впредь на схемах не будем показывать цепей установки нулевых начальных значений в регистрах УА.
Микропрограммные автоматы (Схема с адресным ПЗУ - «МПА Уилкса» ) последовательная «конвейерная»
Микропрограммные автоматы (Схема с адресным ПЗУ - «МПА Уилкса)
Микропрограммные автоматы (Схема с явным указанием альтернативных адресов) последовательная «конвейерная»
Микропрограммные автоматы (Схема с явным указанием альтернативных адресов)
Микропрограммные автоматы (Схема с частичной записью адреса ) последовательная «конвейерная»
Микропрограммные автоматы (Схема с частичной записью адреса )
Микропрограммные автоматы (Схема с сокращенным тактом ) «конвейерная»
Микропрограммные автоматы (Схема с сокращенным тактом ) Мультиплексор MX'2, функционально необходимый, реально может отсутствовать, если мультиплексирование реализовать с использованием высокоимпедансного (Z) состояния выхода ПЗУ. Эта функция реализуется в ПЗУ обычно в 3 - 4 раза быстрее, чем выбор содержимого ячейки по быстрее адресу.
Микропрограммные автоматы (Схема с регулярной (естественной) адресацией )
Микропрограммные автоматы (Схема с регулярной (естественной) адресацией )
Микропрограммные автоматы (Схема с регулярной (естественной) адресацией )
Микропрограммные автоматы (Схема с естественной адресацией и совмещенным назначением разрядов ячейки ПЗУ )
Микропрограммные автоматы (Схема с естественной адресацией и совмещенным назначением разрядов ячейки ПЗУ )
Микропрограммные автоматы (Функциональный переход. Переход на микроподпрограмму с возвратом. )
Микропрограммные автоматы (Функциональный переход. Переход на микроподпрограмму с возвратом. ) С помощью комбинационной схемы CS разряды микроинструкции (k, e 1, e 2) преобразуются в сигналы управления стеком и мультиплексором. При вызове микроподпрограммы необходимо запомнить адрес, с тем, чтобы восстановить его при возвращении из микроподпрограммы. Для этого используется безадресная память - стек (stack). Принцип (дисциплина) работы стека описывается условием «последним вошел первым вышел» (Last In - First Out, LIFO). Слово с наибольшим номером называют вершиной стека. Стек может выполнять следующие действия: - «чтение» слова с наибольшим номером, - «выталкивание» (стирание) из памяти слова с наибольшим номером, - «запись» нового слова с присваиванием ему наибольшего номера. При вызове микроподпрограммы выполняется операция «записи» в стек адреса возврата. При возвращении из микроподпрограммы выполняется операция «чтения» адреса возврата, затем «выталкивания» его же из стека. Операция «чтения» без «выталкивания» выполняется при использовании стека для организации циклов.
Микропрограммные автоматы (Кодирование микроопераций МПА) Блок-текст состоит из трех частей: 1)- Описание переменных и начальных значений памяти. 2)- Описания функций и связей. Записываются любые функции и функциональные связи (в том числе предикатные), не использующие запоминания. Переменные из левой части операции присваивания таких функциональных описаний используются в блоках процедуры. 3)- Процедура, состоящая из блоков (микроблоков) операторных и блоков переходов: - операторные - в скобках вида {. . . }, - перехода - в скобках вида <<. . . >>; и те, и другие блоки могут снабжаться метками, стоящими перед блоком. В блоках перехода используется оператор GO в одной из двух форм: GO m - безусловный переход, GO (P; m 0, m 1, m 2, . . . ) - условный переход. здесь m 0, m 1, . . . - метки блоков, P - предикатное значение, интерпретируемое оператором GO как неотрицательное целое число, являющееся порядковым номером метки в списке меток оператора GO. С этой метки должно быть продолжено выполнение алгоритма. Блоки условных переходов эквивалентны предикатным вершинам блок-схемы алгоритма.
Операционные автоматы (Синтез операционного автомата) Пример. Вычислитель наибольшего общего делителя (НОД) двух натуральных чисел (8 -разрядных). 1) Разработаем интерфейс вычислителя: I 1[7. . 0], I 2[7. . 0] -входные информационные шины. r. I -входной сигнал готовности: если r. I=1, то на входах I 1, I 2 готовы операнды. D[7. . 0] -выходная информационная шина. r. O -выходной сигнал готовности: если r. O=1, то готов результат на шине D, который сохраняется до появления новых операндов. 2) Математическое обоснование алгоритма вычислений: Идея алгоритма, следуя Евклиду (IIIв. до р. Х. ), заключа-ется в том, что НОД двух натуральных чисел А и В в случае равенства этих чисел совпадает с любым из них, а в случае их неравенства совпадает с НОД двух других чисел: меньшего и разности между большим и меньшим. Последовательно, уменьшая числа, получим два равных числа -значение одного из них и будет НОД исходных чисел. 3) Блок-схема алгоритма (микропрограмма в содержательном виде):
Операционные автоматы (БСА – нахождение НОД) I 1[7. . 0], I 2[7. . 0] --входные шины D[7. . 0] --выходная шина r. I, r. O --сигналы готовности A[7. . 0]: , B[7. . 0]: --память текущих значений S[7. . 0] --разность z, p --предикатные переменные z
Операционные автоматы (ОА: нахождение НОД) 4) Разработка функциональной схемы операционного автомата. z
Операционные автоматы (Синтез операционного автомата) 4) Разработка функциональной схемы операционного автомата. z
Операционные автоматы (Синтез операционного автомата) 5) Формулировка требований к управляющему автомату. Для управления вычислениями на каждом шаге алгоритма потребуются следующие управляющие сигналы: Заметив, что um. A = um. B , ui. B = ui. A , окончательно получаем: **/ операция активна, если значение управляющего сигнала равно 1
Операционные автоматы (Синтез операционного автомата) 4) Разработка функциональной схемы операционного автомата.
Операционные автоматы (Синтез операционного автомата) 4) Разработка функциональной схемы операционного автомата.
Операционные автоматы (Синтез операционного автомата) 4) Разработка функциональной схемы операционного автомата.
Операционные автоматы (Оптимизация ОА) При проектировании вычислительного устройства основными являются ограничения на: 1)- время вычисления; 2)- объем аппаратуры, реализующей вычисления; 3)- тип применяемых базовых функций. ЗАДАЧА: ОПТИМИЗАЦИЯ АПППАРАТУРЫ ПРИ СОХРАНЕНИИ МИНИМАЛЬНОГО ВРЕМЕНИ В настоящее время процедуры минимизации не формализованы и сводятся к перебору "правдоподобных" вариантов. Можно предложить следующую последовательность действий: 1)- все "похожие" функции (операции) реализовать на одном функциональном модуле, например, все суммирования выполнять на одном сумматоре; 2)-скорректировать алгоритм так, чтобы в одном микроблоке не выполнялось более одной операции на одном и том же функциональном модуле; 3)- минимизировать память автомата, т. е. число запоминаемых промежуточных переменных; ** Выполнение этих этапов может привести к усложнению коммутации, а значит, и к увеличению этой компоненты в аппаратуре ОА.
Операционные автоматы (Универсальный ОА)
Операционные автоматы (Универсальный ОА) ALU - арифметико-логическое устройство – комбинационная схема с небольшим, но универсальным набором арифметических и логических операций. RGF - регистровый файл - адресуемая память RAM со статической синхронизацией при записи. RG'T' - регистр-фиксатор со статической синхронизацией. RG'АCC' - регистр-аккумулятор с динамической синхронизацией. DI, DO - входная и выходная информационные шины. Р - предикатные сигналы (флажки). YF - сигналы управления выбором функции. YA - адрес чтения и/или записи RGF. y. W - разрешение записи в RGF.
Микропрограммные автоматы (Кодирование микрокоманд МПА) Выбор способа кодирования также определяется требованиями к объему ПЗУ, быстродействию автомата, а также данными о количестве различных микрокоманд и микроопераций в микропрограмме и ее структуре (степени разветвленности алгоритма). Точных рекомендаций по выбору способа кодирования для каждой конкретной микропрограммы не существует и поэтому решения, принимаемые разработчиком, носят субъективный характер. В процессе кодирования операционной части микрокоманды обычно стараются уменьшить ее длину и в то же время сохранить возможность совмещения нескольких микроопераций в одной микрокоманде. В случае небольшого количества микроопераций в автомате используют горизонтальное кодирование. Вертикальное кодирование применяется, когда в каждой микрокоманде выполняется только одна микрооперация или несколько совместимых.
Микропрограммные автоматы (Кодирование микроопераций МПА) Кодирование микроопераций в микрокоманде может выполняться по одному из 3 -х вариантов: 1) горизонтальное (унитарное) кодирование; 2) вертикальное (максимальное) кодирование; 3) смешанное (диагональное) кодирование. При горизонтальном кодировании за каждой микрооперацией в составе операционной части микрокоманды закрепляется свой разряд. Единичное значение разряда характеризует выполнение микрооперации в текущей микрокоманде, а нулевое – ее отсутствие. Вертикальное кодирование предусматривает выделение для каждой микрооперации отдельного многоразрядного кода, разрядность m которого определяется общим числом M различных микроопераций реализуемых в операционном автомате.
Микропрограммные автоматы (Кодирование микроопераций МПА) Поскольку для первого способа кодирования длина операционной части микрокоманды может быть велика (при большом М), а второй способ при минимальной длине операционной части микрокоманды требует применения достаточно сложных дешифраторов, чаще всего используется третий компромиссный вариант – смешанное кодирование. Суть его в следующем: операционная часть разбивается на ряд операционных полей. Их число определяется максимальным количеством одновременно выполняемых микроопераций в одной микрокоманде. С каждым полем связана группа несовместных микроопераций (которые никогда не выполняются одновременно). Внутри каждого поля кодирование осуществляется вертикальным способом. Это позволяет с одной стороны иметь практически любую комбинацию микроопераций в составе микрокоманды, с другой стороны, вертикальное кодирование внутри полей уменьшает общую длину операционной части микрокоманды, а более короткие коды приводят к упрощению дешифраторов операционной части микрокоманды.
Микропрограммные автоматы (Кодирование микроопераций МПА) Построение МПА требует формализации набора МО и системы микрокоманд. Система МК может быть задана наборами МО: а 1= {y 1, y 7, y 11} а 2= {y 2, y 5, y 9}. . . aj= … Отсюда можно перейти к матрице МК (ММК). ММК – это матрица, строки которой соответствуют различным микрокомандам, определяемым набором МО. y 1 a 1 1 a 2 0 …… y 2 0 1 y 3 0 0 y 4 0 0 y 5 0 1 y 6 0 0 y 7 1 0 y 8 0 0 y 9 0 1 y 10 0 0 y 11 1 0
Микропрограммные автоматы (Кодирование микрокоманд МПА)
Микропрограммные автоматы (Пример. Система микрокоманд)
Микропрограммные автоматы (Матрица несовместимости МО)
Микропрограммные автоматы (Адресация микрокоманд МПА)
Микропрограммные автоматы (Кодирование микроопераций) По графу несовместимости выбираем множества совместимых МО таким образом, чтобы каждая МО присутствовала только в одном множестве: B 1={y 0, y 4, y 5, y 6, y 9} B 2={y 0, y 1, y 3, y 7} B 3={y 2} B 4={y 8} Структура сегмента операционной части МК (микрооперации) приведена на рис , а система команд может быть представлена в виде таблицы:
Микропрограммные автоматы (Кодирование микрокоманд МПА)
Микропрограммные автоматы (Кодирование микрокоманд МПА)
Микропрограммные автоматы (Микрокоманда, кодирование микроопераций) Микрооперация без кодирования в Косвенное кодирование
Микропрограммные автоматы (Микрокоманда, кодирование микроопераций) Прямое кодирование Косвенное кодирование
Микропрограммные автоматы (Микрокоманда, кодирование микроопераций) Резидентное кодирование
Микропрограммные автоматы (Взаимодействие ОА и УА)
Микропрограммные автоматы (Взаимодействие Управляющего и Операционного Автоматов. Модель Глушкова. ) Согласно модели академика В. М. Глушкова цифровой автомат (ЦА) как устройство для автоматической обработки цифровой информации по заданным алгоритмам представляет собой совокупность операционного автомата (ОА) и управляющего автомата (УА).
Микропрограммные автоматы (ВЗАИМОДЕЙСТВИЕ ОА и УА)
Микропрограммные автоматы (ВЗАИМОДЕЙСТВИЕ ОА и УА)
Микропрограммные автоматы (ВЗАИМОДЕЙСТВИЕ ОА и УА)
Микропрограммные автоматы (ВЗАИМОДЕЙСТВИЕ ОА и УА)
Микропрограммные автоматы (Процессор. Обобщенная схема Процессора) Процессор выполняет заданное множество операций F над входными словами D с целью вычисления результатов R. Каждая операция из множества операций F возбуждается соответствующей командой из множества команд K.
Микропрограммные автоматы (Кодирование микрокоманд МПА) Таким образом, УА генерирует последовательность управляющих сигналов Y, предписанную микропрограммой и соответствующую значениям логических условий Х. УА можно рассматривать как конечный автомат, определяемый: а) множеством двоичных выходных сигналов Y = {y 1, y 2, . . . , y. L}, соответствующих множеству микроопераций операционного блока. При yi = 1 инициируется i-я микрооперация; б) множествами входных сигналов K и X: K = {k 1, k 2, . . . , k. Z}; X = {x 1, x 2, . . . , x. M}, соответствующих задаваемому извне двоичному коду операции, команды (K) и двоичным осведомительным сигналам (Х); в) множеством подлежащих реализации микропрограмм (каждая микропрограмма инициируется соответствующей командой), устанавливающих в зависимости от значений входных сигналов управляющие сигналы, выдаваемые УА в определенные такты.
Продолжение следует!