首页> 中国专利> 响应于不可用的路径实施交换结构

响应于不可用的路径实施交换结构

摘要

在用于实施交换结构的方法中,在第一结构芯片中从源结构芯片接收包括目的地节点芯片的标识的分组,并且确定交换结构中要向着目的地节点芯片传递分组所依循的第一路径是不可用的。此外,确定要向着不包括源结构芯片的目的地节点芯片传递分组所依循的另一路径是否是可用的。响应于确定另一路径是可用的,沿该另一路径传递分组。此外,响应于确定另一路径是不可用的,将分组传递回至源结构芯片。

著录项

  • 公开/公告号CN103765825A

    专利类型发明专利

  • 公开/公告日2014-04-30

    原文格式PDF

  • 申请/专利权人 惠普发展公司有限责任合伙企业;

    申请/专利号CN201180073139.3

  • 发明设计人 迈克尔·弗赖;文森特·卡万纳;

    申请日2011-09-28

  • 分类号H04L12/28;H04L12/701;H04L12/931;H04L29/04;

  • 代理机构北京德琦知识产权代理有限公司;

  • 代理人郭艳芳

  • 地址 美国德克萨斯州

  • 入库时间 2024-02-20 00:15:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-15

    授权

    授权

  • 2016-09-07

    专利申请权的转移 IPC(主分类):H04L12/28 登记生效日:20160818 变更前: 变更后: 申请日:20110928

    专利申请权、专利权的转移

  • 2014-06-04

    实质审查的生效 IPC(主分类):H04L12/28 申请日:20110928

    实质审查的生效

  • 2014-04-30

    公开

    公开

说明书

背景技术

计算机性能已提升并且继续以很快的速率提升。伴随所提升的计算机性能,将计 算机连接在一起的网络的带宽能力也已提升并且继续显著提升。基于以太网的技术是 已被改变和改进来向联网的计算机提供充足带宽的一种网络的示例。基于以太网的技 术通常利用网络交换机,网络交换机是根据数据分组(packet)中包含的目的地地址 信息对数据分组流进行控制的基于硬件的设备。在交换结构中,网络交换机通过结构 (fabric)彼此连接,该结构允许建造具有可扩展端口密度的网络交换机。此结构通常 从网络交换机接收数据并且将数据转发至其它连接的网络交换机。

附图说明

本公开的特征是通过示例图示的且不局限于下面的图,在下面的图中,相同 的附图标记表示相同元件,其中:

图1图示根据本公开示例的网络装置的简化示意图;

图2示出根据本公开示例的图1所示的结构芯片的简化框图;

图3、图4A和图4B分别示出根据本公开的示例的交换结构的简化框图;以 及

图5和图6分别示出根据本公开示例的用于实施包括图1至图4B的结构芯片 的交换结构的方法的流程图。

具体实施方式

为简单和说明目的,通过主要参考本公开的示例对本公开进行描述。在下面 的描述中,阐述大量特定细节,以便提供对本发明的全面理解。然而,将显而易 见的是,本公开可以在没有对这些特定细节的限制的情况下实践。在其它情况中, 未详细地描述一些方法和结构,以便不非必要地使本公开模糊。

在本公开全文中,附图标记后的术语“n”意在表示大于1的整数值。此外, 图中的省略号(“…”)意在表示在围绕省略号的要素之间可以包括附加的要素。 此外,术语“一”意在表示特定要素中至少一个。本文中使用的术语“包括”指 包括但不限于,本文使用的术语“包含”指包含但不限于。术语“基于”指至少 部分地基于。

本文公开的是结构芯片、包含该结构芯片的交换结构和用于实施该交换结构 的方法。本文公开的结构芯片是为了避免将从源结构芯片接收的分组传递回至该 源结构芯片,除非在交换结构中没有其它可用路径供分组穿过来到达目的地节点 芯片。换言之,本文公开的结构芯片、交换结构和用于实施该交换结构的方法实 际上避免交换结构中的不良“U回转(U-Turn)”。本文中,源结构芯片可以被 限定为直接连接至另一结构芯片且因此与另一结构芯片相邻的结构芯片。在这一 方面,本文中,源结构芯片可以被限定为分组进入交换结构所通过的结构芯片。 此外或可替代地,源结构芯片可以被限定为分组在进入另一结构芯片之前穿过的 前一结构芯片。

