灵活实现cpu数据传输的网络交换系统及cpu数据传输的方法

文档序号:7627172阅读:212来源:国知局
专利名称:灵活实现cpu数据传输的网络交换系统及cpu数据传输的方法
技术领域


发明内容
涉及网络交换系统,特别是灵活实现网络交换系统中的系统CPU与网络交换系统中的专用芯片(ASIC,Application SpecialIntegrated Circuit,特殊用途集成电路,或称为特殊用途专用芯片,在本发明中统称为“专用芯片”)之间的数据传输的网络交换系统和方法。
背景技术
通常,在一个网络交换系统中,例如一个以太网交换机系统中,具有系统CPU和若干个专用芯片。一般来说,专用芯片与系统CPU之间的数据包(Packet)传输是通过CPU总线,例如PCI总线来完成的。但对于一个CPU而言,其所能支持的PCI总线的传输能力是有限的,这样的传输方式实际上限制了系统CPU与专用芯片间的数据传输能力。
而且,PCI总线本身也存在带宽有限的问题,且系统中很多元器件都在使用PCI总线来与系统CPU进行通讯,迫使专用芯片不得不与其他元器件竞争使用PCI总线,这也限制了系统CPU与专用芯片间的数据传输能力。
因此,尽管专用芯片和系统CPU都具有比较快的数据处理能力和传输能力,但目前,多数系统所使用的通过PCI总线在系统CPU与专用芯片之间传输数据的方法限制了两者之间的数据传输能力,而且这种方法也非常不灵活。因此,有必要提供一种方法和相应的设备来实现网络交换系统中的系统CPU与专用芯片之间的更快、更灵活的数据传输。
发明内容本发明的目的在于提供一种不通过CPU总线、可以灵活实现系统CPU与专用芯片之间数据传输的网络交换系统,以及在该等网络交换系统中进行数据传输的方法,且本发明支持多个CPU与多个专用芯片之间进行数据传输的方法。
本发明所述的网络交换系统包括一个或多个系统CPU,一个交换芯片,以及一个或多个专用芯片,该等专用芯片包括多个CPU数据传输队列以及数据处理单元,其中,该等专用芯片还包括一传输处理单元,且所述的交换芯片分别连接上述的系统CPU以及上述的专用芯片。
上述系统CPU与现有技术中的系统CPU相同,对整个网络交换机起到主控作用,亦具备相应的数据处理功能。
上述交换芯片用于完成上述一个或多个系统CPU与上述一个或多个专用芯片之间的数据传输,保证由专用芯片发往系统CPU的相关数据包可以被送至正确的系统CPU以及由系统CPU发往专用芯片的数据包也可以被传送至正确的专用芯片。
上述传输处理单元用于将CPU传输队列中的数据包读出,并对该等数据包增加系统CPU的MAC地址;而且还将来自于系统CPU的数据包中包含的系统CPU的MAC地址去除,并将处理后的数据包传送给所述专用芯片的下一数据处理单元。
上述每个CPU传输队列在初始化过程中均已包含一个系统CPU的MAC地址,通过该MAC地址使得该CPU传输队列与特定的系统CPU建立对应关系。在上述传输处理单元从该等CPU传输队列中读取数据包之后,该等CPU传输队列包含的系统CPU的MAC地址,被上述传输处理单元增加到所读取的数据包的目标地址域中,该等MAC地址决定该数据包被传送至哪一个系统CPU。
在网络交换系统中灵活实现CPU数据传输的方法,包括专用芯片向系统CPU传输数据的方法,以及系统CPU向专用芯片传输数据的方法,其中,专用芯片向系统CPU传输数据的方法包括下述步骤上述网络交换系统中的所述传输处理单元从一个CPU传输队列中读取下一个待传输数据包;上述网络交换系统中的所述传输处理单元将上述CPU传输队列所包含的系统CPU的MAC地址增加到上述待传输数据包的目标地址域中,并将处理后的数据包传输给上述网络交换系统中的所述交换芯片;上述交换芯片根据上述目标地址中包含的系统CPU的MAC地址将上述待传输数据包传输给相应的系统CPU。
在上述过程中,所述的传输处理单元是按照轮询的方式依次从所述的多个CPU传输队列中读取下一个待传输数据。
在上述过程中,所述的传输处理单元是依照所述的多个CPU传输队列本身的优先级决定从哪一个CPU传输队列中读取下一个待传输数据。
其中,系统CPU向专用芯片传输数据的方法包括下述步骤系统CPU形成待传输给专用芯片的数据包;系统CPU将上述待传输数据包传输给上述交换芯片;上述交换芯片根据从系统CPU接收到的上述数据包中的目标地址域将该数据包发送给上述网络交换系统中的与该目标地址域对应的专用芯片;上述专用芯片的所述传输处理单元将上述数据包内的源地址域中所包含的系统CPU的MAC地址去除,并将处理后的数据包传送给上述专用芯片的下一处理单元。
在上述过程中,系统CPU所形成的待传输给专用芯片的数据包是基于对从专用芯片接收到的数据包进行处理后得到的,此时系统CPU将处理前的数据包的源地址域作为处理后的数据包的目标地址域,处理前的数据包的目标地址域作为处理后的数据包的源地址域。
在上述过程中,系统CPU所形成的待传输给专用芯片的数据包是系统CPU自行产生的,而不是基于对来自于专用芯片的数据包进行处理后的数据产生的。
在上述从系统CPU向专用芯片传输数据的过程中以及相反的过程中,所述的交换芯片具备自动交换功能,其保证被传输的数据包根据其目标地址域中的地址传输至正确的设备。
本发明所提供的可以灵活实现CPU数据传输的网络交换系统设备以及在网络交换系统中灵活实现CPU数据传输的方法使得系统CPU和专用芯片可以直接进行数据传输,不需要再使用PCI总线,从而大大提高了两者之间数据传输的效率、速度和传输质量。这种系统和相应的方法还可以支持多个CPU与多个专用芯片间的数据传输,这也是传统的使用PCI总线的解决方案所不及的。


