Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Сумматор является цифровой схемой , которая выполняет сложение чисел. Во многих компьютерах и других типах процессоров сумматоры используются в арифметико-логических устройствах или АЛУ . Они также используются в других частях процессора, где они используются для вычисления адресов , индексов таблиц, операторов увеличения и уменьшения и подобных операций.

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

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

Полусумматор [ править ]

Логическая схема полусумматора
Полусумматор в действии

Половина сумматор добавляет две отдельные двоичные цифры A и B . Он имеет два выхода: сумма ( S ) и перенос ( C ). Сигнал переноса представляет собой переход к следующей цифре многозначного сложения. Значение суммы составляет 2 С + С . Простая конструкция полусумматора, изображенная справа, включает в себя ворота XOR для S и и ворота для C . Булева логика для суммы (в данном случае S ) будет A′B + AB ′, тогда как для переноса ( C) будет AB . С добавлением логического элемента ИЛИ для объединения их выходов переноса два полусумматора могут быть объединены в полный сумматор. [1] Полусумматор складывает два входных бита и генерирует перенос и сумму, которые являются двумя выходами полусумматора. Входные переменные полусумматора называются дополнительными и дополнительными битами. Выходные переменные - это сумма и перенос. Таблица истинности для полусумматора:

Полусумматор, использующий только вентили NAND.

Полный сумматор [ править ]

Логическая схема для полного сумматора.
Полный сумматор в действии. Полный сумматор дает количество единиц на входе в двоичном представлении.
Схематический символ для 1-битного полного сумматора с C in и C out, нарисованными на сторонах блока, чтобы подчеркнуть их использование в многобитном сумматоре

Полный сумматор добавляет двоичные числа и счета для значений , переносимых в, так и снаружи. Один-бит полный сумматор добавляет три один-битных чисел, часто пишется как A , B и C в ; A и B - это операнды, а C in - это бит, перенесенный из предыдущего менее значимого этапа. [2] Полный сумматор обычно является компонентом каскада сумматоров, которые складывают 8, 16, 32 и т. Д. Двоичные числа. Схема выдает двухбитный выходной сигнал. Выходной перенос и сумма обычно представлены сигналами C out и S , где сумма равна 2 C out.+ S .

Полный сумматор может быть реализован множеством различных способов, например, с помощью специальной схемы на уровне транзистора или составлен из других вентилей. Один пример реализации: S = ABC in и C out = ( AB ) + ( C in ⋅ ( AB )) .

В этой реализации последний логический элемент ИЛИ перед выходом переноса может быть заменен логическим элементом исключающее ИЛИ без изменения результирующей логики. Использование только двух типов вентилей удобно, если схема реализуется с использованием простых микросхем интегральной схемы, которые содержат только один тип вентилей на микросхему.

NOR Полный сумматор

Полный сумматор также может быть построен из двух полусумматоров, подключив A и B ко входу одного полусумматора, затем взяв его суммарный выход S в качестве одного из входов для второго полусумматора и C в качестве другого входа, и наконец, выходы переноса двух полусумматоров подключаются к логическому элементу ИЛИ. Суммарный выход второго полусумматора - это конечный суммарный выход ( S ) полного сумматора, а выход логического элемента ИЛИ - это конечный выход переноса ( C out ). Критический путь полного сумматора проходит через оба логических элемента XOR и заканчивается на суммирующем бите s.. Предполагая, что вентиль XOR занимает 1 задержку для завершения, задержка, вызванная критическим путем полного сумматора, равна

Критический путь переноса проходит через один вентиль XOR в сумматоре и через 2 логических элемента (AND и OR) в блоке переноса, и поэтому, если логическим элементам AND или OR требуется 1 задержка для завершения, задержка составляет

Таблица истинности для полного сумматора:

Сумматоры, поддерживающие несколько битов [ править ]

Сумматор с переносом пульсации [ править ]

4-битный сумматор с показанной логической блок-схемой
Десятичный 4-значный сумматор переноса пульсации. FA = полный сумматор, HA = полусумматор.

Можно создать логическую схему, используя несколько полных сумматоров для добавления N- битных чисел. Каждый полный сумматор вводит C in , который является C из предыдущего сумматора. Этот вид сумматора называется сумматором с пульсационным переносом (RCA), поскольку каждый бит переноса "пульсирует" до следующего полного сумматора. Обратите внимание, что первый (и только первый) полный сумматор может быть заменен полусумматором (при условии, что C in = 0).

