高速网络处理器的制作方法

文档序号:7729560阅读:201来源:国知局
专利名称:高速网络处理器的制作方法
技术领域
本发明通常涉及通信网络,尤其涉及在上述网络中处理帧或分组的系统。
背景技术
互联网使用人数的增加及公共和/或专用网络上传送的数据量的增加,产生对有效及以介质速度处理分组的网络设备的需求。网络处理器是一类有效及以介质速度处理网络分组的网络设备。网络处理器的例子在PCT公开专利申请WO01/16763,WO01/16779,WO01/17179,WO01/16777,及WO01/16682中被提出。国际商用机器公司拥有并提交了上述申请。那些网络处理器的体系结构基于单芯片设计并且非常成功。
相信当互联网更流行时,更多人将会连接到网上,传送的数据量将会增加。另外,专用网络中的数据量也会增加。结果,需要更快速的网络处理器以满足可预见的数据量增加。
此后描述的本发明提供了以迄今为止最快的速率处理分组的网络处理器。

发明内容
本发明提供了网络处理器的模块化体系结构,其中包含网络处理器复合芯片(NPCC)和连接到网络处理器复合芯片的数据流芯片。分立的存储器被分别连接到NPCC和数据流芯片。
模块化结构提供可选的调度器芯片,但如果选用则被连接到数据流芯片。
NPCC包含多个处理器,它们同时执行软件以转发网络传输(除其它事情以外)。
数据流芯片作为主要数据路径从/向网络端口和/或交换结构接口接收/转发传输。因此数据流芯片包含电路,所述电路配置选择性端口为交换模式(其中通过信元大小的块接收或分发数据)或线路模式(其中通过分组或帧大小的块接收或分发数据)。数据流芯片还构成用于进入数据存储器的接入点。
调度器芯片通过维护流队列来提供服务质量(QoS),其中使用诸如保证带宽,尽力而为,峰值带宽等等的各种算法可以调度流队列。使用两个外部18位QDR SRAM(66MHz)维护高达64K的流队列,所述流队列可以活跃排队高达256K的帧。
在一个实施例中,网络处理器复合芯片,数据流芯片和调度器芯片被复制以形成具有入口和出口部分的网络处理器(图1)。交换接口和介质接口将网络处理器连接到交换机和通信介质。
在另一个实施例中,在机架内把一个实施例复制若干次以形成网络设备。


