具有干线链路的结构芯片的利记博彩app

文档序号:7978045阅读:186来源:国知局
具有干线链路的结构芯片的利记博彩app
【专利摘要】一种结构芯片包括多个端口接口,其中多个端口接口中每个均包括网络芯片接口(NCI)块和交叉开关块,该网络芯片接口块具有端口解析模块,以确定哪个端口接口要从NCI块接收分组,该交叉开关块可通信地与多个端口接口中的每个NCI块联接。此外,多个端口接口中至少两个端口接口要联接至另一结构芯片的至少两个端口接口来作为干线的干线链路。此外,多个端口接口中至少两个端口接口的NCI块包括资源,该资源保持对结构芯片中与干线的干线链路连接的端口接口的跟踪。
【专利说明】具有干线链路的结构芯片
【背景技术】
[0001]计算机性能已提升并且继续以很快的速率提升。伴随所提升的计算机性能,将计算机连接在一起的网络的带宽能力也已提升并且继续显著提升。基于以太网的技术是已被改变和改进来向联网的计算机提供充足带宽的一种网络的示例。基于以太网的技术通常利用网络交换机,网络交换机是根据分组(packet)中包含的目的地址信息对分组流进行控制的基于硬件的设备。在交换结构中,网络交换机通过允许建造具有可扩展端口密度的网络交换机的结构(fabric)彼此连接。此结构通常从网络交换机接收分组并且将分组转发至其它连接的网络交换机。
【专利附图】

