容量小速度快—小快取裡的大學問
前面是把cache作為一個整體來考慮的,現在要分類分析了.
在以往的觀念中,l1cache是整合在cpu中的,被稱為片內cache.在l1中還分資料cache(i-cache)與指令cache(d-cache).它們分別用來存放資料與執行這些資料的指令,而且兩個cache可以同時被cpu訪問,減少了爭用cache所造成的衝突,提高了處理器效能.
在p4處理器中使用了一種先進的一級指令cache——動態跟蹤快取.它直接與執行單元及動態跟蹤引擎相連,透過動態跟蹤引擎可以很快地找到所執行的指令,並且將指令的順序儲存在追蹤快取裡,這樣就減少了主執行迴圈的解碼週期,提高了處理器的運算效率.以前的l2cache沒整合在cpu中,而在主機板上或與cpu整合在同一塊電路板上,因此也被稱為片外cache.但從pⅲ開始,由於工藝的提高l2cache被整合在cpu核心中,以相同於主頻的速度工作,結束了l2cache與cpu大差距分頻的歷史,使l2cache與l1cache在效能上平等,得到更高的傳輸速度.l2cache只儲存資料,因此不分資料cache與指令cache.在cpu核心不變化的情況下,增加l2cache的容量能使效能提升,同一核心的cpu高低端之分往往也是在l2cache上做手腳,可見l2cache的重要性.現在cpu的l1cache與l2cache惟一區別在於讀取順序.
3.讀取命中率
cpu在cache中找到有用的資料被稱為命中,當cache中沒有cpu所需的資料時(這時稱為未命中),cpu才訪問記憶體.
從理論上講,在一顆擁有2級cache的cpu中,讀取l1cache的命中率為80%.也就是說cpu從l1cache中找到的有用資料佔資料總量的80%,剩下的20%從l2cache讀取.由於不能準確預測將要執行的資料,讀取l2的命中率也在80%左右(從l2讀到有用的資料佔總資料的16%).那麼還有的資料就不得不從記憶體呼叫,但這已經是一個相當小的比例了.在一些高階領域的cpu(像intel的itanium)中,我們常聽到l3cache,它是為讀取l2cache後未命中的資料設計的—種cache,在擁有l3cache的cpu中,只有約5%的資料需要從記憶體中呼叫,這進一步提高了cpu的效率.
為了保證cpu訪問時有較高的命中率,cache中的內容應該按一定的演算法替換.一種較常用的演算法是“最近最少使用演算法”(lru演算法),它是將最近一段時間內最少被訪問過的行淘汰出局.因此需要為每行設定一個計數器,lru演算法是把命中行的計數器清零,其他各行計數器加1.當需要替換時淘汰行計數器計數值最大的資料行出局.這是一種高效.科學的演算法,其計數器清零過程可以把一些頻繁呼叫後再不需要的資料淘汰出cache,提高cache的利用率.
快取技術的發展
總之,在傳輸速度有較大差異的裝置間都可以利用cache作為匹配來調節差距,或者說是這些裝置的傳輸通道.在顯示系統.硬碟與光碟機,以及網路通訊中,都需要使用cache技術.但cache均由靜態ram組成,結構複雜,成本不菲,使用現有工藝在有限的面積內不可能做得很大,不過,這也正是技術前進的源動力,有需要才有進步!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-417684/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 快取 Laravel 模型的小問題快取Laravel模型
- 希捷推出新行動硬碟 容量超大傳輸速度快希捷硬碟
- 固定容量的本地快取設計快取
- 動態代理限制快取容器的容量快取
- 小程式 · 最近瀏覽存入快取快取
- WebPack持久快取學習小結Web快取
- 微信小程式之資料快取微信小程式快取
- 記憶體小還要速度快,終於找到可以基於File的Cache了記憶體
- 精度高、模型小、速度快!梯形DenseNets結構實現語義分割新高度!模型SENet
- 二次封裝的快取框架wCache(支援快取時間、預設值)--微信小程式封裝快取框架微信小程式
- 快取的問題快取
- 快取的疑問快取
- 怎麼將大的pdf檔案的容量縮小?
- 微信小程式 實現網路圖片本地快取微信小程式快取
- 快取問題(一) 快取穿透、快取雪崩、快取併發 核心概念快取穿透
- 淺談微信小程式用setStorage和getStorage快取和獲取資料微信小程式快取
- 快取同步的問題快取
- HTTP/1.x 及 Service Worker 快取實踐小結HTTP快取
- 快取問題(四) 快取穿透、快取雪崩、快取併發 解決案例快取穿透
- 選擇問題——選取第K小元素
- 新南威爾士大學&邁阿密大學牛津:研究表明那些侮辱女性的玩家大多是遊戲裡的“小學生”遊戲
- 小景的Dba之路--壓力測試和Oracle資料庫快取Oracle資料庫快取
- 分享Lost裡的一個小故事
- 關於字串中取相同的字元問題(小學題)字串字元
- ClickHouse為什麼查詢速度快?
- 小程式獲取帶有分享者資訊的小程式碼
- Android-壓縮大圖到容量超小的圖片Android
- beego快取問題Go快取
- SOAP快取問題快取
- 微信小程式根據本地快取圖片路徑,生成縮圖的方法微信小程式快取
- Windows 8啟動速度快的三大原因Windows
- 閃電俠 Netty 小冊裡的騷操作Netty
- 索引裡的NULL值與排序小記索引Null排序
- 程式設計裡的“小聰明”(1)程式設計
- Redis 面試常見問題———快取雪崩、快取擊穿以及快取穿透Redis面試快取穿透
- Git clone 的小問題Git
- jquery中的小問題jQuery
- 初學者的小疑問