Flash Memory Firmware Redundancy and ECC Validation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The integrity of firmware stored in flash memory for non-volatile flash memory systems is vulnerable to errors during initialization, which can lead to irregular operation or failure of the memory system, potentially corrupting user data or making it irretrievable.
Innovation Solution
Storing two or more copies of the firmware in different locations within the flash memory and using a programmable firmware address map to ensure reliable loading, along with error correction codes and margining techniques to detect and correct errors, thereby maintaining firmware integrity during transfer to the controller RAM.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Duration of action of stationary object
If firmware is stored in flash memory for non-volatile flash memory systems, then the firmware can be retained without power, but the integrity of the firmware is vulnerable to errors during initialization
Solution Approach 1:
The patent applies preliminary action by performing error detection and correction operations before the firmware is executed. Specifically, the system reads the firmware from flash memory into RAM and performs checksum verification or error correction code (ECC) validation before transferring control to the firmware. This preliminary validation ensures that any corruption is detected before it can cause system failure, thus maintaining reliability while preserving the non-volatile storage benefit.
Solution Approach 2:
The patent implements beforehand cushioning by implementing error correction mechanisms that prepare compensatory measures in advance. The system incorporates error correction codes (ECC) or redundancy schemes in the firmware storage, and maintains a backup copy of critical firmware sections in both flash memory and RAM. This cushioning mechanism ensures that if errors occur during initialization, the system can recover using the pre-prepared error correction data or backup copies, thus protecting against firmware corruption.
2Productivity
If firmware is loaded into controller RAM during initialization, then the system can operate efficiently, but errors can lead to irregular operation or failure
Solution Approach 1:
The patent applies feedback by implementing continuous monitoring and validation mechanisms during firmware loading and execution. The system performs checksum verification after loading firmware from flash to RAM, and continuously monitors for errors during execution. If errors are detected, the system can trigger recovery procedures such as reloading firmware from a backup copy or initiating error correction protocols. This feedback loop ensures that efficiency is maintained through rapid error detection and correction while reliability is protected through continuous validation.
Solution Approach 2:
The patent implements parameter changes by dynamically adjusting the state of firmware data between different memory locations and validation states. The system changes the parameter of firmware integrity verification by transitioning firmware through different states: stored in flash memory, loaded into RAM, validated through checksum/ECC checks, and finally marked as executable only after successful validation. This parameter change approach ensures that efficiency is achieved by loading firmware into faster RAM while reliability is maintained through staged validation at each transition point.
3Reliability
If error correction codes and margining techniques are used to detect and correct errors, then firmware integrity is maintained, but the complexity of the initialization process increases
Solution Approach 1:
The patent applies copying by creating and maintaining multiple copies of the firmware in different locations - specifically, a primary copy in flash memory and a backup copy in RAM or a redundant flash sector. The initialization process involves reading and validating both copies, comparing them for consistency, and using the valid copy for execution. This copying strategy maintains firmware integrity through redundancy while managing complexity by using straightforward read-compare-select logic rather than complex error correction algorithms.
Data Source
AI summary
Multiple copies of firmware code for controlling operation of a non-volatile flash memory system are stored at different suitable locations of the flash memory of a memory system. A map of addresses of these locations is also stored in the flash memory. Upon initialization of the memory system, boot code stored in the memory controller is executed by its microprocessor to reference the address map and load one copy of the firmware from the flash memory into a controller memory, from which it may then be executed by the microprocessor to operate the memory system to store and retrieve user data. An error correction code (ECC) is used to check the data but the best portions of the two or more firmware copies stored in the flash memory are used to reduce the need to use ECC. The firmware code may be stored in the flash memory in two-states when user data is stored in the same memory in more than two-states.


