Как сложить два числа с помощью транзисторов
hard

Как сложить два числа с помощью транзисторов

Продолжение легендарной саги.

Что мы уже знаем о транзисторах:

  1. Это устройство, похожее на кран, только для электричества, и он либо пропускает сквозь себя ток, либо не пропускает.
  2. Если такие «краны» правильно соединить, то можно создать иллюзию полезной для человека работы — например, суммирования.
  3. На транзисторах основаны все современные компьютерные вычисления. Современные транзисторы очень маленькие — в буквальном смысле микроскопические. Они соединены сложным образом внутри всех наших процессоров, контроллеров и даже памяти.
  4. Транзисторы сами по себе ничего не понимают. Они просто перемешивают электричество. Но если их правильно соединить и их будет много, от этого перемешивания получится значительная польза, от автоматических и очень быстрых математических операций до современных компьютеров.

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

Нам потребуется вспомнить эту картинку, которая обозначает принцип действия транзистора:

Тут ток течёт слева направо. На транзистор подаётся управляющий ток, который этот транзистор «открывает», и ток течёт. Если управляющий ток выключить, то транзистор «закроется», движение тока остановится.

Транзисторная логика

У транзисторов есть три принципиальных способа соединения, которые соответствуют трём базовым логическим операциям. Если понимать эти способы и логику, вы поймёте архитектуру всего компьютерного мира. Запоминать и учить её не надо, достаточно просто увидеть.

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

Операция «НЕ»

Самая простая операция: она меняет значение на противоположное. Так как в компьютерах и транзисторах на базовом уровне существуют только понятия «есть ток» и «нет тока», то тут будет очевидно, что противоположно чему:

НЕ (есть ток) = нет тока

НЕ (нет тока) = есть ток

Эту же запись можно представить так:

НЕ (1) = 0

НЕ (0) = 1

В терминах нашей комнаты с лампочкой это звучит так: «Если выключатель выключен, то лампочка должна гореть». Схема подключения такая:

Инженеры договорились обозначать такую схему вот такой фигурой. Она означает «Логическая операция НЕ»:

Операция «И»

Здесь уже участвуют два параметра, причём результат равен 1 только тогда, когда оба параметра — 1.

0 И 0 = 0

1 И 0 = 0

0 И 1 = 0

1 И 1 = 1

Только в последнем случае у нас получилась единица, потому что оба параметра — единицы. Как только хотя бы один из параметров — ноль, то всё выражение становится равно 0.

Это то же самое, как если бы у нас в комнате было два выключателя, а лампочка загоралась бы только тогда, когда включены оба.

На схемах такой логический элемент обозначается так, два входа и один выход:

Операция «ИЛИ»

Тоже работает с двумя параметрами, но по другим правилам: если хотя бы одна единица есть, результат тоже будет единицей.

0 ИЛИ 0 = 0

1 ИЛИ 0 = 1

0 ИЛИ 1 = 1

1 ИЛИ 1 = 1

Эта операция смотрит, есть ли хоть одна единица, одна или вторая, или вообще обе, и если находит её — сразу тоже становится единицей.

В терминах комнаты с лампочкой: чтобы лампочка загорелась, должен быть включён хотя бы один выключатель.

На схемах такой логический элемент обозначается так:

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

Что дальше

Комбинируя эти три логические схемы (там есть ещё четвёртая, она делается из трёх основных), мы сможем собрать такой каскад транзисторов, который поможет нам складывать числа. Забегая немного вперёд, вот каскад, который способен сложить два числа, если эти числа — единицы или ноли:

Этот каскад может сложить число размером 1 бит (единица или ноль). Его возможные результаты:

00 — ноль

01 — единица

10 — двойка в двоичном счислении

Если такой каскад «схлопнуть» до одной коробочки (и немного допилить), а потом соединить между собой несколько коробочек, можно складывать более сложные числа. Например, такой каскад сложит два числа до 4 бит, от 0 до 15:

Что мы узнали на этом этапе.

  1. Транзисторы можно соединять по-разному: по цепочке, параллельно, как-то ещё хитро.
  2. В зависимости от схемы соединения эта конструкция из транзисторов будет давать разные результаты. Например, лампочка будет гореть при выключенном выключателе. Или будет гореть, когда включён хотя бы один. Или когда включены оба.
  3. Эти схемы соединений помогают воспроизвести простые логические операции: НЕ, И, ИЛИ.
  4. Из этих логических операций можно собрать простейший сумматор единицы и ноля.
  5. Из простейшего сумматора можно каскадом собрать более сложный, например, для чисел от 0 до 15.
  6. А дальше просто наслаиваешь эти сумматоры друг на друга, соединяешь разными хитрыми образами, и у тебя получается всё более и более сложная вычислительная машина.

Обложка:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Вам может быть интересно
Код и IDE (integrated development environment)

Обзор инструментов крутых программистов.

medium
Андрюха, у нас логика! Возможно, криминал

Логическая задача о преступности.

easy
Все опять заговорили про VPN. Что это такое, объясни мне!

Мы не можем вам сказать. Но можем показать.

medium
Что такое непозиционная система счисления

Разбираем на примере римской системы

easy
Это скрипт или программа? Как их отличать и зачем

Немного матчасти для тех, кто хочет глубже понимать программирование

medium
Всё, что нужно знать о конструкторах в Python

Ну или почти всё

hard
Что такое классы в объектно-ориентированном программировании

Глубокое погружение в самую сложную и неинтуитивную область программирования.

medium
Как работает GPS

И почему он иногда ошибается с координатами

easy
Ремонт Apple изнутри: что происходит за кулисами в мастерских

О работе Apple, сервисе, гарантии, деталях и удалённой блокировке устройств

easy
hard
[anycomment]
Exit mobile version