Non-Volatile Memory Firmware Patching via Phase Change Cells
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing non-volatile memory devices require costly and complex manufacturing changes to alter firmware code, making frequent updates difficult and expensive.
Innovation Solution
Implementing phase change memory (PCM) cells as 'fuse' elements to store replacement firmware code, allowing changes without modifying the manufacturing process, and copying these instructions to RAM for faster access during execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If firmware code is stored in read-only memory during manufacturing, then data integrity is maintained, but any changes to firmware require costly and complex manufacturing process modifications
Solution Approach 1:
The patent segments the firmware storage into two distinct parts: a read-only memory portion containing the base firmware code, and a separate programmable memory portion (such as EEPROM or Flash) containing the updateable firmware code. This segmentation allows the read-only portion to maintain data integrity while the programmable portion can be updated without modifying the manufacturing process, thus resolving the contradiction between firmware updatability and manufacturing complexity.
2Adaptability or versatility
If firmware code is stored in programmable memory, then updates are easier, but data integrity may be compromised during packaging and soldering operations
Solution Approach 1:
By segmenting firmware storage into read-only and programmable portions, the patent ensures that the read-only portion maintains data integrity throughout packaging and soldering operations, while the programmable portion accommodates firmware updates. The controller selectively executes code from appropriate portions based on operational needs, thus maintaining both reliability and adaptability.
Solution Approach 2:
The patent implements preliminary action by pre-programming the programmable memory portion with firmware code before the device undergoes packaging and soldering operations. This ensures that the firmware is already in place and verified before the device enters the manufacturing flow, preventing data integrity issues during subsequent processing steps while still allowing future updates.
3Adaptability or versatility
If firmware code is altered after manufacturing, then adaptability improves, but manufacturing cost and complexity increase
Solution Approach 1:
The patent segments firmware storage into a fixed read-only memory portion and a flexible programmable memory portion. This allows firmware to be altered after manufacturing by programming the programmable portion without any changes to the manufacturing process itself, thus improving firmware flexibility while avoiding increased manufacturing complexity.
Solution Approach 2:
The patent implements copying by storing a copy of the firmware code in the programmable memory portion during manufacturing, while the read-only memory portion retains the original firmware. This copying approach allows the programmable copy to be updated independently after manufacturing without affecting the original or requiring manufacturing process changes, thereby improving flexibility without increasing manufacturing complexity.
Applied Scientific Principles
This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.
Function Achieved in This Case
Enables efficient and cost-effective alteration of firmware code without the need for mask changes in the manufacturing process, maintaining data integrity through packaging and soldering operations.
Implementation Method 1
Implementing phase change memory (PCM) cells as 'fuse' elements to store replacement firmware code
Data Source
AI summary
Example embodiments described herein may comprise a transfer of firmware execution within a non-volatile memory device to one or more replacement instructions at least in part in response to a match between a code fetch address and an address stored in a trap address register.