图1是本发明所提供的可以灵活实现CPU数据传输的网络交换系统的系统示意图。
图2是一个系统CPU和一个专用芯片进行数据传输的工作原理示意图。
图3是本发明所提供的网络交换系统中多个专用芯片向多个系统CPU传输数据的工作原理示意图。
图4是本发明所提供的网络交换系统中多个系统CPU向多个专用芯片传输数据的工作原理示意图。
标号说明1、系统CPU2、交换芯片3、专用芯片31 据处理单元32CPU传输队列 33传输处理单元4X、数据包的数据域41源地址域 42目标地址域 43至CPU的数据41′源地址域 42′目标地址域43′来自CPU的数据具体实施方式
参见图1,是本发明的实施例一的系统示意图。在该实施例中,多个系统CPU1与交换芯片2相连接,该交换芯片2又与多个专用芯片3相连接。专用芯片3包括数据处理单元31、多个CPU传输队列32以及一传输处理单元33。其中,所述的传输处理单元33用于将专用芯片3内部的各CPU传输队列32中的待传输数据读出,并将相应的CPU传输队列32所附带的系统CPU1的MAC地址增加到该等数据包的目标地址域中,形成新的数据包。经过上述传输处理单元33处理后的新的数据包被通过交换芯片2传输给相应的系统CPU1。同时,上述传输处理单元33还将来自于某一个系统CPU1的数据包中所包含的系统CPU的MAC地址去除,经过该等处理后的数据包被所述专用芯片2的下一处理单元继续处理。
在本实施例中,上述数据处理单元31是一个或多个处理单元的统称,其按照现有技术对数据包进行常规处理,本领域的技术人员结合现有技术均了解其用途以及实现方式。
在本实施例中,各CPU传输队列32在初始化时已经包含了某一个系统CPU的MAC地址,该CPU传输队列中的数据包即被传送到该CPU传输队列附带的系统CPU的MAC地址对应的系统CPU中。
在与本实施例类似的其他实施例中,上述各CPU传输队列32所包含的CPU的MAC地址也可以是在系统运行过程中由专用芯片32内的控制单元动态更改,这样的话,则要求标识系统CPU的MAC地址的信息位可以被动态更改。这样的实施例更具灵活性。
参见图2,是本发明的实施例二。与实施例一不同的是,在本实施例中,只有一个系统CPU 1和一个专用芯片3。由于只有一个系统CPU和一个专用芯片,因此,该专用芯片可以直接通过物理连接将数据包传输给系统CPU,反之亦然。因此,就不再需要实施例一中包含的交换芯片2,而只需将该系统CPU与该专用芯片直接连接即可实现本发明所提供的系统。相应地,由于只有一个系统CPU1,所以专用芯片3中的各CPU传输队列32的数据包均只能传送给该系统CPU,因此,在本实施例中,各CPU传输队列32所包含的系统CPU的MAC地址均为该系统CPU1的地址。
参见图2,在其上半部分,即由从右向左的箭头标示的部分,其描述了本实施例中专用芯片3将数据包传输给系统CPU1的过程。由专用芯片3传输给系统CPU1的数据包经过专用芯片3内部的数据处理单元31处理后被送至序号为6的CPU传输队列32中排队。专用芯片3内的传输处理单元33将序号为6的CPU传输队列32中的下一个待传输数据包读出,并将该CPU传输队列32所附带的系统CPU的MAC地址增加到该数据包的目标地址(DA,Destination Address)域42中,然后该数据包根据该目标地址域42中的CPU的MAC地址被传送给系统CPU1。如上所述,由于只有一个系统CPU1,专用芯片内部的所有CPU传输队列32所附带的CPU的MAC地址均是该系统CPU的MAC地址。因此,该数据包必然被传输到系统CPU1。此时,被传输数据包的源地址(SA,Source Address)域41即标明该专用芯片3,目标地址域即标明该系统CPU1。
在上述专用芯片3将数据包传输给系统CPU1的过程中,专用芯片3主动读取专用芯片3内部的各CPU传输队列32中的数据包,并主动传送给系统CPU1。该点与现有技术中由系统CPU1通过PCI总线读取数据有所不同,能大大提高数据在系统CPU与专用芯片间传输的效率。
参见图2,在其下半部分,即由从左向右的箭头标示的部分,其描述了实施例二中系统CPU1向专用芯片3传输数据包的过程。系统CPU1形成待传输数据包后,将该数据包传输给专用芯片3。该数据包的源地址域42′中包括系统CPU1的MAC地址,该数据包的目标地址域41′即指向专用芯片3。专有芯片3的传输处理单元33首先将接收到的数据包的源地址域42′中包含的系统CPU1的MAC地址去除,然后再由数据处理单元31对其按照常规方式进行处理。
在上述过程中,数据处理单元31对被传输处理单元33去除数据包中包含的系统CPU的MAC地址后的数据包进行的处理是一种常规方式的处理,即普通的网络交换系统中的普通专用芯片对数据包进行处理的普通方式,本领域的技术人员结合现有技术可以理解并可以实现该等常规方式的处理过程。
结合上述描述可见,可以把实施例二理解为本发明的一个特例,即本发明存在n个系统CPU和m个专用芯片,而在实施例二中,恰恰是“n=m=1”的情况。
参考图3、图4,其共同描述了图1所示的实施例一中由多个专用芯片3向多个系统CPU1传输数据包的过程,以及多个系统CPU1向多个专用芯片3传输数据包的过程。
参考图3,其描述了由多个专用芯片3向多个系统CPU1传输数据包的过程。如图1所示,本实施例中包括多个专用芯片3和多个系统CPU1,相应地存在一个交换芯片2,用于连接多个专用芯片3和多个系统CPU1。所述第0~n个专用芯片3中的传输处理单元33各自独立地工作,其从所在专用芯片3中的各CPU传输队列32中读取下一个待传输数据包,然后将该CPU传输队列32所附带的CPU的MAC地址增加到该数据包的目标地址域中,形成新的数据包;接着,被处理后的新的数据包被专用芯片3的传输处理单元33传送给交换芯片2;交换芯片2根据接收到的数据包中包含的目标地址域中包含的系统CPU的MAC地址将该数据包传送给对应的系统CPU。
此时,被传输数据包的目标地址域标明某一系统CPU,例如系统CPU3,源地址域即标明数据包来源的专用芯片,例如ASIC1。
与图2所示实施例不同的是,专用芯片3中的CPU传输队列所附带的系统CPU的MAC地址不再相同,而是分别对应不同的系统CPU。在本实施例中,共有2个系统CPU,4专用芯片,每个专用芯片中有8个CPU传输队列,每个专用芯片的0~3个CPU传输队列附带的MAC地址对应系统CPU1,每个专用芯片的4~7个CPU传输队列附带的MAC地址对应系统CPU2。而在与本实施例类似的其他实施例中,则有3个系统CPU,8个专用芯片,第0~3个专用芯片有4个CPU传输队列,第4~7个专用芯片有6个CPU传输队列,在该实施例中,第0~2个专用芯片的序号为0的CPU传输队列对应序号为0的系统CPU,序号为1的CPU传输队列对应序号为1的系统CPU,序号为2、3的CPU传输队列均对应序号为2的系统CPU;而序号为3的专用芯片的前两个CPU传输队列对应于序号为0的系统CPU,后两个CPU传输队列对应于序号为2的系统CPU;第4~7个专用芯片的前三个CPU传输队列对应于序号为0的系统CPU,接下来的两个CPU传输队列对应于序号为1的系统CPU,最后一个CPU传输队列对应于序号为2的系统CPU。上述的某CPU传输队列对应于某序号的系统CPU,即该CPU传输队列所包含的系统CPU的MAC地址为该系统CPU的地址。
参考图4,其描述了多个系统CPU1将数据包传输给多个专用芯片3的具体过程。同样,各系统CPU1独立工作,并形成将要传输给某专用芯片3的数据包;系统CPU1将数据包传输给交换芯片2,交换芯片2根据接收到的数据包内包含的目标地址域中的信息将数据包传输给该等信息所对应的专用芯片3;该等专用芯片3接收到该数据包后,由专用芯片3中的传输处理单元33将该数据包内的源地址域中包含的系统CPU的MAC地址去除;经过处理后的数据包由专用芯片3中的数据处理单元33按照常规处理方式继续处理。
与针对实施例二描述的过程相类似,上述的“按照常规方式的处理”,即普通的网络交换系统中的普通专用芯片对数据包进行处理的普通方式,本领域的技术人员结合现有技术可以理解并可以实现该等常规方式的处理过程。
在上述实施例一、实施例二中,系统CPU形成的待传输数据包的来源可能有两种方式。第一,即系统CPU将来自于专用芯片的数据包进行处理后,将处理结果作为待传输数据包传输给专用芯片,此时,待传输数据包的目标地址域的信息即被系统CPU处理前的数据包的源地址域,即某个专用芯片的地址,而待传输数据包的源地址域即被系统CPU处理前的数据包的目标地址域,即包含系统CPU的MAC地址的信息。这种方式,使得数据包的处理结果可以被正确地返回给该数据包的发送者,即将其发送给该系统CPU的那个专用芯片。第二种方式,即系统CPU形成一个新的数据包并发送给专用芯片,此时,该数据包与该系统CPU所曾经接收并处理的专用芯片的数据包没有直接的关系。
在图3、图4所示的实施例一中,由于交换芯片2本身具有自动交换功能,因此其可以根据数据包中的目标地址域将该数据包传送到相应的目的地。当数据包由多个系统CPU向多个专用芯片传输时,交换芯片2使得数据包可以被正确地传送到相应的专用芯片,反之亦然。
在本发明中,对于交换芯片而言,其只要具备自动交换功能即可用于一个具体的实施例中。这样的产品有很多,例如可以选择Marvell GalNet-2GT-48304 G.Link Crossbar,也可以选择Marvell Prestera-FX9210 12-PortCrossbar Switch Fabric或者Broadcom BCM5675等等。
在本发明的其他实施例中,上述交换芯片2还可以是多个,此时,多个交换芯片构成一个交换矩阵,共同完成实施例一中的交换芯片的功能。在一个实施例中,存在2个交换芯片,则部分专用芯片连接到第1个交换芯片,剩余专用芯片则连接到第2个交换芯片上,类似地,各系统CPU也分别连接到两个交换芯片上。在与图3、图4类似的传输过程中,则两个交换芯片互相配合完成数据包的自动交换。在这样的实施例中,本领域的技术人员可以参考实施例一、实施例二实现本实施例。同时,在本实施例中,两个交换芯片采用同种型号的交换芯片,即Marvell GalNet-2GT-48304 G.Link Crossbar;而在与本实施例类似的其他实施例中,两个交换芯片采用不同型号的,即分别采用Marvell Prestera-FX9210 12-PortCrossbar Switch Fabric和Broadcom BCM5675。在与本实施例类似的其他实施例中,所需要交换芯片的数目实际根据专用芯片和系统CPU的数量以及交换芯片的交换能力而定。一般而言,实施例一中所描述的一个交换芯片的情况即可以满足系统需要。
在本发明的其他实施例中,存在只有一个系统CPU、多个专用芯片的情况。在该实施例中,仍然需要1个或多个交换芯片,但各专用芯片中的各CPU传输队列所包含的系统CPU的MAC地址则与实施例二相类似,即均是该唯一一个系统CPU的地址。关于本实施例的系统组成以及数据传输过程,本领域的技术人员可以参照实施例一、实施例二予以实现,不再赘述。
在上述各实施例中所描述的专用芯片3的传输处理单元33从上述CPU传输队列中读取数据包之前,该等数据包由上述专用芯片3的数据处理单元31写入CPU传输队列32中,这个过程与现有网络交换系统中的专用芯片所进行的处理过程是一致的,本领域的技术人员均了解其实现原理以及具体处理方式,在此不再赘述。
在本发明中,对于专用芯片,其是通过本发明在通常所用的专用芯片基础上做出的发明创造而得到的,而这些“通常所用的专用芯片”只要具备一定的功能,且在所述的网络交换系统中需要使用该功能,那么其就可以在本系统中被采用,从而可以借助本系统所述在其与系统CPU灵活地完成数据包的传输。
尽管本发明已经以如上所述的优选实施例予以说明,但上述实施例并非用来限定本发明,任何对该领域熟悉的技术人员,根据本发明的设计思想、具体发明内容以及实施例的启示,应该可以各种改动和调整,而通过这些改动和调整所得到的新的内容应被本发明内容所涵盖。
权利要求
1.可以灵活实现CPU数据传输的网络交换系统,包括一个或多个系统CPU(1),一个或多个专用芯片(3),包括多个的CPU数据传输队列(32)以及数据处理单元(31),以及一交换芯片(2),用于完成上述一个或多个系统CPU(1)与上述一个或多个专用芯片(3)之间的数据传输,其特征在于所述的交换芯片(2)分别连接所述的系统CPU(1)以及所述的专用芯片(3),且所述专用芯片(3)还包括一传输处理单元(33),该单元(33)从所述CPU传输队列(32)中读取数据包,对数据包增加系统CPU(1)的MAC地址;该单元(33)还将来自于系统CPU的数据包中包含的系统CPU(1)的MAC地址去除。
2.如权利要求1所述的网络交换系统,其特征在于,所述专用芯片的每个CPU传输队列(33)都包含一个系统CPU(1)的MAC地址。
3.如权利要求1所述的网络交换系统,其特征在于,数据包从专用芯片(3)向系统CPU(1)传输的过程中,所述的传输处理单元(33)将CPU传输队列(33)所包含的系统CPU(1)的MAC地址增加到该数据包的目标地址域中。
4.如权利要求1所述的网络交换系统,其特征在于,数据包从系统CPU(1)向专用芯片(3)传输的过程中,所述的传输处理单元(33)将数据包中的源地址域中所包含的系统CPU(1)的MAC地址去除。
5.如权利要求1所述的网络交换系统,其特征在于,所述的交换芯片(2)可以是多个。
6.在权利要求1所提供的网络交换系统中所使用的灵活实现CPU数据传输的方法,包括专用芯片(3)向系统CPU(1)传输数据的方法,以及系统CPU(1)向专用芯片(3)传输数据的方法,其特征在于,所述专用芯片(3)向系统CPU(1)传输数据的方法包括下述步骤所述专用芯片(3)中的传输处理单元(33)从所述专用芯片(3)中的一个CPU传输队列(32)中读取下一个待传输数据包;所述传输处理单元(33)将所述的CPU传输队列(32)所包含的系统CPU(1)的MAC地址增加到所述待传输数据包的目标地址域中,并将处理后的数据包传输给所述网络交换系统中的交换芯片(2);所述交换芯片(2)根据所述数据包中的目标地址域所包含的系统CPU(1)的MAC地址将所述数据包传输给相应的系统CPU(1);其特征还在于,系统CPU(1)向专用芯片(3)传输数据的方法包括下述步骤系统CPU(1)形成待传输给专用芯片(3)的数据包;系统CPU(3)将上述待传输数据包传输给上述交换芯片(2);所述交换芯片(2)根据从系统CPU(1)接收到的所述数据包中的目标地址域将所述数据包发送给与该目标地址域对应的专用芯片(3);所述专用芯片(3)的传输处理单元(33)将所述数据包的源地址域所包含的系统CPU(1)的MAC地址去除,并将处理后的数据包传送给所述专用芯片(3)的下一处理单元。
7.如权利要求6所述的灵活实现CPU数据传输的方法,其特征在于,所述的系统CPU(1)所形成的待传输给专用芯片(3)的数据包是基于对从专用芯片(3)接收到的数据包进行处理后得到的。
8.如权利要求6所述的灵活实现CPU数据传输的方法,其特征在于,所述的系统CPU(1)所形成的待传输给专用芯片(3)的数据包是系统CPU(1)自行产生的。
9.如权利要求6所述的灵活实现CPU数据传输的方法,其特征在于,所述传输处理单元(33)按照轮询方式从所述专用芯片(3)中的一个CPU传输队列(32)中读取下一个待传输数据包。
10.如权利要求6所述的灵活实现CPU数据传输的方法,其特征在于,所述传输处理单元(33)按照优先级从所述专用芯片(3)中的优先级最高的CPU传输队列(32)中读取下一个待传输数据包。
全文摘要
灵活实现CPU数据传输的网络交换系统,包括一个或多个系统CPU,交换芯片,一个或多个专用芯片,其特征在于专用芯片中还包括一传输处理单元,系统CPU与专用芯片通过交换芯片相连接并传输数据。传输处理单元将数据包从CPU传输队列中读出并对数据包进行增加MAC地址的处理后将数据包通过交换芯片传输给系统CPU,从而使得系统CPU和专用芯片可以直接进行数据传输,不再使用PCI总线。大大提高了两者之间数据传输的效率、速度和传输质量。本发明还提供了与上述系统相对应的灵活的数据传输方法。
文档编号H04L12/56GK1959656SQ20051011938
公开日2007年5月9日 申请日期2005年11月2日 优先权日2005年11月2日
发明者孙剑勇, 熊波, 郑晓阳, 古陶 申请人:盛科网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1