Proxy Virtual Machine for High-Fidelity Target Code Testing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
Figure 1
Figure 2
Figure 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.