Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Information

  • Patent Grant
  • 11847342
  • Patent Number
    11,847,342
  • Date Filed
    Thursday, October 28, 2021
    3 years ago
  • Date Issued
    Tuesday, December 19, 2023
    a year ago
  • Inventors
  • Original Assignees
  • Examiners
    • Rones; Charles
    • Li; Hewy H
    Agents
    • KLIGLER & ASSOCIATES PATENT ATTORNEYS LTD
Abstract
An apparatus for data storage, includes circuitry and a plurality of memory cells. The circuitry is configured to store data in a group of multiple memory cells by writing multiple respective input storage values to the memory cells in the group, to read respective output storage values from the memory cells in the group after storing the data, to generate for the output storage values multiple respective confidence levels, to produce composite data that includes the output storage values, to test a predefined condition that depends on the confidence levels, upon detecting that the condition is met, to compress the confidence levels to produce compressed soft data, and include the compressed soft data in the composite data, and to transfer the composite data over an interface to a memory controller.
Description
TECHNICAL FIELD

Embodiments described herein relate generally to data storage, and particularly to methods and systems for efficient transfer of hard data and confidence levels in reading a nonvolatile memory.


BACKGROUND

In various storage systems, a memory controller applies soft decoding to encoded data retrieved from a memory device. To this end, the memory device transmits to the memory controller hard bits read from the memory and confidence levels associated respectively with the hard bits.


Methods for transferring hard data and corresponding confidence levels are known in the art. For example, U.S. Pat. No. 9,671,972 describes a method for data storage that includes storing data in a group of analog memory cells by writing respective input storage values to the memory cells in the group. After storing the data, respective output storage values are read from the analog memory cells in the group. Respective confidence levels of the output storage values are estimated, and the confidence levels are compressed. The output storage values and the compressed confidence levels are transferred from the memory cells over an interface to a memory controller.


U.S. Pat. No. 9,214,965 describes a method for improving data integrity in a non-volatile memory system, the method includes: accessing a non-volatile memory cell for retrieving hard data bits; generating soft information by capturing a reliability of the hard data bits; calculating syndrome bits by applying a lossy compression to the soft information; and generating a host data by executing a low density parity check (LDPC) iterative decode on the hard data bits and the syndrome bits.


SUMMARY

An embodiment that is described herein provides an apparatus for data storage that includes circuitry and a plurality of memory cells. The circuitry is configured to store data in a group of multiple memory cells by writing multiple respective input storage values to the memory cells in the group, to read respective output storage values from the memory cells in the group after storing the data, to generate for the output storage values multiple respective confidence levels, to produce composite data that includes the output storage values, to test a predefined condition that depends on the confidence levels, upon detecting that the condition is met, to compress the confidence levels to produce compressed soft data, and include the compressed soft data in the composite data, and to transfer the composite data over an interface to a memory controller.


In some embodiments, the circuitry is configured to detect that the condition is met based on a number of confidence levels among the multiple confidence levels having a selected confidence level value. In other embodiments, the circuitry is configured to detect that the condition is met in response to identifying that at least one of the confidence levels is indicative of a low level of confidence compared to another of the confidence levels. In yet other embodiments, the circuitry is configured to produce the compressed soft data independently of the output storage values.


In an embodiment, the circuitry is configured to produce the compressed soft data dependently on the output storage values. In another embodiment, the circuitry is configured to determine an index of a confidence level having a selected confidence value, to calculate a count of the output storage values having a selected storage value in a range of indices below the index, and to include in the compressed soft data a binary representation of the calculated count. In yet another embodiment, the circuitry is configured to determine an index of a confidence level having a selected confidence value, and to include in the composite data a binary representation of the index.


In some embodiments, the circuitry is configured to include in the composite data a control bit indicative of whether the soft data is included in the composite data. In other embodiments, the circuitry is configured to include the output storage values in the composite data but not the confidence levels, and to further include in the composite data an indication that the confidence levels are not included in the composite data. In yet other embodiments, the circuitry is configured to compress the confidence levels by applying a lossy data compression scheme to the confidence levels.


In an embodiment, the circuitry is configured to apply the lossy data compression scheme by limiting a number of confidence levels among the multiple confidence levels having a selected confidence level value, to a predefined limit number. In another embodiment, the circuitry is configured to store the confidence levels in a buffer of the apparatus, and to perform a combined copy and compression operation that produces the compressed soft data during the copy of the soft data from the buffer to an output buffer for transferring to the memory controller.


There is additionally provided, in accordance with an embodiment that is described above, a method for data storage, including, in a storage apparatus that includes a plurality of memory cells, storing data in a group of multiple memory cells by writing multiple respective input storage values to the memory cells in the group. Respective output storage values are read from the memory cells in the group after storing the data. For the output storage values multiple respective confidence levels are generated. Composite data that includes the output storage values is produces. A predefined condition that depends on the confidence levels is tested. Upon detecting that the condition is met, the confidence levels are compressed to produce compressed soft data, and the compressed soft data is included in the composite data. The composite data is transferred over an interface to a memory controller.


These and other embodiments will be more fully understood from the following detailed description of the embodiments thereof, taken together with the drawings in which:





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram that schematically illustrates a memory system, in accordance with an embodiment that is described herein;



FIG. 2 is a block diagram that schematically illustrates a scheme for producing hard data and confidence levels for efficient transfer to a memory controller, in accordance with embodiments that are described herein;



FIG. 3 is a flow chart that schematically illustrates a method for joint data compression of hard data and corresponding soft confidence levels, in accordance with an embodiment that is described herein;



FIG. 4 is a flow chart that schematically illustrates a method for data decompression of soft confidence levels that were jointly compressed with hard data, in accordance with an embodiment that is described herein;



FIG. 5 is a flow chart that schematically illustrates a method for data compression, in which soft confidence levels are compressed independently of corresponding hard data, in accordance with an embodiment that is described herein; and



FIG. 6 is a flow chart that schematically illustrates a method for data decompression of soft confidence levels that were compressed independently of corresponding hard data, in accordance with an embodiment that is described herein.





DETAILED DESCRIPTION OF EMBODIMENTS

Overview


Data is typically stored in memory cells of a nonvolatile memory by writing respective storage values to the memory cells. The storage operation programs each memory cell to one of several programming states, which represent respective data values. Data that is stored in memory cells may have varying levels of confidence, i.e., different likelihoods that the data read from the memory cells truly reflects the data that was stored in the memory cells.


Typically, the storage values (e.g., threshold voltages) of the memory cells that are associated with a given programming state have a certain statistical distribution. When the storage value distributions of different programming states overlap, storage values that lie in boundary regions between adjacent programming states might cause read errors. Such storage values may be regarded as having low confidence levels. Storage values that lie in the middle of the distributions, on the other hand, are more likely to be reliable.


The performance of data readout from the memory cells can be improved by considering the confidence levels of the different storage values. For example, in some data storage schemes, an Error Correction Code (ECC) unit encodes the data for storage with an ECC and decodes the ECC when retrieving the data. Some ECC decoders decode the ECC by operating on soft metrics. The confidence levels of the read storage values can be used to produce such soft metrics.


Transferring the confidence levels from the memory cells to the ECC decoder typically adds a considerable amount of communication traffic between the two. A typical read operation retrieves data from thousands of memory cells simultaneously. Transferring the confidence levels assigned to these read results may require an exceedingly high communication rate. The high communication rate can be especially problematic when the memory cells and the ECC decoder reside in separate devices.


Embodiments that are described hereinbelow provide improved methods and systems for data readout from memory cells. The methods and systems described herein estimate the confidence levels of the storage values. Composite data to be transferred to the memory controller includes the storage values, and conditionally includes a compressed version of the confidence levels. For example, the compressed confidence levels may be included in the composite data only when at least one of the confidence levels is indicative of a corresponding unreliable storage value. Since most of the storage values tend to be reliable, and only a small fraction of the storage values have low confidence levels, the compressed confidence levels are rarely transferred, which considerably reduces the amount of composite data transferred.


In the description that follows, the term “confidence levels” is also referred to as “soft data” and these terms are used interchangeably. Similarly, the term “compressed confidence levels” is also referred to as “compressed soft data” and these terms are used interchangeably.


The compression of confidence levels, when used, is typically efficient, again since most of the storage values tend to be reliable. In other words, confidence levels often exhibit little or no variability from one storage value to another, and therefore lend themselves to highly efficient compression.


Upon arrival at the ECC decoder, the confidence levels are recovered from the composite data and used for decoding the ECC.


Consider an embodiment of an apparatus for data storage, including circuitry and a plurality of memory cells. The circuitry is configured to store data in a group of multiple memory cells by writing multiple respective input storage values to the memory cells in the group, to read respective output storage values from the memory cells in the group after storing the data, to generate for the output storage values multiple respective confidence levels, to produce composite data that includes the output storage values, and to test a predefined condition that depends on the confidence levels. The circuitry is further configured to, upon detecting that the condition is met, compress the confidence levels to produce compressed soft data and include the compressed soft data in the composite data, and to transfer the composite data over an interface to a memory controller.


In some embodiments, the circuitry detects that the condition is met based on the number of confidence levels among the multiple confidence levels having a selected confidence level value. For example, the circuitry detects that the condition is met in response to identifying that at least one of the confidence levels is indicative of a low level of confidence compared to another of the confidence levels.


In some embodiments, the circuitry may produce the compressed soft data dependently on the output storage values. For example, the circuitry determines an index of a confidence level having a selected confidence value, calculates a count of the output storage values having a selected storage value in a range of indices below the index, and includes in the compressed soft data a binary representation of the calculated count. In other embodiments, the circuitry may produce the compressed soft data independently of the output storage values. For example, the circuitry determines an index of a confidence level having a selected confidence value, and includes in the composite data a binary representation of the index.


In some embodiments, the circuitry includes in the composite data a control bit indicative of whether the compressed soft data is included in the composite data. In an example embodiment, the circuitry includes the output storage values in the composite data but not the confidence levels, and further includes in the composite data an indication that the confidence levels are not included in the composite data.


The circuitry may compress the confidence levels using, for example, a lossy data compression scheme. In such embodiments, the circuitry may apply the lossy data compression scheme by limiting the number of confidence levels among the multiple confidence levels having a selected confidence level value (e.g., a low confidence level), to a predefined limit number. In an embodiment, the limit number may be set to two.


