Кодировка микроопераций и логических условий
Здесь может осуществляться произвольно, например так, как показано в табл. 4.4. Выбрав кодировку, можно начинать писать микропрограмму в машинных микрокодах. Фактически мы формируем содержимое ПЗУ микропрограмм (табл. 4.5). Анализируя ГСА микропрограммы (см. рис. 4.14), увидим, что в первом такте работы автомата должны быть выданы микрооперации у2 и у6. Учитывая, что в начальном состоянии автомата Рг Сч A МК удобно установить в 0, микрокоманда, расположенная по нулевому адресу, должна сформировать микрооперации у2 и у6. Из табл. 4.4 следует, что и имеет код 010, а (код 011). Микрооперации, включенные в множество Y3, в этой микрокоманде отсутствуют. Тогда поле микроопераций микрокоманды должно содержать следующий код: 010 011 00. После первой операторной вершины ГСА следует условная вершина, содержащая логическую переменную х1. Следовательно, в микрокоманде должна анализироваться переменная х1. При х1= 0 следующей должна выполняться микрокоманда (y1, у4, у7) по адресу 1, иначе — микрокоманда (y1, у5, у8) по неизвестному пока адресу. Заполним строку таблицы для нулевой ячейки памяти следующим кодом: 010 011 00 01????, К этой строке нам еще придется вернуться для заполнения поля адреса перехода. По адресу 1 должна располагаться микрокоманда, формирующая микрооперации (у1, у4, у7) ибезусловно передающая управление следующей микрокоманде (у3, у5). Заполняем строку таблицы для первой ячейки памяти: 001 001 01 00 хххх. В поле x этой микрокоманды код 00 указывает на тождественно ложное условие (константу 0) — к Рг Сч A МК будет добавлена 1, а содержимое поля адреса перехода не используется. Таблица 4.4. Таблицы кодирования микроопераций и логических условий Действуя аналогичным образом, заполняем строки табл. 4.5, соответствующие адресам ПЗУ 3, 4, 5, 6 (на рис. 4.14 рядом с операторными вершинами обозначены адреса соответствующих микрокоманд). В микрокоманде по адресу 4 выполняется условный переход по переменной х2, причем адрес перехода при х2= 1 пока также неизвестен. По адресу 6 размещается микрокоманда, соответствующая конечной вершине ГСА, завершающая работу микропрограммы микрооперацией ук. Таким образом, завершено микропрограммирование участка ГСА от начальной до конечной вершины, соответствующего нулевым значениям логических переменных. Теперь можно вернуться к логической вершине, размещенной после первой операторной. Микрокоманду, следующую за ее единичным выходом (у1, у5, y8), можно разместить по следующему свободному (7) адресу. Поэтому в поле адреса перехода ячейки 0 теперь можно поместить код 0111. Сама микрокоманда по адресу 7 формирует три микрооперации и переходит к микрокоманде по адресу 8: 001 010 10 00хххх. Микрокоманда по адресу 8 не связана с логической вершиной, но она должна передавать управление уже существующей (по адресу 3) микрокоманде. Поэтому ее поле х= 11адресует тождественно истинное условие, а в поле переадресации указан адрес 3. Таблица 4.5. Содержимое ПЗУ микропрограмм
Наконец, остался неопределенным адрес перехода в микрокоманде по адресу 4. Сейчас уже всем операторным вершинам ГСА (включая конечную) соответствуют микрокоманды в ячейках ПЗУ. На какую из них следует передать управление после проверки условия x2, если оно окажется истинным? Из ГСА видно, что тогда следует проверить условие x1 — случай двух подряд расположенных условных вершин. Передать управление на адрес 0, где проверяется это условие? Но тогда выполнятся и микрооперации у1, у 4, у7, а это микропрограммой не предусмотрено. Очевидно, в микропрограмму следует включить дополнительно микрокоманды (в нашем случае — по адресам 9 и 10), которые не формируют никаких микроопераций, а обеспечивают только передачу управления. Первая осуществляет условный переход по переменной х1 на адрес 7, вторая (которая будет выполняться только при x1=0) — безусловно на адрес 1. Теперь код микропрограммы полностью сформирован. Осталось изобразить структурную схему разработанного управляющего автомата (рис. 4.16). Рис. 4.16. Структурная схема управляющего автомата
|