Cache基本原理之:尋址

先看一張Alan Jay Smith《Cache Memory》里的一張插圖:A typical cache andTLB design

來源:cache-mem.pdf?Figure 2

尋址及數(shù)據(jù)獲取

CPU對cache和內(nèi)存(這里指主存mainmemory爽茴,通常是DDR內(nèi)存)的尋址類似鹏溯,都需要被訪問對象的地址,但尋址過程有點差別:

CPU訪問內(nèi)存時卧惜,通常有兩個動作:

1.在EPN(Effective Page Number,上圖中的PageNumber部件)完成虛實地址轉換真屯,EPN經(jīng)過Hash Function后在TLB中查找并得到RPN(RealPage Number),如果TLB Miss柴底,RPN將通過慢速的頁表查找來獲得,最終完成虛擬地址到物理地址:頁框(PageNumber)的轉換础倍;

2.CLN(Cache Line Number,上圖中的Line Number部件)查找合適的CacheBlock胎挎。

Cache Block的查找和Page Number的轉換可以同步進行沟启。

在多處理器系統(tǒng)中,CLN索引得到的CacheBlock中的數(shù)據(jù)可能不是有效的數(shù)據(jù)犹菇,因此還需要做進一步的比較:PA與CacheBlock中的Address進行比較德迹,如果結果相同且狀態(tài)位匹配,表明CacheHit揭芍,此時CPU通過ByteSelect and Align部件獲得所需的數(shù)據(jù)胳搞。如果Cachemiss,則需要通過PA進一步索引在內(nèi)存中獲取數(shù)據(jù)

Cache Block組成

一個CacheBlock由地址沼沈、狀態(tài)位和數(shù)據(jù)單元組成:

·Data:Cache Block中的數(shù)據(jù)流酬,其長度為32或64,視CPU而定

·Status:Cache Block的狀態(tài)列另,在大部分處理器中芽腾,該字段包含的是MESI、MOESI或者MESIF這些信息狀態(tài)页衙。某些處理器還包含一個L位摊滔,表示當前CacheBlock是否可用鎖定阴绢,許多將Cache模擬成SRAM的處理器就是利用了這個L位。

·Real Address Tag:簡稱RAT艰躺,記錄當前Cache中存放的數(shù)據(jù)和哪個地址相關呻袭,RAT中存放一部分物理地址信息,雖然CPU的物理地址可能有48位腺兴,但Cache中的地址位不需要這么多:

CPU訪問Cache使用的地址

從Cache的角度來看左电,CPU的地址可用劃分為:

·Real Address Tag:該字段以單個Cache中的RAT的字段長度相同,CPU使用地址中的RAT字段與Cache中對應的字段以及狀態(tài)位進行聯(lián)合比較页响,判斷其訪問數(shù)據(jù)是否命中

·Cache Line Index:和CLN的作用類似篓足,CPU使用該字段在Cache中選擇某一個Entry,如果是組相聯(lián)(Set-Associative)方式組織的Cache闰蚕,則選擇某一組Entry.

·Bank:在Multi-Bank的系統(tǒng)中栈拖,CPU訪問Cache時,不同Bank可用并發(fā)訪問没陡。

·Byte:Cache的端口位寬涩哟,目前大部分系統(tǒng)的Cache總線位寬為128位或64位

Bank和Byte字段之和確定了單個Cache的Data字段長度,也就是通常說的CacheLine的長度盼玄,上圖所示的CacheLine長度為26= 64 Bytes贴彼,目前大部分的CacheLine大小都為64Bytes,部分原因是因為DDR3SDRAM的一次BurstLine為8埃儿,一次Burst操作訪問的數(shù)據(jù)大小為64Bytes

------------

補充一些基本概念锻弓,from?https://cseweb.ucsd.edu/classes/su07/cse141/cache-handout.pdf

cache block - The basic unit for cache storage. May contain multiple bytes/words of data.

cache line - Same as cache block. Note that this is not the same thing asa “row” of cache.

cache set - A “row” in the cache. The number of blocks per set is deter-mined by the layout of the cache (e.g. direct mapped, set-associative,

or fully associative).

tag - A unique identifier for a group of data. Because different regions ofmemory may be mapped into a block, the tag is used to differentiate

between them.

valid bit - A bit of information that indicates whether the data in a block is valid (1) or not


來源:Cache Memory, Wangqi

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝌箍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子暴心,更是在濱河造成了極大的恐慌妓盲,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件专普,死亡現(xiàn)場離奇詭異悯衬,居然都是意外死亡,警方通過查閱死者的電腦和手機檀夹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門筋粗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炸渡,你說我怎么就攤上這事娜亿。” “怎么了蚌堵?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵买决,是天一觀的道長沛婴。 經(jīng)常有香客問我,道長督赤,這世上最難降的妖魔是什么嘁灯? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮躲舌,結果婚禮上丑婿,老公的妹妹穿的比我還像新娘。我一直安慰自己没卸,他們只是感情好羹奉,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著办悟,像睡著了一般尘奏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上病蛉,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天炫加,我揣著相機與錄音,去河邊找鬼铺然。 笑死俗孝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的魄健。 我是一名探鬼主播赋铝,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沽瘦!你這毒婦竟也來了革骨?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤析恋,失蹤者是張志新(化名)和其女友劉穎良哲,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體助隧,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡筑凫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了并村。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巍实。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哩牍,靈堂內(nèi)的尸體忽然破棺而出棚潦,到底是詐尸還是另有隱情,我是刑警寧澤膝昆,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布瓦盛,位于F島的核電站洗显,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏原环。R本人自食惡果不足惜挠唆,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘱吗。 院中可真熱鬧玄组,春花似錦、人聲如沸谒麦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绕德。三九已至患膛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耻蛇,已是汗流浹背踪蹬。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留臣咖,地道東北人跃捣。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像夺蛇,于是被迫代替她去往敵國和親疚漆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Cache entries 數(shù)據(jù)在主存和緩存之間以固定大小的”塊(block)”為單位傳遞刁赦,也就是每次從main ...
    yuwh_507閱讀 37,902評論 3 23
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理娶聘,服務發(fā)現(xiàn),斷路器甚脉,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法趴荸,類相關的語法,內(nèi)部類的語法宦焦,繼承相關的語法,異常的語法顿涣,線程的語...
    子非魚_t_閱讀 31,632評論 18 399
  • 日復一日波闹,年復一年,你是否和我一樣涛碑,都成了溫水里的那只青蛙精堕,曾經(jīng)奮力跳躍的激情已不再有,慢慢的在現(xiàn)有的環(huán)境里沉迷蒲障,...
    悄然一念閱讀 230評論 0 1
  • 蔓草叢生歹篓,微雨毰毸瘫证,鷓鴣幽啼。 我將遷徙庄撮,卜居森林小丘之陬背捌,彈著箜篌等待著那一個溫柔謙卑的靈魂的到來...
    DianaZY閱讀 364評論 6 7