US20080163030A1 - Nonvolatile memory with error correction for page copy operation and method thereof - Google Patents
Nonvolatile memory with error correction for page copy operation and method thereof Download PDFInfo
- Publication number
- US20080163030A1 US20080163030A1 US11/874,821 US87482107A US2008163030A1 US 20080163030 A1 US20080163030 A1 US 20080163030A1 US 87482107 A US87482107 A US 87482107A US 2008163030 A1 US2008163030 A1 US 2008163030A1
- Authority
- US
- United States
- Prior art keywords
- source data
- buffer
- recited
- page
- bit error
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Definitions
- This disclosure generally relates to nonvolatile flash memories and more specifically, to flash memories for reliable page copy operations with error correcting functions and their methods of operating therein.
- Flash memories are commonly applicable to mass storage subsystems for electronic devices employed in mobile communications, game sets, and so forth. Such subsystems are usually implemented as either removable memory cards that can be inserted into multiple host systems or as non-movable embedded storage within the host systems. In both implementations, the subsystem includes one or more flash devices and often a subsystem controller.
- Flash memories are composed of one or more arrays of transistor cells, each cell capable of non-volatile storage of one or more bits of data. Therefore, flash memories do not require power to retain the data programmed therein. Once programmed however, a cell must be erased before it can be reprogrammed with a new data value.
- These arrays of cells are partitioned into groups to provide for efficient implementation of read, program and erase functions.
- the typical flash memory architecture for mass storage arranges large groups of cells into erasable blocks. Each block is further partitioned into one or more addressable sectors that are the basic unit for read and program functions.
- Flash memories basically have their own functional operations of reading, writing (or programming), and erasing. Flash memories additionally extend their facilities to practice a page copy operation (or a copy-back operation).
- the page copy operation is to transcript data stored in a page assigned to a specific address to another page assigned to another address. During the page copy, data stored in a page of a specific address are transferred to a page buffer and then the data remaining in the page buffer are written into another page assigned to another address by way of a programming process without reading the data out of the flash memory.
- the page copy function eliminates a need of reading-out data to be written and of loading data to be written from the external source of the flash memory, which is advantageous to enhancing systemic data rates associated with the subsystem controller.
- a flash memory controller could be equipped with an error correcting function capable of coping even with the two-bit error per page, it would cause the circuit architecture to be much more complex and thereby deteriorate operational efficiencies in the memory control system.
- Embodiments of the invention address these and other limitations of the prior art.
- Embodiments of the present invention provide a nonvolatile memory capable of maintaining the integrity of data through a page copy operation, and a method thereof. Such a nonvolatile memory is capable of preventing a transcription of error bits during a page copy operation.
- a nonvolatile memory includes a number of pages storing data; a page buffer temporarily storing data by the page; a circuit for correcting a bit error of source data of a specific one of the pages; circuitry configured to provide the source data to the circuit and to provide amended data to the page buffer from the circuit; and a copy circuit configured to copy the source data into the page buffer and to store the amended data into another page from the page buffer.
- the circuit generates new parities from the source data and compares the new parities with the old parities. Additionally, the device includes a circuit for generating column parities for bits composing one byte of the source data; and a circuit for generating line parities for bytes of the source data.
- a nonvolatile memory includes: a data field composed of a number of pages for storing data; a first circuit configured to storing first parities in a predetermined region of the data field, the first parities being generated during a programming operation for the page; a page buffer for temporarily storing data by the page; a second circuit configured to copy source data stored in a specific one of the pages into the page buffer; a third circuit configured to generate second parities from the source data stored in the page buffer; and a fourth circuit configured to transfer amended data of the source data to the page buffer in response to a result of comparing the first parities with the second parities.
- a fifth circuit is further included to store the amended data held in the page buffer into another page of the pages.
- a method of transferring source data of a specific page, the source data containing old parities, to another page in a nonvolatile memory having a page buffer temporarily storing data by the page includes the processes of: storing the source data into the page buffer; generating new parities from the source data stored in the page buffer; comparing the old parities with the new parities; creating modified data of the source data in response to a result of the comparing; and moving the modified data to the another page through the page buffer. From the embodiment, it is available to inform an error status by the comparing result of the outside of the memory.
- a nonvolatile memory includes: a data storage field composed of a number of pages storing data; a page buffer for storing data of a specific one of the pages, being connected to the data storage field; and error correction circuit connected to the page buffer and including: a bit error detector configured to detect an bit error of the data of the specific page; and a bit error corrector configured to amend the bit error.
- the bit error detector includes: a parity generator for creating new parities from the data stored in the page buffer; and a comparator for generating error address information by comparing the new parities with old parities of the data.
- the error address information is referred by the bit error corrector to correct the data and to transfer amend data to the page buffer.
- the modified data are transcribed into the specific page and another page.
- FIG. 1 is a block diagram illustrating a conventional page copy-back feature in a NAND flash memory device.
- FIG. 2 is a block diagram illustrating a page copy-back feature with error correction according to embodiments of the present invention.
- FIG. 3 is a block diagram illustrating an error correction circuit according to embodiments of the present invention.
- FIG. 4 is a circuit diagram illustrating gating circuits for performing data transmission between page buffers and the error correction circuit of FIG. 3 .
- FIG. 5 is a timing diagram of data transmission between the page buffers and the error correction circuit of FIG. 3 .
- FIG. 6 is a table illustrating a procedure of generating column and line parities according to embodiments of the invention.
- FIG. 7 is a circuit diagram illustrating a circuit for generating the column parities shown in FIG. 6 .
- FIG. 8 is a circuit diagram illustrating a circuit for generating the line parities shown in FIG. 6 .
- FIG. 9 is a timing diagram of signals used in data transmission between the page buffers and the error correction circuit.
- a flash memory applicable to the present invention is embodied on a NAND flash memory, adaptable to be embedded in portable electronic devices such as integrated circuit cards, in which a number of memory cells are arranged in the pattern of strings coupled to a plurality of wordlines and bitlines disposed in a matrix of rows and columns.
- a NAND flash memory has a memory cell array divided into a plurality of pages designated by addresses. Each page is formed of a number of memory cells coupled to a wordline and coupled to a plurality of bitlines each by each. The page is a unit of reading and writing.
- a NAND flash memory is designed to carry out functional operations such as erasing to remove data stored in memory cells, programming to write data in memory cells, reading data out of the memory (i.e. a read-out operation), verifying to check out the status of memory cells after completing the erasing and programming, and page-copying to transcript data of a page into another page without a read-out operation.
- a NAND flash memory includes a page buffer circuit for temporally storing data to be read from memory cells or loaded from outside the memory in the operations of programming, reading-out, or page-copying. Also including are buffers and decoders for selecting pages or memory cells with addresses supplied from the outside, sense amplifiers for detecting data values, gate circuitry for transferring data from/to the memory cell array to/from input/output channels, and control circuits for managing the operations therein.
- Embodiments of to the present invention include an error correcting operation associated with the page copy function.
- the term “read-out” is used to identify an operation of reading data out of the memory, i.e. the state that data from memory cells go out of the memory.
- the term “copy” is used to identify an operation of transferring data of a specific page into the page buffer, and “transcription” is used to identify an operation of moving the data held in the page buffer into another page.
- source data is used to identify data to be copied with an error bit, and “modified (or correct or amended) data” is used to identify data to be transcribed without any error bit.
- FIG. 2 illustrates a schematic feature of correcting a bit error during a page copy operation mode according to embodiments of the present invention.
- data stored in, for example, the page PG 4 i.e., the source data
- the page buffer 10 by way of a read operation (this reading is distinguishable from the read-out operation used elsewhere in the present specification), which is referred as the “copy” operation.
- the data stored in the page buffer 10 i.e., the source data of the page PG 4 (hereinafter referred as “source page) are put into an error correction circuit 20 to cure an error bit embedded in the source data before they are written into another page (e.g., PGn ⁇ 3; hereinafter referred to “transcription page”).
- the data modified by the error correction circuit 20 are transferred back into the page buffer 10 and then written into the page PGn ⁇ 3.
- the page PGn ⁇ 3 is rendered to be free from the error bit embedded in the source data, preventing from the transcription of an error bit by the source data.
- FIG. 3 illustrates a functional structure for conducting the error correction during the page copy operation.
- a comparator 50 compares old parities OP, which have been created during the former programming (or writing) cycle and stored in a predetermined field of the memory, with new parities NP that are generated by a parity generator 40 during the copy operation.
- the new parities NP are parity data to be used to correct a bit error, i.e., a progressive bit error generated during the page copy operation with the source data.
- the old and new parities, OP and NP are generated by the same manner.
- an information signal Ae of the page address involved in the progressive bit error is generated from the comparator 50 .
- the erroneous address information signal Ae is applied to an error correction logic circuit 60 to cure the bit error.
- the amended data Dc from the error correction logic circuit 60 are transferred to the page buffer 10 together with control signals CNT therefrom. More details about the parity generation and comparison is described hereinbelow.
- FIG. 4 is a circuit diagram of latching and column-decoding blocks LDB 0 ⁇ LDBm ⁇ 1, being disposed between the page buffering and sensing logic block 12 (included in the page buffer 10 ) and input/output lines I/O 0 ⁇ I/On ⁇ 1, for transferring the source and correct data.
- the source data of the source page e.g., PG 4
- the latching and column-decoding blocks LDB 0 ⁇ LDBm ⁇ 1 each corresponding to the input/output lines I/O 0 ⁇ I/On ⁇ 1.
- the latching and column-decoding blocks LDB 0 ⁇ LDBm ⁇ 1 also transfers the amended data Dc provided from the error correction circuit 20 to the transcript page (e.g., PGn ⁇ 1) through the page buffering and sensing block 12 .
- the source data De of the source page PG 4 are read by the page buffering and sensing block 12 and stored in latches LCH 0 ⁇ LCHn ⁇ 1 each corresponding to the bitlines BL 0 ⁇ BLn ⁇ 1.
- the source data staying at the latches LCH 0 ⁇ LCHn ⁇ 1 are transferred to the input/output lines I/O 0 ⁇ I/On ⁇ 1 through column gates (or Y-gates) AG 0 ⁇ AGn ⁇ 1 and BG 0 ⁇ BGk ⁇ 1 in response to column gating signals YA 0 ⁇ YAn ⁇ 1 (primary) and YB 0 ⁇ YBk ⁇ 1 (secondary) by a unit of bit sequentially, as shown in FIG.
- error-data out a source data bit corresponding to the bitline BL 0 is transferred to the error correction circuit 20 through the input/output line I/O 0 when both of the column gating signals YA 0 and YB 0 are active with high levels.
- the amended data Dc are transferred through the input/output lines I/O 0 ⁇ I/On ⁇ 1 from the error correction circuit 20 to the latches LCH 0 ⁇ LCHn ⁇ 1 each coupled to the bitlines BL 0 ⁇ BLn ⁇ 1, which may be referred to as “amended-data in” as an operational state.
- an amended data bit corresponding to the bitline BL 0 is transferred to the page buffer 10 (i.e., the page buffering and sensing block 12 ) through the input/output line I/O 0 when both of the column gating signals YA 0 and YB 0 are active with high levels.
- the amended data Dc temporarily stored in the latches are written into the transcript page PGn ⁇ 1 by way of a programming process.
- FIG. 6 shows a practical fashion of generating the new parities NP according to embodiments of the present invention.
- the old parities OP are previously stored in a predetermined field of the memory, which were made in a former programming operation.
- Known techniques for generating parities are briefly divided into two ways: one is a serial way and the other is a parallel way.
- Embodiments of the present invention employs the serial way in order to save a topological circuit area, but either embodiment is acceptable.
- the source data De from which the parities are established is composed of 8-bits by 512-bytes
- the parities are classified into column parities and line parities.
- the column parities are obtained from the 8 bits of one byte, while the line parities from the 512 bytes.
- the column and line parities can be made in the circuits shown in FIGS. 7 and 8 respectively, both circuits being included in the parity generator 40 shown in FIG. 4 .
- the generation of the column and line parities is accomplished by conducting exclusive-OR (XOR) logic chains with binary combinations to obtain a bit error from the packages of bits or bytes.
- XOR exclusive-OR
- nCP 1 b 6* b 4* b 2* b 0
- nCP 2 b 5* b 4* b 1* b 0
- nCP 4 b 3* b 2* b 1* b 0
- each column parity is associated with four XOR gates XR and one flipflop FF. Each input/output line corresponds to each data bit.
- the column parity nCP 4 is generated from a flipflop FF 6 receiving an output of an XOR gate XR 19 .
- the gate XR 19 receives an output of an XOR gate XR 13 and the column parity nCP 4 fed-back thereto from the flipflop FF 6 .
- the gate XR 13 receives outputs of XOR gates XR 1 and XR 2 .
- the input/output lines I/O 2 and I/O 3 are coupled to inputs of the gate XR 2 , while the input/output lines I/O 0 and I/O 1 to inputs of the gate XR 1 .
- the column parity CP 4 complementary to the nCP 4 is generated from a flipflop FF 5 receiving an output of an XOR gate XR 20 .
- the gate XR 20 receives an output of an XOR gate XR 14 and the column parity CP 4 fed-back thereto from the flipflop FF 5 .
- the gate XRl 4 receives outputs of XOR gates XR 3 and XR 4 .
- the input/output lines I/O 4 and I/O 5 are coupled to inputs of the gate XR 3 , while the input/output lines I/O 6 and I/O 7 to inputs of the gate XR 4 .
- the column parity nCP 2 is generated from a flipflop FF 4 receiving an output of an XOR gate XR 21 .
- the gate XR 21 receives an output of an XOR gate XR 15 and the column parity nCP 2 fed-back thereto from the flipflop FF 4 .
- the gate XR 15 receives outputs of XOR gates XR 5 and XR 6 .
- the input/output lines I/O 0 and I/O 1 are coupled to inputs of the gate XR 5 , while the input/output lines I/O 4 and I/O 5 to inputs of the gate XR 6 .
- the column parity CP 2 complementary to the nCP 2 is generated from a flipflop FF 3 receiving an output of an XOR gate XR 22 .
- the gate XR 22 receives an output of an XOR gate XR 16 and the column parity CP 2 fed-back thereto from the flipflop FF 3 .
- the gate XR 16 receives outputs of XOR gates XR 7 and XR 8 .
- the input/output lines I/O 2 and I/O 3 are coupled to an input of the gate XR 7 , while the input/output lines I/O 6 and I/O 7 to an input of the gate XR 8 .
- the column parity nCP 1 is generated from a flipflop FF 2 receiving an output of an XOR gate XR 23 .
- the gate XR 23 receives an output of an XOR gate XR 17 and the column parity nCP 1 fed-back thereto from the flipflop FF 2 .
- the gate XR 17 receives outputs of XOR gates XR 9 and XR 10 .
- the input/output lines I/O 0 and I/O 2 are coupled to inputs of the gate XR 9 , while the input/output lines I/O 4 and I/O 6 to inputs of the gate XR 10 .
- the column parity CP 1 complementary to the nCP 2 is generated from a flipflop FF 1 receiving an output of an XOR gate XR 24 .
- the gate XR 24 receives an output of an XOR gate XR 18 and the column parity CP 1 fed-back thereto from the flipflop FF 1 .
- the gate XR 18 receives outputs of XOR gates XR 11 and XR 12 .
- the input/output lines I/O 1 and I/O 3 are coupled to an input of the gate XR 11 , while the input/output lines I/O 5 and I/O 7 to an input of the gate XR 12 .
- a clock signal CLK and a reset signal RST are applied to the flipflops FF 1 ⁇ FF 6 in common.
- the flipflops FF 1 ⁇ FF 6 outputs the column parities in response to rising edges of every cycle of the clock signal CLK.
- the feedback input of each column parity to the XOR gate positioned before its corresponding flipflop is directed to detect the variation between a current bit and the next bit in the source data (i.e., to detect a progressive bit error during the page copy operation) and then to manage it with the serial way of parity generation.
- the column parities CP 1 , CP 2 and nCP 4 will be set to “1”, provided the bit b 3 is an error bit.
- Table 2 arranges byte combinations for XOR arithmetic implements in order to obtain the line parities LP 1 , nLP 1 , LP 2 , nLP 2 , LP 4 , nLP 4 ., LP 512 , and nLP 512 (LP 1 ⁇ nLP 512 ; 18 bits) against the 512 bytes of the source data.
- nLP 2 ⁇ B 511 * ⁇ B 509 * . . . * ⁇ B 255 * ⁇ B 253 * . . . * ⁇ B 3 * ⁇ B 1
- nLP 2 ⁇ B 510 * ⁇ B 509 * . . . * ⁇ B 254 * ⁇ B 253 * . . . * ⁇ B 2* ⁇ B 1
- LP 4 ⁇ B 512 * ⁇ B 511 * ⁇ B 510 * ⁇ B 509 * . . . * ⁇ B 256 * ⁇ B 255 * ⁇ B 254 * ⁇ B 253 * ⁇ B 254 * ⁇ B 253 * . . . * ⁇ B 8 * ⁇ B 7 * ⁇ B 6 * ⁇ B 5
- nLP 4 ⁇ B 508 * ⁇ B 507 * ⁇ B 506 * ⁇ B 505 * . . . * ⁇ B 252 * ⁇ B 251 * ⁇ B 250 * ⁇ B 249 * . . . * ⁇ B 4 * ⁇ B 3 * ⁇ B 2 * ⁇ B 1
- LP 512 ⁇ B 512 * ⁇ B 511 * ⁇ B 510 * ⁇ B 509 * . . . * ⁇ B 260 * ⁇ B 259 * ⁇ B 258 * ⁇ B 257
- nLP 512 ⁇ B 256 * ⁇ B 255 * ⁇ B 254 * ⁇ B 253 * . . . * ⁇ B 4 * ⁇ B 3 * ⁇ B 2 * ⁇ B 1
- the byte parity unit ⁇ B for each byte is first obtained through XOR gates XR 31 ⁇ XR 37 .
- the byte parity unit ⁇ B is generated from the gate XR 37 .
- the gate XR 37 receives outputs of the gates XR 35 and XR 36 .
- the gate XR 35 receives outputs of the gates XR 31 and XR 32
- the gate XR 36 receives outputs of the gates XR 33 and XR 34 .
- Inputs of the gate XR 31 are coupled to the input/output lines I/O 0 and I/O 1
- inputs of the gate XR 32 are coupled to the input/output lines I/O 2 and I/O 3
- Inputs of the gate XR 33 are coupled to the input/output lines I/O 4 and I/O 5
- inputs of the gate XR 34 are coupled to the input/output lines I/O 6 and I/O 7 .
- the output of the gate XR 37 , ⁇ B is branched into 18 ways to establish the 18 line parities LP 1 ⁇ mLP 512 , being applied to inputs of NAND gates ND 1 ⁇ ND 18 in common. If there is an error bit among the eight bits of their corresponding byte, the byte parity unit ⁇ B is set to “1”.
- the NAND gates ND 1 ⁇ ND 18 respond each to clock control signals nCLK 1 , CLK 1 , nCLK 2 , CLK 2 , . . . , nCLK 512 , and CLK 512 (nCLK 1 ⁇ CLK 512 ; 18 ea) to control bit paths from the byte parity unit ⁇ B to the line parities.
- Outputs of the NAND gates ND 1 ⁇ ND 18 are applied to inputs of XOR gates XR 1 ⁇ XR 18 respectively.
- the gates XR 1 ⁇ XR 18 also receive the line parities nLP 1 ⁇ LP 18 fed-back thereto from flipflops FF 1 ⁇ FF 18 receiving outputs of the gates XR 1 XR 18 , respectively.
- the flipflops FF 1 ⁇ FF 18 outputs the line parities in response to rising edges of every cycle of the clock signal CLK.
- the feedback input of each column parity to the XOR gate positioned before its corresponding flipflop is directed to detect the variation between a current bit and the next bit in the source data (i.e., to detect a progressive bit error during the page copy operation) and then to manage it with the serial way of line parity generation.
- the line parities NLP 1 , LP 2 , nLP 4 , . . . , nLP 512 will be set to “1”.
- the timing diagram of FIG. 9 shows pulsing states of the column gating signals and clock control signals for transferring the source data from the page buffer 10 to the error correction circuit 20 , associated with the operations in the circuits of FIGS. 4 through 8 .
- the transmission procedure shown in FIG. 9 is exemplarily carried out by way of the latching and column-decoding block LDB 1 shown in FIG. 4 .
- the flipflops FF 1 ⁇ FF 6 of the column parity generator shown in FIG. 7 output the column parities CP 1 ⁇ nCP 4 .
- the clock control signals CLK 1 ⁇ nCLK 512 demultiplied from the clock signal CLK enable the bit paths to be conductive through the NAND gates ND 1 ⁇ ND 18 of the line parity generator shown in FIG. 8 , and the flipflops FF 1 ⁇ FF 18 of the line parity generator outputs the line parities LP 1 ⁇ nLP 512 of 18 bits.
- the bit number of the new parities NP is 24 that is composed of the eight column parities CP 1 ⁇ nCP 4 and the eighteen line parities LP 1 ⁇ mLP 512 , which is the same with the old parities OP that have been stored in a predetermined field of the flash memory.
- the old parities OP are generated and stored in a predetermined field of the memory during a programming period.
- the new parities NP are generated by the circuits and procedure aforementioned as shown in FIGS. 6 through 8 .
- the old and new parities are compared from each other by 24 bits.
- the parity comparator 50 In comparing the old parities OP with the new parities NP by the parity comparator 50 , if all 24 bits of the old and new parities are identical (i.e., the XOR operations with the old and new parities result in “0”), it is regarded as no error bit. On the other hand, it is regarded as one-bit error when the comparison result is “1” for 12 bits (a half of the 24 bits) between the old and new parities. Such a one-bit error is cured by the correction logic circuit 60 . Otherwise, only a comparison result for one bit among the 24 bits becomes “1”, it is regarded as a single error that has been already contained in the source data of the page to be copied. Other case except the former cases of comparison results may be regarded as there are more than two error bits.
- bit error conditions may be available to be identified by a user in response to a command. Further, it may be practicable to transcribe the amended data into the source page as well as the transcription page.
- the error correction circuit may be embedded in the flash memory according to embodiments of the present invention.
- the flash memory according to present invention efficiently eliminates a progressive bit error that could occur during a page copy operation.
- the page buffer which is basically employed in a normal flash memory, is efficiently usable to assist the operation without additional modifications.
Abstract
The disclosure is a NAND flash memory with the function of error checking and correction during a page copy operation. The NAND flash memory is able to prohibit transcription of erroneous bits to a duplicate page from a source page. Embodiments of the inventive flash memory include a correction circuit for correcting bit errors of source data stored in a page buffer, a circuit configured to provide the source data to the correction circuit and to provide correction data to the page buffer, and a copy circuit configured to copy the source data to the page buffer, and to store the correction data in the other page from the page buffer.
Description
- This application is a Continuation of U.S. patent application Ser. No. 10/817,061, filed Apr. 2, 2004, now pending, which claims priority from Korean Patent Application No. 2003-21114, filed Apr. 3, 2003, the contents of which are herein incorporated by reference in their entirety.
- This disclosure generally relates to nonvolatile flash memories and more specifically, to flash memories for reliable page copy operations with error correcting functions and their methods of operating therein.
- Flash memories are commonly applicable to mass storage subsystems for electronic devices employed in mobile communications, game sets, and so forth. Such subsystems are usually implemented as either removable memory cards that can be inserted into multiple host systems or as non-movable embedded storage within the host systems. In both implementations, the subsystem includes one or more flash devices and often a subsystem controller.
- Flash memories are composed of one or more arrays of transistor cells, each cell capable of non-volatile storage of one or more bits of data. Therefore, flash memories do not require power to retain the data programmed therein. Once programmed however, a cell must be erased before it can be reprogrammed with a new data value. These arrays of cells are partitioned into groups to provide for efficient implementation of read, program and erase functions. The typical flash memory architecture for mass storage arranges large groups of cells into erasable blocks. Each block is further partitioned into one or more addressable sectors that are the basic unit for read and program functions.
- Flash memories basically have their own functional operations of reading, writing (or programming), and erasing. Flash memories additionally extend their facilities to practice a page copy operation (or a copy-back operation). The page copy operation is to transcript data stored in a page assigned to a specific address to another page assigned to another address. During the page copy, data stored in a page of a specific address are transferred to a page buffer and then the data remaining in the page buffer are written into another page assigned to another address by way of a programming process without reading the data out of the flash memory. The page copy function eliminates a need of reading-out data to be written and of loading data to be written from the external source of the flash memory, which is advantageous to enhancing systemic data rates associated with the subsystem controller.
- However, unfortunately, it may occur that the pages to be copied and to be written have their own error bits. As shown in
FIG. 1 , assuming that a page PG4 is to be copied and a page PGn−3 is to be written, both pages each having one error bit, the data stored in the page PG4 is transferred to thepage buffer 10 and then written into the page PGn−3 from thepage buffer 10. As a result of the page copy operation, two error bits are included in the page PGn−3. Because most flash memory controllers used as subsystem controllers in a card-type memory are usually only designed to correct one-bit error for a page, such a two-bit error in a page may be incapable of being cured after completing the copy back operation. - Although a flash memory controller could be equipped with an error correcting function capable of coping even with the two-bit error per page, it would cause the circuit architecture to be much more complex and thereby deteriorate operational efficiencies in the memory control system.
- Embodiments of the invention address these and other limitations of the prior art.
- Embodiments of the present invention provide a nonvolatile memory capable of maintaining the integrity of data through a page copy operation, and a method thereof. Such a nonvolatile memory is capable of preventing a transcription of error bits during a page copy operation.
- According to an aspect of the present invention, a nonvolatile memory includes a number of pages storing data; a page buffer temporarily storing data by the page; a circuit for correcting a bit error of source data of a specific one of the pages; circuitry configured to provide the source data to the circuit and to provide amended data to the page buffer from the circuit; and a copy circuit configured to copy the source data into the page buffer and to store the amended data into another page from the page buffer.
- The circuit generates new parities from the source data and compares the new parities with the old parities. Additionally, the device includes a circuit for generating column parities for bits composing one byte of the source data; and a circuit for generating line parities for bytes of the source data.
- In the embodiment, a nonvolatile memory includes: a data field composed of a number of pages for storing data; a first circuit configured to storing first parities in a predetermined region of the data field, the first parities being generated during a programming operation for the page; a page buffer for temporarily storing data by the page; a second circuit configured to copy source data stored in a specific one of the pages into the page buffer; a third circuit configured to generate second parities from the source data stored in the page buffer; and a fourth circuit configured to transfer amended data of the source data to the page buffer in response to a result of comparing the first parities with the second parities. A fifth circuit is further included to store the amended data held in the page buffer into another page of the pages.
- In the embodiment, a method of transferring source data of a specific page, the source data containing old parities, to another page in a nonvolatile memory having a page buffer temporarily storing data by the page, includes the processes of: storing the source data into the page buffer; generating new parities from the source data stored in the page buffer; comparing the old parities with the new parities; creating modified data of the source data in response to a result of the comparing; and moving the modified data to the another page through the page buffer. From the embodiment, it is available to inform an error status by the comparing result of the outside of the memory.
- In this embodiment, a nonvolatile memory includes: a data storage field composed of a number of pages storing data; a page buffer for storing data of a specific one of the pages, being connected to the data storage field; and error correction circuit connected to the page buffer and including: a bit error detector configured to detect an bit error of the data of the specific page; and a bit error corrector configured to amend the bit error. The bit error detector includes: a parity generator for creating new parities from the data stored in the page buffer; and a comparator for generating error address information by comparing the new parities with old parities of the data.
- The error address information is referred by the bit error corrector to correct the data and to transfer amend data to the page buffer. The modified data are transcribed into the specific page and another page.
- The present invention will be better understood from the following detailed description of the exemplary embodiment thereof taken in conjunction with the accompanying drawings.
- The forgoing and other features and advantages of the invention will be apparent from the more particular description of a preferred embodiment of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention:
-
FIG. 1 is a block diagram illustrating a conventional page copy-back feature in a NAND flash memory device. -
FIG. 2 is a block diagram illustrating a page copy-back feature with error correction according to embodiments of the present invention. -
FIG. 3 is a block diagram illustrating an error correction circuit according to embodiments of the present invention. -
FIG. 4 is a circuit diagram illustrating gating circuits for performing data transmission between page buffers and the error correction circuit ofFIG. 3 . -
FIG. 5 is a timing diagram of data transmission between the page buffers and the error correction circuit ofFIG. 3 . -
FIG. 6 is a table illustrating a procedure of generating column and line parities according to embodiments of the invention. -
FIG. 7 is a circuit diagram illustrating a circuit for generating the column parities shown inFIG. 6 . -
FIG. 8 is a circuit diagram illustrating a circuit for generating the line parities shown inFIG. 6 . -
FIG. 9 is a timing diagram of signals used in data transmission between the page buffers and the error correction circuit. - It should be understood that the description of the preferred embodiment is merely illustrative and that it should not be taken in a limiting sense. In the following detailed description, several specific details are set forth in order to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art that the present invention may be practiced without these specific details.
- A flash memory applicable to the present invention is embodied on a NAND flash memory, adaptable to be embedded in portable electronic devices such as integrated circuit cards, in which a number of memory cells are arranged in the pattern of strings coupled to a plurality of wordlines and bitlines disposed in a matrix of rows and columns.
- A NAND flash memory according to embodiments of the present invention has a memory cell array divided into a plurality of pages designated by addresses. Each page is formed of a number of memory cells coupled to a wordline and coupled to a plurality of bitlines each by each. The page is a unit of reading and writing.
- A NAND flash memory according to embodiments of the present invention is designed to carry out functional operations such as erasing to remove data stored in memory cells, programming to write data in memory cells, reading data out of the memory (i.e. a read-out operation), verifying to check out the status of memory cells after completing the erasing and programming, and page-copying to transcript data of a page into another page without a read-out operation.
- A NAND flash memory according to embodiments of the present invention includes a page buffer circuit for temporally storing data to be read from memory cells or loaded from outside the memory in the operations of programming, reading-out, or page-copying. Also including are buffers and decoders for selecting pages or memory cells with addresses supplied from the outside, sense amplifiers for detecting data values, gate circuitry for transferring data from/to the memory cell array to/from input/output channels, and control circuits for managing the operations therein.
- Embodiments of to the present invention include an error correcting operation associated with the page copy function.
- In this embodiment, the term “read-out” is used to identify an operation of reading data out of the memory, i.e. the state that data from memory cells go out of the memory. The term “copy” is used to identify an operation of transferring data of a specific page into the page buffer, and “transcription” is used to identify an operation of moving the data held in the page buffer into another page. Further, “source data” is used to identify data to be copied with an error bit, and “modified (or correct or amended) data” is used to identify data to be transcribed without any error bit.
- Now, practical embodiments of the invention will be explained in conjunction with the drawings
FIGS. 2 through 9 . -
FIG. 2 illustrates a schematic feature of correcting a bit error during a page copy operation mode according to embodiments of the present invention. First, data stored in, for example, the page PG4, i.e., the source data, are loaded into thepage buffer 10 by way of a read operation (this reading is distinguishable from the read-out operation used elsewhere in the present specification), which is referred as the “copy” operation. The data stored in thepage buffer 10, i.e., the source data of the page PG4 (hereinafter referred as “source page), are put into anerror correction circuit 20 to cure an error bit embedded in the source data before they are written into another page (e.g., PGn−3; hereinafter referred to “transcription page”). The data modified by theerror correction circuit 20 are transferred back into thepage buffer 10 and then written into the page PGn−3. As a result, the page PGn−3 is rendered to be free from the error bit embedded in the source data, preventing from the transcription of an error bit by the source data. - Even if the page PGn−4 to be transcribed has its own error bit, a known function of error correcting may cure the single bit error thereof. More details about the error correcting procedure during the page copy operation will be described hereinbelow.
-
FIG. 3 illustrates a functional structure for conducting the error correction during the page copy operation. Referring toFIG. 3 , once the source data De temporally stored in thepage buffer 10 are provided to theerror correction circuit 20, acomparator 50 compares old parities OP, which have been created during the former programming (or writing) cycle and stored in a predetermined field of the memory, with new parities NP that are generated by aparity generator 40 during the copy operation. The new parities NP are parity data to be used to correct a bit error, i.e., a progressive bit error generated during the page copy operation with the source data. The old and new parities, OP and NP, are generated by the same manner. After comparing the old parities OP with the new parities NP, an information signal Ae of the page address involved in the progressive bit error is generated from thecomparator 50. The erroneous address information signal Ae is applied to an errorcorrection logic circuit 60 to cure the bit error. The amended data Dc from the errorcorrection logic circuit 60 are transferred to thepage buffer 10 together with control signals CNT therefrom. More details about the parity generation and comparison is described hereinbelow. -
FIG. 4 is a circuit diagram of latching and column-decoding blocks LDB0˜LDBm−1, being disposed between the page buffering and sensing logic block 12 (included in the page buffer 10) and input/output lines I/O0˜I/On−1, for transferring the source and correct data. Referring toFIG. 4 , the source data of the source page (e.g., PG4) assigned to a specific address are transferred to theerror correction circuit 20 from the page buffering andsensing block 12 through the latching and column-decoding blocks LDB0˜LDBm−1 each corresponding to the input/output lines I/O0˜I/On−1. The latching and column-decoding blocks LDB0˜LDBm−1 also transfers the amended data Dc provided from theerror correction circuit 20 to the transcript page (e.g., PGn−1) through the page buffering andsensing block 12. - The source data De of the source page PG4 are read by the page buffering and
sensing block 12 and stored in latches LCH0˜LCHn−1 each corresponding to the bitlines BL0˜BLn−1. The source data staying at the latches LCH0˜LCHn−1 are transferred to the input/output lines I/O0˜I/On˜1 through column gates (or Y-gates) AG0˜AGn−1 and BG0˜BGk−1 in response to column gating signals YA0˜YAn−1 (primary) and YB0˜YBk−1 (secondary) by a unit of bit sequentially, as shown inFIG. 5 , which may be referred to as “error-data out” as an operational state. For instance, a source data bit corresponding to the bitline BL0 is transferred to theerror correction circuit 20 through the input/output line I/O0 when both of the column gating signals YA0 and YB0 are active with high levels. - The amended data Dc are transferred through the input/output lines I/O0˜I/On−1 from the
error correction circuit 20 to the latches LCH0˜LCHn−1 each coupled to the bitlines BL0˜BLn−1, which may be referred to as “amended-data in” as an operational state. For instance, an amended data bit corresponding to the bitline BL0 is transferred to the page buffer 10 (i.e., the page buffering and sensing block 12) through the input/output line I/O0 when both of the column gating signals YA0 and YB0 are active with high levels. The amended data Dc temporarily stored in the latches are written into the transcript page PGn−1 by way of a programming process. -
FIG. 6 shows a practical fashion of generating the new parities NP according to embodiments of the present invention. The old parities OP are previously stored in a predetermined field of the memory, which were made in a former programming operation. Known techniques for generating parities are briefly divided into two ways: one is a serial way and the other is a parallel way. Embodiments of the present invention employs the serial way in order to save a topological circuit area, but either embodiment is acceptable. - Illustrating that the source data De from which the parities are established is composed of 8-bits by 512-bytes, the parities are classified into column parities and line parities. The column parities are obtained from the 8 bits of one byte, while the line parities from the 512 bytes.
- The column and line parities can be made in the circuits shown in
FIGS. 7 and 8 respectively, both circuits being included in theparity generator 40 shown inFIG. 4 . The generation of the column and line parities is accomplished by conducting exclusive-OR (XOR) logic chains with binary combinations to obtain a bit error from the packages of bits or bytes. - Now will be described about creating the column parities from the eight bits b0˜b7 with reference to
FIGS. 6 and 7 and Table 1 following. -
TABLE 1 Arithmetic Combination Column Parity b7 b6 b5 b4 b3 b2 b1 b0 CP1 * * * * nCP1 * * * * CP2 * * * * nCP2 * * * * CP4 * * * * nCP4 * * * *
The letter “*” represents the XOR operator to obtain the comparison result from the relevant bit combination. Therefore, complete arithmetic equations of the XOR logic are summarized as follows each for the column parities of six bits. -
CP1=b7*b5*b3*b1 -
nCP1=b6*b4*b2*b0 -
CP2=b7*b6*b3*b2 -
nCP2=b5*b4*b1*b0 -
CP4=b7*b6*b5*b4 -
nCP4=b3*b2*b1*b0 - Referring to
FIG. 7 , implementing the arithmetic combinations to generate each column parity is associated with four XOR gates XR and one flipflop FF. Each input/output line corresponds to each data bit. The column parity nCP4 is generated from a flipflop FF6 receiving an output of an XOR gate XR19. The gate XR19 receives an output of an XOR gate XR13 and the column parity nCP4 fed-back thereto from the flipflop FF6. The gate XR13 receives outputs of XOR gates XR1 and XR2. The input/output lines I/O2 and I/O3 are coupled to inputs of the gate XR2, while the input/output lines I/O0 and I/O1 to inputs of the gate XR1. The column parity CP4 complementary to the nCP4 is generated from a flipflop FF5 receiving an output of an XOR gate XR20. The gate XR20 receives an output of an XOR gate XR14 and the column parity CP4 fed-back thereto from the flipflop FF5. The gate XRl4 receives outputs of XOR gates XR3 and XR4. The input/output lines I/O4 and I/O5 are coupled to inputs of the gate XR3, while the input/output lines I/O6 and I/O7 to inputs of the gate XR4. - The column parity nCP2 is generated from a flipflop FF4 receiving an output of an XOR gate XR21. The gate XR21 receives an output of an XOR gate XR15 and the column parity nCP2 fed-back thereto from the flipflop FF4. The gate XR15 receives outputs of XOR gates XR5 and XR6. The input/output lines I/O0 and I/O1 are coupled to inputs of the gate XR5, while the input/output lines I/O4 and I/O5 to inputs of the gate XR6. The column parity CP2 complementary to the nCP2 is generated from a flipflop FF3 receiving an output of an XOR gate XR22. The gate XR22 receives an output of an XOR gate XR16 and the column parity CP2 fed-back thereto from the flipflop FF3. The gate XR16 receives outputs of XOR gates XR7 and XR8. The input/output lines I/O2 and I/O3 are coupled to an input of the gate XR7, while the input/output lines I/O6 and I/O7 to an input of the gate XR8.
- The column parity nCP1 is generated from a flipflop FF2 receiving an output of an XOR gate XR23. The gate XR23 receives an output of an XOR gate XR17 and the column parity nCP1 fed-back thereto from the flipflop FF2. The gate XR17 receives outputs of XOR gates XR9 and XR10. The input/output lines I/O0 and I/O2 are coupled to inputs of the gate XR9, while the input/output lines I/O4 and I/O6 to inputs of the gate XR10. The column parity CP1 complementary to the nCP2 is generated from a flipflop FF1 receiving an output of an XOR gate XR24. The gate XR24 receives an output of an XOR gate XR18 and the column parity CP1 fed-back thereto from the flipflop FF1. The gate XR18 receives outputs of XOR gates XR11 and XR12. The input/output lines I/O1 and I/O3 are coupled to an input of the gate XR11, while the input/output lines I/O5 and I/O7 to an input of the gate XR12.
- A clock signal CLK and a reset signal RST are applied to the flipflops FF1˜FF6 in common. Thus, the flipflops FF1˜FF6 outputs the column parities in response to rising edges of every cycle of the clock signal CLK. The feedback input of each column parity to the XOR gate positioned before its corresponding flipflop (e.g., nCP4 to XR19 from FF6) is directed to detect the variation between a current bit and the next bit in the source data (i.e., to detect a progressive bit error during the page copy operation) and then to manage it with the serial way of parity generation.
- As a practical example in the column parity generation, the column parities CP1, CP2 and nCP4 will be set to “1”, provided the bit b3 is an error bit.
- The generation of the line parities from the 512 bytes will be described with reference to
FIGS. 6 and 8 and the following Table 2. Table 2 arranges byte combinations for XOR arithmetic implements in order to obtain the line parities LP1, nLP1, LP2, nLP2, LP4, nLP4., LP512, and nLP512 (LP1˜nLP512; 18 bits) against the 512 bytes of the source data. -
TABLE 2 Arithmetic Combination {circumflex over ( )}B511 Line {circumflex over ( )}B510 {circumflex over ( )}B255 {circumflex over ( )}B3 Parity {circumflex over ( )}B512 {circumflex over ( )}B509 . . . {circumflex over ( )}B256 {circumflex over ( )}B254 {circumflex over ( )}B253 . . . {circumflex over ( )}B4 {circumflex over ( )}B2 {circumflex over ( )}B1 LP1 * * . . . * * . . . * * nLP1 ** . . . * * . . . * * LP2 * * . . . * * . . . * * nLP2 ** . . . * * . . . * * LP4 * *** . . . * ** * . . . nLP4 . . . . . . * ** * . . . . . . LP512 * *** . . . . . . nLP512 . . . * ** * . . . * ** *
In Table 2, the letter “*” notes the XOR operator to obtain the comparison result from the relevant bit combination, and “̂B” represents a result of an XOR operation for eight bits of their corresponding byte (e.g., ̂B512=b7*b6*b5*b4*b3*b2*b1*b0 in the 512'th byte). The factor ̂B will be referred to as “byte parity unit” hereinafter.
Therefore, complete arithmetic equations of the XOR logic from Table 2 are summarized as follows each for the line parities of 18 bits. -
LP1=̂B512*̂B510* . . . *̂B256*̂B254* . . . *̂B4*̂B2 -
nLP2=̂B511*̂B509* . . . *̂B255* ̂B253* . . . *̂B3*̂B1 -
LP2=̂B512*̂B511* . . . *̂B256*̂B255* . . . *̂B4*̂B3 -
nLP2=̂B510*̂B509* . . . *̂B254*̂B253* . . . *̂B2*̂B1 -
LP4=̂B512*̂B511*̂B510*̂B509* . . . *̂B256*̂B255*̂B254*̂B253*̂B254*̂B253* . . . *̂B8*̂B7*̂B6*̂B5 -
nLP4=̂B508*̂B507*̂B506*̂B505* . . . *̂B252*̂B251*̂B250*̂B249* . . . *̂B4*̂B3*̂B2*̂B1 -
LP512=̂B512*̂B511*̂B510*̂B509* . . . *̂B260*̂B259*̂B258*̂B257 -
nLP512=̂B256*̂B255*̂B254*̂B253* . . . *̂B4* ̂B3*̂B2*̂B1 - Referring to
FIG. 8 , the byte parity unit ̂B for each byte is first obtained through XOR gates XR31˜XR37. The byte parity unit ̂B is generated from the gate XR37. The gate XR37 receives outputs of the gates XR35 and XR36. The gate XR35 receives outputs of the gates XR31 and XR32, and the gate XR36 receives outputs of the gates XR33 and XR34. Inputs of the gate XR31 are coupled to the input/output lines I/O0 and I/O1, and inputs of the gate XR32 are coupled to the input/output lines I/O2 and I/O3. Inputs of the gate XR33 are coupled to the input/output lines I/O4 and I/O5, and inputs of the gate XR34 are coupled to the input/output lines I/O6 and I/O7. - The output of the gate XR37, ̂B, is branched into 18 ways to establish the 18 line parities LP1˜mLP512, being applied to inputs of NAND gates ND1˜ND18 in common. If there is an error bit among the eight bits of their corresponding byte, the byte parity unit ̂B is set to “1”. The NAND gates ND1˜ND18 respond each to clock control signals nCLK1, CLK1, nCLK2, CLK2, . . . , nCLK512, and CLK512 (nCLK1˜CLK512; 18 ea) to control bit paths from the byte parity unit ̂B to the line parities. Outputs of the NAND gates ND1˜ND18 are applied to inputs of XOR gates XR1˜XR18 respectively. The gates XR1˜XR18 also receive the line parities nLP1˜LP18 fed-back thereto from flipflops FF1˜FF18 receiving outputs of the gates XR1 XR18, respectively.
- As the clock signal CLK and the reset signal RST are applied to the flipflops FF1˜FF18 in common, the flipflops FF1˜FF18 outputs the line parities in response to rising edges of every cycle of the clock signal CLK. The feedback input of each column parity to the XOR gate positioned before its corresponding flipflop (e.g., LP512 to XR1018 from FF1018) is directed to detect the variation between a current bit and the next bit in the source data (i.e., to detect a progressive bit error during the page copy operation) and then to manage it with the serial way of line parity generation. As a practical example in the line parity generation, if the byte B3 has an error bit, the line parities NLP1, LP2, nLP4, . . . , nLP512 will be set to “1”.
- The timing diagram of
FIG. 9 shows pulsing states of the column gating signals and clock control signals for transferring the source data from thepage buffer 10 to theerror correction circuit 20, associated with the operations in the circuits ofFIGS. 4 through 8 . The transmission procedure shown inFIG. 9 is exemplarily carried out by way of the latching and column-decoding block LDB1 shown inFIG. 4 . - Referring to
FIG. 9 , as the primary column gating signals YA0˜YAn−1 are successively active with high levels for the secondary column gating signal YB0 is being enabled with a high level, data bits corresponding to the bitlines BL0˜BLn−1 are sequentially transferred to theerror correction circuit 20 through their corresponding input/output lines I/O0˜I/On−1. By the same manner, in accordance with the sequential activation of the primary column gating signals YAO YAn−1 for each active state of the secondary column gating signals YB0˜YBk−1, all the 512 bytes of the source data are transferred to theerror correction circuit 20 through the input/output lines I/O0˜I/On−1. - In the
error correction circuit 20, responding to the periodic oscillation of the clock signal CLK, the flipflops FF1˜FF6 of the column parity generator shown inFIG. 7 output the column parities CP1˜nCP4. At the same time, the clock control signals CLK1˜nCLK512 demultiplied from the clock signal CLK enable the bit paths to be conductive through the NAND gates ND1˜ND18 of the line parity generator shown inFIG. 8 , and the flipflops FF1˜FF18 of the line parity generator outputs the line parities LP1˜nLP512 of 18 bits. - The bit number of the new parities NP is 24 that is composed of the eight column parities CP1˜nCP4 and the eighteen line parities LP1˜mLP512, which is the same with the old parities OP that have been stored in a predetermined field of the flash memory.
- An overall sequence for carry out the page copy operation with the error correction is as follows.
- First, the old parities OP are generated and stored in a predetermined field of the memory during a programming period. After then, the new parities NP are generated by the circuits and procedure aforementioned as shown in
FIGS. 6 through 8 . The old and new parities are compared from each other by 24 bits. - In comparing the old parities OP with the new parities NP by the
parity comparator 50, if all 24 bits of the old and new parities are identical (i.e., the XOR operations with the old and new parities result in “0”), it is regarded as no error bit. On the other hand, it is regarded as one-bit error when the comparison result is “1” for 12 bits (a half of the 24 bits) between the old and new parities. Such a one-bit error is cured by thecorrection logic circuit 60. Otherwise, only a comparison result for one bit among the 24 bits becomes “1”, it is regarded as a single error that has been already contained in the source data of the page to be copied. Other case except the former cases of comparison results may be regarded as there are more than two error bits. - Such bit error conditions may be available to be identified by a user in response to a command. Further, it may be practicable to transcribe the amended data into the source page as well as the transcription page.
- The error correction circuit may be embedded in the flash memory according to embodiments of the present invention.
- As described above, since an error bit contained in the source data of a source page is detected and cured by the error correction circuit before being written into a transcription page, it prevents the error bit of the source data from being transcribed into the transcription page.
- Moreover, the flash memory according to present invention efficiently eliminates a progressive bit error that could occur during a page copy operation.
- And, according to the embodiment aforementioned, there is no need of buffering components for error correction during a page copy operation because the page buffer, which is basically employed in a normal flash memory, is efficiently usable to assist the operation without additional modifications.
- Although the preferred embodiments of the present invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as described in the accompanying claims.
Claims (29)
1-9. (canceled)
10. A method of transferring source data of a first position to a second position in a memory system, the memory system comprising a nonvolatile memory including a memory cell array and a buffer, the method comprising:
receiving a first command and address;
storing the source data of the first position of the memory cell array into the buffer in response to the first command and address;
detecting a bit error of the source data stored in the buffer;
correcting the bit error when it is detected;
receiving a second command and address; and
copying the corrected source data to the second position of the memory cell array in response to the second command and address, after the correcting.
11. The method as recited in claim 10 , wherein the receiving a first command and address, the storing, the detecting, the correcting, the receiving a second command and address, and the copying are sequentially performed.
12. The method as recited in claim 10 , further comprising:
copying the source data stored in the buffer to the second position when the bit error is not detected.
13. The method as recited in claim 10 , wherein the first command and address, and the second command and address are sequentially inputted to the nonvolatile memory.
14. The method as recited in claim 10 , wherein the memory cell array has a plurality of pages, wherein each of the first and second positions is a page.
15. A method of transferring source data of a first position to a second position in a memory system, the memory system comprising a nonvolatile memory including a buffer and a memory controller to control the nonvolatile memory, the method comprising:
providing a read command and a first address to the nonvolatile memory from the memory controller in order to store the source data of the first position of the nonvolatile memory into the buffer;
detecting a bit error of the source data stored in the buffer;
correcting the bit error when it is detected; and
providing a write command and a second address to the nonvolatile memory from the memory controller in order to copy the corrected source data to the second position of the nonvolatile memory, after the correcting.
16. The method as recited in claim 15 , wherein the providing a read command, the detecting, the correcting, and the providing a write command are sequentially performed.
17. The method as recited in claim 15 , wherein the memory controller controls the detecting and correcting operation.
18. The method as recited in claim 15 , further comprising:
copying the source data stored in the buffer to the second position of the nonvolatile memory when the bit error is not detected.
19. The method as recited in claim 15 , wherein the nonvolatile memory comprises a memory cell array having a plurality of pages, wherein each of the first and second positions is a page.
20. A memory system comprising:
a nonvolatile memory cell array storing source data in a first position;
a buffer temporarily storing the source data of the first position; and
an error correction circuit for detecting a bit error of the source data stored in the buffer and for correcting the bit error when it is detected;
wherein the corrected source data is copied to a second position of the nonvolatile memory cell array after the error correction.
21. The memory system of claim 20 , wherein the source data stored in the buffer is copied to the second position when the bit error is not detected.
22. The memory system of claim 20 , wherein the source data stored in the buffer is transferred to the error correction circuit through input/output lines before the error detection.
23. The memory system of claim 20 , wherein the error correction circuit generates old parities from the source data before storing the source data of the first position into the buffer, generates new parities from the source data stored in the buffer; compares the old parities with the new parities, and corrects the bit error of the source data stored in the buffer in response to a result of the comparison.
24. The memory system of claim 23 , wherein the source data stored in the buffer is transferred to the error correction circuit through input/output lines before the generation of the new parities.
25. The memory system of claim 20 , wherein the nonvolatile memory cell array comprises a plurality of pages, wherein each of the first and second positions is a page.
26. A method of transferring source data of a first position to a second position in a memory system, the memory system comprising a nonvolatile memory including a memory cell array and a buffer, the method comprising:
storing the source data of the first position of the memory cell array into the buffer;
detecting a bit error of the source data stored in the buffer;
correcting the bit error when it is detected; and
copying the corrected source data to the second position of the memory cell array after the correcting.
27. The method as recited in claim 26 , further comprising:
copying the source data stored in the buffer to the second position when the bit error is not detected.
28. The method as recited in claim 26 , wherein the storing, the detecting, the correcting, and the copying are performed sequentially.
29. The method as recited in claim 26 , further comprising:
transferring the source data stored in the buffer to an error correction circuit through input/output lines before the detecting.
30. The method as recited in claim 26 , further comprising:
generating old parities from the source data before storing the source data of the first position into the buffer.
31. The method as recited in claim 30 , wherein detecting the bit error of the stored source data comprises:
generating new parities from the source data stored in the buffer; and
comparing the old parities with the new parities.
32. The method as recited in claim 31 , further comprising:
transferring the source data stored in the buffer to an error correction circuit through input/output lines before the generating new parities.
33. The method as recited in claim 31 , wherein the correcting is performed to correct the bit error of the source data stored in the buffer in response to a result of the comparing.
34. The method as recited in claim 31 , further comprising:
informing an error status by providing the comparing result outside of the memory system.
35. The method as recited in claim 26 , wherein the bit error is a progressive bit error.
36. The method as recited in claim 26 , wherein the nonvolatile memory is a NAND flash memory.
37. The method as recited in claim 36 , wherein the NAND flash memory comprises a memory cell array having a plurality of pages, wherein each of the first and second positions is a page.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/874,821 US20080163030A1 (en) | 2003-04-03 | 2007-10-18 | Nonvolatile memory with error correction for page copy operation and method thereof |
US13/486,387 US20120239866A1 (en) | 2003-04-03 | 2012-06-01 | Non-volatile memory with error correction for page copy operation and method thereof |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030021114A KR100543447B1 (en) | 2003-04-03 | 2003-04-03 | Flash memory with error correction for page copy |
KR2003-21114 | 2003-04-03 | ||
US10/817,061 US7296128B2 (en) | 2003-04-03 | 2004-04-02 | Nonvolatile memory with error correction for page copy operation and method thereof |
US11/874,821 US20080163030A1 (en) | 2003-04-03 | 2007-10-18 | Nonvolatile memory with error correction for page copy operation and method thereof |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/817,061 Continuation US7296128B2 (en) | 2003-04-03 | 2004-04-02 | Nonvolatile memory with error correction for page copy operation and method thereof |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/486,387 Continuation US20120239866A1 (en) | 2003-04-03 | 2012-06-01 | Non-volatile memory with error correction for page copy operation and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080163030A1 true US20080163030A1 (en) | 2008-07-03 |
Family
ID=32844907
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/817,061 Active 2025-02-16 US7296128B2 (en) | 2003-04-03 | 2004-04-02 | Nonvolatile memory with error correction for page copy operation and method thereof |
US11/874,821 Abandoned US20080163030A1 (en) | 2003-04-03 | 2007-10-18 | Nonvolatile memory with error correction for page copy operation and method thereof |
US13/486,387 Abandoned US20120239866A1 (en) | 2003-04-03 | 2012-06-01 | Non-volatile memory with error correction for page copy operation and method thereof |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/817,061 Active 2025-02-16 US7296128B2 (en) | 2003-04-03 | 2004-04-02 | Nonvolatile memory with error correction for page copy operation and method thereof |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/486,387 Abandoned US20120239866A1 (en) | 2003-04-03 | 2012-06-01 | Non-volatile memory with error correction for page copy operation and method thereof |
Country Status (6)
Country | Link |
---|---|
US (3) | US7296128B2 (en) |
EP (1) | EP1465203B1 (en) |
JP (1) | JP2004311010A (en) |
KR (1) | KR100543447B1 (en) |
CN (3) | CN1551244B (en) |
DE (1) | DE602004003275T2 (en) |
Cited By (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172258A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc | Flash memory controller garbage collection operations performed independently in multiple flash memory groups |
US20100262760A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Command processor for a data storage device |
US20100262766A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Garbage collection for failure prediction and repartitioning |
US20110228601A1 (en) * | 2010-03-17 | 2011-09-22 | Olbrich Aaron K | Mlc self-raid flash data protection scheme |
TWI417887B (en) * | 2009-12-02 | 2013-12-01 | Via Tech Inc | Data storage system and method |
US8793543B2 (en) | 2011-11-07 | 2014-07-29 | Sandisk Enterprise Ip Llc | Adaptive read comparison signal generation for memory systems |
US8891303B1 (en) | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US8910020B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | Intelligent bit recovery for flash memory |
US8909982B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | System and method for detecting copyback programming problems |
US8924815B2 (en) | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
US8954822B2 (en) | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
US9009576B1 (en) | 2013-03-15 | 2015-04-14 | Sandisk Enterprise Ip Llc | Adaptive LLR based on syndrome weight |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented in non-volatile data storage systems |
US9048876B2 (en) | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
US9092370B2 (en) | 2013-12-03 | 2015-07-28 | Sandisk Enterprise Ip Llc | Power failure tolerant cryptographic erase |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US9122636B2 (en) | 2013-11-27 | 2015-09-01 | Sandisk Enterprise Ip Llc | Hard power fail architecture |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9158349B2 (en) | 2013-10-04 | 2015-10-13 | Sandisk Enterprise Ip Llc | System and method for heat dissipation |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9250676B2 (en) | 2013-11-29 | 2016-02-02 | Sandisk Enterprise Ip Llc | Power failure architecture and verification |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9280429B2 (en) | 2013-11-27 | 2016-03-08 | Sandisk Enterprise Ip Llc | Power fail latching based on monitoring multiple power supply voltages in a storage device |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9323637B2 (en) | 2013-10-07 | 2016-04-26 | Sandisk Enterprise Ip Llc | Power sequencing and data hardening architecture |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9348377B2 (en) | 2014-03-14 | 2016-05-24 | Sandisk Enterprise Ip Llc | Thermal isolation techniques |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9485851B2 (en) | 2014-03-14 | 2016-11-01 | Sandisk Technologies Llc | Thermal tube assembly structures |
US9497889B2 (en) | 2014-02-27 | 2016-11-15 | Sandisk Technologies Llc | Heat dissipation for substrate assemblies |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9519319B2 (en) | 2014-03-14 | 2016-12-13 | Sandisk Technologies Llc | Self-supporting thermal tube structure for electronic assemblies |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9549457B2 (en) | 2014-02-12 | 2017-01-17 | Sandisk Technologies Llc | System and method for redirecting airflow across an electronic assembly |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7881133B2 (en) * | 2003-11-11 | 2011-02-01 | Samsung Electronics Co., Ltd. | Method of managing a flash memory and the flash memory |
JP4237648B2 (en) * | 2004-01-30 | 2009-03-11 | 株式会社東芝 | Nonvolatile semiconductor memory device |
US7466597B2 (en) * | 2004-09-09 | 2008-12-16 | Samsung Electronics Co., Ltd. | NAND flash memory device and copyback program method for same |
US7849381B2 (en) * | 2004-12-21 | 2010-12-07 | Sandisk Corporation | Method for copying data in reprogrammable non-volatile memory |
US7379368B2 (en) * | 2005-02-25 | 2008-05-27 | Frankfurt Gmbh, Llc | Method and system for reducing volatile DRAM power budget |
KR100626393B1 (en) | 2005-04-07 | 2006-09-20 | 삼성전자주식회사 | Non-volatile memory device and multi-page copyback method thereof |
KR100669352B1 (en) | 2005-09-07 | 2007-01-16 | 삼성전자주식회사 | Nand flash memory device performing error detection and data reloading operation during copy back program operation |
KR101197556B1 (en) * | 2006-01-09 | 2012-11-09 | 삼성전자주식회사 | Device and method capable of verifying program operation of non-volatile memory and memory card including the same |
EP1808863A1 (en) * | 2006-01-16 | 2007-07-18 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for recording high-speed input data into a matrix of memory devices |
JP4956230B2 (en) * | 2006-04-10 | 2012-06-20 | 株式会社東芝 | Memory controller |
JP4908083B2 (en) * | 2006-06-30 | 2012-04-04 | 株式会社東芝 | Memory controller |
JP5378664B2 (en) * | 2006-08-28 | 2013-12-25 | 三星電子株式会社 | Flash memory device having multi-page copyback function and block replacement method thereof |
KR100755718B1 (en) | 2006-09-04 | 2007-09-05 | 삼성전자주식회사 | Apparatus and method for managing run-time bad block in mlc flash memory |
JP2008077810A (en) * | 2006-09-25 | 2008-04-03 | Toshiba Corp | Nonvolatile semiconductor storage device |
JP4655034B2 (en) * | 2006-12-25 | 2011-03-23 | Tdk株式会社 | Memory controller, flash memory system, and flash memory control method |
KR100882841B1 (en) * | 2007-06-19 | 2009-02-10 | 삼성전자주식회사 | Memory system capable of detecting bit errors due to read disturbance and read method thereof |
KR100898673B1 (en) | 2007-08-08 | 2009-05-22 | 주식회사 하이닉스반도체 | Flash memory device and method of operating the same |
US8291174B2 (en) | 2007-08-15 | 2012-10-16 | Micron Technology, Inc. | Memory device and method having on-board address protection system for facilitating interface with multiple processors, and computer system using same |
US8055852B2 (en) | 2007-08-15 | 2011-11-08 | Micron Technology, Inc. | Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same |
US7822911B2 (en) * | 2007-08-15 | 2010-10-26 | Micron Technology, Inc. | Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same |
KR101425957B1 (en) * | 2007-08-21 | 2014-08-06 | 삼성전자주식회사 | Ecc control circuit and multi channel memory system icluding the same |
US9582417B2 (en) * | 2007-08-30 | 2017-02-28 | Virident Systems, Llc | Memory apparatus and methods thereof for preventing read errors on weak pages in a non-volatile memory system |
US8443260B2 (en) * | 2007-12-27 | 2013-05-14 | Sandisk Il Ltd. | Error correction in copy back memory operations |
US9594679B2 (en) | 2008-05-01 | 2017-03-14 | Sandisk Il Ltd. | Flash cache flushing method and system |
JP2010009141A (en) | 2008-06-24 | 2010-01-14 | Toshiba Corp | Data transfer method |
CN101615420B (en) * | 2008-06-26 | 2014-01-08 | 威刚科技股份有限公司 | Flash memory storage device with data correction function |
TWI382422B (en) * | 2008-07-11 | 2013-01-11 | Genesys Logic Inc | Storage device for refreshing data pages of flash memory based on error correction code and method for the same |
KR101030146B1 (en) * | 2008-08-29 | 2011-04-18 | 서울대학교산학협력단 | Flash based storage device using page buffer as write cache and method of using the same |
US20100325351A1 (en) * | 2009-06-12 | 2010-12-23 | Bennett Jon C R | Memory system having persistent garbage collection |
US8214700B2 (en) * | 2009-10-28 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile memory and method with post-write read and adaptive re-write to manage errors |
CN101699406B (en) * | 2009-11-12 | 2011-12-14 | 威盛电子股份有限公司 | Data storage system and method |
CN102117230B (en) * | 2009-12-31 | 2013-01-09 | 群联电子股份有限公司 | Data writing method, flash memory controller and a flash memory memorizing device |
US10026458B2 (en) | 2010-10-21 | 2018-07-17 | Micron Technology, Inc. | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size |
US20120110244A1 (en) * | 2010-11-02 | 2012-05-03 | Micron Technology, Inc. | Copyback operations |
JP2012133843A (en) * | 2010-12-21 | 2012-07-12 | Toshiba Corp | Semiconductor storage device |
US8560922B2 (en) | 2011-03-04 | 2013-10-15 | International Business Machines Corporation | Bad block management for flash memory |
US8589775B2 (en) * | 2011-03-14 | 2013-11-19 | Infineon Technologies Ag | Error tolerant flip-flops |
US20120324156A1 (en) * | 2011-06-17 | 2012-12-20 | Naveen Muralimanohar | Method and system of organizing a heterogeneous memory architecture |
US9158621B2 (en) | 2011-08-29 | 2015-10-13 | Sandisk Technologies Inc. | System and method of copying data |
US9223649B2 (en) * | 2012-02-15 | 2015-12-29 | Sandisk Technologies Inc. | System and method of sending correction data to a buffer of a non-volatile memory |
US8625386B2 (en) * | 2012-03-22 | 2014-01-07 | Seiko Epson Corporation | Non-volatile memory device, circuit board, printing material container and printer |
US8996951B2 (en) | 2012-11-15 | 2015-03-31 | Elwha, Llc | Error correction with non-volatile memory on an integrated circuit |
US9478314B2 (en) * | 2014-09-15 | 2016-10-25 | Macronix International Co., Ltd. | Memory utilizing bundle-level status values and bundle status circuits |
KR102248207B1 (en) | 2014-10-30 | 2021-05-06 | 삼성전자주식회사 | Storage device and operating method thereof |
KR102023121B1 (en) * | 2014-10-31 | 2019-11-04 | 에스케이하이닉스 주식회사 | Memory device which corrects error and method of correcting error |
KR102336458B1 (en) * | 2015-07-30 | 2021-12-08 | 삼성전자주식회사 | Non-volatile memory device and test system therof |
US9619321B1 (en) * | 2015-10-08 | 2017-04-11 | Seagate Technology Llc | Internal copy-back with read-verify |
KR102511459B1 (en) * | 2016-03-17 | 2023-03-17 | 삼성전자주식회사 | Non-volatile memory device and method of operating the same |
CN106775454B (en) * | 2016-11-21 | 2019-07-19 | 建荣半导体(深圳)有限公司 | A kind of method and device thereof managing bad column address |
US10853170B2 (en) * | 2018-09-06 | 2020-12-01 | Texas Instruments Incorporated | ECC protected storage |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4358848A (en) * | 1980-11-14 | 1982-11-09 | International Business Machines Corporation | Dual function ECC system with block check byte |
US4453251A (en) * | 1981-10-13 | 1984-06-05 | Burroughs Corporation | Error-correcting memory with low storage overhead and fast correction mechanism |
US5343426A (en) * | 1992-06-11 | 1994-08-30 | Digital Equipment Corporation | Data formater/converter for use with solid-state disk memory using storage devices with defects |
US5459742A (en) * | 1992-06-11 | 1995-10-17 | Quantum Corporation | Solid state disk memory using storage devices with defects |
US5532962A (en) * | 1992-05-20 | 1996-07-02 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5657332A (en) * | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5754753A (en) * | 1992-06-11 | 1998-05-19 | Digital Equipment Corporation | Multiple-bit error correction in computer main memory |
US5978952A (en) * | 1996-12-31 | 1999-11-02 | Intel Corporation | Time-distributed ECC scrubbing to correct memory errors |
US5996041A (en) * | 1995-11-10 | 1999-11-30 | Samsung Electronics Co., Ltd. | Integrated circuit memory devices having page flag cells which indicate the true or non-true state of page data therein and methods of operating the same |
US6040997A (en) * | 1998-03-25 | 2000-03-21 | Lexar Media, Inc. | Flash memory leveling architecture having no external latch |
US6058047A (en) * | 1996-08-16 | 2000-05-02 | Tokyo Electron Limited | Semiconductor memory device having error detection and correction |
US6109939A (en) * | 1997-06-04 | 2000-08-29 | Sony Corporation | Memory card and receptacle for same |
US6266273B1 (en) * | 2000-08-21 | 2001-07-24 | Sandisk Corporation | Method and structure for reliable data copy operation for non-volatile memories |
US20010050622A1 (en) * | 2000-03-14 | 2001-12-13 | Hewitt Eric John | Enhanced turbo product codes |
US6339546B1 (en) * | 1999-09-17 | 2002-01-15 | Hitachi, Ltd. | Storage device counting error correction |
US20030093579A1 (en) * | 2001-11-15 | 2003-05-15 | Zimmer Vincent J. | Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework |
US20030117846A1 (en) * | 2001-12-20 | 2003-06-26 | Kabushiki Kaisha Toshiba | Semiconductor memory system with a data copying function and a data copy method for the same |
US6661706B2 (en) * | 2001-07-17 | 2003-12-09 | Kabushiki Kaisha Toshiba | Semiconductor storage device having page copying |
US6728913B1 (en) * | 2000-02-25 | 2004-04-27 | Advanced Micro Devices, Inc. | Data recycling in memory |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52129334A (en) * | 1976-04-23 | 1977-10-29 | Nec Corp | Memor |
JPH05128882A (en) * | 1991-11-06 | 1993-05-25 | Mitsubishi Electric Corp | Data processing device |
JPH05174496A (en) * | 1991-12-25 | 1993-07-13 | Sony Corp | Id signal processor for digital recorder |
KR950003013B1 (en) * | 1992-03-30 | 1995-03-29 | 삼성전자 주식회사 | Eeprom with error correcting circuit |
JPH08153045A (en) * | 1994-11-30 | 1996-06-11 | Nec Corp | Memory control circuit |
US5838614A (en) * | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
JPH10302485A (en) * | 1997-04-28 | 1998-11-13 | Hitachi Inf Technol:Kk | Information processor having flash memory |
JPH10340575A (en) * | 1997-06-04 | 1998-12-22 | Sony Corp | External memory device, its controller and data transmission/reception device |
JP2001006379A (en) * | 1999-06-16 | 2001-01-12 | Fujitsu Ltd | Flash memory having copying and transfer functions |
JP4165990B2 (en) * | 1999-12-20 | 2008-10-15 | Tdk株式会社 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND METHOD FOR WRITEING DATA TO FLASH MEMORY |
US6941505B2 (en) * | 2000-09-12 | 2005-09-06 | Hitachi, Ltd. | Data processing system and data processing method |
JP2002351685A (en) * | 2001-05-22 | 2002-12-06 | Sankyo Seiki Mfg Co Ltd | Data updating method and controller for nonvolatile memory |
JP4236485B2 (en) * | 2003-03-06 | 2009-03-11 | Tdk株式会社 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
-
2003
- 2003-04-03 KR KR1020030021114A patent/KR100543447B1/en active IP Right Grant
-
2004
- 2004-03-29 JP JP2004095529A patent/JP2004311010A/en active Pending
- 2004-03-30 DE DE602004003275T patent/DE602004003275T2/en not_active Expired - Lifetime
- 2004-03-30 EP EP04007598A patent/EP1465203B1/en not_active Expired - Lifetime
- 2004-04-02 US US10/817,061 patent/US7296128B2/en active Active
- 2004-04-05 CN CN2004100477591A patent/CN1551244B/en not_active Expired - Lifetime
- 2004-04-05 CN CN2011100089100A patent/CN102034545A/en active Pending
- 2004-04-05 CN CN201310047282.6A patent/CN103136068B/en not_active Expired - Lifetime
-
2007
- 2007-10-18 US US11/874,821 patent/US20080163030A1/en not_active Abandoned
-
2012
- 2012-06-01 US US13/486,387 patent/US20120239866A1/en not_active Abandoned
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4358848A (en) * | 1980-11-14 | 1982-11-09 | International Business Machines Corporation | Dual function ECC system with block check byte |
US4453251A (en) * | 1981-10-13 | 1984-06-05 | Burroughs Corporation | Error-correcting memory with low storage overhead and fast correction mechanism |
US5532962A (en) * | 1992-05-20 | 1996-07-02 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5657332A (en) * | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5343426A (en) * | 1992-06-11 | 1994-08-30 | Digital Equipment Corporation | Data formater/converter for use with solid-state disk memory using storage devices with defects |
US5459742A (en) * | 1992-06-11 | 1995-10-17 | Quantum Corporation | Solid state disk memory using storage devices with defects |
US5754753A (en) * | 1992-06-11 | 1998-05-19 | Digital Equipment Corporation | Multiple-bit error correction in computer main memory |
US5996041A (en) * | 1995-11-10 | 1999-11-30 | Samsung Electronics Co., Ltd. | Integrated circuit memory devices having page flag cells which indicate the true or non-true state of page data therein and methods of operating the same |
US6058047A (en) * | 1996-08-16 | 2000-05-02 | Tokyo Electron Limited | Semiconductor memory device having error detection and correction |
US5978952A (en) * | 1996-12-31 | 1999-11-02 | Intel Corporation | Time-distributed ECC scrubbing to correct memory errors |
US6109939A (en) * | 1997-06-04 | 2000-08-29 | Sony Corporation | Memory card and receptacle for same |
US6040997A (en) * | 1998-03-25 | 2000-03-21 | Lexar Media, Inc. | Flash memory leveling architecture having no external latch |
US6339546B1 (en) * | 1999-09-17 | 2002-01-15 | Hitachi, Ltd. | Storage device counting error correction |
US6728913B1 (en) * | 2000-02-25 | 2004-04-27 | Advanced Micro Devices, Inc. | Data recycling in memory |
US20010050622A1 (en) * | 2000-03-14 | 2001-12-13 | Hewitt Eric John | Enhanced turbo product codes |
US6266273B1 (en) * | 2000-08-21 | 2001-07-24 | Sandisk Corporation | Method and structure for reliable data copy operation for non-volatile memories |
US6661706B2 (en) * | 2001-07-17 | 2003-12-09 | Kabushiki Kaisha Toshiba | Semiconductor storage device having page copying |
US20030093579A1 (en) * | 2001-11-15 | 2003-05-15 | Zimmer Vincent J. | Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework |
US20030117846A1 (en) * | 2001-12-20 | 2003-06-26 | Kabushiki Kaisha Toshiba | Semiconductor memory system with a data copying function and a data copy method for the same |
US6868007B2 (en) * | 2001-12-20 | 2005-03-15 | Kabushiki Kaisha Toshiba | Semiconductor memory system with a data copying function and a data copy method for the same |
Cited By (125)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386700B2 (en) | 2007-12-27 | 2013-02-26 | Sandisk Enterprise Ip Llc | Flash memory controller garbage collection operations performed independently in multiple flash memory groups |
US20090172308A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc. | Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories |
US20090172263A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc. | Flash storage controller execute loop |
US20090172260A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc. | Flash memory controller and system including data pipelines incorporating multiple buffers |
US20090172262A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc. | Metadata rebuild in a flash memory controller following a loss of power |
US9483210B2 (en) | 2007-12-27 | 2016-11-01 | Sandisk Technologies Llc | Flash storage controller execute loop |
US9448743B2 (en) | 2007-12-27 | 2016-09-20 | Sandisk Technologies Llc | Mass storage controller volatile memory containing metadata related to flash memory storage |
US9239783B2 (en) | 2007-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
US9158677B2 (en) | 2007-12-27 | 2015-10-13 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US9152556B2 (en) | 2007-12-27 | 2015-10-06 | Sandisk Enterprise Ip Llc | Metadata rebuild in a flash memory controller following a loss of power |
US8959282B2 (en) | 2007-12-27 | 2015-02-17 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US8959283B2 (en) | 2007-12-27 | 2015-02-17 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US8775717B2 (en) | 2007-12-27 | 2014-07-08 | Sandisk Enterprise Ip Llc | Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories |
US8762620B2 (en) | 2007-12-27 | 2014-06-24 | Sandisk Enterprise Ip Llc | Multiprocessor storage controller |
US8751755B2 (en) | 2007-12-27 | 2014-06-10 | Sandisk Enterprise Ip Llc | Mass storage controller volatile memory containing metadata related to flash memory storage |
US8738841B2 (en) | 2007-12-27 | 2014-05-27 | Sandisk Enterprise IP LLC. | Flash memory controller and system including data pipelines incorporating multiple buffers |
US8621138B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US8621137B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Metadata rebuild in a flash memory controller following a loss of power |
US20090172258A1 (en) * | 2007-12-27 | 2009-07-02 | Pliant Technology, Inc | Flash memory controller garbage collection operations performed independently in multiple flash memory groups |
US8533384B2 (en) | 2007-12-27 | 2013-09-10 | Sandisk Enterprise Ip Llc | Flash memory controller garbage collection operations performed independently in multiple flash memory groups |
US8595572B2 (en) | 2009-04-08 | 2013-11-26 | Google Inc. | Data storage device with metadata command |
US8250271B2 (en) | 2009-04-08 | 2012-08-21 | Google Inc. | Command and interrupt grouping for a data storage device |
US8447918B2 (en) | 2009-04-08 | 2013-05-21 | Google Inc. | Garbage collection for failure prediction and repartitioning |
US20120030507A1 (en) * | 2009-04-08 | 2012-02-02 | Google Inc. | Data storage device |
US20100262760A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Command processor for a data storage device |
US20100262738A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Command and interrupt grouping for a data storage device |
US8380909B2 (en) | 2009-04-08 | 2013-02-19 | Google Inc. | Multiple command queues having separate interrupts |
US8566508B2 (en) | 2009-04-08 | 2013-10-22 | Google Inc. | RAID configuration in a flash memory data storage device |
US8566507B2 (en) | 2009-04-08 | 2013-10-22 | Google Inc. | Data storage device capable of recognizing and controlling multiple types of memory chips |
US8578084B2 (en) | 2009-04-08 | 2013-11-05 | Google Inc. | Data storage device having multiple removable memory boards |
US8433845B2 (en) | 2009-04-08 | 2013-04-30 | Google Inc. | Data storage device which serializes memory device ready/busy signals |
US9244842B2 (en) | 2009-04-08 | 2016-01-26 | Google Inc. | Data storage device with copy command |
US8327220B2 (en) * | 2009-04-08 | 2012-12-04 | Google Inc. | Data storage device with verify on write command |
US20100262766A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Garbage collection for failure prediction and repartitioning |
US8639871B2 (en) | 2009-04-08 | 2014-01-28 | Google Inc. | Partitioning a flash memory data storage device |
US8244962B2 (en) | 2009-04-08 | 2012-08-14 | Google Inc. | Command processor for a data storage device |
US8239713B2 (en) | 2009-04-08 | 2012-08-07 | Google Inc. | Data storage device with bad block scan command |
US8239724B2 (en) | 2009-04-08 | 2012-08-07 | Google Inc. | Error correction for a data storage device |
US8239729B2 (en) | 2009-04-08 | 2012-08-07 | Google Inc. | Data storage device with copy command |
US20100262894A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Error correction for a data storage device |
US20100269015A1 (en) * | 2009-04-08 | 2010-10-21 | Google Inc. | Data storage device |
TWI417887B (en) * | 2009-12-02 | 2013-12-01 | Via Tech Inc | Data storage system and method |
US20110228601A1 (en) * | 2010-03-17 | 2011-09-22 | Olbrich Aaron K | Mlc self-raid flash data protection scheme |
US8365041B2 (en) * | 2010-03-17 | 2013-01-29 | Sandisk Enterprise Ip Llc | MLC self-raid flash data protection scheme |
US8484534B2 (en) | 2010-03-17 | 2013-07-09 | Sandisk Enterprise IP LLC. | MLC self-RAID flash data protection scheme |
US8484533B2 (en) | 2010-03-17 | 2013-07-09 | Sandisk Enterprise Ip Llc | MLC self-RAID flash data protection scheme |
US8473814B2 (en) | 2010-03-17 | 2013-06-25 | Sandisk Enterprise Ip Llc | MLC self-RAID flash data protection scheme |
US8910020B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | Intelligent bit recovery for flash memory |
US8909982B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | System and method for detecting copyback programming problems |
US8938658B2 (en) | 2011-11-07 | 2015-01-20 | Sandisk Enterprise Ip Llc | Statistical read comparison signal generation for memory systems |
US9058289B2 (en) | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
US8793543B2 (en) | 2011-11-07 | 2014-07-29 | Sandisk Enterprise Ip Llc | Adaptive read comparison signal generation for memory systems |
US8924815B2 (en) | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
US9048876B2 (en) | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US8954822B2 (en) | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9009576B1 (en) | 2013-03-15 | 2015-04-14 | Sandisk Enterprise Ip Llc | Adaptive LLR based on syndrome weight |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented in non-volatile data storage systems |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
US9361221B1 (en) | 2013-08-26 | 2016-06-07 | Sandisk Technologies Inc. | Write amplification reduction through reliable writes during garbage collection |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9158349B2 (en) | 2013-10-04 | 2015-10-13 | Sandisk Enterprise Ip Llc | System and method for heat dissipation |
US9323637B2 (en) | 2013-10-07 | 2016-04-26 | Sandisk Enterprise Ip Llc | Power sequencing and data hardening architecture |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9280429B2 (en) | 2013-11-27 | 2016-03-08 | Sandisk Enterprise Ip Llc | Power fail latching based on monitoring multiple power supply voltages in a storage device |
US9122636B2 (en) | 2013-11-27 | 2015-09-01 | Sandisk Enterprise Ip Llc | Hard power fail architecture |
US9250676B2 (en) | 2013-11-29 | 2016-02-02 | Sandisk Enterprise Ip Llc | Power failure architecture and verification |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9092370B2 (en) | 2013-12-03 | 2015-07-28 | Sandisk Enterprise Ip Llc | Power failure tolerant cryptographic erase |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9549457B2 (en) | 2014-02-12 | 2017-01-17 | Sandisk Technologies Llc | System and method for redirecting airflow across an electronic assembly |
US9497889B2 (en) | 2014-02-27 | 2016-11-15 | Sandisk Technologies Llc | Heat dissipation for substrate assemblies |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9485851B2 (en) | 2014-03-14 | 2016-11-01 | Sandisk Technologies Llc | Thermal tube assembly structures |
US9519319B2 (en) | 2014-03-14 | 2016-12-13 | Sandisk Technologies Llc | Self-supporting thermal tube structure for electronic assemblies |
US9348377B2 (en) | 2014-03-14 | 2016-05-24 | Sandisk Enterprise Ip Llc | Thermal isolation techniques |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US8891303B1 (en) | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
Also Published As
Publication number | Publication date |
---|---|
CN1551244A (en) | 2004-12-01 |
EP1465203B1 (en) | 2006-11-22 |
DE602004003275D1 (en) | 2007-01-04 |
US20120239866A1 (en) | 2012-09-20 |
CN102034545A (en) | 2011-04-27 |
KR100543447B1 (en) | 2006-01-23 |
CN103136068B (en) | 2017-05-31 |
US7296128B2 (en) | 2007-11-13 |
JP2004311010A (en) | 2004-11-04 |
EP1465203A1 (en) | 2004-10-06 |
CN103136068A (en) | 2013-06-05 |
KR20040086923A (en) | 2004-10-13 |
CN1551244B (en) | 2013-05-01 |
US20040202034A1 (en) | 2004-10-14 |
DE602004003275T2 (en) | 2007-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7296128B2 (en) | Nonvolatile memory with error correction for page copy operation and method thereof | |
US9117530B2 (en) | Preserving data from adjacent word lines while programming binary non-volatile storage elements | |
US8125825B2 (en) | Memory system protected from errors due to read disturbance and reading method thereof | |
US8719662B2 (en) | Memory device with error detection | |
US7813187B2 (en) | Multi-bit flash memory device and program method thereof | |
JP3875621B2 (en) | Nonvolatile semiconductor memory device | |
US7594157B2 (en) | Memory system with backup circuit and programming method | |
JP2006107710A (en) | Integrated circuit memory device, by which existence of program error due to power failure is detectable, and its method | |
JP2002133892A (en) | Defect control method for flash memory | |
JP2006079811A (en) | Semiconductor memory device equipped with parity generator for error detection | |
JP2011060388A (en) | Nonvolatile memory device | |
KR20030068202A (en) | Novel method and structure for efficient data verification operation for non-volatile memories | |
US8347183B2 (en) | Flash memory device using ECC algorithm and method of operating the same | |
US7471562B2 (en) | Method and apparatus for accessing nonvolatile memory with read error by changing read reference | |
JP4256307B2 (en) | Memory card | |
JP4724692B2 (en) | High-speed program type MLC memory | |
US6320791B1 (en) | Writing apparatus for a non-volatile semiconductor memory device | |
CN116153378A (en) | Error checking and refreshing operation method and semiconductor system using the same | |
JP4655034B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4637526B2 (en) | Memory card and nonvolatile storage device | |
KR100634432B1 (en) | Nand flash memory device and error detection method detecting error during copy_back program operation | |
JP2003100095A (en) | Semiconductor integrated circuit device | |
US7773421B2 (en) | Method and apparatus for accessing memory with read error by changing comparison | |
KR100632949B1 (en) | Nand flash memory device and its copy_back program method | |
JP2006004478A (en) | Nonvolatile semiconductor memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |