一种大端口交换芯片的交换系统及方法

文档序号:7929267阅读:199来源:国知局
专利名称:一种大端口交换芯片的交换系统及方法
技术领域
本发明涉及数据通信网络领域,尤其涉及一种大端口交换芯片的交换系统 及方法。
背景技术
网络交换机是用来进行数据包转发的装置。数据包从源端口进入交换机, 根据数据包的路由信息,交换机将数据包转发至目的端口。交换机的核心芯片 是交换芯片。交换芯片包括多个端口模块和交叉开关模块。每个端口模块内部 包括发送、接收和流控三个模块。交叉开关模块由路由模块和仲裁模块以及它 们之间的互联关系组成。端口模块的发送模块用于发送数据包和流控包。端口 模块的接收模块用于从接收数据流中提取数据包和流控包。路由模块根据数据 包提供的目的端口,申请相应的端口进行数据传输。仲裁模块则对申请同一个 目的端口的路由模块进行仲裁,仲裁成功的数据包占有目的端口,能够传送数 据;失败的继续等待下次仲裁结果。
由于高性能应用对计算能力的需求永无止境,导致计算机系统规模不断增 长。根据最新数据显示分析,高性能计算机系统已经具有万颗处理器,系统规 模迅速扩大。系统规模的扩大对网络互连提出了三个方面的挑战,网络的可扩 展性、可靠性和低功耗设计。

