Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




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

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

Элементарная операция, выполняемая операционным автоматом за один шаг и приводимая в действие одним управляющим сигналом от управляющего автомата, называется микрооперацией.

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

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

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

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

 

Такты Операторы и условия Комментарии
y1: РгВ:=ШиВх принять в входной регистр В сумматора первый операнд из входной шины ШиВх;
y2: Рг1:=ШиВх принять в регистр 1 АЛУ второй операнд из входной шины ШиВх;
условие второй операнд положительный?
  p1 "да",
  p-1 "нет";
  y3: РгА:=Pг1 если второй операнд положительный, то принять во входной регистр А сумматора второй операнд из Рг1 в прямом коде;
  y4: РгА=-Рг1 если второй операнд отрицательный, то принять во входной регистр А сумматора второй операнд из Рг1 в обратном коде;
условие операция сложения?
  p2 "да",
  p-2 "нет";
  y5: РгСм:=РгА+РгВ принять в выходной регистр См сумматора значение cуммы двух операндов;
  y6:: РгСм:=РгА+РгВ+1 принять в выходной регистр См сумматора значение суммы двух операндов и прибавить "+1";
     
y7: ШиВых:=РгСм Выдать в шину выхода ШиВых значения выходного регистра РгСм сумматора.

 

Блок-схема такой микропрограммы представлена на рис. 2.28.

Рис.2.28 Блок-схема микропрограммы сложения и вычитания

Составив блок-схему микропрограммы, можно перейти к ее разметке для формирования автоматной модели, к определению поведения модели управляющего автомат и минимизации числа его внутренних состояний. На рис.2.29 приведена разметка блок-схемы алгоритма для автомата Мили, а в таблице 2.23 - таблица его поведения.

Рис. 2.29 Разметка блок-схемы алгоритма

Анализ разметки блок-схемы позволяет найти элементы всех алфавитов для проектирования автоматной модели: X={1;p1;p-1;p2;p-2}, Y={y1;y2;y3;y4;y5;y6;y7}, Q={q0;q1;q2;q3;q4;q5;q6;q7}. В таблице 2.23 дано описание автомата Мили, используя разметку блок-схемы алгоритма.

 

Таблица 2.23

текущее состояние qÎQ символы входного алфавита xÎX
p1 p-1 p2 p-2
q0 q1;y1
q1 q2;y2
q2 q3;y3 q4;y4
q3 q5;y5 q6;y6
q4 q5;y5 q6;y6
q5 q7;y7
q6 q7;y7
q7 q0;-

 

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

 

Таблица 1.93.

текущее состояние qÎQ символы входного алфавита xÎX
p1 p-1 p2 p-2
q0 q1;y1
q1 q*;y*
q* q7;y7 q3*;y3 q*;y4 q*;y5 q*;y6
q7 q0;-

2.5. Магазинный автомат.

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

Магазинный автомат - это композиция управляющего автомата и двух магазинов X и F, каждый из которых представляет собой бесконечную в одну сторону последовательность ячеек памяти. Эту последовательность удобно представить в виде вертикальной колоды (cм. рис.2.30).

Рис. 2.30 Структура магазинного автомата.

Управляющий автомат считывает последовательно символы входного слова a и заносит их в магазины X или F. Первый символ заносится непосредственно на ограничитель (дно магазина), а затем ячейки магазинов заполняются последовательно одна за другой. Так как последовательность символов слова a упорядочена синтаксисом соответствующего формального языка и последний символ, заложенный в ячейку памяти магазина, является первым для последующей обработки, то такая организация хранения символов называется стеком. Ее принцип: последним пришел - первым ушел. Символы слова b поступают в операционный автомат для исполнения заданной операции. Принцип работы магазина удобно объяснить на примере моделирования арифметических выражений.

В магазин X заносят значения операндов и арифметических выражений, а в магазин F - символы операций. При приеме каждого очередного символа слова a управляющий автомат анализирует его значение и значение содержимого последних ячеек памяти магазинов. По результатам этого анализа управляющий автомат формирует управляющие команды для вычисления значения арифметического выражения операционным автоматом. Рассмотрим упрощенный алгоритм работы управляющего автомата. Для простоты ограничимся арифметическими выражениями, составленными из однобуквенных переменных и бинарных операций типа сложения (вычитания) и умножения (деления). Пусть арифметическое выражение заканчивается пустым символом e. Следует напомнить, что бинарная операция умножения (деления) более сильная, чем сложение (вычитание), и выполняется при наличии двух операндов прежде операции сложения (вычитания). Тогда алгоритм работы управляющего автомата следующий:

шаг 1: считать очередной символ входного слова a:

a) если очередной символ - операнд, то управляющая команда Kx:

"поместить символ в очередную ячейку магазина X";

b) если очередной символ - операция, то перейти к шагу 2;

с) если очередной символ e (пустой символ) и магазин F пуст, то конец иначе перейти к шагу 2b);

шаг2: выполнить анализ очередной операции по правилам арифметики:

a) если очередная операция должна выполняться до операции, символ которой находится в последней ячейке магазина F или магазин F пуст, то управляющая команда K1:

"занести символ в очередную ячейку магазина F и перейти к шагу 1";

b) если очередная операция должна выполняться после операции, символ которой находится в последней ячейке магазина F (или они равноправны), то управляющая команда K2:

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

удалить символ выполненной операции из магазина F;

удалить значения двух операндов из последних ячеек магазина X;

поместить значение результата вычисления в последнюю ячейку магазина X; поместить символ очередной операции в последнюю ячейку магазина F; повторить шаг 2b);

перейти к шагу 1";

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

 

Таблица 2.25

символ операции в последней ячейке F очередной символ операции
e + * /
e конец K1 K1 K1 K1
+ K2 K2 K2 K1 K1
K2 K2 K2 K1 K1
* K2 K2 K2 K2 K2
/ K2 K2 K2 K2 K2

 

Блок-схема управляющего автомата, реализующего алгоритм магазинной памяти, представлен на рис.2.31.

Рис. 2.31 Блок-схема магазинного автомата.

Эту блок-схему можно реализовать аппаратно в виде автомата Мили или Мура.

Пример 2.3. Пусть дано арифметическое выражение a*b/c+d*e/p-re. В таблице 2.26 показана последовательность работы управляющего автомата. Изменения содержимого магазинов X и F выделено курсивом и указаны стрелками

Таблица 2.26

такт считываемый символ содержимое магазина X содержимое магазина F команда управляющего автомата
a     Kx
a¯  
*     K1
  a *¯
b b¯   Kx
  a *
/ /¯ K2
  *­
  x1=a*b¯  
c     Kx
  c¯
  x1 /
+   K2
  x1­
  x2=x1/c¯
d   K1
  d¯
  x2 +
*     K2
  d *¯
  x2 +
e e¯­   K2
   
  x3=d*e¯ *­
  x2 +

 

Таблица 1.92 (продолжение).

такт считываемый символ содержимое магазина X содержимое магазина F команда управляющего автомата
/     K1
  x3
  x2 +
p x4=x3/p¯ K2
  p­  
  x3­
  x2 +
x5=x2+x4¯   K2
  x4­
  x2­
r r¯   Ky
  x5
e x6=x5-r ¯   K2
   
x5­ –­
  результат выч-я:=x6   конец

 


<== предыдущая страница | следующая страница ==>
Автомат Мура - модель управляющего автомата | Глава 3. Логическое проектирование автоматов

Дата добавления: 2015-07-26; просмотров: 281; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.004 сек.