HDOS: An Infrastructure for Dynamic Optimization

Recently, CPUs with an identical ISA tend to have different architectures, different computation resources, and special instructions. To achieve efficient program execution on such hardware, compilers have machine-dependent code optimization. However, software vendors cannot adopt this optimization for software production, since the software would be widely distributed and therefore it must be executable on any machine with the same ISA. To solve this problem, several dynamic optimization techniques such as JAVA JIT compiler and Microsoft .NET platform are effective. The techniques can perform the machine-dependent code optimization without source code. However, the techniques have to exploit special environment (VM) for program execution or special executable code (e.g. code augmentation). In this paper, we propose an infrastructure for dynamic optimization, HDOS. The HDOS is organized with dedicated hardware inside a CPU and operating system support. The HDOS provides more lightweight dynamic optimization than VM-based or interpreter-based dynamic optimization. Furthermore, the HDOS can reuse optimized binary codes at the next execution time since it translates native binary codes into native binary ones.

[1]  Derek Bruening,et al.  An infrastructure for adaptive dynamic optimization , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[2]  Weng-Fai Wong,et al.  General-purpose operating systems, such as Linux, , 2007, International Symposium on Code Generation and Optimization (CGO'07).

[3]  Qin Zhao,et al.  Ubiquitous Memory Introspection (Preliminary Manuscript) , 2006 .

[4]  Doug Burger,et al.  Evaluating Future Microprocessors: the SimpleScalar Tool Set , 1996 .

[5]  Philippe Clauss,et al.  Performance driven data cache prefetching in a dynamic software optimization system , 2007, ICS '07.