PARTIAL SCRAMBLING TO REDUCE CORRELATION
Decorrelation is provided between data stored in respective pairs of adjacent memory cells in a plurality of bit lines of a flash memory. Each of the pairs of adjacent memory cells is located along a respective one of the bitlines and common to two adjacent wordlines. The decorrelation is achieved by storing scrambled data in at least one memory cell of each of the pairs of adjacent memory cells and storing unscrambled data in at least one memory cell of at least one of the pairs of adjacent memory cells.
This application claims benefit of provisional application 61/051,997, filed May 9, 2008, entitled “Partial Scrambling,” naming Ori Stem, Tal Heller, and Menahem Lasser as inventors, which application is incorporated herein by reference in its entirety.
This application is related to co-pending application entitled “Partial Scrambling to Reduce Correlation,” naming Ori Stem, Tal Heller and Menahem Lasser as inventors, U.S. application Ser. No. ______ (Attorney Docket No. 023-0080), filed on the same date as the current application, and which is hereby incorporated by reference in its entirety.
BACKGROUND1. Field of the Invention
The present invention relates to flash memories and, more particularly, to addressing correlation problems among data in flash memories.
2. Description of the Related Art
Modem NAND flash memories (e.g., 56 nm and smaller) have a strong coupling between adjacent wordlines and are inherently susceptible to specific data patterns. Thus, a write operation to one wordline might cause a programming effect to a different wordline. Specific patterns on the bit lines can result in stronger coupling and, therefore, more likely will result in an undesired programming affect. Such effects are particularly problematic in memory arrays storing multiple bits per cell (MBC arrays), and these effects can cause one or more cells to generate a read error as a function of specific user data patterns. It would be desirable to avoid such undesired programming effects in an efficient manner.
SUMMARYAccordingly, in one embodiment, a method is provided for decorrelating between data stored in respective pairs of adjacent memory cells in a plurality of bit lines of a flash memory. Each of the pairs of adjacent memory cells is located along a respective one of the bitlines, and each of the pairs of adjacent memory cells is located on two adjacent wordlines common to all the pairs. The method includes storing scrambled data in at least one memory cell of each of the pairs of adjacent memory cells and storing unscrambled data in at least one memory cell of at least one of the pairs of adjacent memory cells.
In another embodiment, an apparatus is provided that includes a NAND flash memory including pairs of adjacent memory cells. Each of the pairs of adjacent memory cells is located along a respective one of a plurality of bitlines and each of the pairs of the adjacent memory cells is located on adjacent first and second wordlines common to all the pairs. A scrambler circuit is coupled to the flash memory and operable to perform selective scrambling on data for the flash memory to scramble data for at least one memory cell of each of the pairs of adjacent memory cells and to leave unscrambled data for at least one memory cell of at least one of the pairs of adjacent memory cells.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The use of the same reference symbols in different drawings indicates similar or identical items.
DESCRIPTION OF THE PREFERRED EMBODIMENT(S)To address the issue of undesired programming effects due to correlation between wordlines, techniques have been devised using system level data scrambling or randomization to eliminate the particularly problematic data patterns in the user data before programming into a flash memory. The scrambled data is then stored into the flash memory as shown in
As used herein, the terms “scrambling” or “randomizing” mean to subject original data to be stored in the flash memory to a randomization or scrambling process prior to storing the data in the flash memory. When reading the scrambled data, that scrambled data has to be unscrambled before use. One embodiment of that randomization process is illustrated with respect to
Referring to
While the approach described with respect to
Accordingly, an improved scrambling approach is shown in
Referring to
Thus, in various embodiments each section of cells in a wordline may vary from a single cell up to the entire wordline. Referring to
In modern flash memories, logical pages exist that do not align with the physical wordlines. While, in some implementations, a page may correspond to a wordline, in other embodiments, a page may map physically into a portion of a wordline. Referring to
By scrambling only half the data, the decorrelation between cells in the sections (one section scrambled and one section not scrambled) is sufficient to substantially avoid undesired programming effects from correlation of adjacent cells on separate wordlines. Referring again to
In flash memories with multi-bit cells, scrambling all the data bits in a cell with scrambled data may be optimal. However, in certain embodiments, some level of decorrelation can be achieved by scrambling less than all the bits stored in the cell. Thus, for example, for a multi-bit cell containing four bits, scrambling three of the bits may provide a sufficient level of decorrelation, depending, e.g., on such factors as the number of bits stored in the cell, the scrambling pattern used, and the particular programming effects to which a particular flash memory is susceptible. Thus, as used herein, the term “storing scrambled data” in a cell includes storing data in a cell that has had at least one bit of the data scrambled or randomized. Similarly, when referring to “scrambling (also referred to herein as randomizing) data,” it includes both the scrambling of all the bits to be stored in a cell and the scrambling of only some (one or more) of the bits to be stored in a cell, leaving unscrambled the other bits to be stored in the cell.
In an embodiment, the scrambling is implemented in a programmed microcontroller such as microcontroller 301 in
The foregoing description has described only a few of the many possible implementations of the present invention. For this reason, this detailed description is intended by way of illustration, and not by way of limitation. Variations and modifications of the embodiments disclosed herein may be made based on the description set forth herein, without departing from the scope of the invention. It is only the following claims, including all equivalents, that are intended to define the scope of this invention. Moreover, the embodiments described above are specifically contemplated to be used alone as well as in various combinations. Accordingly, other embodiments, variations, and improvements not described herein are not necessarily excluded from the scope of the invention.
Claims
1. An apparatus comprising:
- a NAND flash memory including a plurality of pairs of adjacent memory cells, each of the pairs of adjacent memory cells being located along a respective one of a plurality of bitlines and each of the pairs of the adjacent memory cells being located on adjacent first and second wordlines common to all the pairs; and
- a scrambler circuit coupled to the flash memory and operable to perform selective scrambling on data for the flash memory to scramble data for at least one memory cell of each of the pairs of adjacent memory cells and to leave unscrambled data for at least one memory cell of at least one of the pairs of adjacent memory cells.
2. The apparatus as recited in claim 1 wherein the scrambler circuit comprises a programmed microcontroller.
3. The apparatus as recited in claim 1 wherein the scrambler circuit is configured to scramble half of data to be stored in the pairs of adjacent memory cells.
4. The apparatus as recited in claim 1 wherein the scrambler circuit is operable to scramble data only for one of each of a plurality of adjacent wordlines including the first and second wordlines.
5. The apparatus as recited in claim 1 wherein the scrambler circuit is configured to scramble data for additional wordlines so as to form a checkerboard pattern of scrambled and unscrambled data in a plurality of wordlines of the NAND flash memory when the scrambled and unscrambled data is stored to the NAND flash memory, the plurality of wordlines including the two adjacent wordlines and the additional wordlines.
6. The apparatus as recited in claim 1 wherein the apparatus is operable to store scrambled data in a first plurality of memory cells in a first wordline of the two adjacent wordlines and to store unscrambled data in a second plurality of memory cells in a second wordline of the adjacent wordlines, the first and second plurality of cells forming at least some of the pairs of adjacent memory cells.
7. The apparatus as recited in claim 6 wherein the apparatus is operable to
- store unscrambled data in a third plurality of memory cells in the first wordline of the two adjacent wordlines and to store scrambled data in a fourth plurality of memory cells in the second wordline of the adjacent wordlines, the third and fourth plurality of cells forming at least others of the pairs of adjacent memory cells.
8. The apparatus as recited in claim 6 wherein the first plurality of memory cells form a first contiguous group of memory cells across the first wordline and the second plurality of memory cells form a second contiguous group of memory cells across the second wordline.
9. The apparatus as recited in claim 6 wherein the first plurality of memory cells is a subset of memory cells of the first wordline and the second plurality of memory cells is a subset of memory cells of the second wordline.
10. The apparatus as recited in claim 6 wherein the first plurality of memory cells includes all cells in the first wordline and the second plurality includes all cells in the second wordline.
11. The apparatus as recited in claim 6 wherein the first plurality of memory cells includes all cells in the first wordline, exclusive of cells holding data for management, and the second plurality includes all cells in the second wordline.
12. The apparatus as recited in claim 1 wherein the apparatus is operable to store scrambled data in half of each pair of the memory cells of the adjacent wordlines.
13. The apparatus as recited in claim 1 wherein the scrambler circuit is operable to utilize numbers associated with respective wordlines to determine whether to scramble data for a first section of cells in the respective wordline.
14. The apparatus as recited in claim 1 wherein each of the adjacent wordlines is divided into a plurality of sections of memory cells and the scrambler circuit is operable to scramble data for every other section in each wordline.
15. The apparatus as recited in claim 1 wherein the scrambler circuit is operable to scramble data for the at least one memory cell by scrambling one or more bits to be stored in the at least one memory cell.
16. The apparatus as recited in claim 1 wherein the scrambler circuit is operable to scramble data for the at least one memory cell by scrambling one or more bits to be stored in the at least one memory cell and leaving unscrambled at least one bit to be stored in the memory cell with the one or more bits that are scrambled.
17. An apparatus comprising:
- a NAND flash memory including respective pairs of adjacent memory cells, each of the pairs of adjacent memory cells being located along a respective one of a plurality of bitlines and each of the pairs being located on two adjacent wordlines common to all the pairs; and
- means for storing randomized data in at least one memory cell of each of the pairs of adjacent memory cells and for storing non-randomized data in at least one memory cell of at least one of the pairs of adjacent memory cells.
18. The apparatus as recited in claim 17 apparatus comprising:
- means for randomizing data for at least one memory cell of each of the pairs of adjacent memory cells and for leaving non-randomized data for at least one memory cell of at least one of the pairs of adjacent memory cells.
19. An apparatus comprising:
- a scrambler circuit operable to scramble data for at least one memory cell of each of a plurality of pairs of adjacent memory cells in a flash memory and to leave unscrambled, data for at least one memory cell of at least one of the pairs of adjacent memory cells, each of the pairs of adjacent memory cells being located along a respective one of a plurality of bitlines and each of the pairs of memory cells being located on two adjacent wordlines common to all pairs.
20. The apparatus as recited in claim 19 wherein the scrambler circuit is operable to use a number associated with a respective one of wordlines to determine whether to scramble data for a first plurality of cells in the respective wordline.
21. The apparatus as recited in claim 19 further comprising the flash memory.
22. The apparatus as recited in claim 19 wherein the scrambler circuit comprises a programmed microcontroller.
23. The apparatus as recited in claim 19 wherein the scrambler circuit is configured to scramble half of data to be stored in the pairs of adjacent memory cells.
24. The apparatus as recited in claim 19 wherein the scrambler circuit is operable to scramble data only for one of each of a plurality of adjacent wordlines including the two adjacent wordlines.
Type: Application
Filed: Jun 30, 2008
Publication Date: Nov 12, 2009
Inventors: Ori Stern (Modyin), Tal Heller (Even Yehuda), Menahem Lasser (Kohav-Yair)
Application Number: 12/165,160
International Classification: H04L 9/06 (20060101);