IP Library Granted Patent US 8,959,281
Granted Patent B1
US 8,959,281 · App. 13/673,956 · Granted Feb 17, 2015

Data management for a storage device

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 8,959,281
App. No.
13/673,956
Granted
Feb 17, 2015
Kind
B1
Abstract

Data management for a storage device which includes a disk for storing data and a non-volatile memory (NVM) for storing a translation table. The data on the disk is associated with a plurality of logical block addresses (LBAs) and the translation table stored in the NVM maps each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA. Data associated with at least one LBA is written on the disk and the at least one LBA is added to the translation table with a PBA identifying a physical location on the disk storing the written data.

Claims (152)

1. A storage device comprising:

a disk for storing data associated with a plurality of logical block addresses (LBAs);

a non-volatile memory (NVM) for storing a translation table mapping each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA; and

a controller configured to:

store footer metadata in the NVM including an LBA associated with recently written data and a PBA identifying a physical location of the recently written data on the disk; and

after a powering-up of the storage device:

determine if the translation table maps the LBA of the footer metadata to the PBA of the footer metadata; and

when the translation table is determined not to map the LBA of the footer metadata to the PBA of the footer metadata:

search for at least one write log in a range between a physical location on the disk corresponding to a PBA of a last entry in the translation table and a physical location corresponding to the PBA of the footer metadata;

identify entries in the at least one write log that are not in the translation table; and

update the translation table using the identified entries in the at least one write log and the footer metadata.

2. The storage device of claim 1 , further comprising a spindle motor for rotating the disk,

wherein the spindle motor is constructed to generate electric power from a continued rotation of the disk when there is a loss of power to the storage device, and

wherein the generated electric power is used by the storage device to store the footer metadata in the NVM for the recently written data.

3. The storage device of claim 1 , wherein the disk includes a plurality of overlapping tracks for storing data.

4. The storage device of claim 1 , wherein the NVM includes a NAND flash memory and/or a NOR flash memory.

5. The storage device of claim 1 , wherein the controller is further configured to:

determine if a size of data associated with an LBA is less than a threshold;

store the data in the NVM when the size of the data is less than the threshold; and

when the size of the data is not less than the threshold, control the storage device to write the data on the disk.

6. The storage device of claim 1 , wherein the controller is further configured to:

receive an input indicating an environmental condition; and

in response to receiving the input indicating the environmental condition, control the storage device to abort writing data on the disk and store the data in the NVM.

7. The storage device of claim 6 , wherein the environmental condition includes a vibration condition.

8. The storage device of claim 1 , wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks, and wherein the controller is further configured to:

control the storage device to write a first portion of data associated with a range of LBAs in at least one zone of the plurality of zones; and

store a second portion of the data associated with the range of LBAs in the NVM when the second portion of the data would not substantially fill a second zone of the plurality of zones.

9. The storage device of claim 1 , wherein the controller is further configured to:

determine whether an LBA associated with data to be stored in the storage device sequentially follows a last written LBA on the disk;

when the LBA associated with the data to be stored sequentially follows the last written LBA, control the storage device to write the data associated with the LBA on the disk; and

when the LBA associated with the data to be stored does not sequentially follow the last written LBA, store the data associated with the LBA in the NVM.

10. The storage device of claim 1 , wherein the controller is further configured to:

identify a defective portion of the disk;

read data adjacent the defective portion; and

store the data read in the NVM.

11. The storage device of claim 1 , wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks, and wherein the controller is further configured to:

determine whether data to be stored in the storage device would begin at or near a boundary between a first zone and a second zone if the data were written on the disk;

when it is determined the data would begin at or near the boundary, control the storage device to write the data on the disk; and

when it is determined the data would not begin at or near the boundary:

store a first portion of the data in the NVM, wherein a size of the first portion of the data approximately matches a size of a remaining unwritten portion of the first zone; and

control the storage device to write a second portion of the data following the first portion beginning at or near the boundary between the first and second zones.

12. A method for managing data in a storage device including a disk for storing data associated with a plurality of logical block addresses (LBAs) and a non-volatile memory (NVM) for storing a translation table mapping each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA, the method comprising:

storing footer metadata in the NVM including an LBA associated with recently written data and a PBA identifying a physical location of the recently written data on the disk;

wherein after a powering-up of the storage device, the method further comprises:

determining if the translation table maps the LBA of the footer metadata to the PBA of the footer metadata; and

when the translation table is determined not to map the LBA of the footer metadata to the PBA of the footer metadata:

searching for at least one write log in a range between a physical location on the disk corresponding to a PBA of a last entry in the translation table and a physical location corresponding to the PBA of the footer metadata;

identifying entries in the at least one write log that are in the translation table; and

