GPU Register File Priority Arbitration for Power Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Register files for graphics processing units (GPUs) face significant energy consumption due to inefficient access methods, particularly when different agents access the register file without a standardized format, leading to power wastage.

Innovation Solution

Implementing a priority-based arbitration system that classifies requests as finishing, last non-finishing, or non-last, giving highest priority to finishing requests, middle priority to last non-finishing requests, and lowest priority to non-last requests, and using a write queue and read queue to manage access to the register file, ensuring fairness and reducing power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a large register file is implemented to support data and task level parallelism, then the GPU can handle more concurrent operations, but energy consumption increases significantly

Engineering Contradiction:
Improveparallelism supportVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The register file is divided into multiple banks that can be independently accessed. This segmentation allows parallel access operations across different banks, improving throughput while enabling power gating of individual banks when not in use, thus reducing overall power consumption while maintaining support for parallelism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts the number of active register file banks based on current workload requirements. The arbiter and priority scheme enable flexible allocation of access ports to different agents (load store units, execution units) depending on instantaneous demand, ensuring that power is consumed only for the necessary subset of the register file at any given time.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If multiple agents access the register file simultaneously without standardized arbitration, then access flexibility is maintained, but power is wasted due to inefficient access patterns

Engineering Contradiction:
Improveaccess flexibilityVSAvoidpower wastage
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

Requests from multiple agents are buffered in priority queues before actual register file access. The arbiter preliminarily sorts and prioritizes these requests based on predefined criteria (finishing requests highest priority, then non-finishing requests). This preliminary organization ensures that when access occurs, it follows an optimized pattern that minimizes power consumption while maintaining agent flexibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The arbiter acts as an intermediary between multiple requesting agents and the register file. It implements a priority-based arbitration scheme that mediates access requests, ensuring that finishing requests (which complete pending operations) are serviced first, followed by non-finishing requests. This mediation optimizes access patterns and reduces unnecessary power consumption while preserving agent autonomy.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of energy

If finishing requests are prioritized over non-finishing requests, then power consumption is reduced by completing operations efficiently, but request handling complexity increases

Engineering Contradiction:
Improvepower consumptionVSAvoidarbitration complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The system changes the priority parameter of requests based on their type (finishing vs. non-finishing). Finishing requests are assigned highest priority, followed by non-finishing requests. This parameter-based priority assignment simplifies the arbitration logic compared to more complex schemes, as it uses a clear hierarchical priority structure that can be implemented with straightforward comparison logic in the arbiter.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If execution pipelines are given high priority in register file access, then processing throughput is improved, but write queue and read queue requests may be permanently blocked

Engineering Contradiction:
Improveprocessing throughputVSAvoidrequest fairness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The arbiter implements periodic cycling of priority states among different agents. While execution pipelines generally receive high priority, the system periodically rotates priority assignment to ensure that write queue and read queue agents also get access opportunities. This periodic priority cycling prevents permanent blocking of any agent while maintaining high throughput for execution pipelines during their active periods.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS9330432B2Queuing system for register file access
Publication Date: 2016.05.03 APPLE INC
  • US9330432B2 patent drawing
  • US9330432B2 patent drawing
  • US9330432B2 patent drawing

AI summary

Techniques are disclosed relating to arbitration of requests to access a register file. In one embodiment, an apparatus includes a write queue and a register file that includes multiple entries. In one embodiment, the apparatus is configured to select a request from a plurality of requests based on a plurality of request characteristics, and write data from the accepted request into a write queue. In one embodiment, the request characteristics include: whether a request is a last request from an agent for a given register file entry and whether the request finishes a previous request. In one embodiment, a final arbiter is configured to select among requests from the write queue, a read queue, and multiple execution pipelines to access banks of the register file in a given cycle.