A Virtual Instruction Set Interface for Operating System Kernels
In this paper, the authors propose and evaluate a virtual instruction set interface between an Operating System (OS) kernel and a general purpose processor architecture. This interface is a set of operations added to a previously proposed virtual instruction set architecture called LLVA (Low Level Virtual Architecture) and can be implemented on existing processor hardware. The long-term benefits of such an interface include richer OS-information for hardware, greater flexibility in evolving hardware, and sophisticated analysis and optimization capabilities for kernel code, including across the application-kernel boundary transformations. The interface design (LLVA-OS) contains several novel features for machine-independence and performance, including efficient saving and restoring of (hidden) native state, mechanisms for error recovery, and several primitive abstractions that expose semantic information to the underlying translator and hardware.