News
Optimizing control transfer in full-system emulators
Abstract
Full-system emulators replicate an entire machine’s operation, including its CPU and peripherals. This technology significantly simplifies software development and debugging for various platforms, as it eliminates the need for the corresponding physical hardware. Full-system emulators usually use dynamic binary translation for acceptable performance. The aim of this work is to improve the performance of dynamic binary translation by applying control transfer optimizations. The paper provides an overview of various optimizations, taking into account the constraints of full-system emulators, including cross-page problem. Cross-page block linking and software prediction were chosen for implementation. When analyzing existing solutions, it is proven that one of the methods for cross-page branch validation is incorrect. An improved algorithm, developed with consideration for the specifics of the guest architecture, is proposed for the correct one. Furthermore, the paper proposes a novel approach for software prediction implementation for full-system emulators that keeps the check code simple and increases prediction accuracy. These optimizations were implemented in QEMU full-system emulator. Benchmarks on two different machines showed that QEMU's performance improved by 23.5% and 21.1% on average, with peak improvements reaching 89.9% and 76.9%, respectively.
Keywords
Edition
Proceedings of the Institute for System Programming, vol. 38, issue 2, 2026, pp. 129-148
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2026-38(2)-9
For citation
Full text of the paper in pdf (in Russian)
Back to the contents of the volume