论文部分内容阅读
在过去的十几年中,随着工艺尺寸的进步,单芯片集成处理器核数逐步增加,众核处理器成为微处理器发展的趋势之一。传统的总线互连结构已无法适应众核处理器的需求,因此具有高并发特性的片上互连网络(No C)等非顺序互连结构逐渐成为众核处理器中片上互连结构的主流趋势。非顺序互连结构的使用,增加了Cache一致性协议机制的设计复杂度和硬件开销,其高昂的代价限制了众核处理器的性能,即Cache一致性墙(Coherence Wall)的问题。为提高众核处理器中基于Cache一致性协议的核间通信性能,本文基于Cache一致性分区机制,在以下方面进行了研究:1)动态可扩展的Cache一致性分区机制。随着众核处理器中No C规模的增加,Cache一致性协议通常会带来巨大的广播和多播通信代价。当前的Cache一致性协议性能提升通常通过降低通信次数完成,但是其硬件代价较高;静态分区机制可以较低硬件开销避免No C规模上升带来的核间通信性能下降,但是其灵活度较低;而动态分区机制中Cache一致性协议设计较为复杂。由于并行应用程序在使用超过16个处理器核时加速比有限,为应对未来大规模众核处理器的应用场景,本文结合动态可扩展的子网划分机制,提出了动态可扩展的Cache一致性分区(SCCP)机制。基于Gem5的仿真测试表明,相较Token协议0.98%的额外硬件资源开销,SCCP机制以1.67%的硬件开销,提升平均18.8%的Cache系统性能和9%的系统总体性能。同时,与额外硬件开销为3.30%的Di Co协议相比,SCCP机制具有相近的性能。2)针对支持动态可扩展Cache一致性分区的不规则拓扑的子网划分机制。子网划分机制能够有效限制众核处理器中广播和多播的范围,降低并行应用程序之间的通信干扰,提高数据共享和核间通信的性能。传统的子网划分机制通常采用最佳适配的拓扑结构覆盖子网;该机制虽然能够减少广播范围和网络中数据包的数量,但是由于可用路由链路的减少会带来网络拥塞,从而增加了子网内数据包的平均网络延时。在本文提出的支持不规则拓扑结构的子网划分机制中,采用多个矩形子网嵌套的物理子网覆盖逻辑子网,可提供更多可用的路由路径。仿真测试表明,针对众核处理器中Cache一致性协议常见的5~10%的广播率,较当前已有的子网划分机制相比,可获得10%左右的性能提升。子网嵌套的子网划分机制可有效降低无死锁路由的设计复杂度,同时每个路由节点仅需添加两位寄存器,具有较低硬件代价。3)兼容消息传递机制的动态可重构Cache结构设计。为解决众核处理器中Cache一致性协议带来的核间通信的延时,现有的众核处理器及研究中提出了片内硬件支持的消息传递机制,提升了约13%的系统性能。然而在大规模众核处理器的设计中,通常采用轻量级核心运行单线程,因此在运算时独立的消息传递缓存(MPB)处于闲置状态;同时,运算时的Cache访问延时对独立MPB机制的整体性能也有重要的影响。因此,本文基于现有的Cache一致性协议,提出了可重构为MPB的动态可重构Cache结构(RMCC),可按需将片上SRAM存储重构为Cache或MPB使用;RMCC机制通过复用逻辑电路对基础Cache协议的状态进行扩展,在重构的Cache存储上实现了消息传递机制。仿真实验表明,相较硬件额外开销为5.26%的独立MPB机制,RMCC机制可以在相同的硬件开销下降低8%的Cache缺失率,在当前独立MPB实现机制基础上,提升约11.4%的性能;另外,在避免MPB的5.26%额外开销的情况下,可以带来与独立MPB机制相近的总体系统性能。本文针对众核处理器设计中面临的Cache一致性墙的挑战,分别对Cache一致性协议和子网划分机制进行研究和设计,同时兼顾片上消息传递机制的可重构设计,有效提高了众核处理器核间通信和数据共享性能。