论文部分内容阅读
现代计算机的性能主要由每周期所执行的指令数(IPC)来衡量,而现代计算机的体系结构依靠指令级并行来改善性能。为了获得更高的IPC,需要尽可能多的以潜在的顺序而不是程序序列定义的顺序来并行执行不相关的指令。增加同时发射的指令数量通常使用的是静态的超长指令字技术或者动态的超标量技术。为了将指令尽可能早的插入到执行流水线中来减少流水线的停顿,从而引入了前瞻技术。近年来前瞻技术引起了人们广泛的研究兴趣,其中包括分支预测技术、值预测技术和地址预测技术等。但是,应该注意到这些前瞻技术潜在的目的是体系结构在前瞻模式下执行指令的能力和当前瞻失败时取消结果的能力。在前瞻技术增加IPC数量的同时,指令的有效执行时间没有被减少,即在一定情况下有效执行时间被增加用来计算恢复错误的前瞻。虽然前瞻技术能增加IPC,但不能必要的增加有效指令执行的数量。为进一步提高处理器性能,研究者们探索了重用技术,并成为近年来体系结构设计者关注的热点。重用技术是非前瞻的技术,它通过调用缓存的先前执行结果来跳过有效指令的执行。重用技术按照粒度划分为指令级重用、基本块级重用和踪迹级重用。本文沿着重用技术由细粒度向粗粒度的这一发展趋势,探索了更粗粒度的函数级重用技术。函数级动态重用技术的基本思想是,在处理器运行的过程中,对函数特征进行动态抓取,并缓存函数特征信息至函数重用表中,当此函数被再次调用时,遍历函数重用表,如果与先前执行的函数信息相匹配,就直接调用先前函数的执行结果来跳过函数体的重复执行,更新处理器的状态,继续此函数后续指令的执行;如果重用表中没有相匹配的函数信息,则继续此函数体的执行,并在执行结束返回结果的同时,将函数的输入输出信息缓存至函数重用表,以备下次重用。函数级动态重用技术是以函数为单位,通过减少单位时间内执行的指令数,甚至不执行冗余函数而直接重用来实现。函数级动态重用技术是一种粗粒度级的重用技术,把函数重用技术应用到处理器体系结构的设计中,可以提高处理器的资源利用率,提高处理器性能、降低功耗。