X軸表pipeline的stage數,
我們可以看到在8Stage的時候,同時脈下效能是最高!!
16 stage的CPU在同時脈下效能約是8 Stage的 78%.
但是現在不是朝向高Stage化嗎?
沒錯,別忘了stage越高,時脈就能拉越高,
如果16 stage可以比8 stage多搾出50%的時脈
(如 在同一製程下,8 stage極限 500MHz,16 stage 極限 750MHz)
那效能還是會超過8 stage的Pipeline.
當然stage的分割有限制的.
1.因為data or control的Hazard.前者指資料相依性,後者是Branch prediction時,
會造成等待時間過長,嚴重影響效能(也就是為何16stage在同時脈下反落後8 stage)
要解決這問題,需要強大的Dynamic branch prediction!!
2.因為pipeline結構裡,有pipeline register,這些記憶體存取的動作是個瓶頸,
限制了stage無法再無限分割下去.
3.目前指令集種類繁多,長短不一,造成分割難以達到說每個stage都一樣的時間,
造成Imbalacing(不平均),
P6架構就是毀在這,相對的K7雖然stage數較小(12:10),
但是由Balance做的很好,所以同製程下時脈可以拉的比P6架構高很多!!
但是,這往往是很困難的,再次向AMD工程師脫帽致敬.
文章標籤
全站熱搜