“U回转”可以被定义为由另一结构芯片从源结构芯片接收的分组被发送回 至该源结构芯片。可以通过与分组到达所通过的相同结构端口或者通过作为与该 分组到达所通过的结构端口相同干线的一部分的不同结构端口,将该分组发送回 去。在任何情况下,通过本文公开的结构芯片、交换结构和方法的实施,分组在 不得已的情况下才进行U-回转。也就是说,如果不存在不以源结构芯片终止的其 它路径或上行链路,则该分组才会返回至源结构芯片。

此外,一旦分组被传递回至源结构芯片,源结构芯片就选择该分组所传递至 的不同结构芯片,从而继续沿反向路径朝目的地节点芯片传播分组。关于这一点, 源结构芯片可以将具有该结构芯片的干线链路视为单个链路,因此可以防止通过 不同的干线链路将分组传递回至该结构芯片。于是,其中最高优先级故障转移选 项可以在相同干线内,该优先级可以降级至最低优先级,使得一旦决定要沿相反 的方向传送分组,就可以在交换结构中沿相反的方向继续向前行进。本文中,相 反的方向可以被定义为起始于分组将从结构芯片中发出所使用的结构端口并且指 向该分组已穿过的结构端口所定义的方向。换言之,相反的方向可以包括对分组 而言是非优选路径的方向。

通过本文公开的结构芯片、交换结构和方法的实施,当优选路径不可用或者 不活跃时,分组可以通过交换结构前进。此外,涉及干线链路的处理被包含到交 换结构的实施内,因此避免分组经过单个链路或经过多个干线链路在源结构芯片 与另一结构芯片之间来回地反弹的情况。

如本文中记载,网络交换机之间或交换结构中的结构芯片之间的干线链路可 以被限定为联结同一对网络交换机或该交换结构中的结构芯片的两个或更多个结 构链路。换言之,干线链路包括平行链路。此外,可以将干线限定为同一对网络 交换机或结构芯片之间的干线链路的集合。因此,例如可以在第一网络交换机和 第二网络交换机之间提供干线链路的第一干线,并且可以在第一网络交换机和第 三网络交换机之间提供干线链路的第二干线。分组可以经由联结网络交换机的干 线链路中任何干线链路在网络交换机之间传递。

如本文使用的,分组可以包括数据分组和/或控制分组。根据示例,分组包括 数据迷你分组(MPacket)和控制迷你分组,其中控制迷你分组是请求或应答,数 据迷你分组是单播和/或多播。

首先参考图1,这里示出根据示例的网络装置100的简化图。很明显,图1中 绘出的图代表概括图示,并且可以添加其它组件或可以移除、修改或重布置现有 组件,而不背离网络装置100的范围。

网络装置100大体包括用于执行联网功能的装置,如网络交换机或等同装置。 在这一点上,网络装置100可以包括外壳或外罩102,并且可以被用作联网组件。 换言之,例如,可以将外壳102用于放置在电子器件架或其它联网环境中,如与 其它网络装置一起放置在堆叠构造中。在其它示例中,网络装置100可以位于外 壳内较大ASIC的或一组ASIC的内部。此外或可替代地,网络装置100可以提供 单个外壳内部的结构网络的一部分。

将网络装置100描绘为包括结构芯片110和具有标记有“0”和“1”的端口 的多个节点芯片130a-130n。还将结构芯片110描绘为包括多个端口接口 112a-112n,多个端口接口112a-112n可通信地联接至节点芯片130a-130n的端口“0” 和“1”中的各个端口。端口接口112a-112n还可通信地连接至交叉开关(crossbar) 阵列120,将交叉开关阵列120描绘为包括控制交叉开关122、单播数据交叉开关 124和多播数据交叉开关126。还将端口接口112n描绘为连接至另一网络装置150, 另一网络装置150可以包括与网络装置100相同或相似的构造。因此,例如,另 一网络装置150可以包括可通信地联接至结构芯片110的多个节点芯片130a-130n。 如图所示,端口接口112n通过上行链路152连接至另一网络装置150。然而,可 替代地并且如本文下面更详细地介绍的,网络装置100和另一网络装置150可以 通过公共干线的干线链路彼此通信。

