Method and apparatus to use DRAM as a cache for slow byte-addressible memory for efficient cloud applications
US-12174739-B2 · Dec 24, 2024 · US
US10223162B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10223162-B2 |
| Application number | US-201615097859-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 13, 2016 |
| Priority date | Jul 27, 2015 |
| Publication date | Mar 5, 2019 |
| Grant date | Mar 5, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems, apparatuses, and methods for tracking system resource utilization of guest virtual machines (VMs). Counters may be maintained to track resource utilization of different system resources by different guest VMs executing on the system. When a guest VM initiates execution, stored values may be loaded into the resource utilization counters. While the guest VM executes, the counters may track the resource utilization of the guest VM. When the guest VM terminates execution, the counter values may be written to a virtual machine control block (VMCB) corresponding to the guest VM. Scaling factors may be applied to the counter values to normalize the values prior to writing the values to the VMCB. A cloud computing environment may utilize the tracking mechanisms to guarantee resource utilization levels in accordance with users' service level agreements.
Opening claim text (preview).
What is claimed is: 1. A processor comprising: one or more execution cores; and one or more counters; wherein the processor is configured to: maintain a first counter to track utilization of a first resource while a first guest virtual machine (VM) is executing on the processor; normalize a current value of the first counter, wherein normalizing the current value comprises modifying the current value to reflect an operating frequency of a physical processor executing the guest virtual machine; store the current value of the first counter as normalized to a first memory location that corresponds to a first virtual machine control block of the first guest VM when the first guest VM terminates execution; initialize the first counter to the current value stored in the first memory location, in response to re-scheduling the first guest VM for execution; and maintain a virtual machine control block for each guest virtual machine, wherein the virtual machine control block for a given virtual machine includes one or more performance counter values including the first counter value. 2. The processor as recited in claim 1 , wherein: the processor is further configured to track utilization of a plurality of resources while the first guest VM is executing on the processor, and the plurality of resources comprise at least two or more of cache occupancy, input/output (I/O) fabric bandwidth utilization, memory fabric bandwidth utilization, and core execution time. 3. The processor as recited in claim 1 , wherein: the processor further comprises a first cache; and the first counter is configured to track a number of cache lines requested into the first cache while the first guest VM is executing. 4. The processor as recited in claim 3 , wherein: the first cache comprises a tag memory and a data memory; and each tag in the tag memory comprises a guest VM identification (ID) field. 5. The processor as recited in claim 1 , wherein: the first guest VM has a first service level agreement (SLA) with a guarantee of a first resource utilization level; and the processor is configured to determine if a value of the first counter meets the first resource utilization level guaranteed by the first SLA. 6. The processor as recited in claim 5 , wherein the processor is further configured to restrict resource utilization by a second guest VM responsive to determining the value of the first counter does not meet the first resource utilization level guaranteed by the first SLA. 7. A method comprising: maintaining a first counter to track utilization of a first resource while a first guest virtual machine (VM) is executing on the processor; normalize a current value of the first counter, wherein normalizing the current value comprises modifying the current value to reflect an operating frequency of a physical processor executing the guest virtual machine; storing the current value of the first counter as normalized to a first memory location that corresponds to a first virtual machine control block of the first guest VM when the first guest VM terminates execution; initializing the first counter to the current value stored in the first memory location, in response to re-scheduling the first guest VM for execution; and maintaining a virtual machine control block for each guest virtual machine, wherein the virtual machine control block for a given virtual machine includes one or more performance counter values including the first counter value. 8. The method as recited in claim 7 , further comprising: tracking utilization of a plurality of resources while the first guest VM is executing on the processor; wherein the plurality of resources comprise at least two or more of cache occupancy, input/output (I/O) fabric bandwidth utilization, memory fabric bandwidth utilization on a per-VM basis, and core execution time. 9. The method as recited in claim 7 , wherein the processor further comprises a first cache, and the method further comprises tracking a number of cache lines requested into the first cache while the first guest VM is executing. 10. The method as recited in claim 9 , wherein: the first cache comprises a tag memory and a data memory; and each tag in the tag memory comprises a first guest VM identification (ID) field. 11. The method as recited in claim 7 , wherein: the first guest VM has a first service level agreement (SLA) with a guarantee of a first resource utilization level; and the method further comprises determining if a value of the first counter meets the first resource utilization level guaranteed by the first SLA. 12. The method as recited in claim 11 , further comprising restricting resource utilization by a second guest VM responsive to determining the value of the first counter does not meet the first resource utilization level guaranteed by the first SLA. 13. A system comprising: a memory; and a processor comprising: one or more execution cores; and one or more counters; wherein the processor is configured to: maintain a first counter to track utilization of a first resource while a first guest virtual machine (VM) is executing on the processor; normalize a current value of the first counter, wherein normalizing the current value comprises modifying the current value to reflect an operating frequency of a physical processor executing the guest virtual machine; store the current value of the first counter as normalized to a first memory location that corresponds to a first virtual machine control block of the first guest VM when the first guest VM terminates execution; initialize the first counter to the current value stored in the first memory location, in response to re-scheduling the first guest VM for execution; and maintain a virtual machine control block for each guest virtual machine, wherein the virtual machine control block for a given virtual machine includes one or more performance counter values including the first counter value. 14. The system as recited in claim 13 , wherein: the processor is further configured to track utilization of a plurality of resources while the first guest VM is executing on the processor; and the plurality of resources comprise at least two or more of cache occupancy, input/output (I/O) fabric bandwidth utilization, memory fabric bandwidth utilization on a per-VM basis, and core execution time. 15. The system as recited in claim 13 , wherein: the processor further comprises a first cache; and the first counter is configured to track a number of cache lines requested into the first cache while the first guest VM is executing. 16. The system as recited in claim 15 , wherein: the first cache comprises a tag memory and a data memory; and each tag in the tag memory comprises a guest VM identification (ID) field. 17. The system as recited in claim 13 , wherein: the first guest VM has a first service level agreement (SLA) with a guarantee of a first resource utilization level; and the processor is configured to determine if a value of the first counter meets the first resource utilization level guaranteed by the first SLA.
with dedicated cache, e.g. instruction or stack · CPC title
Hypervisor-specific management and integration aspects · CPC title
Memory management, e.g. access or allocation · CPC title
with multilevel cache hierarchies · CPC title
the resource being the memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.