Dynamic Vector-Length Loops for Recompilation-Free Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing vector processing systems face inefficiencies when executing loops across different instances of vector processing circuitry with varying vector lengths without recompilation, as they either fix a notional vector length to the smallest available or fail to utilize larger lengths, leading to suboptimal performance.

Innovation Solution

The implementation of a CHANGE instruction that modifies loop control variables based on predicate flags, allowing loop operations to adapt to the available vector length, and a WHILE instruction to control loop execution, ensuring efficient loop termination and vector processing across different vector lengths without recompilation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a notional vector length is fixed to the smallest available length to ensure compatibility across different vector processing circuitries, then the system can execute loops without recompilation, but the processing efficiency is reduced due to underutilization of larger vector lengths

Engineering Contradiction:
Improvecompatibility across different vector processing circuitriesVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies dynamics by making the loop control variable modification amount variable rather than fixed. The CHANGE instruction dynamically adjusts the modification amount based on the actual vector length of the executing circuitry, allowing the system to adapt to different vector lengths at runtime without recompilation. This resolves the contradiction by enabling both compatibility (through dynamic adaptation) and efficiency (by utilizing actual vector lengths).

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of loop control variable modification amount from a fixed value to a variable value that depends on the actual vector length. The CHANGE instruction modifies the loop control variable by an amount that reflects the actual vector length of the executing circuitry, rather than using a fixed notional length. This parameter change enables the system to maintain compatibility while optimizing for actual hardware capabilities.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If the loop control variable is modified by a fixed amount in each iteration, then the loop execution is simple and predictable, but it causes counter overflow or underflow when executed on circuitries with different vector lengths

Engineering Contradiction:
Improveloop control simplicityVSAvoidcounter overflow prevention
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent changes the modification parameter from a fixed constant to a variable that reflects the actual vector length. The CHANGE instruction uses the actual vector length of the executing circuitry to determine the modification amount, which prevents overflow and underflow issues that would occur with fixed modifications on variable-length circuitries.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements feedback by having the loop control mechanism respond to the actual vector length of the executing circuitry. The CHANGE instruction receives information about the actual vector length and adjusts the modification amount accordingly, creating a feedback loop that ensures correct operation across different hardware configurations.

Inventive Principle:
Principle #23Feedback

3Productivity

If vector processing instructions are applied to data vectors with varying lengths across different circuitry instances, then processing efficiency is maximized for each instance, but the system requires recompilation to adapt to different vector lengths

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidrecompilation requirement
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent applies dynamics by enabling the loop control mechanism to adapt dynamically to different vector lengths at runtime without requiring recompilation. The CHANGE instruction allows the program to self-adjust based on the actual vector length of the executing circuitry, eliminating the need for recompilation while maintaining optimal processing efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a universal loop control mechanism that can operate correctly on vector processing circuitries with any vector length. The CHANGE instruction provides multi-functionality by handling both the loop control and the adaptation to different vector lengths within a single mechanism, making the software portable across different hardware instances without recompilation.

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

Data Source

PatentEP3329365B1Vector processing using loops of dynamic vector length
Publication Date: 2025.10.01 ARM LTD
  • EP3329365B1 patent drawingFigure 1
  • EP3329365B1 patent drawingFigure 2~3
  • EP3329365B1 patent drawingFigure 4~6

AI summary

Data processing apparatus comprises processing circuitry to selectively apply vector processing operations to one or more data items of a data vector comprising a plurality of data items at respective positions in the data vector, according to the state of respective predicate flags associated with the positions; 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 WHILE instruction and a CHANGE instruction, to control the instruction processing dependent upon a number of the predicate flags.