基于逻辑 算市场的高速发展,公司成立FPGA硬件加速项目组。专注开发运算达到100亿次每秒以上的逻辑加速算法平台。
新一代FPGA加速卡,采用多颗FPGA为运算单元。相比以往的加速卡选用大容量的FPGA芯片,设计更高集成度的架构,具备更大的逻辑容量和更高的计算频率,支持实时加载不同功能的逻辑算法满足变化运算功能,灵活而全面的满足当前 算市场的各种应用。

二、主要特性
采用这种方案,主要特性如下(由于FPGA可以兼容多种型号,以XC7K325T来说明):
- 强大的运算能力(如运行DES64算法达到约200亿次每秒);
- 运算单元FPGA管脚兼容2种不同容量(325T/410T);
- 支持动态可重配置
- 支持板卡程序加密;
- 支持FPGA过温保护功能;
- 带有2G bit DDR3存储器;
- 功耗约35W,支持PCIe插槽供电和机箱电源12V供电2种方式;
- 符合PCIe Gen2速率规范;
- 符合PCIe x4插槽定义,尺寸是68.9mm X 250mm;
- 采用主动散热片散热。
三、服务器支持
由于板卡为半高pcie卡,支持1U以上所有服务器单卡和多卡模式。
如塔式服务器:

1U服务器:

四、加速卡结构
如下所示:

五、FPGA配置框图
方案的FPGA配置示意图如下所示:

可以实现如下3个配置场景:
场景一
- 通过菊花链结构,进行在线调试。通过选择相应电阻焊接与悬空,来支持不同数量FPGA的调试。如下所示:

场景二
- 上电配置时,FPGA_A采用BPI模式加载,其他2颗(FPGA_B和FPGA_C)通过SPI接口实现动态加载。
BPI模式配置加载如下:

SPI模式配置加载如下:

场景三
- 通过上位机和FPGA桥片通信,实现2颗运算单元的FPGA远程功能升级。
六、数据流框图
方案的数据面框图如下所示:

加速卡的PCIe接口采用PCIe x4的形态。FPGA_A内部有8个GTX模块,分别要分配给上位机和FPGA_B之间通信使用。FPGA_A以PCIe Gen2速率规范和上位机通信,PCIe Gen2的速率是5Gbps,PCIe x4即可达到约20Gbps。
加速卡上有3颗FPGA,分别称为:FPGA_A、FPGA_B、FPGA_C。FPGA_A是主控片,负责和上位机通信,汇总其他2颗FPGA的运算结果,控制其他FPGA工作状态,将各种信息汇报给上位机等等。其他2颗FPGA纯粹运行算法,2颗FPGA之间通过不同速度的IO接口相连,GTX是FPGA内部高速Serdes接口,速度是6.6Gbps;LVDS接口速度是1.2Gbps。
DDR3是一片内存颗粒,封装兼容多种容量大小,如1Gb或2Gb。DDR3内存主要起到FPGA_A和上位机通信时缓冲池的作用,避免在运算的过程中由于频繁通信而导致的整体性能下降。
七、时钟分配框图
如下所示:

时钟部分包括50MHz的晶振输入给FPGA_A,经过内部的PLL电路产生不同种类的时钟,如DDR3工作时钟。其中HR2_LVDS_IBUG是FPGA_A连接其他2颗FPGA的IBUFG管脚,用来提供逻辑工作时钟。GTX模块是通过一个时钟芯片扇出3路GTX_REFCLK,分别用来给3颗FPGA提供Serdes工作时钟。
八、结构工艺设计
方案的FPGA布局示意图如下所示:

方案采用PCIe x4 ADD-IN Card插槽定义,尺寸是68.9mm X 250mm。如上图所示加速卡左侧需要使用挡板将之固定在上位机上,同时,需要给每个FPGA芯片加装带风扇的散热片。

九、电源热设计
3颗FPGA占据了加速卡上绝大部分功耗,所以FPGA的供电和热设计是整个板子的核心。
FPGA内部带有温度监控模块。当芯片温度达到所设定的阈值时,将自动停止用户逻辑。直到温度恢复正常后,自动重新运行用户逻辑。这方面的配置在逻辑软件中实现,如图示:

同时,FPGA_B、FPGA_C可以通过GPIO中断将温度警报汇报给FPGA_A。可以由FPGA_A统筹安排温度监控,逻辑运行等策略。

根据Xilinx的功耗评估软件XPE,将FPGA资源尽可能多占用的前提下,得出1颗XC7K325T型号的FPGA如下数据(即极限值,实际使用中不会这么大):

十、基于PCIe接口的局部可重构
启用了基于PCIe接口的局部可重构技术(Partial Reconfiguration)。即在上位机的控制下,通过PCIe接口,对FPGA内部的用户逻辑进行动态更新、配置。这种技术在工作时主要分作2个步骤:
- 对PCIe system link的配置初始化;如图示:

2. 用户逻辑的重构。
|