Reordering Buffer for Out-of-Order Data Sectors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data storage systems often return data sectors out of order due to processing delays, which can disrupt the expected sequence required by host devices.
Innovation Solution
A data storage device with a controller that receives out-of-order data sectors from a read channel, uses indicators to track and reorder them, storing sequential sectors in one list and non-sequential sectors in another, and updates lists based on sequential relationships to ensure data is returned in the correct order.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If data is read using sequential read gates, then the reading process is simple and straightforward, but the data may be returned out of order due to processing delays
Solution Approach 1:
A reordering buffer is introduced as an intermediary component between the read channel and the host interface. The buffer receives out-of-order data sectors from the read channel, stores them temporarily, and releases them to the host interface in the correct sequential order. This mediator resolves the contradiction by allowing simple sequential reading while ensuring reliable data order delivery.
Solution Approach 2:
The system performs preliminary actions by reading data sectors in advance using sequential read gates, then preparing them for ordered delivery through the reordering buffer. The buffer pre-processes the data by tracking received sectors and holding them until they can be delivered in the correct sequence, allowing the reading operation to remain simple while ensuring order integrity.
2Adaptability or versatility
If data sectors are returned out of order due to processing delays, then processing flexibility is improved, but data integrity and system reliability deteriorate
Solution Approach 1:
The reordering buffer acts as a mediator that accepts the flexibility of out-of-order processing from the read channel while guaranteeing data integrity to the host interface. It tracks the order of received sectors and rearranges them before delivery, thus maintaining reliability despite processing flexibility.
Solution Approach 2:
The data flow is segmented into two independent paths: one for receiving data (which can be flexible and out-of-order) and another for delivering data (which maintains strict order). The reordering buffer creates this segmentation, allowing processing flexibility in the receive path while ensuring data integrity in the delivery path.
3Reliability
If a reordering mechanism is implemented to ensure data order, then data integrity is improved, but device complexity increases
Solution Approach 1:
The reordering buffer is a relatively simple intermediary component that uses basic tracking mechanisms (such as LBA counters or status registers) to manage data order. This simple mediator structure improves data integrity without significantly increasing overall device complexity, as it only adds minimal buffering and tracking functionality.
Solution Approach 2:
The reordering buffer implements self-service by automatically tracking received sectors and managing its own reordering operations without external intervention. The buffer uses its own internal state to determine when sectors are ready for delivery, eliminating the need for complex external control mechanisms and reducing overall system complexity.
Data Source
AI summary
Embodiments described herein are directed to systems and methods for ordering read sector data that has been returned from a hard disk controller out of order. For example, in typical storage systems, the firmware of the storage system and/or the host interface typically process read sectors in logical block address order. However, some of the data that is received may be received out of order. As such, the disk block hardware within the hard disk controller may accept these out of order sectors from the read channel and subsequently provide information that describes the available sectors that are in order to the firmware and/or the host interface.


