Dynamic Interface Translation for Heterogeneous Program Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies fail to efficiently execute a software program in a heterogeneous computing environment, specifically, but not exclusively, to a heterogeneous computing environment.

Innovation Solution

A system and method for generating control-transfer information to dynamically select and configure processing units in a heterogeneous computing environment, allowing runtime decisions on executing software program blocks across different architectures and operating systems, thereby improving performance by reducing latency and increasing throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a software program is executed in a heterogeneous computing environment with multiple processing units having different architectures and operating systems, then system performance and throughput can be improved by utilizing diverse computing resources, but the complexity of managing control transfer and interface compatibility between different platforms increases significantly

Engineering Contradiction:
Improvesystem performanceVSAvoidinterface management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediate representation (IR) as a mediator between source code and target machine code for different processing units. The IR serves as a platform-independent intermediate form that captures the semantic meaning of the software program, allowing translation to multiple target architectures without direct platform-specific interface management. This intermediary layer resolves the contradiction by abstracting away the complexity of heterogeneous interface management while enabling efficient utilization of diverse computing resources.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The compilation process is segmented into distinct phases: source code compilation to intermediate representation, statistical value collection during execution, and dynamic code generation based on runtime statistics. This segmentation allows each phase to be optimized independently, with the IR phase handling platform independence and the code generation phase handling architecture-specific optimizations, thereby reducing overall system complexity while maintaining high performance.

Inventive Principle:
Principle #1Segmentation

2Speed

If control-transfer information is generated statically at compilation time, then the execution process is simpler and faster, but the ability to optimize for runtime conditions and statistical patterns is lost

Engineering Contradiction:
Improveexecution speedVSAvoidruntime optimization capability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic control-transfer information generation by collecting statistical values during software program execution and using these statistics to guide code generation. The system monitors runtime behavior, identifies performance patterns, and dynamically adjusts the generated code to optimize for observed execution patterns. This dynamic approach resolves the contradiction by maintaining fast execution through pre-generated code while simultaneously adapting to runtime conditions that static compilation cannot anticipate.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback loops where statistical values collected during execution feed back into the code generation process. The collected statistics about actual runtime behavior are used to refine and optimize the generated code for subsequent executions. This feedback mechanism enables the system to learn from runtime conditions and continuously improve performance, bridging the gap between fast static execution and adaptive optimization.

Inventive Principle:
Principle #23Feedback

3Productivity

If the system collects and processes statistical values during software execution to dynamically optimize performance, then throughput and latency can be improved, but the overhead of data collection and processing increases

Engineering Contradiction:
ImprovethroughputVSAvoiddata collection overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary compilation of source code to intermediate representation and prepares the framework for statistical collection before actual software execution begins. This preliminary action includes setting up the infrastructure for data collection and pre-generating baseline code, so that during runtime, only lightweight statistical monitoring is needed rather than full compilation or extensive processing. This resolves the contradiction by moving heavy processing work to pre-execution phases.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4668102A1Dynamic software interface translation for computing in a heterogeneous environment
Publication Date: 2025.12.24 NEXTSILICON LTD
  • EP4668102A1 patent drawingFigure 1
  • EP4668102A1 patent drawingFigure 2
  • EP4668102A1 patent drawingFigure 3

AI summary

A system for executing a software program comprising processing units and a hardware processor configured to: for at least one set of blocks, each set comprising a calling block and a target block of an intermediate representation of the software program, generate control-transfer information describing at least one value of the software program at an exit of the calling block (out-value) and at least one other value of the software program at an entry to the target block (in-value); select a set of blocks according to at least one statistical value collected while executing the software program; generate a target set of instructions using the target block and the control-transfer information; generate a calling set of instructions using the calling block and the control-transfer information; configure a calling processing unit to execute the calling set of instructions; and configure a target processing unit to execute the target set of instructions.