# US 8,788,672 B2 · Microprocessor with software control over allocation of shared resources among multiple virtual servers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,672 B2
- Document ID: US8788672B2
- Status: Granted
- Kind: B2
- Application number: 13/457,071
- Filed: 2012-04-26
- Published: 2012-10-25
- Granted: 2014-07-22
- Earliest claimed: 2009-02-25
- Assignees: International Business Machines Corporation
- Applicants: Thomas J. Heller, Jr.
- Inventors: Thomas J. Heller, Jr.
- Web page: https://patentgrep.com/patent/US8788672B2

## CPC

- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for controlling the allocation of shared resources that includes receiving, from a requestor executing on a processor, a request to access a shared resource. The receiving is at a next request priority module connected to the processor and the shared resource. It is determined if any of a specified number of most recent priority grants to the shared resource were to the requestor. The request is granted if none of the specified number of most recent priority grants to the shared resource were to the requestor. If any of the specified number of most recent priority grants to the shared resource were to the requestor, then it is determined if one or more other requests for the shared resource are pending. It is determined if one of the other requests should be granted priority to the shared resource if other requests for the shared resource are pending.

## Claims

### Claim 1

A method for controlling the allocation of shared resources, the method comprising:
receiving a request to access a shared resource in a request queue, wherein the request queue receives pending requests for the shared resource from each of a plurality of requestors, the request received from a requestor of the plurality of requestors executing on a processor, the receiving at a next request priority module connected to the processor and to the shared resource, and preventing the requestor from occupying more than a predefined portion of the shared resource for limiting an amount of the shared resource that is consumable;
determining that at least one of a specified number of most recent priority grants to the shared resource were to the requestor based on a requestor identifier of the requestor and a plurality of logged requestor identifiers in a previous requestor queue;
granting priority to the shared resource to the request based on determining that none of the specified number of most recent priority grants to the shared resource were to the requestor;
logging the requestor identifier of the requestor in the previous requestor queue based on the granting; and
based on determining that any of the specified number of most recent priority grants to the shared resource were to the requestor:
determining that one or more other requests for the shared resource are pending in the request queue;
determining that one of the other requests pending in the request queue should be granted priority to the shared resource based on determining that one or more other requests to the shared resource are pending in the request queue; and
transmitting no request to the shared resource during a next cycle based on the request being the only pending request in the request queue and based on the requestor identifier of the requestor matching any of the plurality of logged requestor identifiers in the previous requestor queue.

### Claim 2 (depends on 1)

The method of claim 1, further comprising granting priority to the shared resource to the request based on determining that other requests to the shared resource are not pending.

### Claim 3 (depends on 1)

The method of claim 1, wherein the next request priority module is implemented by System Control Logic (SCL).

### Claim 4 (depends on 1)

The method of claim 1, further comprising transmitting the request to the shared resource based on granting priority to the shared resource to the request.

### Claim 5 (depends on 1)

The method of claim 1, further comprising determining that the request should be granted priority to the shared resource based on the request being the only pending request in the request queue.

### Claim 6 (depends on 1)

The method of claim 1, wherein only requestor identifiers of the specified number of most recent priority grants to the shared resource are saved in the previous requestor queue.

### Claim 7 (depends on 1)

The method of claim 1, further comprising determining that none of the specified number of most recent priority grants to the shared resource were to the requestor based on the requestor identifier of the requestor not matching any of the plurality of logged requestor identifiers in the previous requestor queue.

### Claim 8 (depends on 1)

The method of claim 1, wherein the requestor is a group of virtual servers.

### Claim 9 (depends on 1)

The method of claim 1, wherein the shared resource is memory and the next request priority module is located in a memory controller.

### Claim 10 (depends on 1)

The method of claim 1, further comprising transmitting the request to the shared resource based on the granting of priority to the shared resource to the request.

### Claim 11 (depends on 1)

The method of claim 1, further comprising logging the requestor identifier of the requestor by replacing an oldest entry in the previous requestor queue with a new entry corresponding to the requestor identifier of the request based on the granting.
