Movatterモバイル変換


[0]ホーム

URL:


US8065583B2 - Data storage with an outer block code and a stream-based inner code - Google Patents

Data storage with an outer block code and a stream-based inner code
Download PDF

Info

Publication number
US8065583B2
US8065583B2US11/774,377US77437707AUS8065583B2US 8065583 B2US8065583 B2US 8065583B2US 77437707 AUS77437707 AUS 77437707AUS 8065583 B2US8065583 B2US 8065583B2
Authority
US
United States
Prior art keywords
data
page
stream
block
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US11/774,377
Other versions
US20090013234A1 (en
Inventor
William H. Radke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Assigned to MICRON TECHNOLOGY, INC.reassignmentMICRON TECHNOLOGY, INC.ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: RADKE, WILLIAM H.
Priority to US11/774,377priorityCriticalpatent/US8065583B2/en
Application filed by Micron Technology IncfiledCriticalMicron Technology Inc
Priority to PCT/US2008/068240prioritypatent/WO2009009303A2/en
Priority to TW097125483Aprioritypatent/TW200919481A/en
Publication of US20090013234A1publicationCriticalpatent/US20090013234A1/en
Priority to US13/281,007prioritypatent/US8239725B2/en
Publication of US8065583B2publicationCriticalpatent/US8065583B2/en
Application grantedgrantedCritical
Priority to US14/263,825prioritypatent/US9063875B2/en
Assigned to U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENTreassignmentU.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENTSECURITY INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: MICRON TECHNOLOGY, INC.
Assigned to MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENTreassignmentMORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENTPATENT SECURITY AGREEMENTAssignors: MICRON TECHNOLOGY, INC.
Assigned to U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENTreassignmentU.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENTCORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST.Assignors: MICRON TECHNOLOGY, INC.
Assigned to JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENTreassignmentJPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENTSECURITY INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: MICRON SEMICONDUCTOR PRODUCTS, INC., MICRON TECHNOLOGY, INC.
Assigned to MICRON TECHNOLOGY, INC.reassignmentMICRON TECHNOLOGY, INC.RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS).Assignors: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Assigned to MICRON TECHNOLOGY, INC.reassignmentMICRON TECHNOLOGY, INC.RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS).Assignors: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Assigned to MICRON SEMICONDUCTOR PRODUCTS, INC., MICRON TECHNOLOGY, INC.reassignmentMICRON SEMICONDUCTOR PRODUCTS, INC.RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS).Assignors: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Activelegal-statusCriticalCurrent
Adjusted expirationlegal-statusCritical

Links

Images

Classifications

Definitions

Landscapes

Abstract

Apparatus and methods store stream-based error recovery data for a memory array, such as a NAND flash array. Conventionally, data is block coded per industry specification and stored in the memory array. Within the limits of the block code, this technique provides for correction of errors. By applying a stream-based inner code, that is, concatenating the outer block code with an outer code, the error correction can be further enhanced, enhancing the reliability of the device. This can also permit a relatively small-geometry device to be used in a legacy application.

Description

