Сумматор

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Сумматоры можно разделить на сумматоры без счёта, в которых производится суммирование, но результат не подсчитывается, и сумматоры с вычислением количества.

В кибернетике - устройство, преобразующее информационные сигналы (аналоговые или цифровые) в сигнал, эквивалентный сумме этих сигналов[1].

Содержание

История[править | править вики-текст]

Классификация сумматоров[править | править вики-текст]

В зависимости от формы представления информации различают сумматоры аналоговые и цифровые[1].

По способу реализации[править | править вики-текст]

По принципу действия[править | править вики-текст]

  • На счётчиках, считающие количества импульсов входного сигналах.
  • Функциональные, выдающие на выходах значения логической функции суммы по модулю и логической функции разряда переноса:
    • логические, каждый раз вычисляющие функцию разряда суммы по модулю и функцию разряда переноса
    • табличные, с таблицами заранее вычисленных значений функции разряда суммы по модулю и значений функции разряда переноса записанных в:
      • ПЗУ, ППЗУ (аппаратные) (надёжнее и дешевле логических, так как вместо полупроводников, выполняющих логические вычисления, в ПЗУ используются проводники и изоляторы "прошивки") или
      • ОЗУ (аппаратные и программные).

Табличные сумматоры были применены в вычислителях построенных на реле в США до второй мировой войны.

По архитектуре[править | править вики-текст]

  • Четвертьсумматоры — бинарные (двухоперандные) сумматоры по модулю без разряда переноса, характеризующиеся наличием двух входов, на которые подаются два одноразрядных числа, и одним выходом, на котором реализуется их арифметическая сумма по модулю.
  • Полусумматоры — бинарные (двухоперандные) сумматоры по модулю с разрядом переноса, характеризующиеся наличием двух входов, на которые подаются одноимённые разряды двух чисел, и двух выходов: на одном реализуется арифметическая сумма по модулю в данном разряде, а на другом — перенос в следующий (старший) разряд.
  • Полные сумматоры — тринарные (трёхоперандные) сумматоры по модулю с разрядом переноса, характеризующиеся наличием трёх входов, на которые подаются одноимённые разряды двух складываемых чисел и перенос из предыдущего (более младшего) разряда, и двумя выходами: на одном реализуется арифметическая сумма по модулю в данном разряде, а на другом — перенос в следующий (более старший разряд). Такие сумматоры изначально ориентированы только на показательные позиционные системы счисления[источник не указан 2114 дней].
  • Накапливающие сумматоры - снабжённые собственной внутренней памятью.

По способу действия[править | править вики-текст]

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

По способу организации переноса[3][4][править | править вики-текст]

По системе счисления[править | править вики-текст]

Двоичный сумматор[править | править вики-текст]

Двоичный сумматор может быть описан тремя способами:

  1. табличным, в виде таблицы истинности,
  2. аналитическим, в виде формулы (СДНФ),
  3. графическим, в виде логической схемы.

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

Рис.1. Логическая схема трёхступенчатого двоичного сумматора на двух полусумматорах и логическом элементе 2ИЛИ.
x0=A 1 0 1 0 1 0 1 0
x1=B 1 1 0 0 1 1 0 0
x2=Pi-1 1 1 1 1 0 0 0 0 Название действия (функции) Номер функции
Si 1 0 0 1 0 1 1 0 Бит суммы по модулю 2 F3,150
Pi 1 1 1 0 1 0 0 0 Бит переноса F3,232

Единица переноса возникает в 4-х случаях из 8-ми.
При построении многоразрядного табличного полного (трёхоперандного) двоичного сумматора на ПЗУ потребуется ПЗУ с -ю ячейками памяти длиной по 2 бита на каждый двоичный разряд сумматора.
Размер таблицы можно уменьшить до ячеек[7] по 2 бита длиной.

СДНФ суммы по модулю 2:

СДНФ бита переноса:

Схема, которая обеспечивает сложение двух однобитных чисел А и В без получения бита переноса из предыдущего разряда называют полусумматором. Полусумматор имеет 4 сигнальных линии: два входа для сигналов, представляющих одноразрядные двоичные числа А и В, и два выхода: сумма А и В по модулю 2 (S) и сигнал переноса в следующий разряд (P). При этом S наименее значимый бит, а P наиболее значимый бит.

Объединив два полусумматора и добавив дополнительную схему ИЛИ, можно создать трёхступенчатый полный сумматор с дополнительным входом Pi-1 (на рисунке 1), который принимает сигнал переноса из предыдущей схемы. Первая ступень на полусумматоре осуществляет сложение двух двоичных чисел и вырабатывает первый частный бит переноса, вторая ступень на полусумматоре осуществляет сложение результата первой ступени с третьим двоичным числом и вырабатывает второй частный бит переноса, третья ступень на логическом элементе 2ИЛИ вырабатывает результирующий бит переноса в старший разряд.

Схема полного сумматора может быть использована в качестве «строительных блоков» для построения схем многоразрядных сумматоров, путём добавления одноразрядных полных сумматоров. Для каждой цифры, которую схема должна быть в состоянии обрабатывать, используется один полный сумматор.

