- •Кафедра “Вычислительная техника”
- •Составитель: и.В. Воронцов
- •СамГту; Сост. И.В. Воронцов. Самара, 2013, 95 с.
- •Раздел 1. Начальные языки описания цифровых автоматов
- •Тема 1.1. Предмет теории автоматов, его место и задачи
- •Тема 1.2. Начальные языки описания цифровых автоматов. Язык регулярных
- •Язык регулярных выражений алгебры событий использует следующие понятия:
- •Тема 1.3. Граф - схемы алгоритмов (гса) цифровых автоматов.
- •Объединение гса с помощью мса
- •Формулы переходов описывают все пути между операторными вершинами в гса . Они имеют вид:
- •Раздел 2. Автоматные языки описания цифровых автоматов
- •Тема 2.1. Автоматные языки описания цифровых автоматов. Графы переходов,
- •Тема 2.2. Конечные автоматы. Модель дискретного преобразования
- •Тема 2.3. Автоматы Мура, Мили и с-автоматы. Принципиальные различия
- •Тема 2.4. Эквивалентные автоматы, преобразования автоматов.
- •Раздел 3. Абстрактные и микропрограммные автоматы
- •Тема 3.1. Определение абстрактного автомата. Соединение двух автоматов:
- •Тема 3.2. Сети и коллективы автоматов
- •Тема 3.3. Абстрактный синтез микропрограммных автоматов (мпа) по гса.
- •Тема 3.4. Структурный синтез микропрограммных автоматов по гса
- •Разметка состояний
- •Тема 4.1. Формальные языки и операции над ними
- •Тема 4.2. Концепция порождения и распознавания.
- •Тема 4.3. Конечные автоматы как распознаватели.
- •Тема 4.4. Машина Тьюринга как автомат, реализующий
- •Тема 4.5. Автоматы с магазинной памятью (мп-автоматы)..
- •Лекция 9.
- •Тема 5.1. Автоматы как технические устройства эвм.
- •Раздел 6. Микропрограммные цифровые автоматы
- •Тема 6.1. Предмет теории автоматов и формальных языков, его место и задачи в подготовке бакалавра по информатике и вычислительной технике. Краткий исторический обзор
- •Место дисциплины в структуре ооп
- •Тема 6.2. Микропрограммные цифровые автоматы. Микропрограммирование.
- •Раздел 7. Синтез цифровых автоматов на жесткой логике
- •Тема 7.1. Структурный синтез мпа на жесткой логике. Синтез мпа автоматов Мура
- •Синтез автомата Мура по гса. Простейшая реализация
- •3.1.1.2. Построение графа переходов автомата Мура (по гса рис. 3.14)
- •3.1.1.3. Построение прямой таблицы переходов автомата Мура
- •3.1.1.4. Кодирование состояний автомата. Выбор элементов памяти
- •3.1.1.5. Обратная структурная таблица автомата Мура
- •3.1.1.6. Функции управления элементами памяти и функции выходов автомата
- •3.1.1.7. Структурная схема автомата Мура на жесткой логике
- •3.1.1.8. Функциональная схема автомата Мура на жесткой логике
- •Тема 7.2. Структурный синтез мпа на жесткой логике. Синтез мпа автоматов
- •Разметка состояний автомата Мили по гса
- •3.1.2.2. Построение графа переходов автомата Мили по гса
- •3.1.2.3. Построение прямой таблицы переходов автомата Мили
- •3.1.2.4. Кодирование состояний автомата. Выбор элементов памяти
- •3.1.2.5. Обратная структурная таблица автомата Мили
- •3.1.2.6. Функции управления элементами памяти и функции выходов автомата
- •3.1.2.7. Структурная схема автомата Мили на жесткой логике
- •3.1.2.8. Функциональная схема автомата Мили на жесткой логике
- •Раздел 8. Синтез цифровых автоматов на программируемых матрицах (плм)
- •Тема 8.1. Структурный синтез мпа Мили на плм. Вопросы оптимизации мпа
- •3.3.2. Простейшая матричная реализация автомата Мили
- •Тема 8.2. Структурный синтез мпа Мура на плм. Вопросы оптимизации мпа Простейшая матричная реализация автомата Мура
- •3.3.4. Вопросы оптимизации автоматов на матрицах
- •Кодирование логических условий х. Площадь матрицы м& в автоматах Мили и Мура зависит:
- •Раздел 9. Синтез цифровых автоматов на программируемой логике
- •Тема 9.1. Автоматы с программируемой логикой и естественной адресацией.
- •Принцип управления по хранимой программе
- •Кодирование наборов микроопераций
- •Адресация микрокоманд в автомате
- •Естественная адресация микрокоманд в автомате
- •Тема 9.2. Автоматы с программируемой логикой и принудительной адресацией.
- •Тема 9.3. Сегментация памяти в автоматах с программируемой логикой.
3.3.4. Вопросы оптимизации автоматов на матрицах
Методы оптимизации автоматов на матрицах направлены, в основном, на сокращение суммарной площади матриц. Как было указано в п. 3.3.1, матрицы М& и М1 при тривиальной реализации автомата сильно разрежены: большая часть площади этих матриц не используется, так как в узлах нет диодов. Это касается части матрицы М&, вычисляющей функции переходов (в области переменных Х), и матрицы М1 (в области переменных У).
Кодирование логических условий х. Площадь матрицы м& в автоматах Мили и Мура зависит:
от количества элементов памяти (количество выходов Q и Q элементов памяти обозначим КQ; КQ входит в общее число горизонтальных шин матрицы М&; КQ >= 2 • ] log2 | A | [ );
от количества переменных Х (количество горизонтальных шин от этих переменных КХ = 2•|Х| также входит в общее число горизонтальных шин матрицы М&);
от числа переходов Т(am as) автомата КТ.
Уменьшить КQ невозможно, так как в автоматах на матрицах используется всегда минимальное кодирование состояний. Количество переходов можно иногда уменьшить за счет использования разметки ГСА с узлами. В то же время в каждой конкретной функции переходов Тamas обычно используются не все переменные из множества Х, а только некоторые из них. Например, по структурной таблице из п. 3.3.2 и 3.3.3 видно, что в каждой функции Тamas используется максимум одна переменная Х (при общем их количестве 3), поэтому есть возможность уменьшить площадь SМ& за счет замены трех переменных Х одним логическим условием Р, принимающим значение определенной переменной Х в зависимости от состояния автомата am.
Алгоритм такой замены описан ниже.
Разобьем множество входных сигналов автомата (логических условий) Х на пересекающиеся подмножества Хам; элементами Хам являются логические условия Хj, определяющие все переходы автомата из состояния ам.
Найдем максимум =maxХам и введем новое множество, содержащее логических условий Р={Р1, Р2...Р}.
Каждую переменную хХам заменим на переменную из множества Р; составим таблицу этой подстановки. Желательно, чтобы одноименные логические условия Хj оказались в одном и том же столбце таблицы.
Запишем функции Рi= F(ам,xi), используя таблицу подстановки.
Закодируем состояния автомата таким образом, чтобы можно было реализовать эти функции на матрицах М& и М1 с минимальными затратами. Полученные коды состояний будем использовать далее при составлении структурной таблицы автомата.
Используем сформированные функции Рi вместо переменных Х в матрице М& для вычисления функций переходов автомата Тamas.
Например, пусть по размеченному графу автомата с шестью состояниями a0…a5 и семью логическими условиями х0…х6 получили следующие подмножества Хам:
Ха0={х0,х1}; Ха3={х5};
Ха1={х2,х3}; Ха4={х1,х3};
Ха2={х3,х4}; Ха5={х6}.
Нетрудно заметить, что Max Хаi= 2.
Введем два новых логических условия: Р={Р1, Р2} и составим таблицу замены переменных Х на переменные Р.
ам |
Р1 |
Р2 |
а0 |
х0 |
х1 |
а1 |
х3 |
х2 |
а2 |
х3 |
х4 |
а3 |
х5 |
- |
а4 |
х3 |
х1 |
а5 |
х6 |
- |
Запишем выражение для Р1 и Р2 :
Р1 = а0х0 ( а1 а2 а4) х3 а3х5 а5х6
Р2 = а1х2 ( а0 а4) х1 а2х4.
В этих выражениях, например, Р1 принимает значение логического условия х0, если автомат находится в состоянии а0 (так как при этом а0=1); значение х3, если автомат находится в одном из состояний: а1 или а2 или а4 и т.п.
Закодируем состояния автомата таким образом, чтобы выражения в скобках можно было записать в виде одного терма, используя переменные Q3, Q2, Q1 – сигналы с выходов элементов памяти состояний автомата. Используем карту Карно. В ячейках карты расставим состояния аI таким образом, чтобы была возможность осуществить их минимальное покрытие согласно скобочным частям выражений Р1 и Р2. Получим следующие коды состояний:
Ка0 = 000; Ка3 = 000;
Ка1 = 111; Ка4 = 100;
Ка2 = 101; Ка5 = 011.
Учитывая то, что в карте Карно есть свободные клетки, используем их для минимизации выражений Р1 и Р2 :
Р1 = а0х0 ( а1 а2 а4) х3 а3х5 а5х6=
= Q2Q1 х0 Q2 х3 Q1Q0 х5 Q2 Q0 х6 = Z1 Z2 Z3 Z4 ,
где Z1= Q2Q1 х0 ; Z2 = Q2 х3; Z3 = Q1Q0 х5; Z4 = Q2 Q0 х6;
Р2 = а1х2 ( а0 а4) х1 а2х4 =
= Q2 Q1 х2 Q1Q0 х1Q1 Q0 х4 = Z5 Z6 Z7 ,
где Z5 = Q2 • Q1 • х2 ; Z6 = Q1•Q0• х1; Z7 = Q1• Q0•х4.
Рис. 3.37
Функциональная схема, реализующая преобразование логических условий Х в логические условия Р, приведена на рис. 3.37. Матрица М& вычисляет термы Z1 … Z7 , матрица М1 – функции Р1 и Р2.
Площадь матрицы М& равна
SМ& = (КХ + КQ) • КZ ,
где КХ – количество логических условий Х, в нашем примере – КХ=7; КQ – количество прямых и инверсных выходов элементов памяти, в нашем примере КQ = 6; КZ – количество термов в функциях Р1и Р2 , в нашем примере КZ=7.
Таким образом, в нашем примере SМ& = 91.
Площадь матрицы М1 равна SМ1 = КZ • КР , где КР – количество логических условий Р.
В нашем примере SМ1 = 14. Общая площадь матриц М& и М1, используемых для минимизации количества логических условий, равна
SМр = (КХ + КQ) • КZ + КZ • КР = (КХ + КQ + КР)* КZ .
Если не использовать кодирование логических условий Х, то площадь части матрицы М&, вычисляющей функции переходов Тamas (в нашем примере этой матрицы нет) и использующей в качестве переменных Х, равна
SМТх = 2 • КХ • КТ,
где КТ – количество переходов (строк) в структурной таблице автомата.
При замене логических условий Х на Р эта площадь составит
SМТр = 2 • КР • КТ.
В итоге, при кодировании логических условий Х, площадь матриц, зависящая от Х, равна
SХр = SМр + SМТр = (КХ + КQ + КР)* КZ + 2 • КР • КТ,
а без кодирования
SХх = SМТх = 2 • КХ • КТ.
Использование описанного преобразования имеет смысл, если SХр заметно меньше, чем SХх. Разница в площадях матриц без кодирования и с кодированием логических условий
SХ = SХх – SХр = 2 • КХ • КТ – (КХ + КQ + КР)•КZ – 2•КР•КТ =
= 2 • КТ • ( КХ – КР) – (КХ + КQ + КР)•КZ .
Чтобы эта разница была положительной ( SХ > 0), необходимо выполнение условия
2 • КТ • ( КХ – КР) > (КХ + КQ + КР)•КZ ,
иначе преобразование логических условий имеет смысл, если выполняется соотношение
КТ > ((КХ + КQ + КР)•КZ) / (2 • ( КХ – КР)).
Если условие выполняется и при этом SХ имеет значительную величину (относительно SХх), то можно проделать описанную процедуру и получить при этом более эффективное использование матриц.
В нашем примере
SХ =2 • КТ • ( КХ – КР) – (КХ + КQ + КР)•КZ .=
= 2 • КТ • ( 7 – 2) – (7 + 6 + 2) • 7 = 10 • КТ – 105.
Из полученных выражений видно, что SХ > 0, если в автомате КТ>11 (количество переходов больше 11); при выполнении этого условия имеет смысл выполнить преобразование логических условий Х в логические условия Р.
Кодирование выходных сигналов автомата (микрокоманд yj ). В автоматах Мили при простейшей реализации (п. 3.2) в матрице М1 есть сильно разреженная часть, где вычисляются yi. Это происходит потому, что общее число микрокоманд в автомате может быть большим, но на каждом переходе вырабатывается небольшое число микрокоманд. В таком случае можно повысить эффективность использования матрицы М1, используя кодирование микрокоманд. Для этого необходимо:
выписать из ГСА или обратной структурной таблицы одинаковые группы микрокоманд, которые обозначить как Вi;
записать выражения для yi как Вj – дизъюнкция групп Вi, в которых функция yi =1;
составить граф отношений между группами Вi. Вершины графа соответствуют группам микрокоманд Вi, ребрами соединяются вершины (Вi.), содержащие одинаковые микрокоманды;
закодировать вершины (Вi) двоичным кодом (b1 b2 b3 …) таким образом, чтобы связанные вершины на графе можно было выразить через конъюнкцию переменных bi. Количество переменных bi должно быть минимальным и равно ] log2 B [;
записать выражения для bj как Тj: где Тj – дизъюнкция функций переходов автомата Мили, на которых bj =1;
записать выражения yi=Вj через конъюнкцию переменных bi: уi=bj;
реализовать функции bj = Тj с помощью матрицы М1;
реализовать функции уi=bj с помощью матрицы М&.
Рассмотрим пример.
Таблица 3.15
№ |
Y(amas) |
Т(amas) |
Вi |
b1b2b3b4 |
1 |
y1, y2 |
T1 |
B1 |
0 0 1 1 |
2 |
y1, y3 |
T2 |
B2 |
0 1 1 0 |
3 |
y7, y8 |
T3 |
B3 |
1 0 0 1 |
4 |
y1, y10 |
T4 |
B4 |
0 1 1 1 |
5 |
y5, y6 |
T5 |
B5 |
1 0 1 1 |
6 |
y3 |
T6 |
B6 |
1 1 1 0 |
7 |
y4, y8 |
T7 |
B7 |
1 1 0 0 |
8 |
y4, y8, y9 |
T8 |
B8 |
1 1 0 1 |
9 |
y1, y10 |
T9 |
B4 |
0 1 1 1 |
10 |
y4, y8 |
T10 |
B7 |
1 1 0 0 |
11 |
y4, y8, y9 |
T11 |
B8 |
1 1 0 1 |
12 |
y1, y10 |
T12 |
B4 |
0 1 1 1 |
13 |
y5, y6 |
T13 |
B5 |
1 0 1 1 |
14 |
y5, y6 |
T14 |
B5 |
1 0 1 1 |
15 |
y4, y8, y9 |
T15 |
B8 |
1 1 0 1 |
16 |
y1, y10 |
T16 |
B4 |
0 1 1 1 |
17 |
y7, y8 |
T17 |
B3 |
1 0 0 1 |
18 |
y9 |
T18 |
B9 |
0 1 0 1 |
19 |
y5, y11 |
T19 |
B10 |
1 0 1 0 |
Допустим имеется обратная структурная таблица (табл. 3.15) автомата Мили для реализации на ПЛМ, из которой мы выпишем только столбец Yamas, а в столбце Тamas оставим только обозначение функций переходов Тi. Остальные столбцы таблицы нас не интересуют. Из этой таблицы видно, что площадь матрицы М1 при простейшей реализации автомата, использующаяся для формирования микрокоманд yi, равна
SМУ = КУ • КТ = 11• 19 = 209.
В этом примере количество микрокоманд, которые может формировать автомат, равно 11 (y1…y11), но на каждом из 19 возможных переходов T1 … T19 формируется максимум 3 микрокоманды.
Добавим в эту таблицу еще два столбца. Первый – для обозначения групп микрокоманд (Вi); в нашем примере – 10 различных групп микрокоманд (обозначим их B1...B10). Во втором столбце будем записывать коды групп Вi. Минимальное количество разрядов для кодирования Вi равно четырем. Обозначим код Вi: b1 b2 b3 b4.
Выразим yi через дизъюнкцию Вj, в которые входит yi:
y1 = B1 B2 B4 ;
y2 = B1 ;
y3 = B2 B6 ;
y4 = B7 B8;
y5 = B5 B10;
y6 = B5;
y7 = B3;
y8 = B3 B7 B8;
y9 = B8 B9;
y10 = B4;
y11 = B10.
Используя выражения yi=Вj построим граф отношений между группами Вi, в котором ребрами соединяются вершины (Вi.), содержащие одинаковые микрокоманды (рис. 3.38). Используя карту Карно, закодируем группы Вi так, чтобы можно было совместно покрыть связанные вершины (смотри карту Карно).
Рис. 3.38
По карте Карно запишем коды Bi (КBi), выраженные через значения переменных b1 b2 b3 b4:
КВ1=0011; КВ2=0110; КВ3=1001;
КВ4=0111; КВ5=1011; КВ6=1110;
КВ7=1100; КВ8=1101; КВ9=0101;
КВ10=1010.
Запишем полученные коды групп микрокоманд в столбец (b1b2b3b4) структурной таблицы автомата и выразим функции bi как дизъюнкцию соответствующих переменных Ti той же таблицы:
b1 = T3 T5 T6 T7 T8 T10 T11 T13 T14 T15 T17 T19 ;
b2 = T2 T4 T6 T7T8T9 T10 T11 T12 T15 T16 T18 ;
b3 = T1 T2 T4 T5 T6 T9 T12 T13 T14 T16 T19 ;
b4 = T1 T3 T4 T5 T8 T9 T11 T12 T13 T14 T15 T16 T17 T18.
Выразим yi , записанные через дизъюнкцию Вj, в виде конъюнкции уi=bj (согласно покрытиям в карте Карно):
y1 = B1 B2 B4 = b1 b3; |
y2 = B1 = b1 b2 ; |
y3 = B2 B6 = b2 b3 b4 ; |
y4 = B7 B8= b1 b2 b3 ; |
y5 = B5 B10 = b1 b2 b3 ; y7 = B3 = b1 b2 b3 ; y9 = B8 B9 = b2 b3 b4 ; y11 = B10 = b1 b2 b3 b4 ; |
y6 = B5 = b1 b2 b3 b4 ; y8 = B3 B7 B8 = b1 b3 ; y10 = B4 = b1 b2 b3 b4 .
|
Реализуем функции b1 … b4 с помощью матрицы М1, а функции y1 … y11 – с помощью матрицы М& (рис. 3.39).
Оценим суммарную площадь матриц М1 и М& , реализующих функции выходов автомата Мили с кодированием микрокоманд:
SМb = Кb • КТ = 4 • 19 = 76, где КТ – количество переменных, используемых для кодирования групп микрокоманд; SМУb = 2 • Кb • КУ = 2 • 4 • 11 = 88; SМУк = SМb + SМУb = 76 + 88 = 164.
Рис. 3.39
Разница в площадях матриц без кодирования и с кодированием составляет
SУ = SМУ – SМУк= 209 – 164 = 45.
Экономия площади матриц позволяет реализовать более сложный автомат на меньшей площади кристалла матрицы.
Кодирование микрокоманд имеет смысл производить, если выполняется условие
КТ • (КУ – Кb ) > 2 • Кb • КУ .
Решение о кодировании можно принять после определения количества групп микрокоманд Вj и возможности их минимального кодирования переменными bj.
На рисунках приведены обобщенные структурные схемы автомата Мили с кодированием логических условий и микрокоманд (рис. 3.40) и автомата Мура с кодированием логических условий и микрокоманд (рис. 3.41).
Рис. 3.40
В схеме автомата Мили используются следующие элементы:
– память состояний – ПС;
– матрица М&(1), вычисляющая термы zi для последующего вычисления логических условий Р матрицей М1(1);
– матрица М&(2), вычисляющая функции переходов Тi;
– матрица М1(2), вычисляющая функции управления элементами памяти состояний Famas и коды групп микрокоманд КВi (b1b2...);
– матрица М&(3), вычисляющая значения функций yi.
В схеме автомата Мура используются следующие элементы:
– память состояний – ПС;
– матрица М&(1), вычисляющая термы zi для последующего вычисления логических условий Р матрицей М1(1);
– матрица М&(2), вычисляющая функции переходов Тi;
– матрица М1(2), вычисляющая функции управления элементами памяти состояний Famas;
– матрица М&(3), выполняющая функции дешифратора состояний автомата и вычисляющая значения функций аi;
– матрица М1(3), вычисляющая значения функций yi.
Рис. 3.41
Лекция 16.