CROSS-REFERENCE TO RELATED APPLICATION
This application is related to commonly-owned and copending application titled ERROR RECOVERY STORAGE ALONG A NAND-FLASH STRING, Ser. No. 11/777,316, filed on the same date as the present application, the entirety of which is hereby incorporated by reference.
BACKGROUND
1. Field of the Invention
Embodiments of the invention generally relate to integrated circuits. In particular, embodiments of the invention relate to memory circuits.
2. Description of the Related Art
Flash memory is a form of erasable and reprogrammable non-volatile memory. In a flash memory, memory cells are arranged in “blocks” for erasure. After a block has been erased, it is ready for programming if desired. NOR flash memory is a type of flash memory that offers access to individual bytes for retrieval of data, but has relatively low density.
NAND flash memory is a type of flash memory that offers relatively high density. The high density is achieved in part by forming columns of cells connected in series. In addition, with NAND flash memory, data is programmed and accessed in relatively large groups of bytes, such as a page of data. For example, a page can correspond to a row or to a portion of a row in an array.
For example, a memory array of cells for storing data is typically arranged in a 2-dimensional array of rows and columns. These arrays can vary greatly in size. When the cells of the array are capable of holding 2 or more levels, that is, multiple levels or two or more bits of data per cell, the array effectively holds data in 3 dimensions.
In a typical array for NAND flash memory, sources and drains of flash cells are arranged in series (source to drain) and referred to as columns. Along rows are “word lines” that control the gates of cells. Data is typically accessed a row at a time, with one bit from each column. The word line for the row to be read is set to a particular voltage for reading the stored state(s) of the cells. Different voltage levels can be used for multiple-level cells. The other row lines for the other cells of the columns are set to turn “on” the cells to permit the reading of the stored state(s) of the cells of the row through the corresponding cells in the columns.
The number of bytes per row can vary in a very wide range as can the number of bytes in a “page.” Some manufacturers define a page by a certain amount of data, so that, for example, two pages of data can correspond to one word line (row). For the purposes described herein, a “page” of data corresponds to the amount of data that is written to or read from the NAND flash memory array during a write cycle or read cycle. In one example, 2,112 bytes are retrieved by activation of a word line. Of these 2,112 bytes, 2,048 are data bytes and 64 are spare bytes, which are typically used for error correction codes (ECC), wear-leveling information, logical address mapping, or other overhead data. Error correction codes increase the robustness of the stored data. Typically, a form of block code is used to generate the error correction codes, such as cyclic redundancy check (CRC) checksums, Reed-Solomon error correction, or the like. These error correction codes detect if there were errors in the reading of the data bytes and can typically correct errors in the data bytes provided that the errors do not exceed the capability of the error correction code.
Flash memory has many uses. Examples include flash memory hard drives (replacements for hard drives), USB flash drives or thumb drives, mobile phones, digital cameras, digital media players, games, memory cards, navigation devices, personal digital assistants, computers, or the like. Within limits, the error correction codes can correct many errors in the data in the data bytes. However, beyond these limits, data with errors cannot typically be corrected. For example, if a word line fails, then there can be problems reading data for the entire row. This typically results in too many errors for the error correction codes to correct. Depending on the criticality of the data, the effects of uncorrectable errors in data can range from inconvenient to catastrophic.
BRIEF DESCRIPTION OF THE DRAWINGS
These drawings and the associated description herein are provided to illustrate specific embodiments of the invention and are not intended to be limiting.
FIG. 1 is a schematic including a memory device, wherein the memory device stores data with an outer block code and a stream-based inner code.
FIG. 2 illustrates an example of a convolutional coder for the stream-based inner coding.
FIG. 3 is a schematic illustrating a memory device, wherein the memory device stores data with a stream-based code such that it effectively has a better (lower) bit error rate (BER) than if the stream-based code were not used.
FIG. 4 is a schematic illustrating one embodiment of a memory device wherein data can be loaded in arbitrary order.
FIG. 5 is a schematic illustrating one embodiment of a memory device with relatively few components.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
Although particular embodiments are described herein, other embodiments of the invention, including embodiments that do not provide all of the benefits and features set forth herein, will be apparent to those of ordinary skill in the art.
FIG. 1 is a schematic including amemory device100, wherein thememory device100 stores data using an outer block code concatenated with a stream-based inner error correction code to generate a concatenated code. In contrast to block codes that process data in blocks, the stream-based inner error correction code processes the data in streams or channels. Accordingly, the coding of the concatenated data is dependent on prior data received by the stream-based code coder. In one embodiment, the stream-based code is a convolutional code. Thememory device100 is illustrated in communication with aCPU102, which represents another device using thememory device100. TheCPU102 can correspond to a microprocessor, a controller, signal processor, or the like. The illustratedmemory device100 includes awrite buffer104, ablock code coder106, a stream-basedcode coder108, amemory array110, a stream-basedcode decoder112, ablock code decoder114, and aread buffer116.FIG. 3 illustrates an alternative configuration with fewer functional blocks. Theblock code coder106 and the stream-basedcode coder108 are each forward error correction (FEC) coders.
In one embodiment, thememory array110 corresponds to a NAND flash memory array. The NAND flash memory array can be of single level, multi-level, or can even correspond to multiple arrays. While particular embodiments will be described in the context of NAND flash memory, the principles and advantages described herein are applicable to other types of memories. A very wide range of non-volatile solid state memory types can be used for thememory array110. For example, thememory array110 can correspond to other forms of flash (e.g., NOR type), electrically erasable programmable read only memory (EEPROM), magnetoresistive random access memory (MRAM), programmable conductor memory, ferroelectric memory, and the like.
Theblock code coder106 generates the outer block code. The stream-basedcode coder108 generates the inner stream-based code, e.g., convolutional code. The stream-basedcode decoder112 decodes the inner stream-based code, and theblock code decoder114 decodes the outer block code. The concatenation of the outer block code and the inner stream-based code improves the integrity of the stored data and increases the likelihood of recovering correctable data. For example, the use of the inner stream-based code can lower the bit error rate (BER) associated with thememory device100. The reduction in the BER is observed by the device using thememory device100, such as a host or theCPU102.
TheCPU102 or controller provides data to thewrite buffer104 for storage to thememory array110. Typically, for NAND flash, a page of data is written to thememory array110 at a time. This page of data can vary in size. Typical page sizes include, but are not limited to, 512 bytes, 1024 bytes, 2048 bytes, and the like. In the schematic, a variable N represents the number of bytes for a page.
This N number of bytes is encoded by theblock code coder106. Examples of block codes include, but are not limited to, a Hamming code, a Reed-Solomon error correction code, a Bose, Chaudhuri, Hocquenghem (BCH) code, or the like. Within limits, these block error correction codes can detect and correct many errors in the data. The error correction codes from the block codes occupy additional bytes represented inFIG. 1 as variable y number of block code bytes. In a conventional NAND flash memory array, the block codes are typically stored in a spare bytes area for the corresponding page. For the purposes of illustration, these possible extra bytes are included in the variable y. Accordingly, for a conventional NAND flash memory array, N+y bytes are stored for the page for data and for error correction data. The type of block code used and the number of error correction bytes y are typically specified for a particular device by an applicable industry standard, such as by a JEDEC standard. Typically, for a block code, the N bytes of the N+y bytes remain the same data, and the y block code bytes for error correction are appended to the data. The N bytes can be considered the original data for theblock code coder106, and the N+y bytes can be considered the original data for the stream-basedcoder108.
In the illustrated embodiment, the stream-basedcode coder108 performs a stream-based coding process on the N+y bytes of data. The stream-based coding increases the amount of data stored by a factor z such that z(N+y) bytes are stored in thememory array110 for the concatenated page of data. With stream-based coding, the resulting z(N+y) bytes are typically unique from the original N or N+y bytes of data, i.e., the N or N+y bytes of data are not recognizable without decoding. This can render decoding relatively difficult as compared to decoding of block codes. However, techniques such as the Viterbi algorithm can be used to decode convolutional codes in a relatively efficient manner.
This factor z can vary. For example, the code rate (m/n) and the constraint length k for a convolutional code can affect the size of the factor z. The factor z can vary in a very broad range, but will be greater than 1. In one embodiment, the stream-based code is a convolutional code, and the factor z is 2. A simple convolutional coding example will be described later in connection withFIG. 2, with a factor z of 2. With the growth in size of the data, memory address can also be mapped internally to the memory device to reflect the increase in the size of the data stored.
For clarity, familiar components such as buffers, row decoders, sense/amplifier circuits and the like are not shown inFIG. 1. When data is requested, the applicable portion of thememory array110 is accessed. For a page of data, z(N+y) bytes are retrieved from thememory array110. The stream-basedcode decoder112 decodes, e.g., deconvolves, the stream-based coded z(N+y) bytes to N+y block-coded bytes. Within limits of the code, the decoding process detects and corrects errors. In one embodiment, the stream-basedcode decoder112 is a Viterbi decoder (for decoding of convolutional codes). Advantageously, this extra stream-based coding reduces the number of errors, if any, in the resulting block-coded N+y bytes and improves the probability that the block-coded N+y bytes will be correctable.
Theblock code decoder114 decodes the z(N+y) bytes of block-coded data and generates N bytes of corrected data (unless the errors are uncorrectable). The N bytes of corrected data are placed in theread buffer116 for access by theCPU102.
FIG. 2 illustrates an example of aconvolutional coder202 for the inner stream-based coding. While illustrated in the context of convolutional codes, the principles and advantages are applicable to other types of codes. Stream-based coding can be performed by hardware or by software (or firmware as applicable), or by a combination of both. In one embodiment, stream-based coding is performed by dedicated hardware integrated with thememory device100 or by a controller outside of thememory device100. The particularconvolutional coder202 illustrated inFIG. 2 is a simple example of convolutional coding and is not intended to be limiting. An implementation of convolutional coding can vary widely with respect to many parameters, such as, but not limited to, constraint lengths, generator polynomials, and the like.
Data204 indicates the N+y bytes of data from theblock code coder106 that would normally be stored in a conventional memory device.Data206 indicates the convolutional coded z(N+y) bytes of data generated by convolution coding ofdata204. In the simple example,data204 is convolved using aregister208 and an exclusive-OR (XOR)gate210.
In the illustrated example, the lower number bits are written earlier than the higher numbered bits. Theregister208 can be initialized to zero for the first data bit (first memory cell of the string), or can be initialized to one.
FIG. 3 is a schematic illustrating amemory device302, wherein thememory device302 stores data with a stream-based code such that it effectively has a better (lower) bit error rate (BER) than if the stream-based code were not used. The groupings of the components illustrated inFIG. 3 vary from the grouping inFIG. 1. The groupings can vary depending on the specifications for thememory devices100,302, depending on whether thememory devices100,302 are provided at the die level or packaged, and the like.
Thememory device302 is operatively coupled to acontroller304, which is in communication with ahost306. For example, thehost306 and thecontroller304 can be of a legacy specification. Thecontroller304 can be part of thehost306 or can be part of thememory device302. For example, in the context of memory cards, e.g., SmartMedia, Secure Digital, or the like, some memory card formats specify thecontroller304 to be onboard thememory device302, while other formats specify thecontroller304 to be part of thehost306.
In the illustrated example, thememory device302 includes the stream-basedcode coder108, thememory array110, and the stream-basedcode decoder112. These components were described earlier in connection withFIG. 1. Thecontroller304 includes thewrite buffer104, theblock code coder106, theblock code decoder114, and theread buffer116. These components were also described earlier in connection withFIG. 1. One of ordinary skill in the art will appreciate that other components, such as buffers, cache registers, address data, multiplexing/demultiplexing components, serializing/deserializing components, and control components can also be present as applicable. Further details of possible configurations for thememory device302 will be described later in connection withFIGS. 4 and 5.
While it may appear that the allocation of available memory space for additional error correction would be counter productive to the low-cost production of memory chips at low cost, the reverse can be true in certain situations. One example is compatibility with relatively old, i. e., legacy, memory system requirements.
The difference in density between a relatively new memory array and a relatively old memory array can be fairly dramatic. For example, the geometry feature size of a relatively new memory array is about ⅓ of that of a relatively old memory array. This increases the chip density by a factor of about 10. However, as the individual memory cells shrink, they also typically become individually less reliable and more susceptible to noise. This can render relatively new memory devices with small geometry unusable with the legacy specifications. With the legacy amount of error correction coding, the relatively small geometry devices would typically fail the bit error rate (BER) specification. This problem can be addressed by changing a specification to increase the amount of block coding; however, the increase in block coding would then negate compatibility with an existing specification.
One embodiment transparently applies the inner stream-based code to the block-coded data such that a host is unaware that a stream-based code is being used. This advantageously permits a relatively new and low-cost memory device to meet the bit error rate (BER) requirements while outwardly using only the block coded data specified for a legacy device. For example, even if half of the memory capacity were to be used, a small-geometry memory device of about 10 times the density would still be about 5 times more dense and thus cheaper than a larger-geometry device. This can further permit a manufacturer to build products for a wider range of product lines from relatively fewer production lines.
FIG. 4 is a schematic illustrating one embodiment of thememory device302 wherein data can be loaded in arbitrary order. In the configuration illustrated inFIG. 4, thememory device302 includes afirst page latch402 and asecond page latch404. Thesecond page latch404 stores a page of data received from an interface. Thesecond page latch404 accumulates this data so that the stream-basedcode coder108 can process the forward error correction coded data of the stream-based coding operation. For example, with convolutional coding, the correction coding of data depends on earlier values of data. By storing the page of data in thesecond page latch404 before coding, the data can be received in arbitrary order.
In one embodiment, the stream-basedcode coder108 initiates the coding process after the page of data has been loaded into thesecond page latch404. An indication, such as a “program page” signal can be used to indicate the readiness of the data. For an ordinary memory device, the program page signal from thehost306 or controller304 (FIG. 3) initiates the storage into the array. It will be understood that for flash memory devices, the applicable portion of the array may need to be erased prior to programming. In one embodiment, the program page signal is used to initiate the additional error correction by the stream-basedcode coder108, and when the coding is complete, the stream-basedcode coder108 initiates the programming of data from thefirst page latch402 to thememory array110.
For a page of N data bytes, thesecond page latch404 typically stores N+y data bytes. Advantageously, as the N+y data bytes are stored in thesecond page latch404, thememory device302 can receive the data bytes for the page without a specific order. After the data for the page has been received, the stream-basedcode coder108 encodes the N+y data bytes to the z(N+y) bytes with stream-based coding, such as convolutional coding. These z(N+y) bytes are stored in thefirst page latch402 for writing to thememory array110.
FIG. 5 is a schematic illustrating one embodiment of thememory device302 with relatively fewer components. As compared to the embodiment described earlier in connection withFIG. 4, the data from the interface is not stored in a page latch prior to encoding. A smaller latch or register (smaller than a page) is used instead. This can reduce cost. However, the computation of some codes, such as convolutional codes, is dependent on prior values of data. Accordingly, without thesecond page latch404, the data from an interface may need to be provided in such an order that the stream-basedcode coder108 can process the inner error correction code.
One embodiment is an apparatus, wherein the apparatus includes: one or more memory arrays for storage of data; a stream-based coder configured to generate a page of forward error correction coded data of a page of original data intended for storage in the one or more memory arrays such that the coded page of data is larger than the page of original data and such that the original data is not recognizable in the coded data without decoding the coded data; a page latch operatively coupled to the stream-based coder, wherein the page latch is at least large enough to hold the page of coded data for writing to the one or more memory arrays; and a stream-based decoder configured to decode coded data retrieved from the one or more memory arrays to generate decoded data.
One embodiment is a method for storing data in a device having one or more memory arrays, wherein the method includes: receiving block-coded data for storage in the one or more memory arrays; concatenating the block-coded data with a forward error correction code to generate a concatenated code that is larger in size than the original block-coded data; and storing the concatenated code in the one or more memory arrays.
One embodiment is a method of retrieving a first data stored in a memory device, wherein the method includes: receiving a request for the first data; retrieving a concatenated data from one or more memory arrays, wherein the concatenated data corresponds to the first data and a first block code of the first data concatenated with a second forward error correction code; and decoding the concatenated data to generate the first data and block codes.
Various embodiments have been described above. Although described with reference to these specific embodiments, the descriptions are intended to be illustrative and are not intended to be limiting. Various modifications and applications may occur to those skilled in the art without departing from the true spirit and scope of the invention as defined in the appended claims.

Claims (10)

2. An apparatus comprising:
one or more memory arrays for storage of data;
a stream-based coder configured to generate a page of forward error correction coded data of a page of original data intended for storage in the one or more memory arrays such that the coded page of data is larger than the page of original data and such that the original data is not recognizable in the coded data without decoding the coded data;
a page latch operatively coupled to the stream-based coder, wherein the page latch is at least large enough to hold the page of coded data for writing to the one or more memory arrays;
a stream-based decoder configured to decode coded data retrieved from the one or more memory arrays to generate decoded data; and
a second page latch operatively coupled to the stream-based coder, wherein the second page latch is configured to store the page of original data for access by the stream-based coder for coding;
wherein the stream-based coder is configured to initiate a forward error correction process at least partially in response to an activation of a program page signal.
US11/774,3772007-07-062007-07-06Data storage with an outer block code and a stream-based inner codeActive2030-09-20US8065583B2 (en)

Priority Applications (5)

Application NumberPriority DateFiling DateTitle
US11/774,377US8065583B2 (en)2007-07-062007-07-06Data storage with an outer block code and a stream-based inner code
PCT/US2008/068240WO2009009303A2 (en)2007-07-062008-06-25Data storage with an outer block code and a stream-based inner code
TW097125483ATW200919481A (en)2007-07-062008-07-04Data storage with an outer block code and a stream-based inner code
US13/281,007US8239725B2 (en)2007-07-062011-10-25Data storage with an outer block code and a stream-based inner code
US14/263,825US9063875B2 (en)2007-07-062014-04-28Error recovery storage along a memory string

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
US11/774,377US8065583B2 (en)2007-07-062007-07-06Data storage with an outer block code and a stream-based inner code

Related Child Applications (1)

Application NumberTitlePriority DateFiling Date
US13/281,007ContinuationUS8239725B2 (en)2007-07-062011-10-25Data storage with an outer block code and a stream-based inner code

Publications (2)

Publication NumberPublication Date
US20090013234A1 US20090013234A1 (en)2009-01-08
US8065583B2true US8065583B2 (en)2011-11-22

Family

ID=40222374

Family Applications (2)

Application NumberTitlePriority DateFiling Date
US11/774,377Active2030-09-20US8065583B2 (en)2007-07-062007-07-06Data storage with an outer block code and a stream-based inner code
US13/281,007ActiveUS8239725B2 (en)2007-07-062011-10-25Data storage with an outer block code and a stream-based inner code

Family Applications After (1)

