用于使用多个多点总线的装置和方法与流程

文档序号:11635303阅读:348来源:国知局
用于使用多个多点总线的装置和方法与流程

本公开总体上涉及计算机联网(computernetworking)的技术领域,更具体地涉及用于针对计算机联网使用多个多点总线的装置和方法。



背景技术:

在瓦片矩阵交换机(tile-matrixswitch)中,端口可以排列成行和列。例如,8×8瓦片矩阵交换机将使得端口成八行和八列。当帧进入特定行和列上的输入端口后,交换机基于该帧中的目标地址确定输出端口。因此,然后该帧可以遍历该行和列,到输出端口。

许多瓦片矩阵交换机可以使用单驱动器总线或多接收机总线将帧从各种输入端口传递到目的地列,然后使用一组点对点总线来驱动所述帧从行/列交叉点顺着该列到输出端口。对于高基数瓦片矩阵交换机,该组点对点总线可以是线密集的(wire-intensive)。虽然点对点总线可以为交换机提供非阻塞行为,但是对于具有更高基数的交换机,该方案可能变得非可持续。

本文提供的背景描述是为了在总体上呈现本公开的环境。除非另有说明,本章节中描述的材料不是针对本申请中权利要求的现有技术,而被包含在本章节中也不是要承认或暗示是现有技术。

附图说明

通过以下具体实施方式,结合附图,将容易理解实施例。为了便于说明,相似的附图标记表示相似的结构元件。实施例在附图的诸图中以示例而非限制的方式示出。

图1是根据各种实施例并结合了本公开的多个方面示出的用于使用多个多点总线的示例性交换机配置的示意图。

图2是根据各种实施例并结合了本公开的多个方面示出的用于使用多个多点总线的示例性过程的流程图,该过程可以由示例性交换机实施。

图3根据各种实施例示出了适用于实施本公开的实施例的示例性计算系统。

图4根据各种实施例并结合了本公开的多个方面示出了具有编程指令的制造产品。

具体实施方式

本文提供了与交换机中的多个多点总线相关联的装置、方法和存储介质。在一些实施例中,交换机可以包括用于在矩阵交换机的行维度中传输多个帧的多点行总线,以及用于在矩阵交换机的列维度中传输多个帧的多点列总线。交换机还可以包括用于接收多个帧的输入端口,以及用于从矩阵交换机输出多个帧的输出端口。以下将更全面地描述本公开的这些以及其它方面。

在下文的具体实施方式中参考了构成其一部分的附图,其中相似的附图标记在通篇中表示相似的部分,并且其中通过说明的方式示出可以实行的实施例。应当理解的是,在不脱离本公开的范围的情况下,可以使用其他实施例,并且可以进行结构或逻辑方面的改变。因此,下文的具体实施方式不应被认为是限制性的,并且实施例的范围由所附权利要求及其等同物限定。

在所附的说明书中公开了本公开的各方面。本公开及其等同物的替代实施例可以在不脱离本公开的精神或范围的前提下设计。应当注意的是,下面公开的相似元件在附图中由相似的附图标号来表示。

可以以对于理解所要求保护的主题最有帮助的方式依次将各种操作描述为多个离散动作或操作。然而,描述的顺序不应被解释为暗示了这些操作必然是依赖于顺序的。特别地,这些操作可不按照演示的顺序执行。所描述的操作可以以与所描述的实施例不相同的顺序执行。在另外的实施例中,各种另外的操作可以被执行,和/或所描述的操作可以被忽略。

为了本公开的目的,短语“a和/或b”意味着(a)、(b)或(a和b)。为了本公开的目的,短语“a,b和/或c”意味着(a)、(b)、(c)、(a和b)、(a和c)、(b和c)、或(a、b和c)。在本公开中列举的“一”或“第一”元件或其等同物,这样的公开包括一个或多个这样的元件,既不要求也不排除两个或更多个这样的元件。进一步,用于所识别的元件的顺序指示符(例如,第一,第二或第三)用于在元件之间区分,并不指示这样的元件的必须的或者限定的个数,并且不指示这样的元件的特定位置或顺序,除非另作特别陈述。

在说明书中对一个实施例或实施例的引用旨在结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。说明书可以使用短语“在一个实施例中”、“在另一个实施例中”、“在一些实施例中”、“在实施例中”、“在各种实施例中”等,其可以各自指代相同的或不同的实施例中一个或多个。

在实施例中,术语“模块”可以指是其部分或包括了:执行一个或多个软件或固件程序的专用集成电路(asic)、电子电路、处理器(共享、专用或组)和/或存储器(共享、专用或组),组合逻辑电路,和/或提供所述功能的其它适合的硬件组件。在实施例中,模块可以实现成固件、硬件、软件或固件、硬件、软件的任何组合。

