.........................."И войдёте в чужой труд и пожнёте, где не сеяли", - И. Христос.
Изучающим параллельно префиксные сумматоры может оказаться полезным исследование оригинальной статьи Склянского с описанием предтечи всех параллельно префиксных сумматоров [1]. В те времена (1960 г.) ещё небыли разработаны графы генераторов переносов и сумматоров Склянского в современной трактовке [2], да и алгоритм оригинального "условно-суммного" сумматора Склянского отличается от современной трактовки параллельно префиксного сумматора Склянского в виде генератора переносов с окончательным суммированием на последнем шаге сумматора. Всё это было переосмысленно и сделано позже другими исследователями и разработчиками параллельно префиксных сумматоров, но "условно-суммный" сумматор Склянского навсегда остаётся первым и предтечей всех других параллельно префиксных сумматоров.
Рис.1. Исправленная таблица на Fig.1 из статьи Склянского [1] с примером условно-суммного сложения в двоичной системе счисления.
В оригинальной статье Склянского приводятся некоторые логические уравнения и словесное описание алгоритма вычисления условных сумм, но не приводится "условно-суммный" сумматор в виде полной системы логических уравнений, пригодной для логических вычислений на компьютерах, что является большим недостатком оригинальной статьи Склянского.
Автор этой статьи попытался восполнить этот недостаток и сделал математическиое описание двоичного "условно-суммного" сумматора Склянского в виде системы логических уравнений пригодной для логических вычислений на компьютерах и по ходу исправил ошибки (красным цветом) в таблице оригинальной статьи Склянского.
Рис.2. Двоичный "условно-суммный" сумматор Склянского в виде системы логических уравнений (16-ти битная версия) в Borland TurboBasic'е.
Программа проверки 16-ти битной версии "условно-суммного" сумматора Склянского в виде системы логических уравнений в Borland TurboBasic'е:
https://andserkul.narod.ru/CSAB16.bas
и собрал модель 16-ти битного варианта "условно-суммного" сумматора Склянского в симуляторе логических схем Atanua/Win32 1.081116 - Personal Edition:
Рис.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, поэтому он более экономичен, чем "условно-суммный".
Рис.4. Снимок с экрана результата прогона 16-ти битной версии "условно-суммного" сумматора Склянского в виде системы логических уравнений с контрольным примером из таблицы на Fig.1.
Следует отметить, что "условно-суммный" сумматор Склянского, radix-2, 16-ти битный, на логических элементах типа TTL складывает два числа за время равное 9dt, где dt - среднее время задержки в логических элементах данного типа, а современные сумматоры Склянского и Когге-Стоуна с генераторами переносов, radix-2, 16-ти битные, - за 10dt, т.е. "условно-суммный" сумматор Склянского, radix-2, быстрее современных сумматоров Склянского и Когге-Стоуна, radix-2.
"Условно-суммный" сумматор Склянского может быть не только двоичным, но и многозначным (multyvalued), в частности, в статье Склянского приводится пример десятичного "условно-суммного" сумматора Склянского:
Рис.5. Исправленная таблица на Fig.3 из статьи Склянского [1] с примером условно-суммного сложения в десятичной системе счисления.
Максимальное длинное целое в TurboBasic'е немного больше 2*10^9, а "вес" единицы переноса в 16-м разряде десятичного сумматора 10^16, поэтому здесь приводится только 8-ми разрядная (8-ми децитная) версия сумматора:
Рис.6. Десятичный "условно-суммный" сумматор Склянского в виде системы логических уравнений (8-ми децитная версия) в Borland TurboBasic'е.
Программа проверки 8-ми децитной версии десятичного "условно-суммного" сумматора Склянского в виде системы логических уравнений в Borland TurboBasic'е:
https://andserkul.narod.ru/CSAD8.bas
Рис.7. Снимок с экрана результата прогона 8-ми децитной версии "условно-суммного" сумматора Склянского в виде системы логических уравнений с контрольным примером из таблицы на Fig.3.
Конечно, современная трактовка сумматора Склянского [2] более экономична и более удобна, но и исследование оригинального "условно-суммного" сумматора Склянского может оказаться полезным для лучшего понимания истории и развития параллельно префиксных сумматоров, в том числе и незаслуженно забытого параллельно префиксного "условно-суммного" сумматора Склянского.
Литература:
2. Сумматор Склянского, Radix-2, 16-ти битный. Куликов А. С.
Приложения:
Версия 2024.06.24.