发明名称 Mechanisms for eliminating a race condition between a hypervisor-performed emulation process requiring a translation operation and a concurrent translation table entry invalidation
摘要 Disclosed are computers and methods employing a mechanism for eliminating a race condition between a hypervisor-performed emulation process and a concurrent translation table entry invalidation. Specifically, on a host machine, a hypervisor controls any guest operating systems. In doing so, the hypervisor emulates an instruction by performing a translation operation to acquire a physical address from a virtual address and, if applicable, further from an effective address using translation table(s) (e.g., page tables and, if applicable, segment tables); accesses the physical address; and completes the instruction. During emulation, flagged address table(s) are used to eliminate the race condition. For example, upon receiving an invalidate translation instruction associated with a virtual address, a determination is made as to whether or not the virtual address appears in a flagged virtual address table and, if so, additional action is taken to prevent an error in the translation.
申请公布号 US9251088(B2) 申请公布日期 2016.02.02
申请号 US201314066717 申请日期 2013.10.30
申请人 GLOBALFOUNDRIES INC. 发明人 Frey Bradly G.;Gschwind Michael K.;Herrenschmidt Benjamin
分类号 G06F12/00;G06F12/10;G06F9/455;G06F9/52 主分类号 G06F12/00
代理机构 Gibb & Riley, LLC 代理人 Gibb & Riley, LLC ;LeStrange, Esq. Michael J.
主权项 1. A computer comprising: a processor concurrently executing multiple operating systems comprising at least one guest operating system and a hypervisor; at least one memory accessible by said processor; a flag management unit in communication with said processor; and a flagged virtual address table storing flagged virtual addresses, said flagged virtual address table being stored in any of said flag management unit and said at least one memory and said flag management unit being operably connected to said flagged virtual address table, said hypervisor performing the following during said concurrently executing: receiving, from a given guest operating system, a storage access instruction requiring translation of a first virtual address into a physical address in said at least one memory;transmitting, to said flag management unit, a set flag instruction causing said flag management unit to add said first virtual address to said flagged virtual address table; andafter said transmitting of said set flag instruction, emulating said storage access instruction, said flag management unit further performing the following during said emulating: receiving an invalidate translation instruction broadcast by one of said hypervisor and said given guest operating system, said invalidate translation instruction being associated with a second virtual address;comparing said second virtual address to said flagged virtual addresses stored in said flagged virtual address table; andwhen said second virtual address matches said first virtual address, taking additional action to prevent an error in said translation, and said hypervisor further transmitting, to said flag management unit after said emulating, a clear flag instruction causing said flag management unit to clear said first virtual address from said flagged virtual address table.
地址 Grand Cayman KY