提高高速緩存命中率的最好方法是盡量使Cache存放CPU最近一直在使用的指令與數(shù)據(jù),當(dāng)Cache裝滿(mǎn)后,可將相對(duì)長(zhǎng)期不用的數(shù)據(jù)刪除,提高Cache的使用效率。
為保持Cache中數(shù)據(jù)與主存儲(chǔ)器中數(shù)據(jù)的一致性,避免CPU在讀寫(xiě)過(guò)程中將Cache中的新數(shù)據(jù)遺失,造成錯(cuò)誤地讀數(shù)據(jù),確保Cache中更新過(guò)程的數(shù)據(jù)不會(huì)因覆蓋而消失,必須將Cache中的數(shù)據(jù)更新及時(shí)準(zhǔn)確地反映到主存儲(chǔ)器中,這是一個(gè)Cache寫(xiě)入過(guò)程,Cache寫(xiě)入的方式通常采用直寫(xiě)式、緩沖直寫(xiě)式與回寫(xiě)式三種,下面比較介紹這三種Cache寫(xiě)入方式。
1- 直寫(xiě)式(Write Through)系統(tǒng)
CPU對(duì)Cache寫(xiě)入時(shí),將數(shù)據(jù)同時(shí)寫(xiě)入到主存儲(chǔ)器中,這樣可保證Cache中的內(nèi)容與主存儲(chǔ)器的內(nèi)容完全一致。這種方式比較直觀,而且簡(jiǎn)單、可靠,但由于每次對(duì)Cache更新時(shí)都要對(duì)主存儲(chǔ)器進(jìn)行寫(xiě)操作,而這必須通過(guò)系統(tǒng)總線(xiàn)來(lái)完成,因此總線(xiàn)工作頻繁,系統(tǒng)運(yùn)行速度就會(huì)受到影響。
2-緩沖直寫(xiě)式(Post Wirte)系統(tǒng)
為解決直寫(xiě)式系統(tǒng)對(duì)總線(xiàn)速度的影響問(wèn)題,在主存儲(chǔ)器的數(shù)據(jù)寫(xiě)入時(shí)增加緩沖器區(qū)。當(dāng)要寫(xiě)入主存儲(chǔ)器的數(shù)據(jù)被緩沖器鎖存后,CPU便可執(zhí)行下一個(gè)周期的操作,不必等待數(shù)據(jù)寫(xiě)入主存儲(chǔ)器。這相對(duì)于給主存儲(chǔ)器增加了一個(gè)單向單次高速緩存。
比如,在寫(xiě)入周期之后可以緊接著一個(gè)數(shù)據(jù)已存在于Cache中的讀取周期,這樣就可避免直寫(xiě)式系統(tǒng)造成的操作延時(shí),但這個(gè)緩沖器只能存儲(chǔ)一次寫(xiě)入的數(shù)據(jù),當(dāng)連續(xù)兩次寫(xiě)操作發(fā)生時(shí),CPU仍需等待。
3-回寫(xiě)式(Write Back)系統(tǒng)
前面兩種寫(xiě)入方式系統(tǒng),都是在寫(xiě)Cache的同時(shí)對(duì)主存儲(chǔ)器進(jìn)行寫(xiě)操作。實(shí)際上這不僅是對(duì)總線(xiàn)帶寬的占用,浪費(fèi)了寶貴的執(zhí)行時(shí)間,而且在有些情況下是不必要的,可以通過(guò)增加額外的標(biāo)準(zhǔn)來(lái)判斷是否有必要更新數(shù)據(jù)。回寫(xiě)式系統(tǒng)就是通過(guò)在Cache中的每一數(shù)據(jù)塊的標(biāo)志字段中加入一更新位,解決主存儲(chǔ)器不必要的寫(xiě)操作。
比如,若Cache中的數(shù)據(jù)曾被CPU更新過(guò)但還未更新主存儲(chǔ)器,則該更新位被置1。每次CPU將一塊新內(nèi)容寫(xiě)入Cache時(shí),首先檢查Cache中該數(shù)據(jù)塊的更新位,若更新位為0,則將數(shù)據(jù)直接寫(xiě)入Cache;反之,若更新位為1,則先將Cache中的該項(xiàng)內(nèi)容寫(xiě)入到主存儲(chǔ)器中相應(yīng)的位置,再將新數(shù)據(jù)寫(xiě)回Cache中。
與直寫(xiě)式系統(tǒng)相比,回寫(xiě)式系統(tǒng)可省下一些不必要的立即回寫(xiě)操作,而在許多情況下這是很頻繁出現(xiàn)的。即使一個(gè)Cache被更新,若未被新的數(shù)據(jù)所取代,則沒(méi)有必要立刻進(jìn)行主存儲(chǔ)器的寫(xiě)操作。也就是說(shuō),實(shí)際寫(xiě)入主存儲(chǔ)器的次數(shù),可能少于CPU實(shí)際所執(zhí)行寫(xiě)入周期的次數(shù),但回寫(xiě)式系統(tǒng)的結(jié)構(gòu)較復(fù)雜,Cache也必須用額外的容量來(lái)存儲(chǔ)標(biāo)志。由于回寫(xiě)系統(tǒng)的高效率,現(xiàn)代的Cache大多采取這種方式進(jìn)行操作。
-
cpu
+關(guān)注
關(guān)注
68文章
11080瀏覽量
217114 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7256瀏覽量
91891 -
Cache
+關(guān)注
關(guān)注
0文章
130瀏覽量
29079 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1032瀏覽量
21820
發(fā)布評(píng)論請(qǐng)先 登錄
cache的應(yīng)用——什么時(shí)候需要刷cache1
cache有哪些缺點(diǎn)?實(shí)現(xiàn)cache的組織方式有哪幾種
光盤(pán)拷貝機(jī)寫(xiě)入方式
什么是Cache
高速緩存(Cache),高速緩存(Cache)原理是什么?
從三個(gè)方面闡述Cache
Buffer和Cache的定義
Buffer和Cache介紹
什么是 Cache? Cache讀寫(xiě)原理
Cache工作原理講解 Cache寫(xiě)入方式原理簡(jiǎn)介

Cache分類(lèi)與替換算法

Cache內(nèi)容鎖定是什么
Cache工作原理是什么

評(píng)論