Programmable GPU Using General Processing Unit

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional GPUs with fixed function units are inflexible and require custom processors for parallel code processing, which are ill-suited for scalar code and involve high development costs and complexity.

Innovation Solution

A programmable graphics pipeline using a general processing unit with a scalar core and vector data paths as accelerators, connected via an input-output interface for dynamic stage connections, allowing standard CPUs like ARM A9/A15 to process vector instructions and reduce infrastructure needs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If fixed function units are used in traditional GPUs, then parallel code processing is efficient, but the system becomes inflexible and requires custom processors that are ill-suited for scalar code and involve high development costs

Engineering Contradiction:
Improveparallel code processing efficiencyVSAvoidflexibility for scalar code processing
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent employs a standard processing unit that can function both as a scalar processor and as a programmable function unit for parallel processing. The standard processing unit is configured to issue scalar instructions to a scalar data path and vector instructions to vector data paths, allowing it to handle both scalar and parallel code efficiently without requiring separate custom processors.

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

Solution Approach 2:

The system dynamically configures the standard processing unit to emulate different function units of the graphics pipeline as needed. This dynamic reconfiguration allows the same hardware unit to adapt to different processing requirements, switching between scalar and parallel processing modes based on the instruction type being executed.

Inventive Principle:
Principle #15Dynamics

2Productivity

If custom processors are designed for parallel code processing, then parallel processing performance is improved, but device complexity and development costs increase

Engineering Contradiction:
Improveparallel processing performanceVSAvoidprocessor design complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of designing a completely custom processor, the patent uses a standard processing unit that copies or emulates the functionality of traditional GPU function units through software configuration. The standard processing unit is programmed to behave like specific graphics pipeline function units when executing vector instructions, avoiding the need for complex custom hardware design.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

A single standard processing unit serves multiple purposes: it executes scalar instructions for control flow and scalar operations, and it emulates various graphics pipeline function units (such as vertex processing, fragment processing) when executing vector instructions. This multi-functionality eliminates the need for multiple specialized custom processors.

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

3Adaptability or versatility

If a programmable function unit with vector data paths is implemented, then flexibility and scalar code processing are improved, but direct access to vector registers and accelerators is required

Engineering Contradiction:
Improveprogrammability and scalar code supportVSAvoidinterface and connection complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The input output interface acts as an intermediary between the standard processing unit and the vector data paths/accelerators. The standard processing unit issues vector instructions through this interface, which then routes them to the appropriate vector data paths or accelerators. This intermediary approach manages the complexity of direct access requirements while maintaining system flexibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Ease of manufacture

If standard CPUs are used instead of custom processors, then development costs and complexity are reduced, but direct access to vector registers and accelerators must be enabled

Engineering Contradiction:
Improvedevelopment cost and complexityVSAvoidinterface configuration complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The standard processing unit is configured to handle both scalar instructions (for control flow and scalar operations) and vector instructions (for parallel processing). This dual capability allows a commercially available standard CPU to replace custom GPU processors, significantly reducing development costs and complexity while maintaining full graphics processing functionality.

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

Data Source

PatentUS9123128B2Graphics processing unit employing a standard processing unit and a method of constructing a graphics processing unit
Publication Date: 2015.09.01 NVIDIA CORP
  • US9123128B2 patent drawing
  • US9123128B2 patent drawing
  • US9123128B2 patent drawing

AI summary

Employing a general processing unit as a programmable function unit of a graphics pipeline and a method of manufacturing a graphics processing unit are disclosed. In one embodiment, the graphics pipeline includes: (1) accelerators, (2) an input output interface coupled to each of the accelerators and (3) a general processing unit coupled to the input output interface and configured as a programmable function unit of the graphics pipeline, the general processing unit configured to issue vector instructions via the input output interface to vector data paths for the programmable function unit.