ИПЦ в процессорах с конвейерной обработкой - PullRequest
0 голосов
/ 04 марта 2019

Учтите, что в ЦП CPI для инструкции добавления равен 0,5 (он выполняет две инструкции добавления в одном цикле с помощью конвейерной обработки).Поэтому, когда мы хотим вычислить время процессора для 10 инструкций добавления, мы умножаем 10 * 0,5 * 2 (время такта составляет 2 наносекунды), и все в порядке.

, но когда есть только одна инструкция добавления в соответствии ск формуле мы умножаем 1 * 0,5 * 2, что не правильно.потому что для выполнения инструкции добавления требуется хотя бы один тактовый цикл.

1 Ответ

0 голосов
/ 04 марта 2019

Учтите, что в ЦП CPI для инструкции добавления равен 0,5 (он выполняет две инструкции добавления в одном цикле с помощью конвейерной передачи)

, но когда есть только одна инструкция добавления в соответствии с формулоймы умножаем 1 * 0,5 * 2, что неверно.

Вы путаете между задержкой и пропускной способностью.

Пропускная способность описывает количество операций, которыеможет быть выполнено в данное время.ИПЦ, как вы используете это пропускная способность.Итак, если вы говорите, что ИПЦ = 0,5, вы имеете в виду, что вы можете получить 2 дополнительных результата за циклы.

Задержка - это мера времени между началом инструкции (или операции, чтением из памяти и т. Д.) И ее концом.Он не зависит от пропускной способности и коррелирует с количеством ступеней в вашем процессоре.

Поэтому, если вы посмотрите на отдельную инструкцию add, ее продолжительность, очевидно, не равна половине цикла.Конвейеры в недавнем Pentium работают от 14 до 19 циклов (но в более старой версии конвейеры были в два раза длиннее).А продолжительность отдельного добавления составляет ~ 15 циклов (в лучшем случае).

Поэтому, когда мы хотим вычислить время ЦП для 10 инструкций добавления, мы умножаем 10 * 0,5 * 2 (время такта составляет 2 наносекунды), и все в порядке.

Нет.Другие факторы могут оказывать влияние, как зависимости, так и в целом взаимодействия с другими инструкциями.ИПЦ был введен как мера среднего числа циклов на инструкции в полной программе.Сложность современных компьютеров такова, что почти невозможно получить точную оценку ИПЦ без выполнения программы.Итак, чтобы получить его, мы рассчитываем время программы и делим на количество выполненных инструкций.Это будет учитывать доступ к памяти, зависимости, неправильное предсказание ветвлений и т. Д., И это имеет смысл для конечного пользователя, который хочет знать, какова будет скорость его программы.Ваша оценка теоретическая, которая никогда не бывает в реальной жизни.

...