Рассмотрим более подробно, как можно уменьшить аппаратурные затраты. Для уменьшения комбинационной схемы можно выделять эквивалентные операции и объединять их в обобщенный оператор. В качестве примера рассмотрим две микрооперации
y1: s4:= s1+s2; y2: s5:= s1+ùs3 +1,
где y1 и y2 – управляющие сигналы, реализующие одну и ту же функцию сложения над различными словами. В канонической структуре для реализации этих микроопераций необходимы две комбинационные схемы – два сумматора (рис. 6. 17а). Чтобы уменьшить затраты оборудования в операционном автомате, можно использовать только один сумматор(рис. 6.17б). В этом случае сумматор подключается к регистрам s2 s3 управляемыми шинами, с помощью которых вход А 1 сумматора соединяется с регистром s2или s3. Когда выполняется микрооперация y1, на вход А 1 поступает значение s2, а при выполнении микрооперации y2 – значение ùs3. Аналогичным образом константа 1 поступает на вход А 2 сумматора только при выполнении микрооперации y2. Таким образом, одна комбинационная схема может использоваться для выполнения нескольких микроопераций, эквивалентных в смысле реализованных функций. За счет этого могут быть уменьшены затраты оборудования в операционном автомате. Использование одной комбинационной схемы для выполнения нескольких микроопераций исключает совместимость этих микроопераций. Так, функционально совместимые микрооперации в структуре (рис. 6.17а) могут выполняться в одном такте и становятся несовместимыми в структуре (рис. 6.17б), т.е. могут выполняться только в различных тактах. Если в функциональной микропрограмме микрооперации y1 и y2 использовались совместно в одной операторной вершине, то при использовании структуры (рис. 6.17б) время операции увеличивается из-за структурных ограничений на совместимость этой пары микроопераций. Таким образом, экономия оборудования может повлечь увеличение времени выполнения операций.
|
|
Рисунок 6.17 – Реализация эквивалентных микроопераций
Микрооперации b Sa1:=jm(Sa2,…,Sab) и SbI:=jm(Sb2,…,Sbq) считаются эквивалентными, когда операторы содержат одну и ту же функцию jm, т.е. функции в операторах имеют одинаковые имена.
Эквивалентность устанавливается следующим образом.
Двоичные выражения Ca1*Ca2*…*Cap и Cb1*Cb2*…*Cbq, где Ca,Cb - аргументы, представляемые словами, их инверсиями и константами; * - знаки двоичных операций называются эквивалентными, если одно из двоичных выражений может быть приведено к другому путём:
1) замены слова Сa словом Сb или инверсией ТСb;
2) замены слова Сa константой (в том числе и нулём) и наоборот;
3) замены одних констант другими, в том числе и нулевыми;
|
|
4) равносильными преобразованиями выражения Ca1*Ca2*…*Cap.
Эквивалентным микрооперациям у1 и у2 соответствует обобщённый оператор S:= S1 + A1 + A2, где