Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Определение [ править ]

Среднее количество циклов на инструкцию в данном процессе определяется следующим:

Где - количество инструкций для данного типа инструкций , - это тактовые циклы для этого типа инструкции и - это общее количество инструкций. Суммирование сумм по всем типам инструкций для данного процесса тестирования.

Объяснение [ править ]

Предположим, что это классический конвейер RISC со следующими пятью этапами:

  1. Цикл выборки инструкций (IF).
  2. Цикл (ID) декодирования инструкций / выборки регистра.
  3. Цикл исполнения / эффективного адреса (EX).
  4. Доступ к памяти (MEM).
  5. Цикл обратной записи (WB).

Каждый этап требует одного тактового цикла, и инструкция проходит через этапы последовательно. Без конвейерной обработки в многоцикловом процессоре новая инструкция выбирается на этапе 1 только после того, как предыдущая инструкция завершается на этапе 5, поэтому количество тактовых циклов, необходимых для выполнения инструкции, равно пяти (CPI = 5> 1). В этом случае процессор называется субскалярным . При конвейерной обработке новая инструкция извлекается каждый такт за счет использования параллелизма на уровне инструкций., поэтому, поскольку теоретически можно иметь пять инструкций на пяти этапах конвейера одновременно (одна инструкция на этап), другая инструкция завершит этап 5 в каждом тактовом цикле, и в среднем количество тактовых циклов, необходимых для выполнения инструкции, равно 1 (ИПЦ = 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 МГц со следующим набором инструкций исчетчиком тактов :

Определите эффективный CPI, скорость MIPS (миллионов инструкций в секунду) и время выполнения для этой программы.

с: и

Следовательно:

См. Также [ править ]

  • Цикл в секунду ( Гц )
  • Инструкции на цикл (IPC)
  • Инструкций в секунду (IPS)
  • Миф о мегагерцах
  • MIPS
  • Бенчмарк статья является полезным введение измерения производительности компьютера для тех читателей , интересующихся этой темой.

Ссылки [ править ]

  1. ^ Паттерсон, Дэвид А .; Хеннесси, Джон Л. Компьютерная организация и дизайн: аппаратно-программный интерфейс .
  2. ^ Продвинутая компьютерная архитектура Кай Хванга, Глава 1, Задача 1.1.