Dynamic Load Balancing for Multi-Subsystem Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional data processing systems face challenges in simultaneously achieving high performance, low power consumption, and compactness, particularly in portable devices where battery limitations restrict continuous high-performance operation due to the need for dedicated processing units, and existing power management systems rely on throttling which reduces performance to conserve power.

Innovation Solution

The method involves dynamically redistributing computational processes among multiple subsystems such as CPU, GPU, and DSP, optimizing power consumption, performance, and cost-effectiveness by determining and saving matrices of power consumption, performance, and cost-effectiveness for each subsystem and process, allowing redistribution without rebooting, and using software components to manage and redistribute tasks based on selected settings and load balancing criteria.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dedicated processing units (CPU, GPU, DSP) are used for different computational processes, then processing performance is improved, but power consumption increases

Engineering Contradiction:
Improveprocessing performanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system dynamically redistributes computational processes among different subsystems (CPU, GPU, DSP) based on real-time power consumption matrices and performance requirements. This dynamic allocation allows the system to adapt processing assignments to current power availability and thermal conditions, rather than using static dedicated assignments.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes operational parameters by selecting different subsystems for specific computational processes based on power consumption matrices. By evaluating multiple possible assignments and their associated power consumption and performance characteristics, the system optimizes the parameter combination of subsystem selection to achieve desired performance while minimizing power usage.

Inventive Principle:
Principle #35Parameter changes

2Use of energy by moving object

If processor frequency and voltage are reduced to lower power consumption, then power usage decreases, but processing performance deteriorates

Engineering Contradiction:
Improvepower consumptionVSAvoidprocessing performance
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

Instead of statically reducing frequency and voltage, the system dynamically selects which subsystem handles which computational process based on real-time conditions. This dynamic redistribution allows the system to maintain high performance when needed by assigning tasks to appropriate subsystems without resorting to frequency/voltage throttling.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system makes subsystems universal by allowing any computational process to be assigned to any capable subsystem (CPU, GPU, or DSP) based on current power and performance requirements. This multi-functionality eliminates the need for dedicated processing units for each process type, enabling flexible optimization of both power consumption and performance.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Use of energy by moving object

If computational processes are redistributed among subsystems to optimize power consumption, then power efficiency improves, but system complexity increases

Engineering Contradiction:
Improvepower efficiencyVSAvoidsystem complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-calculating and storing power consumption matrices for different subsystem-process combinations before runtime. This pre-computed information is saved and reused during operational decisions, avoiding the need for complex real-time measurements and calculations, thus reducing the actual runtime system complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system introduces an intermediary layer (the power consumption matrices and redistribution logic) that simplifies the decision-making process. Instead of directly managing complex real-time power measurements and subsystem coordination, the system uses pre-computed matrices as an intermediary reference to guide straightforward redistribution decisions.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If multiple subsystems are used to handle different computational processes, then processing capability is improved, but thermal limits are more likely to be exceeded

Engineering Contradiction:
Improveprocessing capabilityVSAvoidthermal limits
Core Design Contradiction:
ProductivityVSTemperature

Solution Approach 1:

The system dynamically monitors and responds to thermal conditions by redistributing computational processes in real-time. When thermal limits approach critical levels, the system can dynamically reassign processes to different subsystems or reduce overall processing load, maintaining processing capability within safe thermal boundaries.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9311152B2Methods and apparatuses for load balancing between multiple processing units
Publication Date: 2016.04.12 APPLE INC
  • US9311152B2 patent drawing
  • US9311152B2 patent drawing
  • US9311152B2 patent drawing

AI summary

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.