2014-05-12 2 views
0

Я понимаю, что однотактные программы не очень эффективны. Одна из причин заключается в том, что не все инструкции равны по длине, но в однотактной программе все инструкции завершаются за один и тот же отрезок времени.Одиночный цикл с конвейерным подходом

В трубопроводе увеличивается пропускная способность, что означает, что время между одним выходом и следующим будет короче, чем в однотактной реализации, после достижения определенной точки. Но тогда вы можете сказать, что инструкции в конвейерном подходе занимают одинаковое количество времени (от IF/Instruction Fetch до WB/Writeback)? Или это неправильный вывод?

ответ

2

См. Все инструкции в одном цикле, не конвейерной структуре, не обязательно занимает одинаковое время, а следующая инструкция должна выполняться после того, как инструкция не может начаться до следующего тактового цикла, текущая инструкция может завершиться до текущего цикла, длина цикла определяется самой длинной инструкцией.eg add register завершается перед загрузкой в ​​RISC.

Сейчас в конвейерной структуре процессоре
многоступенчатых с регистром для хранения и распространения информации о состоянии processor.Now в основном на конвейерном процессоре мы экономим время перекрытия substages.hence двух instructionss', хотя по отдельности длина инструкции увеличивается но общее время сократилось. Теперь видно, что каждая инструкция не может проходить через все этапы, например, нагрузка и добавление снова Таким образом, полная латентность для каждой команды будет состоять из всех этапов, но ее выполнение, возможно, заняло меньше циклов

Таким образом, вы можете сказать, что латентность каждой команды одинакова, но не время выполнения или количество циклов, потребляемых

+0

Так, чтобы уточнить, время выполнения инструкций в конвейерном подходе не обязательно одинаковое время? – user3025403

+0

Нет, только латентность каждой команды не совпадает с фактическим временем – silentseeker

Смежные вопросы