stringtranslate.com

Циклов на инструкцию

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

Определение

Среднее значение числа циклов на инструкцию в данном процессе ( CPI ) определяется следующим средневзвешенным значением :

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

Объяснение

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

  1. Цикл выборки инструкций (IF).
  2. Цикл декодирования инструкций/выборки регистра (ID).
  3. Цикл исполнения/эффективного адреса (EX).
  4. Доступ к памяти (MEM).
  5. Цикл обратной записи (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 существует пять типов инструкций:

Если в программе есть:

тогда ИПЦ равен:

Пример 2

[2] Для выполнения тестовой программы использовался процессор с тактовой частотой 400 МГц со следующим набором инструкций и количеством тактовых циклов :

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

так как: и

Поэтому:

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

Ссылки

  1. ^ Паттерсон, Дэвид А.; Хеннесси, Джон Л. (1994). Организация и проектирование компьютеров: интерфейс оборудования и программного обеспечения . Морган Кауфманн. ISBN 9781558602816.
  2. ^ Advanced Computer Architecture, автор Кай Хванг, Глава 1, Задача 1.1