US20080148132A1 - Error detection and correction scheme for multi-level cell NAND flash - Google Patents
Error detection and correction scheme for multi-level cell NAND flash Download PDFInfo
- Publication number
- US20080148132A1 US20080148132A1 US11/588,475 US58847506A US2008148132A1 US 20080148132 A1 US20080148132 A1 US 20080148132A1 US 58847506 A US58847506 A US 58847506A US 2008148132 A1 US2008148132 A1 US 2008148132A1
- Authority
- US
- United States
- Prior art keywords
- error correction
- write data
- data
- read
- correction 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
Definitions
- Bit errors are sometimes introduced into stored or transmitted data due to, for example, electrical interference or thermal noise. Error correction methods allow data that is read or transmitted to be checked for errors and, when necessary, corrected.
- Common error correction schemes involve storing redundant information as a code with a unit of data that can be used to determine if errors have been introduced. A new code is calculated as the data is read and compared to the stored code. If the codes are the same, the data does not contain an error. The stored code may be used to reconstruct the data if an error is detected.
- ECC error correcting codes
- BCH Hamming codes
- Reed-Solomon codes One disadvantage of most error correction schemes is that typically only single bit errors can be detected and corrected. Multiple bit errors can be corrected, for example, using BCH and Reed-Solomon codes, but the implementations are complex and costly.
- FIG. 1 illustrates an error detection and correction system according to an embodiment of the present invention.
- FIG. 2 illustrates an error detection and correction flow diagram according to an embodiment of the present invention.
- FIG. 3 illustrates a flash interface system according to an embodiment of the present invention.
- FIG. 4 illustrates error detection and correction logic according to an embodiment of the present invention.
- references to “one embodiment,” “an embodiment,” “example embodiment,” “various embodiments,” etc., indicate that the embodiment(s) of the invention so described may include a particular feature, structure, or characteristic, but not every embodiment necessarily includes the particular feature, structure, or characteristic. Further, repeated use of the phrase “in one embodiment” does not necessarily refer to the same embodiment, although it may.
- processor may refer to any device or portion of a device that processes electronic data from registers and/or memory to transform that electronic data into other electronic data that may be stored in registers and/or memory.
- a “computing platform” may comprise one or more processors.
- an example flash memory system 100 may include a boot read-only memory (ROM) 110 , a host controller 120 , error detection and correction logic 130 , and a flash device 140 .
- the flash memory system 100 may be implemented in an electronic device (not shown).
- the flash memory system 100 may be implemented in a desktop computer, a network server, a laptop computer, a handheld computer, a tablet computer, a cellular telephone (e.g., a smart phone), a pager, an audio and/or video player (e.g., an MP3 player or a DVD player), a gaming device, a digital camera, a navigation device (e.g., a global position system (GPS) device), a medical device (e.g., a heart rate monitor, a blood pressure monitor, etc.), and/or other suitable relatively stationary, mobile, and/or portable electronic devices.
- a navigation device e.g., a global position system (GPS) device
- a medical device e.g., a heart rate monitor, a blood pressure monitor, etc.
- boot ROM 110 While the boot ROM 110 , the host controller 120 , and the error detection and correction logic 130 are depicted as separate blocks, these components may be integrated within a central processing unit (CPU) 150 .
- the CPU 150 may be operatively coupled to the flash device 140 via a flash interface 160 .
- the flash interface 160 may include a bus, and/or a direct link between the boot ROM 110 , the host controller 120 , the error detection and correction logic 130 , and the flash device 140 .
- the boot ROM 110 may provide boot code to the flash device 140 for initializing the flash device 140 .
- the host controller 120 e.g., an application processor
- the host controller 120 may perform a variety of operations for the CPU 150 .
- the host controller 120 may process operations ranging from running an operating system (OS) or an application to invoking the boot ROM 110 .
- OS operating system
- the flash device 140 may include an integrated controller 180 and a flash array 190 .
- the flash array 190 may store data, code, and/or other suitable information.
- Flash array 190 may include multi-level cell technology, where two or more bits of information are stored in a single cell, for example, multi-level cell (MLC) NAND flash arrays. Due to the storage of multiple bits in a single cell, adjacent bit errors are more common than in other types of memories. Thus, error correction codes that can only detect and correct single bit errors used in common approaches do not meet the needs of multi-level cell memories.
- MLC multi-level cell
- FIG. 1 While the components shown in FIG. 1 are depicted as separate blocks, the functions performed by some of these blocks may be integrated within a single semiconductor circuit or may be implemented using two or more separate integrated circuits. The methods and apparatus described herein are not limited in this regard.
- FIG. 2 illustrates an error detection and correction flow diagram according to an embodiment of the present invention.
- an error correction code is generated.
- the data is separated into two or more bit streams wherein adjacent bits are separated, for example, the odd bits and even bits are separated into two different bit streams, block 202 .
- An error correction code is calculated for each bit stream, block 204 .
- the data in its un-separated form is stored in flash device 140 , block 206 .
- the error correction codes may be stored with the data, or in another location.
- the methods and apparatus described herein are not limited in this regard.
- the error correction codes may be stored with adjacent bits separated, for example, such that a code generated from even bits is stored in even bit positions and a code generated from odd bits is stored in odd bit positions.
- the data Upon subsequent reads of the data, the data is again separated into two or more bit streams, block 208 , and an error correction code is calculated for each bit stream, block 210 .
- the code generated upon storing the data is compared to the code generated upon reading the data, block 212 . If the codes match, there is no error. If the codes differ, the read data is corrected, block 214 .
- FIG. 3 illustrates a flash interface system according to an embodiment of the present invention.
- flash interface system 300 includes system bus interface logic 302 to interface to a host system (not shown) and flash interface logic 304 to interface to a flash device (not shown). The host system may read and write to the flash device through flash interface system 300 .
- Flash interface 300 performs error detection and correction for host system data accesses utilizing FIFO 306 and data buffer 308 for buffering data before and after error detection and correction logic 310 .
- Flash interface 300 further includes control and status logic 312 , command buffer 314 and flash interface controller 316 for handling commands, status, and controls for access to the flash device.
- FIG. 4 illustrates error detection and correction logic according to an embodiment of the present invention.
- Error detection and correction logic 310 generates error correction codes for data to be written to a flash device and performs error detection and correction for data read from the flash device. Logic is reused for area savings.
- a multiplexer 402 selects between read data and write data which is then stored in register 404 . The stored data is divided into multiple bit streams separating adjacent bits, for example, dividing even and odd bits into two bit streams.
- Even error correction code generator 406 and odd error code generator 408 generates codes for the even and odd bit streams, respectively. According to one embodiment of the invention, for every 256 bytes in a given data stream a three byte error correction code is generated.
- each error code generator outputs three bytes each, so six bytes of error correction code is generated. If the page size is 2048 bytes, each engine goes through the computation process four times, thus generating four sets of six byte error correction codes each (ECC0-3). Any standard SEC/DED (Single error Correction/Double error detection) algorithm may be used. The error correction codes may be written to a spare area of the flash device.
- error correction codes are generated on the read data using the above mentioned blocks.
- the stored error correction codes are also read from the spare area, and are exclusive-OR'd (XOR'ed) with the computed error correction codes to generate syndromes in syndrome computation logic 412 .
- the computed syndrome represents an error pointer. This pointer is transformed to a 64 bit correction vector by correction vector generator 414 , adjusting for the data currently in the data buffer. The appropriate bits of the correction vector change, depending on the bit error location, during the cycle the read data is output from the data buffer.
- Data correction is performed by XORing the correction vector bit the read data by data correction logic 416 . If there are multiple errors in either of the data streams (even or odd) as indicated by the syndromes, a double bit error status bit is set and no correction is performed.
- controller data width is 16 bits and memory data width is 8 bits, implying that two devices are connected to a single chip select, another set of even and odd error correction code generators may be used.
- calculating error correction codes on separated data ensures that a single cell failure of a multi-level cell flash device can be corrected using an SEC/DED algorithm.
- error detection and correction may support two flash devices on the same chip select.
- the page length of the flash may be configurable so that, for example, 512 byte and 2048 byte page sizes may be supported.
- the techniques described above may be embodied in a computer-readable medium for configuring a computing system to execute the method.
- the computer readable media may include, for example and without limitation, any number of the following: magnetic storage media including disk and tape storage media; optical storage media such as compact disk media (e.g., CD-ROM, CD-R, etc.) and digital video disk storage media; holographic memory; nonvolatile memory storage media including semiconductor-based memory units such as FLASH memory, EEPROM, EPROM, ROM; ferromagnetic digital memories; volatile storage media including registers, buffers or caches, main memory, RAM, etc.; and data transmission media including permanent and intermittent computer networks, point-to-point telecommunication equipment, carrier wave transmission media, the Internet, just to name a few.
- Computing systems may be found in many forms including but not limited to mainframes, minicomputers, servers, workstations, personal computers, notepads, personal digital assistants, various wireless devices and embedded systems, just to name a few.
- a typical computing system includes at least one processing unit, associated memory and a number of input/output (I/O) devices.
- I/O input/output
- a computing system processes information according to a program and produces resultant output information via I/O devices.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
An error detection and correction scheme for multi-level cell memory arrays is disclosed. By separating adjacent bits of data into multiple bit streams, the likelihood of error correction is increased.
Description
- Bit errors are sometimes introduced into stored or transmitted data due to, for example, electrical interference or thermal noise. Error correction methods allow data that is read or transmitted to be checked for errors and, when necessary, corrected.
- Common error correction schemes involve storing redundant information as a code with a unit of data that can be used to determine if errors have been introduced. A new code is calculated as the data is read and compared to the stored code. If the codes are the same, the data does not contain an error. The stored code may be used to reconstruct the data if an error is detected.
- Common error correction schemes include error correcting codes (ECC), Hamming codes, BCH, and Reed-Solomon codes. One disadvantage of most error correction schemes is that typically only single bit errors can be detected and corrected. Multiple bit errors can be corrected, for example, using BCH and Reed-Solomon codes, but the implementations are complex and costly.
- The present invention may be better understood, and its numerous features and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
-
FIG. 1 illustrates an error detection and correction system according to an embodiment of the present invention. -
FIG. 2 illustrates an error detection and correction flow diagram according to an embodiment of the present invention. -
FIG. 3 illustrates a flash interface system according to an embodiment of the present invention. -
FIG. 4 illustrates error detection and correction logic according to an embodiment of the present invention. - The use of the same reference symbols in different drawings indicates similar or identical items.
- In the following description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
- References to “one embodiment,” “an embodiment,” “example embodiment,” “various embodiments,” etc., indicate that the embodiment(s) of the invention so described may include a particular feature, structure, or characteristic, but not every embodiment necessarily includes the particular feature, structure, or characteristic. Further, repeated use of the phrase “in one embodiment” does not necessarily refer to the same embodiment, although it may.
- As used herein, unless otherwise specified the use of the ordinal adjectives “first,” “second,” “third,” etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.
- Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing,” “computing,” “calculating,” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities into other data similarly represented as physical quantities.
- In a similar manner, the term “processor” may refer to any device or portion of a device that processes electronic data from registers and/or memory to transform that electronic data into other electronic data that may be stored in registers and/or memory. A “computing platform” may comprise one or more processors.
- Referring to
FIG. 1 , an exampleflash memory system 100 may include a boot read-only memory (ROM) 110, ahost controller 120, error detection andcorrection logic 130, and aflash device 140. In general, theflash memory system 100 may be implemented in an electronic device (not shown). For example, theflash memory system 100 may be implemented in a desktop computer, a network server, a laptop computer, a handheld computer, a tablet computer, a cellular telephone (e.g., a smart phone), a pager, an audio and/or video player (e.g., an MP3 player or a DVD player), a gaming device, a digital camera, a navigation device (e.g., a global position system (GPS) device), a medical device (e.g., a heart rate monitor, a blood pressure monitor, etc.), and/or other suitable relatively stationary, mobile, and/or portable electronic devices. - While the
boot ROM 110, thehost controller 120, and the error detection andcorrection logic 130 are depicted as separate blocks, these components may be integrated within a central processing unit (CPU) 150. TheCPU 150 may be operatively coupled to theflash device 140 via aflash interface 160. For example, theflash interface 160 may include a bus, and/or a direct link between theboot ROM 110, thehost controller 120, the error detection andcorrection logic 130, and theflash device 140. - In general, the
boot ROM 110 may provide boot code to theflash device 140 for initializing theflash device 140. The host controller 120 (e.g., an application processor) may perform a variety of operations for theCPU 150. For example, thehost controller 120 may process operations ranging from running an operating system (OS) or an application to invoking theboot ROM 110. - The
flash device 140 may include anintegrated controller 180 and aflash array 190. Theflash array 190 may store data, code, and/or other suitable information. Flasharray 190 may include multi-level cell technology, where two or more bits of information are stored in a single cell, for example, multi-level cell (MLC) NAND flash arrays. Due to the storage of multiple bits in a single cell, adjacent bit errors are more common than in other types of memories. Thus, error correction codes that can only detect and correct single bit errors used in common approaches do not meet the needs of multi-level cell memories. - While the components shown in
FIG. 1 are depicted as separate blocks, the functions performed by some of these blocks may be integrated within a single semiconductor circuit or may be implemented using two or more separate integrated circuits. The methods and apparatus described herein are not limited in this regard. -
FIG. 2 illustrates an error detection and correction flow diagram according to an embodiment of the present invention. Before data is written toflash device 140, an error correction code is generated. First, the data is separated into two or more bit streams wherein adjacent bits are separated, for example, the odd bits and even bits are separated into two different bit streams,block 202. An error correction code is calculated for each bit stream,block 204. The data in its un-separated form is stored inflash device 140,block 206. - The error correction codes may be stored with the data, or in another location. The methods and apparatus described herein are not limited in this regard. The error correction codes may be stored with adjacent bits separated, for example, such that a code generated from even bits is stored in even bit positions and a code generated from odd bits is stored in odd bit positions.
- Upon subsequent reads of the data, the data is again separated into two or more bit streams,
block 208, and an error correction code is calculated for each bit stream,block 210. The code generated upon storing the data is compared to the code generated upon reading the data,block 212. If the codes match, there is no error. If the codes differ, the read data is corrected,block 214. -
FIG. 3 illustrates a flash interface system according to an embodiment of the present invention. As illustrated,flash interface system 300 includes systembus interface logic 302 to interface to a host system (not shown) andflash interface logic 304 to interface to a flash device (not shown). The host system may read and write to the flash device throughflash interface system 300. Flashinterface 300 performs error detection and correction for host system data accesses utilizing FIFO 306 anddata buffer 308 for buffering data before and after error detection andcorrection logic 310. Flashinterface 300 further includes control andstatus logic 312,command buffer 314 andflash interface controller 316 for handling commands, status, and controls for access to the flash device. -
FIG. 4 illustrates error detection and correction logic according to an embodiment of the present invention. Error detection andcorrection logic 310 generates error correction codes for data to be written to a flash device and performs error detection and correction for data read from the flash device. Logic is reused for area savings. Amultiplexer 402 selects between read data and write data which is then stored inregister 404. The stored data is divided into multiple bit streams separating adjacent bits, for example, dividing even and odd bits into two bit streams. Even errorcorrection code generator 406 and odderror code generator 408 generates codes for the even and odd bit streams, respectively. According to one embodiment of the invention, for every 256 bytes in a given data stream a three byte error correction code is generated. For example, if the page size is 512 bytes each error code generator outputs three bytes each, so six bytes of error correction code is generated. If the page size is 2048 bytes, each engine goes through the computation process four times, thus generating four sets of six byte error correction codes each (ECC0-3). Any standard SEC/DED (Single error Correction/Double error detection) algorithm may be used. The error correction codes may be written to a spare area of the flash device. - When a page read is performed, error correction codes are generated on the read data using the above mentioned blocks. The stored error correction codes are also read from the spare area, and are exclusive-OR'd (XOR'ed) with the computed error correction codes to generate syndromes in
syndrome computation logic 412. The computed syndrome represents an error pointer. This pointer is transformed to a 64 bit correction vector bycorrection vector generator 414, adjusting for the data currently in the data buffer. The appropriate bits of the correction vector change, depending on the bit error location, during the cycle the read data is output from the data buffer. Data correction is performed by XORing the correction vector bit the read data bydata correction logic 416. If there are multiple errors in either of the data streams (even or odd) as indicated by the syndromes, a double bit error status bit is set and no correction is performed. - According to one embodiment of the present invention, to support a dual mode where controller data width is 16 bits and memory data width is 8 bits, implying that two devices are connected to a single chip select, another set of even and odd error correction code generators may be used.
- According to one embodiment of the present invention, calculating error correction codes on separated data ensures that a single cell failure of a multi-level cell flash device can be corrected using an SEC/DED algorithm.
- According to an embodiment of the present invention, error detection and correction may support two flash devices on the same chip select. The page length of the flash may be configurable so that, for example, 512 byte and 2048 byte page sizes may be supported.
- The techniques described above may be embodied in a computer-readable medium for configuring a computing system to execute the method. The computer readable media may include, for example and without limitation, any number of the following: magnetic storage media including disk and tape storage media; optical storage media such as compact disk media (e.g., CD-ROM, CD-R, etc.) and digital video disk storage media; holographic memory; nonvolatile memory storage media including semiconductor-based memory units such as FLASH memory, EEPROM, EPROM, ROM; ferromagnetic digital memories; volatile storage media including registers, buffers or caches, main memory, RAM, etc.; and data transmission media including permanent and intermittent computer networks, point-to-point telecommunication equipment, carrier wave transmission media, the Internet, just to name a few. Other new and various types of computer-readable media may be used to store and/or transmit the software modules discussed herein. Computing systems may be found in many forms including but not limited to mainframes, minicomputers, servers, workstations, personal computers, notepads, personal digital assistants, various wireless devices and embedded systems, just to name a few. A typical computing system includes at least one processing unit, associated memory and a number of input/output (I/O) devices. A computing system processes information according to a program and produces resultant output information via I/O devices.
- Realizations in accordance with the present invention have been described in the context of particular embodiments. These embodiments are meant to be illustrative and not limiting. Many variations, modifications, additions, and improvements are possible. Accordingly, plural instances may be provided for components described herein as a single instance. Boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of claims that follow. Finally, structures and functionality presented as discrete components in the various configurations may be implemented as a combined structure or component. These and other variations, modifications, additions, and improvements may fall within the scope of the invention as defined in the claims that follow.
Claims (18)
1. A method comprising:
receiving write data;
separating the write data into two or more bit streams, wherein adjacent bits of the write data are separated;
calculating a write error correction code for each of the two or more bit streams;
storing the write data as stored write data; and
storing the write error correction code for each of the two or more bit streams as stored error correction codes.
2. The method as recited in claim 1 , wherein storing the write error correction code for each of the two or more bits streams comprises separating adjacent bits of the write error correction for each of the two or more bits streams in storage.
3. The method as recited in claim 1 , further comprising:
reading the stored write data as read data;
separating the read data into two or more other bit streams; wherein adjacent bits of the read data are separated;
calculating a read error correction code for each of the two or more other bit streams;
comparing the stored error correction codes with the read error correction code for each of the two or more other bit streams; and
correcting the read data if an error is detected.
4. The method as recited in claim 1 , wherein the stored write data is stored in a multi-level cell flash array.
5. The method as recited in claim 1 , wherein separating the write data comprises separating even bits of the write data into a first bit stream and separating odd bits of the write data into a second bit stream.
6. The method as recited in claim 1 , wherein correcting the read data comprises exclusive-ORing the read data with a correction vector.
7. The method as recited in claim 1 , wherein a three byte error correction code is generated for every 256 bytes of write data.
8. An apparatus comprising:
a register to store write data;
two or more error correction code generators to generate error correction codes for the write data, wherein adjacent bits of the write data are sent to a different one of the two or more error correction code generators; and
a memory interface to store the write data and the error correction codes.
9. The apparatus as recited in claim 8 , wherein the memory interface is further configured to separate adjacent bits of the write error correction for each of the two or more bits streams in storage.
10. The apparatus as recited in claim 8 , the memory interface further to read the stored write data as read data, the two or more error correction code generators further to generate read error correction codes for the read data, wherein adjacent bits of the read data are sent to a different one of the two or more error correction code generators; the apparatus further comprising:
comparator logic to compare the error correction codes with the read error correction codes; and
correction logic to correct the read data if an error is detected.
11. The apparatus as recited in claim 8 , wherein the memory interface is configured to store the write data in a multi-level cell flash array.
12. The apparatus as recited in claim 8 , wherein even bits of the write data are sent to a first error correction code generator and the odd bits of the write data are sent to a second error correction code generator.
13. The apparatus as recited in claim 8 , wherein a three byte error correction code is generated for every 256 bytes of write data.
14. A system comprising:
a multi-level cell flash array;
a register to store write data;
two or more error correction code generators to generate error correction codes for the write data, wherein adjacent bits of the write data are sent to a different one of the two or more error correction code generators; and
a memory interface to store the write data in the multi-level cell flash array as stored write data.
15. The system as recited in claim 14 , wherein the memory interface is further configured to separate adjacent bits of error correction codes to be stored in the multi-level cell flash array.
16. The system as recited in claim 14 , the memory interface further to read the stored write data as read data, the two or more error correction code generators further to generate read error correction codes for the read data, wherein adjacent bits of the read data are sent to a different one of the two or more error correction code generators; the apparatus further comprising:
comparator logic to compare the error correction codes with the read error correction codes; and
correction logic to correct the read data if an error is detected.
17. The system as recited in claim 14 , wherein even bits of the write data are sent to a first error correction code generator and the odd bits of the write data are sent to a second error correction code generator.
18. The system as recited in claim 14 , wherein a three byte error correction code is generated for every 256 bytes of write data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/588,475 US20080148132A1 (en) | 2006-10-26 | 2006-10-26 | Error detection and correction scheme for multi-level cell NAND flash |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/588,475 US20080148132A1 (en) | 2006-10-26 | 2006-10-26 | Error detection and correction scheme for multi-level cell NAND flash |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080148132A1 true US20080148132A1 (en) | 2008-06-19 |
Family
ID=39529090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/588,475 Abandoned US20080148132A1 (en) | 2006-10-26 | 2006-10-26 | Error detection and correction scheme for multi-level cell NAND flash |
Country Status (1)
Country | Link |
---|---|
US (1) | US20080148132A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110047442A1 (en) * | 2009-08-18 | 2011-02-24 | Viasat, Inc. | Forward error correction for memories |
US20120185639A1 (en) * | 2011-01-14 | 2012-07-19 | Mstar Semiconductor, Inc. | Electronic device, memory controlling method thereof and associated computer-readable storage medium |
US10191807B2 (en) * | 2016-11-09 | 2019-01-29 | SK Hynix Inc. | Memory systems and operation method thereof |
CN116737446A (en) * | 2023-08-16 | 2023-09-12 | 江苏华存电子科技有限公司 | Storage device high-speed write-in data error correction method based on limited RAM space |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3991278A (en) * | 1975-06-13 | 1976-11-09 | Bell Telephone Laboratories, Incorporated | Line protection switching system |
US4099121A (en) * | 1976-06-11 | 1978-07-04 | Communications Satellite Corporation | Spatial diversity satellite communications system with error control |
US4277844A (en) * | 1979-07-26 | 1981-07-07 | Storage Technology Corporation | Method of detecting and correcting errors in digital data storage systems |
US4365332A (en) * | 1980-11-03 | 1982-12-21 | Fairchild Camera And Instrument Corp. | Method and circuitry for correcting errors in recirculating memories |
US4566105A (en) * | 1982-09-13 | 1986-01-21 | Cii Honeywell Bull (Societe Anonyme) | Coding, detecting or correcting transmission error system |
US5164944A (en) * | 1990-06-08 | 1992-11-17 | Unisys Corporation | Method and apparatus for effecting multiple error correction in a computer memory |
US5263034A (en) * | 1990-10-09 | 1993-11-16 | Bull Information Systems Inc. | Error detection in the basic processing unit of a VLSI central processor |
US5357531A (en) * | 1989-12-27 | 1994-10-18 | Nec Corporation | Multiframe channel parity counter |
US5515529A (en) * | 1994-03-25 | 1996-05-07 | Bull Hn Information Syst | Central processor with duplicate basic processing units employing multiplexed data signals to reduce inter-unit conductor count |
US5917838A (en) * | 1998-01-05 | 1999-06-29 | General Dynamics Information Systems, Inc. | Fault tolerant memory system |
US5930273A (en) * | 1996-04-18 | 1999-07-27 | Oki Electric Industry Co., Ltd. | STM-N signal error correction coding system and method |
US6166950A (en) * | 1996-07-10 | 2000-12-26 | Hitachi, Ltd. | Nonvolatile semiconductor storage device |
US6367046B1 (en) * | 1992-09-23 | 2002-04-02 | International Business Machines Corporation | Multi-bit error correction system |
US6845438B1 (en) * | 1997-08-08 | 2005-01-18 | Kabushiki Kaisha Toshiba | Method for controlling non-volatile semiconductor memory system by using look up table |
-
2006
- 2006-10-26 US US11/588,475 patent/US20080148132A1/en not_active Abandoned
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3991278A (en) * | 1975-06-13 | 1976-11-09 | Bell Telephone Laboratories, Incorporated | Line protection switching system |
US4099121A (en) * | 1976-06-11 | 1978-07-04 | Communications Satellite Corporation | Spatial diversity satellite communications system with error control |
US4277844A (en) * | 1979-07-26 | 1981-07-07 | Storage Technology Corporation | Method of detecting and correcting errors in digital data storage systems |
US4365332A (en) * | 1980-11-03 | 1982-12-21 | Fairchild Camera And Instrument Corp. | Method and circuitry for correcting errors in recirculating memories |
US4566105A (en) * | 1982-09-13 | 1986-01-21 | Cii Honeywell Bull (Societe Anonyme) | Coding, detecting or correcting transmission error system |
US5357531A (en) * | 1989-12-27 | 1994-10-18 | Nec Corporation | Multiframe channel parity counter |
US5164944A (en) * | 1990-06-08 | 1992-11-17 | Unisys Corporation | Method and apparatus for effecting multiple error correction in a computer memory |
US5263034A (en) * | 1990-10-09 | 1993-11-16 | Bull Information Systems Inc. | Error detection in the basic processing unit of a VLSI central processor |
US6367046B1 (en) * | 1992-09-23 | 2002-04-02 | International Business Machines Corporation | Multi-bit error correction system |
US5515529A (en) * | 1994-03-25 | 1996-05-07 | Bull Hn Information Syst | Central processor with duplicate basic processing units employing multiplexed data signals to reduce inter-unit conductor count |
US5930273A (en) * | 1996-04-18 | 1999-07-27 | Oki Electric Industry Co., Ltd. | STM-N signal error correction coding system and method |
US6166950A (en) * | 1996-07-10 | 2000-12-26 | Hitachi, Ltd. | Nonvolatile semiconductor storage device |
US6845438B1 (en) * | 1997-08-08 | 2005-01-18 | Kabushiki Kaisha Toshiba | Method for controlling non-volatile semiconductor memory system by using look up table |
US5917838A (en) * | 1998-01-05 | 1999-06-29 | General Dynamics Information Systems, Inc. | Fault tolerant memory system |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110047442A1 (en) * | 2009-08-18 | 2011-02-24 | Viasat, Inc. | Forward error correction for memories |
US8615700B2 (en) | 2009-08-18 | 2013-12-24 | Viasat, Inc. | Forward error correction with parallel error detection for flash memories |
US20140157089A1 (en) * | 2009-08-18 | 2014-06-05 | Viasat, Inc. | Forward error correction with parallel error detection for flash memories |
US8966347B2 (en) * | 2009-08-18 | 2015-02-24 | Viasat, Inc. | Forward error correction with parallel error detection for flash memories |
US20120185639A1 (en) * | 2011-01-14 | 2012-07-19 | Mstar Semiconductor, Inc. | Electronic device, memory controlling method thereof and associated computer-readable storage medium |
US8656089B2 (en) * | 2011-01-14 | 2014-02-18 | Mstar Semiconductor, Inc. | Electronic device, memory controlling method thereof and associated computer-readable storage medium |
TWI467579B (en) * | 2011-01-14 | 2015-01-01 | Mstar Semiconductor Inc | Electronic device, method for controlling memory thereof and associated computer-readable storage medium |
US10191807B2 (en) * | 2016-11-09 | 2019-01-29 | SK Hynix Inc. | Memory systems and operation method thereof |
CN116737446A (en) * | 2023-08-16 | 2023-09-12 | 江苏华存电子科技有限公司 | Storage device high-speed write-in data error correction method based on limited RAM space |
CN116737446B (en) * | 2023-08-16 | 2023-10-24 | 江苏华存电子科技有限公司 | Storage device high-speed write-in data error correction method based on limited RAM space |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108268340B (en) | Method for correcting errors in memory | |
JP4071940B2 (en) | Shared error correction for memory design | |
KR102190683B1 (en) | Error correction method of memory data | |
US20070268905A1 (en) | Non-volatile memory error correction system and method | |
US7890836B2 (en) | Method and apparatus of cache assisted error detection and correction in memory | |
US8583987B2 (en) | Method and apparatus to perform concurrent read and write memory operations | |
US20120144261A1 (en) | Error checking and correcting circuit, memory system compising error checking and correcting circuit, and related methods of operation | |
US8381085B2 (en) | Semiconductor memory device and data processing method thereof | |
KR20180086816A (en) | Memory device and electronic device performing adaptive error correction with pre-checking error rate and method of operating the memory device | |
US11726665B1 (en) | Memory extension with error correction | |
US20040225944A1 (en) | Systems and methods for processing an error correction code word for storage in memory components | |
US10606690B2 (en) | Memory controller error checking process using internal memory device codes | |
US9189327B2 (en) | Error-correcting code distribution for memory systems | |
US20220035703A1 (en) | Memory system including field programmable gate array (fpga) and method of operating same | |
KR102440705B1 (en) | Progressive Length Error Control Codes | |
US9948322B1 (en) | High performance read-modify-write system providing line-rate merging of dataframe segments in hardware | |
US11409608B2 (en) | Providing host-based error detection capabilities in a remote execution device | |
US20080148132A1 (en) | Error detection and correction scheme for multi-level cell NAND flash | |
CN101634938A (en) | Data migration method and data migration device of solid state disk and solid state disk | |
US9594629B2 (en) | Data error correction from cached error correction information | |
WO2023208231A1 (en) | Memory data reading and writing method and system, and memory controller | |
US7240272B2 (en) | Method and system for correcting errors in a memory device | |
CN116168754A (en) | Error correction code circuit, memory device including the same, and method of operating the same | |
JP2006323434A (en) | Data processor and memory correction method therefor | |
US10740179B2 (en) | Memory and method for operating the memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MAVILA, RAJITH K.;REEL/FRAME:020197/0833 Effective date: 20061024 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |