学位论文 > 优秀研究生学位论文题录展示

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

作 者: 胡定磊
导 师: 陈书明
学 校: 国防科学技术大学
专 业: 计算机科学与技术
关键词: 超长指令字 编译器 互补谓词执行 模调度 低功耗编译 自动向量化 循环缓冲
分类号: TP368.12
类 型: 博士论文
年 份: 2006年
下 载: 273次
引 用: 0次
阅 读: 论文下载
 

内容摘要


超长指令字(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编译器,并从性能和功耗两方面对其进行了优化。

全文目录


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

相似论文

  1. 基于VHDL的可编程逻辑器件虚拟实验平台的设计与实现,TP311.52
  2. 群组密钥协商协议编译器研究,TN918.2
  3. 基于Petri网建模的作业车间调度智能算法研究,TP18
  4. 面向高性能DSP Matrix向量化编译器的设计与实现,TP314
  5. 基于NIOSⅡ的PLC系统,TP273
  6. 机器人图形化编程系统的设计与实现,TP242
  7. 嵌入式MSDCC异构多核编译器研究,TP314
  8. 基于GCC的ARCA3的编译器移植,TP368.1
  9. FT-Matrix处理器指令集与指令派发设计,TP332
  10. G代码集成开发调试平台的设计与实现,TG659
  11. 面向空间目标轨道预测的定制处理器及其编译器的关键技术研究,V556
  12. 五自由度串联机器人开放式控制系统的研究,TP242
  13. 可配置TTA处理器编译器的指令调度技术研究与实现,TP314
  14. 航天C程序安全规则检查技术研究,TP311.52
  15. 面向AES加密的可配置处理器设计及实现,TN918.2
  16. 机场导航站集中监控系统的设计与实现,TP277
  17. 面向异构细粒度可重构系统的循环流水编译技术研究,TP314
  18. 基于Ptolemy Ⅱ的MP3解码器的建模仿真研究,TN764
  19. 出具证明编译器中证明生成的研究,TP314
  20. 一种出具证明编译器中汇编级断言和证明的生成方法,TP314
  21. 开放式数控系统中G代码编译器的设计与研究,TG659

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 微型计算机 > 各种微型计算机 > 微处理机
© 2012 www.xueweilunwen.com