Лекция
Это продолжение увлекательной статьи про схемотехника цифровых узлов.
...
называется микропрограммой. Микропрограмма определяет порядок проверки значений логических условий и следования микроопераций, необходимый для получения требуемых результатов.
4. Микропрограмма используется как форма представления функции устройства, на основе которой определяется структура и порядок функционирования устройства во времени.
Таким образом, из принципа микропрограммного управления следует, что структура и порядок функционирования операционных устройств предопределяется алгоритмом выполнения операцииF={f1,...,fG}.
К элементарным действиям над словами информации - микрооперациям относятся: передача информации из одного регистра в другой, взятие обратного кода, сдвиг и т.д.
В любом устройстве обработки цифровой информации можно выделить два основных блока – операционный автомат (ОА) и управляющий автомат (УА).
Операционный автомат (ОА) служит для хранения слов информации, выполнения набора микроопераций и вычисления значений логических условий X (рис. 5.10), т.е. операционный автомат является структурой, организованной для выполнения действий над информацией. Микрооперации, выполняемые ОА, задаются множеством управляющих сигналов Y={y1,...., yM}, с каждым из которых отождествляется определенная микрооперация.
Рис. 5.10. Структурная операционного устройства с микропрограммным управлением
Значения логических условий, вычисляемые в операционном автомате, отображаются множеством осведомительных сигналов X={x1,...,xL}, каждый из которых отождествляется с определенным логическим условием.
Управляющий автомат (УА) генерирует последовательность управляющих сигналов, предписанную микропрограммой и соответствующую значениям логическим условий. Иначе говоря, управляющий автомат задает порядок выполнения действий в ОА, вытекающий из алгоритма выполнения операций. Наименование операции, которую необходимо выполнить в устройстве, определяется кодом g операции, поступающим в УА извне. По отношению к УА сигналы g1,...,gh, посредством которых кодируется наименование операции и осведомительные сигналы x1,...,xL, формируемые в операционном автомате, играют одинаковую роль: они влияют на порядок выработки управляющих сигналов Y. Поэтому сигналы g1,...,gh и x1,...,xL относятся к одному классу – к классу осведомительных сигналов, поступающих на вход УА.
Т.о. любое операционное устройство – процессор, канал ввода-вывода и т.д. – является композицией операционного и управляющего автоматов. Операционный автомат, реализуя действия над словами информации, является исполнительной частью устройства, работой которого управляет управляющий автомат, генерирующий необходимые последовательности управляющих сигналов.
Операционный и управляющий автоматы могут быть определены своими функциями – перечнем выполняемых ими действий.
Функция ОА определяется следующей совокупностью сведений:
T.o. функция ОА задана, если заданы (определены) множества D, R, S, Y, X. Время не является аргументом функции ОА. Функция устанавливает список действий-микроопераций и логических условий, которые может выполнять автомат, но никак не определяет порядок следования этих действий во времени. Т.е. функция ОА характеризует средства, которые могут быть использованы для вычислений, но не сам вычислительный процесс.
Порядок выполнения действий во времени определяется в форме функций управляющего автомата.
Функция управляющего автомата – это операторная схема алгоритма (микропрограммы), функциональными операторами которой являются символы у1,...,уm, отождествляемые с микрооперациями, и в качестве логических условий используются булевы переменные х1,..., хL. Т.е. совокупность микроопераций, объединенных алгоритмом операции, составляет микропрограмму операции, которая, в свою очередь, является связующим звеном между командой (кодом операции) и операционным устройством (аппаратными средствами), предназначенным для преобразования информации.
Управляющий автомат состоит из отдельных логических схем, вырабатывающих управляющие сигналы в заданной последовательности. Такой автомат можно рассматривать как управляющий автомат Мура или Мили.
Чтобы построить схему управляющего автомата, нужно задать микропрограмму работы операционного устройства. Микропрограмма наиболее часто представляется в виде граф - схемы алгоритма (ГСА). ГСА определяет вычислительный процесс последовательно во времени, устанавливая порядок проверки логических условий х1÷хL и порядок следования микрооперацийу1÷уm.
Согласно принципа микропрограммного управления, любая сложная операция распадается на ряд микроопераций, которые выполняются ОА. Различные микрооперации выполняются элементарными ОА - так называемыми операционными элементами (ОЭ), которые являются составными частями основного ОА.
Под операционным элементом понимают устройство, реализующее одну из следующих функций или их произвольную комбинацию:
Принято считать, чтофункция ОЭ определена, если заданы:
Для построения ОА ОЭ соединяются между собой с помощью цепей передачи слов информации от выходов одних элементов к входам других.
В зависимости от выполняемых микроопераций ОЭ делятся на разновидности: шина, регистр, счетчик, сумматор, схема сравнения, дешифратор, шифратор и т.д.
Алгоритм. Существует несколько определений этого понятия. Мы будет придерживаться следующего: алгоритм – определенная последовательность действий, позволяющая за конечное число шагов получить желаемый результат.
Граф-схема алгоритма (ГСА). ГСА позволяет описать последовательность выполнения шагов алгоритма в общем виде в виде графической нотации, не вдаваясь в детали реализации этого алгоритма. Т.о. граф-схема алгоритма есть форма представления микропрограммы, которую должно выполнить операционное устройство (ОУ). При построении операционного устройства, как состоящего из операционного (ОА) и управляющего (УА) автоматов, необходимо уметь выделить функции ОА и УА из ГСА. Обычно микропрограмма представляется в виде содержательной ГСА. В этом случае для задания функций ОА необходимо перечислить все выполняемые микрооперации и все проверяемые логические условия данной микропрограммы, а также описать разрядность слов, обрабатываемых операционным устройством. Для инициализации выполнения той или иной микрооперации на ОА должны поступать в нужный согласно ГСА момент времени управляющие сигналы Yi. Обычно при проектировании ОУ принимают определенный способ кодирования микроопераций (чаще всего кодом, содержащим столько разрядов, сколько всего различных микроопераций) и для разработки ОА считают, что УА выдает код микроопераций, которые должны выполниться в данный момент времени.
Для УА важна последовательность выдачи соответствующих кодов микроопераций в зависимости от логических условий, вырабатываемых ОА и
анализируемых УА в нужные моменты времени. Если принят способ кодирования микроопераций, то функции УА задаются кодированной ГСА. Поэтому для различных содержательных ГСА, имеющих одинаковую кодированную ГСА, ОА будут различны, но УА будет одним и тем же.
Кроме наглядности ГСА дает возможность использовать для анализа и преобразования микропрограмм эффективные методы теории графов. При графическом описании отдельные функции алгоритмов (микрооперации) отображаются в виде условных графических изображений –вершин. В ГСА обычно используют вершины следующих типов:
– вершина «начало» имеет один выход, входов не имеет. Обозначает начало микропрограммы.
– вершина «конец» имеет любое число входов, выходов не имеет. Обозначает конец микропрограммы.
– операторная вершина имеет любое число входов и один выход. Внутри операторной вершины записывается одна микрокоманда – совокупность микроопераций, допускающих совместное (т.е. одновременное) выполнение.
– условная вершина имеет любое число входов и 2 выхода. Внутри условной вершины записывается булево выражение, в зависимости от значения которого осуществляется выбор направления дальнейшего выполнения микропрограммы.
– особый вид условной вершины – ждущая, имеет множество входов, 2 выхода, один из которых заведен на вход. При попадании в ждущую вершину выход из нее возможен только при выполнении условия Х.
Граф микропрограммы состоит из совокупности перечисленных вершин и дуг, соединяющих выходы одних вершин с входами других. Соединение вершин и направление дуг графа определяют исходя из алгоритма операции, описываемого графом, и структуры операционного автомата.
Сама микропрограмма и ее граф должны быть корректны, т.е. отвечать следующим условиям:
1. в графе должна быть только одна начальная и одна конечная вершина;
2. в любую вершину графа должен вести по крайней мере один путь из начальной вершины;
3. из каждого выхода любой вершины графа должен существовать по крайней мере один путь в конечную вершину;
4. при всех возможных значениях логических условий и используемых слов должен существовать путь из начальной вершины в конечную.
Пример ГСА представлен на рисунках 5.11 и 5.12.
ГСА, представленная на рис. 5.11, называется содержательной, т.к. внутри вершин записаны в явном виде микрооперации и логические условия. Если же каждую микрооперацию обозначить символами Yi, a логические условия через Xi, то получится так называемая кодированная ГСА (рис. 5.12). Для правильного восприятия микропрограммы, заданной в виде кодированной ГСА, необходимо знать соответствия между Yi, Xi и содержанием соответствующих микроопераций и логических условий.
Между граф - схемой операционного устройства и графом переходов, управляющим функционированием этого операционного устройства, существует строгая взаимосвязь. На рис. 5.13.а представлена ГСА некоторого операционного устройства, микропрограмма которого выполняется при начальном условии Н=1. Условия, указанные в данной ГСА, определяют последовательность выполнения микроопераций. Посмотрим, как связать граф-схему микропрограммы с автоматом Мура или Мили.
Для автомата Мура выходной сигнал зависит только от его внутреннего состояния, т.е. в нашем случае V = F(Q). Поэтому каждая операторная вершина ГСА должна быть отмечена символом исходного состояния автомата qi. На рис. 5.13.а слева от операторов дана отметка ГСА, интерпретируемая как автомат Мура. По этим отметкам выполняется построение графа переходов автомата Мура (рис. 5.13.б), где вершинами являются состояния автомата, а дугами – условия переходов из одного состояния в другое. Таким образом, функции выходов автомата Мура , где qi – состояние автомата, обеспечивающее выработку сигнала vi.
Рис. 5.13. ГСА операционного устройства (а) и графы переходов автомата Мура (б) и Мили (в)
Переход автомата из одного состояния в другое при отсутствии логических условий (безусловный переход) происходит под действием синхросигнала. Условный переход происходит в том направлении, которое соответствует вычисленному значению условия zi.
Для построения автомата Мили следует помнить, что выходной сигнал зависит как от внутреннего состояния, так и от входного сигнала.
Разметка ГСА автомата Мили делается иначе, чем для автомата Мура. Символом q0 отмечают вход первой вершины графа, следующей за начальной, и вход конечной вершины ГСА. Выходы других операторных вершин обозначаются символом qi. На рис. 5.13.а состояния автомата Мили отмечены символами q0 ÷ q4, взятыми в скобки. Граф переходов автомата Мили показан на рис. 5.13.в. В автоматах Мили функции выходов, по которым вырабатываются сигналы микроопераций, определяются по формуле , где qi - состояние автомата, сопровождающееся выработкой сигнала vj, zk - логическое условие, определяющее выработку сигнала при переходе автомата из состояния qi.
В случае безусловного перехода автомата из состояния qi сигнал vj определяется только значением qi.
В дальнейшем будем рассматривать синтез только УА и только кодированной ГСА.
Конечный автомат, интерпретирующий микропрограмму работы дискретного устройства, называется микропрограммным автоматом. Одну и ту же ГСА можно интерпретировать как автоматом Мили, так и автоматом Мура.
Абстрактный синтез микропрограммного автомата по ГСА осуществляется в два этапа:
1. Получение отмеченной ГСА;
2. Построение графа автомата или таблиц переходов и выходов.
На этапе получения отмеченной ГСА входы вершин, следующих за операторными, отмечают символами a1, a2,.. по следующим правилам:
Ясно, что для проведения отметок потребуется конечное число символов а1,...,am. Результатом первого этапа является отмеченная ГСА, которая служит основой для второго этапа - перехода к графу или таблицам переходов-выходов. Пример ГСА, отмеченной для автомата Мили, представлен на рис. 5.14.
Рис. 5.14. ГСА, отмеченная для автомата Мили
На втором этапе, из отмеченной ГСА, строят граф автомата или таблицы переходов-выходов. Для этого полагают, что в автомате будет столько состояний сколько символов ai понадобилось при отметке ГСА.
На плоскости рисунка отмечаем все состояния автомата ai. Для каждого из состояний aiопределяем по отмеченной ГСА все пути, ведущие в другие состояния и проходящие обязательно только через одну операторную вершину. Например, из состояния а1 (рис.5.14.) есть переход в состояние a2 (путь проходит через операторную вершину y1 y2) и в состояние a4 (путь проходит через вершину y3 y4). Перехода из a1 в a3 нет, так как на этом пути нет ни одной операторной вершины. Будем считать, что автомат осуществляет переход, например, из a1 в a2 при условииx1=0 и вырабатывает на этом переходе выходные сигналы у1 у2 (то, что записано в проходимой операторной вершине ГСА, рис. 5.14). Значение условий х2, х3, х4 на этом переходе не оказывает влияния на автомат.
Исключение составляет только путь, ведущий в конечную вершину, он может не содержать ни одной операторной вершины (например, переход из а6в а1), т.е. не сопровождается выработкой выходных сигналов.
Отмечаем на графе все указанные пути для всех состояний в виде дуг, которым приписываем условия перехода и выходной сигнал, вырабатываемый на этом переходе. Получим граф автомата Мили (рис. 5.15).
На этом графе переходам типа а3®a4, a5®a1 приписывается условие перехода 1, т.к. эти переходы являются безусловными и выполняются всегда, когда автомат попадает в состояние а3или а5. На основании отмеченной ГСА или графа автомата можно построить таблицу переходов-выходов. Для микропрограммных автоматов таблица переходов-выходов строится в виде списка и различаются прямая и обратная таблицы. Для данного автомата прямая таблица представлена в табл. 5.11, обратная – в табл. 5.12.
В приведенных таблицах am - исходное состояние, as - состояние перехода, Х - условие (входной сигнал), обеспечивающий переход из состояния am в состояние as, Y - выходной сигнал, вырабатываемый автоматом при переходе из am в as.
Отличие прямой таблицы переходов-выходов от обратной состоит в том, что в прямой таблице записи сгруппированы по состояниям am, а в обратной – по состояниям as.
Для автомата Мура на этапе получения отмеченной ГСА разметка производится согласно следующим правилам:
Пример ГСА, отмеченной для автомата Мура, представлен на рис. 5.16.
Рис. 5.16. ГСА размеченная для автомата Мура
Граф автомата Мура, соответствующий отмеченной ГСА (рис. 5.16), представлен на рис. 5.17. Построение его аналогично построению графа для автомата Мили.
Таблицы переходов-выходов автомата Мура представлены в табл. 5.13 (прямая) и табл. 5.14 (обратная). Обычно для автомата Мура в таблице переходов-выходов дополнительный столбец для выходных сигналов не используется, и выходной сигнал записывается в столбце, где указывается исходное состояние am или состояния перехода as.
Получением графа или таблиц переходов-выходов заканчивается этап абстрактного синтеза микропрограммного автомата. Как и для конечных автоматов, на этапе абстрактного синтеза можно выполнить минимизацию количества внутренних состояний автомата.
Структурный синтез микропрограммных автоматов после получения графа или таблицы переходов-выходов в принципе аналогичен каноническому методу синтеза цифровых автоматов. Однако существуют и определенные особенности в первую очередь связанные с тем, что для реальных автоматов количество элементов памяти и входных сигналов может достигать десяти и более. Функции возбуждения и выходных сигналов трудно поддаются минимизации, да и практически минимизация не дает существенного упрощения этих функций при большом количестве переменных. Поэтому минимизация практически не используется при синтезе микропрограммных автоматов.
При выполнении структурного синтеза строят так называемые структурные таблицы переходов и выходов, которые также могут быть как прямыми, так и обратными.
Рассмотрим этапы структурного синтеза на конкретных примерах.
Выполним структурный синтез микропрограммного автомата Мили, заданного своей таблицей переходов-выходов (табл. 5.11 или табл. 5.12). В качестве примера синтез будем выполнять по прямой таблице (табл. 5.11).
1. В исходном автомате количество состояний М=6, следовательно, число элементов памяти m = ] log 2 M [ = ] log 2 6 [ = 3. Пусть для синтеза используются JK триггеры.
2. Кодируем внутренние состояния автомата, используя для этого карту Карно (рис. 5.18) и, по возможности, метод соседнего кодирования.
Рис. 5.18. Карта Карно для кодирования состояний автомата (а) и результат кодирования состояний (б)
3. Строим прямую структурную таблицу переходов-выходов автомата Мили (табл. 5.15). В данной таблице в столбцах K(am) и K(as) указывается код исходного состояния и состояния перехода соответственно. В столбце ФВ (функций возбуждения) указывается те значения функций возбуждения, которые на данном переходе обязательно равны 1. Остальные (т.е. равные 0 или принимающие неопределенные значения) не указываются. Это эквивалентно тому, что всем неопределенным значениям функций возбуждения приписывается значение 0, что в общем случае не дает минимальной функции, однако в реальных автоматах минимизация обычно не делается в виду ее неэффективности.
Табл. 5.15. Структурная таблица переходов-выходов автомата Мили
4. Для получения функций возбуждения поступаем следующим образом. Выражение для каждой функции получается в виде логической суммы произведений вида aiX, где ai – исходное состояние, X – условие перехода. Для упрощения полученных выражений выполняем все возможные операции склеивания и поглощения. В результате получаем следующие функции возбуждения:
5. Для получения функций выходов поступаем аналогично:
6. Для построения функциональной схемы автомата по полученным выражениям необходимо либо заменить ai его значениями через Q1Q2Q3 либо получить сигнал, соответствующий ai.Обычно используют второй способ и для получения сигнала ai применяют так называемыйдешифратор состояний, на вход которого поступают сигналы с выходов элементов памятиQ1Q2Q3. Кроме того, при построении схемы стараются выделить общие части, встречающиеся в функциях возбуждения или выходных сигналах. В этом случае окончательная система уравнений, по которым строится схема, будет иметь вид:
Функциональная схема автомата, построенная на основании полученных уравнений, представлена на рис. 5.19.
Выполним структурный синтез микропрограммного автомата Мура, заданного своей таблицей переходов-выходов (табл. 5.13 или табл. 5.14). В качестве примера синтез будем выполнять по обратной таблице (табл. 5.14).
В исходном автомате количество состояний М=7, следовательно число элементов памяти m = ] log 2 M [ = ] log 2 7 [ = 3. Пусть для синтеза используется D-триггеры.
2. Кодируем внутренние состояния автомата, используя алгоритм кодирования для D-триггеров ( чем больше переходов в это состояние, тем меньше единиц должно быть в коде этого состояния). Количество переходов в данное состояние легко определяется из обратной таблицы: a1 ~ 2, a2 ~ 3, a3 ~ 2, a4 ~ 1, a5 ~ 1, a6 ~ 1, a7 ~ 2. Поэтому коды состояний следующие:
a2 - 000, a1 - 001, a3 - 010, a7 - 100, a4 - 011, a5 - 101, a6 - 110.
3. Строим структурную таблицу переходов - выходов автомата Мура. Построение таблицы выполняется аналогично автомату Мили. Результат представлен в табл. 5.16.
Табл. 5.16. Структурная таблица переходов - выходов автомата Мура.
4. Выражения для функций возбуждения получаются в виде суммы произведений aiх, где ai – исходное состояние, х – условие перехода:
или, если принять, что
5. Выражения для выходных сигналов автомата Мура получаем, исходя из того, что эти сигналы определяются только внутренним состоянием автомата:
6. Для построения функциональной схемы автомата, как и в предыдущем случае, используем дешифратор состояний. Схема представлена на рис. 5.20.
Кроме рассмотренного ранее канонического метода, существуют и другие методы синтеза управляющих автоматов, среди которых наиболее широко используется синтез на базе регистра сдвига. Этот метод позволяет при построении схемы отказаться от дешифратора, т.к. состояния кодируются унитарным кодом. В автомате количество элементов памяти выбирается равным количеству внутренних состояний. В каждый момент времени только один триггер находится в 1, остальные в 0. Обычно при синтезе на базе регистра сдвига используются D-триггеры. Очень эффективен данный метод для так называемых линейных микропрограмм, т.е. микропрограмм без ветвлений (отсутствует логические условия). Рассмотрим пример синтеза управляющего автомата Мура данным методом. Пусть закодированная ГСА микропрограммы имеет вид рис. 5.21.
Рис.5.21 Закодированная ГСА
Разметив данную ГСА для автомата Мура, получаем семь состояний. Следовательно число триггеров m=7. Выполним синтез с использованием D-триггеров. Закодируем состояния унитарным кодом: a1=1000000, a2=0100000,..., a7=0000001. Обратная структурная таблица переходов-выходов для данного автомата представлена в таблице 5.17.
Таблица 5.17
am | Kam | as(y) | Kas | x | ФВ |
а6 | а1(-) | D1 | |||
а7 | D1 | ||||
а1 | а2(y1 y2) | D2 | |||
а2 | а3( y2) | D3 | |||
а3 | а4(y3 y4) | D4 | |||
а4 | а5( y2) | ![]() |
D5 | ||
а5 | а6(y3) | D6 | |||
а4 | а7(y4) | x | D7 |
На основании структурной таблицы записываем выражения для выходных сигналов yi и функций Di :
D1 = a6 + a7 y1 = a2
D2 = a1 y2 = a2 + a3 + a5
D3 = a2 y3 = a4 + a6
D4 = a3 y4 = a4 + a7
D5 =
D6 = a5
D7 = a4×x
Т.к. состояния автомата закодированы унитарным кодом, то можно отождествить каждое состояние с выходом соответствующего триггера, т.е. принять аi=Qi. Для принятого способа кодирования переход из одного состояния в другое как бы сопровождается сдвигом кода, записанного в семиразрядном регистре. Этим и объясняется название метода. Функциональная схема автомата Мура, построенная по полученным уравнениям, приведена на рисунке 5.22. При определенных навыках синтез автомата Мура на базе регистра сдвига выполняется непосредственно по отмеченной ГСА без построения структурной таблицы переходов-выходов.
продолжение следует...
Часть 1 Тема 5. Схемотехника цифровых узлов, Цифровые автоматы и их разновидности
Часть 2 Операционные элементы - Тема 5. Схемотехника цифровых узлов, Цифровые автоматы
Часть 3 Вау!! 😲 Ты еще не читал? Это зря! - Тема 5. Схемотехника цифровых узлов, Цифровые автоматы
Надеюсь, эта статья про схемотехника цифровых узлов, была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое схемотехника цифровых узлов, цифровой автомат и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Компьютерная схемотехника и архитектура компьютеров
Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.
Комментарии
Оставить комментарий
Компьютерная схемотехника и архитектура компьютеров
Термины: Компьютерная схемотехника и архитектура компьютеров