Approach to correct ECC errors using duplicate copies of data

US9703629B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9703629-B2
Application numberUS-201514657677-A
CountryUS
Kind codeB2
Filing dateMar 13, 2015
Priority dateOct 29, 2014
Publication dateJul 11, 2017
Grant dateJul 11, 2017

How to read this patent

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

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

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

  4. Key dates

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

  5. First independent claim

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

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Devices and methods implemented therein in are disclosed for correcting errors in data. The method comprises determining that a first copy of data and a second copy of data include errors uncorrectable by an error correction code (ECC) engine. The ECC engine is modified based on determining that the first copy of data and the second copy of data include errors uncorrectable by the ECC engine and using the modified ECC engine, the first copy of data and the second copy of data are processed to correct the errors in the first and second copy of the data.

First claim

Opening claim text (preview).

We claim: 1. A method comprising: receiving a write command with a set of data that is temporarily stored at a first memory page, wherein a copy of the set of data is temporarily stored at a second memory page; reading, from the first memory page, the set of data; in response to determining that a number of bits in error in the set of data exceed a threshold for an error correction code (ECC) engine, reading, from the second memory page, the copy of the set of data; in response to determining that a number of bits in error in the copy of the set of data exceed the threshold for the ECC engine, comparing the set of data with the copy of the set of data; modifying the ECC engine based on the comparison; processing the set of data and the copy of the set of data using the modified ECC engine to correct errors; and storing the data permanently, based on the comparison after the errors are corrected. 2. The method of claim 1 wherein determining that the number of bits in error in the set of data exceeds the threshold is based on processing the set of data with the ECC engine. 3. The method of claim 1 wherein determining that the number of bits in error in the copy of the set of data exceeds the threshold is based on processing the copy of the set of data with the ECC engine. 4. The method of claim 1 wherein using the data and the copy of the data to modify the ECC engine comprises performing an exclusive or (XOR) operation between the data and the copy of the data. 5. The method of claim 4 further comprising locating a respective location of non-zero bits in a result of the XOR operation and modifying the ECC engine based on the respective locations. 6. The method of claim 1 further comprises storing a reference to the first memory page in a first entry of a data structure and a reference to the second memory page in a second entry of the data structure. 7. The method of claim 6 further comprises storing an indication in the data structure in response to detecting that the number of bits in error in the set of data and in the copy of the set of data exceeds the threshold. 8. A device comprising: a first and second memory page, each storing a copy of a set of data; a logic unit configured to perform logic operations on data stored in the first and second memory page; an error correction code (ECC) engine modification unit configured to modify parameters of an ECC engine; and an enhanced post write read (EPWR) unit configured to: determine that a number of bits in error in the data read from the first memory page and the secondary page exceeds a threshold of the ECC engine; cause the logic unit to compare data read from the first memory page with data read from the second memory page; and cause the ECC engine modification unit to configure the ECC engine based on a result of the comparison. 9. The device of claim 8 wherein the logic unit in response to being caused to compare data read from the first memory page with data read from the second memory page is configured to perform a bitwise exclusive or (XOR) operation between data read from the first memory page and data read from the second memory page. 10. The device of claim 8 wherein the ECC engine implements the low-density parity-check code (LDPC) and wherein the parameter modified by the ECC engine modification unit corresponds to an error probability of the ECC engine. 11. A storage device comprising: a memory comprising memory blocks for data storage; a controller coupled with the memory for programming the memory blocks; an error correction code (ECC) engine coupled with the controller configured to correct errors in data when a number of errors is below a threshold for a first copy of the data from dual programming and without reading from a second copy of the data; and an enhanced post write read (EPWR) unit configured to compare the first copy of the data with the second copy of the data when the number of errors is above the threshold for the second copy of the data in addition to the first copy of the data. 12. The storage device of claim 11 , wherein the dual programming comprises programming of the memory blocks with a first copy and a second copy of data for error correction purposes. 13. The storage device of claim 12 , wherein the first copy and the second copy are duplicate copies of data stored in update blocks. 14. The storage device of claim 13 , wherein the data is committed from only one of the first copy or the second copy. 15. The storage device of claim 14 , wherein the first copy comprises a primary block from the memory blocks and the second copy comprises a secondary block from the memory blocks. 16. The storage device of claim 15 , wherein the data is committed from the secondary block only when the primary block includes uncorrectable ECC (UECC) errors. 17. The storage device of claim 16 , wherein the UECC error includes when the number of errors is above the threshold. 18. The storage device of claim 17 , wherein when the number of errors is above the threshold for both the primary block and the secondary block, the EPWR unit is configured to compare the data stored in the primary block with the data stored in the secondary block. 19. The storage device of claim 11 , wherein the ECC engine is updated based on the comparison to increase error probabilities associated with a location of set bits and decrease error probabilities associated with a location of zero bits. 20. The storage device of claim 11 , wherein errors from both copies of data are corrected based on the comparison.

Assignees

Inventors

Classifications

  • G11C29/42Primary

    using error correcting codes [ECC] or parity check · CPC title

  • using arrangements adapted for a specific error detection or correction feature · CPC title

  • Online error correction · CPC title

  • Protection of memory contents; Detection of errors in memory contents · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

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

What does patent US9703629B2 cover?
Devices and methods implemented therein in are disclosed for correcting errors in data. The method comprises determining that a first copy of data and a second copy of data include errors uncorrectable by an error correction code (ECC) engine. The ECC engine is modified based on determining that the first copy of data and the second copy of data include errors uncorrectable by the ECC engine an…
Who is the assignee on this patent?
Sandisk Technologies Inc, Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G11C29/42. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 11 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).