CPU多级缓存——CPU缓存一致性协议(MESI)

MESI协议是一种常见的CPU缓存一致性协议,它包括Modified、Exclusive、Shared和Invalid四种状态。协议保证了当多个缓存同时持有同一数据时的一致性。文章介绍了MESI状态的含义及转换,以及相对于MSI协议的优势,如减少不必要的总线请求,提高顺序和并行应用的效率。然而,MESI协议在连续读写操作时可能导致额外的内存刷新开销。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

MESI协议是基于Invalidate的高速缓存一致性协议,并且是支持回写高速缓存的最常用协议之一。 它也被称为伊利诺伊州协议(由于其在伊利诺伊大学厄巴纳 - 香槟分校的发展)。 回写高速缓存可以节省很多通常在写入缓存上浪费的带宽。 

四种状态的介绍

每一块被写入cache的内容都会使用4种状态进行标记。它们分别为:

M:被修改的(Modified)

此高速缓存行仅存在于当前的cache当中,并且是脏数据(即该部分内容与主内存对应的内容是不一致的,因为它被CPU修改了)。在允许其他cache在主存读取该部分内容的任何状态之前需要cache将数据回写主存。

E:独享的(Exclusive)

此高速缓存行仅存在于当前的cache当中,与主存数据一致。

S:共享的(Shared)

此高速缓存行可能存储在计算机其他的cache中,与主存数据一致,可以随时丢弃改行。

I:无效的(Invalid)

表示此缓存行无效。

四种状态的转换

四种状态之间的转换可以通过下面这张MESI状态迁移图来表示。

local read表示此cache或CPU读取本高速缓存行;local write表示此CPU修改本高速缓存行;

remote read表示其他cache或CPU读取本高速缓存行;remote write表示其他CPU修改本高速缓存行。

关于这张图的解读可参考表格。

                                                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值