Анатомия сумматора

Как заставить провода сложить два числа? Здесь на помощь приходят уже знакомые нам логические вентили.

Чтобы сложить два бита, нам нужно получить два результата: саму сумму и бит переноса (ту самую «единицу в уме», если мы складываем 1+1). Идеально для вычисления суммы подходит вентиль XOR (Исключающее ИЛИ) — он выдаст 1, только если на входах 0 и 1, и выдаст 0, если на входах две единицы. А чтобы поймать бит переноса, мы параллельно ставим вентиль AND (И) — он сработает только тогда, когда мы складываем две единицы одновременно.

Такая связка из XOR и AND называется «полусумматором». Но чтобы складывать большие числа цепочкой, нам нужен «полный сумматор». Его главное отличие в том, что у него есть третий вход — он умеет принимать бит переноса от своего младшего соседа. Каскад из таких полных сумматоров может сложить числа любой длины!

Практический пример. Чтобы сложить два 8-битных числа (например, 113 + 29), цепочка из восьми полных сумматоров работает одновременно. На входы младшего сумматора подаются два младших бита (1 и 1), он вычисляет сумму 0 и перенос 1. Этот перенос тут же уходит на вход следующего сумматора, который складывает уже три сигнала: бит A, бит B и входящий перенос. За один проход сигнала через всю цепочку процессор получает готовый 8-битный результат.