Книга От транзистора до робота читать онлайн бесплатно, автор Сари Лада – Fictionbook
Сари Лада От транзистора до робота
От транзистора до робота
От транзистора до робота

5

  • 0
Поделиться

Полная версия:

Сари Лада От транзистора до робота

  • + Увеличить шрифт
  • - Уменьшить шрифт

Сари Лада

От транзистора до робота

Часть 1 — Из чего сделан компьютер

Глава 1. Маленький переключатель, который изменил мир

Ты открываешь ноутбук. Может быть, утром, ещё немного сонная. Может быть, когда все уже спят, и только экран светится в темноте. Ты нажимаешь кнопку питания, и через несколько секунд перед тобой — рабочий стол, уведомления, мессенджеры, весь твой цифровой мир.

Возможно, ты не думаешь о том, что произошло внутри. Хорошая технология именно так и работает: незаметно.

Но сегодня мы заглянем внутрь. Это одна из самых удивительных историй, которые человечество когда-либо придумало. История о том, как из простого «да» и «нет» вырос целый цифровой мир.

Начнём с вопроса, который может казаться глупым

Что умеет компьютер?

Если ты спросишь случайного человека на улице, он, скорее всего, скажет что-то вроде: «ну, он считает», «хранит файлы», «запускает программы». И всё это правда. Но если копнуть глубже — до самого дна, до последнего слоя — окажется, что компьютер умеет делать ровно одну вещь.

Он умеет различать два состояния: ток есть или тока нет. Единица или ноль. Да или нет.

Всё. Больше ничего.

Никакой магии. Никакого «понимания». Никакого разума — по крайней мере, на этом уровне. Просто миллиарды крошечных переключателей, каждый из которых в каждый момент времени находится в одном из двух состояний.

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

Что такое транзистор — и почему он главный герой этой истории

Переключатель, о котором мы говорим, называется транзистор. Это маленький электронный компонент, который умеет пропускать или не пропускать через себя электрический ток — в зависимости от того, подаётся ли на него управляющий сигнал.


Рис. 1.1. Транзистор как управляемый шлюз: положение затвора определяет силу тока.


Представь обычный выключатель света на стене. Ты нажимаешь — свет горит. Отпускаешь — гаснет. Транзистор работает по тому же принципу, только вместо пальца — электрический сигнал, вместо лампочки — следующий элемент схемы, и вместо долей секунды — миллиардные доли секунды.

Транзистор был изобретён в 1947 году тремя учёными из Bell Laboratories — Уильямом Шокли, Джоном Бардином и Уолтером Браттейном. За это открытие они получили Нобелевскую премию по физике в 1956 году. В тот момент мало кто понимал, что именно произошло. Маленькая деталька из германия, которая работала лучше, чем предыдущие вакуумные лампы.

До транзистора компьютеры были монстрами. ENIAC, один из первых электронных компьютеров, созданный в 1945 году, занимал целую комнату площадью около 170 квадратных метров, весил почти 30 тонн и содержал около 18 000 вакуумных ламп. Он потреблял столько электричества, что, по легенде, когда его включали, огни в соседних кварталах Филадельфии слегка тускнели. Он постоянно ломался: лампы перегорали, их нужно было менять чуть ли не каждый день.

Транзистор был меньше, надёжнее, потреблял несравнимо меньше энергии. И главное — его можно было делать очень маленьким. Очень-очень маленьким.

Интегральная схема: когда миллион умещается на ногте

Следующий шаг случился в конце 1950-х годов. Инженеры задались вопросом: а что, если разместить сразу несколько транзисторов на одной пластине из полупроводникового материала — кремния? И соединить их прямо там, без проводов?

Так родилась интегральная схема — или, как её часто называют, чип. Джек Килби из Texas Instruments и Роберт Нойс из Fairchild Semiconductor независимо друг от друга пришли к этой идее примерно в одно время. Килби получил Нобелевскую премию в 2000 году — уже в наши дни, спустя десятилетия после открытия.

Первые интегральные схемы содержали буквально несколько транзисторов. Несколько — это два, пять, десять. Уже это казалось революцией.

Но потом началась гонка миниатюризации, которая не останавливается до сих пор.

