在cache存儲系統(tǒng)中,把cache和主存儲器都劃分成相同大小的塊。
主存地址由塊號B和塊內(nèi)地址W兩部分組成,cache地址由塊號b和塊內(nèi)地址w組成。
當(dāng)CPU訪問cache時,CPU送來主存地址,放到主存地址寄存器中,通過地址變換部件把主存地址中的塊號B變換成cache的塊號b,并放到cache地址寄存器中,同時將主存地址中的塊內(nèi)地址W直接作為cache的塊內(nèi)地址w裝入cache地址寄存器中,如果變換成功(又叫cache命中),就用得到的cache地址去訪問cache,從cache中取出數(shù)據(jù)送到CPU中;
如果變換不成功(cache不命中),則產(chǎn)生cache失效信息,并且用主存地址訪問主存儲器,從主存儲器中讀出一個字送往CPU,同時把包含該字在內(nèi)的一整塊數(shù)據(jù)都從主存儲器讀出來裝入cache,這時,如果cache已經(jīng)滿了,則要采用某種cache替換策略把不常用的塊先調(diào)出到主存儲中相應(yīng)的塊中,以便騰出空間來存放新調(diào)入的塊。
由于程序具有局部性特點,每次塊失效時都把一塊(由多個字組成)調(diào)入到cache中,能夠提高cache的命中率。
Cache地址映射和變換方法
地址的映射和變換是密切相關(guān)的,采用什么樣的地址映射方法就必然有與這種映射方法相對應(yīng)的地址變換方法。
無論采用什么樣的地址映射方式和地址變換方式,都要把主存和cache劃分成同樣大小的存儲單位,每個存儲單位成為“塊”,在進(jìn)行地址映射和變換時,都是以塊為單位進(jìn)行的。常用的映射方式和變換方式有以下3種:
?■ 全相聯(lián)映射方式 主存中任意一塊可以映射到cache中的任意一塊上。
?■ 直接映射方式 主存中一塊只能映射到cache中的一個特定塊上,假定主存的塊號為B,cache的塊號為b,cache的總塊數(shù)為Cb,則它們之間的映射關(guān)系可以用下面的公式表示:b = B mode Cb
?■ 組相連映射方式 在這種相聯(lián)的地址映射和變換方式中,把主存和cache按同樣大小劃分成組(set),每個組都由相同塊數(shù)組成。從主存的組到cache的組之間采用直接映射方式,在主存中的組與cache中的組之間建立好映射關(guān)系之后,在兩個對應(yīng)的組內(nèi)部采用全相聯(lián)的映射方式。
在ARM處理器中,主存與cache采用組相聯(lián)地址映射和變換方式,如果cache的塊大小為2L,則同一塊中各地址的bit[31:L]是相同的。
如果cache中組的大小(每組中包含的塊數(shù))為2S, 則虛擬地址的bit[L+S-1:L]用于選擇cache中的某個組, 而虛擬地址中其他位[31:L+S]包含了一些標(biāo)志。
將cache每組中的塊數(shù)稱為組容量(set-associativity),當(dāng)組容量等于cache中的總塊數(shù)時,對應(yīng)的映射方式為全相聯(lián)映射方式;
當(dāng)組容量等于1時,對應(yīng)的映射方式為直接映射方式;
當(dāng)組容量為其他值時,稱為組相聯(lián)映射方式。
在組相聯(lián)映射方式中,cache的大小CACHE_SIZE(字節(jié)數(shù))可以通過下面的公式來計算:
CACHE_SIZE = LINELEN*ASSOCIATIVITY*NSETS
其中,
?LINELEN為cache塊(line)大小;
?ASSOCIATIVITY為組容量;
?NSETS為cache的組數(shù)。
-
處理器
+關(guān)注
關(guān)注
68文章
19896瀏覽量
235282 -
ARM
+關(guān)注
關(guān)注
134文章
9353瀏覽量
377620 -
存儲器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167424 -
Cache
+關(guān)注
關(guān)注
0文章
130瀏覽量
29079
發(fā)布評論請先 登錄
Linux內(nèi)核地址映射模型與Linux內(nèi)核高端內(nèi)存詳解

關(guān)于ARM地址映射的理解
關(guān)于cache百科里的一段敘述有疑惑
AM335x SDK關(guān)于cache的命中率,請問有能改善cache命中率的有效方法嗎?請問怎么才能控制RAM映射到cache?
通過內(nèi)存地址映射能否禁用MSMC上的cache
地址映射問題
Cache的原理是什么?Cache地址的過程是怎樣的
為什么需要cache?cache是如何影響code的呢
cache有哪些缺點?實現(xiàn)cache的組織方式有哪幾種
ARM處理器使用虛擬地址來提供cache index和cache tag
cache結(jié)構(gòu)與工作原理

評論