Vector Processing Units for Matrix-Vector Calculations
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing SIMD data processing systems face inefficiencies due to the need for additional control bits and increased complexity when attempting to enhance instruction execution parallelism, which can offset the benefits of parallel computation and complicate data movement between processing units and storage locations.
Innovation Solution
The system employs a data processing apparatus with functional units that operate as predetermined groups on vector input operands, performing matrix-vector calculations using non-identity matrices populated by or generated from the operands, allowing for increased parallelism without requiring extensive control bits or complex interconnections, thereby optimizing instruction execution and memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If more functional units are added to increase parallel computation capability, then instruction execution parallelism is improved, but device complexity and control bit requirements increase
Solution Approach 1:
The patent segments data into vector elements that can be processed in parallel by multiple functional units. Each vector element is processed independently through the same functional units, eliminating the need for separate control bits for each data element while maintaining parallelism.
Solution Approach 2:
The patent implements universal functional units that can process multiple data elements simultaneously through vector operations. The same functional units handle different vector elements without requiring separate control mechanisms, achieving multi-functionality that reduces control complexity.
2Device complexity
If constraints are imposed on data movements to reduce control complexity, then device complexity is reduced, but compiler performance and computational performance deteriorate
Solution Approach 1:
The patent transitions from scalar data processing to vector data processing, adding a dimension of data organization. By operating on vectors of multiple elements simultaneously, the system achieves parallelism without additional control complexity, as the vector structure itself provides the organization needed for efficient data movement.
3Speed
If SIMD operations are used to process multiple data values in parallel, then processing speed is improved, but code size and complexity increase due to special provisions needed to combine data-sets
Solution Approach 1:
The patent merges multiple data elements into vector structures that can be processed together by the same functional units. This combining approach allows parallel processing while using standard operational patterns, avoiding the need for special code provisions to handle different data sets separately.
Data Source
AI summary
A data processing apparatus comprises data processing logic operable to perform data processing operations specified by program instructions. The data processing logic (140) has a plurality of functional units (142, 144, 146) configured to execute in parallel on data received from a data source. A decoder (130) is responsive to a single program instruction to control the data processing logic (140) to concurrently execute the single program instruction on each of a plurality of vector elements of each of a respective plurality of vector input operands (310, 320) received from the data source using the plurality of functional units (142, 144, 146). During execution of the single program instruction, the plurality of functional units (142, 144, 146) operate as a predetermined group on said plurality of vector elements (310, 320) to perform at least a matrix-vector calculation in which the matrix is a non-identity matrix and entries of the matrix are one of:(i) populated in dependence upon at least one of said vector elements of at least one of the plurality of vector input operands; and(ii) generated within said data processing logic as an explicit function of the single program instruction.