根据示例,节点芯片130a-130n包括使用户端口和结构芯片110能彼此接合的 专用集成电路(ASIC)。虽然未示出,但是节点芯片130a-130n中每个节点芯片 还可以包括用户端口,通过该用户端口可以将像分组这样的数据输入给节点芯片 130a-130n和/或从节点芯片130a-130n中输出。此外,端口接口112a-112n中每个 端口接口112a-112n可以包括端口,通过该端口可以建立节点芯片130a中的端口 和端口接口112a之间的连接。节点芯片130a的端口和端口接口112a-112n的端口 之间的连接可以包括使能数据的相对高速通信的任何适合连接,如光纤或其等同 物。

根据示例,结构芯片110包括将节点芯片130a-130n可通信地彼此连接的 ASIC。结构芯片110还可以包括将结构芯片110可通信地连接至另一网络装置150 的结构芯片110的ASIC,其中如此连接的结构芯片110可以被解释为背面可堆叠 的结构芯片。本文将与节点芯片130a-130n的端口可通信地联接的端口接口 112a-112n的端口描述为“下行链路端口”。此外,本文将与另一网络装置150中 的结构芯片110的端口接口112a-112n可通信地联接的端口接口112a-112n的端口 描述为“上行链路端口”。

根据示例,分组通过源节点芯片的下行链路端口进入结构芯片110,源节点芯 片可以包括与目的地节点芯片相同的节点芯片。目的地节点芯片可以是交换结构 中包括与源节点芯片附接的结构芯片端口在内的任何结构芯片端口。此外,分组 包括要由结构芯片110将分组传递至的那个节点芯片的标识,如数据列表、目的 地节点掩码等。此外,可以向端口接口112a-112n中每个端口接口指派比特,端口 接口112a-112n中每个端口接口均可以执行端口解析操作,以确定端口接口 112a-112n中哪个端口接口要接收分组。更具体地,例如,接收分组的端口接口112a 可以向该分组中包含的节点芯片的标识应用比特掩码,以确定该数据中标识的比 特并且确定端口接口112b-112n中哪个端口接口对应于所确定的比特。在分组包括 单播分组的情况下,端口接口112a可以经由适合的交叉开关122-126将数据传递 至所确定的端口接口112b-112n。然而,当分组包括多播分组时,端口接口112a 可以在端口解析操作期间执行附加操作,以如本文下面更详细地讨论地确定端口 接口112b-112n中哪个(哪些)端口接口要接收多播分组。

现在具体参考图2,这里示出根据示例的图1所示结构芯片110的简化框图。 显然,图2中绘出的结构芯片110代表概括图示,并且可以添加其它组件或可以 移除、修改或重布置现有组件,而不背离结构芯片110的范围。

将结构芯片110描绘为包括多个端口接口112a-112n和交叉开关阵列120。本 文详细地描绘特定端口接口112a的组件,但是应当理解,剩余的端口接口 112b-112n可以包括类似组件或配置。

如图2所示,结构芯片110包括网络芯片接口(NCI)模块202、高速链路(HSL) (接口)模块210以及一组串行器/解串行器(serdes)222。作为特定示例,该组 serdes222包括一组serdes模块。此外,将serdes222描绘为将接收端口224和发 送端口226相接合。然而,可替代地,在结构芯片110中可以使用除HSL模块210 和serdes222以外的组件,而不背离本文公开的结构芯片110的范围。

将NCI模块202描绘为包括网络芯片接收器(NCR)模块204a和网络芯片发 送器(NCX)模块204b。NCR模块204a将从HSL模块210接收的数据馈送至交 叉开关阵列120,NCX模块204b将从交叉开关阵列120接收的数据传递至HSL 模块210。将NCR模块204a和NCX模块204b进一步描绘为包括各自的寄存器 206a-206d,其中寄存器206b和206d中的一些寄存器可通信地联接至交叉开关 122-126中的一个交叉开关,寄存器206a和206c中的其它寄存器可通信地联接至 HSL模块210。

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-112n之一。此外,在端口解析操作期间,端口解析模块208可以 对结构端口掩码使用比特掩码,以确定哪个比特以及因此哪个端口接口112b-112n 要接收该分组。此外,端口解析模块208独立于外部软件对目的地和路径信息进 行解释,确定正确的NCI模块202,并且确定要将分组输出至哪个端口。换言之, 端口解析模块208不需要由外部软件控制来执行这些功能。

端口解析模块208可以被编程有机器可读指令,该机器可读指令在被运行时 促使端口解析模块208确定交换结构中要向着目的地节点传递分组所依循的第一 路径是不可用的,确定交换结构中要向着不包括源结构芯片的目的地节点芯片传 递分组所依循的另一路径是否是可用的,响应于确定另一路径是可用的,沿该另 一路径传递分组,并且响应于确定该另一路径是不可用的,将分组传递回源结构 芯片。在这一点上,如果没有其它可用路径供分组到达目的地节点芯片所用,则 端口解析模块208仅将分组传递回源结构芯片。

