Virtual Command Queue Segmentation for Memory Invalidation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized environments, memory page table invalidations for multiple execution contexts are queued in a single physical command queue, leading to low performance due to contention and delays caused by the hypervisor trapping invalidation requests, which negatively impact CPU cycles and processing efficiency.
Innovation Solution
Allocating a virtual interface and one or more virtual command queues to each execution context allows simultaneous transmission of invalidation commands, reducing the need for hypervisor trapping and contention, with error handling and illegal access checks performed by the virtual interface, and using a command queue scheduler to arbitrate between virtual and shadow command queues for efficient insertion into the physical command queue.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If multiple execution contexts share a single physical command queue, then device complexity is reduced, but productivity decreases due to contention and performance degradation
Solution Approach 1:
The patent segments the single physical command queue into multiple virtual command queues (VCQs), with each VCQ dedicated to a specific execution context. This segmentation eliminates contention between contexts while maintaining a unified physical queue structure, thereby improving productivity without significantly increasing device complexity.
Solution Approach 2:
The patent introduces a command queue virtualizer as an intermediary layer between execution contexts and the physical command queue. This virtualizer manages multiple VCQs and arbitrates their access to the physical queue, resolving contention issues while preserving the simplicity of the underlying physical queue structure.
2Reliability
If the hypervisor traps invalidation requests from guests, then security and control are improved, but productivity decreases due to wasted CPU cycles and delays
Solution Approach 1:
The patent enables guests to self-service by allowing them to directly issue invalidation commands through their dedicated VCQs without hypervisor trapping. The hypervisor maintains control through the virtualizer layer, which enforces security policies, while guests benefit from reduced CPU cycle waste and improved productivity.
Solution Approach 2:
The patent extracts the trapping overhead from the invalidation path by allowing direct guest access to VCQs. The hypervisor's control function is extracted and implemented in the virtualizer layer, which handles only the necessary arbitration and security checks, thereby reducing CPU cycle consumption while maintaining reliability.
3Reliability
If error handling and illegal access checks are performed by the hypervisor, then system security is improved, but device complexity increases and productivity decreases
Solution Approach 1:
The patent implements self-service error handling at the virtual interface level, where the virtualizer performs illegal access checks and error handling for each VCQ independently. This eliminates the need for hypervisor intervention in routine error cases, reducing device complexity and improving productivity while maintaining security through the virtualizer's enforcement of access policies.
Data Source
AI summary
Memory page table invalidations for multiple execution contexts (clients or guests) of a memory system are conventionally queued in a single physical command queue. The multiple execution contexts contend to access the queue, resulting in low performance. Instead of contending with other execution contexts to insert invalidation commands into a single physical command queue, a virtual interface and one or more virtual command queues are allocated to each guest. The execution contexts may simultaneously transmit invalidation commands for the memory system through their respective virtual interface. Additionally, each execution context may also transmit other (less often issued) commands through a hypervisor. Error handling and/or illegal access checks specific to invalidation commands that were previously performed by the hypervisor are now performed by the respective virtual interface(s).


