cache是高速緩沖存儲器?壹種特殊的存儲器子系統,其中復制了頻繁使用的數據以利於快速訪問。
Cache由標記存儲器和數據存儲器兩個基本部分組成。標記存儲器是用來儲存Cache的控制位與塊地址標簽,控制位用於管理Cache的讀寫操作,而塊地址標簽則記錄著Cache中各塊的地址。這個地址包含了與主內存映射的塊地址,並且都與Cache中的壹塊“數據”相對應。而這塊“數據”正是貯存於Cache的數據存儲器中。
當CPU讀取數據時,先通過地址總線把物理地址送到Cache中,與Cache中的塊地址標簽進行對比。若相符合,則表示此數據已經存在於Cache中(此情況被戲稱為“命中”),這時只需把Cache中的對應數據經由數據總線直接傳送給CPU即可。但如果CPU送來的物理地址無法與Cache中的塊地址標簽相符,則表明這壹數據不在Cache中(稱為“失誤”),這時,需要由主內存把CPU所需的數據地址拷貝到Cache中,再由Cache把數據傳送給CPU。
從這個過程我們可以看到,若CPU讀取“命中”,存取速度確實可以提高許多,但如果“失誤”,則Cache的存在反而減慢了CPU的讀取速度。因此,采用何種技術和方法提高讀寫命中率、減少失誤率,就成了Cache設計的關鍵。加大Cache的容量當然可以提高命中率,但因成本問題,Cache不可能無限增大,但可以通過采用適當的映射方式和塊替代方式來提高命中率。
知識拓展
Cache中的映射方式數據如何與主內存中的數據相對應的問題。映射方式通常有以下三種:
1.直接映射
如果主內存上的塊只能映射到Cache中的特定塊,我們稱這種映射方式為直接映射。直接映射的存取速度最快,但失誤率也最高。
2.完全映射
在這種映射方式下,主內存上的塊可以映射到Cache的任意塊之中,當CPU欲讀取某壹個塊時,Cache會把CPU送來的地址與Cache中的所有地址標簽進行對比。由於是完全對比,因此存取時間最長,但失誤率也最低。
3.結合映射
這種映射方式是把Cache分成若幹個頁面,每個頁面會有相同數目的塊。主內存中數據塊可以映射到Cache中指定頁面的任壹塊中。這種映射方式可以看成是直接映射與完全映射的折衷,是效率最高的映射方式。