端口解析模块208还可以被编程有对端口接口112a-112n中哪个端口接口包括 作为干线链路的上行链路进行识别的信息。如本文下面更详细地介绍的,端口解 析模块208可以将所有干线链路视为公共链路,以避免将分组返还至源结构芯片, 除非没有其它路径供分组能到达目的地节点芯片所用。

NCX模块204b还包括对从多播数据交叉开关126接收的分组进行操作的节点 修剪模块209和单播转换模块2011。更具体地,单播转换模块211要对分组进行 处理,以识别下行链路上的节点芯片将对那个分组需要的数据中的数据字。此外, 节点修剪模块209要将目的地节点芯片掩码修剪为那些比特的子集,该子集代表 哪些节点芯片要接收分组,使得仅被认为穿过该端口的目的地节点芯片130a-130n 仍包含在芯片掩码中。因此,例如,如果NCX模块204b接收列出结构芯片110 的芯片节点130a和与另一网络装置150附接的芯片节点130的多播分组,则NCX 模块204b可以在将该多播分组发送至另一装置150以前对该多播分组的数据列表 进行修剪,以移除结构芯片110的芯片节点130a。

HSL模块210大体操作来初始化并检测高速链路中的错误,并且如果必要则 重传数据。根据示例,NCI模块202和HSL模块210之间的数据路径在每个方向 上均是64比特宽。

现在转向图3、图4A和图4B,这里分别示出根据各个示例的交换结构300、 400和410的简化框图。应当清楚,图3、图4A和图4B中绘出的交换结构300、 400和410代表概括图示,并且可以添加其它组件或可以移除、修改或重布置现有 组件,而不背离交换结构300、400和410的范围。

将交换结构300描绘为包括两个网络装置302a和302b,将交换结构400和 410描绘为包括八个网络装置302a-302h。还将网络装置302a-302h中每个网络装 置描绘为包括各自的结构芯片(FC0-FC7)350a-350h。网络装置302a-302h中每个 网络装置可以包括与图1中绘出的网络装置100相同或相似的构造。此外,结构 芯片350a-350h中每个结构芯片可以包括与图2中描绘的结构芯片110相同或相似 的构造。而且,尽管在图3、图4A和图4B中已经描绘出特定数量的网络装置 302a-302h,但是应当理解,交换结构300、400和410可以包括相对于彼此被布置 在任何数量不同构造中的任何数量的网络装置302a-302h,而不背离交换结构300、 400和410的范围。

在任何方面,如在交换结构300、400和410中示出的,将每个网络装置 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之间沿任一方向流动。

如上面关于图1讨论的,结构芯片350a-350h的与节点芯片311-342连接的端 口被称为“下行链路端口”,结构芯片350a-350h的与其它结构芯片350a-350h连 接的端口被称为“上行链路端口”。结构芯片350a-350h的上行链路端口和下行链 路端口中的每个端口均包括期望通过该链路到达的目的地节点芯片311-342的标 识。此外,被供应到交换结构300、400和410内的分组随其一起包括应当将分组 传送至的那个(那些)节点芯片311-342的标识。其节点芯片311-342的标识与这 些节点芯片的标识中一个或多个节点芯片或芯片掩码相匹配的上行链路端口被认 为是“优选上行链路端口”,该优选上行链路端口将接收要传送的数据,除非该 “优选上行链路端口”是死的或在别的方面不可用。如果优选上行链路是死的或 在别的方面不可用,那么端口解析模块208可以使用可编程的、划分优先级的端 口接口列表,以选择替代上行链路端口接口而不选择优选上行链路端口来接收分 组。

其单个节点芯片311-342的列表与这些节点芯片的标识中的节点芯片之一相 匹配的下行链路端口被认为是“活跃下行链路端口”。在分组中嵌入“路径索引”, 该路径索引选择将对该分组使用“活跃下行链路端口”中的哪个活跃下行链路端 口。该基于路径的过滤使结构芯片350a-350h能够具有与节点芯片311-342的多个 连接。

