High-Speed Graph Processor with Segmented Memory Channels

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The processing of large, sparse graphs is hindered by delays in transferring data between memory and processor, exacerbated by the large size and sparseness of graphs, leading to inefficient memory access patterns and cache usage.

Innovation Solution

A specialized processor architecture that closely couples a high-bandwidth, small access granularity memory with dedicated parallel processing circuits, allowing independent memory channels for parallel operations and reducing memory bottlenecks through the use of multiple processing circuits associated with multiple memory channels, enabling efficient search operations on sparse graphs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If standard computer architectures are used for graph processing, then general-purpose computing is maintained, but processing speed is limited by memory transfer delays

Engineering Contradiction:
Improvegraph processing speedVSAvoidmemory transfer delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system segments the graph processing workload across multiple independent processing circuits (32, 34) that operate in parallel on different memory channels. Each processing circuit handles a portion of the frontier vertices independently, allowing simultaneous neighbor identification and new frontier determination without sequential bottlenecks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary high-bandwidth memory structure (12) with multiple independent channels that acts as a buffer between the processing circuits and the data storage. This memory intermediary enables parallel access patterns and reduces the impact of random memory access by providing dedicated channels for different processing circuits.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If graphs are stored in standard memory with random access patterns, then data storage is achieved, but memory cache effectiveness is reduced due to sparseness

Engineering Contradiction:
Improvegraph data storage capacityVSAvoidmemory access efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent transitions from two-dimensional planar memory organization to a three-dimensional memory cube architecture. This dimensional change allows for higher density storage while providing multiple access paths and channels, enabling parallel processing circuits to access different portions of the graph data simultaneously without cache conflicts.

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

3Productivity

If multiple processing circuits access memory independently, then parallel processing is achieved, but memory access conflicts may occur

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidmemory access conflict
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The memory system is segmented into multiple independent channels (15) that are exclusively assigned to specific processing circuits. This channel segmentation eliminates access conflicts by ensuring that each processing circuit has dedicated memory bandwidth, allowing full parallel processing capability without interference between circuits.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11604829B2High-speed graph processor for graph searching and simultaneous frontier determination
Publication Date: 2023.03.14 WISCONSIN ALUMNI RES FOUND
  • US11604829B2 patent drawing
  • US11604829B2 patent drawing
  • US11604829B2 patent drawing

AI summary

A computer architecture for graph processing employs a high-bandwidth memory closely coupled to independent processing elements for searching through a graph using a first set of processing elements operating simultaneously to determine neighbors to a current frontier and second processing elements operating simultaneously to determine a next frontier, this process being repeated to search through graph nodes.