Теория автоматов

Автор: Пользователь скрыл имя, 23 Ноября 2012 в 10:03, курс лекций

Описание работы

Конечные автоматы и такие связанные с ними конструкции как линейные грамматики и регулярные выражения относятся к важнейшим понятиям информатики. Различные варианты конечных автоматов и близкие им математические объекты служат для описания и анализа технических устройств, различных систем и процессов, программ и алгоритмов. Теория автоматов является одним из старейших разделов теоретической информатики.
В читаемом курсе рассматриваются цифровые автоматы как теоретическая основа проектирования аппаратных средств ЭВМ последовательного типа. В этом случае принято рассматривать цифровой автомат как совокупность операционного автомата (исполнительного устройства) и управляющего автомата (собственно конечного автомата), образующих операционное устройство.

Содержание

Теория автоматов. Введение.
Теория автоматов. Арифметика ЦВМ
Теория автоматов. Системы счисления
Теория автоматов. Конечные цифровые автоматы.

Работа содержит 1 файл

ta.doc

— 1.01 Мб (Скачать)

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

Из начальной вершины  выходит одно ребро.  В конечную вершину ребра только входят.

ГСА должна удовлетворять  следующим требованиям:

  1. входы и выходы вершин соединяются между собой линиями, направленными от входа к выходу;
  2. каждый выход любой вершины соединен точно с одним входом другой вершины;
  3. для любой вершины графа существует, по крайней мере, один путь  из этой вершины к конечной вершине;
  4. один из выходов условной вершины может соединяться с ее входом (что недопустимо для операторной вершины); в этом случае в цепь обратной связи вводится пустая операторная вершина ye.

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

Внутри условных вершин  в содержательной схеме алгоритма записывают некоторое логическое выражение (предикат), принимающее значение 0 или 1.

При кодировании содержательной ГСА внутри операторных вершин записываются символы из множества Y выполняемых микрокоманд, а внутри условных вершин – один из осведомительных сигналов из множества Х.  При этом составляется таблица соответствий, сопоставляющая каждому значению Y список выполняемых микрокоманд, и каждому значению Х – предикат, проверяемый в этой условной вершине.

Управляющий микропрограммный автомат может быть реализован  аппаратно на основе существующей элементной базы. В этом случае он называется автоматом с жесткой логикой. Если автомат реализован с помощью программы на ЭВМ, он называется автоматом с программируемой логикой.

Автомат с программируемой  логикой реализуется с помощью  программы, записанной в память ЭВМ. Такой автомат удобно использовать на этапе проектирования с целью выявления ошибок  в разработанной логической схеме и для отладки системы. Но его быстродействие существенно уступает быстродействию автомата с жесткой логикой. Последнее связано с тем, что в микропрограммном автомате, реализованном на однопроцессорной ЭВМ фон-Неймана, для выполнения каждой микрооперации требуется обращение к памяти, тогда как в автомате с жесткой логикой возможно параллельное выполнение нескольких микроопераций в различных структурных элементах  операционного автомата. Кроме того, обращение к памяти в автомате с жесткой логикой происходит только на этапах обмена входными и выходными данными, что также существенно уменьшает время выполнения операции. (Известно, что обращение к памяти требует большего времени, чем операции с регистрами и комбинационными схемами).

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

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

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

Таблица переходов-выходов  абстрактного автомата описывает содержание выполняемых преобразований входных сигналов именно управляющего автомата. Теория абстрактных и структурных автоматов не указывает временной последовательности выполнения микроопераций. Чтобы связать теорию структурных автоматов с решением конкретных задач с помощью ЭВМ, используются первичные языки задания автоматов, к числу которых относится язык граф-схем алгоритмов (ГСА). 