在任何方面,结构芯片350a-350h会将分组传送至在节点芯片的标识内的节点 芯片311-342。对于在节点芯片的标识内包含的与结构芯片350a的下行链路端口 连接的那些节点芯片311-342而言,结构芯片350a可以将分组直接传送至至那个 (那些)节点芯片311-314。然而,对于在节点芯片的标识中不与结构芯片350a 的下行链路端口连接的节点芯片315-342而言,结构芯片350a执行硬件计算,来 确定为了到达那些节点芯片315-342,分组将穿过哪个(哪些)上行链路端口。将 这些硬件计算限定为“端口解析操作”。

如图3所示,将网络装置302a的结构芯片350a描绘为通过三个干线链路 156-160可通信地连接至网络装置302b的结构芯片350b,这三个干线链路156-160 是相同干线154的一部分。在图4A中,结构芯片350a-350h中每个结构芯片连接 至恰好两个其它结构芯片350a-350h。在图4B中,将结构芯片350a-350h中每个 结构芯片描绘为通过两个各自的干线链路156-158和160-162连接至两个相邻的结 构芯片350a-350h,这两个各自的干线链路是两个分离的干线154的一部分。

图4A和图4B中描绘的交换结构400和410包括环形网络构造,其中结构芯 片350a-350h中每个结构芯片均连接至恰好两个其它结构芯片350a-350h。更具体 地,相邻结构芯片350a-350h的端口(0)和(1)在图4A中被描绘为彼此通信地 联接。此外,相邻结构芯片350a-350h的端口(0)和(1)和(10)和(11)在图 4B中被描绘为彼此通信地连接。于是,在网络装置302a-302h之间提供用于数据 信号流过每个节点的单个连续通路。

虽然已经将交换结构300描绘为包括两个网络装置302a、302b,并且已经将 交换结构400、410描绘为包括八个网络装置302a-302h,网络装置302a-302h中每 个网络装置包括四个节点芯片311-342,但是应当清楚地理解,交换结构300、400 和410可以包括任何合理数量的网络装置302a-302h,任何合理数量的网络装置 302a-302h在其之间具有任何合理数量的链路152和/或干线链路156-162,而不背 离交换结构300、400和410的范围。此外,网络装置302a-302h每个可以包括任 何适合合理数量的节点芯片311-342,而不背离交换结构300、400和410的范围。 此外,结构芯片350a-350h中每个可以包括任何适合合理数量的端口接口 112a-112n和端口。更进一步,网络装置302a-302h可以被布置在其它网络构造中, 如网状布置或其它构造。

关于图5和图6更详细地描述可以实施交换结构300、400和410的各种方式, 图5和图6分别绘出根据示例的用于实施包括结构芯片10、350a-350h(如图1至 图4B所示的那些结构芯片)的交换结构的方法500和600的流程图。应当明白, 方法500和方法600代表概括图示,可以添加其它步骤或者可以移除、修改或重 布置现有步骤,而不背离方法500和方法600的范围。

特别地参考图1至图4B中描绘的结构芯片110和结构芯片350a-350h进行方 法500和600的描述,然而应当理解方法500和600可以在与结构芯片110和 350a-350h不同的结构芯片中执行,而不背离方法500和600的范围。此外,虽然 参考网络装置302a-302h中的特定网络装置并因此参考结构芯片350a-350h和节点 芯片311-342中特定的结构芯片和节点芯片,但是应当理解,本文描述的操作可以 被网络装置302a-302h中任何网络装置或在网络装置302a-302h中的任何网络装置 中执行。

结构芯片110、350a-350h的端口接口112a-112n中的每个端口接口可以被编 编程有通过各个端口接口112a-112n会到达的目的地节点芯片130a-130n、311-342。 因此,例如,包含结构芯片(FC0)350a的端口(2)的端口接口112a可以被编制 有节点芯片(N0)311作为与端口接口112a相关的可到达目的地节点芯片。作为 另一示例,包含结构芯片(FC0)350a的端口(0)的端口接口112n可以被编程有 节点芯片(N4-N31)315-342或者这些节点芯片的子集作为与端口接口112n相关 的可到达目的地节点芯片。

结构芯片110、350a-350h的端口接口112a-112n中的每个端口接口可以被编 程有包括干线链路的结构链路的标识。此外,结构芯片110、350a-350h的端口接 口112a-112n中的每个端口接口可以被编程有被组织在一起的干线链路的标识。因 此,例如,结构芯片350a的端口接口112a-1120n可以被编程有干线链路156和 158在第一干线中且干线链路158和160在第二链路中的信息。

