IP Library Granted Patent US 11,360,847
Granted Patent B2
US 11,360,847 · App. 17/147,555 · Granted Jun 14, 2022

Memory scrub system

Inventors: Ching-Lung Chao (Austin, TX); Shih-Hao Wang (New Taipei, TW); Zhengyu Yang (Fremont, CA)
Assignee: Dell Products L.P.
G06F11/106G06F9/4401G06F11/0772G06F13/24G11C29/52
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 11,360,847
App. No.
17/147,555
Granted
Jun 14, 2022
Kind
B2
Abstract

A memory scrubbing system includes a persistent memory device coupled to an operating system (OS) and a Basic Input/Output System (BIOS). During a boot process and prior to loading the OS, the BIOS retrieves a known memory location list that identifies known memory locations of uncorrectable errors in the persistent memory device and performs a partial memory scrubbing operation on the known memory locations. The BIOS adds any known memory locations that maintain an uncorrectable error to a memory scrub error list. The BIOS then initiates a full memory scrubbing operation on the persistent memory device, cause the OS to load and enter a runtime environment while the full memory scrubbing operation is being performed, and provides the memory scrub error list to the OS.

Claims (61)

1. A memory error management system, comprising:

a memory subsystem; and

a memory error management engine that is coupled to the memory subsystem, wherein the memory error management subsystem is configured to:

identify, during a boot process, memory locations that were previously identified with uncorrectable errors in the memory subsystem;

determine, during the boot process and while performing a partial memory scrubbing operation on the memory locations that were previously identified with uncorrectable errors, whether any of the memory locations that were previously identified with uncorrectable errors maintain an uncorrectable error;

perform, subsequent to performing the partial memory scrubbing operation, a full memory scrubbing operation on the memory subsystem;

report a completion of memory scrubbing operations to at least one runtime subsystem in order to allow the at least one runtime subsystem to enter a runtime environment; and

provide the memory locations that were previously identified with uncorrectable errors and that maintain an uncorrectable error to the at least one runtime subsystem.

2. The system of claim 1 , wherein the memory error management subsystem is configured to:

receive a memory scrubbing operation completion query from the at least one runtime subsystem and, in response, report the completion of memory scrubbing operations to the at least one runtime subsystem, wherein the full memory scrubbing operation is performed on the memory subsystem subsequent to reporting the completion of memory scrubbing operations to the at least one runtime subsystem.

3. The system of claim 2 , wherein the memory error management subsystem is configured to:

provide the memory locations that were previously identified with uncorrectable errors and that maintain an uncorrectable error to the at least one runtime subsystem in response to the memory scrubbing operation completion query.

4. The system of claim 1 , wherein the memory error management subsystem is configured to:

identify, based on the full memory scrubbing operation performed on the memory subsystem, a memory location with a currently detected uncorrectable error; and

report the memory location with the currently detected uncorrectable error to the at least one runtime subsystem.

5. The system of claim 4 , wherein the memory error management subsystem is configured to report the memory location with the currently detected uncorrectable error to the at least one runtime subsystem by:

generating an interrupt that causes the at least one runtime subsystem to retrieve an identity of the memory location with the currently detected uncorrectable error.

6. The system of claim 1 , wherein the memory error management subsystem is configured to:

initiate the performance of the full memory scrubbing operation on the memory subsystem prior to the at least one runtime subsystem entering the runtime environment.

7. The system of claim 1 , wherein the memory error management subsystem is configured to:

receive, from the at least one runtime subsystem subsequent to reporting the completion of memory scrubbing operations to the at least one runtime subsystem and while performing the full memory scrubbing operation, a new memory scrubbing operation instruction; and

notify, in response to receiving the new memory scrubbing operation instruction, the at least one runtime subsystem that the full memory scrubbing operation is in progress.

8. An Information Handling System (IHS), comprising:

a processing subsystem; and

a memory subsystem that is coupled to the processing subsystem and that includes instructions that, when executed by the processing subsystem, causes the processing subsystem to provide a memory error management engine that is configured to:

identify, during a boot process, memory locations that were previously identified with uncorrectable errors in a memory subsystem;

determine, during the boot process and while performing a partial memory scrubbing operation on the memory locations that were previously identified with uncorrectable errors, whether any of the memory locations that were previously identified with uncorrectable errors maintain an uncorrectable error;

perform, subsequent to performing the partial memory scrubbing operation, a full memory scrubbing operation on the memory subsystem;

report a completion of memory scrubbing operations to at least one runtime subsystem in order to allow the at least one runtime subsystem to enter a runtime environment; and

