cache命中率

(1)“Cache”是什麼

    Cache(即高速緩衝存儲器(Cache Memory),是我們最常聽到的一個詞了。

  (2)爲什麼要設計Cache

    我們知道,電腦的內存是以系統總線的時鐘頻率工作的,這個頻率通常也就是CPU的外頻(對於雷鳥、毒龍系列的處理器,由於在設計採用了DDR技術,CPU工作的外頻爲系統總線頻率的兩倍)。但是,CPU的工作頻率(主頻)是外頻與倍頻因子的乘積。這樣一來,內存的工作頻率就遠低於CPU的工作頻率了。這樣造成的直接結果是:CPU在執行完一條指令後,常常需要“等待”一些時間才能再次訪問內存,極大降了CPU工作效率。在這樣一種情況下, Cache就應運而生了!

  (3)Cache是什麼

    Cache是一種特殊的存儲器,它由Cache 存儲部件和Cache控制部件組成。Cache 存儲部件一般採用與CPU同類型的半導體存儲器件,存取速度比內存快幾倍甚至十幾倍。而Cache控制器部件包括主存地址寄存器、Cache 地址寄存器,主存—Cache地址變換部件及替換控制部件等。至於它們各自又是怎樣工作的、有何作用等等,就沒有必要做進一步的研究,知道一般 Cache分爲L1 Cache(其中又分爲數據Cache、代碼Cache)、L2 Cache就行。

  (4)Cache是怎樣工作的

    我們知道,CPU運行程序是一條指令一條指令地執行的,而且指令地址往往是連續的,意思就是說CPU在訪問內存時,在較短的一段時間內往往集中於某個局部,這時候可能會碰到一些需要反覆調用的子程序。電腦在工作時,把這些活躍的子程序存入比內存快得多的Cache 中。CPU在訪問內存時,首先判斷所要訪問的內容是否在Cache中,如果在,就稱爲“命中”,此時CPU直接從Cache中調用該內容;否則,就稱爲 “不命中”,CPU只好去內存中調用所需的子程序或指令了。CPU不但可以直接從Cache中讀出內容,也可以直接往其中寫入內容。由於Cache的存取速率相當快,使得CPU的利用率大大提高,進而使整個系統的性能得以提升。

  (5)Cache的應用

    早在486時代,主板上就設計了Cache插槽,用戶可以根據需要自己配置Cache;586級的CPU芯片中已集成了部分Cache,同時還保留了Cache插槽供用戶擴充,而到了Pentium Ⅱ時代後,Cache已全部集成到了CPU芯片中,主板上再也沒有Cache插槽。現在比較流行的CPU芯片中一般集成了至少16KB的代碼Cache 和16KB的數據Cache(作爲L1 Cache),以及至少64KB的L2 Cache。

有的朋友可能會問,既然Cache的作用如此重要,那爲麼不把電腦的全部內存都變爲Cache,那樣不是更好嗎?其實對於這個問題,撇開價格因素,單就其實用性而言也是沒有必要的,畢竟,電腦在執任務時,那種使用頻率非常高的子程序或指令不是很多的,因此那些使用頻率不太高的內容只須保存在速度相對較低的內存中就可以了!

    在實際應用中,Cache,尤其是L2Cache對系統的性能,特別是對浮點運算能力有較大的影響。而我們知道,大部分遊戲的流暢運行需要頻繁的浮點運算。因此,CPU運行遊戲的性能的好壞與L2Cache的容量與速度有很大關係。

 

    CACHE中文名稱是高速緩衝存儲器,是法文一個單詞,具體什麼意思我忘了,大概是隱蔽的意思吧

    它是一個相對於內存來說容量很小,速度賊快,用靜態存儲器實現的存儲系統,解決內存跟不上CPU運算速度的問題。

    工作原理是把CPU最近可能用到的少量信息,可能是數據,也可能是指令,從內存複製到CACHE中,是CPU能夠更高速的訪問這些數據,提高工作效率

評價CACHE性能關鍵的指標是CACHE的命中率。因爲CACHE的容量遠遠小於內存,它只可能存放內存的一部分數據。CPU自然是先訪問CACHE,再訪問主存,如果數據在CACHE中爲命中,在不在內存中爲不命中,這就有個比例問題,這個比例就是命中率,影響命中率的因素有一下幾個

1. CACHE 的容量,大一些好

2. CACHE 與主存儲器每次交換信息的單位量(Cache Line Size)適中

3. CACHE 不同的組織方式,多路組相聯更好

4. CACHE 的多級組織可提高命中率

5. CACHE 裝滿後的換字算法

再解釋一下多級CACHE的問題,簡單說一級CACHE是對內存的映像,能夠提高CPU速度,那麼再加一級CACHE對上一級CACHE映像就能夠再次提高效率。目前CPU通常是2級CACHE,就是L1 和L2

 Cache 就是 高速緩存的 意思

計算機中很多設備都有Cache

比如CPU,硬盤,光驅等等

下面我們就來說說Cache的用途 CPU處理數據的時候是先從 L1 Cache 中 尋找 如果L1 Cache中沒有所需要的數據CPU就從 L2 Cache 中尋找!如果L2 Cache中也沒有所需要的數據那麼CPU就會從內存中直接調用!但是內存的速度比Cache的速度低很多!如果讓CPU頻繁的從內存中直接調用數據,勢必會造成處理速度極其緩慢!即使 CPU的運行速度再快也是沒有用的!如果我們把CPU中的Cache增加一倍那麼CPU就很有可能從多出的那一倍Cache中尋找到所需要的數據,這就是您所指的命中率!

知道了什麼叫命中率我們就不難發現 如果是相同內核的CPU Cache的容量越大 CPU的運算性能就會越好!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章