IP Library Granted Patent US 12,379,992
Granted Patent B2
US 12,379,992 · App. 18/334,938 · Granted Aug 5, 2025

System and method for protecting data

Inventors: Majid Anaraki Nemati (San Diego, CA); Terry M. Grunzke (Boise, ID); Brett K. Dodds (Boise, ID)
Assignee: Microsoft Technology Licensing, LLC
G06F11/1068G06F11/0793G06F11/1072G06F11/1076G06F11/108G06F11/1088G06F11/1092G06F11/1096
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,379,992
App. No.
18/334,938
Granted
Aug 5, 2025
Kind
B2
Abstract

A method, computer program product, and computing system for defining one or more encoded symbols for data included within each of a plurality of memory dies of a memory module to define one or more groups of encoded symbols; generating Reed-Solomon parities for each group of encoded symbols; and recovering one or more portions of the data included within each of the plurality of memory dies of the memory module in the event of data corruption or die failure using one or more of the encoded symbols and the Reed-Solomon parities.

Claims (30)

1. A computer-implemented method, executed on a computing device, comprising:

defining one or more encoded symbols for data included within each of a plurality of memory dies of a memory module to define one or more groups of encoded symbols, wherein the one or more encoded symbols for data included within each of the plurality of memory dies of the memory module includes two 4-bit encoded symbols for data included within each of the plurality of memory dies of the memory module;

generating Reed-Solomon parities for each group of encoded symbols, wherein generating the Reed Solomon parities for each group includes generating two distinct Reed-Solomon parities with one Reed-Solomon parity for each of the two groups of 4-bit encoded symbols with one 4-bit symbol available for storing 4-bits of metadata; and

recovering one or more portions of the data included within each of the plurality of memory dies of the memory module in the event of data corruption or die failure using one or more of the encoded symbols and the Reed-Solomon parities.

2. The computer implemented method of claim 1 wherein the one or more encoded symbols for data included within each of a plurality of memory dies of a memory module includes:

one 8-bit encoded symbol for data included within each of a plurality of memory dies of a memory module, thus defining one group of 8-bit encoded symbols.

3. The computer implemented method of claim 2 wherein generating Reed-Solomon parities for each group of encoded symbols includes:

generating the Reed-Solomon parities for the one group of 8-bit encoded symbols.

4. The computer implemented method of claim 1 wherein:

the one or more encoded symbols includes one or more Single Error Correction/Double Error Detection (SECDED) encoded symbols.

5. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

defining one or more encoded symbols for data included within each of a plurality of memory dies of a memory module to define one or more groups of encoded symbols, wherein the one or more encoded symbols for data included within each of the plurality of memory dies of the memory module includes two 4-bit encoded symbols for data included within each of the plurality of memory dies of the memory module;

generating Reed-Solomon parities for each group of encoded symbols, wherein generating the Reed Solomon parities for each group includes generating two distinct Reed-Solomon parities with one Reed-Solomon parity for each of the two groups of 4-bit encoded symbols with one 4-bit symbol available for storing 4-bits of metadata; and

recovering one or more portions of the data included within each of the plurality of memory dies of the memory module in the event of data corruption or die failure using one or more of the encoded symbols and the Reed-Solomon parities.

6. The computer program product of claim 5 wherein the one or more encoded symbols for data included within each of a plurality of memory dies of a memory module includes:

one 8-bit encoded symbol for data included within each of a plurality of memory dies of a memory module, thus defining one group of 8-bit encoded symbols.

7. The computer program product of claim 6 wherein generating Reed-Solomon parities for each group of encoded symbols includes:

generating the Reed-Solomon parities for the one group of 8-bit encoded symbols.

8. The computer program product of claim 5 wherein:

the one or more encoded symbols includes one or more Single Error Correction/Double Error Detection (SECDED) encoded symbols.

9. A computing system including a processor and memory configured to perform operations comprising:

defining one or more encoded symbols for data included within each of a plurality of memory dies of a memory module to define one or more groups of encoded symbols, wherein the one or more encoded symbols for data included within each of the plurality of memory dies of the memory module includes two 4-bit encoded symbols for data included within each of the plurality of memory dies of the memory module;

generating Reed-Solomon parities for each group of encoded symbols, wherein generating the Reed Solomon parities for each group includes generating two distinct Reed-Solomon parities with one Reed-Solomon parity for each of the two groups of 4-bit encoded symbols with one 4-bit symbol available for storing 4-bits of metadata; and

recovering one or more portions of the data included within each of the plurality of memory dies of the memory module in the event of data corruption or die failure using one or more of the encoded symbols and the Reed-Solomon parities.

10. The computing system of claim 9 wherein the one or more encoded symbols for data included within each of a plurality of memory dies of a memory module includes:

one 8-bit encoded symbol for data included within each of a plurality of memory dies of a memory module, thus defining one group of 8-bit encoded symbols.

11. The computing system of claim 10 wherein generating Reed-Solomon parities for each group of encoded symbols includes:

generating the Reed-Solomon parities for the one group of 8-bit encoded symbols.

12. The computing system of claim 9 wherein:

the one or more encoded symbols includes one or more Single Error Correction/Double Error Detection (SECDED) encoded symbols.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2023
From: NEMATI, MAJID ANARAKI; GRUNZKE, TERRY M.; DODDS, BRETT K.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063952/0198 →
Continuity (1)
Related Publication 20240419539A1 · Dec 19, 2024
References Cited (38)
US 5206864A · McConnell · 1993 [cited by examiner]
US 5948118A · Higurashi · 1999 [cited by examiner]
US 7711068B2 · Shokrollahi · 2010 [cited by examiner]
US 8037389B2 · Hwang · 2011 [cited by applicant]
US 9183085B1 · Northcott · 2015 [cited by applicant]
US 9236976B2 · Shokrollahi · 2016 [cited by examiner]
US 11340986B1 · Yadav · 2022 [cited by examiner]
US 12099457B2 · Confalonieri · 2024 [cited by examiner]
US 20030237041A1 · Cole · 2003 [cited by examiner]
US 20050060628A1 · Spencer · 2005 [cited by examiner]
US 20110019769A1 · Shokrollahi · 2011 [cited by examiner]
US 20120137195A1 · Bueb · 2012 [cited by examiner]
US 20160147598A1 · Muralimanohar · 2016 [cited by applicant]
US 20170249207A1 · Sharon · 2017 [cited by applicant]
US 20170271029A1 · Wang · 2017 [cited by examiner]
US 20190349349A1 · Layouni · 2019 [cited by examiner]
US 20190384671A1 · Chen et al. · 2019 [cited by applicant]
US 20200082900A1 · Amato · 2020 [cited by applicant]
US 20200394104A1 · Brooks · 2020 [cited by applicant]
US 20210194506A1 · Symons · 2021 [cited by applicant]
US 20220107751A1 · Gorobets · 2022 [cited by applicant]
US 20220200654A1 · Baier · 2022 [cited by examiner]
US 20220221997A1 · Navon · 2022 [cited by examiner]
US 20220221999A1 · Navon · 2022 [cited by examiner]
US 20230136990A1 · Ning · 2023 [cited by examiner]
US 20230141358A1 · Aldana · 2023 [cited by examiner]
US 20230164015A1 · Kim · 2023 [cited by examiner]
US 20230359367A1 · Nemati · 2023 [cited by examiner]
US 20230421179A1 · Aldana · 2023 [cited by examiner]
US 20240419541A1 · Nemati · 2024 [cited by applicant]
Rhee et al., Concatenated Reed-Solomon Code with Hamming Code for DRAM Controller, 2010, IEEE, pp. 291-295. (Year: 2010). [cited by examiner]
Chen et al., Error-Correcting Codes for Semiconductor Memory Applications: A State-of-the-Art Review, Mar. 1984, IBM, vol. 28 ⋅ No. 2, pp. 124-134. (Year: 1984). [cited by examiner]
Dutta et al., Multiple Bit Upset Tolerant Memory Using a Selective Cycle Avoidance Based SEC-DED-DAEC Code, 2007, IEEE, pp. 1-6 (Year: 2007). [cited by examiner]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/032334, Sep. 11, 2024, 13 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/033473, Nov. 7, 2024, 17 pages. [cited by applicant]
Invitation To Pay Additional Fees received for PCT Application No. PCT/US2024/033473 Sep. 16, 2024, 9 pages. [cited by applicant]
Notice of Allowance mailed on Feb. 12, 2025, in U.S. Appl. No. 18/336,900, 08 pages. [cited by applicant]
Non-Final Office Action mailed on Oct. 1, 2024, in U.S. Appl. No. 18/336,900, 14 pages. [cited by applicant]