论文部分内容阅读
动态二进制翻译技术是用软件方法解决代码移植问题的重要手段。动态二进制翻译是一种即时编译技术,它将针对目标体系结构编译生成的二进制代码动态翻译为可以在宿主体系结构上运行的代码。动态优化是一种在运行时获取动态信息并进行代码优化的技术。动态二进制翻译及优化系统使得二进制的目标软件无需重编译就可以直接在宿主体系结构上高效地运行,在代码移植、性能优化、程序调试和剖视以及系统安全等方面均有广泛的应用。
UniCore-II是北京大学微处理器研究开发中心研制的一款32位RISC微处理器,它基于UniCore-32体系结构,拥有定长指令系统和32个通用寄存器。目前以UniCore系列处理器为核心的北大众志CPU系统芯片已经应用在北大众志网络计算机系统中,该系统可以运行完整的GNU/Linux操作系统、GNU/编译工具链、Xwindow以及桌面应用软件等软件环境。
QEMU是开源的动态二进制翻译器,其特点是支持多种体系结构,具有非常好的可移植性。
为了解决部分闭源软件在UniCore处理器上运行的问题,本文在QEMU的基础上实现了面向UniCore平台的动态二进制翻译系统,X86程序能够基于该系统在UniCore平台上直接运行。本文在对该系统进行了详细分析的基础上,实现了一些体系结构相关的优化。本文选用SPECINT95作为基准程序,对这些优化进行了评测。实验结果表明,优化后程序运行性能平均提高27.29%。