现在参考图1所示,示出了根据各种实施例的使用多个多点总线的示例性交换机100。在一些实施例中,交换机100可以是瓦片矩阵交换机,其具有以物理行和列排列或以x维度和y维度排列的各种不同的子交换机(以下称为“瓦片”)。作为示例,瓦片101、102和103可以布置在同一行中;瓦片104和106可以布置在另一相同行中;并且瓦片105和107可以布置在又一相同行中。作为另一示例,瓦片101、104和105可以布置在同一列中,并且瓦片103、106和107可以布置在另一相同列中。虽然为了说明的目的图1中仅绘制了几块瓦片,应当理解的是,在不脱离本公开的范围的情况下,可以利用任何数量的瓦片。此外,在一些实施例中,交换机100可以是较大交换机的子部件,或者可以是矩阵交换机的一部分。

在一些实施例中,每个瓦片(例如,瓦片103)可以具有输入端口(例如,输入端口131)和输出端口(例如,输出端口133)。在一些实施例中,一个瓦片可以具有两个或更多的输入端口或两个或更多的输出端口。瓦片(例如,瓦片103)可以从该瓦片的(一个或多个)输入端口接收(例如,从另一计算设备发送的)帧并且使帧排入该瓦片的(一个或多个)输入队列(例如,输入队列132)。然后,输入队列中的帧可以由交换机模块(例如,交换机模块136)从当前瓦片转发到另一个瓦片(例如,瓦片105)的输出队列(例如,输出队列154),例如基于该帧的硬件地址。然后,输出帧可以从输出端口(例如,输出端口133)输出到例如,另一计算设备。以这种方式,交换机100可以被配置为,将从输入端口中的任一个接收的帧(例如,数据或控制帧)交换到输出端口中的任一个。

在一些实施例中,交换机100可以在数据链路层作为层2交换机来操作。交换机100可以使用已知的层2转发方法中的任何一种,例如,存储转发、直通、无碎片或自适应交换。在一些实施例中,交换机100可以在网络层作为层3交换机来操作。因此,交换机100可以执行通常由路由器执行的一些或全部功能,例如,网络地址转换或负载分配。当交换机100作为层3交换机操作时,输入端口和输出端口可以被配置为接收网络分组,并且每个瓦片可以被配置为处理每个分组的各自的报头,并且将该分组转发到其下一个目的地,例如,基于分组中的网络地址或帧中的硬件地址。在其他实施例中,交换机100能够在除了层2和层3之外的另一层中操作。作为示例,交换机100能够在应用层中作为层7交换机操作,例如,基于统一资源定位符(url)转发数据。在下文中,帧可以用来表示基本数据单元,而不管交换机100能够在哪个层操作。

在各种实施例中,x维度中的一个或多个多点行总线可以在交换机100中使用,例如,用于增加x维度路由中的性能。在一些实施例中,多点行总线可以是单向的。作为示例,多点行总线182可以由瓦片103用来将帧转发到瓦片102、瓦片101或在它们的行中的其他瓦片。在这种情况下,瓦片103可以驱动多点行总线182以从右向左转发帧。在一些实施例中,瓦片102可以具有其自己的分别耦合的多点行总线(未示出),以经由其交换机模块126转发来自输入队列122的帧。类似地,瓦片101可以具有其自己的分别耦合的多点行总线(未示出),以经由其交换机模块116转发来自输入队列112的帧。

作为另一示例,多点行总线184可以被瓦片106用来经由其交换机模块166转发来自输入队列162的帧。类似地,瓦片104可以具有其自己的分别耦合的多点行总线(未示出),以经由其交换机模块146转发来自输入队列142的帧。在各种实施例中,输出队列,例如,134、124、114、164以及144可以经由它们分别耦合的一个或多个多点行总线接收所转发的帧。

在一些实施例中,多点行总线可以是双向的。作为示例,多点行总线182也可以是集电极开路总线,其中一行中的所有瓦片可以共享一个行总线。在这种情况下,每个瓦片(例如,瓦片103、102或101)可能需要针对多点行总线182的使用进行仲裁(例如,来自仲裁器)。仅当瓦片获得对多点行总线的访问权时,瓦片可以驱动多点行总线来转发其帧。

