IP Library Granted Patent US 9,459,857
Granted Patent B2
US 9,459,857 · App. 14/602,124 · Granted Oct 4, 2016

Managing wear of system areas of storage devices

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 9,459,857
App. No.
14/602,124
Granted
Oct 4, 2016
Kind
B2
Abstract

Techniques are described for managing firmware versions for a storage device. In one example, a storage device includes a memory and a controller. The controller is configured to execute a first version of a firmware, receive information for a second version of a firmware that is different from the first version, determine, based on the information for the second version of the firmware, whether the version of the second version of the firmware is stored in a system area of the memory, responsive to determining that the second version of the firmware is stored in the system area, load the second version of the firmware, responsive to determining that the second version of the firmware is not stored in the system area, store the second version of the firmware in the system area, update an active firmware index, and execute the second version of the firmware.

Claims (71)

1. A method comprising:

receiving, by a controller of a storage device, information for a second version of a firmware for the storage device, wherein the controller is currently executing a first version of the firmware that is different from the second version of the firmware;

determining, by the controller and based on the information for the second version of the firmware, whether the second version of the firmware is already stored in a system area of the storage device;

responsive to determining that the second version of the firmware for the storage device is already stored in the system area, loading, by the controller, the second version of the firmware from the system area;

responsive to determining that the second version of the firmware for the storage device is not stored in the system area:

updating, by the controller, a firmware release lookup table to include an entry for the second version of the firmware;

determining, by the controller, a system area offset; and

storing, by the controller and based on the system area offset, the second version of the firmware in the system area;

updating, by the controller, an active firmware index to indicate that the second version of the firmware is an active version of the firmware; and

executing, by the controller, the second version of the firmware.

2. The method of claim 1 , wherein determining whether the version of the second version of the firmware is already stored in the system area of the storage device comprises:

determining, by the controller, based on the information for the second version of the firmware, whether an indication of the second version of the firmware is stored in the firmware release look-up table.

3. The method of claim 2 , wherein the firmware release lookup table is stored in the system area.

4. The method of claim 2 , wherein the firmware release lookup table is stored in a data area of the storage device.

5. The method of claim 1 , wherein storing the second version of the firmware in the system area comprises:

responsive to determining that a previously stored version of the firmware is to be removed prior to storing the second version of the firmware:

identifying, by the controller, a particular previously stored version of the firmware to remove;

updating, by the controller, a firmware release lookup table to remove an entry corresponding to the particular previously stored version of the firmware;

storing, by the controller, the second version of the firmware in the system area; and

updating, by the controller, the firmware release lookup table to include an entry for the second version of the firmware.

6. The method of claim 5 , wherein identifying the particular previously stored version of the firmware to remove comprises identifying, based on at least one of a respective firmware download timestamp or a respective firmware build timestamp associated with each firmware version stored in the system area, the particular previously stored version of the firmware to remove.

7. The method of claim 5 , wherein the firmware release lookup table includes one or more of an index, a firmware release version, a firmware build timestamp, a firmware download timestamp, or a firmware signature.

8. The method of claim 1 , wherein loading, by the controller, the second version of the firmware from the system area comprises:

determining, by the controller and based on an entry in a firmware release lookup table using an active firmware index associated with the second version of the firmware, the system area offset for the second version of the firmware; and

loading, by the controller, based on the system area offset, the second version of the firmware from the system area.

9. A storage device comprising:

a memory; and

a controller configured to:

receive information for a second version of a firmware for the storage device, wherein the controller is currently executing a first version of the firmware that is different from the second version of the firmware,

determine, based on the information for the second version of the firmware, whether the second version of the firmware is already stored in a system area of the memory,

responsive to determining that the second version of the firmware for the storage device is already stored in the system area, load the second version of the firmware from the system area,

responsive to determining that the second version of the firmware for the storage device is not stored in the system area:

update a firmware release lookup table to include an entry for the second version of the firmware;

determine a system area offset; and

store, based on the system area offset, the second version of the firmware in the system area of the memory,

update an active firmware index to indicate that the second version of the firmware is an active version of the firmware, and

execute the second version of the firmware.

10. The storage device of claim 9 , wherein the controller is configured to determine, based on the information for the second version of the firmware, whether an indication of the second version of the firmware is stored in the firmware release look-up table.

11. The storage device of claim 9 , wherein the memory is configured to store the firmware release lookup table in the system area.

12. The storage device of claim 9 , wherein the memory is configured to store the firmware release lookup table in a data area of the memory.

13. The storage device of claim 9 , wherein controller is further configured to:

responsive to determining that a previously stored version of the firmware is to be removed prior to storing the second version of the firmware:

identify a particular previously stored version of the firmware to remove;

update a firmware release lookup table to remove an entry corresponding to the particular previously stored version of the firmware;

store the second version of the firmware in the system area of the memory; and

update the firmware release lookup table to include an entry for the second version of the firmware.

14. The storage device of claim 13 , wherein the controller is further configured to identify, based on at least one of a respective firmware build timestamp or a respective firmware download timestamp associated with each firmware version stored in the system area, the particular previously stored version of the firmware to remove.

15. The storage device of claim 13 , wherein the firmware release lookup table includes one or more of an index, a firmware release version, a firmware build timestamp, a firmware download timestamp, or a firmware signature.

16. The storage device of claim 9 , wherein the controller is further configured to:

determine, based on an entry in a firmware release lookup table using an active firmware index associated with the second version of the firmware, the system area offset for the second version of the firmware; and

load, based on the system area offset, the second version of the firmware from the system area.

17. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors of a storage device to:

receive information for a second version of a firmware for the storage device, wherein the controller is currently executing a first version of the firmware that is different from the second version of the firmware;

determine, based on the information for the second version of the firmware, whether the second version of the firmware is already stored in a system area of the storage device;

responsive to determining that the second version of the firmware for the storage device is already stored in the system area, load the second version of the firmware from the system area;

responsive to determining that the second version of the firmware for the storage device is not stored in the system area:

update a firmware release lookup table to include an entry for the second version of the firmware;

determine a system area offset; and

store, based on the system area offset, the second version of the firmware in the system area of the memory, store the second version of the firmware in the system area;

update an active firmware index to indicate that the second version of the firmware is an active version of the firmware; and

execute the second version of the firmware.

18. A system comprising:

means for receiving information for a second version of a firmware for a storage device, wherein the storage device is executing a first version of the firmware that is different from the second version of the firmware;

means for determining, based on the information for the second version of the firmware, whether the second version of the firmware is already stored in a system area of the storage device;

means for, responsive to determining that the second version of the firmware for the storage device is already stored in the system area, loading the second version of the firmware from the system area;

means for, responsive to determining that the second version of the firmware for the storage device is not stored in the system area:

updating, by the controller, a firmware release lookup table to include an entry for the second version of the firmware;

determining, by the controller, a system area offset; and

storing, by the controller and based on the system area offset, the second version of the firmware in the system area;

means for updating an active firmware index to indicate that the second version of the firmware is an active version of the firmware; and

means for executing the second version of the firmware.

Assignments (11)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040829/0516 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2015
From: GERHART, DARIN E.; LAPPI, CORY; PETERSON, PHILLIP; WALKER, WILLIAM J.
To: HGST NETHERLANDS B.V.
Reel/Frame 034779/0564 →