阿里云提供的FaaS(FPGA as a Service)F5实例支持多种开发模式,用于满足不同应用场景和不同开发者的开发需求。本文为您介绍F5实例的基本概念、FPGA板卡信息以及系统架构内容。

基本概念

F5实例涉及的基本概念如下表所示:
名称 解释
OPAE 全称为Open Programmable Acceleration Engine,属于Intel配套软件栈,包括内核态空间和用户态空间两部分,OPAE提供了内核态和用户态的API封装。
IOFS 全称为Intel Open FPGA Stack。更多信息,请参见Intel® Open FPGA Stack
MMD 全称为Memory Mapped Device,该层属于Ali Shim用户态驱动。
Runtime 表示Intel OpenCL/OneApi软件栈,属于IOFS生态种的一个组件。
FIM 全称为FPGA Interface Manager。FPGA的静态区域,负责管理FPGA板卡的外围硬件电路及状态监控,向用户逻辑侧提供标准的AXI4总线接口,用于与主机(Host)、板载DDR进行交互。
PCIe Bridge FIM中的PCIe Bridge将PCIe协议简化成标准的AMBA总线接口,用户无需关注复杂的PCIe协议,通过AXI-Lite4、AXI4协议即可完成寄存器的读写和Host Memory的读写。
DDR FIM中提供四组DDR4(单路4 GB)接口封装,每路DDR均封装成Intel标准的AvalonMM总线接口。
Clock Reconfig FIM中提供两组用户可配置的时钟,您可以根据自己设计方案中的具体频率来配置相应的时钟频率。
SEU 全称为Single-Event Upsets,表示F5 FPGA板卡提供的FPGA CRAM单粒子翻转检测功能。
Remote STP JATG协议封装,通过相应软件栈和PCIe协议,实现传统逻辑开发工程师使用物理JTAG进行实时波形调试和跟踪的能力。
PIM 全称为Platform Interface Manager,表示接口转换适配单元。根据用户需求将FIM提供的标准AXI4接口转换为用户需要的接口形式。
Ali Shim F5实例针对Intel OneAPI/OpenCL所提供的逻辑适配层。
AFU 全称为Accelerator Functional Unit。用户可以在该层上开发自己的逻辑,然后集成到F5实例中。

F5 FPGA板卡规格

F5实例常用的FPGA板卡规格如下所示:
板卡 规格
FPGA型号 Intel Agilex,更多信息,请参见Intel® Agilex™ F-Series FPGA and SoC FPGA
PCIe PCIe Gen 4 ×16
DDR DDR4 (4 GB) ×4

F5实例的系统架构

F5实例包括主机(Host)和FPGA板卡两部分,F5实例的整体系统架构如下图所示:f5架构图
上述系统架构图中,主机(Host)部分包括User SpaceKernel Space区域,FPGA板卡部分包括FIMPIM以及AFU区域。关于系统架构中更多组件的详细解释,请参见基本概念
说明 FPGA板卡规格的更多信息,请参见F5 FPGA板卡规格
针对上述架构图中涉及的FIM组件和三种开发模式做如下特别说明:
  • FIM组件
    FIM组件属于F5 FPGA板卡上的静态区域,您无法在该区域进行任何修改操作,整个FIM组件所占用的资源为整个FPGA板卡片上资源的8%,除FIM组件所占据的静态区资源外,其余资源您均可以使用。FIM组件在FPGA器件上的布局布线位置如下图(图中红色部分)所示:
    说明 了解FIM组件在FPGA器件上的布局布线位置,您可以更方便地使用除了FIM外剩下的芯片面积和资源。
    FIM布线
  • 开发模式

    F5实例支持以下三种开发模式用于满足不同应用场景和开发者的开发需求。

    • 模式1:基于Intel IOFS的RTL开发流程

      该模式适用于熟悉Intel IOFS RTL开发流程的开发者或组织团队。您可以采用该模式来进行开发或者移植您的设计方案至F5实例中,无需了解复杂的PCIe、DDR协议及Host驱动开发,仅需专注于OPAE Based RTL Design部分的逻辑开发以及OPAE Base App部分的Host应用层代码的开发。

      阿里云F5实例提供了已适配的OPAE Driver和FIM组件,根据您解决方案的接口需求,开发套件中PIM组件提供AMAB、AVALON两套标准总线可供选择,更多信息,请参见F5实例开发套件

    • 模式2:基于Intel OpenCL/OneAPI开发流程

      该模式适用于熟悉Intel OpenCL/OneApi开发方式的开发者或组织团队。F5实例兼容了Intel的OpenCL/OneAPI开发流程,您可以采用该模式来进行开发或者移植您的设计方案至F5实例中,几乎无需具备FPGA相关背景知识,仅需专注于OpenCL/OneAPI Kernel部分及OpenCL/OneAPI App部分的代码开发。

      阿里云F5实例的开发套件提供了适配后的FIM、PIM、SHIM以及Host侧适配过的OPAE Driver、MMD、Runtime,帮助您顺利地移植设计方案到F5实例中。

    • 模式3:高度定制的RTL开发流程
      该模式适用于FPGA资深用户或者有完整软硬件栈解决方案的开发者或组织团队。您可以采用该模式来进行开发或者移植您的设计方案至F5实例中。
      • 逻辑侧:F5实例在FIM中将PCIe、DDR等协议均封装成标准的AMBA/AVALON总线,从而使您更专注于应用的开发。根据设计需求,您可通过PIM来适配自己设计的总线接口,也可以在AFU中自定义DMA协议以及业务逻辑开发。
      • Host侧:您可以基于自己的需求高度定制整个软件栈。