|
||||||||||
|
E. A. Yulyugin, Software Engineer, e-mail: evgeny.yulyugin@intel.com, Intel Corporation Fast and Accurate Direct Execution of Particular Intel® 64 Instructions in Virtual Environment Intel® 64 architecture processors are constantly evolving, with new generations regularly introduced on the market. A new processor is usually backwards compatible and includes all the software-visible functionality of previous generations. This allows existing software to run on the new hardware without changes or recompilation. However, the guarantee of backwards compatibility can break in certain scenarios when software is running in a virtual machine. We discovered that certain machine instructions behave differently on past and present generations of AMD Intel processors. The identified instructions extend traditional understanding of hardware-assisted virtualization developed by Popek and Goldberg in 1974. To solve this problem new methods and tools have been developed to establish correct and fast hardware-assisted virtual platform solution. The key to solving this problem is to make sure that no such instruction is allowed to be directly executed in a virtualized environment — they all have to be emulated using software techniques. Detection of the instructions has to be done in advance since the problem cannot be corrected after the execution. The detection is achieved by a pattern matching decoder that looks through the guest code in prior to its execution in hardware-assisted virtual environment. The developed solution for the problem has been implemented, tested and proven to work using Wind River Simics® virtual platform framework. |