论文部分内容阅读
随着计算机技术的普遍应用,日益复杂化的应用程序呈现出越发多样的瞬间运行特征。数据处理单元作为系统芯片的核心单元,它的性能与应用程序密切相关,而传统的固定结构设计不能使所有的应用程序都高效运行。本文结合应用程序的特征从数据处理单元(乘累加、预取、单元建模)方面探索优化处理器微结构的方法,使其能够根据应用程序的特征自适应调节。首先,乘累加单元是微处理器和数据信号处理器中重要的计算单元,传统的乘累加单元通常将乘累加操作分隔为多个流水周期完成来提高吞吐量,但同时也会增加延时、能耗和面积的开销。基于无损音频应用APE中有70%以上的32x16模式的乘法,且不同模式间分布离散,本文提出数据感知的乘累加器结构,根据乘法操作数的宽度动态调整乘累加操作的流水线深度,降低乘法操作引起的停顿。设计了数据流跟踪模块实时检测乘法操作的数据宽度,乘累加单元根据32x16模式乘法的密集程度实现乘累加器流水深度的自适应调节。基于可编程逻辑阵列(FPGA)的全系统仿真表明,数据感知的乘累加器可提升APE应用性能11%,能效提升15%。其次,数据预取的效果与应用程序有很大关系,固定的预取方式不能使所有的应用获益,反而会因为一些无用的带宽消耗或者高速缓存污染降低性能。合适预取选择问题实际是参数空间的优化问题,因此,本文结合机器学习方法对预取单元进行优化,提出了一种基于决策树的自调数据预取方法。该方法通过学习应用程序的访存行为特征属性,对预取的配置进行分类;并在运行时动态检测程序运行阶段,当检测到应用的访存行为发生较大变化时,根据应用访存行为属性预测该阶段的最佳配置。采用SPEC CPU 2006、EEMBC、Olden标准评测集对学习机制进行训练并验证,软件仿真结果表明,基于决策树的自调数据预取比无预取系统性能提升14%,系统能效提升24%,比经典的预取机制(CDP,GHB, Stream)性能都有所提升。最后,随着未来应用的发展,未来系统对数据处理能力、系统的能效及自调管理有更高要求。针对未来大规模负载应用的特点,本文实现了多核系统中的数据处理单元的软件建模,该数据处理单元综合考虑能效的权衡,采用基于ARMv8指令集双发射4路同时多线程的顺序处理器结构。在功能模拟器QEMU的基础上对性能模型建模,包括对数据处理单元的流水线、高速缓存、分支预测器、顺序执行调度器,实现了可扩展的单核全系统模拟器。采用SPEC CPU2006评测集对模拟器速度和结构设计进行了评价。本文根据应用程序的特征对乘累加单元、数据预取引擎探索了机器学习与微结构自适应性的优化方法,实现了多核系统中的数据处理单元的周期级精确建模。