CN105718009B - 基于fpga的pcie加速卡及其冷复位方法、电路 - Google Patents
基于fpga的pcie加速卡及其冷复位方法、电路 Download PDFInfo
- Publication number
- CN105718009B CN105718009B CN201610039644.0A CN201610039644A CN105718009B CN 105718009 B CN105718009 B CN 105718009B CN 201610039644 A CN201610039644 A CN 201610039644A CN 105718009 B CN105718009 B CN 105718009B
- Authority
- CN
- China
- Prior art keywords
- fpga
- pcie
- cold reset
- signals
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于FPGA的PCIE加速卡及其冷复位方法、电路,在FPGA加载了错误的配置数据时,或者希望冷复位PCIE加速板卡时,可以简单有效的实现。既不需要人工对主机关机断电再开机上电,也不需要专用的JTAG加载线对FPGA进行重配置,省去了很多麻烦。
Description
【技术领域】
本发明涉及加速卡,更具体地说,它涉及一种基于FPGA的PCIE加速卡及其冷复位方法、电路。
【背景技术】
随着近年数据大爆炸,需要处理的数据量越来越大,需要处理的数据越来越复杂,CPU的处理能力受到极大的挑战,因此发展出了各种异构加速。其中主要包括基于GPU和基于FPGA加速卡,它们都是通过PCIE接口与主机CPU通讯。但GPU的功耗太大,散热是一个很大的挑战,不利于绿色环保。FPGA(Field Programmable Gate Array)由于含有大规模的逻辑单元及DSP单元,很适合对大数据的处理运算加速,且与GPU相比,功耗小。因此,近来基于FPGA的PCIE硬件加速卡发展很迅速,其大体框图如图1,PCIE加速卡通过FPGA的PCIE接口和主机进行通讯。
基于FGPA的PCIE硬件加速卡其核心是FPGA芯片,因此对加速卡的复位就是对FPGA的复位。FPGA的复位分为热复位和冷复位两种方式:热复位仅使FPGA内部寄存器恢复到加载配置数据后的初始状态;而冷复位是对FPGA彻底复位,等同于上电后FPGA加载配置数据的过程。
在基于FPGA的PCIE加速卡应用过程中,经常需要对FPGA进行升级加载配置数据。当对基于FPGA的PCIE硬件加速卡上的FPGA加载了错误的配置数据后,或是FPGA工作过程中出现状态死锁,FPGA不能继续正常工作,此时热复位也不能解决问题,必须要对FPGA,即加速卡,进行冷复位,让FPGA重新加载正确的配置数据。
要对基于FPGA的PCIE加速卡进行冷复位,目前有两种方法:一种是对FPGA加速卡断电,此方法需要手动的对整个主机进行断电,从而达到加速卡断电的目的,此方法需要人工对主机关机断电再开机上电,很不方便;另一种方法是通过专用的FPGA加载线,把FPGA的配置数据通过JTAG接口送给FPGA,重新加载FPGA,从而达到复位加速卡的目的。但是这种方式需要专用的加载线,既不经济也不方便,其示意图如图2。
【发明内容】
针对现有技术存在的不足,本发明的目的在于提供一种基于FPGA的PCIE加速卡及其冷复位方法、电路,实现能够以最经济、方便的方式,来复位加速卡的目的。
为实现上述目的,本发明提供了如下技术方案:
方案一:
本发明提供一种基于FPGA的PCIE加速卡的冷复位方法,包括:
检测步骤,用于检测PCIE接口中的PERST#信号是否变化;
配置步骤,响应于PERST#信号的变化,FPGA重新加载配置数据,进而实现对加速卡的复位。
进一步的,在所述配置步骤中,响应于PERST#信号的变化,重置加速卡中对FGPA供电的电源模块,进而实现FPGA上电复位。
进一步的,在所述配置步骤中,响应于PERST#信号的变化,控制FPGA的配置控制引脚从高变低,并经过预定时间后,控制该配置控制引脚从低变高,进而使FPGA重新加载配置数据。
方案二:
本发明还提供一种基于FPGA的PCIE加速卡的冷复位电路,用于对加速卡中的FPGA进行冷复位,所述冷复位电路具有一耦接于PCIE接口的检测端,以实现对PCIE接口中的PERST#信号进行检测;
当检测到有PERST#信号从高变低时,所述冷复位电路输出一配置信号,所述配置信号用于使FPGA重新加载配置数据。
进一步的,所述配置信号被输入至加速卡中对FPGA供电的电源模块的控制端,使电源管理芯片重置,进而实现对FPGA上电复位。
进一步的,所述配置信号以低电平的形式被输入至FPGA的配置控制引脚,并在预定时间后,该配置信号反转为高电平,进而实现FPGA的重新加载。
进一步的,所述冷复位电路采用CPLD、FPGA、微处理器或微控制器实现。
方案三:
本发明还提供一种基于FPGA的PCIE加速卡,包括FPGA,存储单元,电源管理模块以及PCIE接口;还包括用于对加速卡中的FPGA进行冷复位的冷复位电路,所述冷复位电路具有一耦接于PCIE接口的检测端,以实现对PCIE接口中的PERST#信号进行检测;
当检测到有PERST#信号从高变低时,所述冷复位电路输出一配置信号,所述配置信号用于使FPGA重新加载配置数据。
进一步的,所述配置信号被输入至加速卡的电源管理芯片的复位端,使电源管理模块重置,进而实现对FPGA上电复位。
进一步的,所述配置信号以低电平的形式被输入至FPGA的配置控制引脚,并在预定时间后,该配置信号反转为高电平,进而实现FPGA的重新加载。
与现有技术相比,本发明的优点是:通过上述技术方案,在主机复位重启时,通过检测主机的PCIE接口中的PERST#信号,进而利用其变化来控制加速卡内的FPGA重新加载配置数据,从而实现对加速卡的冷复位。这样,就能够避免现有技术中,通过使主机关机或使用专用的FPGA加载线的复位方式所带来的缺陷。
【附图说明】
图1现有技术中PCIE加速卡的原理框图;
图2为现有技术中PCIE加速卡利用专用加载线实现重新加载的原理框图;
图3为本发明采用方式一,FPGA主动加载配置数据的原理框图;
图4为本发明采用方式二,FPGA被动加载配置数据的原理框图;
图5为本发明采用方式三,FPGA主动加载配置数据的原理框图;
图6为本发明采用方式四,FPGA被动加载配置数据的原理框图。
【具体实施方式】
首先,需要说明的是,本发明所针对或使用的加速卡,作为示例,其可以包括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系列非易失性存储器。
下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不仅限于此。
方案一:
一种基于FPGA的PCIE加速卡的冷复位方法,包括:
检测步骤S01,用于检测PCIE接口中的PERST#信号;该PERST#信号在主机热复位重启的时候,有一个从高电平到低电平再到高电平的过程,因此,本方案即可通过检测该PERST#信号的变化过程,来感知主机的热复位重启动作。
本步骤中,通过两种方式来感知PERST#信号的变化,其中,
实施例一,具体是可以将PERST#信号输入至一个控制器或电路,该控制器或电路可以是在加速卡中另外设置的控制电路或芯片,也可以是利用加速卡中自带的CPLD或微处理器,无论采用哪种,在此统称为控制单元,即由控制单元来检测PERST#信号是否变化。
实施例二,另外,还可以将PERST#信号直接输入至FPGA的配置控制引脚,其中,Altera公司的FPGA为nCONFIG,Xilinx公司的FPGA为PROGRAM_B,利用PERST#信号在主机重启时,能够从高电平到低电平再到高电平,而这个变化过程,即能够满足FPGA在复位时,其配置控制引脚的电平变化需要。
配置步骤S02,本步骤基于步骤S01中的两种实施例任意一种来实现,即基于主机的热复位重启动作而实现,通过检测到PERST#信号的变化,来重新配置FPGA。这样一来,就不需要对主机进行关机、开机操作,或是利用专用的FPGA加载线来对FPGA实现重新加载。
下面,以Altera公司的FPGA为例,采用实施例一的感知方式,对FPGA的重新配置方式进行详细介绍:
方式一,当控制单元检测到PERST#信号从高变低时,重置加速卡中对FPGA供电的电源模块,即向该电源模块的控制端输出一个配置信号,使该电源模块复位,进而实现FPGA的上电复位。FPGA上电复位后,可通过被动或主动的方式重新加载配置数据,进而实现对加速卡的复位。
方式二,当控制单元检测到PERST#信号从高变低时,控制FPGA的配置控制引脚nCONFIG从高变低,使FPGA进入复位状态,之后FPGA以被动或主动的方式重新加载配置数据,进而实现对加速卡的复位。
下面,分别基于配置步骤S02中的方式一和方式二,对FPGA采用被动加载模式和主动加载模式的具体过程进行详细说明。
图3示出了方式一中,FPGA主动加载配置数据的过程,需要预先将FPGA的加载模式配置管脚配置为主动模式。另外,本实施例中,控制单元采用加速卡内部的CPLD或微处理器。当主机复位重启时,PERST#信号从高变低,控制单元检测到这一变化后,送出一个配置信号至FPGA的电源模块,使电源模块复位,从而使FPGA进行上电复位。在主动模式下,FPGA主动将nCONFIG信号和nSTATUS拉低,经过一段时间后,FPGA释放nCONFIG信号和nSTATUS信号,nCONFIG信号和nSTATUS信号被外部上拉电阻拉高,由此进入配置过程。然后FPGA开始发送时钟信号及相应的控制信号,从外部非易失性存储器读取配置数据,完成加载配置数据。
图4示出了方式一中,FPGA被动加载配置数据的实施例,需要预先将FPGA的加载模式配置管脚配置为被动模式。本实施例中,控制单元即为用于控制FPGA加载的CPLD或微处理器。当主机复位重启时,PERST#信号从高变低,控制单元检测到这一变化后,送出一个配置信号至FPGA的电源模块的控制引脚,使电源模块复位,例如断电后再打开,那么在电源模块复位时,使FPGA掉电并重新上电,进而触发FPGA上电复位。具体是,FPGA在经过掉电并上电后,CONF_DONE会置为低电平,那么控制单元就会检测到这一变化,进而控制FPGA的nCONFIG信号为低电平,FPGA检测到nCONFIG为低后,拉低nSTATUS信号。检测单元在检测到nSTATUS信号为低电平后,将nCONFIG信号拉高,接着,FPGA释放nSTATUS信号,准备接收配置数据。控制单元对FPGA送出时钟信号,同时从外部非易失性存储器读取数据,经过缓冲和处理,送给FPGA的被动加载接口,开始配置过程。FPGA在完成加载配置数据后,将CONF_DONE信号释放,变为高电平,通知控制单元加载完成。
图5示出了方式二中,FPGA主动加载配置数据的实施例,实施例中,控制单元采用加速卡内部的CPLD或微处理器。具体是,当主机复位重启时,PERST#信号从高变低,控制单元检测到这一变化后,送出一个配置信号控制FPGA的nCONFIG信号为低电平,当FPGA收到nCONFIG的低脉冲有效信号后,会马上清除现有的程序进入加载状态,并拉低nSTATUS和CONF_DONE信号,经过一段时间后,FPGA释放nSTATUS信号,然后FPGA开始发送时钟信号及相应的控制信号,从外部非易失性存储器读取配置数据,完成加载配置数据。
图6示出了方式二中,FPGA被动加载配置数据的实施例,实施例中,控制单元采用加速卡内部的CPLD或微处理器。具体的,当主机复位重启时,PERST#信号从高变低,控制单元检测到这一变化后,送出一个配置信号控制FPGA的nCONFIG信号为低电平,当FPGA收到nCONFIG的低脉冲有效信号后,会马上清除现有的程序进入加载状态,并拉低nSTATUS和CONF_DONE信号。经过预定时间后,控制单元拉高nCONFIG信号,并向FPGA发送时钟和数据进行加载,加载完成后,FPGA将CONF_DONE信号释放,变为高电平,以通知控制单元加载已完成。
另外,对于采用实施例二的感知方式来对FPGA进行重新加载的过程,与采用实施例一的感知方式大体相同,唯一不同的是,不需要通过控制单元来实现控制电源模块的重置或FPGA,而是直接将PERST#信号输入至电源模块的控制端或FPGA的配置控制引脚即可。
方案二:
一种基于FPGA的PCIE加速卡的冷复位电路,用于对加速卡中的FPGA进行冷复位,本方案中,该冷复位电路采用加速卡自带的CPLD或微处理器实现,以下统称为控制单元,当然也另外设置控制芯片或电路实现,在此不再赘述。控制单元具有一耦接于PCIE接口的检测端,以实现对PCIE接口中的PERST#信号进行检测;当检测到有PERST#信号从高变低时,控制单元输出一配置信号,该配置信号用于使FPGA重新配置。
本方案中,以Altera公司的FPGA为例,与方案一相同地,FPGA的重新配置方式有两种,即:
方式一、配置信号被输入至加速卡中对FPGA供电的电源模块的控制端,使电源模块重置,进而使FPGA实现上电复位。
方式二、配置信号以低电平的形式被输入至FPGA的配置控制引脚nCONFIG,使其被拉低,并在预定时间后,该配置信号反转为高电平,进而实现FPGA的重新加载。
以上两种方式的原理与方案一中的原理完全相同,因此,在此不再赘述。
方案三:
一种基于FPGA的PCIE加速卡,包括FPGA,存储单元,电源管理模块以及PCIE接口;还包括用于对加速卡中的FPGA进行冷复位的冷复位电路,本方案中,该冷复位电路采用加速卡自带的CPLD或微处理器实现,以下统称为控制单元,当然也另外设置控制芯片或电路实现,在此不再赘述。控制单元具有一耦接于PCIE接口的检测端,以实现对PCIE接口中的PERST#信号进行检测;当检测到有PERST#信号从高变低时,控制单元输出一配置信号,该配置信号用于使FPGA重新配置。
本方案中,以Altera公司的FPGA为例,与方案一相同地,FPGA的重新配置方式有两种,即:
方式一、配置信号被输入至加速卡中对FPGA供电的电源模块的控制端,使电源模块重置,进而使FPGA实现上电复位。
方式二、配置信号以低电平的形式被输入至FPGA的配置控制引脚nCONFIG,使其被拉低,并在预定时间后,该配置信号反转为高电平,进而实现FPGA的重新加载。
以上两种方式的原理与方案一中的原理完全相同,因此,在此不再赘述。
Claims (10)
1.一种基于FPGA的PCIE加速卡的冷复位方法,其特征是,包括:
检测步骤,用于检测PCIE接口中的PERST#信号是否变化;
配置步骤,响应于PERST#信号的变化,FPGA重新加载配置数据,进而实现对加速卡的复位。
2.根据权利要求1所述的基于FPGA的PCIE加速卡的 冷复位方法,其特征是,在所述配置步骤中,响应于PERST#信号的变化,重置加速卡中对FGPA供电的电源模块,进而实现FPGA上电复位。
3.根据权利要求1所述的基于FPGA的PCIE加速卡的 冷复位方法,其特征是,在所述配置步骤中,响应于PERST#信号的变化,控制FPGA的配置控制引脚从高变低,并经过预定时间后,控制该配置控制引脚从低变高,进而使FPGA重新加载配置数据。
4.一种基于FPGA的PCIE加速卡的冷复位电路,用于对加速卡中的FPGA进行冷复位,其特征是,所述冷复位电路具有一耦接于PCIE接口的检测端,以实现对PCIE接口中的PERST#信号进行检测;
当检测到有PERST#信号从高变低时,所述冷复位电路输出一配置信号,所述配置信号用于使FPGA重新加载配置数据。
5.根据权利要求4所述的基于FPGA的PCIE加速卡的冷复位电路,其特征是,所述配置信号被输入至加速卡中对FPGA供电的电源模块的控制端,使电源管理芯片重置,进而实现对FPGA上电复位。
6.根据权利要求4所述的基于FPGA的PCIE加速卡的冷复位电路,其特征是,所述配置信号以低电平的形式被输入至FPGA的配置控制引脚,并在预定时间后,该配置信号反转为高电平,进而实现FPGA的重新加载。
7.根据权利要求4或5或6所述的基于FPGA的PCIE加速卡的冷复位电路,其特征是,所述冷复位电路采用CPLD、FPGA、微处理器或微控制器实现。
8.一种基于FPGA的PCIE加速卡,包括FPGA,存储单元,电源管理模块以及PCIE接口;其特征是,还包括用于对加速卡中的FPGA进行冷复位的冷复位电路,所述冷复位电路具有一耦接于PCIE接口的检测端,以实现对PCIE接口中的PERST#信号进行检测;
当检测到有PERST#信号从高变低时,所述冷复位电路输出一配置信号,所述配置信号用于使FPGA重新加载配置数据。
9.根据权利要求8所述的基于FPGA的PCIE加速卡,其特征是,所述配置信号被输入至加速卡的电源管理芯片的复位端,使电源管理模块重置,进而实现对FPGA上电复位。
10.根据权利要求8所述的基于FPGA的PCIE加速卡,其特征是,所述配置信号以低电平的形式被输入至FPGA的配置控制引脚,并在预定时间后,该配置信号反转为高电平,进而实现FPGA的重新加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610039644.0A CN105718009B (zh) | 2016-01-20 | 2016-01-20 | 基于fpga的pcie加速卡及其冷复位方法、电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610039644.0A CN105718009B (zh) | 2016-01-20 | 2016-01-20 | 基于fpga的pcie加速卡及其冷复位方法、电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718009A CN105718009A (zh) | 2016-06-29 |
CN105718009B true CN105718009B (zh) | 2018-09-25 |
Family
ID=56153649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610039644.0A Active CN105718009B (zh) | 2016-01-20 | 2016-01-20 | 基于fpga的pcie加速卡及其冷复位方法、电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718009B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055109B2 (en) | 2019-05-01 | 2021-07-06 | Mellanox Technologies, Ltd. | Acceleration module supporting controlled configuration of a programmable logic device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236398A (zh) * | 2011-07-21 | 2011-11-09 | 曙光信息产业(北京)有限公司 | 一种龙芯刀片主板冷启动的方法 |
CN102253864A (zh) * | 2011-06-14 | 2011-11-23 | 中国科学院长春光学精密机械与物理研究所 | Fpga芯片加电启动容错装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007066037A (ja) * | 2005-08-31 | 2007-03-15 | Renesas Technology Corp | 半導体集積回路 |
CN104239240A (zh) * | 2013-06-11 | 2014-12-24 | 鸿富锦精密工业(深圳)有限公司 | 具有整合功能usb接口的电子装置 |
-
2016
- 2016-01-20 CN CN201610039644.0A patent/CN105718009B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253864A (zh) * | 2011-06-14 | 2011-11-23 | 中国科学院长春光学精密机械与物理研究所 | Fpga芯片加电启动容错装置 |
CN102236398A (zh) * | 2011-07-21 | 2011-11-09 | 曙光信息产业(北京)有限公司 | 一种龙芯刀片主板冷启动的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105718009A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8060767B1 (en) | Ultra low power sleep mode | |
US9652410B1 (en) | Automated modification of configuration settings of an integrated circuit | |
CN107977217B (zh) | 在线加载xilinx-fpga多版本更新程序的方法 | |
Bartling et al. | An 8MHz 75µA/MHz zero-leakage non-volatile logic-based cortex-m0 MCU SoC exhibiting 100% digital state retention at v DD= 0V with< 400ns wakeup and sleep transitions | |
US9652252B1 (en) | System and method for power based selection of boot images | |
US9213400B2 (en) | Apparatus and method to provide near zero power DEVSLP in SATA drives | |
CN107479918B (zh) | 一种可重构的mcu烧录的fpga模型 | |
JP2015534675A (ja) | 特定の機能利用可能性のための専用不揮発性アレイの制御 | |
CN104412224A (zh) | 在从低电力状态恢复时处理系统从易失性存储器的重新初始化 | |
CN101211266A (zh) | 一种实现fpga自动下载和在线升级的方法 | |
CN105988966A (zh) | 电子设备及其工作方法 | |
CN110096125A (zh) | 用于保存存储器数据的计算机实施方法及计算机系统 | |
CN107544658B (zh) | 用于控制电源域的电源控制电路 | |
EP3664298A1 (en) | Power management system for integrated circuits | |
CN105718009B (zh) | 基于fpga的pcie加速卡及其冷复位方法、电路 | |
US20080163012A1 (en) | Apparatus for Configuring a USB PHY to Loopback Mode | |
US8406076B2 (en) | FRDY pull-up resistor activation | |
US20080159157A1 (en) | Method for Configuring a USB PHY to Loopback Mode | |
JP6689824B2 (ja) | サブシステム電力管理制御 | |
CN103760892B (zh) | 一种嵌入式可信计算平台及其检测方法 | |
US10379980B2 (en) | Maintaining IO block operation in electronic systems for board testing | |
CN202331426U (zh) | 现场可编程门阵列的动态加载系统 | |
TWI482090B (zh) | 可經由通用序列匯流排裝置開機的系統及其方法 | |
Li et al. | A SPI FLASH-based FPGA dynamic reconfiguration method | |
CN103927210A (zh) | 基于cpld的fpga加载系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |