Gather/Scatter Memory Coalescing via Fused Micro-Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

General-purpose instruction set architectures face challenges in supporting gather/scatter instructions, which access multiple disjoint memory locations, leading to bottlenecks and inefficiencies in processing due to the need for decoding into numerous micro-operations, especially in modern CPU cores.

Innovation Solution

A speculative prediction-based mechanism is implemented, allowing micro-operations from gather/scatter instructions to be fused in the front-end pipeline, combined with enhancements in the back-end pipeline structures like the load reorder queue and store reorder queue, to coalesce memory accesses and optimize performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If gather/scatter instructions are decoded into multiple micro-operations, then the instructions can be executed on general-purpose instruction set architectures, but the processing efficiency deteriorates due to the large number of micro-operations required

Engineering Contradiction:
Improvesupport for gather/scatter instructionsVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

Multiple micro-operations that implement gather/scatter instructions are merged into a single fused micro-operation. The fused micro-operation contains control fields that enable the execution unit to perform multiple memory access operations (loads or stores) in one unified execution step, rather than requiring separate micro-operations for each access. This merging dramatically improves processing efficiency while maintaining support for these instructions in general-purpose architectures.

Inventive Principle:
Principle #5Merging (Combining)

2Ease of operation

If multiple micro-operations are used for gather/scatter instructions, then the instructions can be processed, but the number of operations increases leading to bottlenecks in the pipeline

Engineering Contradiction:
Improveinstruction processing capabilityVSAvoidnumber of micro-operations
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The fused micro-operation is segmented into distinct control fields within its opcode structure. These fields include a base address field, an offset field, a count field specifying the number of elements, and control bits that indicate whether the operation is a gather or scatter. This segmentation allows the execution unit to efficiently decode and execute the complex operation without requiring multiple separate micro-operations, thereby reducing pipeline complexity while maintaining full processing capability.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If gather/scatter instructions access multiple disjoint memory locations, then flexible data access patterns are enabled, but memory access efficiency deteriorates due to poor coalescing

Engineering Contradiction:
Improvedata access pattern flexibilityVSAvoidmemory access efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The fused micro-operation performs preliminary actions by pre-calculating effective addresses and organizing memory access patterns before actual memory access occurs. The execution unit uses the base address, offset, and count fields to determine all target memory locations in advance, then coalesces accesses to the same memory location or adjacent locations. This preliminary organization enables efficient memory access even for instructions that access multiple disjoint locations, improving productivity while maintaining the flexibility to handle various data access patterns.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11567771B2Method and apparatus for back end gather/scatter memory coalescing
Publication Date: 2023.01.31 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11567771B2 patent drawing
  • US11567771B2 patent drawing
  • US11567771B2 patent drawing

AI summary

A system for processing gather and scatter instructions can implement a front-end subsystem, a back-end subsystem, or both. The front-end subsystem includes a prediction unit configured to determine a predicted quantity of coalesced memory access operations required by an instruction. A decode unit converts the instruction into a plurality of access operations based on the predicted quantity, and transmits the plurality of access operations and an indication of the predicted quantity to an issue queue. The back-end subsystem includes a load-store unit that receives a plurality of access operations corresponding to an instruction, determines a subset of the plurality of access operations that can be coalesced, and forms a coalesced memory access operation from the subset. A queue stores multiple memory addresses for a given load-store entry to provide for execution of coalesced memory accesses.