Vector Gather-Op Instruction Mask Register Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face performance bottlenecks due to complex and noncontiguous memory access patterns in wide vector architectures, particularly during gather and scatter operations, which can lead to significant delays and reduced instruction throughput.

Innovation Solution

The implementation of vector scatter-op and gather-op instructions that utilize a mask register to manage data elements, allowing for efficient gathering and scattering of data from non-local memory locations, with mechanisms to handle interruptions and optimize pipeline performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If gather operations are used to collect data from noncontiguous memory locations, then data access flexibility is improved, but instruction throughput deteriorates due to multiple memory accesses and page faults

Engineering Contradiction:
Improvedata access flexibilityVSAvoidinstruction throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The gather operation is divided into multiple segments or waves. Instead of executing all gather operations in a single instruction, the processor breaks them into chunks that can be executed in parallel or overlapped with other operations. This segmentation allows the system to maintain data access flexibility while improving throughput by processing multiple segments concurrently.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The processor performs preliminary actions by pre-fetching data from memory locations before the actual gather operation is needed. By anticipating memory access requirements and loading data into cache or buffer memory in advance, the system reduces the impact of page faults and memory access delays on instruction throughput.

Inventive Principle:
Principle #10Preliminary action

2Power

If wide vector architecture is used to increase computational parallelism, then processing capability is improved, but memory access complexity increases leading to performance bottlenecks

Engineering Contradiction:
Improveprocessing capabilityVSAvoidmemory access complexity
Core Design Contradiction:
PowerVSDevice complexity

Solution Approach 1:

The patent introduces intermediary structures such as buffer memory, cache, and descriptor tables that mediate between the wide vector operations and the underlying memory system. These intermediaries simplify memory access patterns by converting complex noncontiguous access requirements into more manageable forms, reducing the burden on the memory subsystem while maintaining high processing capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system adds temporal and organizational dimensions to memory access by using multi-level caching, buffer memory, and staged processing. Instead of directly mapping wide vector operations to memory, the patent introduces intermediate stages that organize data flow in time and space, transforming complex simultaneous memory accesses into a sequence of simpler operations across multiple dimensions.

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

3Reliability

If multiple memory accesses are performed for gather operations, then data collection completeness is improved, but execution time increases causing delays for dependent operations

Engineering Contradiction:
Improvedata collection completenessVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements continuous data collection by overlapping memory accesses with computation. While gather operations are performing multiple memory accesses to ensure complete data collection, the system continuously processes already-available data through computation pipelines. This continuity eliminates idle time and ensures that dependent operations can begin processing as soon as data becomes available, rather than waiting for complete data collection.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system performs preliminary data collection for operations that are likely to be needed soon. By anticipating which data elements will be required for subsequent operations and pre-loading them into fast memory or registers, the system ensures data collection completeness while minimizing the time impact on dependent operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9747101B2Gather-op instruction to duplicate a mask and perform an operation on vector elements gathered via tracked offset-based gathering
Publication Date: 2017.08.29 INTEL CORP
  • US9747101B2 patent drawing
  • US9747101B2 patent drawing
  • US9747101B2 patent drawing

AI summary

Instructions and logic provide vector scatter-op and/or gather-op functionality. In some embodiments, responsive to an instruction specifying: a gather and a second operation, a destination register, an operand register, and a memory address; execution units read values in a mask register, wherein fields in the mask register correspond to offset indices in the indices register for data elements in memory. A first mask value indicates the element has not been gathered from memory and a second value indicates that the element does not need to be, or has already been gathered. For each having the first value, the data element is gathered from memory into the corresponding destination register location, and the corresponding value in the mask register is changed to the second value. When all mask register fields have the second value, the second operation is performed using corresponding data in the destination and operand registers to generate results.