在各种实施例中,x维度中的多个多点行总线可以耦合到一个输入端口或输入队列并且由其使用,例如,以进一步提高在x维度路由方面的性能。作为示例,可以允许在不同vc上或者去往不同的瓦片的不同输入队列的前头的帧使用不同的多点行总线同时移动到它们的目的地瓦片。例如,多点行总线186和188可以耦合到并由瓦片107以及其输入队列172使用,以同时地将帧转发到瓦片105以及在其行中的其他瓦片。在一些实施例中,具有集成的仲裁器的交换机模块176可以在多点行总线186和188之间确定哪个多点行总线可用于转发来自输入队列172的帧。在其他实施例中,仲裁器108可以执行选择功能以选择多点行总线186或188来转发来自输入队列172的帧。在各种实施例中,仲裁器108可以位于瓦片的外侧或分布到一个或多个选定的瓦片或每个瓦片的内部。在各种实施例中,输出队列(例如,174和154)可以通过它们的分别地耦合的一个或多个多点行总线来接收所转发的帧。

在一些实施例中,如果每个瓦片具有其自己的总线并且不与其他瓦片共享总线,则每个瓦片可以具有其自己的仲裁器(例如集成在瓦片中),用于管理其总线。如果瓦片正在与其他瓦片共享总线,则仲裁可能仍然分布在不同的瓦片上。作为示例,瓦片106和瓦片107可以共享多点行总线186,并且每个瓦片可以具有其自己的仲裁器。当瓦片106想要访问多点行总线186时它可以向瓦片107请求许可,反之亦然。如果瓦片106和瓦片107同时请求对访问的许可,则预先选择的瓦片(例如,瓦片106)可以具有优先于另一个的优先级。或者,它们可以都是随机产生的,直到其中一个获得访问权。在一些实施例中,如果公共总线由多个瓦片共享,则仲裁器可以被放置在瓦片外部。当然,仲裁器仍然可以被放置在选定的瓦片内。在一些实施例中,用于处理行总线仲裁和列总线仲裁的仲裁器可以集中在一起作为一个物理单元,尽管仲裁器仍然可以逻辑地分别对行总线和列总线进行单独的仲裁。

另外,在一些实施例中,令牌机制可以被实现用于总线选择,在其中令牌在例如瓦片106和瓦片107之间被传达用于共享总线的使用。令牌可以被想要访问权的一个瓦片攫取。然后直到瓦片完成其访问后可以释放令牌。

在各种实施例中,x维度中的多个多点行总线可以在拥塞期间帮助恢复丢失的带宽中的一些。当没有拥塞时,帧从输入端口连续流向目标瓦片;因此,在这种情况下可能仅需要一条行总线,因为带宽吞吐量可能在输入和单行总线之间匹配。当拥塞发生时,接收瓦片处的缓冲器可以被备份,最终使得寻源输入队列(sourcinginputqueue)被备份,并且使得帧在一个或多个输入队列中累积。然而,借助于x维度中的多个多点行总线,一旦拥塞消散,则多个队列可以同时将帧“卸载”到所述多个多点行总线上,从而恢复丢失的带宽中的一些。

在一些实施例中,多个瓦片、多个输入端口或多个输入队列可以耦合到一个多点行/列总线。作为示例,瓦片101可以具有两个输入端口111和113,并且两个输入端口可以共享一个多点行总线(例如,182)以及一个多点列总线(例如,192)。在一些实施例中,一个瓦片、一个输入端口或一个输入队列可以耦合到多个多点行/列总线。作为示例,瓦片107可以耦合到两个多点行总线(例如,186和188)以及两个多点列总线(例如,194和196)。在一些实施例中,一个瓦片、一个输入端口或一个输入队列可以有效地耦合到非整数数量的多点行/列总线。作为示例,瓦片106可以耦合到从而可以使用多点行总线184和/或186。同时,瓦片107可以耦合到从而可以使用多点行总线186和/或188。在这情况下,两个输入端口、两个输入队列或两个瓦片可以共享三个多点行总线,其可以产生将帧传递到在对于两个瓦片的x维度中的下一缓冲点的有效的1.5倍加速。通过相同的令牌,一个瓦片、一个输入端口或一个输入队列可以耦合到非整数数量的多点列总线,并且类似地在y维度上提供非整数倍的加速。

在各种实施例中,y维度路由中的一个或多个多点列总线可以在交换机100中使用,例如,以减少y维度路由中的线复杂度。作为示例,多点列总线192可以由瓦片101使用,以转发帧到瓦片104、瓦片105或在它们的列中的其他瓦片。在一些实施例中,瓦片104或105可以具有其自己的分别耦合的多点列总线(未示出)以转发来自其输入队列的帧。

在各种实施例中,y维度中的多个多点列总线可以耦合到并且由一个瓦片或更具体地一个输入队列使用,例如,以改善y维度路由中的性能。作为示例,多点列总线194和196可以耦合到并由瓦片103以及其输入队列132使用,以将帧转发到瓦片106,107或它们的列中的其他瓦片。在一些实施例中,交换机模块136可以确定在多点列总线194和196之间哪个多点列总线可用于转发来自输入队列132的帧。在其他实施例中,仲裁器108可执行选择功能以选择用于转发来自输入队列132的帧的多输入列总线194或196。在各种实施例中,输出队列(例如,134、164或174)可以经由它们分别耦合的一个或多个多点列总线接收所转发的帧。

