Graph Memory Engine for Addressless Traversal in Sparse Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graph implementations face challenges in memory management, including static updates, high latency, and limited flexibility due to reliance on lookup tables and lists, which are inefficient for large and sparse graphs, and lack additional data association with traversal results.

Innovation Solution

A graph memory engine (GME) utilizing an associative array structure that allows addressless and pointerless traversal through associative memory, enabling dynamic updates, high fan-out capability, and co-located program execution, with features like multi-factor search keys and default edges, facilitating seamless integration with contemporary programming languages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If lookup tables and lists are used for graph implementation, then memory structure is simple, but memory management becomes inefficient for large and sparse graphs

Engineering Contradiction:
Improvegraph processing efficiencyVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the graph memory into distinct components: node storage, edge storage, and index structures. This segmentation allows efficient management of large and sparse graphs by organizing data into manageable units that can be independently accessed and updated, resolving the memory management inefficiency while maintaining processing efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an indexing dimension to the traditional graph structure, creating multi-dimensional access paths. This allows traversal and management of graphs through multiple dimensions (node ID, edge ID, index keys) rather than linear sequences, significantly improving efficiency for large and sparse graphs while reducing management complexity.

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

2Adaptability or versatility

If static graph implementations are used, then memory allocation is straightforward, but updates require memory rewriting

Engineering Contradiction:
Improvedynamic update capabilityVSAvoidupdate time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements dynamic graph structures where nodes and edges can be added, removed, or modified without rewriting entire memory blocks. The memory allocation scheme supports incremental updates through pointer-based structures and lazy evaluation, enabling real-time graph modifications while minimizing time loss during updates.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent pre-allocates memory pools for nodes and edges, and pre-establishes index structures that can accommodate future additions. This preliminary preparation allows rapid graph updates by simply activating pre-allocated resources rather than performing complex memory allocation and rewriting operations during updates.

Inventive Principle:
Principle #10Preliminary action

3Speed

If traditional graph traversal methods are used, then implementation is simple, but latency is high

Engineering Contradiction:
Improvetraversal speedVSAvoidtraversal latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent pre-computes and stores traversal paths, adjacency information, and index mappings in optimized memory locations. This preliminary preparation enables O(1) or O(log n) access during traversal operations rather than requiring linear searches, dramatically reducing traversal latency while maintaining implementation simplicity through standardized access patterns.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent optimizes memory layout by placing frequently accessed graph data (adjacency lists, node attributes) in local cache-friendly structures and using spatial locality principles. This local optimization reduces memory access latency during traversal by ensuring that traversing from one node to adjacent nodes requires minimal memory hops, thereby increasing traversal speed.

Inventive Principle:
Principle #3Local quality

4Adaptability or versatility

If lookup tables are used for graph storage, then access is direct, but flexibility is limited

Engineering Contradiction:
Improvedata structure flexibilityVSAvoidmemory structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent designs a universal graph memory structure that can represent multiple graph types (directed, undirected, weighted, unweighted) and support various traversal algorithms through a single unified interface. The memory structure uses generic node and edge templates with configurable attributes, providing flexibility for different graph applications while maintaining manageable complexity through consistent access patterns.

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

Solution Approach 2:

The patent introduces index structures as intermediaries between the physical memory storage and the logical graph operations. These indexes provide flexible access paths without requiring changes to the underlying storage structure, enabling adaptable graph operations while keeping the memory structure itself relatively simple and organized.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20250272242A1Graph memory engine
Publication Date: 2025.08.28 ALTERA CORP
  • US20250272242A1 patent drawing
  • US20250272242A1 patent drawing
  • US20250272242A1 patent drawing

AI summary

A system, method, and apparatus for graph memory. In one embodiment, the method includes: traversing program instructions disposed in an associative memory for operating a computer, the method comprising: receiving input data to be processed; identifying a next instruction to be fetched in the memory for processing the input data via: receiving a current node ID of a current state; performing a computational test on the input data resulting in a computed value; generating a search key by combining at least a portion of the computed edge value with the current node ID; and accessing the next instruction in associative memory via the search key.