GPU Burst Execution Using Flip-Flop Registers to Cut SRAM Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

GPU register files consume significant power and area due to the large capacity required for parallel threads, with SRAMs not scaling efficiently, leading to increased power consumption and chip area usage.

Innovation Solution

Implement a separate sub-processor within the GPU to execute atomically executable groups of instructions, using flip-flop based registers and a dedicated instruction cache to reduce SRAM access, and insert a trigger instruction to manage burst execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a large capacity of register files is used to support a large number of parallel threads, then the GPU can maintain more parallel threads, but power consumption and chip area increase significantly

Engineering Contradiction:
Improvenumber of parallel threadsVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by stationary object

Solution Approach 1:

The register file is segmented into two distinct parts: a large-capacity SRAM-based register file for general-purpose thread storage, and a smaller, faster flip-flop-based register file dedicated to burst instruction execution. This segmentation allows the system to maintain large thread capacity while isolating the high-speed registration needs to a smaller, more efficient structure that consumes less power.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The burst instruction execution path is extracted from the main instruction execution flow. By identifying and separating atomic instruction groups into dedicated bursts with their own register file, the system removes the need for these specific instructions to access the large SRAM register file, thereby reducing overall SRAM access frequency and power consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If a large capacity of SRAM-based register files is used, then the GPU can support more parallel threads, but chip area usage increases

Engineering Contradiction:
Improvenumber of parallel threadsVSAvoidchip area
Core Design Contradiction:
Adaptability or versatilityVSArea of stationary object

Solution Approach 1:

The register file is segmented into two distinct parts: a large-capacity SRAM-based register file for general-purpose thread storage, and a smaller, faster flip-flop-based register file dedicated to burst instruction execution. This segmentation allows the system to maintain large thread capacity while isolating the high-speed registration needs to a smaller, more efficient structure that consumes less area.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different register types are used in different contexts: SRAM for general thread storage where capacity is paramount, and flip-flops for burst instruction execution where speed and area efficiency are critical. This local optimization ensures that each register type is used where it provides the most benefit.

Inventive Principle:
Principle #3Local quality

3Productivity

If the GPU switches between threads frequently, then thread progress can be maintained, but SRAM access frequency increases leading to higher power consumption

Engineering Contradiction:
Improvethread progressVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The burst instruction execution path is extracted from the main instruction execution flow. By identifying and separating atomic instruction groups into dedicated bursts with their own register file, the system removes the need for these specific instructions to access the large SRAM register file, thereby reducing overall SRAM access frequency and power consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Burst instructions are pre-identified and pre-loaded into the flip-flop register file before execution. This preliminary action allows the burst instructions to execute without requiring real-time SRAM access, reducing the power consumption associated with frequent SRAM reads and writes during thread switching.

Inventive Principle:
Principle #10Preliminary action

4Device complexity

If SRAM-based register files are used for all instructions, then uniform memory access is simplified, but access latency increases for frequently used registers

Engineering Contradiction:
Improvememory access uniformityVSAvoidregister access latency
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The register file is segmented into two distinct parts: a large-capacity SRAM-based register file for general-purpose thread storage, and a smaller, faster flip-flop-based register file dedicated to burst instruction execution. This segmentation allows the system to maintain large thread capacity while isolating the high-speed registration needs to a smaller, more efficient structure that consumes less area.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different register types are used in different contexts: SRAM for general thread storage where capacity is paramount, and flip-flops for burst instruction execution where speed and area efficiency are critical. This local optimization ensures that each register type is used where it provides the most benefit.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20250377897A1Burst Processing
Publication Date: 2025.12.11 IMAGINATION TECH LTD
  • US20250377897A1 patent drawing
  • US20250377897A1 patent drawing
  • US20250377897A1 patent drawing

AI summary

A computer-implemented method of compiling a program includes analysing the program to identify at least one group of instructions within the program that can be executed atomically. In response to identifying a group of instructions that can be executed atomically, the group of instructions is extracted from the program to form a burst; a modified program is created by inserting an instruction into the program in place of the extracted group of instructions. The instruction is configured to trigger execution of the burst, and the burst and the modified program are saved separately.