发明内容
为解决上述问题,本发明提供了一种大端口交换芯片的交换系统及方法, 能够降低交换芯片的复杂度,并实现在同一交换机上进行大规模的交换。
本发明公开了一种大端口交换芯片的交换系统,所述交换芯片包括多个端 口模块,所述系统包括多个第一交叉开关和至少一个第二交叉开关,所述端口 模块同所述第一交叉开关连接,所述第二交叉开关同每个所述第一交叉开关连 接;
13所述第一交叉开关,用于在接收到所述端口模块发送的数据包时,判断所 述数据包的目的端口是否为所述第一交叉开关自身的端口,如果是,则将所述 数据包转发到所述数据包的目的端口 ,否则将所述数据包转发给一个所述第二 交叉开关;
所述第二交叉开关,用于在接收到所述第一交叉开关转发的数据包时,将 所述数据包转发到所述数据包的目的端口所在的第一交叉开关;由所述数据包
的目的端口所在的第一交叉开关将所述数据包转发到所述数据包的目的端口 。 所述第一交叉开关包括上游端口和下游端口 ,所述第二交叉开关包括下游
端口,所述第一交叉开关的下游端口连接所述端口模块,所述第一交叉开关的
上游端口连接所述第二交叉幵关的下游端口。
所述第一交叉开关的下游端口的数目等于所述第一交叉开关的上游端口
的数目;
所述第二交叉开关的下游端口的数目等于所述第一交叉开关的个数; 所述第二交叉开关的个数等于所述第一交叉开关的上游端口的数目。 所述第一交叉开关组成0层交叉开关,所述第二交叉开关组成1层交叉开
关;
所述0层交叉开关的第i个第一交叉开关的第j个上游端口同所述1层交 叉开关的第j个第二交叉开关的第i个下游端口连接。
所述第一交叉开关判断所述数据包的目的端口是否为所述第一交叉开关 自身的端口时进一步用于,将所述数据包的源端口号除以所述第一交叉开关的 下游端口的数目所得值上取整的值同所述数据包的目的端口号除以所述第一 交叉开关的下游端口的数目所得值上取整的值比较,如果两值相等,则确定所 述数据包的目的端口为所述第一交叉开关自身的下游端口 ,否则确定所述数据 包的目的端口为其它第一交叉开关的下游端口 。
所述第一交叉开关在将所述数据包转发到所述目的端口时进一步用于确 定所述数据包的目的端口在所述第一交叉开关的下游端口的顺序号为m0,将 所述数据包转发到所述第一交叉开关的第m0个下游端口 。
所述顺序号m0等于所述数据的目的端口号除以所述第一交叉开关的下游 端口的数目取整求余所得的余数。
所述第一交叉开关在将所述数据包转发给所述第二交叉开关时进一步用于确定转发所述数据包的所述第一交叉开关上游端口的顺序号ml等于所述数 据包的目的端口号除以所述第一交叉开关上游端口的数目取整求余所得的余
数,将所述数据包从所述第一交叉开关的第.ml个上游端口转发给所述第二交
叉开关。
所述第二交叉开关在将所述数据包转发到所述数据包的目的端口所在的 第一交叉开关时进一步用于确定所述数据包的目的端口所属的第一交叉开关
在所述交换芯片中的顺序号为m2,将所述数据包经由所述第二交叉幵关的第 m2个下游端口转发给该第m2个下游端口连接的第一交叉开关。
所述顺序号m2等于所述数据包的目的端口号除以所述第一交叉开关的下 游端口的数目所得值上取整的值。
本发明还公开了一种大端口交换芯片的交换系统,所述交换芯片包括多个 端口模块,所述系统包括多个交换子网和至少一个第三交叉开关,所述交换子 网包括多个第一交叉开关和至少一个第二交叉开关,所述端口模块同所述第一 交叉开关连接,所述第二交叉开关和同一交换子网的每个所述第一交叉开关连 接;所述第三交叉开关同每个所述交换子网中的至少一个第二交叉开关连接;
所述第一交叉开关,用于在接收到所述端口模块转发的数据包时,判断所 述数据包的目的端口是否为所述第一交叉开关自身的端口 ,如果是则将所述数 据包转发到所述数据包的目的端口 ,否则将所述数据包转发给同一交换子网的 一个第二交叉开关;
所述第二交叉开关,用于在接收到同一交换子网的第一交叉开关转发的数 据包时,判断所述数据包的源端口和目的端口是否在同一交换子网,如果是, 则将所述数据包转发到所述数据包的目的端口所在的第一交叉开关,由接收所 述数据包的第一交叉开关将所述数据包转发到所述数据包的目的端口 ;否则将 所述数据包转发给一个所述第三交叉开关;
所述第三交叉开关,用于在接收到所述第二交叉开关转发的数据包时,将 所述数据包转发到所述数据包的目的端口所在的交换子网的一个第二交叉开 关;由接收所述数据包的第二交叉开关将所述数据包转发到所述数据包的目的 端口所在的第一交叉开关;由接收所述数据包的第一交叉开关将所述数据包转 发到所述数据包的目的端口。
所述第一交叉开关包括上游端口和下游端口 ,所述第二交叉开关包括上游端口和下游端口,所述第三交叉开关包括下游端口; 所述第一交叉开关的下游端口连接所述端口模块;
所述第一交叉开关的上游端口连接同一交换子网的所述第二交叉开关的
下游端口 ;
所述第二交叉开关的上游端口连接所述第三交叉开关的下游端口。 所述第一交叉开关的下游端口的数目等于所述第一交叉开关的上游端口
的数目,所述第二交叉开关的下游端口的数目等于所述第二交叉开关的上游
端口的数目;
所述第三交叉开关的下游端口的数目等于所述交换子网的个数; 所述第三交叉开关的个数等于一个所述交换子网中所有所述第一交叉开
关的下游端口的总数;
所述第二交叉开关的下游端口的数目等于同一交换子网中所述第一交叉
开关的个数;
一个交换子网中所述第二交叉开关的个数等于所述第一交叉开关的上游 端口的数目。
同一交换子网的所述第一交叉开关组成0层交叉开关,同一交换子网的所 述第二交叉开关组成1层交叉开关,所述第三交叉开关组成2层交叉开关;
同一交换子网的所述O层交叉开关的第i个第一交叉开关的第j个上游端 口同所述交换子网的1层交叉开关的第j个第二交叉开关的第i个下游端口连 接;
2层交叉开关的第k个第三交叉开关的第q个下游端口同第q个交换子网 的第k个上游端口连接。
所述第一交叉开关判断所述数据包的目的端口是否为所述第一交叉开关 自身的端口时进一歩用于将所述数据包的源端口号除以所述第一交叉开关的 下游端口的数目的所得值上取整的值同所述数据包的目的端口号除以所述第 一交叉开关的下游端口的数目的所得值上取整的值比较,如果两个值相等,则 所述数据包的目的端口为所述第一交叉开关自身的下游端口 ,否则所述数据包 的目的端口为其它第一交叉开关的下游端口 。
所述第一交叉开关在将所述数据包转发到所述数据包的目的端口时进一 歩用于确定所述数据包的目的端口在所述第一交叉开关的下游端口中的顺序号为n0,将所述数据包转发到所述第一交叉开关的第n0个下游端口 。
所述顺序号n0等于所述数据包的目的端口号除以所述第一交叉开关的下 游端口的数目取整求余所得的余数。
所述第一交叉开关在将所述数据包转发给同一交换子网的第二交叉开关 时进一步用于确定转发所述数据包的所述第一交叉开关上游端口的顺序号nl 等于所述数据包的目的端口号除以所述第一交叉开关的上游端口的数目取整 求余所得的的余数,将所述数据包从所述第一交叉开关的第nl个上游端口转 发给所述第二交叉开关。
所述第二交叉开关在判断所述数据包的源端口和目的端口是否在同一交 换子网时进一歩用于将所述数据包的源端口号除以一个交换子网中所有所述 第一交叉开关的下游端口的总数所得值上取整的值同所述数据包的目的端口 号除以一个交换子网中所有所述第一交叉开关的下游端口的总数所得值上取 整的值比较,如果两个值相等,则所述数据包的源端口和目的端口在同一交换 子网,否则所述数据包的源端口和目的端口不在同一交换子网。
所述第二交叉开关在将所述数据包转发到所述数据包的目的端口所在的 第一交叉开关时进一步用于确定所述数据包的目的端口所属的第一交叉开关 在其所属交换子网中的顺序号为n2,将所述数据包从所述第二交叉开关的第 n2个下游端口转发给所述第一交叉开关。
所述顺序号n2等于所述数据包的目的端口号除以所述第一交叉开关的下 游端口的数目所得值上取整的值除以一个交换子网中所述第一交叉开关的个 数的取整求余所得的余数。
所述第二交叉开关在将所述数据包转发给所述第三交叉开关时进一步用 于确定所述数据包的目的端口所属的第一交叉开关在其所属交换子网中的顺 序号为n3,将所述数据包从所述第二交叉开关的第n3个上游端口转发给所述 第三交叉开关。
所述顺序号n3等于所述数据包的目的端口号除以所述第一交叉开关的下 游端口的数目所得值上取整的值除以一个交换子网中所述第一交叉开关的个 数的取整求余所得的余数。
所述第三交叉开关在将所述数据包转发到所述数据包的目的端口所在的 交换子网时进一步用于确定所述数据包的目的端口所属交换子网在所述交换芯片中的顺序号为n4,将所述数据包从所述第三交叉开关的第n4个下游端口
转发给所述第二交叉开关。
所述顺序号n4等于所述数据包的目的端口号除以一个交换子网中所有所 述第一交叉开关的下游端口的总数的所得值上取整的值。
本发明还公开了 一种大端口交换芯片的交换方法,包括
步骤l,将所述交换芯片的多个端口模块分别同第一交叉开关连接,将第
二交叉开关同每个所述第一交叉开关连接;
步骤2,所述第一交叉开关接收到所述端口模块发送的数据包,判断所述 数据包的目的端口是否为所述第一交叉开关自身的端口,如果是则执行歩骤 4,否则,将所述数据包转发给一个所述第二交叉开关;
步骤3,所述第二交叉开关接收到所述第一交叉开关转发的数据包,将所 述数据包转发到所述数据包的目的端口所在的第一交叉开关;
步骤4,所述第一交叉开关将所述数据包转发到所述数据包的目的端口 。
所述第一交叉开关包括上游端口和下游端口 ,所述第二交叉开关包括下游 端口;
所述步骤1进一步为将所述第一交叉开关的下游端口连接所述端口模块, 所述第一交叉开关的上游端口连接所述第二交换芯片的下游端口。
所述第一交叉开关的下游端口的数目等于所述第一交叉开关的上游端口 的数目;
所述第二交叉开关的下游端口的数目等于所述第一交叉开关的个数; 所述第二交叉开关的个数等于所述第一交叉开关的上游端口的数目。 所述第一交叉开关组成0层交叉开关,所述第二交叉开关组成1层交叉开
关;
所述步骤1进一步为将所述0层交叉开关的第i个第一交叉开关的第j 个上游端口同所述1层交叉开关的第j个第二交叉开关的第i个下游端口连 接。
所述步骤2中判断所述数据包的目的端口是否为所述第一交叉开关自身 的端口进一步为将所述数据包的源端口号除以所述第一交叉开关的下游端口 的数目所得值上取整的值同所述数据包的目的端口号除以所述第一交叉开关 的下游端口的数目所得值上取整的值比较,如果两个值相等,则所述数据包的目的端口为所述第一交叉开关自身的下游端口 ,否则所述数据包的目的端口为 其它第一交叉开关的下游端口。 所述步骤4进一步为
歩骤311,确定所述数据包的目的端口在所述第一交叉开关的下游端口中
的顺序号为m0;
歩骤312,将所述数据包转发到所述第一交叉开关的第m0个下游端口 。 所述顺序号m0等于所述数据包的目的端口号除以所述第一交叉开关的下
游端口的数目取整求余所得的余数。
所述步骤2中将所述数据包转发给所述第二交叉开关进一步包括
步骤331,确定转发所述数据包的所述第一交叉开关上游端口的顺序号ml
等于所述数据包的目的端口号除以所述第一交叉开关的上游端口的数目取整
求余所得的余数;
步骤332,将所述数据包从所述第一交叉开关的第ml个上游端口转发给 所述第二交叉开关。
所述歩骤3进一步为
步骤341 ,确定所述数据包的目的端口所属第一交叉开关在所述交换芯片 中的的顺序号为m2;
步骤342,将所述数据包从所述第二交叉开关的第m2个下游端口转发给 所述第一交叉开关。
所述顺序号m2等于所述数据包的目的端口号除以所述第一交叉开关的下 游端口的数目所得值上取整的值。
本发明还公开了一种大端口交换芯片的交换方法,包括
步骤l,第一交叉开关和第二交叉开关组成多个交换子网,将多个端口模 块同所述第一交叉开关连接,将所述第二交叉开关和同一交换子网的每个所述 第一交叉开关连接,将所述第三交叉开关同每个所述交换子网中的至少一个第 二交叉开关连接;
步骤2,所述第一交叉开关接收所述端口模块发送的数据包,判断所述数 据包的目的端口是否为所述第一交叉开关自身的端口,如果是则执行步骤6, 否则,将所述数据包转发给同一交换子网的一个第二交叉开关;
步骤3,所述第二交叉开关接收同一交换子网的第一交叉开关转发的数据包,判断所述数据包的源端口和目的端口是否在同一交换子网,如果是,则执 行步骤5,否则将所述数据包转发给一个所述第三交叉开关;
步骤4,所述第三交叉开关接收所述第二交叉开关转发的数据包,将所述 数据包转发到所述数据包的目的端口所在的交换子网的一个第二交叉开关;
步骤5,所述第二交叉开关将所述数据包转发给所述数据包目的端口所在 的第一交叉开关;
步骤6,所述第一交叉开关将所述数据包转发到所述数据包的目的端口 。
所述第一交叉开关包括上游端口和下游端口,所述第二交叉开关包括上游
端口和下游端口,所述第三交叉开关包括下游端口; 所述步骤l进一步为
步骤371,将所述第一交叉开关的下游端口同所述端口模块连接;
步骤372,将所述第一交叉开关的上游端口和同一交换子网的所述第二交 叉开关的下游端口连接;
步骤373,将所述第二交叉开关的上游端口同所述第三交叉开关的下游端 口连接。
所述第一交叉开关的下游端口的数目等于所述第一交叉开关的上游端口 的数目,所述第二交叉开关的下游端口的数目等于所述第二交叉开关的上游端 口的数目;
所述第三交叉开关的下游端口的数目等于所述交换子网的个数; 所述第三交叉开关的个数等于一个所述交换子网中所有所述第一交叉开
关的下游端口的总数;
所述第二交叉开关的下游端口的数目等于同一交换子网中所述第一交叉
开关的个数;
一个交换子网中所述第二交叉开关的个数等于所述第一交叉开关的上游 端口的数目。
同一交换子网的所述第一交叉开关组成0层交叉开关,同一交换子网的所 述第二交叉开关组成1层交叉开关,所述第三交叉开关组成2层交叉开关; 所述步骤372进一步为将同一交换子网的所述O层交叉开关的第i个第一
交叉开关的第j个上游端口同所述交换子网的1层交叉开关的第j个第二交叉 开关的第i个下游端口连接;步骤373进一步为将2层交叉开关的第k个第三交叉开关的第q个下游端 口同第q个交换子网的第k个上游端口连接。
所述步骤2中判断所述数据包的目的端口是否为所述第一交叉开关自身 的端口进一步为将所述数据包的源端口号除以所述第一交叉开关的下游端口 的数目所得值上取整的值同所述数据包的目的端口号除以所述第一交叉开关 的下游端口的数目所得值上取整的值比较,如果两个值相等,则所述数据包的 目的端口为所述第一交叉开关自身的下游端口 ,否则所述数据包的目的端口为 其它第一交叉开关的下游端口。
所述歩骤6进一步为
步骤411,确定所述数据包的目的端口在所述第一交叉开关的下游端口中 的顺序号为n0;
步骤412,将所述数据包转发到所述第一交叉开关的第n0个下游端口 。 所述顺序号n0等于所述数据包的目的端口号除以所述第一交叉开关的下 游端口的数目取整求余所得的余数。
所述步骤2中将所述数据包转发给同一交换子网的第二交叉开关进一步

