Сумматор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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:

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

Схема, которая обеспечивает сложение двух однобитных чисел А и В без получения бита переноса из предыдущего разряда называют полусумматором. Полусумматор имеет 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

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

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

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

+ 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 соответствующей прошивкой как десятичный сумматор (десятиричный) могут работать шестнадцатиричный сумматор и двадцатисемиричный сумматор-вычитатель на ПЗУ.

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

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

Например, параллельный 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. http://schools.keldysh.ru/sch444/MUSEUM/1_17-20n.htm Страницы истории. 1938 год
  4. Hardware algorithms for arithmetic modules
  5. Adder Designs
  6. 3 Сложение и вычитание двоичных чисел. Двоичные сумматоры. Стр.30. Рис.12.Схема сумматора с пропуском переноса carry-skip adder
  7. Таненбаум Э.- Архитектура компьютера. стр.130

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

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

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