Patch Table Event Handling for Memory-Constrained Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional event handling in memory-constrained devices leads to increased memory usage and performance issues due to constant polling for rare events, which results in slower program execution and suboptimal code generation.

Innovation Solution

The implementation of a patch table that allows event handling code to be removed from the primary execution path, enabling event handlers to be called only at runtime, thereby reducing memory requirements and optimizing performance by eliminating unnecessary code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If event handling code is included in the primary execution path, then event handling capability is provided, but memory usage increases and program execution slows down

Engineering Contradiction:
Improveevent handling capabilityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts event handling code from the primary execution path by using a patch table mechanism. Event handling instructions are removed from the main code flow and stored separately in a patch table, which is only accessed when events actually occur. This extraction eliminates unnecessary code from the primary execution path, reducing memory usage while preserving event handling capability when needed.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements dynamic code generation based on runtime conditions. The patch table is generated and applied dynamically when events occur, rather than having static event handling code always present in the execution path. This dynamic approach allows the system to adapt between having minimal code in the primary path and providing full event handling capability when events are detected.

Inventive Principle:
Principle #15Dynamics

2Reliability

If constant polling is used to check for rare events, then event detection is maintained, but program execution becomes slower and code becomes bloated

Engineering Contradiction:
Improveevent detectionVSAvoidprogram execution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces constant polling with periodic event-driven action. Instead of continuously checking for events in a tight loop, the system uses event sources that generate notifications only when events actually occur. The patch table mechanism enables this periodic action by patching event handling code only when events are detected, eliminating the need for continuous polling and improving execution speed.

Inventive Principle:
Principle #19Periodic action

3Adaptability or versatility

If event handling code is generated for all possible events, then complete event coverage is achieved, but code size increases on memory-constrained devices

Engineering Contradiction:
Improveevent coverageVSAvoidcode size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent implements partial action by generating event handling code only for events that actually occur, rather than pre-generating code for all possible events. The patch table mechanism allows the system to selectively apply event handling instructions based on runtime event detection, achieving necessary event coverage while minimizing code size on memory-constrained devices by avoiding generation of unnecessary event handling code.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8091077B1System and method for handling rare events by modification of executable code
Publication Date: 2012.01.03 ORACLE AMERICAN INC
  • US8091077B1 patent drawing
  • US8091077B1 patent drawing
  • US8091077B1 patent drawing

AI summary

Systems and methods for the efficient handling of rare events by modification of executable code is provided. The present invention eliminates the need for event checking code and handling in the primary execution path of compiled code by using a patch table to modify code during execution. Accordingly, event handling does not introduce additional instructions to the primary execution path, and thus will not interfere with compiler optimizations for maximal performance along the primary execution path. The present invention, therefore, provides event handling for events that occur rarely while reducing the size of the code for execution on memory-constrained devices.