Methods and apparatuses for load balancing between multiple processing units

US9311152B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9311152-B2
Application numberUS-201213616856-A
CountryUS
Kind codeB2
Filing dateSep 14, 2012
Priority dateOct 24, 2007
Publication dateApr 12, 2016
Grant dateApr 12, 2016

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.

Exemplary embodiments of methods and apparatuses to dynamically redistribute computational processes in a system that includes a plurality of processing units are described. The power consumption, the performance, and the power/performance value are determined for various computational processes between a plurality of subsystems where each of the subsystems is capable of performing the computational processes. The computational processes are exemplarily graphics rendering process, image processing process, signal processing process, Bayer decoding process, or video decoding process, which can be performed by a central processing unit, a graphics processing units or a digital signal processing unit. In one embodiment, the distribution of computational processes between capable subsystems is based on a power setting, a performance setting, a dynamic setting or a value setting.

First claim

Opening claim text (preview).

What is claimed is: 1. A machine implemented method comprising: distributing a processing task for processing by a first processor having a first processor type, in a system comprising a plurality of processors each having a processor type; determining a performance optimization setting that optimizes a plurality of performance criteria including processing throughput, temperature of the system, or power consumption of the system; monitoring system performance including: a processing load of each of the plurality of processors, a temperature of the system, and a power availability of the system; looking up a performance profile for the processing task, wherein the performance profile comprises a matrix that includes a performance value for each of the plurality of performance criteria for each of the plurality of processor types; automatically and dynamically redistributing, by a redistribution process switching the processing task for processing by a second processor having a second processor type, different from the first processor type, wherein the processing task is executable on both the first and second processor types, the switching based at least in part upon: the performance optimization setting for the system; the monitored system performance; and the matrix of performance criteria values of the processing task for the first and second processor types in the performance profile for the processing task. 2. The method of claim 1 , wherein the processor type comprises one of a central processing unit (CPU), a graphics processing unit (GPU), and a digital signal processing unit (DSP) and wherein determining a performance setting for the system comprises a user input determining the performance setting. 3. The method of claim 1 , wherein redistributing the processing task comprises, at least one of: compiling the processing task to be executable on both the first and second processor types; emulating the first processor type on the second processor, or; emulating the processing task on the second processor type. 4. The method of claim 1 , wherein the performance optimization setting comprises setting the system for high performance and the performance criterion comprises determining that a processing load of the first processor exceeds a threshold value. 5. The method of claim 1 , wherein the performance optimization setting comprises setting the system to control temperature due to processing and the performance criterion comprises determining that a temperature of the first processor exceeds a threshold value. 6. The method of claim 1 , further wherein the performance optimization setting comprises setting the system to reduce power consumption and the performance criterion comprises determining that power consumption will be reduced by processing the processing task on the second processor. 7. The method of claim 1 , wherein the performance optimization setting comprises setting the system for high performance and the performance criterion comprises determining that the processing task will be performed faster on the second processor than the first processor. 8. The method of claim 1 , wherein distributing the processing task for processing by a first processor comprises distributing the processing task to a default processor. 9. The method of claim 1 , wherein the performance optimization setting comprises at least one of optimizing power consumption, optimizing performance throughput, optimizing a ratio of performance to power consumed, or optimizing a dynamic state of the system. 10. The method of claim 9 , wherein a dynamic state of the system comprises at least one of: the temperature of one or more subsystems, the charge level of a battery in the system, or the processing load on one or more of the plurality of processors. 11. The method of claim 1 , further comprising: while running the system, determining that the optimization setting has changed; and automatically redistributing the first processing task in accordance with the changed optimization setting. 12. The method of clam 1 , wherein determining a performance setting for the system comprises one of: in response to determining that the system temperature is above a predetermined threshold, selecting, by the system, a temperature performance setting wherein the processing task is redistributed to a processor having a processor type for which the performance profile for the processing task has performance values for performance criteria that minimize a temperature performance criteria and maximize a throughput criteria; in response to determining that the system temperature is below a predetermined threshold, selecting, by the system, a throughput performance setting wherein the processing task is redistributed to a processor having a processor type for which the performance profile for the processing task has performance values for performance criteria that maximize processing throughput for the processing task; in response to determining that the system battery level is below a predetermined threshold, selecting, by the system, a power availability performance setting wherein the processing task is redistributed to a processor having a processor type for which the performance profile for the processing task has performance values for performance criteria that minimize power consumption and maximize throughput. 13. An article comprising a computer-readable non-transitory storage medium having stored thereon executable instructions that, when executed, cause one or more processors to: distribute a processing task for processing by a first processor having a first processor type, in a system comprising a plurality of processors each having a processor type; determine a performance optimization setting that optimizes a plurality of performance criteria including processing throughput, temperature of the system, and power consumption of the system; monitor system performance including: a processing load of each of the plurality of processors, a temperature of the system, and a power availability of the system; look up a performance profile for the processing task, wherein the performance profile comprises a matrix that includes a performance value for each of the plurality of performance criteria for each of the plurality of processor types; automatically and dynamically redistribute, by a redistribution process switching the processing task for processing by a second processor having a second processor type, different from the first processor type, wherein the processing task is executable on both the first and second processor types, the switching based at least in part upon: the performance setting for the system; the monitored system performance; and the matrix of performance criteria values of the processing task for the first and second processor types in the performance profile for the processing task. 14. The article of claim 13 , wherein the processor type comprises one of a central processing unit (CPU), a graphics processing unit (GPU), and a digital signal processing unit (DSP) and wherein determining a performance setting for the system comprises a user input determining the performance setting. 15. The article of claim 13 , wherein redistributing the processing task comprises, at least one of: compile the processing task to be executable on both the first and second processor types, emulating the first processor type on the second processor, or; emulating the processing task on the second processor type. 16. The article of claim 13 , wherein the performance optimization setting comprise

Assignees

Inventors

Classifications

  • G06F1/3203Primary

    Power management, i.e. event-based initiation of a power-saving mode · CPC title

  • Performance criteria · CPC title

  • Cross-Sectional Technologies · mapped topic

  • Cross-Sectional Technologies · mapped topic

  • G06F9/5044Primary

    considering hardware capabilities · 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 US9311152B2 cover?
Exemplary embodiments of methods and apparatuses to dynamically redistribute computational processes in a system that includes a plurality of processing units are described. The power consumption, the performance, and the power/performance value are determined for various computational processes between a plurality of subsystems where each of the subsystems is capable of performing the computat…
Who is the assignee on this patent?
Miller Howard, Brunner Ralph, Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F1/3203. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 12 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).