Компоновка сумматора с волновым переносом проста, что позволяет сократить время разработки; однако сумматор с пульсационным переносом работает относительно медленно, поскольку каждый полный сумматор должен ждать, пока бит переноса будет вычислен из предыдущего полного сумматора. Задержка затвора может быть легко вычислен путем проверки полной суммирующей схемы. Каждый полный сумматор требует трех уровней логики. В 32-битном сумматоре с переносом пульсации имеется 32 полных сумматора, поэтому задержка критического пути (наихудший случай) равна 3 (от входа до переноса в первом сумматоре) + 31 × 2 (для распространения переноса в последних сумматорах) = 65 задержки выхода на посадку. [3] Общее уравнение для задержки наихудшего случая для n -битного сумматора пульсации переноса, учитывающее как сумму, так и биты переноса, выглядит следующим образом:

Конструкция с чередующимися полярностями переноса и оптимизированными вентилями И-ИЛИ-Инвертировать может работать примерно в два раза быстрее. [4]

4-битный сумматор с опережающим переносом

Сумматор с упреждением [ править ]

Чтобы сократить время вычислений, инженеры разработали более быстрые способы сложения двух двоичных чисел с помощью сумматоров с упреждающим переносом (CLA). Они работают, создавая два сигнала ( P и G ) для каждой битовой позиции в зависимости от того, распространяется ли перенос из менее значимой битовой позиции (по крайней мере, один вход равен 1), генерируемых в этой битовой позиции (оба входа равны 1 ) или убит в этой битовой позиции (оба входа равны 0). В большинстве случаев P - это просто выход суммы полусумматора, а G - выход переноса того же сумматора. После того, как сгенерированы P и G, создаются переносы для каждой битовой позиции. Некоторые передовые архитектуры с упреждающим просмотром - этоМанчестерская цепь переноса , сумматор Брента – Кунга (BKA) [5] и сумматор Когге – Стоуна (KSA). [6] [7]

Некоторые другие архитектуры многобитового сумматора разбивают сумматор на блоки. Можно изменять длину этих блоков в зависимости от задержки распространения схем для оптимизации времени вычислений. Эти блочные сумматоры включают сумматор пропуска переноса (или обхода переноса), который будет определять значения P и G для каждого блока, а не каждого бита, и сумматор выбора переноса, который предварительно генерирует сумму и значения переноса для любого возможного переноса. введите (0 или 1) в блок, используя мультиплексоры для выбора соответствующего результата, когда известен бит переноса.

64-битный сумматор

Комбинируя несколько сумматоров с упреждающим переносом, можно создавать сумматоры еще большего размера. Это можно использовать на нескольких уровнях для создания еще более крупных сумматоров. Например, следующий сумматор представляет собой 64-битный сумматор, который использует четыре 16-битных CLA с двумя уровнями блоков опережающего переноса .

Другие конструкции сумматор включают кэрри-выберите гадюка , условная сумма сумматор , кэрри-пропуском сумматор и кэрри-полный сумматор.

Сумматоры Carry-save [ править ]

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

3: 2 компрессора [ править ]

Полный сумматор можно рассматривать как компрессор с потерями 3: 2 : он суммирует три однобитовых входа и возвращает результат как одно двухбитное число; то есть он отображает 8 входных значений на 4 выходных значения. Таким образом, например, двоичный вход 101 дает результат 1 + 0 + 1 = 10 (десятичное число 2). Выполнение представляет собой один бит результата, а сумма представляет собой нулевой бит. Точно так же полусумматор можно использовать как компрессор с потерями 2: 2 , сжимая четыре возможных входа в три возможных выхода.

Такие компрессоры можно использовать для ускорения суммирования трех или более слагаемых. Если слагаемых ровно три, макет называется сумматором с сохранением переноса . Если слагаемых четыре или более, необходимо более одного уровня компрессоров, и существуют различные возможные конструкции контура: наиболее распространенными являются деревья Дадды и Уоллеса . Этот вид схемы чаще всего используется в умножителях , поэтому эти схемы также известны как умножители Дадды и Уоллеса.

