Remote Memory Ring Buffers in Cluster Nodes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing implementations of shared memory ring buffers in Server on a Chip (SoC) nodes are limited as they do not support remote memory GET/PUT functionality across a cluster of network-connected nodes without involving the OS kernel.

Innovation Solution

Implementing remote memory GET/PUT functionality using hardware-supported GET/PUT contexts that are mapped into the address space of user-level processes, allowing SoC nodes to share ring buffers across a fabric without OS kernel involvement, utilizing inter-node messaging modules with registers defining GET/PUT contexts and modifying memory management unit page tables for virtual to physical address mapping.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If shared memory ring buffers are implemented in a single SoC node, then GET/PUT functionality between data processing cores is supported, but remote memory GET/PUT functionality across network-connected nodes is not accommodated

Engineering Contradiction:
Improveremote memory GET/PUT functionalityVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the monolithic shared memory ring buffer concept into distributed remote memory ring buffers across multiple SoC nodes. Each node maintains its own memory space, but through the fabric interconnect and message passing interface, these segmented memory structures function collectively as a distributed shared memory system, enabling remote GET/PUT operations without requiring a unified memory architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The message passing interface and fabric interconnect act as intermediaries between remote memory ring buffers. These intermediaries translate and facilitate GET/PUT operations across the network fabric, enabling direct remote memory access while maintaining the physical separation and independence of each SoC node's memory space.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If OS kernel involvement is used for remote memory access, then memory management is controlled, but performance overhead and complexity increase

Engineering Contradiction:
Improveremote memory operation efficiencyVSAvoidOS kernel involvement
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements self-service remote memory access by providing direct GET/PUT instructions that allow user-level processes to perform remote memory operations without OS kernel mediation. The message passing interface and fabric interconnect handle the translation and routing of these operations autonomously, eliminating the performance overhead associated with kernel-space context switches and system calls.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical system of OS kernel-mediated memory access with a direct hardware-supported message passing mechanism. By substituting the software-based kernel intervention with hardware-level GET/PUT instructions and fabric interconnect routing, the system achieves faster remote memory access while reducing the complexity of OS kernel involvement.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Ease of operation

If hardware-supported GET/PUT contexts are mapped into user-level address space, then OS kernel involvement is eliminated, but address mapping complexity increases

Engineering Contradiction:
Improveuser-level process operationVSAvoidaddress mapping mechanism
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The message passing interface is designed with universal functionality that handles multiple address mapping scenarios through a unified mechanism. The same GET/PUT context structure and fabric interconnect routing logic accommodate both local and remote memory access, as well as different address space configurations, without requiring separate handling paths. This multi-functionality simplifies the overall system while enabling flexible address mapping.

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

Data Source

PatentUS9672143B2Remote memory ring buffers in a cluster of data processing nodes
Publication Date: 2017.06.06 III HOLDINGS 2 LLC
  • US9672143B2 patent drawing
  • US9672143B2 patent drawing
  • US9672143B2 patent drawing

AI summary

A data processing node has an inter-node messaging module including a plurality of sets of registers each defining an instance of a GET/PUT context and a plurality of data processing cores each coupled to the inter-node messaging module. Each one of the data processing cores includes a mapping function for mapping each one of a plurality of user level processes to a different one of the sets of registers and thereby to a respective GET/PUT context instance. Mapping each one of the user level processes to the different one of the sets of registers enables a particular one of the user level processes to utilize the respective GET/PUT context instance thereof for performing a GET/PUT action to a ring buffer of a different data processing node coupled to the data processing node through a fabric without involvement of an operating system of any one of the data processing cores.