在x维度上,当一个维度中发生拥塞时,帧可以被反压(back-pressure)到输入队列中。当拥塞减轻时,随后多个多点总线可以将多个帧同时快速地移动到其目的地列,因此,与提供仅一个多点总线的实施例相比,提高了性能。

在y维度上,与点对点总线相比,多个多点列总线可以减少接线(wiring)以及维持合理的速度。虽然点对点总线组可以提供非阻塞行为(其中一行中的多个输入可以将帧同时传递到一列中的多个唯一的输出端口而没有冲突),但是由于密集接线,点对点总线可能会在交换机中引入复杂性。8×8瓦片矩阵交换机的示例将需要每列的64条总线,倘若仅y维度中使用点对点路由结构。在这种情况下可以使用较少数量的多点列总线来代替这些64条总线。这些多个多点列总线仍然可以允许一行中的多个输入同时将帧路由到一列中的多个输出,但是可能仅需要该列总线中的一小部分。对于8×8瓦片矩阵示例,如果为每个瓦片提供2个多点列总线以便路由到一列中的八个瓦片,则仅需要16个多点列总线。

在一些实施例中,一个多点列总线可以由多个瓦片共享以传递帧,其与点对点总线架构相比可能减小带宽并增加延迟。为了增加带宽并减少延迟,在一些实施例中,可以在一个列信道中使用多个多点列总线。随着交换机的基数不断增长,以点对点方式实现列总线的接线数量迅速增长,从而使点对点方案不可持续。对于许多流量模式,一行中的多个输入可能不需要同时访问一列中的多个唯一的输出。因此,在y维度中使用多个多点列总线以减少接线数量,但是仍然保持合理水平的带宽和延迟,这可以是合理的权衡。在y维度中使用多个多点总线,可以允许将瓦片矩阵架构扩展到基数高得多的交换机的可能性。

在各种实施例中,帧可以到达交换机100的输入端口,并且如果拥塞发生则帧可以被缓冲到输入队列中。输入队列通常可以由虚拟通道(vc)分隔开,以保证无死锁路由以及服务质量传递的目的。这些输入队列然后可以对访问进行仲裁以利用一个或多个多点行总线来将帧移出到x维度中的一行瓦片。作为示例,输入队列172可以将两个多点行总线驱动到一行瓦片。

在各种实施例中,交换机100中的多点总线可提供性能增益。作为示例,可以允许在不同vc上或去往不同瓦片的不同输入队列(例如,输入队列172和152)前头的帧同时使用不同的多点行总线移动到其目的地瓦片。作为另一示例,可以使用多个多点总线同时移动相同输入队列处的帧以进一步提高性能。

在各种实施例中,交换机100中的多点总线也可用于恢复交换机内的一些缺陷。例如,如果需要总线上的额外周期以使路由信息在实际帧之前出现,则当使用多个多点总线将帧流转发到不同的列时,可以概率性地恢复效率损失。

在各种实施例中,交换机100中的具体的多点行或列总线可以由来自各种虚拟通道的帧访问。因此,交换机100中的多点行或列总线可以没有虚拟通道限制。

在各种实施例中,交换机100中的多点总线也可用于多播。在这种多播情况下,当帧需要被多播到不同输出端口时,多点总线可以用于同时传递该帧到多个输出端口。

在各种实施例中,交换机100中的多点总线还可以用于恢复可能被构建到交换机中的一些缺陷。作为示例,交换机100的内部数据路径可能不能够高效地处理具有奇数数量微片的帧。这就意味着,如果存在到达输入端口的奇数大小的帧的流,则输入端口可能会难于仅仅通过单个总线保持将它们发送出去,即使没有拥塞。于是,在这种情况下的多个多点总线方案可以加速交换机进程以从该缺陷中恢复,甚至可能能够匹配传入速率的吞吐量,如果这些帧是去往不同的输出端口。

现在参考图2,它是根据各种实施例使用多个多点总线的示例性过程的流程图,其可以由例如图1的交换机100实行。过程200可以由处理逻辑来执行,该处理逻辑包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,指令运行处理设备上以执行硬件仿真)或它们的组合。该处理逻辑可以被配置成在交换机中使用多个多点总线。这样,过程200可以由例如图1的交换机100实施,以实现本公开的一个或多个实施例。在多个实施例中,过程200可以用更多或更少的操作以不同的顺序来执行。

