Vector Interleaving Instruction for Data Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing apparatuses face limitations in vectorized processing due to constraints on data processing operations and operand combinations, which can render the advantages of vectorized approaches less effective and increase hardware complexity.

Innovation Solution

The implementation of a vector interleaving instruction that retrieves input data items from multiple source registers, performs data processing operations on selected pairs, and stores result items in a destination register based on source register dependencies, allowing for flexible and efficient data processing with reduced hardware complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If vectorized processing is applied to process groups of data items in parallel, then processing efficiency and throughput are improved, but limitations are imposed on the kinds of data processing operations and operand combinations that can be performed

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata processing operation flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The destination register is segmented into multiple sets of positions (first set of alternating positions, second set of alternating positions) that can independently receive result data items from different source registers. This segmentation allows the system to maintain vectorized parallel processing while accommodating multiple operand combinations and data processing operations simultaneously, as each segment can be independently configured for different data dependencies.

Inventive Principle:
Principle #1Segmentation

2Productivity

If vectorized processing is applied to process groups of data items in parallel, then throughput is improved, but hardware complexity increases to support the additional functionality

Engineering Contradiction:
ImprovethroughputVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Different positions within the destination register have different local qualities or characteristics - specifically, positions are divided into alternating sets that receive data from different source registers. This local differentiation allows the hardware to efficiently support multiple operand combinations without requiring completely separate processing paths, as the same physical register structure is utilized with position-dependent data routing.

Inventive Principle:
Principle #3Local quality

3Productivity

If result data items are stored in alternating positions based on source register dependencies, then efficient utilization of destination register is achieved, but complexity in data routing and control is increased

Engineering Contradiction:
Improvedestination register utilizationVSAvoiddata routing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The data routing configuration is made dynamic through the vector interleaving instruction, which allows the destination register positions to be dynamically assigned to different source registers based on the specific operation requirements. This dynamic configurability enables efficient register utilization for varying operand combinations without requiring dedicated static routing paths for each possible operation type.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3655852B1Vector interleaving in a data processing apparatus
Publication Date: 2023.09.13 ARM LTD
  • EP3655852B1 patent drawingFigure 1
  • EP3655852B1 patent drawingFigure 2A~2B
  • EP3655852B1 patent drawingFigure 3A~3B

AI summary

Vector interleaving techniques in a data processing apparatus are disclosed, comprising apparatuses, instructions, methods of operating the apparatuses, and simulator implementations. A vector interleaving instruction specifies a first source register, second source register, and destination register. A first set of input data items is retrieved from the first source register and a second set of input data items from the second source register. A data processing operation is performed on selected input data item pairs taken from the first and second set of input data items to generate a set of result data items, which are stored as a result data vector in the destination register. First source register dependent result data items are stored in a first set of alternating positions in the destination data vector and second source register dependent result data items are stored in a second set of alternating positions in the destination data vector.