Indirect Memory Fetch Unit for Sparse Operand Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor architectures are inefficient in handling indirect memory accesses due to irregular and sparse access patterns, leading to wasted cache capacity and memory bandwidth, and increased latency, which hinders performance in big data analysis and other applications.

Innovation Solution

An indirect memory fetch unit is introduced to offload indirect memory accesses from the processing engine, autonomously fetching data from memory and storing it in a FIFO queue, allowing the processor to perform other tasks while waiting for data, thus improving cache and memory bandwidth usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If conventional caching systems are used for indirect memory accesses, then cache capacity is utilized, but cache efficiency deteriorates due to irregular access patterns and data eviction before reuse

Engineering Contradiction:
Improvecache capacity utilizationVSAvoidcache efficiency
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent extracts the indirect memory access function from the conventional caching system by introducing a dedicated indirect memory fetch unit. This specialized unit handles irregular access patterns separately, allowing the main cache to focus on regular access patterns where it is effective, thereby resolving the contradiction between cache capacity utilization and cache efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The memory access system is segmented into two paths: conventional caching for regular access patterns and a dedicated indirect memory fetch unit for irregular patterns. This segmentation allows each component to optimize for its specific workload, improving overall system efficiency while maintaining cache capacity utilization.

Inventive Principle:
Principle #1Segmentation

2Reliability

If threads wait for data from main memory, then data accuracy is ensured, but processing speed deteriorates due to halted threads

Engineering Contradiction:
Improvedata accuracyVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The indirect memory fetch unit performs preliminary actions by autonomously fetching data from main memory in advance and storing it in a FIFO queue. This allows processing threads to continue execution without waiting for memory data, as the fetch unit proactively prepares data beforehand, thus maintaining data accuracy while improving processing speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A FIFO queue is introduced as an intermediary buffer between main memory and processing threads. The indirect memory fetch unit populates this queue autonomously, allowing threads to consume data at their own pace without blocking on memory access, thereby decoupling data accuracy requirements from processing speed constraints.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If dedicated prefetching hardware is added, then memory latency is hidden, but device complexity increases

Engineering Contradiction:
Improvememory latencyVSAvoidprocessor architecture complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The indirect memory fetch unit operates autonomously without requiring complex control logic from the main processor. It self-manages fetching data from main memory, storing indices, calculating addresses, and populating the FIFO queue, thereby hiding memory latency while adding minimal complexity to the overall system architecture.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3575955B1Indirect memory fetcher
Publication Date: 2024.05.01 INTEL CORP
  • EP3575955B1 patent drawingFigure 1
  • EP3575955B1 patent drawingFigure 2
  • EP3575955B1 patent drawingFigure 3

AI summary

Disclosed embodiments relate to an indirect memory fetch (IMF) unit. In one example, an apparatus includes circuitry to fetch and decode an instruction specifying a sparse operand array including N operands, and an index array including N contiguously-addressed indices. The apparatus further includes a processing engine associated with an IMF unit to respond to the decoded instruction by initializing the IMF unit to fetch the N operands in order, probing the IMF unit to determine that a fetched operand is ready to retrieve, retrieving the fetched operand from the IMF unit, and repeating the probing and retrieving until all N operands have been retrieved. The IMF unit, independent of the processing engine, is to fetch the N contiguously-addressed indices from the index array, use the N fetched indices to calculate memory addresses for the N operands, and issue a plurality of read requests to fetch the N operands in order.