System and method for optimizing garbage collection in data storage
AssigneeWestern Digital Technologies, Inc.
InventorsWilliam B. Boyle, Robert M. Fallone
Life of this patent
Estimating the term…
Abstract
The present invention is directed to systems and methods for optimizing garbage collection in data storage. The data storage may be a shingled disk drive or a non-volatile solid-state memory device. Garbage collection is optimized by selectively saving data read from certain locations of the data storage in response to host read commands and using the saved data for subsequent garbage collection operations. The decision of whether to save data may be based on a number of criteria, including whether the data is located in an area of the data storage that is due to be garbage collected in the near future. In this manner, certain garbage collection operations can be performed without having to re-read the saved data.
Claims25
A method of performing garbage collection in a disk drive comprising control circuitry that reads and writes data in at least a portion of the disk drive as a circular buffer in response to commands from a host system, the method comprising:
- reading data from a physical block address of the disk drive in response to a read command from the host system;
- saving the data in temporary memory;
- determining, based at least partly on if a distance between the physical block address and an end location of the circular buffer is shorter than a threshold, whether to retain data in the temporary memory for subsequent use in performing garbage collection;
- and
- performing a garbage collection operation with the data in the temporary memory.
A data storage comprising:
- a disk comprising a plurality of tracks, wherein each track comprises a plurality of data sectors each assigned a physical block address;
- and
- control circuitry for reading and writing data in at least a portion of the data storage, the control circuitry configured to:
- read and write data in at least a portion of the disk as a circular buffer;
- in response to a read command from a host system, cause data to be read from a physical block address in the disk and saved in temporary memory;
- determine, based at least partly on a location of the physical block address in the disk, whether to save the data in the temporary memory for subsequent use in performing garbage collection;
- and
- perform a garbage collection operation with the data in the temporary memory.
A method of performing garbage collection in a data storage device comprising control circuitry that reads and writes data into a plurality of zones of the data storage device in response to commands from a host system, the method comprising:
- reading data from a physical block address of the data storage device in response to a read command from the host system;
- saving the data in temporary memory;
- determining, based at least partly on if the physical block address is located in a zone of the plurality of zones that has a number of invalid blocks that exceeds a minimum invalidity threshold, whether to retain data in the temporary memory for subsequent use in performing garbage collection;
- and
- performing a garbage collection operation with the data in temporary memory.
A method of performing garbage collection in a data storage device, the method comprising:
- reading data from a physical block address of the data storage device in response to a read command from a host system;
- saving the data in temporary memory;
- determining, based at least partly on if the physical block address appears on a list of addresses that meet a minimum least recently used threshold, whether to retain data in the temporary memory for subsequent use in performing garbage collection;
- and
- performing a garbage collection operation with the data in the temporary memory.
A data storage comprising:
- control circuitry for reading and writing data in at least a portion of the data storage, the control circuitry configured to:
- in response to a read command from a host system, cause data to be read from a physical block address in the data storage and saved in temporary memory;
- determine, based at least partly on if the physical block address appears on a list of addresses that meet a minimum least recently used threshold, whether to save the data in the temporary memory for subsequent use in performing garbage collection;
- and
- perform a garbage collection operation with the data in the temporary memory.
Dependencies are inferred from the claim text.