執行時記憶體 硬體層資料一致性

2021-10-10 11:22:59 字數 1169 閱讀 5349

1)儲存器的儲存結構

儲存的層次結構可以分為兩大類:一是cpu內部的,有暫存器、一級快取記憶體、二級快取記憶體;二是位於cpu共享的部分,包含:**快取記憶體、主存、硬碟、遠端儲存。資料的讀取和儲存都要經過快取記憶體(cache),cpu(cpu core)與快取記憶體間有一條特殊的快速通道。主存(main memory)與快取記憶體都連線在系統匯流排(bus)上,系統匯流排同時還用於其他元件的通訊。

在快取記憶體出現後不久,系統變得更加複雜,快取記憶體與主存間的速度差異被拉大,直到加入了另一級快取,新加入的快取比第一級快取更大的同時更慢。由於加大一級快取的做法從經濟上考慮是行不通的,所以有了二級快取,甚至現在的某些系統已經擁有了**快取。

不同的儲存結構,cpu對他們的訪問速度也是不一樣的,越往上的訪問速度越快,但是所需要的成本越高,其訪問速度如圖所示,越接近cpu的快取越小也越快。

2)存在的問題

如果有多個cpu,每個cpu都對一資料進行讀取和寫入,那麼該資料的值將會發生衝突。

3)解決的方法:

【方法1 匯流排鎖】

上代cpu使用的,原理是直接鎖住系統匯流排,只能有乙個cpu訪問cpu外的資訊,在上鎖期間,其他的cpu是無法訪問主存上資訊的。所以也就導致了問題:效率低下。

【方法2 資料一致性協議】

資料一致性協議有很種,不過一般常說的是mesi快取一致性協議。cpu每個cache line標記四種狀態(額外兩位):modified 被修改狀態、 exlusive獨享狀態、 share共享狀態、 invalid無效狀態。

存在的問題:有些資料是無法被快取的;跨越多個快取行的資料;這些資料必須要使用匯流排鎖實現了。

現代cpu的資料一致性實現是通過快取鎖和匯流排鎖共同實現的。

資料一致性

資料一致性通常指關聯資料之間的邏輯關係是否正確和完整。而資料儲存的一致性模型則可以認為是儲存系統和資料使用者之間的一種約定。如果使用者遵循這種約定,則可以得到系統所承諾的訪問結果。常用的一致性模型有 a 嚴格一致性 linearizability,strict atomic consistency ...

資料一致性

丟失更新 未確定的相關性 不一致的分析和幻想讀 事務a讀取與搜尋條件相匹配的若干行。事務b以插入或刪除行等方式來修改事務a的結果集,然後再提交。幻讀是指當事務不是獨立執行時發生的一種現象,例如第乙個事務對乙個表中的資料進行了修改,比如這種修改涉及到表中的 全部資料行 同時,第二個事務也修改這個表中的...

資料一致性

資料一致性通常指關聯資料之間的邏輯關係是否正確和完整。而資料儲存的一致性模型則可以認為是儲存系統和資料使用者之間的一種約定。如果使用者遵循這種約定,則可以得到系統所承諾的訪問結果。常用的一致性模型有 a 嚴格一致性 linearizability,strict atomic consistency ...