Guest-specific microcode

US9747118B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9747118-B2
Application numberUS-34930709-A
CountryUS
Kind codeB2
Filing dateJan 6, 2009
Priority dateJan 6, 2009
Publication dateAug 29, 2017
Grant dateAug 29, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments of apparatuses, methods, and systems for modifying the behavior of a guest installed to run within a VM are disclosed. In one embodiment, an apparatus includes virtualization logic, first storage, second storage, decode logic, and multiplexing logic. The virtualization logic is to provide a mode in which to operate a virtual machine. The first storage is to store a first plurality of micro-instructions to control the apparatus. The second storage is to store a second plurality of micro-instructions to control the apparatus. The decode logic is to decode a macro-instruction into one of a first plurality and a second plurality of micro-instructions. The multiplexing logic is to cause the macro-instruction to be decoded into the second plurality of micro-instructions instead of the first plurality of micro-instructions only when issued from the virtual machine.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: decoding, by decode circuitry of a processor, a first macro-instruction first issued by a guest of a virtual machine managed by a virtual machine monitor, -into a first group of micro-instructions, using a read-only micro-instruction storage, the read-only micro-instruction storage storing native microcode to support a native instruction set architecture of the processor, wherein the virtual machine including its guest and the virtual machine monitor are all running on the processor, the first macro-instruction is first issued by the guest on transfer of control of the processor to the guest from the virtual machine monitor, after the virtual machine monitor storing guest-specific microcode into a writeable micro-instruction storage; executing, by the processor, the first group of micro-instructions in response to the first issue of the first macro-instruction to execute the first issue of the first macro-instruction in a first way; determining, by multiplexing circuitry of the processor based on a multiplexer control indicator, without exiting the virtual machine, that the first macro-instruction from a second issuance by the guest is to be decoded using writeable micro-instruction storage instead of the read-only micro-instruction storage, wherein the multiplexer control indicator is set on detecting a condition indicating that a modification to behavior of the guest is desired; the first macro-instruction is second issued by the guest, on transfer of control of the processor from the virtual machine monitor to the guest, after the multiplexer control indicator is set by the virtual machine monitor to indicate that the first macro-instruction is to be decoded using the writeable micro-instruction storage to allow the processor to execute the first macro-instruction as an instruction not in the native instruction set architecture of the processor, wherein the multiplexer control indicator is set by the virtual machine monitor on detecting a condition indicating that a modification to the behavior of the guest is desired; decoding, by the decode circuitry, without exiting the virtual machine, the first macro-instruction from the second issuance-, into a second group of micro-instructions different from the first group of micro-instructions, using the guest-specific microcode in the writeable micro-instruction storage; and executing, by the processor, without exiting the virtual machine, the second group of micro-instructions in response to the first macro-instruction from the second issuance to allow the processor to execute the first macro-instruction from the second issuance, in a second way that is different from the first way. 2. A method comprising: storing, by a virtual machine monitor running on a processor, guest-specific microcode into a writeable micro-instruction storage; transferring control of the processor from the virtual machine monitor to a guest running on a virtual machine on the processor, the virtual machine being managed by the virtual machine monitor; wherein the guest, on receipt of control, first issues a first macro-instruction; a decode circuitry of the processor, on first issue of the first macro-instruction, decodes the first macro-instruction using a read-only micro-instruction storage, into a first group of micro-instructions, the read-only micro-instruction storage storing native microcode to support a native instruction set architecture of the processor; and the processor executes the first group of micro-instructions in response to the first issue of the first macro-instruction to execute the first issue of the first macro-instruction in a first way; detecting a condition indicating that a modification to behavior of the guest is desired; setting, by the virtual machine monitor, a multiplexer control indicator to indicate that the first macro-instruction is to be decoded using the writeable micro-instruction storage to allow the processor to execute the first macro-instruction as an instruction not in the native instruction set architecture of the processor; and transferring control of the processor from the virtual machine monitor to the guest running on the virtual machine on the processor; wherein the guest, on receipt of control, second issues the first macro-instruction; multiplexing circuitry of the processor determines based on a multiplexer control indicator, without exiting the virtual machine, that the second issue of the first macro-instruction is to be decoded using writeable micro-instruction storage instead of the read-only micro-instruction storage; the decode circuitry, without exiting the virtual machine, decodes the first macro-instruction using the guest-specific microcode in the writeable micro-instruction storage, into a second group of micro-instructions different from the first group of micro-instructions; and the processor, without exiting the virtual machine, executes the second group of micro-instructions in response to the second issue of the first macro-instruction to allow the processor to execute the second issue of the first macro-instruction in a second way that is different from the first way. 3. A processor comprising: decode circuitry to decode a first macro-instruction first issued by a guest of a virtual machine managed by a virtual machine monitor, into a first group of micro-instructions, using a read-only micro-instruction storage, the virtual machine including its guest and the virtual machine monitor are running on the processor, the read-only micro-instruction storage storing native microcode to support a native instruction set architecture of the processor, and the first macro-instruction is first issued by the guest on transfer of control of the processor to the guest from the virtual machine monitor, after the virtual machine monitor storing guest-specific microcode into a writeable micro-instruction storage; an execution unit to execute the first group of micro-instructions in response to the first issue of the first macro-instruction to execute the first issue of the first macro-instruction in a first way; and multiplexing circuitry to determine based on a multiplexer control indicator, without exiting the virtual machine, that the first macro-instruction from a second issuance by the guest, is to be decoded using writeable micro-instruction storage instead of the read-only micro-instruction storage, wherein the multiplexer control indicator is set on detection of a condition that indicates a modification to behavior of the guest is desired; the first macro-instruction is second issued by the guest, on transfer of control of the processor from the virtual machine monitor to the guest, after the multiplexer control indicator is set by the virtual machine monitor to indicate that the first macro-instruction is to be decoded using the writeable micro-instruction storage to allow the processor to execute the first macro-instruction as an instruction not in the native instruction set architecture of the processor, wherein the multiplexer control indicator is set by the virtual machine monitor on detecting a condition indicating that a modification to the behavior of the guest is desired; wherein the decode circuitry is to further decode, without exiting the virtual machine, the first macro-instruction from the second issuance, into a second group of micro-instructions different from the first group of micro-instructions, using the guest-specific microcode in the writeable micro-instruction storage; and wherein the execution unit is to execute, without exiting the virtual machine, the second group of micro-instructions in response to the first macro-instruction from the second issuance to allow the processor to execute the first macro-instruction from the second issuance, in a second way that is different from the first way.

Assignees

Inventors

Classifications

  • for non-native instruction set, e.g. Javabyte, legacy code · CPC title

  • Hypervisors; Virtual machine monitors · CPC title

  • according to execution mode, e.g. mode flag · CPC title

  • Microcontrol or microprogram arrangements · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9747118B2 cover?
Embodiments of apparatuses, methods, and systems for modifying the behavior of a guest installed to run within a VM are disclosed. In one embodiment, an apparatus includes virtualization logic, first storage, second storage, decode logic, and multiplexing logic. The virtualization logic is to provide a mode in which to operate a virtual machine. The first storage is to store a first plurality o…
Who is the assignee on this patent?
Maliszewski Richard L, Held James P, Baumberger Daniel, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/45533. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 29 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).