硬件层面协议引发有序性与可见性问题分析:以MESI协议为例.pdfVIP

  • 1
  • 0
  • 约小于1千字
  • 约 2页
  • 2026-07-03 发布于北京
  • 举报

硬件层面协议引发有序性与可见性问题分析:以MESI协议为例.pdf

MESI协议在硬件层面的原理其实大家都已经了解的很清晰了,对不对

可见性和有序性的问题

可见性:写缓冲器和无效队列导致的,写数据不一定立马写入自己的高速缓存(或者主内存),

是因为可能写入了写缓冲器;读数据不一定立马从别人的高速缓存(或者主内存)刷新

的值过来,invalidate消息在无效队列里面

有序性:

(1)StoreLoad重排序

inta=0;

intc=1;

线程1:

a=1;

intb=c;

这个很简单吧,第一个是Store,第二个是Load。但是可能处理器对store操作先写入了写

缓冲器,此时这个写操作相当于没执行,然后就执行了第二行代码,第二行代码的b是局部

变量,那这个操作等于是a的值,是load操作

这就导致好像第二行代码的load先执行了,第一行代码的store后执行

第一个store操作写到写缓冲器里去了,导致其他的线程是读不到的,看不到的,好像是第

一个写操作没执行一样;第二个load操作成功的执行了

StoreLoad重排,Store先执行,Load后执行;Load先执行,Store后执行

(2)StoreStore重排序

resource=loadResource();

loaded=true;

文档评论(0)

1亿VIP精品文档

相关文档