ISSN 1000-1239 CN 11-1777/TP

Journal of Computer Research and Development ›› 2015, Vol. 52 ›› Issue (9): 2105-2113.doi: 10.7544/issn1000-1239.2015.20140220

Previous Articles     Next Articles

Cache Load Balancing Oriented Dynamic Binary Translation

Li Zhanhui1, Liu Chang1, Meng Jianyi2, Yan Xiaolang1,2   

  1. 1(Institute of Very Large Scale Integrated Circuits Design, Zhejiang University, Hangzhou 310027); 2(State Key Laboratory of Application Specific Integrated Circuit & System(Fudan University), Shanghai 201203)
  • Online:2015-09-01

Abstract: Based on the fact that the highly increasing load of instruction cache and data cache has led to great performance loss for DBT (dynamic binary translator), and the out-of-balance increasing rate between instruction cache and data cache makes the situation worse, this paper proposes a hardware-software-codesigned DBT acceleration mechanism that speeds up DBT performance by dynamically balancing load of instruction cache to data cache. The key idea of this mechanism is the design of the cache load balancing state for microprocessors. When microprocessor working in this state, the instruction cache stays the same as usual and the data cache is divided into two areas: normal-accessing-area and load-balancing-area. The normal-accessing-area caches regular program data just as the traditional data cache does. However, the load-balancing-area is quite different. It doesn’t cache regular program data, but supports load-transforming-channel, which is used to transform and assimilate most of the instruction cache load caused by scheduler of the DBT. Main work of the scheduler is converting jump target address from source machine code space to target machine code space. Experimental results based on EEMBC(embedded microprocessor benchmark consortium) benchmarks show that the access load of instruction cache is reduced by 35%, data cache is reduced by 58%, and overall performance of the QEMU(quick emulator) DBT is improved by 171%.

Key words: dynamic binary translation, indirect jump translation, cache load, load balancing area (LBA), load transforming channel (LTC)

CLC Number: