Сумматор (электроника) - Adder (electronics)
Часть серии по | |||||||
Арифметико-логические схемы | |||||||
---|---|---|---|---|---|---|---|
Быстрая навигация | |||||||
Компоненты
|
|||||||
Смотрите также |
|||||||
Сумматор является цифровой схемой , которая выполняет сложение чисел. Во многих компьютерах и других типах процессоров сумматоры используются в арифметико-логических устройствах или АЛУ . Они также используются в других частях процессора, где они используются для вычисления адресов , индексов таблиц, операторов увеличения и уменьшения и подобных операций.
Хотя сумматоры могут быть построены для многих представлений чисел , таких как десятичное двоичное кодирование или избыточное число , наиболее распространенные сумматоры работают с двоичными числами . В случаях, когда дополнение до двух или до единиц используется для представления отрицательных чисел , легко преобразовать сумматор в сумматор-вычитатель . Другие представления чисел со знаком требуют большей логики в отношении базового сумматора.
Двоичные сумматоры
Полусумматор
Половина сумматор добавляет две отдельные двоичные цифры A и B . Он имеет два выхода: сумма ( S ) и перенос ( C ). Сигнал переноса представляет собой переход к следующей цифре многозначного сложения. Значение суммы составляет 2 С + С . Простая конструкция полусумматора, изображенная справа, включает в себя ворота XOR для S и и ворота для C . Логическая логика для суммы (в данном случае S ) будет A′B + AB ′, тогда как для переноса ( C ) будет AB . С добавлением логического элемента ИЛИ для объединения их выходов переноса два полусумматора могут быть объединены в полный сумматор. Полусумматор складывает два входных бита и генерирует перенос и сумму, которые являются двумя выходами полусумматора. Входные переменные полусумматора называются дополнительными и дополнительными битами. Выходные переменные - это сумма и перенос. Таблица истинности для полусумматора:
Входы Выходы А B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0
Полный сумматор
Полный сумматор добавляет двоичные числа и счета для значений , переносимых в, так и снаружи. Один-бит полный сумматор добавляет три один-битных чисел, часто пишется как A , B и C в ; A и B - это операнды, а C in - это бит, перенесенный из предыдущего менее значимого этапа. Полный сумматор обычно является компонентом каскада сумматоров, которые складывают 8, 16, 32 и т. Д. Двоичные числа. Схема выдает двухбитный выходной сигнал. Выходной сигнал перенос и сумма , как правило , представлены сигналы C вне и S , где сумма равна 2 C из + S .
Полный сумматор может быть реализован множеством различных способов, например, с помощью специальной схемы на уровне транзистора или составлен из других вентилей. Один пример реализации: S = A ⊕ B ⊕ C in и C out = ( A ⋅ B ) + ( C in ⋅ ( A ⊕ B )) .
В этой реализации последний логический элемент ИЛИ перед выходом переноса может быть заменен логическим элементом исключающее ИЛИ без изменения результирующей логики. Использование только двух типов вентилей удобно, если схема реализуется с использованием простых микросхем интегральной схемы, которые содержат только один тип вентилей на микросхему.
Полный сумматор также может быть построен из двух полусумматоров, подключив A и B ко входу одного полусумматора, затем взяв его суммарный выход S в качестве одного из входов для второго полусумматора и C в качестве другого входа, и наконец, выходы переноса двух полусумматоров подключаются к логическому элементу ИЛИ. Суммарный выход второго полусумматора - это конечный суммарный выход ( S ) полного сумматора, а выход логического элемента ИЛИ - это конечный выход переноса ( C out ). Критический путь полного сумматора проходит через оба логических элемента XOR и заканчивается на суммирующем бите s . Предполагая, что вентиль XOR требует 1 задержки для завершения, задержка, вызванная критическим путем полного сумматора, равна
Критический путь переноса проходит через один вентиль XOR в сумматоре и через 2 логических элемента (AND и OR) в блоке переноса, и поэтому, если логическим элементам AND или OR требуется 1 задержка для завершения, задержка составляет
Полный сумматор может быть реализован с использованием девяти вентилей NAND .
Таблица истинности для полного сумматора:
Входы Выходы А B C в C из S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1
Инвертирование всех входов полного сумматора также инвертирует все его выходы, что может быть использовано в конструкции сумматоров с быстрым переносом пульсации, поскольку нет необходимости инвертировать перенос.
Сумматоры, поддерживающие несколько битов
Сумматор с пульсационным переносом
Можно создать логическую схему, используя несколько полных сумматоров для добавления N- битных чисел. Каждый полный сумматор вводит C in , который является C из предыдущего сумматора. Этот вид сумматора называется сумматором с пульсационным переносом (RCA), поскольку каждый бит переноса "пульсирует" до следующего полного сумматора. Обратите внимание, что первый (и только первый) полный сумматор может быть заменен полусумматором (при условии, что C in = 0).
Компоновка сумматора с волновым переносом проста, что позволяет сократить время разработки; однако сумматор с пульсационным переносом работает относительно медленно, поскольку каждый полный сумматор должен ждать, пока бит переноса будет вычислен из предыдущего полного сумматора. Задержка затвора может быть легко вычислен путем проверки полной суммирующей схемы. Каждый полный сумматор требует трех уровней логики. В 32-битном сумматоре с переносом пульсации имеется 32 полных сумматора, поэтому задержка критического пути (наихудший случай) равна 3 (от входа до переноса в первом сумматоре) + 31 × 2 (для распространения переноса в последних сумматорах) = 65 задержки выхода на посадку. Общее уравнение для задержки в наихудшем случае для n -битного сумматора пульсации переноса, учитывающее как сумму, так и биты переноса, выглядит следующим образом:
Конструкция с чередующимися полярностями переноса и оптимизированными вентилями И-ИЛИ-Инвертировать может работать примерно в два раза быстрее.
Сумматор с упреждением
Чтобы сократить время вычислений, инженеры разработали более быстрые способы сложения двух двоичных чисел с помощью сумматоров с упреждающим переносом (CLA). Они работают, создавая два сигнала ( P и G ) для каждой битовой позиции в зависимости от того, распространяется ли перенос из менее значимой битовой позиции (по крайней мере, один вход равен 1), генерируемых в этой битовой позиции (оба входа равны 1 ) или убит в этой битовой позиции (оба входа равны 0). В большинстве случаев P - это просто выход суммы полусумматора, а G - выход переноса того же сумматора. После того, как сгенерированы P и G, создаются переносы для каждой битовой позиции. Некоторые усовершенствованные архитектуры с упреждающим переносом - это манчестерская цепочка переноса , сумматор Брента-Кунга (BKA) и сумматор Когге-Стоуна (KSA).
Некоторые другие архитектуры многобитового сумматора разбивают сумматор на блоки. Можно изменять длину этих блоков в зависимости от задержки распространения схем для оптимизации времени вычислений. Эти блочные сумматоры включают сумматор с пропуском переноса (или обходом переноса), который будет определять значения P и G для каждого блока, а не для каждого бита, и сумматор с выбором переноса, который предварительно генерирует сумму и значения переноса для любого возможного переноса. введите (0 или 1) в блок, используя мультиплексоры для выбора соответствующего результата, когда известен бит переноса.
Комбинируя несколько сумматоров с упреждающим переносом, можно создавать сумматоры еще большего размера. Это можно использовать на нескольких уровнях для создания еще более крупных сумматоров. Например, следующий сумматор представляет собой 64-битный сумматор, который использует четыре 16-битных CLA с двумя уровнями блоков опережающего переноса .
Другие конструкции сумматор включают кэрри-выберите гадюка , условная сумма сумматор , кэрри-пропуском сумматор и кэрри-полный сумматор.
Сумматоры Carry-save
Если схема сложения должна вычислять сумму трех или более чисел, может быть полезно не распространять результат переноса. Вместо этого используются трехвходовые сумматоры, генерирующие два результата: сумму и перенос. Сумма и перенос могут подаваться на два входа последующего сумматора с 3 числами, не дожидаясь распространения сигнала переноса. Однако после всех этапов сложения необходимо использовать обычный сумматор (такой как волновой перенос или опережающий просмотр) для объединения окончательной суммы и результатов переноса.
3: 2 компрессора
Полный сумматор можно рассматривать как компрессор с потерями 3: 2 : он суммирует три однобитовых входа и возвращает результат как одно двухбитное число; то есть он отображает 8 входных значений на 4 выходных значения. Таким образом, например, двоичный вход 101 дает результат 1 + 0 + 1 = 10 (десятичное число 2). Выполнение представляет собой один бит результата, а сумма представляет собой нулевой бит. Точно так же полусумматор можно использовать как компрессор с потерями 2: 2 , сжимая четыре возможных входа в три возможных выхода.
Такие компрессоры можно использовать для ускорения суммирования трех или более слагаемых. Если слагаемых ровно три, макет называется сумматором с сохранением переноса . Если слагаемых четыре или более, необходимо более одного уровня компрессоров, и существуют различные возможные конструкции для контура: наиболее распространенными являются деревья Дадды и Уоллеса . Этот вид схемы чаще всего используется в умножителях , поэтому эти схемы также известны как умножители Дадды и Уоллеса.
Квантовый полный сумматор
Используя только квантовые логические вентили Тоффоли и CNOT , можно создать квантовую схему, которая выполняет сложение.
Эту же схему можно использовать в классических обратимых вычислениях .
Смотрите также
- Двоичный множитель
- Вычитатель
- Электронный микшер - для добавления аналоговых сигналов
использованная литература
дальнейшее чтение
- Лю, Цо-Кай; Хохулин, Кейт Р .; Шиау, Лих-Эр; Мурога, Сабуро (январь 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» .