Runtime Check Offloading for Embedded Code Safety

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Reliability

If runtime checks are performed on embedded devices, then code execution safety is improved, but device performance deteriorates

Engineering Contradiction:
Improvecode execution safetyVSAvoiddevice performance
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If runtime checks are performed on embedded devices, then code execution safety is improved, but code size increases

Engineering Contradiction:
Improvecode execution safetyVSAvoidcode size
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If runtime checks are performed on embedded devices, then code execution safety is improved, but processing time increases

Engineering Contradiction:
Improvecode execution safetyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #2Taking out (Extraction)

4Adaptability or versatility

If virtual machines are used on embedded devices, then platform portability is improved, but resource requirements increase

Engineering Contradiction:
Improveplatform portabilityVSAvoidmemory and CPU resources
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7805707B2System and method for preparing runtime checks
Publication Date: 2010.09.28 ORACLE INT CORP
  • US7805707B2 patent drawing
  • US7805707B2 patent drawing
  • US7805707B2 patent drawing

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.