基于LLVM的专用CPU后端移植分析与设计
[Abstract]:The research and development of the microprocessor is not only the design and production of the hardware, but also the design of the software part. The software design is mainly the transplant of the compiler. The compiler transplantation is the foundation of the microprocessor development. It can greatly shorten the development cycle of the microprocessor. Most compiler developers choose GCC as the target processor at present. Support, but GCC uses the RTL language, because the RTL language is very abstract and complex, the back end transplant is scarce, which makes the GCC back-end transplant very difficult. At this time, how to quickly implement the compiler back end transplantation has become a difficult problem in the microprocessor research and development. The research cycle of LLVM. is divided into three parts: first, this paper analyzes the compiler architecture of LLVM and the back-end transplant mechanism.LLVM is an open source project originate from the American University of Illinois in 2000, and the founder is the inside of Chris Lattner.LLVM. The capacity can be divided into three parts: the LLVM intermediate representation, the integration library, the development language of the tool set.LLVM is C++, which is a typical three segment structure: the front, middle, back end.LLVM clear hierarchical framework and detailed description documents make the LLVM back end migration easier and easier. This article focuses on the back end of the LLVM design, which provides the.LLVM back end. Many redirecting target features support the back end of the.LLVM, also called a code generator, which is divided into a common code generator and a back end port. The common code generator integrates all the common functions of the target processor, not on a specific processor. The back end migration interface provides the specific target processor. In order to support different target processors, to generate the specified back end code generator, it only needs to describe the characteristics of different processors, and then use the universal code generator and the back end transplant interface to implement the back end code generator. Secondly, this paper focuses on this paper. The architecture and characteristics of the target processor. The target processor is a special processor based on DSP in our country. The STX.STX uses a typical VLIW structure, which can execute multiple instructions in a single clock cycle, greatly improving the execution efficiency of the processor. The processor has two types of architecture from the perspective of Architecture: fine The simple instruction set processor (RISC), the complex instruction set processor (CISC).STX uses the RISC instruction set, STX has a large number of registers (including 32 general registers and 6 control registers) and 32 bit instruction set, its addressing mode is simple, 6 different kinds of exception handling make the processor run more secure and reliable, the power consumption of.STX is low and the area is small. With a very clear hierarchy and modular design, this makes the chip more humanized, easier to modify and perfect. Then, this article gives a detailed back end migration and test results. In order to implement LLVM's support for processor STX, the back end port of the LLVM is a very important back end shift of the.LLVM. The function of the implant interface mainly includes global description implementation, register description implementation, instruction set description implementation, assembly output description and so on. In order to make program developers more simple and convenient to describe the information of the target processor, a very flexible and convenient tool, TableGen, is designed in the LLVM tool, which is used to record the target processor. Descriptive language of information, for all features of STX, needs to be described in TableGen and C++ languages. The entire migration work can be divided into TD file description and C++ file description.TableGen mainly for converting TD files into C++ code corresponding to target processors. A description is made to ultimately support LLVM's support for STX.
【学位授予单位】:成都理工大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:TP332
【参考文献】
相关期刊论文 前10条
1 吴艳霞;顾国昌;孙延腾;杨敏;杨杰;牛晓霞;孙霖;;面向应用的可重构编译器ASCRA(英文)[J];计算机科学与探索;2011年03期
2 崔莹;辛晓晨;沈钢纲;;基于UEFI的嵌入式驱动程序的开发研究[J];计算机工程与设计;2010年10期
3 刘飞;孙永节;孙海燕;;基于C6x平台的GCC编译器移植[J];科技信息;2010年07期
4 吴克寿;任小西;李仁发;黎雷生;;GCC到Nios系统的移植研究与实现[J];湖南大学学报(自然科学版);2007年08期
5 王国栋,侯朝焕;GCC在高性能微处理器DSP和CPU上的移植[J];计算机工程与设计;2005年04期
6 张丽杰,吕少中;方舟CPU体系结构及其嵌入式SOC[J];现代电子技术;2005年06期
7 李文龙,刘利,汤志忠;软件流水中的循环展开优化[J];北京航空航天大学学报;2004年11期
8 冯钢,郑扣根;基于GCC的交叉编译器研究与开发[J];计算机工程与设计;2004年11期
9 任小西,李仁发,张克环,郭媛妮;一种基于多目标设计方法的嵌入式编译器技术[J];计算机应用;2004年02期
10 郑丰宙,陈文光,杨博,郑纬民;基于Range Test的交互式数据相关性分析技术[J];清华大学学报(自然科学版);2000年01期
相关重要报纸文章 前1条
1 张兆庆;冯晓兵;;我国编译器研发的历史与现状[N];科技日报;2002年
相关博士学位论文 前3条
1 杨灿群;面向高效能计算的编译关键技术:精度、性能与功耗[D];国防科学技术大学;2007年
2 任坤;DSP编译器关键技术研究[D];浙江大学;2007年
3 琚小明;面向媒体处理器可重定目标编译器的设计研究[D];浙江大学;2004年
相关硕士学位论文 前10条
1 谢虎成;基于LLVM的科学计算程序自动性能预测研究[D];哈尔滨工业大学;2015年
2 涂先胜;基于GCC的Matrix2 DSP编译优化关键技术研究与实现[D];国防科学技术大学;2014年
3 胡敏;基于LLVM编译架构的CSKY后端移植[D];浙江大学;2014年
4 张祖羽;基于LLVM的C*Core后端移植研究[D];哈尔滨工程大学;2012年
5 韩永杰;LLVM编译系统结构分析及ARCA3后端移植[D];哈尔滨工业大学;2010年
6 董峰;LLVM编译系统结构分析与后端移植[D];上海交通大学;2007年
7 董峻峰;基于龙芯2号结构特征对GCC的分析与优化[D];中国科学院研究生院(计算技术研究所);2006年
8 杨川龙;基于GCC的嵌入式系统编译器的研究与开发[D];哈尔滨工程大学;2006年
9 任小西;嵌入式系统编译器的快速生成方法研究[D];湖南大学;2004年
10 冯钢;基于GCC的嵌入式系统编译器研究与开发[D];浙江大学;2004年
,本文编号:2153154
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2153154.html