Процессорный IPC: что означает показатель инструкций за цикл

Россия+7 (910) 990-43-11
Обновлено: 2025-05-15

Если вы изучали производительность CPU при покупке следующего процессора, вы наверняка встречали термин «IPC» здесь и там.

Вот слайд с недавнего мероприятия по запуску AMD Ryzen серии 7000, который рекламирует улучшение IPC:

Улучшения IPC и влияние на производительность CPU AMD 7000

В этой статье я объясню, что такое IPC (Instructions Per Clock/Cycle) и как это влияет на производительность процессора.

К сожалению, один из самых простых способов объяснить IPC всё ещё немного сложен: это количество инструкций, которые ЦП может обработать за один такт.

Но, если это определение ничего не значит для вас, не волнуйтесь. Вы не одиноки.

Что такое IPC

Тактовые циклы и тактовые частоты: погружение с головой в микроархитектуру центрального процессора.

Какой тактовый цикл?

Визуализация тактового цикла велосипеда

Не этот.

Это, на самом деле, что-то вроде этого:

Иллюстрация тактовых циклов процессора

Теперь без шуток, позвольте мне объяснить.

Цифровые схемы полагаются на тактовые сигналы, чтобы знать, когда и как выполнять инструкции.

Вот почему большинство электронных устройств, включая процессоры, содержат внутренний осциллятор, поддерживающий стабильное «тиканье часов». Эти тактовые сигналы непрерывны и выглядят как простая прямоугольная волна с высоким и низким состоянием (как показано выше).

Один «цикл» CPU – это временной интервал между двумя этими импульсами, синхронизированными внутренним генератором. Это время, необходимое для перехода из низкого состояния в высокое и обратно в низкое.

Количество этих «циклов», которые он может обрабатывать в секунду, – это то, что мы называем «тактовой частотой» процессора.

Так как тактовая частота и тактовый цикл процессора могут быть разными для каждой архитектуры ЦП, мы никогда не сравниваем ЦП разных марок/поколений, используя только их тактовую частоту.

Определение IPC – на что влияет тактовая частота

Теперь, когда вы знаете, что такое тактовый цикл, определение IPC становится намного проще.

IPC (Instructions Per Clock) – это количество инструкций, которые ЦП может выполнить за один такт.

С другой стороны, тактовая частота процессора (указываемая в ГГц) – это количество тактов, которые он может выполнить за одну секунду. Таким образом, процессор с частотой 3 ГГц может выполнять целых 3 миллиарда циклов за одну секунду!

Даже в рамках одного и того же бренда IPC могут сильно различаться.

Вот один пример:

Бенчмарк CPU на показатель IPC в Cinebench R20

Просто взгляните на показатели производительности при запуске одноядерного теста Cinebench R20 на всех этих процессорах.

Поскольку все процессоры заблокированы на постоянной частоте 4 ГГц, единственным аспектом, который может варьироваться, является количество инструкций, которые эти процессоры могут обрабатывать за такт (их IPC).

Вы можете ясно видеть скачки производительности между поколениями с каждым новым Ryzen.

AMD поднялась с 404 (Ryzen 7 1800X) для одного ядра до 517 (Ryzen 7 5800X) на той же частоте 4 ГГц!

Часто задаваемые вопросы

Как улучшается IPC?

Каждое поколение ЦП улучшает предыдущее (за некоторыми заметными исключениями).

Хотя объяснение того, как вы можете улучшить IPC, перенесёт эту статью на территорию микроархитектуры ЦП, я могу дать вам краткий обзор того, что происходит за кулисами.

Улучшения IPC процессора AMD Ryzen Zen 4

Давайте снова воспользуемся слайдами презентации AMD Ryzen 7000? Вот часть, где Марк Пейпермастер из AMD объясняет, как процессоры Zen 4 достигли 13-процентного увеличения IPC по сравнению с предыдущим поколением.

Процессоры AMD Zen 4 достигли прироста IPC

Как вы можете видеть здесь «участников» IPC, перечисленных справа, которые представляют собой некоторые аспекты современного процессора и которые можно улучшить, чтобы получить повысить IPC.

Давайте рассмотрим, что они из себя представляют?

  • Кэш L2: банк памяти, построенный на микросхеме ЦП и более медленный, чем кеш L1. Его также называют вторичным кэшем.
  • Механизм выполнения: обрабатывает целочисленные операции и операции с памятью, а также операции с плавающей запятой.
  • Предсказание ветвления: ускоряет обработку инструкций ветвления с использованием конвейеров.
  • Загрузка/сохранение: специализированный блок, отвечающий за выполнение всех инструкций по загрузке и сохранению.
  • Внешний интерфейс: имеет дело с упорядоченными операциями, такими как выборка инструкций и декодирование.

Означает ли более высокая частота более быстрый процессор?

Только при сравнении процессоров одной марки и одного поколения.

Никогда не следует использовать тактовые частоты для сравнения производительности двух процессоров в любом другом сценарии.

Вполне возможно, что десятилетней давности «процессоры с частотой 4 ГГц» будут заменены более современными «3 ГГц».

Чтобы понять разницу, можно провести следующую аналогию:

Представьте, что двум парням поручено заполнить большую яму гравием. Они могут работать с одинаковой скоростью — одна лопата в секунду.

В этой аналогии IPC представляет собой лопату, а тактовая частота — скорость, с которой каждый из них сгребает гравий.

Если оба парня используют одну и ту же лопату, они закончат свои задачи одновременно.

Но если вы дадите одному из них большую лопату, а другой продолжит работать с прежней скоростью, кто, по вашему мнению, закончит работу первым? Конечно, тот, у кого лопата больше, справится с задачей быстрее!

То же самое касается и процессоров. Не имеет смысла сравнивать только скорость их работы, если их показатели IPC могут сильно различаться.

Можно ли измерить IPC процессора?

Так как тактовая частота — это относительно простой способ оценить производительность процессора, многие люди, вполне естественно, ожидают, что и для IPC будет существовать аналогичная метрика.

К сожалению, не существует простого способа измерить IPC, поскольку не все инструкции одинаковы, и их количество может сильно различаться в зависимости от рабочей нагрузки.

Даже относительно простая задача разбивается на машинный код, который может быть обработан вашим процессором. Поскольку существует множество различных рабочих нагрузок, приложений и процессов, с которыми может справиться центральный процессор настольного компьютера, определить количество инструкций, выполняемых за один такт, в виде понятной числовой метрики практически невозможно.

Тем не менее, вы можете получить приблизительную оценку относительного прироста IPC.

Установите одинаковую тактовую частоту и множитель для двух процессоров и запустите однопоточный тест, например, Cinebench R20. Вы увидите, что разница в производительности будет очень близка к разнице в IPC (количество инструкций, выполняемых за один такт).


4.0/4