Allocating processor resources based on a service-level agreement

US9864636B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9864636-B1
Application numberUS-201414566642-A
CountryUS
Kind codeB1
Filing dateDec 10, 2014
Priority dateDec 10, 2014
Publication dateJan 9, 2018
Grant dateJan 9, 2018

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.

Techniques are described for allocating computing resources to a task from a shared hardware structure. The techniques may involve receiving a request to execute a task for a tenant on shared hardware resources, and determining a set of computing resources for allocation to the task based on a service level agreement associated with the tenant. The set of computing resources can be allocated to the task based on the service level agreement associated with the tenant. In some aspects, one or more performance counters associated with one or more of the computing resources can be monitored to determine an activity level for the one or more computing resources during execution of the task, and one or more allocations of the computing resources for execution of the task can be adjusted based on the activity level for the one or more computing resources.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: receiving, by a computing device, a request to execute a task for a tenant on shared hardware resources, the shared hardware resources including a processing resource shared by multiple tenants executing tasks on the shared hardware resources; determining, by the computing device, a set of computing resources for allocation to the task based on a service level agreement associated with the tenant, the set of computing resources including the processing resource; determining, by the computing device, a set of one or more resource usage constraints to be applied to the set of computing resources including a number of processor cycles per time interval for allocation to the task based on the service level agreement associated with the tenant; allocating, by the computing device, the set of computing resources including the number of processor cycles per time interval to the task; monitoring, by the computing device, one or more performance metrics associated with the processing resource including an instruction counter to determine utilization of the processing resource by the task during execution of the task; and enforcing, in hardware of the computing device, the set of one or more resource usage constraints during the execution of the task by adjusting an execution pipeline priority of processor instructions associated with the task based on the utilization of the processing resource relative to its corresponding resource usage constraint, wherein adjusting the execution pipeline priority includes lowering the execution pipeline priority of the processor instructions associated with the task in a time interval in response to detecting that the task has exhausted the number of processor cycles allocated to the task in that time interval, the execution pipeline priority being adjusted independently of the tasks of other tenants executing on the shared hardware resources during the time interval. 2. The method of claim 1 , wherein enforcing the set of one or more resource usage constraints includes: when the utilization of a computing resource by the task has reached the corresponding resource usage constraint in a time interval, preventing the task from further utilizing the computing resource in the same time interval. 3. The method of claim 1 , further comprising: associating a task identifier (ID) with the task. 4. The method of claim 3 , wherein allocating the set of computing resources includes tagging one or more blocks of one or more of a Level 1 cache, a Level 2 cache, a Level 3 cache, or a Level 4 cache with the task ID to expose the one or more blocks of the one or more corresponding caches to the task. 5. The method of claim 3 , wherein allocating the set of computing resources includes a memory controller tagging one or more banks or one or more ranks of dynamic random access memory (DRAM) with the task ID to expose the one or more banks or one or more ranks of DRAM to the task. 6. The method of claim 1 , wherein allocating the set of computing resources includes providing access to one or more coprocessors for the execution of the task based on the service level agreement. 7. The method of claim 1 , wherein allocating the set of computing resources includes providing access to one or more specialized execution units for the execution of the task based on the service level agreement. 8. The method of claim 1 , wherein monitoring the one or more performance metrics includes monitoring one or more performance counters, the one or more performance counters including one or more of a cache miss counter, a cache hit counter, a memory controller read byte counter, a memory controller write byte counter, or a network traffic counter. 9. The method of claim 1 , wherein enforcing the set of one or more resource usage constraints during the execution of the task further includes: receiving an instruction for a specialized execution unit during execution of the task; determining that the service level agreement associated with the task does not provide access to the specialized execution unit; and decoding the instruction for the specialized execution unit into processor instructions for execution on a processor instead of the specialized execution unit. 10. A computer-implemented method comprising: receiving, by a computing device, a request to instantiate a virtual machine instance for a tenant on shared hardware resources, the shared hardware resources including a processing resource shared by multiple tenants; determining, by the computing device, a set of one or more resource usage constraints to apply to one or more computing resources including a number of processor cycles per time interval allocated to the virtual machine instance based on a service level agreement associated with the tenant; instantiating, by the computing device, the virtual machine instance on the shared hardware resources; and enforcing, in hardware of the computing device, the set of one or more resource usage constraints on the virtual machine instance, and wherein enforcing the set of one or more resource usage constraints includes adjusting an execution pipeline priority of processor instructions associated with the virtual machine instance based on the utilization of the processing resource relative to its corresponding resource usage constraint in a time interval, wherein adjusting the execution pipeline priority includes lowering the execution pipeline priority of the processor instructions associated with the virtual machine instance in response to detecting that the virtual machine instance has exhausted the number of processor cycles allocated to the virtual machine instance in that time interval, the execution pipeline priority being adjusted independently of the other tenants executing on the shared hardware resources during the time interval. 11. The method of claim 10 , wherein enforcing the set of one or more resource usage constraints includes: when utilization of a computing resource by the virtual machine instance has reached the corresponding resource usage constraint in a time interval, preventing the virtual machine instance from further utilizing the computing resource in the same time interval. 12. The method of claim 10 , further comprising monitoring one or more performance metrics associated with the one or more computing resources to determine utilization of the one or more of the computing resources. 13. The method of claim 12 , wherein the one or more performance metrics include one or more hardware counters. 14. The method of claim 10 , wherein enforcing the set of one or more resource usage constraints is implemented in microcode. 15. The method of claim 10 , further comprising: identifying at least one of the computing resources as a static resource based on the service level agreement, wherein allocation of the static resource for the virtual machine instance is not adjusted regardless of the utilization of the static resource. 16. A computing device, comprising: shared hardware resources including at least: a processing unit including one or more processor cores; one or more level of caches associated with the processing unit; and one or more ranks of dynamic random access memory (DRAM); a hardware resource allocator configured to: receive a request to execute a task for a tenant; and determine a set of one or more resource usage constraints to apply to one or more computing resources including a number of processor cycles per time interval allocated to the task based on a service level agreement as

Assignees

Inventors

Classifications

  • G06F9/5061Primary

    Partitioning or combining of resources · CPC title

  • Admission control; Resource allocation · CPC title

  • Distribution of virtual machine instances; Migration and load balancing · CPC title

  • G06F9/50Primary

    Allocation of resources, e.g. of the central processing unit [CPU] · CPC title

  • I/O management, e.g. providing access to device drivers or storage · 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 US9864636B1 cover?
Techniques are described for allocating computing resources to a task from a shared hardware structure. The techniques may involve receiving a request to execute a task for a tenant on shared hardware resources, and determining a set of computing resources for allocation to the task based on a service level agreement associated with the tenant. The set of computing resources can be allocated to…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/5061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 09 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).