1 / 3
文档名称:

多处理器系统MESI cache一致性协议.doc

格式:doc   大小:226KB   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

多处理器系统MESI cache一致性协议.doc

上传人:rsqcpza 2020/8/7 文件大小:226 KB

下载得到文件列表

多处理器系统MESI cache一致性协议.doc

文档介绍

文档介绍:一致性要求是指,若cache中某个字被修改,那么在主存(以及更高层次)上,该字的副本必须立即或最后加以修改,并确保它者引用主存上该字内容的正确性。  当代多处理器系统中,每个处理器大都有自己的cache。同一主存块的拷贝能同时存于不同cache中,若允许处理器各自独立地修改自己的cache,就会出现不一致问题。解决此问题有软件办法和硬件办法。硬件办法能动态地识别出不一致产生的条件并予以及时处理,从而使cache的使用有很高的效率。并且此办法对程序员和系统软件开发人员是透明的,减轻了软件研制负担,从而普遍被采用。 MESI协议是一种采用写--无效方式的监听协议。它要求每个cache行有两个状态位,用于描述该行当前是处于修改态(M)、专有态(E)、共享态(S)或者无效态(I)中的哪种状态,从而决定它的读/写操作行为。这四种状态的定义是:  ·修改态(Modified)--此cache行已被修改过(脏行),内容已不同于主存并且 为此cache专有;  ·专有态(Exclusive)--此cache行内容同于主存,但不出现于其它cache中;  ·共享态(Shared)--此cache行内容同于主存,但也出现于其它cache中;  ·无效态(Invalid)--此cache行内容无效(空行)。  MESI协议适合以总线为互连机构的多处理器系统。各cache控制器除负责响应自己CPU的内存读写操作(包括读/写命中与未命中)外,还要负责监听总线上的其它CPU的内存读写活动(包括读监听命中与写监听命中)并对自己的cache予以相应处理。所有这些处理过程要维护cache一致性,必须符合MESI协议状态转换规则。下面由图的四个顶点出发,介绍转换规则:(规则中与上图 的相应位置以*数字序号对照给出) *1 该无效行在自身Cache读未命中将被相应内存块填充以建立新行时,读监听命中,说明其它Cache正在读同地址的内存块,以建立新行。故为多Cache共享行,应为S状态,并应继续发出读监听广播,使其它Cache的类似情况效仿。*2该无效行在自身Cache读未命中将被相应内存块填充以建立新行时,未读监听命中,为本Cache专有,故新建行应为E状态。*3 该无效行在自身Cache写未命中时,将先读入相应内存块填充新行后,再进行写修改,与原内存正本的数据不一至,故新建行为M状态。*4 该共享行写监听命中,说明别的Cache由于写命中修改了同此地址的行,根据写无效原则,此共享行应改变为无效(I)状态。*5 该共享行读命中,状态不变。*6 该共享行读监听命中,说明其它Cache正在读同地址内存块,以建立新行,此时该共享行状态不必改变,但应继续发读监听广播,供它者监听。*7 该共享行被写命中,其中某字被改写,与内存正本不一至,故应改为M状态,且应发出共享行写命中监听广播,使其它Cache同地址行作废(同*4)。*8 该E态行读监听命中说明别的Cache正在读同地址的内存正本,以建立新行,故其状态应改为S状态,并发出读监听广播,以使同此情况及*1效仿之。*9 该E态行读命中不必改变状