4.5 Beyond MOESIF 1

再次回顾与CacheCoherency相关的MOESIF状态位,却不知从何说起。MOESIF这些状态位似曾相识,已物是人非。在CMP处理器系统中使用的多级Cache层次结构和CMP间的Cache Coherency,改变了MOEIF这些状态位的原始形态。在一个由多个CMP组成的ccNUMA处理器系统中,Cache Coherency包含两方面内容,首先是Intra-CMP Coherence
摘要由CSDN通过智能技术生成

再次回顾与CacheCoherency相关的MOESIF状态位,却不知从何说起。MOESIF这些状态位似曾相识,已物是人非。在CMP处理器系统中使用的多级Cache层次结构和CMP间的Cache Coherency,改变了MOEIF这些状态位的原始形态。

在一个由多个CMP组成的ccNUMA处理器系统中,Cache Coherency包含两方面内容,首先是Intra-CMP Coherence,其次是Inter-CMP Coherence。其中Intra-CMP Coherence指一个CMP内部的Cache Coherency,而Inter-CMP CoherenceCMP间的Cache Coherency,两者之间的关系如48所示。

4.5 <wbr>Beyond <wbr>MOESIF <wbr>1

在一个ccNUMA处理器系统中,Intra-CMP Coherence需要与Inter-CMP Coherence协调工作,完成Cache的全局Coherency。不同的CMP处理器采用了不同的Intra-CMP Coherence策略,可以是Share BusRing Bus或者Directory,这些策略各有利弊。Inter-CMP Coherence甚至可以通过软件交换Message的方式实现,而为了提高软件的Programmability,多数系统使用了硬件实现这些Message交换。在一个ccNUMA处理器系统中使用的CMP超过4个时,多使用Directory结构。

在串行总线替代并行总线的大趋势下,ccNUMA处理器的数据以及Coherence Message通过Packet的方式进行传递,会涉及在Internet中出现的RouterNI(Networking Interface)Flow ControlQoSRouting Algorithm等概念。在ccNUMA处理器系统中使用的Interconnection不但不比Internet简单而且复杂得多。K Computer使用的6D Mesh/Torus Interconnect[92]结构目前尚无用于Internet的可能。

4.5 <wbr>Beyond <wbr>MOESIF <wbr>1

Supercomputer使用的Interconnect超出了本篇的讨论范围,但是仅从CacheCoherency层面进行分析,Inter-CMP Coherence的设计没有难于Intra-CMP CoherenceCache Coherency依然是越接近CPU Core越复杂,Cache间的互联总线也是越接近CPU Core越复杂。这是本节重点介绍Intra-CMP Coherence的主要原因。

Intra-CMPCoherence的复杂程度超过了初学者的想象。其中各级Cache之间的关系,及为了处理这些关系而使用的Cache Block状态和总线协议均较为复杂。仅是其中使用的Cache Coherency Protocol也复杂到了需要使用专门的语言才能将其简约地进行描述。这个语言即SLICC(Specification Language for Implementing CacheCoherence),这个语言是有志于深入了解Cache Coherency Protocol所需要了解的基础知识。

对于多数人而言,学习CacheCoherency Protocol最好的工具是Simulator和使用SLICC语言书写的这些源代码。虽然在模拟舱中很难学会开飞机,但是如果连模拟舱都没有呆过,很难有人让你开真飞机。学术领域提供了这样的模拟舱学习Cache Coherency Protocol

CMP处理器相关的模拟器主要有SESCSimicsM5GEMSSimics最初由Virtutech开发。当时的Virtutech和飞思卡尔在多核处理器上进行了一些合作,虽然Simics是商业产品,我们当时却有机会获得无需付费的License。如获至宝。Intel后来收购了Virtutech

M5GEMS主要用于教学与科研,是一个免费而且代码公开的模拟器。M5侧重CPU ModelISAs等方面;GEMS最重要的组成部件是Cache Coherency ProtocolRuby Memory HierarchyM5GEMS具有很强的互补性,也正是因为这个原因,这两个Simulator逐步融合为GEM5 Simulator[93]

GEM5是我目光所及范围内,由脚本语言书写的最复杂的系统。GEM5吸纳了M5GEMS的主要优点,支持AlphaARMSPARCx86处理器,支持FunctionalTiming Simulation,提供FS(Full-System)SE(Syscall Emulation)两种方式。即便是Android这样复杂的系统也可以运行在GEM5 Simulator之上。在GEM5 Simulator中包含许多内容,本节重点关注使用SLICC语言实现的Cache Coherence Protocol

GEM5Simulator的源代码可在http://www.gem5.org/Download中下载。在这些源代码中,我们重点关注./src/mem/protocol目录。这个目录包含GEM5支持的所有Cache Coherence Protocol,包括MI_exampleMOESI_hammerMOESI_CMP_tokenMOESI_CMP_directoryMESI_CMP_directory,由.slicc.sm两类文件组成。其中xyz.slicc文件包含实现xyz protocol所需要的所有.sm文件,而在.sm文件中包含各级Cache Controller的具体实现。

在每一个.sm文件中,首先包含一个machine(L1Cache, "MSI Directory L1 CacheCMP")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值