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 for storing data in a memory module comprising (i) a single-level cell memory block and (ii) a multi-level cell memory block, the method comprising:
- storing the data in the multi-level cell memory block;
subsequent to storing the data in the multi-level cell memory block, updating the data for one or more times;
tracking a frequency with which the data stored in the multi-level cell memory block is updated;
in response to tracking the frequency with which the data stored in the multi-level cell memory block is updated, determining that the data is to be stored in the single-level cell memory block; and
based on determining that the data is to be stored in the single-level cell memory block, storing the data in the single-level cell 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
17 Claims
-
1. A method for storing data in a memory module comprising (i) a single-level cell memory block and (ii) a multi-level cell memory block, the method comprising:
-
storing the data in the multi-level cell memory block; subsequent to storing the data in the multi-level cell memory block, updating the data for one or more times; tracking a frequency with which the data stored in the multi-level cell memory block is updated; in response to tracking the frequency with which the data stored in the multi-level cell memory block is updated, determining that the data is to be stored in the single-level cell memory block; and based on determining that the data is to be stored in the single-level cell memory block, storing the data in the single-level cell memory block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for storing data in a memory module, the system comprising:
-
the memory module comprising (i) a single-level cell memory block and (ii) a multi-level cell memory block; and a memory controller configured to store the data in the single-level cell memory block, subsequent to storing the data in the single-level cell memory block, track a frequency with which the data stored in the single-level cell memory block is updated, in response to tracking the frequency with which the data stored in the single-level cell memory block is updated, determine that the data is to be stored in the multi-level cell memory block, and based on determining that the data is to be stored in the multi-level cell memory block, store the data in the multi-level cell memory block. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for storing data in a memory module comprising (i) a single-level cell memory block and (ii) a multi-level cell memory block, the method comprising:
-
storing the data in the multi-level cell memory block; subsequent to storing the data in the multi-level cell memory block, updating the data for one or more times; tracking a frequency with which the data stored in the multi-level cell memory block is updated; in response to tracking the frequency with which the data stored in the multi-level cell memory block is updated, determining that the data is to be stored in the single-level cell memory block; subsequent to determining that the data is to be stored in the single-level cell memory block, receiving a command to update the data such that the data, subsequent to the update, is to be updated data; and in response to (i) determining that the data is to be stored in the single-level cell memory block and (ii) receiving the command to update the data, writing the updated data to the single-level cell memory block, instead of updating the data in the multi-level cell memory block.
-
Specification