Data management for a storage device
First Claim
Patent Images
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.
8 Assignments
0 Petitions
Accused Products
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.
-
Citations
39 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
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. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
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. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
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.
-
Specification