- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
缓存一致性的解决方案
摘要:随着计算机技术的飞速发展,CPU时计算机组成的核心部分,提高CPU的性能一直是一个很重要的课题,所以CPU从单核提高到多核,但是总会有一些技术上的难题需要解决,这其中,Cache的一致性问题的解决就推动计算机多核的发展,解决一致性人们提出了一些协议,这其中比较好的解决方案是MESI协议,MESI协议通过监视机制,实时监视总系的事务,当修改某一缓存时,通过通知其它同样持有同一内容的缓存来保持缓存的一致性。
这一协议是目前比较好的解决缓存一致性问题的解决方案,本篇文章就这一经典协议做了分析与总结。
关键词:缓存 一致性 窥探 协议
引言
现代的CPU上,大部分都需要通过缓存来进行内存访问,由于物理架构的原因,CPU没有管脚直接连到内存,所以CPU的读/写(以及取指令)单元正常情况下不能进行直接内存访问。相反,CPU和一级缓存通讯,而一级缓存才能和内存通讯 。而现在又大多有了二级缓存,甚至三级缓存。
缓存是分段(line)的,即下文要用的“缓存段”(cache line),当我们提到”缓存段”的时候,就是指一段和缓存大小对齐的内存,而不关心里面的内容是否真正被缓存进去。当CPU看到一条读内存指令时,它会把内存地址传递给一级数据缓存,一级数据缓存会检查它是否有这个内存地址对应的缓存段,没有的话,它会把对应的缓存段加载进来。
如果进行的是读操作,这就很简单,所有级别的缓存都遵循以下规律:在任意时刻,任意级别缓存中的缓存段的内容,等同于它关联内存中的内容。
如果进行写操作,情况就会变得复杂些,一般分为两种基本的写模式:直写(write-through)和回写(write-back)。
直写简单一点:透过缓存,直接把数据写到下一级内存中,如果对应的段被缓存了,就更新缓存中的内容,同样遵循前面的定律:缓存中的段永远和它内存内容匹配“任意时刻”这个修饰,:缓存段的内容和内存一致缓存段中的内容最终要回写到内存中在直写模式下,因为,它的效果。但是如果,因为有可能在写指令执行过后很久,才会——在这段时间内,,。在回写模型中,。MESI协议
已修改(Modified)缓存段,
独占(Exclusive)缓存段,
共享(Shared)缓存段,
失效(Invalid)缓存段,
操作
状态的转换基于两个激发。
第一个激发是:处理器本身发出读或写请求,当一个CPU在Cache中有一个缓存段,并且CPU需要从这个缓存段中读或写。
第二个激发是:来自于其它处理器,没有该缓存段或者在本Cache里已经更新数据,而在其它处理器中的Cache还没有更新。
总线请求被“窥探器”一直窥探着。
写操作:如果cache line是M或E状态,那么它只能被写。也即在这两种状态下,处理器是独占cache line的,所以不会有任何冲突。如果是S状态,必须先发送Requerst-For-Ownership让其它Cache中关联到同一内存地址的cache line变为I状态后才能被写。
读操作:一个缓存中有M状态的cache line,必须“窥探”所有内存关联Cache的读操作,并且监听到读操作后,可以使读操作延迟,然后写回主存并将该cache line置为S状态。
若是E状态的cache line,同样“窥探”所有内存关联Cache的读操作,并在监听到读操作后将其状态有E置为S状态。
一个缓存中有S状态的cache line,必须监听来自其它缓存的弃用或申请主权广播,在收到广播后弃用该cache line,置其于I状态。
Read For Ownership是一个缓存一致性里组合一个读和一个丢弃的广播的操作。该操作是一个处理器尝试写一个处于S或I状态的cache line,这个操作引起所有其它缓存置这样的cache line于状态I,一个这个操作是独占的,它给缓存带来数据并丢弃其它所有的cache line。
结论
本文就为解决缓存一致性的MESI协议进行了分析,通过MESI协议能够很好地处理多核情况下缓存一致性的问题,是比较好的解决方式,是值得程序员们深入理解的一套协议。
PaperPass检测报告简明打印版
比对结果(相似度):26.13%
编号:VIP20161028213615649
标题:计算机组成原理cache论文
长度:2611字符(不计空格)
句子数:83句
时间:2016-10-28 21:36:15
对比库:学术期刊、学位论文、会议论文、互联网资源
相似资源列表:
1.相似度:11.86%篇名:《Cache中被缓存了,并且所有缓存中的内容与在内存中的内容一致。》
2.相似度:88.89%篇名:《MESI协议》
3.相似度:6.25%篇名:《MESI是四种缓存状态英文首字母的缩写,
文档评论(0)