cpu對儲存器的訪問,通常是一次讀寫乙個字單元。當
cpu訪
cache
不命中時,需將儲存在主存中的字單元連同其後若干個字一同調入
cache
中,之所以這樣做,是為了使其後的訪存能在
cache
中命中。因此,主存和
cache
之間一次交換的資料單位應該是乙個資料塊。資料塊的大小是固定的,由若干個字組成,且主存和
cache
的資料塊大小是相同的。 從
cache-
主存層次實現的目標看,一方面既要使
cpu的訪存速度接近於訪
cache
的速度,另一方面為使用者程式提供的執行空間應保持為主存容量大小的儲存空間。在採用
cache-
主存層次的系統中,
cache
對使用者程式而言是透明的,也就是說,使用者程式可以不需要知道
cache
的存在。因此,
cpu每次訪存時,依然和未使用
cache
的情況一樣,給出的是乙個主存位址。但在
cache-
主存層次中,
cpu首先訪問的是
cache
,並不是主存。為此,需要一種機制將
cpu的訪主存位址轉換成訪
cache
位址。而主存位址與
cache
位址之間的轉換是與主存塊與
cache
塊之間的對映關係緊密聯絡的,也就是說,當
cpu訪
cache
未命中時,需要將欲訪問的字所在主存中的塊調入
cache
中,按什麼樣的策略調入,直接影響到主存位址與
cache
位址的對應關係,這也就是本小節要解決的主存與
cache
的位址對映問題。
主要有三種位址對映方式,分別為全相聯對映、直接相聯對映和組相聯對映。
1.全相聯對映方式
主存中乙個塊的位址與塊的內容一起存於cache的行中,其中塊位址存於cache行的標記部分中。
這種方法可使主存的乙個塊直接拷貝到cache中的任意一行上,非常靈活。
它的主要缺點是比較器電路難於設計和實現,因此只適合於小容量cache採用。
全相聯對映的示意圖演示
2.直接對映方式
這也是一種多對一的對映關係,但乙個主存塊只能拷貝到cache的乙個特定行位置上去。
cache的行號i和主存的塊號j有如下函式關係:i=jmod m (m為cache中的總行數)
直接對映方式的示意圖演示
直接對映方式的優點是硬體簡單,成本低。
缺點是每個主存塊只有乙個固定的行位置可存放,容易產生衝突。因此適合大容量cache採用。
直接對映的示意圖演示
3.組相聯對映方式
這種方式是前兩種方式的折衷方案。它將cache分成u組,每組v行,主存塊存放到哪個組是固定的,至
於存到該組哪一行是靈活的,即有如下函式關係:m=u
×v 組號 q=j mod u
組相聯對映的示意圖演示
組相聯對映方式中的每組行數v一般取值較小,這種規模的v路比較器容易設計和實現。而塊在組中的排
放又有一定的靈活性,衝突減少。
主存與cache的位址對映
1.cache是一種高速緩衝儲存器,是為了解決cpu和主存之間速度不匹配而採用的一項重要技術。其原理基於程式執行中具有空間區域性性和時間區域性性特徵。cache是介於cpu和主存之間的小容量儲存器,由高速的sram組成。2.個人感覺需要在這裡提一下的知識。1 儲存單元的編址方式 字編址方式 位元組編...
主存和cache的位址對映
cache是一種高速緩衝暫存器,是為解決cpu和主存之間速度不匹配而採用的一項重要技術。主存與cache的位址對映方式有全相聯方式 直接方式和組相聯方式三種。多對一的對映關係,但乙個主存塊只能拷貝到cache的乙個特定行位置上去。cache的行號i和主存的塊號j有如下函式關係 i j mod m m...
Cache和主存位址對映關係
cache的位址映像方式中,發生塊衝突次數最小的是 a 全相聯映像 b 組相聯映像 c 直接映像 d 無法確定的 全相聯映像塊衝突最小,其次為組相聯映像,直接映像塊衝突最大。容量為64塊的cache採用組相聯方式映像,字塊大小為128位元組,每4塊為一組,若主容量為4096塊,且以字編址,那麼主存位...