Автор: Пользователь скрыл имя, 23 Ноября 2012 в 10:03, курс лекций
Конечные автоматы и такие связанные с ними конструкции как линейные грамматики и регулярные выражения относятся к важнейшим понятиям информатики. Различные варианты конечных автоматов и близкие им математические объекты служат для описания и анализа технических устройств, различных систем и процессов, программ и алгоритмов. Теория автоматов является одним из старейших разделов теоретической информатики.
В читаемом курсе рассматриваются цифровые автоматы как теоретическая основа проектирования аппаратных средств ЭВМ последовательного типа. В этом случае принято рассматривать цифровой автомат как совокупность операционного автомата (исполнительного устройства) и управляющего автомата (собственно конечного автомата), образующих операционное устройство.
Теория автоматов. Введение.
Теория автоматов. Арифметика ЦВМ
Теория автоматов. Системы счисления
Теория автоматов. Конечные цифровые автоматы.
В случае автомата Мура КС2 служит для преобразования слова внутренних переменных автомата в соответствующую ему микрокоманду. Однако выполнение этого преобразования является скорее функцией операционного автомата. Это связано с тем, что код состояния автомата имеет меньшую длину, чем число различных микроопераций yj, 1≤i≤n, выполнение которых инициируется автоматом.
Канонический метод структурног
В качестве элементов памяти цифровых автоматов используется автомат Мура с двумя состояниями, в котором значение выходного сигнала совпадает с текущим состоянием автомата. Таким элементом памяти является триггер. На схемах триггер обозначается прямоугольником, состоящим из двух полей: на левом указаны информационные входы (один или два), а также входы начальной установки и синхронизации, на правом - выходы триггера и его условное обозначение "Т", Рис. 4.
Триггер предназначен для хранения одного бита, или одного разряда двоичного числа. Для хранения многоразрядных чисел используют линейки триггеров, называемые регистрами. Состояния триггера и соответствующие им выходы обозначаются 0 и 1. Наиболее распространенными являются D- триггер, Т - триггер, имеющие один информационный вход, RS и - JK- триггеры. Имеющие два информационных входа. Обозначения входов:
R0 (reset) - раздельный вход установки в 0;
S1 (set) - раздельный вход установки в 1;
K0 - вход установки универсального триггера в состояние 0;
J1 - вход установки универсального триггера в состояние 1;
T - счетный вход;
D (delay) - установка триггера в состояние, соответствующее логическому уровню на этом входе;
C - управляющий (синхронизирующий вход).
Выходы: Q - прямой,`Q - инверсный.
По характеру реакции на входные
воздействия различают
Асинхронный триггер - входные сигналы управляют состоянием триггера непосредственно с момента подачи их на входы.
Синхронный триггер - входные сигналы действуют на состояние триггера только при подаче синхроимпульса на управляющий вход С.
Матрицы переходов триггеров приведены в таблице 18.
Таблица 22 Матрицы переходов RS, JK, D и Т триггеров
qt®qt+1 |
J |
K |
R |
S |
D |
T |
0 ® 0 |
0 |
* |
* |
0 |
0 |
0 |
0 ® 1 |
1 |
* |
0 |
1 |
1 |
1 |
1 ® 0 |
* |
1 |
1 |
0 |
0 |
1 |
1 ® 1 |
* |
0 |
0 |
* |
1 |
0 |
Первый этап канонического метода проектирования цифровых автоматов состоит в переходе от таблицы переходов-выходов абстрактного автомата к кодированной таблице переходов - выходов. Рассмотрим этот переход применительно к автомату Мили.
Таблица 23 Отмеченная таблица переходов-выходов автомата Мили
Z A |
z1 |
z2 |
z3 |
a0 |
a0/w1 |
a1/w2 |
a2/w3 |
a1 |
a1/w2 |
a0/w1 |
-/- |
a2 |
a2/w2 |
a1/w3 |
a0/w1 |
Пусть автомат Мили задан отмеченной таблицей переходов выходов, Табл. 19. Закодируем элементы множества состояний, множества входов и множества выходов двоичными последовательностями, длина которых соответствует мощности соответствующих множеств. Так как три указанные множества содержат по три элемента каждое, длина кодовых последовательностей для кодирования символов каждого из этих множеств составит 2 бита.
Способ кодирования может быть выбран произвольно. Пример кодирования приведен в Табл. 20.
Таблица 24 Таблицы кодирования
A |
[ai] |
Z |
[zj] |
W |
[wk] | ||
a0 |
00 |
z1 |
01 |
w1 |
01 | ||
a1 |
01 |
z2 |
10 |
w2 |
10 | ||
a2 |
10 |
z3 |
11 |
w3 |
11 |
Далее необходимо составить кодированные таблицы переходов и кодированные таблицы выходов. Кодированные таблицы переходов- выходов составляются непосредственно по отмеченной таблице переходов – выходов абстрактного автомата, Табл. 20
Таблица 25 Кодированная таблица переходов выходов автомата Мили
[Z] [A] |
01 |
10 |
11 |
00 |
00/01 |
01/10 |
10/11 |
01 |
01/10 |
00/01 |
-/- |
10 |
10/10 |
01/11 |
00/01 |
Состояния автомата из множества
А кодируются двумя битами. Это
означает, что для хранения кода
состояния автомата и выработки нового
состояния, в которое автомат перейдет
в следующем такте автоматного времени,
потребуется два элемента памяти, т.е.
два триггера. Триггер может переключиться
в новое состояние только после прихода
синхронизирующего сигнала. Для того,
чтобы обеспечить правильное переключение
триггеров, соответствующее таблице переходов
автомата, необходимо подать на его информационные
входы сигналы, обеспечивающие заданный
переход. Например, в выделенной клетке
таблицы 21 первый элемент памяти должен
переключиться из состояния 1 в состояние
0, а второй элемент памяти – из состояния
0 в состояние 1. Исходное состояние триггера
определяется по крайнему левому столбцу
таблицы. Чтобы обеспечить нужное переключение
триггеров, на их входы необходимо подать
сигналы в соответствии с матрицей переходов
выбранного триггера. Следовательно, следующий
шаг проектирования состоит в выборе элементов
памяти. Сигналы, подаваемые на информационные
входы элементов памяти, называются функциями возбуждения элементов памяти.
Функции возбуждения элементов памяти
записываются в таблицу, формат которой
аналогичен формату кодированной таблицы
переходов, табл. 22. Для определенности
выберем в качестве элементов памяти RS
– триггеры.
Таблица 26 Функции возбуждения первого элемента памяти R1S1
[Z]/ (x1,x2) [A] (t1,t2) |
01 |
10 |
11 |
00 |
*0 |
*0 |
01 |
01 |
*0 |
*0 |
*/* |
10 |
0* |
10 |
10 |
Таблица 27 Функции возбуждения второго элемента памяти R2S2
[Z]/ (x1,x2) [A] (t1,t2) |
01 |
10 |
11 |
00 |
*0 |
01 |
*0 |
01 |
0* |
10 |
*/* |
10 |
*0 |
01 |
*0 |
Переменные t1,t2, кодирующие состояния автомата, называются внутренними переменными автомата, в переменные x1,x2, кодирующие входные сигналы – внешними переменными.
Очевидно, что таблицы 21, 22 и 23 задают булевы функции, реализовав которые, мы получим логическую схему цифрового автомата. Для минимизации этих функций запишем их в более привычном виде. Для выбранных элементов памяти и абстрактного автомата, заданного таблицей 19, число булевых функций, которое необходимо реализовать равно 6: R1,S1, R2, S2, y1, y2. Здесь y1, y2 – выходные сигналы автомата Мили, определяемые непосредственно по таблице 21.
Выходные сигналы триггеров образуют код нового состояния автомата, который поступает на его вход после прихода синхронизирующего сигнала СС. Выходные сигналы У1 и У2 образуют код выходного сигнала управляющего автомата, который поступает на конструктивные элементы операционного автомата, разрешая выполнение микроопераций. Собственно разрешающий сигнал на выполнение микрооперации может быть сформирован в схеме операционного автомата, добавлением в него дешифратора, преобразующего код команды в единственный бит, поступающий на вход нужного структурного элемента операционного автомата.
Логическая схема управляющего автомата при таком способе проектирования и без ограничений на число выходов логических элементов является двухслойной: первый слой – конъюнкторы, второй – дизъюнкторы. При применении реальных выпускаемых промышленностью интегральных схем глубина схемы может увеличиться из-за реализации многоместных операций конъюнкции и дизъюнкции последовательно соединенными элементами.
Таблица 28 Логические функции автомата Мили
t1t2x1x2 |
R1S1 |
R2S2 |
y1y2 |
0000 |
** |
** |
** |
0001 |
*0 |
*0 |
01 |
0010 |
*0 |
01 |
10 |
0011 |
01 |
*0 |
11 |
0100 |
** |
** |
** |
0101 |
*0 |
0* |
10 |
0110 |
*0 |
10 |
01 |
0111 |
** |
** |
** |
1000 |
** |
** |
** |
1001 |
0* |
*0 |
10 |
1010 |
10 |
01 |
11 |
1011 |
10 |
*0 |
01 |
1100 |
** |
** |
** |
1101 |
** |
** |
** |
1110 |
** |
** |
** |
1111 |
** |
** |
** |
Минимизируя полученные функции, получим:
R1=t1x1;
S1= `t1x1x2;
R2=t2;
S2=`t2`x2;
Рисунок 5 Логическая схема автомата Мили
Пусть автомат Мура задан отмеченной таблицей переходов – выходов
Таблица 29 Отмеченная таблица переходов- выходов автомата Мура
Z A |
z1 |
z2 |
z3 |
W |
a0 |
a0 |
a1 |
a2 |
w1 |
a1 |
a1 |
a0 |
- |
w2 |
a2 |
a2 |
a1 |
a0 |
w3 |
Пусть кодирование элементов
Рисунок 6 Логическая схема автомата Мура
Применительно к ЭВМ объектом управления называется любое цифровое устройство, предназначенное для выполнения каких-либо операций над данными. К таким устройствам, называемым операционными, относятся, например, процессоры, каналы ввода-вывода, контроллеры внешних устройств и др. Операционное устройство состоит из исполнительной части (операционного автомата) и управляющей части (управляющего автомата), который управляет работой исполнительного устройства. Принцип микропрограммного управления состоит в следующем.