CXL Memory Expansion Fabric for Low-Latency VM Networking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network communication between virtualized servers is resource and cost intensive due to the need for traditional networking switches and NICs, leading to bottlenecks and reduced efficiency in data centers.
Innovation Solution
Implementing a fabric attached memory (FAM) system using Compute Express Link (CXL) protocol for intra-rack communication, which utilizes shared memory queues and bypasses traditional networking protocols, allowing direct OS-to-OS communication through memory pipes without additional Ethernet connections.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If traditional networking switches and NICs are used for OS-to-OS communication, then network connectivity is established, but resource consumption and cost increase significantly
Solution Approach 1:
The fabric attached memory system performs multiple functions: it serves as both shared memory for data storage and as the networking infrastructure for OS-to-OS communication. The same memory fabric that provides memory access also carries network packets, eliminating the need for separate networking hardware and reducing overall resource consumption while maintaining reliable connectivity.
Solution Approach 2:
The patent merges the networking function with the memory fabric by implementing network packets as memory structures that traverse the memory pipes. The send queues and receive queues are implemented within the fabric attached memory, combining data storage and network communication into a single integrated system, thereby reducing the quantity of hardware components needed.
2Productivity
If highly virtualized servers use primary OS for all networking requests, then virtualization is achieved, but performance bottlenecks occur
Solution Approach 1:
The patent extracts the networking function from the primary OS by implementing a dedicated network processing unit within the fabric attached memory. This separate network processing entity handles packet forwarding and queue management independently from the primary OS, allowing virtual machines to communicate without constantly involving the primary OS and thereby reducing latency and improving server efficiency.
Solution Approach 2:
The fabric attached memory acts as an intermediary between virtual machines, providing a dedicated network processing unit that mediates packet forwarding. This intermediary structure allows direct communication between VMs through the memory fabric without requiring all networking requests to pass through the primary OS, reducing the time loss associated with frequent OS context switches.
3Device complexity
If traditional Ethernet connections are used for each OS, then network communication is established, but device complexity and cost increase
Solution Approach 1:
The fabric attached memory provides universal connectivity for all virtual machines within the same physical host. Instead of requiring separate Ethernet connections for each OS, the memory fabric serves as a common communication medium that all VMs can access, reducing device complexity while maintaining reliable communication through the integrated memory architecture.
4Productivity
If more virtual machines are hosted per server, then resource utilization increases, but networking bottlenecks worsen
Solution Approach 1:
The patent extracts network processing from the primary OS by implementing a dedicated network processing unit within the fabric attached memory. This allows the system to support more virtual machines per server without the primary OS becoming a bottleneck, as network packets are processed independently by the dedicated unit, maintaining low processing time even at high server density.
Data Source
AI summary
A method of transmitting a data packet from a first virtualized server to a second virtualized server includes copying, by the first virtualized server, the data packet into a send queue associated with the first virtualized server, where the send queue is located at a fabric attached memory, where the fabric attached memory is accessible by the first virtualized server and the second virtualized server. The method further includes retrieving, by one or more processors associated with the fabric attached memory, the data packet from the send queue and forwarding, by the one or more processors, the data packet to a receive queue associated with the second virtualized server, where the receive queue is located at the fabric attached memory. The method further includes retrieving, by the second virtualized server, the data packet from the receive queue.


