IP Library Granted Patent US 9,153,287
Granted Patent B1
US 9,153,287 · App. 13/914,463 · Granted Oct 6, 2015

Data access for shingled magnetic recording media

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 9,153,287
App. No.
13/914,463
Granted
Oct 6, 2015
Kind
B1
Abstract

Methods and apparatus for facilitating pre-read and/or post-read operations of a disk drive. A write command is received including a logical block address (LBA) for user data in the write command. Parity data for correcting the user data is generated by encoding the LBA with the user data. The parity data is written on a disk of the disk drive with the user data so that the LBA can be recovered using the parity data when read from the disk. When a read command is received by the disk drive, requested user data is read from a first sector. User data and parity data is read from a second sector adjacent the first sector. The parity data is used to recover an LBA for the second sector and it is determined whether to store the user data read from the second sector based on the recovered LBA.

Claims (53)

1. A method for performing pre-read and/or post-read operations in a disk drive in communication with a host, wherein the disk drive includes a data cache memory and at least one disk with a plurality of sectors for storing data, the method comprising:

receiving a read command from the host requesting user data from a first sector of the plurality of sectors;

reading user data and parity data from a second sector of the plurality of sectors during a pre-read or post-read operation in performing the read command, wherein the second sector is adjacent the first sector on the at least one disk, and wherein the parity data can be used for error correction of the user data read from the second sector;

recovering a logical block address (LBA) for the user data read from the second sector using the parity data, wherein the LBA is not stored on the at least one disk with the user data; and

determining whether to store in the data cache memory the user data read from the second sector during the operation based on the recovered LBA for the user data read from the second sector.

2. The method of claim 1 , wherein recovering the LBA for the user data includes decoding the parity data using a low-density parity-check (LDPC) code.

3. The method of claim 1 , wherein the second sector forms a portion of a track on the at least one disk which overlaps another track on the at least one disk.

4. The method of claim 1 , wherein determining whether to store the user data read from the second sector includes determining whether the user data read from the second sector is valid.

5. The method of claim 4 , wherein the disk drive uses a translation table mapping LBAs to physical block addresses (PBAs) for the at least one disk, and wherein determining the validity of the user data read from the second sector is based at least in part on a mapping of the recovered LBA in the translation table.

6. The method of claim 1 , wherein determining whether to store the user data read from the second sector includes determining whether the user data read from the second sector meets a data cache policy.

7. The method of claim 1 , wherein the disk drive includes a buffer for storing data, and wherein the method further comprises storing the recovered LBA in the buffer for determining whether to store the user data read from the second sector in the data cache memory.

8. A method for writing data to at least one disk of a disk drive in communication with a host to facilitate pre-read and/or post-read operations in the disk drive, the method comprising:

receiving a write command from the host including a logical block address (LBA) for user data in the write command;

generating parity data for error correction of the user data by encoding the LBA and the user data;

writing the user data and the parity data on the at least one disk;

wherein the LBA for the user data is not written to the at least one disk and can be recovered using the parity data when read from the at least one disk; and

based on the recovered LBA, determining whether to store the user data in a data cache memory of the disk drive when the user data is read during a pre-read or post-read operation.

9. The method of claim 8 , wherein generating parity data includes encoding the LBA and the user data using a low-density parity-check (LDPC) code.

10. The method of claim 8 , wherein writing the user data and the parity data includes writing the user data and the parity data in a track on the at least one disk which overlaps another track on the at least one disk.

11. The method of claim 8 , wherein the disk drive includes a buffer for storing data, and wherein the method further comprises storing the LBA of the write command in the buffer for generating the parity data.

12. A disk drive in communication with a host, the disk drive comprising:

a data cache memory for storing data;

at least one disk with a plurality of sectors for storing data; and

a controller configured to:

receive a read command from the host requesting user data from a first sector of the plurality of sectors;

read user data and parity data from a second sector of the plurality of sectors during a pre-read or post-read operation in performing the read command, wherein the second sector is adjacent the first sector on the at least one disk, and wherein the parity data can be used for error correction of the user data read from the second sector;

recover a logical block address (LBA) for the user data read from the second sector using the parity data, wherein the LBA is not stored on the at least one disk with the user data; and

determine whether to store in the data cache memory the user data read from the second sector during the pre-read or post-read operation based on the recovered LBA for the user data read from the second sector.

13. The disk drive of claim 12 , wherein the controller is further configured to recover the LBA for the user data by at least decoding the parity data using a low-density parity-check (LDPC) code.

14. The disk drive of claim 12 , wherein the second sector forms a portion of a track on the at least one disk which overlaps another track on the at least one disk.

15. The disk drive of claim 12 , wherein the controller is further configured to determine whether to store the user data read from the second sector by at least determining whether the user data read from the second sector is valid.

16. The disk drive of claim 15 , wherein the disk drive uses a translation table mapping LBAs to physical block addresses (PBAs) for the at least one disk, and wherein determining the validity of the user data read from the second sector is based at least in part on a mapping of the recovered LBA in the translation table.

17. The disk drive of claim 12 , wherein the controller is further configured to determine whether to store the user data read from the second sector by at least determining whether the user data read from the second sector meets a data cache policy.

18. The disk drive of claim 12 , further comprising a buffer for storing data, and wherein the controller is further configured to store the recovered LBA in the buffer for determining whether to store the user data read from the second sector in the data cache memory.

19. A disk drive in communication with a host, the disk drive comprising:

at least one disk for storing data; and

a controller configured to:

receive a write command from the host including a logical block address (LBA) for user data in the write command;

generate parity data for error correction of the user data by encoding the LBA and the user data;

write the user data and the parity data on the at least one disk;

wherein the LBA for the user data is not written to the at least one disk and can be recovered using the parity data when read from the at least one disk; and

based on the recovered LBA, determine whether to store the user data in a data cache memory of the disk drive when the user data is read during a pre-read or post-read operation.

20. The disk drive of claim 19 , wherein the controller is further configured to generate parity data by at least encoding the LBA and the user data using a low-density parity-check (LDPC) code.

21. The disk drive of claim 19 , wherein the controller is further configured to write the user data and the parity data by at least writing the user data and the parity data in a track on the at least one disk which overlaps another track on the at least one disk.

22. The disk drive of claim 19 , further comprising a buffer for storing data, and wherein the controller is further configured to store the LBA of the write command in the buffer for generating the parity data.

23. The method of claim 1 , wherein determining whether to store in the data cache memory the user data read from the second sector during the pre-read or post-read operation further comprises:

comparing the recovered LBA to an LBA for user data in the first sector; and

determining whether to store the user data read from the second sector in the data cache memory based on the comparison between the recovered LBA and the LBA for the user data in the first sector.

24. The method of claim 23 , further comprising determining not to store the user data read from the second sector in the data cache memory if the recovered LBA differs from the LBA for the user data in the first sector by more than a predetermined amount.

25. The disk drive of claim 12 , wherein in determining whether to store in the data cache memory the user data read from the second sector during the pre-read or post-read operation, the controller is further configured to:

compare the recovered LBA to an LBA for user data in the first sector; and

determine whether to store the user data read from the second sector in the data cache memory based on the comparison between the recovered LBA and the LBA for the user data in the first sector.

26. The disk drive of claim 25 , wherein the controller is further configured to determine not to store the user data read from the second sector in the data cache memory if the recovered LBA differs from the LBA for the user data in the first sector by more than a predetermined amount.

Assignments (8)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2013
From: HAMILTON, DAVID M.; LEE, PATRICK J.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 030816/0526 →