Как работает процессор компьютера: от транзисторов до выполнения программ
Процессор, или центральный процессорный блок (ЦПУ), получает инструкции программы, интерпретирует их и выполняет вычисления. За один такт тактового генератора современный процессор способен обработать несколько команд одновременно. Тактовая частота большинства десктопных процессоров составляет от 3 до 5 гигагерц, то есть от трёх до пяти миллиардов тактов в секунду.
Транзисторы как строительные блоки
Основой любого процессора служат транзисторы — крошечные электронные переключатели, способные находиться в двух состояниях: открытом (ток проходит, логическая единица) и закрытом (ток заблокирован, логический ноль). Комбинируя транзисторы, инженеры собирают логические вентили: AND, OR, NOT. Из вентилей строятся более сложные блоки: сумматоры, регистры, мультиплексоры.
В современных процессорах архитектуры x86 содержатся десятки миллиардов транзисторов, размер которых составляет несколько нанометров. Для сравнения: диаметр человеческого волоса около 80 000 нанометров. Производство таких структур требует фотолитографии: многоступенчатого процесса нанесения рисунка схемы на кремниевую пластину с помощью ультрафиолетового или экстремального ультрафиолетового (EUV) излучения.
Конвейер команд и суперскалярность
Выполнение одной инструкции проходит несколько последовательных стадий: выборка команды из памяти, декодирование (разбор кода инструкции), получение операндов, исполнение, запись результата. Этот процесс называется конвейером.
Ключевое ускорение даёт конвейеризация: пока одна команда выполняется на стадии «исполнение», следующая уже проходит декодирование, а ещё одна считывается из памяти. Так процессор работает над несколькими инструкциями одновременно. Современные процессоры суперскалярны: они имеют несколько исполнительных блоков и выполняют более одной команды за такт. Архитектура с внеочерёдным исполнением позволяет менять порядок независимых инструкций, чтобы не простаивать в ожидании медленных операций с памятью.
Кэш-память и иерархия хранения данных
Главная проблема производительности состоит в том, что оперативная память значительно медленнее процессора. Чтобы ЦПУ не простаивал в ожидании данных, между ним и ОЗУ располагается многоуровневая кэш-память на быстрых SRAM-ячейках.
Кэш первого уровня (L1) находится непосредственно в каждом ядре, его объём обычно 32-64 килобайта, а латентность всего 1-5 тактов. Кэш второго уровня (L2) крупнее (от 256 килобайт до нескольких мегабайт) и немного медленнее. Общий для всех ядер кэш третьего уровня (L3) может достигать 64-96 мегабайт в серверных процессорах. Если нужная информация найдена в кэше, это называется попаданием; при промахе процессору приходится ждать обращения к ОЗУ, что занимает сотни тактов.
Многоядерность и многопоточность
Современные процессоры содержат от 4 до 192 вычислительных ядер. Каждое ядро способно независимо выполнять свой поток инструкций. Технология одновременной многопоточности (SMT, которую часть производителей называет HyperThreading) позволяет одному физическому ядру обрабатывать два потока одновременно, используя незадействованные ресурсы исполнительных блоков.
Для хорошо распараллеливаемых задач (рендеринг видео, научные расчёты, компиляция кода) большее число ядер даёт прямой прирост производительности. Для однопоточных задач важнее тактовая частота и архитектурные улучшения конкретного поколения. Именно поэтому ответ на вопрос «какой процессор быстрее» зависит от конкретной нагрузки.
Процессоры в промышленном оборудовании
За пределами персональных компьютеров процессоры встроены в станки с числовым программным управлением, промышленные контроллеры, системы управления транспортом. Здесь ценятся стабильность и предсказуемость работы в широком диапазоне температур и при наличии электромагнитных помех. Производители промышленных процессоров выпускают специальные версии кристаллов с расширенным диапазоном рабочих температур и увеличенным сроком жизненного цикла выпуска продукции — это позволяет заводским системам работать без замены компонентов десятилетиями.