VLIW DSP编译器设计及性能与功耗的优化研究

VLIW DSP编译器设计及性能与功耗的优化研究

论文摘要

超长指令字(VLIW)体系结构已经为高端数字信号处理器(DSP)所普遍采用。VLIW体系结构主要采用静态指令调度技术,因此其硬件行为很大程度上依赖于编译器的安排,这为编译器提供了广阔的舞台,也对其提出了严峻的挑战。一方面,VLIW DSP的高性能是否能够发挥出来,完全取决于编译器效率的高低;另一方面,因为编译器可以很大程度上控制芯片的运行轨迹,除了最大程度挖掘指令级并行(ILP)外,还可以通过适当的调度优化,使得DSP执行某一个程序时的功耗变小。可见对于VLIW DSP高性能低功耗编译技术的研究具有非常现实的理论与实践意义。本文的工作是863项目“32位高性能嵌入式数字信号处理器(DSP)芯片技术研究”的一部分。论文针对VLIW DSP编译器的设计与实现技术、性能优化技术、功耗优化技术进行了深入研究。主要工作分为三大部分:首先基于可重定向编译基础设施IMPACT,设计和实现了VLIW DSP的C编译器;其次针对VLIW DSP体系结构的特点,对利用谓词执行机制和软件流水进行性能优化的技术展开了研究;然后对利用SIMD指令自动向量化和循环缓冲进行低功耗优化的技术展开了研究。本文所做编译优化工作是围绕VLIWDSP体系结构展开的,并以YHFT-D4为实例进行了验证,但所提出的优化方法具有普遍的适用性。主要贡献如下:一、提出了基于互补谓词的优化方法。该方法从三方面进行编译优化:一是基于二进制决策图(BDD)谓词分析系统,建立了一种利用互补谓词机制对控制结构进行优化的方法;二是对传统着色图寄存器分配算法进行改进,给出了一种建立统一简化干涉图的新算法,减少了代码溢出;三是利用互补谓词的特性改进了指令调度中资源的利用情况和目标体系结构中谓词读取时间,提高了指令调度中的资源利用率,可以获得更高的ILP。二、提出了基于超块的统一分簇与模调度方法。使用超块作为调度单位是扩大优化范围,获得更高ILP的重要手段,并且可以处理含有控制流的循环体,增加了模调度的适用范围。VLIWDSP中的分簇结构,使得编译器必须将指令和操作数在簇间进行合理分配才能得到较好的ILP。基于超块的统一分簇与模调度方法,先使用互补谓词将中间代码变成超块,再进行模调度,在调度过程中同时进行指令和操作数的簇分配,实验证明是一种有效方法。三、在全面而深入地评述了低功耗编译技术,特别是指令级、功能级功耗模型的基础上,提出了基于SIMD指令自动向量化的低能耗编译方法。与普通指令相比,SIMD指令具有较高的能量效率。现有的一些自动生成SIMD指令的编译方法,或者只能生成一般SIMD指令,或者高度领域相关,缺乏通用性。针对此,本文提出一种基于SIMD指令自动向量化的低能耗编译方法,该方法将SIMD自动向量化的任务划分为两阶段:首先从高层中间代码识别出复杂SIMD指令的备选指令;然后在低层中间代码中经循环展开之后,用扩展的树模式匹配、以指令的能耗为代价生成真正的SIMD指令。这种方法清晰直观、通用性强。实验证明对于能耗和性能都有优化作用。四、提出了一种通过编译控制循环缓冲降低指令存储器功耗的方法。VLIWDSP中指令存储器的功耗所占比重较大。但根据DSP应用中循环较多的特点,可以采用循环缓冲来减小指令存储器的功耗。设计了一种编译器控制的循环缓冲,编译器通过功耗分析确定放入缓冲的循环体,并确定打开/关闭循环缓冲的时机。该方法在不影响性能的情况下,减小了程序运行的总功耗。五、设计与实现了VLIW DSP的优化编译器。以可重定向编译基础设施IMPACT为平台,设计与实现了VLIW DSP编译器,并从性能和功耗两方面对其进行了优化。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 引言
  • 1.1.1 编译优化目标的多元化:性能与功耗
  • 1.1.2 性能优化与功耗优化的关系
  • 1.2 VLIW DSP编译的关键技术
  • 1.2.1 VLIW DSP的发展及其体系结构特点
  • 1.2.2 编译器对VLIW DSP的重要性
  • 1.2.3 VLIW DSP编译中的关键技术
  • 1.3 研究背景
  • 1.3.1 课题来源
  • 1.3.2 YHFT-D4的体系结构
  • 1.4 本文的主要工作及贡献
  • 1.5 论文结构
  • 第二章 VLIW DSP编译器的设计与实现
  • 2.1 引言
  • 2.2 相关工作
  • 2.3 IMPACT编译基础设施
  • 2.3.1 前端
  • 2.3.2 后端
  • 2.3.3 IMPACT的定制
  • 2.4 VLIW DSP的机器规格说明和机器描述
  • 2.4.1 机器规格说明
  • 2.4.2 机器描述
  • 2.5 VLIW DSP编译器的代码生成器设计与实现
  • 2.5.1 总体框架
  • 2.5.2 代码注释
  • 2.5.3 寄存器分配
  • 2.5.4 指令级并行开发和资源冲突解决
  • 2.6 内联函数的支持
  • 2.7 奇异数据类型的编译支持
  • 2.7.1 VLIW DSP中的奇异数据类型
  • 2.7.2 奇异数据类型的代码注释
  • 2.7.3 数据流与依赖关系的处理
  • 2.7.4 寄存器分配中的生命周期计算
  • 2.8 实验结果及评价
  • 2.8.1 基准测试程序
  • 2.8.2 实验结果
  • 2.9 本章小结
  • 第三章 基于互补谓词的编译优化
  • 3.1 引言
  • 3.2 相关工作
  • 3.3 互补谓词机制
  • 3.4 互补谓词的分析与优化
  • 3.4.1 谓词代码的产生
  • 3.4.2 谓词分析系统
  • 3.4.3 谓词优化
  • 3.5 统一的谓词寄存器分配
  • 3.6 指令调度及体系结构的谓词优化
  • 3.7 实验结果
  • 3.8 本章小结
  • 第四章 基于超块的统一分簇与模调度
  • 4.1 引言
  • 4.2 相关工作
  • 4.3 基于超块的统一分簇与模调度
  • 4.3.1 分簇VLIW体系结构
  • 4.3.2 算法的总体框架
  • 4.3.3 选择合适的循环并形成超块
  • 4.3.4 构造依赖图
  • 4.3.5 计算最小迭代间隔MII
  • 4.3.6 统一的分簇与模调度
  • 4.3.7 模变量扩展MVE
  • 4.3.8 模调度的填充与排空的生成
  • 4.3.9 与其它编译器模块的相互关系
  • 4.4 实验结果
  • 4.5 本章小结
  • 第五章 低功耗编译技术综述
  • 5.1 引言
  • 5.2 低功耗编译需要解决的主要问题
  • 5.2.1 软件的功耗分析
  • 5.3 低功耗编译的实现
  • 5.3.1 动态功耗的编译优化
  • 5.3.2 静态功耗的编译优化
  • 5.4 当前存在问题及发展方向
  • 5.5 本章小结
  • 第六章 基于SIMD指令自动向量化的低能耗编译方法
  • 6.1 引言
  • 6.2 相关工作
  • 6.3 SIMD指令集的功耗特性及其编译器环境
  • 6.4 最值候选指令的识别
  • 6.5 基于树模式匹配的数据流树SIMD重写
  • 6.6 循环检查与循环展开
  • 6.7 扩展的树模式匹配
  • 6.7.1 目标机器指令模板的描述
  • 6.7.2 线性规划法实现SIMD指令选择
  • 6.7.3 规则的语义动作实现
  • 6.8 实验结果
  • 6.9 本章小结
  • 第七章 降低指令存储器功耗的一种有效方法:循环缓冲
  • 7.1 引言
  • 7.2 相关工作
  • 7.3 循环缓冲的体系结构设计及功耗分析
  • 7.3.1 循环缓冲的体系结构设计
  • 7.3.2 循环缓冲的功耗分析
  • 7.4 循环缓冲的编译支持
  • 7.4.1 备选循环的选择
  • 7.4.2 lbon指令的插入点
  • 7.4.3 lbon指令参数值的确定
  • 7.5 实验结果
  • 7.6 本章小结
  • 第八章 性能与功耗优化在VLIW DSP编译器中的集成
  • 8.1 优化方法集成的总体框架
  • 8.2 VLIW DSP优化编译器的总体评价
  • 8.3 本章小结
  • 第九章 结束语
  • 9.1 工作总结
  • 9.2 未来的研究方向
  • 致谢
  • 参考文献
  • 作者在学期间取得的学术成果
  • 攻读博士学位期间参与的科研项目
  • 相关论文文献

    • [1].面向VLIW DSP结构的编译器的设计与实现[J]. 微计算机应用 2009(07)
    • [2].魂芯分簇VLIW DSP上指令调度的优化[J]. 微型机与应用 2017(11)
    • [3].基于VLIW DSP的可重定向编译器设计与实现[J]. 中国集成电路 2009(12)
    • [4].VLIW DSP指令级精度模拟器的快速实现方法[J]. 计算机工程与设计 2013(01)
    • [5].分簇VLIW DSP的SIMD编译优化[J]. 中国科学技术大学学报 2011(08)
    • [6].VLIW DSP处理器下累加计算优化方法[J]. 小型微型计算机系统 2015(08)
    • [7].分簇VLIW DSP上支持单双字模式选择的SIMD编译优化[J]. 计算机应用 2015(08)
    • [8].一种基于寄存器压力的VLIW DSP分簇算法[J]. 计算机应用 2010(01)
    • [9].面向VLIW DSP处理器的智能汇编过程语法处理方案[J]. 邵阳学院学报(自然科学版) 2016(01)
    • [10].支持SIMD与簇间双字传输体系下的VLIW DSP分簇算法[J]. 计算机系统应用 2012(10)
    • [11].基于数据流图的异构VLIW DSP分簇方法[J]. 计算机应用 2011(04)
    • [12].基于VLIW DSP加密与认证算法的实现[J]. 计算机应用 2012(06)
    • [13].一种支持同时多线程的VLIW DSP架构[J]. 电子学报 2010(02)
    • [14].一种基于VLIW DSP架构的高性能取指流水线[J]. 国防科技大学学报 2011(04)
    • [15].用于分组加密和认证的VLIW DSP[J]. 计算机应用与软件 2012(10)
    • [16].一种支持VLIW DSP条件跳转指令的技术研究[J]. 工业控制计算机 2009(02)

    标签:;  ;  ;  ;  ;  ;  ;  

    VLIW DSP编译器设计及性能与功耗的优化研究
    下载Doc文档

    猜你喜欢