Cyclically interleaved XOR array for error recovery

US9996285B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9996285-B2
Application numberUS-201615346103-A
CountryUS
Kind codeB2
Filing dateNov 8, 2016
Priority dateNov 8, 2016
Publication dateJun 12, 2018
Grant dateJun 12, 2018

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.

Memory systems may include a memory storage including at least a first stripe and a second stripe, the first stripe including data pages corresponding to the first stripe and a first parity page suitable for storing a first XOR parity, and the second stripe including data pages corresponding to the second stripe and a second parity page suitable for storing a second XOR parity, the data pages and parity pages being stored over a plurality of memory dies, wherein each memory die includes a number of planes; and a controller suitable for cyclically interleaving the data pages corresponding to the first stripe and the data pages corresponding to the second stripe.

First claim

Opening claim text (preview).

What is claimed is: 1. A memory system, comprising: a host; and a memory storage connected with the host and including at least two memory dies, each of the at least two memory dies includes at least two planes, wherein the memory storage is constructed with stripes, the stripes include at least a first stripe and a second stripe, the first stripe including data pages corresponding to the first stripe and a respective first parity page storing a first XOR parity of the first stripe, and the second stripe including data pages corresponding to the second stripe and a respective second parity page storing a second XOR parity of the second stripe; and a controller coupled with the memory storage and configured to store the data pages and respective parity pages over a plurality of memory dies, and cyclically interleave the data pages corresponding to the first stripe and the data pages corresponding to the second stripe, wherein the same data pages on different planes in each of the memory dies are constructed into different stripes across the planes, and the number of stripes in each stripe group equals to the number of the planes in each of the memory dies, wherein the stripe group includes a number of stripes cyclically interleaved across all the planes in each of the memory dies. 2. The memory system of claim 1 , wherein the data pages are cyclically interleaved such that the first XOR parity is taken over a first group of data pages limited to one data page per plane. 3. The memory system of claim 2 , wherein the data pages are cyclically interleaved such that the second XOR parity is taken over a second group of data pages limited to one data page per plane. 4. The memory system of claim 1 , further comprising an error correcting code (ECC) unit configured to correct multiple errors in more than one plane. 5. The memory system of claim 4 , wherein the ECC unit is further configured to correct multiple errors in a single plane. 6. The memory system of claim 1 , wherein each data page corresponding to the first stripe and the first parity page are stored on different planes. 7. The memory system of claim 6 , wherein each data page corresponding to the second stripe and the second parity page are stored on different planes. 8. A method of operating a memory system including a memory storage and a controller, comprising: storing data pages and respective parity pages over a plurality of memory dies of the memory storage, wherein the memory storage includes at least two memory dies, each of the at least two memory dies includes at least two planes, wherein the memory storage is constructed with stripes, the stripes include at least a first stripe and a second stripe; associating data pages and a first parity page with the first stripe of the memory storage; associating data pages and a second parity page with the second stripe of the memory storage; cyclically interleaving the first parity page and data pages associated with the first stripe with the second parity page and data pages associated with the second stripe, wherein the same data pages on different planes in each of the memory dies are constructed into different stripes across the planes, and the number of stripes in each stripe group equals to the number of the planes in each of the memory dies, wherein the stripe group includes a number of stripes cyclically interleaved across all the planes in each of the memory dies; taking a first XOR parity over the first stripe and storing the first XOR parity in the first parity page; and taking a second XOR parity over the second stripe and storing the second XOR parity in the second parity page. 9. The method of claim 8 , wherein the cyclically interleaving step is performed such that the first parity page and data pages associated with the first stripe are limited to one page per plane. 10. The method of claim 9 , wherein the cyclically interleaving step is performed such that the second parity page and data pages associated with the second stripe are limited to one page per plane. 11. The method of claim 8 , wherein when multiple errors occur in more than one plane, further comprising correcting, with an error correcting code (ECC) unit, the multiple errors with the first XOR parity and the second XOR parity. 12. The method of claim 8 , further comprising storing each data page corresponding to the first stripe and the first parity page on different planes. 13. The method of claim 12 , further comprising storing each data page corresponding to the second stripe and the second parity page on different planes. 14. A memory device, comprising: a memory storage including at least two memory dies, each of the at least two memory dies includes at least two planes, wherein the memory storage is constructed with stripes, the stripes include at least a first stripe and a second stripe, the first stripe including data pages corresponding to the first stripe and a respective first parity page configured to store a first XOR parity of the first stripe, and the second stripe including data pages corresponding to the second stripe and a respective second parity page configured to store a second XOR parity of the second stripe; and a controller coupled with the memory storage and configured to store the data pages and respective parity pages being stored over a plurality of memory dies; and cyclically interleave the data pages corresponding to the first stripe and the data pages corresponding to the second stripe, wherein the same data pages on different planes in each of the memory dies are constructed into different stripes across the planes, and the number of stripes in each stripe group equals to the number of the planes in each of the memory dies, wherein the stripe group includes a number of stripes cyclically interleaved across all the planes in each of the memory dies. 15. The memory device of claim 14 , wherein the data pages are cyclically interleaved such that the first XOR parity is taken over a first group of data pages limited to one data page per plane. 16. The memory device of claim 15 , wherein the data pages are cyclically interleaved such that the second XOR parity is taken over a second group of data pages limited to one data page per plane. 17. The memory device of claim 14 , further comprising an error correcting code (ECC) unit configured to correct multiple errors in more than one plane. 18. The memory device of claim 17 , wherein the ECC unit is further configured to correct multiple errors in a single plane. 19. The memory device of claim 14 , wherein each data page corresponding to the first stripe and the first parity page are stored on different planes. 20. The memory device of claim 19 , wherein each data page corresponding to the second stripe and the second parity page are stored on different planes.

Assignees

Inventors

Classifications

  • H03M13/13Primary

    Linear codes · CPC title

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

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

  • G06F3/0619Primary

    in relation to data integrity, e.g. data losses, bit errors · CPC title

  • with specific ECC/EDC distribution · 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 US9996285B2 cover?
Memory systems may include a memory storage including at least a first stripe and a second stripe, the first stripe including data pages corresponding to the first stripe and a first parity page suitable for storing a first XOR parity, and the second stripe including data pages corresponding to the second stripe and a second parity page suitable for storing a second XOR parity, the data pages a…
Who is the assignee on this patent?
Sk Hynix Inc
What technology area does this patent fall under?
Primary CPC classification H03M13/13. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 12 2018 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).