Advanced management of a non-volatile memory
First Claim
1. A method of managing a non-volatile memory module, the method comprising:
- receiving data sectors during a set of at least one write transactions;
wherein each data sector belongs to a memory space portion out of multiple memory space portions;
writing the data sectors into a buffer of the non-volatile memory module;
wherein the buffer comprises multiple buffer blocks;
wherein the multiple memory space portions comprise currently buffered memory space portions that are associated with currently buffered data sectors;
selecting, out of the currently buffered portions, to-be-merged memory space portions and to-be-cleaned memory space portions;
wherein a target ratio between (a) a number of to-be-cleaned memory space portions and (b) a sum of the number of to-be-cleaned memory space portions and a number of to-be-merged memory space portions ranges between an upper limit and a lower limit, wherein the upper limit differs from the lower limit and exceeds one half;
merging, for each to-be-merged memory space portion and before the buffer becomes full, data sectors that belong to the to-be-merged memory space portion into a sequential portion of the non-volatile memory module, wherein the sequential portion differs from the buffer;
copying, for each to-be-cleaned memory space and before the buffer becomes full, data sectors that belong to the to-be-cleaned memory space portion into a buffer block of the buffer.
10 Assignments
0 Petitions
Accused Products
Abstract
A method of managing a non-volatile memory module, the method may include: receiving data sectors during a set of at least one write transactions; selecting, out of the currently buffered portions, to-be-merged memory space portions and to-be-cleaned memory space portions; merging, for each to-be-merged memory space portion and before the buffer becomes full, data sectors that belong to the to-be-merged memory space portion into a sequential portion of the non-volatile memory module, wherein the sequential portion differs from the buffer; and copying, for each to-be-cleaned memory space and before the buffer becomes full, data sectors that belong to the to-be-cleaned memory space portion into a buffer block of the buffer.
324 Citations
26 Claims
-
1. A method of managing a non-volatile memory module, the method comprising:
-
receiving data sectors during a set of at least one write transactions;
wherein each data sector belongs to a memory space portion out of multiple memory space portions;writing the data sectors into a buffer of the non-volatile memory module;
wherein the buffer comprises multiple buffer blocks;
wherein the multiple memory space portions comprise currently buffered memory space portions that are associated with currently buffered data sectors;selecting, out of the currently buffered portions, to-be-merged memory space portions and to-be-cleaned memory space portions;
wherein a target ratio between (a) a number of to-be-cleaned memory space portions and (b) a sum of the number of to-be-cleaned memory space portions and a number of to-be-merged memory space portions ranges between an upper limit and a lower limit, wherein the upper limit differs from the lower limit and exceeds one half;merging, for each to-be-merged memory space portion and before the buffer becomes full, data sectors that belong to the to-be-merged memory space portion into a sequential portion of the non-volatile memory module, wherein the sequential portion differs from the buffer; copying, for each to-be-cleaned memory space and before the buffer becomes full, data sectors that belong to the to-be-cleaned memory space portion into a buffer block of the buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A non-transitory computer readable medium that stores instructions that once executed by a memory controller cause the memory controller to:
- receive data sectors during a set of at least one write transactions;
wherein each data sector belongs to a memory space portion out of multiple memory space portions;
write the data sectors into a buffer of the non-volatile memory module;
wherein the buffer comprises multiple buffer blocks;
wherein the multiple memory space portions comprise currently buffered memory space portions that are associated with currently buffered data sectors;
select, out of the currently buffered portions, to-be-merged memory space portions and to-be-cleaned memory space portions;
wherein a target ratio between (a) a number of to-be-cleaned memory space portions and (b) a sum of the number of to-be-cleaned memory space portions and a number of to-be-merged memory space portions ranges between an upper limit and a lower limit, wherein the upper limit differs from the lower limit and exceeds one half;
merge, for each to-be-merged memory space portion and before the buffer becomes full, data sectors that belong to the to-be-merged memory space portion into a sequential portion of the non-volatile memory module, wherein the sequential portion differs from the buffer; and
copy, for each to-be-cleaned memory space and before the buffer becomes full, data sectors that belong to the to-be-cleaned memory space portion into a buffer block of the buffer.
- receive data sectors during a set of at least one write transactions;
-
26. A system, comprising an interface and a memory controller;
-
wherein interface is arranged to receive data sectors during a set of at least one write transactions;
wherein each data sector belongs to a memory space portion out of multiple memory space portions;wherein the memory controller is arranged to; write the data sectors into a buffer of a non-volatile memory module;
wherein the buffer comprises multiple buffer blocks;
wherein the multiple memory space portions comprise currently buffered memory space portions that are associated with currently buffered data sectors;select, out of the currently buffered portions, to-be-merged memory space portions and to-be-cleaned memory space portions;
wherein a target ratio between (a) a number of to-be-cleaned memory space portions and (b) a sum of the number of to-be-cleaned memory space portions and a number of to-be-merged memory space portions ranges between an upper limit and a lower limit, wherein the upper limit differs from the lower limit and exceeds one half;merge, for each to-be-merged memory space portion and before the buffer becomes full, data sectors that belong to the to-be-merged memory space portion into a sequential portion of the non-volatile memory module, wherein the sequential portion differs from the buffer; copy, for each to-be-cleaned memory space and before the buffer becomes full, data sectors that belong to the to-be-cleaned memory space portion into a buffer block of the buffer.
-
Specification