Application NumberTitlePriority DateFiling Date
US13/281,007ActiveUS8239725B2 (en)2007-07-062011-10-25Data storage with an outer block code and a stream-based inner code

Country Status (3)

CountryLink
US (2)US8065583B2 (en)
TW (1)TW200919481A (en)
WO (1)WO2009009303A2 (en)

Cited By (74)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20090043951A1 (en)*2007-08-062009-02-12Anobit Technologies Ltd.Programming schemes for multi-level analog memory cells
US20090129169A1 (en)*2007-11-212009-05-21Micron Technology, Inc.Method and apparatus for reading data from flash memory
US20090144600A1 (en)*2007-11-302009-06-04Anobit Technologies LtdEfficient re-read operations from memory devices
US20100220509A1 (en)*2009-03-012010-09-02Anobit Technologies LtdSelective Activation of Programming Schemes in Analog Memory Cell Arrays
US20100251076A1 (en)*2009-03-272010-09-30Chao-Yi WuStorage controller having soft decoder included therein, related storage control method thereof and system using the same
US8208304B2 (en)2008-11-162012-06-26Anobit Technologies Ltd.Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8209588B2 (en)2007-12-122012-06-26Anobit Technologies Ltd.Efficient interference cancellation in analog memory cell arrays
US8230300B2 (en)2008-03-072012-07-24Apple Inc.Efficient readout from analog memory cells using data compression
US8234545B2 (en)2007-05-122012-07-31Apple Inc.Data storage with incremental redundancy
US8239734B1 (en)*2008-10-152012-08-07Apple Inc.Efficient data storage in storage device arrays
US8238157B1 (en)2009-04-122012-08-07Apple Inc.Selective re-programming of analog memory cells
US8239735B2 (en)2006-05-122012-08-07Apple Inc.Memory Device with adaptive capacity
US8248831B2 (en)2008-12-312012-08-21Apple Inc.Rejuvenation of analog memory cells
US8259506B1 (en)2009-03-252012-09-04Apple Inc.Database of memory read thresholds
US8261159B1 (en)2008-10-302012-09-04Apple, Inc.Data scrambling schemes for memory devices
US8270246B2 (en)2007-11-132012-09-18Apple Inc.Optimized selection of memory chips in multi-chips memory devices
US8300478B2 (en)2007-09-192012-10-30Apple Inc.Reducing distortion using joint storage
US8369141B2 (en)2007-03-122013-02-05Apple Inc.Adaptive estimation of memory cell read thresholds
US8386895B2 (en)2010-05-192013-02-26Micron Technology, Inc.Enhanced multilevel memory
US8397131B1 (en)2008-12-312013-03-12Apple Inc.Efficient readout schemes for analog memory cell devices
US8400858B2 (en)2008-03-182013-03-19Apple Inc.Memory device with reduced sense time readout
US8429493B2 (en)2007-05-122013-04-23Apple Inc.Memory device with internal signap processing unit
US8437185B2 (en)2007-09-192013-05-07Apple Inc.Programming orders for reducing distortion based on neighboring rows
US8456905B2 (en)2007-12-162013-06-04Apple Inc.Efficient data storage in multi-plane memory devices
US8479080B1 (en)2009-07-122013-07-02Apple Inc.Adaptive over-provisioning in memory systems
US8482978B1 (en)2008-09-142013-07-09Apple Inc.Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8495465B1 (en)2009-10-152013-07-23Apple Inc.Error correction coding over multiple memory pages
US8493783B2 (en)2008-03-182013-07-23Apple Inc.Memory device readout using multiple sense times
US8493781B1 (en)2010-08-122013-07-23Apple Inc.Interference mitigation using individual word line erasure operations
US8498151B1 (en)2008-08-052013-07-30Apple Inc.Data storage in analog memory cells using modified pass voltages
US8527819B2 (en)2007-10-192013-09-03Apple Inc.Data storage in analog memory cell arrays having erase failures
US8572311B1 (en)2010-01-112013-10-29Apple Inc.Redundant data storage in multi-die memory systems
US8570804B2 (en)2006-05-122013-10-29Apple Inc.Distortion estimation and cancellation in memory devices
US8572423B1 (en)2010-06-222013-10-29Apple Inc.Reducing peak current in memory systems
US8595573B2 (en)2006-12-032013-11-26Apple Inc.Automatic defect management in memory devices
US8595591B1 (en)2010-07-112013-11-26Apple Inc.Interference-aware assignment of programming levels in analog memory cells
US8645794B1 (en)2010-07-312014-02-04Apple Inc.Data storage in analog memory cells using a non-integer number of bits per cell
US8677054B1 (en)2009-12-162014-03-18Apple Inc.Memory management schemes for non-volatile memory devices
US8694854B1 (en)2010-08-172014-04-08Apple Inc.Read threshold setting based on soft readout statistics
US8694814B1 (en)2010-01-102014-04-08Apple Inc.Reuse of host hibernation storage space by memory controller
US8694853B1 (en)2010-05-042014-04-08Apple Inc.Read commands for reading interfering memory cells
US8788910B1 (en)2012-05-222014-07-22Pmc-Sierra, Inc.Systems and methods for low latency, high reliability error correction in a flash drive
US8793556B1 (en)2012-05-222014-07-29Pmc-Sierra, Inc.Systems and methods for reclaiming flash blocks of a flash drive
US8832354B2 (en)2009-03-252014-09-09Apple Inc.Use of host system resources by memory controller
US8856475B1 (en)2010-08-012014-10-07Apple Inc.Efficient selection of memory blocks for compaction
US8924661B1 (en)2009-01-182014-12-30Apple Inc.Memory system including a controller and processors associated with memory devices
US8949684B1 (en)2008-09-022015-02-03Apple Inc.Segmented data storage
US8972824B1 (en)2012-05-222015-03-03Pmc-Sierra, Inc.Systems and methods for transparently varying error correction code strength in a flash drive
US8996957B1 (en)2012-05-222015-03-31Pmc-Sierra, Inc.Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9009565B1 (en)2013-03-152015-04-14Pmc-Sierra, Inc.Systems and methods for mapping for solid-state memory
US9021337B1 (en)2012-05-222015-04-28Pmc-Sierra, Inc.Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US9021181B1 (en)2010-09-272015-04-28Apple Inc.Memory management for unifying memory cell conditions by using maximum time intervals
US9021336B1 (en)2012-05-222015-04-28Pmc-Sierra, Inc.Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9021333B1 (en)2012-05-222015-04-28Pmc-Sierra, Inc.Systems and methods for recovering data from failed portions of a flash drive
US9026867B1 (en)2013-03-152015-05-05Pmc-Sierra, Inc.Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9047214B1 (en)2012-05-222015-06-02Pmc-Sierra, Inc.System and method for tolerating a failed page in a flash device
US9053012B1 (en)2013-03-152015-06-09Pmc-Sierra, Inc.Systems and methods for storing data for solid-state memory
US9053047B2 (en)2012-08-272015-06-09Apple Inc.Parameter estimation using partial ECC decoding
US9065483B2 (en)2013-01-212015-06-23Micron Technology, Inc.Determining soft data using a classification code
US9081701B1 (en)2013-03-152015-07-14Pmc-Sierra, Inc.Systems and methods for decoding data for solid-state memory
US9104580B1 (en)2010-07-272015-08-11Apple Inc.Cache memory for hybrid disk drives
US9116822B2 (en)2012-12-072015-08-25Micron Technology, Inc.Stopping criteria for layered iterative error correction
US9171624B2 (en)2013-12-202015-10-27Apple Inc.Management of data storage in analog memory cells using a non-integer number of bits per cell
US9176812B1 (en)2012-05-222015-11-03Pmc-Sierra, Inc.Systems and methods for storing data in page stripes of a flash drive
US9183085B1 (en)2012-05-222015-11-10Pmc-Sierra, Inc.Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9208018B1 (en)2013-03-152015-12-08Pmc-Sierra, Inc.Systems and methods for reclaiming memory for solid-state memory
US9229848B2 (en)2013-01-212016-01-05Micron Technology, Inc.Determining soft data for fractional digit memory cells
US9577673B2 (en)2012-11-082017-02-21Micron Technology, Inc.Error correction methods and apparatuses using first and second decoders
US9740559B2 (en)2015-10-282017-08-22Avago Technologies General Ip (Singapore) Pte. Ltd.Systems and methods for compaction based flash memory data recovery
US10108489B2 (en)2015-10-282018-10-23Avago Technologies General Ip (Singapore) Pte. Ltd.Systems and methods for efficient soft data based flash memory data recovery
US10204006B2 (en)2015-10-282019-02-12Avago Technologies International Sales Pte. LimitedSystems and methods for side data based soft data flash memory access
US10291261B2 (en)2016-04-252019-05-14SK Hynix Inc.Early selection decoding and automatic tuning
US11556416B2 (en)2021-05-052023-01-17Apple Inc.Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en)2021-07-282023-12-19Apple Inc.Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8051358B2 (en)2007-07-062011-11-01Micron Technology, Inc.Error recovery storage along a nand-flash string
US8327245B2 (en)2007-11-212012-12-04Micron Technology, Inc.Memory controller supporting rate-compatible punctured codes
US8046542B2 (en)*2007-11-212011-10-25Micron Technology, Inc.Fault-tolerant non-volatile integrated circuit memory
US8230158B2 (en)2008-08-122012-07-24Micron Technology, Inc.Memory devices and methods of storing data on a memory device
US8751860B2 (en)*2009-06-032014-06-10Micron Technology, Inc.Object oriented memory in solid state devices
EP2299362A3 (en)*2009-08-182011-05-04ViaSat, Inc.Forward error correction for memories
US8271697B2 (en)2009-09-292012-09-18Micron Technology, Inc.State change in systems having devices coupled in a chained configuration
KR101678053B1 (en)2010-04-022016-11-22삼성전자 주식회사Semiconductor device and decoding method thereof
US8429391B2 (en)2010-04-162013-04-23Micron Technology, Inc.Boot partitions in memory devices and systems
US8451664B2 (en)2010-05-122013-05-28Micron Technology, Inc.Determining and using soft data in memory devices and systems
US8572457B2 (en)2010-05-282013-10-29Seagate Technology LlcOuter code protection for solid state memory devices
KR101944793B1 (en)*2012-09-042019-02-08삼성전자주식회사Flash memory system including flash memory and detecting method of abnormal wordline thereof
CN103064640B (en)*2012-12-312015-11-18苏州国芯科技有限公司 Fast reading and writing method applied to nandflash storage device
CN104599717B (en)*2012-12-312017-11-24苏州国芯科技有限公司NAND Flash memory data storage method with error correction
CN104598169B (en)*2012-12-312018-02-09苏州国芯科技有限公司High reliability data read method for flash memory
US9559725B1 (en)2013-10-232017-01-31Seagate Technology LlcMulti-strength reed-solomon outer code protection
US9396062B1 (en)2014-04-042016-07-19Seagate Technology LlcGroup based codes for multi-dimensional recording (MDR)
US9912355B2 (en)*2015-09-252018-03-06Intel CorporationDistributed concatenated error correction
US10614903B2 (en)2016-07-182020-04-07International Business Machines CorporationTesting non-volatile memories
US10388351B2 (en)2017-08-302019-08-20Micron Technology, Inc.Wear leveling for random access and ferroelectric memory
US11507614B1 (en)2018-02-132022-11-22Snap Inc.Icon based tagging

