Failsafe Code Integrity Verification in Non-Volatile Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata reliabilityVSAvoidcode execution safety
Core Design Contradiction:
ReliabilityVSEase of operation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvesystem safetyVSAvoidfailsafe code reliability
Core Design Contradiction:
Ease of operationVSReliability

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.

Inventive Principle:
Principle #26Copying

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvecode execution safetyVSAvoidverification mechanism complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

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.

Inventive Principle:
Principle #26Copying

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9063851B2Fail safe code functionality
Publication Date: 2015.06.23 INFINEON TECHNOLOGIES AG
  • US9063851B2 patent drawing
  • US9063851B2 patent drawing
  • US9063851B2 patent drawing

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.