В сумматоре на рис.1 время вычисления суммы по модулю 2 равно 2dt, время вычисления переноса равно 3dt, где dt — время задержки в одном типовом логическом элементе. В m-разрядном сумматоре в худшем случае (единицы переноса во всех разрядах) до последнего разряда сигнал переноса проходит через m-1 разряд, а сумма будет готова ещё через 2dt, поэтому максимальное время сложения равно:

.

Максимальные времена выполнения сложения и вычисления переноса для большего числа разрядов приведены в таблице 1:
Таблица 1.

число разрядов сумматора 1 2 4 8 16 32 64
время выполнения сложения, dt 2 5 11 23 47 95 191
время вычисления переноса, dt 3 6 12 24 48 96 192

Двоичный одноразрядный полный сумматор является полной тринарной (трёхоперандной) двоичной логической функцией с бинарным (двухразрядным) выходом. Все три операнда и оба выходных разряда однобитные.

Двоичный одноразрядный полный сумматор может быть построен как тринарная (трёхоперандная) двоичная логическая функция с бинарным выходом на дешифраторе и шифраторе[8] с временем выполнения операции сложения 2dt, но, для уменьшения аппаратных затрат, обычно строится трёхступенчатым, состоящим из трёх узлов: двух полусумматоров, которые являются полными бинарными (двухоперандными) двоичными логическими функциями с унарным выходом и логического элемента «2ИЛИ».
Максимальные времена выполнения сложения и вычисления переноса для большего числа разрядов в многоразрядных сумматорах с двоичными сумматорами на дешифраторе и шифраторе приведены в таблице 2:
Таблица 2.

число разрядов сумматора 1 2 4 8 16 32 64
время выполнения сложения, dt 2 4 8 16 32 64 128
время вычисления переноса, dt 2 4 8 16 32 64 128

Повышение быстродействия сумматоров увеличением основания системы счисления ("-ичности")[править | править вики-текст]

Троичный сумматор[править | править вики-текст]

Так как , то троичный сумматор по длине слагаемых подобен 1,58...-битному двоичному сумматору.
Так как возможно несколько видов физической реализации троичных систем: трёхуровневая однопроводная, двухуровневая двухразрядная двухпроводная, двухуровневая трёхразрядная одноединичная трёхпроводная, двухуровневая трёхразрядная однонулевая и др., то возможны и несколько видов троичных сумматоров.

Кроме этого, сумматоры в несимметричной троичной системе счисления отличаются логикой работы от сумматоров в симметричной троичной системе счисления.

Троичный одноразрядный полный сумматор в троичной несимметричной системе счисления является неполной тринарной (трёхоперандной) троичной логической функцией. Два операнда — два слагаемых — полные, третий операнд — троичный разряд переноса — неполный и имеет только два значения 0 и 1 из трёх.

Троичный сумматор в несимметричной троичной системе счисления[править | править вики-текст]

x0 2 1 0 2 1 0 2 1 0 2 1 0 2 1 0 2 1 0 слагаемое
x1 2 2 2 1 1 1 0 0 0 2 2 2 1 1 1 0 0 0 слагаемое
x2 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 Перенос из n-1 разряда
S 2 1 0 1 0 2 0 2 1 1 0 2 0 2 1 2 1 0 МЗР суммы, сумма по модулю 3
C 1 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 СЗР суммы, перенос в n+1 разряд

Единица переноса возникает в 9-ти случаях из 18-ти.

Троичный одноразрядный полный сумматор в трёхбитной одноединичной системе троичных логических элементов, работающий в троичной несимметричной системе счисления, приведённый на рисунке справа описан в[9][неавторитетный источник?].

Троичный полный тринарный одноразрядный сумматор, работающий в троичной симметричной системе счисления Фибоначчи, является полной тринарной троичной логической функцией с двухразрядным результатом[10][неавторитетный источник?].

Троичный сумматор-вычитатель в троичной симметричной системе счисления[править | править вики-текст]

x0 1 0 -1 1 0 -1 1 0 -1 1 0 -1 1 0 -1 1 0 -1 1 0 -1 1 0 -1 1 0 -1 слагаемое
x1 1 1 1 0 0 0 -1 -1 -1 1 1 1 0 0 0 -1 -1 -1 1 1 1 0 0 0 -1 -1 -1 слагаемое
x2 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 Перенос из n-1 разряда Номер функции
S 0 -1 1 -1 1 0 1 0 -1 -1 1 0 1 0 -1 0 -1 1 1 0 -1 0 -1 1 -1 1 0 МЗР суммы F3,-624603703776
C 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 -1 0 -1 -1 СЗР суммы (трит переноса в n+1 разряд) F3,3483426737048

Перенос возникает в 8-ми случаях из 27-ми.
Троичный симметричный сумматор-вычитатель можно задать в виде трёх таблиц:
с переносом -1 из предыдущего разряда:

Сn-1 -1 -1 -1
+ -1 0 +1
-1 -10 -1+1 0-1
0 -1+1 0-1 00
+1 0-1 00 0+1

с переносом 0 из предыдущего разряда:

Сn-1 0 0 0
+ -1 0 +1
-1 -1+1 0-1 00
0 0-1 00 0+1
+1 00 0+1 +1-1

и с переносом +1 из предыдущего разряда:

Сn-1 +1 +1 +1
+ -1 0 +1
-1 0-1 00 0+1
0 00 0+1 +1-1
+1 0+1 +1-1 +10

