Register Bank Conflict Reduction in Multi-Threaded Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-bank register files in GPUs experience conflicts when trying to read registers from the same bank, leading to serialized read requests and pipeline delays, particularly due to thread internal conflicts, which are costly to resolve with hardware modifications and complex compiler algorithms.

Innovation Solution

Implementing register distribution across multiple banks, multiple pipeline stages for reading registers, and operand position swapping to reduce conflicts, allowing for efficient register access without significant hardware or compiler complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Area of stationary object

If registers are organized in multi-bank structures with shared ports, then area requirements are reduced, but register bank conflicts increase causing serialized read requests and pipeline delays

Engineering Contradiction:
Improveregister file areaVSAvoidprocessing efficiency
Core Design Contradiction:
Area of stationary objectVSProductivity

Solution Approach 1:

The register file is segmented into multiple banks (e.g., Bank 0, Bank 1, Bank 2, Bank 3) where each bank can be independently accessed. This segmentation allows simultaneous read operations from different banks, eliminating the need for serialization when multiple registers are needed in the same clock cycle. The segmentation directly resolves the contradiction by enabling parallel access paths while maintaining compact area through shared port architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a bank selection dimension to the register access architecture. By adding bank selection logic that operates in parallel with the existing port selection, the system can resolve multiple register access requests simultaneously by directing them to different banks. This dimensional addition transforms the access pattern from sequential (single bank) to parallel (multiple banks), maintaining area efficiency while improving productivity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If thread internal conflicts are resolved using hardware modifications, then register bank conflicts are reduced, but device complexity and cost increase significantly

Engineering Contradiction:
Improvethread processing efficiencyVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic bank selection where the bank assignment for each register is determined at runtime based on the specific access pattern. Rather than static hardware configurations, the system dynamically routes read requests to appropriate banks using selection logic that adapts to the current thread's register access requirements. This dynamic approach reduces thread internal conflicts without requiring complex dedicated hardware for each conflict scenario.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The bank selection logic serves multiple functions: it resolves thread internal conflicts, enables simultaneous access to registers across banks, and maintains compatibility with existing port selection mechanisms. This universal selection component handles various conflict scenarios without requiring separate hardware modifications for each case, thereby reducing overall device complexity while improving thread processing efficiency.

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

3Productivity

If complex compiler algorithms are used to resolve register bank conflicts, then processing efficiency improves, but algorithm complexity and implementation difficulty increase

Engineering Contradiction:
Improvemulti-thread processing efficiencyVSAvoidcompiler algorithm complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The register file architecture provides self-service conflict resolution through its inherent multi-bank structure and selection logic. Rather than requiring external compiler intervention to manage conflicts, the hardware automatically routes read requests to appropriate banks based on the bank selection signals. This self-service mechanism eliminates the need for complex compiler algorithms to preemptively allocate registers to specific banks, simplifying both the compiler and the overall system.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10754651B2Register bank conflict reduction for multi-threaded processor
Publication Date: 2020.08.25 INTEL CORP
  • US10754651B2 patent drawing
  • US10754651B2 patent drawing
  • US10754651B2 patent drawing

AI summary

Embodiments are generally directed to register bank conflict reduction for multi-threaded processor execution units. An embodiment of an apparatus includes a processor including one or more execution units (EUs), at least a first execution unit (EU) to process a plurality of threads, the first EU including a register file including multiple register banks with each register bank including multiple registers, and one or more read multiplexers to read registers from the register file, wherein attempting to read more than one register from a single register bank of the register file in a same clock cycle generates a register bank conflict. Registers for each thread for the first EU are distributed across the registers banks within the register file such that a first register for a first thread of the plurality of threads and a following second register for the first thread are located in different register banks within the register file.