中国科学院机构知识库网格
Chinese Academy of Sciences Institutional Repositories Grid
MaPU编程语言及编译器关键技术研究

文献类型:学位论文

作者申俊志
答辩日期2019-05-24
文献子类硕士
授予单位中国科学院自动化研究所
授予地点北京市海淀区中关村东路95号自动化研究所
导师王东琳
关键词编程语言设计 编译器设计与实现 Vliw 指令调度
学位名称工程硕士
学位专业计算机技术
英文摘要
    随着领域定制化硬件和异构多核处理器的兴起,软件开发成本越来越成为这类系统发挥性能和进行商业推广的瓶颈。本文工作是基于一款应用于通信领域的异构多核高性能处理器MaPU,其同时具有一个主控ARM核和两个加速核,分别为标量加速核SPU和向量加速核MPU。其中SPU是一个具有四发射VLIW结构的32位标量加速核,MPU是一个具有十七发射VLIW结构、无指令互锁、硬件流水线暴露的512位向量加速核。不但如此,向量加速核MPU中十七个功能单元之间复杂的互联关系也给MPU的开发带来了不少复杂性。以上MaPU的所有硬件特点一起构成了MaPU处理器的软件开发难题,本文为了解决MaPU处理器的软件开发难题做了如下工作:
    设计了具有两层抽象层次的Maple(MaPU Assembly Program Language Extension)编程语言。Maple编程语言是本文提出一门专门为MaPU处理器向量加速核MPU设计的领域定制化语言。Maple是MPU向量加速核微码汇编语言的一种扩展形式,拥有比微码更高的抽象层次,而且是两层。在Maple语言的较低抽象层次上进行MPU应用程序的开发时,Maple为程序员隐藏了MPU硬件流水、无指令互锁、十七发射VLIW结构和复杂的硬件互联端口,同时这个层次的Maple还为程序员保留着功能单元和物理寄存器的控制权;对于Maple语言的较高抽象层次,程序员甚至都不用时刻保持对功能单元和物理寄存器使用的担忧,可以把跟多的精力放在算法的设计和实现上。除此之外,Maple语言还具有C语言一样的预处理器和高级语法糖,给程序设计人员的开发带来了极大的便利,经过统计可以平均减少程序员4.02倍的编码量,并且针对MaPU典型应用算法,Maple语言编译器平均可以达到手工微码性能的70.44%。
    设计和实现了MaPU处理器的编译器。由于MaPU处理器异构多核的特点,其编译器的设计和实现任务本质上是两个几乎独立的编译器的设计和实现,分别是标量处理器SPU编译器和Maple语言编译器的设计和实现。SPU编译器前端对接的是高级语言C语言,后端对接的SPU标量加速核;而Maple语言编译器前端对接的Maple语言,后端对接的是MPU向量加速核。但两者在实现上都是使用的Clang提供的预处理器和LLVM提供的编译器基础设施,包括中间语言机器无关的分析和优化,Pass管理机制和TableGen后端信息描述工具等。除此之外,我们还在MaPU编译器中实现了很多机器相关优化,例如硬件循环、VLIW打包、指令调度、端口分配等等,保证了MaPU处理器编译器的高效性。SPU编译器可以取得1.66倍的执行时间优化和1.11倍的代码大小优化。
语种中文
页码114
源URL[http://ir.ia.ac.cn/handle/173211/23918]  
专题自动化研究所_国家专用集成电路设计工程技术研究中心
推荐引用方式
GB/T 7714
申俊志. MaPU编程语言及编译器关键技术研究[D]. 北京市海淀区中关村东路95号自动化研究所. 中国科学院自动化研究所. 2019.

入库方式: OAI收割

来源:自动化研究所

浏览0
下载0
收藏0
其他版本

除非特别说明,本系统中所有内容都受版权保护,并保留所有权利。