Cache Controller Write Coalescing Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The synchronization between cache controllers and firmware units is lost due to hardware operations being faster than firmware operations, leading to context exhaustion and stale data issues during write coalescing in I/O messaging.
Innovation Solution
Implementing a local message ID (LMID) system to track timeouts, using a firmware unit with a timer to manage cache flushes, and maintaining a write-pending-list to ensure synchronized data flushing and cleanup, thereby addressing the synchronization and stale data problems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If hardware operations are performed faster than firmware operations, then data flushing efficiency is improved, but synchronization between cache controller and firmware unit is lost
Solution Approach 1:
The patent implements a feedback mechanism where the cache controller sends completion status signals to the firmware unit and receives acknowledgment signals back. This bidirectional communication ensures that the firmware unit is informed of cache flush completions and can update its timeout tracking accordingly, maintaining synchronization even when hardware operations outpace firmware processing.
Solution Approach 2:
The patent employs preliminary action by having the cache controller proactively flush cache segments before the firmware unit's timeout mechanism would trigger a flush. The cache controller monitors its own flush completion status and sends notifications to the firmware unit in advance, allowing the firmware to update its timeout tracking proactively rather than reactively, thus preventing desynchronization.
2Reliability
If proactive flush is performed when CS row becomes fully dirty, then data consistency is improved, but context exhaustion occurs
Solution Approach 1:
The patent extracts the timeout tracking functionality from the firmware unit's main context memory and relocates it to the cache controller's local memory. The cache controller maintains its own timeout tracking for each cache segment, eliminating the need for the firmware unit to store extensive timeout context for every possible cache segment. This extraction significantly reduces the firmware context memory requirement while maintaining data consistency through the same proactive flush mechanism.
3Reliability
If firmware unit tracks timeout for each I/O message, then stale data prevention is improved, but device complexity increases
Solution Approach 1:
The patent merges the timeout tracking function with the existing cache segment dirty bit tracking mechanism in the cache controller. Instead of the firmware unit maintaining separate timeout tracking for each I/O message, the cache controller integrates timeout monitoring into its existing cache segment management structure. The cache controller already tracks which cache segments are dirty and needs flushing; timeout tracking is added to this same tracking infrastructure, eliminating the need for separate firmware-based timeout tracking and reducing overall system complexity.
Data Source
Figure 1A~1B
Figure 2
Figure 3A
AI summary
A memory system includes a firmware unit and a cache module that includes a cache controller and a cache memory. The cache controller receives an I/O message that includes a local message ID (LMID) and data to be written to a logical drive (LD), stores the data in a cache segment (CS) row of the cache memory and sends an ID of the CS row to the firmware unit. The firmware unit, in response to receiving the ID of the CS row, acquires a timestamp and stores the timestamp to check against a cache flush timeout for the CS row. The firmware unit periodically checks cache flush timeout and in response to detecting the cache flush timeout, sends a flush command with the ID of the CS row to the cache controller. The cache controller, in response to receiving the flush command, flushes the first data of the CS row.