Циклов на инструкцию
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2009 г. ) |
В компьютерной архитектуре циклы на инструкцию (также известные как такты на инструкцию , такты на инструкцию или CPI ) — это один из аспектов производительности процессора : среднее количество тактов на инструкцию для программы или фрагмента программы. [1] Это мультипликативная инверсия инструкций за цикл .
Определение
[ редактировать ]Среднее количество циклов на инструкцию в данном процессе ( CPI ) определяется следующим средневзвешенным значением :
Где количество инструкций для данного типа инструкций , это тактовые циклы для этого типа инструкций и общее количество инструкций. Суммирование суммируется по всем типам инструкций для данного процесса сравнительного анализа.
Объяснение
[ редактировать ]Давайте предположим классический 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 (ИПЦ = 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)
- Миф о мегагерце
- МИПС
- Эта статья представляет собой полезное введение в измерение производительности компьютера для читателей, интересующихся этой темой.
Ссылки
[ редактировать ]- ^ Паттерсон, Дэвид А.; Хеннесси, Джон Л. (1994). Организация и проектирование компьютера: аппаратно-программный интерфейс . ISBN 9781558602816 .
- ^ Передовая компьютерная архитектура Кай Хвана, Глава 1, Задача упражнения 1.1.