Multiple programming of flash memory without erase

US9070453B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9070453-B2
Application numberUS-201113086408-A
CountryUS
Kind codeB2
Filing dateApr 14, 2011
Priority dateApr 15, 2010
Publication dateJun 30, 2015
Grant dateJun 30, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

To store, successively, in a plurality of memory cells, first and second pluralities of input bits that are equal in number, a first transformation transforms the first input bits into a first plurality of transformed bits. A first portion of the cells is programmed to store the first transformed bits according to a mapping of bit sequences to cell levels, but, if the first transformation has a variable output length, only if there are few enough first transformed bits to fit in the first cell portion. Then, without erasing a second cell portion that includes the first portion, if respective levels of the cells of the second portion, that represent a second plurality of transformed bits obtained by a second transformation of the second input bits, according to the mapping, are accessible from the current cell levels, the second portion is so programmed to store the second transformed bits.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of attempting to store, successively, in a plurality of memory cells, a first plurality of input bits and a second plurality of input bits, comprising: (a) providing a mapping of bit sequences to cell levels of the memory cells, wherein the cell levels for each memory cell comprise a lower level and an upper level with each lower level having a lower threshold voltage than the corresponding upper level; (b) transforming the first plurality of input bits to a first plurality of transformed bits, using a first transformation, wherein the first transformation is biased downwards towards the lower half of the cell levels such that programming the transformed bits according to the mapping would result in more memory cells being programmed to the lower half of the cell levels than to the upper half of the cell levels; (c) programming at least a first portion of the memory cells to store the first plurality of transformed bits according to the mapping; and (d) subsequent to the programming of the at least first portion of the memory cells, and without erasing at least a second portion of the memory cells that includes the at least first portion of the memory cells: (i) determining, for the at least second portion of the memory cells, whether respective levels, of the at least second portion of the memory cells, that represent, according to the mapping, a second plurality of transformed bits obtained by transforming the second plurality of input bits using a second transformation, are accessible from the current respective cell levels of the at least second portion of the memory cells, wherein the second plurality of transformed bits are a representation of a codeword selected from a plurality of codeword representations of the second plurality of input bits generated using the second transformation, and (ii) only if the respective levels, of the at least second portion of the memory cells, that represent, according to the mapping, the second plurality of transformed bits obtained by transforming the second plurality of input bits using the second transformation, are accessible from the current respective cell levels of the at least second portion of the memory cells: programming the at least second portion of the memory cells to store the second plurality of transformed bits according to the mapping. 2. The method of claim 1 , wherein the second plurality of input bits is equal in number to the first plurality of input bits. 3. The method of claim 1 , wherein the first transformation is a variable-output-length transformation. 4. The method of claim 3 , wherein the first transformation includes a variable-length prefix encoding of the first plurality of input bits. 5. The method of claim 4 , wherein the variable-length prefix encoding is selected from the group consisting of a reverse Huffman encoding and a reverse arithmetic encoding. 6. The method of claim 4 , wherein each memory cell has more than two cell levels, and wherein the method further comprises: (e) designing the variable-length prefix encoding to induce a predefined probability distribution over the cell levels. 7. The method of claim 6 , wherein the predefined probability distribution is optimized relative to a number of redundancy bits per constrained cell for the programming of the at least second portion of the memory cells. 8. The method of claim 6 , wherein a number of redundancy bits per constrained cell for the programming of the at least second portion of the memory cells is chosen in accordance with the predefined probability distribution. 9. The method of claim 6 , wherein each memory cell has at least eight cell levels and wherein the programming of the at least second portion of the memory cells requires an overhead of at most about 27%. 10. The method of claim 1 , wherein the first transformation is a fixed-output-length transformation. 11. The method of claim 10 , wherein the first transformation includes trellis encoding of the first plurality of input bits. 12. The method of claim 10 , wherein the first transformation includes reverse enumerative source encoding of the first plurality of input bits. 13. The method of claim 10 , wherein the first transformation includes an encoding based on a non-bijective mapping of the first plurality of input bits. 14. The method of claim 1 , further comprising: (e) prior to programming the at least first portion of the memory cells to store the first plurality of transformed bits according to the mapping: erasing the at least first portion of the memory cells. 15. The method of claim 1 , wherein the second transformation includes algebraic coset encoding of the second plurality of input bits. 16. The method of claim 1 , wherein the second transformation includes erasure coset encoding of the second plurality of input bits to produce an erasure coset codeword. 17. The method of claim 16 , wherein the erasure coset encoding includes a plurality of hard constraints on the second plurality of transformed bits. 18. The method of claim 16 , wherein the erasure coset encoding includes a plurality of soft constraints on the second plurality of transformed bits. 19. The method of claim 16 , wherein the erasure coset encoding is iterative. 20. The method of claim 16 , wherein the second transformation includes finding at least one error correction redundancy bit such that error correction decoding of a combination of the erasure coset codeword and the at least one error correction redundancy bit, followed by erasure coset decoding of the results of the error correction decoding, reproduces the second plurality of input bits. 21. The method of claim 1 , wherein, following the determining step, if the respective levels, of the at least second portion of the memory cells, that represent, according to the mapping, the second plurality of transformed bits obtained by transforming the second plurality of input bits using the second transformation, are inaccessible from the current respective cell levels of the at least second portion of the memory cells: erasing the at least second portion of the memory cells and then programming the at least second portion of memory cells to store the second plurality of input bits according to the mapping. 22. A memory device comprising: (a) a plurality of memory cells; and (b) a controller operative to attempt to store, successively, in the plurality of memory cells, a first plurality of input bits and a second plurality of input bits, by: (i) transforming the first plurality of input bits to a first plurality of transformed bits, using a first transformation, (ii) programming at least a first portion of the memory cells to store the first plurality of transformed bits according to a mapping of bit sequences to cell levels of the memory cells, wherein the cell levels for each memory cell comprise a lower level and an upper level with each lower level having a lower threshold voltage than the corresponding upper level and wherein the first transformation is biased downwards towards the lower half of the cell levels such that programming the transformed bits according to the mapping would result in more memory cells being programmed to the lower half of the cell levels than to the upper half of the cell levels, and (iii) subsequent to the programming of the at least first portion of the memory cells, and without erasing at least a second portion of the memory cells that includes the at least first portion of the memory

Assignees

Inventors

Classifications

  • Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles · CPC title

  • Addressing or allocation; Relocation (program address sequencing G06F9/00; arrangements for selecting an address in a digital store G11C8/00) · CPC title

  • Programming or writing circuits; Data input circuits · CPC title

  • G11C16/102Primary

    External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators · CPC title

  • G11C16/10Primary

    Programming or data input circuits · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9070453B2 cover?
To store, successively, in a plurality of memory cells, first and second pluralities of input bits that are equal in number, a first transformation transforms the first input bits into a first plurality of transformed bits. A first portion of the cells is programmed to store the first transformed bits according to a mapping of bit sequences to cell levels, but, if the first transformation has a…
Who is the assignee on this patent?
Sharon Eran, Alrod Idan, Litsyn Simon, and 2 more
What technology area does this patent fall under?
Primary CPC classification G11C16/102. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 30 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).