论文部分内容阅读
嵌入式系统是一种以应用为中心的专用计算机系统,对功能、可靠性、成本、体积、功耗有着严格要求。当前,功耗已经成为嵌入式系统设计中关键性的约束条件,而编译中的低功耗设计作为目标代码级的优化在系统低功耗设计中扮演着重要的角色。
可重定向编译是嵌入式系统设计时用到的一种编译技术,在嵌入式系统的设计空间搜索过程中,可以快速生成针对该体系结构的编译器。可重定向编译器重定向到不同体系结构的关键在于其编译后端。编译后端基于体系结构描述语言对目标体系结构相关性质的描述,进行指令调度、寄存器分配和代码生成的工作。另一方面,由于功耗优化策略往往针对特定体系结构的目标机器展开,因此,在可重定向编译器后端,基于体系结构描述语言的支持,展开特定的功耗优化策略是可行的。这样,可以在嵌入式系统设计的初期就预先考虑系统的功耗问题。
本论文以嵌入式系统上的可重定向优化编译技术为基础,针对RISC体系结构和VLIW体系结构,深入研究了几种编译后端所能展开的功耗优化策略。对于RISC体系结构,已有较成熟的指令级功耗模型。本文采用体系结构描述语言描述指令的功耗信息,在编译后端根据指令的相关功耗信息进行针对功耗的指令调度,从而降低指令执行的功耗。本文还将针对功耗的调度和针对性能的调度进行了对比实验,给出了实验数据和具体分析。此外,寄存器再分配也是一种在寄存器分配阶段所采用的功耗优化技术,可以有效降低系统功能部件和指令传输路径上的高低电位翻转数量。
对于VLIW体系结构,由于其指令的复杂性,缺乏成熟的指令级功耗模型。本文基于体系结构描述语言,构建了一个在指令调度阶段对指令进行调整以降低指令总线上高低电位翻转的框架,并结合编译后端的两种性能优化策略——软件流水和超块调度进行了细致的分析,总结出该功耗优化策略与代码指令级并行性的关系。基于此,本文最后对该功耗优化策略提出改进,即以编译过程中代码的指令级并行度信息指导功耗优化,从而优化功耗优化中的无效开销。