In an embodiment, the circuitry is configured to store the confidence levels in a buffer of the apparatus, and to perform a combined copy and compression operation that produces the compressed soft data during the copy of the soft data from the buffer to an output buffer for transferring to the memory controller.


Using the disclosed embodiments, a high readout throughput in transferring hard data and confidence levels can be attained, that improves over known schemes. Moreover, the disclosed embodiments have low complexity and are implementable within the memory device and memory controller.


System Description



FIG. 1 is a block diagram that schematically illustrates a memory system 20, in accordance with an embodiment that is described herein. System 20 can be used in various host systems and devices, such as in computing devices, cellular phones or other communication terminals, removable memory modules (“disk-on-key” devices), Solid State Disks (SSD), digital cameras, music and other media players and/or any other system or device in which data is stored and retrieved.


System 20 includes a memory device 24 that stores data in a memory cell array 28. The memory cell array includes multiple memory cells 32. The term “memory cell” is typically used to describe any memory cell that holds a continuous, analog level of a physical quantity, such as an electrical voltage or charge. Memory cell array 28 may include memory cells of any kind, such as, for example, NAND, NOR and CTF Flash cells, PCM, NROM, FRAM, MRAM and DRAM cells. Memory cells 32 may include Single-Level Cells (SLC) or Multi-Level Cells (MLC, also referred to as multi-bit cells). Alternatively, memory cells that store a higher number of bits per cell, such as Triple-Level Cells (TLC) and Quad-Level Cells (QLC) can also be used.


The charge levels stored in the memory cells and/or the analog voltages or currents written into and read out of the cells are referred to herein collectively as analog values or storage values. Although the embodiments described herein mainly address threshold voltages, the methods and systems described herein may be used with any other suitable kind of storage values.


System 20 stores data in memory cells 32 by programming the memory cells to assume respective memory states, which are also referred to as programming levels. The programming states are selected from a finite set of possible states, and each state corresponds to a certain nominal storage value. For example, a 2 bit/cell MLC can be programmed to assume one of four possible programming states by writing one of four possible nominal storage values to the cell. Alternatively, memory cells that store a higher number of bits per cell such as TLC memory cells that store three bits per cell and QLC memory cells that store four bits per cell can also be used.


Memory device 24 includes a reading/writing (R/W) unit 36, which converts data for storage in the memory device to storage values and writes them into memory cells 32. In alternative embodiments, the R/W unit does not perform the conversion, but is provided with voltage samples, i.e., with the storage values for storage in the cells. When reading data out of memory cell array 28, R/W unit 36 converts the storage values of memory cells 32 into digital samples having a resolution of one or more bits. The R/W unit typically reads data from memory cells 32 by comparing the storage values of the cells to one or more read thresholds. Data is typically written to and read from the memory cells in groups that are referred to as pages. In some embodiments, the R/W unit can erase a group of cells 32 by applying one or more negative erasure pulses to the memory cells.


The storage and retrieval of data in and out of memory device 24 is performed by a memory controller 40, which communicates with device 24 over a suitable interface 42. In some embodiments, memory controller 40 produces the storage values for storing in the memory cells and provides these values to R/W unit 36. Alternatively, memory controller 40 may provide the data for storage, and the conversion to storage values is carried out by the R/W unit internally to the memory device.


Memory controller 40 communicates with a host 44, for accepting data for storage in the memory device and for outputting data retrieved from the memory device. In some embodiments, some or even all of the functions of memory controller 40 may be implemented in hardware. Alternatively, memory controller 40 may include a microprocessor that runs suitable software, or a combination of hardware and software elements.


In some embodiments, R/W unit 36 includes a data compression module 45, which compresses some of the information that is to be sent to memory controller 40. The memory controller includes a decompression module 46, which decompresses the compressed information received from memory device 24. In particular, R/W unit 36 may produce confidence levels of the storage values read from memory cells 32, and data compression module 45 may compress these confidence levels and send the compressed confidence levels to memory controller 40. (In some embodiments, data compression module 45 can also be used for compressing other types of information, such as stored data that is retrieved from memory cells 32.)


In some embodiments, the memory device performs two read operations to produce two local readouts using two respective pre-assigned read thresholds. Based on the two local readouts, the memory device determines hard storage values and associated binary confidence levels to be transferred to the memory controller. For example, memory cells whose threshold voltages fall between the two read thresholds are considered as having low reliability, whereas memory cells whose threshold voltages fall below or above the two read thresholds are considered as having high reliability. In alternative embodiments, more than two read thresholds may be used to produce multiple groups of confidence levels.


The memory controller uses the storage values read from memory cells 32, and the associated confidence levels, to reconstruct the stored data. For example, memory controller 40 may include an Error Correction Code (ECC) unit 47, which encodes the data for storage using a suitable ECC, and decodes the ECC of the data retrieved from memory cells 32. ECC unit 47 may apply any suitable type of ECC, such as, for example, a Low-Density Parity Check (LDPC) code or a Bose-Chaudhuri-Hocquenghem (BCH) code. In some embodiments, ECC unit 47 uses the confidence levels to improve the ECC decoding performance. Several example methods for obtaining and compressing confidence levels, as well as for using the confidence levels in ECC decoding, are described, for example, in a U.S. Pat. No. 8,230,300, whose disclosure is incorporated herein by reference. (In the event of any inconsistencies between any incorporated document and this document, it is intended that this document control.)


The memory system configuration of FIG. 1 is an example memory system configuration, which is shown purely for the sake of conceptual clarity. Any other suitable memory system configuration can also be used. Elements that are not necessary for understanding the principles of the present invention, such as various interfaces, addressing circuits, timing and sequencing circuits and debugging circuits, have been omitted from the figure for clarity.


In the example system configuration shown in FIG. 1, memory device 24 and memory controller 40 are implemented as two separate Integrated Circuits (ICs). In alternative embodiments, however, the memory device and the memory controller may be integrated on separate semiconductor dies in a single Multi-Chip Package (MCP) or System on Chip (SoC), and may be interconnected by an internal bus. Further alternatively, some or all of the circuitry of the memory controller may reside on the same die on which the memory array is disposed. Further alternatively, some or all of the functionality of memory controller 40 can be implemented in software and carried out by a processor or other element of the host system. In some embodiments, host 44 and memory controller 40 may be fabricated on the same die, or on separate dies in the same device package.


In some implementations, a single memory controller may be connected to multiple memory devices 24. In yet another embodiment, some or all of the memory controller functionality may be carried out by a separate unit, referred to as a memory extension, which acts as a slave of memory device 24. Typically, memory controller 40 includes a general-purpose processor, which is programmed in software to carry out the functions described herein. The software may be downloaded to the processor in electronic form, over a network, for example, or it may, alternatively or additionally, be provided and/or stored on tangible media, such as magnetic, optical, or electronic memory.


Memory cells 32 of memory cell array 28 are typically arranged in a grid having multiple rows and columns, commonly referred to as word lines and bit lines, respectively. The memory array is typically divided into multiple pages, i.e., groups of memory cells that are programmed and read simultaneously. Memory cells 32 are typically erased in groups of word lines that are referred to as erasure blocks. In some embodiments, a given memory device includes multiple memory cell arrays, which may be fabricated on separate dies.


In the description that follows and in the claims, the term “circuitry” refers to elements of memory device 24, excluding interface 42 and memory cell array 28. In the example of FIG. 1, the circuitry includes R/W unit 36, including data compression module 45.


Schemes for Producing Composite Data for High Throughput Transfer


As described, for example, in U.S. Pat. No. 8,230,300, assigning confidence levels to hard bits of an ECC code word read from memory typically improves the decoding capability of the ECC code word, significantly. The hard data and the confidence levels are typically produced within the memory device and transferred to the memory controller. In some embodiments, to reduce the amount of information transferred over the interface that interconnects between the memory device and the memory controller, the memory device applies a suitable data compression scheme to the confidence levels and transfers the confidence levels to the memory controller in a compressed form. The memory controller recovers the confidence levels by applying a suitable decompression scheme and uses the hard data and the recovered confidence levels to perform an ECC soft decoding scheme to recover the unencoded data.


It is now demonstrated that composite data in which the data compression scheme applied to the soft data depends on the hard data may be represented with a smaller number of bits compared to composite data in which the data compression scheme is independent of the hard data. Let Sn denote a sequence of soft bits that get a value “1” with probability P and a value “0” with probability (1−P). The entropy of this sequence H(Sn) is given by:

