基于LLVM的專用CPU后端移植分析與設(shè)計
[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.
【學(xué)位授予單位】:成都理工大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2017
【分類號】:TP332
【參考文獻(xiàn)】
相關(guān)期刊論文 前10條
1 吳艷霞;顧國昌;孫延騰;楊敏;楊杰;牛曉霞;孫霖;;面向應(yīng)用的可重構(gòu)編譯器ASCRA(英文)[J];計算機(jī)科學(xué)與探索;2011年03期
2 崔瑩;辛?xí)猿?沈鋼綱;;基于UEFI的嵌入式驅(qū)動程序的開發(fā)研究[J];計算機(jī)工程與設(shè)計;2010年10期
3 劉飛;孫永節(jié);孫海燕;;基于C6x平臺的GCC編譯器移植[J];科技信息;2010年07期
4 吳克壽;任小西;李仁發(fā);黎雷生;;GCC到Nios系統(tǒng)的移植研究與實現(xiàn)[J];湖南大學(xué)學(xué)報(自然科學(xué)版);2007年08期
5 王國棟,侯朝煥;GCC在高性能微處理器DSP和CPU上的移植[J];計算機(jī)工程與設(shè)計;2005年04期
6 張麗杰,呂少中;方舟CPU體系結(jié)構(gòu)及其嵌入式SOC[J];現(xiàn)代電子技術(shù);2005年06期
7 李文龍,劉利,湯志忠;軟件流水中的循環(huán)展開優(yōu)化[J];北京航空航天大學(xué)學(xué)報;2004年11期
8 馮鋼,鄭扣根;基于GCC的交叉編譯器研究與開發(fā)[J];計算機(jī)工程與設(shè)計;2004年11期
9 任小西,李仁發(fā),張克環(huán),郭媛妮;一種基于多目標(biāo)設(shè)計方法的嵌入式編譯器技術(shù)[J];計算機(jī)應(yīng)用;2004年02期
10 鄭豐宙,陳文光,楊博,鄭緯民;基于Range Test的交互式數(shù)據(jù)相關(guān)性分析技術(shù)[J];清華大學(xué)學(xué)報(自然科學(xué)版);2000年01期
相關(guān)重要報紙文章 前1條
1 張兆慶;馮曉兵;;我國編譯器研發(fā)的歷史與現(xiàn)狀[N];科技日報;2002年
相關(guān)博士學(xué)位論文 前3條
1 楊燦群;面向高效能計算的編譯關(guān)鍵技術(shù):精度、性能與功耗[D];國防科學(xué)技術(shù)大學(xué);2007年
2 任坤;DSP編譯器關(guān)鍵技術(shù)研究[D];浙江大學(xué);2007年
3 琚小明;面向媒體處理器可重定目標(biāo)編譯器的設(shè)計研究[D];浙江大學(xué);2004年
相關(guān)碩士學(xué)位論文 前10條
1 謝虎成;基于LLVM的科學(xué)計算程序自動性能預(yù)測研究[D];哈爾濱工業(yè)大學(xué);2015年
2 涂先勝;基于GCC的Matrix2 DSP編譯優(yōu)化關(guān)鍵技術(shù)研究與實現(xiàn)[D];國防科學(xué)技術(shù)大學(xué);2014年
3 胡敏;基于LLVM編譯架構(gòu)的CSKY后端移植[D];浙江大學(xué);2014年
4 張祖羽;基于LLVM的C*Core后端移植研究[D];哈爾濱工程大學(xué);2012年
5 韓永杰;LLVM編譯系統(tǒng)結(jié)構(gòu)分析及ARCA3后端移植[D];哈爾濱工業(yè)大學(xué);2010年
6 董峰;LLVM編譯系統(tǒng)結(jié)構(gòu)分析與后端移植[D];上海交通大學(xué);2007年
7 董峻峰;基于龍芯2號結(jié)構(gòu)特征對GCC的分析與優(yōu)化[D];中國科學(xué)院研究生院(計算技術(shù)研究所);2006年
8 楊川龍;基于GCC的嵌入式系統(tǒng)編譯器的研究與開發(fā)[D];哈爾濱工程大學(xué);2006年
9 任小西;嵌入式系統(tǒng)編譯器的快速生成方法研究[D];湖南大學(xué);2004年
10 馮鋼;基于GCC的嵌入式系統(tǒng)編譯器研究與開發(fā)[D];浙江大學(xué);2004年
,本文編號:2153154
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2153154.html