и осуществлять с помощью соответствующих трёх бинарных с бинарным выходом троичных функций, выбирая нужную из трёх по значению переноса из предыдущего разряда тринарным троичным мультиплексором, при этом количество ячеек памяти не уменьшается, а к времени суммирования добавляется задержка мультиплексора равная 2dt.
При построении троичного симметричного сумматора на ПЗУ на каждый разряд троичного сумматора потребуется ПЗУ с 27-ю ячейками памяти.
Размер таблицы можно уменьшить до ячеек[11].
При программном исполнении троичного симметричного сумматора-вычитателя таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера в троичном трёхбитном одноединичном коде (3B BCT). ОЗУ такого размера найдётся почти на любом компьютере.
Максимальные времена выполнения сложения и вычисления переноса в одноразрядном троичном симметричном сумматоре на дешифраторе и шифраторе (или на ПЗУ, ОЗУ) составляют 2dt.
При большем числе разрядов:
Таблица 3.

число разрядов троичного симметричного сумматора 1 2 3 6 9 18 27 54 81
время выполнения сложения, dt 2 4 6 12 18 36 54 108 162
время вычисления переноса, dt 2 4 6 12 18 36 54 108 162
число разрядов в двоичном эквиваленте 1,58 3,16 4,76 9,48 14,22 28,44 42,66 85,32 127,98
эквивалентное время сложения в двоичном эквиваленте, dt 3,16 6,32 9,52 18,96 28,44 56,88 85,32 170,64 255,96

Т.е. троичный симметричный сумматор на дешифраторе и шифраторе (или на ПЗУ, ОЗУ) с последовательным переносом в наихудшем случае (перенос во всех разрядах) суммирует в раза быстрее, чем эквивалентный двоичный сумматор на дешифраторе и шифраторе (или на ПЗУ, ОЗУ) с последовательным переносом.

Троичный одноразрядный тринарный (трёхоперандный, полный) сумматор работающий в троичной симметричной системе счисления Фибоначчи в трёхбитной одноединичной системе троичных логических элементов с логическими элементами ИЛИ описан в[12].

Троичный одноразрядный тринарный (трёхоперандный, полный) сумматор работающий в троичной симметричной системе счисления Фибоначчи в двухбитной системе троичных логических элементов с логическими элементами ИЛИ описан в[13].

Троичный зеркально-симметричный одноразрядный полный сумматор описан в[14].

Четверичный сумматор[править | править вики-текст]

Так как , то четверичный сумматор по длине слагаемых подобен двухбитному двоичному сумматору.

x0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 слагаемое
x1 3 3 3 3 2 2 2 2 1 1 1 1 0 0 0 0 3 3 3 3 2 2 2 2 1 1 1 1 0 0 0 0 слагаемое
x2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Перенос из n-1 разряда
S 3 2 1 0 2 1 0 3 1 0 3 2 0 3 2 1 2 1 0 3 1 0 3 2 0 3 2 1 3 2 1 0 сумма по модулю 4
C 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 перенос в n+1 разряд

Единица переноса возникает в 16-ти случаях из 32-ух.
Снимок модели четверичного одноразрядного полного табличного сумматора на ПЗУ в логическом симуляторе Atanua приведён на странице [15]. При построении четверичного табличного сумматора на ПЗУ на каждый разряд четверичного табличного сумматора потребуется ПЗУ с -мя ячейками памяти длиной бита.
Размер таблицы можно уменьшить до ячеек по 5 битов[16].
При программном исполнении четверичного сумматора таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера. ОЗУ такого размера найдётся почти на любом компьютере.
Время выработки единицы переноса в одном разряде четверичного сумматора на дешифраторе и шифраторе и четверичного табличного сумматора на ПЗУ (ОЗУ) в два раза меньше, чем время выработки единицы переноса в эквивалентных одноразрядному четверичному сумматору двухразрядном двоичном сумматоре на дешифраторах и шифраторах и на двоичных табличных сумматорах на ПЗУ (ОЗУ).
Таблица 4.

число разрядов четверичного сумматора 1 2 4 8 16 32 64 128
время выполнения сложения, dt 2 4 8 16 32 64 128 256
время вычисления переноса, dt 2 4 8 16 32 64 128 256
число разрядов в двоичном эквиваленте 2 4 8 16 32 64 128 256
эквивалентное время сложения в двоичном эквиваленте, dt 4 8 16 32 64 128 256 512

Т.е. многоразрядные табличные сумматоры на четверичных сумматорах в наихудшем случае (перенос во всех разрядах) складывают в раза быстрее, чем подобные по длине чисел и конструкции многоразрядные табличные сумматоры на двоичных сумматорах.

Восьмиричный сумматор[править | править вики-текст]

Так как , то восьмиричный сумматор по длине слагаемых подобен трёхбитному двоичному сумматору.
Таблица полного восьмиричного сумматора в предыдущем виде содержит колонок и поэтому здесь не приводится.
При построении восьмиричного сумматора на ПЗУ на каждый разряд восьмиричного сумматора потребуется ПЗУ со 128-ю ячейками памяти длиной бита.
Размер таблицы можно уменьшить до ячеек[17].
При наличии дешифратора номера диагонали в таблице сложения сама таблица в ПЗУ уже не требуется[18].
При программном исполнении восьмиричного сумматора таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера. ОЗУ такого размера найдётся почти на любом компьютере.
Время выработки единицы переноса в одном разряде восьмиричного сумматора (2dt) в три раза меньше, чем время выработки единицы переноса в эквивалентном одноразрядному восьмиричному сумматору трёхразрядном двоичном сумматоре (6dt).