在多个实施例中,该过程可以在方框210处开始,在其中可以由例如图1的交换机100接收来自输入端口的多个帧。在一些实施例中,帧可以全部是寻源自一个计算设备的。在其它实施例中,帧可以由不同的计算设备来发送。在一些实施例中,帧可以具有奇数数量的微片。

接下来,在方框220处,可以确定用于传输多个帧到一个或多个输出端口(例如通过交换机)的一个或多个多点行总线以及一个或多个多点列总线。在一些实施例中,交换机可确定设置在同一行的至少两个多点行总线中的一个或多个多点行总线用于传输这些帧。多个多点行总线可以用于增强带宽并减少延迟,以将这些帧转发到矩阵交换机中的不同列。

在一些实施例中,交换机可确定设置在不同行的至少两个多点行总线中的一个或多个多点行总线用于传输这些帧。当三个多点行总线由两个输入端口或输入队列共享时,利用来自不同行的多个多点行总线不仅可以提高带宽,而且允许非整数倍的加速,例如1.5倍。

在一些实施例中,交换机可确定设置在同一列的至少两个多点列总线中的一个或多个多点列总线。利用y维度中的多个多点列总线可以减少接线的数量(例如相比于点对点方案),以便使得在瓦片矩阵结构中能够实现更高的基数,但仍维持合理水平的带宽和延迟(例如相比于点对点方案)。

接下来,在方框230处,来自输入端口的多个帧可以例如由交换机100经由一个或多个多点行总线以及一个或多个多点列总线中确定的多个,传输到一个或多个输出端口。在一些实施例中,多点行或列总线可用于将帧多播到多个输出端口。

图3示出适合用于实施本公开的实施例的计算系统300(下文中称为“系统300”)的实施例。

如图所示,系统300可以包括多个计算机,计算机310、330以及340;和耦合到计算机的交换机320。交换机320可以用于通过各种数据路径使帧在这些计算机之间被转发或路由。在一些实施例中,交换机320可以对应于本文描述交换机100和/或可以执行本文所描述的方法200。尽管图3仅示出了三台计算机,应当理解的是,包括交换机320的网络架构或系统300,可以用于在任何适合数量的计算机之间路由数据。

在各种实施例中,交换机320可以包括总线管理器322,用于管理交换机320中的多个多点行总线。多点行总线逻辑324可以确定如何使用一个或多个多点行总线以在x维度中传输帧,例如,从一列到另一列。类似地,多点列总线逻辑326可以确定一个或多个多点列总线以从在y维度中传输帧,例如,从一行到另一个行。在一些实施例中,总线管理器322可以在多点列总线逻辑326之前使用多点行总线逻辑324。因此,帧可以在于y维度中转发之前就在x维度中被转发。在一些实施例中,总线管理器322可以在多点行总线逻辑324之前使用多点列总线逻辑326。因此,帧可以在x维度之前就在y维度中被转发。在一些实施例中,总线管理器322可以交替地使用多点行总线逻辑324和多点列总线逻辑326。因此,帧可以在x维度和y维度交替地转发。

在一些实施例中,多点行总线逻辑324和多点列总线逻辑326可在每个子交换机中实现,例如,在图1的交换机模块136内。在其它实施例中,多点行总线逻辑324和多点列总线逻辑326可以在一个单独的组件中实现,例如,在图1的仲裁器108内。

在各种实施例中,计算机310可以包括系统控制逻辑312,其耦合到处理器311、系统存储器313、非易失性存储器(nvm)/存储314以及通信接口315。在各种实施例中,处理器311可以包括一个或多个处理器或处理器核心。

在各种实施例中,交换机320可以被耦合到对应的计算机310、330和340的通信接口。此外或者另外,交换机320可以被耦合到单个计算机(例如,计算机310)的多个处理器(例如,在处理器311中的多个处理器)用于在处理器之间路由数据。

在各种实施例中,通信接口315可以为计算设备310提供接口以通过一个或多个网络和/或用任何其他适合的设备进行通信。通信接口315可包括任何适合的硬件和/或固件,例如,网络适配器、网络接口卡、一个或多个天线、(一个或多个)无线接口,等等。在各种实施例中,通信接口315可以包括用于计算设备310(尤其是作为服务器)的多个nic,以使用针对lan或wan通信的以太网技术。nic可以管理同轴、双绞线或光纤的物理介质的接口。对应的nic可以管理对应的以太网物理层,诸如,10base-t、100base-tx或1000base-t。

