<-- На главную

"УНИВЕРСАЛЬНЫЙ МИКРОПРОГРАММНЫЙ АВТОМАТ"


Введение.

    Известно два подхода к реализации логики управляющих автоматов (УА) - жесткая и гибкая логика управления.
    Жесткая логика (схемная реализация логики управления) предусматривает реализацию множества состояний автомата блоком памяти (БП) на запоминающих элементах (триггерах, регистрах), а функции выходов и переходов формируются комбинационной схемой (КС). Алгоритм функционирования УА в этом случае полностью определяется схемой соединения его элементов.
    Достоинством УА с жесткой логикой управления является максимально высокое быстродействие, определяемое используемой элементной базой.
    К недостаткам следует отнести большую трудоемкость проектирования, возрастание сложности структуры УА при усложнении алгоритма и отсутствие универсальности. Последнее свойство определяет, что УА проектируется под конкретную задачу и при малейшем изменении алгоритма работы устройство должно быть спроектировано заново.
    Ввиду этого подобная реализация УА получила также название специализированных УА.
    Гибкая логика управления (програмная реализация логики управления) предусматривает для реализации отдельных функций наличие хранимых программ, составленных из команд, каждая из которых, в свою очередь, определяет одну или несколько элементарных операций, Принцип програмного управления, используемый повторно для реализации отдельных сложных операций как последовательности элементарных микроопераций, получил название принципа микропрограммного управления.
    За счет увеличения затрат времени в таких УА достигается определенная универсальность, т.к. изменение алгоритма функционирования осуществляется частичной или полной заменой программы (микрокоманды) без изменения структуры автомата. В свою очередь использование стандартной структуры значительно ускоряет и облегчает процесс проектирования УА, причем усложнение алгоритма увеличивает лишь объем программы, практически не влияя на объем оборудования УА.

УА с программируемой логикой.

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




Рисунок №3.1


   Кодирование микроопераций (МО) в микрокоманде может выполняться по одному из 3-х вариантов:
      1) горизонтальное кодирование;
      2) вертикальное (максимальное) кодирование;
      3) смешанное кодирование.
   При горизонтальном кодировании за каждой микрооперацией в составе операционной части микрокоманды (ОЧМК) закрепляется свой разряд. Единичное значение разряда характеризует выполнение микрооперации в текущей микрокоманде, а нулевое - ее отсутствие.
   Вертикальное кодирование предусматривает выделение для каждой МО отдельного многоразрядного кода, разрядность n которого определяется общим числом N различных МО реализуемых в операционном автомате, причем

n = 1 + int  log2N

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

3.1. Принудительная адресация микрокоманд.

   При этом способе адресации адрес очередной микрокоманды (МК) указывается в каждой текущей микрокоманде. Этот адрес может задаваться безусловно, или же выбираться в зависимости от условия, определяемого текущими значениями осведомительных сигналов, что позволяет реализовать разветвления в микропрограммах.
   Если ограничиться проверкой в каждой микрокоманде только одного логического устройства условия xi из множества Х, то структура адресной части МК может иметь вид приведенный на рис.3.2. Естественно, что микропрограммы, содержащие участки с одновременной проверкой нескольких логических условий должны быть соответствующим образом преобразованы.

   Поле Nx(1.k) содержит код номера логического условия xi, значение которого анализируется текущей микрокомандой. Разрядность этого поля может быть определена по формуле (3.1.).
   Адресные поля А0 и А1 определяют адрес следующей МК в зависимости от значения поверяемого осведомительного сигнала. Если в поле Nx содержится нулевой код, т.е. Nx - 1 <>0, то при xi=0 следующей выполняется МК с адресом записанным в поле А0, а при xi=1 - с адресом из поля А1. Безусловный переход определяется заданием в поле Nx нулевого кода, а адрес перехода при этом выбирается из поля А0. Длина адресных полей p зависит от количества МК в микропрограмме и может быть определена с использованием формулы (3.1.)
   На рис.3.3. показана структурная схема универсального МПА с двумя адресными полями.




