簡體   English   中英

數據結構緩存對齊如何在 L1 緩存行中失效

[英]How data structures cache aligned are invalidated in L1 cache line

我試圖了解 CPU 的 L1 緩存機制。

  1. 假設 CPU 有 4 個內核, L1 緩存行大小64 字節,每個內核使用MESI 協議有 N 個條目。

  2. 因此,加載內存引用與緩存行大小對齊(引用是某種數據結構,精確保存 64 字節)。

  3. 此時, Core-0修改了該緩存行中的 4 個字節(偏移量 0 處)。
  4. 然后, Core-1引用相同的內存位置。 因此,Cache Coherence Protocol 識別此操作並將 Core-0 中的緩存行復制到 Core-1(避免從主內存讀取)。

  5. 因此, Core-1修改了此緩存行中的 4 個字節(偏移量 15 處)。

我的問題是:緩存一致性協議是否會使 Core-0 中的緩存行無效? 雖然修改是在不同的偏移量。

另外,在這一點上,有人能告訴這個緩存行參考的緩存一致性協議 (MESI) 狀態是什么嗎?

MESI 協議在緩存行上運行,因此單個緩存行內的偏移量無關緊要。

當 core-1 最初從 core-0 請求緩存行時,它被復制,兩個內核的狀態都設置為S (共享)。 當 core-1 修改緩存行時,core-1 中的緩存行設置為M (已修改),而 core-0 中的緩存行設置為I (無效)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM