IP Library Granted Patent US 10,684,913
Granted Patent B2
US 10,684,913 · App. 15/962,665 · Granted Jun 16, 2020

Systems and methods for detecting errors and/or restoring non-volatile random access memory using error correction code

Inventors: Craig L. Chaiken (Pflugerville, TX); Balasingh P. Samuel (Round Rock, TX); Zhao Hui Yu (Cedar Park, TX)
Assignee: Dell Products L.P.
G06F11/106G06F1/3275G06F3/0619G06F3/0679G06F11/0772G06F11/1044G06F11/1068G06F11/1471G11C29/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 10,684,913
App. No.
15/962,665
Granted
Jun 16, 2020
Kind
B2
Abstract

Systems and methods are provided that may be implemented to detect and optionally recover corrupted system configuration data written to non-volatile random access memory (NVRAM). The disclosed systems and methods may be implemented by writing a copy of the NVRAM data to volatile system memory (e.g., RAM) while the system is active. Error correction code (ECC) data may written to the NVRAM when the system enters a lower power state. When the system resumes from the low power state, the copy of data is made in system RAM from the NVRAM, and the ECC data is used to determine whether there are errors in NVRAM data, in which case the ECC data may be used to correct data in the copy on RAM before writing the corrected data to NVRAM from the system RAM.

Claims (78)

1. An information handling system, comprising:

a non-volatile random access memory (NVRAM) configured to store system configuration data;

a volatile random access memory (RAM) configured to store a copy of the system configuration data; and

a processing device programmed to:

in response to a request to put the system into a low power state, generate ECC data of at least the system configuration data and write the ECC data to the NVRAM; and

in response to a request to resume the system from the low power state:

read the system configuration data from the NVRAM and write it to the RAM to create the copy;

use the ECC data to determine whether the copy is corrupted; and then:

if so, use the ECC data to attempt to correct the corrupted copy, and

if not, resume running the system.

2. The information handling system of claim 1 , where the processing device is further programmed to, in response to the request to resume the system from the low power state:

determine whether the processing device is able to correct the corrupted copy using the ECC data after the attempt to correct the corrupted copy; and then:

if so, resume running the system, and

if not, notify a user of a data correction failure and/or load a default version of the system configuration data into the NVRAM.

3. The information handling system of claim 1 ,

where the NVRAM is further configured to store a flag;

where the processing device is further programmed to, in response to the request to put the system into the low power state:

set the flag to indicate the ECC data is up to date after writing the ECC data to the NVRAM; and

where the processing device is further programmed to, in response to a request to write a portion of the system configuration data after the system has resumed from the low power state:

write the portion of the system configuration data to both the NVRAM and to the copy in the RAM without updating the ECC data; and

clear the flag to indicate the ECC data is not up to date.

4. The information handling system of claim 3 ,

where the processing device is further programmed to refrain from using the ECC data to determine whether the copy is corrupted and from attempting to correct the corrupted copy if the flag indicates the ECC data is not up to date; and

where the processing device is further programmed to use the ECC data to determine whether the copy is corrupted and to attempt to correct the corrupted copy if the flag indicates that the ECC data is up to date.

5. The information handling system of claim 3 ,

where the processing device is further programmed to refrain from writing the ECC data to the NVRAM if the flag indicates the ECC data of the NVRAM is up to date; and

where the processing device is further programmed to write the ECC data to the NVRAM if the flag indicates the ECC data of the NVRAM is not up to date.

6. The information handling system of claim 1 ,

where the processing device is further programmed to, in response to the request to resume the system from the low power state:

write the corrected copy to the NVRAM if the processing device determines the copy was corrupted and the ECC data was previously used to successfully correct the copy; and

notify a user of a data correction failure and/or load a default version of the system configuration data into the NVRAM if the processing device determines the copy was corrupted and was not successfully corrected using the ECC data.

7. The information handling system of claim 6 ,

where the processing device is further programmed to log to an event log of the information handling system an event indicating the system configuration data was corrupted.

8. The information handling system of claim 1 ,

where the processing device is further programmed to, in response to a request to read a portion of the system configuration data:

read the portion of the system configuration data from the copy in the RAM rather than from the NVRAM.

9. The information handling system of claim 1 ,

where the system configuration data comprises unified extensible firmware interface (UEFI) variables.

10. The information handling system of claim 1 ,

where the NVRAM comprises a flash memory device.

11. A method, comprising:

using at least one processing device of an information handling system having a non-volatile random access memory (NVRAM) configured to store system configuration data and a volatile random access memory (RAM) configured to store a copy of the system configuration data to:

in response to a request to put the system into a low power state, generate ECC data of at least the system configuration data and write the ECC data to the NVRAM; and

in response to a request to resume the system from the low power state:

read the system configuration data from the NVRAM and write it to the RAM to create the copy;

use the ECC data to determine whether the copy is corrupted; and then:

if so, use the ECC data to attempt to correct the corrupted copy, and

if not, resume running the system.

12. The method of claim 11 , further comprising:

using the at least one processing device to, in response to the request to resume the system from the low power state:

determine whether the processing device is able to correct the corrupted copy using the ECC data after the attempt to correct the corrupted copy; and then:

if so, resume running the system, and

if not, notify a user of a data correction failure and/or load a default version of the system configuration data into the NVRAM.

13. The method of claim 11 , further comprising:

using the at least one processing device to, in response to the request to put the system into the low power state:

set a flag in the NVRAM to indicate the ECC data is up to date after writing the ECC data to the NVRAM; and

using the at least one processing device to, in response to a request to write a portion of the system configuration data after the system has resumed from the low power state:

write the portion of the system configuration data to both the NVRAM and to the copy in the RAM without updating the ECC data; and

clear the flag to indicate the ECC data is not up to date.

14. The method of claim 13 , further comprising:

refraining from using the ECC data to determine whether the copy is corrupted and from attempting to correct the copy if the flag indicates the ECC data is not up to date; and

using the ECC data to determine whether the copy is corrupted and attempting to correct the corrupted copy if the flag indicates that the ECC data is up to date.

15. The method of claim 13 , further comprising:

refraining from writing the ECC data to the NVRAM if the flag indicates the ECC data of the NVRAM is up to date; and

writing the ECC data to the NVRAM if the flag indicates the ECC data of the NVRAM is not up to date.

16. The method of claim 11 , further comprising:

using the at least one processing device to, in response to the request to resume the system from the low power state:

write the corrected copy to the NVRAM if the processing device determines the copy was corrupted and the ECC data previously used to successfully correct the copy; and

notify a user of a data correction failure and/or load a default version of the system configuration data into the NVRAM if the processing device determines the copy was corrupted and was not successfully corrected using the ECC data.

17. The method of claim 16 , further comprising:

using the at least one processing device to log to an event log of the information handling system an event indicating the system configuration data was corrupted.

18. The method of claim 11 , further comprising:

using the at least one processing device to, in response to a request to read a portion of the system configuration data:

read the portion of the system configuration data from the copy in the RAM rather than from the NVRAM.

19. The method of claim 11 ,

where the system configuration data comprises unified extensible firmware interface (UEFI) variables.

20. The method of claim 11 ,

where the NVRAM comprises a flash memory device.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2018
From: CHAIKEN, CRAIG L.; SAMUEL, BALASINGH P.; YU, ZHAO HUI
To: DELL PRODUCTS L.P.
Reel/Frame 046017/0451 →
Continuity (1)
Related Publication 20190332468A1 · Oct 31, 2019