国内刊号:11-1777/TP
国际刊号:1000-1239
发布日期:
作者:牛根,张福新,
关键词:软件代码缓存, 二进制翻译, 虚拟化, 代码块, 动态优化,
动态二进制翻译器中广泛使用软件代码缓存来管理翻译生成的代码块.代码块的翻译、刷新和内存占用是软件代码缓存的重要指标.目前仅有少量的针对系统级动态二进制翻译器中代码缓存的研究.已有的系统级动态二进制翻译器为实现正确且高效的指令语义模拟,均使用了状态标签方案,但该方案会对软件代码缓存管理带来额外的问题.通过深入分析状态标签方案,总结了其给代码缓存管理带来的2类问题:冲突和冗余.针对这2类问题,提出了基于细粒度状态标签的代码缓存优化方法,包括多状态代码缓存和弱状态标签.这2种方案在LATX-SYS中实现并在龙芯LoongArch平台上使用Ubuntu/x8616.04和WindowsXP/x86客户机操作系统进行了测试.结果表明,代码块刷新次数和翻译次数分别降低了43%和18%,代码块相似率从59.63%降至5.06%,翻译开销和内存占用均得到降低.总的来说,系统启动时间降低了20%.最后,针对弱状态标签方案进一步测试了SPECCPU2000,结果表明代码块数量平均减少了13%,且仅带来2%~3%的性能开销.
来源:2025年第8期
《计算机研究与发展》期刊编辑部