存儲系統(tǒng)(4)Cache緩存

課程來源:華中科技大學(xué) 計(jì)算機(jī)組成原理公開課

計(jì)算機(jī)各個(gè)部件的速度存在差異,慢速的內(nèi)存會讓快速的CPU性能嚴(yán)重下降胃碾。緩存就是用來解決這種類型的問題易稠。根據(jù)局部性原理,程序下一次訪問的地址在上一次訪問地址的旁邊吟秩。把訪問地址附近的數(shù)據(jù)裝入緩存咱扣,下一次訪問時(shí),CPU大概率能從緩存中找到數(shù)據(jù)涵防,速度大大提升闹伪。

Cache的工作過程:如果CPU訪問的數(shù)據(jù)在Cache中,則從Cache中讀取數(shù)據(jù)壮池。如果CPU訪問的數(shù)據(jù)不在Cache中偏瓤;如果CPU訪問的數(shù)據(jù)不在Cache中,則從內(nèi)存中讀取數(shù)據(jù)椰憋,然后在把內(nèi)存相關(guān)塊區(qū)域復(fù)制到緩存中厅克。

這里有一些問題:如何判斷數(shù)據(jù)是否在Cache中? 如何判斷數(shù)據(jù)是否有效橙依?這就和Cache地址映射機(jī)制有關(guān)证舟。

首先要把Cache分行硕旗,內(nèi)存分塊;一行的容量等于一塊的容量褪储,這樣就可以把內(nèi)存中的某一塊調(diào)入Cache的某一行卵渴。再把內(nèi)存地址分為兩個(gè)部分:塊地址+塊內(nèi)偏移,或者進(jìn)一步劃分為:tag+index+offset鲤竹。tag判斷數(shù)據(jù)是否在Cache中浪读,index表示在Cache中哪一行讀寫數(shù)據(jù)。Offset是一行或一塊內(nèi)的地址辛藻。

Cache的結(jié)構(gòu):CPU地址總線一部分連接到相聯(lián)存儲器碘橘,用來判斷地址是否在Cache中。相聯(lián)存儲器剝離地址作為key吱肌,以key為關(guān)鍵字全局硬件并發(fā)比較痘拆。

Cache 地址映射與變換方法

內(nèi)存數(shù)據(jù)如何遷至Cache才能實(shí)現(xiàn)快速查找?有常見的三種映射方式:全相連氮墨、直接相連纺蛆、組相連。這三種方式都要把內(nèi)存分塊规揪、Cache分行桥氏。

全相連映射:內(nèi)存地址表示為塊號+塊內(nèi)地址,映射算法是內(nèi)存的數(shù)據(jù)塊可映射到Cache任意行猛铅,同時(shí)將該數(shù)據(jù)塊地址對應(yīng)行的標(biāo)記存儲體中保存字支。特點(diǎn):Cache利用率高、塊沖突率低奸忽、淘汰算法復(fù)雜堕伪。應(yīng)用場合:小容量Cache。

直接映射:內(nèi)存分塊后再按照Cache行數(shù)分區(qū)栗菜,內(nèi)存地址表示為:區(qū)號+區(qū)內(nèi)塊號+塊內(nèi)地址欠雌,內(nèi)存的數(shù)據(jù)映射到Cache的特定行。特點(diǎn):Cache利用率低疙筹、塊沖突率高桨昙、淘汰算法簡單,應(yīng)用場合:大容量Cache腌歉。

組相連映射:Cache分成k組蛙酪,內(nèi)存每k塊分成一組。內(nèi)存地址:內(nèi)存組號+Cache組號+塊內(nèi)地址翘盖。它既有直接映射的特點(diǎn)也有全相連的特點(diǎn)桂塞。

程序運(yùn)行一段時(shí)間后,Cache存儲控件被占滿馍驯,當(dāng)再有新數(shù)據(jù)要調(diào)入時(shí)阁危,就需要通過某種機(jī)制決定替換的對象玛痊。有幾種常見的替換算法:先進(jìn)先出法、最不經(jīng)常使用法狂打、近期最少使用法擂煞、隨機(jī)替換法。

先進(jìn)先出算法:每行Cache有一個(gè)計(jì)數(shù)器趴乡,調(diào)入時(shí)置0对省,每次加1。Cache裝滿后計(jì)數(shù)器最大的行被替換晾捏。

最不經(jīng)常使用:每行Cache有一個(gè)計(jì)數(shù)器蒿涎,調(diào)入時(shí)置0,命中此行計(jì)數(shù)器加1惦辛。Cache裝滿后計(jì)數(shù)器最小的行被替換劳秋。

近期最少使用法:每行Cache有一個(gè)計(jì)數(shù)器,調(diào)入時(shí)置0胖齐,每次加1玻淑,命中此行計(jì)數(shù)器置0。Cache裝滿后計(jì)數(shù)器最大的行被替換呀伙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末补履,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子区匠,更是在濱河造成了極大的恐慌雏亚,老刑警劉巖聚凹,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绣的,居然都是意外死亡速客,警方通過查閱死者的電腦和手機(jī)戚篙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溺职,“玉大人岔擂,你說我怎么就攤上這事±嗽牛” “怎么了乱灵?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長七冲。 經(jīng)常有香客問我痛倚,道長,這世上最難降的妖魔是什么澜躺? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任蝉稳,我火速辦了婚禮抒蚜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耘戚。我一直安慰自己嗡髓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布收津。 她就那樣靜靜地躺著饿这,像睡著了一般。 火紅的嫁衣襯著肌膚如雪朋截。 梳的紋絲不亂的頭發(fā)上蛹稍,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機(jī)與錄音部服,去河邊找鬼唆姐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛廓八,可吹牛的內(nèi)容都是我干的奉芦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼剧蹂,長吁一口氣:“原來是場噩夢啊……” “哼声功!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宠叼,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤先巴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后冒冬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伸蚯,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年简烤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剂邮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡横侦,死狀恐怖挥萌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情枉侧,我是刑警寧澤引瀑,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站榨馁,受9級特大地震影響憨栽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一徒像、第九天 我趴在偏房一處隱蔽的房頂上張望黍特。 院中可真熱鬧,春花似錦锯蛀、人聲如沸灭衷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翔曲。三九已至,卻和暖如春劈愚,著一層夾襖步出監(jiān)牢的瞬間瞳遍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工菌羽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掠械,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓注祖,卻偏偏與公主長得像猾蒂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子是晨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355