main| new issue| archive| editorial board| for the authors| publishing house|
Ðóññêèé
Main page
New issue
Archive of articles
Editorial board
For the authors
Publishing house

 

 


ABSTRACTS OF ARTICLES OF THE JOURNAL "INFORMATION TECHNOLOGIES".
No. 3. Vol. 25. 2019

DOI: 10.17587/it.25.157-164

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.
Keywords: Wind River Simics, virtualization, software simulation, x86, Intel VT-x, hypervisor, lzcnt, virtual machine monitor, virtual platform, Simics, live migration

P. 157–164

To the contents