一种网络设备及配置文件的加载方法

文档序号:6380414阅读:260来源:国知局
专利名称:一种网络设备及配置文件的加载方法
技术领域
本发明涉及网络通信领域,尤其涉及一种网络设备及配置文件的加载方法。
背景技术
如今的一些网络设备可以完成许多的业务功能,如包过滤、流量监控等,这些业务可以通过网络设备的CPU或FPGA (现场可编程门阵列)来完成。两者相比较,由于CPU要控制系统的整体运行,若再进行大流量的业务处理,将会对系统运行稳定性及业务处理的性能大打折扣。而如果将大流量业务处理的工作交给FPGA来处理,则设备的CPU就可以解放出来,设备的整体性能及可靠性可以有很大的提高。FPGA是通过硬件描述语言来完成电路设计的,根据处理不同业务流的需求来开发相应的FPGA软件版本,后将软件配置文件加载到FPGA中,使FPGA根据设计来完成相应的 业务处理。由于人们对大流量大范围业务处理的网络设备需求越来越高,因此相应的FPGA的软件配置文件容量也将越来越大。在设备启动过程中,需要将FPGA软件配置文件加载到FPGA中所消耗的时间也将越来越久,由此带来的影响不言而喻设备启动时间将越来越长,或者在整个拓扑中该设备的业务处理中断(设备不能正常进行业务处理)的时间将越来越长。由此可见,FPGA软件加载的快慢是会影响到整体设备的性能的,对设备尽快恢复业务处理功能有很大关系,尤其是对于网络安全领域的设备,更加需要通过减少FPGA的软件配置文件加载时间来缩短设备的启动时间。图I是现有技术的网络设备的逻辑结构图。参照图1,目前实现FPGA软件配置文件的加载,大体上是通过CPLD (复杂可编程逻辑器件)来做中间转换,即CPU通过PCI对CPLD进行操作,然后CPLD通过FPGA自定义总线协议(类似SMBUS总线,不同的CPLD厂商可以有不同的实现,通过该自定义总线实现CPLD与工作FPGA的通信,本发明中不关注其具体实现)对FPGA进行操作,总体是通过以下过程来完成的嵌入式系统中的CPU将需要加载的软件配置文件从CF (紧凑式闪存)卡等存储设备中读取到内存中,并获得文件的容量大小,即字节数。CPU根据获得存放FPGA配置文件的内存地址及大小,每次通过PCI总线向CPLD芯片写8bit的数据,后向CPLD发送写确认,收到写确认后,CPLD将这一字节的数据通过FPGA芯片自定义的总线协议(类似SMBUS总线)送给FPGA,将配置文件根据其字节数大小依次循环写入到CPLD,通过写CPLD的确认来完成FPGA软件配置文件的加载。根据以上描述,系统要给工作FPGA加载配置文件,中间的传输需要通过CPLD芯片来完成,现有的嵌入式环境下的FPGA配置文件一般每次只能加载Sbit的数据,当业务处理范围扩大,功能增强时,配置文件的也会越来越大,而每次往FPGA加载8bit的速度是不会改变的,此时就会增加FPGA配置文件的加载时间,导致设备整体的启动时间加长,可靠性也就随之降低。目前的技术方案FPGA下载配置文件,每次写Sbit数据,对于日益增强的FPGA业务处理功能,FPGA配置文件下载已经影响到设备的整体性能和可靠性了。例如,对于一款防火墙设备,其使用的FPGA的配置文件为40MB,对于40MB的配置文件,每次写一个字节的速度进行循环下载,则需要150秒钟左右的时间,也就是说设备的启动时间需要多增加150秒,这种通过CPLD的方式来加载FPGA的下载速度为273KB/s。这就限制了设备正常工作的开始时间,设备正常的业务处理时间将会延后,这种延时明显是不符合业务处理的实时性要求的。

