Mixed-Width SIMD Instruction Using Register Pair for Even and Odd Elements

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional mixed-width SIMD instructions require decomposition into multiple component instructions, leading to increased code size and power wastage due to unnecessary data movements and hardware requirements.

Innovation Solution

A single mixed-width SIMD instruction is implemented, where one vector operand is expressed as a pair of registers and the other as a single register, allowing efficient execution by minimizing data movement across SIMD lanes and reducing code size.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If mixed-width SIMD operations are implemented using conventional approaches, then the operations can be executed, but code size increases and power is wasted due to multiple component instructions

Engineering Contradiction:
Improvecode sizeVSAvoidnumber of component instructions
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent combines multiple component SIMD instructions into a single mixed-width SIMD instruction that can operate on both even-numbered and odd-numbered data elements simultaneously. This merging eliminates the need for separate instructions, reducing code size while maintaining the capability to handle mixed-width operations efficiently

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The invention creates a universal SIMD instruction format that can handle multiple data element widths (e.g., 8-bit, 16-bit, 32-bit) within a single instruction. This multi-functional instruction replaces multiple specialized instructions, reducing overall code size and improving execution efficiency

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

2Productivity

If mixed-width SIMD operations use multiple component instructions, then all data elements can be processed, but data movement across SIMD lanes increases

Engineering Contradiction:
Improvedata processing efficiencyVSAvoiddata movement
Core Design Contradiction:
ProductivityVSLoss of substance

Solution Approach 1:

The patent segments the data elements within a single SIMD instruction into even-numbered and odd-numbered groups, allowing each group to be processed independently but simultaneously. This segmentation enables efficient data movement by keeping related data elements in their respective lanes without requiring additional cross-lane movements that would occur with multiple sequential instructions

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If conventional SIMD instructions are used with uniform data elements, then execution is simple, but mixed-width operations require complex decomposition

Engineering Contradiction:
Improveinstruction execution simplicityVSAvoidinstruction decomposition complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces an asymmetric instruction format where a single mixed-width SIMD instruction inherently handles different data element widths (e.g., some 8-bit elements and some 16-bit elements) within the same operation. This asymmetric design eliminates the need for symmetric decomposition into multiple uniform-width instructions, simplifying the operation while reducing complexity

Inventive Principle:
Principle #4Asymmetry

Data Source

PatentEP3326060B1Mixed-width SIMD operations having even-element and odd-element operations using register pair for wide data elements
Publication Date: 2020.03.25 QUALCOMM INC
  • EP3326060B1 patent drawingFigure 1A~1B
  • EP3326060B1 patent drawingFigure 1C
  • EP3326060B1 patent drawingFigure 2A~2B

AI summary

Systems and methods relate to a mixed-width single instruction multiple data (SIMD) instruction which has at least a source vector operand comprising data elements of a first bit-width and a destination vector operand comprising data elements of a second bit-width, wherein the second bit-width is either half of or twice the first bit-width. Correspondingly, one of the source or destination vector operands is expressed as a pair of registers, a first register and a second register. The other vector operand is expressed as a single register. Data elements of the first register correspond to even-numbered data elements of the other vector operand expressed as a single register, and data elements of the second register correspond to data elements of the other vector operand expressed as a single register.