步骤431,确定转发所述数据包的所述第一交叉开关上游端口的顺序号nl 等于所述数据包的目的端口号除以所述第一交叉开关的上游端口的数目取整 求余所得的余数;
步骤432,将所述数据包从所述第一交叉开关的第nl个上游端口转发给 所述第二交叉开关。
所述步骤3中判断所述数据包的源端口和目的端口是否在同一交换子网 进一步为将所述数据包的源端口号除以一个交换子网中所有所述第一交叉开 关的下游端口的总数所得值上取整的值同所述数据包的目的端口号除以一个 交换子网中所有所述第一交叉开关的下游端口的总数所得值上取整的值比较, 如果两个值相等,则所述数据包的源端口和目的端口在同一交换子网,否则所 述数据包的源端口和目的端口不在同一交换子网。
所述步骤5进一步为
步骤451,确定所述数据包的目的端口所属的第一交叉开关在其所属交换 子网中的顺序号为n2;步骤452,将所述数据包从所述第二交叉开关的第n2个下游端口转发给
所述第一交叉开关。
所述顺序号n2等于所述数据包的目的端口号除以所述第一交叉开关的下 游端口的数目的所得值上取整的值除以一个交换子网中所述第一交叉开关的 个数的取整求余所得的余数。
所述步骤3中在将所述数据包转发给所述第三交叉开关进一步为
步骤471,确定所述数据包的目的端口所属的第一交叉开关在其所属交换 子网中的顺序号为n3;
步骤472,将所述数据包从所述第二交叉开关的第n3个上游端口转发给 所述第三交叉开关。
所述顺序号n3等于所述数据包的目的端口号除以所述第一交叉开关的下 游端口的数目的所得值上取整的值除以一个交换子网中所述第一交叉开关的 个数的取整求余所得余数。
所述步骤4进一步为
步骤491,确定所述数据包的目的端口所属交换子网在所述交换芯片中的 顺序号为n4;
步骤492,将所述数据包从所述第三交叉开关的第n4个下游端口转发给 所述第二交叉开关。
所述顺序号n4等于所述数据包的目的端口号除以一个交换子网中所有所 述第一交叉开关的下游端口的总数的所得值上取整的值。
本发明的有益效果在于本发明采用分层的结构能够降低交换芯片的复杂 度,并能够实现一种大规模端口的交换机的交换,从而减少网络层数,有效的 提高网络扩展性能,降低网络延迟,有效的减少交换机的数目,降低功耗,减 少交换机间互联线的数目,提高系统可靠性。


