Построение не полностью определенного автомата
Учет взаимодействия операционного и управляющего автоматов позволяет получить не полностью определенный (частичный автомат), что дает больше возможностей для упрощения схемы автомата.
При построении графа автомата по ГСА микропрограммы получается полностью определенный автомат, т.е. из каждого состояния существуют переходы по каждому набору значений логических условий. Из рассмотрения работы реальных операционных устройств (например, для сложения двух целых двоичных чисел) можно сделать вывод, что некоторые наборы значений логических условий никогда не поступят на входы управляющего автомата и следовательно, переходы по этим наборам можно исключить из задания автомата. Из учета взаимодействия операционного и управляющего автоматов нужно определить для каждого состояния si множество наборов значений логических условий Ui, которые могут поступить на входы управляющего автомата, когда он находится в состоянии si.
Для этого необходимо знать:
1. множество наборов U0, которые могут поступить на входы управляющего автомата, когда он находится в состоянии s0;
2. каким образом влияет каждая микрооперация yj на значение логического условия xi в результате выполнения этой микрооперации в операционном автомате.
Для определения всех множеств Ui необходимо просмотреть все переходы автомата в виде дерева его переходов, одновременно определяя для каждого состояния si множество наборов значений логических условий Ui. Просмотр переходов автомата необходимо продолжать до тех пор пока все Ui не станут устойчивыми множествами т.е.пока в них не перестанут появляться новые наборы в множествах Ui.
После получения всех множеств Ui, в исходной таблице переходов и выходов полностью определенного автомата, надо исключить переходы из каждого состояния si по наборам не содержащимся в его Ui.
Пример получения частичного автомата Мили.
Ранее по исходной ГСА был построен граф минимального полностью определенного автомата Мили (рис.5.4). Таблица переходов и выходов этого автомата приведена в табл. 5.3.
Таблица 5.3
x1x2 si | ||||
s0 | s1 / 010 | s1 / 010 | s1 / 010 | s1 / 010 |
s1 | s1 / 010 | s4 / 001 | s0 / 001 | s3 / 011 |
s3 | s0 / 100 | s0 / 100 | s0 / 100 | s0 / 100 |
s4 | s1 / 010 | s0 / 100 | s0 / 100 | s1 / 010 |
Из исходного задания (табл. 5.3) известно, что перед началом работы автомата на его входы подается набор значений логических условий
x1 x2= 11, т.е. U0 = {11}. Из табл. 5.3 следует, что после выполнения микроопераций значения логических условий меняются следующим образом:
y0: x1 := x1; x2 := 0;
y1: x1 := 1; x2 := Z, т.е. значение x2 может быть любым (0 или 1);
y2: x1 := x1; x2 := 1.
Просмотр переходов для определения множеств Ui начинается из состояния s0 по входному набору 11 . В результате перехода в s1 с выдачей y1 определяются первые элементы множества U1 = {00, 01} , так как
x1 := 1; , а x2 := z. По набору 00 автомат останется в s1 с повторной выдачей y1. В результате к U1 добавятся еще два набора, т.е. 11 и 10. U1 = {00, 01, 11, 10}. Далее из s1, возможны три различных пути.
Первый путь из s1 соответствует набору 10, происходит переход из s1 в s3 с выдачей y1 y2 . В результате влияния y1 на x1 эта переменная изменит свое значение на противоположное. На x2 влияют обе микрооперации, поэтому ее значение может быть любым. Получается U3 = {01, 00}. Далее переход из s3 в so c выдачей у0 добавит к U0 набор 00, т.е. U0= {11, 00} . Второй путь из s1 по набору 01: s1 →s4 → s0 определяет U4 = {01} и не добавляет новых наборов к U0 . Третий путь из s1 по набору 11 в s0 с выдачей у2 также не приводит к появлению новых входных наборов. Окончательно сформированные множества входных наборов компактно представляются следующими троичными векторами:
U0 = {11, 00} , U1 ={ZZ}, U3 = {0Z}, U4 = {01}.
Схема просмотренных путей в виде дерева переходов приведена на рис. 5.5.
s0 |
s1 |
U1 = {0Z} |
11 0Z |
y1 |
s1 |
s4 |
U0={11} |
U1={ZZ} |
U4={01} |
00 1Z |
y1 |
01 01 |
y2 |
s3 |
s0 |
s0 |
s0 |
10 0Z |
y1 y2 |
11 11 |
y2 |
U3={0Z} |
0Z 00 |
y0 |
01 00 |
y0 |
U0={11,00} |
00 1Z |
y1 |
U1={ZZ} |
U0={11,00} |
s1 |
s1 |
U0={11,00} |
Рис. 5.5.
После удаления из таблицы 5.3 переходов по наборам не содержащихся в найденных множествах Ui получается таблица переходов и выходов частичного автомата (табл. 5.4).
В полученном не полностью определенном автомате состояние s3 совместимо с состоянием s4. После объединения этих состояний и присвоения этому объединенному состоянию символ s2 получается минимальный частичный автомат Мили (табл. 5.5).
Таблица 5.4
x1x2 si | ||||
s0 | s1 / 010 | --- | s1 / 010 | --- |
s1 | s1 / 010 | s4 / 001 | s0 / 001 | s3 / 011 |
s3 | s0 / 100 | s0 / 100 | --- | --- |
s4 | --- | s0 / 100 | --- | --- |
Таблица 5.5
x1x2 si | ||||
s0 | s1 / 010 | --- | s1 / 010 | --- |
s1 | s1 / 010 | s2 / 001 | s0 / 001 | s2 / 011 |
s2 | s0 / 100 | s0 / 100 | --- | --- |
Из рассмотренного примера следует, что абстрактный синтез микропрограммного автомата состоит из выполнения следующих этапов:
1. построение графа автомата по микропрограмме, заданной графической схемой алгоритма;
2. минимизация числа состояний полностью определенного автомата;
3. получение не полностью определенного автомата;
4. минимизация числа состояний не полностью определенного автомата
Структурный этап синтеза микропрограммного автомата не отличается от структурного этапа канонического метода синтеза.
АСИНХРОННЫЙ АВТОМАТ
Асинхронным автоматом называется автомат, изменение состояния которого может происходить в произвольный момент времени, и этот моменты времени определяются изменением входного сигнала.
Выбор способа реализации автомата (синхронный или асинхронный) определяется способом представления входного сигнала.
Примеры основных способов представления входных сигналов:
1. потенциальный с синхронизацией;
t |
t |
c |
x1 |
t |
t |
V |
c |
x1 |
2. импульсный сигнал;
x2 |
t |
V |
3. потенциальный сигнал.
x3 |
t |
V |
При потенциальном сигнале высокий уровень потенциала соответствует логической единице, низкий – логическому нулю, длительности 1 и 0 могут быть разными.
Первые два способа представления сигнала определяют синхронную реализацию, а третий асинхронную.
s1 |
x1…xn С |
1…xn С |
x1…xn |
Рис. 6.1
В синхронном автомате сигнал синхронизации C обеспечивает устойчивую работу автомата и учитывается неявно. На рис. 6.1 приведен пример фрагмента графа, с явным учетом сигнала синхронизации, на нем при C = 0 не происходит изменения текущего состояния автомата.
При асинхронной реализации автомата сигнал синхронизации отсутствует, поэтому для обеспечения устойчивой работы все его состояния должны быть устойчивыми уже на абстрактном этапе синтеза.
Состояние si называется устойчивым, если при переходе в это состояние под воздействием входного символа pk автомат остается в этом состоянии до тех пор, пока на его вход не поступит символ отличный от pk (рис. 6.1).
si |
pk |
pi |
pk |
Рис. 6.2
Асинхронным автоматом называется автомат, если уже на абстрактном этапе все его состояния устойчивы.
Пример асинхронного автомата (рис. 6.3):
s2/0 |
s1/0 |
s3/1 |
Рис. 6.3
Для представления асинхронного автомата используется модель автомата Мура. Графу автомата Мура (рис. 6.3) соответствует следующая таблица переходов и выходов автомата Мура (табл.6.1). В клетках этой таблицы в скобках заключены устойчивые состояния и для асинхронного автомата важно, в каком из устойчивых состояний находится автомат.
Пусть автомат находится в устойчивом состоянии s1 воздействием входного сигнала 00 и если входной сигнал изменился на 10, то для определения состояния, в которое переходит автомат необходимо:
1. двигаться по строке соответствующей текущему состоянию до столбца, отмеченного новым входным сигналом, определяется состояние, в которое должен перейти автомат;
2. двигаться по этому столбцу до устойчивого нового состояния.
Таблица 6.1
wi | x1x2 si | ||||
s1 | (s1) | (s1) | s2 | s3 | |
s2 | s1 | (s2) | (s2) | (s2) | |
s3 | s1 | s2 | s2 | (s3) |
Двигаясь по строке отмеченной символом текущего состояния s1 от столбца, отмеченного текущим сигналом 00, до столбца отмеченного новым входным сигналом 10 определяем новое состояние s3. Далее двигаться по столбцу, отмеченного новым входным сигналом 10, до устойчивого нового состояния (s3).
6.1. Синтез асинхронного автомата
Синтез асинхронного автомата отличается от синтеза синхронного автомата.
На абстрактном этапе синтеза асинхронного автомата отличие состоит в выполнении следующих дополнительных действий:
1. перекодированием входных и выходных символов для обеспечения распознавания соседних одинаковых символов;
2. при переходе от алфавитного оператора и графу автомату необходимо сделать все состояния автомата устойчивыми.
Пример необходимости перекодирования входных и выходных символов абстрактного автомата A.
Пусть P = W = {a, b, c}. Входное слово a a b b автомат перерабатывает в выходное слово b c c a. При переходе к структурному автомату символы кодируются: a = 00, b = 11, c = 10.
b b a a |
a c c b |
A |
A |
1 1 0 0 1 1 0 0 |
0 1 1 1 0 0 0 1 |
x1 |
x2 |
y1 |
y2 |
Рис. 6.4
На рис. 6.4 видно, что на уровне сигналов структурного автомата два одинаковых, подряд следующих символа, не различимы.
Необходимо расширить алфавиты: P’ = W’ = {a, a’, b, b’, c, c’}. Теперь входное слово a a’ b b’ автомат перерабатывает в выходное слово b c c’ a’ (Рис. 6.5). При переходе к структурному автомату символы кодируются: a = 000, a’ = 001, b = 110, b’ = 111, c = 100, c’ = 101.
y1 |
x1 |
b’ b a’ a |
a’ c’ c b |
A |
A |
1 1 0 0 1 1 0 0 1 0 1 0 |
0 1 1 1 0 0 0 1 1 1 0 0 |
x2 |
x3 |
y2 |
y3 |
Рис. 6.5
Расширение алфавита требует введение третьего разряда в код символа, но позволяет различать два одинаковых, подряд следующих символа.
На структурном этапе синтеза асинхронного автомата отличие состоит в следующем:
1. другой целью кодирования состояний автомата;
2. другой целью синтеза комбинационной схемы;
3. элементом памяти, используемым в автомате.
Задача кодирования состояний асинхронного автомата состоит в обеспечении устойчивой работы автомата, за счет устранение, так называемого, явления состязания элементов памяти.
Состязание элементов памяти
Реальные элементы памяти обладают определенной задержкой во времени срабатывания, причем величина задержки заранее не известна и зависит от технологии изготовления и от внешних факторов в процессе эксплуатации, поэтому определить соотношение задержек различных элементов памяти заранее не возможно.
si |
sj |
x |
y1y2 0 1 |
y1y2 0 1 |
Рис. 6.6
Пусть во фрагменте графа (рис. 6.6) при переходе из si в sj элементы памяти y1 и y2 имеют задержки ∆1 и ∆2 , между ними возможны следующие соотношения, т.е. если:
1. ∆1 = ∆2 , то 01 10;
2. ∆1 > ∆2 , то 01 00 10;
3. ∆1 < ∆2 , то 01 11 10.
Таким образом, наличие различных задержек приводит к тому, что при переходе из si в sj автомат может оказаться в некотором промежуточным незапланированном состоянии, что может привести к неправильной работе автомата.
Это явление называется состязанием элементов памяти.
В примере (рис. 6.6) могут быть три варианта соотношений. Первый вариант нереален. Во втором и третьем варианте появляются промежуточные состояния 00 и 11, именно переходы через эти состояния называются состязанием элементов памяти.
Состязания могут быть критическими и не критическими. Если состязание приводит к переходу в незапланированное устойчивое состояние, то такое состязание называется критическим.
Если же состязание приводит к переходу в незапланированное неустойчивое состояние, а затем и к переходу в нужное устойчивое состояние, то такое состязание называется некритическим.
Пример возникновения состязаний в автомате, заданным графом (рис.6.3) и таблицей переходов (табл. 6.1).
Пусть состояния закодированы следующим образом (табл. 6.2) и тогда закодированная таблица переходов имеет вид (табл. 6.3):
Таблица 6.2
si | y1 | y2 |
s1 | ||
s2 | ||
s3 |
Таблица 6.3:
z | x1x2 y1y2 | ||||
(00) | (00) | ||||
(01) | (01) | (01) | |||
(11) |
Пусть в автомате должен произойти переход по входному сигналу 10 из устойчивого состояния с кодом 00 в устойчивое состояние с кодом 11.
Если ∆1 > ∆2 , то 00 01 11.
Состязание критическое, так как из-за такого соотношения между задержками автомат оказывается в промежуточном состоянии 01, - которое для автомата является устойчивым и перехода в состояние 11 не произойдет и это приводит неправильной работе автомата.
Если ∆1 < ∆2 , то 00 10 11.
Состязание некритическое, так как из-за такого соотношения между задержками код в блоке памяти становится равный 10, а такой код для кодирования состояний автомата не используется и автомат далее перейдет в устойчивое состояние с кодом 11.
Так как неизвестно соотношение между задержками элементов памяти и невозможно определить тип состязания: критическое или некритическое, то надо вообще исключить состязания.