瀏覽單個文章
zohar
*停權中*
 
zohar的大頭照
 

加入日期: Nov 2006
文章: 3,946
引用:
作者airitter
那為什麼不把快取全部都做在一起?
我是這樣得,沒緩衝因該會塞車

快取基本上都是越多就越快,
就如intel的cpu核心都一樣,只是用快取做分區別

快取越大並不是越好,要剛好效能才會好,不然會崩潰
假如架構、製程不變之下:

快取↑:命中率↑、速度↓
快取↓:命中率↓、速度↑

什麼是命中率?與關連性[Associative]有關(單位是Way),關連性越高命中率越高
那為什麼關連性越高命中率越高?假設一個倉庫只有四個隔間、裡面擺了四組工具,有需要的話就進去裡面拿出來使用
但今天假如要做一個工程剛好是裡面四組工具都沒辦法用的,那就只好去商店買新的回來擺。但因為倉庫滿了只好拿出其中一組放到另一個很遠不過更大的倉庫放
但假如下一個工作又需要這四組以外的工具,那就又要把原本的其中一組拿去別的地方換回需要的工具。而在換工具的時間就是浪費掉的時間。
那要怎樣才可以讓浪費的時間變短?那就是把倉庫變大,間格從原本四間變六間,可以放的工具變多的話那就可以減少把工具拿去遠處更換的浪費。
這就是關連性的提升,快取命中率(剛好倉庫裡面有需要使用的工具,不用跑遠拿)也提高。

那什麼是速度?當倉庫變得越來越大,到裡面找的時間就越長。
原本只有四個隔間,每次進去換工具的時候最多只要找四次就可以找到想要的工具(或發現裡面沒有想要的工具)。
現在間格[關連性]變多,四間變八間,那最多甚至要找八次才可以找到想要的工具(或發現裡面沒有想要的工具)。
這個速度就是Seek Time,單位都不同,CPU內的Cache非常快,單位是ns。
所以說關連性越高的話,速度就越慢,因此快取容量是把雙面刃。

那要怎樣改進?最簡單的方法,就是把自己家的倉庫(L1 Cache)盡量擺最常用到的工具,而離家遠一點的倉庫(L2 Cache)擺比較沒那麼常用的工具,甚至是在更遠的地方還有個倉庫(L3 Cache)擺使用頻率比L1、L2更不常用到的工具。
最下策的話,就是這些倉庫找過以後都沒有,只好去別的商店(RAM)拿工具再回來放。甚至連商店都沒有,只好下訂單跟國外買(HD、CD、DVD...etc)。

因此快取不是越大越好、越多越好,要剛好才是最好,不然CPU效能會崩潰
當然,隨著製程進步,更大的快取也可能搜尋時間還比舊製程更快或打平、差不多,這就要看各廠商的技術了
 
舊 2008-10-20, 01:58 AM #32
回應時引用此文章
zohar離線中