基于外部共享Cache的多处理机Cache一致性协议.docVIP

基于外部共享Cache的多处理机Cache一致性协议.doc

  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的多处理机Cache一致性协议 刘广忠 (河北工程技术高等专科学校 成教处,河北 沧州061001) 摘要:基于外部共享Cache的多处理机Cache一致性协议实现了按需求传送数据的目的,从而避免了无效数据的盲目传送,只有处理机在发生读缺失或发现数据已被其他处理机更新,与自身私有Cache数据不一致时,才通过系统总线传输数据,变被动数据更新为主动按需更新,大大减轻了系统总线的传输压力。并且本方法简单易行,协议算法容易实现,特别是将维护Cache一致性的目录表,从内存慢表变成Cache快表,减少了处理机因频繁的读缺失造成的系统开销,提高了处理机工作效率。 关键词:多处理机系统; Cache; 共享性; 一致性协议; 快表 中图法分类号:TP302 文献表示码:A 1 Cache的一致性问题 在个人计算机中,随着单处理机性能开发到极限,多处理机系统将成为主流。然而,在多处理机系统中,Cache结构带来了新的问题:如果不同处理机中的进程需要共享某些数据,那么同一数据就可能有多个副本分别存放在各个Cache中,当某个Cache中的数据被更新后,而其他Cache中的相同数据副本并未作相应修改,则那些处理机从私有Cache中读取的将是“脏”数据,造成了同一数据多个版本共存的现象。这就是所谓的Cache一致性问题。 引起数据不一致的原因大致有三种。① 共享可写数据引起的不一致。如前所述,同一数据的副本存在于多个Cache中,当某个处理机修改了自己Cache中的数据,而其他Cache中相同数据副本并未随之作同样的修改,导致多个Cache中数据的不一致。另外,某个Cache 中的数据被更新后,在没有写回内存前,也会造成Cache与内存的数据不一致。假如此时恰有一个处理机进程(假设该处理机的私有Cache中无修改数据的拷贝)需要此数据,读取内存数据时,就会导致数据错误。② 进程迁移引起的不一致。在多处理机系统中,进程可以在处理机中相互迁移。如果某个处理机中的进程修改了私有Cache中的数据,但还没写回内存前,由于某种原因需要迁移到其他处理机中继续运行,而此时读到的将是“过时”的数据。③ 输入输出操作引起的数据不一致。假设多个Cache中存在内存中同一个数据块的数据拷贝,当系统启动I/O操作时,I/O处理器(通道或DMA)就有可能更新内存中的数据,从而导致Cache与内存的数据的不一致。 2 传统的解决方法及其引起的问题 目前常用的有两种解决Cache一致性问题的方法:监听总线法和目录法。监听总线法是通过总线监听机制实现Cache与内存之间的数据一致性,一般采用写无效(Write-Invalidate)和写更新(Write-Update)两种策略。写无效策略的基本思想是当私有Cache的某个数据块更新时,同时将其他Cache中含有该数据块的数据均置为无效。该策略中数据块的大小对Cache的性能影响很大,如果数据块太大,当某个处理机正在更新一个数据块而其他多个处理机发生阵发式“读缺失”时,就有可能导致总线的流量大大增加,甚至出现争用总线的现象,影响系统的整体性能,Cache结构带来的好处将大打折扣;写更新策略的实现方法是当某个处理机在更新私有Cache的同时,将更新后的数据块发送给所有相关的Cache,并用新的数据覆盖原来的数据,而不管这些Cache是否会读取这些数据。这种不加选择的复制造成了多余的开销,并且,当数据块较大或频繁的数据更新时将占用很长的总线时间或导致总线通信拥挤,轻者导致系统性能降低,重者造成数据丢失。另外,由于此策略采用广播更新,可能有的处理机进程不再使用该数据,这样就产生了无效通信。 目录法是将内存中每个共享数据块设置一定的目录项,用于记录那些Cache含有该数据块的拷贝。当某个处理机对私有Cache进行数据更新操作时,系统根据Cache目录的内容将所有其他存有相同内容的Cache拷贝置为无效。一般采用三种形式:全映射目录、有限目录和链式目录。这三种策略只是在目录的组织形式和采用的数据结构不同,全映射目录因为需要映射的目录项很多,将占用大量的共享存储空间;有限目录虽然有所改进,但由于采用了固定的指针数,装入Cache的数据受到了限制;由于链式数据结构固有的查找性能缺陷,致使链式目录在目录项很多时降低系统的性能。 3 基于外部共享Cache的多处理机结构 基于以上分析,提出了如右图所示的Cache结构,它允许处理机有两条数据通道:一条连接私有Cache,另一条连接到外部共享Cache,就形成了一种全新的Cache一致性方法。私有Cache中存放供处理机使用的主存数据块的副本,共享Cache存储维护Cache一致性的记录。为了保证多处理机能够并行访问共享Cache,将其设计成多端口存储器,根据

文档评论(0)

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

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

1亿VIP精品文档

相关文档