Скачиваний:
151
Добавлен:
10.12.2013
Размер:
801.79 Кб
Скачать

4.2. Структурная схема микропрограммного устройства (автомата).

Способ установления порядка выполнения микрокоманд самым непосредственным образом связан со структурой устройства управления. В результате использования программного принципа были получены упорядоченные структуры центрального блока управления (ЦБУ). Такие ЦБУ получили название микропрограммных автоматов (МПА) или микропрограммных устройств (МПУ).

Отметим, что впервые принципы микропрограммного управления были сформулированы в 1953 г. М. Уилксом. Вопросы микропрограммного управления развиты в работах советских ученых В.М. Глушкова, В.Г. Лазарева, С.А. Майорова, Ф.Ф. Атстопаса, С.И. Баранова и др. Большой вклад в решение задач микропрограммирования внесли зарубежные ученые С. Хассон, С. Рамамурфи, А. Грассели и др.

Предложено несколько схем микропрограммных автоматов. Первую схему МПА, как и принцип микропрограммного управления, разработал М. Уилкс. Схема МПА Уилкса является исходной. Все известные до сих пор схемы МПА являются дальнейшим развитием схемы Уилкса. Структурная схема МПА Уилкса (рис. 4.3) состоит из регистра (Р) микрокоманд, дешифратора (Д), блока проверки логических условий (ПЛУ), блока формирования команд управления (ФКУ), блока формирования микрокоманд (ФМК), включающего формирователь адреса (ФА) и память микропрограмм (ЗУМП).

Выходы регистра микрокоманд Р соединены со входом дешифратора Д, который имеет управляющий вход (вход синхронизации) "Вх. синхр.". Дешифратор декодирует код регистра и при поступлении управляющего сигнала на шину "Вх. синхр." выдает сигнал на одной из своих выходных шин. Длительность выходного сигнала дешифратора равна длительности управляющего сигнала. Эти сигналы будем именовать микрокомандами 0, 1, ..., m.

Выходы дешифратора соединены со входами блоков ЛУ, ФА, ФКУ.

Формирователь команд управления представляет собой кодопреобразователь (шифратор), который при возбуждении одной из шин шифратора формирует одну или несколько команд управления. Блоки ПЛУ и ФА имеют по две группы входов. Первые группы входов блоков соединены с выходами дешифратора. На другие входы блока ПЛУ подаются логические условия. Выходы блока ПЛУ соединены со второй группой входов формирователя адреса ФА.

Блок ПЛУ служит для проверки логических условий. Он представляет собой совокупность логических узлов, каждый из которых проверяет определенное логическое условие. На рис. 4.4 представлена схема логического узла. Эта схема проверяет логическое условие Х. Если Х=1, то по микрокоманде L формируется управляющий сигнал в цепи PLи по ней подается в формирователь микрокоманд. Если Х=0 (), то по микрокоманде L формируется управляющий сигнал в цепии по ней подается в блок ФМК.

Блок ФМК служит для формирования сигналов (микрокоманд), которые задают последовательность действий МПА.

Выходы этого блока соединены со входами регистра Р. Перед первой командой регистр Р устанавливается в исходное состояние.

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

Дешифратор по коду, поступающему из регистра, формирует выходной сигнал на следующем своем выходе. Этот сигнал подается в блоки ПЛУ, ФКУ и ФА. В них формируются команды управления, проверяются логические условия и образуются управляющие сигналы для считывания кода следующей микрокоманды из ЗУМП в регистр Р.

Последовательность микрокоманд образуем микропрограмму. Каждая микропрограмма включает начальную микрокоманду и конечную микрокоманду ("Стоп"). Код микрокоманды хранится в течение времени нахождения этой микрокоманды в регистре Р. Микропрограмма выполняется до тех пор, пока не будет сформирована микрокоманда "Стоп", соответствующая окончанию работы МПА по первой команде. При этом в ФМК может быть сформирован сигнал, устанавливающий регистр Р в исходное состояние.

Затем из внешних устройств по шине "Вх.К." в регистр Р записывается новая команда и МПА работает по ней также как описано выше.

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

Рассмотренная структура МПА явилась исходной для дальнейшего развития идеи микропрограммного управления. Существуют различные модификации исходной структурной схемы МПА Уилкса.

Для устранения состязаний элементов памяти, которые возможны в МПА Уилкса, в схему МПА вводится второй регистр Р2, служащий для хранения кода следующей микрокоманды, которая будет выполняться после текущей. Код текущей микрокоманды находится, как и в первой схеме, в регистре Р1.

Разработаны схемы быстродействующих микропрограммных автоматов, микропрограммных автоматов с регистром-счетчиком, отличающихся большой гибкостью и экономичностью, микропрограммных автоматов с кодированным управлением, применяющихся в случае большого (свыше 100) числа команд управления и др.

4.3. Способы описания (задания) микропрограммных устройств.

Как известно, описание (задание) дискретного устройства - это символическое представление условий его функционирования.

Условия функционирования автомата считаются заданными, если известны следующие множества и функциональные соответствия:

- множество входных сигналов;

- множество выходных сигналов;

- множество состояний памяти;

