IP Library › Granted Patent US 12,242,342
Granted Patent B2
US 12,242,342 · App. 17/550,859 · Granted Mar 4, 2025

Fast memory ECC error correction

Inventors: Jing Ling (Milpitas, CA); Wei P. Chen (Portland, OR); Rajat Agarwal (Portland, OR)
Assignee: Intel Corporation
G06F11/1068G06F11/1402
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,242,342
App. No.
17/550,859
Granted
Mar 4, 2025
Kind
B2
Abstract

A memory controller having an error checking and correction (ECC) circuitry can detect an error in data being read from memory and correct that error with a retry flow without needing to send another read to the memory for the data. The read data is stored in a read data buffer (RDB) at the memory controller when the read data is received from memory. The memory controller has an error detection path from the RDB to the host and an error correction path. Read data that has no errors can be sent directly to the host. Instead of flushing the RDB in response to the error detection, the memory controller executes a retry flow, where the RDB provides the read data to the error correction path for error correction.

Claims (31)

1. A memory controller, comprising:

a read data buffer (RDB) circuit to store multiple read data elements from a memory in response to a series of read commands, including a first data element in response to a first read command;

error detection logic on a first data path from the RDB circuit to a host to perform error checking and correction (ECC) error detection on the first data element from the RDB circuit, and provide the first data element to the host in response to detection of no errors in the first data element and generate an error detection signal in response to detection of an error in the first data element; and

error correction logic on a second data path from the RDB circuit to the host, in response to the error detection signal, to receive the first data element from the RDB instead of retrieving the first data element from the memory with a second read command, and to perform error correction on the first data element before providing the first data element to the host.

2. The memory controller of claim 1 , further comprising command logic to send a retry command to the RDB circuit in response to the error detection signal.

3. The memory controller of claim 1 , further comprising error manager logic to generate an early read valid signal for each of the series of read commands to indicate that the error detection logic is ready to a corresponding data element from the RDB.

4. The memory controller of claim 3 , wherein data elements in the RDB with a corresponding early read valid are not flushed from the RDB in response to the error detection signal, and data elements without a corresponding early read valid signal are flushed from the RDB in response to the error detection signal.

5. The memory controller of claim 3 , wherein the RDB is to stop receiving new read data elements until the error correction logic completes the error correction on the first data element.

6. The memory controller of claim 1 , further comprising reordering logic to receive the first data element from the error correction logic and reorder a series of data elements to be sent to the host, from an order of receipt to an order of the series of read commands.

7. The memory controller of claim 1 , wherein the error correction logic comprises circuitry to perform single device data correction (SDDC).

8. The memory controller of claim 1 , wherein the error correction logic comprises error correction circuitry that takes more than 2 cycles for a read data element to propagate through.

9. The memory controller of claim 1 , wherein the RDB circuit is a scratchpad memory.

10. A computer system, comprising:

a processor; and

a memory controller including:

a read data buffer (RDB) circuit to store multiple read data elements from a memory in response to a series of read commands, including a first data element in response to a first read command;

error detection logic on a first data path from the RDB circuit to a host to perform error checking and correction (ECC) error detection on the first data element from the RDB circuit, and provide the first data element to the host in response to detection of no errors in the first data element and generate an error detection signal in response to detection of an error in the first data element; and

error correction logic on a second data path from the RDB circuit to the host, in response to the error detection signal, to receive the first data element from the RDB instead of retrieving the first data element from the memory with a second read command, and to perform error correction on the first data element before providing the first data element to the host.

11. The computer system of claim 10 , the memory controller further comprising command logic to send a retry command to the RDB circuit in response to the error detection signal.

12. The computer system of claim 10 , the memory controller further comprising error manager logic to generate an early read valid signal for each of the series of read commands to indicate that the error detection logic is ready to a corresponding data element from the RDB.

13. The computer system of claim 12 , wherein the RDB is to stop receiving new read data elements until the error correction logic completes the error correction on the first data element.

14. The computer system of claim 11 , wherein the error correction logic comprises circuitry to perform single device data correction (SDDC).

15. The computer system of claim 10 , wherein one or more of:

the processor comprises a multicore host processor;

the computer system includes a display communicatively coupled to the processor;

the computer system includes a network interface communicatively coupled to the processor; or

the computer system includes a battery to power the computer system.

16. The computer system of claim 12 , wherein data elements in the RDB with a corresponding early read valid are not flushed from the RDB in response to the error detection signal, and data elements without a corresponding early read valid signal are flushed from the RDB in response to the error detection signal.

17. The computer system of claim 10 , the memory controller further comprising reordering logic to receive the first data element from the error correction logic and reorder a series of data elements to be sent to the host, from an order of receipt to an order of the series of read commands.

18. The computer system of claim 10 , wherein the error correction logic comprises error correction circuitry that takes more than 2 cycles for a read data element to propagate through.

19. The computer system of claim 10 , wherein the RDB circuit is a scratchpad memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2025
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM)
Reel/Frame 072792/0266 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2021
From: LING, JING; CHEN, WEI P.; AGARWAL, RAJAT
To: INTEL CORPORATION
Reel/Frame 058469/0802 →
Continuity (1)
Related Publication 20220107866A1 · Apr 7, 2022
References Cited (14)
US 5754563A · White · 1998 [cited by applicant]
US 9477550B2 · Goodman · 2016 [cited by examiner]
US 9817712B2 · Nakanishi et al. · 2017 [cited by applicant]
US 20110047440A1 · Blackmon · 2011 [cited by examiner]
US 20130080858A1 · Lee · 2013 [cited by examiner]
US 20130111308A1 · Sauber et al. · 2013 [cited by applicant]
US 20150378823A1 · Lesartre · 2015 [cited by examiner]
US 20160004597A1 · Tsern · 2016 [cited by examiner]
US 20190171518A1 · Pruett · 2019 [cited by examiner]
US 20190332469A1 · Radjai et al. · 2019 [cited by applicant]
US 20200278906A1 · Bains · 2020 [cited by examiner]
US 20210019227A1 · Shin · 2021 [cited by examiner]
J. Kim, M. Sullivan, S. Lym and M. Erez, “All-Inclusive ECC: Thorough End-to-End Protection for Reliable Computer Memory,” 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA), Seoul, Korea … [cited by examiner]
Dutch Examination Report for Patent Application No. 2033511, Mailed Aug. 31, 2023, 7 pages. [cited by applicant]