Рисунок №3.3


   По коду операции КОП заносимому в регистр адреса микрокоманды РАМК из программного запоминающего устройства МПЗУ выбирается первая МК микропрограммы и заносится на время исполнения в регистр микрокоманды РМК.
   Коды микроопераций на операционной части МК дешифруются с помощью дешифратора микроопераций ДШМО и поступают на управляющие входы операционного автомата, который реализует требуемые действия.
   Адрес следующей МК формируется в зависимости от значения поля условий Nx.
   С помощью мультиплексора MS1, на адресный вход которого поступает код из поля Nx,выбирается необходимый сигнал xi, значение которого управляет переключением входов мультиплексора MS2. При нулевом значении xi на РАМК передается информация из поля А0 адресной части МК, а при xi=1 - из поля А1. Таким образом обеспечивается выборка следующей МК с требуемым адресом.
   Другой вариант МПА с принудительной адресацией предполагает использование в адресной части кроме поля Nx только одного адресного поля А. При этом алгоритм формирования адреса очередной микрокоманды несколько изменяется.
   При ненулевом Nx - i <> 0 следующей выполняется микрокоманда с исполнительным адресом, определяемым суммарным значением анализируемого входного сигнала и содержимого адресного поля А.

А исп. = А + xi

   т.е. ветвление происходит по соседним адресам. Формирование суммы производится с помощью сумматора комбинационного типа. Структура микропрограммного автомата с одним адресным полем приведена на рис.3.4.




Рисунок №3.4


3.2. Естественная адресация в МПА.

   Естественный порядок следования микрокоманд предусматривает выборку очередной МК из ячейки памяти с адресом на 1 больше адреса ячейки содержащей текущую МК. При таком способе адресации роль формирователя адреса следующей микрокоманды и РАМК может выполнять обычный счетчик адреса; а необходимость в адресной части МК фактически отпадает. МК в этом случае содержит только операционную часть и называется операционной микрокомандой (ОМО). Однако в этом случае возможна реализация алгоритмов (микропрограмм) имеющих линейную структуру, т.е. без разветвлений.
   Для обеспечения возможности реализации микропрограмм с разветвлениями на МПА с естественной адресацией вводится дополнительный формат МК - управляющие (УМК), содержащие только адресную часть УМК содержит поле кода номера проверяемого логического условия Nx и поле адреса А очередной МК, к которой осуществляется переход при выполнении этого условия. В случае невыполнения условия адрес следующей МК равен текущему, увеличенному на единицу.
   Безусловные переходы реализуются с помощью УМК содержащих нулевой код номера логического условия.
   Для различения УМК и ОМК в обоих форматах применяется одноразрядное поле признака.
   Структура МПА с естественным порядком следования МК приведена на рис.3.5.




Рисунок №3.5


3.3. Методика проектирования универсальных МПА.

   Отличительная особенность универсальных МПА - предопределенность их структуры. Состав функциональных узлов, их связь друг с другом заранее известны и определяются принятым форматом микрокоманды и способом адресации МК. Благодаря этому существенно упрощается процесс проектирования. Поскольку структура универсального МПА слабо зависит от конкретной микропрограммы, возможно четкое разделение труда между схемотехниками и программистами, что повышает качество разработки.
   Исходными данными для проектирования любого, в том числе и универсального МПА являются:
      · предварительный состав функциональных узлов операционного автомата с перечнем выполняемых на них микроопераций;
      · микропрограмма или набор исходных микропрограмм управления работой операционного автомата (объекта);
      · система логических и запоминающих элементов;
      · критерии оценки качества разработки.
   При проектировании универсального МПА решаются задачи:
      · оптимизация микропрограммы с учетом конкретных особенностей реализации МПА;
      · выбор способа кодирования МК;
      · определение структуры и формата МК;
      · размещение программы в МПЗУ - микропрограммирование;
      · построение логической схемы МПА.

3.3.1. Оптимизация микропрограммы.

   Микропрограмма, реализующая заданный алгоритм функционирования, может быть получена с помощью приемов, описанных в разделах 2.2 - 2.4. На этапе формализации определяется набор микроопераций (yi) и перечень логических условий (xi), а этап минимизации позволяет уменьшить объем микропрограммы.
   Дальнейшая оптимизация определяется критерием и может быть направлена либо на сокращение времени выполнения МП, либо на уменьшение емкости ПЗУ для ее хранения. При этом учитывается возможность укрупнения МК путем объединения нескольких МК в одну, совмещения микроопераций в одной микрокоманде и т.п.

3.3.2. Выбор способа кодирования МК и определение формата микрокоманды.

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

3.3.3. Кодирование операционной части МК.

   В процессе кодирования ОЧМК обычно стараются уменьшить ее длину и в то же время сохранить возможность совмещения нескольких микроопераций в одной микрокоманде.
   В случае небольшого количества МО в автомате используют горизонтальное кодирование. Вертикальное кодирование применяется, когда в каждой микрокоманде выполняется только одна микрооперация. В остальных случаях обычно используется смешанное кодирование. Для решения задачи смешанного кодирования необходимо разбиение всего множества МО на несколько подмножеств (по числу одновременно реализуемых МО в микрокоманде), каждое из которых должно содержать только несовместные операции, т.е. такие, которые одновременно не выполняются ни в одной МК. Наиболее просто такая задача решается методом прямого включения [9]. Последовательность решения следующая:
      1. Для исходного множества микроопераций Y = { y1…ym} совместимость МО в различных микрокомандах представляется по форме матрицы совместимости S=|| sij ||. Каждый элемент sij характеризует совместимость двух МО yi и yj т.е. Sij - 0, если yi ни в одной МК не выполняется одновременно, т.е. несовместна с ней (yj). 1, если yi и yj совместны Матрица S является квадратной и симметричной, диагональные элементы sij полагаются равными 1.
      2. Составляется матрица включения R=|| rHJ || строки которой RK сопоставляются с операционными полями (подмножествами YK несовместных МО), а столбцы с микрооперациями. Элемент rHJ равен единице, если микрооперация yi входит в подмножество YK = RK. Заполнение матрицы выполняется за М шагов. На каждом шаге для очередной МО yi делается попытка включить ее в одно из подмножеств RK начиная с первого. МО yi может быть включена в подмножество RK ( YK ), если строка Si матрицы S не пересекается со строкой RK матрицы R.

Si    Rk = 0

т.е. ни один единичный элемент строки Si не совпадает ни с одним одноименным единичным элементом строки RK.
   Если условие (3.2) выполняется, переходят к очередной МО yi+1, если нет - делается попытка включения yi в очередное подмножество RK+1. Процесс этот всегда результативен т.к. всегда пустая строка найдется в матрице R, обеспечивающая выполнение условия (3.2.).
   После распределения всех М микроопераций единицы в каждой строке RK матрицы R показывают, какие МО из множества Y размещены в каждом подмножестве (поле). Длина nK операционного поля, связанного с подмножеством YK содержащим NK микроопераций, определяются по формуле (3.1.), пречем, фактическое увеличение МО на единицу обусловлено необходимостью выделения дополнительного кода (обычно нулевого) в качестве признака пустоты поля (пустая микрооперация y).

3.3.4. Кодирование адресной части МК.

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

3.3.5. Микропрограммирование.

   На данном этапе составляется микропрограмма функционирования автомата в виде упорядоченного списка кодов микрокоманд с учетом принятого способа адресации элементов списка.
   Переход от ГСА к списочной форме микропрограммы выполняется в несколько приемов:
      выделение в ГСА фрагментов, соответствующих содержимому одной линейке МПЗУ (микрокоманде);
      микропрограммирование в условных адресах;
   замена условных адресов действительными. Особенности микропрограммирования проявляются только на первом шаге данной процедуры. Остальные задачи аналогичны решаемым при обычном программировании и не вызывают трудностей.
   При использовании МПА с естественным порядком следования МК каждая вершина отвечает содержимому одной ячейки ПЗУ: операторная вершина соответствует операционной МК, а условная - управляющей микрокоманде.
   Для МПА с принудительной адресацией в ГСА выделяются фрагменты, каждый из которых включает одну операторную и одну условную вершину. Такой фрагмент соответствует содержимому одной ячейки МПЗУ, т.е. одной микрокоманде. На рис.3.6. показаны правила преобразования фрагментов ГСА к виду удобному для программирования. Символ y0 обозначает пустую микрокоманду, а символ 1 в условной вершине - безусловный переход.
   На заключительном шаге микропрограммирования для формирования операционной и адресной частей микрокоманд используются полученные на предыдущих этапах коды микроопераций и коды логических условий, а также действительные адреса ячеек памяти МПЗУ.

3.3.6. Построение логической схемы МПА.

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




Рисунок №3.6


 

Hosted by uCoz