CPU緩存及內(nèi)存屏障

CPU 性能優(yōu)化手段 - 緩存

為了避免 CPU 訪問主內(nèi)存的時間開銷膘掰,處理器會利用高速緩存來提高性能垮刹。

CPU 緩存模型:

image.png

多級緩存

L1 Cache (一級緩存) CPU第一級高速緩存,分為數(shù)據(jù)緩存和指令緩存坐榆,一般服務(wù)器 CPU 的緩存容量通常在32-4096KB

L2 Cache (二級緩存)為了突破一級緩存的容量限制涤垫,提高CPU的性能,CPU外部放置的高速存儲器厂抖。

L3 Cache (三級緩存)同理二級緩存,提高緩存的容量限制克懊,一般多核共享 L3 緩存忱辅,

CPU 優(yōu)先一級緩存查找數(shù)據(jù),逐級查找谭溉,最后到外置硬盤墙懂。

緩存協(xié)議

緩存協(xié)議為了處理多核 CPU 緩存數(shù)據(jù)一致性問題,在多核處理器中夜只,CPU 對緩存中的數(shù)據(jù)進(jìn)行修改垒在,需要通知其他 CPU蒜魄,同理扔亥,CPU 不但要處理緩存的讀寫,也要監(jiān)聽和通知替他CPU谈为,保證數(shù)據(jù)一致性旅挤。

MESI協(xié)議定義了四種緩存狀態(tài):

修改態(tài) (Modified)緩存內(nèi)容與主內(nèi)存不同,為此Cache專有
專有態(tài) (Exclutive)緩存內(nèi)容與主內(nèi)存相同伞鲫,并且僅出現(xiàn)在此 Cache 中
共享態(tài) (Shared) 緩存內(nèi)容與主內(nèi)存相同粘茄,同時出現(xiàn)在其他 Cache 中
無效態(tài) (Invalid)Cache 中內(nèi)存無效,需要從主內(nèi)存獲取

問題

CPU 緩存不是實時同步秕脓,因此在統(tǒng)一時刻柒瓣,各 CPU 看到的同一內(nèi)存地址的緩存數(shù)據(jù)可能出現(xiàn)不一致情況。

CPU 性能優(yōu)化手段 - 指令重排

CPU 處理寫緩存時可能出現(xiàn)緩存區(qū)塊被其他 CPU 占用吠架,為了提高性能芙贫,可能將后面的讀緩存優(yōu)先執(zhí)行。當(dāng)然傍药,指令重排不能影響程序的運(yùn)行結(jié)果磺平,不能對有數(shù)據(jù)依賴關(guān)系的只能進(jìn)行重排魂仍。

問題

在多 CPU 中 指令邏輯無法分辨因果關(guān)聯(lián),出現(xiàn)亂序執(zhí)行拣挪,影響執(zhí)行結(jié)果擦酌。

內(nèi)存屏障

寫內(nèi)存屏障 (Store Memory Barrier)指定命令強(qiáng)制寫入祝內(nèi)存,CPU 就不會因為考慮性能而對指令重排菠劝。能讓寫入緩存中的最新數(shù)據(jù)寫入主內(nèi)存赊舶,讓其他線程可見。

讀內(nèi)存屏障 (Read Memory Barrier)指定命令強(qiáng)制讀取主內(nèi)存闸英,讓緩存與主內(nèi)存一致锯岖,避免緩存不一致問題。能讓高速緩存中的數(shù)據(jù)失效甫何,強(qiáng)制從新獲取主內(nèi)存數(shù)據(jù)出吹。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市辙喂,隨后出現(xiàn)的幾起案子捶牢,更是在濱河造成了極大的恐慌,老刑警劉巖巍耗,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秋麸,死亡現(xiàn)場離奇詭異,居然都是意外死亡炬太,警方通過查閱死者的電腦和手機(jī)灸蟆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亲族,“玉大人炒考,你說我怎么就攤上這事■龋” “怎么了斋枢?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵,是天一觀的道長知给。 經(jīng)常有香客問我瓤帚,道長,這世上最難降的妖魔是什么涩赢? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任戈次,我火速辦了婚禮,結(jié)果婚禮上筒扒,老公的妹妹穿的比我還像新娘怯邪。我一直安慰自己,他們只是感情好霎肯,可當(dāng)我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布擎颖。 她就那樣靜靜地躺著榛斯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搂捧。 梳的紋絲不亂的頭發(fā)上驮俗,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天,我揣著相機(jī)與錄音允跑,去河邊找鬼王凑。 笑死,一個胖子當(dāng)著我的面吹牛聋丝,可吹牛的內(nèi)容都是我干的索烹。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼弱睦,長吁一口氣:“原來是場噩夢啊……” “哼百姓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起况木,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤垒拢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后火惊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體求类,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年屹耐,在試婚紗的時候發(fā)現(xiàn)自己被綠了尸疆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡惶岭,死狀恐怖寿弱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情俗他,我是刑警寧澤脖捻,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布阔逼,位于F島的核電站兆衅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嗜浮。R本人自食惡果不足惜羡亩,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望危融。 院中可真熱鬧畏铆,春花似錦、人聲如沸吉殃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瓦灶,卻和暖如春鸠删,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贼陶。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工刃泡, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碉怔。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓烘贴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親撮胧。 傳聞我的和親對象是個殘疾皇子桨踪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,937評論 2 361

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