图1是本发明二层交换系统的结构图2是本发明二层交换系统进行交换的方法流程图3是本发明三层交换系统的结构图4是本发明三层交换系统进行交换的方法流程22图5是本发明二层交换系统的具体实施例结构图; 图6是本发明三层交换系统的具体实施例结构图。
具体实施例方式
下面结合附图,对本发明做进一步的详细描述。
交换芯片的复杂程度与交换芯片的端口数目的平方成正比关系。为了降低 交换芯片的复杂程度,本发明将交换芯片内部分为两层或三层,每层对应一系 列端口规模小的交叉开关。
本发明中交换芯片内部的分层序号以O开始记。例如二层交换系统中的 交换芯片分为0层、l层;不同层对应的交叉开关分别为0层交叉开关、1 层交叉开关;三层交换系统中的交换芯片分为0层、l层、2层;不同层对 应的交叉开关分别为O层交叉开关、l层交叉开关、2层交叉开关。
本发明二层交换系统的结构如图l所示。交换芯片具有N个端口,与交换 芯片的端口模块直接相连的交叉开关为第一交叉开关,该交换芯片中所有的第 一交叉开关组成O层交叉开关,同时第一交叉开关同第二交叉开关连接,该交 换芯片中的所有第二交叉开关组成1层交叉开关。第一交叉开关中同端口模块 相连的端口称为下游端口,同第二交叉开关相连的端口称为上游端口。第二交 叉开关中同第一交叉开关连接的端口为下游端口。假设第一交叉开关的上游端
口数目为M,第一交叉开关的下游端口数目也为M,第一交叉开关的端口数目 为2M, O层交叉开关中共有K个第一交叉开关。第二交叉开关的端口数目为K 个,1层交叉开关中第二交叉开关数目为M个。交换芯片的端口数目N=MXK。
0层交叉开关的共有K个第一交叉开关,每个第一交叉开关按其在0层交 叉开关中的顺序被标记为L0Xi,其中i = 0, 1, 2…K-l。每个第一交叉开关有 M个上游端口 ,每个上游端口按其在第一交叉开关中的顺序被标记为LOXi. Pj, 其中i=0, 1,2…K-1; j二0,l,2…M-1。 1层交叉开关共有M个第二交叉开关,每 个第二交叉开关按其在1层交叉开关中的顺序被标记为LlXi,其中i二 0, 1,2…M-l。每个第二交叉开关有K个下游端口,每个下游端口按其在第二交 叉开关中的顺序被标记为LlXi.Pj,其中i= 0,1,2…M-1; j = 0,1,2…K-1。
任意一个第一交叉开关和任意一个第二交叉开关存在且唯一存在相连关 系,连接关系为第一交叉开关上游端口 LOXr.Pt与第二交叉开关下游端口LlXt.Pr存在连接。按上述规则,交换芯片的N个数据端口被O层交叉开关分 成K组,每组M个端口,每组对应-一个第一交叉开关,并同0层交叉开关相连。 数据端口编号为S的数据端口的组号为S除以M的商,S的组内地址为S除以 M的余数。
其中,商为被除数除以除数所得值上取整的值;余数由被除数除以除数取 整求余获得。
第一交叉开关一方面可以实现其所对应的M个端口的内部交换,另一方面 还能把传送到其它组的数据包传送至相应第二交叉开关。第二交叉开关根据数 据包的包头中包含着路由信息,把接收到的数据包再次转发到另一第二交叉开 关。被转发到的第一交叉开关根据路由信息将该数据包转发到最终的目的端 口。因此在交换芯片内部最多经过三次路由,数据包对应存在三级子目的端口 , 每一级的子目的端口号由数据包的目的端口在交换芯片中的端口号计算获得。 对于一个数据包, 一级子目的端口在交叉开关中顺序号表示为DestPortO, 二 级子目的端口在交叉开关中顺序号表示为DestPortl,三级子目的端口在交叉 开关中顺序号表示为DestPort2。
本发明的二层交换系统进行交换的方法流程如图2所示。
数据包中包含该数据包的目的端口在整个交换芯片的端口号,称为目的端 口号,设定为D。数据包所输入的端口为源端口,其在整个交换芯片的端口号, 称为源端口号,设定为S。
步骤S201,第一交叉开关判断源端口和目的端口是否是在同一组,如果 相同,执行步骤S202,否则,执行步骤S203。
判断方法为将目的端口号D和源端口号S分别除以M,取商,判断两个商 是否相同;如果相同,则两者在同一组,否则,不在同一组。
歩骤S202,第一交叉开关确定数据包的一级子目的端口,将数据包从一 级子目的端口转发,完成将数据包转发到最终的交换芯片目的端口的操作。
确定数据包的一级子目的端口的方法为,取D除以M的余数,D mod M; DestPortO等于该余数, 一级子目的端口为该第一交叉开关的第DestPortO个 下游端口,该端口实质为数据包的目的端口。
步骤S2()3,第一交叉开关确定数据包的一级子目的端口,将数据包从一 级子目的端口转发到第二交叉开关。确定一级子目的端口的方法为,取D除以M的余数,DmodM, DestPortO 等于该余数, 一级子目的端口为该第一交叉开关的第DestPortO个上游端口 。
步骤S204,由0层交叉开关和1层交叉开关间连接关系,确定1层交叉 开关中的第DestPortO个第二交叉开关接收到转发的数据包。该第二交叉开关 确定该数据包的二级子目的端口 ,将数据从二级子目的端口转发到目的端口所 在的第一交叉开关。
确定二级子目的端口的方法为,取D除以M的商,D/M, DestPortl等于 该商,二级子目的端口为该第二交叉开关中第DestPortl个下游端口 。
步骤S205,由0层交叉开关和1层交叉开关间连接关系,确定0层交叉 开关的第DestPortl个第一交叉开关接收到转发的数据包。该第一交叉开关确 定该数据包的三级子目的端口,将数据包从三级子目的端口转发,完成将数据 包转发到最终的交换芯片目的端口的操作。
该三级子目的端口为该数据包的目的端口 。
确定三级子目的端口的方法为取D除以M的余数,D mod M, DestPort2 等于该余数,三级子目的端口为该第一交叉开关第DestPort2个下游端口 。
形式化表述为
If ( D/M == S/M )
DestPortO = ( D mod M )DownStream Else
DestPortO = ( D mod M )UpStream
DestPortl = ( D / M )
DestPort2 = ( D mod M )DownStream
Endif
本发明进行二层交换的方法如图2,其中步骤S202和步骤S205中第一交 叉开关操作相同,都是将接收的数据包发送到该数据包的目的端口,只是数据 包的来源不同, 一个是该第一交叉开关从端口模块接收的, 一个是该第一交叉 开关从第二交叉开关接收的,所以,可以将步骤S202和步骤S205,合并为一 歩,步骤200,第一交叉开关将数据包从数据包的目的端口转发,完成将数据 包转发到最终的交换芯片目的端口的操作。步骤S201判断为是后,执行步骤200,步骤S204执行完成后,执行步骤200。
本发明二层交换系统的具体实施例结构如图5所示。
在具有64端口交换芯片中,端口编号为0 63。在交换芯片内部采用2层 交叉开关结构,并采用上述方法实现两层交叉开关之间连接。64个数据端口 分成8组,每组8个端口,分别和第一交叉开关相连。第一交叉开关一方面可 以实现该8个端口内部交换,另一方面还能把传送到其它组的数据包传送至相 应第二交叉开关。第二交叉开关根据数据包的包头中包含着路由信息,把接收 到的数据包再次转发到另一第一交叉开关去。
第一交叉开关把16个端口分为两种与交换芯片端口模块连接的称为下 游端口 (Downstream Port),即DP0 DP7;与第二交叉开关相连的端口为上 游端口 (Upstream Port),即UP0 UP7。第二交叉开关共有8个端口 ,为下 游端口。
数据包头中包含着路由信息,第一交叉开关从接收缓冲区读取数据包包头 块信息,获取该数据包的目的端口号。根据上述方法获取各级子目的端口号。 数据包的源端口号为S,目的端口号为D。
if ( D/8 =二 S/8 )
DestPort[O] = ( D mod 8 )DownStream Else
DestPort[O] = ( D mod 8 )UpStream DestPort[l] = ( D / 8 )DownStream DestPort[2] = ( D mod 8 )DownStream Endif
当源端口和目的端口处于同一组时,只要通过第一交叉开关进行数据包交 换,通过模8操作选择下游端口进行转发。而当源和目的端口不处于同一组时, 需要通过三次转发完成。第一次在第一交叉开关通过余8操作选择上游端口发 送给第二交叉开关;第二次第二交叉开关通过除8操作选择下游端口进行转 发;第三次第一交叉开关通过余8操作选择下游端口进行转发,最终转发到目 的端口。
假设存在35端口存在数据包,其目的端口号为38。首先判断该两端口是 否在同组,因为(35/8 二4) = (38/8=4),所以在同一组。因此接收数据包的4
26号第一交叉开关选择其下游端口,其端口号为6,计算方法为38 mod 8 二 6, 将数据包从下游端口 6发送。
假设存在35端口存在数据包,其目的端口为43号端口。首先判断该两端 口是否在同组,因为(35/8 =4) # (43/8=5),所以不在同组。因此路由过程 将被分为三个阶段。第一步,4号第一交叉开关选择其上游端口,端口号为3, 计算方法为43 mod 8 = 3,将数据包转发给第二交叉开关;第二步,3号第二 交叉开关选择下游端口,端口号为5,计算方法为43/8=5,将数据包发送给5 号第一交叉开关;第三步,5号第一交叉开关选择下游端口,端口号为3,计 算方法为43 mod 8 = 3,进行数据包转发,最终发送出交换芯片。
本发明三层交换系统的结构如图3所示。
对于端口更多的交换芯片本发明采用三层结构进行交换芯片内部互联。 具有N个端口的交换芯片可由三层交叉开关进行互连。
前述的第一交叉开关和第二交叉开关组成交换子网,一个交换子网为一个 上述的二层交换系统。其中与端口模块直接相连的为第一交叉开关,每个第一 交叉开关与端口模块连接的端口数目为M,第一交叉开关与第二交叉开关连接 的端口数目也为M个。每个第一交叉开关的端口数目为2M。 一个交换子网有K 个第一交叉开关,第一交叉开关组成O层交叉开关。在交换子网中同第一交叉 开关相连的上级交叉开关为第二交叉开关,第二交叉开关连接第一交叉开关的 端口的个数是K个。 一个交换子网中有M个第二交叉开关,第二交叉开关组成
1层交叉开关。 一个交换芯片中有Q个交换子网。所以交换芯片的端口数为 阔XKXM。
第二交叉开关连接其上层第三交叉开关,同第三交叉开关连接的端口的个 数也为K个。第二交叉开关共有2K个端口。每个第三交叉开关具有Q个端口 同第二交叉开关连接, 一个交换芯片中共有KXM个第三交叉开关,第三交叉 开关组成2层交叉开关。
在第一交叉开关中,与端口模块相连的端口称为下游端口;与第二交叉开 关相连的端口称为上游端口。在第二交叉开关中,与第一交叉幵关相连的端口 称为下游端口 ;与第三交叉开关相连的端口称为上游端口 。在第三交叉开关中, 与第二交叉开关相连的端口称为下游端口。在交换子网中,交换子网的第二交 叉开关的上游端口组成交换子网的上游端口 。交换芯片中的第一交叉开关共有QXK个。每个第一交叉开关在交换芯片
中编号被标记为LOXi,其中i = 0, 1,2…QK-1,按其在交换芯片中顺序编号。 每个第一交叉开关与第二交叉开关共有M个端口,每个端口在其所属的第一交 叉开关的编号被标记为LOXi. Pj,其中i = 0, 1, 2…QK-1; j = 0, 1, 2…M-l, 按其在第一交叉开关中的顺序编号。交换芯片中共有QXM个第二交叉开关, 每个第二交叉开关交换芯片中编号被标记为LlXi,其中i = 0,1,2…QM-1, 按其在交换芯片中顺序编号;每个第二交叉开关下游端口共有K个,每个端口 在其所属第二交叉开关中的编号被标记为LlXi. PDj,其中i 二 0, 1, 2…QM-1; j 二 0,1,2…K-1,按其在所属第二交叉开关中的顺序编号;每个第二交叉开 关上游端口共有K个,每个端口在其所属第二交叉开关中的编号被标记为 LlXi.PUj,其中i = 0,1,2…QM-1; j = 0,1,2…K-1,按其在所属第二交叉 开关中的顺序编号。交换芯片中第三交叉开关共有KXM个,每个第三交叉开 关被标记为L2Xi,其中i = 0,1,2…KM-1。每个第三交叉开关下游端口共有 Q个,每个下游端口在其所属第三交叉开关中的编号被标记为L2Xi.Pj,其中 i = 0,1,2…KM-1; j 二 0,1,2…Q-l,按其在所属第三交叉开关中的顺序编 号。
交换芯片共有Q个交换子网,按其在交换芯片中顺序被标示为SubNETi, 其中i =0,1,2…Q-l。其中每个交换子网由K个第一交叉开关和M个第二交 叉开关组成。交换子网SubNETi的第一交叉开关为L0Xj,其中j=KXi+k,(其 中k=0, 1,2…K-l;交换子网SubNETi的第二交叉开关为LlXj,其中j二MXi+k, 其中k二O, 1, 2…M-l。
第一交叉开关在交换芯片中的编号对K取余,余数为该第一交叉开关在其 所属交换子网中的编号;第二交叉开关在交换芯片中的编号对M取余,余数为 该第二交叉开关在其所属交换子网中的编号。第二交叉开关的上游端口为其所 属的交换子网的上游端口 。交换子网的第m个第二交叉开关的第n个上游端口 为该交换子网的第h个上游端口 , h二m X K+n, m=0, 1,……,M-l ; n二0, 1,……,K-1。
同一交换子网的0层交叉开关的第a个第一交叉开关的第b个上游端口同 该交换子网的1层交叉开关的第b个第二交叉开关的第a个下游端口连接。 第二交叉开关上游端口存在且仅存在一条与第三交叉开关下游端口的连接。连接关系为第二交叉开关的上游端口 LlXi.PUj (i = 0,1,2…QM-1, j = 0,1,2…K-1)与第三交叉开关L2X((i mod M) XK+j)存在连接,连接的第三交 叉开关的端口为P(i/M),也就是,2层交叉开关的第c个第三交叉开关的第d 个下游端口同第d个交换子网的第c个上游端口连接。
第一交叉开关一方面可以实现其所对应的M个端口的内部交换,另一方面 还能把传送到其它组的数据包传送至相应第二交叉开关。第二交叉开关根据数 据包的包头中包含着路由信息,一方面能够把接收到的数据包再次转发到同一 交换子网内部的另一第一交叉开关,另一方面还可将数据包转发到第三交叉开 关,从而转发到其它交换子网。第三交叉开关负责在交换子网间进行数据包传 递。对于一个数据包, 一级子目的端口在交叉开关中顺序号表示为DestPortO, 二级子目的端口在交叉开关中顺序号表示为DestPortl,三级子目的端口在交 叉开关中顺序号表示为DestPort2,四级子目的端口在交叉开关中顺序号表示 为DestPort3,五级子目的端口在交叉开关中顺序号表示为DestPort4。该五
个子目的端口号均由数据包中的交换芯片的目的端口号计算获得。 本发明三层交换系统进行交换的方法如图4所示。
数据包中提供目的端口在整个交换芯片中编号,称为目的端口号,设定为 D。该数据包所输入的端口为源端口,其在整个交换芯片中的编号,称为源端 口号,设定为S。
歩骤S401,第一交叉开关对源端口号和目的端口号进行比较,判断两者 是否是在同一组,如果在同组,转入步骤S402;否则,执行歩骤S403。
判断方法为,目的端口号D和源端口号S分别除以M,比较两个商是否相 同,如果相同,则在同一组,否则不在同一组。
在同一组表示源端口和目的端口在同一第一交叉开关。
歩骤S402,第一交叉开关确定数据包的一级子目的端口,将数据包从--级子目的端口转发,完成将数据包转发到最终的交换芯片目的端口号的操作。
确定该一级子目的端口的方法为,取D除以M的余数,D mod M, DestPortO 等于该余数,该一级子目的端口为该第一交叉开关的第DestPortO个下游端 □。
歩骤S403,第一交叉开关确定一级子目的端口,将数据包从一级子目的 端口转发给第二交叉开关。确定一级子目的端口的方法为,取D除以M的余,D mod M, DestPortO 等于该余数,该一级子目的端口为该第一交叉开关的第DestPortO个上游端 □。
步骤S404,接收到数据包的第二叉开关对源端口和目的端口进行比较, 判断两者是否是在同一交换子网,如果是,执行步骤S405,否则执行步骤S407。
判断方法为将目的端口号D和源端口号S分别除以(MX K),比较两个商是 否相同。如果相同,则两者在同一交换子网,否则,两者不在同一交换子网。
歩骤S405,第二交叉开关确定数据包的二级子目的端口,将数据包从二 级子目的端口转发给目的端口所在的第一交叉开关。
确定二级子目的端口的方法为,取D除以M的商,再取该商除以K的余, ((D/M) mod K), DestPortl等于该余数,二级子目的端口为该第二交叉开关 的第DestPortl个下游端口。
歩骤S406,接收到数据包的第一交叉开关确定数据包的三级子目的端口 , 将数据包从三级子目的端口发送,完成将数据包转发到最终的交换芯片目的端 口号的操作。
确定三级子目的端口的方法为,取D除以M的余数,DmodM, DestPort2 等于该余数,三级子目的端口为该第一交叉开关的第DestPort2个下游端口。
步骤S407,第二交叉开关确定数据包的二级子目的端口,将数据包从该 二级子目的端口转发给第三交叉开关。
确定二级子目的端口的方法为,取D除以M的商,再取该商除以K的余数, ((D/M) mod K), DestPortl等于该余数,二级子目的端口为该第二交叉开关 第DestPortl个上游端口。
步骤S408,根据上述1层交叉开关和2层交叉开关连接关系,接收到数 据包的第三交叉开关确定数据包的三级子目的端口 ,将数据包从该三级子目的 端口发送给第二交叉开关。
确定三级子目的端口的方法为,取D除以M乘以K的积的商,(D / (MX K)), DestPort2等于该商,该三级子目的端口为该第三交叉开关的第 DestPort2个下游端口。
步骤S409,根据上述1层交叉开关和2层交叉开关连接关系,接收到数 据包的第二交叉开关确定四级子目的端口 ,将数据包从该四级子目的端口发送给第一交叉开关。
确定四级子目的端口的方法为,取D除以M的商,再取该商除以K的余数,
((D/M) mod K), DestPort3等于该余数,该四级子目的端口为该第二交叉开 关的第DestPort3个下游端口 。
歩骤S410,根据上述0层交叉开关和1层交叉开关连接关系,接收到数 据包的第一交叉开关确定数据包的五级子目的端口 ,将数据包从五级子目的端 口转发,完成将数据包转发到最终的交换芯片目的端口号的操作。
确定目的端口的方法为,取D除以M的余数,D mod M, DestPort4等于 该余数,五级子目的端口为该第一交叉开关的第DestPort4个下游端口。
形式化表述为
If ( D/M 二二 S/M )
DestPort[O] = ( D mod M )DownStream Else If( D/(MXK) =二 S/(MXK)) DestPort[O] = ( D mod M )UpStream DestPort[l] = ( ( D/M ) mod K)DownStream DestPort[2] = ( D mod M )DownStream Else
DestPort
= ( D mod M )UpStream DestPort[1] = ( (D/M) mod K )UpStream DestPort [2] = ( D / (MXK) ) DownStream DestPort[3] = ( (D/M) mod K )DownStream DestPort[4] = ( D mod M )DownStream Endif
本发明三层交换的方法如图4所示。其中,步骤S402、步骤S406、步骤 S410都是第一交叉开关将接收的数据包发送到该数据包的目的端口可以合为 一个步骤,步骤400,第一交叉开关将接收的数据包发送到该数据包的目的端 口 。步骤S401判断为是后,执行步骤400;执行完歩骤S405后,执行步骤400; 执行完步骤S409后,执行步骤400。歩骤S409和步骤S405都是第二交叉开 关将接收的数据包发送到该数据包所在的第一交叉开关,其合并为一个步骤, 步骤411,第二交叉开关将接收的数据包发送到该数据包所在的第一交叉开关。步骤S404判断为是后,执行步骤411;执行完步骤S408后,执行步骤411。 64端口由三层交叉开关组成交换芯片中,端口编号为0 63。在交换芯片 内部采用3层交叉开关结构,并采用上述方法实现三层交叉开关之间连接。第 一交叉开关有8个下游端口和8个上游端口;第二交叉开关有4个下游端口和 4个上游端口;第三交叉开关有2个端口,即M二8, K二4, Q二2。 64个数据端口 分成8组,每组8个端口,分别和第一交叉开关相连。交换子网由4个第一交 叉开关和8个第二交叉开关组成,共有2个交换子网。具体连接示意图如图6 所示。
数据包包头中包含着路由信息,第一交叉开关从接收缓冲区读取数据包包 头块信息,获取这些包的目的端口号。根据上述路由算法获取各级子目的端口 号。交叉开关数据包端口路由方式具体如下源端口为S,目的端口为D,则 路由选择函数如下
If ( D/8 二二 S/8 )
DestPort[O] 二 ( D mod 8 )DownStream Else If( D/(8X4) == S/(8X4)) DestPort[O] = ( D mod 8 )UpStream DestPort[l] = ((D / 8)mod4)DownStream DestPort[2] 二 ( D mod 8 )DownStream Else
DestPort
= ( D mod 8 )UpStream DestPort[1] = ( (D/8) mod 4 ) UpStream DestPort [2] = ( D / (8X4) ) DownStream DestPort[3] 二 ( (D/8) mod 4 )DownStream DestPort[4] = ( D mod 8 )DownStream Endif
假设存在端口号25存在数据包,其目的端口号为28。首先判断该两个端 口是否在同组,因为(25/8 =3) = (28/8二3),所以源端口和目的端口在同一组。 因此3号第一交叉开关选择其下游端口,端口号为4,计算方法为28mod8二 4,进行发送。
假设存在端口号15存在数据包,其目的端口号为23。首先判断该两端口是否在同组,因为(15/8二1) # (23/8=2),所以不在同组;因为(15/(8X4) =0) =(23/(8X4)二0),所以在同一交换子网。因此路由过程将被分为三个阶段。 第一步,l号第一交叉开关选择其上游端口,端口号为7,计算方法为23mod 8 二 7,将数据包发送给第二交叉开关;第二步7号第二交叉开关选择下游端 口,端口号为2,计算方法为((23/8)mod 4=2),将数据包转发给第一交叉 开关;第三步2号第一交叉开关选择下游端口 ,端口号为7,计算方法为23 mod 8 = 7,进行数据包转发,最终发送出交换芯片。
假设存在6端口存在数据包,其目的端口为45号端口。首先判断该两端 口是否在同组,因为(6/8=0) # (45/8=5),所以不在同组;因为(6/(8*4) =0) # (45/(8 *4)=1),也不在同一交换子网。因此路由过程将被分为5个阶段。 第一歩,1号第一交叉开关选择其上游端口,端口号为5,计算方法为(45mod 8 = 5),将数据包转发给第二交叉开关;第二歩,5号第二交叉开关选择其上 游端口,端口号为l,计算方法为((45/8) mod 4= 1),将数据包发送给第三 交叉开关;第三步,21号第三交叉开关选择下游端口,端口号为l,计算方法 为(45/(8*4)=1),将数据包转发给第二交叉开关;第四步,13号第二交叉开 关选择下游端口,端口号为1,计算方法为((45/8) mod 4= 1),将数据包发 送给第一交叉开关;第五步,5号第一交叉开关选择下游端口,端口号为5, 计算方法为(45/8=5),进行数据包转发,最终发送出交换芯片。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条 件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于 以上的说明,而是由权利要求书的范围来确定的。
3权利要求
1. 一种大端口交换芯片的交换系统,所述交换芯片包括多个端口模块,其特征在于,所述系统包括多个第一交叉开关和至少一个第二交叉开关,所述端口模块同所述第一交叉开关连接,所述第二交叉开关同每个所述第一交叉开关连接;所述第一交叉开关,用于在接收到所述端口模块发送的数据包时,判断所述数据包的目的端口是否为所述第一交叉开关自身的端口,如果是,则将所述数据包转发到所述数据包的目的端口,否则将所述数据包转发给一个所述第二交叉开关;所述第二交叉开关,用于在接收到所述第一交叉开关转发的数据包时,将所述数据包转发到所述数据包的目的端口所在的第一交叉开关;由所述数据包的目的端口所在的第一交叉开关将所述数据包转发到所述数据包的目的端口。
2. 如权利要求1所述的大端口交换芯片的交换系统,其特征在于,所述 第一交叉开关包括上游端口和下游端口,所述第二交叉开关包括下游端口,所 述第一交叉开关的下游端口连接所述端口模块,所述第一交叉开关的上游端口 连接所述第二交叉开关的下游端口 。
3. 如权利要求2所述的大端口交换芯片的交换系统,其特征在于, 所述第一交叉开关的下游端口的数目等于所述第一交叉开关的上游端口的数目;所述第二交叉开关的下游端口的数目等于所述第一交叉开关的个数; 所述第二交叉开关的个数等于所述第一交叉开关的上游端口的数目。
4. 如权利要求3所述的大端口交换芯片的交换系统,其特征在于,所述第一交叉开关组成0层交叉开关,所述第二交叉开关组成1层交叉开所述0层交叉开关的第i个第一交叉开关的第j个上游端口同所述1层交 叉开关的第j个第二交叉开关的第i个下游端口连接。
5.如权利要求4所述的大端口交换芯片的交换系统,其特征在于,所述第一交叉开关判断所述数据包的目的端口是否为所述第一交叉开关自身的端 口时进一步用于,将所述数据包的源端口号除以所述第一交叉开关的下游端口的数目所得值上取整的值同所述数据包的目的端口号除以所述第一交叉开关 的下游端口的数目所得值上取整的值比较,如果两值相等,则确定所述数据包 的目的端口为所述第一交叉开关自身的下游端口 ,否则确定所述数据包的目的 端口为其它第一交叉开关的下游端口 。
6. 如权利要求4所述的大端口交换芯片的交换系统,其特征在于, 所述第一交叉开关在将所述数据包转发到所述目的端口时进一歩用于确定所述数据包的目的端口在所述第一交叉开关的下游端口的顺序号为m0,将 所述数据包转发到所述第一交叉开关的第m0个下游端口。
7. 如权利要求6所述的大端口交换芯片的交换系统,其特征在于,所述 顺序号m0等于所述数据的目的端口号除以所述第一交叉开关的下游端口的数 目取整求余所得的余数。
8. 如权利要求4所述的大端口交换芯片的交换系统,其特征在于,所述第一交叉开关在将所述数据包转发给所述第二交叉开关时进一步用于确定转 发所述数据包的所述第一交叉开关上游端口的顺序号ml等于所述数据包的目 的端口号除以所述第一交叉开关上游端口的数目取整求余所得的余数,将所述 数据包从所述第一交叉开关的第ml个上游端口转发给所述第二交叉开关。
9. 如权利要求4所述的大端口交换芯片的交换系统,其特征在于,所述 第二交叉开关在将所述数据包转发到所述数据包的目的端口所在的第一交叉 开关时进一步用于确定所述数据包的目的端口所属的第一交叉开关在所述交 换芯片中的顺序号为m2,将所述数据包经由所述第二交叉开关的第m2个下游 端口转发给该第m2个下游端口连接的第一交叉开关。
10. 如权利要求9所述的大端口交换芯片的交换系统,其特征在于,所述 顺序号m2等于所述数据包的目的端口号除以所述第一交叉开关的下游端口的 数目所得值上取整的值。
11. 一种大端口交换芯片的交换系统,所述交换芯片包括多个端口模块, 其特征在于,所述系统包括多个交换子网和至少一个第三交叉开关,所述交换 子网包括多个第一交叉开关和至少一个第二交叉开关,所述端口模块同所述第 一交叉开关连接,所述第二交叉开关和同一交换子网的每个所述第一交叉开关 连接;所述第三交叉开关同每个所述交换子网中的至少一个第二交叉开关连所述第一交叉开关,用于在接收到所述端口模块转发的数据包时,判断所 述数据包的目的端口是否为所述第一交叉开关自身的端口 ,如果是则将所述数 据包转发到所述数据包的目的端口 ,否则将所述数据包转发给同一交换子网的 一个第二交叉开关;所述第二交叉开关,用于在接收到同一交换子网的第一交叉开关转发的数 据包时,判断所述数据包的源端口和目的端口是否在同一交换子网,如果是, 则将所述数据包转发到所述数据包的目的端口所在的第一交叉开关,由接收所 述数据包的第一交叉开关将所述数据包转发到所述数据包的目的端口 ;否则将 所述数据包转发给一个所述第三交叉开关;所述第三交叉开关,用于在接收到所述第二交叉开关转发的数据包时,将 所述数据包转发到所述数据包的目的端口所在的交换子网的一个第二交叉开 关;由接收所述数据包的第二交叉开关将所述数据包转发到所述数据包的目的 端口所在的第一交叉开关;由接收所述数据包的第一交叉开关将所述数据包转 发到所述数据包的目的端口。
12. 如权利要求11所述的大端口交换芯片的交换系统,其特征在于,所 述第一交叉开关包括上游端口和下游端口 ,所述第二交叉开关包括上游端口和 下游端口,所述第三交叉开关包括下游端口;所述第一交叉开关的下游端口连接所述端口模块;所述第一交叉开关的上游端口连接同一交换子网的所述第二交叉开关的 下游端口;所述第二交叉开关的上游端口连接所述第三交叉开关的下游端口。
13. 如权利要求12所述的大端口交换芯片的交换系统,其特征在于, 所述第一交叉开关的下游端口的数目等于所述第一交叉开关的上游端口的数目,所述第二交叉开关的下游端口的数目等于所述第二交叉开关的上游 端口的数目;所述第三交叉开关的下游端口的数目等于所述交换子网的个数; 所述第三交叉开关的个数等于一个所述交换子网中所有所述第一交叉开关的下游端口的总数;所述第二交叉开关的下游端口的数目等于同一交换子网中所述第一交叉开关的个数;一个交换子网中所述第二交叉开关的个数等于所述第一交叉开关的上游 端口的数目。
14. 如权利要求13所述的大端口交换芯片的交换系统,其特征在于, 同一交换子网的所述第一交叉开关组成0层交叉开关,同一交换子网的所述第二交叉开关组成1层交叉开关,所述第三交叉开关组成2层交叉开关;同一交换子网的所述0层交叉开关的第i个第一交叉开关的第j个上游端 口同所述交换子网的1层交叉开关的第j个第二交叉开关的第i个下游端口连2层交叉开关的第k个第三交叉开关的第q个下游端口同第q个交换子网 的第k个上游端口连接。
15. 如权利要求14所述的大端口交换芯片的交换系统,其特征在于,所 述第一交叉开关判断所述数据包的目的端口是否为所述第一交叉开关自身的 端口时进一步用于将所述数据包的源端口号除以所述第一交叉开关的下游端 口的数目的所得值上取整的值同所述数据包的目的端口号除以所述第一交叉 开关的下游端口的数目的所得值上取整的值比较,如果两个值相等,则所述数 据包的目的端口为所述第一交叉开关自身的下游端口 ,否则所述数据包的目的 端口为其它第一交叉开关的下游端口 。
16. 如权利要求14所述的大端口交换芯片的交换系统,其特征在于,所述第一交叉开关在将所述数据包转发到所述数据包的目的端口时进一 步用于确定所述数据包的目的端口在所述第一交叉开关的下游端口中的顺序 号为n0,将所述数据包转发到所述第一交叉开关的第n0个下游端口。
17. 如权利要求16所述的大端口交换芯片的交换系统,其特征在于,所 述顺序号n0等于所述数据包的目的端口号除以所述第一交叉开关的下游端口 的数目取整求余所得的余数。
18. 如权利要求14所述的大端口交换芯片的交换系统,其特征在于,所 述第一交叉开关在将所述数据包转发给同一交换子网的第二交叉开关时进一 歩用于确定转发所述数据包的所述第一交叉开关上游端口的顺序号nl等于所 述数据包的目的端口号除以所述第一交叉开关的上游端口的数目取整求余所 得的的余数,将所述数据包从所述第一交叉开关的第nl个上游端口转发给所 述第二交叉开关。
19. 如权利要求14所述的大端口交换芯片的交换系统,其特征在于,所 述第二交叉开关在判断所述数据包的源端口和目的端口是否在同一交换子网 时进一歩用于将所述数据包的源端口号除以一个交换子网中所有所述第一交 叉开关的下游端口的总数所得值上取整的值同所述数据包的目的端口号除以 一个交换子网中所有所述第一交叉开关的下游端口的总数所得值上取整的值 比较,如果两个值相等,则所述数据包的源端口和目的端口在同一交换子网, 否则所述数据包的源端口和目的端口不在同一交换子网。
20. 如权利要求14所述的大端口交换芯片的交换系统,其特征在于,所述第二交叉开关在将所述数据包转发到所述数据包的目的端口所在的 第一交叉开关时进一步用于确定所述数据包的目的端口所属的第一交叉开关在其所属交换子网中的顺序号为n2,将所述数据包从所述第二交叉开关的第 n2个下游端口转发给所述第一交叉开关。
21. 如权利要求20所述的大端口交换芯片的交换系统,其特征在于,所 述顺序号n2等于所述数据包的目的端口号除以所述第一交叉开关的下游端口 的数目所得值上取整的值除以一个交换子网中所述第一交叉开关的个数的取 整求余所得的余数。
22. 如权利要求14所述的大端口交换芯片的交换系统,其特征在于, 所述第二交叉开关在将所述数据包转发给所述第三交叉开关时进一步用于确定所述数据包的目的端口所属的第一交叉开关在其所属交换子网中的顺 序号为n3,将所述数据包从所述第二交叉开关的第n3个上游端口转发给所述 第三交叉开关。
23. 如权利要求22所述的大端口交换芯片的交换系统,其特征在于,所 述顺序号n3等于所述数据包的目的端口号除以所述第一交叉开关的下游端口 的数目所得值上取整的值除以一个交换子网中所述第一交叉开关的个数的取 整求余所得的余数。
24. 如权利要求14所述的大端口交换芯片的交换系统,其特征在于,所述第三交叉开关在将所述数据包转发到所述数据包的目的端口所在的 交换子网时进一步用于确定所述数据包的目的端口所属交换子网在所述交换 芯片中的顺序号为n4,将所述数据包从所述第三交叉开关的第n4个下游端口 转发给所述第二交叉开关。
25. 如权利要求24所述的大端口交换芯片的交换系统,其特征在于,所述顺序号n4等于所述数据包的目的端口号除以一个交换子网中所有所述第一交叉开关的下游端口的总数的所得值上取整的值。
26. —种大端口交换芯片的交换方法,其特征在于,包括步骤l,将所述交换芯片的多个端口模块分别同第一交叉开关连接,将第二交叉开关同每个所述第一交叉开关连接;步骤2,所述第一交叉开关接收到所述端口模块发送的数据包,判断所述 数据包的目的端口是否为所述第一交叉开关自身的端口,如果是则执行歩骤 4,否则,将所述数据包转发给一个所述第二交叉开关;步骤3,所述第二交叉开关接收到所述第一交叉开关转发的数据包,将所 述数据包转发到所述数据包的目的端口所在的第一交叉开关;步骤4,所述第一交叉开关将所述数据包转发到所述数据包的目的端口 。
27. 如权利要求26所述的大端口交换芯片的交换方法,其特征在于,所 述第一交叉开关包括上游端口和下游端口 ,所述第二交叉开关包括下游端口 ;所述歩骤1进一歩为将所述第一交叉开关的下游端口连接所述端口模块, 所述第一交叉开关的上游端口连接所述第二交换芯片的下游端口。
28. 如权利要求27所述的大端口交换芯片的交换方法,其特征在于,所述第一交叉开关的下游端口的数目等于所述第一交叉开关的上游端口 的数目;所述第二交叉开关的下游端口的数目等于所述第一交叉开关的个数; 所述第二交叉开关的个数等于所述第一交叉开关的上游端口的数目。
29. 如权利要求28所述的大端口交换芯片的交换方法,其特征在于, 所述第一交叉开关组成0层交叉开关,所述第二交叉开关组成1层交叉开、 所述步骤1进一步为将所述0层交叉开关的第i个第一交叉开关的第j 个上游端口同所述1层交叉开关的第j个第二交叉开关的第i个下游端口连
30. 如权利要求29所述的大端口交换芯片的交换方法,其特征在于, 所述步骤2中判断所述数据包的目的端口是否为所述第一交叉开关自身的端口进一歩为将所述数据包的源端口号除以所述第一交叉开关的下游端口的数目所得值上取整的值同所述数据包的目的端口号除以所述第一交叉开关 的下游端口的数目所得值上取整的值比较,如果两个值相等,则所述数据包的 目的端口为所述第一交叉开关自身的下游端口 ,否则所述数据包的目的端口为 其它第一交叉开关的下游端口。
31. 如权利要求29所述的大端口交换芯片的交换方法,其特征在于所述步骤4进一步为步骤311,确定所述数据包的目的端口在所述第一交叉开关的下游端口中 的顺序号为m0;步骤312,将所述数据包转发到所述第一交叉开关的第m0个下游端口 。
32. 如权利要求31所述的大端口交换芯片的交换方法,其特征在于,所 述顺序号ra0等于所述数据包的目的端口号除以所述第一交叉开关的下游端口 的数目取整求余所得的余数。
33. 如权利要求29所述的大端口交换芯片的交换方法,其特征在于,所 述歩骤2中将所述数据包转发给所述第二交叉开关进一步包括步骤331,确定转发所述数据包的所述第一交叉开关上游端口的顺序号ml 等于所述数据包的目的端口号除以所述第一交叉开关的上游端口的数目取整 求余所得的余数;步骤332,将所述数据包从所述第一交叉开关的第ml个上游端口转发给 所述第二交叉开关。
34. 如权利要求29所述的大端口交换芯片的交换方法,其特征在于,所 述步骤3进一步为步骤341,确定所述数据包的目的端口所属第一交叉开关在所述交换芯片 中的的顺序号为m2;步骤342,将所述数据包从所述第二交叉开关的第m2个下游端口转发给 所述第一交叉开关。
35. 如权利要求34所述的大端口交换芯片的交换方法,其特征在于,所 述顺序号m2等于所述数据包的目的端口号除以所述第一交叉开关的下游端口 的数目所得值上取整的值。
36. —种大端口交换芯片的交换方法,其特征在于,包括步骤l,第一交叉开关和第二交叉开关组成多个交换子网,将多个端口模块同所述第一交叉开关连接,将所述第二交叉开关和同一交换子网的每个所述 第一交叉开关连接,将所述第三交叉开关同每个所述交换子网中的至少一个第 二交叉开关连接;步骤2,所述第一交叉开关接收所述端口模块发送的数据包,判断所述数 据包的目的端口是否为所述第一交叉开关自身的端口,如果是则执行步骤6, 否则,将所述数据包转发给同一交换子网的一个第二交叉开关;步骤3,所述第二交叉开关接收同一交换子网的第一交叉开关转发的数据包,判断所述数据包的源端口和目的端口是否在同一交换子网,如果是,则执行步骤5,否则将所述数据包转发给一个所述第三交叉开关;步骤4,所述第三交叉开关接收所述第二交叉开关转发的数据包,将所述数据包转发到所述数据包的目的端口所在的交换子网的一个第二交叉开关;步骤5,所述第二交叉开关将所述数据包转发给所述数据包目的端口所在 的第一交叉开关;步骤6,所述第一交叉开关将所述数据包转发到所述数据包的目的端口 。
37. 如权利要求36所述的大端口交换芯片的交换方法,其特征在于,所 述第一交叉开关包括上游端口和下游端口 ,所述第二交叉开关包括上游端口和 下游端口,所述第三交叉开关包括下游端口;所述步骤l进一步为步骤371,将所述第一交叉开关的下游端口同所述端口模块连接;步骤372,将所述第一交叉开关的上游端口和同一交换子网的所述第二交 叉开关的下游端口连接;步骤373,将所述第二交叉开关的上游端口同所述第三交叉开关的下游端 口连接。
38. 如权利要求37所述的大端口交换芯片的交换方法,其特征在于, 所述第一交叉开关的下游端口的数目等于所述第一交叉开关的上游端口的数目,所述第二交叉开关的下游端口的数目等于所述第二交叉开关的上游端 口的数目;所述第三交叉开关的下游端口的数目等于所述交换子网的个数; 所述第三交叉开关的个数等于一个所述交换子网中所有所述第一交叉开 关的下游端口的总数;所述第二交叉开关的下游端口的数目等于同一交换子网中所述第--交叉 开关的个数;一个交换子网中所述第二交叉开关的个数等于所述第一交叉开关的上游 端口的数目。
39. 如权利要求38所述的大端口交换芯片的交换方法,其特征在于,同-交换子网的所述第一交叉开关组成o层交叉开关,同一交换子网的所述第二交叉开关组成1层交叉开关,所述第三交叉开关组成2层交叉开关;所述步骤372进一步为将同一交换子网的所述0层交叉开关的第i个第一 交叉开关的第j个上游端口同所述交换子网的1层交叉开关的第j个第二交叉 开关的第i个下游端口连接;歩骤373进一步为将2层交叉开关的第k个第三交叉开关的第q个下游端 口同第q个交换子网的第k个上游端口连接。
40. 如权利要求39所述的大端口交换芯片的交换方法,其特征在于, 所述步骤2中判断所述数据包的目的端口是否为所述第一交叉开关自身的端口进一步为将所述数据包的源端口号除以所述第一交叉开关的下游端口 的数目所得值上取整的值同所述数据包的目的端口号除以所述第一交叉开关 的下游端口的数目所得值上取整的值比较,如果两个值相等,则所述数据包的 目的端口为所述第一交叉开关自身的下游端口 ,否则所述数据包的目的端口为 其它第一交叉开关的下游端口 。
41. 如权利要求39所述的大端口交换芯片的交换方法,其特征在于,所 述步骤6进一步为步骤411 ,确定所述数据包的目的端口在所述第一交叉开关的下游端口中 的顺序号为n0;歩骤412,将所述数据包转发到所述第一交叉开关的第n0个下游端口。
42. 如权利要求41所述的大端口交换芯片的交换方法,其特征在于,所 述顺序号n0等于所述数据包的目的端口号除以所述第一交叉开关的下游端口 的数目取整求余所得的余数。
43. 如权利要求39所述的大端口交换芯片的交换方法,其特征在于,所 述步骤2中将所述数据包转发给同一交换子网的第二交叉开关进一步为步骤431,确定转发所述数据包的所述第一交叉开关上游端口的顺序号nl等于所述数据包的目的端口号除以所述第一交叉开关的上游端口的数目取整 求余所得的余数;步骤432,将所述数据包从所述第一交叉开关的第nl个上游端口转发给 所述第二交叉开关。
44. 如权利要求39所述的大端口交换芯片的交换方法,其特征在于,所 述步骤3屮判断所述数据包的源端口和目的端口是否在同一交换子网进一歩 为将所述数据包的源端口号除以一个交换子网中所有所述第一交叉开关的下 游端口的总数所得值上取整的值同所述数据包的目的端口号除以一个交换子 网中所有所述第一交叉开关的下游端口的总数所得值上取整的值比较,如果两 个值相等,则所述数据包的源端口和目的端口在同一交换子网,否则所述数据 包的源端口和目的端口不在同一交换子网。
45. 如权利要求39所述的大端口交换芯片的交换方法,其特征在于, 所述歩骤5进一步为步骤451,确定所述数据包的目的端口所属的第一交叉开关在其所属交换 子网中的顺序号为n2;步骤452,将所述数据包从所述第二交叉开关的第n2个下游端口转发给 所述第一交叉开关。
46. 如权利要求45所述的大端口交换芯片的交换方法,其特征在于,所 述顺序号n2等于所述数据包的目的端口号除以所述第一交叉开关的下游端口 的数目的所得值上取整的值除以一个交换子网中所述第一交叉开关的个数的 取整求余所得的余数。
47. 如权利要求39所述的大端口交换芯片的交换方法,其特征在于, 所述步骤3中在将所述数据包转发给所述第三交叉开关进一步为 步骤471,确定所述数据包的目的端口所属的第一交叉开关在其所属交换子网中的顺序号为n3;步骤472,将所述数据包从所述第二交叉开关的第n3个上游端口转发给 所述第三交叉开关。
48. 如权利要求47所述的大端口交换芯片的交换方法,其特征在于,所 述顺序号n3等于所述数据包的目的端口号除以所述第一交叉开关的下游端口 的数目的所得值上取整的值除以一个交换子网中所述第一交叉开关的个数的取整求余所得余数。
49. 如权利要求39所述的大端口交换芯片的交换方法,其特征在于,所述步骤4进一步为步骤491,确定所述数据包的目的端口所属交换子网在所述交换芯片中的 顺序号为n4;步骤492,将所述数据包从所述第三交叉开关的第n4个下游端口转发给 所述第二交叉开关。
50. 如权利要求49所述的大端口交换芯片的交换方法,其特征在于,所 述顺序号n4等于所述数据包的目的端口号除以一个交换子网中所有所述第一 交叉开关的下游端口的总数的所得值上取整的值。
全文摘要
本发明涉及大端口交换芯片的交换系统及方法,交换芯片包括多个端口模块,交换系统包括多个第一交叉开关和至少一个第二交叉开关,端口模块同第一交叉开关连接,第二交叉开关同每个第一交叉开关连接;第一交叉开关,用于在接收到端口模块发送的数据包时,判断数据包的目的端口是否为第一交叉开关自身的端口,如果是,则将数据包转发到数据包的目的端口,否则将数据包转发给第二交叉开关;第二交叉开关,用于在接收到第一交叉开关转发的数据包时,将数据包转发到数据包的目的端口所在的第一交叉开关,由数据包的目的端口所在的第一交叉开关将数据包转发到数据包的目的端口。本发明能够降低交换芯片的复杂度,并实现在同一交换机上进行大规模的交换。
文档编号H04L12/56GK101442488SQ20081024107
公开日2009年5月27日 申请日期2008年12月25日 优先权日2008年12月25日
发明者孙凝晖, 安学军, 王达伟, 涛 胡 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1