paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Enhancing Cross-ISA DBT Through Automatically Learned Translation Rules

通过自动学习的翻译规则增强跨 ISA 动态二进制翻译
ASPLOS Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems2018匹配度 2/10 · 论文研究跨 ISA 动态二进制翻译与基于二进制符号执行的翻译规则验证,属于编译/程序验证方向,但未涉及用户核心关注的 LLM/Agent 与静态分析结合、ML 系统静态分析、浮点程序分析或贝叶斯程序分析。引用 18 inbox
Wenwen Wang, Stephen McCamant, Antonia Zhai, Pen-Chung Yew
crossref: 2026-09-12

AI 速览

一句话:提出从同源客机与宿主机二进制中自动学习翻译规则,经二进制符号执行验证后用于 QEMU,平均加速 1.25 倍。

跨 ISA 动态二进制翻译(DBT)需要将客机指令高效映射到宿主机,但手工或通用翻译规则往往生成低效代码。本文提出自动学习翻译规则的方法:对同一源代码编译得到的客机与宿主机二进制进行对比分析,自动抽取跨 ISA 翻译规则,并通过二进制符号执行验证其正确性;这些规则被集成到现有 DBT 系统 QEMU 中,以生成更高效的宿主机代码。在 SPEC CINT2006 上,学习一条规则平均耗时少于 2 秒;使用从基准程序集合(排除目标程序自身)学到的规则,可获得平均 1.25 倍于 QEMU 的性能加速,且即使对短时工作负载,规则方法引入的翻译开销也很小。

问题
跨 ISA 动态二进制翻译中,通用翻译规则难以充分利用宿主机特性,导致生成的宿主机代码效率较低。
方法
从同一源代码编译得到的客机与宿主机二进制中自动学习翻译规则,使用二进制符号执行验证规则,并将规则集成到 QEMU 中生成更高效的宿主机代码。
评估
在 SPEC CINT2006 上评估规则学习时间、相对 QEMU 的性能加速以及短时工作负载下的翻译开销。
原文摘要(Abstract)

This paper presents a novel approach for dynamic binary translation (DBT) to automatically learn translation rules from guest and host binaries compiled from the same source code. The learned translation rules are then verified via binary symbolic execution and used in an existing DBT system, QEMU, to generate more efficient host binary code. Experimental results on SPEC CINT2006 show that the average time of learning a translation rule is less than two seconds. With the rules learned from a collection of benchmark programs excluding the targeted program itself, an average 1.25X performance speedup over QEMU can be achieved for SPEC CINT2006. Moreover, the translation overhead introduced by this rule-based approach is very small even for short-running workloads.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot4295,
  title = {Enhancing Cross-ISA DBT Through Automatically Learned Translation Rules},
  author = {Wenwen Wang and Stephen McCamant and Antonia Zhai and Pen-Chung Yew},
  booktitle = {ASPLOS},
  year = {2018},
  doi = {10.1145/3173162.3177160}
}