В компьютерной архитектуре , циклы в инструкцию (ака такты на инструкцию , часы в инструкцию , или CPI ) является одним из аспектов процессора производительности: среднее количество тактов в инструкцию для фрагмента программы или программы. [1] Это мультипликативный обратная из команд за цикл .
Определение
Среднее количество циклов на инструкцию в данном процессе определяется следующим:
Где количество инструкций для данного типа инструкций , это тактовые циклы для этого типа инструкции и общее количество инструкций. Суммирование сумм по всем типам инструкций для данного процесса тестирования.
Объяснение
Предположим, что это классический конвейер RISC со следующими пятью этапами:
- Цикл выборки инструкций (IF).
- Цикл (ID) декодирования инструкций / выборки регистра.
- Цикл исполнения / эффективного адреса (EX).
- Доступ к памяти (MEM).
- Цикл обратной записи (WB).
Каждый этап требует одного тактового цикла, и инструкция проходит через этапы последовательно. Без конвейерной обработки в многоцикловом процессоре новая инструкция выбирается на этапе 1 только после того, как предыдущая инструкция завершается на этапе 5, поэтому количество тактовых циклов, необходимых для выполнения инструкции, равно пяти (CPI = 5> 1). В этом случае процессор называется субскалярным . При конвейерной обработке новая инструкция извлекается каждый такт за счет использования параллелизма на уровне инструкций , поэтому, поскольку теоретически можно иметь пять инструкций на пяти этапах конвейера одновременно (по одной инструкции на этап), другая инструкция будет завершать этап 5 на каждом этапе. тактовый цикл и в среднем количество тактовых циклов, необходимых для выполнения инструкции, равно 1 (CPI = 1). В этом случае процессор называется скалярным .
Для процессора с одним исполнительным модулем наилучший достижимый CPI равен 1. Однако с процессором с несколькими исполнительными модулями можно достичь даже лучших значений CPI (CPI <1). В этом случае процессор называется суперскалярным . Чтобы получить лучшие значения CPI без конвейерной обработки, количество исполнительных единиц должно быть больше, чем количество этапов. Например, с шестью исполнительными модулями шесть новых инструкций выбираются на этапе 1 только после того, как шесть предыдущих инструкций заканчиваются на этапе 5, поэтому в среднем количество тактовых циклов, необходимых для выполнения инструкции, составляет 5/6 (CPI = 5 / 6 <1). Чтобы получить лучшие значения CPI с конвейерной обработкой, должно быть как минимум два исполнительных модуля. Например, с двумя исполнительными модулями, две новые инструкции выбираются каждый тактовый цикл за счет использования параллелизма на уровне команд, поэтому две разные инструкции завершают этап 5 в каждом тактовом цикле, и в среднем количество тактовых циклов, необходимых для выполнения инструкции 1/2 (CPI = 1/2 <1).
Примеры
Пример 1
Для многоциклового MIPS существует пять типов инструкций:
Если в программе есть:
- Инструкции по загрузке 50%
- 25% магазин инструкции
- 15% инструкции типа R
- 8% инструкции ветвления
- 2% инструкции перехода
тогда ИПЦ равен:
Пример 2
[2] Длявыполнения тестовой программы использовался процессор400 МГц со следующим набором инструкций исчетчиком тактов :
ТИП инструкции | Количество инструкций | Счетчик тактовых циклов |
---|---|---|
Целочисленная арифметика | 45000 | 1 |
Обмен данными | 32000 | 2 |
Плавающая запятая | 15000 | 2 |
Передача управления | 8000 | 2 |
Определите эффективный CPI, скорость MIPS (миллионов инструкций в секунду) и время выполнения для этой программы.
поскольку: а также
Следовательно:
Смотрите также
- Цикл в секунду ( Гц )
- Инструкции на цикл (IPC)
- Инструкций в секунду (IPS)
- Миф о мегагерцах
- MIPS
- Бенчмарк статья является полезным введение измерения производительности компьютера для тех читателей , интересующихся этой темой.
Рекомендации
- ^ Паттерсон, Дэвид А .; Хеннесси, Джон Л. Компьютерная организация и дизайн: аппаратно-программный интерфейс .
- ^ Продвинутая компьютерная архитектура Кай Хванга, Глава 1, Задача 1.1.