Non-intrusive Embedded Software Verification via Virtual Prototyping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Verification and debugging of embedded software in embedded systems are challenging due to the difficulty in simulating real-time behavior without disrupting the system, as existing methods require physical prototypes and instrumentation that can alter the processor's behavior and slow down operations.

Innovation Solution

A computing system is configured to simulate an embedded system, compile and execute embedded software with instrumentation code, allowing non-intrusive tracing and profiling without altering the system's behavior by using a virtual prototyping tool that includes a simulation unit, instrumentation tool, and debug tool to gather information on the software's execution without modifying the source code or recompiling it.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If instrumentation is added to physical prototype hardware and embedded software to enable verification and debugging, then information gathering capability is improved, but the system's real-time behavior is altered and operation speed is reduced

Engineering Contradiction:
Improveinformation gathering capabilityVSAvoidreal-time processor behavior
Core Design Contradiction:
Loss of informationVSReliability

Solution Approach 1:

The patent creates a virtual copy of the embedded system that replicates the hardware architecture and executes the embedded software. This virtual prototype allows comprehensive verification and debugging through instrumentation without affecting the actual physical system's real-time behavior. The virtual environment captures execution traces and profiling data while the original system continues to operate normally.

Inventive Principle:
Principle #26Copying

2Measurement precision

If instrumentation code is inserted into compiled embedded software to trace and profile execution, then verification capability is improved, but runtime operation is slowed down

Engineering Contradiction:
Improveexecution tracing capabilityVSAvoidruntime operation speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

Instead of instrumenting the actual embedded software, the patent instruments a copy executed in the virtual prototype environment. The instrumentation code runs on the virtual processor rather than the physical processor, eliminating the performance penalty from the real system while still providing detailed execution traces and profiling information for verification purposes.

Inventive Principle:
Principle #26Copying

3Loss of information

If physical prototypes with instrumentation are used for software verification, then debugging information is obtained, but system complexity and resource requirements increase

Engineering Contradiction:
Improvedebugging informationVSAvoidhardware instrumentation complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent replaces complex physical hardware instrumentation with a software-based virtual prototype that replicates the embedded system's hardware architecture. This virtualization approach provides comprehensive debugging information through software instrumentation without requiring physical probes, monitoring components, or specialized hardware storage, thereby reducing overall system complexity.

Inventive Principle:
Principle #26Copying

4Reliability

If instrumentation is added to verify embedded software on physical boards, then verification effectiveness is improved, but the embedded system's original behavior is hidden

Engineering Contradiction:
Improveverification effectivenessVSAvoidoriginal system behavior
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent performs verification on a virtual copy of the embedded system rather than the original physical system. The virtual prototype accurately replicates the hardware behavior and execution characteristics, allowing effective verification while the original system continues to operate unchanged, preserving its original behavior for comparison and validation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9898388B2Non-intrusive software verification
Publication Date: 2018.02.20 SIEMENS INDUSTRY SOFTWARE INC
  • US9898388B2 patent drawing
  • US9898388B2 patent drawing
  • US9898388B2 patent drawing

AI summary

This application discloses a computing system configured to simulate an embedded system including a processor capable of executing embedded software, compile the embedded software into a format capable of execution by the computing system, insert instrumentation code into the compiled embedded software, and execute the compiled embedded software and the instrumentation code. The execution of the compiled embedded software can simulate execution of the embedded software by the processor in the simulated embedded system, while the execution of the instrumentation code can configure the computing system to gather information corresponding to the execution of the compiled embedded software.