IP Library Granted Patent US 12,277,979
Granted Patent B2
US 12,277,979 · App. 18/527,978 · Granted Apr 15, 2025

NAND data placement schema

Inventors: Carminantonio Manganelli (Benevento, IT); Paolo Papa (Naples, IT); Massimo Iaculo (San Marco Evangelista, IT); Giuseppe D'Eliseo (Caserta, IT); Alberto Sassara (Naples, IT)
Assignee: Micron Technology, Inc.
G11C16/3459G11C16/102G11C16/26G11C29/42H03K19/02H03K19/21
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,277,979
App. No.
18/527,978
Granted
Apr 15, 2025
Kind
B2
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 (36)

1. A memory controller device comprising:

a hardware processor configured to perform operations comprising:

receiving a data item from a host over a host interface;

programming a first portion of the received data item into an array of NAND memory cells organized into multiple planes and multiple pages at a first page of the multiple pages and at a first plane of the multiple planes;

programming a second portion of the received data item into the array at a second page of the multiple pages and at a second plane of the multiple planes, the second page being assigned a page line number greater than a page line number of the first page;

programming a third portion of the received data item into the array at a third page of the multiple pages and at a third plane of the multiple planes, the third page being assigned a page line number greater than the page line number of the second page; and

programming a fourth portion of the received data item into the array at a fourth page of the multiple pages and at a fourth plane of the multiple planes, the fourth page being assigned a page line number greater than the page line number assigned to the third page; and

wherein each data portion of the received data item is programmed on a different page line than every other data portion.

2. The memory controller device of claim 1 , wherein the first portion, second portion, third portion, and fourth portion each comprise one of a lower page, an upper page, an extra page, or a copy of one of the lower page, upper page, or extra page.

3. The memory controller device of claim 1 , wherein the hardware processor is further configured to calculate a parity value for the received data item based on the first portion, the second portion, and the third portion.

4. The memory controller device of claim 3 , wherein the hardware processor is further configured to store the parity value in a separate block of single-level cell (SLC) NAND memory cells.

5. The memory controller device of claim 1 , wherein the hardware processor is further configured to: assign a parity value calculated for the received data item to a first position of a parity cluster, the parity cluster comprising parity values for multiple received data items; and calculate a compressed parity value by performing an XOR operation on parity values occupying the first position in the parity cluster.

6. The memory controller device of claim 5 , wherein the hardware processor is further configured to recover a corrupted portion of the received data item by performing an XOR operation on the compressed parity value and non-corrupted portions of the received data item.

7. The memory controller device of claim 1 , wherein the hardware processor is further configured to shift an assignment of which data portion corresponds to a lower page, an upper page, and an extra page for each grouping of multiple received data items.

8. A method comprising:

receiving a data item from a host over a host interface; programming a first portion of the received data item into an array of NAND memory cells organized into multiple planes and multiple pages at a first page of the multiple pages and at a first plane of the multiple planes;

programming a second portion of the received data item into the array at a second page of the multiple pages and at a second plane of the multiple planes, the second page being assigned a page line number greater than a page line number of the first page;

programming a third portion of the received data item into the array at a third page of the multiple pages and at a third plane of the multiple planes, the third page being assigned a page line number greater than the page line number of the second page; and

programming a fourth portion of the received data item into the array at a fourth page of the multiple pages and at a fourth plane of the multiple planes, the fourth page being assigned a page line number greater than the page line number assigned to the third page; and

wherein each data portion of the received data item is programmed on a different page line than every other data portion.

9. The method of claim 8 , wherein the first portion, second portion, third portion, and fourth portion each comprise one of a lower page, an upper page, an extra page, or a copy of one of the lower page, upper page, or extra page.

10. The method of claim 8 , further comprising calculating a parity value for the received data item based on the first portion, the second portion, and the third portion.

11. The method of claim 10 , further comprising storing the parity value in a separate block of single-level cell (SLC) NAND memory cells.

12. The method of claim 8 , further comprising: assigning a parity value calculated for the received data item to a first position of a parity cluster, the parity cluster comprising parity values for multiple received data items; and calculating a compressed parity value by performing an XOR operation on parity values occupying the first position in the parity cluster.

13. The method of claim 12 , further comprising recovering a corrupted portion of the received data item by performing an XOR operation on the compressed parity value and non-corrupted portions of the received data item.

14. The method of claim 8 , further comprising shifting an assignment of which data portion corresponds to a lower page, an upper page, and an extra page for each grouping of multiple received data items.

