Coherency Checker for Non-Volatile Memory Collision Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern memory subsystems face performance issues due to operation collisions, particularly when read commands are processed before in-flight write commands are completed, leading to potential data errors and reduced performance as the frequency of collisions increases, necessitating effective collision management to maintain data integrity and efficiency.
Innovation Solution
A coherency checker (CC) is implemented to serialize requests using a cache structure, allowing read operations to fulfill data from in-flight write operations without blocking, by locking relevant memory regions and utilizing cache extensions to handle collisions, ensuring data integrity and reducing operation blocking.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If read commands are processed before in-flight write commands are completed, then memory subsystem performance is improved through non-blocking operations, but data integrity deteriorates due to potential operation collisions
Solution Approach 1:
A coherency checker component is introduced as an intermediary between the command processor and memory operations. This coherency checker monitors in-flight write operations and intercepts read commands, comparing them against the write operation log to detect collisions. When a collision is detected, the read command is blocked until the write operation completes, thereby maintaining data integrity while allowing non-blocking processing for non-colliding operations.
2Reliability
If operation collisions are managed by blocking read commands until write operations complete, then data integrity is maintained, but performance deteriorates due to increased operation blocking
Solution Approach 1:
The coherency checker implements a feedback mechanism by continuously monitoring the status of in-flight write operations and using this information to make real-time decisions about read command processing. The checker maintains a log of outstanding write operations and their target addresses, and uses this feedback to determine whether incoming read commands should be blocked or allowed to proceed, thereby dynamically optimizing the balance between data integrity and performance.
3Reliability
If a coherency checker is implemented to detect and manage operation collisions, then data integrity is improved, but device complexity increases due to additional components and logic
Solution Approach 1:
The coherency checker performs preliminary actions by pre-establishing a log of in-flight write operations and their target addresses before read commands are processed. This preliminary tracking allows the checker to quickly determine potential collisions without requiring complex real-time analysis of memory states. The write operation log is maintained in advance, enabling efficient collision detection and reducing the computational complexity of the overall system.
Data Source
AI summary
A request to read data from a location associated with a memory component is received. The request is assigned a first tag, the first tag having a first identifier of a first buffer to store data read from the location. The request to read data is determined to collide with an earlier request to write data to the location. The earlier request is assigned a second tag, the second tag having a second identifier of a second buffer to store data to write to the location. An attempt to lock the second tag and the second buffer for the request to read data is made. The request to read data is fulfilled from the second buffer in response to a successful attempt to lock the second tag and the second buffer.


