一:直接對映
簡單來說,就是整個cache,對映到主存中,是乙個主存塊組(n個連續主存塊為一組)
ps:這裡說的位址已經是實體地址,不是程式中的邏輯位址,可參考cpu訪問位址的過程
主存組號:主存塊號從0開始,順序,每n塊為一組,從第0組開始
cache行數:表示在cache塊的第幾行資料,也表示在主存塊組中的第幾塊
而乙個主存塊可能包含多個字,塊內位址則表示要取塊內的第幾字
來乙個例子幫助理解:
(1)主存位址空間:1gb=2^30b
則主存位址為20位,才夠訪問這麼多的位址空間
記憶體塊大小為128b=2^7b,以位元組編址(編址的最小單元是位元組)
則塊內位址為低7位
64kb/128b=2^16b / 2^7b= 2^9
cache有2^9行
cache行數佔中間9位
30-7-9=14
則主存組號佔高14位
(2)直接對映則無需控制位
全寫方式下,無需修改位(若資料有更改則在cache中修改同時修改對應主存資料)
但是仍需要標誌位和有效位
標誌位:對應主存組號
有效位:有效位為0表示該cache行存的資料是無效的,會做缺失處理
則cache總容量:
2^9x(128x8+14+1)=519.5k位
上面說的主存各個數字的劃分,劃分的是位址
而是標記,資料
標記位可能有控制位,修改位,有效位,標誌位
資料則是取決於計算機的字長,一字大小
二:全相聯對映
直接用比較多位的標記位來直接對映主存塊號(這裡主存塊不分組,就是從0開始到第幾塊)
三:組相聯對映
這裡是將主存塊和cache行都進行了分組(n個cache行分到一組)
然後,每個主存塊可以對映到乙個cache組內的任意行
ps:替換時不是像直接對映那樣整個cache去替換,而是要用哪塊替換哪塊
位址劃分的「標記」指的是主存組號
根據cahce組號找到對應cache組和當前主存塊組內的對應主存塊
用當前主存塊,逐行比較組內的各cache行,若命中則命中
若無則做cache缺失處理
快取記憶體Cache的作用
快取記憶體cache的作用 現在使用的絕大多數cpu都帶有快取記憶體 cache,有的甚至整合了多極快取 而我們選擇主機板時,板上的cache數量也是乙個重要的考慮因素。早期的486整合了4 8k的一級片內cache,而現在的pentium ii至強處理器不僅整合了32k一級片內cache,還將51...
快取記憶體儲存器 cache
早期計算機層次結構 cpu暫存器 dram主儲存器和磁碟儲存。由於cpu和主存之間差距逐漸增大,便出現了小的sram快取記憶體儲存器於cpu暫存器檔案和主存之間,稱為l1快取記憶體 一級快取 cpu和主存之間效能差距繼續增大,便在l1快取記憶體和主存間出現了更大的快取記憶體,稱為l2快取記憶體。如圖...
linux DNS快取記憶體
配置名稱伺服器 本機ip 172.25.254.117 1 安裝 bind 軟體包 yum install y bind2 編輯 etc named.conf listen on port 53 開啟埠 allow query 允許訪問 forwarders 如果伺服器沒有這個位址就去訪問250 3...