摘要:
1. 本文的创新点有:
提出了一种支持Cache一致的片上网络结构。在这种结构中,Cache一致性协议实现在片上网络的网络接口中,使处理器和L2 Cache从一致性维护工作中解脱出来,不必考虑Cache一致性问题,实现了多核处理器的无缝集成,简化了设计和验证过程,降低了多核处理器的设计复杂度。
提出了活跃目录Cache结构,取代了L2 Cache中的目录结构,降低了目录存储开销,增加了多核处理器的扩展性。
活跃目录Cache降低了目录访问延迟,提高了系统的性能。实验结果表明:与传统的多核处理器相比,一个采用CCNoC结构的16核处理器可以使系统性能提高3%,系统硬件开销降低1.8%,目录存储空间减少88%。
2. 实现方法
在多核处理器中,Cache一致性协议的操作是通过片上网络传输的。处理器的私有Cache缺失请求通过网络接口发送到片上网络中,回应信息也通过网络传输给请求节点的路由器,再通过网络接口返回给处理器。对共享L2 Cache中目录以及数据的访问也是通过网络接口传输的。共享L2 Cache对处理器的回应消息以及对私有Cache的无效消息通过网络接口注入到片上网络,传输给相应的处理器。网络接口可以获取系统中的所有一致性协议操作,并做出进一步的处理。
为了把一致性状态维护工作从处理器中分离出来,CCNoC在网络接口中增加了一个一致性状态Cache(Coherence State Cache,CSC),以保存本地私有L1 Cache中数据的一致性状态,并维护L1 Cache的一致性,而处理器的L1 Cache按自己的方式工作,不必关心一致性维护工作。通过一致性状态Cache,实现了一致性协议与处理器的分离,兼容具有不同一致性协议的处理器。
为了把目录存储和维护工作从L2 Cache中分离出来,并降低目录存储开销,CCNoC在网络接口中增加一个小的活跃目录Cache(Active Directory Cache,ADC),保存L2 Cache中最近经常被L1 Cache缓存的活跃数据块的目录信息,并取消L2 Cache中的目录存储空间和目录维护工作。活跃目录Cache降低了目录存储开销,实现了一致性协议与L2 Cache的分离。活跃目录Cache也降低了目录访问延迟,使系统的性能有所提高。
相对于传统的片上网络,CCNoC增加了一致性状态Cache和活跃目录Cache。它们都实现在片上网络的网络接口部件中。网络接口部件的主要功能是对发送的数据进行打包以及对接收的数据进行解包处理。一致性状态Cache和活跃目录Cache与网络接口的打包和解包部件并行工作,掩藏了一致性状态Cache和活跃目录Cache的访问延迟。这样的设计没有改变路由器的结构,对拓扑结构和路由算法都没有影响,增加了CCNoC结构的适应性和灵活性。
与传统片上网络结构不同的是,网络接口部件(NIC)增加了一致性状态Cache(CSC)和活跃目录Cache(ADC)。CSC是路由器与处理器的接口,ADC是路由器与L2 Cache的接口。一致性状态维护和目录维护工作分别由CSC和ADC完成。CCNoC结构支持处理器和L2 Cache通过CCNoC直接连接到片上网络中,实现多核处理器的无缝集成,一致性协议对处理器和L2 Cache是透明的。
3.结论及未来待解决的问题
CCNoC在三个方面解决了多核处理器设计所面临的挑战:第一,使处理器和L2 Cache从一致性协议的维护中解放出来,解决了异构多核处理器中一致性协议的兼容问题,实现了多核处理器的无缝集成,降低了多核处理器的设计复杂度;第二,降低了目录存储开销,增强了多核处理器的目录扩展性;第三,降低了目录访问延迟,提高了多核处理器的性能。
CCNoC为多核处理器设计提供了一个基础的网络架构,每个处理器核和存储部件都不需考虑一致性问题,实现了传统多核处理器中处理器计算和、通讯和存储功能的重新划分,使处理器核、路由器和L2 Cache实现了逻辑上的分离。本文只研究了CCNoC的基本架构以及其性能优势,其还有很大的性能探索空间,对CCNoC性能的探索还需要进一步的研究。CCNoC为可重构多核处理器、容错以及低功耗研究提供了一个新的平台,这些方面的研究正在进行中(国家自然科学基金重点项目)。
4.实用价值或应用前景
简化了多核处理器的设计和验证过程,是一种新的高性能多核处理器结构。为多核处理器的性能优化、容错和低功耗等研究提供了一个研究平台,具有很好的理论和实用价值。基于CCNoC的一个高性能多核处理器正在研发中(核高基项目)。