Dynamic Interface Translation for Heterogeneous Block Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems struggle to optimize performance in heterogeneous environments by efficiently distributing execution blocks among processing units with different architectures and operating systems, limiting performance improvements and usability.

Innovation Solution

A system and method for generating control-transfer information to dynamically select and configure processing units based on runtime statistical values, allowing flexible execution block distribution and data transfer between processing units with diverse architectures and operating systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If execution blocks are distributed among processing units with different architectures and operating systems, then system performance and adaptability are improved, but system complexity and difficulty of managing control transfer increase

Engineering Contradiction:
ImproveadaptabilityVSAvoidcomplexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer (translation service or virtual machine) that mediates between diverse processing units and execution blocks. This intermediary handles architecture-specific translations and control transfer protocols, allowing the system to support multiple architectures without directly managing their differences. The intermediary abstracts the complexity, enabling adaptability while containing complexity within the translation layer rather than distributing it throughout the entire system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically changes parameters such as instruction set architecture mappings, memory address spaces, and data representation formats based on the target processing unit's characteristics. By parameterizing the translation behavior and adapting these parameters at runtime based on statistical performance data, the system achieves versatility across different architectures while managing complexity through standardized parameter interfaces rather than hard-coded architecture-specific logic.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If dynamic selection of processing units is performed based on runtime statistical values, then system performance and throughput are improved, but measurement and detection difficulty increase

Engineering Contradiction:
ImprovethroughputVSAvoidmeasurement difficulty
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The system implements feedback mechanisms that continuously monitor runtime statistical values such as execution time, throughput, and resource utilization of different processing units. This feedback is used to dynamically adjust the selection and distribution of execution blocks, creating a closed-loop control system that optimizes throughput. The feedback infrastructure standardizes measurement collection, reducing the difficulty of detecting and measuring performance metrics while enabling sophisticated dynamic scheduling decisions.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Processing units and execution blocks are equipped with self-service capabilities that include built-in performance counters, statistical tracking, and automatic selection logic. Each component can report its own statistical values and make decisions about its own placement, reducing the need for external measurement infrastructure. This self-service approach simplifies the overall measurement and detection task while enabling high-throughput dynamic scheduling through distributed intelligence.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If control-transfer information is generated for multiple sets of blocks, then flexibility in execution distribution is improved, but information generation time and processing overhead increase

Engineering Contradiction:
ImproveflexibilityVSAvoidtime
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary generation of control-transfer information templates during system initialization or compilation, before runtime execution. These templates contain pre-computed translation rules, mapping information, and transfer protocols for various architecture combinations. At runtime, the system selects and instantiates appropriate templates rather than generating complete control-transfer information from scratch, significantly reducing processing time while maintaining flexibility through the template selection mechanism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Control-transfer information is segmented into modular components such as architecture-specific translation tables, block-level metadata, and transfer protocol definitions. This segmentation allows the system to generate and manage control-transfer information in discrete, reusable units. Rather than generating monolithic control-transfer descriptions for entire programs, the system generates segmented information for individual execution blocks and their interfaces, reducing overall processing time while maintaining comprehensive flexibility through composition of segmented elements.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250383876A1Dynamic software interface translation for computing in a heterogeneous environment
Publication Date: 2025.12.18 NEXTSILICON LTD
  • US20250383876A1 patent drawing
  • US20250383876A1 patent drawing
  • US20250383876A1 patent drawing

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.