Различают содержательные и кодированные граф-схемы алгоритма. В содержательной ГСА в каждой операторной вершине записывается микрокоманда, содержащая множество операций присваивания, означающих действия над какими-либо различными элементами структурного автомата. В каждой условной вершине записывают предикат, значение которого проверяется в данной точке программы. После построения содержательной граф-схемы алгоритма решаемой задачи строят кодированную граф-схему алгоритма, в которой в каждой операторной вершине записывают условное обозначение микрокоманды, соответствующей данной вершине (Yk), а в каждой условной вершине индексированную переменную xi, соответствующую конкретному предикату. При этом следует определять предикаты таким образом, чтобы проверка условия сводилась к проверке значения единственного бита в каком-либо структурном элементе исполнительного устройства (операционного автомата). Соответствие микрокоманд и предикатов их обозначениям в кодированной граф-схеме алгоритма задается таблицей спецификаций.

Алгоритм отметки ГСА и построение автомата Мура

 

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

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

  1. отметить (пронумеровать) все операторные вершины, поставив в соответствие каждой операторной вершине некоторое состояние aiÎA;
  2. если в ГСА имеются одинаковые операторные вершины (в них записана одна и та же микрокоманда), им сопоставляются разные метки, означающие разные состояния автомата;
  3. начальной и конечной вершине присваивается метка a0.

Далее построение таблицы  переходов-выходов включает следующие  этапы:

  • просматриваются все пути перехода между смежными операторными вершинами  am в as вида amxi1σi1xi2σi2…xikσikas, где σi1i2,…,σik – значения предикатов xij, 1≤j ≤k  , проверяемых при переходе из  вершины am в вершину as;
  • каждому пути из вершины am и вершину as  сопоставляется конъюнкция ранга k всех условий, проверяемых на этом переходе, при этом переменная xij входит в конъюнкцию с отрицанием, т.е. если σij=0 (этому пути соответствует выход из условной вершины xij, помеченный  значением 0), и без отрицания – в противном случае.  При этом 0≤k ≤M; если в конъюнкцию X(am,as) какая-либо переменная входит одновременно с отрицанием и без него, то соответствующий переход при проектировании автомата не рассматривается;
  • метка am соответствует состоянию автомата в момент времени t, а метка as - состоянию автомата в момент времени t+1;
  • вводится пустой оператор ye, если в схеме алгоритма имеются петли из логических  условий;
  • строится таблица переходов автомата Мура, в которой перечисляются все пути переходов между отметками в ГСА; каждому состоянию автомата am сопоставляется выходной сигнал,  вырабатываемый в данном такте автоматного времени.

В таблице 26 представлен  формат таблицы переходов-выходов автомата Мура для случая, когда в качестве элементов памяти выбраны RS триггеры.

Таблица 30 Формат расширенной таблицы переходов-выходов автомата Мура

am (Ym)

as

X(am,as)

x1x2…xn

[am]

t1t2…tk

[as]

t1t2…tk

R1S1 R2S2 …RKSK

           

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

В таблице 26 отображен  тот факт, что в автомате Мура реализуется отображение выходов λ:A®W

Алгоритм отметки ГСА и построение автомата Мили

Алгоритм отметки ГСА для построения автомата Мили состоит в следующем:

  • меткой a0 отмечается вход вершины, следующей за начальной вершиной, и вход конечной вершины;
  • метками a1, a2, …, aM отмечаются входы всех вершин, следующих за операторными вершинами;
  • Вход вершины отмечается не более одного раза.

Далее строится таблица переходов-выходов, включающая следующие шаги:

  • рассматриваются все пути перехода в ГСА вида:
    • am X(am,as)Y(am,as)as – условный переход, которому сопоставляется конъюнкция X(am,as) входных условий, проверяемых при выполнении перехода из метки am в метку as;
    • am X(am,a0)a0; допускается отсутствие выходного сигнала только при переходе из вершины am в вершину a0; пустой выходной сигнал обозначается Ye;
    • amY(am,as)as безусловный переход, которому сопоставляется пустая конъюнкция, равная по определению 1;
    • если в конъюнкцию X(am,as) какая-либо переменная входит одновременно с отрицанием и без него, то соответствующий переход при проектировании автомата не рассматривается;
  • составляется таблица переходов-выходов, имеющая следующий формат:

 

