paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Risotto: A Dynamic Binary Translator for Weak Memory Model Architectures

Risotto:面向弱内存模型架构的动态二进制翻译器
ASPLOS Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 12022匹配度 2/10 · 该论文研究动态二进制翻译与弱内存模型的形式化映射,属于程序语言/系统与形式化验证方向,但未涉及静态分析、ML/Agentic 程序、浮点程序分析或贝叶斯程序分析等用户核心方向。其形式化与工程实现风格虽与用户部分偏好一致,但主题距离较远。引用 13 inbox
Redha Gouicem, Dennis Sprokholt, Jasper Ruehl, Rodrigo C. O. Rocha, Tom Spink, Soham Chakraborty, Pramod Bhatotia
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:形式化 QEMU 中间表示的内存模型,提出经形式验证的强到弱内存映射,并在 Risotto 中高效实现。

动态二进制翻译(DBT)可用于跨架构仿真未修改的二进制程序,但在从强内存一致性架构向弱内存一致性架构仿真并发程序时,会同时面临正确性与性能挑战。作者报告了 QEMU 在 Arm 宿主上仿真 x86 二进制时出现的多个翻译错误。为此,论文提出端到端方案:首先形式化 QEMU 中间表示的内存模型,并据此给出经形式验证的映射方案,以弥合强到弱内存一致性的语义鸿沟;随后在基于 QEMU 的 DBT 系统 Risotto 中实现这些映射,在保证正确性的前提下优化内存栅栏放置,并通过跨架构动态链接原生共享库以及快速且正确的比较并交换(CAS)翻译进一步提升仿真性能。使用多线程基准套件与真实应用评估表明,Risotto 相比存在错误翻译的 QEMU 平均提升 6.7% 的仿真性能,同时保证正确性。

问题
在弱内存模型架构上仿真强内存模型并发二进制时,DBT 系统容易出现翻译错误并伴随较高性能开销(如 QEMU 在 Arm 上仿真 x86 二进制)。
方法
形式化 QEMU 中间表示的内存模型,提出经形式验证的强到弱内存一致性映射方案,并在 Risotto 中实现内存栅栏放置优化、跨架构原生共享库动态链接与正确的 CAS 翻译。
评估
使用多线程基准套件和真实应用进行评测,显示 Risotto 在保证正确性的同时比“错误”的 QEMU 平均提升 6.7% 的仿真性能。
原文摘要(Abstract)

Dynamic Binary Translation (DBT) is a powerful approach to support cross-architecture emulation of unmodified binaries. However, DBT systems face correctness and performance challenges, when emulating concurrent binaries from strong to weak memory consistency architectures. As a matter of fact, we report several translation errors in QEMU, when emulating x86 binaries on Arm hosts. To address these challenges, we propose an end-to-end approach that provides correct and efficient emulation for weak memory model architectures. Our contributions are twofold: we formalize QEMU’s intermediate representation’s memory model, and use it to propose formally verified mapping schemes to bridge the strong-on-weak memory consistency mismatch. Secondly, we implement these verified mappings in Risotto, a QEMU-based DBT system that optimizes memory fence placement while ensuring correctness. Risotto further enhances the emulation performance via cross-architecture dynamic linking of native shared libraries, and fast and correct translation of compare-and-swap operations. We evaluate Risotto using multi-threaded benchmark suites and real-world applications, and show that Risotto improves the emulation performance by 6.7% on average over ”erroneous” QEMU, while ensuring correctness.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{GouicemSRRS0B23,
  title = {Risotto: A Dynamic Binary Translator for Weak Memory Model Architectures},
  author = {Redha Gouicem and Dennis Sprokholt and Jasper Ruehl and Rodrigo C. O. Rocha and Tom Spink and Soham Chakraborty and Pramod Bhatotia},
  booktitle = {ASPLOS},
  year = {2022},
  doi = {10.1145/3567955.3567962}
}