Cross-Processor Application Migration Using a Portable VM State
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Automotive systems face challenges in efficiently migrating applications across diverse hardware architectures due to the need for recompilation, complex serialization, and inefficiencies in bytecode execution, making it economically unattractive for real-time deterministic situations.
Innovation Solution
A system that compiles a single binary executable file to run on a virtual machine across multiple processors, allowing seamless migration without intermediary compilation, using orchestrators to manage the transfer of application execution from a low-power processor to a high-power processor, and vice versa, while maintaining a fully specified and portable internal state.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If applications are migrated across diverse hardware architectures using traditional methods, then portability is achieved, but compilation complexity and time increase significantly
Solution Approach 1:
The patent introduces a virtual machine as an intermediary layer between the application and diverse hardware architectures. The application is compiled once to run on the virtual machine, which then handles architecture-specific execution. This eliminates the need for recompilation across different hardware platforms, reducing compilation complexity while maintaining portability.
2Productivity
If applications are migrated using serialization methods, then execution transfer is enabled, but processing overhead and time increase
Solution Approach 1:
The patent performs preliminary actions by pre-compiling the application to run on the virtual machine and pre-establishing the execution context. When migration is needed, the system can quickly transfer the virtual machine state without extensive serialization overhead, reducing migration time while maintaining execution transfer capability.
3Adaptability or versatility
If bytecode execution is used for portability, then cross-platform execution is achieved, but execution speed decreases
Solution Approach 1:
The patent implements a dynamic execution model where the virtual machine can adapt its execution mode based on the target hardware capabilities. The system can optimize code execution paths dynamically, switching between interpreted and compiled execution modes, or utilizing hardware-specific optimizations when available, thereby improving execution speed while maintaining cross-platform compatibility.
4Use of energy by moving object
If multiple processing units are used for resource balancing, then power efficiency improves, but system complexity increases
Solution Approach 1:
The patent creates a universal virtual machine layer that can execute the same application across multiple different processing units with varying power capabilities. This multi-functional approach allows the system to balance power consumption by migrating applications between low-power and high-power processors while using a single unified execution environment, reducing system complexity compared to implementing separate execution environments for each processor type.
Data Source
AI summary
A system for migrating execution of applications across multiple processors on a vehicle includes a first processor, a target processor, a first orchestrator, and a second orchestrator. The first processor is on the vehicle to execute applications until a migration of an execution of at least one application transfers the execution of the application to the target processor. The target processor includes available resources that execute the application. The first orchestrator executes on the first processor to initiate the execution of the application and then to manage the migration to the target processor. The second orchestrator is in communication with the first orchestrator and executes on the target processor to indicate the available resources for taking-over the execution of the application. The second orchestrator communicates with the first orchestrator to migrate the execution of the application to the target processor to resume where the execution left-off on the first processor.


