Resizable Queue Relocation Without Writer Halting
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Resizing and relocating queues in computing devices is impractical due to the need to halt asynchronous writers, leading to performance reductions and impaired user experience.
Innovation Solution
Implementing a method to relocate and resize queues without halting writers by using software entities to update queue addresses and sizes atomically, allowing continuous operation while maintaining valid flags for data processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If queues are resized and relocated during operation, then queue size and location flexibility is improved, but writers must be halted causing performance degradation
Solution Approach 1:
The patent applies preliminary action by pre-allocating multiple queue regions in memory before operation begins. These regions are prepared in advance with proper addressing structures, so when resizing or relocation is needed, the system can immediately switch to a pre-prepared region without halting writers. The IOMMU is configured in advance to handle address translations for multiple queue regions.
Solution Approach 2:
The patent introduces the IOMMU (Input-Output Memory Management Unit) as an intermediary between writers and the queue memory regions. The IOMMU handles address translation and redirection, allowing queue regions to be relocated or resized without affecting writers. The IOMMU mediates the connection, absorbing the complexity of queue management while maintaining simple, continuous write operations.
2Productivity
If asynchronous writers continue operating during queue relocation, then system performance is maintained, but atomic updates of queue address and size become complex
Solution Approach 1:
The patent segments the queue management functionality into separate components: queue region allocation, IOMMU configuration, and writer operations. By segmenting the address update process into configuration-space writes that are inherently atomic, the system avoids complex synchronization. Each segment (queue region, IOMMU mapping) can be updated independently without affecting ongoing writer operations.
Solution Approach 2:
The patent replaces mechanical synchronization mechanisms (locks, halting writers) with a configuration-space update mechanism. Updates to queue address and size are performed through IOMMU configuration space, which provides inherent atomicity through its update protocol. This substitution eliminates the need for complex software-based atomic update mechanisms while maintaining writer continuity.
3Reliability
If queue address and size are updated atomically, then data integrity is improved, but the update mechanism becomes more complex
Solution Approach 1:
The IOMMU configuration space acts as an intermediary that provides inherent atomicity for queue address and size updates. The configuration space update mechanism ensures that both address and size are updated together as a single atomic operation, preventing data integrity issues. This intermediary absorbs the complexity of ensuring atomicity, presenting a simple update interface to the system.
Data Source
AI summary
A computing device with a queue stored in a memory of the computing device is described. The queue may be relocated and/or resized in the memory using a queue address, a queue size, a head pointer, and/or a tail pointer associated with the queue. During operation, a processor, at the request of a software entity, updates one or more values associated with the queue to relocate and/or resize the queue. In response, a write mechanism performs one or more operations to enable the use of the relocated and/or resized queue. In addition, when the queue is relocated, the processor, at the request of the software entity, performs one or more operations to process remaining valid entries in an original location of the queue.


