- •Глава 6
- •Устройства управления
- •Кодирование микрокоманд
- •Обеспечение последовательности выполнение микрокоманд
- •Адресация микрокоманд
- •Организация памяти микропрограмм
- •Запоминающие устройства микропрограмм
- •Минимизация количества слов памяти микропрограмм
- •Минимизация разрядности микрокоманды
- •Пути повышения быстродействия автоматов микропрограммного управления
- •Контрольные вопросы
Минимизация разрядности микрокоманды
Пусть записанная в ПМП микропрограмма содержит т микрокоманд У, Ym. На множестве {у1,..., уп} всех микроопераций, чьи СУ входят в эти МК, задается отношение несовместимости wc , такое что:
Таким образом, несовместимыми являются микрооперации, СУ которых не встречаются вместе ни в одной микрокоманде микропрограммы. Класс несовместимости (КН) С, с У— множество МО, все элементы которого попарно несовместимы. Максимальный класс несовместимости (МКН) — это такой класс, в который нельзя добавить ни одной микрооперации без нарушения отношения несовместимости wc.
Задача минимизации разрядности микрокоманды формулируется в [3] следующим образом: найти множество классов несовместимости C;|,..., С,- } такое, что
где С-, — количество микроопераций в классе несовместимости, а выражение int(log2(w + 1)) определяет минимальную разрядность поля ПМП, необходимую для кодирования п микроопераций и признака их отсутствия в конкретной МК. Параметр называют ценой класса С,.
Решение ищется на множестве МКН. Для заданного в табл. 6.3 примера микропрограммы получается следующий набор МКН:
C1= y1, y 7, y11, C2= y2, y 7, y11, C3= y3, y 7, y10 ,C4= y4, y 7, y10 , C5= y4, y 9 ,
C6= y5, y 7, y10, y11, C7= y5, y 8, C8= y5, y 9, y11 , C9= y6, y 7, y10, y11 , C10= y6, y 9, y11
. Таблица 6.3. Набор микрокоманд
Микрокоманда |
СУ микроопераций |
Y1 |
y1, y2, y3, y4,y5,y6 |
Y2 |
y3, y7,y8,y9 |
Y3 |
y1, y2, y8, y9,y10 |
Y4 |
y4,y8,y11 |
Y5 |
y6, y8 |
По набору МКН строится таблица покрытий, в столбце уп которой записываются все МКН, в которые входит СУ микрооперации у. В табл. 6.4 имеются СУ коопераций у1 у2, у3, у8, входящих только в один МКН. Такие микрооперации называют различающими микрооперациями, а соответствующие им МКН — существенными МКН.
Таблица 6.4. Таблица покрытий
У1 |
У2 |
У3 |
У4 |
У5 |
У6 |
У7 |
У8 |
У9 |
У10 |
У11 |
С1 |
С2 |
С3 |
С4 |
С6 |
С9 |
С1 |
С7 |
С5 |
С3 |
С1 |
|
|
|
С5 |
С7 |
С10 |
С2 |
|
С8 |
С4 |
С2 |
|
|
|
|
С8 |
|
С4 |
|
С10 |
С6 |
С3 |
|
|
|
|
|
|
С6 |
|
|
С9 |
С6 |
|
|
|
|
|
|
С9 |
|
|
|
С8 |
|
|
|
|
|
|
|
|
|
|
С9 |
|
|
|
|
|
|
|
|
|
|
С10 |
Решением задачи является множество МКН, включающее в себя все микрооперации уп, чьи СУ принадлежат Y. Поскольку допустимо несколько решений, то ищется минимальное, дающее наименьшую разрядность ПМК.
Объем вычислений можно сократить путем применения эвристических правил. Так, существенные МКН (или их подклассы) С1, С2,, С3,, С7 (см. табл. 6.4) должны входить в любое решение р. Далее, если множество МКН в столбце yi является подмножеством множества МКН в столбце ур то столбец уj; можно удалить из таблицы покрытий, так как микрооперация уj,- в любом случае покрывается меньшим числом МКН из столбца уj, (говорят, что столбец yi, доминирует над столбцом уj). Так, в табл. 6.4 столбец у1, доминирует над столбцами у7, и у11, столбец у3 - над столбцом у10 столбец г/8 — над столбцом у5; следовательно, столбцы у5, у7, у№ уи можно удалить из таблицы покрытий.
Таблица 6.5. Сокращенная таблица покрытий
У4 |
У6 |
У9 |
С4 |
С9 |
с5 |
С5 |
С10 |
С8 |
|
|
С10 |
После применения этих правил получается сокращенная таблица покрытии (табл. 6.5), по которой покрытия могут быть найдены, например, методом Петрика: А' = (С4 v С5)(С9 v С10)(С5 v C8 v С10) и после приведения подобных членов и выполнения поглощений типа AvАВ имеем: А' = С4С10 v C5C9 v C5C10 v C4C8 v С9. Выражению А' соответствуют покрытия {C4, Ci0}, {C4, C8,, C9}, {C5, C9} и {C5, C10}.
Добавив к этим покрытиям существенные МКН, получим начальное множество решений:
Решение (3; может быть избыточным, то есть некоторые микрооперации могут покрываться несколькими МКН . Для нахождения требуемого минимального решения необходимо для каждого избыточного решения :
- определить множество неизбыточных решений и их цену;
- выбрать в качестве окончательного решения неизбыточное решение с минимальной ценой.
Для нахождения неизбыточных решений годится такая же процедура. Для каждого избыточного решения строится таблица покрытий наподобие табл. 6.4, однако в ее столбцах записываются только МКН, соответствующее решению . Затем, используя описанные выше эвристические методы, получают сокращенную таблицу покрытий, из которой простым перебором или методом Петрика находятся все неизбыточные решения.