Открыть сервисСервис

Core — ядро процессора

Core (от англ. core — ядро) — термин, обозначающий ядро центрального процессора (ЦП) или графического процессора (ГП) — самостоятельный вычислительный блок, способный выполнять инструкции программ независимо от других ядер. В современных процессорах несколько ядер размещаются на одном кристалле (чипе), что позволяет распараллеливать вычисления и повышать производительность без линейного увеличения тактовой частоты.

История понятия

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

В 2001 году IBM выпустила процессор Power4 — один из первых коммерческих чипов с двумя ядрами на кристалле. В 2005 году Intel и AMD представили первые массовые двухъядерные настольные процессоры: Pentium D и Athlon 64 X2. С этого момента понятие «core» перестало быть синонимом «процессора» и стало обозначать отдельный вычислительный модуль внутри многопроцессорного чипа.

Устройство ядра

Ядро процессора включает:

  • АЛУ (арифметико-логическое устройство) — выполняет арифметические и логические операции.
  • Контроллер управления — декодирует и исполняет инструкции.
  • Регистры — быстрые ячейки хранения операндов и адресов.
  • Кэш ядра — L1 и L2 кэш, как правило, являются персональными для каждого ядра.
  • Ветвляющий предсказатель и предсказатель переходов — механизмы повышения эффективности пайплайна.
  • Блока исполнения (execution units) — в современных суперскалярных ядрах их несколько, что позволяет выполнять несколько инструкций за такт.

Кэш третьего уровня (L3) в большинстве архитектур является общим для всех ядер чипа и служит буфером обмена данными между ними.

Классификация

По типу процессора

  • CPU-ядра — общего назначения: выполняют произвольные инструкции (x86-64, ARM, RISC-V).
  • GPU-ядра — вычислительные блоки графических процессоров; в архитектурах NVIDIA CUDA-ядра, AMD — потоковые процессоры. GPU может содержать тысячи простых ядер, предназначенных для параллельных однотипных вычислений.
  • Ядра NPU/TPU — специализированные блоки для ускорения нейросетевых вычислений.

По микроархитектуре

  • Симметричные (SMT) — все ядра имеют одинаковую производительность (типично для серверных и настольных CPU).
  • Гибридные (big.LITTLE) — сочетание производительных и энергоэффективных ядер. Применяется в ARM-архитектурах (технология ARM big.LITTLE, 2011) и в процессорах Intel 12-го поколения Alder Lake (2021), где ядра P-core и E-core работают под управлением планировщика ОС.
  • Многопоточные (SMT/Hyper-Threading) — одно физическое ядро может обслуживать два (или более) потока исполнения, маскируя задержки доступа к памяти. Intel называет технологию Hyper-Threading, AMD — SMT (Simultaneous Multithreading).

Многоядерность в России

Российские разработки процессоров также используют многоядерную архитектуру. Процессоры семейства Эльбрус (НЦСМ, Москва) содержат от 4 до 16 ядер (Elbrus-8S, Elbrus-16C) и используют собственную архитектуру VLIW. Процессор Байкал (Байкалэлектроника) — на базе MIPS-ядер от SiFive, до 8 ядер. Проект РISC-V развивается в рамках российской программы импортозамещения; в 2024 году были представлены прототипы отечественных чипов на RISC-V ядрах.

Смежные понятия

  • Сокет (socket) — разъём на материнской плате, определяющий, какие процессоры совместимы.
  • Разгон (overclocking) — повышение тактовой частоты ядер сверх номинальной.
  • Тепловой пакет (TDP) — предельная тепловая мощность, которую процессор рассеивает при нагрузке на все ядра.
  • Кристалл (die) — кусок кремния, на котором фабрично изготовлены ядра и кэш.

Значение

Многоядерная архитектура стала стандартом для всех классов вычислительной техники — от смартфонов (8 и более ядер) до суперкомпьютеров (миллионы ядер в сумме по всем узлам). Параллельное исполнение задач опирается на поддержку со стороны операционных систем и программного обеспечения: для эффективного использования нескольких ядер приложение должно уметь разбивать задачу на независимые потоки (технологии OpenMP, TBB, многопоточность в ОС).

Источники:

  • Hennessy J., Patterson D. — Computer Architecture: A Quantitative Approach
  • Справочные материалы Intel и AMD по архитектуре процессоров
  • Документация ARM big.LITTLE
  • Материалы НЦСМ по процессорам «Эльбрус»
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru