Цифровые автоматы. 9-ЦИФРОВЫЕ АВТОМАТЫ. Цифровые автоматы общая структура цифровых автоматов
Скачать 125.5 Kb.
|
ЦИФРОВЫЕ АВТОМАТЫ 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. Временная диаграмма работы управляющего автомата с хранимой в памяти логикой Использование принципа микропрограммного управления позволяет строить более регулярные схемы УА, создавать эффективные системы диагностики для автоматического поиска неисправностей, упрощает документирование алгоритмов работы УА. В последнее время микропрограммирование используется как средство для аппаратурной реализации фрагментов операционных систем, трансляторов и т. п. Микропрограммирование широко используется для проблемной ориентации микропроцессорных устройств и систем при помощи специализированного набора команд, обеспечивающего наиболее эффективное решение определенных задач пользователя. Все чаще в ЭВМ применяется загружаемая управляющая память, при этом в качестве первичных носителей микропрограмм используются гибкие диски или кассеты портативных магнитофонов, с которых микропрограммы загружаются в УП. Микропрограммное управление с использованием загружаемой УП позволяет расширять или даже менять состав команд ЭВМ. Наиболее выгодно использование УА с хранимой в памяти логикой для операционных блоков процессоров, в которых реализуются алгоритмы с относительно небольшим числом условий ветвления. Реализация в этих автоматах алгоритмов с большим числом условий ветвления ведет к значительному усложнению СхФАМк и, следовательно, к увеличению времени формирования адреса микрокоманды и в конечном счете к уменьшению быстродействия УА с хранимой в памяти логикой. В этом случае используются УА с «жесткой» логикой, обладающие большим быстродействием. В некоторых случаях в ЭВМ используются одновременно УА с хранимой в памяти логикой и УА с «жесткой» логикой. |