IP Library › Granted Patent US 12,468,600
Granted Patent B2
US 12,468,600 · App. 18/379,057 · Granted Nov 11, 2025

Coordinated error correction

Inventors: Scott E. Schaefer (Boise, ID); Aaron P. Boehm (Boise, ID)
G06F11/1076H03M13/2906
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,468,600
App. No.
18/379,057
Granted
Nov 11, 2025
Kind
B2
Abstract

Methods, systems, and devices for coordinated error correction are described. A memory device indicates, for example to an external device, that errors were detected in data that was stored by the memory device and requested by the external device based on a comparison between an error correction code stored when the data was written to a memory array and an error correction code generated when the data is read from the memory array. Based on the comparison, an indication of or based on whether the compared error correction codes match is provided to the external device. The external device uses the indication to detect errors in the received version of the data, or to manage data storage in the memory device, or both.

Claims (41)

1 . A method, comprising:

reading a set of data and an error correction code associated with the set of data from a memory array based at least in part on a scrubbing procedure for a subset of addresses of the memory array;

determining whether one or more single-bit errors are detected for the set of data based at least in part on a syndrome match checking operation on the set of data and the error correction code, wherein an output of the syndrome match checking operation comprises an indication of all zeros when the one or more single-bit errors are not detected or an indication of one or more non-zero values when the one or more single-bit errors are detected;

altering, by on-die error correction circuitry of the memory array and based at least in part on the output of the syndrome match checking operation indicating the one or more single-bit errors for the set of data, a value of a bit in the set of data to obtain an altered set of data; and

storing the altered set of data to the memory array based at least in part on an address of the set of data, wherein the subset of addresses comprises the address of the set of data.

2 . The method of claim 1 , further comprising:

receiving a command to perform the scrubbing procedure, wherein reading the set of data and the error correction code, altering the value of the bit, and storing the altered set of data are in response to the command.

3 . The method of claim 1 , wherein reading the set of data and the error correction code, altering the value of the bit, and storing the altered set of data are performed periodically.

4 . The method of claim 1 , further comprising:

storing an indication of the subset of addresses, wherein the scrubbing procedure for the subset of addresses is based at least in part on the indication of the subset of addresses.

5 . The method of claim 4 , wherein the subset of addresses comprises one or more row addresses.

6 . The method of claim 1 , wherein the scrubbing procedure is based at least in part on a single-bit error correction scheme in accordance with an on-die error correction code (ECC).

7 . The method of claim 1 , wherein the memory array comprises a dynamic random access memory (DRAM).

8 . An apparatus, comprising:

one or more memory devices comprising one or more memory arrays, the one or more memory devices configured to:

read a set of data and an error correction code associated with the set of data from the one or more memory arrays based at least in part on a scrubbing procedure for a subset of addresses of the one or more memory arrays;

determine whether one or more single-bit errors are detected for the set of data based at least in part on a syndrome match checking operation on the set of data and the error correction code, wherein an output of the syndrome match checking operation comprises an indication of all zeros when the one or more single-bit errors are not detected or an indication of one or more non-zero values when the one or more single-bit errors are detected;

alter, by on-die error correction circuitry of the one or more memory arrays and based at least in part on the output of the syndrome match checking operation indicating the one or more single-bit errors for the set of data, a value of a bit in the set of data to obtain an altered set of data; and

store the altered set of data to the one or more memory arrays based at least in part on an address of the set of data, wherein the subset of addresses comprises the address of the set of data.

9 . The apparatus of claim 8 , wherein the one or more memory devices are further configured to:

receive, from a host device, a command to perform the scrubbing procedure, wherein reading the set of data and the error correction code, altering the value of the bit, and storing the altered set of data are in response to the command.

10 . The apparatus of claim 8 , wherein reading the set of data and the error correction code, altering the value of the bit, and storing the altered set of data are performed periodically.

11 . The apparatus of claim 8 , wherein the one or more memory devices are further configured to:

store an indication of the subset of addresses, wherein the scrubbing procedure is based at least in part on the indication of the subset of addresses.

12 . The apparatus of claim 11 , wherein the subset of addresses comprises one or more row addresses.

13 . The apparatus of claim 8 , wherein the scrubbing procedure is based at least in part on a single-bit error correction scheme in accordance with an on-die error correction code (ECC).

14 . The apparatus of claim 8 , wherein the one or more memory devices comprise dynamic random access memory (DRAM).

15 . An apparatus, comprising:

one or more controllers configured to transmit, to one or more memory devices, a read command to read a set of data from one or more memory arrays of the one or more memory devices; and

the one or more memory devices comprising the one or more memory arrays, wherein the one or more memory devices are configured to:

read, in response to the read command, the set of data and an error correction code associated with the set of data from the one or more memory arrays based at least in part on a scrubbing procedure for a subset of addresses of the one or more memory arrays;

determine whether one or more single-bit errors are detected for the set of data based at least in part on a syndrome match checking operation on the set of data and the error correction code, wherein an output of the syndrome match checking operation comprises an indication of all zeros when the one or more single- bit errors are not detected or an indication of one or more non-zero values when the one or more single-bit errors are detected;

alter, by on-die error correction circuitry of the one or more memory arrays and based at least in part on the output of the syndrome match checking operation indicating the one or more single-bit errors for the set of data, a value of a bit in the set of data to obtain an altered set of data; and

store the altered set of data to the one or more memory arrays based at least in part on an address of the set of data, wherein the subset of addresses comprises the address of the set of data.

16 . The apparatus of claim 15 , wherein the one or more memory devices are further configured to:

receive, from one or more host devices, a command to perform the scrubbing procedure, wherein reading the set of data and the error correction code, altering the value of the bit, and storing the altered set of data are in response to the command.

17 . The apparatus of claim 15 , wherein reading the set of data and the error correction code, altering the value of the bit, and storing the altered set of data are performed periodically.

18 . The apparatus of claim 15 , wherein the one or more memory devices are further configured to:

store an indication of the subset of addresses, wherein the scrubbing procedure is based at least in part on the indication of the subset of addresses, wherein the subset of addresses comprises one or more row addresses.

19 . The method of claim 1 , wherein the output of the syndrome match checking operation further comprises a location of the one or more single-bit errors detected for the set of data.

20 . The apparatus of claim 8 , wherein the output of the syndrome match checking operation further comprises a location of the one or more single-bit errors detected for the set of data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2024
From: MICRON TECHNOLOGY, INC.
To: LODESTAR LICENSING GROUP LLC
Reel/Frame 068929/0970 →
Continuity (4)
Continuation 17690772 · Mar 9, 2022
Continuation 16940783 · Jul 28, 2020
Provisional Application 62885925 · Aug 13, 2019
Related Publication 20240111627A1 · Apr 4, 2024
References Cited (30)
US 6349390B1 · Dell · 2002 [cited by examiner]
US 8694855B1 · Micheloni · 2014 [cited by examiner]
US 9495232B2 · Gjorup · 2016 [cited by examiner]
US 20030066010A1 · Acton · 2003 [cited by applicant]
US 20060048031A1 · Aadsen · 2006 [cited by examiner]
US 20080005646A1 · Bains · 2008 [cited by applicant]
US 20100083065A1 · Longwell · 2010 [cited by examiner]
US 20100180182A1 · Trantham · 2010 [cited by examiner]
US 20100332900A1 · Yang · 2010 [cited by applicant]
US 20110041005A1 · Selinger · 2011 [cited by examiner]
US 20110307758A1 · Fillingim · 2011 [cited by examiner]
US 20120221916A1 · Schreck et al. · 2012 [cited by applicant]
US 20130179751A1 · Linstadt · 2013 [cited by examiner]
US 20140245098A1 · Sharon · 2014 [cited by examiner]
US 20140245105A1 · Chung et al. · 2014 [cited by applicant]
US 20160092306A1 · Benedict · 2016 [cited by examiner]
US 20160283318A1 · Das et al. · 2016 [cited by applicant]
US 20170160946A1 · Kodera · 2017 [cited by examiner]
US 20170192721A1 · Chung · 2017 [cited by examiner]
US 20190042369A1 · Deutsch · 2019 [cited by examiner]
US 20200117540A1 · Boehm · 2020 [cited by examiner]
US 20210049068A1 · Schaefer et al. · 2021 [cited by applicant]
CN 101647004A · 2010 [cited by applicant]
WO 9927449A1 · 1999 [cited by applicant]
Cai et al., “Error Characterization, Mitigation, and Recovery in Flash-Memory-Based Solid-State Drives”, Proceedings of the IEEE, Sep. 2017, pp. 1666-1704, vol. 105, No. 9. [cited by applicant]
European Patent Office, “Supplementary European search report,” issued in connection with European Patent Application No. 20851625.2 dated Apr. 17, 2023 (10 pages). [cited by applicant]
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US20/44034, mailed on Nov. 3, 2020, 11 pages. [cited by applicant]
P. Subedi, P. Huang, X. He, M. Zhang and J. Han, “A hybrid erasure-coded ECC scheme to improve performance and reliability of solid state drives,” 2014 IEEE 33rd International Performance Computing and Communications Co… [cited by applicant]
T. Bates and C. P. Bridges, “Single event mitigation for Xilinx 7-series FPGAs,” 2018 IEEE Aerospace Conference, 2018, pp. 1-12, doi: 10.1109/AERO.2018.8396520. (Year: 2018). [cited by applicant]
Chinese patent office, “China Office Action,” issued in connection with China Patent Application No. 202080057027.8 dated Dec. 19, 2024 (22 pages) (11 pages of English Translation and 11 pages of Original Document). [cited by applicant]