updating the translation table using the identified entries in the at least one write log and the footer metadata.

13. The method of claim 12 , wherein the method further comprises:

generating electric power from a continued rotation of the disk when there is a loss of power to the storage device, and

using the generated electric power to store the footer metadata in the NVM for the recently written data.

14. The method of claim 12 , wherein the disk includes a plurality of overlapping tracks for storing data.

15. The method of claim 12 , wherein the NVM includes a NAND flash memory and/or a NOR flash memory.

16. The method of claim 12 , further comprising:

determining whether a size of data associated with an LBA is less than a threshold;

storing the data in the NVM when the size of the data is determined less than the threshold; and

when the size of the data is determined not less than the threshold, writing the data on the disk.

17. The method of claim 12 , further comprising:

receiving an input indicating an environmental condition; and

in response to receiving the input indicating the environmental condition, aborting writing data on the disk and storing the data in the NVM.

18. The method of claim 17 , wherein the environmental condition includes a vibration condition.

19. The method of claim 12 , wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks, and wherein the method further comprises:

writing a first portion of data associated with a range of LBAs in at least one zone of the plurality of zones; and

storing a second portion of the data associated with the range of LBAs in the NVM when the second portion of the data would not substantially fill a second zone of the plurality of zones.

20. The method of claim 12 , further comprising:

determining whether an LBA associated with data to be stored in the storage device sequentially follows a last written LBA on the disk;

when the LBA associated with the data to be stored is determined to sequentially follow the last written LBA, writing the data associated with the LBA on the disk; and

when the LBA associated with the data to be stored is determined to not sequentially follow the last written LBA, storing the data associated with the LBA in the NVM.

21. The method of claim 12 , further comprising:

identifying a defective portion of the disk;

reading data adjacent the defective portion; and

storing the data read in the NVM.

22. The method of claim 12 , wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks, and wherein the method further comprises:

determining whether data to be stored in the storage device would begin at or near a boundary between a first zone and a second zone if the data were written on the disk;

when it is determined the data would begin at or near the boundary, writing the data on the disk; and

when it is determined the data would not begin at or near the boundary:

storing a first portion of the data in the NVM, wherein a size of the first portion of the data approximately matches a size of a remaining unwritten portion of the first zone; and

writing a second portion of the data following the first portion beginning at or near the boundary between the first and second zones.

23. A non-transitory computer-readable storage medium storing computer-executable instructions for operating a storage device including a disk for storing data associated with a plurality of logical block addresses (LBAs) and a non-volatile memory (NVM) for storing a translation table mapping each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA, wherein when the computer-executable instructions are executed by a processor, the processor:

stores footer metadata in the NVM including an LBA associated with recently written data and a PBA identifying a physical location of the recently written data on the disk; and

wherein when the computer-executable instructions are executed by the processor after a powering-up of the storage device, the processor further:

determines if the translation table maps the LBA of the footer metadata to the PBA of the footer metadata; and

when the translation table is determined not to map the LBA of the footer metadata to the PBA of the footer metadata, the processor:

searches for at least one write log in a range between a physical location on the disk corresponding to a PBA of a last entry in the translation table and a physical location corresponding to the PBA of the footer metadata;

identifies entries in the at least one write log that are not in the translation table; and

updates the translation table using the identified entries in the at least one write log and the footer metadata.

24. The non-transitory computer-readable storage medium of claim 23 , wherein when the computer-executable instructions are executed by the processor, the processor further:

controls the storage device to generate electric power from a continued rotation of the disk when there is a loss of power to the storage device, and

uses the generated electric power to store the footer metadata in the NVM for the recently written data.

25. The non-transitory computer-readable storage medium of claim 23 , wherein the disk includes a plurality of overlapping tracks for storing data.

26. The non-transitory computer-readable storage medium of claim 23 , wherein the NVM includes a NAND flash memory and/or a NOR flash memory.

27. The non-transitory computer-readable storage medium of claim 23 , wherein when the computer-executable instructions are executed by the processor, the processor further:

determines whether a size of data associated with an LBA is less than a threshold;

stores the data in the NVM when the size of the data is determined less than the threshold; and

when the size of the data is determined not less than the threshold, writes the data on the disk.

28. The non-transitory computer-readable storage medium of claim 23 , wherein when the computer-executable instructions are executed by the processor, the processor further:

receives an input indicating an environmental condition; and

in response to receiving the input indicating the environmental condition, aborts writing data on the disk and stores the data in the NVM.

29. The non-transitory computer-readable storage medium of claim 28 , wherein the environmental condition includes a vibration condition.

30. The non-transitory computer-readable storage medium of claim 23 , wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks, and wherein when the computer-executable instructions are executed by the processor, the processor further:

writes a first portion of data associated with a range of LBAs in at least one zone of the plurality of zones; and

stores a second portion of the data associated with the range of LBAs in the NVM when the second portion of the data would not substantially fill a second zone of the plurality of zones.

31. The non-transitory computer-readable storage medium of claim 23 , wherein when the computer-executable instructions are executed by the processor, the processor further:

determines whether an LBA associated with data to be stored in the storage device sequentially follows a last written LBA on the disk;

when the LBA associated with the data to be stored is determined to sequentially follow the last written LBA, writes the data associated with the LBA on the disk; and

when the LBA associated with the data to be stored is determined to not sequentially follow the last written LBA, stores the data associated with the LBA in the NVM.

32. The non-transitory computer-readable storage medium of claim 23 , wherein when the computer-executable instructions are executed by the processor, the processor further:

identifies a defective portion of the disk;

reads data adjacent the defective portion; and

stores the data read in the NVM.

33. The non-transitory computer-readable storage medium of claim 23 , wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks, and wherein when the processor executes the computer-executable instructions, the processor further:

determines whether data to be stored in the storage device would begin at or near a boundary between a first zone and a second zone if the data were written on the disk;

when it is determined the data would begin at or near the boundary, writes the data on the disk; and

when it is determined the data would not begin at or near the boundary, the processor:

stores a first portion of the data in the NVM, wherein a size of the first portion of the data approximately matches a size of a remaining unwritten portion of the first zone; and

writes a second portion of the data following the first portion beginning at or near the boundary between the first and second zones.

34. A storage device comprising:

a disk for storing data associated with a plurality of logical block addresses (LBAs), wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks;

a non-volatile memory (NVM) for storing a translation table mapping each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA; and

a controller configured to:

control the storage device to write a first portion of data associated with a range of LBAs in at least one zone of the plurality of zones; and

store a second portion of the data associated with the range of LBAs in the NVM when the second portion of the data would not substantially fill a second zone of the plurality of zones.

35. A method for managing data in a storage device including a disk for storing data associated with a plurality of logical block addresses (LBAs) and a non-volatile memory (NVM) for storing a translation table mapping each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA, wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks, the method comprising:

writing a first portion of data associated with a range of LBAs in at least one zone of the plurality of zones; and

storing a second portion of the data associated with the range of LBAs in the NVM when the second portion of the data would not substantially fill a second zone of the plurality of zones.

36. A storage device comprising:

a disk for storing data associated with a plurality of logical block addresses (LBAs);

a non-volatile memory (NVM) for storing a translation table mapping each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA; and

a controller configured to:

identify a defective portion of the disk;

read data adjacent the defective portion; and

store the data read in the NVM.

37. A method for managing data in a storage device including a disk for storing data associated with a plurality of logical block addresses (LBAs) and a non-volatile memory (NVM) for storing a translation table mapping each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA, the method comprising:

identifying a defective portion of the disk;

reading data adjacent the defective portion; and

storing the data read in the NVM.

38. A storage device comprising:

a disk for storing data associated with a plurality of logical block addresses (LBAs), wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks;

a non-volatile memory (NVM) for storing a translation table mapping each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA; and

a controller configured to:

determine whether data to be stored in the storage device would begin at or near a boundary between a first zone and a second zone if the data were written on the disk;

when it is determined the data would begin at or near the boundary, control the storage device to write the data on the disk; and

when it is determined the data would not begin at or near the boundary:

store a first portion of the data in the NVM, wherein a size of the first portion of the data approximately matches a size of a remaining unwritten portion of the first zone; and

control the storage device to write a second portion of the data following the first portion beginning at or near the boundary between the first and second zones.

39. A method for managing data in a storage device including a disk for storing data associated with a plurality of logical block addresses (LBAs) and a non-volatile memory (NVM) for storing a translation table mapping each of the plurality of LBAs to a respective physical block address (PBA) identifying a physical location on the disk storing the data associated with the LBA, wherein the disk includes a plurality of tracks for storing data, with the plurality of tracks grouped into a plurality of zones of tracks, the method comprising:

determining whether data to be stored in the storage device would begin at or near a boundary between a first zone and a second zone if the data were written on the disk;

when it is determined the data would begin at or near the boundary, writing the data on the disk; and

when it is determined the data would not begin at or near the boundary:

storing a first portion of the data in the NVM, wherein a size of the first portion of the data approximately matches a size of a remaining unwritten portion of the first zone; and

writing a second portion of the data following the first portion beginning at or near the boundary between the first and second zones.

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 Nov 9, 2012
From: MALINA, JAMES N.; HAMILTON, DAVID M.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 029276/0498 →