Сари Лада – От транзистора до робота (страница 2)
Вентиль И: выдаёт сигнал «1» только тогда, когда оба входных сигнала равны «1». То есть: «и то, и другое должно быть включено». Как розетка с двумя выключателями — свет горит, только если оба нажаты.
Вентиль ИЛИ: выдаёт «1», если хотя бы один из входов равен «1». Как дверь, которую можно открыть с любой из двух сторон.
Вентиль НЕ: просто инвертирует сигнал. Было «1» — стало «0», и наоборот.
Из этих трёх типов вентилей можно построить любую логическую схему. Буквально любую. Сложение, вычитание, сравнение, выбор — всё это комбинации И, ИЛИ, НЕ.
Например, сумматор — схема, складывающая два однобитных числа, — требует нескольких вентилей (бит суммы, бит переноса). Сумматор для многозначных чисел — больше. Арифметико-логическое устройство (АЛУ) — сердце процессора, которое выполняет математические операции, — это уже тысячи вентилей, то есть десятки тысяч транзисторов. И так далее, слой за слоем.
Компьютер — это иерархия абстракций. На самом нижнем уровне — физика: электроны, кремний, квантовые эффекты. Чуть выше — транзисторы. Ещё выше — логические вентили. Потом — схемы (сумматоры, регистры, счётчики). Потом — процессор. Потом — машинный код. Потом — операционная система. Потом — приложения. Потом — то, что видишь ты на экране.
Каждый слой скрывает от тебя детали нижнего и предоставляет удобный интерфейс для верхнего. Это принцип абстракции, и он — один из главных секретов того, как люди вообще справляются со сложностью. Никто в мире не держит в голове все слои одновременно. Инженер, разрабатывающий чип, не думает о том, как будет выглядеть пользовательский интерфейс приложения. Разработчик приложения не думает о том, как именно транзисторы хранят биты. Каждый работает на своём уровне.
Закон Мура умирает — и что будет дальше
Мы упоминали закон Мура: каждые два года количество транзисторов на чипе удваивается. Это правило работало с поразительной точностью почти полвека. Именно оно обеспечило тот экспоненциальный рост вычислительной мощи, который привёл нас из эпохи комнатных монстров вроде ENIAC в эпоху смартфонов мощнее суперкомпьютеров прошлого.
Но в последние годы закон Мура начинает давать сбои. Транзисторы стали настолько маленькими, что дальнейшая миниатюризация натыкается на фундаментальные физические ограничения. Когда размер транзистора — несколько нанометров, электроны начинают «просачиваться» сквозь барьеры (тонкие слои материала, через который электрон «не должен» проходить) за счёт квантового туннелирования. На квантовом уровне частица не находится в одной точке, она описывается волновой функцией — размытым облаком вероятностей. Это уже не инженерная проблема — это квантовая физика.
Индустрия отвечает на это несколькими способами. Первый — усложнение структуры чипа: вместо того чтобы делать транзисторы ещё меньше, их стали складывать в трёхмерные структуры. Так появились трёхмерные NAND-флеш-память и сложные многоуровневые чипы.
Второй способ — специализация. Вместо одного универсального процессора — несколько специализированных. GPU (графический процессор) считает задачи параллельно, что идеально для графики и нейросетей. NPU (нейронный процессор) оптимизирован специально для операций машинного обучения. TPU (тензорный процессор) разработан Google специально для своих нейросетей. Каждый делает своё дело лучше, чем универсальный.
Третий путь — квантовые вычисления. Это совсем другой принцип: вместо битов, которые равны строго 0 или 1, используются кубиты, которые могут находиться в суперпозиции — одновременно и 0, и 1. Квантовый компьютер может решать определённые задачи экспоненциально быстрее классического. Но технология пока сырая, хранить кубиты без ошибок крайне сложно, и до массового применения ещё далеко.
Так что закон Мура, может быть, и умирает в своей классической форме. Но инженерная изобретательность — нет. Просто теперь рост идёт не по одной оси (уменьшение транзистора), а сразу по нескольким.
Почему это всё важно для нас
Я думаю, что понимать основы технологий, которые пронизывают буквально каждый момент нашей жизни, — это что-то вроде умения читать. Никто не требует, чтобы ты знала лингвистику или историю письменности, чтобы читать книгу. Но понимание того, как язык работает, делает тебя более точным читателем, более внимательным к словам, более свободным в обращении с текстом.
То же самое с технологиями. Когда ты понимаешь, что компьютер — это просто очень быстрые переключатели, организованные очень умным образом, — он перестаёт быть магическим чёрным ящиком. Он становится инструментом.
Ещё одна причина — разговор о будущем. В следующих главах мы дойдём до роботов, до искусственного интеллекта, до вопросов о том, что произойдёт с нашей работой и нашим бытом в ближайшие десятилетия. Эти разговоры намного интереснее, когда ты понимаешь, из чего сделаны эти системы. Из кремния, из единиц и нулей, из логики И/ИЛИ/НЕ.
Итог: от переключателя к миру
Компьютер — это устройство, которое умеет работать с двумя состояниями: ноль и единица. Физически это реализуется через транзисторы — крошечные электронные переключатели на основе кремния. Современный смартфон содержит их больше десяти миллиардов, каждый размером в несколько нанометров.
Транзисторы объединяются в логические вентили (И, ИЛИ, НЕ), те — в схемы, те — в процессоры. Информация кодируется как последовательности битов: тексты, изображения, звук, видео — всё это просто числа, записанные в двоичной системе.
Закон Мура обеспечивал удвоение мощности чипов каждые два года на протяжении полувека. Сейчас классическая миниатюризация замедляется, и индустрия ищет новые пути: трёхмерные структуры, специализированные процессоры, квантовые вычисления.
Что делает процессор — в одном предложении
Процессор выполняет инструкции. Одну за другой, невероятно быстро.
Это звучит скромно. На самом деле это — всё. Буквально всё, что происходит в компьютере, сводится к тому, что процессор получает инструкцию, выполняет её и переходит к следующей. Показать пиксель на экране — инструкция. Сложить два числа — инструкция. Открыть файл — тысячи инструкций, следующих одна за другой.
Программа — это просто очень длинный список инструкций. Когда ты запускаешь браузер, операционная система загружает этот список в память и говорит процессору: «начинай отсюда». Дальше процессор читает и выполняет, читает и выполняет — пока не дойдёт до конца или пока ты не закроешь программу.
Инструкции бывают очень простыми. «Возьми число из ячейки памяти номер 1042». «Прибавь к нему число из ячейки 1043». «Запиши результат в ячейку 1044». «Если результат больше нуля, перейди к инструкции номер 278». Всё. Из таких крошечных шагов складываются операционные системы, игры, нейросети.
Это немного похоже на рецепт. Или на нотный лист. Ноты сами по себе — просто символы на бумаге. Но когда музыкант читает и играет их одну за другой — рождается симфония.
Внутри процессора: анатомия
Процессор — это не однородная пластина кремния. Внутри него несколько чётко разграниченных зон, каждая со своей задачей. Давай пройдёмся по главным.
Арифметико-логическое устройство (АЛУ) — это «рабочие руки» процессора. Именно оно выполняет математические операции: сложение, вычитание, умножение, деление. И логические: сравнение чисел, побитовые операции. Всё, что связано с реальными вычислениями, проходит через АЛУ.
Регистры — это крошечная сверхбыстрая память прямо внутри процессора. Их немного — десятки, иногда сотни штук, — но они работают на той же скорости, что и сам процессор, без какой-либо задержки. Это «руки», в которых процессор держит числа прямо во время работы: то, с чем он сейчас считает, и то, что только что посчитал.
Устройство управления — это «дирижёр» внутри дирижёра. Оно читает инструкции из памяти, декодирует их (то есть понимает, что именно нужно сделать) и отдаёт команды АЛУ и другим блокам. Оно не считает само — оно организует счёт.
Кэш-память — об этом подробнее чуть позже, но коротко: это несколько уровней быстрой памяти прямо на кристалле процессора. Промежуточное звено между молниеносными регистрами и относительно медленной оперативной памятью.
Блок предсказания переходов — один из самых элегантных механизмов. Программы полны условий: «если X, делай A, иначе делай B». Пока процессор выполняет проверку X, блок предсказания угадывает, какая ветка скорее всего понадобится, и заблаговременно начинает её подготавливать. Если угадал — выигрыш в скорости. Если нет — откатывается и начинает правильную ветку. Современные предсказатели угадывают верно в 95–99% случаев.