瀏覽單個文章
DeepVoice
Major Member
 

加入日期: Jan 2005
您的住址: 台北市
文章: 166
最近一開工就沒時間休息
所以現在才來從頭回到尾
========================== 回覆區 ===========================
to 57樓的
恩....似乎有人幫我說出我想說的
不過我也不排除是我資料看的不夠仔細
可以的話請指出http://kernel.org/關於CPU快取的資料

to 60 61樓
兩者都在講關聯度
關聯度這種東西是越大命中率會越好(因為減少碰撞失誤)
但是會造成線路的複雜化(我下面舉個例子)
今天假如各位要去停車 而停車場有100個車位
停車場規定大家要照身分證後2碼停在相對應的車位上
此時尾碼00的 尾碼01的 尾碼99的 都只有一個車位可停(直接對映法)
今天你車子進來 可能明明還有車位 但是你不能停 因為號碼不對(碰撞失誤)
但是你要找車很方便 你只要查一個車位就知道你的車是否在停車場裡

相反的全關聯度就是讓你100的車位都能停
雖然不會出現碰撞失誤(就是明明有車位但是不讓你停)
但是你要找車子在不在停車場裡需要的時間很長(要找過全部的100個車位)
所以在電腦上假如要實作全關聯度很累人
因為需要加入硬體線路去做平行搜尋(不佳的話延遲時間會夭獸長 抵銷掉增加命中率的好處)

這兩者算是極端
在直接對映(每筆資料只有某特定一個可以放)和全關聯度(每筆資料都可以放在任何位置)中
還可以根據可以放的位置多寡分成N關聯度
N的關連度代表一筆資料可以放在特定N個位置裡
隨著N越大 碰撞失誤越少 但要判定一筆資料在不在快取裡所需搜尋的區塊數越多

關聯度增加除了影響到單純的搜尋速度外
還影響到所使用的替換演算法
今天絕大多數的公司都使用LRU
LRU代表當快取滿(該桶滿)時替換掉該桶最久沒用過的資料
但是要記錄該桶中哪個資料最久沒人用就是個問題了
當N = 2的時候真實LRU基本上可以輕易做出
但是當N = 8 或 N = 16+時 要做出個真實LRU會死人
這時候大家都來近似LRU 但近似的如何....很難說
近似LRU比真實LRU在命中率上減損多少也很難說(這部份會抵消增加關聯度所提高之命中)

上面的這一長串可以不看或看不懂
但是至少要知道[快取關聯度 和 快取大小 不大相關)
==========================================================
今天假設兩公司技術能力相等
兩方的快取大小不同時 也會造成速度上差異
兩方快取大小相等時 也會因為關聯度不同而造成命中率差異
就算關聯度相同 快取大小也相同 也可能因為LRU近似法不同而產生命中率差異
又有如我之前提過的那篇PDF中所述
K10某些階的管線處理能力永遠也不可能被滿載
所以 我從一開始回文到最後面我想說的一直只有一件事
只用部分可以獲得的資訊想去推測整體是不智的
舊 2009-07-22, 12:04 PM #84
回應時引用此文章
DeepVoice離線中