Dynamic Vector-Length Loops for Recompilation-Free Processing
Find Innovative SolutionsGenerate 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
Engineering 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
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).
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.
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
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.
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.
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
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.
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.
Data Source
Figure 1
Figure 2~3
Figure 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.