Введение

Среднее количество выполненных инструкций за такт

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

Пояснение

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

Расчет IPC

Расчет IPC выполняется путем запуска определенного фрагмента кода, вычисления количества машинных инструкций, необходимых для его завершения, а затем использования высокопроизводительных таймеров для определения количества тактов, необходимых для его выполнения на конкретном оборудовании. Окончательный результат получается делением количества инструкций на количество тактов процессора. Количество инструкций в секунду и операций с плавающей точкой в секунду для процессора можно получить, умножив количество инструкций на такт на тактовую частоту (такты в секунду, измеряемые в Герцах) данного процессора. Количество инструкций в секунду является приблизительным показателем ожидаемой производительности процессора. Количество инструкций, выполняемых за такт, не является постоянной величиной для конкретного процессора; оно зависит от того, как конкретное программное обеспечение взаимодействует с процессором и, в целом, со всей системой, особенно с иерархией памяти. Однако определенные особенности процессора, как правило, приводят к конструкциям с более высоким, чем средний, значением IPC: наличие нескольких арифметико-логических устройств (АЛУ – это подсистема процессора, способная выполнять элементарные арифметические и логические операции) и короткие конвейеры. При сравнении различных наборов инструкций более простой набор инструкций может давать более высокий показатель IPC, чем реализация более сложного набора инструкций с использованием той же чиповой технологии; однако более сложный набор инструкций может выполнять больший объем полезной работы с меньшим количеством инструкций. Поэтому сравнение показателей IPC между разными наборами инструкций (например, x86 и ARM) обычно не имеет смысла.

Скорость компьютера

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