Из чего состоит процессор
- Фундамент любого процессора: архитектура набора команд
- Блок управления и путь выполнения
- Цикл выполнения инструкций — выборка и декодирование
- Арифметико-логическое устройство (АЛУ)
- Команды и иерархия памяти
- Команды перехода и ветвления
- Экстраординарное исполнение
- Ускорители и будущее процессоров
- Многоядерный процессор
- Физическая оболочка процессора
- Конвейерная архитектура
- Суперскалярная архитектура
- CISC-процессоры
- RISC-процессоры
- MISC-процессоры
- VLIW-процессоры
- Кэширование
- Цифровые сигнальные процессоры
- Энергопотребление процессора
- Рабочая температура процессора
- Рассеивание и отвод тепла процессора
- Измерение и отображение температуры микропроцессора
Процессор (центральное процессорное устройство; eng. central processing unit либо сокращённо ЦПУ, ЦП, CPU) – это вычислительный блок сервера. Сложная микросхема, состоящая из нескольких компонентов, компактно размещённых на кремниевой подложке. Обрабатывает данные, следуя заложенным в архитектуру инструкциям. Получает от пользовательских программ запрос на решение той или иной задачи и последовательности её выполнения. После отправляет готовый результат вычислений.
Например, программа «Калькулятор» даёт указание процессору взять 2 числа — 3 и 5 — выполнить операцию умножения, отправить результат обратно.
Процессор отдаёт программе готовый ответ, пользователь видит в окошечке калькулятора число 15. Остальные задачи, невзирая на сложность, выполняются по такому же алгоритму.
Фундамент любого процессора: архитектура набора команд
Основа любого процессора — архитектура набора команд (Instruction Set Architecture, ISA). Это прослойка, которая даёт пользовательским программам инструменты для работы с низкоуровневыми инструкциями. Архитектуры отличаются набором инструкций, доступных ЦП. Определяют формат их кодирования.
Блок управления и путь выполнения
Блок управления (eng. Control Unit или сокращённо CU) управляет потоками данных внутри ЦП, координирует совместную работу всех компонентов. «Ведёт» поступившие данные от входящего запроса до завершения вычислений и отправки готового результата обратно.
Чем занимается CU:
- задаёт последовательность перемещения данных;
- интерпретирует инструкции;
- получает внешние инструкции или команды, которые преобразует в последовательность управляющих сигналов;
- управляет исполнительными блоками (ALU, буферы, регистры);
- отвечает за сохранение результатов.
Блок управления — «мозг» ЦП. Он заставляет остальные детали процессора функционировать в связке, координирует работу так, чтобы свободные вычислительные мощности не простаивали напрасно.
Цикл выполнения инструкций — выборка и декодирование
Цикл выполнения инструкций начинается с фазы выборки. На этом этапе ЦП извлекает инструкции из памяти. Блок управления привязывает адреса памяти к соответствующим выполняемым инструкциям. Инструкция загружается в регистр команд.
После фазы выборки ЦП переходит к фазе декодирования, интерпретируя инструкции, полученные из памяти. Задаёт условия, необходимые для совершения операции. Идентифицирует операнды (все объекты, над которыми будут проведены вычисления). Этот этап подготавливает ЦП к непосредственному выполнению инструкции.
Арифметико-логическое устройство (АЛУ)
Arithmetic Logic Unit, или сокращённо ALU, занимается арифметическими и логическими операциями. Выполняет широкий спектр элементарных вычислений. Блок управления засылает задачу для вычисления, набор инструкций и сценарий их обработки. АЛУ манипулирует этими данными, выполняя задание.
Функции ALU:
- обработка входных операндов, добавление операндов;
- хранение накопленных результатов;
- регулирование потока данных во время выполнения операций;
- арифметические вычисления — сложение, вычитание, умножение и деление;
- логические операции — и/или.
CU — это самостоятельный блок, оперирует целым набором инструкций, полученных от пользователя. ALU — вычислитель, который решает отдельные задачи по запросу и отдаёт обратно готовый результат.
Команды и иерархия памяти
Команды относятся к инструкциям, которые нужно выполнить процессору для решения задачи. Информация записывается в память, считывается из неё и по необходимости сохраняется/удаляется. Есть несколько типов памяти. Чем ближе хранилище к ядру процессора, тем выше скорость обработки, но ниже ёмкость. Кроме прочего, CPU обязан корректно выстраивать иерархию памяти: ключевую информацию держать поближе к ядру, а малозначимую — выносить на периферию.
Уровни памяти:
- Регистры. Небольшие высокоскоростные блоки памяти, расположенные у самого ядра. Хранят базовые инструкции и наиболее часто используемые данные. Регистры отличаются самым быстрым временем доступа и наименьшей ёмкостью памяти.
- Кэш-память. Небольшой быстрый блок памяти на периферии кристалла. Минимизирует время доступа к важным данным, которые не помещаются в регистре.
- ОЗУ (оперативная память). Основная память компьютерной системы. Ёмкость гораздо выше, чем у кэш-памяти, но работает медленнее. Хранит все данные, которые в данный момент нужны для работы пользовательского сеанса.
- Вторичное хранилище. Это энергонезависимая память — HDD и SSD. Хранит данные, которые в данный момент не используются процессором. Отличается большим объёмом и самым медленным временем доступа.
- Третичное хранилище. В некоторых системах существует также третичное хранилище, которое используется для резервного копирования и архивирования.
При движении по иерархии от ядра к периферии каждый уровень содержит больше памяти, но требует больше времени для доступа. Цель иерархии — отсортировать информацию по количеству запросов. Чем выше частота обращений, тем ближе к ядру она хранится. Так ЦП может обрабатывать максимальное количество запросов к памяти за единицу времени.
Команды перехода и ветвления
Это инструкции, которые инициируют выполнение другой последовательности команд, отклонившись от сценария по умолчанию. Сообщают ЦП о необходимости выполнить код с нового адреса памяти. Это можно использовать для изменения логики программы в зависимости от текущего состояния системы.
Экстраординарное исполнение
Экстраординарное выполнение относится к специализированным инструкциям или режимам, которые расширяют возможности ЦП за пределы базового набора арифметических и логических операций. Может включать векторные инструкции для параллельной обработки, криптографию (шифрование данных), специализированные инструкции аппаратной обработки мультимедиа и многое другое.
Ускорители и будущее процессоров
Ускоритель — это аппаратный блок, который разгружает ЦП, выполняя определённые задачи вместо него. Отличается узкой специализацией, адаптирован под выполнение определённого типа вычислений. Например, рендеринга графики (GPU) или нейроморфного моделирования (NPU). Актуальные тенденции в развитии серверного оборудования включают в себя многоядерность, а также интеграцию с ИИ и нейросетями.
Многоядерный процессор
Многоядерность — это метод повышения производительности, основанный на размещении нескольких физических ядер ЦП на одном кристалле. Каждое ядро решает свою задачу, обрабатывая отдельный набор инструкций. Дробление сложных задач на большое количество простых этапов, которые обрабатываются параллельно, позволило повысить производительность серверного оборудования, не поднимая тактовую частоту. А значит, избегая излишнего нагрева и энергопотребления.
Концепция многоядерности оказалась настолько успешной, что сегодня распространилась на вычислительные системы всех типов — от настольных ПК и ноутбуков до мобильных устройств.
Физическая оболочка процессора
На аппаратном уровне ЦП представляет собой интегральную схему (чип). Миллионы и миллиарды крошечных электрических деталей-транзисторов объединяют в функциональные блоки и напаивают послойно на кремниевую пластину. Транзистор — фундаментальный строительный блок процессора. Действует как переключатель, контролируя потоки электрического тока внутри процессора, позволяя ему выполнять элементарные вычисления.
Компоненты стандартного серверного CPU:
- регистровая память;
- АЛУ;
- блок управления;
- кэш-память;
- тактовый генератор (он же генератор тактовых импульсов);
- адресная шина;
- шина данных;
- радиатор и термоинтерфейс (отводят и рассеивают тепло).
В комплект также входят контактные площадки, соединяющие процессор с элементами материнской платы.
Конвейерная архитектура
Есть 2 способа повысить производительность процессора — улучшить аппаратную часть или оптимизировать схему расположения блоков на кристалле. Поскольку возможности традиционного «кремния» практически упёрлись в потолок, а разработка новых экзотических материалов продвигается слишком медленно, вендорам пришлось сосредоточиться на втором варианте.
В компьютерной архитектуре конвейерная обработка — это метод разбиения крупной задачи на более мелкие, которые можно выполнять параллельно. Конвейер — это серия блоков задач, соединенных в цепочку, в которой каждый блок передает свои выходные данные следующему в последовательности. Инструкции входят с одного конца и выходят с другого.
Самый простой пример — сборочная линия автомобиля. В начало конвейерной цепи поступает каркас авто, который за несколько этапов «обрастает» запчастями и деталями. Причём на каждом этапе работа делается не с нуля, а с момента логического завершения предыдущего. В итоге процессор выполняет задачи предсказуемо и упорядочено.
Этапы типичного конвейера ЦП:
- Выборка;
- Декодирование;
- Выполнение.
Конвейерная обработка не сокращает время выполнения отдельной инструкции, но увеличивает количество инструкций, которые обрабатываются параллельно. И укорачивает задержку между завершенными инструкциями, т. е. «пропускную способность». За счёт этого и достигается преимущество в скорости.
Суперскалярная архитектура
Суперскалярная архитектура — это метод параллельных вычислений, разработанный для выполнения нескольких процессов одновременно в течение одного такта. Ускоряет работу обычного «конвейера», параллельно прогоняя сразу несколько конвейерных команд через блоки управления в ядрах процессора. Использует параллелизм на уровне команд для повышения пропускной способности.
Простыми словами:
- обычный конвейер обрабатывает только одну инструкцию за такт;
- суперскалярная машина обрабатывает несколько инструкций за такт.
Чтобы провернуть такой трюк, задействуют все простаивающие вычислительные мощности. Например, при выполнении инструкции, извлекающей значение из памяти, АЛУ будет простаивать. На суперскалярной архитектуре это время занято вычислением параллельного процесса.
Преимущества суперскалярной архитектуры:
- меньшая нагрузка на компилятор за счёт полного задействования аппаратной части;
- блок управления не простаивает и занят работой постоянно.
Из-за недостатков — особая чувствительность к качеству низкоуровневого кода.
CISC-процессоры
Философия CISC — выполнить максимальное количество операций в рамках одной инструкции. Или, говоря проще, одна команда — несколько действий. Задача — сократить количество инструкций, нужных для работы программ. Цель — упростить порог вхождения для программистов.
Из других плюсов — несколько режимов адресации. Разработчику становится проще создать свой набор инструкций под предпочтительный язык высокого уровня.
Особенности процессоров CISC:
- сложное декодирование инструкций;
- переменный характер и большой размер инструкций;
- больше типов данных и сложные режимы адресации;
- операции выполняются внутри регистровой памяти, результаты кэшируются;
- учитывая длину инструкции, для выполнения нужно более одного тактового цикла.
CISC-архитектура позволяет процессору выполнить задачу с минимальным количеством низкоуровневого кода. Команды выбранного языка высокого уровня не нужно конвертировать в язык ассемблера. Из недостатков — снижение эффективности на высоконагруженных системах (например, серверы). Не поддерживает конвейерную обработку инструкций.
Каноничные примеры архитектуры — хорошо нам знакомые x86 и x86-64.
RISC-процессоры
В противовес CISC ориентируется на небольшие высокооптимизированные наборы инструкций. Реализуется принцип 1 команда = 1 действие. Команды в RISC короче. Инструкции простые, выполняются по одной за такт.
Преимущества архитектуры:
- простые инструкции;
- быстрое выполнение;
- низкое энергопотребление;
- поддерживает конвейерную обработку инструкций.
Из-за таких особенностей решение задачи требует большего количества инструкций. Процессорам RISC требуется больше места для хранения дополнительных инструкций, что увеличивает расход регистровой и кэш-памяти.
MISC-процессоры
Возводит концепцию RISC в абсолют. Команды предельно минималистичны. Использованы только базово необходимые инструкции. Каждая выполняет только одну операцию низкого уровня.
Сильные стороны MISC — феноменальная скорость и отказоустойчивость. Но за это приходится платить скудной функциональностью. Архитектуре не хватает универсальности. Её область применения ограничена специализированным оборудованием, где эффективность и отказоустойчивость имеют первостепенное значение. Например, космос, авиация, военная промышленность.
VLIW-процессоры
Как видно из названия, VLIW (very long instruction word) — это архитектура очень длинных командных слов. Процессоры на её основе пытаются добиться параллелизма на уровне команд, кодируя максимальное количество операций в один командный запрос. Но в отличие от CISC, всю работу по планированию и оптимизации VLIW-процессор сваливает на компилятор.
Из ожидаемых преимуществ: потенциально высокая производительность, низкий порог вхождения для разработчиков ПО. Вместе с тем возникает «бутылочное горлышко» в виде самого компилятора. Если он работает неэффективно, система становится перегруженной и неповоротливой.
Кэширование
Чтобы сократить время доступа к памяти, часто используемую информацию нужно хранить поближе к ядру. Это ускоряет отклик, повышает общую производительность системы. В ограниченную регистровую память влезают только базовые инструкции. Остальное пишется в кэш.
Раньше существовал только один уровень cash-памяти. Современные «камни» оснащены трёхуровневым кэшем: L1, L2 и L3. С каждым слоем растёт ёмкость, но падает скорость. Причём у каждого ядра своя персональная кэш-память. Нужный объём всегда в наличии и не засоряется посторонними запросами.
Цифровые сигнальные процессоры
DSP (eng. digital signal processor) — это узкоспециализированный тип процессора. Обрабатывает цифровые и аналоговые сигналы в реальном времени. Оснащён набором специфических инструкций, поэтому справляется с такими задачами быстрее и с меньшими затратами энергии, чем обычный настольный или серверный CPU.
DSP находят применение в:
- радарах;
- лидарах;
- мультимедийном оборудовании (декодирование, сжатие аналоговых сигналов);
- телефонии (цифровая обработка звука и речи);
- обработке изображений и видео.
Часто оборудование на базе DSP используется в качестве ускорительных блоков для разгрузки ЦП при работе со сложными специфическими задачами.
Энергопотребление процессора
Выражено в общем количестве электроэнергии, потребляемой во время работы. Измеряется в ваттах (Вт). Показатель зависит от архитектуры, тактовой частоты, нагрузки, а также заложенных производителем энергосберегающих технологий (DVFS, Power Gating, C-states, Cache Hierarchy Optimization, Task Scheduling and Power Management).
Умение переключать неиспользуемые мощности в спящий режим, динамическое изменение нагрузки, оптимизация иерархии кэша и перенаправление простых задач на энергоэффективные ядра позволяет современным процессорам оставаться «холодными» и потреблять минимально необходимое количество энергии.
Рабочая температура процессора
Так называют температурный диапазон, при котором чип способен отрабатывать в штатных условиях. «Запекание» приводит к деградации кристалла. Поэтому в каждом CPU заложен механизм защиты от перегрева.
Тепловое дросселирование (или более привычный нам термин «троттлинг») — это искусственное занижение тактовой частоты процессора. Включается автоматически, предотвращая перегрев и потенциальное повреждение. Если система работает медленно, не спешите ругать «камушек». Возможно, его потенциал не раскрывается на 100% из-за слабого охлаждения.
Рассеивание и отвод тепла процессора
Чем выше энергопотребление процессора, тем сильнее он греется. Во время работы чипы выделяют тепло, которое необходимо эффективно рассеивать, чтобы предотвратить перегрев и троттлинг. Большая часть вычислительного оборудования использует стандартные варианты охлаждения:
- термопасту/термопрокладки;
- пассивные радиаторы;
- воздушные кулеры с теплоотводящими трубками;
- водяные помпы, отводящие тепло от процессора на радиатор.
В отдельных случаях, например, для высоконагруженных серверов или интегральных схем специального назначения, используют иммерсионное охлаждение. Вычислительное оборудование полностью погружают в резервуар с диэлектрической жидкостью, чтобы максимально увеличить площадь и эффективность теплоотдачи.
Измерение и отображение температуры микропроцессора
Температуру микропроцессора измеряют с помощью встроенных термодатчиков и внешних инструментов контроля температуры. Современные материнские платы считывают температуры в режиме реального времени, что позволяет использовать автоматический контроль температуры процессора. Система сама регулирует интенсивность обдува радиатора охлаждения, оптимизируя воздушный поток в системе.
Необязательно быть опытным автолюбителем и досконально разбираться в устройстве ДВС, чтобы успешно пользоваться колёсным транспортом каждый день. Такая же история и с процессорами. Не волнуйтесь, если ваши знания в теме носят лишь поверхностный характер. IT-инженеры ittelo.ru отлично разбираются в проблемах железа. Опишите задачи, которые нужно решить, и ориентировочный бюджет, а мы предложим топ-варианты в выбранной ценовой категории.