IP Library Granted Patent US 8,752,061
Granted Patent B2
US 8,752,061 · App. 13/128,025 · Granted Jun 10, 2014

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

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,752,061
App. No.
13/128,025
Granted
Jun 10, 2014
Kind
B2
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 (54)

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.

2. 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.

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

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

5. 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.

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

7. 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.

8. 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.

9. 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.

10. 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.

11. 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.

12. 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.

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.

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

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.

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

17. 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.

18. 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.

19. 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.

20. 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.

Assignments (30)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0285 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0387 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027621/0928 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0075 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2011
From: LITOVTCHENKO, VLADIMIR; BOGENBERGER, FLORIAN
To: FREESCALE SEMICONDUCTOR INC
Reel/Frame 026236/0327 →