WO2022183789A1 - 数据交换系统、方法及存储介质 - Google Patents
数据交换系统、方法及存储介质 Download PDFInfo
- Publication number
- WO2022183789A1 WO2022183789A1 PCT/CN2021/133216 CN2021133216W WO2022183789A1 WO 2022183789 A1 WO2022183789 A1 WO 2022183789A1 CN 2021133216 W CN2021133216 W CN 2021133216W WO 2022183789 A1 WO2022183789 A1 WO 2022183789A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- switching
- switching node
- data
- input
- level
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000005406 washing Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
Abstract
本申请提供一种数据交换系统、方法及存储介质。该系统包括:控制模块以及数据交换网络,数据交换网络与控制模块连接;控制模块用于根据数据交换网络中每个交换节点所关联的输入端口的有效性指示信号,配置相应的交换节点的状态值,其中,存在至少一个交换节点关联于多个输入端口;数据交换网络用于根据每个交换节点的状态值,将各输入端口的输入数据逐级传输至对应的目的输出端口。
Description
相关申请的交叉引用
本申请基于申请号为“202110244742.9”、申请日为2021年03月05日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此以引入方式并入本申请。
本申请涉及数据交换网络,例如涉及一种数据交换系统、方法及存储介质。
在通讯产品中,尤其在软件定义网络(Software Defined Network,SDN)、通讯芯片、并行计算等通讯领域的通讯产品中,存在大量的数据交换过程,通常情况下,采用交叉开关矩阵(Crossbar)构成数据交换网络。输入数据经过输入端口进入交叉开关矩阵中,通过控制交叉开关矩阵中各交换节点的工作状态,控制输入数据在交叉开关矩阵中按照特定的路径传输,最终从输出端口排列输出,完成数据交换。
在交叉开关矩阵结构中,每个交换节点的工作状态都是根据相应的一个输入端口和一个输出端口决定的,即,内部连线总数以及所使用的比较器的数量均为输入端口数量和输出端口数量的乘积,在输入端口和输出端口的数量较大的情况下,交叉开关矩阵结构的内部连线总数和比较器数量很多,占用过多的资源,并且数据交换网络的成本高。
发明内容
本申请实施例提供一种数据交换系统,包括:
控制模块以及数据交换网络,所述数据交换网络与所述控制模块连接;
所述控制模块用于根据所述数据交换网络中每个交换节点所关联的输入端口的有效性指示信号,配置相应的交换节点的状态值,其中,存在至少一个交换节点关联于多个输入端口;
所述数据交换网络用于根据每个交换节点的状态值,将各所述输入端口的输入数据逐级传输至对应的目的输出端口。
本申请实施例还提供了一种数据交换方法,包括:
根据数据交换网络中每个交换节点所关联的输入端口的有效性指示信号,配置相应的交换节点的状态值,其中,存在至少一个交换节点关联于多个输入端口;
根据各所述交换节点的状态值,通过各所述交换节点将各所述输入端口的输入数据传输至对应的目的输出端口。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的数据交换方法。
图1为一实施例提供的一种数据交换系统的结构示意图;
图2为一实施例提供的一种数据交换的实现示意图;
图3为一实施例提供的一种数据交换网络的结构示意图;
图4为一实施例提供的一种8×8的数据交换网络的结构示意图;
图5为一实施例提供的一种数据交换方法的流程图。
本申请实施例提供一种数据交换系统、方法及存储介质,以降低数据交换网络的成本,提高资源使用效率。
本申请实施例提供了一种数据交换系统、方法及存储介质。该系统包括:控制模块以及数据交换网络,数据交换网络与控制模块连接;控制模块用于根据数据交换网络中每个交换节点所关联的输入端口的有效性指示信号,配置相应的交换节点的状态值,其中,存在至少一个交换节点关联于多个输入端口;数据交换网络用于根据每个交换节点的状态值,将各输入端口的输入数据逐级传输至对应的目的输出端口。上述技术方案一个交换节点的工作状态根据多个输入端口的有效性指示信号确定,一个交换节点的工作状态可控制多个输入端口的输入数据的交换链路路径,从而使用较少的交换节点和比较器即可实现数据交换,降低了数据交换网络的成本,提高了资源使用效率。
下面结合附图和实施例对本申请进行说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在数据交换网络(即交叉开关矩阵结构)中,交换节点可利用比较器实现,交换节点的工作状态有两种:交叉(Cross)状态和直通(Bar)状态。每个交换节点有两个输入端和两个输出端。当一个交换节点处于直通状态时,该交换节点实现的功能是第一输入端输入的数据传输至第一输出端,第二输入端输入的数据传输至第二输出端;当一个交换节点处于交叉状态时,该交换节点实现的功能是第一输入端输入的数据传输至第二输出端,第二输入端输入的数据传输至第一输出端。
对于一个具有N个输入端口到M个输出端口的数据交换网络,在现有技术中,每个交换节点的工作状态取决于其关联的一个输入端口和一个输出端口。因此,为了实现数据从N个输入端口到M个输出端口的任意路径的交换,内部连线总数需要达到N×M,交换节点的数量也达到N×M个。当输入端口和/或输出端口的数量较大时,数据交换网络内部的连线总数和比较器的数量将非常巨大,占用过多的资源,资源使用效率低且数据交换网络的硬件成本高。
本申请实施例提供一种数据交换系统,存在至少一个交换节点关联于数据交换网络的多个输入端口,即,每个交换节点的工作状态是根据至少一个与其关联的输入端口的有效性指示信号决定的,在此基础上,为一个交换节点所配置的工作状态,可以控制一个或多个输入端口的输入数据的交换链路路径,从而使用较少的连线和比较器,即可实现数据从N个输入端口到M个输出端口的任意路径的交换,降低了数据交换网络的成本,提高了资源使用效率。
图1为一实施例提供的一种数据交换方法的流程图,如图1所示,本实施例提供的系统包括步骤:控制模块110以及数据交换网络120,数据交换网络120与控制模块110连接。 其中,控制模块110用于根据数据交换网络120中每个交换节点所关联的输入端口的有效性指示信号,配置相应的交换节点的状态值,其中,存在至少一个交换节点关联于多个输入端口;数据交换网络120用于根据每个交换节点的状态值,将各输入端口的输入数据逐级传输至对应的目的输出端口。
本实施例中,控制模块110通过编译器实现对数据交换网络120中各交换节点工作状态的配置,进而完成对各输入端口的输入数据的交换链路路径的配置。对于每个交换节点,控制模块110根据该交换节点与输入端口之间的关联关系,通过软件配置或硬件电路,对该交换节点所关联的输入端口的输入数据的有效性指示信号进行计算,配置该交换节点的工作状态。在此基础上,数据交换网络120根据控制模块110的配置结果,将各输入端口的输入数据逐级传输到最终的目的输出端口,在此基础上,通过目的输出端口输出数据。
本实施例中,存在至少一个交换节点关联于多个输入端口。例如,对于同一级内交换节点,第一个交换节点的工作状态取决于第一个输入端口;第二个交换节点的工作状态取决于第一个至第三个输入端口;第三个交换节点的工作状态取决于第一个至第五个输入端口……,依次类推,最后一个交换节点的工作状态取决于第一个至倒数第二个输入端口。此外,每级交换节点也可以进一步划分为多个组,也可为每组交换节点都建立与各输入端口的关联关系。
在一实施例中,控制模块110包括有效性计算单元和工作状态配置单元,有效性计算单元用于根据数据交换网络120中每个交换节点所关联的输入端口的有效性指示信号,计算相应的交换节点的状态值,工作状态配置单元用于根据各交换节点的状态值配置各交换节点的工作状态。
在一实施例中,数据交换网络包括N个输入端口、M个输出端口以及L级交换节点,其中,M和N均为大于2的整数;相邻的两级交换节点之间采用逆均匀洗牌的方式连接,逆均匀洗牌的方式满足:后一级交换节点的输入端口的二进制地址为与其相连的前一级交换节点的输出端口的二进制地址循环右移一位的结果。
本实施例中,数据交换网络120中的交换节点分为L级,输入端口的输入数据经由第一级、第二级……第L级交换节点逐级传输至目的输出端口,其中,第一级交换节点是指与N个输入端口连接的交换节点,第二级交换节点是指用于连接第一级交换节点和第三级交换节点的交换节点,以此类推,第L级交换节点作为数据交换网络120中的最后一级交换节点,可以通过输出端口将来自于第L-1级交换节点的数据输出,从而实现数据交换。相邻的两级交换节点之间采用逆均匀洗牌的方式连接。逆均匀洗牌是一种互连函数,其含义是将后一级交换节点的输入端口均分成两部分,第一部分的输入端口按序依次与前一级交换节点的间隔的输出端口相连接,第二部分的输入端口也按序依次与前一级交换节点剩余的输出端口相连接。
例如,每级交换节点有八个输入端口和八个输出端口,在相邻两级交换节点中,将后一级交换节点分为两部分,每个部分都有四个输入端口,则逆均匀洗牌连接是指:
第一部分的第一个输入端口与前一级交换节点的第一个输出端口相连接;
第一部分的第二个输入端口与前一级交换节点的第三个输出端口相连接;
第一部分的第三个输入端口与前一级交换节点的第五个输出端口相连接;
第一部分的第四个输入端口与前一级交换节点的第七个输出端口相连接;
第一部分的连接方式确定后,前一级交换节点剩余的输出端口为第二、四、六、八个输出端口,则:
第二部分的第一个输入端口与前一级交换节点的第二个输出端口相连接;
第二部分的第二个输入端口与前一级交换节点的第四个输出端口相连接;
第二部分的第三个输入端口与前一级交换节点的第六个输出端口相连接;
第二部分的第四个输入端口与前一级交换节点的第八个输出端口相连接。
更具体的,将后一级交换节点的八个输入端口分别记为输入端口0~7,前一级交换节点的八个输出端口分别记为输出端口0~7,则有:
后一级的输入端口0(二进制地址为000)与前一级的输出端口0(二进制地址为000)连接;
后一级的输入端口1(二进制地址为001)与前一级的输出端口2(二进制地址为010)连接;
后一级的输入端口2(二进制地址为010)与前一级的输出端口4(二进制地址为100)连接;
后一级的输入端口3(二进制地址为011)与前一级的输出端口6(二进制地址为110)连接;
后一级的输入端口4(二进制地址为100)与前一级的输出端口1(二进制地址为001)连接;
后一级的输入端口5(二进制地址为101)与前一级的输出端口3(二进制地址为011)连接;
后一级的输入端口6(二进制地址为110)与前一级的输出端口5(二进制地址为101)连接;
后一级的输入端口7(二进制地址为111)与前一级的输出端口7(二进制地址为111)连接。
可见,对于逆均匀洗牌的连接方式,将前一级交换节点的二进制地址循环右移一位即得到对应的后一级交换节点的二进制地址。
图2为一实施例提供的一种数据交换的实现示意图。如图2所示,控制模块110计算数据交换网络120中各交换节点的工作状态,从而为每个交换节点配置一个状态值,例如状态值为“1”表示交换节点为交叉状态,状态值为“0”表示交换节点为直通状态,从而控制输入数据在整个数据交换网络120中的交换链路路径,保证输入数据能够正确交换到目的输出端口。在数据交换网络120中,数据通过多级交换节点逐级传输,其中,每一级的输出作为中间数据,在数据交换网络120的每两级之间,前一级的输出作为后一级的输入。此外,前一级交换节点输出的有效性指示信号还输入至控制模块110,供控制模块110计算下一级交换节点的工作状态。
图3为一实施例提供的一种数据交换网络的结构示意图。如图3所示,输入数据经过N个输入端口121进入各级交换节点123,各输入端口121的输入数据的有效性指示信号决定了与其关联的交换节点的工作状态,从而实现输入数据在各级交换节点123中逐级传输,使有效的输入数据分别经过对应的交换链路路径传输至目的输出端口,最终所有输入数据从M个输出端口122有序输出。
在一实施例中,每级交换节点包括P个交换节点;在N取值为2的幂次方且N≥M的情况下,L=log
2(N),P=N/2;
在M取值为2的幂次方且N<M的情况下,L=log
2(M),P=M/2;
在N取值非2的幂次方且N’≥M的情况下,L=log
2(N’),P=N’/2;
在M取值非2的幂次方且N<M’的情况下,L=log
2(M’),P=M’/2;
其中,N’为大于N且满足2的幂次方的数值中,取值最小的数值;M’为大于M且满足2的幂次方的数值中,取值最小的数值。
本实施例中,对于一个具有N个输入端口和M个输出端口的数据交换网络,在N取值为2的幂次方的情况下,若N≥M,则每级交换节点包括N/2个交换节点,数据交换网络中交换节点的数量为N/2×log
2(N),从N个输入端口到第L级交换节点之间的连线总数为N×log
2(N);在N<M的情况下,每级交换节点包括M/2个交换节点,数据交换网络中交换节点的数量为M/2×log
2(M);从N个输入端口到第L级交换节点之间的连线总数为M×log
2(M)。
在N取值不是2的幂次方且N’≥M的情况下,可以将N视为大于N、且满足2的幂次方的数值中最小的一个,据此计算交换节点的级数以及个数,以确保系统中的交换节点级数和个数足够实现从N个输入端口到M个输出端口任意路径的数据交换。例如,N为7,则根据N’=8(N’≥M)计算得到L=3,P=4;N为10,则根据N’=16(N’≥M)计算得到L=4,P=8。同理,在M取值非2的幂次方且N<M’的情况下,可以将M视为大于M、且满足2的幂次方的数值中最小的一个,据此计算交换节点的级数以及个数。例如,M为7,则根据M’=8(N<M’)计算得到L=3,P=4;M为10,则根据M’=16(N<M’)计算得到L=4,P=8。
在N≥M的情况下,该数据交换网络也可以理解为数据挤泡网络,即将较多的输入端口的输入数据交换至较少(或等量)的输出端口。可见,相比于每个交换节点关联于一个输入端口(内部连线总数为N×M,交换节点的数量也为N×M),本实施例的数据交换网络使用较少的连线和比较器,即可实现数据交换,降低了硬件成本。
本实施例中,第一级交换节点整体为一组,且在第一级交换节点中:
第1个交换节点关联于1个输入端口;
第2个交换节点关联于3个输入端口(例如为第1个至第3个输入端口);
第3个交换节点关联于5个输入端口(例如为第1个至第5个输入端口);
……,以此类推,第y个交换节点关联于2y-1个输入端口(例如为第1个至第2y-1个输入端口)。
对于第二级交换节点,划分为两组,在第一组中,第1个交换节点关联于1个输入端口,第2个交换节点关联于3个输入端口,第3个交换节点关联于5个输入端口……,以此类推,第y个交换节点关联于2y-1个输入端口;同理,在第二组中,第1个交换节点关联于1个输入端口,第2个交换节点关联于3个输入端口,第3个交换节点关联于5个输入端口……,以此类推,第y个交换节点关联于2y-1个输入端口。
类似的,第三级交换节点可分为四组,第四级交换节点可分为八组……,以此类推,第l级交换节点被划分为X
l组,在每一组中,第y个交换节点关联于2y-1个输入端口。
在此基础上,为一个交换节点配置的工作状态可以控制一个或多个输入端口的输入数据的交换链路路径。
在一实施例中,第l级交换节点的输入端口被划分为X
l组;每组中的第y个交换节点关联于相应组的输入端口中的第1个至第2y-1个输入端口,其中,输入端口按照端口号顺序 排列。
例如,第一级交换节点整体为一组,且在第一级交换节点中:
第1个交换节点关联于第1个输入端口(输入端口0);
第2个交换节点关联于第1个至第3个输入端口(输入端口0~输入端口2);
第3个交换节点关联于第1个至第5个输入端口(输入端口0~输入端口3);
……,以此类推,第y个交换节点关联于第1个至第2y-1个输入端口(输入端口0~输入端口2y-1)。
第二级交换节点划分为两组,第二级交换节点的输入端口也划分两组,每组交换节点分别与相应的一组输入端口关联。例如,第一组交换节点关联于第一组输入端口,其中,第一组交换节点中的第1个交换节点关联于第一组输入端口中的第1个输入端口,第一组交换节点中的第2个交换节点关联于第一组输入端口中的第1个至第3个输入端口,第一组交换节点中的第3个交换节点关联于第一组输入端口中的第一级的第1个至5个输入端口……,以此类推,第一组交换节点中的第y个交换节点关联于第一组输入端口中的第1个至第2y-1个输入端口;同理,第二组交换节点关联于第二组输入端口,其中,第二组交换节点中的第1个交换节点关联于第二组输入端口中的的第1个输入端口,第二组交换节点中的第2个交换节点关联于第二组输入端口中的的第1个至第3个输入端口,第二组交换节点中的第3个交换节点关联于第二组输入端口中的第一级的第1个至5个输入端口……,以此类推,第二组交换节点中的第y个交换节点关联于第二组输入端口中的的第1个至第2y-1个输入端口。
类似的,第三级交换节点可分为四组,第四级交换节点可分为八组……,以此类推,第l级交换节点被划分为X
l组,在每一组中,第y个交换节点关联于相应组的输入端口中的第1个至第2y-1个输入端口。
在此基础上,为一个交换节点配置的工作状态可以控制其关联的第1个至第2y-1个输入端口的输入数据的交换链路路径。
在一实施例中,第l级交换节点与第l+1级交换节点分别被等分为X
l个部分,第l级交换节点与第l+1级交换节点对应部分的内部采用逆均匀洗牌的方式连接,1≤l≤L-1;
所述逆均匀洗牌的方式满足:在第l级交换节点与第l+1级交换节点对应部分的内部,后一级交换节点的输入端口的二进制地址为与其相连的前一级交换节点的输出端口的二进制地址循环右移一位的结果。
本实施例中,为了进一步提高连接的均匀性和随机性,将第l级交换节点等分为X
l部分,将第l+1级交换节点也等分为X
l部分,且第l级交换节点的第一部分与第l+1级交换节点的第一部分之间采用逆均匀洗牌的方式连接,第l级交换节点的第二部分与第l+1级交换节点的第二部分之间采用逆均匀洗牌的方式连接……,以此类推,第l级交换节点的第X
l部分与第l+1级交换节点的第X
l部分之间采用逆均匀洗牌的方式连接。在此基础上,使数据交换网络中各交换节点的分布更均匀,数据在不同交换节点之间的交换路径更灵活。
图4为一实施例提供的一种8×8的数据交换网络的结构示意图。如图4所示,第一级交换节点包括交换节点0-3,第二级交换节点包括交换节点4-7,第三级交换节点包括交换节点8-11。第一级交换节点和第二级交换节点之间采用逆均匀洗牌连接;第二级交换节点和第三级交换节点都被等分为两部分,两个部分内部各自采用逆均匀洗牌连接,即交换节点4和5与交换节点8和9之间采用逆均匀洗牌连接,交换节点6和7与交换节点10和11之间采用逆均匀洗牌连接;第三级交换节点和第四级交换节点都被等分为四部分,四个部分内部 各自采用逆均匀洗牌连接;以此类推,第L-1级交换节点与第L级交换节点之间,将节点等分为X
L-1个部分,每个部分内部各自采用逆均匀洗牌连接。
在一实施例中,控制模块,用于:对于第l级的第x组交换节点中的第一个交换节点,对该交换节点所关联的一个输入端口的有效性指示信号的值进行取非运算,得到该交换节点的状态值;对于第l级的第x组交换节点中的第y个交换节点,对该交换节点所关联的2y-1个输入端口的有效性指示信号的值进行异或非运算,得到该交换节点的状态值;其中,1≤x≤X
l,
本实施例中,对于第一级交换节点,第一个交换节点的状态值为对其关联的一个输入端口输入的有效性指示信号的值进行取非运算;第二个交换节点的状态值为对其关联的第一个至第三个输入端口输入的有效性指示信号的值进行异或非运算;第三个交换节点的状态值为对其关联的第一个至第五个输入端口输入的有效性指示信号的值进行异或非运算……,以此类推,直到最后一个交换节点的状态值为对除最后一个输入端口以外的其余所有输入端口输入的有效性指示信号的值进行异或非运算。
第二级交换节点分为两组,第二级交换节点的输入端口也分为两组,其中,第一组交换节点中的第一个交换节点的状态值为对该组关联的第一个输入端口(即第一组输入端口中的第一个输入端口)输入的有效性指示信号的值进行取非运算,第二组交换节点的第一个交换节点的状态值为对该组关联的第一个输入端口(即第二组输入端口中的第一个输入端口)输入的有效性指示信号的值进行取非运算;
第一组交换节点中的第二个交换节点的状态值为对该组关联的第一个至第三个输入端口(即第一组输入端口中的第1~3个输入端口)输入的有效性指示信号的值进行异或非运算,第二组交换节点中的第二个交换节点的状态值为对该组关联的第一个至第三个输入端口(即第二组输入端口中的第1~3个输入端口)输入的有效性指示信号的值进行异或非运算;
……,以此类推,直到第一组交换节点中的最后一个交换节点的状态值为对该组关联的除最后一个输入端口的所有其余输入端口(即第一组输入端口中的第一个至倒数第二个输入端口)输入的有效性指示信号的值进行异或非运算,第二组交换节点中的最后一个交换节点的状态值为对该组关联的除最后一个输入端口的所有其余输入端口(即第二组输入端口中的第一个至倒数第二个输入端口)输入的有效性指示信号的值进行异或非运算。
同理,对第三级及其之后的交换节点和输入端口也进行上述分组和运算,最后一级的每个交换节点单独为一组,每个输入端口也单独为一组。对于最后一级交换节点,第一组交换节点(即第一个交换节点)的状态值为对该交换节点关联的第一个输入端口(即第一个输入端口)输入的有效性指示信号的值进行取非运算;第二组交换节点(即第二个交换节点)的状态值为对该交换节点关联的第一个输入端口(即第2个输入端口)输入的有效性指示信号的值进行取非运算;第三组(即第三个交换节点)的状态值为对该交换节点关联的第一个输入端口(即第3个输入端口)输入的有效性指示信号的值进行取非运算;以此类推,最后一组交换节点(即最后一个交换节点)的状态值对该交换节点关联的第一个输入端口(即最后一个输入端口)输入的有效性指示信号的值进行取非运算。最终计算出数据交换网络中每一个交换节点的状态值。
在一实施例中,数据交换系统还包括:数据接收模块,用于接收数据交换网络的输出数据;数据接收模块包括M个接收端口;每个接收端口与一个对应的输出端口连接,且相连接的输出端口与接收端口的端口号的二进制数满足翻转关系。
本实施例中,数据交换网络120与数据接收模块之间的数据连接采用如下连接方式:对于N个输入端口的数据交换网络120,数据接收模块的接收端口的端口号,是数据交换网络120中输出端口的端口号对应的二进制数从左到右翻转后的结果。
例如,数据交换网络120的输出端口0(二进制数为000)与数据接收模块的接收端口0(二进制数为000)连接;
数据交换网络120的输出端口1(二进制数为001)与数据接收模块的接收端口4(二进制数为100)连接;
数据交换网络120的输出端口2(二进制数为010)与数据接收模块的接收端口2(二进制数为010)连接;
数据交换网络120的输出端口3(二进制数为011)与数据接收模块的接收端口6(二进制数为110)连接;
数据交换网络120的输出端口4(二进制数为100)与数据接收模块的接收端口1(二进制数为001)连接;
数据交换网络120的输出端口5(二进制数为101)与数据接收模块的接收端口5(二进制数为101)连接;
数据交换网络120的输出端口6(二进制数为110)与数据接收模块的接收端口3(二进制数为011)连接;
数据交换网络120的输出端口7(二进制数为111)与数据接收模块的接收端口7(二进制数为111)连接。
数据交换网络120的输出端口与数据接收模块的接收端口是交叉连接的,这种情况下,按照上述连接方式可以保证接收端口的端口号是按照由小到大的顺序排列的(如图4所示),方便后续对数据的处理。
在一实施例中,数据接收模块用于:在输出端口发送的数据的有效性指示信号为有效的情况下,通过相连的接收端口接收输入数据,并丢弃有效性指示信号为无效的数据。以下以8×8的数据交换网络为例,对数据交换过程进行示例性说明。如图4所示,将8个输入端口(由上到下)的输入数据的有效性指示信号记为vld1[0:7],其中,输入端口0的有效性指示信号为vld[0],输入端口1的有效性指示信号为vld[1]……以此类推,输入端口7的有效性指示信号为vld[7];将第一级的四个交换节点分别记为交换节点0~3。对于交换节点0,其状态值ctrl[0]为对vld1[0]进行取非运算;对于交换节点1,其状态值ctrl[1]为对vld1[0]、vld1[1]和vld1[2]进行异或非运算;对于交换节点2,其状态值ctrl[2]为对vld1[0]~vld1[4]进行异或非运算;对于交换节点3,其状态值ctrl[3]为对vld1[0]~vld1[6]进行异或非运算。第一级交换节点的状态值计算完成后,控制模块110将各状态值赋予数据交换网络120中的第一级交换节点,输入数据将按照这些状态值所产生的交换链路路径,作为第二级交换节点的输入。
对于第二级交换节点,将8个输入端口(由上到下)的输入数据的有效性指示信号记为vld2[0:7],将第二级的四个交换节点分别记为交换节点4~7。对于交换节点4,其状态值ctrl[4]为对vld2[0]进行取非运算;对于交换节点6,其状态值ctrl[6]为对vld2[4]进行取非运算;对于交换节点5,其状态值ctrl[5]为对vld2[0]~vld2[2]进行异或非运算;对于交换节点7,其状态值ctrl[7]为对vld2[4]~vld2[6]进行异或非运算。第二级交换节点的状态值计算完成后,控制模块110将各状态值赋予数据交换网络120中的第二级交换节点,输 入数据将按照这些状态值所产生的交换链路路径,作为第三级交换节点的输入。
对于第三级交换节点,将8个输入端口(由上到下)的输入数据的有效性指示信号分别记为vld3[0:7],将第三级的四个交换节点分别记为交换节点8~11。交换节点8的状态值ctrl[8]为对vld3[0]进行取非运算;交换节点9的状态值ctrl[9]为对vld3[2]进行取非运算;交换节点10的状态值ctrl[10]为对vld3[4]进行取非运算;交换节点11的状态值ctrl[11]为对vld3[6]进行取非运算。第三级交换节点的状态值计算完成后,控制模块110将各状态值赋予数据交换网络120中的第三级交换节点,输入数据将按照这些状态值所产生的交换链路路径,通过相应的目的输出端口输出。
此外,数据交换网络120的输出端口与数据接收模块的接收端口是交叉连接的,具体可按照如下方式连接:数据接收模块的接收端口的端口号为输出端口的端口号对应的二进制数翻转的结果,即:输出端口0与接收端口0相连;输出端口1与接收端口4相连;输出端口2与接收端口2相连;输出端口3与接收端口6相连;输出端口4与接收端口1相连;输出端口5与接收端口5相连;输出端口6与接收端口3相连;输出端口7与接收端口7相连。在此基础上,可以保证接收端口的端口号是按照由小到大的顺序排列的,符合数据传输规范,方便后续对数据进行处理。
上述实施例的数据交换系统,通过对交换节点以及输入端口进行分级和分组,对于每组中关联于多个输入端口的交换节点,为一个交换节点配置的工作状态可以控制其关联的多个输入端口的输入数据的交换链路路径,从而降低了数据交换网络的成本,提高了资源使用效率。
进一步的,通过采用逆均匀洗牌的方式连接相邻两级交换节点,或者连接相邻两级交换节点的对应部分,使数据交换网络中各交换节点之间形成的链路分布更均匀,数据在不同交换节点之间的交换链路路径更灵活、更全面。
进一步的,通过在输入端口或输出端口的数量不满足2的幂次方时,利用大于输入端口或输出端口的数量且满足2的幂次方的数值计算交换节点的级数和个数,确保有足够的交换节点用于实现从输入端口到输出端口任意路径的数据交换。
进一步的,对于关联于一个输入端口以及关联于多个的输入端口的交换节点,分别采用不同类型的运算确定交换节点的工作状态,确保每个交换链路路径中数据传输的正确性。
进一步的,通过将数据交换网络的输出端口与数据接收模块的接收端口按照二进制数的翻转关系连接,保证接收端口的端口号是按照由小到大的顺序排列的,符合数据传输规范,方便后续对数据进行处理。
在本申请实施例中,还提供一种数据交换方法,该方法可应用于数据交换系统中的控制模块,该控制模块可以为集中式控制节点、数据处理芯片或网管设备等。
图5为一实施例提供的一种数据交换方法的流程图,如图5所示,本实施例提供的方法包括步骤210和步骤220。
在步骤210中,根据数据交换网络中每个交换节点所关联的输入端口的有效性指示信号,配置相应的交换节点的状态值,其中,存在至少一个交换节点关联于多个输入端口。
在步骤220中,根据每个交换节点的状态值,将各所述输入端口的输入数据逐级传输至对应的目的输出端口。
本实施例中,通过硬件电路或软件运算得到数据交换网络各交换节点的状态值,然后将 各状态值分配给相应的交换节点,以指示交换节点调整工作状态(交叉或直通状态),从而控制输入数据在数据交换网络中的交换链路路径,实现不同输入端口的输入数据到输出端口的数据交换。在此过程中,输入数据在数据交换网络中逐级传输,数据交换网络的各输出端口分别作为一个输入端口的输入数据对应的目的输出端口。
本实施例的方法,根据与每个交换节点关联的至少一个输入端口的有效性指示信号确定每个交换节点的状态值,在此基础上,为一个交换节点所配置的工作状态,可以控制一个或多个输入端口的输入数据的交换链路路径,从而使用较少的连线和比较器,即可实现数据从N个输入端口到M个输出端口的任意路径的交换,降低了数据交换网络的成本,提高了资源使用效率。
在一实施例中,所述方法还包括:
步骤200:根据所述数据交换网络中交换节点的连接方式,确定每个交换节点与输入端口之间的关联关系。
本实施例中,数据交换网络中的交换节点之间具有确定的连接方式,在此基础上,数据交换网络中的各级交换节点具有确定的连接关系。例如,相邻的两级交换节点之间采用逆均匀洗牌的方式连接;或者,第l级交换节点与第l+1级交换节点分别被等分为X
l个部分,第l级交换节点与第l+1级交换节点对应部分的内部采用逆均匀洗牌的方式连接;或者,将第l级交换节点的二进制地址循环右移一位,即对应于后一级交换节点的二进制地址等。基于确定交换节点与输入端口之间的关联关系,在数据交换过程中可以根据关联的输入端确定交换节点的状态值,为输入端口的输入数据提供可靠的交换链路路径。
在一实施例中,所述连接方式包括:所述数据交换网络中相邻的两级交换节点之间采用逆均匀洗牌的方式连接,所述逆均匀洗牌的方式满足:后一级交换节点的输入端口的二进制地址为与其相连的前一级交换节点的输出端口的二进制地址循环右移一位的结果。在此基础上,使数据交换网络中各交换节点的分布更均匀,数据在不同交换节点之间的交换路径更灵活。
在一实施例中,所述关联关系,包括:
第l级的第x组交换节点中的第y个交换节点关联于第l级交换节点的2y-1个输入端口;
本实施例中,交换节点分为多级和多组,每个交换节点的状态值可根据至少一个与其关联的输入端口的有效性指示信号运算得到,为一个交换节点所配置的状态值,可以影响一个或多个输入端口的输入数据的交换链路路径,从而减少了使用连线和比较器的数量,降低了数据交换网络的成本,提高了资源使用效率。
在一实施例中,步骤210,包括:
对于第l级的第x组交换节点中的第一个交换节点,对该交换节点所关联的一个输入端口的有效性指示信号的值进行取非运算,得到该交换节点的状态值;
本实施例可以区分关联一个或多个输入端口的交换节点进行不同的运算,提高了交换节点状态值的可靠性,进而实现了从N个输入端口到M个输出端口的任意路径的交换,提高了资源使用效率。
本实施例提出的数据交换方法与上述实施例提出的数据交换系统属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述任意实施例,并且本实施例具备与执行数据交换方法相同的有益效果。
本申请实施例还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例中任一所述的数据交换方法。该方法,包括:根据数据交换网络中每个交换节点所关联的输入端口的有效性指示信号,配置相应的交换节点的状态值,其中,存在至少一个交换节点关联于多个输入端口;根据各所述交换节点的状态值,通过各所述交换节点将各所述输入端口的输入数据传输至对应的目的输出端口。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上所述,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
本领域内的技术人员应明白,术语用户终端涵盖任何适合类型的无线用户设备,例如移动电话、便携数据处理装置、便携网络浏览器或车载移动台。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理 器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(Read-Only Memory,ROM)、随机访问存储器(Random Access Memory,RAM)、光存储器装置和系统(数码多功能光碟(Digital Video Disc,DVD)或光盘(Compact Disk,CD)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑器件(Field-Programmable Gate Array,FGPA)以及基于多核处理器架构的处理器。
通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本申请的范围。因此,本申请的恰当范围将根据权利要求确定。
Claims (15)
- 一种数据交换系统,包括:控制模块以及数据交换网络,所述数据交换网络与所述控制模块连接;所述控制模块用于根据所述数据交换网络中每个交换节点所关联的输入端口的有效性指示信号,配置相应的交换节点的状态值,其中,存在至少一个交换节点关联于多个输入端口;所述数据交换网络用于根据每个交换节点的状态值,将各所述输入端口的输入数据逐级传输至对应的目的输出端口。
- 根据权利要求1所述的系统,其中,所述数据交换网络包括N个输入端口、M个输出端口以及L级交换节点,M和N均为大于2的整数;相邻的两级交换节点之间采用逆均匀洗牌的方式连接,所述逆均匀洗牌的方式满足:后一级交换节点的输入端口的二进制地址为与其相连的前一级交换节点的输出端口的二进制地址循环右移一位的结果。
- 根据权利要求2所述的系统,其中,每级交换节点包括P个交换节点;在N取值为2的幂次方且N≥M的情况下,L=log 2(N),P=N/2;在M取值为2的幂次方且N<M的情况下,L=log 2(M),P=M/2;在N取值非2的幂次方且N’≥M的情况下,L=log 2(N’),P=N’/2;在M取值非2的幂次方且N<M’的情况下,L=log 2(M’),P=M’/2;其中,N’为大于N且满足2的幂次方的数值中,取值最小的数值;M’为大于M且满足2的幂次方的数值中,取值最小的数值。
- 根据权利要求4所述的系统,其中,第l级交换节点的输入端口被划分为X l组;每组中的第y个交换节点关联于第l级交换节点相应组的输入端口中的第1个至第2y-1个输入端口,其中,输入端口按照端口号顺序排列。
- 根据权利要求4所述的系统,其中,第l级交换节点与第l+1级交换节点分别被等分为X l个部分,第l级交换节点与第l+1级交换节点对应部分的内部采用逆均匀洗牌的方式连接,1≤l≤L-1;逆均匀洗牌的方式满足:在第l级交换节点与第l+1级交换节点对应部分的内部,后一级交换节点的输入端口的二进制地址为与其相连的前一级交换节点的输出端口的二进制地址循环右移一位的结果。
- 根据权利要求2至7任一项所述的系统,其中,还包括:数据接收模块,用于接收所述数据交换网络的输出数据;所述数据接收模块包括M个接收端口,每个接收端口与一个对应的输出端口连接,且相连接的输出端口与接收端口的端口号的二进制数满足翻转关系。
- 根据权利要求8所述的系统,其中,所述数据接收模块用于:在输出端口发送的数据的有效性指示信号为有效的情况下,通过相连的接收端口接收所述输入数据,并丢弃有效性指示信号为无效的数据。
- 一种数据交换方法,包括:根据数据交换网络中每个交换节点所关联的输入端口的有效性指示信号,配置相应的交换节点的状态值,其中,存在至少一个交换节点关联于多个输入端口;根据各所述交换节点的状态值,通过各所述交换节点将各所述输入端口的输入数据传输至对应的目的输出端口。
- 根据权利要求10所述的方法,其中,还包括:根据所述数据交换网络中交换节点的连接方式,确定每个交换节点与输入端口之间的关联关系。
- 根据权利要求11所述的方法,其中,所述连接方式包括:所述数据交换网络中相邻的两级交换节点之间采用逆均匀洗牌的方式连接,所述逆均匀洗牌的方式满足:后一级交换节点的输入端口的二进制地址为与其相连的前一级交换节点的输出端口的二进制地址循环右移一位的结果。
- 一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求10-14中任一项所述的数据交换方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110244742.9 | 2021-03-05 | ||
CN202110244742.9A CN115102914A (zh) | 2021-03-05 | 2021-03-05 | 数据交换系统、方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022183789A1 true WO2022183789A1 (zh) | 2022-09-09 |
Family
ID=83154928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/133216 WO2022183789A1 (zh) | 2021-03-05 | 2021-11-25 | 数据交换系统、方法及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115102914A (zh) |
WO (1) | WO2022183789A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1445966A (zh) * | 2002-02-23 | 2003-10-01 | 泰拉鲍尔股份有限公司 | 交换网络的包路由方法与系统 |
CN1645839A (zh) * | 2005-01-25 | 2005-07-27 | 南开大学 | 基于并行缓存结构的通信网络交换系统及其控制方法 |
US7505458B2 (en) * | 2001-11-27 | 2009-03-17 | Tellabs San Jose, Inc. | Apparatus and method for a fault-tolerant scalable switch fabric with quality-of-service (QOS) support |
US20120033662A1 (en) * | 2008-10-20 | 2012-02-09 | Szymanski Tadeusz H | Crossbar switch and recursive scheduling |
CN105099565A (zh) * | 2014-04-16 | 2015-11-25 | 华为技术有限公司 | 一种光发射系统及发射方法、光交换装置及控制方法 |
-
2021
- 2021-03-05 CN CN202110244742.9A patent/CN115102914A/zh active Pending
- 2021-11-25 WO PCT/CN2021/133216 patent/WO2022183789A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7505458B2 (en) * | 2001-11-27 | 2009-03-17 | Tellabs San Jose, Inc. | Apparatus and method for a fault-tolerant scalable switch fabric with quality-of-service (QOS) support |
CN1445966A (zh) * | 2002-02-23 | 2003-10-01 | 泰拉鲍尔股份有限公司 | 交换网络的包路由方法与系统 |
CN1645839A (zh) * | 2005-01-25 | 2005-07-27 | 南开大学 | 基于并行缓存结构的通信网络交换系统及其控制方法 |
US20120033662A1 (en) * | 2008-10-20 | 2012-02-09 | Szymanski Tadeusz H | Crossbar switch and recursive scheduling |
CN105099565A (zh) * | 2014-04-16 | 2015-11-25 | 华为技术有限公司 | 一种光发射系统及发射方法、光交换装置及控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115102914A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR900006792B1 (ko) | 패킷 스위칭 노드용 로드 평형 회로장치 | |
US8654798B2 (en) | Barrier synchronization apparatus, barrier synchronization system, and barrier synchronization method | |
CN110163609B (zh) | 一种区块链中数据处理方法及装置 | |
JP2016503594A (ja) | インターコネクトにおける不均一なチャネル容量 | |
CN113630347B (zh) | 一种数据传输方法、系统、存储介质及设备 | |
US10237782B2 (en) | Hardware acceleration for batched sparse codes | |
CN111427835B (zh) | 一种基于混合路由算法的片上网络设计方法和装置 | |
WO2022199459A1 (zh) | 一种可重构处理器及配置方法 | |
US11121979B2 (en) | Dynamic scheduling method, apparatus, and system | |
WO2018166249A1 (zh) | 一种网络业务传输的方法及系统 | |
WO2022183789A1 (zh) | 数据交换系统、方法及存储介质 | |
CN109120539B (zh) | 一种实现数据传输处理的方法及装置 | |
US20230403232A1 (en) | Data Transmission System and Method, and Related Device | |
CN102130744B (zh) | 计算循环冗余校验码的方法和装置 | |
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
CN108243113B (zh) | 随机负载均衡的方法及装置 | |
US20240056393A1 (en) | Packet forwarding method and device, and computer readable storage medium | |
Liu et al. | Multi-stage aggregation and lightpath provisioning of geo-distributed data over EON assisted by MEC | |
Arai et al. | Disjoint-path routing on hierarchical dual-nets | |
CN113342719A (zh) | 一种运算加速单元及其运算方法 | |
Chakaravarthy et al. | Mapping strategies for the PERCS architecture | |
JP6907835B2 (ja) | 計算ノード装置、並列計算機システム、および計算ノード装置の制御方法 | |
CN116383114B (zh) | 芯片、芯片互联系统、数据传输方法、电子设备和介质 | |
WO2021110056A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
Oruç | A self-routing on-chip network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21928861 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |