Вариант реализации параллельного префиксного сумматора в троичной симметричной системе счисления

УДК 004.2

An embodiment of a parallel prefix adder in ternary symmetrical number system

Doroshenko Evgeniy Yurievich - graduate student, Southwest State University, Kursk.

Abstract: in this paper it is proposed to maintain the original structure Adder Kogga-Stone, changing the behavior of computing elements, so that the switch to operate in symmetric ternary numeral system. To represent the ternary set of numbers is used two-bit encoding. There are 24 ways to assign three of four possible two-bit code digits of ternary alphabet. If you allow the use of all four two-bit codes.

Keywords: an embodiment, parallel prefix, adder in ternary symmetrical number system.

Вариант реализации параллельного префиксного сумматора в троичной симметричной системе

счисления

Дорошенко Евгений Юрьевич - аспирант, Юго-Западный государственный университет, г. Курск.

Аннотация: в данной работе предлагается сохранить первоначальную структуру сумматора Когга-Стоуна, изменив при этом поведение вычислительных элементов так, чтобы перейти к оперированию числами в троичной симметричной системе счисления. Для представления троичного набора цифр далее используется двухбитное кодирование. Существует 24 способа назначения трех из четырех возможных двухбитных кодов цифрам троичного алфавита. Если допустить использование всех четырех двухбитных кодов.

Ключевые слова: реализация, параллельное префиксное, сумматор в троичной симметричной системе счисления.

Особенности реализации сумматоров с цепями ускоренного переноса, оперирующих числами в троичной системе счисления [1], рассмотрены в работах [2] и

[3]. В [2] предложена схема сумматора с предсказанием переноса в троичной несимметричной системе счисления. Автор отмечает, что в случае троичной симметричной системы перенос из предыдущих разрядов может предотвратить генерацию переноса в текущем разряде. Решение данной проблемы требует дополнительных схемных решений. В [3] сделано предположение, что для реализации сумматора с логарифмической сложностью в троичной симметричной системе потребуется две копии (ввиду наличия положительных и отрицательных сигналов распространения и генерации переносов) любой сети быстрого вычисления переноса.

В данной работе приводится реализация параллельного префиксного сумматора с предсказанием переноса

[4] в троичной симметричной системе счисления. В качестве прототипа используется сумматор Когга-Стоуна.

Сумматор Когга-Стоуна [5] - одна из форм параллельного префиксного сумматора с предсказанием переноса. Схема сумматора вычисляет значение сигналов переноса за время O(log2(n)), имеет регулярную структуру и является доминирующей при построении высокопроизводительных сумматоров в промышленности.

На рис. 1 изображен участок схемы 4-разрядного сумматора Когга-Стоуна, выполняющий вычисление значений сигналов переноса. Он представляет собой вычислительную сеть, состоящую из элементов трех видов, взаимодействующих между собой при помощи сигналов

распространения (Р) и генерации (в) переноса. Взаимодействующие элементы на рисунке соединены линиями. Верхний вычислительный слой образуют элементы квадратной формы. Они выполняют предварительные вычисления, которые заключаются в получении значений сигналов Р и в, соответствующих каждой паре разрядов слагаемых А и В, согласно выражениям:

Рис.1. Схема вычисления переносов 4-разрядного сумматора Когга-Стоуна

РкЛ=А1В1, к = 0,

СкЛ=А,В,, к = 0,

где I = 0...(п-1) - позиция суммируемых разрядов,

п - Разрядность слагаемых, к - Номер вычислительного слоя. Элементы круглой формы, расположенные в нижележащем вычислительном слое (к = 1), рассчитывают значения сигналов Р и в, соответствующие двум соседним парам разрядов слагаемых, используя для этого информацию предыдущего уровня. С увеличением

номера вычислительного слоя число соседних пар разрядов слагаемых, для которых элементы круглой формы данного слоя вычисляют значения сигналов Р и в, увеличивается в два раза:

Р

=

Элементы треугольной формы (буферы) дублируют на выходах значения приходящих сигналов.

Количество вычислительных слоев при выбранной разрядности п составляет

I = Г/о^2п1 ,

где I I означает операцию округления до большего целого.

Нахождение разрядов суммы заключается в вычислении суммы по модулю два значений сигнала переноса из предыдущего разряда, равного соответствующему сигналу генерации переноса последнего вычислительного уровня и суммы по модулю два текущих разрядов слагаемых, равной значению сигнала распространения переноса верхнего вычислительного уровня:

= 6

= г Род, I = 0,

^ (Род © 4-1, I > 0. (при этом одна из трех цифр будет иметь два кода) количество вариантов кодирования увеличится до 4*24 = 96. Используемый в работе код ставит в соответствие плюс единице битовую комбинацию «01», минус единице - «10», нулю - «00», комбинация «11» не используется. Т.к. старший бит принимает истинное значение только при кодировании минус единицы, а младший -плюс единицы, то для обозначения этих бит будут применяться индексы "-" и "+" соответственно.

Для понимания приведенных ниже формул рассмотрим условия генерации и распространения значений переносов при сложении чисел в троичной симметричной системе счисления:

1) если оба суммируемых разряда положительны, то образуется положительный перенос (перенос из предыдущего разряда не учитывается);

2) если оба суммируемых разряда отрицательны, то образуется отрицательный перенос (перенос из предыдущего разряда не учитывается);

3) переносы, получаемые в ситуациях 1) и 2) могут быть компенсированы переносом с противоположным знаком из предыдущего разряда;