发明内容
有鉴于此,本发明的目的是提供一种网络设备及配置文件的加载方法,能够提高 FPGA配置文件的加载速度。为实现上述目的,本发明提供技术方案如下一种网络设备,包括嵌入式系统和第一 FPGA器件,所述第一 FPGA器件与所述嵌入式系统通过PCI-E总线连接,其中,所述网络设备还包括DMA器件,所述DMA器件通过PCI-E总线与所述嵌入式系统连接,并通过FPGA自定义总线与所述第一 FPGA器件连接,所述DMA器件用于通过DMA方式从所述嵌入式系统中下载所述第一 FPGA器件的配置文件,并将所述配置文件加载到所述第一 FPGA器件中。一种配置文件的加载方法,应用于包括嵌入式系统和第一 FPGA器件的网络设备中,所述第一 FPGA器件与所述嵌入式系统通过PCI-E总线连接,其中,所述网络设备还包括DMA器件,所述DMA器件通过PCI-E总线与所述嵌入式系统连接,并通过FPGA自定义总线与所述第一 FPGA器件连接,所述加载方法包括所述DMA器件通过DMA方式从所述嵌入式系统中下载所述第一 FPGA器件的配置文件;所述DMA器件将所述配置文件加载到所述第一 FPGA器件中。与现有技术中相比,本发明的技术方案通过在网络设备中设置DMA器件,由DMA器件通过DMA方式从嵌入式系统中下载FPGA的配置文件,并将配置文件加载到FPGA器件中,能够缩短配置文件的加载时间,从而增加了网络设备的整体性能和可靠性。


