Разработка структуры операционного автомата
Анализ алгоритма деления (см. рис. 4.3) позволяет разработать структуру операционного автомата. Учитывая действия, которые требуется выполнить для реализации алгоритма, включим в состав операционного автомата следующие элементы: □ два шестнадцатиразрядных регистра Рг A и Рг B для хранения входных операндов и промежуточных результатов, причем регистр Р г A должен обеспечить возможность сдвига своего содержимого влево; □ шестнадцатиразрядный регистр Рг C для размещения результата арифметической операции сложения или вычитания (в нашем случае в этом регистре формируется остаток): в конце операции в нем будет размещен результат — частное; □шестнадцатиразрядный регистр Рг D с возможностью левого сдвига кода для размещения частного в процессе его формирования; □ шестнадцатиразрядный двоичный параллельный сумматор/вычитатель Сум/Выч; □ четырехразрядный вычитающий счетчик Сч n по модулю 16 для подсчета цифр частного; □ триггер переполнения Тг OV для хранения признака переполнения разрядной сетки; □ триггер знака Тг s для временного хранения знака частного; □ схема сравнения на "равно" знаковых разрядов исходных операндов; □дешифратор DC "0" нулевой комбинации в разрядах C[1: 15], формирующий признак нулевого результата Z. (Страница95) Связи между перечисленными выше элементами, а также управляющие ими микрооперации показаны на рис. 4.4, а в табл. 4.1 приведен полный список микроопераций и логических условий. Рис. 4.4. Операционный автомат АЛУ Таблица 4.1. Список микроопераций и логических условий
Таблица 4.1 (окончание)
Внимательно посмотрим на рис. 4.4. Очевидно, любые действия, обозначенные в операторных вершинах алгоритма, приведенного на рис. 4.3, могут быть реализованы на разработанной нами структуре (см. рис. 4.4). Теперь определим, какая последовательность микроопераций должна быть реализована в разработанной структуре, чтобы выполнилась операция деления, предусмотренная алгоритмом рис. 4.3. Простейшее решение — сохранить топологию графа алгоритма и заменить содержимое его операторных вершин на соответствующие микрооперации, а содержимое условных вершин — на соответствующие логические условия. Полученный таким образом граф принято называть микропрограммой и рассматривать в качестве исходных данных при проектировании управляющего (микропрограммного) автомата. При этом содержимое операторной вершины графа соответствует действиям, выполняемым устройством в один такт дискретного времени. При проектировании цифровых устройств обычно стремятся достичь максимальной скорости их работы. Один из путей достижения этой цели — параллельное (во времени) выполнение некоторых операций. Поэтому при преобразовании графа алгоритма в граф микропрограммы следует объединять в одной операторной вершине те микрооперации, которые могут быть в данной структуре выполнены одновременно с учетом реализуемого алгоритма. Совокупность микроопераций, выполняемых одновременно в один такт дискретного времени, называется микрокомандой. Например, анализируя ГСА рис. 4.3, можно отметить, что операторы а0:=0; b0:=0 можно выполнить в структуре, изображенной на рис. 4.4, одновременно. То же можно сказать о паре операторов D:= L 1(D); п:=п - 1и некоторых других. В то же время, операторы A:=С, А:= L 1(А) нельзя выполнять одновременно. (Для ускорения этой процедуры можно передавать информацию из C в A со сдвигом: С:=L 1 (А), но это уже будет другая структура ОА.) Рис. 4.5. Микропрограмма деления Проанализировав с этой точки зрения исходный алгоритм, получим микропрограмму, приведенную на рис. 4.5. Микропрограмма определяет, в какой последовательности и в зависимости от каких условий должны выдаваться микрокоманды, чтобы реализовалась операция деления на разработанной структуре (см. рис. 4.4) операционного автомата. Следующая задача — построить управляющий автомат, обеспечивающий выдачу микрокоманд в заданной микропрограммой последовательности.
|