provide the memory locations that were previously identified with uncorrectable errors and that maintain an uncorrectable error to the at least one runtime subsystem.

9. The IHS of claim 8 , wherein the memory error management engine is configured to:

receive a memory scrubbing operation completion query from the at least one runtime subsystem and, in response, report the completion of memory scrubbing operations to the at least one runtime subsystem, wherein the full memory scrubbing operation is performed on the memory subsystem subsequent to reporting the completion of memory scrubbing operations to the at least one runtime subsystem.

10. The IHS of claim 9 , wherein the memory error management engine is configured to:

provide the memory locations that were previously identified with uncorrectable errors and that maintain an uncorrectable error to the at least one runtime subsystem in response to the memory scrubbing operation completion query.

11. The IHS of claim 8 , wherein the memory error management engine is configured to:

identify, based on the full memory scrubbing operation performed on the memory subsystem, a memory location with a currently detected uncorrectable error; and

report the memory location with the currently detected uncorrectable error to the at least one runtime subsystem.

12. The IHS of claim 11 , wherein the memory error management engine is configured to report the memory location with the currently detected uncorrectable error to the at least one runtime subsystem by:

generating an interrupt that causes the at least one runtime subsystem to retrieve an identity of the memory location with the currently detected uncorrectable error.

13. The IHS of claim 8 , wherein the memory error management engine is configured to:

initiate the performance of the full memory scrubbing operation on the memory subsystem prior to the at least one runtime subsystem entering the runtime environment.

14. A method for memory error management, comprising:

identifying, by a memory error management subsystem during a boot process, memory locations that were previously identified with uncorrectable errors in a memory subsystem;

determining, by the memory error management subsystem during the boot process and while performing a partial memory scrubbing operation on the memory locations that were previously identified with uncorrectable errors, whether any of the memory locations that were previously identified with uncorrectable errors maintain an uncorrectable error;

performing, by the memory error management subsystem subsequent to performing the partial memory scrubbing operation, a full memory scrubbing operation on the memory subsystem;

reporting, by the memory error management subsystem, a completion of memory scrubbing operations to at least one runtime subsystem in order to allow the at least one runtime subsystem to enter a runtime environment; and

providing, by the memory error management subsystem, the memory locations that were previously identified with uncorrectable errors and that maintain an uncorrectable error to the at least one runtime subsystem.

15. The method of claim 14 , further comprising:

receiving, by the memory error management subsystem, a memory scrubbing operation completion query from the at least one runtime subsystem and, in response, reporting the completion of memory scrubbing operations to the at least one runtime subsystem, wherein the full memory scrubbing operation is performed on the memory subsystem subsequent to reporting the completion of memory scrubbing operations to the at least one runtime subsystem.

16. The method of claim 15 , further comprising:

providing, by the memory error management subsystem, the memory locations that were previously identified with uncorrectable errors and that maintain an uncorrectable error to the at least one runtime subsystem in response to the memory scrubbing operation completion query.

17. The method of claim 14 , further comprising:

identifying, by the memory error management subsystem based on the full memory scrubbing operation performed on the memory subsystem, a memory location with a currently detected uncorrectable error; and

reporting, by the memory error management subsystem, the memory location with the currently detected uncorrectable error to the at least one runtime subsystem.

18. The method of claim 16 , wherein the reporting the memory location with the currently detected uncorrectable error to the at least one runtime subsystem includes:

generating, by the memory error management subsystem, an interrupt that causes the at least one runtime subsystem to retrieve an identity of the memory location with the currently detected uncorrectable error.

19. The method of claim 14 , further comprising:

initiating, by the memory error management subsystem, the performance of the full memory scrubbing operation on the memory subsystem prior to the at least one runtime subsystem entering the runtime environment.

20. The method of claim 14 , further comprising:

receiving, by the memory error management subsystem from the at least one runtime subsystem subsequent to reporting the completion of memory scrubbing operations to the at least one runtime subsystem and while performing the full memory scrubbing operation, a new memory scrubbing operation instruction; and

notifying, by the memory error management subsystem in response to receiving the new memory scrubbing operation instruction, the at least one runtime subsystem that the full memory scrubbing operation is in progress.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2021
From: CHAO, CHING-LUNG; WANG, SHIH-HAO
To: DELL PRODUCTS L.P.
Reel/Frame 054902/0755 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2021
From: YANG, ZHENGYU
To: DELL PRODUCTS L.P.
Reel/Frame 054902/0907 →
Continuity (3)
Continuation 16692200 · Nov 22, 2019
Continuation 15970454 · May 3, 2018
Related Publication 20210133022A1 · May 6, 2021