Management of a non-volatile memory module
First Claim
1. A method for memory management, the method comprises:
- allocating, for each buffer (Bi) out of multiple buffers of a buffer set of a non-volatile memory device, a number (Ni) of logical memory blocks, wherein the number of logical blocks allocated to each buffer is responsive to (a) a sum (Pi) of temperatures of logical memory blocks allocated to the buffer, (b) a relative size (Ri) of the buffer, and (c) a number (Nnac) of logical memory blocks of the non-volatile memory device that are not accessible to a user;
receiving data sectors;
wherein each data sector belongs to a memory space subset out of multiple memory space subsets;
wherein the memory space is partitioned to the multiple memory space subsets based upon temperatures of a plurality of logical memory blocks included in the multiple memory space subsets;
wherein a temperature of a logical memory block represents an access frequency to the logical memory block;
writing each data sector into a data block that is allocated to a memory space subset that is associated with the data sector;
wherein the data block belongs to the buffer set;
maintaining a management data structure that comprises location metadata about a location of each data sector in the buffer set; and
merging, if a criterion is fulfilled and before a buffer of the buffer set becomes full, data sectors stored at different data blocks and belong to a same set of logical memory blocks into a sequential portion of the non-volatile memory device, wherein the sequential portion differs from the buffer set.
9 Assignments
0 Petitions
Accused Products
Abstract
A method of managing a non-volatile memory device, the method comprising receiving data sectors; wherein each data sector belongs to a memory space subset out of multiple memory space subsets; wherein the multiple memory space subsets comprise a plurality of logical memory blocks; wherein the memory space is partitioned to the multiple memory space subsets based upon expected or monitored memory access patterns; writing each data sector into a data block that is allocated to a memory space subset that is associated with the data sector; wherein the data block belongs to a buffer of the non-volatile memory device; maintaining a management data structure that comprises location metadata about a location of each data sector in the buffer; and merging, if a criterion is fulfilled and before the buffer becomes full, data sectors stored at different data blocks and belong to a same set of logical memory blocks into a sequential portion of the non-volatile memory device, wherein the sequential portion differs from the buffer.
355 Citations
24 Claims
-
1. A method for memory management, the method comprises:
-
allocating, for each buffer (Bi) out of multiple buffers of a buffer set of a non-volatile memory device, a number (Ni) of logical memory blocks, wherein the number of logical blocks allocated to each buffer is responsive to (a) a sum (Pi) of temperatures of logical memory blocks allocated to the buffer, (b) a relative size (Ri) of the buffer, and (c) a number (Nnac) of logical memory blocks of the non-volatile memory device that are not accessible to a user; receiving data sectors;
wherein each data sector belongs to a memory space subset out of multiple memory space subsets;
wherein the memory space is partitioned to the multiple memory space subsets based upon temperatures of a plurality of logical memory blocks included in the multiple memory space subsets;
wherein a temperature of a logical memory block represents an access frequency to the logical memory block;writing each data sector into a data block that is allocated to a memory space subset that is associated with the data sector;
wherein the data block belongs to the buffer set;maintaining a management data structure that comprises location metadata about a location of each data sector in the buffer set; and merging, if a criterion is fulfilled and before a buffer of the buffer set becomes full, data sectors stored at different data blocks and belong to a same set of logical memory blocks into a sequential portion of the non-volatile memory device, wherein the sequential portion differs from the buffer set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer readable medium that stores instructions that once executed by a memory controller cause the memory controller to:
-
allocate, for each buffer (Bi) out of multiple buffers of a buffer set of a non-volatile memory device, a number (Ni) of logical memory blocks, wherein the number of logical blocks allocated to each buffer is responsive to (a) a sum (Pi) of temperatures of logical memory blocks allocated to the buffer, (b) a relative size (Ri) of the buffer, and (c) a number (Nnac) of logical memory blocks of the non-volatile memory device that are not accessible to a user; receive data sectors;
wherein each data sector belongs to a memory space subset out of multiple memory space subsets;
wherein the memory space is partitioned to the multiple memory space subsets based upon temperatures of a plurality of logical memory blocks included in the multiple memory space subsets;
wherein a temperature of a logical memory block represents an access frequency to the logical memory block;write each data sector into a data block that is allocated to a memory space subset that is associated with the data sector;
wherein the data block belongs to the buffer set;maintain a management data structure that comprises location metadata about a location of each data sector in the buffer set; and merge, if a criterion is fulfilled and before a buffer of the buffer set becomes full, data sectors stored at different data blocks and belong to a same set of logical memory blocks into a sequential portion of the non-volatile memory device, wherein the sequential portion differs from the buffer set. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A device comprising a memory controller and a non-volatile memory device;
-
wherein the memory controller is arranged to; allocate, for each buffer (Bi) out of multiple buffers of a buffer set of a non-volatile memory device, a number (Ni) of logical memory blocks, wherein the number of logical blocks allocated to each buffer is responsive to (a) a sum (Pi) of temperatures of logical memory blocks allocated to the buffer, (b) a relative size (Ri) of the buffer, and (c) a number (Nnac) of logical memory blocks of the non-volatile memory device that are not accessible to a user; receive data sectors;
wherein each data sector belongs to a memory space subset out of multiple memory space subsets;
wherein the memory space is partitioned to the multiple memory space subsets based upon temperatures of a plurality of logical memory blocks included in the multiple memory space subsets;
wherein a temperature of a logical memory block represents an access frequency to the logical memory block;write each data sector into a data block that is allocated to a memory space subset that is associated with the data sector;
wherein the data block belongs to the buffer set;maintain a management data structure that comprises location metadata about a location of each data sector in the buffer set; and merge, if a criterion is fulfilled and before a buffer of the buffer set becomes full, data sectors stored at different data blocks and belong to a same set of logical memory blocks into a sequential portion of the non-volatile memory device, wherein the sequential portion differs from the buffer set. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification