IP Library Granted Patent US 10,102,145
Granted Patent B1
US 10,102,145 · App. 14/961,762 · Granted Oct 16, 2018

Out of order LBA processing

Inventors: Richard P Michel (Minneapolis, MN); Mark A Gaertner (Vadnais Heights, MN); Kevin Nghia Dao (Apple Valley, MN)
Assignee: Seagate Technology LLC
G06F12/109G06F3/064G06F3/0619G06F3/0656G06F3/0673G06F11/1076G06F2212/1008G06F2212/657
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,102,145
App. No.
14/961,762
Granted
Oct 16, 2018
Kind
B1
Abstract

Systems and methods are disclosed to perform out of order LBA processing at a data storage device. A data storage device may be configured to receive a read command including a sequential LBA range, read data for the LBA range in non-sequential order and store the data to a buffer, and return the data to the host in sequential LBA order. The storage device may begin a read operation at a sector in the middle of the LBA range, and read the beginning of the LBA range on a next rotation of the media. The storage device may note the location of read errors without interrupting a read operation. Successfully read data may be buffered, while rereads and error recovery may be performed only on LBAs at which errors were encountered. Once the data from the LBA range has been acquired, the data may be organized into sequential order.

Claims (86)

1. An apparatus comprising:

a processor configured to:

coordinate read operations to a disc storage medium based on a location of a read head adjacent to the disc storage medium, the read head adjustable relative to a surface of the disc storage medium in order to access multiple data tracks of the disc storage medium;

receive, from a host, a read command specifying a sequential logical block address (LBA) range from a first LBA to a last LBA, the LBA range corresponding to data stored in sequential LBA order to a set of physically sequential data sectors on a selected data track of the disc storage medium;

read data from the data sectors in non-sequential order by reading an end of the LBA range before reading a beginning of the LBA range, including:

determine an LBA X within the LBA range, the LBA X corresponding to a first readable sector that the read head will be able to read upon arriving at the selected data track during a seek operation from another data track;

read data from the LBA X to the last LBA during a current revolution of the disc storage medium;

read data from the first LBA to LBA X−1 during a next revolution of the disc storage medium when the read head reaches the first LBA;

store the data to a buffer; and

return the data to the host in sequential LBA order.

2. The apparatus of claim 1 further comprising:

the processor configured to read the data sectors in non-sequential order, including:

perform a first read operation including reading the data from the LBA range; and

store indicators of data sectors corresponding to encountered read errors without interrupting the first read operation.

3. The apparatus of claim 2 further comprising:

the processor configured to perform a second read operation based on the indicators from the first read operation, including:

read parity data while skipping the data sectors corresponding to the indicators; and

reconstruct data for the data sectors corresponding to the indicators based on the parity data.

4. The apparatus of claim 3 further comprising:

the second read operation further including:

read the parity data from a target track including the sequential LBA range, skipping data sectors read during the first read operation; and

reconstruct the data for the data sectors corresponding to the indicators based on parity data read during the first read operation and parity data read during the second read operation.

5. The apparatus of claim 2 further comprising:

the processor configured to perform a second read operation based on the indicators from the first read operation, including:

generate a read mask based on the data sectors corresponding to the indicators; and

read data from only the data sectors corresponding to the indicators based on the read mask.

6. The apparatus of claim 2 comprising the processor further configured to:

determine whether to perform an error recovery operation to recover data from the data sectors corresponding to the encountered read errors;

when a determination is made to perform error recovery, perform a second read operation to recover data from the data sectors corresponding to the encountered errors; and

when a determination is made not to perform error recovery, do not return data from the data sectors corresponding to the encountered errors to the host.

7. A memory device storing instructions that, when executed, cause a processor to perform a method comprising:

coordinating read operations to a disc storage medium based on a location of a read head adjacent to the disc storage medium, the read head adjustable relative to a surface of the disc storage medium in order to access different data tracks of the disc storage medium;

receiving, from a host, a read command including a sequential logical block address (LBA) range from a first LBA to a last LBA, the LBA range corresponding to a set of physically sequential data sectors on a selected data track of the disc storage medium;

reading data from the data sectors in non-sequential order by reading an end of the LBA range before reading a beginning of the LBA range, including:

determining an LBA X within the LBA range, the LBA X corresponding to a first readable sector that the read head will be able to read upon arriving at the selected data track during a seek operation from another data track;

