Как устроен компьютер: от транзистора до операционной системы
Компьютер — это устройство, которое выполняет программы: последовательности инструкций, описывающих, что нужно сделать с данными. В основе любого компьютера лежат четыре компонента: процессор (вычисляет), оперативная память (хранит данные во время работы), накопитель (хранит данные постоянно) и устройства ввода-вывода (клавиатура, экран, сетевая карта). Все они соединены высокоскоростными шинами данных.
Транзистор: кирпичик всей вычислительной техники
Фундаментом компьютера служит транзистор. Это крошечный электронный переключатель, который может находиться в одном из двух состояний: открытом (ток проходит, логическая единица) или закрытом (тока нет, логический ноль). Из миллиардов таких переключателей и складывается вся вычислительная мощь современного процессора.
В процессоре 2024 года транзисторов около 100 миллиардов, а их размер составляет 3–5 нанометров. Для сравнения: диаметр атома кремния примерно 0,2 нанометра, то есть транзистор в ширину содержит всего 15–25 атомов. Именно поэтому современные чипы производят в сверхчистых комнатах с помощью фотолитографии: сложнейшего процесса, при котором рисунок схемы наносится ультрафиолетовым светом на кремниевую пластину.
Процессор: как он считает
Процессор (CPU) выполняет инструкции по жёсткому циклу. Сначала он «забирает» инструкцию из памяти (fetch), затем «расшифровывает» её (decode), понимая, что нужно сделать, потом «выполняет» арифметическое или логическое действие (execute) и «записывает» результат обратно (writeback). Современные процессоры проходят этот цикл миллиарды раз в секунду: частота 3–5 гигагерц означает от 3 до 5 миллиардов тактов в секунду.
Чтобы не простаивать в ожидании медленной памяти, процессор содержит несколько уровней кэша. Кэш первого уровня (L1) находится прямо в ядре процессора и работает почти со скоростью самого процессора, но его объём мал: 32–64 килобайта. Кэш L2 больше (256 килобайт до 1 мегабайта), но чуть медленнее. Общий кэш L3 может занимать 16–64 мегабайта. Когда данные нужны процессору, он сначала ищет их в L1, затем в L2 и L3, и только потом обращается к оперативной памяти.
Оперативная память и накопители
Оперативная память (RAM) — это рабочий стол процессора. Здесь хранятся запущенные программы и данные, с которыми идёт работа прямо сейчас. Обращение к ней занимает десятки наносекунд. Современные модули DDR5 передают данные на скорости свыше 50 гигабайт в секунду. Главный недостаток: при отключении питания содержимое RAM исчезает.
Для долгосрочного хранения используют накопители. Жёсткий диск (HDD) записывает данные магнитным способом на вращающиеся пластины. Твердотельный накопитель (SSD) хранит данные в ячейках флеш-памяти без движущихся частей. SSD в 5–10 раз быстрее HDD и значительно надёжнее при ударах, поэтому постепенно вытесняет его из ноутбуков и рабочих станций.
Материнская плата, шины и периферия
Материнская плата — это основная печатная плата, на которой физически размещены или подключены все компоненты. Процессор вставляется в специальный разъём (сокет), модули RAM размещаются в слотах DIMM, видеокарта и накопители подключаются через интерфейс PCIe. Связь между компонентами обеспечивается набором микросхем (чипсет) и системой шин: PCIe, SATA, USB и другими протоколами передачи данных.
Видеокарта (GPU) изначально создавалась для вывода изображения на экран, но её архитектура с тысячами маленьких вычислительных ядер оказалась идеальной для параллельных вычислений. Сегодня GPU активно используют для машинного обучения, научного моделирования и обработки больших массивов данных.
Программная часть: от BIOS до приложений
Без программного обеспечения компьютер представляет собой просто набор микросхем. При включении сначала запускается прошивка BIOS или UEFI, записанная в микросхему на материнской плате. Она проверяет оборудование и находит загрузчик операционной системы на накопителе. Операционная система (ОС) берёт под контроль всё железо: распределяет процессорное время между задачами, управляет памятью, обеспечивает работу файловой системы и предоставляет прикладным программам стандартные интерфейсы. Прикладная программа уже не думает о транзисторах: она просто вызывает функции ОС, которая переводит эти вызовы в конкретные электрические сигналы.