Dynamic Register Allocation for Graphics Processing Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies in managing registers, leading to suboptimal use of hardware resources, particularly in scenarios where the number of registers required for executing code blocks varies, resulting in potential deadlocks and resource bottlenecks.

Innovation Solution

A method and device that dynamically adjust the number of registers allocated to code blocks based on the difference between the number of registers required for the current and subsequent code blocks, using a register occupancy table and register hash to manage register allocation and freeing, ensuring optimal resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of registers is fixed for each code block, then the device complexity is reduced, but the productivity and resource utilization deteriorate due to inability to adapt to varying register requirements of different code blocks

Engineering Contradiction:
Improveprocessing performanceVSAvoidregister management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic register allocation where the number of registers assigned to each code block is adjusted based on actual execution needs. The register allocation unit determines the required register count for each code block and dynamically allocates registers from the register pool, allowing the system to adapt register resources to varying computational demands of different code blocks rather than using fixed allocation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of register count dynamically. Instead of maintaining a fixed register allocation, the patent modifies the number of registers assigned to each code block based on its specific requirements. The register allocation unit calculates the needed register quantity for each code block and adjusts the allocation accordingly, enabling optimal resource utilization while maintaining system efficiency.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If more registers are allocated to ensure sufficient resources for all code blocks, then the reliability is improved, but the loss of substance increases due to unused registers occupying valuable hardware resources

Engineering Contradiction:
Improveresource sufficiencyVSAvoidunused register resources
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent applies local quality by allocating registers specifically to each code block based on its individual requirements rather than providing uniform allocation to all code blocks. Each code block receives the precise number of registers it needs for its execution, ensuring that resources are concentrated where needed without creating waste in other areas. This localized allocation optimizes both reliability and resource efficiency.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system implements discarding and recovering by releasing registers that are no longer needed by completed code blocks back to the register pool. When a code block finishes execution, its allocated registers are freed and made available for allocation to subsequent code blocks. This mechanism ensures that registers are continuously reused rather than remaining idle, eliminating waste while maintaining sufficient resources for active code blocks.

Inventive Principle:
Principle #34Discarding and recovering

3Adaptability or versatility

If dynamic register allocation is implemented, then the adaptability is improved, but the device complexity increases due to need for register allocation unit and management structures

Engineering Contradiction:
Improveregister allocation flexibilityVSAvoidregister management structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The register allocation unit serves multiple functions: it determines the register requirements for each code block, allocates registers from the pool, tracks register usage, and frees registers when code blocks complete. This multi-functional component provides the necessary adaptability while consolidating management tasks into a single unit, thereby limiting the increase in overall system complexity despite the dynamic allocation capabilities.

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

Data Source

PatentUS10705844B2Method and device for register management
Publication Date: 2020.07.07 SAMSUNG ELECTRONICS CO LTD
  • US10705844B2 patent drawing
  • US10705844B2 patent drawing
  • US10705844B2 patent drawing

AI summary

In a data processing method, a method and device for adjusting the number of registers used in a running thread according to a situation are disclosed.