Originally posted by tacoChang@Apr 11 2005, 01:55 AM
L1 : Instruction Cache(指令快取)+Data Cache(資料快取)
L2/L3 : Cache
L1有分指令快取與資料快取
各自擁有一定容量
但是L2以降則混合使用不再區分個別使用目的及範圍
Pentium 4開始使用的NetBurst架構
將Instruction預解碼成微運算碼,稱microOps
Instruction Cache則改稱Trace Cache
預解碼的好處是不必等要執行時才解碼
對於大量重複性質高的運算有極大助益
例如迴圈多的運算
但是碰到不存在於Trace Cache中的微指令碼
又必須重新從L2.L3甚至主記憶體提取,再行解碼
還記得當時P4與K7做比較時
P4:ALU_Pipe*4 , FPU_Pipe*2 , Decoder Pipe*1
K7:ALU_Pipe*3 , FPU_Pipe*3 , Decoder Pipe*3
P4的Decoder才一條,
但是因為Rapid Execution Engine以兩倍速度解碼
等效於兩條,甚至超越兩條
(可以用同架構2GHz CPU vs 1GHz*2來想)
而且時脈愈高,1*2與3*1的差距愈小
所以為什麼早期同型號等級測試時
3D效能是K7很強
P4會強在影音編碼/壓縮檔案
因為分支指令會讓P4挫賽
可是到後來P4時脈愈來愈高,Trace Cache稍微加大,L2 Cache加大,頻寬增大
挫賽率下降(Trace Cache),Decoder效率差距縮小
增大的L2(一般說來對大家都好,但是要有附加條件*)
3D效能也就能追上同型號等級K7了...