Virtual Fabric Streaming Networks for Runtime Kernel Reconfiguration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current programmable logic devices, such as FPGAs, require lengthy compile times for high-level language programming, especially when logic designs need frequent changes during development, and host-centric models impose practical limits on data buffer sizes and synchronization requirements, making it inefficient for dynamic applications.

Innovation Solution

Implementing a dynamic streaming network with a virtual fabric on programmable integrated circuits, allowing runtime reconfiguration of communication topology between kernels using OpenCL, where channel sources and sinks are configured to adapt to operational changes, and utilizing partial reconfiguration blocks to add, remove, or exchange kernels, thereby optimizing performance and reducing compile times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If high-level language programming is used for configuring programmable logic devices, then ease of operation is improved, but compile time increases significantly

Engineering Contradiction:
Improveease of programmingVSAvoidcompile time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent pre-compiles and stores kernel functions in a library during device initialization or prior to execution. When a high-level language program needs to use a kernel, it is retrieved from the library rather than being compiled from source at runtime, dramatically reducing the time penalty while maintaining ease of use

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates intermediate representations and optimized copies of kernel functions that can be quickly instantiated. Instead of compiling full high-level language code each time, pre-compiled kernel copies are reused and configured with different parameters, reducing compilation overhead while preserving programming flexibility

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If logic designs are frequently changed during development, then adaptability is improved, but productivity decreases due to repeated compilation

Engineering Contradiction:
Improvedesign flexibilityVSAvoiddevelopment speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the configuration process into separate kernel function definitions and instance creations. Individual kernels can be modified independently in the library without recompiling the entire system, allowing frequent design changes while maintaining high productivity through modular updates

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic kernel selection and configuration where kernels can be added, removed, or modified in the library during runtime or between executions. This dynamic architecture allows frequent design changes without the overhead of complete recompilation, maintaining both adaptability and productivity

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If host-centric models are used for data management, then ease of operation is improved, but device complexity increases due to synchronization requirements

Engineering Contradiction:
Improvedata management simplicityVSAvoidsynchronization overhead
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent extracts synchronization and data management functions from the host CPU into dedicated hardware components within the programmable logic device. This includes on-chip memory management units and synchronization circuits that handle data buffering and coordination autonomously, reducing host involvement while managing complexity through specialized hardware

Inventive Principle:
Principle #2Taking out (Extraction)

4Productivity

If dedicated circuits are added for commonly-used functions, then productivity is improved, but device complexity increases

Engineering Contradiction:
Improveperformance for common functionsVSAvoidcircuit architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements universal kernel functions that can perform multiple commonly-used operations through configurable parameters and internal logic. Instead of adding separate dedicated circuits for each function, a single versatile kernel infrastructure handles various mathematical and logical operations, improving productivity for common functions while controlling device complexity through reuse

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

Data Source

PatentUS9515658B1Method and apparatus for implementing configurable streaming networks
Publication Date: 2016.12.06 ALTERA CORP
  • US9515658B1 patent drawing
  • US9515658B1 patent drawing
  • US9515658B1 patent drawing

AI summary

A method of configuring a programmable integrated circuit device. A channel source within the virtual fabric is configured to receive input data from a first kernel outside of the virtual fabric and on the programmable integrated circuit device, and a channel sink within the virtual fabric is configured to transmit output data to the first kernel. The configuring of the channel source is modified such that the channel source receives input data from a second kernel in response to detecting a change in operation of the programmable integrated circuit device.