SIMD Gather Copy Buffer for Non-Contiguous Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional SIMD implementations of gather and scatter operations are inefficient due to serialization, variable latency, and high power consumption, especially when dealing with non-contiguous memory locations, leading to poor performance and increased latency.

Innovation Solution

Implementing a SIMD gather operation with a gather result buffer located within or near the memory to receive data from multiple orthogonal locations, and then transferring the data to a processor register using a single instruction, while performing SIMD copy operations directly within the memory without intermediate register copies, allowing for out-of-order execution and reduced latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If multiple load instructions are used to serially load each data element into its respective location in the vector destination register, then the gather operation can be implemented, but the performance deteriorates due to serialization and variable latency

Engineering Contradiction:
Improveimplementation feasibilityVSAvoidexecution performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The gather operation is segmented into multiple independent load instructions, each responsible for loading a specific data element from its source address to its destination register location. This segmentation allows each load instruction to be executed independently and in parallel, eliminating serialization overhead while maintaining implementation simplicity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from sequential execution in time to parallel execution across multiple processing lanes. By organizing the gather operation as a vector instruction with multiple lanes, each lane can simultaneously execute its assigned load instruction, moving the operation from a single-threaded temporal sequence to a multi-threaded spatial parallelism model.

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

2Device complexity

If component load instructions are implemented to update the vector destination register in-order, then simplicity is maintained, but latency cannot be hidden and performance suffers

Engineering Contradiction:
Improveupdate mechanism complexityVSAvoidexecution latency
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent introduces dynamic update mechanisms where the vector destination register can be updated out-of-order based on completion status of individual load instructions. Each lane can complete its load independently and update the destination register as soon as data is ready, rather than waiting for all lanes to complete in sequence. This dynamic approach allows latency to be hidden through overlapping execution of multiple lanes.

Inventive Principle:
Principle #15Dynamics

3Loss of time

If out-of-order updates of the vector destination register are enabled, then latency can be hidden, but additional registers and tracking mechanisms are required increasing hardware complexity

Engineering Contradiction:
Improvelatency hiding capabilityVSAvoidhardware support requirements
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent implements a universal tracking mechanism that serves multiple purposes: it tracks the completion status of each lane's load instruction, manages out-of-order updates to the destination register, and coordinates with the scatter operation. This multi-functional tracker reduces the need for separate dedicated hardware for each function, thereby limiting the increase in overall hardware complexity while enabling out-of-order execution and latency hiding.

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

4Adaptability or versatility

If a SIMD gather followed by a SIMD scatter is used to execute a SIMD copy, then copying functionality is achieved, but power consumption increases due to large data transfers between memory and processor

Engineering Contradiction:
Improvecopy operation functionalityVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent merges the gather and scatter operations into a single unified SIMD copy instruction. The data elements are loaded from source memory locations and stored to destination memory locations in a single atomic operation, eliminating the intermediate transfer to and from processor registers. This merging reduces the total data movement between memory and processor, thereby reducing power consumption while maintaining full copy functionality.

Inventive Principle:
Principle #5Merging (Combining)

5Ease of operation

If intermediate register transfers are performed in SIMD copy operations, then data movement is simplified, but latency increases due to additional transfer steps

Engineering Contradiction:
Improvedata movement simplicityVSAvoidoperation latency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent extracts and eliminates the intermediate register transfer step from the traditional gather-scatter sequence. By implementing a direct memory-to-memory copy mechanism within the unified SIMD copy instruction, data moves directly from source memory locations to destination memory locations without being intermediated by processor registers, thereby reducing latency while maintaining operational simplicity through the unified instruction interface.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP3475808B1Method and apparatus for performing SIMD gather and copy operations
Publication Date: 2021.04.14 QUALCOMM INC
  • EP3475808B1 patent drawingFigure 1
  • EP3475808B1 patent drawingFigure 2
  • EP3475808B1 patent drawingFigure 3

AI summary

Systems and methods relate to efficient memory operations. A single instruction multiple data (SIMD) gather operation is implemented with a gather result buffer located within or in close proximity to memory, to receive or gather multiple data elements from multiple orthogonal locations in a memory, and once the gather result buffer is complete, the gathered data is transferred to a processor register. A SIMD copy operation is performed by executing two or more instructions for copying multiple data elements from multiple orthogonal source addresses to corresponding multiple destination addresses within the memory, without an intermediate copy to a processor register. Thus, the memory operations are performed in a background mode without direction by the processor.