Предыдущий урок: Как работает компьютер? Часть 26. Мини-компьютер из логики
В прошлом уроке мы познакомились с полусумматором. Это была наша первая вычислительная схема: она складывала два бита и показывала результат и перенос. Но у полусумматора был один серьёзный недостаток: он не умел учитывать перенос из предыдущего разряда.
Почему это так важно? Потому что в реальности процессор не складывает один бит с другим — он работает хотя бы с байтами, то есть с восемью битами одновременно. А при сложении многобитных чисел почти всегда возникает перенос. Представьте, что мы складываем два числа: 1011 и 0111. Сначала складываются младшие биты: 1 + 1 = 10. Мы должны записать 0, а единицу передать в следующий разряд. Но если использовать только полусумматоры, мы не сможем правильно учесть эту единицу. Именно поэтому нам нужен полный сумматор.
Полный сумматор — это логическая схема, которая складывает не два, а три входа. Два из них — это наши основные биты A и B, а третий — это перенос из предыдущего разряда, который обычно называют Cin. У полного сумматора также два выхода: сумма (S) и перенос (C).
Работает он так: складываем A и B, а потом учитываем, есть ли перенос из предыдущего разряда. Таким образом, полный сумматор решает задачу многобитного сложения. Каждый разряд числа складывается с учётом того, что «передал» ему предыдущий.
Чтобы понять работу полного сумматора, снова посмотрим таблицу истинности. На входе три значения: A, B и Cin. На выходе два значения: сумма (S) и перенос (C).
Если внимательно рассмотреть эту таблицу, то можно заметить интересный факт: полный сумматор на самом деле можно построить из двух полусумматоров и одного элемента OR (Cin = Сумма (S) OR Перенос (С)). Сначала полусумматор складывает A и B. Затем второй полусумматор складывает результат с Cin. А итоговые переносы складываются с помощью OR, чтобы получить C.
Теперь можно представить схему. На вход идут A, B и Cin. Сначала они попадают в первый полусумматор, затем во второй. А выходы переносятся на элемент OR. В результате мы получаем два сигнала: сумма и перенос.
Представим, что мы складываем A = 1, B = 1 и перенос из предыдущего разряда равен 0. Тогда результат будет сумма = 0, перенос = 1. Если же к этим же входам добавить перенос Cin = 1, то сумма уже станет равна 1, а перенос сохранится равным 1. То есть полный сумматор действительно учитывает всё, что ему передали.
Ещё пример: A = 0, B = 1, Cin = 1. Сначала 0 + 1 = 1. Потом этот результат складываем с Cin = 1, получаем 10 в двоичной системе. Итог: сумма = 0, перенос = 1.
Теперь становится понятно, почему полный сумматор важен для процессора. Он — основной строительный блок многобитных сумматоров о которых мы поговорим в следующем уроке. Чтобы сложить байт, процессор соединяет восемь полных сумматоров цепочкой: перенос от младшего разряда передаётся на следующий, затем на следующий, и так до самого старшего разряда. В результате процессор умеет складывать целые числа.
Полный сумматор — это пример того, как простые логические схемы начинают выполнять работу, похожую на настоящую математику. Именно благодаря ему процессор получает способность к арифметике. В будущем мы увидим, что на базе полного сумматора строятся не только сложение, но и вычитание, а ещё множество других операций.
Еще разок. Чтобы объяснить работу полного сумматора, можно сравнить её с привычным сложением в столбик. Когда мы складываем многозначные числа, мы начинаем с правого края. Складываем две цифры. Если получается больше девяти, мы пишем только последнюю цифру, а единицу переносим в следующий разряд. В двоичной системе то же самое: складываем два бита, и если получается больше единицы, переносим дополнительный бит дальше. Полусумматор умел только складывать «две цифры», а полный сумматор уже учитывает «единицу сверху», которую мы переносим из прошлого разряда.
Спасибо за внимание!
Следующий урок: Как работает компьютер? Часть 28. Многобитный сумматор — учим компьютер складывать числа
Если вам интересно копать глубже, разбирать реальные кейсы и получать знания, которых нет в открытом доступе — вам в IT Extra Premium.
Что внутри?
✅ Закрытые публикации: Детальные руководства, разборы сложных тем (например, архитектура высоконагруженных систем, глубокий анализ уязвимостей, оптимизация кода, полезные инструменты и объяснения сложных тем простым и понятным языком).
✅ Конкретные инструкции: Пошаговые мануалы, которые вы сможете применить на практике уже сегодня.
✅ Без рекламы и воды: Только суть, только концентрат полезной информации.
✅ Ранний доступ: Читайте новые материалы первыми.
Это — ваш личный доступ к экспертизе, упакованной в понятный формат. Не просто теория, а инструменты для роста.
👉 Переходите на Premium и начните читать то, о чем другие только догадываются.
👍 Ставьте лайки если хотите разбор других интересных тем.
👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи
👇
Понравилась статья? В нашем Telegram-канале ITextra мы каждый день делимся такими же понятными объяснениями, а также свежими новостями и полезными инструментами. Подписывайтесь, чтобы прокачивать свои IT-знания всего за 2 минуты в день!