IP Library Granted Patent US 10,620,867
Granted Patent B2
US 10,620,867 · App. 15/997,164 · Granted Apr 14, 2020

System and method for performing wear leveling at a non-volatile firmware memory

Inventors: Allen Chester Wynn (Round Rock, TX); Frank Quintanilla, III (Cedar Park, TX)
Assignee: Dell Products, L.P.
G06F3/0647G06F3/0616G06F3/0652G06F3/0679
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,620,867
App. No.
15/997,164
Granted
Apr 14, 2020
Kind
B2
Abstract

A record is maintained of cumulative erase operations performed at each block of a firmware flash memory device. It is determined that a number of erase operations performed at a first block at the firmware flash memory device exceeds a first threshold value. It is further determined that a number of erase operations performed at a second block at the firmware flash memory device does not exceed a second threshold value. Data stored at the first block is relocated to the second block.

Claims (47)

1. A method comprising:

maintaining a record of cumulative erase operations performed at each block of a firmware flash memory device;

determining that a number of erase operations performed at a first block at the firmware flash memory device exceeds a first threshold value;

determining that a number of erase operations performed at a second block at the firmware flash memory device does not exceed a second threshold value;

relocating data stored at the first block to the second block;

in response to determining that a request to access data at the firmware flash memory device is a write access to the first block that does not require performing an erase operation at the first block, storing data associated with the request at the first block; and

in response to determining that the request is a write access that does require performing the erase operation at the first block, incrementing a counter associated with the first block.

2. The method of claim 1 , wherein the maintaining, determining, and relocating is performed by a device driver responsible for accessing the firmware flash memory device.

3. The method of claim 1 , further comprising:

providing at a basic input/output system (BIOS) configuration interface a representation of each block at the firmware memory, a representation of the first block indicating the number of erase operations performed at the first block relative to other blocks.

4. The method of claim 3 , wherein the BIOS configuration interface includes a configuration option specifying the first threshold.

5. The method of claim 1 , further comprising generating a record at an event log identifying the relocating of data stored at the first and second blocks.

6. The method of claim 1 , further comprising generating a record at an event log identifying the number of erase operations of the first block exceeds a third threshold value.

7. The method of claim 1 , further comprising:

in response to determining that the request is a read access, retrieving the requested data from the firmware flash memory device.

8. A method comprising:

maintaining a record of cumulative erase operations performed at each sector included at each block of a firmware flash memory device;

determining that a number of erase operations of a first sector included at a first block at the firmware flash memory device exceeds a first threshold value;

determining that a number of erase operations performed at each sector included at a second block at the firmware flash memory device does not exceed a second threshold value;

relocating data stored at the first block to the second block;

in response to determining that a request to access data at the firmware flash memory device is a write access to the first sector that does not require performing an erase operation at the first sector, storing data associated with the request at the first sector; and

in response to determining that the request is a write access that does require performing the erase operation at the first sector, incrementing a counter associated with the first sector.

9. The method of claim 8 , wherein the maintaining, determining, and relocating is performed by a device driver responsible for accessing the firmware flash memory device.

10. The method of claim 8 , further comprising:

determining that a first count of erase operations performed at the first sector exceeds a number of erase operations performed at other sectors included in the first block; and

associating the first count with the first block.

11. The method of claim 10 , further comprising:

providing at a basic input/output system (BIOS) configuration interface a representation of each block at the firmware memory, a representation of the first block indicating a number of erase operations performed at the first block relative to other blocks.

12. The method of claim 11 , wherein the BIOS configuration interface includes a configuration option specifying the first threshold.

13. The method of claim 8 , further comprising generating a record at an event log identifying the relocating of data stored at the first and second blocks.

14. The method of claim 8 , further comprising:

in response to determining that the request is a read access, retrieving the requested data from the firmware flash memory device.

15. An information handling system comprising:

a non-volatile random access memory (NVRAM) to store basic input/output system firmware and to store data;

a driver configured to provide access to the NVRAM, the driver to:

maintain a record of cumulative erase operations performed at each block of a firmware flash memory device;

determine that a number of erase operations performed at a first block at the firmware flash memory device exceeds a first threshold value;

determine that a number of erase operations performed at a second block at the firmware flash memory device does not exceed a second threshold value;

relocate data stored at the first block to the second block;

in response to determining that a request to access data at the firmware flash memory device is a write access at the first block that does not require performing an erase operation at the first block, storing data associated with the request at the first block; and

in response to determining that the request is a write access that does require performing the erase operation at the first block, incrementing a counter associated with the first block.

16. The information handling system of claim 15 , further comprising a basic input/output system (BIOS) configuration interface including a representation of each block at the firmware memory, a representation of the first block indicating the number of erase operations performed at the first block relative to other blocks.

17. The information handling system of claim 15 , wherein the BIOS configuration interface includes a configuration option specifying the first threshold.

18. The information handling system of claim 15 , wherein the driver is further configured to generate a record at an event log identifying the relocating of data stored at the first and second blocks.

19. The information handling system of claim 15 , further comprising generating a record at an event log identifying the number of erase operations performed at the first block exceeds a third threshold value.

20. The information handling system of claim 15 , further comprising:

in response to determining that the request is a read access, the driver is to retrieve the requested data from the firmware 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 (047648/0422) 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 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 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/0510 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2019
From: WYNN, ALLEN CHESTER; QUINTANILLA, FRANK, III
To: DELL PRODUCTS, LP
Reel/Frame 049033/0401 →
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 Oct 12, 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 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 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 047648/0422 →
Continuity (1)
Related Publication 20190369898A1 · Dec 5, 2019