СУММАТОРЫ - Цифровые устройства и микропроцессоры

Сумматор осуществляет арифметическое суммирование n-разрядных кодов X=(x(n-1),..,x0) и Y=(y(n-

    1),..,y0). Правила сложения двух одноразрядных двоичных чисел: 0 (+) 0 = 0 0 (+) 1 = 1 (+) 0 = 1 1 (+) 1 = 0 и перенос 1 в старший разряд.

Операция (+) называется - сумма по модулю два (переключательная функция F6). Устройство реализующее эти правила называется одноразрядным полусумматором и имеет два входа и два выхода. Сложение трех одноразрядных чисел производится следующим образом:

0 (+) 0 (+) 0 = 0 0 (+) 0 (+) 1 = 1 0 (+) 1 (+) 1 = 0 и перенос 1 в старший разряд 1 (+) 1 (+) 1 = 1 и перенос 1 в старший разряд.

Устройство реализующее эти правила называется одноразрядным полным сумматором (ОПС) и имеет три входа и два выхода. Таблица истинности ОПС приведена на рис.26, слева.

Xi, yi - одноименные двоичные разряды чисел X и Y, ci - перенос из предыдущего разряда, si -

Частичная сумма по модулю два и c(i+1) - перенос в следующий разряд. Значения c(i+1) совпадают со значениями функции мажоритарности, поэтому воспользуемся готовым решением:

C(i+1) = xi*yi + xi*ci + yi*ci.(18)

Таблица Карно для si приведена на рис.26 справа. Из таблицы находим: si = xi*~yi*~ci + ~xi*~yi*ci +

Xi*yi*ci+ ~xi*yi*~ci = ~yi(xi*~ci + ~xi*ci) + yi(xi*ci + ~xi*~ci) = ~yi(xi (+) ci) + yi(xi*ci + ~xi*~ci). Выражение

В последней скобке необходимо преобразовать, используя соотношение двойственности.

-------------------------------------

Xi*ci + ~xi*~ci = ~(xi*ci) * ~(~xi*~ci) = (~xi+~ci) * (xi+ci) =

--------------------------------- ---------------

~xi*xi + ~xi*ci + ~ci*xi + ~ci*ci = ~xi*ci + xi*~ci =

~(xi (+) ci) = ~F6 = F9.

С учетом последнего выражения

Si = ~yi(xi (+) ci) + yi~(xi (+) ci) =

Yi (+) (xi (+) ci) = yi (+) xi (+) ci.(19)

Схема одноразрядного полного сумматора соответствующая уравнениям (18) и (19) и ее условное обозначение приведены на рис.27.

Сумматор с последовательным переносом для сложения n - разрядных двоичных чисел показан на схеме (рис.28.). К его недостатку относится большое время задержки, в наихудшем случае, когда от сложения x0,y0 возникает сквозной перенос через все разряды до выхода s(n-1). При двухъярусной схеме одноразрядного сумматора, задержка сигнала от входов до выходов составит 2tзд. р., если считать задержку

В каждом ярусе одинаковой. Суммарная величина задержки будет равна:

Tзд. р.посл. сумматора = n*2tзд. р. (20)

При сложении многоразрядных чисел задержка выходного сигнала на выходе последнего разряда становится недопустимо большой.

В ЭВМ сумматор является центральным узлом арифметико-логического устройства (АЛУ) и от его быстродействиязависитпроизводительностькомпъютера. Поэтомуприменяютсясумматорыс параллельной схемой переноса. Выражение (18) для младшего разряда можно преобразовать, используя тождество для для функции ИЛИ: x + y = ~x*y + x*~y + xy. В правой части равенства СДНФ ф-ии ИЛИ. Тогда

C1 = x0*y0 + x0*c0 + y0*c0 = x0*y0 + c0(x0 + y0) = x0*y0 + c0(~x0*y0 + x0*~y0 + x0*y0) = x0*y0(с0 +1) + c0(~x0*y0 + x0*~y0) =

X0*y0 + с0(x0 (+) y0).(21)

Уравнениям (19) и (21) соответствует схема на рис.29.

Если в каждом разряде сумматора использовать такой одноразрядный сумматор, то никакого выигрыша в скорости не будет. Узел обведенный точками называется узлом переноса (УП), а функции gi и

Pi называются функциями генерации переноса и распространения переноса. С учетом этого можно записать:

C1 = g0 + p0*c0, с2 = g1 + p1*c1 =(22)

= g1 + p1*g0 + p1*p0*c0,(23)

С3 = g2 + p2*c2 =(24)

= g2 + p2*g1 + p2*p1*g0 + p2*p1*p0*c0,(25)

И так далее. Выражения (22,24) - это еще последовательный сумматор, т. к. c3 зависит от c2,c2 зависит от c1, а c1 зависит от c0. Выражения (23,25) соответствуют уже параллельному, т. к. величина ci снимается с выхода предыдущего разряда, в котором она формируется параллельно из всех первичных переменных. Схемы узлов переноса УП1 и УП2 приведены на рис.30.

Из рис.29 и 30 видно, что узел сложения в каждом разряде остается неизменным, а изменяется только узел переноса, причем задержка сигнала от входов xi, yi до c(i+1) остается неизменной и для 3-ярусной схемы равна 3tзд. р.. Суммарная задержка в каждом разряде увеличится на время прохождения сигнала от входа ci до si, т. е. на величину tзд. р., и составит: tзд. р.паралл. сумматора = 4tзд. р. независимо от количества разрядов. За это приходится платить усложнением узла переноса от разряда к разряду.

Похожие статьи




СУММАТОРЫ - Цифровые устройства и микропроцессоры

Предыдущая | Следующая