Dynamically Translating Binary Code for Multi-Threaded Programs Using Shared Code Cache
Dynamically Translating Binary Code for Multi-Threaded Programs Using Shared Code Cache作者机构:the Department of Computer Science National Chiao-Tung University
出 版 物:《Journal of Electronic Science and Technology》 (电子科技学刊(英文版))
年 卷 期:2014年第12卷第4期
页 面:434-438页
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
基 金: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).
摘 要: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.