Memory Subsystem Command Reordering for Data Accuracy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional memory sub-systems often execute read commands before write commands, leading to access of outdated data, as they do not effectively manage commands addressed to the same logical blocks.
Innovation Solution
The memory sub-system identifies and executes write commands prior to read commands for logical blocks, ensuring that read commands access updated data by utilizing command overlap circuitry to mark and prioritize write commands based on completion status and logical block addresses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If read commands are executed before write commands for the same logical block, then command execution simplicity is maintained, but data accuracy deteriorates because read commands access outdated data
Solution Approach 1:
The system performs preliminary actions by executing write commands before read commands for the same logical block. The controller identifies when a read command and write command target the same logical block and ensures the write command is completed first, so that the read command subsequently accesses the updated data. This preliminary execution of write operations before read operations resolves the data accuracy issue while maintaining operational simplicity.
2Device complexity
If commands are executed in arrival order, then processing simplicity is maintained, but data integrity deteriorates when read commands access data before updates are applied
Solution Approach 1:
The system implements feedback mechanisms where the controller monitors command types and targets. When the controller detects that a read command and a write command both target the same logical block, it uses this feedback information to reorder execution. The controller ensures the write command executes first and updates the command queue state accordingly, so subsequent read commands see the updated data. This feedback-driven reordering maintains data integrity while adding minimal processing complexity.
3Measurement precision
If write commands are executed before read commands for the same logical block, then data accuracy is improved, but command execution complexity increases due to need for command identification and reordering
Solution Approach 1:
The system segments commands into distinct types (read and write) and tracks them separately in the command queue. The controller maintains separate identification for each command type and their respective targets. By segmenting the command processing logic to handle read and write commands differently based on their types and targets, the system achieves accurate data access without excessive complexity. The segmentation allows for targeted reordering only when necessary, rather than requiring complete redesign of the execution pipeline.
4Reliability
If the memory sub-system tracks and manages command overlap for the same logical block, then data integrity is improved, but device complexity increases due to additional tracking and management mechanisms
Solution Approach 1:
The controller performs multiple functions using a unified approach: it identifies command overlaps, determines execution order, tracks command status, and manages the command queue. By making the controller multi-functional in handling all aspects of command coordination for the same logical block, the system avoids adding separate dedicated hardware modules for each function. This universality reduces overall device complexity while maintaining data integrity through comprehensive command management.
Data Source
AI summary
A controller of a memory sub-system can, responsive to providing a command completion signal to a host, mark a portion of a plurality of commands that are addressed to a same logical block of the memory devices, reorder the marked portion of the plurality of commands, wherein write commands from the marked portion of the plurality of commands are given priority over read commands from the marked portion of the plurality of commands, execute a newest write command from the marked portion of the plurality of commands prior to executing read commands, addressed to the same logical block, from the marked portion of the plurality of commands, and execute read commands from the marked portion of the plurality of commands in on an order in which the read commands were received and after the execution of the newest write command, wherein the read commands are executed responsive to an execution of the newest write command.


