基于fpga的pcie加速卡及其冷复位方法、电路的制作方法

文档序号:9929256阅读:743来源:国知局
基于fpga的pcie加速卡及其冷复位方法、电路的制作方法
【技术领域】
[0001 ]本发明涉及加速卡,更具体地说,它涉及一种基于FPGA的PCIE加速卡及其冷复位方法、电路。
【背景技术】
[0002]随着近年数据大爆炸,需要处理的数据量越来越大,需要处理的数据越来越复杂,CPU的处理能力受到极大的挑战,因此发展出了各种异构加速。其中主要包括基于GPU和基于FPGA加速卡,它们都是通过PCIE接口与主机CPU通讯。但GPU的功耗太大,散热是一个很大的挑战,不利于绿色环保。FPGA(Field Programmable Gate Array)由于含有大规模的逻辑单元及DSP单元,很适合对大数据的处理运算加速,且与GPU相比,功耗小。因此,近来基于FPGA的PCIE硬件加速卡发展很迅速,其大体框图如图1,PCIE加速卡通过FPGA的PCIE接口和主机进行通讯。
[0003]基于FGPA的PCIE硬件加速卡其核心是FPGA芯片,因此对加速卡的复位就是对FPGA的复位。FPGA的复位分为热复位和冷复位两种方式:热复位仅使FPGA内部寄存器恢复到加载配置数据后的初始状态;而冷复位是对FPGA彻底复位,等同于上电后FPGA加载配置数据的过程。
[0004]在基于FPGA的PCIE加速卡应用过程中,经常需要对FPGA进行升级加载配置数据。当对基于FPGA的PCIE硬件加速卡上的FPGA加载了错误的配置数据后,或是FPGA工作过程中出现状态死锁,FPGA不能继续正常工作,此时热复位也不能解决问题,必须要对FPGA,SP加速卡,进行冷复位,让FPGA重新加载正确的配置数据。
[0005]要对基于FPGA的PCIE加速卡进行冷复位,目前有两种方法:一种是对FPGA加速卡断电,此方法需要手动的对整个主机进行断电,从而达到加速卡断电的目的,此方法需要人工对主机关机断电再开机上电,很不方便;另一种方法是通过专用的FPGA加载线,把FPGA的配置数据通过JTAG接口送给FPGA,重新加载FPGA,从而达到复位加速卡的目的。但是这种方式需要专用的加载线,既不经济也不方便,其示意图如图2。

【发明内容】

