Mixed multi-level cell and single level cell storage device
First Claim
1. A method of 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, the weighting factor being assigned to each memory block based at least in part 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 of the plurality of memory blocks; 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.
4 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
11 Claims
-
1. A method of 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, the weighting factor being assigned to each memory block based at least in part 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 of the plurality of memory blocks; 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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A memory system comprising:
-
a flash memory device comprising a plurality of memory blocks, wherein each memory block of plurality of memory blocks is either a single-level cell (SLC) memory block or a multi-level cell (MLC) memory block; and a memory controller configured to; assign a weighting factor to each memory block of the plurality of memory blocks, the weighting factor being assigned to each memory block based at least in part on whether the memory block is an SLC memory block or an MLC memory block; track a number of write-erase cycles for each memory block of the plurality of memory blocks; and select 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. - View Dependent Claims (9, 10, 11)
-
Specification