# US 8,752,061 B2 · Resource allocation within multiple resource providers based on the incoming resource request and the expected state transition of the resource requesting application, and selecting a resource provider based on the sum of the percentage of the resource provider currently used, the requesting load as a percentage of the resource provider's total resource, and the additional load imposed by the expected state of the requesting application as a percentage of the resource provider's total resource

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

- Number: US 8,752,061 B2
- Document ID: US8752061B2
- Status: Granted
- Kind: B2
- Application number: 13/128,025
- Filed: 2008-11-24
- Published: 2011-09-01
- Granted: 2014-06-10
- Earliest claimed: 2008-11-24
- Assignees: Freescale Seimconductor, Inc.
- Applicants: Vladimir Litovtchenko; Florian Bogenberger
- Inventors: Vladimir Litovtchenko; Florian Bogenberger
- Web page: https://patentgrep.com/patent/US8752061B2

## CPC

- G06F 9/505: {considering the load}
- G06F 2209/5019: Workload prediction
- G06F 2209/504: Resource capping
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A device receives a request for an amount of a resource. It determines for each resource provider in a set of resource providers a current load, a requested load corresponding to the requested amount of the resource, and an additional load corresponding to an expected state of an application. It determines for each of the resource providers an expected total load on the basis of the current load, the requested load, and the additional load. It subsequently selects from the set of resource providers a preferred resource provider on the basis of the expected total loads. The resource may be one of the following: memory, processing time, data throughput, power, and usage of a device.

## Claims

### Claim 1

A non-transitory data carrier carrying instructions for instructing a processor to:
receive, from an application, a request for an amount of a resource;
determine an expected state of the application on the basis of the request;
identify a request control counter corresponding to the expected state of the application from a plurality of request control counters that corresponds to a plurality of application states, wherein a value of the identified request control counter represents the number of times requests that leads the application to transitioning to the expected state have been received but not granted;
determine whether the value of the identified request control counter exceeds a maximum value;
in response to determining the counter value has not exceeded the maximum value:
determine for each resource provider in a set of resource providers a current load corresponding to a percentage of amount of resource currently utilized on the resource provider to the resource provider's total resource, a requested load corresponding to a percentage of the requested amount of the resource to the resource provider's total resource, and an additional load corresponding to a percentage of an additional amount of the resource to the resource provider's total resource, wherein the additional amount of the resource is expected to be required once the application has assumed the expected state;
determine for each of the resource providers an expected total load based on a sum of the current load, the requested load, and the additional load;
attempt to select from the set of resource providers, the resource provider with the smallest expected total load that is less or equal to 100% as a preferred resource provider;
in response to not selecting a preferred resource provider, increment the value of the identified request control counter by 1; and
in response to determining the counter value has exceeded the maximum value, reject the request for the amount of the resource.

### Claim 2 (depends on 1)

The data carrier as set forth in claim 1, wherein the instructions for determining the expected state of the application comprise instructions for determining a transition in a control flow graph of the application on the basis of the request.

### Claim 3 (depends on 1)

The data carrier as set forth in claim 1, carrying data indicating application states and/or possible transitions between the application states.

### Claim 4 (depends on 3)

The data carrier as set forth in claim 3, carrying data indicating for each of the application states an additional amount of the resource.

### Claim 5 (depends on 3)

The data carrier as set forth in claim 3, carrying data indicating for each of the application states and for each of the resource providers an additional load.

### Claim 6 (depends on 1)

The data carrier as set forth in claim 1, carrying instructions for updating an entry indicating a current state of the application.

### Claim 7 (depends on 1)

The data carrier as set forth in claim 1, carrying data indicating for each of a variety of request types for a resource an amount of the resource.

### Claim 8 (depends on 1)

The data carrier as set forth in claim 1, carrying data indicating for each of a variety of request types and for each of the resource providers a load.

### Claim 9 (depends on 1)

The data carrier as set forth in claim 1, wherein the instructions comprise instructions for computing for each of the resource providers the sum of the current load, the requested load, and the additional load.

### Claim 10 (depends on 1)

