SYSTEM AND METHOD FOR MANAGING MAPPING DATA IN NON-VOLATILE MEMORY SYSTEMS HAVING MULTIPLE MAPPING LAYERS
First Claim
1. A non-volatile memory system comprising:
- a non-volatile memory;
a volatile memory having a fixed-size mapping table cache; and
a controller in communication with the volatile memory and the non-volatile memory, the controller configured to;
store a master mapping table of logical to physical address mapping data for data in the non-volatile memory, the master mapping table having a predetermined size and divided into a plurality of master mapping table sets;
store, in the non-volatile memory, an update mapping table of logical to physical address mapping data, the update mapping table having updated logical to physical mapping data not yet written into the master mapping table, the update mapping table divided into a plurality of update mapping table sets each having a same physical size as a master mapping table set, wherein a size of the fixed size mapping table cache of the volatile memory is less than a size of the update mapping table; and
swap a portion of the update mapping table sets between the non-volatile memory and the volatile memory based on a workload of the non-volatile memory system.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method is described for managing mapping data in a non-volatile memory system having a volatile memory cache smaller than the update table for the mapping data. The system includes multiple mapping layers, for example two mapping layers, including a master mapping table of logical-to-physical mapping entries and an update table of mapping updates, for a non-volatile memory. A processor swaps predetermined size portions of the update mapping table and master mapping table into and out of the volatile memory cache based on host workload. The update mapping table portions may have a fixed or an adaptive logical range. Additional mapping layers, such as an expanded mapping layer having portions with a logical range greater than the logical range of the update mapping portions, may also be included and may be swapped into and out of the volatile memory with the master and update mapping table portions.
44 Citations
21 Claims
-
1. A non-volatile memory system comprising:
-
a non-volatile memory; a volatile memory having a fixed-size mapping table cache; and a controller in communication with the volatile memory and the non-volatile memory, the controller configured to; store a master mapping table of logical to physical address mapping data for data in the non-volatile memory, the master mapping table having a predetermined size and divided into a plurality of master mapping table sets; store, in the non-volatile memory, an update mapping table of logical to physical address mapping data, the update mapping table having updated logical to physical mapping data not yet written into the master mapping table, the update mapping table divided into a plurality of update mapping table sets each having a same physical size as a master mapping table set, wherein a size of the fixed size mapping table cache of the volatile memory is less than a size of the update mapping table; and swap a portion of the update mapping table sets between the non-volatile memory and the volatile memory based on a workload of the non-volatile memory system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of managing mapping data in a non-volatile memory system, the non-volatile memory system having a non-volatile memory and a controller in communication with the non-volatile memory, the method comprising the controller:
-
receiving a host command, the host command identifying at least one logical block address (LBA) assigned to data associated with the command; determining if mapping data associated with the at least one LBA is present in a fixed-size mapping cache in volatile memory of the non-volatile memory system, wherein a size of the fixed-size mapping cache of the volatile memory is less than a size of an update mapping layer in the non-volatile memory; when the mapping data associated with the at least one LBA is not present in the volatile memory mapping cache and the fixed-size volatile memory mapping cache is full, the controller; removing an update mapping layer set currently stored in the volatile memory not associated with the at least one LBA, the update mapping layer set comprising one of a plurality of update mapping layer sets forming a complete update mapping layer stored in the non-volatile memory; copying any valid update data from the removed update mapping layer set into non-volatile memory; copying into the fixed-size mapping cache from the non-volatile memory at least one of a master mapping layer set or an update mapping layer set associated with the at least one LBA; and wherein the non-volatile memory contains a master mapping layer divided into a plurality of master mapping layer sets, each master mapping layer set containing direct mapping entries of logical-to-physical mappings for all logical addresses in a first range length of LBAs, and contains an update mapping layer divided into a plurality of update mapping layer sets each having mapping update entries for a second range length of LBAs. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A non-volatile memory system comprising:
a non-volatile memory having a master mapping layer divided into a plurality of master mapping sets of logical-to-physical mapping entries, an update mapping layer divided into a plurality of update mapping sets and an expanded mapping layer divided into a plurality of expanded mapping layer sets; wherein each master mapping set, update mapping set and expanded mapping set has a same physical size, and wherein each update mapping set is associated with a logical block address (LBA) range equal to a fixed plurality of master mapping set LBA ranges and each expanded mapping set is associated with a fixed plurality of update mapping set LBA ranges; a volatile memory mapping cache having a fixed size that is less than a size of the update mapping layer; mapping set management means for, when mapping data for an LBA associated with a received host command is not in the volatile memory mapping cache; copying at least one master mapping set, update mapping set or expanded mapping set for the LBA associated with a received host command from the non-volatile memory to the volatile memory mapping cache when space is available in the volatile memory mapping cache for additional mapping data; and when the volatile memory mapping cache is currently full, removing at least one master mapping set, update mapping set or expanded mapping set that is currently in the volatile memory mapping cache and then copying at least one master mapping set, update mapping set or expanded mapping set for the LBA.
Specification