CN117941373A - 交换装置、交换方法和交换设备 - Google Patents
交换装置、交换方法和交换设备 Download PDFInfo
- Publication number
- CN117941373A CN117941373A CN202180102244.9A CN202180102244A CN117941373A CN 117941373 A CN117941373 A CN 117941373A CN 202180102244 A CN202180102244 A CN 202180102244A CN 117941373 A CN117941373 A CN 117941373A
- Authority
- CN
- China
- Prior art keywords
- switching
- data
- interface
- blocks
- block
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000006870 function Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 20
- 238000010438 heat treatment Methods 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 29
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 230000017525 heat dissipation Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000000903 blocking effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种交换装置、交换方法和交换设备,涉及通信领域,用于防止交换装置发热不均匀。交换装置包括:多个交换块以及对应的输入输出端口;多个交换块用于通过对应的输入输出端口接收数据,转发至多个交换块中的、数据的目标交换块,以及,通过目标交换块对应的输入输出端口发送数据;多个交换块包括不是数据的目标交换块的第一交换块;多个交换块分成至少两组,每个交换块包括第一交换接口和第二交换接口,第一交换接口用于与同组的交换块交换数据,第二接口用于与不同组的交换块交换数据;交换装置还包括控制电路,用于:当第一交换块通过对应的输入输出端口或第二交换接口接收数据时,使得第一交换块选择第一交换接口转发数据。
Description
本申请涉及通信领域,尤其涉及一种交换装置、交换方法和交换设备。
在交换网络通信中,交换设备中的交换芯片常常要处理大量的数据包交换业务,交换芯片中各个电路的处理复杂度不同,使得各个电路的功耗(发热量)也不同,造成交换芯片局部区域的温度远高于其它区域,为交换芯片的供电设计和散热设计带来困难。
发明内容
本申请实施例提供一种交换装置、交换方法和交换设备,用于防止交换装置发热不均匀。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种交换装置,包括:多个交换块,以及,与多个交换块对应的多个输入输出端口;多个交换块用于通过对应的输入输出端口接收数据,将数据转发至多个交换块中的、数据的目标交换块,以及,通过目标交换块对应的输入输出端口发送数据;其中,多个交换块包括第一交换块,第一交换块不是数据的目标交换块;多个交换块被分成至少两组交换块,每个交换块包括第一交换接口和第二交换接口,第一交换接口用于与同组的交换块交换数据,第二接口用于与不同组的交换块交换数据;交换装置还包括控制电路,用于:当第一交换块通过对应的输入输出端口或第二交换接口接收数据时,控制第一交换块选择第一交换接口转发数据。
本申请实施例提供的交换装置,由于将交换块分成了至少两个组,组内交换块通过第一交换接口交换数据,组间交换块通过第二交换接口交换数据。对于通过第二交换接口接收的组间交换来的数据,或者,对于通过输入输出端口接收的从外部交换来的数据,交换块通过第一交换接口进行组内交换,实现同一组中各交换块的负载均衡并且功耗接近,避免了交换装置某些区域的温度远高于其他区域,降低了供电设计和散热设计的难度。
在一种可能的实施方式中,控制电路还用于:当第一交换块通过对应的输入输出端口或第二交换接口接收数据时,控制第一交换块同时选择第一交换接口和第二交换接口转发数据。对于通过第二交换接口接收的组间交换来的数据,或者,对于通过输入输出端口接收的从外部交换来的数据,交换块通过第一交换接口进行组内交换,并通过第二交换接口进行组间交换,实现同一组中各交换块的负载均衡并且功耗接近,不同组中各交换块也参与了数据交换并且功耗接近,避免了交换装置某些区域的温度远高于其他区域,降低了供电设计和散热设计的难度。
在一种可能的实施方式中,控制电路还用于:当第一交换块通过第一交换接口接收数据时,控制第一交换块选择第二交换接口或者对应的输入输出端口转发数据。对于通过第一交换接口接收的组内交换来的数据,交换块通过第二交换接口进行组间交 换,或者,通过输入输出端口直接转发出去,实现不同组中各交换块也参与了数据交换并且功耗接近,避免了交换装置某些区域的温度远高于其他区域,降低了供电设计和散热设计的难度。
在一种可能的实施方式中,交换块还包括交换电路,交换电路与对应的输入输出端口、第一交换接口和第二交换接口相耦合,交换电路用于通过第一交换接口和第二交换接口与其他交换块交换数据,以及,与对应的输入输出端口交换数据。交换电路既可以用于交换装置与外部设备通信,还可以用于与交换装置内各交换块之间的通信,可以使交换块的结构更紧凑。
在一种可能的实施方式中,交换块还包括耦合的交换电路和路由电路,交换电路与对应的输入输出端口相耦合,交换电路用于与路由电路和对应的输入输出端口交换数据,路由电路与第一交换接口和第二交换接口相耦合,路由电路用于通过第一交换接口和第二交换接口与其他交换块交换数据。交换电路用于交换装置与外部设备通信,路由电路用于与交换装置内各交换块之间的通信,实现了不同功能的电路相解耦,简化了软件和硬件设计。
在一种可能的实施方式中,目标交换块用于按照多个数据从多个交换块接收的顺序,通过对应的输入输出端口输出多个数据。原因在于:经过负载均衡后的数据会经过不同交换块交换给目标交换块,由于各个交换块的处理时延不同,可能造成数据后发先至的情况。是否需要做重排序或者重排序的难度,与所采用的负载均衡算法相关。
在一种可能的实施方式中,同一组交换块设置于不同裸片中。可以实现更多交换装置之间的耦合,可以方便扩大交换系统的规模,提高系统交换能力,并且跨裸片的交换块之间的通信方式与同一裸片中各交换块之间的通信方式一致,简化了软件和硬件设计。
在一种可能的实施方式中,不同组交换块设置于不同裸片中。可以实现更多交换装置之间的耦合,可以方便扩大交换系统的规模,提高系统交换能力,并且跨裸片的交换块之间的通信方式与同一裸片中各交换块之间的通信方式一致,简化了软件和硬件设计。
在一种可能的实施方式中,同一组交换块的第一交换接口通过扇出总线相耦合,不同组交换块的第二交换接口通过扇出总线相耦合。该连接方式使得任一交换块可以将载荷直接发送给耦合的另一交换块,而不必经过其他交换块转发。
在一种可能的实施方式中,交换装置为交换芯片。交换装置还可以为交换机、交换设备等。
在一种可能的实施方式中,交换块指具有数据交换功能的电路。
第二方面,提供了一种交换方法,应用于如第一方面及其任一实施方式所述的交换装置,该方法包括:当第一交换块通过对应的输入输出端口或第二交换接口接收数据时,控制第一交换块选择第一交换接口转发数据。
在一种可能的实施方式中,当第一交换块通过对应的输入输出端口或第二交换接口接收数据时,控制第一交换块选择第一交换接口转发数据,包括:当第一交换块通过对应的输入输出端口或第二交换接口接收数据时,控制第一交换块同时选择第一交换接口和第二交换接口转发数据。
在一种可能的实施方式中,还包括:当第一交换块通过第一交换接口接收数据时,控制第一交换块选择第二交换接口或者对应的输入输出端口转发数据。
第三方面,提供了一种交换设备,包括如第一方面任一项所述的交换装置以及与交换装置耦合的存储器,该交换装置为交换芯片。
第四方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,当指令被交换装置执行时使得交换装置执行如第二方面及其任一实施方式所述的方法。
第五方面,提供了一种包括指令的计算机程序产品,其特征在于,当指令被交换装置执行时使得交换装置执行如第二方面及其任一实施方式所述的方法。
第二方面至第五方面的技术效果参照第一方面及其任一实施方式的技术效果。
图1为本申请实施例提供的一种克洛斯架构的架构示意图;
图2为本申请实施例提供的一种脊叶架构的架构示意图;
图3为本申请实施例提供的一种交换网络中交换节点的架构示意图;
图4为本申请实施例提供的一种交换芯片的结构示意图;
图5为本申请实施例提供的一种交换装置的结构示意图;
图6为本申请实施例提供的另一种交换装置的结构示意图;
图7为本申请实施例提供的又一种交换装置的结构示意图;
图8为本申请实施例提供的一种交换块的结构示意图;
图9为本申请实施例提供的另一种交换块的结构示意图;
图10为本申请实施例提供的另一种交换网络中交换节点的架构示意图;
图11为本申请实施例提供的又一种交换网络中交换节点的架构示意图;
图12为本申请实施例提供的一种各交换块通过扇出总线连接的示意图;
图13为本申请实施例提供的一种交换方法的流程示意图;
图14为本申请实施例提供的再一种交换装置的结构示意图;
图15为本申请实施例提供的一种交换装置执行交换方法的示意图;
图16为本申请实施例提供的一种交换设备的结构示意图。
需要说明的是,本申请实施例涉及的术语“第一”、“第二”等仅用于区分同一类型特征的目的,不能理解为用于指示相对重要性、数量、顺序等。
本申请实施例涉及的术语“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例涉及的术语“耦合”、“连接”应做广义理解,例如,可以指物理上的直接连接,也可以指通过电子器件实现的间接连接,例如通过电阻、电感、电容或其他电子器件实现的连接。
首先对本申请涉及的一些概念进行描述:
克洛斯(Clos)架构:是一种描述多级电路交换网络的结构,如图1所示,包括 多个入口(ingress)节点11、多个中间节点12和多个出口(egress)节点13,入口节点11、中间节点12和出口节点13可以为交换机或交换芯片。每个入口节点11包括多个输入端口,每个出口节点13包括多个输出端口,每个入口节点11与每个中间节点12相连接(即全连接),每个中间节点12与每个出口节点13相连接(即全连接),该架构的优点是可以实现负荷平衡分配。
在实际产品中,数据流向并不是单向的。根据数据流向的不同,一个交换机或交换芯片可以同时作为交换网络中的入口节点和出口节点来使用,这就构成了脊叶(spine-leaf)架构。
脊叶架构:如图2所示,将克洛斯架构中入口节点11和出口节点13作为叶子(leaf)节点21,将中间节点12作为脊(spine)节点22可以得到脊叶架构,相对于克洛斯(Clos)架构的优点是可以提供更可靠的组网连接,任一节点故障都不会影响整个架构的运行,并且各个叶子节点21之间的交换效率更高,假设叶子节点21的数目为N(图2中为6),脊节点22的数目为M(图2中为3),则M个脊节点22可以实现NxN(图2中即为6x6)全交换,N为正整数。
叶子节点21与脊节点22之间的带宽可以大于、等于或小于叶子节点21的输入输出端口的带宽(对外带宽)。以图2为例,假设每个叶子节点21的输入输出端口的带宽为9.6Tbps,则每个叶子节点21可以通过3条3.2Tbps线路连接至各个脊节点22,此时,叶子节点21与脊节点22之间的带宽等于叶子节点21的输入输出端口的带宽;或者,每个叶子节点21可以通过3条1.6Tbps线路连接至各个脊节点22,此时,叶子节点21与脊节点22之间的带宽小于叶子节点21的输入输出端口的带宽,可以通过带宽收敛来降低成本;或者,每个叶子节点21可以通过3条4.8Tbps线路连接至各个脊节点22,此时,叶子节点21与脊节点22之间的带宽大于叶子节点21的输入输出端口的带宽,可以通过加速(speedup)来提高传输性能。
无阻塞交换:如果交换装置能够成功建立到任何空闲输出端口的任何路由请求,而不会干扰交换的其他数据,则称为无阻塞交换,该交换装置称为无阻塞交换装置。
如图3所示,交换网络中的每个交换节点(例如前文的叶子节点21、脊节点22)可以包括:第一媒体访问控制(media access control,MAC)31、入口(ingress)数据包处理(packet processing,PP)电路32、交换/流量管理(switch/traffic manager,SW/TM)电路33、出口(egress)PP电路34和第二MAC 35。第一MAC 31耦合多个输入(input)端口,第二MAC 35耦合多个输出(output)端口,第一MAC 31和第二MAC 35可以为相同MAC或不同MAC,输入端口和输出端口可以为相同端口或不同端口。
输入端口和输出端口用于提供与其他交换装置之间通信的高速接口,例如50Gbps的串行解串行(serializer/deserializer,SerDes)接口、光(optical)接口。
第一MAC 31和第二MAC 35用于提供标准的以太网(Ethernet)协议接口以根据以太网协议对数据包进行处理,例如进行数据校验、帧定界、收发等。
一路数据包的传输路径可以称为一条流水线(pipeline),图3中示例性的示出了两条流水线。每条流水线可以包括入口流水线(ingress pipeline)和出口流水线(egress pipeline),用于入口流水线的数据处理的电路为入口PP电路32,用于出口流水线的数据处理的电路为出口PP电路34。入口PP电路32用于对接收到的数据包(packet) 进行处理得到载荷(payload)以及包头中的数据,将载荷以及包头中的数据发送给SW/TM电路33,其中,对数据包进行处理包括对数据包进行协议解析(parser)得到载荷以及包头中的数据,通过查表(table lookup)来查找数据包的目的端口,以及,对包头中的数据进行编辑等。出口PP电路34用于对载荷和包头中的数据进行处理得到数据包,实现入口PP电路32所进行处理的逆过程,例如对包头中的数据进行编辑,根据包头中的数据对载荷进行重新封装得到数据包等。
入口PP电路32和出口PP电路34可以包括多级(multiple-stage)的匹配操作(match action,MA)电路,MA电路的级数越多,流水线支持的功能越复杂。入口PP电路32和出口PP电路34可以具有可编程能力(programmability),以实现其他功能。
SW/TM电路33中的TM功能用于按照数据包的包头中的数据(例如,传输控制协议/网际协议(transmission control protocol/internet protocol,TCP/IP)的五元组、目的端口等)将数据包中的载荷和包头中的数据加入队列(queue),并按一定的服务质量(quality of service,QoS)策略对这些队列进行调度。
SW/TM电路33中的SW功能用于将接收到的数据包中的载荷和包头中的数据写入缓存器(buffer),并根据TM功能的调度结果,将数据包中的载荷和包头中的数据交换到目的输出端口。
如图4所示,提供了一种基于图3所示架构的交换芯片,该交换芯片40呈现星型结构,交换芯片40按照数据流向依次包括输入输出端口41、MAC 42、PP电路43以及SW/TM电路44。输入输出端口41用于实现图3中输入端口和输出端口的功能,MAC 42用于实现图3中的第一MAC 31和第二MAC 35的功能,PP电路43用于实现图3中入口PP电路32和出口PP电路34的功能,SW/TM电路44用于实现图3中SW/TM电路33的功能。
上述交换芯片的布局(layout)是基于数据包的处理流程形成的:即数据包从输入输出端口41输入后,由MAC 42根据以太网协议对数据包进行处理,由PP电路43中的上行PP电路对数据包进行处理得到载荷以及包头中的数据,并发送给SW/TM电路44来进行调度和交换;交换后的载荷以及包头中的数据再由PP电路43中的下行PP电路进行处理,重新封装得到数据包,由MAC 42将数据包通过输入输出端口41发送出去。
从中可以看出,这种交换芯片存在以下问题:
可实现性差:各个电路往往独立开发,然后再集成,这就造成交换芯片的顶层设计(例如各个电路的布局以及相互之间的连线等)困难。并且由于各个电路的处理复杂度不同,使得各个电路的功耗也不同,造成交换芯片局部区域的温度远高于其它区域,为供电设计和散热设计带来困难。
时延大:所有输入输出端口41之间交换的数据包,都需要依次通过MAC 42、PP电路43传输到芯片最内侧的SW/TM电路44,再依次通过PP电路43、MAC 42传输出去。也就是说,即使是某个输入输出端口41自发自收的数据包,也需要经过这样的转发才能完成,使得任意输入输出端口之间的交换时延都很长。
可扩展性不好:当需要两个及以上的交换芯片通过互连来扩展功能的时候,还需要定义交换芯片间的通信协议,用于协调不同交换芯片中各电路的功能。
本申请实施例提供了一种交换装置,该交换装置可以是交换芯片、交换机、交换设备等。如图5所示,该交换装置50包括:多个交换块51、与多个交换块51分别相耦合的(或称对应的)多个输入输出端口52,以及,控制电路55,其中,交换块指具有数据交换功能的电路。多个交换块51可以通过对应的输入输出端口52接收数据(一个或多个),将数据转发至多个交换块51中的、该数据的目标交换块,以及,通过目标交换块对应的输入输出端口52将数据出去。控制电路55用于控制交换块51转发数据,控制电路55可以位于交换装置50中或者可以位于每个交换块51中。
多个交换块51被分成至少两组交换块。示例性的,假设交换装置50中包括M*N个交换块51,这些交换块51可以按照M行N列布置,M、N为正整数,例如图5中M=N=3。可以将一行交换块51作为一组交换块51,则一列交换块51为不同组的交换块51,或者,可以将一列交换块51作为一组交换块51,则一行交换块51为不同组的交换块51。同一组的交换块51通过第一总线53相耦合,不同组的交换块51通过第二总线54相耦合。
以该交换装置为交换芯片为例,多个交换块51可以设置在同一个裸片(die)上,多个输入输出端口52可以设置在裸片外围并与多个交换块51相耦合。随着技术发展,例如采用三维(3 dimension,3D)堆叠技术,多个交换块51也可以设置在多个裸片上。如图6所示,同一组交换块可以设置在处于不同裸片的交换装置50中,位于不同裸片的交换装置50中的交换块51之间可以通过第一总线53相耦合。如图7所示,不同组交换块(例如后文涉及的第一组交换块和第二组交换块)可以设置在不同裸片的交换装置50中,位于不同裸片的交换装置50中的交换块51之间可以通过第二总线54相耦合。需要说明的是,也可以将图6和图7中的耦合方式相结合,实现更多交换装置50之间的耦合,可以方便扩大交换系统的规模,提高系统交换能力,并且跨裸片的交换块51之间的通信方式与同一裸片中各交换块51之间的通信方式一致,简化了软件和硬件设计。
如图8所示,每个交换块51至少包括SW电路514、多个第一交换接口517和多个第二交换接口518,以实现数据交换功能。交换块51还可以包括MAC 511、PP电路512、TM电路513、缓存器515。第一交换接口517耦合至第一总线53,用于与同组的交换块51交换数据;第二交换接口518耦合至第二总线54,用于与不同组的交换块51交换数据。可选的,如图9所示,每个交换块51还包括路由电路516。
需要说明的是,每个交换块51除了包括SW电路514以外,可以包括MAC 511、PP电路512、TM电路513中的部分或全部电路,其余电路可以设置在交换块51的外围,例如,每个交换块51可以包括PP电路512、TM电路513、SW电路514,而MAC 511可以设置在交换块51的外围。另外,每个交换块51还可以包括更多电路以实现更多功能,例如可以包括支持统计、计算、数据处理、可视化(telemetry)以及在网计算(in network computing)等功能的电路。
输入输出端口52用于实现图3中输入端口和输出端口的功能,MAC 511用于实现图3中的第一MAC 31和第二MAC 35的功能,PP电路512用于实现图3中入口PP电路32和出口PP电路34的功能,TM电路513用于实现图3中SW/TM电路33的TM功能,SW电路514用于实现图3中SW/TM电路33的SW功能。需要说明的 是,TM电路513和SW电路514也可以合设为SW/TM电路。
对于每个交换块51来说,MAC 511耦合至输入输出端口52,MAC 511还耦合至PP电路512,PP电路512还耦合至TM电路513和SW电路514,SW电路514还耦合至缓存器515,其中,缓存器515用于缓存数据包中的载荷,也就是说,输入输出端口52通过MAC 511、PP电路512耦合至SW电路514。在图8中,SW电路514还可以耦合至多个第一交换接口517和多个第二交换接口518,SW电路514不仅可以与对应的输入输出端口52交换数据,还可以通过多个第一交换接口517和多个第二交换接口518与其他交换块51交换数据。在图9中,路由电路516耦合至多个第一交换接口517和多个第二交换接口518,SW电路514通过路由电路516耦合至多个第一交换接口517和多个第二交换接口518,此时,SW电路514用于与路由电路516以及对应的输入输出端口52交换数据,路由电路516用于通过多个第一交换接口517和多个第二交换接口518与其他交换块51交换数据。
在图3所示的交换节点的基础上,图8所示的交换装置可以对应图10所示的交换节点,图9所示的交换装置可以对应图11所示的交换节点。假设该交换装置的输入输出端口的带宽为51.2Tbps,并且包括4行4列(共16个)的交换块,则每个交换块所耦合的输入输出端口的带宽为51.2/16=3.2Tbps,图10和图11中,每个交换块可以包括两条流水线(pipeline),每条流水线用于处理1.6Tbps的数据包,并对上行PP和下行PP进行了区分。另外,每个交换块还可以采用其他架构,例如采用一条3.2Tbps的流水线,不区分上行PP和下行PP等。
图10中的SW/TM电路33(对应TM电路513和SW电路514)除了提供与输入输出端口之间数据转发功能以外,还可以通过第一交换接口517和第二交换接口518提供各个交换块51之间的数据转发功能。此时,第一交换接口517的带宽以及第二交换接口518的带宽可以大于、小于或等于SW/TM电路33所耦合的输入输出端口的带宽。
图11中的SW/TM电路33(对应TM电路513和SW电路514)除了提供与输入输出端口之间数据转发功能以外,还通过路由电路516以及耦合的第一交换接口517和第二交换接口518来提供各个交换块51之间的数据转发功能。此时,SW/TM电路33与路由电路516之间的带宽、第一交换接口517的带宽以及第二交换接口518的带宽,可以大于、小于或等于SW/TM电路33所耦合的输入输出端口的带宽。相同(例如均为3.2Tbps),以保证各个交换块之间的数据包转发无阻塞。
交换块51(例如交换块51的缓存器515)中存储有交换表,控制电路55可以修改交换表中的每个表项,从而控制交换块51执行本申请实施例提供的交换方法以将接收的数据进行转发。交换表中的表项用于指示数据的目的端口与第一交换接口517、第二交换接口518或者该交换块51耦合的输入输出端口52之间的映射关系,以便交换块51中的SW电路514或路由电路516根据接收的数据的目的端口以及该映射关系即可以确定向第一交换接口517、第二交换接口518或对应的输入输出端口52转发该数据。
例如,对于不是数据的目标交换块的某一交换块51来说,当该交换块51通过对应的输入输出端口52或第二交换接口518接收数据时,该交换块51可以根据交换表 选择第一交换接口517转发数据。也就是说,对于通过第二交换接口518接收的组间交换来的数据,或者,对于通过输入输出端口52接收的从外部交换来的数据,交换块51通过第一交换接口517进行组内交换,实现同一组中各交换块51的负载均衡并且功耗接近,避免了交换装置某些区域的温度远高于其他区域,降低了供电设计和散热设计的难度。
再例如,当该交换块51通过对应的输入输出端口52或第二交换接口518接收数据时,该交换块51可以根据交换表同时选择第一交换接口517和第二交换接口518转发数据。也就是说,对于通过第二交换接口518接收的组间交换来的数据,或者,对于通过输入输出端口52接收的从外部交换来的数据,交换块51通过第一交换接口517进行组内交换,并通过第二交换接口518进行组间交换,实现同一组中各交换块51的负载均衡并且功耗接近,不同组中各交换块51也参与了数据交换并且功耗接近,避免了交换装置某些区域的温度远高于其他区域,降低了供电设计和散热设计的难度。
再例如,当该交换块51通过第一交换接口517接收数据时,该交换块51可以根据交换表选择第二交换接口518或者对应的输入输出端口52转发数据。也就是说,对于通过第一交换接口517接收的组内交换来的数据,交换块51通过第二交换接口518进行组间交换,或者,通过输入输出端口52直接转发出去,实现不同组中各交换块51也参与了数据交换并且功耗接近,避免了交换装置某些区域的温度远高于其他区域,降低了供电设计和散热设计的难度。
下面介绍各个交换块之间的耦合方式以及数据交换方式。
各个交换块51之间的第一总线53和第二总线54可以统称为块间总线(inter-block bus,IBB)。块间总线也可以用于各个交换块51与输入输出端口52之间的连接。
对于任意一组(例如任意一行)的N个交换块51,任一交换块51的SW电路514通过多个第一交换接口517分别耦合至其余N-1个交换模块(的第一交换接口517),即同一组交换块51的第一交换接口517相耦合。对于不同组(例如任意一列)的M个交换块51,任一交换块51的SW电路514通过多个第二交换接口518分别耦合至其余M-1个交换块51(的第二交换接口518),即不同组交换块51的第二交换接口518相耦合。也就是说,同一组的N个交换块51,两两之间通过第一交换接口517相耦合,不同组的M个交换块51,两两之间通过第二交换接口518相耦合,以实现各个交换块51之间无阻塞地传输数据包。
交换块之间数据包传输具有方向性,对于同一组的三个交换块51来说,每个交换块51的第一交换接口517与同一组的其余两个交换块51的第一交换接口517通过第一总线53相耦合;对于不同组的三个交换块51来说,每个交换块51的第二交换接口518与其余两个交换块51的第二交换接口518通过第二总线54相耦合。第一总线53和第二总线54可以称为扇出(fanout)总线,则图12中的第一总线53和第二总线54为1转2扇出总线。该连接方式使得任一交换块51可以将载荷直接发送给耦合的另一交换块51。
第一总线53和第二总线54还可以采用其他连接方式,例如,由交换块a1发送给交换块c1的数据包可以先经由交换块b1转发。或者,可以采用独立于各个交换块的交叉开关矩阵(crossbar)实现数据包在各个交换块之间的交换。本申请不限定各交换 块51之间的连接方式。
源交换块51在向目标交换块51交换数据包之前可以从目标交换块51请求授权,当目标交换块51所耦合的输入输出端口阻塞时,目标交换块51可以拒绝授权,则源交换块51暂时不会向目标交换块51交换数据包,从而降低新来数据包对目标交换块51中的缓存器515的缓存压力。
另外,源交换块51中的PP电路34在完成上行数据包处理后,可以产生元(meta)数据,并发送给目标交换块51中的PP电路34,由目标交换块51中的PP电路34根据元(meta)数据对下行数据包进行进一步处理。
各交换块51之间的请求授权通信、以及各交换块51中的PP电路34之间传输元数据,都可以与载荷的传输共享总线,或者,可以独立于传输载荷的总线。也就是说,第一总线53和第二总线54总线可以包括不同类型的总线,例如,一些总线用于载荷传输,一些总线用于元数据传输,一些总线用于请求授权通信。
下面示例性地通过图13所示的交换方法来说明上述交换装置转发数据的过程。如图13所示,本申请实施例提供的交换装置执行的交换方法包括:
S101、第一组交换块中的源交换块通过多个输入输出端口中的第一输入输出端口输入多个数据。
多个数据可以包括多个数据包中的包头的数据以及多个数据包中的载荷。
本申请实施例中,上述交换装置中的各个交换块51可以实现图2中的脊叶架构。如图14所示(省略了交换块51与输入输出端口52之间的总线),对于一个包括6*3个交换块51的交换装置来说,可以将每一组的三个交换块51在逻辑上作为图2中一个叶子节点21,将不同组的六个交换块51在逻辑上作为图2中一个脊节点22,从而实现图2中具有三个脊节点六个叶子节点的脊叶架构,则可以称为分布式脊叶(distributed spine leaf,DSL)架构,每个交换块51既属于叶子节点又属于脊节点。另外,可以将一组或多组的交换块51在逻辑上作为图2中一个叶子节点21,将更多不同组的交换块51在逻辑上作为图2中的一个脊节点22。本申请对叶子节点或脊节点与交换块51之间的对应关系不作限定。
示例性的,如图15所示,假设将一行(一个叶子节点21中的)交换块51作为一组交换块,第一组交换块包括交换块a1、交换块b1和交换块c1,其中,交换块a1为源交换块51。交换块a1通过与交换块a1耦合的第一输入输出端口52输入多个第一数据包,多个第一数据包中包括载荷以及包头的数据,所述多个数据即包括多个第一数据包中的载荷以及包头的数据。交换块a1中的MAC电路511根据以太网协议对多个第一数据包进行处理,交换块a1中的PP电路512对多个第一数据包进行处理得到多个第一数据包中的载荷以及包头中的数据,并发送给交换块a1中的TM电路513和SW电路514。交换块a1中的TM电路513按照多个第一数据包的包头中的数据将多个第一数据包中的载荷和包头中的数据加入队列,并按一定的QoS策略对这些队列进行调度。
S102、源交换块通过第一交换接口将多个数据在第一组交换块中分发。
示例性的,如图15所示,交换块a1中的SW电路514将多个第一数据包中的载荷和包头中的数据写入缓存器515,并根据TM电路513的调度结果,通过第一交换 接口517将多个第一数据包中的载荷以及包头中的数据分发给第一组交换块a1、b1、c1中的SW电路514,例如,假设多个第一数据包为数据包A、数据包B和数据包C,交换块a1中的SW电路514得到数据包A中的载荷以及包头中的数据,交换块b1中的SW电路514得到数据包B中的载荷以及包头中的数据,交换块c1中的SW电路514得到数据包C中的载荷以及包头中的数据。可以实现在不同脊节点22之间的负载均衡(load balancing,LB)。
负载均衡的具体算法有很多,例如以轮询(round-robin)方式轮流将多个数据交换给同一组交换块中的不同交换块51,或者,根据数据包的包头中的数据(例如源端口、目的端口等信息)将多个数据交换给同一组交换块中的不同交换块51。另外,负载均衡时还可以根据各个脊节点22的负载对策略进行调整。
S103、第一组交换块通过第二交换接口将多个数据交换给第二组交换块。
示例性的,如图15所示,假设第二组交换块包括交换块a3、交换块b3和交换块c3。交换块a1中的SW电路514根据数据包A中的包头的目的端口,通过第二交换接口518将数据包A中的载荷以及包头中的数据交换给交换块a3中的SW电路514;交换块b1中的SW电路514根据数据包B中的包头的目的端口,通过第二交换接口518将数据包B中的载荷以及包头中的数据交换给交换块b3中的SW电路514;交换块c1中的SW电路514根据数据包C中的包头的目的端口,通过第二交换接口518将数据包C中的载荷以及包头中的数据交换给交换块c3中的SW电路514。可以实现多个数据在同一脊节点22中的不同叶子节点21之间的独立交换,由于各个脊节点22之间实现了负载均衡,所以可以避免出现阻塞问题,实现无阻塞交换。
S104、第二组交换块通过第一交换接口将多个数据汇聚至第二组交换块中的目标交换块。
示例性的,如图15所示,假设第二组交换块中的交换块c1为目标交换块51,交换块a3中的SW电路514将数据包A中的载荷以及包头中的数据交换给交换块c3中的SW电路514,交换块b3中的SW电路514将数据包B中的载荷以及包头中的数据交换给交换块c3中的SW电路514,即实现多个第一数据包中的载荷以及包头中的数据汇聚到目标交换块51。
需要说明的是,如果是多播业务,则目标交换块51可以有多个。
S105、目标交换块通过多个输入输出端口中的第二输入输出端口输出多个数据。
目标交换块51可以按照多个数据从多个交换块51(具体的,源交换块51)接收的顺序,通过目标交换块51对应的第二输入输出端口输出多个数据。即目标交换块51可以根据多个第一数据包中的包头中的数据对多个第一数据包中的载荷进行封装,得到多个第二数据包,并按照多个第一数据包接收的顺序发送多个第二数据包。
目标交换块51对多个数据进行重排序的原因在于:经过负载均衡后的多个数据会经过不同交换块51交换给目标交换块51,由于各个交换块51的处理时延不同,可能造成多个数据后发先至的情况。是否需要做重排序或者重排序的难度,与所采用的负载均衡算法相关。
示例性的,如图15所示,交换块c1中的SW电路514将多个第一数据包中的载荷以及包头中的数据发送给交换块c1中的PP电路512,交换块c1中的PP电路512 对多个第一数据包中的载荷以及包头中的数据进行处理后得到多个第二数据包,并发送给交换块c1中的MAC电路511,由交换块c1中的MAC电路511根据多个第一数据包中的包头中的目标端口确定第二输入输出端口52,按照多个第一数据包的接收顺序通过第二输入输出端口52输出多个第二数据包。例如,目标交换块51耦合12个800Gbps的输入输出端口52,即目标交换块51耦合的输入输出端口52的带宽为9.6Tbps,目标交换块51根据载荷的目标端口确定12个输入输出端口52中的第二输入输出端口52。
本申请实施例提供的交换装置、交换方法和交换设备,通过多个结构相同的交换块实现数据包的交换处理,并且多个交换块形成DSL结构,具有如下技术效果:
可实现性好:不同带宽的芯片,可以包括不同数量的交换块,避免了交换装置的顶层设计困难。例如,在传统的脊叶架构设计中,如果带宽为25.6Tbps的交换装置包括四个带宽为6.4Tbps的叶子节点和四个带宽为6.4Tbps的脊节点,则需要分别完成叶子节点和脊节点的设计,然后连接成脊叶架构。而本申请实施例中,可以基于16个带宽为1.6Tbps的交换块,搭建一个四行四列的DSL矩阵即可。并且各个交换块的连接方式是一致的,例如均采用扇出总线连接,简化了总线设计。另外,由于将交换块分成了至少两个组,组内交换块通过第一交换接口交换数据,组间交换块通过第二交换接口交换数据。对于通过第二交换接口接收的组间交换来的数据,或者,对于通过输入输出端口接收的从外部交换来的数据,交换块通过第一交换接口进行组内交换,实现同一组中各交换块的负载均衡并且功耗接近,避免了交换装置某些区域的温度远高于其他区域,降低了供电设计和散热设计的难度。
降低时延:各交换块之间可自行完成数据包的交换,例如对于包括16个交换块的交换装置,每个交换块耦合四个输入输出端口,每个输入输出端口的带宽为400Gbps,则每个交换块的带宽为1.6Tbps,该交换装置的带宽为25.6Tbps。每个交换块这四个输入输出端口之间的数据包交换即可在本交换块中完成,任意两个交换块之间的数据包交换最多经过一次转发即可完成,并且,数据包的交换只需要经过SW电路或路由电路,不必经过其他电路,因此可以降低时延。
可扩展性好。如图6和图7中所描述的,可以将位于不同裸片的交换装置中的交换块通过第一总线和第二总线相耦合,方便扩大交换装置50的规模,提高系统交换能力。
如图16所示,本申请实施例还提供了一种交换设备160,该交换设备160可以为交换机,该交换设备160包括至少一个如前文所述的交换装置50,以及,与交换装置50耦合的存储器161,该交换装置50可以为交换芯片。交换装置50用于与其他通信设备交换数据包。
本申请实施例提供一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,当指令被交换装置执行时使得交换装置执行如图13所示的方法。
本申请实施例提供一种包括指令的计算机程序产品,当指令被交换装置执行时使得交换装置执行如图13所示的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的 实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个设备,或者也可以分布到多个设备上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个设备中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
- 一种交换装置,其特征在于,包括:多个交换块,以及,与所述多个交换块对应的多个输入输出端口;所述多个交换块用于通过对应的所述输入输出端口接收数据,将所述数据转发至所述多个交换块中的、所述数据的目标交换块,以及,通过所述目标交换块对应的所述输入输出端口发送所述数据;其中,所述多个交换块包括第一交换块;所述多个交换块被分成至少两组交换块,每个交换块包括第一交换接口和第二交换接口,所述第一交换接口用于与同组的交换块交换数据,所述第二接口用于与不同组的交换块交换数据;所述交换装置还包括控制电路,用于:当所述第一交换块通过对应的所述输入输出端口或所述第二交换接口接收所述数据时,控制所述第一交换块选择所述第一交换接口转发所述数据。
- 根据权利要求1所述的交换装置,其特征在于,所述控制电路还用于:当所述第一交换块通过对应的输入输出端口或所述第二交换接口接收所述数据时,控制所述第一交换块同时选择所述第一交换接口和所述第二交换接口转发所述数据。
- 根据权利要求1或2所述的交换装置,其特征在于,所述控制电路还用于:当所述第一交换块通过所述第一交换接口接收所述数据时,控制所述第一交换块选择所述第二交换接口或者对应的输入输出端口转发所述数据。
- 根据权利要求1-3任一项所述的交换装置,其特征在于,所述交换块还包括交换电路,所述交换电路与对应的所述输入输出端口、所述第一交换接口和所述第二交换接口相耦合,所述交换电路用于通过所述第一交换接口和所述第二交换接口与其他交换块交换数据,以及,与对应的所述输入输出端口交换数据。
- 根据权利要求1-3任一项所述的交换装置,其特征在于,所述交换块还包括耦合的交换电路和路由电路,所述交换电路与对应的所述输入输出端口相耦合,所述交换电路用于与所述路由电路和对应的所述输入输出端口交换数据;所述路由电路与所述第一交换接口和所述第二交换接口相耦合,所述路由电路用于通过所述第一交换接口和所述第二交换接口与其他交换块交换数据。
- 根据权利要求1-5任一项所述的交换装置,其特征在于,所述目标交换块用于按照所述数据从所述多个交换块接收的顺序,通过对应的所述输入输出端口输出所述数据。
- 根据权利要求1-6任一项所述的交换装置,其特征在于,同一组交换块设置于不同裸片中。
- 根据权利要求1-7任一项所述的交换装置,其特征在于,不同组交换块设置于不同裸片中。
- 根据权利要求1-8任一项所述的交换装置,其特征在于,同一组交换块的所述第一交换接口通过扇出总线相耦合,不同组交换块的所述第二交换接口通过扇出总线相耦合。
- 根据权利要求1-9任一项所述的交换装置,其特征在于,所述交换装置为交换芯片。
- 根据权利要求1-9任一项所述的交换装置,其特征在于,所述交换块指具有数据交换功能的电路。
- 一种交换方法,其特征在于,应用于如权利要求1-11任一项所述的交换装置,所述方法包括:当第一交换块通过对应的输入输出端口或第二交换接口接收数据时,控制所述第一交换块选择第一交换接口转发所述数据。
- 根据如权利要求12所述的方法,其特征在于,所述当第一交换块通过对应的输入输出端口或第二交换接口接收数据时,控制所述第一交换块选择所述第一交换接口转发所述数据,包括:当所述第一交换块通过对应的输入输出端口或所述第二交换接口接收所述数据时,控制所述第一交换块同时选择所述第一交换接口和所述第二交换接口转发所述数据。
- 根据权利要求12或13所述的方法,其特征在于,还包括:当所述第一交换块通过所述第一交换接口接收所述数据时,控制所述第一交换块选择所述第二交换接口或者对应的输入输出端口转发所述数据。
- 一种交换设备,其特征在于,包括如权利要求1-11任一项所述的交换装置以及与所述交换装置耦合的存储器,所述交换装置为交换芯片。
- 一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,当所述指令被交换装置执行时使得所述交换装置执行如权利要求12-14任一项所述的方法。
- 一种包括指令的计算机程序产品,其特征在于,当所述指令被交换装置执行时使得交换装置执行如权利要求12-14任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/124233 WO2023060604A1 (zh) | 2021-10-15 | 2021-10-15 | 交换装置、交换方法和交换设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117941373A true CN117941373A (zh) | 2024-04-26 |
Family
ID=85987086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180102244.9A Pending CN117941373A (zh) | 2021-10-15 | 2021-10-15 | 交换装置、交换方法和交换设备 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4395364A1 (zh) |
CN (1) | CN117941373A (zh) |
WO (1) | WO2023060604A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404616A (zh) * | 2008-11-04 | 2009-04-08 | 北京大学深圳研究生院 | 一种负载均衡分组交换结构及其构造方法 |
CN104104616B (zh) * | 2013-04-03 | 2019-04-19 | 华为技术有限公司 | 数据调度和交换的方法、装置及系统 |
CN108021525B (zh) * | 2016-10-28 | 2019-11-15 | 北京计算机技术及应用研究所 | 一种基于pcie总线多主互连的冗余交换系统 |
CN108111930B (zh) * | 2017-12-15 | 2019-01-29 | 中国人民解放军国防科技大学 | 基于高密度存储器的多裸片高阶光交换结构 |
-
2021
- 2021-10-15 EP EP21960333.9A patent/EP4395364A1/en active Pending
- 2021-10-15 CN CN202180102244.9A patent/CN117941373A/zh active Pending
- 2021-10-15 WO PCT/CN2021/124233 patent/WO2023060604A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP4395364A1 (en) | 2024-07-03 |
WO2023060604A1 (zh) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6633580B1 (en) | N×N crossbar packet switch | |
Pattavina | Nonblocking architectures for ATM switching | |
US7161943B2 (en) | Two-dimensional pipelined scheduling technique | |
US7221652B1 (en) | System and method for tolerating data link faults in communications with a switch fabric | |
EP1208447B1 (en) | Network processor, memory organization and methods | |
US20030035371A1 (en) | Means and apparatus for a scaleable congestion free switching system with intelligent control | |
US20020034189A1 (en) | Data path architecture for a lan switch | |
JP2002510450A (ja) | 高度統合多層スイッチ要素アーキテクチャ | |
EP1208676A1 (en) | Network switch using network processor and methods | |
WO2005032167A1 (en) | Matching process | |
WO2022094771A1 (zh) | 网络芯片和网络设备 | |
CN113110943B (zh) | 软件定义交换结构及基于该结构的数据交换方法 | |
CN112383474B (zh) | 一种多端口的SpaceFibre路由IP | |
CN106168940A (zh) | 高密度片上网络的路网实现方法及装置 | |
WO2006017158A2 (en) | Self-regulating interconnect structure | |
CN117941373A (zh) | 交换装置、交换方法和交换设备 | |
CN114827782A (zh) | 一种光电混合数据中心网络中的流组调度方法 | |
Kleban | Packet dispatching using module matching in the modified MSM Clos-network switch | |
RU161315U1 (ru) | Контроллер скоростного ввода-вывода (ксвв) | |
KR100764806B1 (ko) | 크로스바 | |
Salah et al. | Design of a 2d mesh-torus router for network on chip | |
Yang et al. | ABOI: AWGR-Based optical interconnects for single-wavelength and multi-wavelength | |
Petracca et al. | HERO: High-speed enhanced routing operation in software routers NICs | |
Hou et al. | Priority-based high-speed switch scheduling for ATM networks | |
CN115297386A (zh) | 一种全光交换网络控制系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |