2017-10-08 78 views
1

我想了解CPU的L1缓存机制。数据结构缓存对齐如何在L1缓存行中失效

  1. 让我们假设CPU有4芯和L1高速缓存行大小64字节与N个条目使用MESI协议每个核。

  2. 因此,一个内存引用被加载与高速缓存行大小(引用是某种类型的数据结构,完全保存64个字节)对齐。

  3. 此时,所述核 - 0修改4个字节在该高速缓存行(在偏移0)。
  4. 然后,Core-1引用相同的存储位置。因此,高速缓存一致性协议标识此操作并将Core-0中的高速缓存行复制到Core-1(避免从主内存中读取)。

  5. 由此核心-1修改4个字节在该高速缓存行(在偏移15)。

我的问题是这样的:的高速缓存一致性协议将无效在内核-0或不高速缓存行?虽然修改是在不同的偏移量。

另外,在这一点上,有人能够告诉这个缓存行引用是什么缓存一致性协议(MESI)状态?

回答

1

MESI协议对高速缓存行进行操作,因此单个高速缓存行中的偏移量无关紧要。

当core-1最初从core-0请求缓存行时,它被复制并且两个内核的状态都设置为S(共享)。当core-1修改高速缓存行时,core-1中的高速缓存行设置为M(已修改),而对于core-0,它设置为I(invalid)。