Заметим, что функция любого управляющего автомата — генерирование последовательности управляющих слов (микрокоманд), определенной реализуемым алгоритмом с учетом значений осведомительных сигналов.
Если заранее разместить в запоминающем устройстве все необходимые для реализации заданного алгоритма (группы алгоритмов) микрокоманды, а потом выбирать их из памяти в порядке, предусмотренном алгоритмом (с учетом значения осведомительных сигналов), то получим управляющий автомат, структура которого слабо зависит от реализуемых алгоритмов, а поведение в основном определяется содержимым запоминающего устройства.
При изменениях реализуемого алгоритма в достаточно широких пределах структура такого автомата не меняется, достаточно лишь изменить содержимое ячеек запоминающего устройства. Управляющий микропрограммный автомат, построенный по таким принципам, называется управляющим автоматом с программируемо логикой.
Структурная схема такого автомата в самом общем виде приведена на рис. 4.8. Автомат включает в себя запоминающее устройство микрокоманд (обычно реализуемое как ПЗУ), регистр микрокоманд и устройство формирования адреса микрокоманды.
В каждом такте дискретного времени из памяти микрокоманд считывается одна микрокоманда, которая помещается в регистр микрокоманд. Микрокоманда содержит два поля (две группы полей), одно из которых определяет набор микроопераций которые в данном такте поступают в операционный автомат, а другое содержит информацию для определения адреса следующей микрокоманды.
При проектировании управляющего автомата с программируемой логикой (УАПЛ) необходимо выбрать формат (форматы) микрокоманд (микрокоманды), способы кодирования микроопераций и адресации микрокоманд.
11.Виды микропрограмирования
Способы формирования управляющих функциональных сигналов или микрокоманд:
1. Горизонтальное микропрограммирование.
2. Вертикальное микропрограммирование.
3. Смешанное микропрограммирование.
При горизонтальном микропрограммировании каждому разряду микрокоманды ставится в соответствие микрооперация. Недостаток – большой объем управляющей памяти: одновременно выдается до 10% микроопераций от общего их числа.
При вертикальном микропрограммировании микрооперация разбивается на группы, совместные и несовместные во времени. Под каждую группу несовместных во времени микроопераций выделяется поле в микрокоманде, где кодируется одна из микроопераций по номеру. В этом случае используется дешифратор микрооперации в этой группе и экономится микропрограммная память.
При смешанном микропрограммировании, которое наиболее распространено, используется как горизонтальный, так и вертикальный способ формирования микрокоманды. Совместные операции во времени кодируются горизонтально, а не совместные — вертикально. Частным случаем смешанного микропрограммирования является горизонтальное размещение групп вертикально кодируемых микроопераций. В этом случае можно эффективно использовать память микропрограмм и тогда условная операция не будет содержать постоянной адресной части..