File system derived metadata for management of non-volatile memory
First Claim
Patent Images
1. A method performed by a processor in a non-volatile memory system, comprising:
- receiving a request for a garbage collection operation on a memory array within a non-volatile memory device of the non-volatile memory system, wherein the memory array is configured to store file data and file metadata, wherein the file metadata includes data associating files stored in the memory array to logical block addresses within the memory array;
wherein the metadata further includes a unique object identifier and one or more ranges of logical block addresses associated with the unique object identifier;
wherein a given file is associated with a respective unique object identifier, and the given file includes one or more chunks, wherein each chunk includes, within the chunk, the respective unique object identifier that is associated with the given file;
in response to the request for the garbage collection operation, retrieving the file metadata programmed into the memory array by a file system; and
identifying blocks of non-volatile memory for garbage collection based on the file metadata.
1 Assignment
0 Petitions
Accused Products
Abstract
A file system programs metadata on a non-volatile memory device. The metadata can include data associating files with ranges of logical block addresses. During a garbage collection process, the data can be used to determine portions of physical blocks of the non-volatile memory device that are associated with files that have been deleted. Using the programmed metadata during garbage collection results in erasure of larger portions of blocks and improved wear leveling.
63 Citations
8 Claims
-
1. A method performed by a processor in a non-volatile memory system, comprising:
-
receiving a request for a garbage collection operation on a memory array within a non-volatile memory device of the non-volatile memory system, wherein the memory array is configured to store file data and file metadata, wherein the file metadata includes data associating files stored in the memory array to logical block addresses within the memory array; wherein the metadata further includes a unique object identifier and one or more ranges of logical block addresses associated with the unique object identifier; wherein a given file is associated with a respective unique object identifier, and the given file includes one or more chunks, wherein each chunk includes, within the chunk, the respective unique object identifier that is associated with the given file; in response to the request for the garbage collection operation, retrieving the file metadata programmed into the memory array by a file system; and identifying blocks of non-volatile memory for garbage collection based on the file metadata. - View Dependent Claims (2)
-
-
3. A non-volatile memory system, comprising:
-
a host channel coupling a host system and a non-volatile memory device including a memory array configured to store data and metadata, wherein the metadata comprises data associating files stored in the memory array to logical block addresses within the memory array; wherein the metadata further includes a unique object identifier and one or more ranges of logical block addresses associated with the unique object identifier; wherein a given file is associated with a respective unique object identifier, and the given file includes one or more chunks, wherein each chunk includes, within the chunk, the respective unique object identifier that is associated with the given file; and a controller included in the non-volatile memory device and coupled to the host channel, wherein the controller is configured to retrieve file metadata programmed into the memory array by a file system operated by the host system in response to the host channel receiving a request for a garbage collection operation, and wherein the controller is configured to identify blocks of non-volatile memory for garbage collection based on the file metadata. - View Dependent Claims (4)
-
-
5. A non-volatile memory system including a host system and a non-volatile memory device, the system comprising:
-
a processor in the host system configured to create a file and associated file metadata and to store the file and the file metadata within a same memory array of the non-volatile memory device; and a host channel coupling the host system and the non-volatile memory device, the host channel for programming a memory array in the non-volatile memory device with the file metadata, the file metadata including a unique object identifier assigned to the file and one or more ranges of logical block addresses associated with the unique object identifier; wherein the file includes one or more chunks,, wherein each chunk includes, within the chunk, the respective unique object identifier that is associated with the file; wherein in response to receiving a request for a garbage collection operation on the non-volatile memory device, the host channel is configured to retrieve the file metadata from the memory array to identify blocks of the non-volatile memory array to be erased and re-allocated. - View Dependent Claims (6, 7)
-
-
8. A non-volatile memory, comprising:
-
a memory array configured to store data and metadata, wherein the metadata comprises data associating files stored in the memory array to logical block addresses within the memory array; a controller coupled to the memory array and configured to retrieve file metadata programmed into the memory array by a file system operated by a host system in response to a request for a garbage collection operation; wherein the controller is configured to identify blocks within the non-volatile memory that include invalid data to be erased and re-allocated based on the file metadata; wherein the metadata further includes a unique object identifier and one or more ranges of logical block addresses associated with the unique object identifier; wherein a given file is associated with a respective unique object identifier, and the given file includes one or more chunks, wherein each chunk includes, within the chunk, the respective unique object identifier that is associated with the given file.
-
Specification