US12321594B2ActiveUtilityA1

Clustered parity for NAND data placement schema

76
Assignee: MICRON TECHNOLOGY INCPriority: Mar 16, 2018Filed: Apr 21, 2023Granted: Jun 3, 2025
Est. expiryMar 16, 2038(~11.7 yrs left)· nominal 20-yr term from priority
G06F 3/0655G06F 3/0608G06F 3/0679G06F 11/1068
76
PatentIndex Score
0
Cited by
83
References
20
Claims

Abstract

Disclosed in some examples are improvements to data placement architectures in NAND that provide additional data protection through an improved NAND data placement schema that allows for recovery from certain failure scenarios. The present disclosure stripes data diagonally across page lines and planes to enhance the data protection. Parity bits are stored in SLC blocks for extra protection until the block is finished writing and then the parity bits may be deleted.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. A NAND memory device comprising:
 an NAND array of NAND memory cells organized into multiple planes and addressable by multiple page lines; and 
 a controller configured to perform operations comprising:
 storing a received data item in memory cells of the NAND array such that a first portion, a second portion and a third portion of the received data item are stored in memory cells in the NAND array such that the first portion, the second portion, and the third portion are on different page lines with respect to each other; 
 calculating a first parity value for the received data item using the first portion, the second portion, and the third portion; 
 assigning the first parity value for the received data item into a first position of a first parity cluster; 
 calculating a compressed parity value using the first parity value and a second parity value of a second parity cluster, the second parity value occupying a same first position in the second parity cluster as the first parity value, the second parity value a parity value of a first, a second, and a third portion of a second data item stored in second memory cells in the NAND array on different page lines and different planes with respect to each other; and 
 storing the compressed parity value in a portion of a NAND block that was used to store either the first or second parity value. 
 
 
     
     
       2. The NAND memory device of  claim 1 , wherein the first portion, the second portion, and the third portion are an upper page, lower page, and extra page. 
     
     
       3. The NAND memory device of  claim 1 , wherein the NAND memory cells are configurable as either Single Level Cell (SLC) or Multi-Level Cell (MLC), and wherein the compressed parity value is stored in cells that are configured as SLC. 
     
     
       4. The NAND memory device of  claim 1 , wherein the operations of calculating the compressed parity value comprises using the first parity value and the second parity value and a plurality of other parity values. 
     
     
       5. The NAND memory device of  claim 1 , wherein the operations of calculating the compressed parity value comprises XORing the first parity value and the second parity value. 
     
     
       6. The NAND memory device of  claim 1 , wherein the operations further comprise:
 receiving an indication that the first portion of the received data item that was read from the NAND array failed an Error Correction Code check during a read operation; and 
 recovering the first portion using the compressed parity value, the second and third portions of the received data item, and other portions of other data items corresponding to the compressed parity value. 
 
     
     
       7. The NAND memory device of  claim 1 , wherein the operations of calculating the compressed parity value using the first parity value and the second parity value comprises calculating the compressed parity value using sixteen parity values, including the first and second parity value. 
     
     
       8. A method comprising:
 storing a received data item in memory cells of a NAND array such that a first portion, a second portion and a third portion of the received data item are stored in memory cells in the NAND array such that the first portion, the second portion, and the third portion are on different page lines with respect to each other; 
 calculating a first parity value for the received data item using the first portion, the second portion, and the third portion; 
 assigning the first parity value for the received data item into a first position of a first parity cluster; 
 calculating a compressed parity value using the first parity value and a second parity value of a second parity cluster, the second parity value occupying a same first position in the second parity cluster as the first parity value, the second parity value a parity value of a first, a second, and a third portion of a second data item stored in second memory cells in the NAND array on different page lines and different planes with respect to each other; and 
 storing the compressed parity value in a portion of a NAND block that was used to store either the first or second parity value. 
 
     
     
       9. The method of  claim 8 , wherein the first portion, the second portion, and the third portion are an upper page, lower page, and extra page. 
     
     
       10. The method of  claim 8 , wherein the memory cells of the NAND array are configurable as either Single Level Cell (SLC) or Multi-Level Cell (MLC), and wherein the compressed parity value is stored in cells that are configured as SLC. 
     
     
       11. The method of  claim 8 , wherein calculating the compressed parity value comprises using the first parity value and the second parity value and a plurality of other parity values. 
     
     
       12. The method of  claim 8 , wherein calculating the compressed parity value comprises XORing the first parity value and the second parity value. 
     
     
       13. The method of  claim 8 , wherein the method further comprises:
 receiving an indication that the first portion of the received data item that was read from the NAND array failed an Error Correction Code check during a read operation; and 
 recovering the first portion using the compressed parity value, the second and third portions of the received data item, and other portions of other data items corresponding to the compressed parity value. 
 
     
     
       14. The method of  claim 8 , wherein calculating the compressed parity value using the first parity value and the second parity value comprises calculating the compressed parity value using sixteen parity values, including the first and second parity value. 
     
     
       15. A non-transitory, machine-readable medium, storing instructions, which when executed, cause a machine to perform operations comprising:
 storing a received data item in memory cells of a NAND array such that a first portion, a second portion and a third portion of the received data item are stored in memory cells in the NAND array such that the first portion, the second portion, and the third portion are on different page lines with respect to each other; 
 calculating a first parity value for the received data item using the first portion, the second portion, and the third portion; 
 assigning the first parity value for the received data item into a first position of a first parity cluster; 
 calculating a compressed parity value using the first parity value and a second parity value of a second parity cluster, the second parity value occupying a same first position in the second parity cluster as the first parity value, the second parity value a parity value of a first, a second, and a third portion of a second data item stored in second memory cells in the NAND array on different page lines and different planes with respect to each other; and 
 storing the compressed parity value in a portion of a NAND block that was used to store either the first or second parity value. 
 
     
     
       16. The non-transitory, machine-readable medium of  claim 15 , wherein the first portion, the second portion, and the third portion are an upper page, lower page, and extra page. 
     
     
       17. The non-transitory, machine-readable medium of  claim 15 , wherein the memory cells of the NAND array are configurable as either Single Level Cell (SLC) or Multi-Level Cell (MLC), and wherein the compressed parity value is stored in cells that are configured as SLC. 
     
     
       18. The non-transitory, machine-readable medium of  claim 15 , wherein the operations of calculating the compressed parity value comprises using the first parity value and the second parity value and a plurality of other parity values. 
     
     
       19. The non-transitory, machine-readable medium of  claim 15 , wherein the operations of calculating the compressed parity value comprises XORing the first parity value and the second parity value. 
     
     
       20. The non-transitory, machine-readable medium of  claim 15 , wherein the operations further comprise:
 receiving an indication that the first portion of the received data item that was read from the NAND array failed an Error Correction Code check during a read operation; and 
 recovering the first portion using the compressed parity value, the second and third portions of the received data item, and other portions of other data items corresponding to the compressed parity value.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.