处理机的Cache一致性.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
处理机的Cache一致性.ppt

有限目录协议 有限目录的目录项中,除一位的重写位C之外,有数目固定的若干处理机指针,每个指针实际上是一个处理机编号。若有N个处理机,则每个处理机指针为log2N位,因此,目录项的大小正比于Nlog2N,目录的存储器开销为O(Nlog2N)。当某个处理机从存储器调入一个Cache块时,就将该处理机编号记入该数据块目录项的一个指针域中,建立该指针。有N个指针域的目录项只能允许该数据块最多可装入N个Cache中。虽然目录项中指针域的数目是固定的,但指针域并不是与处理机是一一对应关系,任何一个指针域可为任何要求装入该数据块的处理机建立指针,因此,有限目录具有可扩展性。 需要指出的是,若某个目录项的所有指针域都已建立指针后,另有一个处理机要求装入该数据块,那么,有限目录协议需要对这个目录项实行指针替换,这种指针替换过程称为驱逐。 以目录项只有两个指针域为例说明驱逐 链式目录 链式目录的优点在于既不限制共享数据块的拷贝数目,又保持了可扩展性。其主要方法是通过维护一个目录指针链来跟踪共享的数据块拷贝。 链式目录的目录指针链若采用最简单的单向链,那么,目录项中除一位重写位C之外,只需要一个指针域。因此,目录的存储器开销为O(Nlog2N)。 采用单向链的链式目录如下图所示。 链式目录协议与前两种的异同: 链式目录协议保持Cache一致性的操作类似全映射目录协议,只是当处理机Pi 写Ci中的X时,Ci向存储器发出写请求后,存储器将沿X的目录链发送无效信号,将链上的其他X拷贝置为无效,由链尾的有结束标志(CT)的处理机发回答信号给存储器,使X的目录项重写位C置位,此后,存储器才给处理机Pi写允许权。 链式目录协议具有可扩展性,目录的存储器开销也低于前述的两种目录协议的存储器开销。但是,当Cache中的数据块需要替换时,需要把该Cache的被替换块从它的目录链中卸下来并保持目录链的连通。可行的解决办法是:沿着链发送一个消息,修改Ci+1中相应数据块X的指针,使之指向Ci-1,从而把Ci中的数据块X从目录链中卸下,此时就可对Ci的X进行替换了。 本节小结 基于目录的协议是使用目录来维护Cache的一致性。若一个处理机对Cache块写操作时,系统根据目录的指针把其他有相同内容的Cache块拷贝置为无效,并置重写位为“重写”。若处理机对Cache块读操作时,如果重写位未置位,则说明该块未经重写。此时,若Cache读缺失,则从存储器中或拥有正确内容的Cache中读入该块拷贝并修改目录;若读命中,则直接读即可。 谢谢大家! * * * * 那么,此时P1的C1中仍然是X,而不是它先修改过的X’。 * * * * * * * * 链式目录的目录指针链若采用最简单的单向链,那么,目录项 中除一位重写位C之外,只需要一个指针域。因此,目录的存储器开销为O(NlogN)。 * * 处理机的Cache一致性 主要内容 问题的提出 一,多个cache不一致的原因 二,如何解决Cache一致性问题 2.1 监听协议 2.2 基于目录的协议 问题提出 Cache(高速缓冲存储器): 它的设计是为了解决cpu与主存之间速度差距太大的矛盾; Cache的工作原理是基于程序访问的局部性。 cpu 主存 cache 外存 在多核和多处理器系统中,多个Cache对应的copy内容应该一致,如下图: Memory Cache core Cache core …… Cache core 这几个copy 应该一致 一、多个Cache不一致的原因 共享可写的数据 进程迁移 I/O传输 要解决多处理机的Cache一致性问题,首先要研究一致性问题的由来。出现不一致的原因有3个: 1.共享可写数据引起的不一致性 以拥有两个处理机的系统为例,处理机带有各自的私有Cache,并共享一个主存储器。 P1 X P2 X X P1 X P2 X X P1和P2的本地高速缓存存储器C1和C2中分别有共享主存的某个数据X的拷贝。 P1改写C1中的X,使之变为X’。 X’ 若P1采用“写通过”策略,即处理机改写Cache中的数据时同时修改内存中相应的数据,那么,内存中的X也同时变为X’,但是,处理机P2的本地高速缓冲存储器C2中的X仍然是X。 X’ 当P2要读X时,它是从C2中去读取,这就导致了P2从C2中读取的X同内存中的X’不一致。 P1 X P2 X X’ X 若P1采用“写回”策略,即处理改写Cache中的数据时并不同时修改内存中相应的数据,而是在包含该数据的数据块调出Cac

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档