一般而言,图5中描绘的方法500适合于由结构芯片350a-350h响应于单播分 组或多播分组的接收而执行的各种操作。此外,图6中描绘的方法600适合于由 结构芯片350a-350h响应于多播分组的接收而执行的各种操作。在方法500和方法 600中,分组可以包括各种信息,如要将分组传送至的节点芯片的标识(本文中被 称为“数据列表”)、结构端口掩码、目的地芯片节点掩码、比特掩码、芯片掩 码等。在分组中还可以嵌入“路径索引”,该路径索引选择多个活跃下行链路端 口中哪些下行链路端口要被用于将该分组传送至在标识中包含的目的地节点芯 片。

首先参考图5,在框502处,通过例如第一结构芯片350a中的第一端口接口 112a,从源结构芯片350b将分组接收到结构芯片350a中。结构芯片350a可以通 过源结构芯片350b的上行链路端口接收分组。在任何情况下,如图2所示,可以 通过接收端口224将分组接收到第一端口接口112a内,可以将分组接收到serdes 222、DIB220、HSL210内以及NCR240a的寄存器206内。

在框504处,例如通过端口解析模块208确定在结构芯片350a中要向着在分 组中标识的目的地节点芯片传递分组所依循的路径是不可用的。例如,如果与要 传递分组的所选择端口接口相关联的路径是无效的或不可用,则端口解析模块208 可以确定路径是不可用的。端口解析模块208可以基于分组的通信未通过端口接 口112b-112n被传递的先前标识,进行确定。端口解析模块208还可以通过确定将 分组传递至端口接口112b-112n的尝试已经失败来做出该确定。此外或可替代地, 如果未从已经尝试将分组传递至的目的地结构芯片接收到确认消息,则端口解析 模块208可以确定路径是不可用的。在该示例中,目的地结构芯片上的端口接口 可以是无效的或不可用,或者结构芯片350a中的端口接口与目的地结构芯片350h 之间的连接已经断开或不可用。

在框506处,对向着不包括源结构芯片350b的目的地节点芯片311-342的另 一路径是可用的进行确定。更具体地,例如,端口解析模块208可以确定划分优 先级的端口接口列表中要被用作到达目的地节点芯片311-342的上行链路端口的 下一可替代端口接口112b-112n是否是可用的。如果下一可替代端口接口12b-112n 被确定为可用,则端口解析模块208还可以确定所选择的端口接口是否是活跃的, 并且可以响应于所选择的端口接口是不可用的确定,来确定并选择划分优先级的 列表中的下一端口接口112b-112n。端口解析模块208可以继续该过程,直至端口 解析模块208确定没有在该划分优先级的列表中列出的更多的活跃端口接口或者 仅连接至源节点芯片350b的端口接口是可用的。

根据示例,该划分优先级的端口接口列表包含与源结构芯片350b保持通信的 端口接口。在该实例中,与源结构芯片350b保持通信的那些端口接口(包括干线 链路)被列出为具有最低的优先级,使得与源节点芯片350b保持通信的端口接口 是要将分组传递至的端口接口的最后选择。

响应于框506处确定通向目的地节点芯片311-342的另一路径是可用的,如框 508处指示的沿另一路径传递分组。更具体地,例如,包含分组的端口接口112a 的NCR204a可以通过单播数据交叉开关124将分组传递至与另一路径对应的所确 定的端口接口112b-112n。此外,所确定的端口接口112b-112n可以通过NCX204b 从单播数据交叉开关124接收分组。此外,所确定的端口接口112b-112n输出分组。

然而,响应于框506处确定通向目的地节点芯片311-342的另一路径是不可用 的,如框510处指示的将分组传递回至源结构芯片350b。更具体地,例如,包含 分组的端口接口112a的NCR204a可以通过与接收分组的结构端口相同的结构端 口将分组传递回至源结构芯片350b。然而,可替代地,在结构芯片350a通过干线 链路156-158连接至源结构芯片350b的情况下,端口解析模块208可以确定要将 分组传递至干线链路156-158中哪个干线链路,并且NCR204a可以将分组传递至 与所确定的干线链路156-158对应的端口接口112b-112n。基于干线链路156-158 在划分优先级的端口接口列表中针对源结构芯片350的列出的顺序,端口解析模 块208可以在干线链路156-158之间做出选择。

