论文部分内容阅读
应用程序二进制接口规范定义了一套用以编译程序并确保程序正确运行的系统级接口。目前在MIPS、ARM和PowerPC等体系结构上,均有针对不同处理器或不同应用场景的ABI规范。在这些已公布的ABI规范中,内容主要是对ABI规范各方面的说明,并未详细阐述ABI规范制定或修改过程中对各方面进行取舍的原因,也未公布ABI规范中各方面对程序造成的影响。由此对现有ABI规范进行分析,提取其关键组成因子并进行评估,分析单个因子对程序的影响,进而结合处理器平台和软件应用场景特征,针对UniCore体系结构提出新的ABI规范设计参考,探讨新ABI规范对程序的整体影响,具有理论意义和实践价值。
本文首先对比分析了不同体系结构上ABI规范内容的六个重要组成因子。这些因子是构成一套完整ABI规范所必须的内容。针对一些因子,根据体系结构的特点或处理器特性进行调整和优化,能够提升程序性能。为进一步探索各个ABI规范组成因子对程序性能的影响,本文采用了量化评估方法对这些因子进行分析,讨论了其对程序性能的影响力度。
其次,本文根据每个因子的影响力度,结合UniCore处理器平台和软件应用场景特征提出了对UniCore处理器平台现有ABI规范的调整意见;并针对UniCore平台上的应用场景,制定了两套新的ABI规范设计参考。
最后,本文将参与评估的测试程序进行了分类,进一步分析了不同类程序在不同的ABI规范约束下的性能表现。并以UniCore现有ABI规范为基准,对两套UniCore平台新ABI规范设计参考下的程序性能进行了对比评估。
实验结果表明,对于不同类型的程序,在不同ABI规范的约束下,性能表现会出现差异。适当地针对某一类程序修改ABI规范能够使其性能得到提升。
采用新的ABI规范参考设计,SPEC2000整点测试中程序性能最高可提升约1.4%,Mplayer程序性能最高可提升约0.4%。