Citations (29)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5942004A (en)1994-10-311999-08-24Stmicroelectronics, S.R.L.Device and a method for storing data and corresponding error-correction information
US5956743A (en)1997-08-251999-09-21Bit Microsystems, Inc.Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US6023781A (en)1996-09-182000-02-08Nippon Steel CorporationMultilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
JP2000149592A (en)1998-11-112000-05-30Nec Ic Microcomput Syst LtdMemory cell for defect relief and storage device utilizing the same
US6279133B1 (en)1997-12-312001-08-21Kawasaki Steel CorporationMethod and apparatus for significantly improving the reliability of multilevel memory architecture
US20020120820A1 (en)*2001-02-282002-08-29Fujitsu LimitedMemory device for controlling nonvolatile and volatile memories
US6591394B2 (en)2000-12-222003-07-08Matrix Semiconductor, Inc.Three-dimensional memory array and method for storing data bits and ECC bits therein
US6732322B1 (en)1998-01-212004-05-04Sony CorporationEncoding method and memory device
US6731538B2 (en)2000-03-102004-05-04Kabushiki Kaisha ToshibaSemiconductor memory device including page latch circuit
US6839870B2 (en)2003-03-212005-01-04Terayon Communications Systems, Inc.Error-correcting code interleaver
US6871303B2 (en)1998-12-042005-03-22Qualcomm IncorporatedRandom-access multi-directional CDMA2000 turbo code interleaver
US6895543B2 (en)1996-09-182005-05-17Nippon Steel CorporationMultilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US20050114587A1 (en)2003-11-222005-05-26Super Talent Electronics Inc.ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
WO2006070668A1 (en)2004-12-282006-07-06International Business Machines CorporationInformation recording device, data-flow controller for the device, and control method for the data-flow
US20060221752A1 (en)2005-03-312006-10-05Fasoli Luca GIntegrated circuit memory array configuration including decoding compatibility with partial implementation of multiple memory layers
US7184356B2 (en)2003-07-312007-02-27Kabushiki Kaisha ToshibaSemiconductor memory device
US20070171714A1 (en)2006-01-202007-07-26Marvell International Ltd.Flash memory with coding and signal processing
US20070171730A1 (en)2006-01-202007-07-26Marvell International Ltd.Method and system for error correction in flash memory
KR100766042B1 (en)2006-12-062007-10-12삼성전자주식회사 Multilevel Cell Memory Device Using Concatenated Coding
US20070266296A1 (en)*2006-05-152007-11-15Conley Kevin MNonvolatile Memory with Convolutional Coding
US20080163023A1 (en)2007-01-032008-07-03Si-Hoon HongECC controller for use in flash memory device and memory system including the same
US20080168319A1 (en)*2007-01-082008-07-10Samsung Electronics Co., Ltd.Flash memory Device Error Correction Code Controllers and Related Methods and Memory Systems
US20090013233A1 (en)2007-07-062009-01-08Micron Technology, Inc.Error recovery storage along a nand-flash string
US7478314B1 (en)*2004-08-042009-01-13Marvell International Ltd.Methods, algorithms, software, circuits, receivers and system for decoding convolutional code
US20090100307A1 (en)*2004-08-302009-04-16Silicon Storage Technology, Inc.Systems and methods for providing nonvolatile memory management in wireless phones
US7643342B2 (en)2006-03-062010-01-05Ramot At Tel-Aviv University Ltd.Multi-bit-per-cell flash memory device with non-bijective mapping
US20100023800A1 (en)*2005-09-262010-01-28Eliyahou HarariNAND Flash Memory Controller Exporting a NAND Interface
US20100115376A1 (en)*2006-12-032010-05-06Anobit Technologies Ltd.Automatic defect management in memory devices
US7904780B2 (en)2006-11-032011-03-08Sandisk CorporationMethods of modulating error correction coding

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US4058851A (en)1976-10-181977-11-15Sperry Rand CorporationConditional bypass of error correction for dual memory access time selection
US6628723B1 (en)1999-10-152003-09-30Cisco TechnologyCoding rate reduction for turbo codes
US6683817B2 (en)2002-02-212004-01-27Qualcomm, IncorporatedDirect memory swapping between NAND flash and SRAM with error correction coding
US7293217B2 (en)2002-12-162007-11-06Interdigital Technology CorporationDetection, avoidance and/or correction of problematic puncturing patterns in parity bit streams used when implementing turbo codes
US7467264B2 (en)2003-06-272008-12-16Hewlett-Packard Development Company, L.P.Methods and apparatuses for determining the state of a memory element
US7389465B2 (en)2004-01-302008-06-17Micron Technology, Inc.Error detection and correction scheme for a memory device
US7061804B2 (en)2004-11-182006-06-13Qualcomm IncorporatedRobust and high-speed memory access with adaptive interface timing
US7644338B2 (en)2005-09-132010-01-05Samsung Electronics Co., Ltd.Method of detecting and correcting a prescribed set of error events based on error detecting code
US7469368B2 (en)2005-11-292008-12-23Broadcom CorporationMethod and system for a non-volatile memory with multiple bits error correction and detection for improving production yield
US7840875B2 (en)2006-05-152010-11-23Sandisk CorporationConvolutional coding methods for nonvolatile memory
US8046660B2 (en)2006-08-072011-10-25Marvell World Trade Ltd.System and method for correcting errors in non-volatile memory using product codes

