Failsafe Code Integrity Verification in Non-Volatile Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Non-volatile memory (NVM) systems face data bit corruption issues, which existing error correction code (ECC) mechanisms cannot fully address, leading to unsafe execution of application code when non-correctable errors occur, and the reliability of failsafe code stored in NVM is compromised due to potential corruption.
Innovation Solution
A system and method that incorporates a memory integrity check using a separate read-only memory (ROM) to verify the integrity of failsafe code before execution, employing ECC and checksum verification mechanisms to ensure the reliability of failsafe code, and utilizing redundant checksum and code copies to mitigate corruption and false-negative results.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If ECC mechanisms are used to detect and correct data bit errors in NVM, then data reliability is improved, but the system cannot safely execute application code when non-correctable bit errors are detected
Solution Approach 1:
The patent applies preliminary action by implementing a failsafe code verification mechanism that checks the integrity of failsafe code before execution. A checksum is calculated and stored with the failsafe code, and before the failsafe code is executed, the checksum is verified to ensure the code has not been corrupted. This preliminary verification ensures that only intact, reliable failsafe code is executed, resolving the contradiction between data reliability and code execution safety.
2Ease of operation
If failsafe code is stored in NVM to provide fault mitigation, then system safety is improved, but the reliability of failsafe code is compromised due to potential corruption
Solution Approach 1:
The patent applies copying by creating a redundant copy of the failsafe code and its checksum in a separate memory location. Instead of storing only one version of the failsafe code in NVM, the system stores multiple copies, and when verification is needed, the system checks the checksum of the intended copy to ensure integrity before execution. This copying mechanism ensures that even if one copy is corrupted, other copies may be intact and executable.
Solution Approach 2:
The patent applies preliminary action by calculating and storing a checksum of the failsafe code before execution. The checksum serves as a preliminary integrity check that verifies the code has not been corrupted since storage. Before the failsafe code is executed, the system recalculates the checksum and compares it with the stored checksum to ensure the code is intact, thereby maintaining reliability while preserving system safety.
3Ease of operation
If redundant checksum and code copies are implemented to verify failsafe code integrity, then code execution safety is improved, but device complexity increases
Solution Approach 1:
The patent applies copying by storing redundant copies of the failsafe code and its checksum in memory. Instead of storing only a single version, the system creates multiple copies that can be verified independently. This copying approach, while increasing storage requirements, provides a simple and straightforward verification mechanism that does not significantly increase device complexity.
Solution Approach 2:
The patent applies taking out by extracting the checksum verification function from the main code execution path. The checksum is calculated and stored separately from the failsafe code, allowing the verification process to be isolated and simplified. This extraction enables the system to verify code integrity without complicating the overall device architecture, as the verification mechanism operates independently as a separate function.
Data Source
AI summary
Some aspects of the present disclosure provide for a system and method for fault mitigation of a non-volatile memory (NVM) store subject to error correction code (ECC) checking. A simple and robust means to test the integrity of failsafe code stored within the non-volatile memory prior to execution are disclosed. In some embodiments, the failsafe code comprises program elements to communicate the memory failure to other parts of the system, or to execute an orderly shutdown. In the event that an ECC error occurs, the failsafe code can be verified, and upon successful verification, executed.