Девятиричный сумматор-вычитатель[править | править вики-текст]

Так как , то девятиричный сумматор-вычитатель по длине слагаемых подобен двухтритному троичному симметричному сумматору-вычитателю или битному двоичному сумматору..
Таблица полного девятиричного симметричного сумматора-вычитателя в предыдущем виде содержит колонки и поэтому здесь не приводится.
Размер таблицы можно уменьшить до ячеек[19].
При построении девятиричного симметричного сумматора-вычитателя на ПЗУ на каждый разряд девятиричного симметричного сумматора-вычитателя потребуется ПЗУ с 243-я ячейками памяти длиной трита (3*1,58...=4,74 бита).
При программном исполнении девятиричного симметричного сумматора-вычитателя таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера в троичном трёхбитном одноединичном коде (3B BCT). ОЗУ такого размера найдётся почти на любом компьютере.
Время выработки переноса в одном разряде девятиричного сумматора-вычитателя (2dt) в два раза меньше, чем время выработки переноса в эквивалентном одноразрядному девятиричному симметричному сумматору-вычитателю двухразрядном троичном симметричном сумматоре-вычитателе (4dt).
Так как по аппаратным затратам девятиричный симметричный сумматор-вычитатель соизмерим с восьмиричным сумматором, то и по остальным параметрам девятиричный симметричный сумматор-вычитатель нужно сравнивать с восьмиричным сумматором.
За то же время (2dt) девятиричный симметричный сумматор-вычитатель складывает и вычитает числа большей длины (3,16... бита), чем соизмеримый по аппаратным затратам восьмиричный сумматор (3 бита), при этом для вычитания не требуется преобразования в дополнительные коды, как в восьмиричном сумматоре, на которое тоже уходит несколько задержек (dt).

Десятиричный (десятичный) сумматор[править | править вики-текст]

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

+ 0 0 0 0 0 0 0 0 0 0
+ 0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9 10
2 2 3 4 5 6 7 8 9 10 11
3 3 4 5 6 7 8 9 10 11 12
4 4 5 6 7 8 9 10 11 12 13
5 5 6 7 8 9 10 11 12 13 14
6 6 7 8 9 10 11 12 13 14 15
7 7 8 9 10 11 12 13 14 15 16
8 8 9 10 11 12 13 14 15 16 17
9 9 10 11 12 13 14 15 16 17 18

и с единицей в переносе из предыдущего разряда:

+ 1 1 1 1 1 1 1 1 1 1
+ 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 11
2 3 4 5 6 7 8 9 10 11 12
3 4 5 6 7 8 9 10 11 12 13
4 5 6 7 8 9 10 11 12 13 14
5 6 7 8 9 10 11 12 13 14 15
6 7 8 9 10 11 12 13 14 15 16
7 8 9 10 11 12 13 14 15 16 17
8 9 10 11 12 13 14 15 16 17 18
9 10 11 12 13 14 15 16 17 18 19

или в виде одной таблицы, в которой единица переноса из предыдущего разряда смещает на одну колонку вправо:

+ 0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10 11
2 2 3 4 5 6 7 8 9 10 11 12
3 3 4 5 6 7 8 9 10 11 12 13
4 4 5 6 7 8 9 10 11 12 13 14
5 5 6 7 8 9 10 11 12 13 14 15
6 6 7 8 9 10 11 12 13 14 15 16
7 7 8 9 10 11 12 13 14 15 16 17
8 8 9 10 11 12 13 14 15 16 17 18
9 9 10 11 12 13 14 15 16 17 18 19

C соответствующей прошивкой как десятичный сумматор (десятиричный) могут работать шестнадцатиричный сумматор и двадцатисемиричный сумматор-вычитатель на ПЗУ.

Шестнадцатиричный сумматор[править | править вики-текст]

Так как , то шестнадцатиричный сумматор по длине слагаемых подобен 4-х битному двоичному сумматору.
Таблица полного шестнадцатиричного сумматора в предыдущем виде содержит колонок и поэтому здесь не приводится.
При построении шестнадцатиричного сумматора на ПЗУ на каждый разряд шестнадцатиричного сумматора потребуется ПЗУ с 512-ю ячейками памяти[20] длиной битов.
Размер таблицы можно уменьшить до ячеек по 5 битов[20].
При программном исполнении шестнадцатиричного сумматора таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера. ОЗУ такого размера найдётся почти на любом компьютере.
Обычный четырёхразрядный двоичный сумматор с последовательным переносом (ripple-carry adder) на полусумматорах вырабатывает сумму за 11dt, а единицу переноса за 12dt[21].
Шестнадцатиричный табличный сумматор на ПЗУ вырабатывает и сумму и перенос за 2dt[22].
В многоразрядных сумматорах на шестнадцатиричных табличных сумматорах на ПЗУ отдельные шестнадцатиричные сумматоры соединяются последовательно.

Многоразрядные шестнадцатиричные сумматоры с ускоренным переносом CLA[править | править вики-текст]

Шестнадцатиричный сумматор очень просто сопрягается со стандартными 4-х битными схемами ускоренного переноса, поэтому на них очень просто строить многоразрядные шестнадцатиричные сумматоры с ускоренным переносом CLA[23], которые работают не медленнее, чем двоичные CLA-сумматоры с логическими схемами на полупроводниках.
Сумматоры на проводниковых ПЗУ надёжнее логических сумматоров CLA на полупроводниках, а при массовом производстве масочные проводниковые ПЗУ технологически проще и дешевле полупроводниковых схем.

Десятиричный (десятичный) сумматор на шестнадцатиричном сумматоре[править | править вики-текст]

Шестнадцатиричный сумматор на ПЗУ с соответствующей прошивкой может работать как десятиричный (десятичный) сумматор.

Двадцатисемиричный сумматор-вычитатель[править | править вики-текст]

Так как , то двадцатисемиричный симметричный сумматор по длине слагаемых подобен трёхтритному троичному симметричному сумматору или битному двоичному сумматору.
Таблица полного двадцатисемиричного симметричного сумматора в предыдущем виде содержит колонок и поэтому здесь не приводится.
При построении двадцатисемиричного симметричного сумматора на ПЗУ на каждый разряд двадцатисемиричного симметричного сумматора потребуется ПЗУ с 2187-ю ячейками памяти длиной трита.
Размер таблицы можно уменьшить до ячеек[24].
При программном исполнении двадцатисемиричного симметричного сумматора-вычитателя таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера в троичном трёхбитном одноединичном коде (3B BCT). ОЗУ такого размера найдётся почти на любом компьютере.
Время выработки переноса в одном разряде двадцатисемиричного сумматора в три раза меньше, чем время выработки переноса в эквивалентном одноразрядному двадцатисемиричному симметричному сумматору трёхразрядном троичном симметричном сумматоре.

Десятиричный (десятичный) сумматор-вычитатель на двадцатисемиричном сумматоре-вычитателе[править | править вики-текст]

Двадцатисемиричный сумматор-вычитатель на ПЗУ с соответствующей прошивкой может работать как десятиричный (десятичный) сумматор-вычитатель.

Тридцатидвухричный сумматор[править | править вики-текст]

Так как , то тридцатидвухричный сумматор по длине слагаемых подобен 5-ти битному двоичному сумматору.
Таблица полного тридцатидвухричного сумматора в предыдущем виде содержит колонок и поэтому здесь не приводится.
Размер таблицы можно уменьшить до ячеек.
При построении тридцатидвухричного сумматора на ПЗУ на каждый разряд тридцатидвухричного сумматора потребуется ПЗУ с 2048-ю ячейками памяти длиной битов.
При программном исполнении тридцатидвухричного сумматора таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера. ОЗУ такого размера найдётся почти на любом компьютере.
Время выработки единицы переноса в одном разряде тридцатидвухричного сумматора в пять раз меньше, чем время выработки единицы переноса в эквивалентном одноразрядному тридцатидвухричному сумматору пятиразрядном двоичном сумматоре.

Шестидесятичетырёхричный сумматор[править | править вики-текст]

Так как , то шестидесятичетырёхричный сумматор по длине слагаемых подобен 6-ти битному двоичному сумматору.
Таблица полного шестидесятичетырёхричного сумматора в предыдущем виде содержит колонки и поэтому здесь не приводится.
При построении шестидесятичетырёхричного сумматора на ПЗУ на каждый разряд шестидесятичетырёхричного сумматора потребуется ПЗУ с 8192-мя ячейками памяти длиной битов.
Размер таблицы можно уменьшить до ячеек.
При программном исполнении шестидесятичетырёхричного сумматора таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера. ОЗУ такого размера найдётся почти на любом компьютере.
Время выработки единицы переноса в одном разряде шестидесятичетырёхричного сумматора (2dt) в шесть раз меньше, чем время выработки единицы переноса в эквивалентном одноразрядному шестидесятичетырёхричному сумматору шестиразрядном двоичном сумматоре (12dt).

Восьмидесятиодноричный сумматор-вычитатель[править | править вики-текст]

Так как , то восьмидесятиодноричный симметричный сумматор по длине слагаемых подобен четырёхтритному троичному симметричному сумматору или битному двоичному сумматору.
Таблица полного восьмидесятиодноричного симметричного сумматора в предыдущем виде содержит колонки и поэтому здесь не приводится.
При построении восьмидесятиодноричного симметричного сумматора на ПЗУ на каждый разряд восьмидесятиодноричного симметричного сумматора потребуется ПЗУ с 13 122-я ячейками памяти длиной тритов.
Размер таблицы можно уменьшить до ячеек.
При программном исполнении восьмидесятиодноричного симметричного сумматора-вычитателя таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера в троичном трёхбитном одноединичном коде (3B BCT). ОЗУ такого размера найдётся почти в любом компьютере.
Время выработки переноса в одном разряде восьмидесятиодноричного сумматора (2dt) в четыре раза меньше, чем время выработки переноса в эквивалентном одноразрядному восьмидесятиодноричному симметричному сумматору четырёхразрядном троичном симметричном сумматоре (8dt).
Так как по аппаратным затратам восьмидесятиодноричный симметричный сумматор соизмерим с шестидесятичетырёхричным сумматором, то и по остальным параметрам восьмидесятиодноричный симметричный сумматор нужно сравнивать с шестидесятичетырёхричным сумматором.

Стодвадцативосьмиричный сумматор[править | править вики-текст]

Так как , то стодвадцативосьмиричный сумматор по длине слагаемых подобен 7-ми битному двоичному сумматору.
Таблица полного стодвадцативосьмиричного сумматора в предыдущем виде содержит колонок и поэтому здесь не приводится.
При построении стодвадцативосьмиричного сумматора на ПЗУ на каждый разряд стодвадцативосьмиричного сумматора потребуется ПЗУ с 32768-ю ячейками памяти длиной битов.
Размер таблицы можно уменьшить до ячеек.
При программном исполнении стодвадцативосьмиричного сумматора таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера. ОЗУ такого размера найдётся почти на любом компьютере.
Время выработки единицы переноса в одном разряде стодвадцативосьмиричного сумматора (2dt) в семь раз меньше, чем время выработки единицы переноса в эквивалентном одноразрядному стодвадцативосьмиричному сумматору семиразрядном двоичном сумматоре (14dt).

Двухсотсорокатрёхричный сумматор-вычитатель[править | править вики-текст]

Так как , то духсотсорокатрёхричный симметричный сумматор-вычитатель по длине слагаемых подобен пятитритному троичному симметричному сумматору-вычитателю или битному двоичному сумматору.
Таблица полного духсотсорокатрёхричного симметричного сумматора-вычитателя в предыдущем виде содержит колонок и поэтому здесь не приводится.
При построении духсотсорокатрёхричного симметричного сумматора-вычитателя на ПЗУ на каждый разряд духсотсорокатрёхричного симметричного сумматора-вычитателя потребуется ПЗУ с 177 147-ю ячейками памяти длиной тритов.
Размер таблицы можно уменьшить до ячеек.
При программном исполнении духсотсорокатрёхричного симметричного сумматора-вычитателя таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера в троичном трёхбитном одноединичном коде (3B BCT). ОЗУ такого размера найдётся почти в любом компьютере.
Время выработки переноса в одном разряде духсотсорокатрёхричного сумматора-вычитателя (2dt) в пять раз меньше, чем время выработки переноса в эквивалентном одноразрядному духсотсорокатрёхричному симметричному сумматору-вычитателю пятиразрядном троичном симметричном сумматоре-вычитателе (10dt).
По длине складываемых за 2dt чисел (7,9... бит) духсотсорокатрёхричный симметричный сумматор-вычитатель соизмерим с двухсотпятидесятишестиричным сумматором (8 битов), но для вычитания не требуется преобразования отрицательных чисел в дополнительные коды, на которое тоже уходит несколько задержек (dt).

Двухсотпятидесятишестиричный сумматор[править | править вики-текст]

Так как , то двухсотпятидесятишестиричный сумматор по длине слагаемых подобен 8-ми битному двоичному сумматору.
Таблица полного двухсотпятидесятишестиричного сумматора в предыдущем виде содержит колонки (128К) и поэтому здесь не приводится.
При построении двухсотпятидесятишестиричного сумматора на ПЗУ на каждый разряд двухсотпятидесятишестиричного сумматора потребуется ПЗУ со 131 072-мя (128К) ячейками памяти длиной битов, 8 битов - сумма, 9-й бит - единица переноса в следующий блок.
Размер таблицы можно уменьшить до ячеек.
При программном исполнении двухсотпятидесятишестиричного сумматора таблицу заранее вычисленных результатов можно записать в ОЗУ компьютера.
Время выработки единицы переноса в одном разряде двухсотпятидесятишестиричного сумматора в восемь раз меньше, чем время выработки единицы переноса в эквивалентном одноразрядному двухсотпятидесятишестиричному сумматору восьмиразрядном двоичном сумматоре.
Многоразрядные сумматоры на двухсотпятидесятишестиричных сумматорах в наихудшем случае (перенос во всех разрядах) складывают в раз быстрее, чем подобные по длине чисел и конструкции многоразрядные сумматоры на двоичных сумматорах.
Двухсотпятидесятишестиричный табличный сумматор на ПЗУ вырабатывает и перенос и сумму за 2dt.

На двух двухсотпятидесятишестиричных табличных сумматорах на ПЗУ можно построить 16-ти битный сумматор с максимальными временем сложения и выработки единицы переноса равными 4dt.
Для сравнения:
Максимальное время вычисления суммы в обычном 16-ти битном сумматоре на двух полусумматорах (ripple-carry сумматоре) составляет (Таблица 1.).
Максимальное время вычисления суммы в 16-ти битном сумматоре на дешифраторах и шифраторах составляет (Таблица 2.).
Максимальное время вычисления суммы в 16-битном carry-lookahead сумматоре использующим 4 CLA и 1 LCU для составляет 8 gate задержек[25].

На четырёх двухсотпятидесятишестиричных табличных сумматорах на ПЗУ можно построить 32-х битный сумматор с временем сложения и выработки единицы переноса равными 8dt.

