Index Array Finite State Machine Scatter Gather Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current technologies face performance bottlenecks and inefficiencies in memory access and data ordering for wide SIMD operations, particularly in scatter and gather operations, due to noncontiguous memory locations and page faults, which increase clock cycles and reduce instruction throughput.

Innovation Solution

The implementation of an index array and finite state machine facilitates scatter and gather operations by generating addresses and tracking completion masks without requiring multiple micro-operations, improving instruction throughput by parallel execution with other instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If gather operations are implemented to collect data from noncontiguous memory locations, then data access flexibility is improved, but the number of clock cycles required increases due to multiple memory accesses and potential page faults

Engineering Contradiction:
Improvedata access flexibilityVSAvoidclock cycles required
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by saving the state of gather operations in a state save buffer before interruption occurs. When a page fault or interrupt happens during a gather operation, the saved state allows the operation to be restarted from the point of interruption rather than being repeated from the beginning, thereby reducing the clock cycles lost due to interrupts while maintaining the flexibility of accessing noncontiguous memory locations

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism - a state save buffer - that stores the state information of gather operations. This intermediary structure enables the system to resume operations after interrupts without losing progress, effectively mediating between the need for flexible memory access and the cost of interrupt handling in terms of clock cycles

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If completion masks are used to track completion of individual loads and stores, then operation tracking accuracy is improved, but device complexity increases due to additional physical register storage requirements

Engineering Contradiction:
Improveoperation tracking accuracyVSAvoidphysical register storage
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies universality by designing the state save buffer to serve multiple functions: it tracks completion of gather operations, stores state information for interruption recovery, and manages the coordination between multiple memory access operations. This multi-functional approach achieves precise operation tracking without requiring separate dedicated storage structures for each function, thereby reducing overall device complexity

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

Solution Approach 2:

The patent merges the completion mask functionality with the state save buffer mechanism. Instead of maintaining separate completion masks and state information, the buffer integrates both functions into a unified structure that tracks operation completion status while also preserving state for interruption recovery, reducing the total physical register storage required

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If scatter operations disperse elements to noncontiguous memory locations, then data organization flexibility is improved, but instruction throughput decreases due to serialization requirements for fault resolution

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

Solution Approach 1:

The patent applies preliminary action by pre-saving the state of scatter operations before interrupts occur. When page faults happen during scattered memory accesses, the saved state enables parallel recovery and continuation of multiple scatter operations rather than serial execution, thereby maintaining high instruction throughput while preserving the flexibility of dispersing data to noncontiguous memory locations

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10146737B2Gather using index array and finite state machine
Publication Date: 2018.12.04 INTEL CORP
  • US10146737B2 patent drawing
  • US10146737B2 patent drawing
  • US10146737B2 patent drawing

AI summary

Methods and apparatus are disclosed for using an index array and finite state machine for scatter/gather operations. Embodiment of apparatus may comprise: decode logic to decode a scatter/gather instruction and generate a set of micro-operations, and an index array to hold a set of indices and a corresponding set of mask elements. A finite state machine facilitates the gather operation. Address generation logic generates an address from an index of the set of indices for at least each of the corresponding mask elements having a first value. An address is accessed to load a corresponding data element if the mask element had the first value. The data element is written at an in-register position in a destination vector register according to a respective in-register position the index. Values of corresponding mask elements are changed from the first value to a second value responsive to completion of their respective loads.