IP Library Granted Patent US 11,972,243
Granted Patent B2
US 11,972,243 · App. 17/031,012 · Granted Apr 30, 2024

Memory device firmware update and activation without memory access quiescence

Inventors: Murugasamy K. Nachimuthu (Beaverton, OR); Mohan J. Kumar (Aloha, OR); Muthukumar P. Swaminathan (Folsom, CA); Daniel K. Osawa (Tigard, OR); Maciej Plucinski (Hillsboro, OR)
Assignee: SK Hynix NAND Product Solutions Corp.
G06F8/65G06F3/0602G06F3/0629G06F3/0671G06F21/44
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,972,243
App. No.
17/031,012
Granted
Apr 30, 2024
Kind
B2
Abstract

Examples include updating firmware for a persistent memory module in a computing system during runtime. Examples include copying a new version of persistent memory module firmware into an available area of random-access memory (RAM) in the persistent memory module, and transferring processing of a current version of persistent memory module firmware to the new version of persistent memory module firmware during runtime of the computing system, without a reset of the computing system and without quiesce of access to persistent memory media in the persistent memory module, while continuing to perform critical event handling by the current version of persistent memory module firmware. Examples further include initializing the new version of persistent memory module firmware; and transferring processing of critical event handling from the current version of persistent memory module firmware to the new version of persistent memory module firmware when initializing the new version of persistent memory module firmware is completed.

Claims (75)

1. A persistent memory module comprising:

a random-access memory (RAM);

a flash memory;

a plurality of persistent memory media; and

a controller; the controller to

copy a new version of persistent memory module firmware from the flash memory into an available area of the RAM;

transfer processing of a current version of persistent memory module firmware to the new version of persistent memory module firmware during runtime of a computing system, without a reset of the computing system and without quiesce of access to the plurality of persistent memory media, while continuing to perform critical event handling by the current version of persistent memory module firmware by:

establishing the critical event handling by the current version of the firmware in a spare area of the RAM distinct from the available area of the RAM;

initialize the new version of persistent memory module firmware; and

transfer processing of critical event handling from the current version of persistent memory module firmware to the new version of persistent memory module firmware when initializing the new version of persistent memory module firmware is completed.

2. The persistent memory module of claim 1 , comprising the controller to:

authenticate the new version of persistent memory module firmware prior to executing the new version of persistent memory module firmware.

3. The persistent memory module of claim 1 , wherein the controller to transfer processing to the new version of persistent memory module firmware comprises the controller to:

disable external mailbox accesses for the persistent memory module;

save persistent memory module state information in the persistent memory module RAM for the new version of persistent memory module firmware; and

give control to the new version of persistent memory module firmware using a reset vector of the new version of persistent memory module firmware.

4. The persistent memory module of claim 1 , comprising the controller to:

set an area in the RAM storing the current version of persistent memory module firmware to available after transferring processing of critical event handling from the current version of persistent memory module firmware to the new version of persistent memory module firmware.

5. The persistent memory module of claim 1 , wherein the controller to perform critical event handling comprises the controller to control access to the persistent memory media in the persistent memory module, manage wear leveling of the persistent memory media, and perform power loss handling for the persistent memory module.

6. The persistent memory module of claim 1 , wherein the persistent memory media comprises one or more three-dimensional cross point memories.

7. The persistent memory module of claim 1 , wherein the new version of persistent memory module firmware comprises a plurality of firmware modules stored in the flash memory of the persistent memory module, the persistent memory module flash memory including a firmware interface table, each entry in the firmware interface table pointing to a selected one of the plurality of firmware modules, and each firmware module being independently updateable.

8. A method of updating firmware for a persistent memory module in a computing system comprising:

copying a new version of persistent memory module firmware into an available area of random-access memory (RAM) in the persistent memory module;

transferring processing of a current version of persistent memory module firmware to the new version of persistent memory module firmware during runtime of the computing system, without a reset of the computing system and without quiesce of access to persistent memory media in the persistent memory module, while continuing to perform critical event handling by the current version of persistent memory module firmware by:

establishing the critical event handling by the current version of the firmware in a spare area of the RAM distinct from the available area of the RAM;

initializing the new version of persistent memory module firmware; and

transferring processing of critical event handling from the current version of persistent memory module firmware to the new version of persistent memory module firmware when initializing the new version of persistent memory module firmware is completed.

9. The method of claim 8 , comprising:

authenticating the new version of persistent memory module firmware prior to executing the new version of persistent memory module firmware.

10. The method of claim 8 , wherein transferring processing to the new version of persistent memory module firmware comprises:

disabling external mailbox accesses for the persistent memory module;

saving persistent memory module state information in the persistent memory module RAM for the new version of persistent memory module firmware; and

giving control to the new version of persistent memory module firmware using a reset vector of the new version of persistent memory module firmware.