На восьми двухсотпятидесятишестиричных табличных сумматорах на ПЗУ можно построить 64-х битный сумматор с временем сложения и выработки единицы переноса равными 16dt.

Семьсотдвадцатидевятиричный сумматор-вычитатель[править | править вики-текст]

Так как , то семьсотдвадцатидевятиричный симметричный сумматор-вычитатель по длине слагаемых чисел подобен шеститритному троичному симметричному сумматору-вычитателю или битному двоичному сумматору. Т.е. троичный контроллер с таким сумматором может заменить 8-ми битный двоичный контроллер.
Таблица полного семьсотдвадцатидевятиричного симметричного сумматора-вычитателя в предыдущем виде содержит колонки и поэтому здесь не приводится.
При построении семьсотдвадцатидевятиричного симметричного сумматора-вычитателя на ПЗУ на каждый разряд семьсотдвадцатидевятиричного симметричного сумматора-вычитателя потребуется ПЗУ с 1 062 882-я ячейками памяти длиной тритов (11,06... бита).
Размер таблицы можно уменьшить до ячеек.
При программном исполнении семьсотдвадцатидевятиричного симметричного сумматора-вычитателя таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера в троичном трёхбитном одноединичном коде (3B BCT). ОЗУ такого размера найдётся почти в любом компьютере.
Время выработки переноса в одном разряде семьсотдвадцатидевятиричного сумматора-вычитателя (2dt) в шесть раз меньше, чем время выработки переноса в эквивалентном одноразрядному семьсотдвадцатидевятиричному симметричному сумматору-вычитателю шестиразрядном троичном симметричном сумматоре-вычитателе (12dt).
Так как по аппаратным затратам семьсотдвадцатидевятиричный симметричный сумматор-вычитатель соизмерим с двухсотпятидесятишестиричным сумматором, то и по остальным параметрам семьсотдвадцатидевятиричный симметричный сумматор-вычитатель нужно сравнивать с двухсотпятидесятишестиричным сумматором.

Тысячадвадцатичетырёхричный сумматор[править | править вики-текст]

Так как , то тысячадвадцатичетырёхричный сумматор по длине слагаемых подобен 10-х битному двоичному сумматору.
Таблица полного тысячадвадцатичетырёхричного сумматора в предыдущем виде содержит колонки и поэтому здесь не приводится.
При построении тысячадвадцатичетырёхричного сумматора на ПЗУ на каждый разряд тысячадвадцатичетырёхричного сумматора потребуется ПЗУ с 2 097 152-мя ячейками памяти длиной бита, 10 битов - сумма, 11-й бит - единица переноса в следующий блок.
Размер таблицы можно уменьшить до ячеек.
При программном исполнении тысячадвадцатичетырёхричного сумматора таблицу заранее вычисленных результатов можно записать в ОЗУ компьютера.
Тысячадвадцатичетырёхричный табличный сумматор на ПЗУ вырабатывает и перенос и сумму при одноступенчатом дешифраторе в ПЗУ за 2dt. При увеличении числа ступеней в дешифраторе ПЗУ время сложения увеличивается прямопропорционально числу ступеней дешифратора.

Четыретысячидевяностошестиричный сумматор[править | править вики-текст]

Так как , то четыретысячидевяностошестиричный сумматор по длине слагаемых подобен 12-х битному двоичному сумматору.
Таблица полного четыретысячидевяностошестиричного сумматора в предыдущем виде содержит колонки и поэтому здесь не приводится.
При построении четыретысячидевяностошестиричного сумматора на ПЗУ на каждый разряд четыретысячидевяностошестиричного сумматора потребуется ПЗУ со 33 554 432-мя ячейками памяти длиной битов, 12 битов - сумма, 13-й бит - единица переноса в следующий блок.
При программном исполнении четыретысячидевяностошестиричного сумматора таблицу заранее вычисленных результатов можно записать в ОЗУ компьютера.

Четыретысячидевяностошестиричный табличный сумматор на ПЗУ вырабатывает и перенос и сумму при одноступенчатом дешифраторе в ПЗУ за 2dt. При увеличении числа ступеней в дешифраторе ПЗУ время сложения увеличивается прямопропорционально числу ступеней дешифратора.

Шестьдесятпятьтысячпятьсоттридцатишестиричный сумматор[править | править вики-текст]

Так как , то шестьдесятпятьтысячпятьсоттридцатишестиричный сумматор по длине слагаемых подобен 16-ти битному двоичному сумматору.
Таблица полного шестьдесятпятьтысячпятьсоттридцатишестиричного сумматора в предыдущем виде содержит колонки (8 Гига) и поэтому здесь не приводится.
При построении шестьдесятпятьтысячпятьсоттридцатишестиричного сумматора на ПЗУ на каждый разряд шестьдесятпятьтысячпятьсоттридцатишестиричного сумматора потребуется ПЗУ с 8 589 934 592-мя (8 Гига) ячейками памяти длиной битов, что соизмеримо с современными ширпотребовскими флэшками.
Размер таблицы можно уменьшить до ячеек.
При программном исполнении шестнадцатиричного сумматора таблицу с заранее вычисленными результатами можно записать в ОЗУ компьютера.
При программном исполнении шестьдесятпятьтысячпятьсоттридцатишестиричного сумматора таблицу заранее вычисленных результатов можно записать в ОЗУ компьютера, но не у каждого компьютера найдётся память такого размера.
Шестьдесятпятьтысячпятьсоттридцатишестиричный табличный сумматор на ПЗУ, при применении одноступенчатого дешифратора, вырабатывает и перенос и сумму за 2*dt. При применении многоступенчатых дешифраторов время выработки и переноса и суммы увеличивается прямопропорционально числу ступеней дешифратора.
На двух шестьдесятпятьтысячпятьсоттридцатишестиричных сумматорах можно построить сумматор подобный по длине чисел двоичному 32-х битному сумматору, а на четырёх подобный двоичному 64-х битному сумматору.

