В архитектуре компьютера количество инструкций за цикл ( IPC ), обычно называемое инструкциями за такт , является одним из аспектов производительности процессора : среднее количество инструкций , выполняемых за каждый такт . Это мультипликативная инверсия циклов за инструкцию . [1] [2] [3]
В то время как ранние поколения ЦП выполняли все шаги для выполнения инструкции последовательно, современные ЦП могут делать многие вещи параллельно. Поскольку невозможно просто продолжать удваивать скорость тактовой частоты, конвейеризация инструкций и конструкция суперскалярного процессора эволюционировали, так что ЦП могут использовать различные исполнительные блоки параллельно - просматривая входящие инструкции с целью их оптимизации. Это приводит к тому, что количество инструкций за цикл выполнения становится намного больше 1, и это отвечает за большую часть улучшений скорости в последующих поколениях ЦП.
Расчет IPC выполняется путем запуска заданного фрагмента кода, расчета количества инструкций машинного уровня, необходимых для его завершения, а затем использования высокопроизводительных таймеров для расчета количества тактов, необходимых для его завершения на реальном оборудовании. Окончательный результат получается путем деления количества инструкций на количество тактов ЦП.
Количество инструкций в секунду и операций с плавающей точкой в секунду для процессора можно получить, умножив количество инструкций за цикл на тактовую частоту (циклы в секунду, указанные в Герцах ) рассматриваемого процессора. Количество инструкций в секунду является приблизительным показателем вероятной производительности процессора.
Количество инструкций, выполняемых за такт, не является константой для данного процессора; оно зависит от того, как конкретное запущенное программное обеспечение взаимодействует с процессором, и, по сути, со всей машиной, в частности, с иерархией памяти . Однако определенные характеристики процессора, как правило, приводят к конструкциям, которые имеют значения IPC выше среднего; наличие нескольких арифметико-логических устройств (АЛУ — это подсистема процессора, которая может выполнять элементарные арифметические и логические операции) и короткие конвейеры. При сравнении различных наборов инструкций более простой набор инструкций может привести к более высокому значению IPC, чем реализация более сложного набора инструкций с использованием той же технологии чипа; однако более сложный набор инструкций может быть способен достичь более полезной работы с меньшим количеством инструкций. Таким образом, сравнение значений IPC между различными наборами инструкций (например, x86 против ARM) обычно бессмысленно.
Полезная работа, которую может выполнить любой компьютер, зависит от многих факторов, помимо скорости процессора. Эти факторы включают архитектуру набора инструкций , микроархитектуру процессора и организацию компьютерной системы (например, конструкцию дисковой системы хранения данных , а также возможности и производительность других подключенных устройств), эффективность операционной системы и высокоуровневую разработку прикладного программного обеспечения .
Для пользователей и покупателей компьютеров тесты приложений , а не количество инструкций за цикл, как правило, являются гораздо более полезным показателем производительности системы. Однако IPC дает пример того, почему тактовая частота не является единственным фактором, имеющим отношение к производительности компьютера.