Virtual Switching Kernel Directory for Low-Latency Memory Coherence
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current directory-based cache coherence protocols in distributed memory systems face challenges with storage overhead, maintenance processing, and increased latency due to broadcasting memory messages, which hinder scalability and system throughput in virtualized environments.
Innovation Solution
Implementing a Virtual Switching (VS) kernel module that maintains a directory in the kernel space to manage memory coherence operations, using smart Network Interface Cards (NICs) for offloading operations and reducing latency by processing memory messages directly in the kernel without traversing the full network and I/O stack.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If snooping-based cache coherence protocols are used, then simplicity of implementation is improved, but scalability is worsened due to increased latency and network traffic when broadcasting memory messages to all devices
Solution Approach 1:
The system segments the cache coherence management by introducing directory-based protocols that divide the monitoring function into specific directory agents rather than requiring all devices to snoop all memory messages. This segmentation allows the system to scale better while maintaining coherence, as each directory agent only needs to track specific memory blocks or regions rather than participating in global broadcasting.
2Loss of information
If directory-based cache coherence protocols are used, then global view of memory block coherence state is improved, but storage overhead and maintenance processing are worsened as the system scales in physical and virtual size
Solution Approach 1:
The patent applies local quality by implementing virtualization-aware directory structures that maintain coherence information locally at each virtualization layer rather than requiring a single global directory for the entire system. This allows each virtual machine or container to have its own optimized directory view, reducing the total storage overhead while still providing the necessary global coherence guarantees across the distributed system.
Solution Approach 2:
The system introduces a virtualization dimension to the traditional directory-based coherence protocol. By adding virtual machine identifiers, virtual memory spaces, and virtualization layer abstraction, the patent transforms the flat directory structure into a multi-dimensional hierarchy that efficiently manages coherence for大规模 virtualized systems without linearly increasing storage overhead.
3Reliability
If remote memory updates require acknowledgements from memory endpoints, then data consistency is improved, but memory access latency is worsened due to waiting for acknowledgements from remote devices
Solution Approach 1:
The patent implements preliminary action through pre-established coherence tracking structures and predictive coherence protocols. The virtualization layer pre-allocates and pre-configures directory entries and coherence state trackers for anticipated memory access patterns. This preliminary setup allows the system to process memory updates more efficiently by having the coherence management infrastructure ready in advance, reducing the latency of acquiring coherence acknowledgements from remote memory endpoints while maintaining data consistency.
Data Source
AI summary
A Virtual Switching (VS) kernel module manages different flows of packets between at least one Virtual Machine (VM) running at a node and one or more other VMs running at the node or at one or more other nodes in a network. A packet is received from a first VM using the VS kernel module and is parsed to identify a memory message and an address for at least one memory block stored in a shared memory. At least one entry for the at least one memory block is updated in a directory in a kernel space using the VS kernel module based on the memory message. According to another aspect, a state for the at least one memory block is determined from the directory and the VS kernel module is used to respond to the memory request based on the determined state.