[0006]针对现有技术存在的不足,本发明的目的在于提供一种基于FPGA的PCIE加速卡及其冷复位方法、电路,实现能够以最经济、方便的方式,来复位加速卡的目的。
[0007]为实现上述目的,本发明提供了如下技术方案:
方案一:
本发明提供一种基于FPGA的PCIE加速卡的冷复位方法,包括:
检测步骤,用于检测PCIE接口中的PERST#信号是否变化;
配置步骤,响应于PERST#信号的变化,重新配置FPGA,进而实现对加速卡的复位。
[0008]进一步的,在所述配置步骤中,响应于PERST#信号的变化,重置加速卡中对FGPA供电的电源模块,进而实现FPGA上电复位。
[0009]进一步的,在所述配置步骤中,响应于PERST#信号的变化,控制FPGA的配置控制引脚从高变低,并经过预定时间后,控制该配置控制引脚从低变高,进而使FPGA重新加载配置数据。
[0010]方案二:
本发明还提供一种基于FPGA的PCIE加速卡的冷复位电路,用于对加速卡中的FPGA进行冷复位,所述冷复位电路具有一耦接于PCIE接口的检测端,以实现对PCIE接口中的PERST#信号进行检测;
当检测到有PERST#信号从高变低时,所述冷复位电路输出一配置信号,所述配置信号用于使FPGA重新配置。
[0011]进一步的,所述配置信号被输入至加速卡中对FPGA供电的电源模块的控制端,使电源管理芯片重置,进而实现对FPGA上电复位。
[0012]进一步的,所述配置信号以低电平的形式被输入至FPGA的配置控制引脚,并在预定时间后,该配置信号反转为高电平,进而实现FPGA的重新加载。
[0013]进一步的,所述冷复位电路采用CPLD、FPGA、微处理器或微控制器实现。
[0014]方案三:
本发明还提供一种基于FPGA的PCIE加速卡,包括FPGA,存储单元,电源管理模块以及PCIE接口 ;还包括用于对加速卡中的FPGA进行冷复位的冷复位电路,所述冷复位电路具有一耦接于PCIE接口的检测端,以实现对PCIE接口中的PERST#信号进行检测;
当检测到有PERST#信号从高变低时,所述冷复位电路输出一配置信号,所述配置信号用于使FPGA重新配置。
[0015]进一步的,所述配置信号被输入至加速卡的电源管理芯片的复位端,使电源管理模块重置,进而实现对FPGA上电复位。
[0016]进一步的,所述配置信号以低电平的形式被输入至FPGA的配置控制引脚,并在预定时间后,该配置信号反转为高电平,进而实现FPGA的重新加载。
[0017]与现有技术相比,本发明的优点是:通过上述技术方案,在主机复位重启时,通过检测主机的PCIE接口中的PERST#信号,进而利用其变化来控制加速卡内的FPGA重新加载配置数据,从而实现对加速卡的冷复位。这样,就能够避免现有技术中,通过使主机关机或使用专用的FPGA加载线的复位方式所带来的缺陷。
【附图说明】
[0018]图1现有技术中PCIE加速卡的原理框图;
图2为现有技术中PCIE加速卡利用专用加载线实现重新加载的原理框图;
图3为本发明采用方式一,FPGA主动加载配置数据的原理框图;
图4为本发明采用方式二,FPGA被动加载配置数据的原理框图;
图5为本发明采用方式三,FPGA主动加载配置数据的原理框图;
图6为本发明采用方式四,FPGA被动加载配置数据的原理框图。
【具体实施方式】
[0019]首先,需要说明的是,本发明所针对或使用的加速卡,作为示例,其可以包括FPGA,DDR或SRAM存储器,flash非易失性存储器,CPLD或微处理器,光模块接口,SATA接口、PCIE接口等。其中FPGA是Alter公司的FPGA,也可以是Xilinx公司的FPGA,CPLD是Altera公司的MAXV系列,也可以是Lattice公司的CPLD。非易失性存储器可以是Micron公司的Nor Flash,也可以是其它公司的NAND Flash,以及Altera公司FPGA主动配置方式专用的EPCS、EPCQ或EPCQ-L系列非易失性存储器。
[0020]下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不仅限于此。
[0021]方案一:
一种基于FPGA的PCIE加速卡的冷复位方法,包括:
检测步骤SOl,用于检测PCIE接口中的PERST#信号;该PERST#信号在主机热复位重启的时候,有一个从高电平到低电平再到高电平的过程,因此,本方案即可通过检测该PERSTMt号的变化过程,来感知主机的热复位重启动作。
[0022]本步骤中,通过两种方式来感知PERST#信号的变化,其中,
实施例一,具体是可以将PERST#信号输入至一个控制器或电路,该控制器或电路可以是在加速卡中另外设置的控制电路或芯片,也可以是利用加速卡中自带的CPLD或微处理器,无论采用哪种,在此统称为控制单元,即由控制单元来检测PERST#信号是否变化。
[0023]实施例二,另外,还可以将PERST#信号直接输入至FPGA的配置控制引脚,其中,Altera公司的FPGASnCONFIG,Xilinx公司的FPGA为PR0GRAM_B,利用PERST#信号在主机重启时,能够从高电平到低电平再到高电平,而这个变化过程,即能够满足FPGA在复位时,其配置控制引脚的电平变化需要。
[0024]配置步骤S02,本步骤基于步骤SOl中的两种实施例任意一种来实现,即基于主机的热复位重启动作而实现,通过检测到PERST#信号的变化,来重新配置FPGA。这样一来,就不需要对主机进行关机、开机操作,或是利用专用的FPGA加载线来对FPGA实现重新加载。
[0025]下面,以Altera公司的FPGA为例,采用实施例一的感知方式,对FPGA的重新配置方式进行详细介绍:
方式一,当控制单元检测到PERST#信号从高变低时,重置加速卡中对FPGA供电的电源模块,即向该电源模块的控制端输出一个配置信号,使该电源模块复位,进而实现FPGA的上电复位。FPGA上电复位后,可通过被动或主动的方式重新加载配置数据,进而实现对加速卡的复位。
[0026]方式二,当控制单元检测到PERST#信号从高变低时,控制FPGA的配置控制引脚η⑶NFIG从高变低,使FPGA进入复位状态,之后FPGA以被动或主动的方式重新加载配置数据,进而实现对加速卡的复位。
[0027]下面,分别基于配置步骤S02中的方式一和方式二,对FPGA采用被动加载模式和主动加载模式的具体过程进行详细说明。
[0028]图3示出了方式一中,FP
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1