4) если один из суммируемых разрядов положителен, а другой равен нулю, то перенос из данного разряда будет положительным в случае, когда перенос из предыдущего разряда также положителен (т.е. происходит распространение положительного переноса);

5) если один из суммируемых разрядов отрицателен, а другой равен нулю, то перенос из данного разряда будет отрицательным в случае, когда перенос из предыдущего разряда также отрицателен (т.е. происходит распространение отрицательного переноса);

6) если в ьм разряде образуется положительный перенос, а (ь1)-й разряд не генерирует и не распространяет отрицательный, то про данный участок можно сказать, что он генерирует положительный перенос независимо от значений переносов в других разрядах (далее такой перенос будет называться "независимым");

7) если в ьм разряде образуется отрицательный перенос, а (ь1)-й разряд не генерирует и не распространяет положительный, то про данный участок можно сказать,

что он генерирует отрицательный перенос независимо от значений переносов в других разрядах;

8) если 1-й разряд распространяет, а (1-1)-й - генерирует положительный перенос, то про данный участок можно сказать, что он генерирует положительный перенос; при этом, если перенос на (1-1)-й позиции был "независимым", то и для всего участка перенос также будет "независимым";

9) если 1-й разряд распространяет, а (1-1)-й - генерирует отрицательный перенос, то про данный участок можно сказать, что он генерирует отрицательный перенос; при этом, если перенос на (1-1)-й позиции был "независимым", то и для всего участка перенос также будет "независимым";

10) если 1-й и (1-1)-й разряд распространяют положительный перенос, то про данный участок можно сказать, что он распространяет положительный перенос;

11) если 1-й и (1-1)-й разряд распространяют отрицательный перенос, то про данный участок можно сказать, что он распространяет отрицательный перенос;

12) если 1-й разряд генерирует положительный пе-

0 1 \ ^ 11 ^ 11 с

-1)-й - независимый отрицательный, то про данный участок можно сказать, что он распространяет положительный перенос;

13) если 1-й разряд генерирует отрицательный пере-

0 1 \ I I 11 с

-1)-й - независимый положительный, то про данный участок можно сказать, что он распространяет отрицательный перенос.

С учетом выбранного представления троичных чисел старший бит сигнала генерации/распространения переноса можно рассматривать как сигнал генерации/распространения отрицательного переноса, а младший - положительного.

С учетом вышеописанных ситуаций работу вычислительных элементов квадратной формы можно описать с помощью следующих выражений:

Ры = а?ЬгЬ+УЬ+ага%:, к = 0,

"ы = а^Ь^ЬгУКа? ат , к = 0,

д^^а+Ь?, к = 0,

д- = аТ$Г, к = 0,

д1кЛ = 0, к = 0,

где р+ - сигнал распространения положительного переноса,

р- - сигнал распространения отрицательного переноса,

g+ - сигнал генерации положительного переноса, g- - сигнал генерации отрицательного переноса, gI - признак генерации переноса независимо от значений в предыдущих разрядах.

Для описания работы вычислительных элементов круглой формы справедливы выражения

Р(к + 1),1 = дк,1дк1(1-2Ь)дк , & I - 2 к ) Урк,1ркс,(1-2ку

Р(к+1),1 = дПдкк(1-2Ь)дк, ( I - 2 к ) Урк,1Р-,(1-2к)' д(кк1)1 = дк,хдкХ ш ,1д - , ( I - 2 к ) УрклдкД-2к)> д(к+1)Л = дкХдк, Уд- Лд к , ( I - 2 к ) )ур^Хд^,(1-2к), д(к + 1),Ь = дк,ЬУ

УдкХдк,&I-2к) Рк,( I - 2 к) Удк,1дк,&I-2к) Рк,( I - 2 к) У

УркЛдк,(1-2к) дк,(1-2к)Ур^-Лдк,(1-2к) дк,(1-2к).

Получение разрядов суммы заключается в вычислении суммы текущих разрядов слагаемых и значений сигнала переноса из предыдущего разряда (равного соответствующему сигналу генерации переноса последнего вычислительного уровня).

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

Библиографический указатель:

1. Кнут, Д. Искусство программирования. Том 2. Получисленные алгоритмы / Д. Кнут. 3-е изд. - М.: Ви-льямс. - 2007. - 832 с.

2. W. Jones, Douglas Fast Ternary Addition [Электронный ресурс] / Douglas, W. Jones Режим доступа: http://homepage.cs.uiowa.edu/~jones/ter-nary/arith.shtml#halfbalanced.

3. Parhami, B. Arithmetic with Binary-Encoded Balanced Ternary Numbers / B. Parhami, M. McKeown // The Forty-Seventh Asilomar Conference on Signals, Systems & Computers, Pacific Grove, California, 3-6 Nov. 2013.

4. Zamhari N. Comparison of Parallel Prefix Adder (PPA) / N. Zamhari, P. Voon, K. Kipli, Kho Lee Chin, Maimun Huja Husin // Proceedings of the World Congress on Engineering, London, U.K., 4-6 July 2012, Vol II.

5. Kogge, P. M. A Parallel Algorithm for the Efficient Solution of a General Class of Recurrence Equations / P.M. Kogge, H. S. Stone // IEEE Transactions on Computers. - Washington, DC, USA, 1973. - Vol.C-22. - №8. - P. 783-791.

Об авторе:

Дорошенко Евгений Юрьевич - аспирант, Юго-Западный государственный университет, г. Курск.

About the author:

Doroshenko Evgeniy Yurievich - graduate student, Southwest State University, Kursk.