Процессор (центральное процессорное устройство, ЦП, ЦПУ, CPU от англ. central processing unit) - это микросхема, которая выполняет команды программ и обрабатывает данные. Внутри у неё несколько блоков, и у каждого своя работа. Процессор состоит из:
Как эти блоки работают вместе, видно на примере калькулятора. Программа просит процессор взять два числа, 3 и 5, и перемножить их. Блок управления достаёт команду из памяти и разбирается, что нужно сделать. АЛУ умножает. Результат 15 попадает в регистр, оттуда - обратно в программу, и вы видите его в окошке калькулятора. Архивация, запрос к базе 1С, загрузка страницы - всё это складывается из миллиардов таких же простых шагов.
| Блок | Что делает | Где находится |
|---|---|---|
| Блок управления | Читает команды, расшифровывает их и раздаёт работу остальным блокам | В каждом ядре |
| АЛУ | Считает: сложение, вычитание, сравнение, логические операции | В каждом ядре, обычно несколько штук |
| Регистры | Хранят числа, с которыми ядро работает прямо сейчас | В каждом ядре |
| Кэш L1 и L2 | Держат под рукой данные и команды, которые вот-вот понадобятся | У каждого ядра свой |
| Кэш L3 | Общий запас данных для группы ядер | Один на кристалл или группу ядер |
| Контроллер памяти | Обменивается данными с модулями оперативной памяти | На кристалле процессора |
| Контроллер PCIe | Подключает NVMe-диски, сетевые карты, RAID-контроллеры, GPU | На кристалле процессора |
Дальше разберём каждый блок по очереди, потом - как устроен серверный процессор целиком, какие бывают архитектуры и как процессор справляется с нагревом.
Архитектура набора команд (Instruction Set Architecture, ISA) - это список команд, понятных процессору, и правила их записи в двоичном коде. Это договор между программой и железом. Программа, собранная под x86-64, запустится на любом процессоре с этой архитектурой, от Xeon десятилетней давности до свежего EPYC. На ARM-сервере та же программа работать не будет - её нужно пересобрать.
Распространённые архитектуры набора команд: x86-64 (Intel и AMD), ARM (смартфоны, компьютеры Apple, серверные процессоры Ampere и «Байкал»), RISC-V (открытая архитектура, пока в основном во встраиваемых системах). У российского «Эльбруса» своя архитектура. Набор команд определяет, что процессор умеет, а как блоки внутри эти команды выполняют, решает уже производитель.
Блок управления (Control Unit, CU) координирует работу всех остальных частей процессора. Он читает очередную команду из памяти, расшифровывает её и подаёт управляющие сигналы тем блокам, которые должны её выполнить. Сам блок управления ничего не вычисляет: его задача - решить, кто, что и в каком порядке делает.
Чем занимается блок управления:
Путь выполнения (datapath) - это блоки, через которые проходят данные по командам блока управления: регистры, АЛУ, внутренние шины. Блок управления командует, путь выполнения работает. Без блока управления АЛУ и регистры не знают, что делать.
Любая команда проходит один и тот же цикл. В учебниках его делят на четыре этапа:
Потом цикл повторяется. В серверном процессоре на 3 ГГц всё устроено так же, просто в работе одновременно находятся сотни команд - об этом ниже, в разделах про конвейер и суперскалярную архитектуру.
Арифметико-логическое устройство (АЛУ, ALU, Arithmetic Logic Unit) - это блок процессора, который выполняет арифметические и логические операции над числами. Блок управления сообщает АЛУ, какую операцию сделать и с какими операндами. АЛУ выполняет её и отдаёт результат.
Что умеет АЛУ:
В одном ядре серверного процессора несколько АЛУ, чтобы за один такт выполнялось несколько операций. Дробные числа считает отдельный блок - FPU (блок вычислений с плавающей запятой), а с векторами работают блоки SIMD, о них - в разделе про расширения набора команд.
Если коротко: блок управления руководит выполнением программы целиком, АЛУ считает конкретную операцию по его команде.
Процессор работает с данными, которые лежат в нескольких видах памяти. Чем ближе память к ядру, тем она быстрее и тем меньше её объём. Поэтому данные раскладывают по уровням: то, что нужно прямо сейчас, держат у ядра, остальное - дальше.
Уровни памяти от ядра к периферии:
| Уровень | Где находится | Объём | Скорость доступа |
|---|---|---|---|
| Регистры | Внутри ядра | Байты и килобайты | Один такт |
| Кэш L1, L2, L3 | На кристалле процессора | От десятков килобайт (L1) до сотен мегабайт (L3) | От нескольких до нескольких десятков тактов |
| Оперативная память (ОЗУ) | Модули на материнской плате | Сотни гигабайт и терабайты в сервере | Сотни тактов, в десятки раз дольше кэша L1 |
| Накопители SSD и HDD | Отдельные устройства, данные сохраняются после выключения | Терабайты | На порядки медленнее ОЗУ |
| Архивное хранилище | Ленточные библиотеки, холодные копии | Сотни терабайт и больше | Минуты и часы на восстановление |
Архивное хранилище в учебниках называют третичной памятью. Оно нужно для резервного копирования, процессор с ним напрямую не работает.
Иерархия работает, потому что программы раз за разом обращаются к одним и тем же данным и к соседним адресам. Процессор сам подтягивает такие данные поближе к ядру, программисту для этого ничего делать не нужно.
Команда перехода заставляет процессор перескочить на другой адрес в памяти и продолжить работу оттуда. Без переходов не было бы ни условий («если пароль верный, пустить»), ни циклов, ни вызовов функций.
Для конвейера переходы - главная помеха. Пока условие не проверено, неизвестно, какие команды загружать следующими. Поэтому в каждом ядре есть предсказатель переходов: он по истории выполнения угадывает, куда пойдёт программа, и процессор заранее начинает выполнять этот путь. Угадал - время сэкономлено. Ошибся - начатую работу отбрасывают, и ядро теряет пару десятков тактов.
Кроме базовой арифметики, у процессоров x86 есть расширения - наборы специализированных команд под конкретные задачи. Одна такая команда заменяет десятки обычных:
Для админа у расширений есть практическое следствие. Если в кластере виртуализации стоят хосты с процессорами нескольких поколений, гипервизор не даст перенести работающую виртуальную машину на старый хост, если ей уже доступны команды, которых там нет. Поэтому гипервизоры умеют показывать виртуальным машинам только общий для всех хостов набор команд: в VMware это EVC, в Proxmox - выбор типа процессора у виртуальной машины.
Внеочередное исполнение (out-of-order execution) - отдельная технология. Пока одна команда ждёт данные из памяти, процессор берётся за следующие, если они от неё не зависят. Результаты потом выстраиваются в исходном порядке, и программа ничего не замечает. Так работают все серверные процессоры x86 со времён Pentium Pro (1995) и серверные ядра ARM.
Ускоритель - это блок, который выполняет одну узкую задачу быстрее и экономнее универсальных ядер. Классические примеры - GPU (графический процессор) для параллельных расчётов и обучения нейросетей и NPU (нейронный процессор) для запуска уже обученных нейросетей.
Часть ускорителей переехала прямо в серверный процессор. У Intel Xeon 6 на кристаллах ввода-вывода есть QAT (сжатие и шифрование), DSA (копирование и перемещение данных), IAA (ускорение аналитики и запросов к базам данных) и DLB (распределение сетевой нагрузки). Набор и число таких блоков зависят от модели, поэтому перед покупкой под конкретную задачу их проверяют по спецификации. Куда процессоры двигаются дальше, видно уже сейчас: больше ядер, сборка из нескольких кристаллов и встроенные блоки для нейросетей.
Ядро процессора - это самостоятельный вычислительный блок со своим блоком управления, АЛУ, регистрами и кэшем L1 и L2. Каждое ядро выполняет свой поток команд независимо от соседей. Многоядерный процессор - это несколько таких ядер на одном кристалле или в одном корпусе.
Многоядерность появилась, когда рост частоты упёрся в нагрев: к середине 2000-х частоты остановились в районе 3-4 ГГц, а энергопотребление продолжало расти. Производительность стали наращивать числом ядер. У старших серверных процессоров AMD EPYC и Intel Xeon их больше сотни, у младших - 4-8.
Ещё одна деталь - потоки. Технология SMT (у Intel она называется Hyper-Threading) даёт одному ядру вести два потока команд и занимать блоки, которые иначе простаивали бы. Производительность от этого не удваивается: прибавка зависит от нагрузки и бывает от нуля до нескольких десятков процентов.
Ядра тоже бывают неодинаковыми. Intel выпускает Xeon 6 в двух линейках, на производительных и на энергоэффективных ядрах. Чем они отличаются и под какие задачи брать каждую, разобрано в статье про P-ядра и E-ядра в Intel Xeon 6.
Снаружи процессор выглядит как квадратная или прямоугольная пластина с металлической крышкой сверху и контактами снизу. Серверный AMD EPYC 9005 размером примерно 7,5 × 7 см, у настольных процессоров сторона около 4 см. Всё интересное спрятано под крышкой.
Если идти снизу вверх, процессор состоит из четырёх слоёв:
Транзистор - базовый элемент процессора. Это электронный переключатель: он пропускает ток или не пропускает, и из таких состояний складываются нули и единицы. Транзисторы объединяют в логические элементы, из логических элементов собирают регистры, сумматоры и всё остальное. Процессор не паяют из отдельных деталей: все транзисторы создают на кремниевой пластине одновременно, потом пластину режут на кристаллы, тестируют и упаковывают в корпус.
Радиатор и термопаста к процессору уже не относятся, это система охлаждения.
В школьных учебниках информатики в состав процессора включают ещё тактовый генератор и три шины: адресов, данных и управления. Для учебной модели это верно. В реальном компьютере опорную частоту даёт генератор на материнской плате, а процессор умножает её внутри с помощью схемы ФАПЧ (PLL). Шины внутри кристалла давно превратились в сеть, которая связывает десятки ядер.
Учебная схема «АЛУ + блок управления + регистры» описывает одно ядро. Серверный процессор 2026 года - это ещё и всё, что раньше жило в чипсете на материнской плате. Именно эти блоки определяют, сколько памяти и дисков можно поставить в сервер.
Раньше контроллер памяти стоял в северном мосту чипсета, в процессор его перенесли AMD в 2003 году (Opteron) и Intel в 2008-м (Nehalem). Сейчас у серверных процессоров до 12 каналов DDR5. Следствие для двухпроцессорного сервера: у каждого процессора своя «половина» памяти, и обращение к памяти соседа идёт дольше. Поэтому модули ставят симметрично на оба процессора, а базы данных и гипервизоры учитывают такую раскладку (её называют NUMA).
Число линий PCIe решает, сколько устройств подключится напрямую к процессору. NVMe-диску нужно 4 линии, сетевой карте на 100 Гбит/с - 8 или 16 в зависимости от поколения PCIe, видеокарте - 16. Простой подсчёт: 24 NVMe-диска - это уже 96 линий, к одному процессору с 48 линиями их напрямую не подключить, понадобятся PCIe-коммутаторы или второй процессор.
Ядра, кэш и контроллеры связаны сетью внутри процессора: у Intel она называется mesh, у AMD - Infinity Fabric. Между процессорами в двухсокетном сервере работают отдельные каналы: UPI у Intel, Infinity Fabric у AMD.
Большой кристалл дорог: чем больше площадь, тем выше шанс, что на нём окажется дефект. Поэтому серверные процессоры собирают из нескольких кристаллов (чиплетов) в одном корпусе. У AMD EPYC ядра сидят на отдельных кристаллах CCD, а память и PCIe обслуживает центральный кристалл ввода-вывода (IOD), который делают по старому и дешёвому техпроцессу. Intel Xeon 6900P собран из трёх вычислительных кристаллов и двух кристаллов ввода-вывода. Плата за такую сборку - задержка, когда данные идут между кристаллами.
Как это выглядит у двух актуальных серверных платформ:
| Блок | Intel Xeon 6900P | AMD EPYC 9005 |
|---|---|---|
| Ядер, максимум | 128 | 128 (Zen 5) или 192 (Zen 5c) |
| Из чего собран | 3 вычислительных кристалла + 2 кристалла ввода-вывода | до 16 кристаллов с ядрами + 1 кристалл ввода-вывода |
| Кэш L2 на ядро | 2 МБ | 1 МБ |
| Кэш L3, максимум | 504 МБ | 512 МБ |
| Каналов памяти | 12, DDR5-6400 (MRDIMM до 8800) | 12, DDR5 |
| Линий PCIe 5.0 на процессор | 96 | 128 |
| Где контроллер памяти | На вычислительных кристаллах | На кристалле ввода-вывода |
| Разъём | LGA 7529 | SP5 |
Для малого и среднего бизнеса такие флагманы обычно избыточны: под 1С, файловый сервер или пару десятков виртуальных машин хватает моделей на 16-32 ядра, у которых те же блоки, просто в меньшем количестве. Каналов памяти и линий PCIe у них тоже меньше, поэтому у младшей модели проверяют и их: от этого зависит, сколько памяти и NVMe-дисков сервер примет при расширении.
Конвейер - способ ускорить процессор, не поднимая частоту. Выполнение команды делят на этапы, и каждый этап одновременно занят своей командой.
Принцип похож на сборочную линию автомобильного завода. Пока на одном посту ставят двигатель, на предыдущем варят кузов следующей машины, а на следующем красят предыдущую. Ни одна машина не собирается быстрее, но с конвейера они сходят одна за другой без пауз.
Этапы классического конвейера:
У серверных процессоров этапов больше, порядка 15-20: чем короче этап, тем выше можно поднять частоту. Конвейерная обработка не сокращает время выполнения отдельной команды, зато увеличивает число команд, которые процессор завершает за секунду, то есть пропускную способность. Полноценный конвейер у x86 появился в Intel 486 в 1989 году.
Суперскалярный процессор выполняет несколько команд за один такт. Для этого в ядре стоит несколько исполнительных блоков: несколько АЛУ, блоки работы с памятью, блоки вычислений с плавающей запятой. Процессор сам на лету находит команды, которые не зависят друг от друга, и раздаёт их свободным блокам.
Разница с обычным конвейером:
Пример: одна команда ждёт данные из памяти. АЛУ тем временем считает другую, которой эти данные не нужны. Поиском такой параллельности занимается само железо, компилятору не обязательно раскладывать команды заранее. Это главное отличие от VLIW (о нём ниже). Обратная сторона - сложная схема и лишнее энергопотребление на планирование.
Из-за суперскалярности процессоры бессмысленно сравнивать только по частоте: ядро нового поколения на тех же 3 ГГц выполняет за такт больше команд, чем старое. Подробнее о том, на что влияет тактовая частота процессора, - в отдельной статье.
CISC (Complex Instruction Set Computer, компьютер со сложным набором команд) - архитектура, где одна команда может делать несколько действий сразу: прочитать число из памяти, сложить его с другим и записать результат. Команды разной длины, у x86 - от 1 до 15 байт.
Идея CISC родилась, когда память была дорогой: сложные команды делали программу короче. Плюс - компактный код. Минус - сложное декодирование, команду разной длины трудно быстро разобрать.
Особенности процессоров CISC:
Главный пример CISC - x86 и x86-64, то есть все процессоры Intel Xeon и AMD EPYC. Конвейер они поддерживают с 1989 года, а с Pentium Pro (1995) внутри разбивают сложные команды на простые микрооперации и дальше работают как RISC-машина. Поэтому спор «CISC против RISC» сегодня больше про совместимость программ, чем про скорость.
RISC (Reduced Instruction Set Computer, компьютер с сокращённым набором команд) - архитектура с короткими простыми командами одной длины. С памятью работают только две команды, загрузка и сохранение, всё остальное идёт через регистры. Простую команду легко декодировать и удобно пускать по конвейеру.
Сильные стороны архитектуры:
Обратная сторона - программа получается длиннее, ей нужно больше команд на ту же задачу, а значит больше места в памяти и кэше.
К RISC относятся ARM, RISC-V, IBM POWER, а из исторических - MIPS и SPARC. В серверах ARM занимает заметную нишу: облачные провайдеры ставят собственные ARM-процессоры, а в обычных серверах встречаются ARM-серверы на процессорах Ampere. Российский «Байкал» тоже построен на ARM.
MISC (Minimal Instruction Set Computer, компьютер с минимальным набором команд) - архитектура, где команд ещё меньше, чем у RISC: несколько десятков. Часто MISC-процессоры стековые: операнды лежат на вершине стека, поэтому в команде не нужно указывать ни регистры, ни адреса.
Такие процессоры получаются маленькими и экономичными. Пример - чип GreenArrays GA144: на нём 144 крошечных ядра, у каждого 32 команды, программируют его на языке Forth. Ниша MISC - встраиваемые устройства с минимальным энергопотреблением. В серверах и настольных компьютерах MISC-процессоры не используются.
VLIW (very long instruction word, очень длинное командное слово) - архитектура, где компилятор заранее упаковывает несколько независимых операций в одну длинную команду, и процессор выполняет их одновременно. Процессору не нужно самому искать параллельность, как суперскалярному, поэтому схема управления у него проще.
Вся сложность переходит к компилятору. Если код хорошо предсказуем (расчёты, обработка сигналов), VLIW-процессор работает эффективно. Если в коде много ветвлений и обращений к памяти, компилятор не может заранее заполнить длинные слова, и часть блоков простаивает.
Главный VLIW для российского читателя - «Эльбрус» от МЦСТ. Программы для x86 он запускает через двоичную трансляцию. Intel пробовала похожий подход в Itanium, но линейку закрыли: последние поставки прошли в 2021 году.
Четыре архитектуры рядом:
| Архитектура | Команды | Кто ищет параллельность | Где встречается |
|---|---|---|---|
| CISC | Сложные, разной длины | Процессор (внутри дробит команды на микрооперации) | x86-64: Intel Xeon, AMD EPYC |
| RISC | Простые, одной длины | Процессор | ARM (Ampere, «Байкал»), RISC-V, IBM POWER |
| MISC | Минимальный набор, часто стековые | Никто: ядра простые, выполняют команды по одной | Встраиваемые чипы (GreenArrays) |
| VLIW | Длинные слова из нескольких операций | Компилятор | «Эльбрус», Itanium (снят с производства) |
Как процессоры делят по назначению и типу, рассказано в статье про виды процессоров.
Кэш - это быстрая память на кристалле процессора. В ней хранятся копии данных и команд из оперативной памяти, которые с большой вероятностью понадобятся снова. Доступ к кэшу занимает от нескольких до нескольких десятков тактов, к оперативной памяти - сотни.
У серверных процессоров три уровня кэша:
Когда нужных данных в кэше нет (это называют промахом), ядро ждёт ответа от оперативной памяти. Поэтому объём L3 заметно влияет на базы данных и виртуализацию, где рабочий набор данных большой.
Цифровой сигнальный процессор (DSP, digital signal processor) - это специализированный процессор для обработки сигналов в реальном времени. Работает он с оцифрованным сигналом: аналоговый сигнал с микрофона или антенны сначала переводит в цифру аналого-цифровой преобразователь. Набор команд у DSP заточен под типовые операции фильтрации, поэтому такие задачи он решает быстрее и с меньшим энергопотреблением, чем универсальный процессор.
Где применяют DSP:
Часто DSP стоит рядом с центральным процессором как ускоритель и забирает на себя эти специфические задачи.
Энергопотребление процессора измеряют в ваттах. Оно зависит от числа ядер, частоты, напряжения и нагрузки. Для серверов главный ориентир - TDP (расчётная тепловая мощность): столько тепла должна отводить система охлаждения при длительной нагрузке. У серверных процессоров 2026 года TDP лежит в диапазоне от нескольких десятков ватт у младших моделей до 500 Вт у флагманов Xeon 6900P и EPYC 9005.
Чтобы не греться впустую, процессор использует несколько механизмов:
На сервере эти механизмы настраивают в BIOS через профиль электропитания. Энергосберегающий профиль экономит электричество, но ядрам нужно время, чтобы проснуться. Для 1С и баз данных с короткими частыми запросами это иногда заметно на отклике, и профиль переключают на производительный.
Рабочая температура - диапазон, в котором процессор работает штатно, без снижения частоты. Верхнюю границу задаёт производитель, она называется Tjmax и у большинства моделей лежит в пределах 95-105 °C. Подойдя к ней, процессор сам снижает частоту, чтобы не перегреться. Это называют троттлингом. Если температура продолжает расти, сервер аварийно выключается.
Троттлинг защищает процессор, но снаружи выглядит как просто медленная работа. Производитель закладывает в характеристики запас, поэтому рабочие 70-80 °C под нагрузкой для серверного процессора - нормально. Ненормально, если процессор регулярно доходит до порога.
Если сервер стал медленнее без видимых причин, прежде чем искать проблему в программах, посмотрите температуру процессора и обороты вентиляторов в интерфейсе управления сервером. Забитый пылью радиатор или вставший вентилятор дают троттлинг, который снаружи неотличим от обычных «тормозов».
Почти вся энергия, которую потребляет процессор, превращается в тепло. Его нужно непрерывно отводить, иначе через несколько секунд начнётся троттлинг. Варианты охлаждения:
В стоечном сервере обычно стоит пассивный радиатор. Своего вентилятора у процессора нет, воздух гонят вентиляторы шасси спереди назад. Для процессоров на 350-500 Вт этого бывает мало, и тогда выбирают корпус высотой 2U и больше с крупными радиаторами или переходят на жидкостное охлаждение процессоров в серверах. Погружное охлаждение, когда сервер целиком опускают в ванну с диэлектрической жидкостью, используют в плотных вычислительных кластерах. Для серверной небольшой компании это экзотика.
Температуру измеряют датчики внутри самого процессора, обычно по одному на ядро и общий для всего процессора. Их показания читает контроллер управления сервером (BMC: iDRAC у Dell, iLO у HPE, IPMI у Supermicro) и по ним регулирует обороты вентиляторов. Там же, в веб-интерфейсе BMC, температуру можно посмотреть без доступа к операционной системе.
Из командной строки температуру смотрят так:
# через BMC с самого сервера (Linux)
ipmitool sdr type temperature
# через BMC по сети, с рабочей станции админа
ipmitool -I lanplus -H адрес_BMC -U пользователь -P пароль sdr type temperature
# из Linux, пакет lm-sensors
sensors
У процессоров Intel в выводе sensors ищите строки «Package id» и «Core», у AMD - «Tctl». Для постоянного контроля эти датчики подключают к системе мониторинга (Zabbix, Prometheus), чтобы о перегреве узнавать из уведомления, а не по жалобам пользователей.
Блок управления. Он читает команды из памяти, расшифровывает их и подаёт сигналы АЛУ, регистрам и другим блокам: кому что делать и в каком порядке.
Кэш-память. Данные текущей операции лежат в регистрах, а то, что понадобится в ближайшее время, - в кэше L1, L2 и L3.
Из кристалла кремния с медными дорожками, многослойной подложки из текстолита с контактами и металлической крышки-теплораспределителя.
Ядро - вычислительный блок внутри процессора со своим блоком управления, АЛУ, регистрами и кэшем L1-L2. Процессор - это все ядра вместе с общим кэшем L3, контроллерами памяти и PCIe в одном корпусе.
Сами устройства - нет: клавиатура, диски и сетевые карты подключаются снаружи. Но контроллеры, через которые они работают (PCIe, у части моделей USB и SATA), в серверных процессорах встроены прямо в корпус.
Подбираете процессор для сервера или собираете новую конфигурацию?
Поможем выбрать процессор под вашу нагрузку: посчитаем, сколько нужно ядер, каналов памяти и линий PCIe, проверим совместимость с платформой и соберём сервер с тестом перед отгрузкой. Посмотрите серверные процессоры Intel Xeon и AMD EPYC в каталоге или напишите нам: +7 (800) 551-80-12, info@ittelo.ru. Серверами мы занимаемся больше 11 лет и за это время накопили серьёзную экспертизу. Даём гарантию до 5 лет, берём сервер на постпродажное обслуживание и не пропадаем после отгрузки.