15. A machine-readable medium, storing instructions, which when executed by a machine, cause the machine to perform operations comprising:

receiving a data item from a host over a host interface; programming a first portion of the received data item into an array of NAND memory cells organized into multiple planes and multiple pages at a first page of the multiple pages and at a first plane of the multiple planes;

programming a second portion of the received data item into the array at a second page of the multiple pages and at a second plane of the multiple planes, the second page being assigned a page line number greater than a page line number of the first page;

programming a third portion of the received data item into the array at a third page of the multiple pages and at a third plane of the multiple planes, the third page being assigned a page line number greater than the page line number of the second page; and

programming a fourth portion of the received data item into the array at a fourth page of the multiple pages and at a fourth plane of the multiple planes, the fourth page being assigned a page line number greater than the page line number assigned to the third page; and wherein each data portion of the received data item is programmed on a different page line than every other data portion.

16. The machine-readable medium of claim 15 , wherein the first portion, second portion, third portion, and fourth portion each comprise one of a lower page, an upper page, an extra page, or a copy of one of the lower page, upper page, or extra page.

17. The machine-readable medium of claim 15 , wherein the operations further comprise calculating a parity value for the received data item based on the first portion, the second portion, and the third portion.

18. The machine-readable medium of claim 17 , wherein the operations further comprise storing the parity value in a separate block of single-level cell (SLC) NAND memory cells.

19. The machine-readable medium of claim 15 , wherein the operations further comprise: assigning a parity value calculated for the received data item to a first position of a parity cluster, the parity cluster comprising parity values for multiple received data items; and calculating a compressed parity value by performing an XOR operation on parity values occupying the first position in the parity cluster.

20. The machine-readable medium of claim 19 , wherein the operations further comprise recovering a corrupted portion of the received data item by performing an XOR operation on the compressed parity value and non-corrupted portions of the received data item.

