多核对操作系统影响一致性.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多核对操作系统的影响(1) Cache一致性 outline Cache Coherence问题 Cache Coherence的提出 多个Cache不一致的原因 两种设计Cache一致性协议策略 监听总线协议 基于目录的Cache一致性协议 三种Cache一致性策略 Cache Coherence问题 多个Cache不一致的原因 共享可写数据的不一致性 进程迁移的不一致性 I/O操作(绕过Cache的I/O操作) 两种设计Cache一致性协议策略 写无效(write invalidate) 任一core写它的私有Cache时,它都使所有其它的Cache中的副本失效。 对Write-through,它也更新memory中的副本(最终是一个Cache中的副本和memory中的副本是有效的)。 对Write-back,它使memory中的副本也失效(最终只有一个Cache中的副本是有效的)。 两种设计Cache一致性协议策略 写更新(write update) 任一处理器写它的私有Cache时,它都立即更新所有其它的Cache中的副本。 对Write-through,它也更新主存储器中的副本。 对Write-back,对存储器中副本的更新延迟到这个Cache被置换的时刻。 outline Cache Coherence问题 Cache Coherence的提出 多个Cache不一致的原因 两种设计Cache一致性协议策略 监听总线协议 写一次协议 基于目录的Cache一致性协议 三种Cache一致性策略 3.第二种情况?第三种情况的过程 P3向C3发出写请求时: (1)C3检测出包含单元X的块是有效的,但Cache中的块允许位状态表示不允许Core对该块进行写操作。 (2)C3向包含单元X的存储器模块发出写请求,并暂停P3工作。 (3)该存储器模块发出一个无效请求给C1和C2(根据目录项的内容发几个无效信号) (4)C1和C2收到无效请求后,把相应位置1,表示含单元X的块已无效,并发送一个回答信号给请求的存储器模块。 (5)存储器模块收到回答信号后,将重写位置1,清除指向C1、C2的指针,发出允许信号给C3。 (6)C3收到写允许信号后,修改Cache的状态并激活Core3。 4. 目录所占空间 假设存储器大小和Core个数N成正比,即个数增加时,存储器的模块数也增加,所以数据块的个数也和N成正比。 另外目录项的大小也和Core数N成正比,所以目录的总所占空间和N2成正比。 即: 目录项数*项大小 = O ( N2) 太大不便于扩展。 有限目录 解决目录过大的问题。 任意一个数据块在Cache中同时存在的副本数量有一定限制,那么目录大小的增加不会超过一个常数。 符号表示法: DiriX i:指针的数量。 X是NB,表示没有广播功能的方案。 DirNNB表示没有广播功能的全映射方式 DiriNB(i〈 N):使用i个指针的没有广播功能的有限目录协议方式。 除了多于i个Cache请求读一个特定的数据块的情况外,有限目录协议与全映射协议类似。 有限目录中指针不是每个Core一位,而是针对Core的二进制标识符进行编码,所以指针占log2N位存储器。 在全映射方式中,每个Core对应一个指针,所以N个Core一共用了N位,而有限目录中只用log2N位,设N =16,则log216 = 4。 如果允许两个指针,则需要8位。 所以目录的存储容量为O(Nlog2N),比全映射容易扩充。 如果多Core系统中的Core具有局部性,即在任何给定的时间间隔内,只有一小部分Core访问某个给定的存储器字,那么有限目录足以应付这个小的工作Core组了。 链式目录 用目录指针链来跟踪共享数据副本。 两种方法,单链法与双链法。 数据块共享副本的数目并无限制。 所占的空间及可扩展性同有限目录。 它的工作原理如下过程所示。 (1)P1要读单元X,则memory发送一份副本给C1,同时送给C1一个链结束指针(CT:Chain Termination),存储器也保存指向C1的指针。 Shared Memory x: c data Core1 Core2 Core3 C1 C2 C3 x: CT data (2)当P2要读单元X时,存储器送一份副本给C2,同时送给C2一个指向C1的指针,存储器保存指向C2的指针。 Shared Memory x: c data Core1 Core2 Core3 C1 C2 C3 x: CT data x: data Write-Once一致性

文档评论(0)

beautyeve + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档