CN102088412B - 交换单元芯片、路由器及信元信息的发送方法 - Google Patents
交换单元芯片、路由器及信元信息的发送方法 Download PDFInfo
- Publication number
- CN102088412B CN102088412B CN201110050100.1A CN201110050100A CN102088412B CN 102088412 B CN102088412 B CN 102088412B CN 201110050100 A CN201110050100 A CN 201110050100A CN 102088412 B CN102088412 B CN 102088412B
- Authority
- CN
- China
- Prior art keywords
- cell
- data
- queue
- module
- crosspoint
- 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
Classifications
-
- 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/109—Integrated on microchip, e.g. switch-on-chip
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种交换单元芯片、路由器及信元信息的发送方法。该交换单元芯片包括具有多个输入端口的信元输入模块,缓存通过各输入端口接收到的信元信息,根据对应分配规则对信元信息中的数据信元进行分配,并根据分配结果将数据信元发送给队列引擎模块;队列引擎模块包括多个独立的数据队列引擎子模块,各数据队列引擎子模块接收信元输入模块根据对应分配规则所发送的数据信元,并将数据信元存储在数据队列引擎子模块中对应的队列中;具有多个输出端口的信元输出模块根据调度规则对数据信元进行调度,并通过对应的输出端口向外发送。本发明实施例能够满足互联网的更高流量交换需求。
Description
技术领域
本发明实施例涉及数据交换技术,尤其涉及一种交换单元芯片、路由器及信元信息的发送方法。
背景技术
目前大容量路由器的交换单元主要采用共享缓存结构,所有的输入和输出端口访问同一块缓存,在每个时钟周期(Clock Cycle),所有的输入输出端口可以同时读写,大大提高了交换单元的处理能力。但是,因为缓存读写周期(Memory access cycle)的限制,一个N进N出的交换单元可以线速处理的信元大小(cell length)和其链路的速率(link speed)存在如下关系:在主频为400MHz双端口读写处理,link speed为10Gbps,满足纯64Byte信元线速的条件下,N<=20,即交换芯片的芯片之间的物理连接(Serdes)个数不超过20根,这显然大大限制了交换单元芯片的物理连接数目。
将交换单元完全地从物理上分割成几个部分是现有技术解决缓存读写周期限制的一个处理方法。例如,一个128个Serdes的交换单元,根据缓存读写周期、链路处理速率、信元大小和链路个数的制约关系,确定链路数目限制,然后就将交换单元分成多个小单元,分别独立地进行数据交换处理。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有技术并不是从本质上解决问题,而是采用独立的小单元来拼凑而成交换单元,所有的小单元都完全一样,从资源利用和单元拼接处理上都不利于系统的扩展;而且,因为数据信元被需要分发到不同的小单元,还增加了分发均流和重排的代价,还可能因分发不均匀而导致性能下降。
发明内容
本发明实施例提供一种交换单元芯片、路由器及信元信息的发送方法,以满足互联网更高流量的交换需求。
本发明实施例提供一种交换单元芯片,包括:
具有多个输入端口的信元输入模块,用于缓存通过各输入端口接收到的信元信息,根据对应分配规则对缓存的信元信息中的数据信元进行分配,并根据分配结果将从缓存中读取的数据信元发送给队列引擎模块;
所述队列引擎模块与所述信元输入模块连接,其包括多个独立的数据队列引擎子模块,各数据队列引擎子模块用于接收所述信元输入模块根据所述对应分配规则所发送的数据信元,并将所述数据信元存储在所述数据队列引擎子模块中对应的队列中;
具有多个输出端口的信元输出模块,用于根据调度规则对多个数据队列引擎子模块中所存储的数据信元进行调度,并通过对应的所述输出端口向外发送。
本发明实施例提供一种路由器,包括本发明各实施例所提供的交换单元芯片。
本发明实施例还提供一种信元信息的发送方法,包括:
交换单元芯片中的、具有多个输入端口的信元输入模块缓存通过各输入端口接收到的信元信息,根据对应分配规则对缓存的信元信息中的数据信元进行分配,并根据分配结果将从缓存中读取的数据信元发送给交换单元芯片中的队列引擎模块;所述队列引擎模块与所述队列引擎模块连接,并包括多个独立的数据队列引擎子模块;
所述交换单元芯片中的各数据队列引擎子模块接收所述信元输入模块根据所述对应分配规则所发送的数据信元,并将所述数据信元存储在所述数据队列引擎子模块中对应的队列中;
所述交换单元芯片中的、具有多个输出端口的信元输出模块根据调度规则对多个数据队列引擎子模块中所存储的数据信元进行调度,并通过对应的所述输出端口向外发送。
本发明实施例提供的交换单元芯片、路由器及信元信息的发送方法中,通过将芯片分为若干个独立的数据处理单元,并通过采用性能良好的数据信元分发算法,保证不同的数据处理单元的队列状态一致性,能够满足互联网的更高流量交换需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例交换单元芯片结构示意图;
图2为本发明实施例交换单元芯片的结构模块示意图;
图3为本发明实施中信元输入模块的结构示意图;
图4为本发明实施例中交换单元芯片中IQ信元的读取示意图;
图5为本发明实施例中数据表示意图;
图6为本发明实施例分发算法实施过程中的信息矩阵表示意图;
图7为本发明实施例分发算法实施过程中的QE选择一示意图;
图8为本发明实施例分发算法实施过程中的QE选择另一示意图;
图9为本发明实施例分发算法实施过程中更新数据表一示意图;
图10为本发明实施例分发算法实施过程中更新数据表另一示意图;
图11为本发明实施例分发算法实施过程中更新数据表再一示意图;
图12为本发明实施例QE的队列调度示意图;
图13为本发明实施例OQ Group与QE的配合轮询示意图;
图14为本发明实施例采用交换单元芯片的三级交换网系统示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例针对现有技术中采用独立的小单元来拼凑交换单元,从资源利用和单元拼接处理上不利于系统的扩展,以及因为数据信元被需要分发到不同的小单元,增加了分发均流和重排的代价甚至导致性能下降等缺陷,提供一种解决方案即在本发明实施例交换结构的交换单元的设计中,将芯片分为若干个独立的数据处理单元,并通过采用性能良好的数据信元分发算法,保证不同的数据处理单元的状态一致性,以满足未来互联网的更高流量交换需求。本发明各实施例中交换单元芯片所采用8QE的数据分发算法还可以应用于流分类的领域。
图1为本发明实施例交换单元芯片结构示意图,如图1所示,该交换单元芯片包括信元输入模块1、队列引擎模块2和信元输出模块3;其中,信元输入模块1具有多个输入端口,交换单元芯片通过多个输入端口接收上行芯片发送的信元信息,信元输入模块1用于缓存通过各输入端口接收到的信元信息,根据预先设置的对应分配规则对缓存的信元信息中的数据信元进行分配,并根据分配结果将从缓存中读取的数据信元发送给队列引擎模块2。队列引擎模块2与信元输入模块1连接,队列引擎模块2中包括多个数据队列引擎子模块21,各数据队列引擎子模块21相互独立,且用于接收信元输入模块1根据对应分配规则所发送的数据信元,并将接收到的数据信元存储在数据队列引擎子模块21中对应的队列中。信元输出模块3具有多个输出端口,用于根据设置的调度规则对多个数据队列引擎子模块21中所存储的数据信元进行调度,并通过对应的输出端口向外发送。
具体地,本发明实施例中交换单元芯片中的信元输入模块1通过其上的输入端口接收数据信元,缓存在其内的输入队列(Input Queue;简称:IQ)中;在每个时钟周期(Clock Cycle)内,根据预设的分发算法对待分发的数据信元进行分配以确定分配给队列引擎模块2中的哪一个数据队列引擎子模块21,并根据分配结果将数据信元发送给对应的数据队列引擎子模块21。本实施例中所采用的分发算法需要保证不同的数据队列引擎子模块21的队列状态一致。数据队列引擎子模块21接收数据信元后,按照分配结果将数据信元存储在数据队列引擎子模块21内所包括的对应的队列中;本实施例中各个数据队列引擎子模块21内部队列设计相同,均包括多个单播队列和多个多播队列。信元输出模块3在每个Clock Cycle内根据调度规则将存储在各数据队列引擎子模块21内的数据信元调度出队,向外发送给下级芯片实现信元的交换。
本发明实施例提供的交换单元芯片中,队列引擎模块2还可以包括控制队列引擎子模块22用于接收信元输入模块1通过各输入端口接收到的信元信息中的控制信元,并发送给信元输出模块3。队列引擎模块2通过其中的数据队列引擎子模块21存储信元输入模块1接收到的数据信元,通过其中的控制队列引擎子模块22存储信元输入模块1接收到的控制信元,以实现交换单元芯片内部信元交换的控制。
图2为本发明实施例交换单元芯片的结构模块示意图,图3为本发明实施中信元输入模块的结构示意图,该交换单元芯片以输入端口和输出端口的数量分别为128个,数据队列引擎子模块的数量为8个为例进行详细介绍。如图2和图3所示,其中RX port0~RX port127表示128个输入端口,TXport0~TX port127表示128个输出端口,QE0~QE7表示8个数据队列引擎子模块。具体地,
在本发明实施例交换结构的交换单元芯片设计中,芯片的Serdes个数为128根,基于共享内存的处理公式制约,芯片分为8个独立的处理单元,称为数据QE(Queue Engine),这8个数据QE(即为数据队列引擎子模块)用于处理数据信元。如图3所示,信元输入模块包括信元接收单元(RX PortsArbiter)用于通过各输入端口接收信元信息,并缓存信元信息;信元对应单元(Cells 2QE Arbiter)用于根据对应分配规则,建立信元接收单元缓存的信元信息中的数据信元与数据QE的对应分配关系。信元发送单元(Cells DataMUXs array)用于根据信元对应单元建立的对应分配关系,将从缓存中读取到的数据信元发送给队列引擎模块中对应的数据QE。具体地,RX PortsArbiter单元将数据信元送给Cells 2QE Arbiter单元,此单元通过预设的分发算法来决定数据信元被送往哪个数据QE中,然后数据信元被Cells DataMUXs array单元送到对应的QE中。
在本发明实施例的交换单元芯片中,可以包括一专门处理控制信元(如:Request/Grant,BP)的控制队列引擎子模块,称为控制QE,其负责转发上下行线卡流量的调度信元(如:Request/Grant),以及下行线卡到上行线卡的流控信元(如:BP)。
在本发明实施例的交换单元芯片中,每个数据QE内采用完全相同的队列设计,例如每个数据QE内都有512个单播队列和256个多播队列,进入数据QE的数据信元将根据如下规则选择进入的队列(系统中每框有16个FIC,交换单元芯片中识别4种优先级):
4框及以下系统:单播信元-根据信元的目的FIC号和优先级入队;
多播信元-根据信元的源FIC号和优先级入队;
4框以上系统:单播信元-根据信元的目的框号和优先级入队;(在SE13模式下,目的地为本框FIC的信元仍旧按着框内FIC号和优先级入队;)多播信元-根据信元的源框号和优先级入队。
在本发明实施例的交换单元芯片中,控制队列引擎子模块即控制QE内建立了三种FIFO队列,包括第一先入先出队列、第二先入先出队列和第三先入先出队列,分别用于存放调度控制信元(Request/Grant),全局BP信元和队列BP信元,这三种FIFO队列之间也采用共享缓存的方式实现。
在本发明实施例的交换单元芯片中,每根链路都对应一个IQ和OQ队列,每个队列由三个FIFO组成,分别存放数据信元,Request/Grant信元和BP信元。
本发明实施例所提供的交换单元芯片中,各个数据队列引擎子模块是同一芯片内部的数据处理单元,与现有技术通过数量较少的芯片物理拼凑成一个交换单元是完全不同的,本发明实施例的交换单元芯片中,能够基于分发算法对数据信元在整个芯片内部各数据处理单元进行均匀分配,不会带来分发均流和重排的代价,并且不影响系统性能。
以下分别介绍本发明实施例交换单元芯片实现数据信元交换的处理过程。
图4为本发明实施例中交换单元芯片中IQ信元的读取示意图,如图4所示,在每个Clock Cycle,交换单元芯片通过其中的信元输入模块顺序地从128个IQ中按照顺序依次最多读取8个数据信元,例如在Clock Cycle0,从序号为0到7的IQ上读取信元,在Clock Cycle1,就从序号为8到15的IQ上读取信元,依次类推和循环。若缓存有控制信元,则还可以在该Clock Cycle内读取通过各输入端口接收到的信元信息中的控制信元,例如读取1个上下行线卡的调度控制信元(Request/Grant信元),和1个系统的流控信元(BP信元)。
下面介绍发明实施例交换单元芯片的数据QE的信元分发算法。
8个数据QE的数据结构是完全相同,由单播VOQ和多播MVIQ队列组成。进入数据QE的信元根据{单播/多播,优先级,目的地}进入相应的队列。由于这8个数据QE的结构和调度处理完全相同,所以期望它们里面的队列占用状态也是相似的,这样它们就可以处于相似的工作状态,否则,如果某些队列的占用状态在8个QE中严重不均衡,就会出现某个QE没有数据可调度,而某个QE中囤积了大量的数据来不及调度,造成信元在交换单元中的延迟和抖动很大,严重影响交换单元(Switch Element,SE)的调度性能。
其中,决定8个数据QE中信元分布状态的就是数据QE的分发算法。为了实现该分发算法,本发明实施例交换单元芯片中信元输入模块可以维护两张数据表,即一包括各QE中每个队列占用长度的信息表(以下称为:队列占用信息表)和一包括各QE的总缓存占用长度的信息表。图5为本发明实施例中数据表示意图,如图5所示,其中包括8个QE中每个队列的占用长度信息表和8个QE的总缓存占用信息表。其中,包括各数据队列引擎子模块中每个队列占用长度的信息表中记录的数值是各QE中各队列占用长度的相对差值。表1所表示的是队列QE0至QE7中各自的VOQ0队列中所存储的数据信元数量的差值,假设QE0、QE1、QE2、......、QE7中实际存储有数据信元数量分别为97、98、99和100个(也可以用Byte数值来表示信元的占用深度),则表中记录的是其之间的差值{0、1、2...3},这样操作所需要的比特数要比记录实际长度要小很多。
表1
QE0 | QE1 | QE2 | ...... | QE7 | |
VOQ0 | 0 | 1 | 2 | ...... | 3 |
本发明实施例中所述对应分配规则包括:根据上述的两个信息表,在各QE中为每个数据信元选择对应队列占用长度最小、且总缓存占用长度最小的QE。例如:VOQ 0在QE0和QE1中的队列长度都是30,QE0总的队列长度是100,QE1总的队列长度是90,则QE1被选中。这样就可以避免在相同的队列占用长度时,总是优先选择序号小的QE。
此分发算法的具体实施过程如下:
1、在每个Clock Cycle,信元输入模块会收到最多8个数据信元,因此从上述的队列占用信息表中获取相应的表项内容。这个步骤结束时,可以得到一个最大64(8QE×8VOQs)的信息矩阵表,如图6所示。
2、根据信元的映射VOQ在8个QE的占用信息,分发算法从第一个待分发信元开始逐一为其选择相应的QE,“第一个待分发的信元”采用简单轮询的方法来确定,例如在clock cycle N时顺序第一个待分发信元被设定为“第一个待分发的信元”,那么在clock cycle N+1时顺序第二个待分发信元被设定为“第一个待分发的信元”。分发算法根据信元映射VOQ的占用信息选择占用最小的QE。如果对应的QE已经在本Clock Cycle被选择了,就顺序选择VOQ占用次小的QE,如图7所示。
3、如果多个QE对于同一个VOQ占用具有相同的占用长度,那么就顺序选择总缓存占用最小的QE。如图8所示。
本实施例中,信元输入模块还用于在为各QE分发完数据信元,以及从各QE调度出数据信元后,更新上述两个信息表。
4、在每个Clock Cycle,完成所有数据信元的分发后,就需要更新队列占用信息表和QE的总占用信息表,如图9所示,如果当前Clock Cycle在QE3/4/6分别送入了1个相同VOQ的数据信元,表格信息就做相应的更新。
5、在每个Clock Cycle,数据信元从QE中调度出队后,也要对相应的信息表项内容进行修改。如图10所示,当QE4/7都调度了同一个VOQ的信元出队后的表项更新。
6、如果QE中调度出队的信元所在的队列正好是当前占用最小的,那么信元出队之后,此QE的队列占用仍保持为0,而其他的QE的对应信息相应加1。如图11所示,若QE3调度一个信元出队,表项内容做如图修改。
本发明实施例所提供的交换单元芯片,能够解决小包数据的线速调度问题,对于64Byte的信元可以做到在交换结构中的线速处理;在设计上利用VOQ队列结构,从原理上消除了单播流量的队头阻塞现象;通过采用性能良好的数据信元分发算法,保证了不同的数据QE的状态一致性。
图12为本发明实施例QE的队列调度示意图,如图12所示,本实施例中每个QE内的队列采用三级调度方式出队,包括:根据绝对优先原则或权重轮询原则(WRR方式)选择被调度对列的优先级;在具有所选择的优先级的队列中,根据单播/多播的权重轮询原则选择调度单播或是调度多播;采用简单轮询的方式选择本次可调度的输出队列,并将待调度的数据信元发送到该输出队列中。
具体地,首先,确定被调度队列的优先。如果是绝对优先原则即严格有限调度,就选择当前可以调度的最高的优先级作为本次调度的优先级;如果是WRR方式,则根据优先级的当前调度权重值选择。
其次,在确定的调度优先级队列中,确定本次调度的单多播类型,根据单播和多播的调度权重值,选择调度单播或者是调度多播。
然后,可能存在多个待调度的队列,这些待调度的队列中的信元对应了多个输出队列(OQ)出口,采用简单轮询的方式选择一个OQ,并确定此OQ所对应的待调度队列。
最后,将待调度队列中的信元送到选择的OQ中,并修改相应的调度参数(此处的调度参数指的是调度器的相关参数(比如对OQ进行简单轮询的信息记录,待调度队列的状态(是否还有信元)等等),而之前8QE分发的数据表内容是在信元进入和调度其所在队列后做相应修改。8个QE中的数据表和调度器的相关参数本别是不同的内容),完成本次队列调度。
以下介绍本发明实施例所提供的交换单元芯片中的OQ Group设计。将128根Serdes对应的OQ(Output Queue)分成8组,即OQ Group,每组中的16个Serdes链;接下一级的不同芯片,每个OQ Group通过下面的映射方法进行配置:
如果下级芯片个数不大于16个,每个OQ Group连接所有的下级芯片;
如果下级芯片个数超过16个,就通过奇偶或其他方式分平面映射,例如,SE2的个数为32个时,SE1芯片的Group0/2就连接ID号为偶数的SE2,SE1的Group1/3就连接ID号为奇数的SE2。
以下介绍本发明实施例所提供的交换单元芯片中OQ Group与QE的配合。为了避免调度多个信元到同一个OQ中,在任意clock cycle,每个数据QE都对应一个OQ Group,即此QE的数据只能调度到对应的OQ Group内的OQ中,例如可以采用图13所示的方式进行轮询。
图14为本发明实施例采用交换单元芯片的三级交换网系统示意图,如图14所示,图中所示的三级交换网系统采用了上述各实施例所提的交换单元架构设计,即SE13(图中从逻辑上分为了SE1和SE3)和SE2为本发明所提交换单元芯片。数据信元在每个交换单元芯片中从IQ取出后被分发到不同的数据QE中,在数据QE中进入对应VOQ/MVIQ,最后由队列调度将数据信元调度到对应的OQ中。控制信元在每个交换单元芯片中从IQ取出后送入控制QE中,然后根据流控信元的优先级进行调度,被送入对应的OQ中。
本发明实施例还提供一种路由器,其中所用的交换单元芯片可以采用上述各实施例所提供的交换单元芯片,其结构和功能此处不再赘述。本发明实施例提供的交换单元芯片同样适用于单级和背靠背交换网结构。
本发明实施例提供的交换单元芯片和路由器,从设计上保证了64Byte小包在交换单元芯片中的线速处理;从设计上优化了队列的调度过程,在检查队列的可调度性的同时也确定了其OQ号,将队列的可调度性检查和调度融为一体,只需要对OQ进行简单轮询调度即可;而且从设计上消除了单播的队列头阻塞(Head of Line blocking;HOL)。
本发明实施例还提供一种信元信息的发送方法,包括如下步骤:
交换单元芯片中的、具有多个输入端口的信元输入模块缓存通过各输入端口接收到的信元信息,根据对应分配规则对缓存的信元信息中的数据信元进行分配,并根据分配结果将从缓存中读取的数据信元发送给交换单元芯片中的队列引擎模块;所述队列引擎模块与所述队列引擎模块连接,并包括多个独立的数据队列引擎子模块;
所述交换单元芯片中的各数据队列引擎子模块接收所述信元输入模块根据所述对应分配规则所发送的数据信元,并将所述数据信元存储在所述数据队列引擎子模块中对应的队列中;
所述交换单元芯片中的、具有多个输出端口的信元输出模块根据调度规则对多个数据队列引擎子模块中所存储的数据信元进行调度,并通过对应的所述输出端口向外发送。
进一步地,本实施例提供的信元信息的发送方法中还可以进一步包括:所述队列引擎模块中包括的控制队列引擎子模块接收所述信元输入模块通过各输入端口接收到的信元信息中的控制信元,并发送给所述信元输出模块的步骤。
本实施例提供的信元信息的发送方法中所涉及的交换单元芯片可以采用上述各交换单元芯片实施例所提供的交换单元芯片,其结构和功能可以参见上述实施例,此处不再赘述。本实施例提供的信元信息的发送方法中所包括各操作步骤也可以参见上述各实施例中提及的处理步骤,此处也不再赘述。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (19)
1.一种交换单元芯片,其特征在于,包括:
具有多个输入端口的信元输入模块,用于缓存通过各输入端口接收到的信元信息,根据对应分配规则对缓存的信元信息中的数据信元进行分配,并根据分配结果将从缓存中读取的数据信元发送给队列引擎模块;
所述队列引擎模块与所述信元输入模块连接,其包括多个独立的数据队列引擎子模块,各数据队列引擎子模块用于接收所述信元输入模块根据所述对应分配规则所发送的数据信元,并将所述数据信元存储在所述数据队列引擎子模块中对应的队列中;
具有多个输出端口的信元输出模块,用于根据调度规则对多个数据队列引擎子模块中所存储的数据信元进行调度,并通过对应的所述输出端口向外发送。
2.根据权利要求1所述的交换单元芯片,其特征在于,所述队列引擎模块还包括:
控制队列引擎子模块,用于接收所述信元输入模块通过各输入端口接收到的信元信息中的控制信元,并发送给所述信元输出模块。
3.根据权利要求1或2所述的交换单元芯片,其特征在于,所述信元输入模块包括:
信元接收单元,用于通过各输入端口接收所述信元信息,并缓存所述信元信息;
信元对应单元,用于根据所述对应分配规则,建立所述信元接收单元缓存的信元信息中的数据信元与所述队列引擎模块中数据队列引擎子模块的对应分配关系;
信元发送单元,用于根据所述信元对应单元建立的所述对应分配关系,将从缓存中读取到的所述数据信元发送给所述队列引擎模块中对应的数据队列引擎子模块。
4.根据权利要求2所述的交换单元芯片,其特征在于,所述控制队列引擎子模块包括:
第一先入先出队列,用于存储所述控制信元中的调度控制信元;
第二先入先出队列,用于存储所述控制信元中的全局流控信元;
第三先入先出队列,用于存储所述控制信元中的队列流控信元。
5.根据权利要求1或2或4所述的交换单元芯片,其特征在于,各所述数据队列引擎子模块均包括多个单播队列和多个多播队列。
6.根据权利要求5所述的交换单元芯片,其特征在于,所述输入端口和输出端口的数量分别为128个,所述数据队列引擎子模块的数量为8个;所述数据队列引擎子模块中包括512个单播队列和256个多播队列。
7.根据权利要求1或2或4所述的交换单元芯片,其特征在于,所述信元输入模块还用于在每个时钟周期内,从缓存的多个数据信元中按照顺序依次读取其中的8个数据信元。
8.根据权利要求7所述的交换单元芯片,其特征在于,所述信元输入模块还用于在每个时钟周期内,读取通过各输入端口接收到的信元信息中的控制信元。
9.根据权利要求1或2或4所述的交换单元芯片,其特征在于,所述信元输入模块还维护有一包括各数据队列引擎子模块中每个队列占用长度的信息表和一包括各数据队列引擎子模块的总缓存占用长度的信息表。
10.根据权利要求9所述的交换单元芯片,其特征在于,所述包括各数据队列引擎子模块中每个队列占用长度的信息表中记录的数值是各数据队列引擎子模块中各队列占用长度的相对差值。
11.根据权利要求9所述的交换单元芯片,其特征在于,所述对应分配规则包括:
根据两个所述信息表,在各数据队列引擎子模块中,为每个数据信元选择对应队列占用长度最小、且总缓存占用长度最小的数据队列引擎子模块。
12.根据权利要求11所述的交换单元芯片,其特征在于,所述对应分配规则还包括:
若在同一时钟周期内,根据所述对应分配规则所确定的数据队列引擎子模块已经被选择过,则顺序选择对应队列占用长度次小的数据队列引擎子模块。
13.根据权利要求9所述的交换单元芯片,其特征在于,所述信元输入模块还用于在为各数据队列引擎子模块分发完数据信元,以及从各数据队列引擎子模块调度出数据信元后,更新包括各数据队列引擎子模块中每个队列占用长度的信息表和包括各数据队列引擎子模块的总缓存占用长度的信息表。
14.根据权利要求1或2或4所述的交换单元芯片,其特征在于,所述调度规则为采用三级调度方式出队,包括:
根据绝对优先原则或权重轮询原则选择被调度队列的优先级;
在具有所选择的优先级的队列中,根据单播/多播的权重轮询原则选择调度单播或是调度多播;
采用简单轮询的方式选择本次可调度的输出队列,并将待调度的数据信元发送到该输出队列中。
15.根据权利要求14所述的交换单元芯片,其特征在于,包括8组所述输出队列,每组输出队列通过如下映射方法进行配置:
若下级芯片的个数不大于16,则所述输出队列连接所有的下级芯片;
若下级芯片的个数大于16,则8组所述输出队列通过奇偶方式分平面映射。
16.根据权利要求14所述的交换单元芯片,其特征在于,在任一时钟周期内,每个数据队列引擎子模块仅对应一组输出队列。
17.一种路由器,其特征在于,包括如权利要求1至16任一所述的交换单元芯片。
18.一种信元信息的发送方法,其特征在于,包括:
交换单元芯片中的、具有多个输入端口的信元输入模块缓存通过各输入端口接收到的信元信息,根据对应分配规则对缓存的信元信息中的数据信元进行分配,并根据分配结果将从缓存中读取的数据信元发送给交换单元芯片中的队列引擎模块;所述队列引擎模块与所述信元输入模块连接,并包括多个独立的数据队列引擎子模块;
所述交换单元芯片中的各数据队列引擎子模块接收所述信元输入模块根据所述对应分配规则所发送的数据信元,并将所述数据信元存储在所述数据队列引擎子模块中对应的队列中;
所述交换单元芯片中的、具有多个输出端口的信元输出模块根据调度规则对多个数据队列引擎子模块中所存储的数据信元进行调度,并通过对应的所述输出端口向外发送。
19.根据权利要求18所述的信元信息的发送方法,其特征在于,还包括:所述队列引擎模块中包括的控制队列引擎子模块接收所述信元输入模块通过各输入端口接收到的信元信息中的控制信元,并发送给所述信元输出模块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110050100.1A CN102088412B (zh) | 2011-03-02 | 2011-03-02 | 交换单元芯片、路由器及信元信息的发送方法 |
PCT/CN2012/071845 WO2012116655A1 (zh) | 2011-03-02 | 2012-03-02 | 交换单元芯片、路由器及信元信息的发送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110050100.1A CN102088412B (zh) | 2011-03-02 | 2011-03-02 | 交换单元芯片、路由器及信元信息的发送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102088412A CN102088412A (zh) | 2011-06-08 |
CN102088412B true CN102088412B (zh) | 2014-09-03 |
Family
ID=44100031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110050100.1A Expired - Fee Related CN102088412B (zh) | 2011-03-02 | 2011-03-02 | 交换单元芯片、路由器及信元信息的发送方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102088412B (zh) |
WO (1) | WO2012116655A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10750023B2 (en) | 2008-01-28 | 2020-08-18 | Afiniti Europe Technologies Limited | Techniques for hybrid behavioral pairing in a contact center system |
CN102088412B (zh) * | 2011-03-02 | 2014-09-03 | 华为技术有限公司 | 交换单元芯片、路由器及信元信息的发送方法 |
KR20240005202A (ko) * | 2016-04-18 | 2024-01-11 | 아피니티, 엘티디. | 연락 센터 시스템에서 페어링 전략들을 벤치마킹하는 기술들 |
CN109391559B (zh) * | 2017-08-10 | 2022-10-18 | 华为技术有限公司 | 网络设备 |
CN109802896B (zh) | 2017-11-16 | 2022-04-22 | 华为技术有限公司 | 调度数据的方法和交换设备 |
US10686714B2 (en) * | 2018-04-27 | 2020-06-16 | Avago Technologies International Sales Pte. Limited | Traffic management for high-bandwidth switching |
CN110809033B (zh) * | 2019-10-23 | 2022-07-12 | 新华三信息安全技术有限公司 | 报文转发方法、装置及交换服务器 |
EP4084403B1 (en) * | 2020-01-21 | 2024-03-06 | Huawei Technologies Co., Ltd. | Switch element and switch apparatus |
CN111522643B (zh) * | 2020-04-22 | 2024-06-25 | 杭州迪普科技股份有限公司 | 基于fpga的多队列调度方法、装置、计算机设备及存储介质 |
CN113179226B (zh) * | 2021-03-31 | 2022-03-29 | 新华三信息安全技术有限公司 | 一种队列调度方法及装置 |
CN114257557B (zh) * | 2021-11-26 | 2023-04-11 | 中国科学院计算技术研究所 | 一种数据分组交换系统和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1452351A (zh) * | 2002-04-17 | 2003-10-29 | 华为技术有限公司 | 以太网交换芯片传输数据过程中缓存的管理和分配方法 |
CN101035067A (zh) * | 2007-01-25 | 2007-09-12 | 华为技术有限公司 | 一种基于输出队列的流控实现方法及装置 |
CN101567855A (zh) * | 2009-06-11 | 2009-10-28 | 杭州华三通信技术有限公司 | 分布式包交换系统和分布式包交换方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1594263A1 (en) * | 2004-05-04 | 2005-11-09 | Alcatel | Frame-to-cell traffic scheduling |
CN102088412B (zh) * | 2011-03-02 | 2014-09-03 | 华为技术有限公司 | 交换单元芯片、路由器及信元信息的发送方法 |
-
2011
- 2011-03-02 CN CN201110050100.1A patent/CN102088412B/zh not_active Expired - Fee Related
-
2012
- 2012-03-02 WO PCT/CN2012/071845 patent/WO2012116655A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1452351A (zh) * | 2002-04-17 | 2003-10-29 | 华为技术有限公司 | 以太网交换芯片传输数据过程中缓存的管理和分配方法 |
CN101035067A (zh) * | 2007-01-25 | 2007-09-12 | 华为技术有限公司 | 一种基于输出队列的流控实现方法及装置 |
CN101567855A (zh) * | 2009-06-11 | 2009-10-28 | 杭州华三通信技术有限公司 | 分布式包交换系统和分布式包交换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102088412A (zh) | 2011-06-08 |
WO2012116655A1 (zh) | 2012-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102088412B (zh) | 交换单元芯片、路由器及信元信息的发送方法 | |
Tamir et al. | High-performance multi-queue buffers for VLSI communications switches | |
CN101873253B (zh) | 带缓冲的纵横式交换机系统 | |
EP0606322B1 (en) | Broadband input buffered atm switch | |
CN110995598B (zh) | 一种变长报文数据处理方法和调度装置 | |
US9602436B2 (en) | Switching device | |
US7995472B2 (en) | Flexible network processor scheduler and data flow | |
CN101902390B (zh) | 一种单播和多播集成调度装置、交换系统及方法 | |
EP0200780A1 (en) | PROCESSING METHOD AND NxM SWITCHING NODE WITH MULTIPLE HANGING LINES AND SWITCHED PACKETS. | |
CN113110943B (zh) | 软件定义交换结构及基于该结构的数据交换方法 | |
EP3367622B1 (en) | Data processing apparatus | |
CN104641608A (zh) | 超低延时网络缓冲存储 | |
US10868769B1 (en) | Read instruction queues in a network device | |
US20040215903A1 (en) | System and method of maintaining high bandwidth requirement of a data pipe from low bandwidth memories | |
CN111611180B (zh) | 一种支持多协议的动态共享缓冲区 | |
CA2399186C (en) | Data transfer apparatus and data transfer method | |
US10846225B1 (en) | Buffer read optimizations in a network device | |
Leijten et al. | Stream communication between real-time tasks in a high-performance multiprocessor | |
JP4359490B2 (ja) | データ伝送方法 | |
US10742558B1 (en) | Traffic manager resource sharing | |
CN102170401B (zh) | 一种数据的处理方法和设备 | |
CN103827836A (zh) | 存储数据的方法和装置 | |
WO2024066545A1 (zh) | 多端口读写的缓存管理方法及装置 | |
Dai et al. | Microarchitecture of a Configurable High-Radix Router for the Post-Moore Era | |
JP5691419B2 (ja) | 要求転送装置及び要求転送方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140903 Termination date: 20190302 |
|
CF01 | Termination of patent right due to non-payment of annual fee |