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