См. Также [ править ]

  • Вычитатель
  • Электронный микшер - для добавления аналоговых сигналов

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

  1. ^ Ланкастер, Джеффри А. (2004). Разработка и разработка программного обеспечения Excel HSC . Паскаль Пресс. п. 180. ISBN 978-1-74125175-3.
  2. ^ Мано, М. Моррис (1979). Цифровая логика и компьютерный дизайн . Прентис-Холл . С.  119–123 . ISBN 978-0-13-214510-7.
  3. ^ Satpathy, Пинаки (2016). Разработка и реализация сумматора Carry Select с использованием T-Spice . Якорное академическое издательство. п. 22. ISBN 978-3-96067058-2.
  4. ^ Берджесс, Нил (2011). Сумматоры с быстрым переносом пульсаций в СБИС КМОП со стандартной ячейкой . 20-й симпозиум IEEE по компьютерной арифметике . С. 103–111.
  5. ^ Брент, Ричард Пирс ; Кунг, Сян Дэ (март 1982 г.). «Обычный макет для параллельных сумматоров» . Транзакции IEEE на компьютерах . С-31 (3): 260–264. DOI : 10.1109 / TC.1982.1675982 . ISSN 0018-9340 . S2CID 17348212 .  
  6. ^ Когге, Питер Майкл ; Стоун, Гарольд С. (август 1973 г.). «Параллельный алгоритм эффективного решения общего класса рекуррентных уравнений». Транзакции IEEE на компьютерах . С-22 (8): 786–793. DOI : 10.1109 / TC.1973.5009159 . S2CID 206619926 . 
  7. ^ Рейндерс, Неле; Дехайн, Вим (2015). Сверхнизковольтная конструкция энергоэффективных цифровых схем . Аналоговые схемы и серия обработки сигналов . Аналоговые схемы и обработка сигналов (ACSP) (1-е изд.). Чам, Швейцария: Springer International Publishing AG, Швейцария . DOI : 10.1007 / 978-3-319-16136-5 . ISBN 978-3-319-16135-8. ISSN  1872-082X . LCCN  2015935431 .

Дальнейшее чтение [ править ]

  • Лю, Цо-Кай; Хохулин, Кейт Р .; Шиау, Лих-Эр; Мурога, Сабуро (январь 1974 г.). «Оптимальные однобитовые полные сумматоры с разными типами вентилей». Транзакции IEEE на компьютерах . Bell Laboratories: IEEE . С-23 (1): 63–70. DOI : 10.1109 / TC.1974.223778 . ISSN  0018-9340 . S2CID  7746693 .
  • Лай, Хунг Чи; Мурога, Сабуро (сентябрь 1979 г.). «Минимальные двоичные параллельные сумматоры с вентилями NOR (NAND)». Транзакции IEEE на компьютерах . IEEE . С-28 (9): 648–659. DOI : 10.1109 / TC.1979.1675433 . S2CID  23026844 .
  • Мид, Карвер; Конвей, Линн (1980) [декабрь 1979]. Введение в системы СБИС (1-е изд.). Ридинг, Массачусетс, США: Аддисон-Уэсли . Bibcode : 1980aw ... книга ..... M . ISBN 978-0-20104358-7. Проверено 12 мая 2018 .
  • Давио, Марк; Дешам, Жан-Пьер; Тэйз, Андре (1983). Цифровые системы с алгоритмической реализацией (1-е изд.). Исследовательская лаборатория Philips , Брюссель, Бельгия: John Wiley & Sons , публикация Wiley-Interscience. ISBN 978-0-471-10413-1. LCCN  82-2710 .

Внешние ссылки [ править ]

  • Аппаратные алгоритмы для арифметических модулей , включает описание нескольких схем сумматора с фигурами.
  • 8-битный полный сумматор и вычитатель , демонстрация интерактивного полного сумматора, встроенного в JavaScript, исключительно для учебных целей.
  • Интерактивное моделирование полного сумматора (требуется Java), интерактивная схема полного сумматора, созданная с помощью онлайн-симулятора цепей Teahlab.
  • Интерактивное моделирование полусумматора (требуется Java), схема полусумматора, созданная с помощью симулятора цепей Teahlab.
  • 4-битное моделирование полного сумматора, встроенное в Verilog, и прилагаемое к нему видео- руководство по полному сумматору Ripple Carry
  • Ширрифф, Кен (ноябрь 2020 г.). «Обратный инжиниринг схемы переноса вперед в процессоре Intel 8008» .