专利名称:高速网络分流设备用线路接口卡中的包预处理电路组件的制作方法
技术领域:
本发明属于因特网主干网分流用的高速网络分流设备技术领域。
背景技术:
FPGA(Field Programmable Gate Array)是上世纪80年代末开始使用的大规模可编程数字集成电路器件。它充分利用计算机辅助设计技术进行器件的开发与应用。用户借助于计算机不仅能自行设计专用集成电路芯片,还可在计算机上进行功能仿真和实时仿真,及时发现问题,调整电路,改进设计方案。这样,设计者不必动手搭接电路、调试验证,只须在计算机上操作很短的时间,即可设计出与实际系统相差无几的理想电路。而且,FPGA器件采用标准化结构,体积小、集成度高、功耗低、速度快,可无限次反复编程,因此,成为科研产品开发及其小型化的首选器件,其应用极为广泛。
把FPGA用在高速网络设备中作为线路接口卡的包预处理电路组件并在因特网主干网实现高速分流,从而构成一个高速网络分流设备。目前在国内外各类文献中未见有任何报导。
发明内容
本分流设备能够实现属于网络上的某一条流的数据包全部通过一个端口发送,并在此基础上尽量保证负载均衡。对于数据包属于哪一条流的判别,设备处理方式如下对于IPv4数据包,将根据五元组(源地址、目的地址、协议域、源端口号、目的端口号)生成一个确定的16bit的信息,以此作为流标识。对于IPv6数据包将根据二元组(源地址和流标号)生成一个确定的16bit的信息,以此作为流标识。16bit的流标识可以表示65536条流,这样虽然会造成不同数据流具有相同的流标识信息,但不会造成同一条流的数据包具有不同的流标识,所以不会影响分流的正确性。流标识使用16bit是基于当前主流芯片处理能力考虑的。
在分流设备中,设备为每一条流的数据包分配发送端口的工作是这样进行的当具有同一流标识的第一个数据包进入设备时,设备会选取近一段时间负载最轻的端口分配给具有这一流标识的数据包。并更新设备中这一流标识对应的记录信息。这样随后进入的具有这一流标识的数据包会根据记录信息中记录的端口发送。
对于记录信息的维护,设备是这样进行的每一条纪录信息,包含两部分内容,一个是4bit的端口号,一个是4bit的生命值。前者表示了具有这一流标识的数据包将从哪个端口发送。后者则表示这一纪录信息是否有效,生命值为0表示这条纪录信息无效。设备每收到一个数据包,该数据包的流标识对应的纪录信息生命值将被加1(生命值加到15后不再增加)。此外设备会定期将每条纪录信息的生命值减半,半衰期是可以在运行过程中随时更改的,从0.02s到无限长。记录信息的生命值是为了更真实的反映数据流的生存及老化状态。
分流设备体系结构的设计思路,主要包括以下三个方面 用硬件实现IPv4/v6分组的分组头部分析和分组转发; 用硬件快速存储器模拟真实的流存在状态,以此作为分组转发的根据; 用交换机构(Switching Fabric)提高各接口单元之间的数据通信速度。
用监控系统对分流设备进行上电配置和状态监控。
分流设备体系结构主要由以下三部分组成,线路接口卡(Line Card),交换机构(SwitchingFabric)和用于配置和操作的监控系统。其中交换机构包括高速串行背板和交换控制卡两部分。
分流设备中高速串行背板与线路接口卡、交换控制卡之间的连接情况如图1所示。
图中具体包括下述几部分硬件设备 OC-48c POS接口卡,每块1个口; OC-3 POS接口卡,每块4个口; 1000Base-Tx接口卡,每块2个口; 100Base-Tx接口卡,每块8个口; 交换控制卡,两块; 高速串行背板,一块。
线路接口卡是分流设备体系结构中最重要的部分,具有一个或者多个高速网络接口,与一般的网络接口卡不同的是,线路接口卡本身还有通用CPU和本地存储器。线路接口卡的地位主要是在包的处理上,在输入方向(也叫接收方向,是从线路接口到交换机构的方向)上,其主要功能有实现高速硬件IPv4/IPv6双栈兼容分流引擎,它根据分组头部查找目标端口号,之后将数据包发送给交换机构接口芯片,在输出方向(也叫发送方向,是从交换机构到线卡的方向)上,交换机构送出来的数据包首先到达交换机构接口芯片,由交换机构接口芯片完成数据格式转换并进行一定的处理后将其缓存于输出方向的缓存中,之后从线路接口上发送出去。
交换机构用于连接线路接口卡,为它们之间的数据传送提供高速的数据通路。分流设备交换机构的实现方式采用Crossbar交换结构,具体实现方式采用交叉开关。交叉开关可以达到比较高的交换速率,而且随着技术的发展,速率还可以进一步提高。采用一个全集成16输入、16输出端口的单级交换芯片VSC882。用VSC882组成的交换机构无论从端口速度还是交换容量方面都可充分扩展,端口速度达3.125Gb/s,交换容量可扩到64Gb/s以上。此外,为了使设备达到电信级使用要求,在设计交换结构时,还充分考虑了主/备用切换的冗余设计功能。
监控系统用于对线路接口卡和交换机构进行初始化及参数配置,同时可以通过读取硬件寄存器来观察设备内部的运行状态。
由于线路接口卡在设备中的重要作用,这里对线路接口卡的结构和功能进行详细介绍。图2为线路接口卡的整体结构框图。从图中可以看出,线路接口卡可以从结构上划分为线路接口部分,包处理部分,交换部分和CPU部分。其中针对不同的接口卡类型线路接口卡只在线路接口部分发生变化,包预处理和包发送两片FPGA分别完成接收方向和发送方向关于包处理的功能,它们通过两个先进先出队列存储器芯片(FIFO)与交换协处理FPGA相连接。交换协处理FPGA配合交换芯片完成线路接口卡和交换机构的数据交换。线路接口卡的本地CPU实现对各片FPGA的配置及监控工作。
本发明的特征在于它是一个大规模可编程数字集成电路器件,它含有■包输入电路,包括◆输入IP包数据寄存器,它接收来自接口的数据包;◆生成IPv4数据包16位流标识用的寄存器组,包括●源IP地址寄存器,32位;●目的IP地址寄存器,32位;●源协议端口寄存器,16位;●目的协议端口寄存器,16位;●协议域寄存器,8位;●上述各寄存器的数据输入端与上述输入IP包数据寄存器的输出端相连;◆生成IPv6数据包16位流标识的寄存器组,包括●源IP地址寄存器,128位;●流标号寄存器,20位;●上述两个寄存器的数据输入端与上述输入IP包数据寄存器的输出端相连;◆第一内部控制状态机,它的输入端与上述输入IP包数据寄存器的输出端相连,它的状态控制信号输出端与上述分别生成IPv4数据包16位流标识、IPv6数据包16位流标识和各寄存器的相应输入端相连;◆第一逻辑运算器,它的各输入端分别与上述生成IPv4数据包16位流标识用的寄存器组中各寄存器的下述各输出端相连源地址高16位输出端、源地址低16位输出端、目的地址高16位输出端、目的地址低16位输出端、协议域8位输出端、源协议端口16位输出端以及目的协议端口16位输出端;■上述第一逻辑运算器是一个16位寄存器,它的输出信号是把上述7个输入数据相累加后形成的16位流标识;◆第二逻辑运算器,它的各输入端分别与上述生成IPv6数据包16位流标识用的寄存器组中各寄存器的下述各输出端相连16位源IP地址输出端,共有8个;高4位、低16位的流标号输出端;■上述第二逻辑运算器是一个16位寄存器,它的输出信号是把上述10个输入数据累加后形成的另一种16位流标识;◆第一流标识寄存器,它的输入端与上述第一逻辑运算器的输出端相连;◆第二流标识寄存器,它的输入端与上述第二逻辑运算器的输出端相连;◆第一多路数据选择器,它的两个输入端分别与上述第一、第二流标识寄存器的输出端相连;◆流标识寄存器,它的输入端与上述多路数据选择器的输出端相连;◆包缓存存储器写数据寄存器,它的输入端与上述输入IP包数据寄存器的输出端相连;◆包缓存存储器写地址寄存器,它的输入端与上述包缓存存储器写数据寄存器的数据有效信号输出端相连;◆包存储起始、终止地址寄存器,它的地址信号输入端与上述包缓存存储器写地址寄存器的输出端相连,它的控制信号输入端与上述内部控制状态机的状态控制信号输出端相连;◆发送信息寄存器,它的一组输入端与上述包存储起始、终止地址寄存器输出端相连,另一组输入端与下述发送端口号寄存器的输出端相连;◆发送端口号寄存器,它的发送信息输出端与上述发送信息寄存器输入端相连,它的新端口号输出端与下述新端口号寄存器的输入端相连;◆新端口号寄存器,它的输入端与上述发送端口号寄存器的新端口号输出端相连;◆第二多路数据选择器,它的输出端与上述发送端口号寄存器输入端相连;◆流端口号寄存器,它的输入端与下述流对应端口存储器的数据输出端相连接;它的输出端与上述多路数据选择器的输入端相连;◆当前负载最轻端口寄存器它的输出端与上述多路数据选择器的输入端相连;◆生命值是否为0判断电路,它的非零信号输出端与上述第二多路数据选择器的控制信号输入端相连;◆流生命值寄存器,它的输入端与下述流生命值存储器的数据输出端相连;◆第三逻辑运算器,它的输入端与上述流生命值寄存器的输出端相连,它的输出是流生命值寄存器内容加1的结果;◆新生命值寄存器,它的输入端与上述第三逻辑运算器的输出端相连;
■流对应端口存储器,它的数据输入端与上述新端口号寄存器的输出端相连;它的地址输入端与上述流标识寄存器的输出端相连;■流生命值存储器,它具有两组数据和地址总线。它的第一组地址输入端与包输入电路中的流标识寄存器的输出端相连,所述的每一条流标识信号对应着前述流标识信号在流生命值存储器中的地址,它的这一组数据输出总线与包输入电路中的流生命值寄存器的输入端相连,它的这一组数据输入总线与包输入电路中的新生命值寄存器的输出端相连,它的第二组地址输入端与下述生命值自动老化处理电路中的生命值存储器地址寄存器输出端相连,它的这一组数据输出总线与生命值自动老化处理电路中的原始生命值寄存器的输入端相连,它的这一组数据输入总线与生命值自动老化处理电路中的老化生命值寄存器的输出端相连;■生命值自动老化处理电路,包括◆内部时钟计数器,它是一个内部的时钟计数器,每个时钟周期计数器加一,它具有一个同步清零输入端与第一比较器的相等输出端相连;◆时钟周期寄存器,它的输入端来自CPU接口电路;◆第一比较器,它的一个输入端与内部时钟计数器的一个输出端相连,另一个输入端与时钟周期寄存器的输出端相连;◆生命值存储器地址寄存器,它的输入端与内部时钟计数器的一个输出端相连,它的输出端与流生命值存储器的第二组地址输入端相连;◆原始生命值寄存器,它的输入端与流生命值存储器的第二组数据输出总线相连,它的输出端经过一个右移的移位寄存器与老化生命值寄存器的输入端相连;◆老化生命值寄存器,它的输出端与流生命值存储器的第二组数据输入总线相连;■包发送信息队列存储器,它的输入端与包输入电路中的发送信息寄存器的输出端相连;■包缓存存储器,它具有两组数据和地址总线,它的第一组地址总线与包输入电路的包缓存存储器写地址寄存器的输出端相连,它的第一组数据总线与包输入电路的包缓存存储器写数据寄存器的输出端相连,它的第二组地址总线与包输出电路的包缓存存储器读地址寄存器的输出端相连,它的第二组数据总线与包输出电路的包缓存存储器读数据寄存器的输入端相连;■包输出电路,包括◆包发送信息寄存器,它的输入端与上述发送信息队列存储器的输出端相连;◆包存储器起始地址寄存器,它的输入端与上述包发送信息寄存器的相应输出端相连;◆包存储器终止地址寄存器,它的输入端与上述包发送信息寄存器的另一个输出端相连;◆包存储器下一地址寄存器,它的输入端与下述包缓存存储器读地址寄存器的输出端经过加1逻辑的输出相连;◆第三多路数据选择器,它的两个输入端分别与上述包存储器起始地址寄存器、包存储器下一地址寄存器的输出端相连;◆包缓存存储器读地址寄存器,它的输入端与上述第三多路数据选择器的输出端相连;它的输出地址信号加“1”后送往上述包存储器下一地址寄存器,它的另一个输出端与包缓存存储器的第二组地址输入端相连;◆第二比较器,它的两个输入端分别与上述包存储器下一地址寄存器、包存储器终止地址寄存器的输出端相连,它的比较信号输出端与上述第三多路数据选择器的控制信号输入端相连;◆包发送端口寄存器,它的输入端与上述包发送信息寄存器的输出端相连;◆附加数据寄存器,它的一组输入端与上述包发送端口寄存器的输出端相连,它的另一组输入端与CPU接口电路相连,它的输出端与上述第3多路数据选择器的相应输入端相连;◆包缓存存储器读数据寄存器,它的输入端与包缓存存储器的第二组数据总线相连;◆第四多路数据选择器,它的两个输入端分别与上述包缓存存储器读数据寄存器及附加数据寄存器的输出端相连;◆第二内部控制状态机,它的输入端与上述第二比较器的输出端相连;它的三个输出端分别与上述包发送信息寄存器、第四多路数据选择器和第三多路数据选择器的控制信号输入端相连;◆写入上行数据队列存储器的数据寄存器,它的输入端与上述第四多路数据选择器的输出端相连,它的输出是上行数据队列存储器;■CPU接口电路,包括◆CPU地址寄存器,它的输入端来自线路接口卡上的CPU的地址信号总线;◆CPU控制信号寄存器,它的输入端来自线路接口卡上的CPU输出的控制信号;◆第三内部控制状态机,它的输入端与上述CPU地址寄存器和CPU控制信号寄存器的输出端相连,它的输出控制信号分别与生命值老化周期寄存器,发送板卡号寄存器和CPU数据总线三态调度逻辑的控制输入信号相连;◆生命值老化周期寄存器,它的数据输入端与CPU数据总线三态调度逻辑的输出端相连,它的输出端与生命值自动老化电路的时钟周期寄存器的输入端相连;◆发送板卡号寄存器,它的数据输入端与CPU数据总线三态调度逻辑的输出端相连,
它的输出端与包输出电路的附加数据寄存器的输入端相连;◆CPU数据总线三态调度逻辑,它的一组端口与线路接口卡上的CPU数据总线相连,由第三内部控制状态机的输出控制信号控制该端口的方向,完成三态调度,它的另外两组输出端分别与上述生命值老化周期寄存器和发送板卡号寄存器的输入端相连。
实验效果高速网络分流设备实现了从一个OC48接口接收数据包,通过两个1000Base-Tx端口发送的功能,设备保证属于同一数据流的数据包全部通过相同的端口发送,并在此基础上最大限度保证两个端口的负载均衡。该设备支持IPv4/v6双IP协议,能够实现40字节到1500字节数据包的线速度处理(由于输入速率大于最大输出速率而造成的数据包丢失不计)。该设备可以通过增加一块具有更多输出端口的接口卡而简单实现最多16个输出端口的分流。
为了能够尽最大能力保证系统的灵活性,设备支持最多16个发送端口,可以通过软件设置一个16bit的寄存器来设置每一个端口是否有效。
图1 分流设备高速串行背板与线路接口卡、交换控制卡的连接情况图2 线路接口卡的结构框3 PPM外部接口及内部电路结构4 包输入电路内部结构及与相关电路连接关系5 生命值自动老化电路内部结构及与相关电路连接关系6 包输出电路内部结构及与相关电路连接关系7 CPU接口电路内部结构及与相关电路连接关系8 分流设备初始化过程具体实施方式
在线路接口卡上,实现高速分流算法的是包预处理FPGA芯片(PPM)。PPM是PacketPreprocessing Module的简写。该电路组件主要功能是提取IP包头并进行分析和处理,由此判断该数据包是否IP包。对于非IP包,PPM将其丢弃;对于IP包,PPM应该根据其所属的流产生相应的目标端口号。并将目标板号、目标端口号信息填入相应的附加数据结构中。在分流设备中,PPM肩负着分流引擎的功能,它是整个分流算法实现的核心。图3表示的是PPM外部接口及内部的电路结构图。
从图3中可以看出,PPM的接口信号主要包括与线路接口部分连接的信号、与交换机构部分连接的信号和与CPU相连接的信号。PPM内部除了三个由工具生成的存储器和一个队列存储器外还有包输入电路、包输出电路、CPU接口电路和生命值自动老化电路。下面具体描述各电路的功能。
包输入电路接收来自接口的数据包,对包的类型进行判断,对于非IP包,包输入电路会将其丢弃;对于IPv4数据包将根据五元组(源地址32bit、目的地址32bit、协议域8bit、源端口号16bit、目的端口号16bit)生成一个确定的16bit的信息,以此作为流标识;对于IPv6数据包将根据二元组(源地址128bit和流标号20bit)生成一个确定的16bit的信息,以此作为流标识。16bit流标识信息的生成方法是这样的对于IPv4包,将源地址高16bit,源地址低16bit,目的地址高16bit,目的地址低16bit,协议域8bit,源端口号16bit,目的端口号16bit,这7个数用一个16bit寄存器进行累加,结果就作为流标识。对于IPv6包,将源地址分成8个16bit段,将流标号分成高4bit和低16bit,将这10个数用一个16bit寄存器进行累加,结果就作为流标识。
包输入电路生成了一个包的16bit流标识信息后会以此作为“流生命值存储器”和“流对应端口存储器”的地址,这样就可以得到这一流标识所对应的端口和这一信息的生命值。当生命值不为0时表示这时查到的端口号是有效的,当生命值为0时表示这时查到的端口号是无效的。针对这两种情况包输入电路会进行不同的处理。前者包输入电路会将查到的端口号作为该包发送的端口号,后者包输入电路将为这个包分配一个端口,并将这一端口作为该流标识所对应端口写入“流对应端口存储器”,同时将“流生命值存储器”中相应的表项的生命值加一。
前面提到要为查到端口对应生命值为0的包分配一个端口的处理。这一过程在分流设备的设计中至关重要。因为它直接关系着负载平衡的实现。在包输入电路内部,16个32位的计数器保存着前一段时间各个端口发送的字节计数。为了能够保证32位计数器不会发生溢出,这一计数器本身是会在一定的周期下自动减半的。这样做的好处是更加真实的表示了流量随时间的加权关系。在包输入电路内部,通过二叉树结构选择当前可用的端口中前一阶段流量最少的端口分配给新进入的数据包。
为了能够更好的实现线速度处理并保证系统的鲁棒性,PPM内部采用了整包缓存的处理方式。包输入电路将接收到的数据写入包缓存存储器。当一个正确的包已经被完整的写入包缓存存储器后,包输入电路会将这一数据包所对应的包缓存存储器的起始地址和终止地址以及发送端口号写入发送信息存储队列中。
发送信息存储队列是一个128×38bit的FIFO。38bit分别为4bit的发送端口信息可以表示16个端口,17bit的外部DPRAM开始地址和17bit的外部DPRAM的终止地址。之所以采用128深度,是考虑了最大包1500与最小包长度的比值确定的,在满足了需求的情况下还留有一定余量。
流对应端口存储器是一个64k×4bit的DPRAM。4bit可以表示16个端口,支持最多64k条记录信息。
流生命值存储器是一个64k×4bit的DPRAM。4bit可以表示生命值0-15共16种状态,支持最多64k条记录信息。
生命值自动老化处理电路负责对记录信息表项进行自动老化。为了能够真实的模拟流的存在状态,代码中实现了记录信息表项的自动老化机制,由于每一表项的生命值可以为0-15,所以老化方式采取生命值减半的方式,减半的方法为将4bit寄存器右移一位,具体的半衰期可以通过上层软件进行设置。具体的半衰期可以从0.02s到无限长。
包输出电路通过读取发送信息队列存储器中的数据来得到将要发送的包所存储的位置信息以及将发往的端口信息,包输出电路内部状态机实现了读取发送信息,发送包附加信息,发送数据包这样一个过程的循环。发送信息中包含了IP包在包缓存存储器中存储的起始地址和终止地址以及该包发送的端口。包输出电路应该从包缓存存储器中的相应位置读出该包。此外为了方便交换机构完成转发,包输出电路发送出去的数据应该包含该包的发送板号和发送端口号,这些附加数据与包的内容一起构成了写入上行队列存储器的数据。包输出电路内部的状态机控制两部分数据的调度完成数据结构的合成。
CPU接口电路负责同接口卡上的MPC8240(CPU)及PPM内部的其它电路进行通讯。它要完成对生命值老化周期的设置和发送板卡号的设置。
权利要求
1.高速网络分流设备用线路接口卡中的包预处理电路组件,其特征在于它是一个大规模可编程数字集成电路器件,它含有■包输入电路,包括◆输入IP包数据寄存器,它接收来自接口的数据包;◆生成IPv4数据包16位流标识用的寄存器组,包括●源IP地址寄存器,32位;●目的IP地址寄存器,32位;●源协议端口寄存器,16位;●目的协议端口寄存器,16位;●协议域寄存器,8位;●上述各寄存器的数据输入端与上述输入IP包数据寄存器的输出端相连;◆生成IPv6数据包16位流标识的寄存器组,包括●源IP地址寄存器,128位;●流标号寄存器,20位;●上述两个寄存器的数据输入端与上述输入IP包数据寄存器的输出端相连;◆第一内部控制状态机,它的输入端与上述输入IP包数据寄存器的输出端相连,它的状态控制信号输出端与上述分别生成IPv4数据包16位流标识、IPv6数据包16位流标识和各寄存器的相应输入端相连;◆第一逻辑运算器,它的各输入端分别与上述生成IPv4数据包16位流标识用的寄存器组中各寄存器的下述各输出端相连源地址高16位输出端、源地址低16位输出端、目的地址高16位输出端、目的地址低16位输出端、协议域8位输出端、源协议端口16位输出端以及目的协议端口16位输出端;■上述第一逻辑运算器是一个16位寄存器,它的输出信号是把上述7个输入数据相累加后形成的16位流标识;◆第二逻辑运算器,它的各输入端分别与上述生成IPv6数据包16位流标识用的寄存器组中各寄存器的下述各输出端相连16位源IP地址输出端,共有8个;高4位、低16位的流标号输出端;■上述第二逻辑运算器是一个16位寄存器,它的输出信号是把上述10个输入数据累加后形成的另一种16位流标识;◆第一流标识寄存器,它的输入端与上述第一逻辑运算器的输出端相连;◆第二流标识寄存器,它的输入端与上述第二逻辑运算器的输出端相连;◆第一多路数据选择器,它的两个输入端分别与上述第一、第二流标识寄存器的输出端相连;◆流标识寄存器,它的输入端与上述多路数据选择器的输出端相连;◆包缓存存储器写数据寄存器,它的输入端与上述输入IP包数据寄存器的输出端相连;◆包缓存存储器写地址寄存器,它的输入端与上述包缓存存储器写数据寄存器的数据有效信号输出端相连;◆包存储起始、终止地址寄存器,它的地址信号输入端与上述包缓存存储器写地址寄存器的输出端相连,它的控制信号输入端与上述内部控制状态机的状态控制信号输出端相连;◆发送信息寄存器,它的一组输入端与上述包存储起始、终止地址寄存器输出端相连,另一组输入端与下述发送端口号寄存器的输出端相连;◆发送端口号寄存器,它的发送信息输出端与上述发送信息寄存器输入端相连,它的新端口号输出端与下述新端口号寄存器的输入端相连;◆新端口号寄存器,它的输入端与上述发送端口号寄存器的新端口号输出端相连;◆第二多路数据选择器,它的输出端与上述发送端口号寄存器输入端相连;◆流端口号寄存器,它的输入端与下述流对应端口存储器的数据输出端相连接;它的输出端与上述多路数据选择器的输入端相连;◆当前负载最轻端口寄存器它的输出端与上述多路数据选择器的输入端相连;◆生命值是否为0判断电路,它的非零信号输出端与上述第二多路数据选择器的控制信号输入端相连;◆流生命值寄存器,它的输入端与下述流生命值存储器的数据输出端相连;◆第三逻辑运算器,它的输入端与上述流生命值寄存器的输出端相连,它的输出是流生命值寄存器内容加1的结果;◆新生命值寄存器,它的输入端与上述第三逻辑运算器的输出端相连;■流对应端口存储器,它的数据输入端与上述新端口号寄存器的输出端相连;它的地址输入端与上述流标识寄存器的输出端相连;■流生命值存储器,它具有两组数据和地址总线。它的第一组地址输入端与包输入电路中的流标识寄存器的输出端相连,所述的每一条流标识信号对应着前述流标识信号在流生命值存储器中的地址,它的这一组数据输出总线与包输入电路中的流生命值寄存器的输入端相连,它的这一组数据输入总线与包输入电路中的新生命值寄存器的输出端相连,它的第二组地址输入端与下述生命值自动老化处理电路中的生命值存储器地址寄存器输出端相连,它的这一组数据输出总线与生命值自动老化处理电路中的原始生命值寄存器的输入端相连,它的这一组数据输入总线与生命值自动老化处理电路中的老化生命值寄存器的输出端相连;■生命值自动老化处理电路,包括◆内部时钟计数器,它是一个内部的时钟计数器,每个时钟周期计数器加一,它具有一个同步清零输入端与第一比较器的相等输出端相连;◆时钟周期寄存器,它的输入端来自CPU接口电路;◆第一比较器,它的一个输入端与内部时钟计数器的一个输出端相连,另一个输入端与时钟周期寄存器的输出端相连;◆生命值存储器地址寄存器,它的输入端与内部时钟计数器的一个输出端相连,它的输出端与流生命值存储器的第二组地址输入端相连;◆原始生命值寄存器,它的输入端与流生命值存储器的第二组数据输出总线相连,它的输出端经过一个右移的移位寄存器与老化生命值寄存器的输入端相连;◆老化生命值寄存器,它的输出端与流生命值存储器的第二组数据输入总线相连;■包发送信息队列存储器,它的输入端与包输入电路中的发送信息寄存器的输出端相连;■包缓存存储器,它具有两组数据和地址总线,它的第一组地址总线与包输入电路的包缓存存储器写地址寄存器的输出端相连,它的第一组数据总线与包输入电路的包缓存存储器写数据寄存器的输出端相连,它的第二组地址总线与包输出电路的包缓存存储器读地址寄存器的输出端相连,它的第二组数据总线与包输出电路的包缓存存储器读数据寄存器的输入端相连;■包输出电路,包括◆包发送信息寄存器,它的输入端与上述发送信息队列存储器的输出端相连;◆包存储器起始地址寄存器,它的输入端与上述包发送信息寄存器的相应输出端相连;◆包存储器终止地址寄存器,它的输入端与上述包发送信息寄存器的另一个输出端相连;◆包存储器下一地址寄存器,它的输入端与下述包缓存存储器读地址寄存器的输出端经过加1逻辑的输出相连;◆第三多路数据选择器,它的两个输入端分别与上述包存储器起始地址寄存器、包存储器下一地址寄存器的输出端相连;◆包缓存存储器读地址寄存器,它的输入端与上述第三多路数据选择器的输出端相连;它的输出地址信号加“1”后送往上述包存储器下一地址寄存器,它的另一个输出端与包缓存存储器的第二组地址输入端相连;◆第二比较器,它的两个输入端分别与上述包存储器下一地址寄存器、包存储器终止地址寄存器的输出端相连,它的比较信号输出端与上述第三多路数据选择器的控制信号输入端相连;◆包发送端口寄存器,它的输入端与上述包发送信息寄存器的输出端相连;◆附加数据寄存器,它的一组输入端与上述包发送端口寄存器的输出端相连,它的另一组输入端与CPU接口电路相连,它的输出端与上述第3多路数据选择器的相应输入端相连;◆包缓存存储器读数据寄存器,它的输入端与包缓存存储器的第二组数据总线相连;◆第四多路数据选择器,它的两个输入端分别与上述包缓存存储器读数据寄存器及附加数据寄存器的输出端相连;◆第二内部控制状态机,它的输入端与上述第二比较器的输出端相连;它的三个输出端分别与上述包发送信息寄存器、第四多路数据选择器和第三多路数据选择器的控制信号输入端相连;◆写入上行数据队列存储器的数据寄存器,它的输入端与上述第四多路数据选择器的输出端相连,它的输出是上行数据队列存储器;■CPU接口电路,包括◆CPU地址寄存器,它的输入端来自线路接口卡上的CPU的地址信号总线;◆CPU控制信号寄存器,它的输入端来自线路接口卡上的CPU输出的控制信号;◆第三内部控制状态机,它的输入端与上述CPU地址寄存器和CPU控制信号寄存器的输出端相连,它的输出控制信号分别与生命值老化周期寄存器,发送板卡号寄存器和CPU数据总线三态调度逻辑的控制输入信号相连;◆生命值老化周期寄存器,它的数据输入端与CPU数据总线三态调度逻辑的输出端相连,它的输出端与生命值自动老化电路的时钟周期寄存器的输入端相连;◆发送板卡号寄存器,它的数据输入端与CPU数据总线三态调度逻辑的输出端相连,它的输出端与包输出电路的附加数据寄存器的输入端相连;◆CPU数据总线三态调度逻辑,它的一组端口与线路接口卡上的CPU数据总线相连,由第三内部控制状态机的输出控制信号控制该端口的方向,完成三态调度,它的另外两组输出端分别与上述生命值老化周期寄存器和发送板卡号寄存器的输入端相连。
全文摘要
高速网络分流设备用线路接口卡中的包预处理电路组件属于因特网主干网分流用的高速网络分流设备技术领域,其特征在于它含有包输入电路、经发送信息队列存储器及包缓存存储器与包输入电路相连的包输出电路,与包输入电路互连的流对应端口存储器、流生命值存储器,与流生命值存储器相连的生命值自动老化处理电路,与生命值自动老化处理电路和包输出电路互连的CPU接口电路。它对应于IPv4、IPv6包,能保证属于同一数据流的数据包全部通过相同的端口发送,并尽可能达到两个端口的负载平衡;它能实现40字节到1500字节数据包的线速度处理。
文档编号H04L12/56GK1642146SQ20051001111
公开日2005年7月20日 申请日期2005年1月7日 优先权日2005年1月7日
发明者赵有健, 关洪涛, 吴建平, 张小平, 乐祖晖 申请人:清华大学