- начальное состояние памяти автомата;

- функция переходов автомата;

- функция выходов автомата.

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

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

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

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

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

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

Рассмотрим кратко способы задания МПУ с помощью ЛСА, ГСА, и МСА.

А. Логические схемы алгоритмов.

МПУ реализует некоторый алгоритм. Что такое алгоритм?

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

Алгоритмы могут быть выражены в виде логических схем алгоритмов, граф-схем алгоритмов и матричных схем алгоритмов. Все три выражения алгоритмов эквивалентны между собой.

Указанным формам выражения алгоритмов предшествует словесная его формулировка в виде предписания, инструкции, задания и т.п.

Алгоритм обладает следующими основными свойствами:

- определенностью, т.е. он облечен в формальное общепонятное предписание, не оставляющее место произволу;

- результативностью, т.е. он направлен на достижение некоторого результата и всегда приводит к какому-либо результату: положительному или отрицательному;

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

- дискретностью.

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

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

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

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

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

Операторы обычно обозначаются большими буквами латинского алфавита A, B, C, ... Проверяемые логические условия обозначаются малыми буквами ,,. Часто для обозначения операторов выбирают одну большую букву А с разными индексами (А1, А2, А3,..., Аn), а для обозначения логических условий - малую букву p тоже с разными индексами (p1, p2, ..., pm).

Итак, операторы определяют действия, а логические условия указывают, какое из этих действий надо производить в данном случае.

Логические условия могут принимать 2 значения - 0 и 1. Единица обозначает, что логическое условие выполнено, а нуль - не выполнено.

Например, логическое условие ЛУ р(х=у). Р=1, если х=у; Р=0, если х<>у.

ЛУ р(х>у): Р=1, если х>у; Р=0, если х<=у.

Логические условия могут быть и сложными (а=а(Р1, Р2,...,Рn)), включающими в себя несколько простых. Например, ЛУ а=Р1Р2. Очевидно, что а=1, если Р1=1 или Р2=1, или Р12=1; а=0, если Р12=0.

Для описания строения алгоритмов служит специальный математический аппарат - логические схемы алгоритмов.

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

Операторы и логические условия называются членами данной ЛСА, стрелки членами ЛСА не являются.

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

ABCD.

Если алгоритм не является строго последовательным, то в ЛСА включаются логические условия, определяющие порядок выполнения операторов. От каждого логического условия начинается нумерованная стрелка (i), которая оканчивается у какого-либо члена ЛСА (i).

Знак iозначает начало стрелки, знакi- ее конец. Это как бы одна стрелкау которой опущена средняя часть, чтобы не затемнять ЛСА. Начало и конец одной и той же стрелки обозначаются одинаковыми номерами:1и1или2и2и т.д.

В логической схеме алгоритма не моет быть двух одинаковых (с одинаковыми индексами) концов стрелок, тогда как одинаковых начал может быть несколько.

Рассмотрим порядок работы ЛСА.

Первым срабатывает самый левый член схемы. Ели это был оператор, то следующим срабатывает член, стоящий непосредственно справа от него. Если же сработавший член был логическим условием, то возможны 2 случая.

Если проверяемое логическое условие выполнено, (равно 1), должен работать член, соседний справа. Если же логическое условие не выполнено (равно 0), должен работать тот член, к которому ведет стрелка, начинающаяся после данного логического условия, т.е. член схемы, стоящий справа от конца стрелки. Аналогичным образом работают и другие члены ЛСА. Работа ЛСА прекращается либо тогда, когда на некотором этапе не оказывается такого члена схемы, который должен был бы работать.

Рассмотрим примеры.

Пример 1. Пусть задана ЛСА 2Ар1В1q2C. Порядок работы ее при всех возможных комбинациях значений логических условий указан в таблице 4.1 Отметим, что часто вместо ЛСА говорят просто алгоритм.

Таблица 4.1

p

q

Порядок работы

0

0

AAA...A...

0

1

AC

1

0

ABABAB...AB...

1

1

ABC

Пример 2. Дана ЛСА 2Ар1В1Cq2D. Порядок работы определяется табл. 4.2.

Таблица 4.2

p

q

Порядок работы

0

0

AСAС...AС...

0

1

AD

1

0

ABCABC...ABC...

1

1

ABCD

Пример 3 Дана ЛСА2Aa11Bd221C;,Порядок работы определяется табл. 4.3.

Таблица 4.3

p1

p2

d1=p1p2

d2=p1p2

Порядок работы

0

0

1

1

ABС

0

1

0

0

AC

1

0

1

0

ABAB...AB...

1

1

1

0

ABAB...AB...

Среди логических условий выделяются такие, которые всегда принимают нулевое значение. Такие члены ЛСА называют тождественно-ложными логическими условиями. Эти условия не требуют проверки и обозначаются w.

Например, ЛСА A01A1x123A2w12A3x23A4Akсодержит одно тождественно-ложное логическое условие w. Оно означает, что после выполнения оператора А2действие всегда переносится по стрелке 1 к оператору А1.