Patent Citations (34)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5942004A (en)1994-10-311999-08-24Stmicroelectronics, S.R.L.Device and a method for storing data and corresponding error-correction information
US6023781A (en)1996-09-182000-02-08Nippon Steel CorporationMultilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US6895543B2 (en)1996-09-182005-05-17Nippon Steel CorporationMultilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program
US5956743A (en)1997-08-251999-09-21Bit Microsystems, Inc.Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US6279133B1 (en)1997-12-312001-08-21Kawasaki Steel CorporationMethod and apparatus for significantly improving the reliability of multilevel memory architecture
US6732322B1 (en)1998-01-212004-05-04Sony CorporationEncoding method and memory device
JP2000149592A (en)1998-11-112000-05-30Nec Ic Microcomput Syst LtdMemory cell for defect relief and storage device utilizing the same
US6871303B2 (en)1998-12-042005-03-22Qualcomm IncorporatedRandom-access multi-directional CDMA2000 turbo code interleaver
US6731538B2 (en)2000-03-102004-05-04Kabushiki Kaisha ToshibaSemiconductor memory device including page latch circuit
US6591394B2 (en)2000-12-222003-07-08Matrix Semiconductor, Inc.Three-dimensional memory array and method for storing data bits and ECC bits therein
US20020120820A1 (en)*2001-02-282002-08-29Fujitsu LimitedMemory device for controlling nonvolatile and volatile memories
US6839870B2 (en)2003-03-212005-01-04Terayon Communications Systems, Inc.Error-correcting code interleaver
US7184356B2 (en)2003-07-312007-02-27Kabushiki Kaisha ToshibaSemiconductor memory device
US20050114587A1 (en)2003-11-222005-05-26Super Talent Electronics Inc.ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US7478314B1 (en)*2004-08-042009-01-13Marvell International Ltd.Methods, algorithms, software, circuits, receivers and system for decoding convolutional code
US20090100307A1 (en)*2004-08-302009-04-16Silicon Storage Technology, Inc.Systems and methods for providing nonvolatile memory management in wireless phones
WO2006070668A1 (en)2004-12-282006-07-06International Business Machines CorporationInformation recording device, data-flow controller for the device, and control method for the data-flow
US20080320361A1 (en)2004-12-282008-12-25Junichi FukudaInformation Recording Device, Data-Flow Controller and Data Flow Controlling Method
US20060221752A1 (en)2005-03-312006-10-05Fasoli Luca GIntegrated circuit memory array configuration including decoding compatibility with partial implementation of multiple memory layers
US20100023800A1 (en)*2005-09-262010-01-28Eliyahou HarariNAND Flash Memory Controller Exporting a NAND Interface
US20070171714A1 (en)2006-01-202007-07-26Marvell International Ltd.Flash memory with coding and signal processing
US20070171730A1 (en)2006-01-202007-07-26Marvell International Ltd.Method and system for error correction in flash memory
US20110060969A1 (en)2006-01-202011-03-10Marvell International Ltd.Method and system for error correction in flash memory
US7844879B2 (en)2006-01-202010-11-30Marvell World Trade Ltd.Method and system for error correction in flash memory
US7643342B2 (en)2006-03-062010-01-05Ramot At Tel-Aviv University Ltd.Multi-bit-per-cell flash memory device with non-bijective mapping
US20070266296A1 (en)*2006-05-152007-11-15Conley Kevin MNonvolatile Memory with Convolutional Coding
US7904780B2 (en)2006-11-032011-03-08Sandisk CorporationMethods of modulating error correction coding
US20100115376A1 (en)*2006-12-032010-05-06Anobit Technologies Ltd.Automatic defect management in memory devices
KR100766042B1 (en)2006-12-062007-10-12삼성전자주식회사 Multilevel Cell Memory Device Using Concatenated Coding
US20080137414A1 (en)2006-12-062008-06-12Samsung Electronics Co., Ltd.Multi-level cell memory device and method thereof
US7962831B2 (en)*2006-12-062011-06-14Samsung Electronics Co., Ltd.Multi-level cell memory device and method thereof
US20080163023A1 (en)2007-01-032008-07-03Si-Hoon HongECC controller for use in flash memory device and memory system including the same
US20080168319A1 (en)*2007-01-082008-07-10Samsung Electronics Co., Ltd.Flash memory Device Error Correction Code Controllers and Related Methods and Memory Systems
US20090013233A1 (en)2007-07-062009-01-08Micron Technology, Inc.Error recovery storage along a nand-flash string

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
International search report mailed Dec. 29, 2008 in PCT Application No. PCT/US2008/068240.
International search report mailed Jan. 20, 2009 in PCT Application No. PCT/US2008/068236.
Korean Intellectual Property Office; "Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration", "Written Opinion of the International Searching Authority", and "International search report" of related International Application PCT/US2008/081743, filed Oct. 28, 2008; Dated Feb. 19, 2009; Daejeon, Republic of Korea.
Korean Intellectual Property Office; "Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration", "Written Opinion of the International Searching Authority", and "International Search Report" of related PCT application PCT/US/2008/081475, filed Oct. 28, 2008; mailed Feb. 18, 2009; Daejeon, Republic of Korea.
The International Bureau of WIPO; International Preliminary Report on Patentability of related PCT Application No. PCT/US2008/068236, filed Jun. 25, 2008; mailing date Jan. 21, 2010; Geneva, Switzerland.
The International Bureau of WIPO; International Preliminary Report on Patentability of related PCT Application No. PCT/US2008/068240, filed Jun. 25, 2008; mailing date Jan. 21, 2010; Geneva, Switzerland.
USPTO; Office Action dated Dec. 9, 2010, from related application U.S. Appl. No. 11/944,023, filed Nov. 21, 2007.
USPTO; Office Action dated Sep. 9, 2010, from related application U.S. Appl. No. 11/944,023, filed Nov. 21, 2007.

Cited By (99)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8599611B2 (en)2006-05-122013-12-03Apple Inc.Distortion estimation and cancellation in memory devices
US8239735B2 (en)2006-05-122012-08-07Apple Inc.Memory Device with adaptive capacity
US8570804B2 (en)2006-05-122013-10-29Apple Inc.Distortion estimation and cancellation in memory devices
US8595573B2 (en)2006-12-032013-11-26Apple Inc.Automatic defect management in memory devices
US8369141B2 (en)2007-03-122013-02-05Apple Inc.Adaptive estimation of memory cell read thresholds
US8429493B2 (en)2007-05-122013-04-23Apple Inc.Memory device with internal signap processing unit
US8234545B2 (en)2007-05-122012-07-31Apple Inc.Data storage with incremental redundancy
US20090043951A1 (en)*2007-08-062009-02-12Anobit Technologies Ltd.Programming schemes for multi-level analog memory cells
US8259497B2 (en)2007-08-062012-09-04Apple Inc.Programming schemes for multi-level analog memory cells
US8300478B2 (en)2007-09-192012-10-30Apple Inc.Reducing distortion using joint storage
US8437185B2 (en)2007-09-192013-05-07Apple Inc.Programming orders for reducing distortion based on neighboring rows
US8527819B2 (en)2007-10-192013-09-03Apple Inc.Data storage in analog memory cell arrays having erase failures
US8270246B2 (en)2007-11-132012-09-18Apple Inc.Optimized selection of memory chips in multi-chips memory devices
US9197251B2 (en)2007-11-212015-11-24Micron Technology, Inc.Method and apparatus for reading data from non-volatile memory
US8499229B2 (en)*2007-11-212013-07-30Micro Technology, Inc.Method and apparatus for reading data from flash memory
US8719680B2 (en)2007-11-212014-05-06Micron Technology, Inc.Method and apparatus for reading data from non-volatile memory
US20090129169A1 (en)*2007-11-212009-05-21Micron Technology, Inc.Method and apparatus for reading data from flash memory
US20090144600A1 (en)*2007-11-302009-06-04Anobit Technologies LtdEfficient re-read operations from memory devices
US8225181B2 (en)2007-11-302012-07-17Apple Inc.Efficient re-read operations from memory devices
US8209588B2 (en)2007-12-122012-06-26Anobit Technologies Ltd.Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en)2007-12-162013-06-04Apple Inc.Efficient data storage in multi-plane memory devices
US8230300B2 (en)2008-03-072012-07-24Apple Inc.Efficient readout from analog memory cells using data compression
US8493783B2 (en)2008-03-182013-07-23Apple Inc.Memory device readout using multiple sense times
US8400858B2 (en)2008-03-182013-03-19Apple Inc.Memory device with reduced sense time readout
US8498151B1 (en)2008-08-052013-07-30Apple Inc.Data storage in analog memory cells using modified pass voltages
US8949684B1 (en)2008-09-022015-02-03Apple Inc.Segmented data storage
US8482978B1 (en)2008-09-142013-07-09Apple Inc.Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en)*2008-10-152012-08-07Apple Inc.Efficient data storage in storage device arrays
US8261159B1 (en)2008-10-302012-09-04Apple, Inc.Data scrambling schemes for memory devices
US8713330B1 (en)2008-10-302014-04-29Apple Inc.Data scrambling in memory devices
US8208304B2 (en)2008-11-162012-06-26Anobit Technologies Ltd.Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8547742B2 (en)2008-11-162013-10-01Apple Inc.Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8374014B2 (en)2008-12-312013-02-12Apple Inc.Rejuvenation of analog memory cells
US8397131B1 (en)2008-12-312013-03-12Apple Inc.Efficient readout schemes for analog memory cell devices
US8248831B2 (en)2008-12-312012-08-21Apple Inc.Rejuvenation of analog memory cells
US8924661B1 (en)2009-01-182014-12-30Apple Inc.Memory system including a controller and processors associated with memory devices
US20100220509A1 (en)*2009-03-012010-09-02Anobit Technologies LtdSelective Activation of Programming Schemes in Analog Memory Cell Arrays
US8228701B2 (en)2009-03-012012-07-24Apple Inc.Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en)2009-03-252012-09-04Apple Inc.Database of memory read thresholds
US8832354B2 (en)2009-03-252014-09-09Apple Inc.Use of host system resources by memory controller
US8418021B2 (en)2009-03-272013-04-09Mediatek Inc.Storage controller with encoding/decoding circuit programmable to support different ECC requirements and related method thereof
US20100251076A1 (en)*2009-03-272010-09-30Chao-Yi WuStorage controller having soft decoder included therein, related storage control method thereof and system using the same
US8787080B2 (en)2009-04-122014-07-22Apple Inc.Selective re-programming of analog memory cells
US8238157B1 (en)2009-04-122012-08-07Apple Inc.Selective re-programming of analog memory cells
US8479080B1 (en)2009-07-122013-07-02Apple Inc.Adaptive over-provisioning in memory systems
US8495465B1 (en)2009-10-152013-07-23Apple Inc.Error correction coding over multiple memory pages
US8677054B1 (en)2009-12-162014-03-18Apple Inc.Memory management schemes for non-volatile memory devices
US8694814B1 (en)2010-01-102014-04-08Apple Inc.Reuse of host hibernation storage space by memory controller
US8572311B1 (en)2010-01-112013-10-29Apple Inc.Redundant data storage in multi-die memory systems
US8677203B1 (en)2010-01-112014-03-18Apple Inc.Redundant data storage schemes for multi-die memory systems
US8694853B1 (en)2010-05-042014-04-08Apple Inc.Read commands for reading interfering memory cells
US8386895B2 (en)2010-05-192013-02-26Micron Technology, Inc.Enhanced multilevel memory
US8700978B2 (en)2010-05-192014-04-15Micron Technology, Inc.Enhanced multilevel memory
US8572423B1 (en)2010-06-222013-10-29Apple Inc.Reducing peak current in memory systems
US8595591B1 (en)2010-07-112013-11-26Apple Inc.Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en)2010-07-272015-08-11Apple Inc.Cache memory for hybrid disk drives
US8767459B1 (en)2010-07-312014-07-01Apple Inc.Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8645794B1 (en)2010-07-312014-02-04Apple Inc.Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en)2010-08-012014-10-07Apple Inc.Efficient selection of memory blocks for compaction
US8493781B1 (en)2010-08-122013-07-23Apple Inc.Interference mitigation using individual word line erasure operations
US8694854B1 (en)2010-08-172014-04-08Apple Inc.Read threshold setting based on soft readout statistics
US9021181B1 (en)2010-09-272015-04-28Apple Inc.Memory management for unifying memory cell conditions by using maximum time intervals
US8788910B1 (en)2012-05-222014-07-22Pmc-Sierra, Inc.Systems and methods for low latency, high reliability error correction in a flash drive
US8793556B1 (en)2012-05-222014-07-29Pmc-Sierra, Inc.Systems and methods for reclaiming flash blocks of a flash drive
US9021337B1 (en)2012-05-222015-04-28Pmc-Sierra, Inc.Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US8972824B1 (en)2012-05-222015-03-03Pmc-Sierra, Inc.Systems and methods for transparently varying error correction code strength in a flash drive
US9021336B1 (en)2012-05-222015-04-28Pmc-Sierra, Inc.Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9021333B1 (en)2012-05-222015-04-28Pmc-Sierra, Inc.Systems and methods for recovering data from failed portions of a flash drive
US9183085B1 (en)2012-05-222015-11-10Pmc-Sierra, Inc.Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9047214B1 (en)2012-05-222015-06-02Pmc-Sierra, Inc.System and method for tolerating a failed page in a flash device
US9176812B1 (en)2012-05-222015-11-03Pmc-Sierra, Inc.Systems and methods for storing data in page stripes of a flash drive
US8996957B1 (en)2012-05-222015-03-31Pmc-Sierra, Inc.Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9053047B2 (en)2012-08-272015-06-09Apple Inc.Parameter estimation using partial ECC decoding
US10135465B2 (en)2012-11-082018-11-20Micron Technology, Inc.Error correction methods and apparatuses using first and second decoders
US9577673B2 (en)2012-11-082017-02-21Micron Technology, Inc.Error correction methods and apparatuses using first and second decoders
US10193577B2 (en)2012-12-072019-01-29Micron Technology, Inc.Stopping criteria for layered iterative error correction
US9116822B2 (en)2012-12-072015-08-25Micron Technology, Inc.Stopping criteria for layered iterative error correction
US11405058B2 (en)2012-12-072022-08-02Micron Technology, Inc.Stopping criteria for layered iterative error correction
US10998923B2 (en)2012-12-072021-05-04Micron Technology, Inc.Stopping criteria for layered iterative error correction
US9875792B2 (en)2013-01-212018-01-23Micron Technology, Inc.Determining soft data for fractional digit memory cells
US9229848B2 (en)2013-01-212016-01-05Micron Technology, Inc.Determining soft data for fractional digit memory cells
US9391645B2 (en)2013-01-212016-07-12Micron Technology, Inc.Determining soft data using a classification code
US10573377B2 (en)2013-01-212020-02-25Micron Technology, Inc.Determining soft data for fractional digit memory cells
US11170847B2 (en)2013-01-212021-11-09Micron Technology, Inc.Determining soft data for fractional digit memory cells
US9065483B2 (en)2013-01-212015-06-23Micron Technology, Inc.Determining soft data using a classification code
US9053012B1 (en)2013-03-152015-06-09Pmc-Sierra, Inc.Systems and methods for storing data for solid-state memory
US9026867B1 (en)2013-03-152015-05-05Pmc-Sierra, Inc.Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9009565B1 (en)2013-03-152015-04-14Pmc-Sierra, Inc.Systems and methods for mapping for solid-state memory
US9081701B1 (en)2013-03-152015-07-14Pmc-Sierra, Inc.Systems and methods for decoding data for solid-state memory
US9208018B1 (en)2013-03-152015-12-08Pmc-Sierra, Inc.Systems and methods for reclaiming memory for solid-state memory
US9171624B2 (en)2013-12-202015-10-27Apple Inc.Management of data storage in analog memory cells using a non-integer number of bits per cell
US9799397B2 (en)2013-12-202017-10-24Apple Inc.Management of data storage in memory cells using a non-integer number of bits per cell
US9613686B2 (en)2013-12-202017-04-04Apple Inc.Management of data storage in memory cells using a non-integer number of bits per cell
US10108489B2 (en)2015-10-282018-10-23Avago Technologies General Ip (Singapore) Pte. Ltd.Systems and methods for efficient soft data based flash memory data recovery
US10204006B2 (en)2015-10-282019-02-12Avago Technologies International Sales Pte. LimitedSystems and methods for side data based soft data flash memory access
US9740559B2 (en)2015-10-282017-08-22Avago Technologies General Ip (Singapore) Pte. Ltd.Systems and methods for compaction based flash memory data recovery
US10291261B2 (en)2016-04-252019-05-14SK Hynix Inc.Early selection decoding and automatic tuning
US11556416B2 (en)2021-05-052023-01-17Apple Inc.Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en)2021-07-282023-12-19Apple Inc.Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Also Published As