【附图说明】
[0002]本公开的特征是通过示例图示的且不局限于下面的图,在下面的图中,相同的附图标记表示相同元件,其中:
[0003]图1图示根据本公开示例的网络装置的简化示意图;
[0004]图2示出根据本公开示例的图1所示的结构芯片的简化框图;
[0005]图3和图4分别示出根据本公开的两个示例的交换结构的简化框图;以及
[0006]图5和图6分别示出根据本公开示例的用于实施包括图1至图4的结构芯片的交换结构的方法的流程图。 【具体实施方式】
[0007]为简单和说明目的,通过主要参考本公开的示例对本公开进行描述。在下面的描述中,阐述大量特定细节,以便提供对本发明的全面理解。然而,将显而易见的是,本公开可以在没有对这些特定细节的限制的情况下实践。在其它情况中,未详细地描述一些方法和结构,以便不非必要地使本公开模糊。
[0008]在本公开全文中,附图标记后的术语“η”意在表示大于I的整数值。此外,图中的省略号(“…”)意在表示在围绕省略号的要素之间可以包括附加的要素。此外,术语“一”意在表示特定要素中至少一个。本文中使用的术语“包括”指包括但不限于,本文使用的术语“包含”指包含但不限于。术语“基于”指至少部分地基于。
[0009]本文公开的是结构芯片、交换结构和用于实施交换结构的方法。本文公开的结构芯片包含多个端口接口,其中多个端口接口中每个端口接口均能够确定其它端口接口中哪个端口接口会接收要到达目的地节点芯片的分组,目的地节点芯片可以附接至本地端口接口之一或另一结构芯片。此外,这些端口接口能够独立于这些端口接口外部的软件做出这些确定。根据示例,结构芯片中的端口接口中至少两个端口接口要连接至另一结构芯片的至少两个端口接口作为干线的干线链路。端口接口中每个端口接口均包括资源,该资源保持对与干线的干线链路连接的端口接口的跟踪。此外,端口接口包括使端口接口能够确定其它端口接口中哪个端口接口要接收分组的逻辑,以使分组经由交换结构到达分组的期望目的地。可以进行端口接口的确定,以实现各种预定的目标。[0010]交换结构中的网络交换机或结构芯片之间的干线链路可以被限定为联结该交换结构中同一对网络交换机或结构芯片的两个或更多个结构链路。换言之,干线链路包括平行链路。此外,可以将干线限定为同一对网络交换机或结构芯片之间的干线链路的集合。因此,例如可以在第一网络交换机和第二网络交换机之间提供干线链路的第一干线,并且可以在第一网络交换机和第三网络交换机之间提供干线链路的第二干线。分组可以经由联结网络交换机的干线链路中任何干线链路在网络交换机之间传送。采用干线链路的传统交换式结构通常根据要用于传输的干线链路的标识来穿越干线链路中的多个干线链路传输多播分组,这些标识被硬编码到多播分组内。干线链路在交换式结构中的传统使用已导致干线链路带宽的不必要使用,因此相对低效率。
[0011]通过本文公开的结构芯片、交换结构和方法的实施,可以控制结构芯片之间的干线链路的使用,以实现预定的目标。在一个方面,可以基本上平衡穿越干线链路传送的业务量。在另一方面,本文公开的结构芯片、交换结构和方法对穿越单个干线链路的传输的分离的多播业务进行重归拢,而不是对穿越相同干线内分离的干线链路的传输的分离归拢。在另一方面,本文公开的结构芯片、交换结构和方法支持故障转移的配置,该故障转移的配置在干线中干线链路之一故障转移的情况下使干线中的其它干线链路具有比其它链路更高的优先级。
[0012]当分组在本文中使用时,其可以包括数据分组和/或控制分组。根据示例,分组包括数据迷你分组(Mpacket)和控制迷你分组,其中控制迷你分组是请求或应答,数据迷你分
组是单播和/或多播。
[0013]首先参考图1,这里示出根据示例的网络装置100的简化图。很明显,图1中绘出的图代表概括图示,并且可以添加其它组件或可以移除、修改或重布置现有组件,而不背离网络装置100的范围。
[0014]网络装置100大体包括用于执行联网功能的装置,如网络交换机或等同装置。在这一点,网络装置100可以包括外壳或外罩102,并且可以被配置为用作联网组件。换言之,例如,可以将外壳102配置为放置在电子器件架或其它联网环境中,如放置在具有其它网络装置的堆叠构造中。在其它示例中,网络装置100可以位于外壳内较大ASIC的或一组ASIC的内部。此外或可替代地,网络装置100可以提供单个外壳内部的结构网络的一部分。
[0015]将网络装置100描绘为包括结构芯片110和具有标记有“O”和“I”的端口的多个节点芯片130a-130n。还将结构芯片110描绘为包括多个端口接口 112a_112n,多个端口接口 112a-112n可通信地联接至节点芯片130a_130n的端口“O”和“I”中各个端口。端口接口 112a-l 12η还可通信地连接至交叉开关(crossbar)阵列120,将交叉开关阵列120描绘为包括控制交叉开关122、单播数据交叉开关124和多播数据交叉开关126。还将端口接口 112n-l和112η描绘为连接至另一网络装置150,另一网络装置150可以包括与网络装置100相同或相似的构造。因此,例如,另一网络装置150可以包括可通信地联接至结构芯片110的多个节点芯片130a-130n。如图所示,端口接口 112n_l和112η通过两个干线链路154、156连接至另一网络装置150,这两个干线链路154、156是同一干线152的一部分。如本文下面更详细地讨论的,分组穿越干线链路154、156的传送可以以多种不同的预定的方式中的任何方式进行控制。
[0016]根据示例,节点芯片130a_130n包括使用户端口和结构芯片110能彼此接合的专用集成电路(ASIC)。虽然未示出,但是节点芯片130a-130n中每个节点芯片还可以包括用户端口,通过该用户端口可以将像分组这样的数据输入给节点芯片130a-130n和/或从节点芯片130a-130n中输出。此外,端口接口 112a_112n中每个端口接口 112a_112n可以包括端口,通过该端口可以建立节点芯片130a中的端口和端口接口 112a之间的连接。节点芯片130a的端口和端口接口 112a-112n的端口之间的连接可以包括使能数据的相对高速通信的任何适合连接,如光纤或其等同物。
[0017]根据示例,结构芯片110包括将节点芯片130a_130n可通信地彼此连接的ASIC。结构芯片110还可以包括可通信地将结构芯片110连接至另一网络装置150的结构芯片110的ASIC,其中如此连接的结构芯片110可以被解释为背面可堆叠的结构芯片。本文将与节点芯片130a-130n的端口可通信地联接的端口接口 112a_112n的端口描述为“下行链路端口”。此外,本文将与另一网络装置150中的结构芯片110的端口接口 112a-112n可通信地联接的端口接口 112a-112n的端口描述为“上行链路端口 ”。在这一方面,干线链路154、156包括“上行链路”。
[0018]根据示例,分组通过源节点芯片的下行链路端口进入结构芯片110,源节点芯片可以包括与目的地节点芯片相同的节点芯片。目的地节点芯片可以是交换结构中包括与源节点芯片附接的结构芯片端口在内的任何结构芯片端口。此外,分组包括要由结构芯片110将分组传递至哪个节点芯片的节点芯片的标识,如数据列表、目的地节点掩码等。此外,向端口接口 112a-112n中每个端口接口指派比特,端口接口 112a_112n中每个端口接口均要实施端口解析操作,以确定端口接口 112a-112n中哪个端口接口要接收分组。更具体地,例如,接收分组的端口接口 112a可以向该分组中包含的节点芯片的标识应用比特掩码,以确定该数据中标识的比特并且确定端口接口 112b-112n中哪个端口接口对应于所确定的比特。在分组包括单播分组的情况下,端口接口 112a可以经由适合的交叉开关122-126将数据传递至所确定的端口接口 112b-112n。然而,当分组包括多播分组时,端口接口112a可以在端口解析操作期间执行附加操作,以如本文下面更详细地讨论地确定端口接口112b-112n中哪个端口接口要接收多播分组。
[0019]现在具体参考图2,这里示出根据示例的图1所示结构芯片110的简化框图。显然,图2中绘出的结构芯片110代表概括图示,并且可以添加其它组件或可以移除、修改或重布置现有组件,而不背离结构芯片110的范围。
[0020]将结构芯片110描绘为包括多个端口接口 112a_112n、交叉开关阵列120和各种逻辑块(MISC) 230。本文详细地描绘特定端口接口 112a的组件,但是应当理解,剩余的端口接口 112b-l 12η可以包括类似组件或配置。
[0021]如图2所示,结构芯片110包括网络芯片接口(NIC)块202、高速链路(HSL)(接口)块210以及一组串行器/解串行器(serdes)222。作为特定示例,该组serdes222包括一组serdes模块。此外,将serdes222描绘为将接收端口 224和发送端口 226相接合。然而,可替代地,在结构芯片110中可以使用除HSL块210和SerdeS222以外的组件,而不背离本文公开的结构芯片110的范围。
[0022]将NCI块202描绘为包括网络芯片接收器(NCR)块204a和网络芯片发送器(NCX)块204b。NCR块204a将从HSL块210接收的数据馈送至交叉开关阵列120,NCX块204b将从交叉开关阵列120接收的数据传递至HSL块210。将NCR块204a和NCX块204b进一步描绘为包括寄存器206,其中寄存器中的一些寄存器可通信地联接至交叉开关122-126中的一个交叉开关,寄存器206中的其它寄存器可通信地联接至HSL块210。
[0023]NCI块202大体以全双工的方式在对应HSL块210和交叉开关阵列120之间传递数据和控制迷你分组(Mpacket)。此外,NCI202提供两个方向上的缓冲。NCI块202还包括端口解析模块208,端口解析模块208对每个所接收的Mpacket中包含的目的地和路径信息进行解释。作为示例,每个所接收的Mpacket可以包括目的地节点芯片掩码,端口解析模块208可以在执行端口解析操作时使用该目的地节点芯片掩码来确定结构芯片110的不同端口接口 112b-112n中的正确目的地NCI块202,以进行去往可以与结构芯片110的下行链路端口或上行链路端口附接的正确目的地节点芯片130a-130n的下一跳。在这一方面,端口解析模块208可以被编程有资源,在该资源的比特掩码中,每个比特对应于结构芯片110的端口接口 112a-l 12η之一。此外,在端口解析操作期间,端口解析模块208可以对结构端口掩码实施比特掩码,以确定哪个比特以及因此哪个端口接口 112b-112n要接收该分组。此夕卜,端口解析模块208独立于外部软件对目的地和路径信息进行解释,确定正确的NCI块202,并且确定要将分组输出至哪个端口。换言之,端口解析模块208不需要由外部软件控制来执行这些功能。
[0024]端口解析模块208还可以被编程有对端口接口 112a_112n中哪个端口接口包括正是干线链路154、156的上行链路进行识别的信息。如本文下面更详细地讨论的,端口解析模块208可以在例如分组包括要经由干线链路154、156传送的多播分组时对被确定为接收分组的端口接口 112a-112n执行各种变换。
[0025]NCX块204b还包括对从多播数据交叉开关126接收的分组进行操作的节点修剪模块209和单播转换模块2011。更具体地,单播转换模块211要对分组进行处理,以识别下行链路的节点芯片将对那个分组需要的数据中的数据字。此外,节点修剪模块209要将目的地节点芯片掩码修剪为比特的子集,该比特的子集代表哪些节点芯片要接收分组,使得仅被认为遍历该端口的目的地节点芯片130a-130n仍包含在芯片掩码中。因此,例如,如果NCX块204b接收列出结构芯片110的芯片节点130a和与另一网络装置150附接的芯片节点130的多播分组,则NCX块204b可以在将该多播分组发送至另一装置150以前对该多播分组的数据列表进行修剪,以移除结构芯片110的芯片节点130a。
[0026]HSL块210大体操作来初始化且检测高速链路中的错误,并且如果必要则重传数据。根据示例,NCI块202和HSL块210之间的数据路径在每个方向上均是64比特宽。
[0027]现在转向图3和图4,这里分别示出根据两个示例的交换结构300和400的简化框图。显然,图3和图4中绘出的交换结构300和400代表概括图示,并且可以添加其它组件或可以移除、修改或重布置现有组件,而不背离交换结构300和400的范围。
[0028]将交换结构300描绘为包括两个网络装置302a和302b,将交换结构400描绘为包括多个网络装置302a-302h。还将网络装置302a_302h中每个网络装置描绘为包括各自的结构芯片(FC0-FC7) 350a-350h。网络装置302a_302h中每个网络装置可以包括与图1中绘出的网络装置100相同或相似的配置。此外,结构芯片350a-350h中每个结构芯片可以包括与图2中描绘的结构芯片110相同或相似的配置。而且,尽管在图3和图4中已经描绘出特定数量的网络装置302a-302h,但是应当理解,交换结构300和400可以包括相对于彼此被布置在任何数量的不同构造中的任何数量的网络装置302a-302h,而不背离交换结构300和400的范围。
[0029]在任何方面,如在交换结构300和400中示出的,将每个网络装置302a_302h描绘为包括四个节点芯片(N0-N31)311-342。将节点芯片(N0_N31)311_342中每个节点芯片描绘为包括两个端口(0,1),这两个端口可通信地联接至至少一个各结构芯片350a-350h的端口(0-11)。更具体地,将节点芯片311-342的端口中每个端口描绘为连接至十二个端口0-11中的一个端口,其中端口 0-11中每个端口可通信地联接至端口接口 112a-112n。此夕卜,将节点芯片311-342描绘为通过双向链路连接至各结构芯片350a-350h。在这一方面,数据可以在节点芯片311-342和它们各自的结构芯片350a-350h之间沿任一方向流动。
[0030]如上面关于图1讨论的,结构芯片350a_350h的与节点芯片311-342连接的端口被称为“下行链路端口 ”,结构芯片350a-350h的与其它结构芯片350a_350h连接的端口被称为“上行链路端口 ”。结构芯片350a-350h的上行链路端口和下行链路端口中的每个端口均包括通过该链路应当到达的目的地节点芯片311-342的标识。此外,被供应到交换结构300和400内的数据包括随其一起的应当将分组传递至哪个节点芯片的节点芯片311-342的标识。节点芯片311-342的标识与节点芯片的标识中一个或多个节点芯片或芯片掩码相匹配的上行链路端口被认为是“优选上行链路端口 ”,该优选上行链路端口将接收要传送的数据,除非该“优选上行链路端口”是死的或在别的方面不可用。如果优选上行链路是死的或在别的方面不可用,那么端口解析模块208可以使用可编程的、指定优先级的待使用的一系列端口作为替代上行链路端口,以选择替代上行链路端口而不是选择优选上行链路端口来接收分组。
[0031]单个节点芯片311-342的列表与节点芯片的标识中的节点芯片之一相匹配的下行链路端口被认为是“活跃下行链路端口 ”。在分组中嵌入“路径索引”,该路径索引选择将对该分组使用“活跃下行链路端口 ”中的哪个活跃下行链路端口。该基于路径的过滤使结构芯片350a-350h能够具有与节点芯片311-342的多个连接。
[0032]在任何方面,结构芯片350a_350h会将分组传递至在节点芯片的标识内的节点芯片311-342。对于那些在节点芯片的标识内包含的与结构芯片350a的下行链路端口连接的节点芯片311-342而言,结构芯片350a可以将分组直接传递至那些节点芯片311-314。然而,对于在节点芯片的标识中不与结构芯片350a的下行链路端口连接的节点芯片315-342而言,结构芯片350a执行硬件计算,来确定为了到达那些节点芯片315-342,分组将遍历哪些上行链路端口。将这些硬件计算限定为“端口解析操作”。
[0033]如图3所示,将网络装置302a的结构芯片350a描绘为通过三个干线链路154-158可通信地连接至网络装置302b的结构芯片350b,这三个干线链路154-158是相同干线152的一部分。在图4中,将结构芯片350a-350h中每个结构芯片描绘为通过两个分别的干线链路154-156和158-160连接至两个相邻的结构芯片350a_350h,这两个分别的干线链路154-156和158-160是两个分离的干线152的一部分。
[0034]图4中描绘的交换结构400包括环形网络构造,其中结构芯片350a_350h中每个结构芯片均连接至恰好两个其它结构芯片350a-350h。更具体地,相邻结构芯片350a_350h的端口(O)和(I)和(10)和(11)被描绘为彼此可通信地连接。于是,在网络装置302a-302h之间提供用于数据信号流过每个节点的单个连续通路。
[0035]虽然已经将交换结构300描绘为包括两个网络装置302a、302b并且已经将交换结构400描绘为包括八个网络装置302a-302h,网络装置302a_302h中每个网络装置包括四个节点芯片311-342,但是应当清楚地理解,交换结构300和交换结构400可以包括具有其间任何合理数量干线链路154-160的任何合理数量网络装置302a-302h,而不背离交换结构300和交换结构400的范围。此外,每个网络装置302a-302h均可以包括任何合理地适当数量的节点芯片311-342,而不背离交换结构300和400的范围。此外,结构芯片350a-350h中每个结构芯片均可以包括任何合理地适当数量的端口接口 112a_112n和端口。更进一步地,网络装置302a-302h可以布置在其它网络构造中,如网状布置,只要网络装置302a-302h中至少两个包括关于彼此的干线链路154-160。
[0036]关于图5和图6更详细地描述可以实施交换结构300和交换结构400的各种方式,图5和图6分别绘出根据示例的用于实施包括图1至图4的结构芯片110、350a的交换结构的方法500和600的流程图。显然,方法500和方法600代表概括图示,可以添加其它步骤或者可以移除、修改或重布置现有步骤,而不背离方法500和方法600的范围。
[0037]特别地关于图1至图4中描绘的结构芯片110和350a_350h做出方法500和600的描述。然而,应当理解,方法500和600可以在与结构芯片110和350a不同的结构芯片中实施,而不背离方法500和600的范围。此外,虽然参考网络装置302a-302h中的特定网络装置并因此参考结构芯片350a-350h和节点芯片311-342中特定的结构芯片和节点芯片,但是应当理解,本文描述的操作可以被网络装置302a-302h中任何网络装置或在网络装置302a-302h中的任何网络装置中执行。
[0038]结构芯片110、350a_350h的端口接口 112a_112n中的每个端口接口可以被编程有要通过各个端口接口 112a-112n到达的目的地节点芯片130a-130n、311_342。因此,例如,包含结构芯片(FCO) 350a的端口(2)的端口接口 112a可以被编程有节点芯片(NO) 311作为该端口接口 112a的可到达目的地节点芯片。作为另一示例,包含结构芯片(FC0)350a的端口(O)的端口接口 112η可以被编程有节点芯片(N4-N31) 315-342或者这些节点芯片的子集作为该端口接口 112η的可到达目的地节点芯片。
[0039]结构芯片110、350a_350h的端口接口 112a_112n中的每个端口接口可以被编程有包括干线链路的结构链路的标识。此外,结构芯片110、350a-350h的端口接口 112a_112n中的每个端口接口可以被编程有被组织在一起的干线链路的标识。因此,例如,结构芯片350a的端口接口 112a-l 120η可以被编程有干线链路152和154在第一干线中且干线链路156和158在第二链路中的信息。
[0040]一般而言,图5中描绘的方法500适合于由结构芯片350a_350h响应于单播分组或多播分组的接收而执行的各种操作。此外,图6中描绘的方法600适合于由结构芯片350a-350h响应于多播分组的接收而执行的各种操作。在方法500和方法600中,分组可以包括各种信息,如要向哪个节点芯片传递分组的节点芯片的标识(本文中被称为“数据列表”)、结构端口掩码、目的地芯片节点掩码、比特掩码、芯片掩码等。在分组中还可以嵌入“路径索引”,该路径索引选择多个活跃下行链路端口中哪些下行链路端口要被用于将该分组传递至在标识中包含的目的地节点芯片。
[0041]首先参考图5,在框502处,将分组接收到结构芯片350a中。结构芯片350a可以通过下行链路端口从所附接的节点芯片311-314之一接收分组或者通过上行链路端口(干线链路154-160)从另一结构芯片350b、350h接收分组。在二者之中任一事件中且如图2所示,可以通过接收端口 224将分组接收到serdes222、DIB220、HSL210以及NCR204a的寄存器206内ο
[0042]在框504处,通过例如端口接口 112a的端口解析模块208,在结构芯片350a中,进行结构芯片350a的端口接口 112b-112n中的哪个端口接口要输出分组以到达在数据列表中列出的目的地节点芯片的确定。在目的地节点芯片连接至结构芯片350a的下行链路端口的情况下,在框504处,端口解析模块208可以从可通过结构芯片350a的端口接口112a-112n到达的节点芯片的被编程的标识中识别包含去往目的地节点芯片的下行链路端口的端口接口 112b-112n。在图3和图4图示的示例中,端口解析模块208可以确定要通过端口(2)- (9)之一输出分组。
[0043]在目的地节点芯片未连接至结构芯片350a的下行链路端口的情况下,端口解析模块208可以识别包含去往与目的地节点芯片直接通信的另一结构芯片350b-350h的上行链路端口的端口接口 112b-112n。在图3和图4图示的示例中,端口解析模块208可以确定要在图4的示例中通过端口(O)、(10)、(11)以及端口(I)之一输出分组。在任何方面,端口解析模块208可以确定端口接口 112b-112n中哪个端口接口(因此确定端口(O) - (11)中的哪个端口)要传送分组来使分组到达目的地节点芯片。
[0044]当要通过干线链路154-160传送分组时,端口解析模块208确定干线链路154-160中哪个干线链路要传送分组。在这些情况中,端口解析模块208要从分组的内容中产生结构端口掩码,该结构端口掩码是端口接口 112b-112n中应当通过其发送分组的那个端口接口的指示。此外,端口解析模块208包括比特掩码,该比特掩码中的每个比特对应于端口接口 112a-112n之一。端口解析模块208对分组的结构端口掩码实施端口解析操作,以确定干线链路154-160的端口接口 112a-112n中哪个端口接口要接收分组。更具体地,例如,分组的数据可以包含值,端口解析模块208可以使用该值作为要使用干线链路154-160中哪个干线链路的一组逻辑的索引。此外,至干线链路的映射可以在结构芯片350a-350h中的每个结构芯片中不同,以帮助基于交换结构300、400的拓扑为最低拥塞进行流量整形。
[0045]作为示例,由于已经将结构芯片350a描绘为包括12个端口接口 112a_112n,所以端口解析模块208将目的地节点芯片掩码与被编程到端口解析模块208内的那组12比特、32比特比特掩码进行比较。12个生成的比特可以被称为“NCX掩码O”。如果这些比特中任何比特被设置,则端口接口 112a-112n的对应NCI端口 202将被确定为接收分组。
[0046]现在转向图6,方法600描绘当分组包括多播分组时可以在框504处实施的各种操作。
[0047]在框604处,端口解析模块208可以实施端口解析操作,以确定要将多播分组发送至端口接口 112b-112n中哪个端口接口。也就是说,例如,端口解析模块208可以确定多播分组的结构端口掩码表示要将该多播分组发送至相同干线152的多个端口接口112b-112n。
[0048]在框606处,被确定为传送至相同干线152的端口接口 112b_112n的多播分组被例如端口解析模块208搜集以传送至干线152的信号干线链路154。也就是说,例如,端口解析模块208使识别与干线链路组关联的要接收多播分组的所有端口接口 112a-112n的比特分解(collapse)成与单个干线链路的端口接口对应的单个比特。
[0049]作为示例,去往干线152的多播分组将全部具有“NCX掩码O比特”的标志,因为干线152被搜集至该干线152的最低序数。干线152内的最低NCI索引将被确定为接收多播分组,干线链路旋转可以被应用至那个端口接口 112b-112n。换言之,可以为多播分组通信选择与具有最低NCI索引的干线152中的干线链路154-156连接的端口接口 112b_112n,以平衡干线152中干线链路154-156的使用。
[0050]在框504和框606中任一框以后,并且返回参考图5,在框506处,例如由端口解析模块208对所确定的端口接口 112b-112n是否活跃进行确定。此外或可替代地,在框506处,例如由端口解析模块208,对在框504或框606处的所确定的端口接口 112b_112n是否满足预定的目标进行确定。预定的目标可以包括例如基本上平衡与干线链路154-160连接的端口接口 112a-112n的使用。作为示例,端口解析模块208可以跟踪与干线链路154-160连接的端口接口 112a-112n中每个端口接口已被使用的次数,并且可以确定特定的端口接口 112b已比其它端口接口 112c-112n使用更频繁。在该情况中,端口解析模块208可以确定在框506处未满足预定的目标。作为另一示例,端口接口 112a-112n的端口解析模块208可以被编程为导致端口接口 112a-112n的特定端口接口比端口接口 112a_112的其它端口接口使用得更频繁。
[0051]端口解析模块208可以基于例如未通过那个端口接口 112b_112n传递分组的通信的先前标识,确定所确定的端口接口 112b-112n是死的或者以别的方式不可用。端口解析模块208还可以通过确定将分组传送至那个端口接口 112b-112n的尝试已经失败来做出该确定。
[0052]响应于在框506处所确定的端口接口 112b_112n是不活跃的和/或预定的目标尚未达到的确定,在框508处例如通过端口解析模块208确定下一可替代端口接口112b-112n。端口解析模块208可以从要被用作到达目的地芯片节点311-342的上行链路端口的指定优先级的端口列表中确定下一可替代端口接口 112b-l 12η。也就是说,端口解析模块208可以在指定优先级的列表中选择下一端口接口 112b-112n来接收分组。根据示例,相同干线链路组中作为不活跃端口接口 112b-l 12n的端口接口 112b-l 12n被列出作为该指定优先级的列表中具有最高优先级。此外,不在相同干线链路组中的端口接口 112b-112n可以例如基于每个链路所需的跳数而被列出为具有相对较低的优先级。在这一方面,端口解析模块208可以继续使用特定干线链路组的相同干线链路154-160,直到那个特定干线链路组的所有干线链路154-160在使用不同的可能更多带宽消耗量的路径以前被确定为已失效。
[0053]根据另一示例,在框508可以通过对端口解析操作应用可编程的转换来确定可替代的端口接口 112b-112n,该可编程的转换将期望的端口接口 112b-112n重映射至不同的端口接口 112b-112n。作为示例,响应于期望端口是不可用的,可以在计算可替代端口接口以前执行可编程的转换。此外,在已经处理可编程的转换以后,可以确定可替代的端口接□。
[0054]在任何事件中,端口解析模块208还可以在框506处确定在框508处确定的可替代的端口接口 112b-112n是否是活跃的,并且可以响应于所选择的端口接口是不活跃的和/或满足预定的目标的确定,在框508处确定和选择指定优先级的列表中的下一端口接口112b-112n。可以重复框506和框508,直到确定活跃的端口接口 112b_112n和/或满足预定目标的端口接口 112b-112n。[0055]在框510处,将分组传送至所确定的端口接口 112b_112n。更具体地,例如,包含分组的端口接口 112a的NCR204a可以通过单播数据交叉开关124或多播数据交叉开关126将分组传送至所确定的端口接口 112b-112n。此外,所确定的端口接口 112b-112n可以通过NCX204b从单播数据交叉开关124或多播数据交叉开关126接收分组。
[0056]在框512处,所确定的端口接口 112b_112n输出分组。在目的地节点芯片311-342通过下行链路端口连接至所确定的端口接口 112b-112n的情况下,将分组直接传递至所附接的节点芯片311-342。在目的地节点芯片311-342不直接联接至所确定的端口接口 112b-112n的情况下,将分组通过链路或干线链路154-160传递至另一结构芯片350b-350h。
[0057]在框514处,方法500可以对结构芯片350a结束。此外,从结构芯片350a接收分组的结构芯片350b-350h可以按需要实施框502-512。
[0058]此外,从结构芯片350a接收多播分组的结构芯片350b,和/或被放置在从结构芯片350b起的更下游的另一结构芯片350c-350h,要将用于传送的多播分组复制给该多播分组的目的地节点芯片。在这一方面,不是通过结构芯片350a-350h之间的链路传送多播分组的多个复本,而是可以通过链路传送多播分组的每干线单个复本,并且位于距离源结构芯片350a-350h最远的结构芯片350a_350h可以复制多播分组。这减少在将多播分组传递至目的地节点芯片311-342时在交换结构300、400中消耗的带宽量。此外,当将多播分组传递至目的地芯片节点时,结构芯片350a-350c中的NCX204b可以从节点芯片的标识中去除接收该多播分组的芯片节点,以从而减少或消除多播分组的重复传递尝试。
[0059]本文已经描述和图示的是本公开的各个示例,以及它们的一些变化。本文使用的术语、描述和图仅是作为说明阐述的,而不旨在作为限制。在本公开的精神和范围内,许多变化是可能的,其中本公开旨在由下面的权利要求及其等同物限定,其中所有术语从其最广的合理意义上去理解,除非另外指出。
【权利要求】
1.一种结构芯片,包括: 多个端口接口,其中所述多个端口接口中每个端口接口包括: 网络芯片接口(NCI)块,具有端口解析模块,以确定端口接口中哪个端口接口要从所述NCI块接收分组,和 交叉开关块,可通信地与所述多个端口接口中的所述NCI块中的每个NCI块联接;并且 其中所述多个端口接口中至少两个端口接口要联接至另一结构芯片的至少两个端口接口来作为干线的干线链路,并且其中所述多个端口接口中的所述至少两个端口接口的所述NCI块包括资源,所述资源保持对所述结构芯片中与所述干线的所述干线链路连接的所述端口接口的跟踪。
2.根据权利要求1所述的结构芯片,其中所述资源包括比特掩码,其中所述比特掩码中每个比特对应于所述结构芯片的所述端口接口之一。
3.根据权利要求1所述的结构芯片,其中所述分组包含目的地节点芯片掩码,所述目的地节点芯片掩码指示所述多个节点芯片中哪个节点芯片要传输所述分组,并且其中所述端口解析模块要实施端口解析操作来确定本地端口接口中哪个本地端口接口要发送所述分组,以便向至少一个目的地节点芯片前进。
4.根据权利要求3所述的结构芯片,其中响应于所述端口解析模块确定所述分组包括多播分组,所述端口解析模块要搜集要被传送至所述干线的单个干线链路的端口接口的所述多播分组,并且要将所 搜集的多播分组传送至所述单个干线链路。
5.根据权利要求4所述的结构芯片,其中所述端口解析模块要通过将所述分组中对待接收所述多播分组的所有端口接口进行识别的比特分解成与所述单个干线链路的所述端口接口对应的单个比特,搜集所述多播分组。
6.根据权利要求1所述的结构芯片,其中所述端口解析模块进一步要控制与所述干线的所述干线链路连接的所述端口接口的使用,以满足预定的目标。
7.根据权利要求6所述的结构芯片,其中所述预定的目标包括基本上平衡与所述干线的干线链路连接的所述端口接口的使用。
8.根据权利要求1所述的结构芯片,其中所述端口解析模块进一步要实施自动结构重路由操作,该自动结构重路由操作将最高优先级故障转移选项配置为位于与所述干线的所述干线链路连接的端口接口内,并且将最低优先级故障转移选项配置为位于与所述干线的所述干线链路连接的所述端口接口的外面。
9.一种交换结构,包括权利要求1的结构芯片,所述交换结构进一步包括: 源节点芯片,可通信地联接至所述多个端口接口中第一端口接口,其中所述结构芯片要通过所述第一端口接口从所述源节点芯片接收分组; 目的地节点芯片;以及 第二结构芯片,包括多个端口接口,其中所述第二结构芯片的所述端口接口中至少两个端口接口通过所述干线的所述干线链路可通信地联接至所述结构芯片的所述端口接口中至少两个端口接口, 其中第一结构芯片的所述端口解析模块要确定所述多个端口接口中要从所述第一端口接口中接收所述分组的第二端口接口,以使所述分组通过穿过所述第二结构芯片的通路到达所述目的地节点芯片。
10.根据权利要求9所述的交换结构,其中所述分组包括多播分组,其中所述结构芯片要穿越所述干线的单个干线链路传送所述多播分组,并且其中所述第二结构芯片要将用于传送的所述多播分组复制至所述多播分组的接收者。
11.一种用于实施权利要求1的结构芯片的方法,所述方法包括: 将所述分组接收到所述多个端口接口中第一端口接口内, 实施端口解析操作,以确定所述端口接口中哪个端口接口要发送所述分组;以及 将所述分组传送至所确定的端口接口。
12.根据权利要求11所述的方法,其中接收所述分组进一步包括接收多播分组, 其中实施所述端口解析操作进一步包括对所述多播分组中包含的目的地节点芯片掩码实施所述端口解析操作,以确定所述端口接口中哪个端口接口要发送所述多播分组,所述方法进一步包括: 搜集要被传送至每个期望干线的单个干线链路的所述端口接口的所述多播分组;并且 其中传送所述分组进一步包括将所搜集的多播分组传送至每个期望干线的单个干线链路的所述端口接口。
13.根据权利要求12所述的方法,其中搜集所述多播分组进一步包括:通过将对与干线的干线链路连接的要接收所述多播分组的所有端口接口进行识别的比特分解成与所述干线的所述单个干线链路的端口接口对应的单个比特,搜集所述多播分组。
14.根据权利要求11所述的方法,其中实施所述端口解析操作来确定所述端口接口中哪个端口接口要发送所述分组·进一步包括:实施所述端口解析操作以控制与所述干线的所述干线链路连接的所述端口接口的使用,以满足预定的目标。
15.根据权利要求11所述的方法,其中实施所述端口解析操作来确定所述端口接口中哪个端口接口要发送所述分组进一步包括:实施所述端口解析操作来实施自动结构重路由操作,该自动结构重路由操作将最高优先级故障转移选项配置为位于与所述干线的所述干线链路连接的所述端口接口内,并且将最低优先级故障转移选项配置为位于与所述干线的所述干线链路连接的所述端口接口外面。
【文档编号】H04L12/931GK103597788SQ201180071455
【公开日】2014年2月19日 申请日期:2011年8月8日 优先权日:2011年8月8日
【发明者】迈克尔·弗赖, 文森特·卡万纳, 特雷弗·斯维特科夫斯基 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1