IP Library Granted Patent US 12,339,741
Granted Patent B2
US 12,339,741 · App. 18/132,686 · Granted Jun 24, 2025

Bit efficient memory error correcting coding and decoding scheme

Inventors: Fabrice Aidan (Ramat HaSharon, IL); Evgeni Krimer (Haifa, IL)
Assignee: Google LLC
G06F11/1044H03M13/1515H03M13/613
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,339,741
App. No.
18/132,686
Granted
Jun 24, 2025
Kind
B2
Abstract

Aspects of the disclosed technology include techniques and mechanisms for an efficient error correction coding scheme that can detect and correct data errors that may occur in a memory. In general, the scheme comprises segmenting the data that would be transferred as part of a data request into different parts and applying error correction codes to the separate parts.

Claims (32)

1. A method for encoding data associated with a request access for one or more DRAMs, comprising:

segmenting a number of beats defined for a burst access to the one or more DRAMs into at least a first set of beats and a second set of beats;

defining a first set of error correction code (ECC) for a first set of data associated with the first set of beats; and

defining a second set of ECC for a second set of data associated with the second set of beats;

wherein one of the first set of ECC comprises a first set of symbols, each symbol of the first set being associated with the first set of beats,

wherein one of the second set of ECC comprises a second set of symbols, each symbol of the second set of symbols being associated with the second set of beats, wherein the first set of symbols comprises a different number of symbols than the second set of symbols and an error associated with the second set of ECC is correctable using information of the first set of ECC, and wherein the second set of ECC comprises one or more symbols used for storing metadata, the metadata being associated with a memory tag extension.

2. The method of claim 1 , wherein the first set of beats and the second set of beats equal the number of beats defined for the burst access.

3. The method of claim 1 , wherein the one or more DRAMs comprise DDR5 DRAMs and the number of beats defined for the burst access comprises 16 beats.

4. The method of claim 3 , wherein the first set of beats and second set of beats each comprise 8 beats.

5. The method of claim 4 , wherein the one or more DRAMs each include 4 data pins.

6. The method of claim 5 , wherein the one or more DRAMs comprise 10 DRAMs and the first set of error correction code comprises a Reed Solomon with code 8 ECCs for 32 data symbols and 8 bits/symbol such as RS (40, 32, 8).

7. The method of claim 6 , wherein the second set of error correction code comprises a Reed Solomon code with 8 ECCs for 32 data symbols and 8 bits/symbol such as RS(40, 32, 8).

8. The method of claim 7 , comprising defining a second 4 byte symbol associated with the second set of ECC, the second 4 byte symbol comprising the metadata.

9. The method of claim 1 , wherein the number of the second set of symbols is half the number of the first set of symbols.

10. A memory system, comprising:

one or more DRAMs; and

a memory controller communicatively coupled to the one or more DRAMs, the memory controller having logic that implements the following function in response to a request access to the one or more DRAMs:

segment a number of beats defined for a burst access to the one or more DRAMs in at least a first set of beats and a second set of beats;

define a first set of error correction code (ECC) for a first set of data associated with the first set of beats;

define a second set of ECC for a second set of data associated with the second set of beats;

wherein one of the first set of ECC comprises a first set of symbols, each symbol of the first set being associated with the first set of beats,

wherein one of the second set of ECC comprises a second set of symbols, each symbol of the second set of symbols being associated with the second set of beats, wherein the first set of symbols comprises a different number of symbols than the second set of symbols and an error associated with the second set of ECC is correctable using information of the first set of ECC, and wherein the second set of ECC comprises one or more symbols used for storing metadata, the metadata being associated with a memory tag extension.

11. The memory system of claim 10 , wherein the first set of beats and the second set of beats equal the number of beats defined for the burst access.

12. The memory system of claim 10 , wherein the one or more DRAMs comprises DDR5 DRAMs and the number of beats defined for the burst access comprises 16 beats.

13. The memory system of claim 12 , wherein the first set of beats and the second set of beats each comprise 8 beats.

14. The memory system of claim 13 , wherein the one or more DRAMs each include 4 data pins.

15. The memory system of claim 14 , wherein the one or more DRAMs comprise 10 DRAMs and the first set of error correction code comprises a Reed Solomon code with 8 ECCs for 32 data symbols and 8 bits/symbol such as RS (40, 32, 8).

16. The memory system of claim 14 , wherein the second set of error correction code comprises a Reed Solomon code with 8 ECCs for 32 data symbols and 8 bits/symbol such as RS (40, 32, 8).

17. The memory system of claim 16 , wherein the logic functions to define a second 4 byte symbol associated with the second set of ECC, the second 4 byte symbol comprising the metadata.

18. The memory system of claim 10 , wherein the logic comprises hardware logic comprising an encoder and a decoder.

19. The memory system of claim 18 , wherein the encoder encodes the first set of data using the first set of ECC in a first cycle of a 64 byte transaction and the encoder encodes the second set of data using the second set of ECC in a second cycle of the 64 byte transaction.

20. The memory system of claim 18 , wherein the decoder decodes the first set of data using the first set of ECC in a first cycle of a 64 byte transaction and the decoder decodes the second set of data using the second set of ECC in a second cycle of the 64 byte transaction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2023
From: AIDAN, FABRICE; KRIMER, EVGENI
To: GOOGLE LLC
Reel/Frame 063285/0392 →
Continuity (2)
Provisional Application 63448488 · Feb 27, 2023
Related Publication 20240289212A1 · Aug 29, 2024
References Cited (22)
US 9189323B2 · Hida · 2015 [cited by examiner]
US 11625296B2 · Niu · 2023 [cited by examiner]
US 11675662B2 · Schaefer · 2023 [cited by examiner]
US 11726665B1 · Sabbag · 2023 [cited by examiner]
US 20140164871A1 · Franceschini et al. · 2014 [cited by applicant]
US 20150143185A1 · Motwani · 2015 [cited by examiner]
US 20150200685A1 · Kawano · 2015 [cited by examiner]
US 20170004035A1 · Suh · 2017 [cited by examiner]
US 20180095821A1 · Vogt · 2018 [cited by examiner]
US 20180254079A1 · Cox · 2018 [cited by examiner]
US 20190188074A1 · Coteus et al. · 2019 [cited by applicant]
US 20190227869A1 · Bradshaw · 2019 [cited by examiner]
US 20190296774A1 · Uchikawa · 2019 [cited by examiner]
US 20200133769A1 · Bains · 2020 [cited by examiner]
US 20200249840A1 · Chen · 2020 [cited by examiner]
US 20210141692A1 · Agarwal · 2021 [cited by examiner]
US 20220157398A1 · Cunningham · 2022 [cited by examiner]
EP 3198440B1 · 2021 [cited by applicant]
WO 2022139849A1 · 2022 [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2023/028356 dated Oct. 31, 2023. 11 pages. [cited by applicant]
Kim et al., “Bamboo ECC: Strong, Safe, and Flexible Codes for Reliable Computer Memory,” 2015 IEEE 21st International Symposium on High Performance Computer Architecture (HPCA), Burlingame, CA, USA, 2015. 12 pages. [cited by applicant]
Kim and Erez, “Balancing Reliability, Cost, and Performance Tradeoffs with FreeFault,” 2015 IEEE 21st International Symposium on High Performance Computer Architecture (HPCA), Burlingame, CA, USA, 2015. 13 pages. [cited by applicant]