摘要

为了扩展动态二进制翻译产生的本地翻译块,消除因分支目标重复产生的冗余本地代码和返回代码,降低代码缓存的内存占用,提出一种基于控制流识别的代码缓存压缩策略.通过分析投机与非投机2种扩展方式的利弊,结合嵌入式程序分支指令的特征,通过分支方向和偏移量识别对应的控制流;根据控制流选择适合本地翻译块的扩展方式,压缩动态二进制翻译的代码缓存.运行嵌入式基准测试程序时的实验数据表明,在实现该策略后,QEMU二进制模拟器代码缓存的内存占用降低了10%~40%.