Publication numberPublication date
US20120042225A1 (en)2012-02-16
WO2009009303A3 (en)2009-02-19
US8239725B2 (en)2012-08-07
TW200919481A (en)2009-05-01
US20090013234A1 (en)2009-01-08
WO2009009303A2 (en)2009-01-15

Similar Documents

PublicationPublication DateTitle
US8065583B2 (en)Data storage with an outer block code and a stream-based inner code
US9063875B2 (en)Error recovery storage along a memory string
KR101576102B1 (en)Method for reading data from block of flash memory and associated memory device
US8635510B2 (en)Non-systematic coded error correction
US10536172B2 (en)ECC and raid-type decoding
KR101588605B1 (en)Memory controller supporting rate compatible punctured codes
KR100845529B1 (en) IC controller of flash memory device and memory system including it
US7865809B1 (en)Data error detection and correction in non-volatile memory devices
KR102108386B1 (en)Storage device and data encoding and decoding methods thereof
CN101308706B (en) Data writing method and error correction encoding/decoding method suitable for flash memory
US11204834B1 (en)Implementation of keeping data integrity in multiple dimensions
US12174699B2 (en)Selective decoding for super chip-kill recovery and method of operating such memory system
CN119537085A (en) Control method of memory device and related flash memory controller and memory device
JP2007179480A (en)Memory controller and flash memory system

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:MICRON TECHNOLOGY, INC., IDAHO

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:RADKE, WILLIAM H.;REEL/FRAME:019525/0208

Effective date:20070628

FEPPFee payment procedure

Free format text:PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPPFee payment procedure

Free format text:PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text:PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCFInformation on status: patent grant

Free format text:PATENTED CASE

CCCertificate of correction
FPAYFee payment

Year of fee payment:4

ASAssignment

Owner name:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA

Free format text:SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001

Effective date:20160426

Owner name:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN

Free format text:SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001

Effective date:20160426

ASAssignment

Owner name:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND

Free format text:PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001

Effective date:20160426

Owner name:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL

Free format text:PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001

Effective date:20160426

ASAssignment

Owner name:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA

Free format text:CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001

Effective date:20160426

Owner name:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN

Free format text:CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001

Effective date:20160426

ASAssignment

Owner name:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS

Free format text:SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001

Effective date:20180703

Owner name:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL

Free format text:SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001

Effective date:20180703

ASAssignment

Owner name:MICRON TECHNOLOGY, INC., IDAHO

Free format text:RELEASE BY SECURED PARTY;ASSIGNOR:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT;REEL/FRAME:047243/0001

Effective date:20180629

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:8

ASAssignment

Owner name:MICRON TECHNOLOGY, INC., IDAHO

Free format text:RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:050937/0001

Effective date:20190731

ASAssignment

Owner name:MICRON TECHNOLOGY, INC., IDAHO

Free format text:RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001

Effective date:20190731

Owner name:MICRON SEMICONDUCTOR PRODUCTS, INC., IDAHO

Free format text:RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001

Effective date:20190731

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:12


[8]ページ先頭

©2009-2025 Movatter.jp