Proxy Virtual Machine for High-Fidelity Target Code Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In the development of embedded systems, there are gaps in fidelity during testing due to incomplete hardware designs, leading to late detection of problems and increased development iterations.

Innovation Solution

Utilizing a virtual machine (VM) that emulates core aspects of the target hardware, allowing early development and testing of target software without the need for complete target hardware, using a proxy VM that includes an emulation of the target processor and OS, and leveraging virtualization to mimic the target environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If testing is carried out on hardware other than the eventual target hardware (e.g., within an IDE on a PC), then software development can progress in parallel with hardware design, but there are gaps in the fidelity of testing which result in late detection of problems and increased development iterations

Engineering Contradiction:
Improvesoftware development progressVSAvoidtesting fidelity
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent creates a virtual copy of the target hardware environment (including processor, memory, and peripheral devices) that runs on the host PC. This virtual hardware copy allows software to be tested in an environment that closely mimics the actual target hardware, thereby maintaining high testing fidelity while enabling early software development and parallel processing.

Inventive Principle:
Principle #26Copying

2Measurement precision

If complete target hardware is used for early testing, then high-fidelity testing can be performed, but the hardware design is typically incomplete at early stages making such testing impossible

Engineering Contradiction:
Improvetesting fidelityVSAvoiddevelopment cycle time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent enables preliminary software development and testing actions to be performed before the complete target hardware is available. By creating a virtual hardware environment that emulates the target system's core components, developers can perform high-fidelity testing in advance, eliminating delays that would occur while waiting for hardware completion.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If application software is re-hosted to run on a PC, then software can be developed and tested early, but other elements of the target hardware software stack (such as a real-time OS) cannot run, creating gaps in testing fidelity

Engineering Contradiction:
Improveearly software developmentVSAvoidsoftware stack compatibility
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent creates a universal virtual hardware environment that can host multiple software stack components simultaneously, including real-time operating systems, device drivers, and application software. This multi-functional virtual environment maintains compatibility with the complete target hardware software stack, enabling comprehensive testing of all software layers together rather than isolating individual components.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP3961389B1Virtual machine for developing and testing target code for hardware designs
Publication Date: 2025.08.20 THE BOEING CO
  • EP3961389B1 patent drawingFigure 1
  • EP3961389B1 patent drawingFigure 2
  • EP3961389B1 patent drawingFigure 3

AI summary

A host computer includes a memory storing a proxy VM, and a host CPU. The proxy VM emulates target hardware having an incomplete design. The proxy VM includes a virtual processor for emulating a target processor. The proxy VM includes an emulated memory coupled to the virtual processor over a virtual memory bus. The emulated memory includes at least one portion storing the target code. The host CPU is configured to execute the proxy VM to emulate the target hardware. The proxy VM, upon execution by the host CPU, is configured to execute, by the virtual processor, the target code.