В 1965 году Гордон Мур, один из основателей Intel, сформулировал наблюдение, которое вошло в историю как закон Мура: количество транзисторов на чипе удваивается примерно каждые два года, при этом стоимость одного транзистора падает, что позволяет производить более мощные чипы за ту же цену. Это не физический закон — скорее, инженерное обещание, которое индустрия давала себе и выполняла. Десятилетиями.

Давай просто посмотрим на цифры.

1971 год, первый процессор Intel 4004: 2300 транзисторов. Размер каждого — около 10 микрометров. Для сравнения: толщина человеческого волоса — около 70 микрометров. То есть транзистор был в семь раз тоньше волоса.

2020 год, процессоры Apple M1: около 16 миллиардов транзисторов. Технологический процесс — 5 нанометров (шаг литографии). Нанометр — это миллионная часть миллиметра. Для сравнения: атом кремния имеет диаметр около 0,2 нанометра. То есть современный транзистор — это примерно 25 атомов в поперечнике.

Двадцать пять атомов.

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

Язык единиц и нулей

Хорошо, транзисторы маленькие и их много. Но как из миллиардов переключателей получается, например, фотография?

Давай разберёмся с языком.

Компьютер работает в двоичной системе счисления. В привычной нам десятичной системе мы используем десять цифр: от 0 до 9. В двоичной — только две: 0 и 1. Каждая такая цифра называется битом (от английского binary digit — двоичная цифра).

Один бит — это один транзистор в одном из двух состояний. Ноль или единица. Нет тока или есть ток.

Из восьми битов складывается байт. Байт — это уже маленький кирпичик, из которого строится всё остальное. Один байт может хранить, например, один символ текста — букву «а» или цифру «7».

Тысяча байт — килобайт. Миллион байт — мегабайт. Миллиард байт — гигабайт. Именно в этих единицах мы измеряем размер файлов, объём памяти, скорость интернета.

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

Фотография с телефона — скажем, 12 мегапикселей — это 12 миллионов пикселей, то есть 36 миллионов байт в несжатом виде. Около 36 мегабайт. Поэтому существуют форматы вроде JPEG: они сжимают изображение, убирая детали, которые человеческий глаз всё равно не замечает, и уменьшают размер в десятки раз.

Точно так же работает и звук. Звуковая волна — это непрерывное колебание. Чтобы записать её в цифре, её «измеряют» тысячи раз в секунду — этот процесс называется оцифровкой. Каждое измерение — число, число — биты, биты — транзисторы. Музыкальный трек на три минуты — это десятки миллионов измерений, упакованных в файл.

Видео — это просто много фотографий в секунду плюс звук. 24 кадра в секунду для кино, 60 для плавного геймплея. Если умножить размер одного кадра на количество кадров, получим, почему видео занимает столько места и почему алгоритмы сжатия — это целая наука.

Полупроводники: почему кремний правит миром

Силиконовая долина — Silicon Valley — называется так именно в честь кремния. Но почему именно кремний? Почему не медь, не железо, не стекло?

Всё дело в свойствах материала. Есть проводники — материалы, которые хорошо проводят электрический ток (медь, золото, серебро). Есть изоляторы — материалы, которые ток не проводят почти совсем (пластик, стекло, резина). А есть полупроводники — материалы, которые находятся посередине и чьи свойства можно менять.

Кремний — именно такой. Сам по себе он проводит ток плохо. Но если добавить в него крошечное количество другого вещества — например, фосфора или бора, — его свойства меняются. Этот процесс называется легированием. Легированный кремний можно заставить проводить ток в одном направлении, блокировать в другом, усиливать сигнал — то есть делать всё то, что нужно для транзистора.

Кроме того, кремний — один из самых распространённых элементов на Земле. Обычный песок — это в основном диоксид кремния. Из него и делают чипы, хотя процесс очистки и преобразования невероятно сложен: нужен кремний чистотой 99,9999999% — девять девяток после запятой.

Сегодня исследователи активно работают над новыми материалами — графеном, нитридом галлия, карбидом кремния, — которые могут однажды заменить или дополнить кремний. Физические пределы миниатюризации уже почти достигнуты: транзисторы размером в несколько атомов начинают вести себя по законам квантовой механики, и классическая электроника там уже не работает. Но это — история следующих десятилетий.

Как транзисторы складываются в логику

Мы разобрались, что транзистор — это переключатель. Но как из переключателей получается, например, сложение двух чисел?

Ответ — в логических вентилях. Это базовые «строительные блоки» вычислений, каждый из которых сделан из нескольких транзисторов.


