Remote Memory Ring Buffers in Cluster Nodes
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If OS kernel involvement is used for remote memory access, then memory management is controlled, but performance overhead and complexity increase
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.
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.
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
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.
Data Source
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.


