SYSTEM AND METHOD FOR TRACKING BLOCK LEVEL MAPPING OVERHEAD IN A NON-VOLATILE MEMORY
First Claim
1. A non-volatile memory system comprising:
- a non-volatile memory having a plurality of memory blocks; and
a processor in communication with the non-volatile memory, the processor configured to;
receive data from a host;
store the received data in an open block in the non-volatile memory;
update a logical block address (LBA) range data structure dedicated exclusively to the open block to identify one of a plurality of predetermined LBA ranges associated with the received data, wherein the processor is configured to update the LBA range data structure only when the LBA range of the received data contains data associated with a host LBA falling in one of the predetermined LBA ranges for a first time in the open block.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method is disclosed for tracking block mapping overhead in a non-volatile memory. The system may include a non-volatile memory having multiple memory blocks and a processor configured to track a block level mapping overhead for closed blocks of the multiple memory blocks. The processor may be configured to track predetermined logical address ranges within which data written to a block fall, and then store the sum of the number of different logical address ranges for each respective block as a block address entropy metric. The method may include the processor using the block address entropy metric to select source blocks for garbage collection with a lower block address entropy metric or to adjust other operational characteristics such as data routing within the non-volatile memory system based on average block address entropy for a group of blocks.
-
Citations
21 Claims
-
1. A non-volatile memory system comprising:
-
a non-volatile memory having a plurality of memory blocks; and a processor in communication with the non-volatile memory, the processor configured to; receive data from a host; store the received data in an open block in the non-volatile memory; update a logical block address (LBA) range data structure dedicated exclusively to the open block to identify one of a plurality of predetermined LBA ranges associated with the received data, wherein the processor is configured to update the LBA range data structure only when the LBA range of the received data contains data associated with a host LBA falling in one of the predetermined LBA ranges for a first time in the open block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-volatile memory system comprising:
-
a non-volatile memory having a plurality of blocks; and a processor in communication with the non-volatile memory, the processor configured to; receive data from a host; store the received data in an open block in the non-volatile memory; as the received data is stored in the open block, determine a block address entropy value for the open block, wherein the block address entropy value comprises a number of different of mapping address table pieces from a predetermined number of mapping address table pieces of a main mapping table that correspond to logical addresses of the received data in the open block; and upon fully programming the open block, storing the block address entropy value in an entropy value data structure, the entropy value data structure configured to store a respective block address entropy value for each fully programmed block in the non-volatile memory. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of tracking block address entropy in a non-volatile memory system comprising:
-
receiving data at a non-volatile memory having a plurality of blocks; storing the received data in a block of the plurality of blocks; marking logical ranges of the received data in predetermined logical range entries of a logical block address range data structure associated with the block, each predetermined logical range entry corresponding to a different piece of a mapping table for the non-volatile memory system; determining a block address entropy value for the block, wherein the block address entropy value comprises a sum of different predetermined logical range entries marked for the block in the logical block address range data structure; and in response to fully programming the block, storing the determined block address entropy value and deleting the logical block address range data structure associated with the block. - View Dependent Claims (18, 19, 20)
-
-
21. A non-volatile memory system comprising:
-
a non-volatile memory having a plurality of memory blocks; and means for receiving data from a host and storing the received data in an open block of the non-volatile memory; and means for storing logical block address (LBA) range data exclusively for the open block and for updating the LBA range data only when an LBA range of the received data contains data associated with a host LBA falling in one of a predetermined number of LBA ranges for a first time in the open block.
-
Specification