為什麼這篇pipeline觀念鄉民發文收入到精華區:因為在pipeline觀念這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Liroy (優白白)看板Army-Sir標題[教學] 計概 管線pipeline時間Fri J...
pipeline觀念建立在,縮短指令間等待時間,並行處理加速整個CPU執行
without pipeline:
┌─┬─┬─┬─┬─┐┌─┬─┬─┬─┬─┐┌─┬─┬─┬─┬─┐
└─┴─┴─┴─┴─┘└─┴─┴─┴─┴─┘└─┴─┴─┴─┴─┘
指令1 指令2 指令3
time├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤├─┼─┼─┼─┼─┤
|-------40sec------| |-------40sec------| |-------40sec------|
執行時間:
單個指令所需時間10+5+10+10+5 = 40
執行三個指令所需時間 3 x 40 = 120
----
pipeline
┌─┬─┬─┬─┬─┐ 指令1
└─┴─┴─┴─┴─┘
┌─┬─┬─┬─┬─┐ 指令2
└─┴─┴─┴─┴─┘
┌─┬─┬─┬─┬─┐ 指令3
└─┴─┴─┴─┴─┘
time├─┼─┼─┼─┼─┼─┼─┤
1 2 3 4 5 6 7
單個clock cycle所執行時間,挑最大的 MAX{10,5,10,10,5}=10
一共執行了七個clock cycle,執行時間為10 x 7 =70
----
公式化簡:
n級管線,m個指令,每級管線執行時間為t
總共實行時間為->n x t + (m-1) x t (自己觀察他的方式就可以得知為何了)
加速比:
n x t x m
─────────── ≒ n (if m >> n)
n x t + (m-1) x t
至於n級管線為何無法到達n倍,因為
1.需另外考慮管線暫存器的delay執行時間
2.管線沒有均勻分割
3.指令個數沒有遠大於n (m >> n 不成立)
4.可能產生hazard(違障)
----
管線設計可能會產生三種hazard
1.structure hazard
2.data hazard
3.control hazard
應該不用再下去了,再下去講不完了XXXXXXD
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.113.65.87