Vector Processing Predicate Flag Propagation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face inefficiencies in handling multiple data vectors within loops, particularly in determining when to terminate loop operations based on predicate flags, as they lack effective mechanisms for propagating loop break conditions across data vectors.

Innovation Solution

The introduction of a propagation instruction that derives and applies predicate flags to subsequent data vectors based on the status of predicate flags in preceding vectors, ensuring that if the last-most predicate flags in a preceding vector are inactive, all predicate flags in the current vector are set to inactive, thereby controlling vector processing operations and loop termination.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If vector processing operations are applied to multiple data vectors in loop operations, then processing throughput is improved, but the ability to properly terminate loops based on predicate flags deteriorates due to lack of propagation mechanisms

Engineering Contradiction:
Improveprocessing throughputVSAvoidloop termination accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments the loop termination control into two distinct components: predicate flags that indicate break conditions within data vectors, and propagation flags that carry termination status across data vectors. This segmentation allows vector processing to continue at full speed while maintaining accurate loop termination control through the separate propagation mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A propagation flag acts as an intermediary between predicate flags in different data vectors. When a predicate flag indicates a break condition, the propagation flag carries this termination signal to subsequent data vectors, enabling accurate loop termination control without affecting the high-speed vector processing throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If predicate flags are independently evaluated for each data vector, then processing simplicity is maintained, but loop break conditions cannot be properly propagated across multiple vectors

Engineering Contradiction:
Improvepredicate flag handling simplicityVSAvoidmulti-vector loop processing efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system merges the evaluation of predicate flags with the propagation of their values to subsequent data vectors. By combining these functions into a unified propagation mechanism, the system maintains simple predicate flag evaluation while simultaneously enabling efficient loop break condition propagation across multiple vectors, thus improving multi-vector loop processing efficiency.

Inventive Principle:
Principle #5Merging (Combining)

3Manufacturing precision

If loop operations process all data vectors completely, then data processing completeness is ensured, but unnecessary processing occurs after break conditions are met

Engineering Contradiction:
Improvedata processing completenessVSAvoidunnecessary processing energy
Core Design Contradiction:
Manufacturing precisionVSLoss of energy

Solution Approach 1:

The system performs preliminary evaluation of predicate flags within each data vector before proceeding to subsequent vectors. When a break condition is detected, the propagation flag is set in advance to prevent unnecessary processing of remaining vectors, thus eliminating wasted energy while ensuring that processing is completed up to the break point for data completeness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The propagation flag provides feedback about loop break conditions from one data vector to the next. This feedback mechanism allows the system to immediately stop processing subsequent vectors when a break condition is met, preventing unnecessary energy consumption while maintaining data processing completeness up to the termination point.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3329364B1Data processing
Publication Date: 2022.11.30 ARM LTD
  • EP3329364B1 patent drawingFigure 1
  • EP3329364B1 patent drawingFigure 2~3
  • EP3329364B1 patent drawingFigure 4~6

AI summary

Data processing apparatus comprises processing circuitry to selectively apply a vector processing operation to data items at positions within data vectors according to the states of a set of respective predicate flags associated with the positions, the data vectors having a data vector processing order, each data vector comprising a plurality of data items having a data item order, the processing circuitry comprising: instruction decoder circuitry to decode program instructions; and instruction processing circuitry to execute instructions decoded by the instruction decoder circuitry; wherein the instruction decoder circuitry is responsive to a propagation instruction to control the instruction processing circuitry to derive a set of predicate flags applicable to a current data vector in dependence upon a set of predicate flags applicable to a preceding data vector in the data vector processing order, wherein when one or more last- most predicate flags of the set applicable to the preceding data vector are inactive, all of the derived predicate flags in the set applicable to the current data vector are inactive.