Найти в Дзене
Андрей Куликов

Сумматор Склянского

.........................."И войдёте в чужой труд и пожнёте, где не сеяли", - И. Христос.

Изучающим параллельно префиксные сумматоры может оказаться полезным исследование оригинальной статьи Склянского с описанием предтечи всех параллельно префиксных сумматоров [1]. В те времена (1960 г.) ещё небыли разработаны графы генераторов переносов и сумматоров Склянского в современной трактовке [2], да и алгоритм оригинального "условно-суммного" сумматора Склянского отличается от современной трактовки параллельно префиксного сумматора Склянского в виде генератора переносов с окончательным суммированием на последнем шаге сумматора. Всё это было переосмысленно и сделано позже другими исследователями и разработчиками параллельно префиксных сумматоров, но "условно-суммный" сумматор Склянского навсегда остаётся первым и предтечей всех других параллельно префиксных сумматоров.

Рис.1. Исправленная таблица на Fig.1 из статьи Склянского [1] с примером условно-суммного сложения в двоичной системе счисления.

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

Автор этой статьи попытался восполнить этот недостаток и сделал математическиое описание двоичного "условно-суммного" сумматора Склянского в виде системы логических уравнений пригодной для логических вычислений на компьютерах и по ходу исправил ошибки (красным цветом) в таблице оригинальной статьи Склянского.

-2
-3

Рис.2. Двоичный "условно-суммный" сумматор Склянского в виде системы логических уравнений (16-ти битная версия) в Borland TurboBasic'е.

Программа проверки 16-ти битной версии "условно-суммного" сумматора Склянского в виде системы логических уравнений в Borland TurboBasic'е:

https://andserkul.narod.ru/CSAB16.bas

и собрал модель 16-ти битного варианта "условно-суммного" сумматора Склянского в симуляторе логических схем Atanua/Win32 1.081116 - Personal Edition:

-4

Рис.3. Снимок модели 16-ти битного варианта "условно-суммного" сумматора Склянского в симуляторе логических схем Atanua/Win32 1.081116 - Personal Edition.

Код модели 16-ти битного "условно-суммного" сумматора Склянского в симуляторе логических схем Atanua:

https://andserkul.narod.ru/AdderRadix2Sklansky16bitCSA.atanua

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

Так как условные суммы вычисляются и корректируются, а не складываются, то правильное название этого сумматора - "условно суммный сумматор" (conditional-sum adder), а не "сумматор условных сумм".

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

Как можно заметить по уравнениям и модели, в оригинальном "условно-суммном" сумматоре Склянского есть некоторое сходство с современной трактовкой сумматора Склянского [2], но, всё же, это похожие, но немного разные алгоритмы. Причём, на нулевом шаге операторы S и C (Sum и Carry) в "условно-суммном" сумматоре Склянского совпадают с операторами P и G (Propagate и Generate) в современном генераторе переносов Склянского.

В "условно-суммном" сумматоре Склянского, radix-2, применяются 2-х и более входовые операторы S и С, а в генераторе переносов Склянского, radix-2, все операторы немного другие и однотипные, 2-х входовые P и трёхвходовые G, поэтому он более экономичен, чем "условно-суммный".

-5

Рис.4. Снимок с экрана результата прогона 16-ти битной версии "условно-суммного" сумматора Склянского в виде системы логических уравнений с контрольным примером из таблицы на Fig.1.

Следует отметить, что "условно-суммный" сумматор Склянского, radix-2, 16-ти битный, на логических элементах типа TTL складывает два числа за время равное 9dt, где dt - среднее время задержки в логических элементах данного типа, а современные сумматоры Склянского и Когге-Стоуна с генераторами переносов, radix-2, 16-ти битные, - за 10dt, т.е. "условно-суммный" сумматор Склянского, radix-2, быстрее современных сумматоров Склянского и Когге-Стоуна, radix-2.

"Условно-суммный" сумматор Склянского может быть не только двоичным, но и многозначным (multyvalued), в частности, в статье Склянского приводится пример десятичного "условно-суммного" сумматора Склянского:

-6

Рис.5. Исправленная таблица на Fig.3 из статьи Склянского [1] с примером условно-суммного сложения в десятичной системе счисления.

Максимальное длинное целое в TurboBasic'е немного больше 2*10^9, а "вес" единицы переноса в 16-м разряде десятичного сумматора 10^16, поэтому здесь приводится только 8-ми разрядная (8-ми децитная) версия сумматора:

-7

Рис.6. Десятичный "условно-суммный" сумматор Склянского в виде системы логических уравнений (8-ми децитная версия) в Borland TurboBasic'е.

Программа проверки 8-ми децитной версии десятичного "условно-суммного" сумматора Склянского в виде системы логических уравнений в Borland TurboBasic'е:

https://andserkul.narod.ru/CSAD8.bas

-8

Рис.7. Снимок с экрана результата прогона 8-ми децитной версии "условно-суммного" сумматора Склянского в виде системы логических уравнений с контрольным примером из таблицы на Fig.3.

Конечно, современная трактовка сумматора Склянского [2] более экономична и более удобна, но и исследование оригинального "условно-суммного" сумматора Склянского может оказаться полезным для лучшего понимания истории и развития параллельно префиксных сумматоров, в том числе и незаслуженно забытого параллельно префиксного "условно-суммного" сумматора Склянского.

Литература:

1. Conditional-Sum Addition Logic. J. Sklansky. IRE transaction on electronic computers. 1960, June, p.226-231.

2. Сумматор Склянского, Radix-2, 16-ти битный. Куликов А. С.

Приложения:

1. Borland TurboBasic

Версия 2024.06.24.