Level dependent error correction code protection in multi-level non-volatile memory

US11527300B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11527300-B2
Application numberUS-202117213486-A
CountryUS
Kind codeB2
Filing dateMar 26, 2021
Priority dateAug 26, 2020
Publication dateDec 13, 2022
Grant dateDec 13, 2022

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.

A method, apparatus, and system for level dependent error correction code protection in multi-level non-volatile memory. A write command to write data to a non-volatile memory array may be received. At least one multi-level page of multi-level storage cells may be determined for the write data. A coding rate for the write data of the at least one multi-level page may be determined based on an attribute of the at least one multi-level page. An ECC codeword may be generated that satisfies the coding rate and includes the write data. The ECC codeword may then be stored on the at least one multi-level page.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: receiving a write command to write data to a non-volatile memory array; determining a multi-level page of multi-level storage cells for write data of the write command; determining a coding rate for write data of at least one multi-level page based on an attribute of the at least one multi-level page, wherein the attribute of the at least one multi-level page comprises a reliability attribute based on a relationship between data integrity among different multi-level pages on a same multi-level storage cell; generating an ECC codeword that satisfies the coding rate and includes the write data; and storing the ECC codeword on the at least one multi-level page. 2. The method of claim 1 , wherein the attribute comprises a reliability attribute based on a multi-level storage cell encoding configured to define a plurality of multi-level pages within a page of the non-volatile memory array such that two or more of the plurality of multi-level pages have different reliability attributes. 3. The method of claim 2 , wherein the multi-level storage cell encoding defines one memory state transition for a lower multi-level page, two memory state transitions for a middle multi-level page, six memory state transitions for an upper multi-level page, and six memory state transitions for a top multi-level page. 4. The method of claim 2 , wherein the multi-level storage cell encoding defines one memory state transition for a lower multi-level page, two memory state transitions for a middle multi-level page, four memory state transitions for an upper multi-level page, and eight memory state transitions for a top multi-level page. 5. The method of claim 2 , wherein the multi-level storage cell encoding defines two memory state transitions for a lower multi-level page, three memory state transitions for a middle multi-level page, five memory state transitions for an upper multi-level page, and five memory state transitions for a top multi-level page. 6. The method of claim 1 , wherein the attribute comprises a bit error rate for the at least one multi-level page. 7. The method of claim 1 , wherein the attribute comprises a type of multi-level page and the type comprises one of a lower multi-level page, a middle multi-level page, an upper multi-level page, and a top multi-level page. 8. The method of claim 1 , wherein the attribute comprises a number of read levels defined for the at least one multi-level page by a multi-level storage cell encoding. 9. The method of claim 1 , wherein the attribute comprises a reliability attribute and determining a coding rate for write data of the at least one multi-level page comprises increasing a coding rate for the at least one multi-level page in response to the at least one multi-level page having a greater reliability attribute than other multi-level pages. 10. The method of claim 1 , wherein the ECC codeword comprises a payload and a parity section and wherein determining the coding rate further comprises: increasing a payload size of the payload in response to the attribute indicating greater data integrity for data stored on the at least one multi-level page relative to data stored on another multi-level page stored on the multi-level storage cells; decreasing a parity size of the parity section in response to, and by a same amount as, the increased payload size; decreasing the payload size of the payload in response to the attribute indicating less data integrity for data stored on the at least one multi-level page relative to data stored on another multi-level page stored on the multi-level storage cells; increasing a parity size of the parity section in response to, and by the same amount as, the decreased payload size; and wherein the parity size changes in proportion to the payload size such that the ECC codeword maintains a same size. 11. The method of claim 1 , wherein the non-volatile memory array comprises NAND memory cells and the multi-level storage cell encoding is configured to divide up a threshold voltage (Vt) window into a plurality of memory states and assign a binary encoding to each memory state, the binary encoding configured such that each bit in the binary encoding represents a binary value on each multi-level page of a plurality of multi-level pages and wherein the binary encoding is assigned according to a gray code encoding. 12. An apparatus, comprising: an address allocator configured to determine a multi-level page to store a set of data blocks associated with a set of write commands; and a packetizer configured to: combine the set of data blocks into a payload for an ECC codeword; change a payload size for the payload in response to a reliability attribute of the determined multi-level page satisfying a threshold, wherein the reliability attribute is based on a relationship between data integrity among different multi-level pages on a same multi-level storage cell; and signal the changed payload size to an error correction code encoder configured to generate the ECC codeword. 13. The apparatus of claim 12 , wherein the packetizer is configured to increase the payload size in response to the reliability attribute identifying the multi-level page as having higher data integrity than another multi-level page configured to be stored on a physical page that is also configured to store the multi-level page. 14. The apparatus of claim 12 , wherein the ECC codeword comprises the payload and a parity section and the error correction code encoder is configured proportionally change the parity section in response to the packetizer changing the payload size such that the ECC codeword remains a same size as ECC codewords for which the packetizer does not change the payload size. 15. The apparatus of claim 12 , wherein each data block comprises a set of data sectors and the packetizer is configured to change the payload size by adding or removing data sectors to a default payload size and the error correction code encoder is configured to proportionally change a parity size by adding or removing redundancy data sized to have the same size as the added or removed data sectors. 16. The apparatus of claim 12 , wherein the packetizer is configured to set a flag to signal the changed payload size to the error correction code encoder. 17. A system, comprising: a non-volatile memory array comprising Quad-level Cell (QLC) memory cells; and a storage controller comprising: a flash translation layer configured to: convert a logical block address (LBA) of a storage command into a physical block address (PBA) assigned to a multi-level page of QLC memory cells; and associate write data of a plurality of write commands with the multi-level page, the multi-level page having a type selected from the group consisting of a lower multi-level page, a middle multi-level page, an upper multi-level page, and a top multi-level page; an error correction code encoder configured to: generate ECC codewords for the write data assigned to the multi-level page; adjust an ECC strength for the generated ECC codewords in response to the multi-level page comprising at least one type, wherein the at least one type of the multi-level page provides a relationship between data integrity among different multi-level pages on a same multi-level storage cell; and a read/write circuit configured to store the ECC codewords on the multi-level page in response to write commands. 18. The system of claim 17 , wherein the lower multi-level page is configured to include a single memory state transition

Assignees

Inventors

Classifications

  • in multilevel memories · CPC title

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

  • G11C29/42Primary

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

  • Accessing extra cells, e.g. dummy cells or redundant cells · CPC title

  • Logical to physical mapping or translation of blocks or pages · 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 US11527300B2 cover?
A method, apparatus, and system for level dependent error correction code protection in multi-level non-volatile memory. A write command to write data to a non-volatile memory array may be received. At least one multi-level page of multi-level storage cells may be determined for the write data. A coding rate for the write data of the at least one multi-level page may be determined based on an a…
Who is the assignee on this patent?
Western Digital Tech Inc
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 Dec 13 2022 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).