Оптимизация передачи управления в полносистемных эмуляторах
https://doi.org/10.15514/ISPRAS-2026-38(2)-9
Аннотация
Полносистемные эмуляторы позволяют имитировать работу всей машины, включая процессор и периферию. Данная технология значительно упрощает разработку и отладку программ под различные платформы, так как она избавляет от необходимости иметь в распоряжении соответствующую аппаратуру. Полносистемные эмуляторы в основном используют динамическую двоичную трансляцию для приемлемой производительности. Целью данной работы является повышение производительности динамической двоичной трансляции путём применения оптимизаций передачи управления. В статье проводится обзор различных оптимизаций с учётом ограничений полносистемных эмуляторов, в том числе рассматривается проблема межстраничных переходов. Для реализации были выбраны межстраничное связывание и программное предсказание. При анализе существующих решений доказывается, что один из методов проверки межстраничных переходов неверен, а для корректного метода предлагается улучшенный алгоритм, составленный с учётом особенностей гостевой архитектуры. Помимо этого, в статье приводится новый подход к реализации программного предсказания в полносистемных эмуляторах, который упрощает проверочный код и увеличивает точность предсказания. Данные оптимизации были реализованы в полносистемном эмуляторе QEMU. Тесты на двух разных машинах показали, что производительность QEMU была улучшена на 23,5% и 21,1% в среднем, а максимум улучшения составил 89,9% и 76,9% соответственно.
Ключевые слова
Об авторах
Максим Алексеевич КОСТИНРоссия
Инженер отдела компиляторных технологий ИСП РАН. Сфера научных интересов: эмуляторы, динамическая двоичная трансляция, оптимизации.
Павел Михайлович ДОВГАЛЮК
Россия
Инженер, кандидат технических наук. Сфера научных интересов: интроспекция и инструментирование виртуальных машин, динамический анализ кода, отладчики, эмуляторы.
Дмитрий Николаевич ПОЛЕТАЕВ
Россия
Разработчик ПО, сотрудник Института системного программирования РАН. Сфера научных интересов: обратная разработка, анализ бинарного кода, виртуальные машины.
Георгий Николаевич ТЕЙС
Россия
Инженер по тестированию Института системного программирования РАН с 2022 года. Сфера научных интересов: автоматизация процессов в среде системного программирования.
Наталья Игоревна ФУРСОВА
Россия
Кандидат технических наук, старший научный сотрудник, старший преподаватель. Сфера научных интересов: интроспекция и инструментирование виртуальных машин, динамический анализ кода, эмуляторы.
Список литературы
1. Bellard F. QEMU, a fast and portable dynamic translator. In Proceedings of the USENIX Annual Technical Conference, 2005, pp. 41-46.
2. Witchel E., Rosenblum M. Embra: fast and flexible machine simulation. In Proceedings of the 1996 ACM SIGMETRICS international conference on Measurement and modeling of computer systems (SIGMETRICS '96), 1996, vol. 24, no. 1, pp. 68-79. DOI: 10.1145/233013.233025.
3. Hong D.-Y., Hsu C.-C., Chou C.-Y., Hsu W.-C., Liu P., Wu J.-J. Optimizing Control Transfer and Memory Virtualization in Full System Emulators. ACM Transactions on Architecture and Code Optimization, 2015, vol. 12, no. 4, Article 47, pp. 1-24. DOI: 10.1145/2837027.
4. D'Antras A., Gorgovan C., Garside J.D., Luján M. Optimizing Indirect Branches in Dynamic Binary Translators. ACM Transactions on Architecture and Code Optimization, 2016, vol. 13, no. 1, Article 7, pp. 1-25. DOI: 10.1145/2866573.
5. Memory Layout on AArch64 Linux – The Linux Kernel documentation. Available at: https://www.kernel.org/doc/html/v5.3/arm64/memory.html, accessed 31.10.2025.
6. ARM Ltd. ARM Architecture Reference Manual (ARMv8, for ARMv8-A architecture profile). 2013. 5158 p.
7. CoreMark. Available at: https://github.com/eembc/coremark, accessed 31.10.2025.
8. Jia N., Yang C., He Y., Cheng X. SPTU: Improving Dynamic Binary Translation through Software Prediction with Target Updating. In Proceedings of International Conference on Systems and Storage (SYSTOR 2014), 2014, pp. 1-12. DOI: 10.1145/2611354.2611368.
9. Linux/Unix NBench. Available at: https://github.com/toshsan/nbench, accessed 31.10.2025.
Рецензия
Для цитирования:
КОСТИН М.А., ДОВГАЛЮК П.М., ПОЛЕТАЕВ Д.Н., ТЕЙС Г.Н., ФУРСОВА Н.И. Оптимизация передачи управления в полносистемных эмуляторах. Труды Института системного программирования РАН. 2026;38(2):129-148. https://doi.org/10.15514/ISPRAS-2026-38(2)-9
For citation:
KOSTIN M.A., DOVGALYUK P.D., POLETAEV D.N., TEYS G.N., FURSOVA N.I. Optimizing Control Transfer in Full-system Emulators. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2026;38(2):129-148. (In Russ.) https://doi.org/10.15514/ISPRAS-2026-38(2)-9