Рис. 1.2. Логические вентили И, ИЛИ, НЕ с таблицами истинности.


Самые простые из них называются И (AND), ИЛИ (OR) и НЕ (NOT).

Вентиль И: выдаёт сигнал «1» только тогда, когда оба входных сигнала равны «1». То есть: «и то, и другое должно быть включено». Как розетка с двумя выключателями — свет горит, только если оба нажаты.

Вентиль ИЛИ: выдаёт «1», если хотя бы один из входов равен «1». Как дверь, которую можно открыть с любой из двух сторон.

Вентиль НЕ: просто инвертирует сигнал. Было «1» — стало «0», и наоборот.

Из этих трёх типов вентилей можно построить любую логическую схему. Буквально любую. Сложение, вычитание, сравнение, выбор — всё это комбинации И, ИЛИ, НЕ.


Рис. 1.3. Полусумматор: вентили XOR и AND складывают два бита.


Например, сумматор — схема, складывающая два однобитных числа, — требует нескольких вентилей (бит суммы, бит переноса). Сумматор для многозначных чисел — больше. Арифметико-логическое устройство (АЛУ) — сердце процессора, которое выполняет математические операции, — это уже тысячи вентилей, то есть десятки тысяч транзисторов. И так далее, слой за слоем.

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

Каждый слой скрывает от тебя детали нижнего и предоставляет удобный интерфейс для верхнего. Это принцип абстракции, и он — один из главных секретов того, как люди вообще справляются со сложностью. Никто в мире не держит в голове все слои одновременно. Инженер, разрабатывающий чип, не думает о том, как будет выглядеть пользовательский интерфейс приложения. Разработчик приложения не думает о том, как именно транзисторы хранят биты. Каждый работает на своём уровне.

Закон Мура умирает — и что будет дальше

Мы упоминали закон Мура: каждые два года количество транзисторов на чипе удваивается. Это правило работало с поразительной точностью почти полвека. Именно оно обеспечило тот экспоненциальный рост вычислительной мощи, который привёл нас из эпохи комнатных монстров вроде ENIAC в эпоху смартфонов мощнее суперкомпьютеров прошлого.

Но в последние годы закон Мура начинает давать сбои. Транзисторы стали настолько маленькими, что дальнейшая миниатюризация натыкается на фундаментальные физические ограничения. Когда размер транзистора — несколько нанометров, электроны начинают «просачиваться» сквозь барьеры (тонкие слои материала, через который электрон «не должен» проходить) за счёт квантового туннелирования. На квантовом уровне частица не находится в одной точке, она описывается волновой функцией — размытым облаком вероятностей. Это уже не инженерная проблема — это квантовая физика.

Индустрия отвечает на это несколькими способами. Первый — усложнение структуры чипа: вместо того чтобы делать транзисторы ещё меньше, их стали складывать в трёхмерные структуры. Так появились трёхмерные NAND-флеш-память и сложные многоуровневые чипы.

Второй способ — специализация. Вместо одного универсального процессора — несколько специализированных. GPU (графический процессор) считает задачи параллельно, что идеально для графики и нейросетей. NPU (нейронный процессор) оптимизирован специально для операций машинного обучения. TPU (тензорный процессор) разработан Google специально для своих нейросетей. Каждый делает своё дело лучше, чем универсальный.

Третий путь — квантовые вычисления. Это совсем другой принцип: вместо битов, которые равны строго 0 или 1, используются кубиты, которые могут находиться в суперпозиции — одновременно и 0, и 1. Квантовый компьютер может решать определённые задачи экспоненциально быстрее классического. Но технология пока сырая, хранить кубиты без ошибок крайне сложно, и до массового применения ещё далеко.

Так что закон Мура, может быть, и умирает в своей классической форме. Но инженерная изобретательность — нет. Просто теперь рост идёт не по одной оси (уменьшение транзистора), а сразу по нескольким.

Почему это всё важно для нас

Я думаю, что понимать основы технологий, которые пронизывают буквально каждый момент нашей жизни, — это что-то вроде умения читать. Никто не требует, чтобы ты знала лингвистику или историю письменности, чтобы читать книгу. Но понимание того, как язык работает, делает тебя более точным читателем, более внимательным к словам, более свободным в обращении с текстом.

