Non-volatile memory and method having block management with hot/cold data sorting
First Claim
1. A method of operating on units of data in a non-volatile memory, comprising:
- organizing the non-volatile memory into blocks of memory cells that are erasable together;
partitioning the non-volatile memory into a SLC portion and an MLC portion, where memory cells in the SLC portion each stores one bit of data and memory cells in the MLC portion each stores more than one bit of data;
providing a plurality of logical groups by partitioning a logical address space of the host into non-overlapping sub-ranges of ordered logical addresses, wherein multiple logical groups are storable in each block and each logical group having a plurality of corresponding logical pages;
providing first and second operational layers in the SLC portion and a third operational layer in the MLC portion;
initially storing host data being written in the first operational layer and subsequently relocating the host data therefrom logical-group by logical-group into either the second or third operational layer;
ranking each logical group by assigning a temperature, the temperature being determined as a function of a time stamp value and potential for future rewrites of each logical group, the time stamp providing a relative measure of how recently written in is each of the logical group, and where a higher temperature indicates a higher probability that the logical group will suffer subsequent rewrites due to garbage collection operations; and
evicting a logical group from the second operational layer to the third operational layer in a manner dependent on the temperature associated with the logical group being evicted.
2 Assignments
0 Petitions
Accused Products
Abstract
A non-volatile memory organized into flash erasable blocks sorts units of data according to a temperature assigned to each unit of data, where a higher temperature indicates a higher probability that the unit of data will suffer subsequent rewrites due to garbage collection operations. The units of data either come from a host write or from a relocation operation. The data are sorted either for storing into different storage portions, such as SLC and MLC, or into different operating streams, depending on their temperatures. This allows data of similar temperature to be dealt with in a manner appropriate for its temperature in order to minimize rewrites. Examples of a unit of data include a logical group and a block.
109 Citations
32 Claims
-
1. A method of operating on units of data in a non-volatile memory, comprising:
-
organizing the non-volatile memory into blocks of memory cells that are erasable together; partitioning the non-volatile memory into a SLC portion and an MLC portion, where memory cells in the SLC portion each stores one bit of data and memory cells in the MLC portion each stores more than one bit of data; providing a plurality of logical groups by partitioning a logical address space of the host into non-overlapping sub-ranges of ordered logical addresses, wherein multiple logical groups are storable in each block and each logical group having a plurality of corresponding logical pages; providing first and second operational layers in the SLC portion and a third operational layer in the MLC portion; initially storing host data being written in the first operational layer and subsequently relocating the host data therefrom logical-group by logical-group into either the second or third operational layer; ranking each logical group by assigning a temperature, the temperature being determined as a function of a time stamp value and potential for future rewrites of each logical group, the time stamp providing a relative measure of how recently written in is each of the logical group, and where a higher temperature indicates a higher probability that the logical group will suffer subsequent rewrites due to garbage collection operations; and evicting a logical group from the second operational layer to the third operational layer in a manner dependent on the temperature associated with the logical group being evicted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-volatile memory for storing units of data, comprising:
-
a memory array organized into blocks of memory cells that are erasable together; said memory array being partitioned the non-volatile memory into a SLC portion and an MLC portion, where memory cells in the SLC portion each stores one bit of data and memory cells in the MLC portion each stores more than one bit of data and for storing data logical group by logical group in each block of the SLC portion; first and second operational layers in the SLC portion and a third operational layer in the MLC portion; a plurality of logical groups provided by partitioning a logical address space of the host into non-overlapping groups of sequential logical addresses, wherein multiple logical groups are storable in each block and each logical group having a plurality of corresponding logical pages; the first operational layer for initially storing host data being written and for subsequently relocating therefrom the host data logical-group by logical-group into the second or third layers; and a state machine controlling operations that include; ranking each logical group by assigning a temperature, the temperature being determined as a function of a time stamp value and potential for future rewrites of each logical group, the time stamp providing a relative measure of how recently written in is each of the logical group, and where a higher temperature indicates a higher probability that the logical group will suffer subsequent rewrites due to garbage collection operations; and evicting a logical group from the second operational layer to the third operational layer in a manner dependent on the temperature associated with the logical group being evicted. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification