Циклов на инструкцию - Cycles per instruction

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

ТИП инструкцииКоличество инструкцийСчетчик тактов
Целочисленная арифметика450001
Передача данных320002
Плавающая точка150002
Передача управления80002

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

поскольку: и

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

Смотрите также

Рекомендации

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