Таблица 31 Расширенная таблица переходов-выходов автомата Мили

am

as

X(am,as)

x1x2…xn

Y(am, as)

[am]

t1t2…tk

[as]

t1t2…tk

R1S1 R2S2 …RKSK

[Y(am, as)]

y1y2…yr

               

В качестве элементов памяти выбран RS-триггер.

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

Построение таблицы переходов-выходов целесообразно начинать с метки a0, помещая в одной строке, состоящей из нескольких подстрок, все возможные переходы из этой метки. И только после этого переходить к следующей (по порядку возрастания индексов) метке, обозначая в соответствующей ей строке таблицы столько подстрок, сколько имеется переходов из этой метки. Таким образом, число строк таблице будет в точности равно числу меток, сделанных на ГСА, а число подстрок в каждой строке определит все возможные переходы из данной метки. Такое построение целесообразно, чтобы избежать пропускания (потери) некоторых переходов. 

Тривиальная реализация цифрового автомата

При решении даже достаточно простых  задач суммарное число внутренних и внешних переменных автомат  оказывается достаточно большим. Существующие алгоритмические и табличные способы минимизации булевых функций позволяют выполнить минимизацию в полном объеме для построения автомата. Однако затраты времени и ресурсов могут оказаться неприемлемыми. Поэтому в некоторых случаях, когда затраты аппаратных средств не очень критичны, используется тривиальная реализация. При такой реализации автомата минимизация функций возбуждения элементов памяти и выходных функций не производится вовсе. Из выходных сигналов элементов памяти с помощью комбинационной схемы, например, дешифратора, формируются сигналы состояний ai, которые используются для построения ДНФ указанных функций непосредственно по таблице переходов-выходов. Логические слагаемые в ДНФ представляют собой в этом случае конъюнкции внешних переменных, проверяемых при переходе из метки am, и метки am. Очевидно, в каждом такте именно метка am=1, а остальные метки принимают значение 0.

Кодирование состояний. Гонки в  автомате

Задача кодирования состояний  является одной из основных задач  канонического метода структурного синтеза автоматов.  Переход автомата из состояния am в состояние as сопровождается переключением некоторых (возможно, всех) элементов памяти. Если при переходе автомата из какого-либо состояния в смежное должно произойти переключение более чем одного элемента памяти, то возникает ситуация, называемая состязаниями элементов памяти. При этом из-за технологической не идентичности  триггеров время переключения  их оказывается различным. Под воздействием внешнего сигнала первым переключится триггер, время задержки которого окажется минимальным. Затем произойдет переключение следующего триггера и т.д. Кроме того, различны времена распространения сигналов возбуждения по цепям различной длины.  Тот элемент, который выигрывает состязания, т.е. изменит свое состояние раньше других элементов, может через цепь обратной связи изменить  сигналы на входах некоторых запоминающих элементов до того, как другие участвующие в состязаниях элементы памяти изменят свое состояние.  Это может привести автомат в состояние, не предусмотренное его графом. Поэтому в процессе перехода автомат может оказаться в некотором промежуточном состоянии  ak или aj в зависимости от того, какой элемент памяти выиграет состязания. Если затем при том же входном сигнале автомат перейдет в состояние as , то такие состязания называются некритическими. Если же автомат перейдет в состояние, не предусмотренное его ГСА, то такие состязания называются критическими или гонками. Если при неизменном входном сигнале из полученных переходных неустойчивых состояний возможен переход в другие состояния, не соответствующие желаемому переключению, возникает неправильная работа автомата, т.е. сбой. Такая ситуация называется критическими состязаниями элементов памяти. В любом случае гонки - явление нежелательное и их следует избегать. Пример критических и некритических состязаний элементов памяти приведен на Рис.7.

Информация о работе Теория автоматов