论文部分内容阅读
随着半导体工艺的进步,摩尔定律仍在延续,但Dennard缩放定律的失效使处理器设计面临功耗瓶颈,发射队列等关键部件因复杂度较高和线延迟增长而缺乏可扩展性,处理器单核的性能增长趋于停滞.多核处理器集成多个高能效的物理核开发利用程序的线程级并行性获得较高计算吞吐率.但多核处理器在设计时权衡并确定处理器核的规模与数量,不能适应程序多变的并行性特征,影响了计算效率.动态多核体系结构作为多核处理器的一种发展方向,能够利用物理核资源动态重构出虚拟核,适应程序并行性特征的计算需求.目前已有动态多核设计大多研究虚拟核动态重构的硬件机制,而对分析程序特征完成重构的过程的研究尚不深入,存在重构额外开销较高,计算资源配置与指令调度效率较差等问题. 为了解决动态多核结构中存在的上述问题,提升其适应程序并行性特征完成计算的能力,本文提出了基于并行性特征学习的动态多核体系结构(PFLB-DMC),对其关键技术进行了研究.借鉴分支预测、访存依赖预测等传统动态超标量技术发掘程序中的稳定特征并指导结构完成特定功能的设计理念,PFLB-DMC结构学习程序的稳定、细粒度的并行性特征,并缓存重用,指导结构完成指令供给、资源分配和指令调度.作为该结构的核心概念和基本操作对象,数据流块(Dataflow Block,DFB)是动态构建、缓存并重用的动态指令代码片段及其调度模式.结构根据计算局部性选取动态指令片段并计算其数据流约束,使用指令空间调度算法SPAT_SCHED和时间调度算法TEMP_SCHED生成动态指令片段的调度模式,缓存在数据流缓存DF-Cache中.结构对命中DF-Cache的动态指令流进行指令供给、资源分配和指令调度等工作皆参照缓存的DFB完成.本文工作围绕该框架展开,主要研究内容和成果包括: (1)定义并研究分析了计算局部性和数据流约束等程序并行性特征,提出了学习并利用这些特征的动态多核体系结构.只有把握程序中稳定的并行性特征,动态多核结构才能有针对性的重构.计算局部性决定了DF-Cache对程序动态指令流的覆盖率,而数据流约束是SPAT SCHED算法和TEMP_ SCHED算法进行指令调度的依据. (2)研究了动态多核结构的指令供给问题,提出了基于DF-Cache的动态多核处理器前端设计.流水线中重命名和调度分发等逻辑因为需要依指令序串行处理动态指令流而缺乏可扩展性.本文设计了DF-Cache结构和向量重命名机制,解耦流水线的指令供给和执行,实现了高带宽、低延迟、可扩展的指令供给,并支持无额外开销、基于DFB粒度的虚拟核动态重构. (3)研究了动态多核结构虚拟核后端的指令调度问题,提出基于并行性特征学习的指令空间调度(instruction steering)算法SPAT_SCHED.虚拟核后端具有计算资源分布式组织的特点,可能受到负载不均衡与跨区操作数传递延迟导致的性能惩罚.数据流约束用调度裕量描述指令的相对关键性,SPAT_SCHED算法根据相对关键性和调度空间模型描述的资源约束进行指令调度,配置虚拟核计算资源并提高其指令执行性能. (4)研究了动态多核结构中物理核后端发射队列阻塞问题,提出基于并行性特征学习的指令时间调度(instruction scheduling)算法TEMP_SCHED.虚拟核后端由多个物理核的后端重构而成,一旦某物理核的发射队列阻塞,整个虚拟核的执行受到较大影响.TEMP_SCHED算法通过反复训练DFB内缓存的指令时间调度模式并计算传播相邻DFB间的数据流约束,对程序所有的指令执行路径平衡优化.基于DFB的指令时间调度方法将指令在进入发射队列前按照缓存的调度模式重排序,减少指令对发射队列的占用,提高发射队列空间利用效率,减少阻塞.