|
Regular Member
|
這是割pipleline的問題
先舉個例子 : A處理器沒有使用pipleline,
B處理器有使用pipleline 把指令執行時割成5階.
指令抓取 -> 指令解碼 ->執行 -> memory referernce ->回寫
IF ID EX MEM -> WB
假設現在有100道指令給A,B,執行 .每個指令需要20ms.
(B割5階所以每一階為 5ms)
A需要 20*100 = 2000ms
B需要 20*1+99*5 =515ms
(當第一道指令執行到達ID,第二道就可以先進去IF
,之後的指令就依序下去.)
A/B 約等於5. 所以說割20階理論上 throughput會增加20倍.
但是這是不可能.因為會遇到data hazard ,control hazard ........
因此割pipleline割適當,就可達到最佳效能.
如果說割的細的話 ,是有助於時脈的提升. 但是效能就.....
|