小弟就自己知道的說一點
還望版上專業的版友來指正說明
L1 Cache顧名思義就是第一層快取
這層快取離CPU最近, 速度最快, 容量也是最小的
現在一般的CPU的L1 Cache都把它分成Data Cache和Instruction Cache兩種
Data Cache就是簫n處理的data
Instruction就是簫n處理的指令
像是K8就有64KB L1 Data Cache和64KB L1 Instruction Cache
而P4相比於K8, 有比較不一樣的L1 Cache做法
K8的L1 Instruction Cache是用容量來計算的
可以存放64KB的Instruction
但是這些Instruction是還沒有decode過的X86指令, 大小長度是不一樣的
P4則用了一個叫做L1 Trace Cache的東西來代替原本的L1 Instruction Cache
(之所以用原本這個詞是因為P6 Architecture的Pentium3還是使用Instruction Cache而不是Trace Cache)
這個Trace Cache是放在decoder之後的
這個decoder應該會把長度和複雜度不一的X86指令拆成一個到多個內部執行的RISC指令
再把這些解好的指令放到Trace Cache中, 這種解出來的類RISC指令就叫做micro op
P4有12K個micro ops的深度
以內部RISC指令長度不會太長的前提來看, 這個L1 Trace Cache應該是和K8的L1 Instrcuction Cache差不多大的
Instruction Cache或是Trace Cache的好處就是
現在先進的CPU都會利用"短時間內相同的程式碼被執行的機率是很高的"這件事
假設接下來要執行的程式碼應該之前有執行過
那麼我應該就可以在Instruction Cache或是Trace Cache找到這些程式碼
這樣我就不需要去L2 Cache或是DRAM搬指令來執行了
而L2 Cache就是比L1 Cache速度慢一點, 容量大一點的Cache
L1 Cache miss的時候就會去L2 Cache尋找
一般來說,現在的CPU的L2 Cache都是Instruction和Data混用的
就不會再分L2 I-Cache和L2 D-Cache
因為P4的時脈較高
也就是CPU內頻和外頻的比例較高
因此一但L1 miss且L2 miss那所付出的代價就很高
所以可以看到Intel不斷增大P4的L2 Cache就可以得到更高的效能
從Willamate的256KB到Northwood的512KB, 再到Prescott的1MB和2MB
可以看到從256KB到512KB效能的增進很大
L2 Cache的命中率應該提升不少
至於Prescott因為pipeline的改變這部份也會影響效能, 所以不去比較
希望有回答到你的問題