FPGA Infrastructure-as-a-Service Scheduler for Dynamic Cloud Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing devices with FPGAs lack dynamic execution capabilities and security features to support multi-user environments, such as cloud computing, where FPGA applications need to be executed and managed efficiently while ensuring isolation and memory protection.

Innovation Solution

A computing device with FPGA infrastructure-as-a-service (FAAS) capabilities, utilizing a scheduler, resource manager, DMA, and signaling glue logic to dynamically execute FPGA applications, enforce isolation and memory protection, and manage resources, allowing for standardized interfaces and secure execution within cloud or multi-user environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If FPGAs are programmed statically at boot time, then hardware configuration is simple and reliable, but dynamic execution capabilities and adaptability are lost

Engineering Contradiction:
Improvedynamic execution capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary software layer (FPGA middleware library and driver) between the user application and the FPGA hardware. This mediator handles the complexity of dynamic programming, resource management, and isolation, allowing the FPGA to be dynamically reconfigured without exposing this complexity to the user application.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables dynamic reconfiguration of FPGA applications at runtime rather than static programming at boot time. The scheduler allows multiple FPGA applications to be loaded, executed, and switched dynamically, transforming the FPGA from a static hardware resource to a dynamically programmable computing resource.

Inventive Principle:
Principle #15Dynamics

2Productivity

If multiple users share FPGA resources, then resource utilization efficiency improves, but security and isolation between users deteriorate

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidisolation and memory protection
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the FPGA resource access into isolated user spaces using virtualization techniques. Each user application runs in its own virtual environment with dedicated memory spaces and access permissions, preventing interference between users while sharing the physical FPGA hardware resource.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system creates virtual copies or snapshots of FPGA application states that can be independently managed. Virtualization layers provide isolated views of the FPGA resources to each user, allowing multiple users to access the same physical hardware without direct interference.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If FPGA applications are dynamically loaded and executed, then adaptability and cloud computing capabilities improve, but execution time and resource management complexity increase

Engineering Contradiction:
Improvecloud computing capabilityVSAvoidexecution time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system pre-loads and caches FPGA application images and configurations in memory before execution is needed. The scheduler maintains ready-state configurations and pre-allocates resources, reducing the time required to initiate new FPGA applications by having components prepared in advance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The scheduler implements feedback mechanisms to monitor FPGA application execution status, resource usage, and performance metrics. This feedback enables dynamic adjustment of resource allocation, optimization of execution timing, and intelligent scheduling decisions to minimize overall execution time.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10275558B2Technologies for providing FPGA infrastructure-as-a-service computing capabilities
Publication Date: 2019.04.30 INTEL CORP
  • US10275558B2 patent drawing
  • US10275558B2 patent drawing
  • US10275558B2 patent drawing

AI summary

Technologies for providing FPGA infrastructure-as-a-service include a computing device having an FPGA, scheduler logic, and design loader logic. The scheduler logic selects an FPGA application for execution and the design loader logic loads a design image into the FPGA. The scheduler logic receives a ready signal from the FGPA in response to loading the design and sends a start signal to the FPGA application. The FPGA executes the FPGA application in response to sending the start signal. The scheduler logic may time-share the FPGA among multiple FPGA applications. The computing device may include signaling logic to manage signals between a user process and the FPGA application and DMA logic to manage bulk data transfer between the user process and the FPGA application. The computing device may include a user process linked to an FGPA library executed by a processor of the computing device. Other embodiments are described and claimed.