作者sitos (麥子)
站內hardware
標題Re: [關公] 關公面前耍大刀!淺談1995~1998電腦界變化.
時間Mon Apr 30 15:25:39 2007
※ 引述《GreatShot (我要拿Ph.D.!!!)》之銘言:
: ※ 引述《renic (林伯武長)》之銘言:
: : 前文吃光光
: : 其實everest沒翻錯
: : 那個的確是追蹤快取Trace Cache而不是指令快取Instruction Cache
: 也許真正搞錯的是我(汗顏)
: 我記得某個版本的英文版寫的是Instruction Cache不是Trace Cache
: 我對這部份的結構其實完全沒概念
: 只有印象是Trace Cache似乎是Instruction Cache的特化而來
: 跟降低Branch Prediction造成的Penalty有關係
Instruction Cache 的定址方式和 Data Cache 一樣,都是用 mapping 的。
把後段的位址取出來作 hash ,前段當作 tag 。
Trace Cache 是將一段時間之內執行過的程式碼整份存起來,
包括有重覆執行的 loop 或 branch 也會存好幾份起來。
前者主要是靠著一次帶進一個 block 的 instructions ,
來減少存取其它 instruction 時的 miss (讀前一個,後一個也一起讀進來)。
因此遇到 branch 時破壞 spatial locality 會導致 hit rate 下降。
後者則是可以適應程式本身的行為,只要同一段程式的 control path 改變不大,
Trace cache 的 hit rate 會非常高,通常會把一段常執行的程式整個存進去。
減少 penalty 的部份是因為,就算 prediction taken ,拿不到下一個 instruction ,
也是白搭。因為沒有 locality 因此 instruction 可能不在 I-cache 裡,
因此 trace cache 可以有效處理這樣的問題。
: 所以我直覺就是翻譯者搞混了
: so....也許搞混的是我也說不定(^^;)
: 不過現在用E6600加上新版的CPU-Z and Everest
: 都寫Code Cache了
: 不知是否是因為Instruction Cache and Trace Cache這種技術又被改進
: 還請熟悉的人介紹一下
現在的 processor 的 cache 架構都非常複雜,因為 miss penality 太高,
一般而言會有 L1 I/D-cache,
L2 U-cache,
Trace cache,
Victim Cache,
Write buffer
反正只要能提高 hit rate 的手段幾乎都會用上去。
不過我也不知道 code cache 是什麼。
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.31.132
推 GreatShot:所以說CPU會先去TraceCache找後才去Inst. Cache找囉? 04/30 17:31
→ GreatShot:還是說他們作用的地方不同呢? 04/30 17:33
→ GreatShot:感謝解釋~~ 04/30 17:33
推 leav:TraceCache是預測branch用的,跟InstructionCache用途不同 04/30 23:51
推 dolphinus:"執行過的程式碼整份存起來"... 我的天啊... 05/01 00:59
→ dolphinus:沒看過有人這樣解釋 trace cache 的... 05/01 01:00