Streaming Processor Register Allocation by Instruction Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics Processing Units (GPUs) face challenges in efficiently managing memory and registers for parallel thread execution, leading to latency issues and increased costs due to the need for additional memory, which complicates the trade-off between register size and execution latency.

Innovation Solution

A streaming processor with general-purpose registers divided into persistent and volatile types, where persistent registers are statically allocated for long-latency operations and volatile registers are dynamically allocated for short-latency operations, allowing for efficient allocation and de-allocation based on instruction latency, thereby optimizing register usage and accommodating more threads with reduced memory size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If additional memory is provided to accommodate more threads, then the number of threads that can be processed increases, but the cost increases and the trade-off between register size and execution latency becomes more complex

Engineering Contradiction:
Improvenumber of threadsVSAvoidmemory management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The general-purpose registers are segmented into two distinct types: persistent registers for long-latency operations and volatile registers for short-latency operations. This segmentation allows the system to manage different thread types with appropriate register characteristics, reducing the need for additional memory while accommodating more threads efficiently.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different register types are assigned different characteristics tailored to specific operational needs. Persistent registers maintain data across thread switches for long-latency operations, while volatile registers are quickly allocatable and deallocatable for short-latency operations. This local differentiation optimizes register usage for each thread type without requiring uniform memory expansion.

Inventive Principle:
Principle #3Local quality

2Loss of time

If register size is increased to reduce latency, then execution latency decreases, but the cost increases and fewer threads can be accommodated

Engineering Contradiction:
Improveexecution latencyVSAvoidnumber of threads
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

Registers are divided into persistent and volatile types based on latency requirements. Persistent registers provide fast access for long-latency operations without requiring the entire register file to be large, while volatile registers handle short-latency operations efficiently. This segmentation reduces the overall register size requirement while maintaining low latency for critical operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter of register persistence by creating two distinct register types with different lifetime characteristics. Persistent registers maintain values across thread switches, effectively reducing latency for operations that span thread boundaries, while volatile registers are rapidly allocated and deallocated. This parameter differentiation allows the system to accommodate more threads with smaller registers.

Inventive Principle:
Principle #35Parameter changes

3Loss of time

If persistent registers are used for long-latency operations, then latency is reduced, but the allocation complexity increases

Engineering Contradiction:
ImprovelatencyVSAvoidregister allocation complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The thread scheduler is segmented into specialized components: one handler for persistent register allocation and another for volatile register allocation. This segmentation simplifies the overall allocation complexity by addressing each register type with tailored allocation logic, reducing the cognitive and computational burden of managing mixed register types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Persistent registers automatically maintain their values across thread switches without requiring explicit preservation operations, while volatile registers are automatically deallocated when threads switch. This self-service behavior reduces the complexity of register management by eliminating manual intervention for data preservation and cleanup.

Inventive Principle:
Principle #25Self-service

4Productivity

If volatile registers are dynamically allocated for short-latency operations, then register utilization efficiency increases, but the management overhead increases

Engineering Contradiction:
Improveregister utilization efficiencyVSAvoidregister management overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Volatile registers are designed to be automatically allocated and deallocated by the thread scheduler without requiring complex management routines. When a thread switches, its volatile registers are automatically released for reuse, and new volatile registers are automatically assigned to the incoming thread. This self-service mechanism maximizes register utilization efficiency while minimizing management overhead.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Volatile registers are quickly discarded when threads switch and immediately recovered for reuse. This rapid discard and recover cycle enables high register utilization efficiency for short-latency operations, as the same physical registers can serve multiple threads in succession without complex preservation or restoration procedures.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS10558460B2General purpose register allocation in streaming processor
Publication Date: 2020.02.11 QUALCOMM INC
  • US10558460B2 patent drawing
  • US10558460B2 patent drawing
  • US10558460B2 patent drawing

AI summary

Systems and techniques are disclosed for general purpose register dynamic allocation based on latency associated with of instructions in processor threads. A streaming processor can include a general purpose registers configured to stored data associated with threads, and a thread scheduler configured to receive allocation information for the general purpose registers, the information describing general purpose registers that are to be assigned as persistent general purpose registers (pGPRs) and volatile general purpose registers (vGPRs). The plurality of general purpose registers can be allocated according to the received information. The streaming processor can include the general purpose registers allocated according to the received information, the allocated based on execution latencies of instructions included in the threads.