在一些实施例中,系统控制逻辑312可包括任何适合的接口控制器,以提供任何适合的接口给处理器311,和/或给与系统控制逻辑312通信的任何适合的设备或组件。系统控制逻辑312还可以与显示器(未示出)交互操作以进行信息的显示(例如对用户)。在各种实施例中,显示器可以包括各种显示格式和形式中的一个,例如,液晶显示器、阴极射线管显示器、电子墨水显示器、投影显示器。在各种实施例中,显示器可以包括触摸屏。

在一些实施例中,系统控制逻辑312可以包括一个或多个存储器控制器(未示出),用于向系统存储器313提供接口。系统存储器313可用于加载和存储数据和/或指令,例如用于计算设备310。系统存储器313可以包括任何适合的易失性存储器,例如,动态随机存取存储器(dram)。

在一些实施例中,系统控制逻辑312可以包括一个或多个输入/输出(i/o)控制器(未示出),以向nvm/存储314和通信接口315提供接口。例如,nvm/存储314可以用于存储数据和/或指令。nvm/存储314可包括任何适合的非易失性存储器,例如闪存和/或可以包括任何适合的非易失性存储设备(一个或多个),例如一个或多个硬盘驱动器(hdd)、一个或多个固态驱动器、一个或多个压缩光盘(cd)驱动器和/或一个或多个数字多功能光盘(dvd)驱动器。nvm/存储314可包括存储资源,该存储资源在物理上是计算设备310被安装在的设备的一部分,或者它可以是由计算设备310可访问的而不必是计算设备310的一部分。例如,nvm/存储14可通过通信接口315由计算设备310通过网络来访问。

在一些实施例中,处理器311可以与存储器系统控制逻辑312一起被封装。在一些实施方案中,处理器311(一个或多个)中的至少一个可以与具有系统控制逻辑312的存储器一起被封装以形成系统级封装(sip)。在一些实施例中,处理器311可以与具有系统控制逻辑312的存储器集成在同一管芯上以形成片上系统(soc)。在一些实施例中,交换机(例如,交换机100)可以被集成为soc的元件,该soc包括交换机以及一个或多个处理器。当然,在其他实施例中,交换机(例如,交换机100)可以是独立的交换机。

如将被本领域的技术人员可以理解的,本公开可以实现为方法或计算机程序产品。因此,在本公开中,除了被实现在如前面描述的硬件,可以至少采用组合软件(包括固件、驻留软件、微代码等)以及硬件方面的实施例的形式,一般地被称为“电路”、“模块”或“系统”。进一步,本公开可以采用实现在任意有形或非暂态介质的计算机程序产品的形式,其中任意有形或非暂态介质是介质中具有计算机可用程序代码的表达的任意有形或非瞬时介质。

图4根据各种实施例并结合了本公开的多个方面示出了具有编程指令的制造产品410。在各种实施例中,制造产品可用于实现本公开的各种实施例。如图所示,制造产品410可以包括计算机可读非暂态存储介质420,其中指令430被配置为实施本文描述的过程中的实施例或任一实施例的多个方面。存储介质420可代表本领域公知的持久性存储介质的广泛的范围,包括但不限于,闪存、动态随机存取存储器、静态随机存取存储器、光盘、磁盘等。指令430可以使能装置,响应于指令被该装置执行,而执行本文所描述的各种操作。作为示例,存储介质420可以包括指令430,该指令430被配置为根据本公开的实施例使得装置(例如,图1中的交换机100)实现使用装置中的多个多点总线的一些方面,例如,图2示出的过程200。

在多个实施例中,计算机可读存储介质420可以包括一个或多个计算机可读非暂态存储介质。在其它实施例中,计算机可读存储介质420可以是暂态的,例如信号,其被编码有指令。可以使用一个或多个计算机可用或计算机可读介质(一个或多个)的任何组合。计算机可用或计算机可读介质可以是,例如但不限于,电子、磁、光、电磁,红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的示例(非穷举列表)将包括以下:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、光纤、只读存储器(cd-rom)、便携式只读存储光盘、光学存储设备、诸如支持互联网或内联网的传输介质或磁存储设备。应注意的是,计算机可用或计算机可读介质甚至可以是纸或在其上程序被打印的另一合适的介质,因为程序可以被电子地捕获,经由例如对纸张或其他介质的光学扫描,然后被编译、被解释或以合适的方式被处理(如果必要的话),然后存储在计算机存储器中。在本文档的上下文中,计算机可用或计算机可读介质可以是能够包含、存储、通信、传播或通过或结合指令执行系统、装置或设备结合传输程序的任何介质。计算机可用介质可以包括具有计算机可用程序代码的传播数据信号,由其体现在基带中或作为载波的一部分。计算机可用程序代码可以使用任何适当的介质传输,包括但不限于,无线、有线、光缆、rf等。

