TY - GEN
T1 - LLVA
T2 - 36th International Symposium on Microarchitecture, MICRO 2003
AU - Adve, V.
AU - Lattner, C.
AU - Brukman, M.
AU - Shukla, A.
AU - Gaeke, B.
N1 - Publisher Copyright:
© 2003 IEEE.
PY - 2003
Y1 - 2003
N2 - A virtual instruction set architecture (V-ISA) implemented via a processor-specific software translation layer can provide great flexibility to processor designers. Recent examples such as Crusoe and DAISY, however, have used existing hardware instruction sets as virtual ISAs, which complicates translation and optimization. In fact, there has been little research on specific designs for a virtual ISA for processors. This paper proposes a novel virtual ISA (LLVA) and a translation strategy for implementing it on arbitrary hardware. The instruction set is typed, uses an infinite virtual register set in static single assignment form, and provides explicit control-flow and dataflow information, and yet uses low-level operations closely matched to traditional hardware. It includes novel mechanisms to allow more flexible optimization of native code, including a flexible exception model and minor constraints on self-modifying code. We propose a translation strategy that enables offline translation and transparent offline caching of native code and profile information, while remaining completely OS-independent. It also supports optimizations directly on the representation at install-time, runtime, and offline between executions. We show experimentally that despite its rich information content, virtual object code is comparable in size to native machine code, virtual instructions expand to only 2-4 ordinary hardware instructions on average, and simple translation costs under 1% of total execution time except for very short runs.
AB - A virtual instruction set architecture (V-ISA) implemented via a processor-specific software translation layer can provide great flexibility to processor designers. Recent examples such as Crusoe and DAISY, however, have used existing hardware instruction sets as virtual ISAs, which complicates translation and optimization. In fact, there has been little research on specific designs for a virtual ISA for processors. This paper proposes a novel virtual ISA (LLVA) and a translation strategy for implementing it on arbitrary hardware. The instruction set is typed, uses an infinite virtual register set in static single assignment form, and provides explicit control-flow and dataflow information, and yet uses low-level operations closely matched to traditional hardware. It includes novel mechanisms to allow more flexible optimization of native code, including a flexible exception model and minor constraints on self-modifying code. We propose a translation strategy that enables offline translation and transparent offline caching of native code and profile information, while remaining completely OS-independent. It also supports optimizations directly on the representation at install-time, runtime, and offline between executions. We show experimentally that despite its rich information content, virtual object code is comparable in size to native machine code, virtual instructions expand to only 2-4 ordinary hardware instructions on average, and simple translation costs under 1% of total execution time except for very short runs.
KW - Application software
KW - Computer aided instruction
KW - Computer architecture
KW - Computer science
KW - Hardware
KW - Instruction sets
KW - Microarchitecture
KW - Operating systems
KW - Process design
KW - Registers
UR - http://www.scopus.com/inward/record.url?scp=84944413215&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84944413215&partnerID=8YFLogxK
U2 - 10.1109/MICRO.2003.1253196
DO - 10.1109/MICRO.2003.1253196
M3 - Conference contribution
AN - SCOPUS:84944413215
T3 - Proceedings of the Annual International Symposium on Microarchitecture, MICRO
SP - 205
EP - 216
BT - Proceedings - 36th International Symposium on Microarchitecture, MICRO 2003
PB - IEEE Computer Society
Y2 - 3 December 2003 through 5 December 2003
ER -