期刊文献+

Dynamically Translating Binary Code for Multi-Threaded Programs Using Shared Code Cache

Dynamically Translating Binary Code for Multi-Threaded Programs Using Shared Code Cache
下载PDF
导出
摘要 mc211vm is a process-level ARM-to-x86 binary translator developed in our lab in the past several years. Currently, it is able to emulate singlethreaded programs. We extend mc211vm to emulate multi-threaded programs. Our main task is to reconstruct its architecture for multi-threaded programs. Register mapping, code cache management, and address mapping in mc2llvm have all been modified. In addition, to further speed up the emulation, we collect hot paths, aggressively optimize and generate code for them at run time. Additional threads are used to alleviate the overhead. Thus, when the same hot path is walked through again, the corresponding optimized native code will be executed instead. In our experiments, our system is 8.8X faster than QEMU (quick emulator) on average when emulating the specified benchmarks with 8 guest threads. mc211vm is a process-level ARM-to-x86 binary translator developed in our lab in the past several years. Currently, it is able to emulate singlethreaded programs. We extend mc211vm to emulate multi-threaded programs. Our main task is to reconstruct its architecture for multi-threaded programs. Register mapping, code cache management, and address mapping in mc2llvm have all been modified. In addition, to further speed up the emulation, we collect hot paths, aggressively optimize and generate code for them at run time. Additional threads are used to alleviate the overhead. Thus, when the same hot path is walked through again, the corresponding optimized native code will be executed instead. In our experiments, our system is 8.8X faster than QEMU (quick emulator) on average when emulating the specified benchmarks with 8 guest threads.
出处 《Journal of Electronic Science and Technology》 CAS 2014年第4期434-438,共5页 电子科技学刊(英文版)
基金 supported by NSC under Grant No.NSC 100-2218-E-009-009MY3 and NSC 100-2218-E-009-010-MY3
关键词 ARM binary translation hot path mc211vm multi-threaded program QEMU (quickemulator). ARM, binary translation, hot path,mc211vm, multi-threaded program, QEMU (quickemulator).
  • 相关文献

参考文献8

  • 1N. Nethercote and J. Seward, "Valgrind: A framework for heavyweight dynamic binary instrumentation," in Proc. of 2007 ACM SlGPLAN PLDl, 2007, pp. 89-100.
  • 2E. Witchel and M. Rosenblum, "Embra: Fast and flexible machine simulation," in Proc. of 1996 ACM SlGMETRfCS Int. Coni on Measurement and Modeling of Computer Systems, 1996, pp. 68-79.
  • 3M. Payer and T. R. Gross, "Fine-grained user-space security through virtualization," in Proc. of the 7th ACM SlGPLANISIGOPS Int. Coni on Virtual Execution Environments, 2011, pp. 157-168.
  • 4B.-y' Shen, r.v You, W. Yang, and w.c. Hsu, "An LLVM-based hybrid binary translation system," presented at the 7th IEEE lnt. Symposium on Industrial Embedded Systems (SIES'12), Karlsruhe, Germany, 2012.
  • 5V. Adve and C. Lattner. (March 2013). The LLYM Compiler Lnfrastructure.[Online]. Available: http://IIvm.org/.
  • 6M. M. Michael, "High performance dynamic lock-free hash tables and list-based sets," in Proc. of the 14th Annual ACM Symposium on Parallel Algorithms and Architectures, 2002, pp.73-82.
  • 7M. M. Michael and M. L. Scott, "Simple, fast, and practical nonblocking and blocking concurrent queue algorithms," in Proc. of the 15th Annual ACM Symposium on Principles of Distributed Computing, 1996, pp. 267-275.
  • 8Origen - an arm board. (March 2013).[Online]. Available: http://www.origenboard.org.

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部