Codepath Integrity Checking via Token Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face challenges in detecting faults before they occur, as existing fault detection methods are often reactive and resource-intensive, failing to provide insight into how incorrect outputs are generated, especially in mission-critical systems.

Innovation Solution

The method involves inserting tokens into program code to establish baseline and executing code versions, subjecting the executing code to testing conditions, and comparing error detection values to detect errors quickly with minimal overhead, using a non-deterministic CRC or checksum arrangement for codepath verification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If runtime integrity checking is employed to detect improper codepath execution, then detection capability is improved, but CPU time and system resources are excessively consumed

Engineering Contradiction:
Improvefault detection capabilityVSAvoidsystem resource consumption
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the codepath verification process by inserting tokens at specific points in the code and verifying only these token values rather than monitoring the entire execution chain. This segmentation reduces the computational overhead from continuous monitoring to periodic token verification, resolving the contradiction between detection capability and resource consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a simplified copy of the execution verification process by using token values that represent key states in the codepath. Instead of verifying the complete execution chain, the system uses these token copies to infer codepath integrity, reducing CPU time and resource consumption while maintaining detection capability.

Inventive Principle:
Principle #26Copying

2Measurement precision

If algorithmic integrity checking is used to validate algorithm output, then output validity is improved, but insight into execution process is lost

Engineering Contradiction:
Improveoutput validation accuracyVSAvoidexecution process insight
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent applies preliminary action by pre-computing expected token values for all possible codepaths before execution. During runtime, the actual token values are compared against these pre-computed expectations, providing both output validation and insight into the execution process without requiring complex runtime analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by comparing actual token values during execution against expected values. This feedback mechanism provides immediate insight into whether the codepath followed the intended execution flow, resolving the information loss problem while maintaining output validation accuracy.

Inventive Principle:
Principle #23Feedback

3Ease of repair

If fault detection is performed after fault occurrence using toolkits, then system recovery is enabled, but preventive detection capability is insufficient

Engineering Contradiction:
Improvesystem recovery capabilityVSAvoidpreventive detection capability
Core Design Contradiction:
Ease of repairVSReliability

Solution Approach 1:

The patent applies preliminary action by establishing baseline token values and expected codepath sequences before system operation. This allows the system to detect deviations from expected behavior in real-time, enabling preventive detection rather than waiting for faults to occur and requiring post-factum recovery toolkits.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9389985B2Codepath integrity checking
Publication Date: 2016.07.12 JOHNSON & JOHNSON SURGICAL VISION INC
  • US9389985B2 patent drawing
  • US9389985B2 patent drawing
  • US9389985B2 patent drawing

AI summary

A method and apparatus for testing code is provided. The method includes inserting at least one token in program code, wherein each token comprises a code element able to provide a value during runtime, establishing a baseline code version and an executing code version from the program code, and subjecting the executing code version to various testing conditions using a processing device. Subjecting the executing code version to various testing conditions comprises periodically evaluating at least one executing code token having one associated executing error detection value against the at least one baseline code token having one associated baseline error detection value and reporting an error when at least one executing code token and associated executing error detection pair fails to match at least one baseline code token and associated baseline error detection pair.