图I是现有技术的网络设备的逻辑结构图;图2是本发明实施例I的网络设备的逻辑结构图;图3是本发明实施例2的网络设备的逻辑结构图。
具体实施例方式针对现有技术中存在的FPGA配置文件加载时间过长的问题,本发明综合先前配置文件加载的优缺点,提出了一种在网络设备中添加DMA器件的方案,由DMA器件向嵌入式系统下载FPGA配置文件,并将FPGA配置文件加载到FPGA器件中,如此,能够缩短配置文件的加载时间,从而增加网络设备的整体性能和可靠性。其中,DMA (Direct Memory Access,直接存储器访问)在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给 CPU。以下结合附图对本发明进行详细描述。实施例I图2是本发明实施例I的网络设备的逻辑结构图。参照图2,所述网络设备包括嵌入式系统、CPLD器件、第一 FPGA器件和第二 FPGA器件,所述嵌入式系统通过PCI-E总线连接至PCI-E交换器(PCI-E switch),所述第一 FPGA器件通过PCI-E总线连接至PCI-Eswitch,所述第二 FPGA器件通过PCI-E总线连接至PCI-E switch,所述PCI-E switch通过PCI-E总线连接至PCI-E/PCI桥,所述CPLD器件通过PCI总线连接至PCI-E/PCI桥,所述第二 FPGA器件通过FPGA自定义总线分别与CPLD器件以及第一 FPGA器件连接。其中,所述嵌入式系统包括CPU和内存以及PCI-E总线,所述内存中能够存储所述 第一 FPGA器件的配置文件以及所述第二 FPGA器件的配置文件,所述PCI-E/PCI桥可以实现PCI-E信号与PCI信号之间的转换,所述第二 FPGA器件的容量小于所述第一 FPGA器件容量。所述第二 FPGA器件能够通过所述CPLD器件从所述嵌入式系统下载自身的配置文件,该配置文件能够使得所述第二 FPGA器件具有DMA功能及传输数据的功能。所述第二 FPGA器件加载配置文件后,能够通过DMA方式从所述嵌入式系统下载所述第一 FPGA器件的配置文件,并将所述配置文件加载的所述第一 FPGA器件中。其中,所述第二 FPGA器件的配置文件的大小小于所述第一 FPGA器件的配置文件的大小。根据上述的网络设备的逻辑结构,第一 FPGA器件的配置文件的加载流程为首先,通过CPLD器件从所述嵌入式系统下载所述第二 FPGA器件的配置文件,并将所述配置文件加载到所述第二 FPGA器件中;然后,所述第二 FPGA器件通过DMA的方式从所述嵌入式系统中下载所述第一 FPGA的配置文件,并将所述配置文件加载到所述第一 FPGA器件中。具体地,所述PCI-E总线可以采用PCI Express Xl规格,支持双向数据传输,单向数据传输带宽为250MB/S,双向数据传输带宽为500MB/S。第二 FPGA器件的容量较小,主要是用来向嵌入式系统DMA第一 FPGA器件的软件配置文件的。可以通过该第二 FPGA器件每次向嵌入式系统DMA 2KB的数据,并将DMA到的数据传送到第二 FPGA器件。可以通过可编程的FPGA软件版本(即第二 FPGA器件的配置文件)使第二 FPGA器件拥有DMA功能及传输数据的功能,该FPGA软件版本存储在嵌入式系统的内存中。然后,通过CPLD器件将该FPGA软件版本下载到第二 FPGA器件中。由于这个专用的FPGA软件版本实际上只有20KB左右,而通过CPLD器件下载FPGA软件版本的速度为276KB/s,因此仅需要O. 08秒的时间就可以将第二 FPGA器件的配置文件下载完成,使第二 FPGA器件具备DMA功能及传输数据的功能。第二 FPGA器件将DMA到的数据同时通过FPGA内部总线协议传送给第一 FPGA器件。可以在两个FPGA器件之间使用16条点对点数据传输通道用来传输数据,每个数据传输通道的单向数据传输带宽为6. 25MB/S,故16条通道总的单向数据传输带宽为ΙΟΟΜΒ/s。由以上设计可知,在第二 FPGA器件加载配置文件正常工作以后,下载第一 FPGA器件的配置文件的时间瓶颈是在两个FPGA器件之间的数据传输的延时,当然实际中也可以设计成大于16条点对点数据传输通道,这样总的单向的数据传输带宽便是100MB/S以上。可以得出,相同的FPGA配置文件,使用本发明的方案加载所用的时间在理论上是远远小于现有方案所使用的时间的,例如,对于40MB的配置文件,理论上是不需要I秒钟时间就可以完成的。同样40MB大小的FPGA配置文件加载由原先的方案需要用时150秒,而使用本发明的加载方案只需要用时O. 5秒(通过在系统中加入加载前和加载完成的时间统计得到),大大的加快了设备的启动速度,也就增加了设备的整体性能和可靠性。事实证明,新方案的加载时间是小于I秒,和以上技术方案的分析在设计理论上能对应上的。综上所述,通过专用的第二 FPGA器件,由于其FPGA配置文件非常小,对于整个加载过程来说可以忽略不计,第二 FPGA器件加载配置文件后便可向嵌入式系统DMA第一 FPGA器件的配置文件,再通过与第一 FPGA器件之间的16条通道,根据FPGA自定义的协议来完 成第一 FPGA器件的配置文件的加载,可以大大缩短第一 FPGA器件加载配置文件的时间,且对设备的启动及运行并不会有不利的影响。实施例2图3是本发明实施例2的网络设备的逻辑结构图。参照图3,所述网络设备包括嵌入式系统、专用集成电路和第一 FPGA器件,所述嵌入式系统通过PCI-E总线连接至PCI-E交换器(PCI-E switch),所述专用集成电路通过PCI-E总线连接至PCI-E switch,所述第一 FPGA器件通过PCI-E总线连接至PCI-E switch,所述专用集成电路通过FPGA自定义总线与第一 FPGA器件连接。 其中,所述嵌入式系统包括CPU和内存以及PCI-E总线,所述内存中能够存储所述第一 FPGA器件的配置文件,所述PCI-E/PCI桥可以实现PCI-E信号与PCI信号之间的转换,所述专用集成电路具有DMA功能及传输数据的功能。所述专用集成电路能够通过DMA方式从所述嵌入式系统下载所述第一 FPGA器件的配置文件,并将所述配置文件加载的所述第一 FPGA器件中。根据上述的网络设备的逻辑结构,第一 FPGA器件的配置文件的加载流程为首先,所述专用集成电路通过DMA的方式从所述嵌入式系统中下载所述第一 FPGA的配置文件;然后,所述专用集成电路将所述配置文件加载到所述第一 FPGA器件中。在实施例2中,通过设计出一种专用的集成电路来代替实施例I中的第二 FPGA器件,这种专用的集成电路可以完成DMA方式下载配置文件及传送数据给第一 FPGA器件。当然这两种方式各有利弊,使用专用集成电路来完成这种功能不需要另外再进行配置文件(指第二 FPGA器件的配置文件)的加载就可以直接完成所需功能,但欠缺灵活;而使用FPGA器件的方式,运用非常灵活,可以使系统更好的控制及运用FPGA器件,但还是需要加载对应的FPGA配置文件,当然,相比业务处理的第一 FPGA器件,它的配置文件由于实现的功能简单而小的多,通过CPLD器件加载也不需要花费很多时间。综上所述,本发明使用一片DMA器件来完成配置文件的DMA及传输,用空间换时间的方法解决由于FPGA器件的配置文件变大而导致加载时间过长,从而使设备启动时间过长的缺陷,能够大大增强设备的整体性能以及设备的可靠性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种网络设备,包括嵌入式系统和第一FPGA器件,所述第一FPGA器件与所述嵌入式系统通过PCI-E总线连接,其特征在于,所述网络设备还包括DMA器件,所述DMA器件通过PCI-E总线与所述嵌入式系统连接,并通过FPGA自定义总线与所述第一 FPGA器件连接,所述DMA器件用于通过DMA方式从所述嵌入式系统中下载所述第一 FPGA器件的配置文件,并将所述配置文件加载到所述第一 FPGA器件中。
2.如权利要求I所述的网络设备,其特征在于 所述DMA器件为第二 FPGA器件; 所述网络设备还包括CPLD器件,所述CPLD器件通过PCI总线与所述嵌入式系统连接,并通过FPGA自定义总线与所述第二 FPGA器件连接,所述CPLD器件用于从所述嵌入式系统中下载所述第二 FPGA器件的配置文件,并将所述配置文件加载到所述第二 FPGA器件中,使得所述第二 FPGA器件具有DMA功能及传输数据的功能。
3.如权利要求2所述的网络设备,其特征在于 所述CPLD器件通过PCI总线与PCI-E/PCI桥连接,所述嵌入式系统通过PCI-E总线与所述PCI-E/PCI桥连接。
4.如权利要求I所述的网络设备,其特征在于 所述DMA器件为专用集成电路,所述专用集成电路具有DMA功能及传输数据的功能。
5.一种配置文件的加载方法,应用于包括嵌入式系统和第一 FPGA器件的网络设备中,所述第一 FPGA器件与所述嵌入式系统通过PCI-E总线连接,其特征在于,所述网络设备还包括DMA器件,所述DMA器件通过PCI-E总线与所述嵌入式系统连接,并通过FPGA自定义总线与所述第一 FPGA器件连接,所述加载方法包括 所述DMA器件通过DMA方式从所述嵌入式系统中下载所述第一 FPGA器件的配置文件; 所述DMA器件将所述配置文件加载到所述第一 FPGA器件中。
6.如权利要求5所述的加载方法,其特征在于,所述DMA器件为第二FPGA器件,所述网络设备还包括CPLD器件,所述CPLD器件通过PCI总线与所述嵌入式系统连接,并通过FPGA自定义总线与所述第二 FPGA器件连接,所述加载方法还包括 所述CPLD器件从所述嵌入式系统中下载所述第二 FPGA器件的配置文件; 所述CPLD器件将所述配置文件加载到所述第二 FPGA器件中,使得所述第二 FPGA器件具有DMA功能及传输数据的功能。
7.如权利要求6所述的加载方法,其特征在于 所述CPLD器件通过PCI总线与PCI-E/PCI桥连接,所述嵌入式系统通过PCI-E总线与所述PCI-E/PCI桥连接。
8.如权利要求5所述的加载方法,其特征在于 所述DMA器件为专用集成电路,所述专用集成电路具有DMA功能及传输数据的功能。
全文摘要
本发明提供一种网络设备及配置文件的加载方法,属于网络通信技术领域。所述网络设备包括嵌入式系统和第一FPGA器件,所述第一FPGA器件与所述嵌入式系统通过PCI-E总线连接,其中,所述网络设备还包括DMA器件,所述DMA器件通过PCI-E总线与所述嵌入式系统连接,并通过FPGA自定义总线与所述第一FPGA器件连接,所述DMA器件用于通过DMA方式从所述嵌入式系统中下载所述第一FPGA器件的配置文件,并将所述配置文件加载到所述第一FPGA器件中。根据本发明,能够提高FPGA配置文件的加载速度。
文档编号G06F9/445GK102968316SQ201210434318
公开日2013年3月13日 申请日期2012年11月2日 优先权日2012年11月2日
发明者杜剑明, 刘小兵, 冯永刚 申请人:杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1