H(Sn)=−Log2(PP−Log2(1−P)·(1−P)[Bits]  Equation 1


The minimal number of bits required for representing a sequence of random hard bits Hn (whose entropy equals 1) and corresponding soft bits Sn is thus given by:

NS+H=1+H(Sn)=1−Log2(PP−Log2(1−P)·(1−P)[Bits]  Equation 2


Consider a sequence of composite data Cn that incorporates information from both sequences of hard bits and soft bits. The composite sequence has the following statistical properties:










C
n

=

{



10



with


probbility



(

1
-
P

)

/
2





01



with


probability


P





00



with


probaility



(

1
-
P

)

/
2









Equation


3







In Equation 3, the most significant bit (left bit) corresponds to the hard data and the least significant bit (right bit) corresponds to the soft data. The minimal number of bits required for representing Cn is given by:










N
c

=


-



Log
2

(
P
)

·
P


-



Log
2

(


1
-
P

2

)

·


(


1
-
P

2

)

[
Bits
]







Equation


4








and after rearrangement,

NC=NS+H−P[Bits]  Equation 5


This means that Nc≤NS+H, and therefore transmission of the composite sequence may require a smaller bandwidth compared to the transmission of the hard data and soft data independently of one another.


Next is described a class of low-complexity schemes that may be used for producing low-bandwidth composite data based on both the hard and soft data. Further below, example schemes of this class that attain compression rates close to the theoretical bounds will be described.



FIG. 2 is a block diagram that schematically illustrates a scheme for producing hard data and confidence levels for efficient transfer to a memory controller, in accordance with embodiments that are described herein.


The scheme in FIG. 2 may be used in implementing at least part of memory device of FIG. 1, including data compression module 45.


Memory device 24 in FIG. 2 includes a buffer 70 denoted “hard buffer” or “H_BUFF” that stores hard data bits read from memory array 28, and another buffer 74 denoted “soft buffer” or “S_BUFF” that stores confidence levels that R/W unit 36 respectively assigns to the hard data bits. A sequence of hard data bits is referred to as “hard data” and is denoted H. A sequence of soft data bits (the confidence levels) is referred to as “soft data” and is denoted S.


In FIG. 2, memory device 24 includes a composite data producer 78, which produces a sequence of composite data bits, denoted C, based on both the hard data H and the soft data S. As will be described below, composite data producer 78 conditionally applies a suitable data compression scheme to the soft data S.


The memory device stores the composite data C in an output buffer 82 and transfers the composite data from the output buffer to memory controller 40 over a suitable interface 86 (Interface 86 may implement interface 42 in FIG. 1).


Composite data producer 78 includes a data compression module 80 that when requested applies a suitable data compression scheme to the soft data S for producing compressed soft data denoted S. Data compression module 80 is also referred to as a “data compressor.” In some embodiments, data compressor 80 applies a joint data compression method that compresses the soft data S depending on the hard data H. In other embodiments, data compressor 80 applies an independent data compression scheme that compresses the soft data S independently of the hard data H. Composite data producer 78 includes the hard data H in C, and conditionally includes the compressed soft data S in C. The composite data producer additionally includes a control bit (denoted “CB”) that indicates whether the composite data C includes the compressed soft data S, or not.


In some embodiments, composite data producer 78 produces the composite data C as given by:









C
=

{




[

H
,

CB
=
0


]





N

1

=
0






[

H
,

CB
=
1

,

S
_


]





N

1

>
0




}





Equation


6







In Equation 6, C denotes a composite data sequence derived from (i) a sequence H containing a number W of hard data bits, and (ii) a sequence S of W confidence levels that are respectively assigned to the W hard data bits in H. Further in Equation 6, S denotes compressed soft data derived from S (e.g., using data compressor 80), and N1 denotes a non-negative integer number of the low confidence levels in the uncompressed soft data S. In the present example, the confidence levels have two possible values denoted “0” and “1”, wherein a “0” value refers to a high confidence level and a “1” value refers to a low confidence level.


The number (N1) of confidence levels in S having a “1” value (low confidence) is typically much smaller than the number (W−N1) of confidence levels in S having a “0” value (high confidence).


The control bit (CB) in Equation 6 distinguishes between cases in which N1 equals zero (in which case S may be omitted from C), and cases in which N1 has a positive non-zero value (and S is included in C). When N1 equals zero, the uncompressed soft data S contains only high confidence levels. In this case C includes H and the control bit CB set to “0”, but S is omitted. On the other hand, when N1>0, S contains one or more low confidence levels, in which case C includes H, the control bit CB set to “1”, and a compressed version S of S.


Since most of the hard data bits are read reliably, N1 equals zero with high probability, and the compressed soft data S is rarely calculated and included in C. Consequently, the scheme in Equation 6 produces composite data that is much shorter (on average) than the length W of the hard data H plus the length of the compressed soft data S.


At the memory controller side, the memory controller receives the composite data C, and reproduces C to recover H and S. The memory controller extracts from C, the W hard bits of H and the control bit CB. When the control bit equals “0”, the memory controller recovers S by setting all the W confidence levels in S to a high confidence level. Otherwise, the memory controller extracts from C the compressed confidence levels S, and decompresses S to recover the W confidence levels in S, as will be described further below.


In some embodiments, data compressor 80 produces S by applying to S a lossy data compression scheme. In some embodiments, in performing this lossy data compression scheme, the number of confidence levels in S having a low confidence level is limited to a predefined maximal number denoted N1max. In example embodiments that will be described below, before applying data compression to S, the number of low confidence levels in S, is limited to N1max=2, so that when S contains more than N1max low confidence levels, the R/W unit zeros the excessive low confidence levels.


In some embodiments, hard buffer 70 and soft buffer 74 are inaccessible directly to interface 86, but only via output buffer 82. In a typical implementation, shortly before the actual transmission of a composite data sequence through interface 86, the hard data from the hard buffer and the data from the soft buffer are copied to the output buffer.


In some embodiments, at least part of the scheme for producing the composite data may be implemented by copying of fixed quotas of bits from the hard buffer followed by provisional quotas of compressed confidence levels from the soft data buffer. In some embodiments, to reduce readout latency, the memory device synchronizes between operations of (i) copy hard data from the hard buffer to the output buffer and (ii) copy soft data from the soft buffer to the output buffer while applying data compression to the soft data. In (ii), the memory device performs a combined copy and compression operation that produces the compressed soft data during the copy of the soft data from the soft buffer to the output buffer, for transferring (as part of the composite data) to the memory controller.


In some embodiments, during internal copy operations within the memory device, no other internal operations may be performed. This may degrade the readout throughput due to performing separate copy operations to hard data and soft data over distinct time periods. By performing the two copy operations in parallel to one another, as described above, the latency reduces considerably.


It should be noted that parallel copy of the hard and soft data to the output buffer as described above is not mandatory. In other embodiments, the copy and compression operation of the soft data may be carried out immediately after (or before) the copy operation of the hard data, with no (or minimal) time gap in between.


Low-density storage systems often operate in a pipeline mode, in which the next sense operation (reading from the memory array) is performed in parallel to transmitting previously read data over the interface of the memory device. This means that the sense operation may start after copying the hard data, soft data or both, to the output Buffer. In some embodiments, this is done efficiently by copying the hard data and soft data in parallel to one another, as described above.


An Example Joint Compression Scheme


As noted above, in some embodiments, data compressor 80 applies to the soft data S and hard data H a joint data compression scheme, in which the soft data S is compressed depending on the actual content of the hard data H.


A method for producing compressed confidence levels S dependently on the hard data H is now described.



FIG. 3 is a flow chart that schematically illustrates a method for joint data compression of hard data and corresponding soft confidence levels, in accordance with an embodiment that is described herein.


The method will be described as executed by data compressor 80.


The method begins at a reception stage 100, with data compressor 80 receiving uncompressed soft data S that includes a number W of binary-valued confidence levels. At a soft indices identification stage 104, the data compressor identifies in S a first index I0 and second index I1 for which the confidence levels have a value “1” (a low confidence level). When at stage 100 S contains a single confidence level having a “1” value, the data compressor sets I0=I1. At a zero sequences identification stage 108, the data compressor calculates Ĩ0 as the number of “0” bits in H up to the index I0 (e.g., having indices between 0 and Ĩ0−1), and calculates Ĩ1 as the number of “0” bits in H up to the index I1 (e.g., having indices between 0 and Ĩ1−1), e.g., using expressions given by:











I
~

0

=




k
=
0



I
0

-
1




!

(

H
k

)







Equation


7














I
~

1

=




k
=
0



I
1

-
1




!

(

H
k

)







Equation


8







wherein in Equations 7 and 8, Hk denotes the kth element in H, and the operator !(⋅) denotes a logical binary inversion operator.


At a conditional swapping stage 112, the data compressor calculates the total number W0 of “0” bits in H, and upon identifying that Ĩ1−Ĩ0>└W0/2┘, swaps roles between Ĩ0 and Ĩ1.


At a binary representation stage 116, the data compressor calculates numbers of bits b0 and b1 given by:

b0=┌Log2(W0)┐
b1=┌Log2(1+└W0/2┘)┐  Equation 9


and calculates S0 and as a binary representation of Ĩ0 using a number b0 of bits, and calculates S1 as a binary representation of [(Ĩ1−Ĩ0) modulo W0] using a number b1 of bits.


At a final compression stage 120, the data compressor produces S as the concatenation of the two binary representations as given by S=[S0,S1]. Following stage 120 the method terminates.



FIG. 4 is a flow chart that schematically illustrates a method for data decompression of soft confidence levels that were jointly compressed with hard data, in accordance with an embodiment that is described herein.


The method will be described as executed by memory controller 40, e.g., by decompression module 46. The method may be applied to soft data compressed using the method of FIG. 3.


The method of FIG. 4 begins at an input stage 150, with decompression module 46 receiving compressed soft confidence levels S and hard data H that have been extracted from composite data C as described above. At a bit-number calculation stage 154, the decompression module calculates the total number W0 of “0” bits in H, and further calculates the numbers of bits b0 and b1 based on W0 as given in Equation 9 above. At a numbers of hard bits determination stage 158, decompression module 46 extracts from S a number of b0 bits to produce Ĩ0, and a number of b1 bits to produce (Ĩ1−Ĩ0).


At an indices-calculation stage 162 the decompression module calculates the indices I0 and I1 based on H, Ĩ0 and (Ĩ1−Ĩ0), and at a decompression stage 166 recovers S based on I0 and I1. Following stage 166 the method terminates.


Using computer simulations, the inventors tested the joint compression scheme described above, for a number W=63 of hard bits in H, and a probability of a “1” valued confidence level of P=0.02. The effective compression rate under these conditions is given by CRjoint=0.13. The compression rate (CRjoint in this example) is measured relative to the length of S and is given by [length (C)−length (H)]/length (S).


An Example Independent Compression Scheme


In this section, an example compression and decompression schemes are provided, in which the confidence levels S are compressed independently of the hard data bits H.



FIG. 5 is a flow chart that schematically illustrates a method for data compression, in which soft confidence levels are compressed independently of corresponding hard data, in accordance with an embodiment that is described herein.


The method will be describe as executed by data compressor 80.


The method begins at a reception stage 200, with data compressor 80 receiving uncompressed soft data S that includes a number W of binary-valued confidence levels. At a soft indices calculation stage 204, the data compressor identifies a first index I0 and second index I1 in S having a confidence level value “1” (a low confidence level). If S contains a single confidence level having a “1” value, the data compressor sets I0=I1.


At a conditional swapping stage 212, the data compressor checks whether I1−I0>[W/2], and if so, swaps roles between I0 and I1.


At a binary representation stage 216, the data compressor calculates numbers of bits b0 and b1 as given by Equation 9 in which W replaces W0, calculates S0 as a binary representation of I0 using b0 bits, and calculates S1 as a binary representation of (I1−I0) modulo W using b1 bits. At a final compression stage 220, the data compressor produces S as the concatenation of the two binary representations as given by S=[S0,S1]. Following stage 220 the method terminates.



FIG. 6 is a flow chart that schematically illustrates a method for data decompression of soft confidence levels that were compressed independently of corresponding hard data, in accordance with an embodiment that is described herein.


The method will be described as executed by memory controller 40, e.g., by decompression module 46. The method may be applied to data compressed using the method of FIG. 5 above.


The method begins at an input stage 250, with decompression module 46 receiving compressed soft confidence levels S extracted from composite data C as described above. S includes a compressed version of uncompressed confidence levels S of length W.


At a bit-number calculation stage 254, the decompression module calculates the numbers of bits b0 and b1 based on W as given in Equation 9 above in which W replaces W0. At an indices-determination stage 258, decompression module 46 extracts from S a number of by bits to produce an index I0, and a number of b1 bits to produce an indices difference (I1−I0), and at a decompression stage 266 recovers S based on I0 and (I1−I0). Following stage 266 the method terminates.


The performance of the independent compression scheme in the method of FIG. 5 is analyzed herein. The average compression ratio attained by the method of FIG. 5 is given by:









CR
=


1
W

[


P

0


(

W
+
1

)


+


(

1
-

P

0


)



(

W
+
1
+

Length
(

S
_

)


)



]





Equation


10







Wherein P0 is given by P0=(1−P)W. The compression rate in Equation 10 is minimized when the length of S is minimized. Specifically, a condition for minimizing the length of the compressed confidence levels S is given by:










min



length
(

S
_

)


=




Log
2

(




k
=
1

Nmax



(



W




k



)


)







Equation


11







In Equation 11, Nmax denotes the maximal number of “1” values in a sequence of W confidence levels.


Based on Equations 9 and 10, the optimal compression ratio is given by:









CRopt
=


1
W

[


P

0


(

W
+
1

)


+


(

1
-

P

0


)



(

W
+
1
+




Log
2

(




k
=
1

Nmax



(



W




k



)


)




)



]





Equation


12







It can be shown that for a length W=63, the minimal length of S is 11 bits. Moreover, the proposed independent compression scheme achieves an optimal compression rate as given in Equation 12.


Using computer simulations, under the conditions W=63 and P=0.02, the resulting compression ratio is given by CRindependent=0.14. This result demonstrates that the joint compression scheme of FIG. 3 above (having a compression ratio 0.13) outperforms the independent compression scheme of FIG. 5.


The embodiments described above are given by way of example, and other suitable embodiments can also be used.


Although the embodiments described herein mainly address compression of confidence levels related to data retrieved from a memory, the methods and systems described herein can also be used in other applications, such as in applying data compression to other types of sparse data.


It will be appreciated that the embodiments described above are cited by way of example, and that the following claims are not limited to what has been particularly shown and described hereinabove. Rather, the scope includes both combinations and sub-combinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art. Documents incorporated by reference in the present patent application are to be considered an integral part of the application except that to the extent any terms are defined in these incorporated documents in a manner that conflicts with the definitions made explicitly or implicitly in the present specification, only the definitions in the present specification should be considered.

Claims
  • 1. An apparatus for data storage, comprising: a plurality of memory cells; andcircuitry configured to: store data in a group of multiple memory cells by writing multiple respective input storage values to the memory cells in the group;read respective output storage values from the memory cells in the group after storing the data;generate for the output storage values multiple respective confidence levels;test a predefined condition that depends on the confidence levels;upon detecting that the condition is met, compress the confidence levels to produce compressed soft data, and produce composite data including both the output storage values and the compressed soft data;upon detecting that the condition is not met, produce the composite data including the output storage values but not the compressed soft data; andtransfer the composite data over an interface to a memory controller.
  • 2. The apparatus according to claim 1, wherein the circuitry is configured to detect that the condition is met based on a number of confidence levels among the multiple confidence levels having a selected confidence level value.
  • 3. The apparatus according to claim 2, wherein the circuitry is configured to detect that the condition is met in response to identifying that at least one of the confidence levels is indicative of a low level of confidence compared to another of the confidence levels.
  • 4. The apparatus according to claim 1, wherein the circuitry is configured to produce the compressed soft data independently of the output storage values.
  • 5. The apparatus according to claim 1, wherein the circuitry is configured to produce the compressed soft data dependently on the output storage values.
  • 6. The apparatus according to claim 1, wherein the circuitry is configured to determine an index of a confidence level having a selected confidence value, to calculate a count of the output storage values having a selected storage value in a range of indices below the index, and to include in the compressed soft data a binary representation of the calculated count.
  • 7. The apparatus according to claim 1, wherein the circuitry is configured to determine an index of a confidence level having a selected confidence value, and to include in the composite data a binary representation of the index.
  • 8. The apparatus according to claim 1, wherein the circuitry is configured to include in the composite data a control bit indicative of whether the compressed soft data is included in the composite data.
  • 9. The apparatus according to claim 1, wherein the circuitry is configured to, upon detecting that the condition is not met, further include in the composite data an indication that the compressed soft data is not included in the composite data.
  • 10. The apparatus according to claim 1, wherein the circuitry is configured to compress the confidence levels by applying a lossy data compression scheme to the confidence levels.
  • 11. The apparatus according to claim 10, wherein the circuitry is configured to apply the lossy data compression scheme by limiting a number of confidence levels among the multiple confidence levels having a selected confidence level value, to a predefined limit number.
  • 12. The apparatus according to claim 1, wherein the circuitry is configured to store the confidence levels in a buffer of the apparatus, and to perform a combined copy and compression operation that produces the compressed soft data while copying the confidence levels from the buffer to an output buffer for transferring to the memory controller.
  • 13. A method for data storage, comprising: storing data in a group of multiple memory cells by writing multiple respective input storage values to the memory cells in the group;reading respective output storage values from the memory cells in the group after storing the data;generating for the output storage values multiple respective confidence levels;evaluating a predefined condition, which depends on the confidence levels, over multiple sets of output storage values and corresponding confidence levels;for one or more of the sets in which the condition is met, compressing the corresponding confidence levels to produce compressed soft data, and producing composite data including both the output storage values and the compressed soft data;for at least one of the sets in which the condition is not met, producing the composite data including the output storage values but not the compressed soft data; andtransferring the composite data over an interface to a memory controller.
  • 14. The method according to claim 13, and comprising detecting for a given set that the condition is met based on a number of confidence levels among the multiple confidence levels having a selected confidence level value.
  • 15. The method according to claim 14, wherein detecting that the condition is met comprises detecting that the condition is met in response to identifying that at least one of the confidence levels is indicative of a low level of confidence compared to another of the confidence levels.
  • 16. The method according to claim 13, wherein compressing the corresponding confidence levels comprises producing the compressed soft data independently of the output storage values.
  • 17. The method according to claim 13, wherein compressing the corresponding confidence levels comprises producing the compressed soft data dependently on the output storage values.
  • 18. The method according to claim 13, and comprising determining an index of a confidence level having a selected confidence value, calculating a count of the output storage values having a selected storage value in a range of indices below the index, and including in the compressed soft data a binary representation of the calculated count.
  • 19. The method according to claim 13, and comprising determining an index of a confidence level having a selected confidence value, and including in the composite data a binary representation of the index.
  • 20. The method according to claim 13, and comprising including in the composite data a control bit indicative of whether the compressed soft data is included in the composite data.
  • 21. The method according to claim 13, and comprising, upon detecting that the condition is not met, further including in the composite data an indication that the compressed soft data is not included in the composite data.
  • 22. The method according to claim 13, wherein compressing the corresponding confidence levels comprises applying a lossy data compression scheme to the confidence levels.
  • 23. The method according to claim 22, wherein applying the lossy data compression scheme comprises limiting a number of confidence levels among the multiple confidence levels having a selected confidence level value, to a predefined limit number.
  • 24. The method according to claim 13, and comprising storing the corresponding confidence levels in a buffer, and performing a combined copy and compression operation that produces the compressed soft data while copying the corresponding confidence levels from the buffer to an output buffer for transferring to the memory controller.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application 63/226,216, filed Jul. 28, 2021, whose disclosure is incorporated herein by reference.

US Referenced Citations (618)
Number Name Date Kind
3668631 Griffith et al. Jun 1972 A
3668632 Oldham Jun 1972 A
4058851 Scheuneman Nov 1977 A
4112502 Scheuneman Sep 1978 A
4394763 Nagano et al. Jul 1983 A
4413339 Riggle et al. Nov 1983 A
4556961 Iwahashi et al. Dec 1985 A
4558431 Satoh Dec 1985 A
4608687 Dutton Aug 1986 A
4654847 Dutton Mar 1987 A
4661929 Aoki et al. Apr 1987 A
4768171 Tada Aug 1988 A
4811285 Walker et al. Mar 1989 A
4899342 Potter et al. Feb 1990 A
4910706 Hyatt Mar 1990 A
4993029 Galbraith et al. Feb 1991 A
5056089 Furuta et al. Oct 1991 A
5077722 Geist et al. Dec 1991 A
5126808 Montalvo et al. Jun 1992 A
5163021 Mehrotra et al. Nov 1992 A
5172338 Mehrotta et al. Dec 1992 A
5182558 Mayo Jan 1993 A
5182752 Deroo et al. Jan 1993 A
5191584 Anderson Mar 1993 A
5200959 Gross et al. Apr 1993 A
5237535 Mielke et al. Aug 1993 A
5272669 Samachisa et al. Dec 1993 A
5276649 Hoshita et al. Jan 1994 A
5287469 Tsuboi Feb 1994 A
5365484 Cleveland et al. Nov 1994 A
5388064 Khan Feb 1995 A
5416646 Shirai May 1995 A
5416782 Wells et al. May 1995 A
5446854 Khalidi et al. Aug 1995 A
5450424 Okugaki et al. Sep 1995 A
5469444 Endoh et al. Nov 1995 A
5473753 Wells et al. Dec 1995 A
5479170 Cauwenberghs et al. Dec 1995 A
5495486 Gheewala Feb 1996 A
5508958 Fazio et al. Apr 1996 A
5519831 Holzhammer May 1996 A
5532962 Auclair et al. Jul 1996 A
5533190 Binford et al. Jul 1996 A
5541886 Hasbun Jul 1996 A
5600677 Citta et al. Feb 1997 A
5638320 Wong et al. Jun 1997 A
5657332 Auclair et al. Aug 1997 A
5675540 Roohparvar Oct 1997 A
5682352 Wong et al. Oct 1997 A
5687114 Khan Nov 1997 A
5696717 Koh Dec 1997 A
5726649 Tamaru et al. Mar 1998 A
5726934 Tran et al. Mar 1998 A
5742752 De Koning Apr 1998 A
5748533 Dunlap et al. May 1998 A
5748534 Dunlap et al. May 1998 A
5751637 Chen et al. May 1998 A
5761402 Kaneda et al. Jun 1998 A
5798966 Keeney Aug 1998 A
5799200 Brant et al. Aug 1998 A
5801985 Roohparvar et al. Sep 1998 A
5838832 Barnsley Nov 1998 A
5860106 Domen et al. Jan 1999 A
5867114 Barbir Feb 1999 A
5867428 Ishii et al. Feb 1999 A
5867429 Chen et al. Feb 1999 A
5877986 Harari et al. Mar 1999 A
5889937 Tamagawa Mar 1999 A
5901089 Korsh et al. May 1999 A
5909449 So et al. Jun 1999 A
5912906 Wu et al. Jun 1999 A
5930167 Lee et al. Jul 1999 A
5937424 Leak et al. Aug 1999 A
5942004 Cappelletti Aug 1999 A
5946716 Karp et al. Aug 1999 A
5969986 Wong et al. Oct 1999 A
5982668 Ishii et al. Nov 1999 A
5991517 Harari et al. Nov 1999 A
5995417 Chen et al. Nov 1999 A
6009014 Hollmer et al. Dec 1999 A
6009016 Ishii et al. Dec 1999 A
6023425 Ishii et al. Feb 2000 A
6034891 Norman Mar 2000 A
6040993 Chen et al. Mar 2000 A
6041430 Yamauchi Mar 2000 A
6073204 Lakhani et al. Jun 2000 A
6101614 Gonzales et al. Aug 2000 A
6128237 Shirley et al. Oct 2000 A
6134140 Tanaka et al. Oct 2000 A
6134143 Norman Oct 2000 A
6134631 Jennings Oct 2000 A
6141261 Patti Oct 2000 A
6151246 So et al. Nov 2000 A
6157573 Ishii et al. Dec 2000 A
6166962 Chen et al. Dec 2000 A
6169691 Pasotti et al. Jan 2001 B1
6178466 Gilbertson et al. Jan 2001 B1
6185134 Tanaka et al. Feb 2001 B1
6209113 Roohparvar Mar 2001 B1
6212654 Lou et al. Apr 2001 B1
6219276 Parker Apr 2001 B1
6219447 Lee et al. Apr 2001 B1
6222762 Guterman et al. Apr 2001 B1
6230233 Lofgren et al. May 2001 B1
6240458 Gilbertson May 2001 B1
6259627 Wong Jul 2001 B1
6275419 Guterman et al. Aug 2001 B1
6278632 Chevallier Aug 2001 B1
6279069 Robinson et al. Aug 2001 B1
6288944 Kawamura Sep 2001 B1
6292394 Cohen et al. Sep 2001 B1
6301151 Engh et al. Oct 2001 B1
6304486 Yano Oct 2001 B1
6307776 So et al. Oct 2001 B1
6314044 Sasaki et al. Nov 2001 B1
6317363 Guterman et al. Nov 2001 B1
6317364 Guterman et al. Nov 2001 B1
6345004 Omura et al. Feb 2002 B1
6360346 Miyauchi et al. Mar 2002 B1
6363008 Wong Mar 2002 B1
6363454 Lakhani et al. Mar 2002 B1
6366496 Torelli et al. Apr 2002 B1
6385092 Ishii et al. May 2002 B1
6392932 Ishii et al. May 2002 B1
6396742 Korsh et al. May 2002 B1
6397364 Barkan May 2002 B1
6405323 Lin et al. Jun 2002 B1
6405342 Lee Jun 2002 B1
6418060 Yong et al. Jul 2002 B1
6442585 Dean et al. Aug 2002 B1
6445602 Kokudo et al. Sep 2002 B1
6452838 Ishii et al. Sep 2002 B1
6456528 Chen Sep 2002 B1
6466476 Wong et al. Oct 2002 B1
6467062 Barkan Oct 2002 B1
6469931 Ban et al. Oct 2002 B1
6480948 Virajpet et al. Nov 2002 B1
6490236 Fukuda et al. Dec 2002 B1
6522580 Chen et al. Feb 2003 B2
6525952 Araki et al. Feb 2003 B2
6532556 Wong et al. Mar 2003 B1
6538922 Khalid et al. Mar 2003 B1
6549464 Tanaka et al. Apr 2003 B2
6553510 Pekny et al. Apr 2003 B1
6558967 Wong May 2003 B1
6560152 Cernea May 2003 B1
6567311 Ishii et al. May 2003 B2
6577539 Iwahashi Jun 2003 B2
6584012 Banks Jun 2003 B2
6615307 Roohparvar Sep 2003 B1
6621739 Gonzales et al. Sep 2003 B2
6640326 Buckingham et al. Oct 2003 B1
6643169 Rudelic et al. Nov 2003 B2
6646913 Micheloni et al. Nov 2003 B2
6678192 Gongwer et al. Jan 2004 B2
6683811 Ishii et al. Jan 2004 B2
6687155 Nagasue Feb 2004 B2
6707748 Lin et al. Mar 2004 B2
6708257 Bao Mar 2004 B2
6714449 Khalid Mar 2004 B2
6717847 Chen Apr 2004 B2
6731557 Beretta May 2004 B2
6732250 Durrant May 2004 B2
6738293 Iwahashi May 2004 B1
6751766 Guterman et al. Jun 2004 B2
6757193 Chen et al. Jun 2004 B2
6774808 Hibbs et al. Aug 2004 B1
6781877 Cernea et al. Aug 2004 B2
6804805 Rub Oct 2004 B2
6807095 Chen et al. Oct 2004 B2
6807101 Ooishi et al. Oct 2004 B2
6809964 Moschopoulos et al. Oct 2004 B2
6819592 Noguchi et al. Nov 2004 B2
6829167 Tu et al. Dec 2004 B2
6845052 Ho et al. Jan 2005 B1
6851018 Wyatt et al. Feb 2005 B2
6851081 Yamamoto Feb 2005 B2
6856546 Guterman et al. Feb 2005 B2
6862218 Guterman et al. Mar 2005 B2
6870767 Rudelic et al. Mar 2005 B2
6870773 Noguchi et al. Mar 2005 B2
6873552 Ishii et al. Mar 2005 B2
6879520 Hosono et al. Apr 2005 B2
6882567 Wong Apr 2005 B1
6894926 Guterman et al. May 2005 B2
6907497 Hosono et al. Jun 2005 B2
6925009 Noguchi et al. Aug 2005 B2
6930925 Guo et al. Aug 2005 B2
6934188 Roohparvar Aug 2005 B2
6937511 Hsu et al. Aug 2005 B2
6958938 Noguchi et al. Oct 2005 B2
6963505 Cohen Nov 2005 B2
6972993 Conley et al. Dec 2005 B2
6988175 Lasser Jan 2006 B2
6992932 Cohen Jan 2006 B2
6999344 Hosono et al. Feb 2006 B2
7002843 Guterman et al. Feb 2006 B2
7006379 Noguchi et al. Feb 2006 B2
7012835 Gonzales et al. Mar 2006 B2
7020017 Chen et al. Mar 2006 B2
7023735 Ban et al. Apr 2006 B2
7031210 Park et al. Apr 2006 B2
7031214 Tran Apr 2006 B2
7031216 You Apr 2006 B2
7039846 Hewitt et al. May 2006 B2
7042766 Wang et al. May 2006 B1
7054193 Wong May 2006 B1
7054199 Lee et al. May 2006 B2
7057958 So et al. Jun 2006 B2
7065147 Ophir et al. Jun 2006 B2
7068539 Guterman et al. Jun 2006 B2
7071849 Zhang Jul 2006 B2
7072222 Ishii et al. Jul 2006 B2
7079555 Baydar et al. Jul 2006 B2
7088615 Guterman et al. Aug 2006 B2
7096406 Kanazawa et al. Aug 2006 B2
7099194 Tu et al. Aug 2006 B2
7102924 Chen et al. Sep 2006 B2
7113432 Mokhlesi Sep 2006 B2
7130210 Bathul et al. Oct 2006 B2
7139192 Wong Nov 2006 B1
7139198 Guterman et al. Nov 2006 B2
7145805 Ishii et al. Dec 2006 B2
7151692 Wu Dec 2006 B2
7158058 Yu Jan 2007 B1
7170781 So et al. Jan 2007 B2
7170802 Cernea et al. Jan 2007 B2
7173859 Hemink Feb 2007 B2
7177184 Chen Feb 2007 B2
7177195 Gonzales et al. Feb 2007 B2
7177199 Chen et al. Feb 2007 B2
7177200 Ronen et al. Feb 2007 B2
7184338 Nagakawa et al. Feb 2007 B2
7187195 Kim Mar 2007 B2
7187592 Guterman et al. Mar 2007 B2
7190614 Wu Mar 2007 B2
7193898 Cernea Mar 2007 B2
7193921 Choi et al. Mar 2007 B2
7196644 Anderson et al. Mar 2007 B1
7196928 Chen Mar 2007 B2
7196933 Shibata Mar 2007 B2
7197594 Raz et al. Mar 2007 B2
7200062 Kinsely et al. Apr 2007 B2
7210077 Brandenberger et al. Apr 2007 B2
7221592 Nazarian May 2007 B2
7224613 Chen et al. May 2007 B2
7231474 Helms et al. Jun 2007 B1
7231562 Ohlhoff et al. Jun 2007 B2
7243275 Gongwer et al. Jul 2007 B2
7254690 Rao Aug 2007 B2
7254763 Aadsen et al. Aug 2007 B2
7257027 Park Aug 2007 B2
7259987 Chen et al. Aug 2007 B2
7266026 Gongwer et al. Sep 2007 B2
7266069 Chu Sep 2007 B2
7269066 Nguyen et al. Sep 2007 B2
7272757 Stocken Sep 2007 B2
7274611 Roohparvar Sep 2007 B2
7277355 Tanzana Oct 2007 B2
7280398 Lee Oct 2007 B1
7280409 Misumi et al. Oct 2007 B2
7280415 Hwang et al. Oct 2007 B2
7283399 Ishii et al. Oct 2007 B2
7289344 Chen Oct 2007 B2
7301807 Khalid et al. Nov 2007 B2
7301817 Li et al. Nov 2007 B2
7308525 Lasser et al. Dec 2007 B2
7310255 Chan Dec 2007 B2
7310269 Shibata Dec 2007 B2
7310271 Lee Dec 2007 B2
7310272 Mokhlesi et al. Dec 2007 B1
7310347 Lasser Dec 2007 B2
7312727 Feng et al. Dec 2007 B1
7321509 Chen et al. Jan 2008 B2
7328384 Kulkarni et al. Feb 2008 B1
7342831 Mokhlesi et al. Mar 2008 B2
7343330 Boesjes et al. Mar 2008 B1
7345924 Nguyen et al. Mar 2008 B2
7345928 Li Mar 2008 B2
7349263 Kim et al. Mar 2008 B2
7356755 Fackenthal Apr 2008 B2
7363420 Lin et al. Apr 2008 B2
7365671 Anderson Apr 2008 B1
7369434 Radke May 2008 B2
7388781 Litsyn et al. Jun 2008 B2
7397697 So et al. Jul 2008 B2
7405974 Yaoi et al. Jul 2008 B2
7405979 Ishii et al. Jul 2008 B2
7408804 Hemink et al. Aug 2008 B2
7408810 Aritome et al. Aug 2008 B2
7409473 Conley et al. Aug 2008 B2
7409623 Baker et al. Aug 2008 B2
7420847 Li Sep 2008 B2
7433231 Aritome Oct 2008 B2
7433697 Karaoguz et al. Oct 2008 B2
7434111 Sugiura et al. Oct 2008 B2
7437498 Ronen Oct 2008 B2
7440324 Mokhlesi Oct 2008 B2
7440331 Hemink Oct 2008 B2
7441067 Gorobetz et al. Oct 2008 B2
7447970 Wu et al. Nov 2008 B2
7450421 Mokhlesi et al. Nov 2008 B2
7453737 Ha Nov 2008 B2
7457163 Hemink Nov 2008 B2
7457897 Lee et al. Nov 2008 B1
7460410 Nagai et al. Dec 2008 B2
7460412 Lee et al. Dec 2008 B2
7466592 Mitani et al. Dec 2008 B2
7468907 Kang et al. Dec 2008 B2
7468911 Lutze et al. Dec 2008 B2
7469049 Feng Dec 2008 B1
7471581 Tran et al. Dec 2008 B2
7483319 Brown Jan 2009 B2
7487329 Hepkin et al. Feb 2009 B2
7487394 Forhan et al. Feb 2009 B2
7492641 Hosono et al. Feb 2009 B2
7508710 Mokhlesi Mar 2009 B2
7526711 Orio Apr 2009 B2
7539061 Lee May 2009 B2
7539062 Doyle May 2009 B2
7551492 Kim Jun 2009 B2
7558109 Brandman et al. Jul 2009 B2
7558839 McGovern Jul 2009 B1
7568135 Cornwell et al. Jul 2009 B2
7570520 Kamei et al. Aug 2009 B2
7574555 Porat et al. Aug 2009 B2
7590002 Mokhlesi et al. Sep 2009 B2
7593259 Kim et al. Sep 2009 B2
7594093 Kancherla Sep 2009 B1
7596707 Vemula Sep 2009 B1
7609787 Jahan et al. Oct 2009 B2
7613043 Cornwell et al. Nov 2009 B2
7616498 Mokhlesi et al. Nov 2009 B2
7619918 Aritome Nov 2009 B2
7631245 Lasser Dec 2009 B2
7633798 Sarin et al. Dec 2009 B2
7633802 Mokhlesi Dec 2009 B2
7639532 Roohparvar et al. Dec 2009 B2
7644347 Alexander et al. Jan 2010 B2
7656734 Thorp et al. Feb 2010 B2
7660158 Aritome Feb 2010 B2
7660183 Ware et al. Feb 2010 B2
7661000 Ueda et al. Feb 2010 B2
7661054 Huffman et al. Feb 2010 B2
7665007 Yang et al. Feb 2010 B2
7680987 Clark et al. Mar 2010 B1
7733712 Walston et al. Jun 2010 B1
7742351 Inoue et al. Jun 2010 B2
7761624 Karamcheti et al. Jul 2010 B2
7797609 Neuman Sep 2010 B2
7810017 Radke Oct 2010 B2
7848149 Gonzales et al. Dec 2010 B2
7869273 Lee et al. Jan 2011 B2
7885119 Li Feb 2011 B2
7904783 Brandman et al. Mar 2011 B2
7925936 Sommer Apr 2011 B1
7928497 Yaegashi Apr 2011 B2
7929549 Talbot Apr 2011 B1
7930515 Gupta et al. Apr 2011 B2
7945825 Cohen et al. May 2011 B2
7978516 Olbrich et al. Jul 2011 B2
7995388 Winter et al. Aug 2011 B1
8000141 Shalvi et al. Aug 2011 B1
8014094 Jin Sep 2011 B1
8037380 Cagno et al. Oct 2011 B2
8040744 Gorobets et al. Oct 2011 B2
8059457 Perlmutter et al. Nov 2011 B2
8065583 Radke Nov 2011 B2
8230300 Perlmutter et al. Jul 2012 B2
8239747 Cho et al. Aug 2012 B2
8374014 Rotbard et al. Feb 2013 B2
8400858 Meir et al. Mar 2013 B2
8429493 Sokolov et al. Apr 2013 B2
8479080 Shalvi et al. Jul 2013 B1
8493781 Meir et al. Jul 2013 B1
8493783 Meir et al. Jul 2013 B2
8495465 Anholt et al. Jul 2013 B1
8570804 Shalvi et al. Oct 2013 B2
8572311 Shalvi et al. Oct 2013 B1
8572423 Isachar et al. Oct 2013 B1
8599611 Shalvi et al. Dec 2013 B2
8645794 Meir et al. Feb 2014 B1
8677054 Meir et al. Mar 2014 B1
8677203 Shalvi et al. Mar 2014 B1
8694814 Salomon et al. Apr 2014 B1
8694853 Sommer Apr 2014 B1
8694854 Dar et al. Apr 2014 B1
8767459 Kasorla et al. Jul 2014 B1
8886990 Meir et al. Nov 2014 B2
8990665 Steiner et al. Mar 2015 B1
8996793 Steiner et al. Mar 2015 B1
9021181 Rotbard et al. Apr 2015 B1
9032263 Yang May 2015 B2
9104580 Meir Aug 2015 B1
9214965 Fitzpatrick et al. Dec 2015 B2
9229861 Perlmutter et al. Jan 2016 B2
9454414 Micheloni et al. Sep 2016 B2
9671972 Perlmutter et al. Jun 2017 B2
9672942 Yoon et al. Jun 2017 B2
9912353 Low Mar 2018 B1
9985651 Varanasi et al. May 2018 B2
10157013 Perlmutter et al. Dec 2018 B2
10474525 Sharon et al. Nov 2019 B2
10847241 Yassine Nov 2020 B2
10872013 Symons et al. Dec 2020 B2
11032031 Jiang et al. Jun 2021 B2
11450400 Yun et al. Sep 2022 B2
20010002172 Tanaka et al. May 2001 A1
20010006479 Ikehashi et al. Jul 2001 A1
20020038440 Barkan Mar 2002 A1
20020056064 Kidorf et al. May 2002 A1
20020083085 Davis Jun 2002 A1
20020118574 Gongwer et al. Aug 2002 A1
20020133684 Anderson Sep 2002 A1
20020166091 Kidorf et al. Nov 2002 A1
20020174295 Ulrich et al. Nov 2002 A1
20020196510 Hietala et al. Dec 2002 A1
20030002348 Chen et al. Jan 2003 A1
20030103400 Van Tran Jun 2003 A1
20030161183 Van Tran Aug 2003 A1
20030189856 Cho et al. Oct 2003 A1
20040057265 Mirabel et al. Mar 2004 A1
20040057285 Cernea et al. Mar 2004 A1
20040083333 Chang et al. Apr 2004 A1
20040083334 Chang et al. Apr 2004 A1
20040105311 Cernea et al. Jun 2004 A1
20040114437 Li Jun 2004 A1
20040160842 Fukiage Aug 2004 A1
20040223371 Roohparvar Nov 2004 A1
20050007802 Gerpheide Jan 2005 A1
20050013165 Ban Jan 2005 A1
20050024941 Lasser et al. Feb 2005 A1
20050024978 Ronen Feb 2005 A1
20050030788 Parkinson et al. Feb 2005 A1
20050086574 Fackenthal Apr 2005 A1
20050121436 Kamitani et al. Jun 2005 A1
20050144361 Gonzalez et al. Jun 2005 A1
20050157555 Ono et al. Jul 2005 A1
20050162913 Chen Jul 2005 A1
20050169051 Khalid et al. Aug 2005 A1
20050189649 Maruyama et al. Sep 2005 A1
20050213393 Lasser Sep 2005 A1
20050224853 Ohkawa Oct 2005 A1
20050240745 Iyer et al. Oct 2005 A1
20050243626 Ronen Nov 2005 A1
20060004952 Lasser Jan 2006 A1
20060028875 Avraham et al. Feb 2006 A1
20060028877 Meir Feb 2006 A1
20060101193 Murin May 2006 A1
20060106972 Gorobets et al. May 2006 A1
20060107136 Gongwer et al. May 2006 A1
20060129750 Lee et al. Jun 2006 A1
20060133141 Gorobets Jun 2006 A1
20060156189 Tomlin Jul 2006 A1
20060179334 Brittain et al. Aug 2006 A1
20060190699 Lee Aug 2006 A1
20060203546 Lasser Sep 2006 A1
20060218359 Sanders et al. Sep 2006 A1
20060221692 Chen Oct 2006 A1
20060221705 Hemkin et al. Oct 2006 A1
20060221714 Li et al. Oct 2006 A1
20060239077 Park et al. Oct 2006 A1
20060239081 Roohparvar Oct 2006 A1
20060256620 Nguyen et al. Nov 2006 A1
20060256626 Werner et al. Nov 2006 A1
20060256891 Yuan et al. Nov 2006 A1
20060271748 Jain et al. Nov 2006 A1
20060285392 Incarnati et al. Dec 2006 A1
20060285396 Ha Dec 2006 A1
20070006013 Moshayedi et al. Jan 2007 A1
20070019481 Park Jan 2007 A1
20070033581 Tomlin et al. Feb 2007 A1
20070047314 Goda et al. Mar 2007 A1
20070047326 Nguyen et al. Mar 2007 A1
20070050536 Kolokowsky Mar 2007 A1
20070058446 Hwang et al. Mar 2007 A1
20070061502 Lasser et al. Mar 2007 A1
20070067667 Ikeuchi et al. Mar 2007 A1
20070074093 Lasser Mar 2007 A1
20070086239 Litsyn et al. Apr 2007 A1
20070086260 Sinclair Apr 2007 A1
20070089034 Litsyn et al. Apr 2007 A1
20070091677 Lasser et al. Apr 2007 A1
20070091694 Lee et al. Apr 2007 A1
20070103978 Conley et al. May 2007 A1
20070103986 Chen May 2007 A1
20070104211 Opsasnick May 2007 A1
20070109845 Chen May 2007 A1
20070109849 Chen May 2007 A1
20070115726 Cohen et al. May 2007 A1
20070118713 Guterman et al. May 2007 A1
20070143378 Gorobetz Jun 2007 A1
20070143531 Atri Jun 2007 A1
20070159889 Kang et al. Jul 2007 A1
20070159892 Kang et al. Jul 2007 A1
20070159907 Kwak Jul 2007 A1
20070168837 Murin Jul 2007 A1
20070171714 Wu et al. Jul 2007 A1
20070183210 Choi et al. Aug 2007 A1
20070189073 Aritome Aug 2007 A1
20070195602 Fong et al. Aug 2007 A1
20070206426 Mokhlesi Sep 2007 A1
20070208904 Hsieh et al. Sep 2007 A1
20070226599 Motwani Sep 2007 A1
20070236990 Aritome Oct 2007 A1
20070253249 Kang et al. Nov 2007 A1
20070256620 Viggiano et al. Nov 2007 A1
20070263455 Cornwell et al. Nov 2007 A1
20070266232 Rodgers et al. Nov 2007 A1
20070271424 Lee et al. Nov 2007 A1
20070280000 Fujiu et al. Dec 2007 A1
20070291571 Balasundaram Dec 2007 A1
20070297234 Cernea et al. Dec 2007 A1
20080010395 Mylly et al. Jan 2008 A1
20080025121 Tanzawa Jan 2008 A1
20080043535 Roohparvar Feb 2008 A1
20080049504 Kasahara et al. Feb 2008 A1
20080049506 Guterman Feb 2008 A1
20080052446 Lasser et al. Feb 2008 A1
20080055993 Lee Mar 2008 A1
20080080243 Edahiro et al. Apr 2008 A1
20080082730 Kim et al. Apr 2008 A1
20080086631 Chow et al. Apr 2008 A1
20080089123 Chae et al. Apr 2008 A1
20080104309 Cheon et al. May 2008 A1
20080104312 Lasser May 2008 A1
20080109590 Jung et al. May 2008 A1
20080115017 Jacobson May 2008 A1
20080123420 Brandman et al. May 2008 A1
20080123426 Lutze et al. May 2008 A1
20080126686 Sokolov et al. May 2008 A1
20080130341 Shalvi et al. Jun 2008 A1
20080148115 Sokolov et al. Jun 2008 A1
20080151618 Sharon et al. Jun 2008 A1
20080151667 Miu et al. Jun 2008 A1
20080158958 Sokolov et al. Jul 2008 A1
20080181001 Shalvi Jul 2008 A1
20080198650 Shalvi et al. Aug 2008 A1
20080198654 Toda Aug 2008 A1
20080209116 Caulkins Aug 2008 A1
20080209304 Winarski et al. Aug 2008 A1
20080215798 Sharon et al. Sep 2008 A1
20080219050 Shalvi et al. Sep 2008 A1
20080239093 Easwar et al. Oct 2008 A1
20080239812 Abiko et al. Oct 2008 A1
20080253188 Aritome Oct 2008 A1
20080263262 Sokolov et al. Oct 2008 A1
20080263676 Mo et al. Oct 2008 A1
20080270730 Lasser et al. Oct 2008 A1
20080282106 Shalvi et al. Nov 2008 A1
20080288714 Salomon et al. Nov 2008 A1
20090013233 Radke Jan 2009 A1
20090024905 Shalvi et al. Jan 2009 A1
20090034337 Aritome Feb 2009 A1
20090043831 Antonopoulos et al. Feb 2009 A1
20090043951 Shalvi et al. Feb 2009 A1
20090049234 Oh et al. Feb 2009 A1
20090073762 Lee et al. Mar 2009 A1
20090086542 Lee et al. Apr 2009 A1
20090089484 Chu Apr 2009 A1
20090091979 Shalvi Apr 2009 A1
20090094930 Schwoerer Apr 2009 A1
20090106485 Anholt Apr 2009 A1
20090112949 Ergan et al. Apr 2009 A1
20090132755 Radke May 2009 A1
20090144600 Perlmutter et al. Jun 2009 A1
20090150894 Huang et al. Jun 2009 A1
20090157950 Selinger Jun 2009 A1
20090157964 Kasorla et al. Jun 2009 A1
20090158126 Perlmutter et al. Jun 2009 A1
20090168524 Golov et al. Jul 2009 A1
20090172257 Prins et al. Jul 2009 A1
20090172261 Prins et al. Jul 2009 A1
20090193184 Yu et al. Jul 2009 A1
20090199074 Sommer et al. Aug 2009 A1
20090204824 Lin et al. Aug 2009 A1
20090204872 Yu et al. Aug 2009 A1
20090213653 Perlmutter et al. Aug 2009 A1
20090213654 Perlmutter et al. Aug 2009 A1
20090225595 Kim Sep 2009 A1
20090228761 Perlmutter Sep 2009 A1
20090265509 Klein Oct 2009 A1
20090300227 Nochimowski et al. Dec 2009 A1
20090323412 Mokhlesi et al. Dec 2009 A1
20090327608 Eschmann Dec 2009 A1
20100017650 Chin et al. Jan 2010 A1
20100034022 Dutta et al. Feb 2010 A1
20100057976 Lasser Mar 2010 A1
20100061151 Miwa et al. Mar 2010 A1
20100082883 Chen et al. Apr 2010 A1
20100083247 Kanevsky et al. Apr 2010 A1
20100110580 Takashima May 2010 A1
20100131697 Alrod et al. May 2010 A1
20100137167 Hellsten et al. Jun 2010 A1
20100142268 Aritome Jun 2010 A1
20100142277 Yang et al. Jun 2010 A1
20100169547 Ou Jul 2010 A1
20100169743 Vogan et al. Jul 2010 A1
20100174847 Paley et al. Jul 2010 A1
20100211803 Lablans Aug 2010 A1
20100287217 Borchers et al. Nov 2010 A1
20110010489 Yeh Jan 2011 A1
20110060969 Ramamoorthy et al. Mar 2011 A1
20110066793 Burd Mar 2011 A1
20110075482 Shepard et al. Mar 2011 A1
20110107049 Kwon et al. May 2011 A1
20110149657 Haratsch et al. Jun 2011 A1
20110199823 Bar-Or et al. Aug 2011 A1
20110302354 Miller Dec 2011 A1
20120297116 Gurgi et al. Nov 2012 A1
20140237315 Fitzpatrick Aug 2014 A1
20140237318 Fitzpatrick Aug 2014 A1
20150149840 Alhussien et al. May 2015 A1
20150205664 Janik et al. Jul 2015 A1
20160163382 Conley Jun 2016 A1
20170046220 Sharon Feb 2017 A1
20170185299 Conley et al. Jun 2017 A1
20220164143 Kim May 2022 A1
Foreign Referenced Citations (43)
Number Date Country
0783754 Jul 1997 EP
1434236 Jun 2004 EP
1605509 Dec 2005 EP
199610256 Apr 1996 WO
1998028745 Jul 1998 WO
2002100112 Dec 2002 WO
2003100791 Dec 2003 WO
2007046084 Apr 2007 WO
2007132452 Nov 2007 WO
2007132453 Nov 2007 WO
2007132456 Nov 2007 WO
2007132457 Nov 2007 WO
2007132458 Nov 2007 WO
2007146010 Dec 2007 WO
2008026203 Mar 2008 WO
2008053472 May 2008 WO
2008053473 May 2008 WO
2008068747 Jun 2008 WO
2008077284 Jul 2008 WO
2008083131 Jul 2008 WO
2008099958 Aug 2008 WO
2008111058 Sep 2008 WO
2008124760 Oct 2008 WO
2008139441 Nov 2008 WO
2009037691 Mar 2009 WO
2009037697 Mar 2009 WO
2009038961 Mar 2009 WO
2009050703 Apr 2009 WO
2009053961 Apr 2009 WO
2009053962 Apr 2009 WO
2009053963 Apr 2009 WO
2009063450 May 2009 WO
2009072100 Jun 2009 WO
2009072101 Jun 2009 WO
2009072102 Jun 2009 WO
2009072103 Jun 2009 WO
2009072104 Jun 2009 WO
2009072105 Jun 2009 WO
2009074978 Jun 2009 WO
2009074979 Jun 2009 WO
2009078006 Jun 2009 WO
2009095902 Aug 2009 WO
2011024015 Mar 2011 WO
Non-Patent Literature Citations (58)
Entry
US 7,161,836 B1, 01/2007, Wan et al. (withdrawn)
Wei, “Trellis-Coded Modulation With Multidimensional Constellations”, IEEE Transactions on Information Theory, vol. IT-33, No. 4, pp. 483-501, Jul. 1987.
Conway et al., “Sphere Packings, Lattices and Groups”, Springer-Verlag, New York, Inc., USA, 3rd edition, chapter 4, pp. 94-135, year 1998.
Ankolekar et al., “Multibit Error-Correction Methods for Latency-Constrained Flash Memory Systems”, IEEE Transactions on Device and Materials Reliability, vol. 10, No. 1, pp. 33-39, Mar. 2010.
Berman et al., “Mitigating Inter-Cell Coupling Effects in MLC NAND Flash via Constrained Coding”, Presentation, Flash Memory Summit, Santa Clara, USA, pp. 1-21, Aug. 19, 2010.
Agrell et al., “Closest Point Search in Lattices,” IEEE Transactions on Information Theory, vol. 48, No. 8, pp. 2201-2214, Aug. 2002.
Bez et al., “Introduction to Flash Memory,” Proceedings of the IEEE, vol. 91, No. 4, pp. 489-502, Apr. 2003.
Blahut, “Theory and Practice of Error Control Codes,” Addison-Wesley, section 3.2, pp. 47-48, May 1984.
Chang, “Hybrid Solid State Disks: Combining Heterogeneous NAND Flash in Large SSDs,” Presentation, ASPDAC, pp. 1-26, Jan. 2008.
Cho et al., “A 3.3V 1Gb Multi-Level NAND Flash Memory with Non-Uniform Threshold Voltage Distribution,” IEEE International Solid-State Circuits Conference (ISSCC), pp. 28-29 and 424, Feb. 2001.
“Databahn TM Flash Memory Controller IP,” Denali Software, Inc., pp. 1-1, year 1994, as downloaded from https://denali.com/en/products/databahn_flash.jsp.
“FlashFX Pro TM 3.1—High Performance Flash Manager for Rapid Development of Reliable Products,” product information, Datalight, Inc., pp. 1-2, Nov. 16, 2006.
Duann, “SLC & MLC Hybrid,” Silicon Motion, Inc., Presentation, Flash Memory Summit, Santa Clara, USA, pp. 1-18, Aug. 2008.
Eitan et al., “Can NROM, a 2-bit, Trapping Storage NVM Cell, Give a Real Challenge to Floating Gate Cells?”, Proceedings of the 1999 International Conference on Solid State Devices and Materials (SSDM), pp. 522-524, year 1999.
Eitan et al., “Multilevel Flash Cells and their Trade-offs,” Proceedings of the 1996 IEEE International Electron Devices Meeting (IEDM), pp. 169-172, year 1996.
Engh et al., “A Self Adaptive Programming Method with 5 mV Accuracy for Multi-Level Storage in FLASH,” Proceedings of the IEEE 2002 Custom Integrated Circuits Conference, pp. 115-118, May 2002.
Goodman et al., “On-Chip ECC for Multi-Level Random Access Memories,” Proceedings of the IEEE/CAM Information Theory Workshop, pp. 1-1, Jun. 1989.
Han et al., “An Intelligent Garbage Collection Algorithm for Flash Memory Storages,” Proceedings of the Conference on Computational Science and its Applications—ICCSA 2006, Springer-Verlag Berlin Heidelberg, vol. 3980/2006, pp. 1019-1027, May 2006.
Han et al., “CATA: A Garbage Collection Scheme for Flash Memory File Systems,” Ubiquitous Intelligence and Computing, Springer-Verlag Berlin Heidelberg, vol. 4159/2006, pp. 103-112, Aug. 2006.
Horstein, “On the Design of Signals for Sequential and Nonsequential Detection System with Feedback,” IEEE Transactions on Information Theory, vol. IT-12, No. 4, pp. 448-455, Oct. 1966.
Jung et al., “A 117-mm2 3.3-V Only 128-Mb Multilevel NAND Flash Memory for Mass Storage Applications,” IEEE Journal of Solid-State Circuits, vol. 31, No. 11, pp. 1575-1583, Nov. 1996.
Kawaguchi et al., “A Flash-Memory Based File System,” Proceedings of the USENIX 1995 Technical Conference, pp. 155-164, year 1995 XXXXDocument attached is not identical with the document cited. Actual page numbers are 1-10XXXXX.
Kim et al., “Future Memory Technology Including Emerging New Memories,” Proceedings of the 24th International Conference on Microelectronics (MIEL2004), volue 1, pp. 377-384, May 2004.
Lee et al., “Effects of Floating-Gate Interference on NAND Flash Memory Cell Operation,” IEEE Electron Device etters, vol. 23, No. 5, pp. 264-266, May 2002.
Maayan et al., “A 512 Mb NROM Flash Data Storage Memory with 8 MB/s Data Rate,” Proceedings of the 2002 IEEE International Solid-State Circuits Conference (ISSCC 2002), pp. 100-101, Feb. 2002.
Mielke et al., Recovery Effects in the Distributed Cycling of Flash Memories, Proceedings of the IEEE 44th Annual International Reliability Physics Symposium, pp. 29-35, Mar. 2006.
“ONFI—Open NAND Flash Interface Specification,” revision 1.0, pp. 1-106, Dec. 2006.
“PS8000 Controller Specification (for SD Card),” Phison Electronics Corporation, revision 1.2, document No. S-07018, pp. 1-20, Mar. 2007.
Shalvi et al., “Signal Codes,” Proceedings of the 2003 IEEE Information Theory Workshop (ITW2003), pp. 1-18, Apr. 2003.
Shiozaki, “Adaptive Type-II Hybrid Broadcast ARQ System,” IEEE Transactions on Communications, vol. 44, No. 4, pp. 420-422, Apr. 1996.
Suh et al., “A 3.3 V 32 Mb NAND Flash Memory with Incremental Step Pulse Programming Scheme,” IEEE Journal of Solid-State Circuits, vol. 30, No. 11, pp. 1149-1156, Nov. 1995.
“Bad Block Management in NAND Flash Memories,” STMicroelectronics, Application Note AN1819, pp. 1-7, May 2004.
“Wear Leveling in Single Level Cell NAND Flash Memories,” STMicroelectronics, Application Note AN1822, pp. 1-7, Feb. 2007.
Takeuchi et al., “A Double-Level-Vth Select Gate Array Architecture for Multi-Level NAND Flash Memories,” Digest of Technical Papers, 1995 Symposium on VLSI Circuits, pp. 69-70, Jun. 1995.
Wu et al., “eNVy: A Non-Volatile, Main Memory Storage System,” Proceedings of the 6th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 86-97, year 1994.
Kim et al., “Multi-bit Error Tolerant Caches Using Two-Dimensional Error Coding”, Proceedings of the 40th Annual ACM/IEEE International Symposium on Microarchitecture (MICRO-40), Chicago, USA, pp. 197-209, Dec. 2007.
Budilovsky et al., “Prototyping a High-Performance Low-Cost Solid-State Disk”, SYSTOR—The 4th Annual International Systems and Storage Conference, Haifa, Israel, pp. 1-11, year 2011.
NVM Express Protocol, “NVM Express”, Revision 1.2a, pp. 1-209, Oct. 23, 2015.
SCSI Protocol, “Information Technology—SCSI Architecture Model—5 (SAM-5)”, INCITS project T10/2104-D, revision 01, pp. 1-150, Jan. 28, 2009.
SAS Protocol, “Information Technology—Serial Attached SCSI—2 (SAS-2)”, Incits project T10/1760-D, revision 15a, pp. 1-921, Feb. 22, 2009.
Takeuchi et al., “A Multipage Cell Architecture for High-Speed Programming Multilevel NAND Flash Memories”, IEEE Journal of Solid-State Circuits, vol. 33, No. 8, pp. 1228-1237, Aug. 1998.
Jedec Standard JESD84-C44, “Embedded MultiMediaCard (e•MMC) Mechanical Standard, with Optional Reset Signal”, Jedec Solid State Technology Association, USA, pp. 1-13, Jul. 2009.
Jedec, “UFS Specification—Version 0.1,” pp. 1-94, Nov. 11, 2009.
SD Group, Technical Committee SD Card Association, “SD Specifications Part 1—Physical Layer Specification, Version 3.01, draft 1.00,” pp. 1-220, Nov. 9, 2009.
“Universal Serial Bus Specification”, revision 2.0, Compaq, Hewlett, Intel, Lucent, Microsoft etc., pp. 1-650, Apr. 27, 2000.
Serial ATA International Organization, “Serial ATA Revision 3.0 Specification”, pp. 1-663, Jun. 2, 2009.
Gotou, “An Experimental Confirmation of Automatic Threshold Voltage Convergence in a Flash Memory Using Alternating Word-Line Voltage Pulses”, IEEE Electron Device Letters, vol. 18, No. 10, pp. 503-505, Oct. 1997.
Huffman, “Non-Volatile Memory Host Controller Interface (NVMHCI)”, Specification 1.0, pp. 1-65, Apr. 14, 2008.
Panchbhai et al., “Improving Reliability of NAND Based Flash Memory Using Hybrid SLC/MLC Device—Project Proposal for CSci 8980—Advanced Storage Systems,” Department of Computer Science, University of Minnesota, USA, pp. 1-4, Mar. 2009.
“M25PE16: 16-Mbit, page-erasable serial flash memory with byte-alterability, 75 MHz SPI bus, standard pinout”, Numonyx B.V., pp. 1-58, Apr. 2008.
Hong et al., “NAND Flash-based Disk Cache Using SLC/MLC Combined Flash Memory”, 2010 International Workshop on Storage Network Architecture and Parallel I/Os, pp. 21-30, USA, May 3, 2010.
Engineering Windows 7, “Support and Q&A for Solid-State Drives”, e7blog, pp. 1-10, May 5, 2009.
“Memory Management in NAND Flash Arrays”, Technical Note 29-28, Micron Technology Inc., pp. 1-10, year 2005.
Kang et al., “A Superblock-based Flash Translation Layer for NAND Flash Memory”, Proceedings of the 6th ACM & IEEE International Conference on Embedded Software, Seoul, Korea, pp. 161-170, Oct. 2006.
Park et al., “Sub-Grouped Superblock Management for High-Performance Flash Storages”, IEICE Electronics Express, vol. 6, No. 6, pp. 297-303, Mar. 25, 2009.
“How to Resolve “Bad Super Block: Magic Number Wrong” in BSD”, Free Online Articles Director Article Base, pp. 1-3, posted Sep. 5, 2009.
“Memory Stick Failed IO Superblock”, UBUNTU Forums, pp. 1-2, posted Nov. 11, 2009.
“SD Card Failure, can't read superblock”, Super User Forums, pp. 1-2, posted Aug. 8, 2010.
Related Publications (1)
Number Date Country
20230034098 A1 Feb 2023 US
Provisional Applications (1)
Number Date Country
63226216 Jul 2021 US