用于1000Mbps以上DFA运算的CPU硬件架构的制作方法

文档序号:6481775阅读:319来源:国知局

专利名称::用于1000Mbps以上DFA运算的CPU硬件架构的制作方法
技术领域
:本发明涉及UTM硬件架构,尤其涉及一种用于1000Mbps以上DFA运算的CPU硬件架构。
背景技术
:在UTM设备中,广泛采用DFA技术。DFA技术是一种算法,可以将串行的模式匹配工作变成并行的运算。DFA运算的基本原理是,先将所有需要匹配的模板(如病毒库、关键字库等)统一变成一张很大的图(Gmph),图由若干个节点组成,每个节点包含256个指针,对应一个字节的0FF共256种值。输入流的字节顺序,直接决定了CPU在当前节点中的偏移量,根据这个偏移量直接跳转到下一个节点,如此不断循环。但是,传统的CPU架构都会在CPU与Memory之间有一个Cache,为的是暂存部分Memory数据,当CPU在访问到Cache中己有的数据时就不必去访问速度相对较慢的Memory了,这样的过程叫数据命中。CPU的运算速度一般要比Memory的访问速率快很多,如果Cache的命中率高,CPU等待从Memory中取数据的时间就少,CPU才能真正在有效地工作。为了实现这个机制,实际上每当CPU在从Memory中取数据时,Memory控制器会直接把该字节附近的128字节全部取回备用。因为大部分程序和数据都是前后相关联的,这样对于程序运行来说,能提高效率。但是对于DFA运算来说,Cache机制完全不适合。图的结构是很不确定的,网络上往来的数据流字节的前后顺序也完全随机,因此CPU在进行DFA匹配运算时,发生Cache命中的可能性极小。CPU每次为了读取下一个图的节点都需要从Memory中读取128字节,即输入数据流和MemoryBus上的流量比为1:128。目前主流的DDR2Memory速率是667MHz,最大带宽是双向667MX8=5336MB/s,假设输入数据流量需要达到400Mbps,这时候需要的内存带宽是400M/8X128=6400MB/s。此数据已经超过内存的物理带宽了。这还不算正常的程序运行需要的数据读写。因此,传统的CPU架构不适用于吞吐量大于1000MUTM设备,而只能用在一些较低端的UTM设备上。
发明内容本发明的目的是克服现有技术存在的不足,提供一种用于1000Mbps以上DFA运算的CPU硬件架构。本发明的目的通过以下技术方案来实现用于1000Mbps以上DFA运算的CPU硬件架构,由系统内存通过系统内存总线接入中央处理器,形成系统内存通道,特点是还在中央处理器上设置DFA用内存通道,DFA用内存通道独立于系统内存通道,DFA用内存通道包括DFA用低延迟内存和DFA用内存总线,DFA用低延迟内存通过DFA用内存总线接入中央处理器,所述系统内存通道进行普通程序运行和数据存取,所述DFA用内存通道进行DFA査找运算。进一步地,上述的用于1000Mbps以上DFA运算的CPU硬件架构,其中,所述DFA用低延迟内存为DDR内存或RDLRAM内存。本发明技术方案突出的实质性特点和显著的进步主要体现在①通过改进CPU在不同运算时(如普通运算和DFA运算)所用到的内存通道来优化内存访问,在CPU中增加另外一条内存通道,运行时将DFA图数据存放在该内存区域中,供DFA协处理单元进行读取,避免在高速DFA运算时出现内存带宽耗尽的瓶颈;②为DFA运算配置单独的内存总线后,随机数据存取的延时大大减少,且与程序、数据的读写互不影响,实时DFA运算的速率可以轻易地突破1000Mbps,该硬件架构适用于各种需要用到DFA运算的高端UTM设备或其它高速网络安全设备。下面结合附图对本发明技术方案作进一步说明图h本发明的架构示意图;图2:本发明的工作数据流示意图。图中各附图标记的含义见下表<table>tableseeoriginaldocumentpage5</column></row><table>为解决现有微处理器架构中存在的IO瓶颈,在CPU内部增加一个内存控制器,这个内存控制器考虑到DFA运算的高度随机性,不配Cache,内存带宽的瓶颈就可消失。假设输入数据流量需要达到400Mbps,需要的内存带宽是400/8Xl=50MB/s,远远小于现有内存技术的物理带宽,即使业务流量达到1000Mbps,DFA内存总线上的数据流量也仅是125MB/s,只要CPU足够快,比如采用多核设计,就可以构成1000M以上的UTM;该架构用在高性能的UTM设备中,性能可以突破1000M以上的实时匹配处理。如图1、图2所示,用于lOOOMbps以上DFA运算的CPU硬件架构,由系统内存4通过系统内存总线3接入中央处理器(CPU)1,形成系统内存通道,另外,还在中央处理器1上设置DFA用内存通道,DFA用内存通道独立于系统内存通道,DFA用内存通道包括DFA用低延迟内存6和DFA用内存总线5,DFA用低延迟内存6通过DFA用内存总线5接入中央处理器l,DFA用低延迟内存6可以采用普通的廉价的DDR内存,也可以根据需要采用高速但比较昂贵的RDLRAM内存。系统内存通道用于普通程序运行和数据存取,DFA用内存通道用于DFA査找运算。为DFA运算增加专用内存控制通道,即CPU上增加了独立于系统内存的DFA用内存通道,DFA用内存通道独立于系统内存控制总线,使得普通数据和DFA运算数据分开存取。不同于传统的系统内存控制通道,DFA用内存通道上不采用Cache机制,只是按需要进行存取,虽然顺序存取的速率相对传统的设计来说要慢得多,但对于DFA这种基本上都是随机存取的应用来说却非常适合;DFA专用存储通道上不采用Cache机制,以适应DFA运算需要大量随机存取的特性,避免几十乃至上百倍的多余的内存访问。在本发明硬件架构下,如图2所示,当网络流量8通过网络接口7到达CPU1时,携带有可疑特征,此时CPU1将可疑特征字加入DFA运算,在DFA用低延迟内存6中查找其是否是已知特征码,此过程形成了DFA用内存总线5上的流量,这部分流量和进来的网络流量基本是1:1,不会受到任何物理限制。当DFA运算匹配到疑似病毒或攻击的特征码时,CPU1对该数据包进行丢弃或过滤,最后再将没有安全威胁的网络数据9发送到局域网。对用于高速数据匹配的DFA算法来讲,为达到减小数据吞吐量,实现高速随机存取的目的,在DFA内存通道上不能使用Cache模块;但是对于程序运行来说,为了尽量多的重复利用程序代码和己经加载的数据,在系统内存通道上需要保留传统的高速缓冲存储器(Cache)2,以减少不必要的总线操作;为保留各自的优点,避免其缺点,只能将用于査找的DFA内存单独独立出来,这样就形成两套内存总线,一套用于普通程序运行和数据存取,另外一套专用于DFA查找运算。综上所述,本发明对传统的CPU的内存控制器进行重新设计,通过在CPU中增加另外一条内存通道,运行时将DFA图数据存放在该内存区域中,供DFA协处理单元进行读取;通过改进CPU在不同运算时(如普通运算和DFA运算)所用到的内存通道来优化内存访问,突破了传统CPU架构在进行DFA运算时产生的内存带宽瓶颈。为DFA运算配置单独的内存总线后,随机数据存取的延时大大减少,且和程序、数据的读写互不影响,实时DFA运算的速率可以轻易地突破1000Mbps;该硬件架构适用于1000Mbps以上的UTM设备硬件架构。需要理解到的是上述说明并非是对本发明的限制,在本发明构思范围内,所进行的添加、变换、替换等,也应属于本发明的保护范围。权利要求1.用于1000Mbps以上DFA运算的CPU硬件架构,由系统内存通过系统内存总线接入中央处理器,形成系统内存通道,其特征在于还在中央处理器上设置DFA用内存通道,DFA用内存通道独立于系统内存通道,DFA用内存通道包括DFA用低延迟内存和DFA用内存总线,DFA用低延迟内存通过DFA用内存总线接入中央处理器,所述系统内存通道进行普通程序运行和数据存取,所述DFA用内存通道进行DFA查找运算。2.根据权利要求1所述的用于1000Mbps以上DFA运算的CPU硬件架构,其特征在于所述DFA用低延迟内存为DDR内存或RDLRAM内存。全文摘要本发明提供一种用于1000Mbps以上DFA运算的CPU硬件架构,由系统内存通过系统内存总线接入中央处理器,形成系统内存通道,另外,还在中央处理器上设置DFA用内存通道,DFA用内存通道独立于系统内存通道,DFA用内存通道包括DFA用低延迟内存和DFA用内存总线,DFA用低延迟内存通过DFA用内存总线接入中央处理器,系统内存通道进行普通程序运行和数据存取,DFA用内存通道进行DFA查找运算。本发明通过在CPU中增加另外一条内存通道,运行时将DFA图数据存放在该内存区域中,供DFA协处理单元进行读取,突破了传统CPU架构在进行DFA运算时产生的内存带宽瓶颈,适用于1000Mbps以上的UTM设备硬件架构。文档编号G06F15/78GK101604305SQ20091003151公开日2009年12月16日申请日期2009年4月22日优先权日2009年4月22日发明者刘继明,杰程申请人:网经科技(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1