基本介紹
簡介,原理,地址映象與變換,概念的擴充,
簡介
原理
當CPU處理數據時,它會先到Cache中去尋找,如果數據因之前的操作已經讀取而被暫存其中,就不需要再從隨機存取記憶體(Main memory)中讀取數據——由於CPU的運行速度一般比主記憶體的讀取速度快,主存儲器周期(訪問主存儲器所需要的時間)為數個時鐘周期。因此若要存取主記憶體的話,就必須等待數個CPU周期從而造成浪費。
提供“高速快取”的目的是為了讓數據存取的速度適應CPU的處理速度,其基於的原理是記憶體中“程式執行與數據訪問的局域性行為”,即一定程式執行時間和空間內,被訪問的代碼集中於一部分。為了充分發揮高速快取的作用,不僅依靠“暫存剛剛訪問過的數據”,還要使用硬體實現的指令預測與數據預取技術——儘可能把將要使用的數據預先從記憶體中取到高速快取里。
CPU的高速快取曾經是用在超級計算機上的一種高級技術,不過現今電腦上使用的的AMD或Intel微處理器都在晶片內部集成了大小不等的數據高速快取和指令高速快取,通稱為L1高速快取(L1 Cache 即 Level 1 On-die Cache,第一級片上高速緩衝存儲器);而比L1更大容量的L2高速快取曾經被放在CPU外部(主機板或者CPU接口卡上),但是現在已經成為CPU內部的標準組件;更昂貴的頂級家用和工作站CPU甚至會配備比L2高速快取還要大的L3高速快取(level 3 On-die Cache 第三級高速緩衝存儲器)。
地址映象與變換
由於主存容量遠大於高速快取的容量,因此兩者之間就必須按一定的規則對應起來。高速快取的地址映象就是指按某種規則把主存塊裝入高速快取中。地址變換是指當按某種映象方式把主存塊裝入高速快取後,每次訪問高速快取時,如何把主存的物理地址(Physical address)或虛擬地址(Virtual address)變換成高速快取的地址,從而訪問高速快取中的數據。
映象和變換的方式有四種:直接映象、全相連映象、組相連映象、區段相連映象。