欢迎来到天天文库
浏览记录
ID:35190291
大小:2.45 MB
页数:62页
时间:2019-03-21
《探究基于龙芯处理器的gcc移植与优化》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、中国科学技术大学硕士学位论文基于龙芯处理器的GCC移植与优化姓名:裴晓航申请学位级别:硕士专业:计算机系统结构指导教师:顾乃杰20100401摘要摘要处理器的设计研发过程需要编译器作为实现系统级测试的辅助工具。同样,如果要充分发挥处理器的性能,除了要有性能优越的硬件设备外,也需要性能优越的操作系统和编译器的支持。龙芯系列处理器作为国产的高性能通用处理器,由于采用了先进的结构设计技术,在国内的处理器设计研发领域已经处于领先地位,在世界范围内也即将步入先进行列。目前为止,龙芯上采用的是开源编译器GCC(GNUCompilerCollection)。GCC支持多语言和多目标平
2、台的特性,使得GCC编译器具有良好的可移植性。而其丰富的代码优化机制,也使得我们可以针对目标平台的体系结构特点,来对GCC编译器进行优化,从而提高GCC编译器在目标平台上的性能。本文就分别针对龙芯系列处理器中的两款——龙芯2F和龙芯3B处理器的体系结构的不同特点,对GCC编译器进行了移植与优化,从而达到提高系统性能的目的。GCC编译器可以直接运行在龙芯2F上,但是性能还有很大的提升空间。本文实现了GCC对龙芯2F扩展指令的支持,并针对这这些扩展指令实现了相应的窥孔优化。然后对GCC实现的循环展开与手工循环展开做了性能比较,并对循环因子对性能的影响进行了分析。实验结果表明
3、:窥孔优化能够使编译器更多的生成龙芯2F的扩展指令,而使用移植后的GCC编译FFTW库,平均性能也有6%~8%的提升。而GCC的循环展开在龙芯2F上可获得约13%的性能提升,但相比于手工循环展开获得的性能收益,仍然有很大差距。龙芯3B实现了对多媒体指令的扩展,因而针对龙芯3B完成的主要工作是实现GCC对龙芯3B扩展指令的支持。龙芯3B提供了256位的向量寄存器,但是提供的访存宽度却是128位,因而本文首先实现了GCC对龙芯3B的128位访存以及327条多媒体的支持。不过,由于GCC编译器前端自动向量化的限制,使得移植后的编译器在生成汇编代码时,使用到的向量指令非常的少,
4、这大大限制了系统性能。为了解决这个问题,本文同时实现了GCC对与向量指令相对应的内建函数的支持。测试结果表明:向量化移植后的GCC编译器能够正确的编译生成龙芯3B支持的多媒体扩展指令,而且部分基准测试程序的性能提升可以达到4倍左右。而使用内建函数修改后的代码的指令数目也会大大的减少,达到了提高系统性能的目的。关键词:GCC龙芯处理器编译器优化自动向量化内建函数IIABSTRACTABSTRACTProcessordesignanddevelopmentprocessrequirescompilerashelptoachievesystem-leveltests.Simi
5、larly,ifwewanttotakefulladvantageoftheperformanceoftheprocessor,besideshavingthesuperiorhardware,wealsoneedthesupportofsuperioroperatingsystemandcompiler.Sincehavingusedadvancedtechnologyinstructuredesign,GodsonisataleadingpositionintheareaofprocessorresearchanddevelopmentinChina,andisst
6、eppingintoadvancedlevelallovertheworld.Atpresent,Godsonuseopen-sourceGCCasitscompiler.GCCsupportsmultiplelanguagesandtargetplatforms,whichmakeGCChavegoodportability.SinceGCCprovidesextensivecodeoptimizationmechanisms,wecanoptimizeitbasedonthesytstemarchitectureofthetargetplatform.Thisthe
7、sisaccomplishthetransplantationandoptimizationworkofGCCbasedonLoongson2FandGodson3Brespectively.GCCcanberunonLoongson2Fdirectly,however,thereisstillmuchspacetoimproveitsperformance.ThispaperimplementsthesupportofextendedinstructionsofLoongson2FinGCC,andalsoimplementsthepe
此文档下载收益归作者所有