Shared Memory Architecture for Low Latency Node Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in reducing latency and increasing bandwidth when communicating between nodes in a cluster of autonomous servers, particularly due to limitations in memory addressing and data routing protocols.

Innovation Solution

The system employs a distributed memory architecture with a memory manager that partitions each node's memory into local and global memory spaces, using a parallel link input/output port and protocol engine to route data frames between nodes, allowing for efficient data transfer and emulation of Ethernet protocols while reducing workload on CPUs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional Ethernet-based communication is used between nodes, then system compatibility and ease of operation are maintained, but latency is high and bandwidth is limited

Engineering Contradiction:
Improvedata transfer speedVSAvoidmemory architecture complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The memory space of each node is segmented into local memory address space (accessible only by the node's own CPUs) and global memory address space (accessible by CPUs of all nodes). This segmentation enables direct memory access between nodes through the global address space, eliminating the need for traditional message passing protocols and significantly reducing latency while increasing bandwidth.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If message passing protocols are used for inter-node communication, then system reliability is maintained, but latency increases and bandwidth decreases

Engineering Contradiction:
Improvecommunication latencyVSAvoidprotocol engine complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

A protocol engine is introduced as an intermediary component that manages communication between CPUs and the parallel link I/O port. The protocol engine handles frame formatting, routing header preparation, and memory address translation, allowing CPUs to communicate efficiently through the global memory address space without direct involvement in protocol details, thus reducing CPU overhead and latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If CPUs directly handle all communication protocols and data routing, then ease of operation is maintained, but CPU workload increases and productivity decreases

Engineering Contradiction:
ImproveCPU efficiencyVSAvoidparallel link I/O port complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The protocol engine extracts and handles all protocol-related operations (frame formatting, routing, error checking) from the CPU's responsibility. The parallel link I/O port is designed to operate independently, preparing and transmitting data frames through the global memory address space without CPU intervention, thereby freeing CPU resources for computational tasks and improving overall system productivity.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8812795B2Shared memory architecture
Publication Date: 2014.08.19 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US8812795B2 patent drawing
  • US8812795B2 patent drawing
  • US8812795B2 patent drawing

AI summary

Disclosed herein is an apparatus which may comprise a plurality of nodes. In one example embodiment, each of the plurality of nodes may include one or more central processing units (CPUs), a random access memory device, and a parallel link input/output port. The random access memory device may include a local memory address space and a global memory address space. The local memory address space may be accessible to the one or more CPUs of the node that comprises the random access memory device. The global memory address space may be accessible to CPUs of all the nodes. The parallel link input/output port may be configured to send data frames to, and receive data frames from, the global memory address space comprised by the random access memory device(s) of the other nodes.