Найти в Дзене
IT Еxtra

Как работает компьютер? Часть 28. Многобитный сумматор — учим компьютер складывать числа

Предыдущий урок: Как работает компьютер? Часть 27. Полный сумматор — складываем с переносом Мы уже познакомились с полусумматором, который складывал два бита, и с полным сумматором, который умел учитывать перенос из предыдущего разряда. Эти знания были важны, но пока мы оставались на уровне отдельных битов. Однако компьютер, как мы знаем, работает не с одним-единственным битом, а с целыми числами: байтами, словами и даже ещё большими блоками данных. Поэтому наш следующий шаг — построить устройство, которое сможет складывать многобитные числа. Такое устройство называется многобитным сумматором. Многобитный сумматор — это настоящая «машина для сложения». Он объединяет несколько полных сумматоров в цепочку. Перенос от младшего разряда поступает в следующий, затем в следующий, и так до старшего разряда. Получается, что мы как будто складываем числа в столбик, но только с помощью логических схем. Именно этот переход — от одного разряда к многим — делает наш проект похожим на настоящий проце

Предыдущий урок: Как работает компьютер? Часть 27. Полный сумматор — складываем с переносом

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

Многобитный сумматор — это настоящая «машина для сложения». Он объединяет несколько полных сумматоров в цепочку. Перенос от младшего разряда поступает в следующий, затем в следующий, и так до старшего разряда. Получается, что мы как будто складываем числа в столбик, но только с помощью логических схем. Именно этот переход — от одного разряда к многим — делает наш проект похожим на настоящий процессор.

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

Представьте себе электрическую «эстафету»: каждый сумматор передаёт дальше сигнал о том, что в его разряде «переполнилось» и нужно прибавить единицу к следующему. Эта цепочка и есть многобитный сумматор.

Допустим, у нас есть два числа: A = 101 (пять в десятичной системе) и B = 011 (три в десятичной системе). Перед нами процесс трёхбитного сумматора.

  1. Сначала складываются младшие биты: 1 + 1 = 10. На выходе записываем 0, а перенос равен 1.
  2. Далее складываем второй разряд: 0 + 1 + перенос 1 = 10. Снова записываем 0, перенос = 1.
  3. Наконец, третий разряд: 1 + 0 + 1 = 10. Записываем 0, перенос снова равен 1.

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

-2

Чтобы построить многобитный сумматор, достаточно соединить несколько полных сумматоров в цепочку. Например, если мы хотим складывать байты (8 бит), то нам нужно 8 полных сумматоров. У каждого из них есть свои входы A и B, а также вход переноса Cin. Этот перенос приходит из предыдущего сумматора. У первого сумматора Cin равен 0, потому что переноса «из ниоткуда» быть не может.

IT Extra

Многобитный сумматор — это первый настоящий компонент арифметико-логического устройства (АЛУ). Именно он выполняет операцию сложения, которая лежит в основе почти всех остальных операций. Вычитание реализуется через сложение с дополнительным кодом. Умножение — через многократное сложение. Деление — через многократное вычитание. То есть, построив многобитный сумматор, мы фактически научили наш будущий процессор работать с числами.

Многобитный сумматор можно сравнить с командой учеников, которые решают задачу в столбик. Первый ученик складывает последние цифры и записывает результат. Если получилось больше десяти, он шепчет соседу: «Добавь единицу!» Сосед прибавляет эту единицу к своему результату и передаёт дальше, если нужно. И так до тех пор, пока вся команда не справится. В многобитном сумматоре роль учеников играют полные сумматоры, а «шёпот» — это перенос, который передаётся от одного к другому.

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

Спасибо за внимание!

Следующий урок: Как работает компьютер? Часть 29. Вычитание и отрицательные числа — как компьютер учится работать с минусами

👍 Ставьте лайки если хотите разбор других интересных тем.

👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи

________________________________________________________________________👇
Понравилась статья? В нашем Telegram-канале ITextra мы каждый день делимся такими же понятными объяснениями, а также свежими новостями и полезными инструментами. Подписывайтесь, чтобы прокачивать свои IT-знания всего за 2 минуты в день!

IT Extra