用于改善分组共享存储器体系结构组播性能的系统和方法

文档序号:7861664阅读:194来源:国知局
专利名称:用于改善分组共享存储器体系结构组播性能的系统和方法
技术领域
本发明大体上涉及网络交换机,更具体地,涉及用于改善分组(banked)共享存储器体系结构的组播(mu 11 i cas t)性能的系统和方法。
背景技术
数据通信基础架构的需求不断增长。各种因素驱动这些不断增长的需求,包括互联网多媒体应用(例如,新闻的发布、财务数据、软件、视频,音频和多人会议等)的日益增长的带宽需求。为了适应日益增长的带宽需求,通信链路速度也不断发展。例如,10千兆以太网(GbE)端口通常用于现今的大量网络交换机上的I/O。共享存储器通常用于构建输出队列(OQ)交换机。OQ交换机以吞吐量最大化、使延迟最小化并且能够提供服务质量(QoS)保证著称。然而,共享存储器交换机被认为不会很好地扩展到高容量交换机,因为对存储器大小、存储器带宽和存储器存取时间的需求随着线速R和端口的数量N线性增加。例如,N端口交换机需要以快于线速N倍操作以实现全
吞吐量。考虑例如128X IOGbps交换机。这里,对于64字节使用lOGbps,并且有20字节的包间间隙(IPG),包到达速率是大约67ns。因此,存储器需要在约67nm内进行读取和写入。对于128端口 IOGbps交换机,存储器需要支持在接收单个65字节包所需要的时间内的所有的读取和写入。因此,存取时间为67ns/(128读取+128写入)=约250ps。应理解,250ps的存取时间对现今的交换机是不实用。为此,由于可扩展性,高容量交换机正朝向存储器组(banks of memory)发展。通过多个共享存储器组,带宽需求可以被均匀地分布在多个存储器上,从而增加所需的存储器存取时间。例如,单播流量所需要的平均存储器带宽减少了 1/m,其中m是存储器的数量。虽然已知多个存储器可增强单播流量的可扩展性,但组播流量给自身提出挑战。例如,在给定的组播巾贞的所有包位于在相同的存储器中时,由于在同一时间巾贞或在同一事件帧前后对同一存储器多次读取会导致在该存储器高度的时间局部性。因此,需要提高分组共享存储系体系机构中的组播性能的机制。

发明内容
基本上如同结合至少一个附图所示的和/或描述的,如在权利要求书中更完整地阐述的用于提高分组共享存储器体系结构的组播性能的系统和/或方法。根据本发明的一个方面,提供了一种交换机,包括多个入站端口,所述多个入站端口从相应的多个第一网络设备接收流量,所述多个第一网络设备经由各自的多个第一网络通信电缆耦接至所述多个入站端口 ;多个出站端口,所述多个出站端口向相应的多个第二网络设备发送流量,所述多个第二网络设备经由各自的多个第二网络通信电缆耦接至所述多个出站端口 ;以及多个共享存储组,将所述多个入站端口耦接至所述多个出站端口,所述多个共享存储组中的每个都具有主存储器,其中,与所述多个共享存储组中的第一个相关联的高速缓冲存储器用于存储组播流量,从而使在所述第一共享存储组的主存储器中存储的单播流量的读取能够与所述第一共享存储组相关联的所述高速缓冲存储器中存储的组播流量的读取并行。优选地,所述多个共享存储组中的每个都具有用于存储组播流量的高速缓冲存储器。优选地,所述高速缓冲存储器与一群共享存储组相关联。根据本发明的另一方面,提供了一种交换机中的组播流量读取方法,包括接收在多个共享存储组中的所确定的一个中存储的组播包的读取请求,所述多个共享存储组耦接所述交换机中的多个入站端口和多个出站端口 ;确定所请求的组播流量包是否存储在与所述多个共享存储组的所确定的一个相关联的高速缓冲存储器中;如果确定所请求的组播流量包存储在与所述多个共享存储组的所确定的一个相关联的高速缓冲存储器中,则从所述高速缓冲存储器中读取所请求的组播流量包;以及如果确定所请求的组播流量包没有存储在与所述多个共享存储组的所确定的一个相关联的高速缓冲存储器中,则从所述多个共享存储组中的所确定的一个的主存储器读取所请求的组播流量包。优选地,所述确定包括确定所请求的组播流量包是否存储在所述多个共享存储组中的所述一个中包含的高速缓冲存储器中。优选地,所述确定包括确定所请求的组播流量包是否存储在与包括所述多个共享存储组的所述一个的多个共享存储组相关联的高速缓冲存储器中。优选地,该方法还包括在从所述高速缓冲存储器读取所请求的组播流量包的同时,从所述多个共享存储组的所确定的一个的主存储器中读取所请求的单播流量包。根据本发明的另一方面,提供了一种交换机中的组播流量读取方法,包括接收在多个共享存储组中的所确定的一个中存储的组播流量包的读取请求,所述多个共享存储组耦接所述交换机中的多个入站端口和多个出站端口 ;将对所述组播流量包的所述读取请求存储在请求高速缓存中;在所述组播流量包的读取事件之前,对所述组播流量包的额外读取请求进行计数;以及将通过所述读取事件获得的所述组播流量包传送到由所述额外读取请求代表的多个出站端口。优选地,该方法还包括将入站端口的确定传递到控制所述传送的控制元件。


