CN100473054C - 一种处理分组的网络设备及方法 - Google Patents
一种处理分组的网络设备及方法 Download PDFInfo
- Publication number
- CN100473054C CN100473054C CNB2005101265640A CN200510126564A CN100473054C CN 100473054 C CN100473054 C CN 100473054C CN B2005101265640 A CNB2005101265640 A CN B2005101265640A CN 200510126564 A CN200510126564 A CN 200510126564A CN 100473054 C CN100473054 C CN 100473054C
- Authority
- CN
- China
- Prior art keywords
- grouping
- inbound
- speed
- port
- cell
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2854—Wide area networks, e.g. public data networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/251—Cut-through or wormhole routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种处理分组的网络设备,该网络设备包括:对入站分组执行交换功能的入站模块;存储分组的存储器管理单元;以及将入站分组发送至出站端口的出站模块。所述存储器管理单元被配置来将入站分组的初始信元存储在存储器中,确定直通处理是否被激活,当直通处理被激活时,在入站分组的最终信元存储到存储器中之前,将初始信元转发给出站端口。
Description
技术领域
本发明涉及数据网络中的网络设备,特别涉及一种当有大量数据通过网络设备时缩减处理延迟时间的方法和装置。
背景技术
分组交换网可包括一个或多个网络设备,例如以太网交换设备,每个以太网交换设备包括几个模块,用于处理通过所述设备传送的信息。特别地,该设备包括入站模块、存储器管理单元(MMU)以及出站模块。所述入站模块具有交换功能,能够确定分组应传送到哪一个目标端口。MMU用于存储分组信息并执行资源检测。出站模块用于执行分组更改并将分组发送到至少一个适当的目标端口。设备上的端口之一可以是CPU端口,使得能在设备和外部交换/路由控制实体或CPU之间相互发送和接收信息。
当网络设备接收分组时,要执行许多处理以确定接收到的分组的属性。多数情况下,当分组的剩余部分仍在接收时,对分组的估计已完成。其部分原因是由于对分组做出确定所需要的信息可在分组报头中找到,在对分组做出转发或其它决策时不需要剖析分组的剩余部分(亦即有效载荷)。对于分组整体尺寸较大的巨型帧,这种情况更是经常发生。
在现有技术的网络设备中,设备要等待直到所有的分组都读入存储器------网络设备利用该存储器暂时存储分组数据。在这样的情况下,当数据已经可以转发、删除或进行其它处理时,还要花费时间等待整个分组的存储,是一种“浪费”。因此,在必要缩减现有技术中的网络设备处理分组的延迟时间。
发明内容
根据本发明的一个方面,提供了一种处理分组的网络设备,包括:
对入站分组执行交换功能并具有集中式入站管线结构的入站模块;
存储分组的存储器管理单元;以及
将入站分组发送至出站端口的出站模块;
其中入站管线结构在判断直通与存储转发之前对入站分组进行预先剖析并丢弃出错的入站分组,存储器管理单元用于将入站分组的初始信元存储在存储器中,决定直通处理是否需要激活,将当直通处理激活时,在将入站分组的最终信元存储到存储器中之前,将初始信元转发给出站端口。
优选地,所述存储器管理单元用于检测入站端口的入站速度是否大于或等于出站端口的出站速度,当入站速度大于或等于出站速度时,激活直通处理。
优选地,所述存储器管理单元用于检测多播包的每个目标端口的速度,当每个目标端口的速度都小于入站速度时,激活直通处理。
优选地,所述存储器管理单元用于确定入站分组是否是大尺寸的分组,当入站分组是大尺寸的分组时,激活直通处理。
优选地,所述存储器管理单元用于在将信元转发给出站端口之前,等待接收预定数量的入站分组的信元。
优选地,所述存储器管理单元用于根据出站端口的延迟因子来设定信元的预定数量。
优选地,所述存储器管理单元用于在将信元转发给出站端口之前,等待接收入站分组的多个信元,其中信元数量的设置需保证出站端口的缓冲器不会过载。
根据本发明的一个方面,提供一种在网络设备中处理分组的方法,所述方法包括以下步骤:
接收入站分组的信元;
预先剖析入站分组并丢弃出错分组;
确定入站分组的出站端口;
将入站分组信元的初始信元存储在存储器中;
决定直通处理是否需要激活;以及
当直通处理激活时,在将入站分组的最终信元存储到存储器中之前,将初始信元转发给出站端口。
优选地,所述决定的步骤包括,检测入站端口的入站速度是否大于或等于出站端口的出站速度,当入站速度大于或等于出站速度时,激活直通处理。
优选地,所述检测步骤还包括检测多播分组的每个目标端口的速度,当每个目标端口的速度都小于入站速度时,激活直通处理。
优选地,所述决定步骤包括确定入站分组是否是大尺寸的分组,当入站分组是大尺寸的分组时,激活直通处理。
优选地,所述方法还包括,在决定步骤之后,在执行转发步骤之前,等待接收预定数量的入站分组的信元。
优选地,所述方法还包括根据出站端口的延迟因子来设定信元的预定数量。
优选地,所述方法还包括,在决定步骤之后,在将信元转发给出站端口之前,等待接收入站分组的多个信元,其中信元数量的设置需保证出站端口的缓冲器不会过载。
根据本发明的一个方面,提供一种在网络设备中处理分组的装置,包括:
用于接收入站分组的信元的接收装置;其中包括预先剖析入站分组并丢弃出错分组的入站管线装置;
用于确定入站分组的出站端口的确定装置;
用于将入站分组信元的初始信元存储到存储器中的存储装置;
用于决定直通处理是否需要激活的决定装置;以及
用于当直通处理激活时在将入站分组的最终信元存储到存储器中之前将初始信元转发给出站端口的转发装置。
优选地,所述决定装置包括用于检测入站端口的入站速度是否大于或等于出站端口的出站速度的检测装置,以及用于当入站速度大于或等于出站速度时激活直通处理的激活装置。
优选地,所述检测装置还包括用于检测多播分组的每个目标端口的速度的第二检测装置,以及当每个目标端口的速度都小于入站速度时激活直通处理的激活装置。
优选地,所述决定装置包括大小确定装置,用于确定入站分组是否是大尺寸的分组,以及激活装置,当入站分组是大尺寸的分组时,用于激活直通处理。
优选地,所述设备还包括等待装置,用于等待接收预定数量的入站分组的信元,以及转发装置,用于在将信元转发给出站端口之前,等待直至预定数量的信元被接收。
优选地,所述装置还包括根据出站端口的延迟因子、设定信元的预定数量的装置。
附图说明
附图是本发明的说明书的一部分,其有助于更深入地理解本发明,图示了本发明的实施例,与说明书一道解释了本发明的原理。其中:
图1示出了本发明的实施例可在其中实现的网络设备;
图2示出了根据本发明的一个实施例的集中式入站管线结构示意图。
图3示出了根据本发明的一个实施例的剖析单元的组成部分示意图。
图4示出了根据本发明的一个实施例的集中式出站管线结构示意图。
图5示出了根据本发明的一个实施例的查表单元的实施例示意图。
图6示出了根据本发明的一个实施例的能够处理分组并减少延迟时间的存储器管理单元以及存储器示意图。
图7示出了根据本发明的一个实施例的确定延迟因子的示意图。
具体实施方式
以下将参照本发明的优选实施例对本发明进行说明,这些实施例的例子已在附图中示出。
图1示出了一种网络设备,例如交换设备,本发明的实施例可在其中实现。设备100包括入站模块102、MMU 104、以及出站模块106。入站模块102用于对入站分组执行交换功能。MMU 104用于存储分组,并对每个分组执行资源检测。出站模块106用于执行分组更改并将分组发送到适当的目标端口。入站模块102、MMU 104以及出站模块106中的每一个模块都包括多个用于处理该模块产生的指令的周期。设备100采用管线化(pipelined)方式处理入站分组。根据一个实施例,设备100具有在每个时钟周期处理一个分组的管线(pipeline)处理能力。根据本发明的一个实施例,设备100具有133.33MHz的核心时钟。这意味着设备100具有133.33M分组/秒的处理能力。
设备100还可包括一个或多个内部构造的高速端口(例如HiGigTM高速端口)108a-108x、一个或多个外部以太网端口109a-109x,以及CPU端口110。高速端口108a-108x用于系统内的各个网络设备的相互连接,从而形成在外部源端口和一个或多个外部目标端口之间传送分组的内部交换结构。这样,从包括有多个相互连接的网络设备的系统外部是看不见这些高速端口108a-108x的。CPU端口110用于将分组发送到外部交换/路由控制实体或CPU,或者从外部交换/路由控制实体或CPU接收信息。根据本发明的一个实施例,CPU端口110可看作是外部以太网端口109a-109x中的一个端口。设备100通过CPU处理模块111(例如CMIC)与外部/离线(off-chip)CPU接口相连(interfacewith),其中CPU处理模块111是与PCI总线接口相连的,而PCI总线将设备100连接到外部CPU上。
网络信息流(traffic)通过外部以太网端口109a-109x进、出设备100。特别地,设备100中的信息流从外部以太网源端口路由至一个或多个唯一的目标以太网端口109a-109x。在本发明的一个实施例中,设备100支持物理以太网端口和逻辑(中继)端口。物理以太网端口是设备100上的物理端口,由全球端口标识符进行标识。在实施例中,全球端口标识符包括模块标识符和本地端口号,本地端口号可唯一标识设备100和特定的物理端口。中继端口是一组物理外部以太网端口,其作用就象单个的链路层端口。每个中继端口都配置了一个全球中继群组标识符(TGID)。根据实施例,设备100可支持多达128个中继端口以及多达29个外部物理端口,其中每个中继端口具有多达8个成员(members)。设备100上的目标端口109a-109x可以是物理外部以太网端口或中继端口。如果目标端口是中继端口,设备100通过使用杂乱信号来选择成员,从而动态地选择物理外部以太网端口。这种动态选择使设备100能够在中继的端口之间分担动态负载。
一旦分组进入设备100的源端口109a-109x,即被发送给入站模块102进行处理。分组可从XBOD或GBOD进入设备100。XBOD是具有一个10GE/12G MAC的模块(block),支持来自高速端口108a-108x的分组。GBOD是具有12个10/100/1G MAC的模块(block),支持来自端口109a-109x的分组。
图2示出了入站模块102的集中式入站管线结构200。入站管线200处理入站分组,主要是确定出站位图,并在某些情况下计算出分组的哪一部分可以更改。入站管线200包括数据保持寄存器202、模块报头(module header)保持寄存器204、判定器206、配置单元208、剖析(parser)单元210、丢弃单元212以及交换单元213。入站管线200从XBOD、GBOD或CPU处理模块111接收数据并将信元数据存储在数据保持寄存器202中。判定器206负责为来自GBOD、XBOD和CPU的请求设定时间表。配置单元208用于建立交换所需的具有全部主要端口-特定域的对照表。剖析单元210剖析入站的分组和高速模块报头(module header),如果出现,通过第三层(L3)信道表查寻来处理信道化分组,生成用户定义域,在外部IPv4报头上检测因特网协议版本4(IPv4)的校验和,执行地址检测并为下行的查寻处理准备相关的域。丢弃单元212查寻各种早期的丢弃状况,或者丢弃分组或者防止分组通过管线200发送。交换单元213执行入站管线200中全部的交换操作,包括地址解析。
根据本发明的一个实施例,对每个XBOD或GBOD,入站管线包括一个1024位的信元数据保持寄存器202和一个96位的模块报头寄存器204。在进行判定之前,数据保持寄存器202将入站数据累积成一个连续的128字节信元,而模块报头寄存器204存储入站的96位模块报头,供以后在入站管线200中使用。特别地,保持寄存器202存储入站状态信息,包括分组的起始信元(SOP)信号、分组的结束信元(EOP)域、用于指示分组应被清除的清除域、用于指示对于某一特定的分组统计计数器应更新的统计更新域、用于指示有关分组到达高速端口的高速域、用于指示当前的高速分组是否是中止分组的中止分组域、用于指示所累加的信元总字节数的信元字节计数域、及源端口域。如本领域的技术人员所知悉,保持寄存器202还可存储以上未提及的其它域。
入站管线200每六个时钟周期为来自XBOD和GBOD的请求设定时间表,并向每个XBOD和GBOD发送信号指示来自XBOD和GBOD的请求将于何时处理。CPU处理模块111在某时(at time)将向入站模块102发送一个信元,并在发送随后的信元之前,等待入站模块102已经使用该信元的指示。根据判定器206作出的哪个源端口被准予接入入站管线200的判定,入站管线200多路复用来自每一个XBOD、GBOD和CPU处理的信号。一旦从XBOD或GBOD接收信号,缓冲寄存器202计算出源端口,XBOD或GBOD连接映射到设备100上的特定物理端口号码,寄存器202将与已设定时间表的信元有关的信息传递到判定器206。
当判定器206从缓冲寄存器202接收信息时,取决于资源冲突的情况,判定器206可发出(issue)分组运算(operation)代码、指令运算代码或FP更新代码中的至少一个。根据本发明的一个实施例,判定器206包括主判定器207和辅助判定器209。主判定器207是基于时分复用(TDM)的判定器,负责为来自GBOD和XBOD的请求设定时间表,其中来自主判定器207的请求具有最高优先权。辅助判定器209为全部非XBOD/GBOD请求设定时间表,包括CPU分组接入请求、CPU存储器/寄存器读/写请求、学习运算(learn operation)、寿命运算(age operation)、CPU表插入/删除请求、更新请求以及速率限定计数器更新请求。辅助判定器209的请求是根据可利用的主判定器207的空隙时段来设定时间表的。
当主判定器207给予XBOD或GBOD一个时段,信元数据从寄存器202中取出,与来自寄存器202的其它信息一起发送到入站管线200。XBOD/GBOD将某些状态位,例如SOP、EOP和MOP状态位,发送到主判定器207,以便为XBOD/GBOD请求设定时间表,及解决与辅助判定器209之间的任何判定冲突。在为XBOD/GBOD信元设定时间表之后,主判定器207将某些状态位,例如SOP、EOP和MOP状态位转发给辅助判定器209。
辅助判定器209还负责在特定的周期内执行所有的资源检测,以保证同时进行的任何运算都不会接入相同的资源。这样,辅助判定器209能够为每个请求周期中的最大指令运算代码或分组运算代码设定时间表。根据一个实施例,辅助判定器209实现资源检测处理和严格的优先级判定设置。资源检测处理考虑所有可能的待决请求,根据请求需使用的资源来确定哪个请求可以发送。入站管线200的资源被分成SOP信元的查寻资源、所有的信元的MMU存取、EOP信元的EOP资源以及第二层(L2)运算的L2_MOD_FIFO资源。L2_MOD_FIFO资源是16栏目表(16 entry table),用于追踪至第二层(L2)表的全部更新。由于L2_MOD_FIFO资源是有限的,当L2_MOD_FIFO资源占用已满,辅助判定器209就会限制某些运算(operations)。另外,辅助判定器209不会把对任何地址解析处理的接入设定得快于每三个时钟周期一次。
在本发明的实施例中执行的严格的优先级判定设置的情况下,要求辅助判定器209将最高级的优先权给予CPU接入请求、将第二级优先权给予CPU分组发送请求、将第三级优先权给予速率更新请求、将第四级优先权给予CPU存储器重置运算、将第五级优先权给予学习和寿命运算(learn and ageoperations)。当对信元数据进行处理时,辅助判定器209向配置单元208发送分组信号(包括SOP和EOP)、1024位分组信元数据、L2_MOD_FIFO锁定位、指令运算代码信息和指令写入数据。本领域的技术人员知悉,判定器可将其它类型和/或配置的信息发送给配置单元208。
配置单元208包括端口表,用于保持执行交换操作所需的全部主要端口特定域,其中一个栏目对应有每个端口的信息。配置单元208还包括几个寄存器,当配置单元208从判定器206获得信息时,配置单元208在第一个周期为端口表设置(set up)入站,在第二个周期为其它端口特定的寄存器多路复用输出。在第二个周期结束时,配置单元208向剖析单元210发送输出信息,包括SOP、EOP、MOP、PURGE和统计更新。
剖析单元210管理入站管线缓冲器,当查寻请求经过管线200时,入站管线缓冲器保持128字节信元。当查寻请求到达管线200的末尾时,数据从入站管线缓冲器中取出,并发送到MMU 104。如果数据是在高速端口上接收的,剖析单元210剖析出伴随分组的96位模块报头。
图3示出了剖析单元210的组成部分。根据图3,剖析单元210包括源中继映射表(map table)302、L2剖析模块304、第三层(L3)剖析模块306、L3信道查寻模块308、IPv4校验和模块310、第四层(L4)剖析模块312和用户定义域(UDF)剖析模块314。剖析单元210利用源中继映射表302进行源中继解析。L2剖析模块304支持对不同类型的第二层(L2)封装的剖析,包括以太网II、802.3、SNAP以及802.3LLC分组类型。L3剖析模块306支持对不同类型的第三层(L3)封装的剖析,包括具有或者不具有可选项的IPv4分组、IPv6分组以及ARP分组。另外,L3剖析模块306支持对信道化分组的剖析,以使IP-in-IP和IPv6 over IPv4信道能够实现。L3信道查寻模块308包括128个栏目的TCAM L3信道表,以使剖析器210能够确定入站分组是否是信道化IPv4分组。IPv4校验和模块310检测外部IPv4报头上的IPv4校验和,并检测具有或者不具有可选项的外部IPv4报头上的IPv4校验和。L4剖析模块312支持L4剖析,UDF剖析模块314支持用户定义域剖析,以允许用户与分组的第一个128字节内的任意域相匹配。
对全部域进行剖析后,剖析单元210将入站信元数据写入入站管线缓冲器,并将写指针往下传递到管线。由于分组数据被写入入站管线缓冲器,分组数据不需要进一步传送,剖析过的模块报头信息可丢弃。然后丢弃单元212查寻各种早期的丢弃状况,并丢弃分组和/或防止分组通过设备发送。
交换单元213对入站分组执行地址解析处理和其它交换操作。根据本发明的一个实施例,交换单元213包括第一交换单元214和第二交换单元216。第一交换单元214决定(resolve)任何丢弃状况、执行BPDU处理、检测L2原站运动、决定L2和L3单播分组、L3多播分组以及IPMC分组的大多数目标处理。第一交换单元214还通过将不同类型的协议分组拷贝到CPU上或将它们丢弃,来执行协议分组控制交换。第一交换单元214还执行全部的源地址检测,并确定在工作站运动情况下L2栏目是否需要被学习或被重新被学习。第一交换单元214还执行目标呼叫,以确定根据目标交换信息如何交换分组。特别地,第一交换单元214计算出单播分组的目标端口或者多播分组的端口位图、计算新的优先级、选择性地将分组转入CPU,并在各种错误状况下丢弃分组。第一交换单元214还包括DSCP表,用于将入站IPv4或IPv6DSCP映射到新值上。第一交换单元214还包括速率限制计数器(counters),它可为多播、广播和DLF信息流提供程序控制特定速率的能力。第一交换单元214进行高速交换处理,该高速交换处理与端口109a-109i的交换处理分离,并根据单元报头运算代码交换入站高速分组。
然后第二交换单元216执行FP动作解析(action resolution)、源端口移除(source port removal)、中继解析(trunk resolution)、高速中继(highspeed trunking)、端口阻断(port blocking)、CPU优先级处理、端对端线端(end-to-end Head of Line)(HOL)资源检测、资源检测、镜像、最大传送长度(MTU)检测,其中最大传送长度(MTU)检测用于确认入站/出站分组的长度小于最大传送长度。第二交换单元216采用第一交换单元214的交换决策、任何L3路由信息和FP重新定向,从而产生交换的最终目标。第二交换单元216还从目标端口位图中移除源端口,并执行中继解析处理,从而为单播分组的目标端口、入站的镜像到端口和出站的镜像到端口决定中继(线路)。第二转换单元216还通过检测源端口是否是高速中继群组的一部分来执行高速中继,如果是,移除源高速中继群组的全部端口。第二交换单元216还通过执行各种原因的屏蔽,包括捕捉(meshing)和出站屏蔽,来执行端口阻断。第二交换单元216还为正向CPU发送的分组确定优先权/服务等级。第二交换单元216还在镜像操作之前执行资源检测,以便为出站镜像操作生成精确的端口位图,并将可能已被镜像操作添加的任何资源受限的端口移除。然后第二交换单元216将p总线域(p-bus fields)和信元数据输出到MMU 104。p总线域指示出站单元106如何交换和更改分组。
当从MMU 104接收分组时,对于72千兆字节端口带宽和CPU处理带宽,出站模块106支持执行多个出站功能。根据一个实施例,出站模块106能够处理多于72千兆的信息流,也就是每个GE端口24千兆,4个高速端口(12G),以及CPU处理端口0.2GE。出站模块106接收从以太网端口109a-109i、MMU104输入的初始分组,并将更改的或者未更改的分组传送到目标端口109j-109x。根据本发明的一个实施例,设备100内的所有分组更改都是在出站模块106中进行的,且出站模块106的核心处理的运行能够比目标端口109a-109x的处理运行更快。因此,出站模块106在端口上提供了延迟机制,以防止端口109a-109x发生过载,从而按照端口的速度为每个端口提供服务。
在本发明的实施例中,出站模块106通过1024位数据接口连接到MMU104上,MMU104发送的所有分组都通过出站模块106。特别地,MMU104将未更改的分组数据和控制信息传递给出站模块106。控制信息包括表查寻结果和在入站模块102中做出的交换决策。所有的端口108和109以及CPU处理111共用来自MMU 104的数据总线。这样,总线使用“基于请求”的时分复用(TDM)方式,其中在总线上各千兆端口每72个周期轮到一次,各高速端口108每6个周期轮到一次。CPU处理分组数据通过空时段(总线上出现的空闲时间)传送。当接收MMU 104的信息时,在数据被传送到适当的目标端口109a-109x之前,出站模块106剖析分组数据、进行表查寻、执行交换逻辑、更改、排列(align)、及进一步缓冲分组。
出站模块106通过32位S总线接口连接到CPU处理模块111上,CPU利用该32位S总线接口向出站模块106发送请求。请求典型地用于读取出站模块的资源,也就是寄存器、存储器和/或统计计数器。一旦接收到请求,出站模块106将请求转换成命令,并使用一种机制(将在以下详细描述)在管线上可利用的时段将CPU指令存储并插入到管线中。
图4示出了出站单元106的集中式出站管线结构图。出站管线包括判定器402、剖析器406、表查寻单元408、决策单元410、更改单元412以及数据缓冲器414。为接入出站管线资源,判定器402对来自MMU的分组数据和控制信息、来自CPU的信息提供判定。剖析器406为表查寻和更改执行分组剖析。表查寻单元408为剖析器406发送的信息执行表查寻。决策单元410用于确定是否对分组进行更改、丢弃或其它处理。更改单元412根据入站模块的前面单元的输出对分组数据做出更改。
来自MMU 104的所有入站分组数据都被发送到初始分组缓冲器404。在本发明的一个实施例中,初始分组缓冲器是1044位宽、18字深。出站管线接收两个输入:来自MMU 104的分组数据和控制信息、以及来自S总线的CPU运算。初始分组缓冲器404存储分组数据并对来自MMU 104的任何空周期保持追踪。初始分组缓冲器404输出其写地址,剖析器406将带有管线指令的最近写地址传递到更改单元414。
判定器402收集来自MMU 104的分组数据和控制信息、来自CPU的对寄存器和存储器的读取/写入请求,使来自MMU 104的分组数据和控制信息同步,并将来自CPU的请求写入保持寄存器。根据来自CPU的请求类型,判定器402产生管线寄存器和存储器接入(access)指令以及硬件表初始化指令。当判定器402收集分组数据、CPU请求和硬件表初始化消息之后,其产生适当的指令。根据实施例,判定器402生成分组指令的起始信元、分组指令的未端信元、分组指令的中间信元、分组指令的首尾信元、寄存器读运算指令、寄存器写运算指令、存储器读运算指令、存储器写运算指令、存储器复位(reset)写运算指令、存储器复位(reset)写全部运算指令以及无运算指令。判定器402赋予与分组指令的起始信元和分组指令的首尾信元相关的出站管线资源以最高的优先级。判定器402赋予分组指令的末端信元、分组指令的中间信元、寄存器读运算指令、寄存器写运算指令、存储器读运算指令和存储器写运算指令以第二级优先权。判定器402赋予存储器复位写运算指令和存储器复位写全部运算指令以第三级优先权。判定器402赋予无运算指令以最低的优先级。
当从判定器402处接收指令后,剖析器406利用判定器402发送的控制信息及配置寄存器,剖析与分组指令的起始信元和分组指令的首尾信元有关的分组数据。根据实施例,对分组数据进行剖析以获得L4和L3域,该L4和L3域出现在分组的第一个148字节。
然后表查寻单元408从剖析器406接收所有的分组域和寄存器值。图5进一步示出了表查寻单元408。表查寻单元408包括L3模块502、VLAN单元504、VLAN译码单元506、IP信道查寻单元508。在本发明的实施例中,L3模块502包括8k深的下一跳表(next hop table)510以及4k深的接口表512。下一跳表510是根据MMU104的13位宽下一跳(next hop)目录编成索引的,下一跳表510根据分组的类型提供所用的MAC地址和的接口号码,以为接口表512做索引。对于全部存储器读取运算和存储器写入运算指令,表查寻单元408解码地址,并在对应的表中写入或读取数据。
VLAN单元504用于获取VLAN相关的信息以及输出端口的生成树状态。VLAN单元504包括VLAN表514和单元(STG)表516。VLAN表514根据来自分组或接口表512的VLAN ID编制索引。如果VLAN表查寻结果是“失败”,也就是无效VLAN,则该分组将被丢弃。如果VLAN条目是有效的,但是输出端口不是VLAN的成员,则该分组也被丢弃。VLAN表输出VLAN成员列表、无标记位图以及用于索引STG表516的STG组号码。STG表516输出STG向量,STG向量包含输出端口的生成树状态。VLAN单元504还确定在出站管线中是否应该为CPU和入站镜像情况更改分组。
VLAN译码单元506将入站VLAN转换成新的一个,并搜索各种表。VLAN译码单元506包括内容可寻址存储器(CAM)518和相关的数据随机可寻址存储器(RAM)520。CAM518的搜索是以VLAN ID和目标端口号码为入口的,如果找到相关的入口,可从CAM 518中获得地址,从而接入相关的数据RAM520。
IP信道查寻单元508从适当的表、寄存器和被剖析的分组域获得部分(partial)信道IP报头。IP信道查寻单元508包括IP信道表522。该IP信道表522编成索引,给出了接口表512中的信道索引,并在其它的信息中输出信道类型,这些信道类型用于区别出站管线所遵循的信道协议。
接下来,来自表查寻单元406的信息被传送到决策单元410,在决策单元410中做出决策,确定是否对分组进行更改、丢弃或其它处理。例如,决策单元410首先在分组传输的起始查寻清除位(flush bits),如果清除位被设定,则将该分组标记为“丢弃”。在本发明的实施例中,如果已经在传送中为分组设定清除位,则该分组被完全传送,下一个分组被清除。在另一个实施例中,MMU104可将分组标记为清除、老化(aged)或信元错误,决策单元410既可丢弃这些分组,也可传送这些分组但是将它们标记为错误的。在另一个例子中,如果VLAN译码功能是激活的,但是CAM 518查寻失败,如果某些域被设定,决策单元410则丢弃该分组。决策单元408还确定分组是否需要进行L4交换或L3路由,并确定需要在分组上执行的镜像功能的类型。
之后更改单元412为分组构造信道IP报头和模块报头,使分组内的替换(replacement)改变,并计算内、外IP报头的IP的校验和。更改单元412从初始缓冲器404接收分组数据接口,初始缓冲器404使更改单元412为初始缓冲器404提供读取地址,并相应地获得分组数据和基本控制数据。然后更改单元412根据从初始缓冲器404接收到的数据,产生分组的中部和分组指令的未端,并根据这些命令做出变化。更改单元412还从决策单元410接收全部分组决策和管线命令,并使用这种信息对分组做出进一步的改变。特别地,需要被入站分组域填充的信道IP报头的全部域被填充。
另外,IP信道报头的IP校验和的计算与报头的构建并行进行。更改单元412还从初始缓冲器404中读回分组和控制信息,并执行所有的分组更改和域替换。它在一条总线上输出CPU运算和硬件命令、以及与其相关的数据和地址,还在另一条总线上的输出分组数据和控制信息。另外,更改单元412对报头进行物理封装和解包,以及特征标记移除和插入。如果分组进入高速端口,更改单元412将分组从以太网格式转换成高速格式。更改单元412还通过填充(padding)小于64字节的分组来排列分组,还通过将数据排列到1314位范围来清除空穴。之后,1314位“完整的”数据字从更改单元412输出至数据缓冲器414。
数据缓冲器414将来自更改单元412的完整数据字存储在存储器中。在出站管线将分组发送到目标端口109a-109x之前,分组数据存储在数据缓冲器414中,以达到管线延迟和端口速度匹配。只要MMU 104有自由空间,数据缓冲器414就能从MMU 104请求数据。
作为上述分组发送和处理的一部分,与之前的技术相比,本发明在处理接收到的数据分组时,能使延迟时间减少。该过程在图6中示出。如上所述,存储管理单元(MMU)606用于管理在分组存储器601中数据的存储和重新获取。分组存储器被看作MMU的一部分,但是本发明也可应用于分组存储器中的直通处理,这种分组存储器可以设置网络设备内,也可以设置在网络设备外部。
根据本发明的至少一个实施例,在分组被分组存储器601完全接收之前,允许MMU606将分组发送到出站端口605。信元的临界数量被提供,用于确定在允许MMU将分组发送到出站端口之前必须接收到多少个信元。在一个实施例中,这个值可被配置成预定数量的信元,取决与网络设备的延迟时间。在图6中,接收到的信元的数量用“n”表示。为了激活这个功能,可设定寄存器内的一个位域。当由于不够预定数量的信元,分组未被传送时,在之后所接收的每个信元每次到达时,都执行直通检测,直至满足条件。可能已到达分组的末端,或者分组通过直通检测并开始直通处理。
必须将端口的端口速度参数提供给MMU 606,从而使该模块做出正确的决策,该决策关于当没有接收完分组时是否允许转发。如果入站端口速度快于或等于出站端口的速度,可使用直通处理。如果入站端口速度慢于出站端口的速度,可发生欠载(under-run),从而不允许直通处理。多播和广播分组也受到端口速度性能的影响。所有参与多播或广播的端口必须满足上述的要求,才能允许直通处理。
MMU还采用延迟因子“m”,如图7所示。该延迟因子的取值范围为1至7,主要取决于目标端口的速度。如图所示,根据目标端口的速度从10Mbs至12Gbs来设定该因子1至7。由于出站端口处潜在的延迟可能引起过载或者堆积(backups),所以采用了延迟因子。通过使用该因子,这些内在的延迟可被补偿,直通处理可顺利执行。
通过实施本发明,用户可减少给定的分组从网络设备的入口至网络设备的出口的延迟时间。与之前的技术方法相反,在同一个分组可从网络设备中出来之前,不需要等待整个分组被网络设备完全接收。
虽然以上是通过实施例对直通处理进行说明,但是本发明不限于上述的实施例。相反,它包括允许在存储器内进行直通处理的任何网络设备,使得在分组开始传送到出站端口之前,无需完全接收分组。
如本领域的技术人员所知悉,在上述优选实施例中,本发明的上述配置,可通过适当的半导体制造技术及线路布图,在半导体基底(例如硅)上实现。根据上述的结构描述,半导体设计和制造技术专业的技术人员能够将本发明的各种模块、端口和表、缓冲器等在单个的半导体基底上实现。本发明的范围也包括在分立的电子器件上实现本发明所揭露的各种部件,从而不必通过使用单个的半导体基片,也可利用本发明的功能特征。
关于本发明,网络设备可以是任何处理网络数据的设备,可包括交换机、路由器、桥接器、网关或者服务器。另外,虽然上面的讨论特别提及对分组的讨论,但是,在实际应用的内容中,可包括任何种类的数据报文、数据分组和信元,或网络设备之间交换的任何类型的数据。
前面的描述是针对本发明的特定实施例。但是,很显然可以对所描述的实施例做出其它的变化和更改,并获得它们的一些或所有优点。因此,本发明的权利要求的目的是涵盖所有落入本发明的精神实质和范围内的这样的更改和变化。
本发明要求申请日为2004年11月30日、申请号为60/631,624的美国临时专利申请的优先权,本申请参考该在先申请并将其结合于本申请中。
Claims (9)
1、一种处理分组的网络设备,包括:
对入站分组执行交换功能并具有集中式入站管线结构的入站模块;
存储分组的存储器管理单元;以及
将入站分组发送至出站端口的出站模块;
其中入站管线结构在判断直通与存储转发之前对入站分组进行预先剖析并丢弃出错的入站分组,存储器管理单元用于将入站分组的初始信元存储在存储器中、决定直通处理是否需要激活,并当直通处理激活时,在将入站分组的最终信元存储到存储器中之前,将初始信元转发给出站端口。
2、根据权利要求1所述的网络设备,其特征在于:所述存储器管理单元用于检测入站端口的入站速度是否大于或等于出站端口的出站速度,当入站速度大于或等于出站速度时,激活直通处理。
3、根据权利要求2所述的网络设备,其特征在于:所述存储器管理单元用于检测多播分组的每个目标端口的速度,当每个目标端口的速度都小于入站速度时,激活直通处理。
4、一种在网络设备中处理分组的方法,所述方法包括以下步骤:
接收入站分组的信元;
预先剖析入站分组并丢弃出错分组;
确定入站分组的出站端口;
将入站分组信元的初始信元存储在存储器中;
决定直通处理是否需要激活;以及
当直通处理激活时,在将入站分组的最终信元存储到存储器中之前,将初始信元转发给出站端口。
5、根据权利要求4所述的方法,其特征在于:所述决定步骤包括,检测入站端口的入站速度是否大于或等于出站端口的出站速度,当入站速度大于或等于出站速度时,激活直通处理。
6、根据权利要求5所述的方法,其特征在于:所述检测步骤还包括检测多播分组的每个目标端口的速度,当每个目标端口的速度都小于入站速度时,激活直通处理。
7、一种在网络设备中处理分组的装置,所述装置包括:
用于接收入站分组的信元的接收装置;其中包括预先剖析入站分组并丢弃
出错分组的入站管线装置;
用于确定入站分组的出站端口的确定装置;
用于将入站分组信元的初始信元存储到存储器中的存储装置;
用于决定直通处理是否需要激活的决定装置;以及
用于当直通处理激活时在将入站分组的最终信元存储到存储器中之前将初始信元转发给出站端口的转发装置。
8、根据权利要求7所述的装置,其特征在于:所述决定装置包括用于检测入站端口的入站速度是否大于或等于出站端口的出站速度的检测装置,以及用于当入站速度大于或等于出站速度时激活直通处理的激活装置。
9、根据权利要求8所述的装置,其特征在于:所述检测装置还包括用于检测多播分组的每个目标端口的速度的第二检测装置,以及当每个目标端口的速度都小于入站速度时激活直通处理的激活装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63162404P | 2004-11-30 | 2004-11-30 | |
US60/631,624 | 2004-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1798101A CN1798101A (zh) | 2006-07-05 |
CN100473054C true CN100473054C (zh) | 2009-03-25 |
Family
ID=35427757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101265640A Expired - Fee Related CN100473054C (zh) | 2004-11-30 | 2005-11-29 | 一种处理分组的网络设备及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20060114907A1 (zh) |
EP (1) | EP1662725B1 (zh) |
CN (1) | CN100473054C (zh) |
DE (1) | DE602005026243D1 (zh) |
TW (1) | TWI313118B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8170019B2 (en) * | 2004-11-30 | 2012-05-01 | Broadcom Corporation | CPU transmission of unmodified packets |
US8068429B2 (en) * | 2007-05-31 | 2011-11-29 | Ixia | Transmit scheduling |
AU2011319906B2 (en) * | 2010-10-28 | 2016-06-16 | Compass Electro Optical Systems Ltd. | Router and switch architecture |
EP2700202B1 (en) * | 2011-04-20 | 2017-11-08 | NXP USA, Inc. | Integrated circuit device and methods for performing cut-through forwarding |
WO2012172389A1 (en) * | 2011-06-15 | 2012-12-20 | Freescale Semiconductor, Inc. | Integrated circuit device and method of performing cut-through forwarding of packet data |
US9438537B2 (en) | 2012-07-03 | 2016-09-06 | Freescale Semiconductor, Inc. | Method for cut through forwarding data packets between electronic communication devices |
US9065755B2 (en) * | 2012-08-07 | 2015-06-23 | Broadcom Corporation | Low-latency switching |
US9106428B2 (en) * | 2012-10-04 | 2015-08-11 | Broadcom Corporation | Multicast switching for distributed devices |
US10257117B2 (en) | 2014-11-05 | 2019-04-09 | Avago Technologies International Sales Pte. Limited | Distributed switch architecture |
US10176012B2 (en) | 2014-12-12 | 2019-01-08 | Nxp Usa, Inc. | Method and apparatus for implementing deterministic response frame transmission |
US10505757B2 (en) | 2014-12-12 | 2019-12-10 | Nxp Usa, Inc. | Network interface module and a method of changing network configuration parameters within a network device |
US10078356B2 (en) * | 2015-08-20 | 2018-09-18 | Intel Corporation | Apparatus and method for saving and restoring data for power saving in a processor |
CN105635000B (zh) * | 2015-12-30 | 2019-02-01 | 华为技术有限公司 | 一种报文存储转发方法和电路及设备 |
US10628352B2 (en) | 2016-07-19 | 2020-04-21 | Nxp Usa, Inc. | Heterogeneous multi-processor device and method of enabling coherent data access within a heterogeneous multi-processor device |
TWI730325B (zh) | 2017-02-14 | 2021-06-11 | 美商莫仕有限公司 | 伺服器盒子 |
WO2020201789A1 (en) * | 2019-03-29 | 2020-10-08 | Intel Corporation | Technologies for managing data wait barrier operations |
US20230065245A1 (en) * | 2021-08-24 | 2023-03-02 | International Business Machines Corporation | Transport control word architecture for virtual port mirroring |
US11722436B2 (en) | 2021-08-24 | 2023-08-08 | International Business Machines Corporation | Transport control word architecture for physical port mirroring |
US11876726B2 (en) | 2022-03-07 | 2024-01-16 | Nxp B.V. | Disabling cut-through frame transfer based on a cycle time period and apparatus for disabling |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307345A (en) * | 1992-06-25 | 1994-04-26 | Digital Equipment Corporation | Method and apparatus for cut-through data packet transfer in a bridge device |
US5521913A (en) * | 1994-09-12 | 1996-05-28 | Amber Wave Systems, Inc. | Distributed processing ethernet switch with adaptive cut-through switching |
US5918074A (en) * | 1997-07-25 | 1999-06-29 | Neonet Llc | System architecture for and method of dual path data processing and management of packets and/or cells and the like |
US6233243B1 (en) * | 1997-11-24 | 2001-05-15 | Ascend Communications, Inc. | Method and apparatus for performing cut-through virtual circuit merging |
US6591299B2 (en) * | 1997-11-25 | 2003-07-08 | Packeteer, Inc. | Method for automatically classifying traffic with enhanced hierarchy in a packet communications network |
US6144668A (en) * | 1997-11-26 | 2000-11-07 | International Business Machines Corporation | Simultaneous cut through and store-and-forward frame support in a network device |
US6781994B1 (en) * | 1997-12-25 | 2004-08-24 | Kabushiki Kaisha Toshiba | Distributing ATM cells to output ports based upon destination information using ATM switch core and IP forwarding |
US6208650B1 (en) * | 1997-12-30 | 2001-03-27 | Paradyne Corporation | Circuit for performing high-speed, low latency frame relay switching with support for fragmentation and reassembly and channel multiplexing |
US20020083189A1 (en) * | 2000-12-27 | 2002-06-27 | Connor Patrick L. | Relay of a datagram |
US7042891B2 (en) * | 2001-01-04 | 2006-05-09 | Nishan Systems, Inc. | Dynamic selection of lowest latency path in a network switch |
US7230947B1 (en) * | 2001-12-14 | 2007-06-12 | Applied Micro Circuits Corporation | Minimum latency cut-through switch fabric |
AU2002360771A1 (en) * | 2001-12-19 | 2003-07-09 | Chip Engines | Recoverable cut-through buffer and method |
US6671275B1 (en) * | 2002-08-02 | 2003-12-30 | Foundry Networks, Inc. | Cross-point switch with deadlock prevention |
-
2005
- 2005-10-28 US US11/260,270 patent/US20060114907A1/en not_active Abandoned
- 2005-11-03 DE DE602005026243T patent/DE602005026243D1/de active Active
- 2005-11-03 EP EP05024004A patent/EP1662725B1/en not_active Expired - Fee Related
- 2005-11-29 CN CNB2005101265640A patent/CN100473054C/zh not_active Expired - Fee Related
- 2005-11-30 TW TW094142052A patent/TWI313118B/zh active
Also Published As
Publication number | Publication date |
---|---|
US20060114907A1 (en) | 2006-06-01 |
EP1662725A1 (en) | 2006-05-31 |
TW200637250A (en) | 2006-10-16 |
EP1662725B1 (en) | 2011-02-09 |
TWI313118B (en) | 2009-08-01 |
DE602005026243D1 (de) | 2011-03-24 |
CN1798101A (zh) | 2006-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100473054C (zh) | 一种处理分组的网络设备及方法 | |
US8000324B2 (en) | Pipeline architecture of a network device | |
US8005084B2 (en) | Mirroring in a network device | |
US7738385B2 (en) | Mirroring of data in a network device | |
US8320240B2 (en) | Rate limiting and minimum and maximum shaping in a network device | |
US7680107B2 (en) | High speed trunking in a network device | |
US9401876B2 (en) | Method of data delivery across a network fabric in a router or Ethernet bridge | |
US7830892B2 (en) | VLAN translation in a network device | |
US20050129047A1 (en) | Switch capable of controlling data packet transmission and related method | |
US7570639B2 (en) | Multicast trunking in a network device | |
US6788680B1 (en) | Defferrable processing option for fast path forwarding | |
US20100142536A1 (en) | Unicast trunking in a network device | |
US8824468B2 (en) | System and method for parsing frames | |
US9143448B1 (en) | Methods for reassembling fragmented data units | |
US9548929B2 (en) | Frame transfer apparatus and frame transfer method | |
US7379467B1 (en) | Scheduling store-forwarding of back-to-back multi-channel packet fragments | |
US20100138554A1 (en) | Interfacing with streams of differing speeds | |
CN100486226C (zh) | 一种网络设备以及在该网络设备中处理数据的方法 | |
US7317721B1 (en) | Systems and methods for memory utilization during packet forwarding | |
US20030072329A1 (en) | Segmentation of data transmission units into fixed size segments | |
US20040090961A1 (en) | Parallel processing routing device | |
US7733854B2 (en) | Forced bubble insertion scheme | |
US7324539B1 (en) | Method and apparatus for processing channelized and unchannelized data within a signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090325 Termination date: 20111129 |