根据本公开的实施例,参照方法、装置(系统)和计算机程序产品的流程图示例和/或框图来描述本公开。应当理解的是,流程图示例和/或框图中的每个方框以及流程图和/或框图中组合的方框可以通过计算机程序指令来实现说明,例如,通过指令430。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生机器,使得这些指令经由计算机或其它可编程数据处理设备的处理器执行以创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的单元。

在各种实施例中,指令430还可以被存储在计算机可读介质中,进而这些计算机程序指令可以引导计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质,以使得存储在计算机可读介质中的指令产生包括指令单元(instructionmeans)的制品,该单元(means)实现流程图和/或框图的一个或多个方框中具体的功能/动作。在各种实施例中,指令430还可以被加载到计算机或其它可编程数据处理装置上以使得在计算机或其他可编程装置上执行一系列操作步骤,进而产生计算机实现的过程,使得执行在计算机或其它可编程装置上的指令提供用于实现在流程图和/或框图的一个或多个框中规定的功能/动作的过程。

根据本公开的各种实施例,在附图中的流程图和框图示出了系统、方法和计算机程序产品的可能实现的实施方式的架构、功能和操作。在这方面,流程图或框图中的每个方框可以代表代码的模块、片段或部分,其包括用于实现指定的逻辑功能(一个或多个)的一个或多个可执行指令。还应当注意的是,在一些替代实现方式中,方框中标出的功能可能会以与附图中所示的不同的顺序进行。例如,接连示出的两个方框实际上可以基本上同时执行,或者这些方框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意的是,框图和/或流程图示例中的每个方框以及框图和/或流程图示例中方框的组合可以由执行具体功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现。

本文使用的术语仅是为了描述特定实施例的目的,而不是意在限制本公开。正如本文所用,单数形式“一个”、“一种”和“所述”也旨在包括复数形式,除非上下文另有明确指示。还应理解的是,术语“包括”当用在本说明书中时,是指存在多个列出的特征、整数、步骤、操作、元件和/或组件,但不排除存在一个或多个其他特征、整数、步骤、操作、元件、组件和/或其编组。此外,如相对于本公开的实施例中所使用的,术语“包含”、“包括”、“具有”等是同义的。

实施例可以被实现为计算机过程,计算系统或作为诸如计算机可读介质中的计算机程序产品的制造产品。该计算机程序产品可以是由计算机系统可读的计算机存储介质以及被编码用于执行计算机过程的计算机程序指令。对应的结构、材料、动作以及在下文的权利要求中的“单元+功能”要素的所有等同物,旨在包括被专门要求保护的、用于与其它要求保护的元件相组合地执行功能的任何结构、材料或行为。本公开的说明书是为了说明和描述的目的而呈现的,而并非意在穷举或限于所公开的形式。在不脱离本公开的范围和精神的前提下,许多修改和变形对于普通技术人员而言将是显而易见的。选择和描述本文所讨论的实施例,是为了例示本公开和实际应用的原理,并且使本领域的普通技术人员能够针对具有适用于所预期的特定用途的各种修改的实施例而理解本公开。

虽然为了说明的目的,本文已经示出并描述了某些实施例,各种被计算出以实现相同目的的替换和/或等同实施例或实施方式可以在不脱离本公开的范围的情况下,被所示出以及所描述的实施例代替。本申请旨在涵盖本文所讨论的实施例的任何修改或变型。因此,本发明仅受权利要求限定。

下面呈现了各种实施例的一些非限制性示例。

示例1是一种用于计算的矩阵交换机,其可以包括多点行总线,用于在矩阵交换机的行维度中传输多个帧;多点列总线,耦合到多点行总线,用于在矩阵交换机的列维度中传输多个帧;输入端口,耦合到多点行总线或多点列总线,用于接收多个帧;以及输出端口,耦合到多点行总线或多点列总线,用于从矩阵交换机输出多个帧。

示例2可以包括示例1的主题,并且进一步可以包括输入队列,耦合到输入端口用于缓冲多个帧;以及输出队列,耦合到输出端口用于缓冲多个帧。

示例3可以包括示例1或2的主题,并且进一步可以指定该多点行总线是第一多点行总线,矩阵交换机进一步可以包括:第二多点行总线,耦合到输入端口,用于在矩阵交换机的行维度中传输多个帧;以及仲裁器,耦合到第一多点行总线和第二多点行总线,用于选择第一多点行总线或第二多点行总线以传输多个帧。

示例4可包括示例3的主题,并且进一步可以指定第一多点行总线与第二多点行总线共享矩阵交换机的同一行。

示例5可包括示例3的主题,并且进一步可以指定第一多点行总线以及第二多点行总线是在矩阵交换机的不同行中的。

