管理交换结构的制作方法

文档序号:7978303阅读:226来源:国知局
管理交换结构的制作方法
【专利摘要】在用于管理包括多个结构芯片的交换结构的方法中,每个所述多个结构芯片包括多个端口接口,生成第一配置集和第二配置集,第一配置集和第二配置集中的每个都包括用于端口接口以计算传入数据包的端口解析的多个配置寄存器。此外,做出关于多个结构芯片将使用第一配置集和第二配置中的哪个的确定,并且传送指令给每个结构芯片来使用第一配置集和第二个配置集中被确定的那个。
【专利说明】管理交换结构
【背景技术】
[0001]计算机性能已有所提闻,并以非常快的速度在不断提闻。随着提闻的计算机性能,将计算机连接在一起的网络的带宽能力也已经并继续显著提高。基于以太网的技术是一种已被修改和改进以提供足够的带宽给网络计算机的网络的示例。基于以太网的技术通常利用网络交换机,网络交换机是根据被包含在数据包中的目标地址信息来控制数据包流的基于硬件的设备。在交换结构中,网络交换机通过允许建立具有可扩展的端口密度的网络交换机的结构相互连接。该结构通常从网络交换机接收数据,并将数据转发到其它相连的网络交换机。
【专利附图】

【附图说明】
[0002]在下面的附图中,通过示例而并非限制的方式示出本公开的特征,其中相同的附图标记表示相同的元件,其中:
[0003]图1示出根据本公开的示例的网络装置的简化示意图;
[0004]图2示出图1中所述的根据本公开的示例的结构芯片的简化框图。;
[0005]图3A和图3B分别示出根据本公开的示例的交换结构的简化框图;
[0006]图4示出根据本公开的示例的交换结构管理系统的简化框图;
[0007]图5示出根据本公开的示例的用于管理交换结构的方法的流程图;
[0008]图6示出根据本公开的示例的用于使用第一配置集和第二配置集中的一个的方法的流程图;以及
[0009]图7示出根据本公开的示例的可以用作用于执行或运行图5中所述的一个或多个进程的平台的计算设备的示意图。
【具体实施方式】
[0010]为了简化和说明的目的,通过主要参照其中一示例描述本公开。在下面的描述中,阐述许多具体细节以提供对本公开的全面理解。然而,显而易见的是,不限于这些具体细节本公开也可以被实施。在其它示例中,一些方法和结构并未被详细描述以免不必要地混淆本公开。
[0011]在整个本公开中,跟随附图标记的术语“η”和“m”旨在表示大于I的整数值。此夕卜,附图中的省略号旨在表示在包围省略号的元件之间也可以包括其它元件。而且,术语“一个”旨在表示特定元素中的至少一个。如本文中所使用的,术语“包括”表示包括但不限于,术语“包含”表示包含但不限于。术语“基于”表示至少部分地基于。
[0012]本文中所公开的是一种方法,存储于控制器和计算机可读存储介质上用于为了有效的再收敛于下面的交换结构中而管理交换结构的方法,例如,自动结构重新路由或类似结构重新路由技术。更具体地,本文中所述的特征使得能够以相对无缝的方式生成并使用从旧的拓扑结构的交换结构中的拓扑变化。换言之,本文中所述的特征使得能够以大体上不中断通过交换结构的通信流的相对得体的方式生成并使用拓扑变化。[0013]本文中所公开的交换结构由多个结构芯片组成,其中,每个结构芯片包含通过交叉开关彼此相互连接的各自的一组端口接口。每个结构芯片中的端口接口将执行端口计算操作,以确定其它端口接口中的哪个将通过交叉开关接收数据包。例如,端口接口可以施加位掩码给被包含在数据包中的目标节点芯片的标识,以确定在数据包中被识别的位并确定在交叉开关相反侧的哪个端口接口将接收数据包。在该示例中,每个端口接口对应于在数据包中被识别的一特定的位。更具体地,例如位掩码可以基于在数据包中被识别的目标节点芯片来识别哪个端口接口将从接收到数据包的端口接口接收数据包。
[0014]根据示例,由端口接口施加的位掩码是变化的以随交换结构的变化重新最优化通过交换结构的数据包流。交换结构的变化可以包括有目的的变化,例如添加和/或去除结构芯片、结构芯片之间的布线的变化等。通过交换结构中的故障或其它失败,例如当结构芯片之间的链路失败时也可以发生变化。数据包流的重新最优化可以包括改变通过结构芯片的数据包流,使得数据包为到达目标节点芯片所需的跳跃过结构芯片的次数大体上最小化。
[0015]如下文中更详细地论述的,端口接口施加的位掩码或配置寄存器被包含在不同的配置集中。因此,第一配置集包括一组将由端口接口施加的与第二配置集相比不同的配置寄存器。因此,根据端口接口使用哪个配置集,不同组的位掩码将被施加到数据包,这可以导致数据包穿过不同的路径通过交换结构。结构芯片中的端口接口可以存储多个不同的配置集并且可以被指示关于在某一特定时间使用哪个不同的配置集。另外或可替代,端口接口可以被编程为当结构芯片中的条件改变时使用不同的配置集,像例如,随着在至少一个结构芯片中的故障检测。
[0016]根据示例,交换结构管理装置包括机器可读指令,该机器可读指令用于生成不同的配置集,用于确定使用哪个配置集,并且用于将不同的配置集以及将被使用的那个配置集传送给结构芯片的端口接口。交换结构管理装置也可以将关于端口接口将使用哪个配置集进行其端口解析计算的指示传送给端口接口。
[0017]端口接口可以存储不同的配置集并且每个不同的配置集可以对应一特定的位。在这方面,该特定的位可以被设置为表示与该特定的位相对应的配置集将被使用。此外,接收到端口接口的数据包被提供识别哪个配置集将被用于那些数据包的指针。在这方面,在配置集变更之前接收到的数据包包括表示旧配置集已被使用的指针,并且在配置集变更之后接收到的数据包包括表示新配置集用于端口解析计算的指针。
[0018]如本文中所使用的,数据包可以包括数据数据包和/或控制数据包。根据示例,数据包包括数据和控制迷你数据包(MPacket),其中控制迷你数据包为请求或答复,而数据迷你数据包为单播和/或多播。
[0019]首先参照图1,其中示出根据示例的网络装置100的简图。应显而易见的是,图1中所述的图表示广义的示例并且其它组件可以被添加或者现存的组件可以被去除、修改或重新布置而不脱离网络装置100的范围。
[0020]网络装置100通常包括用于执行网络功能的装置,例如网络交换机或等效装置。在这方面,网络装置100可以包括壳体或外壳102并且可以被用作联网组件。换言之,壳体102可以是放置在电子机架或其它联网环境中,例如在与其它网络装置堆叠的结构中。在其它示例中,网络装置100可以在壳体内的较大的ASIC或ASIC组内。另外或可替代,网络设备100可以提供在单个的壳体内的结构网络的一部分。
[0021]网络装置100被描述为包括结构芯片110和具有被标识为“O”和“I”的端口的多个节点芯片130a-130m。结构芯片110还被描述为包括多个端口接口 112a_112n,端口接口112a-112n通信地联接于节点芯片130a_130m的各个端口“O”和“I”。端口接口 112a_112n还通信地连接于交叉开关阵列120,交叉开关阵列120被描述为包括控制交叉开关122、单播数据交叉开关124和多播数据交叉开关126。端口接口 112η还被描述为连接于另一网络装置150,网络装置150可以包括与网络装置100相同或相似的结构。因此,例如另一个网络装置150可以包括通信地联接于结构芯片110的多个节点芯片130a-130m。如所示,端口接口 112η通过上行链路152连接于另一个网络装置150。然而,可替代,网络装置100和另一网络装置150可以通过公共干线的干线链路相互通信。
[0022]根据示例,节点芯片130a_130m包括使用户端口和结构芯片110能够相互交互的专用集成电路(ASIC)。虽然未示出,每个节点芯片130a-130m还可以包括用户端口,通过该用户端口数据(例如数据包)可以被输入节点芯片130a-130m和/或从节点芯片130a_130m输出。此外,每个端口接口 112a-112n可以包括端口,通过该端口可以建立在节点芯片130a中的端口与端口接口 112a之间的连接。节点芯片130a的端口与端口接口 112a_112n的端口之间的连接可以包括任何合适的连接,以实现数据的相对高速通信,例如光纤或其等同物。
[0023]根据示例,结构芯片110包括将节点芯片130a_130m通信地彼此连接的ASIC。结构芯片110还可以包括将结构芯片110通信地连接于另一个网络装置150的结构芯片110的ASIC,其中,这样连接的结构芯片110可以被视为底板可堆叠结构芯片110。本文中,通信地联接于节点芯片130a-130m的端口的端口接口 112a_112n的端口被描述为“下行链路端口”。此外,本文中,通信地联接于另一网络装置150中的结构芯片110的端口接口112a-112n的端口接口 112a_112n的端口被描述为“上行链路端口”
[0024]根据示例,数据包通过源节点芯片的下行链路端口进入结构芯片110,源节点芯片可以包括与目标节点芯片相同的节点芯片。目标节点芯片可以连接于交换结构中的任何结构芯片的端口,包括源节点芯片附着于的结构芯片的端口。此外,数据包包括结构芯片110将数据包传递给哪个节点芯片的标识,例如数据表、目标节点掩码等。此外,每个端口接口 112a-112n可以被分配一个位并且每个端口接口 112a_112n可以使用端口解析操作以确定哪个端口接口 112a-112n将接收数据包。更具体地,例如通过其接收到数据包的端口接口 112a可以施加一位掩码给包含在数据包中的节点芯片的标识,以确定数据中被识别的位并确定哪个端口接口 112b-112n与被确定的位相对应。在数据包包括单播数据包的情况下,端口接口 112a可以通过适当的交叉开关122-126将数据传输给被确定的端口接口112b-112n。然而,如下文中更详细地论述的,当数据包包括多播数据包时,在端口解析操作确定哪个端口接口 112b-112n将接收数据包的期间,端口接口 112a可以执行其它操作。
[0025]图1中还示出与端口接口 112a_112n通信的交换结构管理装置170。虽然交换结构管理装置170被描绘为连接于单一的端口接口 112n-l,但应理解交换结构管理装置170连接于多个或全部端口接口 112a-112n,而不脱离图1中所述的结构芯片110和交换结构管理装置170的范围。另外或可替代,交换结构管理装置170可以通过其它连接(例如无线地)通过交叉开关120等与端口接口 112a-112n通信。[0026]在任何方面,交换结构管理装置170将执行涉及结构芯片110以及结构芯片110为其中的组件的交换结构的各种功能。功能之一是生成包含配置寄存器(例如位掩码集)的配置集,结构芯片110的端口接口 112a-112n将使用该配置集以计算通过端口接口112a-112n接收的数据包的端口解析。另一功能是将关于在给定时间使用多个配置寄存器中的哪个的指令传送给端口接口 112a-112n。在下文中更详细地描述交换结构管理装置170可以以其进行操作的各种方式。
[0027]现在具体参考图2,其中示出图1中所述的根据示例的结构芯片110的简化框图。应显而易见的是,图2中所述的结构芯片110表示广义的示例并且其它组件可以被添加或者现存的组件可以被去除、修改或重新布置而不脱离结构芯片110的范围。
[0028]结构芯片110被描绘为包括多个端口接口 112a_112n和交叉开关阵列120。本文中详细描述特定的端口接口 112a的组件,但应理解其余的端口接口 112b-112n可以包括相似的组件和结构。
[0029]如图2中所述,结构芯片110包括网络芯片接口(NCI)块202,高速链路(HSL)(接口)块210,和一组串行器/并行器(serdes) 222。通过特定的示例,该组serdes222包括一组serdes模块。此外,serdes222被描述为连接接收端口 224和发送端口 226。然而,可替代,在结构芯片中可以使用HSL块210和serdes222以外的组件而不脱离本文中所公开的结构芯片110的范围。
[0030]NIC块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。
[0031]NCI块202通常在相应的HSL块210与交叉开关阵列120之间以全双工方式传输数据并控制迷你数据包(MPacket)。此外,NCI202在两个方向提供缓冲。NIC块202还包括解译包含在每个接收到的MPacket中的目标和路径信息的端口解析模块208。作为示例,每个接收到的MPacket可以包括目标节点芯片掩码,端口解析模块208使用该目标结点芯片掩码来执行端口解析操作以确定在结构芯片110的不同的端口接口 112b-112n中的正确的目标NCI块202,使得下一跳跃到可以附着于结构芯片110的下行链路端口或上行链路端口的正确的目标节点芯片130a-130m。在这方面,可每次用包含配置寄存器,例如位掩码(其中每个位对应于结构芯片110的一个端口接口 112a-112n)的至少一个配置集来对端口解析模块208进行编程。此外,在端口解析操作期间,端口解析模块208可以使用该至少一个配置集中关于结构端口掩码的位掩码来确定哪个位,并且因此,在交叉开关120的相反侧的哪个端口接口 112b-112n将接收数据包。此外,端口解析模块208不依赖外部软件来解译目标和路径信息、确定正确的NCI块202、并且确定数据包将被输出到的端口。换言之,端口解析模块208不需要被外部软件控制来执行这些功能。然而,端口解析模块208可以从外部软件接收该至少一个配置集。
[0032]可以用机器可读指令对端口解析模块208进行编程,当执行该指令时会引起端口解析模块208确定交换结构中的第一路径(将沿该路径向目标节点传送数据包)是不可用的,并确定交换结构的另一路径(将沿该路向不包括源结构芯片的目标节点芯片传送数据包)是否可用,响应于该另一路径是可用的确定,沿该另一路径传送数据包,并且响应于该另一路径是不可用的确定,将数据包传送回源结构芯片。在这方面,如果数据包没有其它可用的路径到达目标结点芯片,端口解析模块208仅将数据包传送回源结构芯片。
[0033]端口解析模块208也可以被编程为将关于数据包的传送状态的信息传送给交换结构管理装置170。因此,例如端口解析模块208可以将表示路径(通过该路径将向目标节点传送数据包)不可用的信息提供给交换结构管理装置170。如下文中更详细地论述的,交换结构管理装置170将处理从端口解析模块208接收到的信息,并生成包含一组大体上最优化通过交换结构的数据包流的配置寄存器的新配置集。因此,例如取代引起数据包在交换结构的一方向上流动并由于失败的链路折回到交换结构中的相反方向上,交换结构管理装置170可以为端口解析模块208生成引起数据包开始就在相反的方向上流动的新的配置寄存器,从而缩短数据包为到达其预定的目标所采用的路径的距离。
[0034]NCX块204b还包括节点修剪模块209以及对从多播数据交叉开关126接收到的数据包进行操作的单播转换模块211。更具体地,单播转换模块211将处理数据包以识别下行链路上的节点芯片将为数据包所需要的数据中的数据字。此外,节点修剪模块209修剪目标节点芯片掩码到表示哪个节点芯片接收数据包的位的子集,使得只有被认为将穿过端口的目标节点芯片130a-130m仍被包括在芯片掩码中。因此,例如如果NCX块204b接收到对结构芯片110的芯片节点130a和附着到另一网络装置150上的芯片节点130进行列表的多播数据包,NCX块204b可修剪多播数据包的数据列表以在将多播数据包发送到另一装置150之前去除结构芯片110的芯片节点130a。
[0035]HSL块210通常操作以初始化并检测高速链路上的错误,并且如果需要,重新传输数据。根据示例,NCI块202与HSL块210之间的数据路径在每个方向上为64位宽。
[0036]现在转向图3A和图3B,其中分别示出根据两示例的交换结构300和310的简化框图。应显而易见的是,图3A和图3B所述的交换结构300和310表示广义的示例并且其它组件可以被添加或者现存的组件可以被去除、修改或重新布置,而不脱离交换结构300和310的范围。
[0037]交换结构300和310被描述为包括八个网络装置302a_302h。每个网络装置302a-302h还被描述为包括各自的结构芯片(FC0-FC7 ) 350a_350h。每个网络装置302A-302H可以包括与图1中所述的网络装置100相同或相似的结构。此外,每个结构芯片350a-350h可以包括与图2中所述的结构芯片110相同或相似的结构。而且,尽管图3A和图3B中描述了特定数量的网络装置302a-302h,但应理解,交换结构300和310可以包括以任意数量的相对于彼此的不同结构布置的任意数量的网络装置302a-302h,而不脱离交换结构300和310的范围。
[0038]在任何方面,如交换结构300和310中所示,网络装置302a_302h各自被描述为包括四个节点芯片(N0-N31)311-342。每个节点芯片(N0-N31)311-342被描述为包括两个端口(0,I),端口可以通信地联接于至少一个各自的结构芯片350a-350h中的端口(0-11)。更具体地,节点芯片311-342的每个端口被描述为连接于十二个端口 0-11中的一个,其中每个端口 0-11通信地联接于端口接口 112a-112n。此外,节点芯片311-342被描述为通过双向链路连接于各自的结构芯片350a-350h。在这方面,数据可以在节点芯片311-342与它们各自的结构芯片350a-350h之间的任一方向上流动。[0039]如以上关于图1所述,连接于节点芯片311-342的结构芯片350a_350h的端口被称为“下行链路端口”,并且连接于其它结构芯片350a-350h的结构芯片350a_350h的端口被称为“上行链路端口 ”。结构芯片350a-350h的上行链路端口和下行链路端口中的每个包括企图通过该链路到达的目标结点芯片311-342的标识。此外,提供到交换结构300、400和410的数据包包括数据包将被传递给的节点芯片311-342的标识。其节点芯片311-342标识与节点芯片标识或芯片掩码中的一个或多个节点芯片相匹配的上行链路端口被视为“优选的上行链路端口 ”,它将接收将被传送的数据,除非“优选的上行链路端口 ”是死的或另外是不可用的。如果优选的上行链路是死的或另外是不可用的,端口解析模块208可以使用端口接口的可编程的优先列表来选择备用的上行链路端口接口以代替优选的上行链路端口接收数据包。
[0040]其单个节点芯片311-342的列表与节点芯片标识中的一个节点芯片相匹配的下行链路端口被视为是“活动的下行链路端口 ”。“路径索引”被嵌入在选择哪个“活动的下行链路端口”将被用于数据包的数据包中。该基于路径的过滤使结构芯片350a-350h能够具有与节点芯片311-342的多个连接。
[0041]在任何方面,结构芯片350a_350h将数据包传递给节点芯片标识中的节点芯片311-342。对于连接于结构芯片350a的下行链路端口的节点芯片的标识中所包含的那些节点芯片311-314,结构芯片350a可以直接将数据包传递给节点芯片311-314。然而,对于未连接于结构芯片350a的下行链路端口的节点芯片的标识中的那些节点芯片315-342,结构芯片350a执行硬件计算以确定数据包将穿过哪个上行链路端口以到达那些节点芯片315-342。那些硬件计算被定义为“端口解析操作”。
[0042]如图3A中所示,每个结构芯片350a_350h恰好连接于两个其它结构芯片350a-350h。在图3B中,每个结构芯片350a_350h被描述为通过两个各自的干线链路156-158和160-162 (两个分离的干线154的一部分)连接于两个相邻的结构芯片350a_350h。
[0043]图3A和图3B中所述的交换结构300和310包括环形网络结构,其中每个结构芯片350a-350h恰好连接于两个其它结构芯片350a_350h。更具体地,图3A中相邻结构芯片350a-350h的端口(O)和(I)被描述为通信地彼此联接。此外,图3B中相邻结构芯片350a-350h的端口(O)和(I)以及(10)和(11)被描述为通信地彼此联接。因此,在网络装置302a-302h之间为数据信号流过每个节点提供单一的连续路径。
[0044]虽然交换结构300和310已被描述为包括八个网络装置302a_302h,每个网络的装置302a-302h包括四个节点芯片311-342,但应清楚地理解,交换结构300和310可以包括任何合理的数量的网络装置302a-302h并且网络装置302a_302h具有在其间的任何合理的数量的链路152和/或干线链路156-162,而不脱离交换结构300和310的范围。此外,网络装置302a-302h可以各自包括任何合理的适当数量的节点芯片311-342,而不脱离交换结构300和310的范围。而且,每个结构芯片350a-350h可以包括任何合理的适当数量的端口接口 112a-112n和端口。更进一步,网络装置302a_302h可以被布置在其它网络结构中,例如网状布置或其它结构中。
[0045]现在转向图4,其中示出根据示例的包含图1中所述的交换结构管理装置170的交换结构管理系统400的简化框图。应显而易见的是,图4中所述的框图表示广义的示例,并且其它组件可以被添加或者现存的组件可以被去除、修改或重新布置,而不脱离交换结构管理系统400的范围。
[0046]如图4中所示,交换结构管理装置170包括用户接口模块402、输入/输出模块404、故障识别模块406、配置集生成模块408和配置集确定模块410。模块402-410可以包括软件模块、硬件模块、或软件模块和硬件模块的组合。因此,在一示例中,至少一个模块402-410包括电路组件。在另一示例中,至少一个模块402-410包括由处理器可以执行的存储于计算机可读存储介质上的机器可读代码。
[0047]在任何方面,处理器430将使用和/或执行交换结构管理装置170。因此,例如交换结构管理装置170可以包括包含处理器430的计算设备的集成的和/或附加的硬件设备。作为另一示例,交换结构管理装置170可以包括计算机可读存储设备,用于每个模块402-410的机器可读指令被存储于该计算机可读介质上并由处理器430执行。
[0048]如图4中进一步所示,处理器430将从输入装置440接收输入。输入装置440可以包括例如用户接口,用户可以通过该用户接口输入指令来执行交换结构管理装置170。指令可以包括例如在交换结构300、310的变化之后生成新配置集的指令。
[0049]通过交换结构管理装置170接收和收集到的各种信息和数据可以被存储在数据存储器420中,存储器420可以包括易失性和/或非易失性存储器,例如DRAM、EEPROM,MRAM、相变RAM (PCRAM)、忆阻器、闪存等等。另外或可替代,数据存储器420可以包括读取和写入可移动介质的设备,例如软盘、CD-ROM、DVD-ROM、或其它光学或磁性介质。
[0050]交换结构管理系统400还包括输入/输出接口 450,交换结构管理装置170通过输入/输出接口 450发送通信到结构芯片302a-302h以及从结构芯片302a_302h接收通信。输入/输出接口 450可以包括无线或有线接口,通过无线或有线接口通信可以被实实现。
[0051]参照图5更详细地描述处理器430可以以其来在交换结构300、310中执行交换结构管理装置170的模块402-410的各种方式。更具体地,图5描述根据示例的用于管理交换结构300、310来引导交换结构300、310中的数据包流的方法的流程图。此外,图6描述根据示例的使用端口接口 112a-112n中的第一配置集和第二配置集中的一个的方法的流程图。应显而易见的是,方法500和600表示广义的示例并且其它步骤可以被添加或者现存的步骤可以被去除、修改或重新布置,而不脱离方法500和600的范围。此外,虽然本文中特定地参照第一配置集和第二配置集,但应清楚地理解,可以生成和使用任意数量的配置集,而不脱离方法500和600的范围。
[0052]特定地参照图1-图4B中所述的结构芯片110和350a_350h对方法500和600进行描述。然而,应理解方法500和600可以被用于与结构芯片110和350a-350h不同的结构芯片,而不脱离方法500和600的范围。此外,虽然参照网络装置302a-302h中的特定的装置,以及因此参照结构芯片350a-350h和节点芯片311-342中的特定的芯片,但应理解本文中所述的操作可以由和/或在任何网络装置302a-302h中被执行。
[0053]在两种方法500和600中,数据包可以包括各种信息,例如数据包将被传递给的节点芯片的标识(本文中被称为“数据列表”)、结构端口掩码、目标芯片节点掩码、位掩码、芯片掩码等。选择多个活动的下行链路端口中的哪个将被用于传递数据包给被包含在标识中的目标节点芯片的“路径索引”也可以被嵌入在数据包中。
[0054]首先参照图5,在方框502中,由例如配置集生成模块408生成第一配置集,第一配置集包括用于端口接口以计算传入数据包的端口解析的多个配置寄存器。基于结构芯片302a-302h之间的布置和连接可以生成第一配置集,例如来大体上最优化通过交换结构300,310的数据包流。更具体地,并特定地参照图3A,例如第一配置集可以包括用于第一结构芯片350a的第一配置寄存器,如果目标节点芯片未连接于任何端口 2-9,第一配置寄存器将引起通过任何端口 2-9接收到的数据包通过端口 O和I中的一个被输出。此外,如果在数据包中被识别的目标节点芯片位于在顺时针方向上更接近第一结构芯片350a,用于第一结构芯片350a的第一配置寄存器可以引起数据包通过端口 O被输出。同样地,如果目标节点芯片位于在逆时针方向上更接近第一结构芯片350a,第一配置寄存器可以使数据包通过端口 I被输出。
[0055]在该示例中,第一配置集合还可以包括用于第二结构芯片350b的第二配置寄存器,当它被第二结构芯片350b的端口接口 112a-112n使用时,引起被接收到第二结构芯片350b中的数据包被引导到其中的端口 O和I中的任一端口,这取决于数据包将流向哪个方向以到达目标节点芯片并穿过最少的链路。第一个配置集可以包括用于剩余的结构芯片350c-350h的其它配置寄存器。
[0056]在方框504中,例如通过配置集生成模块408生成第二配置集,第二配置集包括用于端口接口 112a-112n以计算传入数据包的端口解析的多个配置寄存器。与第一配置集相似,基于结构芯片302a-302h之间的布置和布线可以生成第二配置集,例如来大体上最优化通过交换结构300、310的数据包流。然而,第二配置集可以解释在由端口接口 112a-112n使用第一配置集之后可能已发生的交换结构300、310的变化。变化可以是故意或者可以由交换结构300、301中发生的故障所致。
[0057]通过特定的示例,用户可以手动地引起第二配置集被生成,以响应,例如布线的变化、交换结构300、310内的结构芯片的添加和/或去除等。作为另一示例,第二配置集可以自动地被生成,以响应交换结构300、310中发生故障的确定。这样的故障可以包括例如由于电缆、端口接口或结构芯片故障导致两个结构芯片300、310之间的链路被损坏。
[0058]在任一上述示例中,例如通过输入/输出模块404,可以接收结构芯片350a_350h中的端口接口 112a-112n的状态。更具体地,例如输入/输出模块404可以从每个结构芯片350a-350h的端口接口 112a_112n接收表示它们是否能够沿其计划路径传送数据包的更新。如果端口接口 112a无法验证数据包通过链路被发送给计划的目标,端口接口 112a可以传送发生故障的指示,并且端口接口 112a不得不将数据包还给从其接收到数据包的结构芯片。根据示例,从端口接口 112a接收到这样的信息可以引起故障识别模块406确定已经发生了故障,从而触发配置生成模块408生成第二配置集。
[0059]根据示例,第二配置集可以被传送给并且存储在结构芯片350a_350c的每个端口接口 112a-112n中。此外,每个端口接口 112a_112n的一位可以被设置为对应于第二配置集,使得设置该位指令引起端口接口 112a-112n开始使用第二配置集。而且,其它配置集可以被生成并存储在端口接口 112a-112n中,使得端口接口 112a_112n可以相对快速地使用不同的配置集,以响应在交换结构300、310中被检测到的变化,例如故障。在该示例中,不同的配置集可以引起数据包流过结构芯片300、310的不同端口。
[0060]在方框506中,例如通过配置集确定模块410,作出关于结构芯片350a_350c将使用哪个配置集的确定。更具体地,配置集确定模块410可以确定被使用的第二配置集,以响应在交换结构300、310中被检测到故障。另外或可替代,配置集确定模块410可以从用户接收使用第一和第二配置集中的一个的指令。
[0061]在方框508中,例如通过输入/输出模块404,使用配置集中被确定的一个的指令被传送给每个结构芯片350a-350c。根据示例,该指令包括端口接口 112a_112n自动地开始使用所确定的配置集的指令。更具体地,例如该指令包括用于端口接口 112a-112n的延迟指令,该指令引起端口接口 112a-112n同时都开始使用所确定的配置。此外,延迟指令可以引起端口接口 112a-112n延迟执行对新接收到的数据包的端口解析计算,直到延迟过去之后。在一方面,该延迟可以被设置以对在使用新的配置集之前将已在前面的配置下被处理的数据包清除出交换结构300、310提供足够的时间,从而防止数据包在两个配置集下被处理。
[0062]现在转向图6,在方框602中,包括多个配置寄存器的多个配置集被接收到结构芯片350a-350c内。配置集可以包括第一配置集、第二个配置、以及可以为结构芯片350a-350h的端口接口 112a_112n生成的任何其它的配置集。
[0063]在方框604中,包含在配置集中的相应的配置寄存器被存储在结构芯片350a-350h的每个端口接口 112a_112n中。更具体地,与各自的结构芯片350a_350h中的端口接口 112a-112n相关的配置寄存器被存储在各自的端口接口 112a_112n中。因此,与第二结构芯片350b中的端口接口 112a-l 12η相比,第一结构芯片350a中的端口接口 112a_112n可以存储一组不同的配置寄存器。
[0064]根据示例,端口接口 112a_112n可以使每个配置寄存器与一位相关联。因此,如下所述,端口接口 112a-112n可以通过简单地设置适当的位使用特定的配置寄存器。另外或可替代,结构芯片350a-350h可以同时接收并存储配置寄存器或者可以在不同的时间接收并存储不同的配置寄存器。
[0065]在方框606中,结构芯片350a_350h接收关于使用哪个配置集的指令。此外,在方框608中,端口接口 112a-112n可以确定指令是否要求它们使用不同的配置集。如方框610中所示,如果指令不改变被选择的/使用的配置集,则端口接口 112a-112n使用当前配置集中的配置寄存器。然而,如框612所示,如果指令改变将要使用的配置集,端口接口112a-112n改变用于计算所接收到的数据包的端口解析的配置寄存器。此外,如方框610所示,端口接口 112a-112n使用所选择的配置集的配置寄存器。
[0066]当端口接口 112a_112n开始使用所选择的配置集的配置寄存器时,接收数据包的端口接口 112a-112n可以在数据包中设置一字段,该字段作为接收端口接口 112a_112n使用了哪个配置集的指针。然后,在交叉开关120的相反侧的端口接口 112a-112n可以对与接收端口接口 112a-112n所使用的配置集相一致的数据包进行操作。因此,通过示例(其中数据包包括多播数据包),接收多播数据包的端口接口 112a-112n可以识别将哪个目标节点芯片从目标节点芯片的标识中去除。在另一方面,接收多播数据包的端口接口 112a-112n可能能够复制由将多播数据包传送给端口接口 112a-112n的接口端口 112a_112n对数据包进行的端口解析计算变换。
[0067]根据示例,端口接口 112a_112n通过设置与所选择的配置寄存器相关联的适当的位,改变在方框610中所使用的配置寄存器。此外,遵照改变正被使用的配置寄存器的指令,端口接口 112a-112n可以延迟新接收到的数据包的处理,以便提供足够时间将之前使用旧的配置集处理的数据包去除出交换结构300、310。
[0068]包含在每个配置集中的配置寄存器限定结构芯片110、350a_350h的哪个端口接口 112a-112n来接收将被传送给它们的目标节点芯片130a-130m、311_342的数据包。因此,将接收数据包的结构芯片110、350a-350h中的端口接口 112a_112n可以根据在任何给定的时间使用哪个配置集而改变。
[0069]通过特定示例(其中数据包将从节点芯片(N4)315被传送到节点芯片(N23)334),节点芯片(N4) 315将数据包传送到源结构芯片(FCl) 350B的端口(2)或端口(3)。如上面参照图1所述,来自节点芯片315的数据包包含数据包将被传送给的节点芯片的列表(数据列表)。在该情况下,列表仅包括节点芯片(N23)334。此外,端口接口 112a的NCR204a的端口解析模块208 (通过它从节点芯片315接收数据包)执行硬件计算以确定数据包将穿过源结构芯片350b的哪个上行链路端口(0-11)到达目标节点芯片334。更具体地,例如数据包可以包括迷你数据包(MPacket),该迷你数据包包括目标和路径信息、端口解析模块208可以解译该信息以确定上行链路端口(0-11)、该信息可以根据端口解析模块208使用哪个配置集而改变。如上所述,数据包可以包括控制数据包和/或数据数据包。控制数据包包括至少一个MPacket,而数据包包括两个或更多MPacket。
[0070]在任何方面,端口解析模块208可以使用该信息来索引查找表,该查找表确定结构芯片350b的正确的NCI块202以使下一跳跃到目标节点芯片334。在上面的示例中,端口解析模块208可以确定上行链路端口(I)的NCI块202是正确的NCI块202。因此,端口接口 112a的NCR204a可以将数据包传送给包含上行链路端口(I)的端口接口 112η的NCI块202。包含上行链路端口(I)的端口接口 112η可以将数据包传送给连接于上行链路端口Cl)的第一结构芯片(FCl) 350a。
[0071]第一结构芯片(FCl) 350a可以通过上行链路端口(O)接收数据包,并且包含上行链路端口(O)的端口接口 112a的NCR204a可以使用包含在数据包中的信息以确定数据包将被传递到第一结构芯片350a的正确的NCI块202,以使下一跳跃到达目标节点芯片334。在该示例中,端口解析模块208可以确定上行链路端口( I)的NCI块202是正确的NCI块202。此外,端口解析模块208可以基于在数据包被接收时正在使用的配置寄存器来做出该确定。
[0072]现在转向图7,其中示出根据示例的可以被用作用于使用或执行图5中所述的处理中的至少一个的平台的计算设备700的示意图。装置700包括处理器702,例如中央处理单元;显示器704,例如监视器;网络接口 708,例如局域网(LAN)、无线的802.1lx LAN、3G移动WAN或WiMax WAN ;以及计算机可读介质710。这些组件中的每个被有效地联接于总线712。例如,总线 712 可以是 EISA、PC1、USB、火线(FireWire)、NuBus 或 PDS。
[0073]计算机可读介质710可以是参与给处理器702提供用于执行的指令的任何合适的非暂时性介质。例如,计算机可读介质710可以是非易失性介质,例如光盘或磁盘;易失性介质,例如存储器;以及传输介质,例如同轴电缆、铜线和光纤。传输介质也能够米取声波、光波或无线电波的形式。计算机可读介质710还可以存储包括文字处理器、浏览器、电子邮件、即时消息、媒体播放器和电话机器可读指令的其它机器可读指令。
[0074]计算机可读介质710还可以存储操作系统714,例如Mac 0S、MS Windows、Unix或Linux;网络应用程序716;以及交换结构管理应用程序718。操作系统714可以是多用户、多处理、多任务、多线程、实时的等等。操作系统714还可以执行基本任务,例如从例如键盘或键区的输入设备识别输入;将输出发送到显示器704 ;跟踪介质710上的文件和目录;控制外围设备,例如磁盘驱动器、打印机、图像捕获设备;以及管理总线712上的通信。网络应用程序716包括用于建立和维持网络连接的各种组件,例如用于使用包括TCP/IP、HTTP、以太网(Ethernet)、USB和火线(FireWire)的通信协议的机器可读指令。
[0075]如上面参照图5所述,交换结构管理应用程序718提供用于管理由多个结构芯片组成交换结构中的操作的各种机器可读指令。因此,例如交换结构管理应用程序718可以包括机器可读指令,以生成包括多个配置寄存器的第一配置集,生成包括多个配置寄存器的第二配置集,确定结构芯片将使用第一配置集和第二配置集中的哪个,以及将指令传送到每个结构芯片以使用第一配置集合和第二配置集合中被确定的一个。在某些示例中,由应用程序718执行的一些或全部处理可以被集成到操作系统714中。在某些示例中,处理可以至少部分地以数字电子电路,或以计算机硬件、机器可读指令(例如,固件和/或软件),或以其任意组合来执行。
[0076]本文中所描述和示出的是本公开的各种示例以及一些它们的变化。本文中所使用的术语、描述和附图仅通过示例被阐述,并不意味着作为限制。在本公开的精神和范围内的许多变化是可能,其中本发明旨在被下面的权利要求(及其等同物)所限制,其中所有术语均表示其最广泛的合理意义,除非另外指明。
【权利要求】
1.一种用于管理包括多个结构芯片的交换结构的方法,每个所述多个结构芯片中的每个包括多个端口接口,所述方法包括: 生成包括用于所述端口接口以计算传入数据包的端口解析的多个配置寄存器的第一配直集; 生成包括用于所述端口接口以计算传入数据包的端口解析的多个配置寄存器第二配置集,其中所述第二配置与所述第一配置集不同; 确定所述多个结构芯片将使用所述第一配置集和所述第二配置集中的哪个;以及 传送指令给每个所述结构芯片来使用所述第一配置集和所述第二配置集中被确定的一个。
2.如权利要求1所述的方法,进一步包括: 将各自的所述第一配置集和所述第二配置集存储于每个所述多个结构芯片中。
3.如权利要求2所述的方法,其中,通过改变每个所述端口接口中的预定的位的设置,接收所述传入数据包的所述端口接口控制所述第一配置集和所述第二配置集中的哪个将被使用,并且传送指令给每个所述结构芯片进一步包括传送指令给每个所述结构芯片来为将被使用的所述第一配置集或所述第二配置设置所述位。
4.如权利要求3所述的方法,其中,传送指令给每个所述结构芯片进一步包括传送指令给每个所述结构芯片来为将在从所述交换结构清除已使用所述第一配置集计算了端口解析的数据包之后使用的所述第二配置集自动地设置所述位。
5.如权利要求3所述的方法,其中,每个所述多个结构芯片中的所述多个端口接口通过交叉开关相互通信,并且其中所述传入数据包将被接收到所述多个端口接口中的一个中,所述方法进一步包括: 在接收所述传入数据包的所述端口接口中,使用所述第一配置集和所述第二配置集中的一个来识别在所述交叉开关的相反侧的所述端口接口中的哪个将接收所述数据包并且在所述数据包中设置作为所述接收端口接口使用了所述第一配置集和所述第二配置集中的哪个的指针的字段,使得在所述交叉开关相反侧的所述端口接口能够对与所述接收端口接口所使用的配置集相一致的数据包进行操作。
6.如权利要求5所述的方法,其中所述数据包包含将接收所述数据包的至少一个目标节点芯片的标识,并且其中使用所述第一配置集和所述第二配置集中的一个进一步包括将包含在所述标识中的所述至少一个目标节点芯片的所述标识与所述端口接口和所述目标节点芯片之间的预编程的相关性相比较。
7.如权利要求1所述的方法,进一步包括: 从所述多个结构芯片接收状态信息,并且 其中生成所述第二配置集进一步包括基于所接收到的状态信息生成所述第二配置集。
8.如权利要求7所述的方法,其中生成所述第二配置集进一步包括生成所述第二配置集来随所述交换结构的变化大体上最优化通过所述多个结构芯片的数据包流。
9.如权利要求1所述的方法,进一步包括: 确定所述交换结构中已发生故障;并且 其中生成所述第二配置集进一步包括生成所述第二配置集以在考虑所述故障的同时大体上最优化所述数据包通过所述交换结构的重新路由。
10.一种用于管理包括互连的多个结构芯片的交换结构的使用的装置,所述多个结构芯片中的每个包括通过交叉开关互连的各自的多个端口接口,所述控制器包括: 至少一个模块,以从所述多个结构芯片的所述端口接口接收状态信息,生成包括用于所述端口接口以计算传入数据包的端口解析的多个配置寄存器的第一配置集,生成包括用于所述端口接口以计算传入数据包的端口解析的多个配置寄存器的第二配置集,确定所述多个结构芯片将使用所述第一配置集和所述第二配置集中的哪个,并且传送指令给每个所述结构芯片来使用所述第一配置集和所述第二配置集中被确定的一个;以及处理器,以执行所述至少一个模块。
11.如权利要求10所述的装置,其中所述至少一个模块传送指令给每个所述结构芯片,来为将在从所述交换结构清除已使用所述第一配置集计算了端口解析的数据包之后使用的所述第二配置集自动地设置所述位。
12.如权利要求10所述的装置,其中所述至少一个模炔基于所接收到的状态信息生成所述第二配置集。
13.如权利要求10所述的装置,其中所述至少一个模炔基于所接收到的状态信息确定所述交换结构中已发生故障,并且生成所述第二配置集以在考虑所述故障的同时大体上最优化所接收到的数据包通过所述交换结构的重新路由。
14.一种非暂时性计算机可读存储介质,其上嵌入有计算机程序,所述计算机程序实现用于管理包括多个结构芯片的交换结构的方法,所述多个结构芯片中的每个包括多个端口接口,所述计算机程序包括一组指令来: 生成包括用于所述端口接口以计算传入数据包的端口解析的多个配置寄存器的第一配直集; 生成包括用于所述端口接口以计算传入数据包的端口解析的多个配置寄存器的第二配置集,其中所述第二配置与所述第一配置集不同; 确定所述多个结构芯片将使用所述第一配置集和所述第二配置集中的哪个;并且 传送指令给每个所述结构芯片来使用所述第一配置集和所述第二配置集中被确定的一个。
15.如权利要求14所述的非暂时性计算机可读存储介质,所述计算机程序进一步包括一组指令来: 从所述多个结构芯片接收状态信息; 从所接收到的状态信息确定所述交换结构中已发生故障;并且生成所述第二配置集以在考虑所述故障的同时大体上最优化所述数据包通过所述交换结构的重新路由。
【文档编号】H04L12/931GK103765816SQ201180073165
【公开日】2014年4月30日 申请日期:2011年9月28日 优先权日:2011年9月28日
【发明者】文森特·卡万纳, 迈克尔·弗赖 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1