CN105718009B - 基于fpga的pcie加速卡及其冷复位方法、电路 - Google Patents

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

Info

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
Application number
CN201610039644.0A
Other languages
English (en)
Other versions
CN105718009A (zh
Inventor
文开壹
王文华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Feishu Technology Co Ltd
Original Assignee
Hangzhou Feishu Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Feishu Technology Co Ltd filed Critical Hangzhou Feishu Technology Co Ltd
Priority to CN201610039644.0A priority Critical patent/CN105718009B/zh
Publication of CN105718009A publication Critical patent/CN105718009A/zh
Application granted granted Critical
Publication of CN105718009B publication Critical patent/CN105718009B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring 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加速卡及其冷复位方法、电路
【技术领域】
本发明涉及加速卡,更具体地说,它涉及一种基于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的重新加载。
CN201610039644.0A 2016-01-20 2016-01-20 基于fpga的pcie加速卡及其冷复位方法、电路 Active CN105718009B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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接口的电子装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
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