Programmable GPU Using General Processing Unit
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If custom processors are designed for parallel code processing, then parallel processing performance is improved, but device complexity and development costs increase
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.
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.
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
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.
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
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.
Data Source
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.


