Общее время выполнения программы с условными ветвями в пятиступенчатом конвейере - PullRequest
1 голос
/ 03 ноября 2011

CPU имеет пятиступенчатый конвейер и работает на частоте 1 ГГц.Извлечение инструкции происходит на первой стадии конвейера.Инструкция условного перехода вычисляет целевой адрес и оценивает условие на третьей стадии конвейера.Процессор прекращает извлечение новых инструкций после условного перехода, пока не станет известен результат перехода.Программа выполняет 10 ^ 9 инструкций, из которых 20% являются условными ветвями.Если каждая инструкция занимает в среднем один цикл, общее время выполнения программы составляет:

(A) 1,0 секунда

(B) 1,2 секунды

(C) 1,4 секунды

(D) 1,6 секунды

1 Ответ

0 голосов
/ 25 декабря 2014
Total_execution_time = (1+stall_cycle*stall_frequency)*exec_time_each_inst

exec_time_each_inst = 1s [i.e @1ghz need to execute 10^9 inst =>  1 inst = 1 sec]

stall_frequency = 20% = .20

stall_cycle = 2 

[т.е. в 3-й стадии конвейера мы знаем результат ветвления, поэтому будет 2 цикла остановки]

поэтому Total_execution_time = (1 + 2 * .20) * 1 = 1,4 секунды

Я не знаю, как это объяснить лучше, но надеюсь, что это немного поможет :)

...