Continuity (5)
Continuation 18075027 · Dec 5, 2022
Continuation 16488681
Provisional Application 62675451 · May 23, 2018
Provisional Application 62644248 · Mar 16, 2018
Related Publication 20240112745A1 · Apr 4, 2024
References Cited (69)
US 5191584A · Anderson · 1993 [cited by applicant]
US 7966462B2 · Lee · 2011 [cited by examiner]
US 9720609B1 · Yan et al. · 2017 [cited by applicant]
US 10101942B1 · Parker et al. · 2018 [cited by applicant]
US 11521690B2 · Manganelli et al. · 2022 [cited by applicant]
US 11635894B2 · Papa et al. · 2023 [cited by applicant]
US 20010007119A1 · Katayama et al. · 2001 [cited by applicant]
US 20070079056A1 · Nakamura et al. · 2007 [cited by applicant]
US 20070143570A1 · Gorobets et al. · 2007 [cited by applicant]
US 20110138222A1 · Haines et al. · 2011 [cited by applicant]
US 20110228601A1 · Olbrich et al. · 2011 [cited by applicant]
US 20120317340A1 · So et al. · 2012 [cited by applicant]
US 20130166825A1 · Kim et al. · 2013 [cited by applicant]
US 20140040661A1 · Goel · 2014 [cited by applicant]
US 20140056070A1 · Tanzawa · 2014 [cited by applicant]
US 20140281813A1 · Wakchaure et al. · 2014 [cited by applicant]
US 20150143185A1 · Motwani · 2015 [cited by applicant]
US 20150220385A1 · Wood et al. · 2015 [cited by applicant]
US 20150347020A1 · Yano et al. · 2015 [cited by applicant]
US 20150349805A1 · Tsai et al. · 2015 [cited by applicant]
US 20150363266A1 · Hu et al. · 2015 [cited by applicant]
US 20160085625A1 · Amato et al. · 2016 [cited by applicant]
US 20170293527A1 · Shappir et al. · 2017 [cited by applicant]
US 20170315867A1 · Yang et al. · 2017 [cited by applicant]
US 20170315868A1 · Yang et al. · 2017 [cited by applicant]
US 20170315909A1 · Yang et al. · 2017 [cited by applicant]
US 20170317693A1 · Yang et al. · 2017 [cited by applicant]
US 20170323684A1 · Tailliet et al. · 2017 [cited by applicant]
US 20180046543A1 · Canepa et al. · 2018 [cited by applicant]
US 20180129430A1 · Kang et al. · 2018 [cited by applicant]
US 20180285195A1 · Yang · 2018 [cited by examiner]
US 20190065306A1 · Margetts · 2019 [cited by applicant]
US 20200043556A1 · Moon et al. · 2020 [cited by applicant]
US 20210335432A1 · Manganelli et al. · 2021 [cited by applicant]
US 20210357127A1 · Papa et al. · 2021 [cited by applicant]
US 20230100916A1 · Manganelli et al. · 2023 [cited by applicant]
US 20230367478A1 · Papa et al. · 2023 [cited by applicant]
CN 1881471A · 2006 [cited by applicant]
CN 101933095A · 2010 [cited by applicant]
CN 105279115A · 2016 [cited by applicant]
CN 106445724 · 2017 [cited by applicant]
CN 107423158A · 2017 [cited by applicant]
CN 112074816A · 2020 [cited by applicant]
CN 112074908A · 2020 [cited by applicant]
KR 20120055725A · 2012 [cited by applicant]
KR 20170131797A · 2017 [cited by applicant]
WO WO2019178538A1 · 2019 [cited by applicant]
WO WO2019178545A1 · 2019 [cited by applicant]
US 11,869,606 B2, 01/2024, Manganelli et al. (withdrawn) [cited by applicant]
“European Application Serial No. 19767519.2, Communication Pursuant to Article 94(3) EPC mailed Nov. 24, 2023”, 5 pgs. [cited by applicant]
“Chinese Application Serial No. 201980029446.8, Office Action mailed Jan. 12, 2024”, with English translation, 11 pages. [cited by applicant]
U.S. Appl. No. 16/488,681 U.S. Pat. No. 11,521,690, filed Aug. 26, 2019, NAND Data Placement. [cited by applicant]
U.S. Appl. No. 18/075,027, filed Dec. 5, 2022, NAND Data Placement Schema. [cited by applicant]
U.S. Appl. No. 16/488,696 U.S. Pat. No. 11,635,894 filed Aug. 26, 2019, Clustered Parity for NAND Data Placement Schema. [cited by applicant]
U.S. Appl. No. 18/137,820, filed Apr. 21, 2023, Clustered Parity for NAND Data Placement Schema. [cited by applicant]
“Chinese Application Serial No. 201980029379.X, Office Action mailed Sep. 28, 2023”, with machine English translation, 12 pages. [cited by applicant]
“European Application Serial No. 19767519.2, Extended European Search Report mailed Sep. 23, 2021”, 7 pgs. [cited by applicant]
“European Application Serial No. 19767519.2, Response filed Jul. 22, 2022 to Extended European Search Report mailed Sep. 23, 2021”, 113 pgs. [cited by applicant]
“International Application Serial No. PCT/US2019/022576, International Preliminary Report on Patentability mailed Oct. 1, 2020”, 7 pgs. [cited by applicant]
“International Application Serial No. PCT/US2019/022576, International Search Report mailed Jul. 2, 2019”, 3 pgs. [cited by applicant]
“International Application Serial No. PCT/US2019/022576, Written Opinion mailed Jul. 2, 2019”, 5 pgs. [cited by applicant]
“International Application Serial No. PCT/US2019/022587, International Preliminary Report on Patentability mailed Oct. 1, 2020”, 8 pgs. [cited by applicant]
“International Application Serial No. PCT/US2019/022587, International Search Report mailed Jul. 2, 2019”, 3 pgs. [cited by applicant]
“International Application Serial No. PCT/US2019/022587, Written Opinion mailed Jul. 2, 2019”, 6 pgs. [cited by applicant]
“Korean Application Serial No. 10-2020-7029653, Notice of Preliminary Rejection mailed Mar. 30, 2022”, W/English Translation, 8 pgs. [cited by applicant]
“Korean Application Serial No. 10-2020-7029653, Notice of Preliminary Rejection mailed Sep. 9, 2021”, w/ English translation, 7 pgs. [cited by applicant]
“Korean Application Serial No. 10-2020-7029653, Response filed Jul. 28, 2022 to Notice of Preliminary Rejection mailed Mar. 30, 2022”, with English claims, 19 pages. [cited by applicant]
Weingarten, Hanan, “Storage Controller Technologies for Next Generation Non-Volatile Memories”, Flash Memory Summit 2016 Santa Clara, CA, [Online]. Retrieved from the Internet: <https://www.flashmemorysummit.com/English… [cited by applicant]
Weingarten,, Hanan, “NAND Flash PHY Units for Advanced SSD Design”, Flash Memory Summit 2013 Santa Clara, CA, [Online]. Retrieved from the Internet: <https://www.flashmemorysummit.com/English/Collaterals/Proceedings/201… [cited by applicant]