Hardware Flush Assist for Non-Volatile Memory Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current CPU architectures face performance limitations when executing flush operations and synchronization barriers, especially in high-volume usage models like databases operating directly with non-volatile memory, due to small tracker sizes, lack of pipelining, and concurrency optimization.
Innovation Solution
A memory controller architecture assists cache flushing to non-volatile memory by using hardware to pre-flush targeted regions ahead of software-initiated flush instructions, employing speculative snoops and writes to ensure cache coherency and reduce latency, allowing software to operate on mostly clean cache lines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If hardware pre-flush assist is implemented, then cache flush time is reduced, but device complexity increases
Solution Approach 1:
The memory controller performs speculative pre-flush operations before software initiates flush instructions. The hardware tracks cache line states and proactively flushes dirty cache lines to non-volatile memory in advance, so that when software flush instructions arrive, the cache lines are already clean, significantly reducing flush time.
Solution Approach 2:
A hardware tracking structure acts as an intermediary between the cache and non-volatile memory. This tracking mechanism monitors cache line dirty states and coordinates pre-flush operations, mediating the interaction between software flush instructions and hardware memory operations to optimize performance.
2Reliability
If speculative snoops and pre-flush operations are performed, then data integrity is ensured, but processing overhead increases
Solution Approach 1:
The hardware tracking structure autonomously monitors cache line states and identifies dirty cache lines without requiring software intervention. The system self-manages the pre-flush operations based on tracked state information, ensuring data integrity while minimizing software overhead through automated hardware-based state tracking and coordination.
Data Source
AI summary
An apparatus for assisting a flush of a cache is described herein. The apparatus comprises processing element. The processing element is to probe a cache line at an offset address and write the cache line at the offset address to a non-volatile memory in response to a flush instruction at a first address.


