Cache Support for Indirect Loads in Graph Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processor architectures face inefficiencies and poor scaling when handling indirect loads and indirect stores, particularly when accessing compressed sparse row (CSR) lists cached sequentially.

Innovation Solution

The implementation of cache support for indirect operations in the Programmable Integrated Unified Memory Architecture (PIUMA) ISA, which includes logic to dereference pointers, cache pointer lists, and generate modified requests for near-memory engines, thereby optimizing performance for graph applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Duration of action of moving object

If indirect loads and indirect stores are used for accessing CSR lists, then data manipulation execution time is improved, but performance degrades when the CSR list is cached and sequentially accessed

Engineering Contradiction:
Improveexecution time for data manipulationVSAvoidperformance when CSR list is cached
Core Design Contradiction:
Duration of action of moving objectVSProductivity

Solution Approach 1:

The system dynamically switches between indirect and direct access modes based on whether the CSR list is cached or not. When cached, direct sequential access is used; when not cached, indirect access is used. This dynamic adaptation resolves the performance degradation issue by selecting the optimal access method for each scenario.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The access mode parameter is changed based on cache status. The system monitors whether the CSR list resides in cache and adjusts the access method accordingly - using indirect addressing when the list is in main memory and direct sequential addressing when it is cached, thereby optimizing performance for both cases.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If conventional processor architecture is used for indirect memory operations, then implementation is simple, but resource usage efficiency is poor and scaling is bad

Engineering Contradiction:
Improvearchitecture implementation simplicityVSAvoidresource usage efficiency and scaling
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The processor architecture is segmented into specialized components for handling indirect operations. Separate logic units are introduced to handle pointer dereferencing, cache lookup, and memory access independently, allowing efficient parallel processing of indirect operations without compromising overall architecture simplicity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary cache structure is introduced between the processor and main memory specifically for CSR lists. This intermediary layer enables efficient sequential access patterns while maintaining the benefits of indirect addressing, resolving the scaling and resource efficiency issues of conventional architectures.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Length of moving object

If indirect operations are used to access CSR lists, then the number of network hops is reduced, but total latency increases when employing cache memory

Engineering Contradiction:
Improvenumber of network hopsVSAvoidtotal latency with cache memory
Core Design Contradiction:
Length of moving objectVSLoss of time

Solution Approach 1:

The CSR list is pre-loaded into a dedicated cache structure before indirect operations are performed. This preliminary action ensures that subsequent indirect accesses can be served from the cache without incurring full memory access latency, thereby reducing total latency while maintaining the network hop benefits of indirect addressing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A dedicated cache intermediary is positioned between the indirect operation logic and main memory. This intermediary handles the time-consuming cache lookup and data retrieval operations, allowing the indirect operation itself to complete quickly while the intermediary manages the latency-intensive memory access in parallel.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12204901B2Cache support for indirect loads and indirect stores in graph applications
Publication Date: 2025.01.21 INTEL CORP
  • US12204901B2 patent drawing
  • US12204901B2 patent drawing
  • US12204901B2 patent drawing

AI summary

Techniques for operating on an indirect memory access instruction, where the instruction accesses a memory location via at least one indirect address. A pipeline processes the instruction and a memory operation engine generates a first access to the at least one indirect address and a second access to a target address determined by the at least one indirect address. A cache memory used with the pipeline and the memory operation engine caches pointers. In response to a cache hit when executing the indirect memory access instruction, operations dereference a pointer to obtain the at least one indirect address, not set a cache bit, and return data for the instruction without storing the data in the cache memory; and in response to a cache miss, operations set the cache bit, obtain, and store a cache line for a missed pointer, and return data without storing the data in the cache memory.