Load When Reservation Lost Instruction for Cacheable Memory Polling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional information handling systems face inefficiencies in detecting the completion of DMA transfers due to high interrupt overhead and inefficient bus bandwidth usage in MMIO register polling, leading to wastage of system resources during cacheline polling.
Innovation Solution
Implementing a load when reservation lost instruction for cacheline polling, where a first process requests an action via a store operation to a cacheable memory location, reads the location conditionally to check completion, sets a reservation, and stalls until the reservation is lost, reducing resource wastage by avoiding repeated polling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If MMIO register polling is used to detect DMA completion, then the detection mechanism is simple, but bus bandwidth is inefficiently utilized and system throughput decreases
Solution Approach 1:
The patent introduces a cacheable memory location as an intermediary between the DMA controller and the polling processor. This intermediary allows the DMA controller to set a completion indicator without requiring the polling processor to continuously monitor MMIO registers, thereby reducing bus bandwidth consumption while maintaining detection capability
Solution Approach 2:
The DMA controller performs a preliminary action by setting a completion indicator in a cacheable memory location before the polling processor needs to check for completion. This preliminary setup eliminates the need for continuous polling of MMIO registers, reducing bus traffic and improving system throughput
2Extent of automation
If interrupts are used to detect DMA completion, then detection is automatic, but interrupt overhead is too great for small buffers
Solution Approach 1:
The cacheable memory location serves as an intermediary that bridges automatic DMA completion and processor polling. The DMA controller automatically sets the indicator in this intermediary location, and the processor periodically checks this location without requiring full interrupt handling, thereby reducing interrupt overhead while maintaining automatic detection capability
Solution Approach 2:
Instead of using full interrupt handling for every DMA completion, the patent applies partial action by having the processor perform lightweight polling checks at cacheable memory locations. This partial polling approach provides sufficient detection for small buffers without the excessive overhead of complete interrupt processing
3Reliability
If conventional polling instructions are used repeatedly, then completion detection is achieved, but processor cycles and power are wasted
Solution Approach 1:
The cacheable memory location acts as an intermediary that persists between polling iterations. Once set by the DMA controller, the completion indicator remains in this intermediary location, allowing the processor to check completion status without repeatedly accessing MMIO registers or executing unnecessary polling instructions, thereby reducing processor cycles and power consumption
Solution Approach 2:
The cacheable memory location serves itself by maintaining the completion indicator across polling iterations. Once the DMA controller sets the indicator, it remains available for the processor to check without requiring continuous intervention or resource consumption, enabling the system to self-manage the completion detection process efficiently
Data Source
AI summary
A design structure for a circuit function that implements a load when reservation lost instruction for performing cacheline polling is disclosed. Initially, a first process requests an action to be performed by a second process. The request is made via a store operation to a cacheable memory location. The first process then reads the cacheable memory location via a conditional load operation to determine whether or not the requested action has been completed by the second process, and the first process sets a reservation at the cacheable memory location if the requested action has not been completed by the second process. The conditional load operation of the first process is stalled until the reservation at the cacheable memory location has been lost. After the requested action has been completed, the reservation in the cacheable memory location is reset by the second process.