示例6可以包括示例1-5的任何主题,并且进一步可以指定输入端口是第一输入端口。矩阵交换机进一步可以包括第二输入端口,其中,第二输入端口与第一输入端口共享同一行,或者第二输入端口在与第一输入端口不同的行,其中,第二输入端口与第一输入端口共享多点行总线。

示例7可包括示例1-6的任何主题,并且进一步可以指定该多点列总线是第一多点列总线。矩阵交换机进一步可以包括第二多点列总线,耦合到输出端口,用于在矩阵交换机的列维度中传输多个帧;以及仲裁器,耦合到第一多点列总线和第二多点列总线,用于选择第一多点列总线或第二多点列总线以传输多个帧。

示例8可以包括示例7的主题,并且进一步可以指定第一多点列总线和第二多点列总线共享矩阵交换机的同一列。

示例9可以包括示例7的主题,并且进一步可以指定第一多点列总线和第二多点列总线是在矩阵交换机的不同列中的。

示例10可包括示例1-9的任何主题,并且进一步可以指定输出端口是第一输出端口。矩阵交换机可进一步包括第二输出端口,其中,第二输出端口与第一输出端口共享同一列,或者第二输出端口在与第一输出端口不同的列,其中,第二输出端口与第一输出端口共享多点列总线。

示例11可以包括示例1-10的任何主题,并且进一步可以指定矩阵交换机是片上系统(soc)的元件,片上系统(soc)包括矩阵交换机以及一个或多个处理器。

示例12可以包括示例1-11的任何主题,并且进一步可以指定多点列总线用于将多个帧多播到矩阵交换机的多个输出端口。

示例13是一种用于计算机联网的方法,其可包括由矩阵交换机接收来自输入端口的多个帧;由矩阵交换机确定用于将多个帧传输到一个或多个输出端口的一个或多个多点行总线以及一个或多个多点列总线;以及由矩阵交换机,经由所述一个或多个多点行总线以及所述一个或多个多点列总线中确定的多个,将来自输入端口的多个帧传输到一个或多个输出端口,。

示例14可以包括示例13的主题,并且进一步可以指定所述接收包括接收具有奇数数量的微片的多个帧。

示例15可以包括示例13或14的主题,并且进一步可以指定所述确定包括确定设置在同一行的至少两个多点行总线中的一个或多个多点行总线。

示例16可以包括示例13-15的任何主题,并且进一步可以指定所述确定包括确定设置在不同行的至少两个多点行总线中的一个或多个多点行总线。

示例17可以包括示例13-16的任何主题,并且进一步可以指定所述确定包括确定设置在同一列的至少两个多点列总线中的一个或多个多点列总线。

示例18可以包括示例13-17的任何主题,并且进一步可以指定所述传输包括由矩阵交换机,将多个帧多播到多个输出端口。

示例19是至少一种非暂态计算机可读存储介质,其可以包括多个指令,被配置为使得装置响应于由装置执行指令来实施示例13-18中的任何主题。

示例20可以是一种用于计算机联网的装置。该装置可以包括用于接收来自输入端口的多个帧的模块;用于确定用于将多个帧传输到一个或多个输出端口的一个或多个多点行总线以及一个或多个多点列总线的模块;以及用于经由所述一个或多个多点行总线以及所述一个或多个多点列总线中确定的多个,将来自输入端口的多个帧传输到一个或多个输出端口的模块。

示例21可以包括示例20的主题,并且进一步可以指定用于接收的模块包括用于接收具有奇数数量的微片的多个帧的模块。

示例22可以包括示例20或21的主题,并且进一步可以指定用于确定的模块包括用于确定设置在同一行的至少两个多点行总线中的一个或多个多点行总线的模块。

示例23可以包括示例20-22的任何主题,并且进一步可以指定用于确定的模块包括用于确定设置在不同行的至少两个多点行总线中的一个或多个多点行总线的模块。

示例24可以包括示例20-23的任何主题,并且进一步可以指定用于确定的模块包括用于确定设置在同一列的至少两个多点列总线中的一个或多个多点列总线的模块。

示例25可以包括示例20-24中的任何主题,并且可以进一步指定用于传输的模块包括用于将多个帧多播到多个输出端口的模块。

本领域普通技术人员将明白,可以在不偏离本公开的精神和范围的情况下对本公开的设备和相关联的方法的公开实施例做出各种修改和变化。因而,本公开旨在涵盖上面公开的实施例的修改和变化,只要这些修改和变化落在所附权利要求及其等同物的范围内。

摘要用于让读者快速确定技术性公开的性质和依据。所提供的摘要将不被用于解释或限制权利要求的范围或含义。下面的权利要求由此被纳入到具体实施方式中,其中每个权利要求独立地作为单独的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1