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. А дальше просто наслаиваешь эти сумматоры друг на друга, соединяешь разными хитрыми образами, и у тебя получается всё более и более сложная вычислительная машина.
Кому нужны эти транзисторы? Тем, кто будет управлять миром
В будущем останется две профессии: программист и массажист для его утомленной шеи. Если у вас сильные руки и хорошая выносливость, пролистывайте. Если нет — вот билет в профессию будущего.
Начать карьеру в ИТ
Кому нужны эти транзисторы? Тем, кто будет управлять миром Кому нужны эти транзисторы? Тем, кто будет управлять миром Кому нужны эти транзисторы? Тем, кто будет управлять миром Кому нужны эти транзисторы? Тем, кто будет управлять миром
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Андрюха, у нас логика! Возможно, криминал

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

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

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

medium
Как писать код и сразу видеть результат

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

medium
Чем занимаются бэкенд-разработчики
Чем занимаются бэкенд-разработчики

Никто не видит, но все пользуются.

easy
Зарплата 180 000. Что нужно уметь разработчику
Зарплата 180 000. Что нужно уметь разработчику

Кто готов платить эти деньги и за что.

easy
Как устроена межпланетная файловая система
Как устроена межпланетная файловая система

Это не шутка, такое уже работает

medium
Языку C уже почти 50 лет, но он всё равно крут
Языку C уже почти 50 лет, но он всё равно крут

Почему на нём программируют до сих пор.

easy
Разбор: экраны Apple iPhone 15 выгорают, а смартфоны с iOS 17 теряют Wi-Fi
Разбор: экраны Apple iPhone 15 выгорают, а смартфоны с iOS 17 теряют Wi-Fi

Связь можно починить самому, а экран — вряд ли

medium
Rust — молодой и дерзкий язык программирования
Rust — молодой и дерзкий язык программирования

Говорят, что это одновременно C++ и Haskell.

medium
hard