Shared Local Memory Register Spill Buffer for Graphics Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques for register spill and fill in graphics processing units rely on global memory, resulting in higher latency and lower bandwidth, which limits performance and increases power consumption.

Innovation Solution

The use of shared local memory (SLM) as a register spill/fill buffer for 3D shader threads, allowing for lower latency, higher bandwidth, and reduced power usage, while also alleviating register pressure by continuously loading constants into SLM instead of relying solely on registers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If global memory is used for register spill/fill operations, then register management is possible, but latency increases and bandwidth decreases

Engineering Contradiction:
ImprovelatencyVSAvoidmemory hierarchy complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent introduces shared local memory (SLM) as an intermediary storage layer between registers and global memory. The SLM buffer serves as a mediator that captures and stores spilled register values locally, avoiding direct access to global memory and thereby reducing latency while maintaining register management capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The memory hierarchy is segmented into distinct layers: registers, shared local memory (SLM) buffer, and global memory. This segmentation allows the system to handle different types of data access patterns efficiently, with the SLM layer specifically optimized for spill/fill operations to reduce the penalty of register spills.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If global memory is used for register spill/fill operations, then register management is possible, but bandwidth decreases

Engineering Contradiction:
ImprovebandwidthVSAvoidmemory architecture complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The shared local memory acts as an intermediary that provides high-bandwidth access for spill/fill operations. By routing these operations through the SLM buffer rather than directly to global memory, the system achieves higher effective bandwidth for register management while keeping the overall memory architecture manageable.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent adds a new dimension to the memory hierarchy by introducing the SLM buffer layer. This dimensional addition creates a intermediate storage space that is physically closer to the processing units, thereby increasing bandwidth for local operations without fundamentally redesigning the entire global memory architecture.

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

3Speed

If registers are used for constant storage, then fast access is achieved, but register pressure increases

Engineering Contradiction:
Improveaccess speedVSAvoidregister pressure
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The SLM buffer serves as an intermediary storage space for constants and frequently accessed data. This allows the system to maintain fast access speeds comparable to registers while offloading storage burden from the register file, thereby reducing register pressure and allowing more registers to be available for active computation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11508338B2Register spill/fill using shared local memory space
Publication Date: 2022.11.22 INTEL CORP
  • US11508338B2 patent drawing
  • US11508338B2 patent drawing
  • US11508338B2 patent drawing

AI summary

A mechanism is described for facilitating using of a shared local memory for register spilling/filling relating to graphics processors at computing devices. A method of embodiments, as described herein, includes reserving one or more spaces of a shared local memory (SLM) to perform one or more of spilling and filling relating to registers associated with a graphics processor of a computing device.