Тождественно-ложные логические условия являются вспомогательными, а операторы и логические условия - основными членами ЛСА. Вспомогательный член ЛСА w нужен для того, чтобы при записи ЛСА избежать многократного повторения ее основных членов.

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

Однако часто выделяют оператор А0, символизирующий начало выполнения алгоритма (оператор начала) и оператор Ак, символизирующий окончание работы алгоритма (оператор конца). Последний можно заменить точкой. Если ЛСА содержит операторы начала А0 и конца Ак, то перед начальным оператором и после конечного оператора стрелок быть не должно.

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

При описании с помощью ЛСА функционирования МПУ всем элементарным актам - командам (микрокомандам) и проверяемым условиям ставятся в соответствие некоторые операторы и логические условия ЛСА. Составленная таким образом ЛСА отражает закон функционирования микропрограммного автомата.

Б. Граф-схема алгоритмов (ГСА).

Как известно, при задании МПУ ориентированными графами, состояния памяти изображаются вершинами графа, а переходы автомата из одного состояния в другое - стрелками (дугами) графа, соединяющими соответствующие вершины.

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

Чтобы можно было установить начало и конец этой последовательности, выделяется специальная начальная вершина, которая соответствует первой команде (микрокоманде) МПУ, и конечная вершина, соответствующая конечной микрокоманде МПУ.

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

На графе этим микрокомандам соответствуют два типа вершин. Вершины, соответствующие микрокомандам, по которым формируются выходные управляющие сигналы, называются операторными вершинами.

Начальная и конечная вершины обозначаются по ГОСТ 19.701-90 овалами с обозначениями А0и Ак(рис. 4.5,а).

Операторные вершины будем обозначать прямоугольниками с буквами А1, A2,..., Аn, или А,В,С,..., или А1, А2, ...,В1, В2,... (рис. 4.5,б). Вершины другого типа, соответствующе микрокомандам, по которым проверяются логические условия, называют условными вершинами. Условные вершины будем изображать ромбами с буквой Хiили Рi, или f(x) (рис. 4.5,в).

Операторная вершина может иметь один или несколько входов (входных дуг) и один выход (выходную дугу). Это соответствует в МПУ тому, что после выполнения микрокоманды (операции) за ней выполняется всегда только одна микрокоманда (операция).

а)

б)

в)

Рис. 4.5

Условная вершина может иметь один или несколько входов и точно два выхода, отмеченные символами "да" и "нет". Это соответствует тому, что после проверки МПУ некоторого логического условия (Xi) возможны два исхода: Xi=1 или Xi=0.

Граф-схема алгоритма (ГСА) удовлетворяет следующим условиям:

- содержит конечное число вершин, каждая из которых является либо начальной, либо конечной, либо операторной, либо условной;

- имеет одну начальную и одну конечную вершины;

- входы и выходы вершин соединяются друг с другом с помощью дуг, направленных всегда от выхода ко входу;

- каждый выход соединен только с одним входом;

- любой вход соединяется хотя бы с одним выходом;

- для любой вершины графа существует хотя бы один путь из этой вершины к конечной вершине;

- один из выходов условной вершины может соединяться с ее входом (рис. 4.5,г), что недопустимо для операторной вершины (так называемая ждущая вершина);

- в каждой вершине ГСА записывается оператор, присвоенный вершине.

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

Формализация условий работы МПА в виде ГСА начинается с содержательной граф-схемы алгоритма.

В. Матричные схемы алгоритмов.

Условия функционирования МПУ можно описать также с матричных схем алгоритмов. Матричная схема алгоритма - это квадратная матрица типа представленной на рис. 4.6, строки которой обозначены символами операторов А0, А1,...,Аi,...,Ак-1, а столбцам поставлены в соответствие символы операторов А1,...,Аi,...,Ак.

Элементами aijматрицы являются логические функции перехода от операторов, соответствующих строке к операторам, соответствующим столбцу. Оператор Аj, сопоставленный с j-м столбцом матрицы, выполняется после оператора Аi, сопоставленного с i-й строкой матрицы, при тех комбинациях логических условий, при которых обращается в единицу логическая функция: аij=aij(x1,x2,...xn).

Функция aijназывается функцией перехода от оператора Аiк оператору Aj. Если функция перехода тождественно равна нулю (нулевая функция переходов), это означает, что операторы соответствующей пары никогда не выполняются последовательно друг за другом. Для простоты нулевые функции переходов aij=0 в матрицу могут не заноситься.

Логические функции переходы МСА обладают следующими свойствами:

1) aij·ail=0, если j<>l;

2)

Первое условие утверждает, что произведение двух различных функций переходов одной и той же строки МСА всегда равно 0. Это условие соответствует тому факту, что после выполнения оператора Аi может одновременно выполняться не более одного оператора.

Из второго условия очевидно, что после оператора Аi всегда должен выполняться хотя бы один оператор. Таким образом, из этих двух условий следует, что после оператора Ai(i<>k) всегда выполняется только один оператор.

Из приведенного описания матрицы МСА следует, что оператором "Начало" обозначается верхняя (первая) строка матрицы, а оператором "Конец" - крайний (правый) столбец матрицы (Ак).

Соседние файлы в папке Конспект лекций по теории автоматов-Коган