为了描述能够获得本发明的上述和其他优点和特征的方式,通过参照在附图中示出的以上简单描述的本发明的实施例来更具体地描述本发明。应理解,这些附图仅描述了本发明的典型实施例,因此不被认为是限制其范围,通过使用附图来更详细地描述和说明本发明图1示出具有一组并行共享存储器的交换机中数据高速缓存的示例性实施方式。图2示出了本发明的处理的流程图。
图3示出了组播流量的读取请求高速缓存的示例性实施方式。
具体实施例方式以下详细讨论本发明的各种实施方式。虽然讨论了具体的实现方式,但应当理解这样做仅用于说明的目的。在相关领域中技术人员将认识到,在不背离本发明的精神和范围的情况下,可使用其他组件和配置。随着组播流量的消耗以极快的速度增加,组播流量已变得越来越重要。在将单个的数据流高效地传输到多个目的地时,组播提供节省网络带宽的高效机制。为了支持多媒体应用的不断扩展,底层基础架构必须相应地提高其性能,以满足QoS保证。这里底层基础架构必须满足诸如低延迟、最小抖动、公平的性能要求。如上所述,解决单个共享存储器交换机的存储器带宽限制的一个解决方案是利用一组并行的共享存储器。该方法的一个实例是并行共享存储器交换机,其中,所有共享存储器资源位于中心位置。该方法的另一实例是分布式共享存储器交换机,其中,存储器分布在线路卡间。从逻辑上讲,分布式共享存储器交换机相当于并行共享存储器交换机。应理解,存储器管理算法可用于确定在给定实现中所需要的存储器单元的具体数量。然而,在这方面最重要的是来针对特定交换机所确定的存储器单元的具体数量主要基于单播流量模式。另一方面,组播流量存在不同的挑战。在将组播流量路由至多个输出端口时,在共享存储器交换机中可以利用多个方法。在一个方法中,在共享存储器之前可以复制组播数据包。然而,由于多个副本保持在存储器中,所以该方法将需求更大的存储器。这样减少了共享存储器交换机的有效吞吐量。在另一方法中,可以从相同的存储器位置多次读取组播包,其中控制电路将组播包保持在存储器中,直到为了分布组播包被读出到组播组中的所有输出端口。该方法也会导致效率低下,因为在特定共享存储器组中组播数据包的存在将引入该特定共享存储器组的高度时间局部性。该时间局部性将导致共享存储器组中的瓶颈,因为共享存储器组被限制为每时隙一次读取。例如,如果存储器管理模块将组播数据包发送到存储器单元,并且组播数据包被传送到输出端口 I至N中的每个,然后相同组播数据包的N个读取将需要在N个时隙发生,因为每个时隙只发生一次读取。这将有效地减少存储单元的吞吐量,因为在存储单元中的其他单播数据包的读取可被延迟。因此,可能发生线速的折中。在本发明中认别到可采用由组播流量在共享存储器组中产生的时间局部性来解决线速问题。因此,通过使用高速缓存(cache)协助共享存储器组中存储的组播流量的读取来利用时间局部性是本发明的特征。图1示出了具有一组平行共享存储器单元的交换机中的数据高速缓存(caching)的示例性实施方式。所示出的存储单元110包括主存储器112,以及较小的高速缓冲存储器(cache memory)114。如将在下文中更详细描述的,高速缓冲存储器114被设计为存储组播包。在一个实施方式中,高速缓冲存储器114可以包括在每个共享存储器组中。在另一实施方式中,高速缓冲存储器可以与一群(group )共享存储器组相关联。当流量进入交换机时,包处理单元对包进行实时操作,例如,组巾贞/分巾贞、分类、流量监管和整形、修改、压缩/加密、排队等。作为该处理的一部分,包处理单元可以分离单播和组播流量,并且将那些包放在不同的队列中。这里,应注意,读或写可以发生在包边界(boundary)或(包的)段边界。为了示出流量的单播和组播类型的相对处理,单个组播包被识别为包122,而单个单播包被识别为包124。如图所示,单播包122被路由到存储单元110。存储器单元组中的一个特定组的选择基于实现的特定的存储器管理算法。在存储单元110中,单播包122被存储在主存储器112中。相比之下,当组播包124通过存储器管理算法被路由到存储单元110时,它首先被写入主存储器中,随后在从主存储器读取组播包时被写入到组播高速缓冲存储器114。这是由于组播包产生的时间局部性。这里,应注意,首先进行检查以确定高速缓冲存储器114是否具有空间来存储组播包124。该检查是必要的,因为缓冲存储器114的大小没有被设计为保证每个组播包的存储。虽然根据被设计为处理以给定的线速到达的输出单播包的存储的实现存储管理算法能够确定交换机中的存储单元的数量,但是当事先不知道组播流量和单播流量的百分比时,不能够如此确定组播存储器的大小。此外,给定的组播高速缓冲存储器可以与一组存储单元而不是单个存储单元相关联,从而以很少的额外开销为提供显著改进的组播流量性能。高速缓冲存储器114中的组播数据包124的存储利用由组播包114创建的高度时间局部性。应理解,当组播数据包124被存储在存储单元110中时,对于组播数据包124期望多次读取存储单元110。根据本发明,高速缓冲存储器114中的组播包124的存储能够在组播包驻留在高速缓冲存储器114中的时隙中从存储单元110进行两次读 取。具体地,在给定的时隙中,可从主存储器中读取单播包122,可以从高速缓冲存储器114读取组播包124。在随后的时隙中,相同组播包的124可进一步从缓冲存储器中读取,而不抑制从主存储器112读取单播包。为了进一步示出高速缓冲存储器114处理组播流量的使用,现在参照图2的流程图。如图所示,从存储单元读取组播流量的处理从步骤202开始,在步骤202,接收到读取组播流量的请求。在步骤204,评估组播包读取请求,以确定该组播包是否存储在高速缓冲存储器中。如果在步骤204中确定组播包存储在高速缓冲存储器中,则在步骤206从高速缓冲存储器读取该组播包。可选地,如果在步骤204确定该组播数据包没有存储在高速缓冲存储器中,则在步骤208从主存储器读取组播数据包。应理解,包括小的高速缓冲存储器114被设计为以高效的方式解决交换机中组播流量的处理。在本发明中,小的高速缓冲存储器114相对于主存储器小并且其大小基于具体的性能目标来确定。这里,应注意,包括小的高速缓冲存储器114与创建额外的共享存储器组不同。只添加额外的共享存储器组将导致效率低下,因为经常根据模拟先到先得的OQ交换机的存储器管理算法的设计来选择共享存储器组的数量。因此,添加小的组播高速缓冲存储器在提供存储单元大小的边界增加方面有优势,其中该边界增加提供了高效解决组播流量产生的时间局部性的交换机存储器吞吐量的大幅增加。使用高速缓存来解决时间局部性问题不限于上述数据高速缓存实例。在一个实施方式中,高速缓存可以应用于组播流量的读取请求,而不是组播数据本身。这里,各组播读取请求将被存储在组播读取请求缓存中。将对在来自共享存储器组的实际读取事件之前发生的对同一共享存储器组的请求进行计数。换言之,额外的组播读取请求将在实际读取事件之前积累。应理解,组播读取请求的积累还包括诸如额外组播读取请求的目的端口的控制信息的通过(passage)。当来自共享存储器组的组播数据包的实际读取发生时,将一次读取组播数据包。所读取的组播数据包将与指定目的地端口的控制信息一起传递,此时,组播数据包将被复制并且传送到积累其组播数据包请求的多个目的端口。图3示出用于读取请求缓存的组播数据包的通用控制结构。如图所示,在单个读取事件中,从存储单元310读取组播包。该包被传递到也接收控制信息(例如,计数和目的地端口)的控制元件320,从而将组播包传送到多个所确定(identify,识别)的目的端口。这里,应注意,组播读取请求的累积数量可以代表小于特定组播包的组播读取请求的总数。事实上,共享存储器组中的特定组播数据包的多次实际读取仍然可能发生。然而,重要的是,对一组共享存储器的组播包的各实际读取能够代表多个读取请求。因此,读取请求缓存通过减少对特定共享存储器分组的实际读取次数解决了时间局部性问题。这种减少有效地增加了共享存储器交换机的吞吐量。通过对前面详细描述的回顾,本发明的这些和其它方面对本领域的技术人员将变得显而易见。虽然上面已 经描述了本发明的大量显著特征,但是本发明可以具有其它实施例,并能够在本领域的技术人员阅读所公开的发明之后以对本领域技术人员显而易见的各种方式来实施和执行,因此上面的描述不应被认为排除这些其它实施例。此外,应理解,本文使用的措辞和术语是仅用于说明的目的,并且不应被视为限制。
权利要求
1.一种交换机,包括 多个入站端口,所述多个入站端口从相应的多个第一网络设备接收流量,所述多个第一网络设备经由各自的多个第一网络通信电缆耦接至所述多个入站端口; 多个出站端口,所述多个出站端口向相应的多个第二网络设备发送流量,所述多个第二网络设备经由各自的多个第二网络通信电缆耦接至所述多个出站端口 ;以及 多个共享存储组,将所述多个入站端口耦接至所述多个出站端口,所述多个共享存储组中的每个都具有主存储器,其中,与所述多个共享存储组中的第一个相关联的高速缓冲存储器用于存储组播流量,从而使在所述第一共享存储组的主存储器中存储的单播流量的读取能够与所述第一共享存储组相关联的所述高速缓冲存储器中存储的组播流量的读取并行。
2.根据权利要求1所述的交换机,其中,所述多个共享存储组中的每个都具有用于存储组播流量的高速缓冲存储器。
3.根据权利要求1所述的交换机,其中,所述高速缓冲存储器与一群共享存储组相关联。
4.一种交换机中的组播流量读取方法,包括 接收在多个共享存储组中的所确定的一个中存储的组播包的读取请求,所述多个共享存储组f禹接所述交换机中的多个入站端口和多个出站端口 ; 确定所请求的组播流量包是否存储在与所述多个共享存储组的所确定的一个相关联的高速缓冲存储器中; 如果确定所请求的组播流量包存储在与所述多个共享存储组的所确定的一个相关联的高速缓冲存储器中,则从所述高速缓冲存储器中读取所请求的组播流量包;以及 如果确定所请求的组播流量包没有存储在与所述多个共享存储组的所确定的一个相关联的高速缓冲存储器中,则从所述多个共享存储组中的所确定的一个的主存储器读取所请求的组播流量包。
5.根据权利要求4所述的方法,其中,所述确定包括确定所请求的组播流量包是否存储在所述多个共享存储组中的所述一个中包含的高速缓冲存储器中。
6.根据权利要求5所述的方法,其中,所述确定包括确定所请求的组播流量包是否存储在与包括所述多个共享存储组的所述一个的多个共享存储组相关联的高速缓冲存储器中。
7.根据权利要求5所述的方法,还包括在从所述高速缓冲存储器读取所请求的组播流量包的同时,从所述多个共享存储组的所确定的一个的主存储器中读取所请求的单播流量包。
8.—种交换机中的组播流量读取方法,包括 接收在多个共享存储组中的所确定的一个中存储的组播流量包的读取请求,所述多个共享存储组耦接所述交换机中的多个入站端口和多个出站端口; 将对所述组播流量包的所述读取请求存储在请求高速缓存中; 在所述组播流量包的读取事件之前,对所述组播流量包的额外读取请求进行计数;以及 将通过所述读取事件获得的所述组播流量包传送到由所述额外读取请求代表的多个出站端口。
9.根据权利要求8所述的方法,还包括将入站端口的确定传递到控制所述传送的控制元件。
全文摘要
本发明涉及用于改善分组共享存储器体系结构的组播性能的系统和方法。解决由共享存储器组中的组播包产生的时间局部性通过高速缓存得以解决。在一个实施方式中,组播数据包被存储在与共享存储器组相关联的高速缓冲存储器中。在另一实施方式中,组播包的读取请求被存储在读取请求高速缓存中,其中在实际读取事件之前积累额外的读取请求。
文档编号H04L12/933GK103036805SQ20121036608
公开日2013年4月10日 申请日期2012年9月27日 优先权日2011年9月30日
发明者布拉德·马修斯 申请人:美国博通公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1