Dynamic Load Balancing Circuit for Clustered Processor Cores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software-based techniques for load balancing in clustered processor cores are inefficient due to the need to save and reload software thread contexts to memory, which can be slow and require access to micro-architectural data not always available to the operating system, leading to suboptimal performance and power consumption.

Innovation Solution

A dynamic load balancing circuit that determines suboptimal load conditions between clusters and transfers the contents of private registers and identifiers of hardware threads via shared resources, allowing for efficient relocation of software threads to balance load without relying on memory operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If software-based techniques are used to shift software threads between hardware threads, then load balancing can be achieved, but the process becomes slow due to saving and reloading contexts to memory

Engineering Contradiction:
Improveload balancing speedVSAvoidcontext save and reload time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts the context transfer operation from the slow memory-based software approach and implements it directly in hardware. The control unit transfers register contents directly between hardware threads using shared hardware resources, eliminating the need to save contexts to memory and reload them, thus resolving the speed-time contradiction.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If software-based load balancing is implemented, then thread redistribution is possible, but access to micro-architectural data is required which may not be available to the operating system

Engineering Contradiction:
Improveaccess to micro-architectural dataVSAvoidoperating system accessibility
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent introduces a control unit as an intermediary between the hardware threads and the operating system. This control unit has direct access to micro-architectural data and can make load balancing decisions based on this data, while the operating system only needs to interact with the control unit through standard interfaces, thus resolving the contradiction between data accessibility and ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If hardware threads are relocated between clusters, then performance can be optimized, but conventional methods require prohibitively slow memory operations

Engineering Contradiction:
Improveprocessor performanceVSAvoidthread relocation speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent replaces the mechanical memory-based context transfer system with a direct hardware register transfer system. The control unit uses shared hardware resources to transfer register contents directly between hardware threads, substituting the slow memory I/O operations with fast hardware-level data movement, thus resolving the performance-speed contradiction.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11200058B2Dynamic load balancing of hardware threads in clustered processor cores using shared hardware resources, and related circuits, methods, and computer-readable media
Publication Date: 2021.12.14 QUALCOMM INC
  • US11200058B2 patent drawing
  • US11200058B2 patent drawing
  • US11200058B2 patent drawing

AI summary

Dynamic load balancing of hardware threads in clustered processor cores using shared hardware resources, and related circuits, methods, and computer readable media are disclosed. In one aspect, a dynamic load balancing circuit comprising a control unit is provided. The control unit is configured to determine whether a suboptimal load condition exists between a first cluster and a second cluster of a clustered processor core. If a suboptimal load condition exists, the control unit is further configured to transfer a content of private register(s) of a first hardware thread of the first cluster to private register(s) of a second hardware thread of the second cluster via shared hardware resources of the first hardware thread and the second hardware thread. The control unit is also configured to exchange a first identifier associated with the first hardware thread with a second identifier associated with the second hardware thread via the shared hardware resources.