1. 程式人生 > >併發與高併發程式設計實戰02--CPU多級快取-快取一致性MESI

併發與高併發程式設計實戰02--CPU多級快取-快取一致性MESI

前言

上來就面試什麼多執行緒什麼東西的都是不負責任的,多執行緒,併發高併發等等從本質上來說是對硬體的操作,因此瞭解作業系統,瞭解cpu等相關知識是很有必要的。

下圖是最簡單的快取記憶體的配置  CPU和快取以及主存都連在總線上

快取記憶體出現後不久,主存和快取記憶體之間的速度差異越來越大,因此現在一些系統可能採用的二級快取,甚至三級快取,腦海有這個概念就行了。


1、為什麼需要CPU cache

CPU的頻率太快了,快到主存跟不上,這樣在處理器時鐘週期內,CPU常常需要等待主存,浪費資源.所以cache的出現,是為了緩解CPU和記憶體之間速度的不匹配問題(結構:cpu->cache->memory)

2、CPU cache有什麼意義

1)時間侷限性:如果某個資料被訪問,那麼在不久的將來它可能被再次訪問

2)空間侷限性:如果某個資料被訪問,那麼與它相鄰的資料很快也可能被訪問

3、CPU快取一致性MESI

MESI出現之前的解決方案是匯流排鎖機制,這種解決方案效率很低.鎖住匯流排期間,其他CPU無法訪問記憶體!

用於保證多個CPU cache之間快取共享資料的一致


參考連結

https://blog.csdn.net/zxp_cpinfo/article/details/53523697

https://blog.csdn.net/realxie/article/details/7317630