Virtual Fabric Streaming Networks for Runtime Kernel Reconfiguration
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Adaptability or versatility
If logic designs are frequently changed during development, then adaptability is improved, but productivity decreases due to repeated compilation
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
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
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
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
4Productivity
If dedicated circuits are added for commonly-used functions, then productivity is improved, but device complexity increases
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
Data Source
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.


