Descriptor Ring I/O Communication Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtualized computer systems face inefficiencies in input/output (IO) communication due to overhead from repeated or skipped descriptors in descriptor rings, leading to increased transfer bandwidth overhead, especially in PCIe data transfers.
Innovation Solution
Implementing a single descriptor ring for driver-to-virtual device and virtual device-to-driver communications, where the virtual device writes one executed descriptor for each I/O request, maintaining synchronization without repeating executed descriptors, allowing for continuous memory allocation and reduced small writes on communication buses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If repeated or skipped descriptors are used in descriptor rings for I/O communication, then synchronization between driver and virtual device can be maintained, but transfer bandwidth overhead increases
Solution Approach 1:
The patent extracts and eliminates the redundant descriptor transmissions from the communication protocol. By removing the requirement to repeat or skip descriptors, the system eliminates the associated bandwidth overhead while maintaining synchronization through a more efficient mechanism using a single descriptor ring with position tracking.
Solution Approach 2:
The patent changes the fundamental parameter of descriptor transmission from multiple repetitions or skips to a single transmission per I/O request. This parameter change transforms the communication efficiency by reducing the number of transmissions while using position indices to maintain synchronization reliability.
2Reliability
If multiple small writes are performed on communication bus for descriptor transmission, then descriptor synchronization can be achieved, but transfer efficiency decreases
Solution Approach 1:
The patent merges multiple small descriptor writes into a single continuous memory allocation and transmission. By combining descriptor transmissions into one operation per I/O request, the system achieves both synchronization reliability and improved transfer efficiency, eliminating the fragmentation caused by multiple small writes.
Solution Approach 2:
The patent implements continuous memory allocation for descriptor rings, eliminating gaps and interruptions in the transmission process. This continuity ensures that descriptors are transmitted efficiently without the breaks and re-synchronization overhead associated with multiple discrete write operations.
3Ease of operation
If descriptor rings are used for driver-to-virtual device communication, then I/O operations can be coordinated, but transfer overhead increases due to repeated descriptors
Solution Approach 1:
The patent uses a single descriptor ring structure that is shared and referenced by both driver and virtual device, eliminating the need to create and transmit multiple copies of descriptors. Each party maintains a reference to the same descriptor memory location, reducing copying overhead while maintaining coordination capability.
Data Source
AI summary
A system and method for input/output communication is disclosed. In one embodiment, a device identifies a queue including a plurality of input/output (I/O) descriptors, each of the plurality of I/O descriptors representing one of: an active descriptor associated with an active I/O request or an executed descriptor that is associated with an executed I/O request. The device retrieves, from a first index in the queue, one or more active descriptors associated with an I/O request. The device executes the I/O request. The device writes a first executed descriptor to a second index in the queue, where the first executed descriptor indicates the I/O request has been executed.


