Hardware Code Path Verification for Microprocessor Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing microprocessor-based systems face limitations in verifying correct program execution due to low checkpoint granularity and limited reliability, as they rely on self-verification methods that do not continuously monitor program execution, making them vulnerable to errors and malicious attacks.

Innovation Solution

A hardware code path verifying stage with a continuous error detection code generator is implemented, which continuously calculates error detection codes during program execution and compares them with predetermined values at specific breakpoints, providing high granularity and safety without additional data processing time, using methods like cyclic redundancy checks, parity bits, checksums, and Hamming distance checks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If checkpoints are inserted into the program code for verification, then program execution correctness can be detected, but the granularity of verification is limited and execution time increases

Engineering Contradiction:
Improveprogram execution verificationVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent replaces the mechanical approach of inserting software checkpoints into the program code with a hardware-based error detection code generator that continuously verifies program execution. The hardware EDC generator operates independently from the microprocessor, performing verification operations in parallel without interfering with the normal execution flow, thus achieving continuous verification without time loss.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent introduces a hardware intermediary component (EDC generator and comparison logic) that sits between the program execution and the verification process. This intermediary continuously generates error detection codes from the executing program and compares them against expected values, enabling verification without requiring the microprocessor to pause or insert checkpoints in the original code.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If self-verification methods are used in the program code, then verification can be performed, but reliability is limited due to lack of independent monitoring

Engineering Contradiction:
Improveverification reliabilityVSAvoidverification system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the verification function from the execution function by implementing a separate hardware EDC generator that operates independently from the microprocessor. This segmentation creates an independent monitoring path that does not rely on the correctness of the executing program, thereby improving reliability while maintaining manageable complexity through functional separation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The hardware EDC generator acts as an independent intermediary that monitors program execution without being part of the executed code itself. This independent intermediary generates verification data through a separate computational path, ensuring that the verification process is not compromised by errors in the program being verified.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If continuous verification is implemented, then highest granularity and safety standards are achieved, but additional data processing time is required

Engineering Contradiction:
Improvesafety standardsVSAvoiddata processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces the software-based verification mechanism with a hardware implementation of the EDC generator. This hardware implementation performs continuous error detection code generation and comparison operations in parallel with program execution, eliminating the need for the microprocessor to allocate additional processing time for verification and maintaining full data processing throughput.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent merges the verification operations with the execution operations by implementing both simultaneously in hardware. The EDC generator operates concurrently with the microprocessor execution, combining the useful action of program execution with the verification action of continuous EDC generation and comparison, thereby achieving continuous verification without sacrificing productivity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8892943B2Electronic device and method for verifying correct program execution
Publication Date: 2014.11.18 TEXAS INSTRUMENTS INC
  • US8892943B2 patent drawing
  • US8892943B2 patent drawing
  • US8892943B2 patent drawing

AI summary

An electronic device is provided which comprises a microprocessor for executing a program code and a first hardware code path verifying (CPV) stage coupled to the microprocessor. The hardware CPV stage comprises a first error detection code (EDC) generator configured to continuously determine an error detection code on a continuous sequence of code relating to an actually executed portion of the program code and to compare the actual error detection code with a predetermined error code so as to verify correct execution of the program code and to indicate an error.