Message Engine Data Transfer Without Shared Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data transfer methods in data networking, such as page flipping and traditional data copying, incur high processing costs and memory sharing issues, particularly as the number of CPU cores increases, leading to inefficiencies and potential memory corruption affecting multiple applications.
Innovation Solution
The implementation of Message Engines (MEs) that transmit data without sharing memory space, using Virtual Message Engines (VMEs) and Host Physical Message Engines (HPMEs) to manage message segments through an interconnect, maintaining memory isolation and eliminating coherency protocol overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional data copying methods are used to transfer data between sender and receiver, then data transfer can be achieved, but processing cost increases and cache performance deteriorates due to cache pollution
Solution Approach 1:
The patent extracts the data transfer function from the traditional memory copy path and implements it through a dedicated message passing mechanism. The sender and receiver engage in direct message exchange without involving the general-purpose memory copy infrastructure, thereby separating the data transfer operation from the cache pollution problem that plagues traditional copying methods.
Solution Approach 2:
The patent introduces message buffers as intermediary structures that facilitate data transfer between sender and receiver. These message buffers serve as dedicated communication channels that bypass the conventional memory copy path, reducing the processing overhead and cache pollution associated with traditional data copying methods.
2Adaptability or versatility
If shared memory space is used for data transfer between applications, then data can be accessed by multiple components, but memory corruption can affect multiple applications and system stability decreases
Solution Approach 1:
The patent segments the memory space into application-specific message buffers that are dedicated to individual applications. Each application has its own isolated message buffer region, preventing memory corruption in one application from affecting others. This segmentation maintains the ability to transfer data while ensuring system stability through isolation.
Solution Approach 2:
The patent implements local quality by providing each application with dedicated message buffers tailored to its specific communication needs. Rather than using a universal shared memory space, each application receives customized buffer allocation with appropriate isolation properties, ensuring that memory operations are confined to local, controlled regions.
3Productivity
If the number of CPU cores increases to improve processing capacity, then system power increases, but the likelihood of efficient intervening memory existing decreases leading to DRAM interaction
Solution Approach 1:
The patent applies preliminary action by pre-allocating message buffers in memory regions that are optimally positioned for fast access. These buffers are prepared in advance with appropriate memory attributes and placements that anticipate future communication needs, ensuring that when multi-core processors need to exchange data, the memory access paths are already optimized rather than requiring dynamic allocation during runtime.
Data Source
AI summary
A network protocol unit interface is described that uses a message engine to transfer contents of received network protocol units in message segments to a destination message engine. The network protocol unit interface uses a message engine to receive messages whose content is to be transmitted in network protocol units. A message engine transmits message segments to a destination message engine without the message engine transmitter and receiver sharing memory space. In addition, the transmitter message engine can transmit message segments to a receiver message engine by use of a virtual address associated with the receiver message and a queue identifier, as opposed to a memory address.


