论文部分内容阅读
随着嵌入式处理器的蓬勃发展,代码的二进制兼容性已经成为新的处理器架构能否占据市场的主要阻碍。二进制翻译技术的发展不仅能够有效的解决二进制兼容性,还能够有效的降低处理器设计的复杂性。本文重点围绕动态二进制翻译中的关键技术进行了研究,主要研究内容和创新点为:1、针对程序中比例较高的“比较-条件转移”指令对提出了一种标志位快速映射方法。该方法通过动态识别与提取源程序翻译块内的“比较-条件转移”指令对,并利用目标架构的条件依赖关系特征实现“比较-条件转移”指令的高效映射,避免了对这类特殊的标志位定值与引用实施统一而复杂的处理,减少了翻译产生的指令数,从而提高动态翻译与执行的速度。2、针对间接跳转提出了一种基于间接跳转目标地址相关性的动态预测算法。此算法根据当前间接跳转目标地址在间接跳转链中的命中情况,动态预测下一次查询间接跳转链的首个比较跳转块,减少了在处理间接跳转时所执行的目标机指令数,降低了系统的切换开销,提高了二进制翻译系统的性能。同时还提出了种动态预测算法与软件预测算法结合的混合算法,充分利用了两种算法的优势。3、针对系统级二进制翻译器中的地址转换提出了一种基于访问区域特征的快速地址转换方法。对于堆栈区访问采取连续页面映射算法,该算法将源机器的堆栈区连续虚拟页面映射到目标机的连续虚拟页面中,使所有堆栈区的地址访问只需要加上一个特定的偏移即可访问目标机的内存空间,以此减少运行时复杂的地址转换操作。对于指令区和数据区访问采取编译时地址转换算法,该算法仅在翻译态时访问地址转换表实现地址转换,消除运行态时复杂地址转换操作。并根据不同指令集架构下数据区访问方式分别提出了指令区和数据区的内存地址在编译时获取并进行地址转换的方法。4、根据标志位定值规律提出了一种基于标志位指令定值共性的加速指令设计。通过使用这些指令,消除了传统标志位处理算法所需要的额外数据分析过程,减少了翻译开销和处理标志位定值与引用生成的冗余指令,提高了翻译器的执行效率。针对协处理器实现加速指令的方式,提出了一种主处理器与协处理器协同执行的高效方法。此方法通过将协处理器指令在主处理器重排序缓存中创建时标记为完成态,同时将协处理器指令发射到协处理器中执行,加快了主处理器重排序缓存中协处理器指令的退休速度和协处理器指令的执行速度,减少了主处理器流水线中的空洞,提高了处理器的整体性能。