瀏覽單個文章
jasonyang
Major Member
 

加入日期: Sep 2004
您的住址: 木柵動物園
文章: 293
引用:
作者ianme
Capacity. These occur when pages must be discarded and reloaded because the cache isn't big enough - making the cache bigger helps, but that makes it slower on cache hits.

Conflict. These occur when two or more pages compete for the same slot. They can be reduced by increasing the degree of associativity, but that again makes it slower on cache hits.
這兩段中告訴你的slower是講latency應該是沒錯,但是重點是這個cache大小指的是整體大小,不是L1大小,L2的功能之一才是提升hit rate,以目前來說hit rate都有90%~98%以上,一般狀況下其實更多,還要提升hit rate?再說就算hit中了,可是重點Conflict rate呢?太大的L1會造成多餘的虛功,取進來的資料不是最新的,等於白取。Conflict rate會大大降低速度,miss penalty等於是要你重新取一遍資料,於是乎整個動作全部停在那邊...



我本來不想回你的,因為你的觀念錯不少,要解釋太多,更糟的是你只看到想看到的部分,對的中摻雜許多錯誤。而且我不想再回太淺而易見的問題與錯誤,如果你還硬要認為您是對的,那我也不想解釋太多了,或許那天 intel 說辭"又"改變(或許是 intel yonah 或meron/conroe/woodcrest 等超大快取 cpu 上市),你會突然想通了。

文中根本沒說太大的 cache 時 conflict 會增加,你的觀念錯誤,cache 越大,slot 數量越多,會造成 conflict 會下降。
而且你引述的文,跟你表達的好像是兩回事,文中寫 set associativity 越大,電路越複雜,存取變慢(指latency),會減少 conflict(提高 hit rate)。並不是說"快取越大",conflict 會越多,

http://www.answers.com/main/ntquery...0width%3D453%3E
這在前面網友提出的圖已經說明很清楚,也證明你的說法錯誤。明明這幾種方法,只要 cache 加大,miss rate 就降低。

快取越大,或許快取的 latency 會下降,降低一點 cache 性能,但最後 cpu 還是會因為 miss rate 的下降,而提升性能。這點就是為什麼 server 等級的 cpu 快取都大的驚人的原因之一。

至於 multi level cache,就是因為 L1 cache 實做上要再加大有困難(這點我不清楚,可能是 latency 太大影響整體性能,或許是佔用太大的 core die size,或有不線困難等),才會有 L2 甚至 L3、L4 cache,不然照你的說法,大家都只做大大的 L1 就行了,你對 k8 很大的 L1 看法本末倒置了。

另外 L1、L2 的大小,每家公司做的大小與比例,每家公司都不太一樣,何必去在乎 k8 L1 多大,p4 L2 多大,重點還是最後表現出來的cpu 性能吧! 之間的差異,比較不同的核心比較沒意義,要相同的核心下,去改變 L1 & L2 比較有意義,但這都是廠商的 trade-off,且沒有實驗數據,討論這個不太有意義。不過就發展史而言,同一 family 不管是 L1, L2, and L3 on-die cache 都是越做越大的。
舊 2005-12-01, 10:36 AM #97
回應時引用此文章
jasonyang離線中