Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data
First Claim
1. A method of programming a memory having at least a first memory block and a second block, the method comprising:
- assigning (i) a first weighting factor to the first memory block and (ii) a second weighting factor to the second memory block, the first weighting factor being different from the second weighting factor;
tracking (i) a first number of write-erase cycles that the first memory block undergoes and (ii) a second number of write-erase cycles that the second memory block undergoes;
receiving data to be written to the memory;
based on (i) the first weighting factor assigned to the first memory block, (ii) the second weighting factor assigned to the second memory block, (iii) the first number of write-erase cycles that the first memory block undergoes, and (iv) the second number of write-erase cycles that the second memory block undergoes, selecting one of the first memory block or the second memory block; and
writing the data to the selected one of the first memory block or the second memory block.
2 Assignments
0 Petitions
Accused Products
Abstract
Some of the embodiments of the present disclosure provide a method for programming a flash memory having a plurality of memory blocks, wherein each memory block of the plurality of memory blocks is either a single-level cell (SLC) memory block or a multi-level cell (MLC) memory block, the method comprising assigning a weighting factor to each memory block of the plurality of memory blocks based on whether the memory block is an SLC memory block or an MLC memory block, tracking a number of write-erase cycles for each memory block, and selecting one or more memory blocks for writing data based at least in part on the weighting factor and the tracked number of write-erase cycles of each memory block of the plurality of memory blocks. Other embodiments are also described and claimed.
-
Citations
20 Claims
-
1. A method of programming a memory having at least a first memory block and a second block, the method comprising:
-
assigning (i) a first weighting factor to the first memory block and (ii) a second weighting factor to the second memory block, the first weighting factor being different from the second weighting factor; tracking (i) a first number of write-erase cycles that the first memory block undergoes and (ii) a second number of write-erase cycles that the second memory block undergoes; receiving data to be written to the memory; based on (i) the first weighting factor assigned to the first memory block, (ii) the second weighting factor assigned to the second memory block, (iii) the first number of write-erase cycles that the first memory block undergoes, and (iv) the second number of write-erase cycles that the second memory block undergoes, selecting one of the first memory block or the second memory block; and writing the data to the selected one of the first memory block or the second memory block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A memory system comprising:
-
a memory comprising a first memory block and a second block; and a memory controller configured to; assign (i) a first weighting factor to the first memory block and (ii) a second weighting factor to the second memory block, the first weighting factor being different from the second weighting factor, track (i) a first number of write-erase cycles that the first memory block undergoes and (ii) a second number of write-erase cycles that the second memory block undergoes, based on (i) the first weighting factor assigned to the first memory block, (ii) the second weighting factor assigned to the second memory block, (iii) the first number of write-erase cycles that the first memory block undergoes, and (iv) the second number of write-erase cycles that the second memory block undergoes, select one of the first memory block or the second memory block, and facilitate writing data to the selected one of the first memory block or the second memory block. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification