IP Library Granted Patent US 8,156,350
Granted Patent B2
US 8,156,350 · App. 12/063,199 · Granted Apr 10, 2012

Controlling multilevel shared resources in a computing device

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,156,350
App. No.
12/063,199
Granted
Apr 10, 2012
Kind
B2
Abstract

A computing device is arranged to include a resource manager that controls access to all power resources on the device. The resource manager detects unused devices by counting the components that have requested usage and powers down unused resources, and for those resources offering multiple power levels, it guarantees that the operating level is no higher than is needed.

Claims (44)

1. A method comprising:

receiving, at a first component, a power control request originated by a further component related to a shared power resource on a computing device, wherein all further components requiring access to the shared power resource can only do so by making requests of the first component; and

managing, by the first component, the shared power resource in response to the power control request,

wherein in an instance in which the shared power resource is a binary resource having an off state and an on state, managing the shared power resource in response to the power control request comprises:

decrementing a usage counter maintained by the first component in an instance in which the power control request comprises a request to release the shared power resource and switching off the shared power resource in an instance in which the counter is decremented to zero;

incrementing the usage counter in an instance in which the power control request comprises a request to access the shared power resource and fulfillment of the power control request would not cause the shared power resource to exceed its maximum acceptable load; and

refusing the power control request in an instance in which the power control request comprises a request to access the shared power resource and fulfillment of the power control request would cause the shared power resource to exceed its maximum acceptable load.

2. A method according to claim 1 , wherein in an instance in which the shared power resource is a multi-level resource having an off state and an on state that supports multiple power output levels, managing the shared power resource in response to the request comprises:

the first component tracking the current output level of the shared power resource and the output levels currently requested by one or more further software components;

in an instance in which the power control request comprises a request to increase the output level of the shared power resource, determining whether fulfilling the power control request would cause the shared power resource to exceed its maximum acceptable load, and fulfilling the power control request only in an instance in which it is determined that fulfilling the power control request would not cause the shared power resource to exceed its maximum acceptable load; and

in an instance in which the power control request comprises a request to decrease the output level of the shared power resource, refusing the power control request unless the further component originating the power control request had previously requested the current output level and no other component had also requested the current output level, wherein in an instance in which the request to decrease the output level of the shared power resource is granted, the power level is decreased to the next highest level requested by a component.

3. A method according to claim 2 , further comprising determining whether the shared power resource to which the power control request is related is a binary resource or a multi-level resource.

4. A method according to claim 1 , wherein a request for a power resource made to the first component by a further component is not immediately satisfied and wherein a thread of execution containing the further component is suspended or caused to sleep for a period of time sufficient to enable the request to be satisfied.

5. A method according to claim 1 , wherein a separate thread of execution is created for the purpose of making a request for the shared power resource.

6. A method according to claim 1 , wherein the first component operates under control of a processor of the computing device.

7. An apparatus comprising a processor and a memory storing computer program code, wherein the memory and stored computer program code are configured, with the processor, to cause the apparatus to at least:

receive, at a first component, a power control request originated by a further component related to a shared power resource on a computing device, wherein all further components requiring access to the power resource can only do so by making requests of the first component; and

manage, by the first component, the shared power resource in response to the power control request,

wherein in an instance in which the shared power resource is a binary resource having an off state and an on state, the memory and stored computer program code are configured, with the processor, to cause the apparatus to manage the shared power resource in response to the power control request at least in part by causing the apparatus to:

decrement a usage counter maintained by the first component in an instance in which the power control request comprises a request to release the shared power resource and switch off the shared power resource in an instance in which the counter is decremented to zero;

increment the usage counter in an instance in which the power control request comprises a request to access the shared power resource and fulfillment of the power control request would not cause the shared power resource to exceed its maximum acceptable load; and

refuse the power control request in an instance in which the power control request comprises a request to access the shared power resource and fulfillment of the power control request would cause the shared power resource to exceed its maximum acceptable load.

8. An apparatus according to claim 7 , wherein in an instance in which the shared power resource is a multi-level resource having an off state and an on state that supports multiple power output levels, the memory and stored computer program code are configured, with the processor, to cause the apparatus to manage the shared power resource in response to the power control request at least in part by causing the apparatus to:

track, by the first component, the current output level of the shared power resource and the output levels currently requested by one or more further software components;

in an instance in which the power control request comprises a request to increase the output level of the shared power resource, determine whether fulfilling the power control request would cause the shared power resource to exceed its maximum acceptable load, and fulfill the power control request only in an instance in which it is determined that fulfilling the power control request would not cause the shared power resource to exceed its maximum acceptable load; and

in an instance in which the power control request comprises a request to decrease the output level of the shared power resource, refuse the power control request unless the further component originating the power control request had previously requested the current output level and no other component had also requested the current output level, wherein in an instance in which the request to decrease the output level of the shared power resource is granted, the power level is decreased to the next highest level requested by a component.

9. An apparatus according to claim 8 , wherein the memory and stored computer program code are configured, with the processor, to further cause the apparatus to determine whether the shared power resource to which the power control request is related is a binary resource or a multi-level resource.

10. An apparatus according to claim 7 , wherein a request for a power resource made to the first component by a further component is not immediately satisfied and wherein a thread of execution containing the further component is suspended or caused to sleep for a period of time sufficient to enable the request to be satisfied.

11. An apparatus according to claim 7 , wherein a separate thread of execution is created for the purpose of making a request for the shared power resource.

12. An apparatus according to claim 7 , wherein the apparatus comprises or is embodied on a mobile phone.

13. A computer program product comprising a non-transitory computer-readable storage medium having computer-readable program instructions stored therein, the computer-readable program instructions comprising:

program instructions configured to receive, at a first component, a power control request originated by a further component related to a shared power resource on a computing device, wherein all further components requiring access to the power resource can only do so by making requests of the first component; and

program instructions configured to manage, by the first component, the shared power resource in response to the power control request,

wherein the program instructions configured to manage the shared power resource comprise program instructions configured, in an instance in which the shared power resource is a binary resource having an off state and an on state, to manage the shared power resource in response to the power control request at least in part by:

decrementing a usage counter maintained by the first component in an instance in which the power control request comprises a request to release the shared power resource and switching off the shared power resource in an instance in which the counter is decremented to zero;

incrementing the usage counter in an instance in which the power control request comprises a request to access the shared power resource and fulfillment of the power control request would not cause the shared power resource to exceed its maximum acceptable load; and

refusing the power control request in an instance in which the power control request comprises a request to access the shared power resource and fulfillment of the power control request would cause the shared power resource to exceed its maximum acceptable load.

14. A computer program product according to claim 13 , wherein the program instructions configured to manage the shared power resource comprise program instructions configured, in an instance in which the shared power resource is a multi-level resource having an off state and an on state that supports multiple power output levels, to manage the shared power resource in response to the power control request at least in part by:

tracking, by the first component, the current output level of the shared power resource and the output levels currently requested by one or more further software components;

in an instance in which the power control request comprises a request to increase the output level of the shared power resource, determining whether fulfilling the power control request would cause the shared power resource to exceed its maximum acceptable load, and fulfilling the power control request only in an instance in which it is determined that fulfilling the power control request would not cause the shared power resource to exceed its maximum acceptable load; and

in an instance in which the power control request comprises a request to decrease the output level of the shared power resource, refusing the power control request unless the further component originating the power control request had previously requested the current output level and no other component had also requested the current output level, wherein in an instance in which the request to decrease the output level of the shared power resource is granted, the power level is decreased to the next highest level requested by a component.

15. A computer program product according to claim 14 , wherein the computer-readable program instructions further comprise program instructions configured to determine whether the shared power resource to which the power control request is related is a binary resource or a multi-level resource.

16. A computer program product according to claim 13 , wherein a request for a power resource made to the first component by a further component is not immediately satisfied and wherein a thread of execution containing the further component is suspended or caused to sleep for a period of time sufficient to enable the request to be satisfied.

17. A computer program product according to claim 13 , wherein a separate thread of execution is created for the purpose of making a request for the shared power resource.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Apr 22, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063429/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035280/0093 →