Heterogeneous Device Compilation via Intermediary Linking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current development environments for heterogeneous integrated circuits (ICs) face challenges in efficiently compiling and linking user applications across different subsystems, which are often written in various programming languages and models, leading to complex integration and control of hardware accelerators.

Innovation Solution

A method and system that compile each section of a user application into accelerator representations based on specific programming models and subsystems, link these representations, and generate program code to control hardware accelerators, enabling seamless integration across heterogeneous device platforms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If distinct and independent development paths are used for each subsystem, then each subsystem can be developed using its specialized programming model, but the integration and linking complexity increases

Engineering Contradiction:
ImproveProgramming model compatibilityVSAvoidIntegration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary linking process that translates between different programming models and subsystem interfaces. This mediator component handles the conversion and coordination between heterogeneous subsystems, allowing each to maintain its specialized programming model while enabling seamless integration without direct complex interactions between subsystems.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a universal interface layer that can accommodate multiple programming models and subsystem types. This universal linking mechanism provides standardized communication protocols and translation capabilities that work across different subsystem architectures, reducing integration complexity while maintaining adaptability to various programming paradigms.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If manual compilation and linking processes are used for heterogeneous subsystems, then flexibility in handling different programming models is maintained, but the development time and effort increase

Engineering Contradiction:
ImproveProgramming language supportVSAvoidDevelopment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements preliminary compilation steps that preprocess each subsystem's code into an intermediate representation before linking. This preliminary action includes generating metadata about interface requirements, data types, and communication protocols, which are then used by the linking process to automatically integrate subsystems, significantly reducing manual effort and development time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables subsystems to self-describe their interface requirements and programming model characteristics through automated metadata generation. Each subsystem automatically provides information about its interfaces, data structures, and communication needs, allowing the linking process to autonomously integrate them without extensive manual configuration or programmer intervention.

Inventive Principle:
Principle #25Self-service

3Productivity

If separate development paths are maintained for software and circuit design portions, then each portion can be optimized independently, but the overall system integration becomes more difficult

Engineering Contradiction:
ImproveIndependent optimization efficiencyVSAvoidSystem integration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the development process into distinct segments for software and circuit design, allowing each to be optimized independently using specialized tools and methodologies. The segmentation is maintained through separate compilation processes for each subsystem type, while a unified linking framework integrates these segments into a cohesive system, preserving both independent optimization capability and system-level integration.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10977018B1Development environment for heterogeneous devices
Publication Date: 2021.04.13 XILINX INC
  • US10977018B1 patent drawing
  • US10977018B1 patent drawing
  • US10977018B1 patent drawing

AI summary

Implementing an application within a heterogeneous device can include receiving an application specifying a plurality of hardware accelerators and having a plurality of sections corresponding to different subsystems of the heterogeneous device, wherein the plurality of sections are specified using different programming models. Compiling each section based on the programming model of the section and the subsystem of the heterogeneous device corresponding to the section into an accelerator representation. Linking the accelerator representations based on a platform of the heterogeneous device, generating a hardware implementation of the application for the heterogeneous device based on the linked accelerator implementations, and automatically generating program code configured to control one or more of the plurality of hardware accelerators of the hardware implementation.