在任何方面,在块508和块510中任一块处,将分组传递至所确定的端口接 口112b-112n。更具体地,例如,包含分组的端口接口112a的NCR204a可以通过 单播数据交叉开关124或多播数据交叉开关126将分组传递至所确定的端口接口 112b-112n。此外,所确定的端口接口112b-112n可以通过NCX204b从单播数据 交叉开关124或多播数据交叉开关126接收分组。

在框512处,方法500可以对结构芯片350a结束。此外,从结构芯片350a 接收分组的结构芯片350b-350h还可以执行在框502-512中标识的操作。

响应于接收从结构芯片350a返回的分组,源结构芯片350b将选择与结构芯 片350a不同的要将分组传递至的结构芯片3530c,并且将分组传递至另一结构芯 片350a。更具体地,例如,源结构芯片350b,更具体地是接收分组的端口接口的 端口解析模块208,包括标识用于分组到达目的地节点芯片311-342的上行链路端 口的划分优先级的端口接口列表。此外,在选择另一结构芯片350c之前,端口解 析模块208可以从划分优先级的端口接口列表中移除与第一结构芯片保持通信的 端口接口。此外,在源结构芯片350b包括连接至第一结构芯片350a的至少两个 端口接口来作为干线154的干线链路156-158的至少两个端口接口的情况下,连接 至第一结构芯片350a的至少两个端口接口的源节点芯片350b的至少两个端口接 口或者在划分优先级的列表中以最低优先级列出,或者从划分优先级的列表中移 除。关于这一点,可以基本上防止分组在第一结构芯片350a与源结构芯片350b 之间来回地反弹。

作为要将分组从节点芯片(N4)315传递至节点芯片(N23)334的特定示例, 节点芯片(N4)315将分组传递至源结构芯片(FC1)350b的端口(2)或者端口 (3)。如上面关于图1介绍的,来自节点芯片315的分组包括要将该分组传送至 的节点芯片的列表(数据列表)。在此情况下,该列表仅包括节点芯片(N23)334。 此外,从节点芯片315接收分组的端口接口112a的NCR204a的端口解析模块208 在硬件中执行计算,来确定分组为到达目的地节点芯片334将穿过的源结构芯片 350b的上行链路端口(0-11)。更具体地,例如,分组可以包括包含目的地和路 径信息的迷你分组(MPacket),其中端口解析模块208可以在确定上行链路端口 (0-11)时对该目的地和路径信息进行解释。如上面介绍的,分组可以包括控制分 组和/或数据分组。控制分组包括至少一个MPacket,而数据分组包括两个或更多 个MPacket。

在任何方面,端口解析模块208可以使用该信息来索引到查找表内,该查找 表确定结构芯片350b的正确NCI模块202,以进行去往目的地节点芯片334的下 一跳。在上面的示例中,端口解析模块208可以确定上行链路端口(1)的NCI模 块202是正确的NCI模块202。于是,端口接口112a的NCR204a可以将分组传 递至包含上行链路端口(1)的端口接口112n的NCI模块202。包含上行链路端 口(1)的端口接口112n可以将分组传递至与上行链路端口(1)连接的第一结构 芯片(FC1)350a。

第一结构芯片(FC1)350a可以通过上行链路端口(0)接收分组,并且包含 上行链路端口(0)的端口接口112a的NCR204a可以使用包含在分组中的信息, 来确定要传送该分组的第一结构芯片350a的正确NCI模块202,以进行去往目的 地节点芯片334的下一跳。在该示例中,端口解析模块208可以确定上行链路端 口(1)的NCI模块202是正确的NCI模块202。然而,端口解析模块208可以确 定沿上行链路端口(1)的路径是不可用的。

在关于图4A示出的第一示例中,端口解析模块208可以确定不包括源结构芯 片(FC1)350b的另一路径是不可用的。也就是说,在图4A中,在第一结构芯片 350a与另一结构芯片350h之间仅存在一个连接,在第一结构芯片350a与源结构 芯片350b之间仅存在一个连接。因此,如果第一结构芯片350a与另一结构芯片 350h之间的连接是不可用的,则仅存在一个剩余路径,该剩余路径返回至源结构 芯片350b。因此,第一结构芯片(FC0)350a可以将分组传递回至源结构芯片(FC1) 350b。此外,源结构芯片(FC1)350b可以选择要将分组传送至另一结构芯片(FC2) 350c所通过的下一端口接口,并且可以将分组传递至另一结构芯片(FC2)350c。 此外,分组可以通过剩余结构芯片350d-350f传播,直至分组到达目的地节点芯片 334。