То же самое с технологиями. Когда ты понимаешь, что компьютер — это просто очень быстрые переключатели, организованные очень умным образом, — он перестаёт быть магическим чёрным ящиком. Он становится инструментом.

Ещё одна причина — разговор о будущем. В следующих главах мы дойдём до роботов, до искусственного интеллекта, до вопросов о том, что произойдёт с нашей работой и нашим бытом в ближайшие десятилетия. Эти разговоры намного интереснее, когда ты понимаешь, из чего сделаны эти системы. Из кремния, из единиц и нулей, из логики И/ИЛИ/НЕ.

Итог: от переключателя к миру

Компьютер — это устройство, которое умеет работать с двумя состояниями: ноль и единица. Физически это реализуется через транзисторы — крошечные электронные переключатели на основе кремния. Современный смартфон содержит их больше десяти миллиардов, каждый размером в несколько нанометров.

Транзисторы объединяются в логические вентили (И, ИЛИ, НЕ), те — в схемы, те — в процессоры. Информация кодируется как последовательности битов: тексты, изображения, звук, видео — всё это просто числа, записанные в двоичной системе.

Закон Мура обеспечивал удвоение мощности чипов каждые два года на протяжении полувека. Сейчас классическая миниатюризация замедляется, и индустрия ищет новые пути: трёхмерные структуры, специализированные процессоры, квантовые вычисления.

Глава 2. Процессор: сердце, которое считает

Ты когда-нибудь замечала, как ноутбук начинает греться, когда открываешь слишком много вкладок? Или как телефон чуть тормозит в момент, когда одновременно снимает видео, загружает файл и проигрывает музыку? Это процессор работает на пределе своих возможностей.

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

Процессор. Центральный процессор. CPU — Central Processing Unit. Это сердце любого вычислительного устройства: компьютера, телефона, умной колонки, банкомата, навигатора в машине. Там, где есть вычисления — есть процессор.

Что делает процессор — в одном предложении

Процессор выполняет инструкции. Одну за другой, невероятно быстро.

Это звучит скромно. На самом деле это — всё. Буквально всё, что происходит в компьютере, сводится к тому, что процессор получает инструкцию, выполняет её и переходит к следующей. Показать пиксель на экране — инструкция. Сложить два числа — инструкция. Открыть файл — тысячи инструкций, следующих одна за другой.

Программа — это просто очень длинный список инструкций. Когда ты запускаешь браузер, операционная система загружает этот список в память и говорит процессору: «начинай отсюда». Дальше процессор читает и выполняет, читает и выполняет — пока не дойдёт до конца или пока ты не закроешь программу.

Инструкции бывают очень простыми. «Возьми число из ячейки памяти номер 1042». «Прибавь к нему число из ячейки 1043». «Запиши результат в ячейку 1044». «Если результат больше нуля, перейди к инструкции номер 278». Всё. Из таких крошечных шагов складываются операционные системы, игры, нейросети.

Это немного похоже на рецепт. Или на нотный лист. Ноты сами по себе — просто символы на бумаге. Но когда музыкант читает и играет их одну за другой — рождается симфония.

Внутри процессора: анатомия

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

Арифметико-логическое устройство (АЛУ) — это «рабочие руки» процессора. Именно оно выполняет математические операции: сложение, вычитание, умножение, деление. И логические: сравнение чисел, побитовые операции. Всё, что связано с реальными вычислениями, проходит через АЛУ.

Регистры — это крошечная сверхбыстрая память прямо внутри процессора. Их немного — десятки, иногда сотни штук, — но они работают на той же скорости, что и сам процессор, без какой-либо задержки. Это «руки», в которых процессор держит числа прямо во время работы: то, с чем он сейчас считает, и то, что только что посчитал.

Устройство управления — это «дирижёр» внутри дирижёра. Оно читает инструкции из памяти, декодирует их (то есть понимает, что именно нужно сделать) и отдаёт команды АЛУ и другим блокам. Оно не считает само — оно организует счёт.

Кэш-память — об этом подробнее чуть позже, но коротко: это несколько уровней быстрой памяти прямо на кристалле процессора. Промежуточное звено между молниеносными регистрами и относительно медленной оперативной памятью.

Блок предсказания переходов — один из самых элегантных механизмов. Программы полны условий: «если X, делай A, иначе делай B». Пока процессор выполняет проверку X, блок предсказания угадывает, какая ветка скорее всего понадобится, и заблаговременно начинает её подготавливать. Если угадал — выигрыш в скорости. Если нет — откатывается и начинает правильную ветку. Современные предсказатели угадывают верно в 95–99% случаев.