Направления развития сумматоров[править | править вики-текст]

Быстродействия параллельных сумматоров вполне достаточно для быстрого сложения небольшого количества чисел фиксированной длины.
Так как поразрядное сложение по природе своей последовательно, то при очень большом количестве сложений более выгодно перенастроить то же самое оборудование (АЛУ) для одновременного или не очень одновременного параллельного выполнения нескольких последовательных сложений.

Например, параллельный 64-х разрядный двоичный сумматор из 64-х двоичных сумматоров со сложными схемами ускоренного переноса сложит 1 пару 64-х битных чисел в лучших схемах приблизительно за 5dt, а 32 пары 64-х битных чисел приблизительно за 32*5dt=160dt.
32 последовательных двоичных сумматора без схем ускоренного переноса бит за битом сложат 32 пары 64-х битных чисел приблизительно за 64*2dt=128dt.
32 последовательных четверичных сумматора без схем ускоренного переноса сложат 32 пары 64-х битных чисел приблизительно за (64/lg24)*2dt=64dt.
32 последовательных шестнадцатиричных сумматора без схем ускоренного переноса сложат 32 пары 64-х битных чисел приблизительно за (64/lg216)*2dt=32dt.
32 последовательных двухсотпятидесятишестиричных сумматора без схем ускоренного переноса сложат 32 пары 64-х битных чисел приблизительно за (64/lg2256)*2dt=16dt, т.е. приблизительно в десять раз быстрее, чем параллельный 64-х битный сумматор со схемами ускоренного переноса.
32 последовательных четыретысячидевяностошестиричных сумматора без схем ускоренного переноса сложат 32 пары 64-х битных чисел приблизительно за (64/lg24096)*2dt=10,67dt.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. 1 2 Словарь по кибернетике / Под редакцией академика В. С. Михалевича. — 2-е. — Киев: Главная редакция Украинской Советской Энциклопедии имени М. П. Бажана, 1989. — 751 с. — (С48). — 50 000 экз. — ISBN 5-88500-008-5.
  2. Считающие часы Вильгельма Шиккарда
  3. Hardware algorithms for arithmetic modules
  4. Adder Designs
  5. 3 Сложение и вычитание двоичных чисел. Двоичные сумматоры. Стр.30. Рис.12.Схема сумматора с пропуском переноса carry-skip adder
  6. Таненбаум Э.- Архитектура компьютера. стр.130
  7. Сумматор двоичный
  8. Сумматор двоичный. Двоичный сумматор на дешифраторе и шифраторе
  9. Троичный тринарный сумматор в троичной несимметричной системе счисления в трёхбитной системе троичных логических элементов (недоступная ссылка с 13-05-2013 (1232 дня))
  10. Троичный сумматор. Логическая схема полного троичного симметричного сумматора-вычитателя в трёхбитной одноединичной системе троичных логических элементов
  11. Троичный сумматор
  12. Троичный тринарный сумматор-вычитатель в троичной симметричной системе счисления Фибоначчи в трёхбитной системе троичных логических элементов[неавторитетный источник?]
  13. Троичный тринарный сумматор-вычитатель в троичной симметричной системе счисления Фибоначчи в двухбитной системе троичных логических элементов[неавторитетный источник?]
  14. Компьютеры Фибоначчи. Троичное зеркально-симметричное сложение и вычитание
  15. Четверичный сумматор
  16. Сумматор четверичный
  17. Сумматор восьмиричный
  18. Сумматор восьмиричный. Дешифратор диагонали таблицы сложения
  19. Сумматор девятиричный симметричный
  20. 1 2 Шестнадцатиричный сумматор
  21. Двоичный сумматор. Таблица 1
  22. Сумматор, 4-х битный, полный, параллельногрупповой (табличный), на ПЗУ
  23. Шестнадцатиричный сумматор#Шестнадцатиричный табличный сумматор на ПЗУ со схемой ускоренного переноса
  24. Сумматор двадцатисемиричный симметричный
  25. Carry-lookahead adder. Implementation details

Литература[править | править вики-текст]

  • Угрюмов Е. П. Элементы и узлы ЭЦВМ. М.: Высшая школа, 1976. — 232 с.
  • Угрюмов Е. П. Цифровая схемотехника. — СПб.: БХВ-Петербург, 2001. — 528 с.
  • Жан М. Рабаи, Ананта Чандракасан, Боривож Николич. 11. Проектирование арифметических блоков: Сумматор // Цифровые интегральные схемы. Методология проектирования = Digital Integrated Circuits. — 2-е изд. — М.: Вильямс, 2007. — С. 912. — ISBN 0-13-090996-3.

Ссылки[править | править вики-текст]