Vector Outer Product Instruction for Better Array Utilization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face inefficiencies in utilizing array storage and processing circuitry resources when performing outer product operations, particularly when the dimensions of the source vectors are smaller than the two-dimensional array, leading to underutilization of storage elements and hardware resources.

Innovation Solution

A multiple outer product instruction is introduced that allows for performing multiple outer product operations in parallel by treating source vector operands as comprising sub-vectors, enabling efficient utilization of storage elements and hardware resources through the use of selection circuitry to switch between vectors and sub-vectors during operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single outer product operation is performed per instruction, then the operation is simple and easy to implement, but the utilization of storage elements and processing resources is inefficient

Engineering Contradiction:
Improveresource utilizationVSAvoidinstruction complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the source vector into multiple sub-vectors, allowing a single instruction to perform multiple outer product operations simultaneously. Each sub-vector is processed independently, enabling parallel computation that improves resource utilization while maintaining instruction-level simplicity through automated sub-vector management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of operation by enabling multiple outer product operations to execute in parallel within a single instruction cycle. This transforms the traditional sequential single-operation instruction into a multi-operation instruction, effectively adding temporal and operational dimensions to improve throughput and resource utilization.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If the source vector dimensions are smaller than the two-dimensional array, then the array storage capacity is underutilized, but increasing vector dimensions increases operation complexity

Engineering Contradiction:
Improvestorage utilizationVSAvoidoperation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the source vector into sub-vectors that can be systematically combined with different portions of the destination array. This segmentation allows the operation to efficiently utilize storage elements by mapping sub-vector operations to specific array regions, improving storage utilization without requiring increased vector dimensions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic selection of data elements from the source vector based on the sub-vector being processed. This dynamic approach allows flexible mapping of operations to storage elements, enabling efficient utilization of the destination array capacity regardless of the original vector dimensions while managing complexity through automated selection logic.

Inventive Principle:
Principle #15Dynamics

3Productivity

If multiple outer product operations are performed in parallel, then throughput is enhanced, but the selection and switching between vectors becomes more complex

Engineering Contradiction:
ImprovethroughputVSAvoidselection circuitry complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the source vector into distinct sub-vectors, each associated with specific storage elements in the destination array. This segmentation enables parallel processing by clearly defining independent operation units, improving throughput while managing selection complexity through structured sub-vector identification and processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The processing circuitry automatically manages the selection and switching between vectors and sub-vectors during parallel outer product operations. The system self-regulates the data element selection process based on the sub-vector being processed, eliminating the need for complex external control mechanisms and reducing overall system complexity while maintaining high throughput.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20250362909A1Technique for performing outer product operations
Publication Date: 2025.11.27 ARM LTD
  • US20250362909A1 patent drawing
  • US20250362909A1 patent drawing
  • US20250362909A1 patent drawing

AI summary

An apparatus has processing circuitry to perform vector operations, an instruction decoder to decode instructions to control the processing circuitry to perform associated vector operations, and array storage comprising storage elements to store data elements, the array storage storing at least one two dimensional array of data elements. The set of instructions includes a multiple outer product instruction identifying a first source vector operand, a second source vector operand, and a given two dimensional array of data elements within the array storage forming a destination operand. At least the first source vector operand identifies at least one vector of data elements to be treated as comprising a plurality of sub-vectors and at least the second source vector operand identifies a plurality of vectors of data elements. In response to the multiple outer product instruction, the instruction decoder controls the processing circuitry to perform an outer product operation for each sub-vector identified by the first source vector operand. Each outer product operation comprises multiplying each data element of an associated sub-vector identified by the first source vector operand by each data element of a group of data elements selected from the second source vector operand in order to generate a plurality of outer product results, and using each outer product result to update a value held in an associated storage element within the given two dimensional array of storage elements. Selection circuitry controls selection of the data elements processed by each outer product operation so as to switch between vectors of the second source vector operand when switching between different sub-vectors within a given vector of the first source vector operand.