reading data from the LBA X to the last LBA during a current revolution of the disc storage medium;

reading data from the first LBA to LBA X−1 during a next revolution of the disc storage medium;

storing the data to a buffer; and

returning the data to the host in sequential LBA order.

8. The memory device of claim 7 , the method further comprising:

reading the data sectors in non-sequential order, includes:

performing a first read operation including reading the data from the LBA range; and

storing indicators of data sectors corresponding to encountered read errors without interrupting the first read operation.

9. The memory device of claim 8 , the method further comprising:

performing a second read operation based on the indicators from the first read operation, including:

reading parity data while skipping the data sectors corresponding to the indicators; and

reconstructing data for the data sectors corresponding to the indicators based on the parity data.

10. The memory device of claim 9 , the method further comprising:

performing the second read operation further including:

reading the parity data from a target track including the sequential LBA range, skipping data sectors read during the first read operation; and

reconstructing the data for the data sectors corresponding to the indicators based on parity data read during the first read operation and parity data read during the second read operation.

11. The memory device of claim 8 , the method further comprising:

performing a second read operation based on the indicators from the first read operation, including:

generating a read mask based on the data sectors corresponding to the indicators; and

reading data from only the data sectors corresponding to the indicators based on the read mask.

12. The memory device of claim 8 , the method further comprising:

determining whether to perform an error recovery operation to recover data from the data sectors corresponding to the encountered read errors;

when a determination is made to perform error recovery, performing a second read operation to recover data from the data sectors corresponding to the encountered errors; and

when a determination is made not to perform error recovery, not returning data from the data sectors corresponding to the encountered errors to the host.

13. A method comprising:

coordinating read operations to a disc storage medium based on a location of a read head adjacent to the disc storage medium, the read head adjustable relative to a surface of the disc storage medium in order to access different data tracks of the disc storage medium;

receiving, from a host, a read command including a sequential logical block address (LBA) range from a first LBA to a last LBA, the LBA range corresponding to a set of physically sequential data sectors on a selected data track of the disc storage medium;

performing a first read operation to read data from the data sectors in non-sequential order by reading an end of the LBA range before reading a beginning of the LBA range, including:

determining an LBA X within the LBA range, the LBA X corresponding to a first readable sector that the read head will be able to read upon arriving at the selected data track during a seek operation from another data track;

reading data from the LBA X to the last LBA during a current revolution of the disc storage medium;

reading data from the first LBA to LBA X−1 during a next revolution of the disc storage medium;

storing the data to a buffer; and

returning the data to the host in sequential LBA order.

14. The method of claim 13 further comprising:

performing the first read operation further includes storing indicators of data sectors corresponding to encountered read errors without interrupting the first read operation;

performing a second read operation based on the indicators from the first read operation, including:

generating a read mask based on the data sectors corresponding to the indicators; and

reading data from only the data sectors corresponding to the indicators based on the read mask.

15. The method of claim 14 further comprising:

when the second read operation fails to read data from the data sectors corresponding to the indicators, performing a third read operation based on the indicators from the first read operation, including:

reading parity data while skipping the data sectors corresponding to the indicators; and

reconstructing data for the data sectors corresponding to the indicators based on the parity data.

16. The method of claim 15 further comprising:

performing the third read operation further including:

retrieving parity data from the buffer corresponding to data read during the first read operation;

reading the parity data from a target track including the sequential LBA range, skipping data sectors read during the first read operation; and

reconstructing the data for the data sectors corresponding to the indicators based on parity data read during the first read operation and parity data read during the third read operation.

17. The method of claim 14 further comprising:

determining whether to perform an error recovery operation to recover data from the data sectors corresponding to the encountered read errors;

when a determination is made to perform error recovery, performing the second read operation to recover data from the data sectors corresponding to the encountered errors; and

when a determination is made not to perform error recovery, not returning data from the data sectors corresponding to the encountered errors to the host.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2024
From: SEAGATE TECHNOLOGY LLC; SEAGATE SINGAPORE INTERNATIONAL HEADQUARTERS PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 067489/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2015
From: MICHEL, RICHARD P; GAERTNER, MARK A; DAO, KEVIN NGHIA
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 037247/0576 →
Cited By (3)
US 12,229,441 US 12,307,091 US 12,640,165