Внутри смартфона или ноутбука — кусок очищенного кремния с микроскопическими транзисторами. Управляя потоком электронов, мы заставляем камень считать, запоминать и думать за нас. Одна операция занимает меньше наносекунды. Раньше «компьютерами» называли людей, которые вручную считали траектории ракет. Это было медленно и дорого. Инженерам нужна была машина.
Первые попытки — механические калькуляторы с шестерёнками. Они изнашивались. Прорыв случился с электрическими переключателями. У них два состояния: открыто (0) и закрыто (1). Комбинируя их, получаем логические вентили: AND (ток идёт, если замкнуты оба), OR (ток идёт, если замкнут хотя бы один), NOT (нормально замкнут, размыкается от напряжения). Из этих трёх вентилей можно собрать любую логику. Например, XOR (исключающее ИЛИ) — основа двоичного сложения.
Числа представляются в двоичной системе (base-2). Сложение двух битов даёт сумму (XOR) и перенос (AND). Соединив такие полусумматоры последовательно, получаем ripple-carry adder — схему, складывающую числа любой длины. Вычитание — сложение отрицательного числа, умножение — повторное сложение.
Ранние компьютеры использовали вакуумные лампы — громоздкие и ненадёжные. В 1947 году изобрели первый транзистор (MOSFET). Напряжение на затворе через изолятор притягивает электроны к поверхности кремния, образуя канал между истоком и стоком — ток идёт. Убрали напряжение — канал исчез. Никаких движущихся частей. Печать тысяч транзисторов на кремниевой пластине дала интегральную схему (чип).
Звук — непрерывное колебание воздуха. Клод Шеннон из Bell Labs в 1948 году формализовал сэмплирование: если измерять аналоговый сигнал достаточно часто, его можно оцифровать и восстановить без потерь. Количество битов на сэмпл (bit depth) определяет число уровней квантования. Цифровой регенератор читает импульс и передаёт чистую копию, отбрасывая шум.
Единицы измерения: бит, байт (8 бит — 256 значений, один символ), килобайт (страница текста), мегабайт (песня), гигабайт (фильм), терабайт (жёсткий диск).
До 1945 года компьютеры (ENIAC) перепрограммировали перекоммутацией кабелей. Джон фон Нейман предложил архитектуру: CPU читает и данные, и инструкции из одной памяти по общей шине. Код операции (opcode) поступает в дешифратор — схему из вентилей, которая активирует нужный блок CPU: загрузку из памяти или цепь сложения.
Чтобы хранить значения, нужны не комбинационные схемы, а память. SR-защёлка из двух NOR-вентилей с обратной связью: выход каждого идёт на вход другого. Но если одновременно подать Set и Reset — логика ломается. D-триггер решает эту проблему: Set и Reset всегда противоположны, а обновление происходит только по фронту тактового сигнала (clock). Это edge-triggered элемент. Регистр — набор D-триггеров.
Из таких ячеек строится RAM — быстрая, но энергозависимая. Для постоянного хранения нужны накопители (SSD, HDD). При включении CPU стартует с ROM (Read-Only Memory), где записана firmware. Она загружает операционную систему с диска в RAM и передаёт управление.
У процессора три части: control unit (читает инструкции), ALU (Arithmetic Logic Unit — выполняет вычисления) и регистры (сверхбыстрая память). Вот и вся машина.