左圖為最簡單的高速緩存的配置,數(shù)據(jù)的讀取和存儲都經(jīng)過高速緩存,CPU核心與高速緩存有一條特殊的快速通道;主存與高速緩存都連在系統(tǒng)總線上(BUS)這條總線還用于其他組件的通信
在高速緩存出現(xiàn)后不久,系統(tǒng)變得越來越復(fù)雜,高速緩存與主存之間的速度差異被拉大背率,直到加入了另一級緩存,新加入的這級緩存比第一緩存更大嫩与,并且更慢寝姿,而且經(jīng)濟(jì)上不合適,所以有了二級緩存蕴纳,甚至是三級緩存
CUP緩存有什么意義:
- 時間局部性:如果某個數(shù)據(jù)被訪問会油,name在不久的將來他可能能再次被訪問。
- 空間局部性:如果某個數(shù)據(jù)被訪問古毛,那么他與相鄰的數(shù)據(jù)很快也可能被訪問翻翩。
MESI:
- M: Modified 修改,指的是該緩存行只被緩存在該CPU的緩存中稻薇,并且是被修改過的嫂冻,因此他與主存中的數(shù)據(jù)是不一致的,該緩存行中的數(shù)據(jù)需要在未來的某個時間點(diǎn)(允許其他CPU讀取主存相應(yīng)中的內(nèi)容之前)寫回主存塞椎,然后狀態(tài)變成E(獨(dú)享)
- E:Exclusive 獨(dú)享 緩存行只被緩存在該CPU的緩存中桨仿,是未被修改過的,與主存的數(shù)據(jù)是一致的案狠,可以在任何時刻當(dāng)有其他CPU讀取該內(nèi)存時服傍,變成S(共享)狀態(tài),當(dāng)CPU修改該緩存行的內(nèi)容時骂铁,變成M(被修改)的狀態(tài)
- S:Share 共享吹零,意味著該緩存行可能會被多個CPU進(jìn)行緩存,并且該緩存中的數(shù)據(jù)與主存數(shù)據(jù)是一致的拉庵,當(dāng)有一個CPU修改該緩存行時灿椅,其他CPU是可以被作廢的,變成I(無效的)
- I:Invalid 無效的,代表這個緩存是無效的茫蛹,可能是有其他CPU修改了該緩存行
CPU緩存一致性:
-
保證多個cpu緩存 cache 之間緩存共享數(shù)據(jù)的一致性
亂序執(zhí)行優(yōu)化
-
處理器為提高運(yùn)算速度而做出違背代碼原有順序的優(yōu)化