在关于图4B示出的第二示例中,端口解析模块208可以确定第一结构芯片 (FC0)350a的端口(11)与另一结构芯片(FC7)350h的端口(10)之间的干线 链路158是可以向着目的地节点芯片334传递分组所依循的另一路径。在该示例 中,端口解析模块208可以确定沿干线链路158的路径是否是可用的,如果是可 用的,则可以沿该路径传递分组。然而,如果确定该路径是不可用的并且任何其 它可能的路径也是不可用的,则端口解析模块208可以通过第一结构芯片350a与 源结构芯片350b之间的干线链路之一将分组传递回至源结构芯片350b。源结构芯 片350b可以接收从第一结构芯片350a返回的分组,并且可以从划分优先级的端 口接口列表中移除与第一结构芯片350c链接的端口接口。此外,源结构芯片350b 可以选择并且将分组传递至第二结构芯片(FC2),第二结构芯片(FC2)然后可 以将分组向着目的地节点芯片334传递。

现在参考图6,在框602处,将来自源结构芯片350b的多播分组接收到结构 芯片350a中。在任一事件中,如图2所示,可以通过接收端口224将分组接收到 serdes222、HSL210以及NCR204a的寄存器206a内。

在框604处,计算可使用的端口接口112a-112n列表。换言之,计算不是不良 “U回转”且不是不可用的端口接口112a-112n列表。根据示例,端口解析模块 208可以基于例如交换结构300、400、410中的可用路径的标识、接收分组所通过 的端口接口的标识等计算可使用的端口接口112a-112n列表。

在框606处,将可使用的端口接口112a-112n列表连同分组一起传递至要接收 该分组的端口接口。换言之,端口解析模块208可以根据分组中包含的信息确定 可使用的端口接口112a-112n中的哪些要接收该分组,并且通过多播数据交叉开关 126利用可使用的端口接口112a-112n列表将分组传递至所确定的端口接口 112a-112n,所确定的端口接口112a-112n传输与所需一样多的分组副本。

在框608,通过利用可使用的端口接口列表接收该分组的端口接口对该分组的 目的地列表进行修剪。在多播交叉开关126的多个NCX204b侧对端口解析操作的 计算进行重构,以确定哪些目的地节点会在该特定NCX204b的寄存器206d处终 止。这允许修剪逻辑从目的地节点204b的寄存器206c的该特定NCX204b列表中 移除“不会”被映射至该特定NCX204b的所有目的地节点。该行为存在于接收多 播分组的复本的每个NCX204b中,因为在NCR204a的端口解析操作中,每个 NCX204b仅会将该多播分组传播至映射至该NCX204b的目的地节点。

在框610处,根据分组的被修剪的目的地列表,将该多播分组传送至至少一 个第二结构芯片。被传送的多播分组的数量等于在上面的段落中介绍的接收该分 组的复本的NCX204b的数量。

在一个方面,由于结构芯片350a-350h控制分组到节点芯片311-342的传送和 转发,所以多播分组需要由节点芯片311发送一次,而不是单独地发送至每个目 的地节点。这减少在将分组传送至目的地节点芯片311-342时在交换结构300、400 和410中消耗的带宽量。

此外,从结构芯片350a接收多播分组的结构芯片350b,和/或被放置在从结 构芯片350b起更下游的另一结构芯片350c-350h,要复制该多播分组,以传递至 该多播分组的目的地节点芯片。在这一方面,不是通过结构芯片350a-350h之间的 链路传递多播分组的多个复本,而是可以通过链路对每个干线传递多播分组的单 个复本,并且位于距离源结构芯片350a-350h最远的结构芯片350a-350h可以复制 多播分组。这减少在将多播分组传送至目的地节点芯片311-342时在交换结构300、 400中消耗的带宽量。此外,当将多播分组传送至目的地芯片节点时,结构芯片 350a-350c中的NCX204b可以从节点芯片的标识中去除接收该多播分组的芯片节 点,从而减少或消除多播分组的重复传送尝试。

本文已经描述和图示的是本公开的各个示例,以及它们的一些变化。本文使 用的术语、描述和图仅是作为说明阐述的,而不旨在作为限制。在本公开的精神 和范围内,许多变化是可能的,其中本公开旨在由下面的权利要求及其等同物限 定,其中所有术语从其最广的合理意义上去理解,除非另外指出。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号