Virtual FPGA Controller for Dynamic Reconfiguration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for dynamic field-programmable gate array (FPGA) reconfiguration lack efficiency in managing user-specific workloads and platform customization across distributed computing environments, leading to increased latency and suboptimal hardware utilization.

Innovation Solution

A system that utilizes a virtual FPGA (VFPGA) controller to dynamically reconfigure FPGAs by generating user-specific platform profiles, synthesizing FPGA applications into bit stream images, and managing context switches through caching and analytics, optimizing hardware behavior and reducing latency across cloud-hosted and client-hosted applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional FPGA reconfiguration methods are used, then hardware flexibility is maintained, but reconfiguration latency increases and hardware utilization decreases

Engineering Contradiction:
Improvereconfiguration speedVSAvoidreconfiguration latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-synthesizing FPGA applications into bit stream images and storing them in profile storage before they are needed. When a reconfiguration request arrives, the pre-prepared bit stream images can be quickly retrieved and loaded, eliminating the time-consuming synthesis step and significantly reducing reconfiguration latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of FPGA application configurations in the form of bit stream images stored in profile storage. Instead of synthesizing from scratch each time, the system uses these pre-created copies, which can be rapidly deployed to the FPGA, thereby accelerating the reconfiguration process without losing hardware flexibility.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If dynamic reconfiguration is implemented, then hardware adaptability improves, but system complexity increases

Engineering Contradiction:
Improvehardware adaptabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system introduces a virtual FPGA controller as an intermediary layer between the user and the physical FPGA. This controller manages the complexity of dynamic reconfiguration by handling bit stream retrieval, translation, and loading operations, thereby simplifying the user interface while maintaining high hardware adaptability through automated background processes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements self-service mechanisms where the virtual FPGA controller automatically manages the reconfiguration process without requiring manual intervention. The controller monitors workload changes, retrieves appropriate bit stream images, and performs reconfiguration autonomously, reducing operational complexity while enhancing adaptability to different workloads.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If user-specific platform profiles are generated, then customization capability improves, but processing overhead increases

Engineering Contradiction:
Improvecustomization capabilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system performs preliminary generation of user-specific platform profiles and their corresponding bit stream images during off-peak periods or in advance. This pre-processing approach allows the system to maintain a library of customized configurations ready for rapid deployment, thereby providing high customization capability without incurring processing overhead during active workload execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10120798B1Dynamic FPGA re-configuration using a virtual FPGA controller
Publication Date: 2018.11.06 INTEL CORP
  • US10120798B1 patent drawing
  • US10120798B1 patent drawing
  • US10120798B1 patent drawing

AI summary

Technologies for field-programmable gate array (FPGA) processing include a computing device having a field-programmable gate array (FPGA) and a virtual FPGA controller (VFC). The computing device generates a user-specific platform profile (PP) that identifies one or more FPGA applications to be instantiated. The computing device synthesizes each FPGA application identified by the PP to generate a bit stream image that is associated with the PP and saves the bit stream image in a profile storage of the computing device. The computing device generates a virtual memory address that is indicative of the identified FPGA applications in response to saving the bit stream image. The VFC translates the virtual memory address to a user segment of the FPGA and a logical element (LE) offset within the user segment. The FPGA executes the bit stream associated with the PP with the FPGA at the LE offset. Other embodiments are described and claimed.