The data carrier as set forth in claim 1, wherein the instructions comprise instructions for selecting as the preferred resource provider the resource provider having the smallest expected total load.

### Claim 11 (depends on 1)

The data carrier as set forth in claim 1, carrying instructions instructing the processor to count the number of times a request of a specific type has been rejected.

### Claim 12 (depends on 1)

The data carrier as set forth in claim 1, wherein the resource is one of the following: memory, processing time, data throughput, power, and usage of a device.

### Claim 13

A method performed on at least one processor comprising:
running an application;
generating a request for an amount of a resource;
determining an expected state of the application on the basis of the request;
identifying a request control counter corresponding to the expected state of the application from a plurality of request control counters that corresponds to a plurality of application states, wherein a value of the identified request control counter represents the number of times requests that leads the application to transitioning to the expected state have been received but not granted;
determining whether the value of the identified request control counter exceeds a maximum value;
in response to determining the counter value has not exceeded the maximum value;
determining for each resource provider in a set of resource providers a current load corresponding to a percentage of amount of resource currently utilized on the resource provider to the resource provider's total resource, a requested load corresponding to a percentage of the requested amount of the resource to the resource provider's total resource, and an additional load corresponding to a percentage of an additional amount of the resource to the resource provider's total resource, wherein the additional amount of the resource which is expected to be required once the application has assumed the expected state;
determining for each of the resource providers an expected total load based on a sum of the current load, the requested load and the additional load;
attempting to select from the set of resource providers, the resource provider with the smallest expected total load that is less or equal to 100% as a preferred resource provider;
in response to not selecting a preferred resource provider, incrementing the value of the identified request control counter by 1; and
in response to determining the counter value has exceeded the maximum value, rejecting the request for the amount of the resource.

### Claim 14 (depends on 13)

The method as set forth in claim 13, wherein the set of resource providers includes the at least one processor.

### Claim 15

A device comprising at least one processor, a data carrier, and a set of resource providers, wherein:
the data carrier carries instructions for instructing the at least one processor to:
run an application;
generate resource requests, wherein each resource request is for an amount of a resource; and
for each resource request of the resource requests:
determine an expected state of the application on the basis of the resource request;
identify a request control counter corresponding to the expected state of the application from a plurality of request control counters that corresponds to a plurality of application states, wherein a value of the identified request control counter represents the number of times requests that leads the application to transitioning to the expected state have been received but not granted;
determine whether the value of the identified request control counter exceeds a maximum value;
in response to determining the counter value has not exceeded the maximum value;
determine for each resource provider of the set of resource providers a current load corresponding to a percentage of amount of resource currently utilized on the resource provider to the resource provider's total resource, a requested load corresponding to a percentage of the requested amount of the resource to the resource provider's total resource, and an additional load corresponding to a percentage of an additional amount of the resource to the resource provider's total resource, wherein the additional amount of the resource is expected to be required once the application has assumed the expected state;
determine for each of the resource providers an expected total load based on a sum of the current load, the requested load and the additional load; and
attempt to select from the set of resource providers, the resource provider with the smallest expected total load that is less or equal to 100% as a preferred resource provider;
in response to not selecting a preferred resource provider, increment the value of the identified request control counter by 1; and
in response to determining the counter value has exceeded the maximum value, reject the request for the amount of the resource.

### Claim 16 (depends on 15)

The device as set forth in claim 15, wherein the data carrier comprises a memory.

### Claim 17 (depends on 15)

The device as set forth in claim 15, carrying instructions instructing the processor to count the number of times a request of a specific type has been rejected.

### Claim 18 (depends on 15)

The device as set forth in claim 15, wherein the instructions for determining the expected state of the application comprise instructions for determining a transition in a control flow graph of the application on the basis of the request.

### Claim 19 (depends on 15)

The device as set forth in claim 15, wherein the data carrier is to carry data indicating application states and/or possible transitions between the application states.

### Claim 20 (depends on 13)

The method set forth in claim 13, wherein the instructions comprise instructions instructing the processor to count the number of times a request of a specific type has been rejected.
