Новости
Оптимизация передачи управления в полносистемных эмуляторах
Аннотация
Полносистемные эмуляторы позволяют имитировать работу всей машины, включая процессор и периферию. Данная технология значительно упрощает разработку и отладку программ под различные платформы, так как она избавляет от необходимости иметь в распоряжении соответствующую аппаратуру. Полносистемные эмуляторы в основном используют динамическую двоичную трансляцию для приемлемой производительности. Целью данной работы является повышение производительности динамической двоичной трансляции путём применения оптимизаций передачи управления. В статье проводится обзор различных оптимизаций с учётом ограничений полносистемных эмуляторов, в том числе рассматривается проблема межстраничных переходов. Для реализации были выбраны межстраничное связывание и программное предсказание. При анализе существующих решений доказывается, что один из методов проверки межстраничных переходов неверен, а для корректного метода предлагается улучшенный алгоритм, составленный с учётом особенностей гостевой архитектуры. Помимо этого, в статье приводится новый подход к реализации программного предсказания в полносистемных эмуляторах, который упрощает проверочный код и увеличивает точность предсказания. Данные оптимизации были реализованы в полносистемном эмуляторе QEMU. Тесты на двух разных машинах показали, что производительность QEMU была улучшена на 23,5% и 21,1% в среднем, а максимум улучшения составил 89,9% и 76,9% соответственно.
Ключевые слова
Издание
Труды Института системного программирования РАН, том 38, вып. 2, 2026, стр. 129-148.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2026-38(2)-9
Для цитирования
Полный текст статьи в формате pdf
Вернуться к содержанию тома