Multi-level cell programming using optimized multiphase mapping with balanced Gray code
First Claim
1. A data storage device, comprising:
- a flash memory comprising memory cells; and
a controller configured to;
program, in a first phase, a first portion of data into the memory cells in a first-level cell mode;
read, from the memory cells, the programmed first portion of the data; and
program, in a second phase, a second portion of the data into the memory cells in a second-level cell mode, based on applying, to the read first portion of the data, a mapping from the first-level cell mode to the second-level cell mode,wherein the mapping is based on minimizing an average voltage change of the memory cells from the first phase to the second phase while maintaining a balanced Gray code for memory pages in the second-level cell mode, wherein a difference between transition counts of any two pages of the memory pages does not exceed a predetermined transition count difference, wherein a sum of the transition counts for all of the memory pages does not exceed a maximum number of programming levels in the second-level cell mode,wherein for the first phase, the controller is configured to program the first portion of the data into the memory cells in the first-level cell mode, to provide a first set of significant bits for two pages of the memory cells, across a first voltage distribution having a first plurality of states,wherein for the second phase, the controller is configured to program the first portion of the memory cells in the second-level cell mode, to provide a second set of significant bits for two pages corresponding to the two pages associated with the first phase, across a second voltage distribution having a second plurality of states, based on the first set,wherein a number of transition counts for each page of the two pages associated with the first phase is different from a number of transition counts for a corresponding page of the two pages associated with the second phase, andwherein the predetermined transition count difference is 1.
7 Assignments
0 Petitions
Accused Products
Abstract
Disclosed are systems and methods for providing programming of multi-level memory cells using an optimized multiphase mapping with a balanced Gray code. A method includes programming, in a first phase, a first portion of data into memory cells in a first-level cell mode. The method may also include reading, from the memory cells, the programmed first portion of the data. The method may also include programming, in a second phase, a second portion of the data into the memory cells in a second-level cell mode, wherein programming the second phase is based on applying, to the read first portion of the data, a mapping from the first-level cell mode to the second-level cell mode. The mapping may be selected based on minimizing an average voltage change of the memory cells from the first to second phase while maintaining a balanced Gray code.
-
Citations
19 Claims
-
1. A data storage device, comprising:
-
a flash memory comprising memory cells; and a controller configured to; program, in a first phase, a first portion of data into the memory cells in a first-level cell mode; read, from the memory cells, the programmed first portion of the data; and program, in a second phase, a second portion of the data into the memory cells in a second-level cell mode, based on applying, to the read first portion of the data, a mapping from the first-level cell mode to the second-level cell mode, wherein the mapping is based on minimizing an average voltage change of the memory cells from the first phase to the second phase while maintaining a balanced Gray code for memory pages in the second-level cell mode, wherein a difference between transition counts of any two pages of the memory pages does not exceed a predetermined transition count difference, wherein a sum of the transition counts for all of the memory pages does not exceed a maximum number of programming levels in the second-level cell mode, wherein for the first phase, the controller is configured to program the first portion of the data into the memory cells in the first-level cell mode, to provide a first set of significant bits for two pages of the memory cells, across a first voltage distribution having a first plurality of states, wherein for the second phase, the controller is configured to program the first portion of the memory cells in the second-level cell mode, to provide a second set of significant bits for two pages corresponding to the two pages associated with the first phase, across a second voltage distribution having a second plurality of states, based on the first set, wherein a number of transition counts for each page of the two pages associated with the first phase is different from a number of transition counts for a corresponding page of the two pages associated with the second phase, and wherein the predetermined transition count difference is 1. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method implemented using one or more controllers for one or more storage devices, the method comprising:
-
programming, in a first phase, a first portion of data into memory cells in a first-level cell mode; reading, from the memory cells, the programmed first portion of the data; programming, in a second phase, a second portion of the data into the memory cells in a second-level cell mode, wherein programming the second phase is based on applying, to the read first portion of the data, a mapping from the first-level cell mode to the second-level cell mode; and determining the mapping based on minimizing an average voltage change of the memory cells from the first phase to the second phase while maintaining a balanced Gray code for memory pages in the second-level cell mode, wherein the maintaining comprises having transition counts between every two adjacent pages of the memory pages not exceeding a predetermined transition count difference, wherein the programming, in the first phase, the first portion of data comprises programming the first portion of the data into the memory cells in the first-level cell mode, to provide a first set of significant bits for two pages of the memory cells, across a first voltage distribution having a first plurality of states, wherein the second phase comprises programming the first portion of the memory cells in the second-level cell mode, to provide a second set of significant bits for two pages corresponding to the two pages associated with the first phase, across a second voltage distribution having a second plurality of states, based on the first set, wherein a number of transition counts for each page of the two pages associated with the first phase is different from a number of transition counts for a corresponding page of the two pages associated with the second phase, and wherein the predetermined transition count difference is 1. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A system, comprising:
-
means for programming, in a first phase, a first portion of data into memory cells in a multi-level cell (MLC) mode without writing to a buffer separate from the memory cells; means for reading, from the memory cells, the programmed first portion of the data; means for programming, in a second phase, a second portion of the data into the memory cells in a quad-level cell (QLC) mode, based on applying, to the read first portion of the data, a mapping from the MLC mode to the QLC mode; and means for selecting the mapping from a plurality of candidate mappings based on means for minimizing an average voltage change of the mapping from the MLC mode to the QLC mode and means for maintaining a balanced Gray code for memory pages in the QLC mode, wherein the means for programming, in the first phase, the first portion of the data comprises means for programming the first portion of the data into the memory cells in the MLC mode, to provide a first set of significant bits for two pages of the memory cells, across a first voltage distribution having a first plurality of states, wherein the system comprises means for programming, in the second phase, the first portion of the memory cells in the QLC mode, to provide a second set of significant bits for two pages corresponding to the two pages associated with the first phase, across a second voltage distribution having a second plurality of states, based on the first set, wherein a number of transition counts for each page of the two pages associated with the first phase is different from a number of transition counts for a corresponding page of the two pages associated with the second phase, and wherein the means for maintaining the balanced Gray code comprises means for preventing transition counts between every two adjacent ones of the memory pages from exceeding a difference of 1. - View Dependent Claims (17, 18, 19)
-
Specification