Runtime Check Offloading for Embedded Code Safety
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Embedded devices with limited resources face performance slowdowns due to the need for extensive runtime checks, which are resource-intensive and do not add visible functionality, especially when using virtual machines that require additional checks beyond traditional native code approaches.
Innovation Solution
Implementing a custom assembly cache on embedded devices to store pre-validated code, allowing runtime checks to be performed externally by a preparation application, thereby eliminating the need for local checks and enabling efficient execution with a 'check-less' or 'check-limited' runtime environment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If runtime checks are performed on embedded devices, then code execution safety is improved, but device performance deteriorates
Solution Approach 1:
The patent performs runtime checks in advance during the code preparation phase on external systems before deploying code to embedded devices. The preparation application validates assembly code and generates pre-checked binaries, so that when code executes on the embedded device, no runtime checks are needed during operation. This preliminary validation ensures execution safety while maintaining runtime performance.
Solution Approach 2:
The patent extracts the runtime checking functionality from the embedded device itself and relocates it to external preparation systems. The heavy lifting of code validation is performed outside the resource-constrained embedded environment, removing the performance burden from the embedded device while still ensuring code safety through pre-validation.
2Reliability
If runtime checks are performed on embedded devices, then code execution safety is improved, but code size increases
Solution Approach 1:
Validation checks are performed in advance during code preparation on external systems. The preparation application validates assembly code, verifies metadata, and ensures code correctness before deployment. This preliminary action eliminates the need to include runtime check infrastructure within the embedded device code, thereby maintaining execution safety without increasing code size.
Solution Approach 2:
The checking infrastructure is extracted from the embedded device codebase and relocated to external preparation systems. By performing validation externally before deployment, the patent eliminates the need to embed check-related code, data structures, and runtime verification logic within the device, thus avoiding code size bloat while maintaining safety guarantees.
3Reliability
If runtime checks are performed on embedded devices, then code execution safety is improved, but processing time increases
Solution Approach 1:
All necessary code validation and safety checks are performed in advance during the preparation phase on external systems. The preparation application validates assembly code, checks metadata integrity, and verifies compliance with runtime requirements before code is deployed to the embedded device. This upfront validation ensures that no additional processing time is consumed during actual code execution on the device.
Solution Approach 2:
The time-consuming validation operations are extracted from the embedded device execution path and performed externally during code preparation. By relocating these heavy processing operations to external preparation systems, the patent eliminates their impact on device processing time while still ensuring code execution safety through thorough pre-validation.
4Adaptability or versatility
If virtual machines are used on embedded devices, then platform portability is improved, but resource requirements increase
Solution Approach 1:
The patent extracts and removes unnecessary VM-specific runtime check requirements from the embedded device. By performing validation externally and using a streamlined preparation application, the system eliminates the need for heavy VM infrastructure on resource-constrained devices, thereby reducing memory and CPU resource requirements while maintaining the ability to execute portable code.
Solution Approach 2:
The patent changes the operational parameters of the virtual machine environment by disabling or minimizing runtime checks during execution. By relying on pre-validation performed during code preparation, the system can operate with a lighter-weight VM implementation that consumes fewer resources, thus adapting VM portability benefits to resource-constrained embedded environments.
Data Source
AI summary
System and method for allowing embedded devices, even with a limited amount of CPU power and limited memory, to run code more efficiently by eliminating all or most of the runtime checks, while retaining the benefits of runtime checks. The runtime checks may be moved or duplicated to an outside application running on a remote computer. The outside application can prepare the runtime checks for execution at the embedded system. The embedded system may receive pre-validated code and store it inside custom cache for later execution using a check-less, or check-limited, runtime on the embedded device.


