FPGA Infrastructure-as-a-Service Scheduler for Dynamic Cloud Execution
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If multiple users share FPGA resources, then resource utilization efficiency improves, but security and isolation between users deteriorate
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.
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.
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
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.
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.
Data Source
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.


