论文部分内容阅读
随着消费电子产品的普及、智能硬件的兴起,嵌入式设备的应用场景已经越来越广泛,对嵌入式设备的处理器要求也越来越高。专用指令集处理器(ASIP)凭借其可针对特定应用进行处理器结构定制的优势,取代在有限功耗面积条件下性能不足的通用处理器,成为嵌入式设备处理器的首选。通常ASIP的设计由经验丰富的硬件工程师负责决策,但由于嵌入式应用程序的复杂度不断提高,对于更高的性能、更低的功耗这样相互制约的处理器结构参数平衡点的选取,人工决策需要耗费大量时间和精力,并且缺乏科学依据。目前学术界乃至工业界更趋向于使用另一种更为科学客观的ASIP设计方法,处理器设计空间探索(DSE)。 处理器设计空间探索从特定应用程序出发,以编译器和模拟器为实验工具,采用机器学习的方法探索性能功耗面积达到最佳平衡时的处理器结构配置。作者所属实验室的下一代动芯矢量DSP的设计将采取这种设计方法,本课题的目标就是为动芯DSP的设计空间探索提供一个运行稳定功能丰富的高性能编译器平台。该编译器将在探索过程中扮演高级程序翻译工具以及程序特征分析工具两种角色。 本文以开源编译器LLVM为基础框架开展编译器的研发工作。首先进行LLVM的移植,添加一个新的动芯矢量DSP后端,完成了包括寄存器、指令集、流水线等DSP结构的建模,实现了汇编和二进制接口的描述,使LLVM能够生成可运行在动芯DSP上的程序;然后在完成移植的LLVM上做若干功能扩展,进行了寄存器堆、VLIW数据通路以及分支控制结构优化这三个方面的DSP设计空间探索实验,通过分析实验结果,给出了对动芯DSP结构参数设计的建议,可以为硬件设计人员作出决策提供很好的参考依据。