Vector Processing Circuitry Segmented Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face inefficiencies in utilizing vector processing circuitry due to irregular data structures, such as those encountered in sparse matrix multiplication, leading to underutilization of parallel processing lanes and increased energy consumption.

Innovation Solution

A data processing apparatus and method that employs predicate generation circuitry to create per lane predicate information, allowing segmented operations on vector operands, which enables separate operations on each segment while preventing interaction between lanes containing data elements from different segments, thereby optimizing the use of vector processing circuitry.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If vector processing circuitry is used to perform operations on irregular data structures, then processing speed is improved, but utilization of processing lanes deteriorates due to varying numbers of data elements per iteration

Engineering Contradiction:
Improveprocessing speedVSAvoidutilization of processing lanes
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent divides the vector operand into multiple segments, where each segment contains a contiguous subsequence of data elements. This segmentation allows the vector processing circuitry to independently process different segments in different lanes, enabling efficient handling of irregular data structures by processing only the relevant portions in each lane rather than requiring all lanes to process the same number of elements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different processing characteristics to different segments of the vector operand. Each segment can be processed with appropriate lane assignments and operation types tailored to its specific requirements. This local quality approach allows optimal utilization of processing lanes by matching the processing characteristics to the local data requirements rather than applying a uniform processing approach across all data elements.

Inventive Principle:
Principle #3Local quality

2Adaptability or versatility

If the number of processing lanes is increased to handle irregular data structures, then processing capability is improved, but energy consumption deteriorates due to activating more lanes than necessary

Engineering Contradiction:
Improveprocessing capabilityVSAvoidenergy consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent dynamically assigns processing lanes to segments based on the actual data requirements of each iteration. The lane assignment is not fixed but adapts to the varying numbers of data elements in different segments. This dynamic approach allows the system to activate only the necessary number of lanes for each processing iteration, improving adaptability while minimizing energy consumption by avoiding activation of excess lanes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent processes only the necessary portions of data in each lane rather than requiring all lanes to process the full dataset. By applying partial action, the system activates and processes data only in the lanes and segments where it is needed, avoiding the excessive energy consumption that would result from activating all lanes for every iteration regardless of actual data requirements.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If segmented operations are implemented to handle irregular data structures, then data processing efficiency is improved, but device complexity deteriorates due to additional predicate generation circuitry

Engineering Contradiction:
Improvedata processing efficiencyVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent generates predicate information in advance, before the actual vector processing operations are executed. This preliminary generation of segmentation predicates allows the segmented operations to proceed efficiently during execution without requiring complex real-time decision-making logic in the processing lanes. The predicate generation circuitry prepares the necessary control information beforehand, simplifying the overall device complexity while maintaining high data processing efficiency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9557995B2Data processing apparatus and method for performing segmented operations
Publication Date: 2017.01.31 ARM LTD
  • US9557995B2 patent drawing
  • US9557995B2 patent drawing
  • US9557995B2 patent drawing

AI summary

A data processing apparatus and method are provided for performing segmented operations. The data processing apparatus comprises a vector register store for storing vector operands, and vector processing circuitry providing N lanes of parallel processing, and arranged to perform a segmented operation on up to N data elements provided by a specified vector operand, each data element being allocated to one of the N lanes. The up to N data elements forms a plurality of segments, and performance of the segmented operation comprises performing a separate operation on the data elements of each segment, the separate operation involving interaction between the lanes containing the data elements of the associated segment. Predicate generation circuitry is responsive to a compute descriptor instruction specifying an input vector operand comprising a plurality of segment descriptors, to generate per lane predicate information used by the vector processing circuitry when performing the segmented operation to maintain a boundary between each of the plurality of segments. As a result, interaction between lanes containing data elements from different segments is prevented. This allows very effective utilisation of the lanes of parallel processing within the vector processing circuitry to be achieved.