基于龙芯处理器的GCC移植与优化

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:missiyoumiss
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
处理器的设计研发过程需要编译器作为实现系统级测试的辅助工具。同样,如果要充分发挥处理器的性能,除了要有性能优越的硬件设备外,也需要性能优越的操作系统和编译器的支持。龙芯系列处理器作为国产的高性能通用处理器,由于采用了先进的结构设计技术,在国内的处理器设计研发领域已经处于领先地位,在世界范围内也即将步入先进行列。   目前为止,龙芯上采用的是开源编译器GCC(GNU Compiler Collection)。GCC支持多语言和多目标平台的特性,使得GCC 编译器具有良好的可移植性。而其丰富的代码优化机制,也使得我们可以针对目标平台的体系结构特点,来对GCC编译器进行优化,从而提高GCC编译器在目标平台上的性能。本文就分别针对龙芯系列处理器中的两款——龙芯2F和龙芯3B 处理器的体系结构的不同特点,对GCC编译器进行了移植与优化,从而达到提高系统性能的目的。   GCC 编译器可以直接运行在龙芯2F上,但是性能还有很大的提升空间。本文实现了GCC 对龙芯2F 扩展指令的支持,并针对这这些扩展指令实现了相应的窥孔优化。然后对GCC 实现的循环展开与手工循环展开做了性能比较,并对循环因子对性能的影响进行了分析。实验结果表明:窥孔优化能够使编译器更多的生成龙芯2F的扩展指令,而使用移植后的GCC 编译FFTW 库,平均性能也有6%~8%的提升。而GCC的循环展开在龙芯2F上可获得约13%的性能提升,但相比于手工循环展开获得的性能收益,仍然有很大差距。   龙芯3B 实现了对多媒体指令的扩展,因而针对龙芯3B 完成的主要工作是实现GCC 对龙芯3B 扩展指令的支持。龙芯3B 提供了256 位的向量寄存器,但是提供的访存宽度却是128 位,因而本文首先实现了GCC 对龙芯3B的128 位访存以及327条多媒体的支持。不过,由于GCC编译器前端自动向量化的限制,使得移植后的编译器在生成汇编代码时,使用到的向量指令非常的少,这大大限制了系统性能。为了解决这个问题,本文同时实现了GCC对与向量指令相对应的内建函数的支持。测试结果表明:向量化移植后的GCC 编译器能够正确的编译生成龙芯3B 支持的多媒体扩展指令,而且部分基准测试程序的性能提升可以达到4 倍左右。而使用内建函数修改后的代码的指令数目也会大大的减少,达到了提高系统性能的目的。
其他文献
随着Web技术的发展,网络上现存的主观意见表述文本陡增。主观WEB文本不仅能给其他用户提供客观的参考价值,并且产品生产方也可以及时根据用户的意见言论来调正自己的产品设计
硬盘是迄今为止应用最为广泛的数据存储设备,其具有高速读写、大容量数据存储等特点,能够满足各种数据存储需求。但是,由于近年来电子技术的快速发展,硬盘逐渐不能适应一些新
图像融合是按照一定的规则,将两个或两个以上的传感器在相同或不同时间内获得的同一场景或同一目标的成像进行处理,最终获得更适合进一步图像处理的要求。多聚焦图像融合就是
数字图像处理和计算机视觉是近年来发展十分迅速的研究方向,目前正广泛地应用于军用和民用等各个领域,是智能机器获取外部信息和理解世界的重要途径。运动检测与目标跟踪是计
云计算是当前信息领域的热点,它的出现宣告了低成本提供超级计算时代的到来。在云计算时代,用户可在全球范围内动态租用计算资源。云计算整合了互联网“云海”中的“云岛”资
随着大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发急剧增长,软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、
支持向量数据描述作为一种基于统计学习理论的单分类方法,在解决有限样本、非线性以及高维数据的模式识别问题中表现出许多特有的优势,已成为机器学习领域的又一研究热点。在
为了促进经济快速发展和社会不断的进步,在现有的统计数据资料基础上为各种商业和科研等活动做出决策分析,研究并认识事物内在的变化规律,对事物的未来发展进行预测已经成为机器
随着互联网上的信息量越来越大,传统搜索引擎的局限性如覆盖率低、时效性差、结果不准确等已日趋明显。针对以上情况,另一种搜索引擎悄然出现,它可以在一定范围内取得比传统
学位
当前,由于网络速度高、流量大,入侵检测规则库越来越趋向庞大,单个CPU的主频提升遭遇瓶颈,处理能力提高缓慢,传统的网络入侵检测系统正遭到空前的挑战。针对以上问题,本文提