Dynamic management of programming states to improve endurance
First Claim
1. A method for reassigning programmed states in a multi-level cell (MLC) memory block of at least three bits per cell, the method comprising:
- performing a first programming of original data to the MLC memory block using a program verify for single level cell (SLC) programming;
adjusting a read verify for a second programming wherein the adjusted read verify establish a number of states that correspond with a lower number of bits per cell than the at least three bits per cell; and
second programming new data using the adjusted read verify.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage device with a memory may include improved endurance and programming speed by modifying the programming states of the memory blocks. For example, the blocks may be three bit memory blocks, but a dynamic reassignment of verify levels and read margins can result in the block acting like a two bit memory block. Memory blocks may be designed for a certain number of bits per cell (i.e. number of states) and the programming is based on that number. However, single level cell (SLC) programming is still possible in addition to programming according to the number of bits per cell that the memory is designed for. Multiple SLC programming steps can be used to modify the number of states for certain memory cells by the memory controller.
66 Citations
22 Claims
-
1. A method for reassigning programmed states in a multi-level cell (MLC) memory block of at least three bits per cell, the method comprising:
-
performing a first programming of original data to the MLC memory block using a program verify for single level cell (SLC) programming; adjusting a read verify for a second programming wherein the adjusted read verify establish a number of states that correspond with a lower number of bits per cell than the at least three bits per cell; and second programming new data using the adjusted read verify. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A storage device comprising:
-
a memory comprising memory blocks with circuitry for four bits per cell in the memory blocks; a controller coupled with the memory that is configured to receive a programming request for the memory blocks; and program state circuitry that first programs using single level cell (SLC) programming with a program verify level corresponding to SLC and that second programs using the SLC programming with a modified program verify level corresponding with two bits per cell. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A storage device comprising:
-
a means for first programming of original data to a memory block using a program verify for single level cell (SLC) programming; means for adjusting a read verify; and means for second programming with the adjusted read verify, wherein the adjusted read verify establishes a number of states that correspond with a lower number of bits per cell than the first programming. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
Specification