论文部分内容阅读
超长指令字(VLIW)结构是现代高端数字信号处理器DSP普遍使用的结构。VLIW采用指令静态调度,指令并行性挖掘、相关性检查、指令调度等职能均由编译器实现。因此开发高性能的VLIW编译器,对挖掘处理器的性能有重要的意义。另一方面,DSP为了适应多媒体处理的大数据量、高并行性等特点,以及嵌入式应用的低功耗要求,将VLIW结构与单指令流多数据流SIMD技术、低功耗设计相结合,这些新的结构特性对编译器的设计和优化提出了新的需求与挑战。
本文的研究重点是设计和实现一款面向VLIW结构的DSP编译器,并探讨编译器对SIMD的支持以及低功耗编译技术。
利用可重定向编译器IMPACT的前端和其代码生成器模板,本文设计和实现了面向VLIW DSP芯片SuperV2的编译器。编译器代码生成器的设计结合了SuperV2的结构特点和IMPACT提供的支持,实现了指令注释、指令调度、寄存器分配以及汇编代码生成。指令注释解决了推断比较指令注释、除法注释等机器相关的问题。指令调度采用寄存器压力敏感的列表调度。寄存器分配采用基于图着色的分簇寄存器分配方法。汇编代码根据SuperV2汇编器的格式要求进行生成。
SIMD技术能有效的提高数据并行性,是媒体处理领域的一项重要技术。本文研究了利用内在函数支持SIMD的方法,实现了SIMD指令的识别和生成。为简化编译器前端对SIMD128位数据的支持,本文提出伪数据类型的方法。
随着芯片集成度的不断提高,软硬件协同的低功耗设计已经变得越来越重要。本文分析了低功耗编译的模型和方法,并针对SuperV2指令包的特点,设计了SuperV2基于指令包的编译功耗模型。
实验表明,编译DSP核心程序时,对比基于GCC版本的编译器,新的编译器生成的指令数下降30%,并行包数下降8%。进一步实验表明,在降低RAW延迟后,均值IPC从1.5升至1.7。运行更大的程序时,均值IPC分布为1.6到3之间。