11. The method of claim 10 , wherein the reset vector is one of a cold reset vector and a runtime firmware activation reset vector.

12. The method of claim 8 , comprising:

setting an area in the persistent memory module RAM storing the current version of persistent memory module firmware to available after transferring processing of critical event handling from the current version of persistent memory module firmware to the new version of persistent memory module firmware.

13. The method of claim 8 , wherein critical event handling comprises one or more of controlling access to the persistent memory media in the persistent memory module, managing wear leveling of the persistent memory media, and power loss handling for the persistent memory module.

14. The method of claim 8 , wherein the persistent memory media comprises one or more three-dimensional cross point memories.

15. The method of claim 8 , wherein the new version of persistent memory module firmware comprises a plurality of firmware modules stored in a flash memory of the persistent memory module, the persistent memory module flash memory including a firmware interface table, each entry in the firmware interface table pointing to a selected one of the plurality of firmware modules, and each firmware module being independently updateable.

16. The method of claim 8 , wherein initializing the new version of persistent memory module firmware comprises:

restoring the persistent memory module state information;

preparing interrupt and event handlers;

disabling access to persistent memory module media;

back pressuring host access;

updating critical handling information;

enabling interrupts;

enabling access to the persistent memory module media; and

enabling external mailbox accesses for the persistent memory module.

17. At least one tangible machine-readable non-transitory medium comprising a plurality of instructions that in response to being executed by a processor cause the processor to:

copy a new version of persistent memory module firmware into an available area of random-access memory (RAM) in the persistent memory module;

transfer processing of a current version of persistent memory module firmware to the new version of persistent memory module firmware during runtime of the computing system, without a reset of the computing system and without quiesce of access to persistent memory media in the persistent memory module, while continuing to perform critical event handling by the current version of persistent memory module firmware by:

establishing the critical event handling by the current version of the firmware in a spare area of the RAM distinct from the available area of the RAM;

initialize the new version of persistent memory module firmware; and

transfer processing of critical event handling from the current version of persistent memory module firmware to the new version of persistent memory module firmware when initializing the new version of persistent memory module firmware is completed.

18. The at least one tangible machine-readable non-transitory medium of claim 17 , comprising a plurality of instructions that in response to being executed by a processor cause the processor to:

authenticate the new version of persistent memory module firmware prior to executing the new version of persistent memory module firmware.

19. The at least one tangible machine-readable non-transitory medium of claim 17 , wherein instructions to transfer processing to the new version of persistent memory module firmware comprise instructions to:

disable external mailbox accesses for the persistent memory module;

save persistent memory module state information in the persistent memory module RAM for the new version of persistent memory module firmware; and

give control to the new version of persistent memory module firmware using a reset vector of the new version of persistent memory module firmware.

20. The at least one tangible machine-readable non-transitory medium of claim 19 , wherein the reset vector is one of a cold reset vector and a runtime firmware activation reset vector.

21. The at least one tangible machine-readable non-transitory medium of claim 17 , comprising a plurality of instructions that in response to being executed by a processor cause the processor to:

set an area in the persistent memory module RAM storing the current version of persistent memory module firmware to available after transferring processing of critical event handling from the current version of persistent memory module firmware to the new version of persistent memory module firmware.

22. The at least one tangible machine-readable non-transitory medium of claim 17 , wherein instructions to perform critical event handling comprise instructions to control access to the persistent memory media in the persistent memory module, manage wear leveling of the persistent memory media, and perform power loss handling for the persistent memory module.

23. The at least one tangible machine-readable non-transitory medium of claim 17 , wherein the persistent memory media comprises one or more three-dimensional cross point memories.

24. The at least one tangible machine-readable non-transitory medium of claim 17 , wherein the new version of persistent memory module firmware comprises a plurality of firmware modules stored in a flash memory of the persistent memory module, the persistent memory module flash memory including a firmware interface table, each entry in the firmware interface table pointing to a selected one of the plurality of firmware modules, and each firmware module being independently updateable.

25. The at least one tangible machine-readable non-transitory medium of claim 17 , wherein instructions to initialize the new version of persistent memory module firmware comprise instructions to:

restore the persistent memory module state information;

prepare interrupt and event handlers;

disable access to persistent memory module media;

back pressure host access;

update critical handling information;

enable interrupts;

enable access to the persistent memory module media; and

enable external mailbox accesses for the persistent memory module.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2023
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP.
Reel/Frame 062702/0048 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2020
From: NACHIMUTHU, MURUGASAMY K.; KUMAR, MOHAN J.; SWAMINATHAN, MUTHUKUMAR P.; OSAWA, DANIEL K.; PLUCINSKI, MACIEJ
To: INTEL CORPORATION
Reel/Frame 053874/0920 →
Continuity (1)
Related Publication 20210011706A1 · Jan 14, 2021