Это похоже на опытного официанта, который уже несёт тебе меню и воду, ещё пока ты только садишься за столик. Он не знает точно, что ты закажешь — но знает, что меню и вода нужны почти всегда.

Тактовая частота: метроном внутри

Ты наверняка видела в характеристиках компьютера что-то вроде «процессор 3,2 ГГц». Что это значит?

Внутри процессора есть генератор тактового сигнала — он похож на метроном, только вместо ударов в минуту — миллиарды ударов в секунду. Каждый «удар» — это один такт, один момент времени, когда процессор может выполнить элементарное действие.

Герц — это одно колебание в секунду. Гигагерц — миллиард. Процессор с частотой 3,2 ГГц делает 3,2 миллиарда тактов каждую секунду.

Раньше каждая инструкция требовала несколько тактов, но сегодня, благодаря конвейерной обработке, процессоры стремятся завершать в среднем больше одной инструкции за такт. Этот показатель называется IPC (instructions per cycle), и именно он, наряду с частотой, определяет реальную скорость.

Конвейер: почему процессор не ждёт


Рис. 2.1. Конвейерная обработка: четыре инструкции обрабатываются одновременно на разных стадиях.


Представь автомойку. Машина въезжает, проходит несколько зон: сначала намыливание, потом щётки, потом ополаскивание, потом сушка. Если делать это последовательно для каждой машины — то есть полностью вымыть одну, потом взять следующую — большинство зон большую часть времени простаивают.

Умная автомойка работает иначе: пока первая машина на ополаскивании, вторая уже на щётках, третья намыливается, четвёртая только въезжает. Все зоны заняты одновременно. Пропускная способность резко растёт.

Процессор работает точно так же. Это называется конвейерная обработка (pipeline). Выполнение каждой инструкции разбито на несколько стадий: выборка (взять инструкцию из памяти), декодирование (понять, что делать), исполнение (сделать), запись результата. Пока одна инструкция исполняется, следующая уже декодируется, а ещё следующая — выбирается из памяти.

Современные процессоры имеют конвейеры глубиной 10–20 стадий. Это значит, что одновременно «в пути» находятся 10–20 инструкций на разных стадиях готовности. И именно поэтому предсказание переходов так важно: если программа вдруг меняет направление (условный переход), весь конвейер нужно «промыть» и начать заново — а это потеря тех самых тактов, которые уже были потрачены на неверные инструкции.

Ядра: когда одного дирижёра недостаточно

До середины 2000-х годов процессоры были одноядерными. Чтобы сделать их быстрее, инженеры повышали тактовую частоту. Это работало — до определённого предела.

Проблема в том, что чем выше частота, тем чаще переключаются транзисторы, а каждое переключение требует затрат энергии на перезарядку крошечных конденсаторов внутри них — поэтому с ростом частоты резко растёт выделение тепла. К 2004 году некоторые процессоры Intel разогревались до температур, при которых охлаждение становилось инженерным кошмаром. Гонка за гигагерцами упёрлась в тепловой предел.

Решение оказалось элегантным: вместо одного очень быстрого ядра — два умеренно быстрых. Потом четыре. Потом восемь, шестнадцать, тридцать два.

Ядро — это, грубо говоря, отдельный полноценный процессор внутри одного чипа. Каждое ядро читает свои инструкции, выполняет свои задачи, имеет свои регистры и кэш. Несколько ядер могут работать параллельно — одновременно, независимо.

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

Хороший пример: видеоредактор применяет фильтр к миллиону пикселей. Каждый пиксель обрабатывается независимо — можно раздать работу по ядрам, и она выполнится в восемь раз быстрее на восьмиядерном процессоре.

Плохой пример: ты читаешь книгу. Каждая следующая страница зависит от предыдущей. Такая задача называется последовательной, и здесь дополнительные ядра почти не помогают.

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

Кэш: память, о которой ты не думаешь

Представь, что ты работаешь за столом. На столе — несколько листов бумаги с числами, которые тебе сейчас нужны. В ящике стола — толстая папка с данными, к которым обращаешься реже. В шкафу за спиной — архив со всем остальным. На складе через улицу — старые дела, которые почти никогда не нужны.

ВходРегистрация
Забыли пароль