Lane-Based Strided Scatter Vector Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face challenges in efficiently executing complex instructions, such as floating-point operations and data moves, which require more execution time and resources, impacting overall throughput and performance, especially in applications like multimedia and internet services.

Innovation Solution

The introduction of lane-based strided scatter operations and extended vector instructions, such as VPSCATTER, allows for efficient reorganization and storage of data elements within vector registers, enabling parallel processing and improved pipeline throughput by allowing data elements to be stored and retrieved in a manner that optimizes memory access and processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional sequential data storage and processing methods are used, then memory access simplicity is maintained, but processing speed and throughput are reduced

Engineering Contradiction:
Improveprocessing speedVSAvoiddata organization complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments data organization into lane-based units (e.g., 4 lanes of 32 elements each) within vector registers. Each lane can be independently accessed and processed, allowing parallel scatter operations to different memory locations while maintaining organized data structures. This segmentation enables multiple data elements to be processed simultaneously without requiring complex inter-element dependencies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of organization by mapping vector register elements to multiple memory addresses through strided scatter operations. Instead of sequential linear mapping, data elements are distributed across memory space using stride patterns (e.g., element i goes to address base + i*stride). This dimensional transformation enables parallel memory access patterns that improve throughput while the hardware manages the complexity.

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

2Adaptability or versatility

If complex instructions like floating-point operations are executed, then computational capability is improved, but execution time increases

Engineering Contradiction:
Improvecomputational capabilityVSAvoidexecution time
Core Design Contradiction:
Adaptability or versatilityVSDuration of action of moving object

Solution Approach 1:

The patent merges multiple simple operations into a single compound scatter instruction (VPSCATTER). This instruction combines data movement, address calculation, and memory storage operations into one atomic instruction that operates on multiple data elements simultaneously. By merging these operations, the patent reduces the total number of instruction cycles needed compared to executing separate instructions for each data element, thereby reducing overall execution time while maintaining computational versatility.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If more data elements are processed in parallel, then throughput is improved, but resource requirements increase

Engineering Contradiction:
ImprovethroughputVSAvoidresource requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent creates universal vector register files and execution units that can handle multiple data types (integers, floating-point, different precisions) and multiple operation types (scatter, gather, arithmetic) through the same hardware resources. The lane-based architecture allows the same physical registers and execution logic to process different numbers of elements in parallel by adjusting the active lane count, thereby achieving high throughput without proportionally increasing resource requirements.

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

Data Source

PatentEP3394723B1Instructions and logic for lane-based strided scatter operations
Publication Date: 2021.12.01 INTEL CORP
  • EP3394723B1 patent drawingFigure 1A
  • EP3394723B1 patent drawingFigure 1B
  • EP3394723B1 patent drawingFigure 1C

AI summary

A processor includes an execution unit to execute lane-based strided scatter instructions. The execution unit includes logic to extract a first data element from each of multiple lanes within a source vector register and to extract a second data element from each lane. The execution unit includes logic to place, in a destination vector, the first data element extracted from the second lane next to the first data element extracted from the first lane, and the second data element extracted from the second lane next to the second data element extracted from the first lane. The execution unit includes logic to store each collection of data elements placed next to each other in the destination vector in contiguous locations beginning at an address computed from a base address and a respective element of an index register specified in the instruction. Each collection of data elements represents a data structure.