Preview

Труды Института системного программирования РАН

Расширенный поиск

Оптимизация динамической двоичной трансляции

Аннотация

Двоичная трансляция - это процесс получения по заданной программе P программы Q, удовлетворяющей заданным требованиям, если обе программы записаны в виде машинных кодов. Если двоичная трансляция производится во время выполнения программы, то она называется динамической двоичной трансляцией. В данной статье рассматриваются возможности применения различных оптимизаций во время динамической двоичной трансляции, а именно: мы улучшили алгоритм поиска блоков трансляции в кэше трансляций в QEMU, проанализировали влияние алгоритма распределения регистров на быстродействие кода в QEMU, реализовали простые машинно-независимые оптимизации в QEMU и планировщик инструкций в Valgrind. Изменения алгоритма поиска блоков трансляций в кэше дали наибольший эффект, планировщик инструкций также является многообещающей оптимизацией

Об авторах

Кирилл Батузов
ИСП РАН
Россия


Алексей Меркулов
ИСП РАН
Россия


Список литературы

1. Nicolas Nethercote, Julina Seward. Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation. Proceedings of ACM SIGPLAN 2007 Conference on Programming Languages Design and Implementation, 2007.

2. QEMU – Open Source Processor Emulator. http://wiki.qemu.org/Main_Page. Дата обращения: 09.12.2010.

3. Valgrind. http://www.valgrind.org/. Дата обращения: 09.12.2010.

4. Oprofile – A System Profiler For Linux. http://oprofile.sourceforge.net/. Дата обращения: 10.12.2010.

5. qemu.git – the QEMU master repository. http://git.qemu.org/qemu.git/commit/?id=2c90fe2b71df2534884bce96d90cbfcc93aeedb8. Дата обращения 16.12.2010.

6. qemu.git – the QEMU master repository. http://git.qemu.org/qemu.git/commit/?id=6648e29608ce17f6109d5696fb01f056238e2628. Дата обращения 16.12.2010.

7. SPEC CPU2000. http://www.spec.org/cpu2000. Дата обращения 21.12.2010.

8. Steven Muchnick. Advanced compiler design and implementation. Morgan Kaufmann Publishers Inc., 1997.

9. А.Белеванцев, Д.Журихин, Д.Мельник. Компиляция программ для современных архитектур. Труды института системного программирования РАН, том 16, 2009, стр. 31-50.

10. Andrey Belevantsev, Alexander Chernov, Maxim Kuvyrkov, Vladimir Makarov, Dmitry Melnik. Improving GCC instruction scheduling for Itanium. In Proceedings of GCC Developers' Summit 2005, Ottawa, Canada, June 2005, pp.1-13.

11. Andrey Belevantsev, Maxim Kuvyrkov, Vladimir Makarov, Dmitry Melnik, Dmitry Zhurikhin. An interblock VLIW-targeted instruction scheduler for GCC. In Proceedings of GCC Developers' Summit 2006, Ottawa, Canada, June 2006, pp.1-12.


Рецензия

Для цитирования:


Батузов К., Меркулов А. Оптимизация динамической двоичной трансляции. Труды Института системного программирования РАН. 2011;20.

For citation:


Batuzov K., Merkulov A. Optimizations in Dynamic Binary Translation. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2011;20. (In Russ.)



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)