Banked Register File with Address Translation for Graphics Shading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing pipelines face inefficiencies and bottlenecks due to complex data flow and processing issues, which compromise performance.

Innovation Solution

A graphics processing apparatus with a multi-threaded execution unit and a banked register file structure, where logical register identifiers are translated into physical addresses to optimize register access and minimize latency, allowing for simultaneous processing of multiple threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single-threaded execution unit is used, then the device complexity is reduced, but the productivity and throughput of the graphics processor deteriorate

Engineering Contradiction:
ImprovethroughputVSAvoidexecution unit structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The execution unit is segmented into multiple independent thread processing lanes, allowing simultaneous execution of multiple shader threads. Each lane can independently fetch, decode, and execute instructions, effectively dividing the processing workload and increasing overall throughput without requiring a separate execution unit for each thread.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The execution unit is designed as a universal processor that can handle multiple thread types and operations through a single multi-functional unit. The same execution resources are dynamically shared across different threads, allowing one execution unit to perform the work of multiple dedicated units while maintaining flexibility in handling various shader operations.

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

2Speed

If a single register file is shared by all threads, then the device complexity is reduced, but the speed of register access deteriorates due to access conflicts

Engineering Contradiction:
Improveregister access speedVSAvoidregister file structure
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The register file is divided into multiple independent banks, each capable of simultaneous read/write operations. Threads are assigned to specific banks based on their active state, allowing multiple threads to access registers in parallel without conflicts. This banked structure eliminates the bottleneck of a single shared register file while maintaining manageable complexity through modular organization.

Inventive Principle:
Principle #1Segmentation

3Productivity

If logical register identifiers are not translated to physical addresses, then the ease of operation is improved, but the productivity deteriorates due to register access latency

Engineering Contradiction:
Improveprocessing throughputVSAvoidregister access simplicity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

Logical register identifiers are pre-translated into physical register bank addresses during instruction decode or before execution. This preliminary translation ensures that when the actual register access occurs, the physical address is already known, eliminating latency during the execution phase. The translation overhead is paid upfront in a low-criticality stage, preserving both simplicity and speed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8514235B2System and method for managing the computation of graphics shading operations
Publication Date: 2013.08.20 VIA TECH INC
  • US8514235B2 patent drawing
  • US8514235B2 patent drawing
  • US8514235B2 patent drawing

AI summary

The present disclosure describes implementations for performing register accesses and operations in a graphics processing apparatus. In one implementation, a graphics processing apparatus comprises an execution unit for processing programmed shader operations, wherein the execution unit is configured for processing operations of a plurality of threads. The apparatus further comprises memory forming a register file that accommodates all register operations for all the threads executed by the execution unit, the memory being organized in a plurality of banks, with a first plurality of banks being allocated to a first plurality of the threads and a second plurality of banks being allocated to the remaining threads. In addition, the apparatus comprises address translation logic configured to translate logical register identifiers into physical register addresses.