IP Library › Granted Patent US 12,360,847
Granted Patent B2
US 12,360,847 · App. 18/025,868 · Granted Jul 15, 2025

Adaptive internal error scrubbing and error handling

Inventors: Kuljit S. Bains (Olympia, WA); Kjersten E. Criss (Portland, OR); Rajat Agarwal (Portland, OR); Omar Avelar Suarez (Zapopan, MX); Subhankar Panda (Portland, OR); Theodros Yigzaw (Sherwood, OR); Rebecca Z. Loop (Portland, OR); John G. Holm (Beaverton, OR); Gaurav Porwal (Portland, OR)
Assignee: Intel Corporation
G06F11/106G11C29/02
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,360,847
App. No.
18/025,868
Granted
Jul 15, 2025
Kind
B2
Abstract

A memory subsystem with error checking and scrubbing (ECS) logic on-device on the memory can adapt the rate of ECS operations in response to detection of errors in the memory when the memory device is in automatic ECS mode. The ECS logic can include an indication of rows of memory that have been offlined by the host. The ECS logic can skip the offlined rows in ECS operation counts. The ECS logic can include requests or hints by the host to have ECS operations performed. An internal address generator of the ECS logic can select between generated addresses and the hints. The system can allow a memory controller to detect multibit errors (MBEs) related to a specific address of the associated memory. When the detected MBEs indicate a pattern of errors, the memory controller triggers a row hammer response for the specific address.

Claims (30)

1. A memory controller comprising:

control logic to detect a change in a rate of errors for a memory device having error checking and scrubbing (ECS) logic to perform ECS operations with on-die error checking and correction (ECC) logic in an automatic ECS mode where the ECS logic is to control performance of the ECS operations; and

input/output (I/O) circuitry to send a command to the memory device, in response to detection of the change in the rate of errors, to adjust a rate of performing the ECS operations, the command to trigger the ECS logic of the memory device to determine a new scrub interval and request an adjustment to a refresh time provided by the memory controller to enable the ECS logic to perform the ECS operations in accordance with the new scrub interval.

2. The memory controller of claim 1 , wherein the memory controller is to adjust the rate of performing the ECS operations in the automatic ECS mode where the memory device is to perform the ECS operations during self refresh.

3. The memory controller of claim 1 , wherein the memory controller is to adjust the rate of performing the ECS operations in the automatic ECS mode where the memory device is to perform the ECS operations in response to an all bank refresh command.

4. The memory controller of claim 1 , wherein the control logic is to detect the change based on data received from the memory device.

5. The memory controller of claim 1 , wherein the control logic is to detect the change in response to a signal from the memory device to indicate a change in the rate of errors.

6. The memory controller of claim 1 , wherein the I/O circuitry is to send the command to change a mode register setting to adjust the rate of performing the ECS operations.

7. The memory controller of claim 1 , wherein the I/O circuitry is to send the command to set a configuration within the ECS logic.

8. The memory controller of claim 1 , wherein the I/O circuitry is to send additional refresh commands to the memory device to enable the memory device to perform the ECS operations.

9. A method comprising:

detecting a change in a rate of errors for a memory device having error checking and scrubbing (ECS) logic to perform ECS operations with on-die error checking and correction (ECC) logic in an automatic ECS mode where the ECS logic controls performance of the ECS operations; and

sending a command to the memory device, in response to detection of the change in the rate of errors, to adjust a rate of performing the ECS operations, the command to trigger the ECS logic of the memory device to determine a new scrub interval;

receiving a request for an adjustment to a refresh time provided by a memory controller for the memory for to enable the ECS logic to perform the ECS operations in accordance with the new scrub interval.

10. The method of claim 9 , further comprising:

adjusting the rate of performing the ECS operations in the automatic ECS mode where the memory device is to perform the ECS operations during self refresh or in response to an all bank refresh command.

11. The method of claim 9 , wherein detecting the change comprises detecting the change based on data received from the memory device or detecting the change in response to a signal from the memory device to indicate a change in the rate of errors.

12. The method of claim 9 , further comprising:

sending additional refresh commands to the memory device to enable the memory device to perform the ECS operations.

13. A memory device comprising:

an array with multiple rows;

error scrubbing logic to perform error checking and scrubbing (ECS) operations on the multiple rows, including to detect errors in the multiple rows, correct detected errors, and write corrected data back to the array, wherein the error scrubbing logic includes an internal address generator to generate addresses for the multiple rows at which to perform the ECS operations; and

a storage device to identify an address of a row requested by a host for performance of ECS operations, wherein the internal address generator is to select between internal address generation and an identified address of a row requested by the host for performance of the ECS operations,

wherein the internal address generator comprises weighted arbitration logic, which performs weight arbitration on addresses generated by the internal address generator and the identified address, to determine one or more addresses for the performance of ECS operations.

14. The memory device of claim 13 , wherein the storage device comprises a storage device in the error scrubbing logic or a storage device within the internal address generator of the error scrubbing logic.

15. The memory device of claim 13 , wherein the identified address comprises one of multiple identified addresses, wherein each of the multiple identified addresses has an associated register to store a weight for the respective identified address.

16. The memory device of claim 15 , wherein the associated register comprises a dynamically configurable register, writeable by the host and by the memory device.

17. The memory device of claim 13 , wherein the identified address comprises a specific row address requested by the host for the performance of ECS operations.

18. The memory device of claim 17 , wherein the error scrubbing logic is to perform ECS operations on the specific row address requested by the host and rows with consecutive addresses to the specific row address, or to perform ECS operation on the specific row address requested by the host and other rows of generated addresses that are not consecutive to the specific row address.

19. The memory device of claim 13 , wherein the identified address is a first address, wherein the storage device is to store a second address, wherein the first address is to identify a start of a range of row addresses, and the second address is to identify an end of the range of row addresses.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2023
From: BAINS, KULJIT; CRISS, KJERSTEN E.; AGARWAL, RAJAT; AVELAR SUAREZ, OMAR; PANDA, SUBHANKAR; YIGZAW, THEODROS; LOOP, REBECCA Z.; HOLM, JOHN G.; PORWAL, GAURAV
To: INTEL CORPORATION
Reel/Frame 063232/0311 →
Continuity (1)
Related Publication 20240211344A1 · Jun 27, 2024
References Cited (55)
US 6480982B1 · Chan et al. · 2002 [cited by applicant]
US 6728156B2 · Kilmer et al. · 2004 [cited by applicant]
US 6838331B2 · Klein · 2005 [cited by applicant]
US 7275130B2 · Klein · 2007 [cited by applicant]
US 8122308B2 · Buch · 2012 [cited by applicant]
US 8255772B1 · Foley · 2012 [cited by applicant]
US 8443262B2 · Foley · 2013 [cited by applicant]
US 8687421B2 · Avila et al. · 2014 [cited by applicant]
US 9081693B2 · Ramaraju et al. · 2015 [cited by applicant]
US 9081719B2 · Ramaraju et al. · 2015 [cited by applicant]
US 9087614B2 · Son et al. · 2015 [cited by applicant]
US 9318168B2 · Park et al. · 2016 [cited by applicant]
US 9318182B2 · Lovelace · 2016 [cited by applicant]
US 9519531B2 · Seo et al. · 2016 [cited by applicant]
US 9812222B2 · Kim et al. · 2017 [cited by applicant]
US 9817714B2 · Halbert et al. · 2017 [cited by applicant]
US 9823964B2 · Reed et al. · 2017 [cited by applicant]
US 9842021B2 · Halbert et al. · 2017 [cited by applicant]
US 9864653B2 · Vidyapoornachary et al. · 2018 [cited by applicant]
US 9891990B2 · Vidyapoornachary et al. · 2018 [cited by applicant]
US 10049006B2 · Reed et al. · 2018 [cited by applicant]
US 10127101B2 · Halbert et al. · 2018 [cited by applicant]
US 10223200B2 · Vidyapoornachary et al. · 2019 [cited by applicant]
US 10228999B2 · Vidyapoornachary et al. · 2019 [cited by applicant]
US 10304556B2 · Luck · 2019 [cited by applicant]
US 10445177B2 · Reed et al. · 2019 [cited by applicant]
US 10475503B2 · Yoo et al. · 2019 [cited by applicant]
US 10586584B2 · Cha et al. · 2020 [cited by applicant]
US 10599504B1 · BeSerra et al. · 2020 [cited by applicant]
US 10734058B2 · Shim et al. · 2020 [cited by applicant]
US 20070022244A1 · Kimmery · 2007 [cited by applicant]
US 20120106283A1 · Yang · 2012 [cited by examiner]
US 20120284575A1 · Foley · 2012 [cited by applicant]
US 20120317352A1 · Kang · 2012 [cited by examiner]
US 20150134888A1 · Kimberly · 2015 [cited by examiner]
US 20170161142A1 · Reed et al. · 2017 [cited by applicant]
US 20180068693A1 · Shiah et al. · 2018 [cited by applicant]
US 20180210786A1 · Kim · 2018 [cited by examiner]
US 20190073261A1 · Halbert · 2019 [cited by examiner]
US 20190243566A1 · Hassan et al. · 2019 [cited by applicant]
US 20200012600A1 · Konoth et al. · 2020 [cited by applicant]
US 20200066329A1 · Son · 2020 [cited by applicant]
US 20200159621A1 · Velayuthaperumal et al. · 2020 [cited by applicant]
US 20200168269A1 · Cha et al. · 2020 [cited by applicant]
US 20200210278A1 · Rooney et al. · 2020 [cited by applicant]
US 20200219580A1 · Khan et al. · 2020 [cited by applicant]
US 20200387323A1 · Boehm · 2020 [cited by examiner]
WO 2016113223A1 · 2016 [cited by applicant]
WO 2017151567A1 · 2017 [cited by applicant]
Cojocar, Lucian, et al “Exploiting Correcting Codes: On the Effectiveness of ECC Memory Against Rowhammer Attacks,” 2019 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, 2019, pp. 55-71, doi: 10.1109… [cited by applicant]
Dutch Patent Office Search Report and Written Opinion for NL Patent Application No. 2029034, Mailed Mar. 29, 2022, 13 pages. [cited by applicant]
International Search Report and Written Opinion for PCT Patent Application No. PCT/US20/52959, Mailed Jun. 25, 2021, 11 pages. [cited by applicant]
Nunes Jose Luis et al: “Using Failure Prediction to Improve FPGA Scrubbing”, 2016 Seventh Latin-American Symposium on Dependable Computing (LADC), IEEE, Oct. 19, 2016, pp. 135-138, XP033023380. [cited by applicant]
Sayed Nour et al: “Process variation and temperature aware adaptive scrubbing for retention failures in STT-MRAM”, 2018 23rd Asia and South Pacific Design Automation Conference (ASP-DAC), IEEE, Jan. 22, 2018, pp. 203-20… [cited by applicant]
Swami, Shivam, et al, “ECS: Error-Correcting Strings for Lifetime Improvements in Nonvolatile Memories”, https://dl.acm.org/doi/abs/10.1145/3151083, ACM Transactions on Architecture and Code Optimization, vol. 14, No. 4… [cited by applicant]
Cited By (1)
US 12,632,552