Главная страница
Навигация по странице:

  • Рис. 3. 1. Операционный и уп­равляющий блоки цифрового устройства

  • 3.4. ТИПЫ УПРАВЛЯЮЩИХ АВТОМАТОВ

  • Рис. 3. 10. Структурная схема простейшего варианта управ­ляющего автомата с хранимой в памяти логикой

  • Рис. 3.12 . Структура микро­команды при вертикально-гори­зонтальном микропрограмми­ровании

  • Рис. 3.13 . Структура управляю­щего автомата при горизонталь­но-вертикальном микропро­граммировании

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

  • Цифровые автоматы. 9-ЦИФРОВЫЕ АВТОМАТЫ. Цифровые автоматы общая структура цифровых автоматов


    Скачать 125.5 Kb.
    НазваниеЦифровые автоматы общая структура цифровых автоматов
    АнкорЦифровые автоматы
    Дата14.03.2023
    Размер125.5 Kb.
    Формат файлаdoc
    Имя файла9-ЦИФРОВЫЕ АВТОМАТЫ.doc
    ТипДокументы
    #989557

    ЦИФРОВЫЕ АВТОМАТЫ

    3.1. ОБЩАЯ СТРУКТУРА ЦИФРОВЫХ АВТОМАТОВ.

    В любом устройстве обработки цифровой информации можно выделить опера­ционный и управляющий блоки.

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

    U= {u1, u2, ...,un},

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

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

    V={v1,v2,...,vm}.



    Рис. 3.1. Операционный и уп­равляющий
    блоки цифрового устройства


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

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

    Управляющий блок (или управляющий автомат) вырабаты­вает распределенную во времени последовательность упра­вляющих сигналов

    vt1, vt2, …, vtk (vtj  V)

    порождающих в операционном блоке нужную последователь­ность микроопераций.

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

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

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

    Функционирование вычислительного устройства может быть описано совокупностью реализуемых в нем микропро­грамм

    3.4. ТИПЫ УПРАВЛЯЮЩИХ АВТОМАТОВ

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

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

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

    Такты

    1 ПрРгВ

    2 ПрРг1

    3 ПрРгАП или ПрРгАИ

    4 ПрРгСм или ПрРгСм, + 1 См

    5 ПрШИВых

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

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

    Формально управляющий блок можно рассматривать как конечный автомат, определяемый:

    а) множеством двоичных выходных сигналов

    V={v1, v2,...,vm},

    соответствующих множеству микроопераций операционного блока. При Vi = 1 возбуждается i-я микрооперация

    б) множествами входных сигналов Z и U:

    Z={z1, z2,…,zp};

    и= {u1, u2,. ..,un},

    соответствующих задаваемому блоку извне двоичному коду операции (Z) и двоичным оповещающим сигналам (U);

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

    По множествам входных и выходных сигналов и микропро­граммам определяется множество внутренних состояний блока

    S ={Q0, Q1,…,Qr}

    мощность которого (объем памяти управляющего блока) в процессе проектирования стараются минимизировать.

    Сказанное поясняет, почему управляющие блоки называют управляющими автоматами. Поскольку эти автоматы задают­ся микропрограммами, они часто именуются микропро­граммными автоматами.

    Управляющий автомат может быть задан как автомп; Мура:

    Q(t+1)=A[Q(t), z1(t),...,zp(t), u1(t),...,un(t)];

    v1(t) = B1[Q (t)];

    …………………….

    vm(t) = Bm[Q(t)]; (7.1)

    или как автомат Мили:

    Q(t+1)=A[Q(t), z1(t),...,zp(t), u1(t),...,un(t)];

    v1(t) = B1[Q (t), z1(t),...,zp(t), u1(t),...,un(t)];

    …………………….

    vm(t) = Bm[Q(t) , z1(t),...,zp(t), u1(t),...,un(t)]; (7.1a)

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

    Существуют два основных типа управляющих автоматов:

    1. Управляющий автомат с жесткой, или схемной, логикой. Для каждой операции, задаваемой, например, кодом операции команды, строится набор комбинационных схем, которые в нужных тактах возбуждают соответствующие управляющие сигналы. Другими словами, строится конечный автомат, в ко­тором необходимое множество состояний представляется со­стояниями k запоминающих элементов:

    q = {q1, q2, …, qk}

    где k = ]log2 (r+ 1) [ при S = {Qo, Q1, ..., Qr,}, а функции пере­ходов и выходов А и Вi реализуются с помощью комбина­ционных схем.

    2. Управляющий автомат с хранимой в памяти логикой (с «запоминаемой или программируемой логикой»). Каждой вы­полняемой в операционном устройстве операции ставится в со­ответствие совокупность хранимых в памяти слов — микроко­манд, содержащих каждая информацию о микрооперациях, подлежащих выполнению в течение одного машинного такта, и указание (в общем случае зависящее от значений входных сигналов), какое должно быть выбрано из памяти следующее слово (следующая микрокоманда). Таким образом, в этом слу­чае функции переходов и выходов А и В, управляющего авто­мата реализуются хранимой в памяти совокупностью микро­команд.

    Последовательность микрокоманд, выполняющих одну ма­шинную команду или отдельную процедуру, образует микро­программу. Обычно микропрограммы хранятся в специальной памяти микропрограмм («управляющей памяти»).

    В управляющих автоматах с хранимой в памяти програм­мой микропрограммы используются в явной форме, они про­граммируются в кодах микрокоманд и в таком виде заносятся в память. Поэтому такой метод управления цифровым устрой­ством называется микропрограммированием, а использующие этот метод управляющие блоки—микропрограммными управляющими устройствами.
    3.5. УПРАВЛЯЮЩИЕ АВТОМАТЫ С ХРАНИМОЙ В ПАМЯТИ ЛОГИКОЙ

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

    Хранимая в памяти микропрограмма должна содержать ин­формацию о функциях переходов и выходов управляющего микропрограммного автомата.

    Интерпретируя рассматриваемый ниже УА в терминах конечных автоматов, обнаружим, что он функционирует подоб­но автомату Мили с задержанными на такт выходными сигна­лами. Аргументами функций переходов и выходов автомата яв­ляются входные переменные Z(t) и U{t) и переменные q(t), за­дающие своими значениями состояние автомата Q (t). Набор зна­чений аргументов удобно отождествить с адресом микрокоман­ды. Этот адрес заносится в регистр адреса микрокоманды во время такта. В управляющей памяти (УП) по данному адресу хранится код, задающий набор значений выходных сигналов управляющего автомата V(t +1),- операционная часть микро­команды — и набор значений переменных q{t + 1), представляющий состояние Q(t + 1). Зна­чения V(t + 1) и Q (t + 1) опре­деляются функциями перехо­дов и выходов.


    Рис. 3.10. Структурная схема простейшего варианта управ­ляющего автомата с хранимой в памяти логикой

    Структурная схема про­стейшего варианта управ­ляющего автомата с храни­мой в памяти программой приведена на Рис. 3.10. Авто­мат работает следующим об­разом. Серия синхросигна­лов СС определяет такты работы автомата, при этом значение СС = 1 выделяет такт, а значение СС = 0 — паузу между тактами. Напомним, что значения входных и выходных сигналов и состояние автомата должны быть неизменными во время такта и могут меняться только в паузах.

    Состояние автомата Q{t) представляется набором значений переменных q{t), в дальнейшем называемым для краткости ко­дом Q{t).

    Пусть в такте (t—1) в РгАМк занесены U{t—1), Z(t—l) и код Q(t—1). Тогда в паузе перед тактом t при СС=0 на РгАМк эти значения сохраняются и из УП можно выбрать коды V{t), которые у рассматриваемого нами автомата, как и Q(t), зависят от Q{t—1), Z(t—1) и U(t—1). Эти коды при СС = 0 заносятся в РгМк (одновременно происходит изменение значений входных сигналов). После возникновения СС = 1, за­дающего такт t, в РгМк хранятся сформированные коды V{t) и Q(t), при этом сигналы V{t) используются для инициирования микроопераций, а код Q(t) переносится в РгАМк, после чего цикл работы автомата повторяется.

    Воздействие управляющих сигналов V(t) на операционный блок синхронизируется сигналом СС = 1, обеспечивающим вы­дачу V{t) строго в такте t из РгМк, находящегося в режиме хранения.

    Управляющая память может быть двух типов: постоянная и с произвольным обращением, т. е. допускающая как считыва­ние, так и запись. В последнем случае загрузка УП производит­ся пользователем со специального внешнего ЗУ по шине загрузки управляющей памяти ШЗгУП при каждом включении машины в работу.

    Анализируя рассматриваемую структурную схему, можно заметить, что число слов, хранимых в УП, очень велико из-за большой разрядности РгАМк, обусловленной значительным числом используемых оповещающих сигналов U(t). Сократить объем УП можно, если учесть, что для каждого Q(t) суще­ственными являются значения не всех, а лишь некоторых пере­менных из Z(t) и U(t), задающих различные переходы из состояния Q(t) в состояние Q(t+l).

    Число таких переходов в микропрограммных автоматах обычно невелико, и поэтому для каждого Q(t) можно выделить группу адресов УП, хранящих коды только различных состоя­ний перехода Q(t + 1). Объем УП при этом во много раз сокра­тится, так как в УП не будут храниться многократно повто­ряющиеся коды, описывающие одинаковые переходы автомата.

    Адрес микрокоманды при таком подходе формируется специальной комбинационной схемой формирования адреса микрокоманд СхФАМк по значениям Q(t), U(t) и Z(t). Схема СхФАМк подключается ко входам РгАМк, как показано штри­ховыми линиями на Рис. 3.10.

    Адрес очередной микрокоманды можно назначить без учета значений Z(t) и U(t), если эта микрокоманда задает функцию перехода автомата в состоянии, имеющем единственный пере­ход, не зависящий от значения входных сигналов. В этом слу­чае адрес очередной микрокоманды можно указать значением отдельной группы разрядов исполняемой микрокоманды. Если очередная микрокоманда должна задавать функцию перехода автомата в состоянии, имеющем различные переходы, завися­щие от значений входных сигналов, то ее адрес должен зави­сеть от входных сигналов,

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

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

    Рассмотренный способ формирования адреса следующей микрокоманды носит название принудительного формирования адреса.

    Формирование адреса следующей микрокоманды иногда осуществляют способом естественной адресации с помощью счетчика. Безусловный переход от микрокоманды с адресом i осуществляется к микрокоманде с адресом i + 1, что позволяет иметь в микрокоманде только операционную часть. Одна­ко при этом в микропрограмму вводят помимо операционных адресные микрокоманды, различаемые по специальному при­знаку. В адресных микрокомандах отсутствует операционная часть и все разряды используются в качестве полей ТФА и ПФА, таких же, как и в адресной части рассматривавшихся выше микрокоманд. Такой способ формирования адреса ми­крокоманды вызывает усложнение схем дешифрирования микро­команд и увеличение длины микропрограмм, но сокращает длину микрокоманд.

    Примером использования естественной адресации микроко­манд может служить управляющий блок микропроцессора Am2900.

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

    Горизонтальное микропрограммирование. Каждому разряду операционной части микрокоманды ставится в соответствие определенный управляющий функциональный сигнал, т. е. определенная микрооперация. Если в разряде стоит 1, то со­ответствующая микрооперация выполняется независимо от значения других разрядов. При таком способе операционная часть микрокоманды содержит т разрядов, где т общее чис­ло микроопераций. Достоинствами горизонтального микропро­граммирования являются возможность одновременного выпол­нения в одном такте любого набора из т микроопераций и простота формирования функциональных сигналов, так как последние могут возбуждаться непосредственно от сигналов из регистра микрокоманды.

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

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

    Число разрядов операционной части микрокоманды

    n о.ч =] log2 (т+ 1) [.

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

    В настоящее время наибольшее распространение имеет сме­шанное микропрограммирование, в котором сочетаются гори­зонтальное и вертикальное микропрограммирования.

    При смешанном микропрограммировании множество ми­кроопераций V разбивается на А: подмножеств (или полей):

    V l

    Микрооперации внутри каждого из подмножеств кодируют­ся либо горизонтальным, либо вертикальным способом. Мож­но выделить два способа.

    Вертикально-горизонтальное микропрограммирование. Все множество микроопераций V расчленяют на k подмножеств Vl, в каждом из которых объединяют микрооперации, наиболее часто встречающиеся вместе в одном такте. Подмножества ста­раются по возможности сделать равномощными. Операцион­ная часть микрокоманды (Рис. 3.12) состоит из двух полей. В первом поле, длина которого равна mах|Vl|, применен гори­зонтальный способ кодирования микроопераций, т. е. каждый разряд соответствует определенной микрооперации из подмно­жества Vl, а другое поле, имеющее длину ]1оg2k[, указывает, к какому из А: подмножеств принадлежат микрооперации в пер­вом поле микрокоманды.



    Рис. 3.12. Структура микро­команды при вертикально-гори­зонтальном микропрограмми­ровании

    Более гибким и часто используемым является горизонталь­но-вертикальный способ кодирования.

    Горизонтально-вертикальное микропрограммирование (Рис. 3.13). Подмножества Vl кодируются горизонтальным, а мик­рооперации внутри каждого из подмножеств — вертикальным способом. В этом случае каждому подмножеству Vl выделяется



    Рис. 3.13. Структура управляю­щего автомата при горизонталь­но-вертикальном микропро­граммировании

    отдельное поле в операционной части микрокоманды. Длина операционной части микрокоманды

    n o.ч = ]log2 (m+1)[,

    где ml число микроопераций, представляемых в поле l.

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

    Vi  Vj =  при i  j

    т. е. чтобы каждая микрооперация встречалась только в одном поле.

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

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

    Различают одно- и многофазные микрокоманды. В первом случае все микрооперации, указанные в микрокоманде, выпол­няются одновременно в течение одного такта. Во втором — такт разбивается на части, называемые фазами или микротактами,

    и указанные в команде микрооперации выполняются в раз­личные микротакты (фазы такта). В этом случае приходится учитывать временные зависимости между отдельными микро­операциями. Однако становится возможным включать в ми­крокоманду взаимно исключающие микрооперации, разводя их по разным тактам. Многофазные микрокоманды часто приме­няются . в ЭВМ с горизонтальным или горизонтально-верти­кальным микропрограммированием (например, в ЕС ЭВМ).

    Для повышения скорости работы управляющего автомата (УА) с хранимой в памяти логикой используются различные ме­тоды. Чаще всего осуществляется совмещение отдельных дей­ствий, задаваемых микрокомандой, что особенно существенно при использовании многофазных микрокоманд. Например, в ЭВМ ЕС-1030 двухфазные микрокоманды выполняются с совмещениями вида, указанного на Рис. 3.5. В цикле i работы осуществляется выполнение микроопераций 1-й микрокоманды ВЫП Моi а одновременно с этим происходит формирование адреса очередной микрокоманды ФAi+1 и ее выборка ВЫБi+1. При таком совмещении адрес (i + 1)-й микрокоманды форми­руется i-й микрокомандой с учетом значений оповещающих сигналов, представляющих собой результаты (i — 1)-й микроко­манды. Учет результатов i-й микрокоманды может осуще­ствляться только (i + 1)-й микрокомандой при формировании адреса (i + 2)-й микрокоманды.

    Хотя идея микропрограммирования известна с 1951 г., однако еще до недавнего времени этот принцип управления не находил широкого применения в ЭВМ из-за отсутствия доста­точно надежных и дешевых быстродействующих УП для хра­нения микропрограмм и сложности разработки текстов микро­программ. Однако в последние годы интерес к микропро­граммному принципу управления (к УА с хранимой в памяти логикой) возродился. Были созданы постоянные запоминаю­щие устройства для УП с циклом обращения 0,25-0,5 мкс. По­явились интегральные ПЗУ и ЗУ с произвольным обращением, обладающие еще большим быстродействием. Выяснилось, что эффективность методов построения УА зависит от числа и сложности команд ЭВМ и при увеличении и усложнении ко­манд и функций процессора эффективность микропрограммно­го управления растет.


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

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

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

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

    Микропрограммное управление с использованием загружае­мой УП позволяет расширять или даже менять состав команд ЭВМ.

    Наиболее выгодно использование УА с хранимой в памяти логикой для операционных блоков процессоров, в которых ре­ализуются алгоритмы с относительно небольшим числом усло­вий ветвления. Реализация в этих автоматах алгоритмов с большим числом условий ветвления ведет к значительному усложнению СхФАМк и, следовательно, к увеличению времени формирования адреса микрокоманды и в конечном счете к уменьшению быстродействия УА с хранимой в памяти логи­кой. В этом случае используются УА с «жесткой» логикой, обладающие большим быстродействием. В некоторых случаях в ЭВМ используются одновременно УА с хранимой в памяти логикой и УА с «жесткой» логикой.






    написать администратору сайта