当前位置:主页 > 科技论文 > 计算机论文 >

龙芯2号链接后优化器的实现与分析

发布时间:2021-11-07 00:03
  链接后优化技术是在编译链接后对整个可执行程序再进行优化的一种技术。一方面,它克服了传统编译器的优化局限于一个函数、一个模块的缺点,将优化范围扩展到整个程序。另一方面,它充分利用了链接后确定的信息,发掘出更多的优化机会。我们参照Arizona大学为Alpha处理器设计的链接后优化器ALTO,针对龙芯2号处理器的微体系结构和指令集的特征,实现了龙芯上的链接后优化器GLTO(Godson Link TimeOptimizer)。GLTO使得龙芯处理器SPEC2000定点程序reference分值在龙芯2C平台上提高了9.4%,在龙芯2E平台上提高了9.2%,具有显著的优化效果。本文分析了主要优化策略的效果和产生的原因,提出了处理器的结构设计中的改进设想,结合龙芯处理器的指令集和结构特征提出了相关的优化,针对2E平台的特性提出了优化策略,并分析了优化选项的组合,最后将GLTO与ALTO做了对比分析。 

【文章来源】:中国科学院大学(中国科学院计算技术研究所)北京市

【文章页数】:64 页

【学位级别】:硕士

【部分图文】:

龙芯2号链接后优化器的实现与分析


ELF文件格式

加速比


我们在 GLTO 中依据[PeH90]中的 PH 算法实现了代码重排。代码重排后基本块的次序被打乱,前驱后继关系已被破坏,需要修复这些关系以维持程序本身的正确性。如基本块 A 的跳转目标是不经常被执行的,就可能被排到了离基本块 A 较远的地方,这时两块之间的距离很可能超过了分支指令的跳转范围,为了解决这个问题,必须引入新的跳转指令,于是代码重排的开销增加。这个问题在龙芯的 MIPS-like 指令集中比较突出,跳转指令的偏移位只有 16 位,而在 Alpha 的指令集中偏移位有 21 位。处理该问题的方法将会在第四章中给出。3.8 优化分析小结如果独立的看各项优化策略,然后将它们的优化效果累加,那么累加和会大于实际最后的加速比,这是因为各种优化策略之间是互相依赖的,效果互有重叠。所以,我们将各项优化策略的加速比乘以实际加速比和累计加速比的比值,使得各加速比之和等于实际加速比,由此得到图 3.8。另外,我们还将全局常数传播优化效果分为由间接调用转换为直接调用带来的和其他策略引起的。这样,在图中可以清晰的看出各种优化策略对单个 SPEC 程序的作用在所有优化中的比重,以及最后的加速比。

代码,超链


出排序中的下一条超链 X,有两种情况:(1) 超链 X 和已经排布的超链都没有关联,那么就比较 N_CUR_PVUR_PVALUE,然后将超链 X 放在小的一端。(2) 超链 X 有 n (n>0)个关联的超链,即 X1, X2, X3….Xn-1and Xn. 计算以N_DISTANCEi= (N_CUR_PVALUE – P_VALUE of Xi), (i = 1, 2 ….n) S_DISTANCEi= (P_VALUE of Xi– S_CUR_PVALUE), (i = 1, 2 ….n) N_DISTANCE = sum of N_DISTANCEi, (i = 1, 2 ….n) S_DISTANCE = sum of S_DISTANCEi, (i = 1, 2 ….n) 这些数值表明了超链 X 和它关联的超链之间的距离。(3) 如果超链 X 和它关联的超链 Xi的执行频度均大于 0,并且两个超链于直接相联的 cache 的大小,我们将判定它是否会与其相关的超链发生 ca判定步骤如下:a. 计算超链的内存位置假设超链 X 和 X的 P_VALUE 分别是 P和 P. 这两个数值分别是


本文编号:3480770

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3480770.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户75f2d***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com