Priority-Based Cache Flushing for Flash DIMM Pools
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing information handling systems face performance degradation due to incomplete cache flushing during power loss, as previous methods like WPQ flush commands may not ensure timely data transfer from critical applications to flash pools, leading to data loss.
Innovation Solution
The implementation of a priority-based cache flushing mechanism using flash dual in-line memory modules, where a memory controller detects flush hint registers and prioritizes data flush operations based on calculated priority values stored in an affinity table, ensuring critical data is flushed efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional cache flushing methods (e.g., WPQ flush commands) are used, then the system can perform basic data transfer, but data loss occurs during power loss and critical application data is not flushed timely
Solution Approach 1:
The patent implements preliminary action by pre-establishing priority levels and flush hint registers before power loss occurs. The system proactively identifies critical data and assigns it higher priority in the affinity table, ensuring that when a flush command is issued, the memory controller can immediately identify and flush critical data first without waiting for normal flushing procedures to complete.
Solution Approach 2:
The patent segments the cache flushing process by dividing data into different priority levels based on criticality. The affinity table separates data into multiple pools with different priority values, allowing the memory controller to selectively flush high-priority data independently from low-priority data, ensuring critical information is preserved even if the overall flush process is interrupted.
2Reliability
If all cache data is flushed with equal priority, then the flushing process is simple, but critical application data may not be flushed timely leading to data loss
Solution Approach 1:
The patent applies local quality by assigning different priority characteristics to different portions of cache data based on their criticality. The affinity table provides localized quality control by associating specific data regions with specific priority levels, allowing the memory controller to treat different data segments differently during flushing operations without requiring complete system restructuring.
Solution Approach 2:
The patent introduces the affinity table as an intermediary structure between the cache and the flash memory. This intermediary contains flush hint registers that provide guidance to the memory controller about which data should be flushed first, mediating the flush process to ensure critical data receives appropriate priority without requiring complex direct control logic.
3Productivity
If the system uses multiple flash pools for different applications, then data organization is improved, but determining flush order becomes complex without priority mechanisms
Solution Approach 1:
The patent changes the parameter of data identification from simple location-based addressing to priority-based classification. By introducing priority values as a new parameter in the affinity table, the system can organize multiple flash pools efficiently while providing a clear mechanism for determining flush order based on these priority parameters rather than complex positional relationships.
Data Source
AI summary
An information handling system includes flash dual in-line memory modules, a central processing unit, and a memory controller. The memory controller detects that a value is written to a first flush hint register of a table. The first flush hint register is associated with a first flash pool of the flash dual in-line memory modules. The memory controller detects that a value is written to a second flush hint register of the table. The second flush hint register is associated with a second flash pool of the flash dual in-line memory modules. The memory controller flushes first data for the first flash pool and second data for the second flash pool in the cache to flash dual in-line memory modules in order of priority based on a first priority of the first pool and a second priority of the second pool.