图1示出了根据本发明的指导的网络处理器。
图2示出了通过图1的网络处理器形成的网络设备。
图3示出了网络处理器复合芯片的模块图。
图4示出了数据流芯片的模块图。
图4A示出了将数据流芯片的选定端口配置为交换或线路模式的电路结构。
图5示出了调度器芯片的模块图。
具体实施例方式
根据需要并为了提供有关网络处理器的背景信息,参照上述EPC公开的专利申请,这里参考引用了所述专利申请。
图1示出了根据本发明的指导的网络处理器的模块图。网络处理器10包含对称排列成对称结构的入口部分12和出口部分14。入口部分包含入口网络处理器(NP)复合芯片16,入口数据流芯片18和入口调度器芯片20。如下所述,入口调度器芯片20是可选的,并且入口部分无需入口调度器芯片也可以正常操作。控制存储存储器16′被连接到入口NP复合芯片16。数据存储存储器芯片18′被连接到入口数据流芯片18。流队列存储器20′被连接到入口调度器芯片20。
仍参照图1,出口部分14复制针对入口部分12列举的芯片和存储设施。因为出口部分14中的芯片和存储器与入口部分12中的相同,所以通过相同的基数标识与入口部分12中芯片相同的出口部分14中的芯片。结果,用数字18″标识出口数据流程芯片,等等。通过传输介质26和24,介质接口22把网络处理器10与通信网络(未示出)互连,其中介质接口22可以是SONET上分组(Packet Over SONET)(POS)成帧器,以太网MAC或其它类型的适当接口。介质接口22可以是POS成帧器或以太网MAC。如果是SONET上分组成帧器,则互连一个OC-192,4×OC-48,16×OC-13或64×OC-3信道。同样地,如果以太网MAC是介质接口,则可以连接一个10Gbps信道,10×1Gbps信道或64×100Mbps信道。可选地,设计者可以选择在芯片内或芯片外产生10Gbps数据的SONET上分组集群或以太网集群的任意方案。
仍然参照图1,CSIX插入器接口28提供进入交换结构(未示出)的接口。CSIX是通过现场可编程门阵列(FPGA)实现的标准。″CSLX″是用于表示“公共交换接口联盟”的缩写。它是以开发公共标准以把类似网络处理器的设备附加到交换结构为使命的业界集团。其规范在www.csix.org上公开。“CXIS插入器FPGA”把数据流芯片上的“SPI-4 Phase-1”总线接口转换成CSIX规范中定义的CSIX交换接口标准。这种功能也可以被设计到ASIC中,但是通过FPGA该功能可以很简单地实现,以避免设计的成本和复杂度,并构造ASIC。应当注意,在不偏离本发明的指导的前提下可以使用其它类型的接口。交换结构可以是被称为PRIZMA的IBM交换机,或可以使用任何其他纵横交换机(cross bar switch)。来自出口数据流芯片18″的信息通过标记为WRAP的导线反馈到入口数据流芯片18。所示出的芯片内信息的近似数据速率在介质接口为10Gbps,在交换接口为14Gbps。这些数字仅仅代表交换机的速度,并且更高的速度可以从图1示出的体系结构获得。还应当注意,在不偏离本发明宗旨和范围的前提下,可以使用网络处理器的对称一半中的一个,其中吞吐量降低。如上所述,复制的网络处理器的一半包含相同的芯片组。如此,下面提供的各个芯片的描述试图覆盖芯片的结构和功能,不管芯片在出口侧还是入口侧。
图2示出用于互连多个台站或网络(未示出)的设备的模块图。网络设备28可以是路由器或类似设备。网络设备28包含机架28′,其中控制点子系统30和网络处理器32至N通过交换结构34装配并且互连。在一个实施例中,交换结构是支持14Gbps端口的64×64矩阵。网络设备的各个内部单元包含通过交换结构插入器连接到交换结构34的网络处理器(NP)芯片组。网络处理器芯片组是对这里描述并在图1中示出的六个芯片的命名。控制点子系统执行管理全体网络设备的控制点代码。另外,网络处理器32-N被连接到SONET上分组成帧器或以太网MAC。如这里所述,通过SONET上分组成帧器可以支持1×OC-192信道,或4×OC-48信道,或16×OC-12信道,或64×OC-3信道。通过类似的方式,以太网MAC可以支持1×10GB以太网信道,或10×1GB以太网信道,或64×100Mbps以太网信道。箭头指示网络设备28内数据流的方向。图2中的各个网络处理器芯片组是由图1描述和示出的复制芯片组构成的。换句话说,图1所示的芯片组被称作网络处理器芯片组,并且被用于建立图2所示的网络设备。
可选地,30,32…N可以被视为机架28′内的板卡(blade)。在这种构造中,30是处理器板卡,并且32…N是设备附接板卡。交换结构34提供板卡之间的通信。
图3示出了网络处理器复合芯片16的模块图。网络处理器复合芯片执行负责传递网络传输的软件。它包含此后描述的硬件辅助功能,用于执行诸如表格搜索,监管和计数的公共操作。网络处理器复合芯片16包含把网络处理器复合芯片16连接至控制存储存储器16′的控制存储仲裁器36。控制存储存储器16′包含由数字D6,S1,D0A,D1A,S0A,D0B,D1B,S0B和Q0标识的多个不同类型的存储器。各个存储器元件被合适的总线连接到控制存储仲裁器36。在操作中,控制存储仲裁器36提供允许网络处理器复合芯片16到存储存储器16′的接口。
仍然参照图3,应当注意,各个控制存储器存储不同类型的信息。这里列出了各个存储器模块存储的信息的类型。举例来说,标记为405 PowerPC的D6存储嵌入NP复合芯片16内的PowerPC芯核的信息。同样,标记为S1的存储单元存储叶子(leaves),直接表(DT),模式搜索控制块(PSCB)。信息有必要进行表格查询和其它树搜索活动。同样,D0A存储包含叶子,DT,PSCB的信息。以类似的方式,其它所提及的存储器存储这里被标识的信息。在网络处理器技术中,存储在这些存储器中的这种信息是众所周知的。这种信息允许接收数据并传送到网络内的选定端口。在现有技术中,这类信息和用法是众所周知的,并且详细描述超出本发明的范围,因此不会提供。
仍然参照图3,QDR仲裁器38把计数管理器40和策略管理器42连接至存储策略控制块和计数器的Q0存储器模块。计数管理器辅助芯片内统计计数器的维护,并且被连接到控制存储仲裁器36和嵌入的处理器复合结构(EPC)44。策略管理器42辅助监管传入的传输流。″监管″是在网络行业中所熟知的术语,是指能够限制指定传输流的数据速率的功能。例如,互联网服务提供商可允许客户在其互联网连接上只发送100兆位的数据。监管功能允许100兆位的流量通过,并且超过的流量不可通过。超出的任何数据将被丢弃。如果客户想要更高的数据速率,那么他们可以多付费给互联网服务提供商,并且调整监管功能以通过更高的数据速率。通过可选参数和算法,以逐个传输流的方式维护双漏桶计量器(dual leaky bucket meter)。
仍然参照图3,嵌入式处理器复合结构(EPC)44包含12个二元协议处理器单元(DPPU),所述单元提供网络传输的并行处理。通过分配器单元46把网络传输提供给EPC44。分配器单元46被连接到中断和定时器48,及硬件分类器50。硬件分类器50在帧被发送到EPC44之前辅助分类帧。进入分配器的信息通过与帧变更逻辑52和数据流仲裁器54连接的分组缓冲区50提供。数据流仲裁器54由连接到数据流接口的芯片到芯片(chip by chip)(C2C)宏56连接。C2C宏提供允许网络处理器芯片与数据流芯片之间的有效数据交换的接口。
数据流仲裁器54为数据流管理器58,帧变更52及空闲列表管理器60提供仲裁。数据流管理器58控制NP复合芯片16和数据流芯片之间的数据流。空闲列表管理器提供可用缓冲区的空闲列表。完成单元62被连接到EPC44。完成单元提供的功能保证帧离开EPC44时的顺序与其被接收时的顺序相同。排队缓冲区64被连接到完成单元62,并且对从完成单元接收的帧进行排队,以便经芯片到芯片接口传送。分组缓冲区仲裁器66提供针对分组缓冲区50的访问的仲裁。配置寄存器68存储用于配置芯片的信息。指令存储器70存储EPC44使用的指令。对指令存储器70中启动代码的访问通过串行/并行管理器(SPM)72实现。在NP复合芯片启动之外,SPM向EPC加载初始化启动代码。
中断和定时器48管理中断条件,在所述中断条件下可以请求EPC 44的注意。CAB仲裁器74针对请求访问NP复合芯片16中寄存器的不同实体提供仲裁。信号量管理器76管理信号量功能,该功能允许处理器排除其它处理器访问所选存储器或存储器内的位置。PCI总线提供对405 PowerPC芯核的外部访问。提供芯片上(on chip)存储器H0A,H0B,H1A及H1B。芯片上存储器用于存储叶子,DT或模式搜索控制块(PSCB)。在一个实现中,H0A及H0B是3K×128,而H1A及H1B是3K×36。这些容量只是示例,根据设计可选择其它容量。
仍然参照图3,12 DPPU中的每个包含两个微微码引擎。各个微微码引擎支持两个线程。在线程之间支持零开销上下文切换。DPPU的指令被存储在指令存储器70中。协议处理器在接近250MHz频率上进行操作。分配器单元46提供分配功能,并且向空闲协议处理器分配传入帧。12个输入队列类别允许帧被寻的到指定线程或在所有线程上分配。完成单元62的功能是保证帧序在输出上与被传送至协议处理器的输入时保持相同。405 PowerPC嵌入式芯核允许执行高层系统管理软件。PowerPC工作在250MHz附近。针对外部DDR SDRAM(D6)的18位接口提供高达128兆字节的指令存储。DDR SDRAM接口工作在125MHz(250MHz DDR)。提供32位PCI接口(33/66MHz)以连接到其它控制点功能,或用于配置诸如MAC或成帧器部件的外围电路。
仍然参照图3,硬件分类器50对网络帧进行分类(当其被分配给协议处理器时),以识别众所周知的(LAYER-2及LAYER-3帧格式)。分类器50的输出被用于预设微微码线程在开始其对各帧的处理之前的状态。
在网络处理器复合芯片16提供的许多功能中,有表格搜索。由所选择的DPPU,即外部存储器16′或芯片上存储器H0A,H0B,H1A或H1B执行搜索。表格搜索引擎为执行表格搜索提供硬件支持。表格被维护为Patricia树,其中搜索的终结导致微微码使用的叶子表项的地址存储与流相关的信息。支持三种表格搜索算法固定匹配(FM),最长前缀匹配(LPM),及软件管理树(SMT)算法,用于复杂的基于规则的搜索。搜索算法超出本发明的范围,并且此后不会提供进一步的描述。
控制存储存储器16′提供大的DRAM表格和快速SRAM表格,以支持数百万的流的线速分类。控制存储包含两个芯片上3K×36SRAM(H1A和H1B),两个芯片上3K×128 SRAM(H0A和H0B),四个外部32位DDR SDRAM(D0A,D0B,D1A和D1B),两个外部36位ZBT SRAM(S0A和S0B),及一个外部72位ZBT SRAM(S1)。72位ZBTSRAM接口可选择性地用于连接内容地址存储器(CAM)以提高查找性能。外部DDR SDRAM及ZBT SRAM的工作频率高达166Mhz(333Mhz DDR)。图3的存储器单元的诸如18、64、32等等、与总线相关的数字表示把相应的存储器单元与控制存储仲裁器互连的数据总线的大小。例如,18在把PowerPC存储器D6与控制存储仲裁器36互连的总线旁边,指示那些数据总线是18位宽度,其它依此类推。
仍然参照图3,由网络处理器复合芯片16提供的其它功能包含帧编辑,统计收集,监管,等等。针对帧编辑,微微码通过对连接到数据流芯片(这里描述的)的数据存储存储器进行读写,可以直接编辑帧。对于高性能,微微码也可以产生帧变更命令,以指示数据流芯片在帧通过输出端口被发送时执行众所周知的修改。
对于统计信息,计数管理器40提供辅助微微码维护统计计数器的功能。芯片上1K×64SRAM及外部32位QDR SRAM(与策略管理器共享)可以用于计数以10Gbps帧间隔速率出现的事件。一个外部控制存储DDR SDRAM(与表格搜索功能共享)可以被用来维护以较慢速率出现的事件的大量计数器。策略管理器42的功能是辅助微微码监管传入的传输流。基于可选参数和算法,策略管理器维护高达16K的漏桶计量器。可以在芯片上SRAM中维护1K监管控制块(Po1CB)。可以添加可选的外部QDR SRAM(与计数管理器共享)可以把Po1CB的数量增加到16K。
图4示出了数据流芯片的模块图。数据流芯片是通过网络端口和/或交换结构接口发送和接收数据的主要数据路径。数据流芯片向标记为数据存储片段0至数据存储片段5的大数据存储器提供接口。各个数据存储片段由DDR DRAM构成。数据存储器作为穿过网络处理器子系统的数据的缓冲区。数据流芯片中的设备向网络处理器复合芯片分配帧头以进行处理,并且应答网络处理器复合芯片向其目标目的地传送帧的请求。数据流芯片具有输入总线,用于向数据流芯片输入数据,和输出总线,用于从数据流芯片输出数据。总线是64位宽,并且符合被称为SPI-4 Phase-1的光学网间互连论坛的标准接口。然而,在不偏离本发明的指导的前提下,可以使用其它类似总线。各个总线上的斜线指示传输线路是总线。网络处理器(NP)接口控制器74把数据流芯片连接到网络处理器复合(NPC)芯片。总线76和78把数据从NP接口控制器74传送给NPC芯片,并且从NPC芯片传送给NP接口控制器74。BCD仲裁器80通过一对总线82和84连接到存储器86。存储器86包括QDR SRAM,并且存储缓冲区控制块(BCB)列表。流过数据流芯片的帧被存储在数据存储存储器的一系列64字节缓冲区中。BCB列表被数据流芯片硬件用以维护构成帧的缓冲区的链接列表。FCB仲裁器88通过一对总线90和92连接到存储器94。存储器94包括QDR SRAM,并且存储帧控制块(FCB)列表。数据流芯片硬件使用FCB列表维护链接列表,该链接列表构成等待通过发送控制器110传输的帧的队列。G-FIFO仲裁器通过一对总线连接到存储器。存储器包括QDR SRAM并且存储G队列列表。数据流芯片硬件使用G队列列表维护链接列表,该链接列表构成等待通过NP接口控制器74分配给NPC芯片的帧的队列。
仍然参照图4,NP接口控制器74被连接到缓冲区接受和记帐模块96。缓冲区接受和记帐模块实现众所周知的诸如随机早期丢弃(RED)的阻塞控制算法。当传入数据速率超过输出数据速率时,这些算法用于防止或减轻可能出现的阻塞。缓冲区接受和控制模块的输出产生被馈送至调度器接口控制器98的排队FCB信号。调度器接口控制器98构成通过总线100和102进入调度器的接口。排队FCB信号被激活以开始把帧传送到由调度器芯片维护的流队列。
仍然参照图4,数据流芯片包含接收控制器104,其中提供接收端口配置设备106(此后描述)。接收控制器104的功能是接收进入数据流芯片并且将被存储在数据存储存储器中的数据。接收控制器104一旦接收数据,即产生馈送至数据存储仲裁器108的写请求信号。接着数据存储仲裁器108形成存储器向量,该存储器向量被传送至DRAM控制器之一,以选择把数据存储片段与数据流芯片互连的总线之一上的存储器。
接收端口配置电路106把接收端口设置成端口模式或交换模式。如果设置为端口模式,则数据通过帧大小的块被接收或发送。同样,如果为交换模式,则通过大小与能够通过交换机发送的数据相当的块来接收数据。发送控制器110准备将通过SPI-4 Phase-1发送至选定端口(未示出)的数据。发送端口配置电路112在发送控制器110中提供,并且将发送控制器配置为端口模式或交换模式。由于能够将接收端口或发送端口配置为端口或交换模式,单个数据流芯片可被用于互连至交换设备,或诸如以太网或POS通信网络的传输介质。为了使发送控制器110能访问数据存储器,发送控制器110产生读请求,数据存储仲裁器使用该读请求产生存储器向量,用于访问所选存储器片段。
仍然参照图4,发送和接收接口可以被设置成端口模式或交换模式。在端口模式中,数据流交换针对各种网络介质的连接设备,例如以太网MAC或SONET上分组(POS)成帧器的帧。在一个实施例中,在交换模式下,数据流芯片用64位信元分段的形式交换针对连接到基于信元的交换结构的设备的帧。数据流的发送和接收接口实现的物理总线是OIF SPI-4 Phase-1(64位HSTL数据总线,工作频率高达250MHz)。当工作在交换接口模式时,支持高达14.3Gbps的吞吐量以提供额外带宽,用于减轻入口数据存储存储器阻塞。帧可以被寻址到多达64个通过交换接口的目标网络处理器子系统,并且可寻址到多达64个通过端口接口的目标端口。SBI-1 Phase-1接口支持工业POS成帧器的直接连接,并且通过可编程门阵列(FPGA逻辑)可以适用于工业以太网MAC及交换结构接口(诸如CSIX)。
仍然参照图4,连接到数据流芯片的大数据存储器18′提供网络缓冲区,用于当传入帧速率超出输出帧速率时吸收突发传输。存储器还作为用于重组IP片段的存储区(repository),以及用于在类似TCP端接的应用中等待可能的重发的帧的存储区。支持六个外部32位DDRDRAM接口,以便提供对于端口接口为10Gbps,对于交换接口为14.3Gbps的持续发送和接收带宽。应当注意,这些带宽是例子,并且不得作为对本发明范围的限制。保留附加带宽,用于网络处理器复合芯片微微码对数据存储存储器的直接读/写。
通过64位缓冲区的链接列表管理数据存储器。六个DDR DRAM支持高达2,000,000个64位缓冲区的存储。DDR DRAM存储器的工作频率接近166MHz(333MHz DDR)。在两个外部QDR SRAM 86和94中分别维护缓冲区的链接列表。数据流实现被称为(“虚拟输出队列”)的技术,其中为送往不同输出端口或目标目的地的帧维护分立输出队列。该方案防止在单个输出端口被阻塞的情况下出现″队头阻塞″。针对各个端口维护高和低优先级队列,以允许独立排队保留和非保留带宽传输。在数据流芯片的发送控制器110中维护这些队列。
图4A示出了位于数据流芯片的接收端口配置电路104和发送端口配置电路106的模块图。所述电路将发送和接收控制器功能配置成在交换模式或线路模式中工作。接收端口配置电路包含接收控制器配置寄存器124,选择器126,Rx交换控制器128和Rx线路控制器130。Rx(接收器)交换控制器128接收一系列定长信元,并且把它们重组成帧。Rx(接收器)线路控制器130接收数据的连续字节,并且把它们构造成帧。在接收控制器配置寄存器124的控制下,选择器126选择Rx控制器128的输出或Rx线路控制器130的输出。在所选输出上的数据被写入数据存储存储器。
仍然参照图4A,发送端口配置电路包含发送控制器配置寄存器132,Tx(发送器)交换控制器136,Tx线路控制器138及选择器134。Tx交换控制器136从数据存储器读取帧,并且把它们分段成连续字节流。在发送控制器配置寄存器的控制下,选择器134选择Tx交换控制器136的输出,或Tx线路控制器138的输出。
在交换模式中,接收控制器从输入总线接收作为一系列定长信元的帧,并且把它们重组成被写入数据存储存储器的帧,发送控制器从数据存储器读取帧,并且在通过输出总线发送之前,把它分成一系列定长信元。在线路模式中,接收控制器从输入总线接收作为写入数据存储存储器的连续字节流的帧,发送控制器从数据存储存储器读取帧,并且通过输出总线作为连续字节流发送帧。发送控制器和接收控制器可以被独立配置成在交换模式或线路模式下工作。NPC芯片在数据流芯片内写入两个配置寄存器位以设置操作模式。一个位决定发送控制器在交换或线路模式中工作。另一个位决定接收控制器在交换或线路模式中工作。发送控制器包含单独电路以实现操作的发送交换和线路模式。其相关寄存器位选择是否激活发送交换或线路模式电路。同样,接收控制器包含单独电路以实现操作的接收交换和线路模式。其相关寄存器位选择是否激活接收线路或交换模式电路。
图5示出了调度器芯片的模块图。调度器芯片是可选的,但是如果使用,则向网络处理器子系统提供加强的服务质量。调度器允许高达65,536个网络(按照其分配的服务质量水平单独调度传输″流″)。调度器芯片包含数据流接口112,消息FIFO缓冲区114,队列管理器116,日历及环(calendars and rings)118,决胜器(winner)120,存储器管理器122,及标记为QDR0和QDR1的外部存储器。所提及的部件如图5所示互连。数据流总线接口提供调度器与数据流芯片之间的互连总线。使用该总线在模块之间交换芯片组消息。接口是双数据源同步接口,每个数据管脚能够达到500Mbps。存在专用的8位发送总线及专用的8位接收总线,均能够达到4Gbps。在图5中标识出通过接口、用于传送信息的消息。
消息FIFO缓冲区114为多个FlowEnqueue.Request,CabRead.request及CabWrite.request消息提供缓冲。在一个实施例中,缓冲区可容纳96条消息。当然,在不偏离本发明的范围或宗旨的情况下,可缓冲数量不等于96的消息。调度器按其到达顺序以每个时钟(TICK)一个的速率处理这些消息。如果通过芯片到芯片接口以大于每个时钟一个的速率发送消息,则缓冲消息以便稍后处理。
仍然参照图5,队列管理器模块处理传入消息以确定所需的动作。对于流排队请求消息,从存储器检索流排队信息,并且检查以确定该帧应当加入流队列帧流或被丢弃。另外,流队列可被附加或排定日历以便将来分别处理CabRead.request,CabWrite.response和CabWrite.response消息。
日历和环模块118被用于提供具有低可持续延迟(LLS)和正常可持续延迟(NLS)两种分组速率的保证带宽。如下所述,在日历和环形模块中存在不同类型的环。其一是WFQ环,由加权恐惧排队算法(weighted fear queueing algorithm)使用。根据环中的位置选择入口,其中不涉及时间(工作保留)。
决胜器模块120在日历和环之间仲裁以选择下一个要服务的流。
存储器管理器协调数据,针对外部QDR0,QDR1及内部流队列控制模块(FQCB)/老化(aging)阵列进行读写。4K FQCB或64K老化存储器可以被用于取代QDR0以保存加时间标签的老化信息。FQCB老化存储器搜索各个流,并且使具有旧时间标签的流无效。QDR0和QDR1是存储帧控制模块(FCB)和FQCB的外部存储器。
调度器通过维护流队列提供服务质量(QoS),其中可以使用诸如“保证带宽”,“尽力而为”,“峰值带宽”等等的各种算法调度所述流队列。QDR0及QDR1被用于存储高达64K的流队列,用于活跃排队的高达256K的帧。调度器通过允许根据每个流队列阈值丢弃帧来补充数据流阻塞控制算法。
仍然参照图5,队列管理器116管理排队功能。排队功能工作如下帧的链接列表与流相关。帧始终被排到链接列表的尾部。帧始终从链接列表的头部出队。在块118中,帧被连接到4个日历(未示出)之一。4个日历是LLS,NLS,PBS,WFQ。通过按照LLS,NLS,PBS及WFQ这个顺序检查日历,选择要服务的流。不以任何预定方式针对目标端口/目标板卡组合流队列。通过FQCB中的字段,用户可对各个流的端口号编程。具有相同端口ID的所有流被连接到相同的WFQ日历。服务质量参数被用于丢弃的流。丢弃的流的地址是用户可选的,并且在配置时设置。
如上所述存在4个日历。LLS,NLS及PBS是基于时间的。WFQ是基于等待的。按照与其服务质量参数一致的方式把流连接到日历。例如,如果一个流具有保证带宽部分,则把它连接到基于时间的日历。如果它具有WFQ部分,则把它连接到WFQ日历。
通过请求来自数据流芯片的消息的端口状态,发生从数据流到调度器的端口回压。当超出端口阈值时,所有与该端口相关的WFQ及PBS传输被保持在调度器中(选择逻辑不将那些帧考虑为潜在的获胜者)。当回压被清除时,与该端口相关的帧又重新有资格成为获胜者。调度器可以处理一个帧,对于每秒总计27兆个帧,每36纳秒出队一次。对于LLS,NLS及PBS日历,每个流的调度速率范围为10Gbps到10Kbps。速率不适用于WFQ日历。
服务质量信息被存储在流队列控制块FQCB QDR0及QDR1中。流队列控制块描述流特征,例如持续服务速率,峰值服务速率,加权公平队列特征,端口ID等等。当端口排队请求被发送到调度器时,发生以下操作·使用来自PortEnqueue的2位加上FQCB中的流阈值测试帧,以确定可能的丢弃。如果该帧要被丢弃,则FQCB指针从PortEnqueue.request中的FQCB转变到丢弃FQCB。
·该帧被加入到与FQCB相关的FCB链的末端。
·如果流有资格连接到日历,则它被连接到合适的日历(LLS,NLS,PBS或WFQ)。
·随着时间过去,选择逻辑确定哪个流将被服务(首先是LLS,接着是NLS,PBS,WFQ)。如果已超出端口阈值,则与该端口相关的WFQ及PBS没有资格被选择。
·当流被选择作为获胜者时,在流的头部的帧出队,并且发出PortEnqueue.Request消息。
·如果流有资格重新连接到日历,则以与QoS参数一致的方式被重新连接到合适的日历(LLS,NLS,PBS或WFQ)。
虽然在特定的系统环境中根据优选实施例定义了本发明,然而本领域普通技术人员可了解,在不偏离本发明范围和宗旨的情况下可在其它及不同的硬件和软件环境中进行修改和实践。
权利要求
1.一种设备,包含网络处理器复合芯片,包含多个协处理器,用于执行传送帧或硬件辅助功能的程序,其执行类似表格搜索、监管和计数的操作;数据流芯片,在操作中连接至网络处理器复合芯片,所述数据流芯片包含至少一个端口以接收/发送数据,和将至少一个端口设置为交换模式和/或线路模式的电路结构;和调度器芯片,在操作中连接至数据流芯片,所述调度器芯片调度帧以满足预定服务质量约定。
2.如权利要求1所述的设备,还包含在操作中连接至网络处理器复合芯片的第一存储器,在操作中连接至数据流芯片的第二存储器,和在操作中连接至调度器芯片的第三存储器。
3.一种设备,包含对称排列的入口部分和出口部分,所述入口部分和所述出口部分均包含具有多个协处理器的网络处理器复合芯片,所述多个协处理器被编程以执行传送网络传输的代码;数据流芯片,在操作中连接至网络处理器复合芯片;所述数据流芯片具有至少一个端口,和将上述端口设置为交换模式或线路模式的电路;和调度器芯片,在操作中连接至所述数据流芯片,所述调度器芯片包含调度帧以满足预定服务质量约定的电路。
4.一种设备,包含入口部分;出口部分,与所述入口部分对称排列,其中所述入口部分包含具有至少第一输入端口和第一输出端口的第一数据流芯片;第一网络处理器复合芯片,在操作中连接至所述数据流芯片;第一调度器芯片,在操作中连接至所述数据流芯片;并且所述出口部分包含具有至少第二输出和第二输入的第二数据流芯片;第二网络处理器芯片,在操作中连接至所述第二数据流芯片;第二调度器芯片,在操作中连接至第二数据流芯片;和通信介质,将第二数据流芯片环绕至第一数据流芯片。
5.如权利要求4所述的设备,还包含交换接口,在操作中连接至第一输出端口及第二输入端口。
6.如权利要求4所述的设备,还包含线路接口,在操作中连接至第一输入端口及第二输出端口。
7.一种设备,包含入口部分;和出口部分,与所述入口部分对称排列,其中所述入口部分包含具有至少第一输入端口和第一输出端口的第一数据流芯片;第一网络处理器芯片,在操作中连接至所述数据流芯片;第一调度器芯片,在操作中连接至所述数据流芯片;并且所述出口部分包含具有至少第二输出端口和第二输入端口的第二数据流芯片;第二网络处理器芯片,在操作中连接至所述第二数据流芯片;第二调度器芯片,在操作中连接至第二数据流芯片;通信介质,把第二数据流芯片环绕至第一数据流芯片;第一接口,在操作中连接至第一输出端口和第二输入端口;和第二接口,在操作中连接至第一输入端口和第二输出端口。
8.一种网络设备,包含交换结构和多个网络处理器,并联至所述交换结构,其中每个网络处理器均包含入口部分;出口部分,与所述入口部分对称排列,其中所述入口部分包含具有至少第一输入端口和第一输出端口的第一数据流芯片;第一网络处理器复合芯片,在操作中连接至所述第一数据流芯片;第一调度器芯片,在操作中连接至所述数据流芯片;并且所述出口部分包含具有至少第二输出端口和第二输入端口的第二数据流芯片;第二网络处理器芯片,在操作中连接至所述第二数据流芯片;第二调度器芯片,在操作中连接至第二数据流芯片;通信介质,把第二数据流芯片环绕至第一数据流芯片;第一接口,在操作中连接至第一输出端口和第二输入端口;和第二接口,在操作中连接至第一输入端口和第二输出端口。
9.一种网络处理器,包含网络处理器复合芯片,具有多个协处理器;存储器,在操作中连接至所述网络处理器;和数据流芯片,在操作中连接至所述网络处理器芯片,所述数据流芯片包含至少输出端口,输入端口;和控制机构,把至少输入端口或输出端口设置为交换模式或线路模式。
全文摘要
网络处理器(NP)由多个操作性连接的芯片构成。NP包含网络处理器复合(NPC)芯片,连接至数据流芯片,和数据存储存储器,连接至数据流芯片。可选的调度器芯片被连接至数据流芯片。所提及的部件被复制以产生对称的入口和出口结构。
文档编号H04L12/56GK1529963SQ02809103
公开日2004年9月15日 申请日期2002年1月31日 优先权日2001年3月5日
发明者吉恩·L·盖尔维格纳斯, 威廉·J·格特金格尔, 格伦·H·翰德洛格坦, 玛库·C·海蒂斯, 约瑟夫·F·洛根, 詹姆斯·F·米库斯, 戴维·A·诺盖尔德, 法布瑞斯·维尔普兰肯, F 洛根, F 米库斯, A 诺盖尔德, C 海蒂斯, H 翰德洛格坦, J 格特金格尔, 吉恩 L 盖尔维格纳斯, 斯 维尔普兰肯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1