Persistent Memory Firmware Update Without Quiescence
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing persistent memory technologies require memory access quiescence during firmware upgrades, leading to system downtime and performance issues due to PCIe I/O device completion timeouts and operating system service timeouts, which is unacceptable for cloud service providers aiming to meet Service Level Agreements without rebooting computer server systems.
Innovation Solution
A mechanism for upgrading persistent memory module firmware without memory quiesce, allowing runtime firmware upgrades by dynamically transferring processing from the current firmware version to a new version without system resets, using techniques like disabling interrupts, 'back pressuring' memory access, loading a new interrupt descriptor table, and enabling media access, thus avoiding processor and OS constraints.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory access quiescence is implemented during firmware upgrade, then firmware activation is ensured, but system downtime increases and PCIe I/O device completion timeouts occur
Solution Approach 1:
The patent segments the firmware activation process into two independent phases: (1) copying the new firmware image to the memory device, which can proceed without quiescing memory access, and (2) activating the new firmware by resetting the memory device, which naturally quiesces access only briefly at the transition point. This segmentation allows the bulk of the update process to occur during active service without system downtime.
Solution Approach 2:
The patent applies preliminary action by copying the new firmware image to the memory device before activation. The memory device controller prepares the new firmware image in advance and stores it in a buffer or temporary location, then activates it by resetting the device. This allows the critical path to be shortened since the firmware image is ready before the brief quiescence period is needed.
2Reliability
If memory access quiescence is implemented during firmware upgrade, then firmware activation is ensured, but PCIe I/O device completion timeouts occur
Solution Approach 1:
The patent segments the firmware activation process into two independent phases: (1) copying the new firmware image to the memory device, which can proceed without quiescing memory access, and (2) activating the new firmware by resetting the memory device, which naturally quiesces access only briefly at the transition point. This segmentation allows the bulk of the update process to occur during active service without system downtime.
Solution Approach 2:
The patent extracts the firmware image copying operation from the activation process, allowing it to occur independently without requiring memory access quiescence. Only the brief activation moment requires quiescence, separating the bulk of the work (copying) from the critical moment (activation), thereby avoiding prolonged PCIe timeouts.
3Ease of operation
If runtime firmware upgrade capability is provided, then system reboot is avoided, but memory access quiescence is required causing service interruptions
Solution Approach 1:
The patent segments the firmware update process into a copying phase that can occur during active service without quiescing memory access, and a brief activation phase that naturally quiesces access only momentarily. This segmentation enables runtime upgrades to proceed with minimal impact on ongoing services.
Solution Approach 2:
The patent maintains continuity of useful action by allowing memory access to continue uninterrupted during the firmware image copying process. The memory device controller copies the new firmware image in the background without blocking read/write operations, and only briefly quiesces access during the transition to the new firmware, ensuring service continuity.
Data Source
AI summary
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.


