用于数据中心的系统、方法以及设备的制作方法

文档序号:7721655阅读:171来源:国知局
专利名称:用于数据中心的系统、方法以及设备的制作方法
用于数据中心的系统、方法以及设备相关专利申请的交叉引用本专利申请要求名为"Systems, Apparatus and Methods for a Data Centre (用 于数据中心的系统、设备和方法)”并于2008年9月19日提交的美国专利申请 No. 61/098516 的优先权和利益;同时要求名为 “Methods and ApparatusRelated to Flow Control within a Data Centre (涉及在数据中心中流量控制的方法和设备)”并于2008 年9月11日提交的美国专利申请No. 61/096209的优先权和利益;两者在这里完全引用作 为参考。本专禾Ij 申请是名为“Methods and Apparatus for Transmission of Groups ofCell via a Switch Fabric (经由交换结构传输信元组的方法和设备)”并于2008 年12月24日提交的美国专利申请No. 12/343728的部分继续申请;是名为“ System Architecture for a Scalable and Distributed Multi-Stage Switch Fabric (用于可 缩放以及分布式多级交换结构的系统架构)”并于2008年12月29日提交的美国专利申请 No. 12/345500 的部分继续申请;是名为 “Methods andApparatus Related to a Modular Switch Architecture涉及模块化交换架构的方法和设备),,并于2008年12月29日提 交的美国专利申请No. 12/345502的部分继续申请;是名为“Methods and Apparatus for Flow Control Associatedwiths Multi-Stage Queue (用于与多级队列有关的流量控制的 方法和设备)”并于2008年9月30日提交,要求了名为“Methods and Apparatus Related toFlow Control within a Data Center (涉及在数据中心中流量控制的方法和设备),,, 2008年9月11日提交的美国专利申请No. 61/096209的优先权和利益的美国专利申请 No. 12/242224 的部分继续申请;是名为 “Methods andApparatus for Flow-Controllable Multi-Staged Queues (用于可控制流量的多级队列的方法和设备),,并于2008年9月30 日提交,要求了名为“Methods andApparatus Related to Flow Control within a Data Centre(涉及在数据中心中流量控制的方法和设备)”,2008年9月11日提交的美国专利申 请No. 61/096209的优先权和利益的美国专利申请No. 12/242230的部分继续申请。每一个 上述提及的申请在这里都完全引用作为参考。本专利 申请还是名为“Methods and Apparatus Related to Any-to-AnyConnectivity within a Data Centre (涉及数据中心中任意连接性的方法和 设备)”并于2009年6月30日提交的美国专利申请No. 12/495337的部分继续申请;是名 为“Methods and Apparatus Related to Lossless Operation within aData Centre (涉 及数据中心中无损操作的方法和设备)”并于2009年6月30日提交的美国专利申请 No. 12/495344 的部分继续申请;是名为“Methods andApparatus Related to Low Latercy within a Data Centre (涉及数据中心中低等待时间的方法和设备)”并于2009年6月30 日提交的美国专利申请No. 12/495358的部分继续申请;是名为“Methods and Apparatus Related toFlow Control within a Data Centre Switch Fabric ( ^ΜΜΜΦ'^& ^ 构中流量控制的方法和设备),,并于2009年6月30日提交的美国专利申请No. 12/495361 ^Wlf^M^in ;^^^J "Methods and Apparatus Related toVirtualization ofData
6Centre Resources (涉及数据中心资源虚拟化的方法和设备)”并于2009年6月30日提交 的美国专利申请No. 12/495364的部分继续申请。每一个上述提及的申请在这里都完全引 用作为参考。概述在一个实施例中,一种设备包括可具有分组处理模块的第一边缘设备。第一边缘 设备可被配置为接收分组。第一边缘设备的分组处理模块可被配置为基于所述分组产生多 个信元。第二边缘设备可具有分组处理模块,该分组处理模块被配置为基于所述多个信元 重新组装所述分组。多级交换结构能够被耦接到第一边缘设备和第二边缘设备。该多级交 换结构能够定义一个单独的逻辑实体。该多级交换结构可具有多个交换模块。多个交换模 块中的每一个交换模块具有共享的存储装置。多级交换结构能够被配置为交换多个信元从 而使得多个信元被发送到第二边缘设备。
背景技术
总体上,实施例涉及数据中心装备,以及更具体地涉及用于具有交换核心(switch core)和边缘设备的数据中心系统的体系结构、设备和方法。用于数据中心系统的已知的体系结构涉及过于棘手和复杂的方法,增加了这种系 统的开销和等待时间。例如,一些已知的数据中心网络由三个或更多交换层组成,其中在每 一层都执行以太网和/或因特网协议(IP)分组处理。分组处理和排队开销不必要地在每 一层重复,直接增加了开销和端到端等待时间。类似地,这样的已知数据中心网络并非典型 地以有效成本方式扩展对于给定的数据中心系统,在服务器数量上的增加通常需要额外 的端口,导致在数据中心系统每一层增加更多的设备。这样糟糕的可扩展性增加了此类数 据中心系统的开销。因此,存在对于改善包括改进的体系结构、设备和方法的数据中心系统的需求。


图1是根据一个实施例的数据中心(DC)的系统框图。图2是根据一个实施例表明具备任意连接性的数据中心一部分的实例的示意图。图3是根据一个实施例表明与数据中心相关联的资源逻辑组的示意图。图4A是根据一个实施例表明能够被包括在交换核心中的交换结构的示意图。图4B是根据一个实施例表明能够被存储在图4A中所示的存储模块中的交换表的 示意图。图5A是根据一个实施例表明交换结构系统的示意图。图5B是根据一个实施例表明输入/输出模块的示意图。图6是根据一个实施例表明图5A的交换结构系统一部分的示意图。图7是根据一个实施例表明图5A的交换结构系统一部分的示意图。图8和9根据一个实施例分别显示了用于遮盖交换结构的外壳的前视图和后视 图。图10根据一个实施例显示了图8中外壳的一部分。图11和12分别是根据另一实施例分别表明在第一配置和第二配置中的交换结构
7的示意图。图13是根据一个实施例表明与交换结构相关联的数据流的示意图。图14是根据一个实施例表明在图13所示的交换结构中流量控制的示意图。图15是根据一个实施例表明缓冲模块的示意图。图16A是根据一个实施例的配置为经由交换核心的交换结构协调信元组传输的 入口调度模块和出口调度模块的示意框图。图16B是根据一个实施例表明涉及信元组传输信令的信令流程图。图17是根据一个实施例表明在被安排在交换结构入口侧的入口队列排队的两个 信元组的示意框图。图18是根据另一实施例表明在被安排在交换结构入口侧的入口队列排队的两个 信元组的示意框图。图19是根据一个实施例表明经由交换结构调度信元组传输的方法的流程图。图20是根据一个实施例表明处理与传输请求有关的请求序列值的信令流程图。图21是根据一个实施例表明与传输响应相关联的响应序列值的信令流程图。图22是根据一个实施例表明多级流量可控队列的示意框图。图23是根据一个实施例表明多级流量可控队列的示意框图。图24是根据一个实施例表明配置为定义与多个接收队列相关联的流量控制信号 的目的地控制模块的示意框图。图25是根据一个实施例表明流量控制分组的示意图。
具体实施例方式图1是根据一个实施例表明数据中心(DC) 100 (例如,超级数据中心,理想化数据 中心)的示意图。数据中心100包括交换核心(SC) 180,可操作地连接到4种类型的外围处 理装置170 计算节点110、服务节点120、路由器130和存储节点140。在该实施例中,数据 中心管理(DCM)模块190被配置为控制(例如管理)数据中心100的操作。在一些实施例 中,数据中心100能够被称为数据中心。在一些实施例中,外围处理装置可以包括一个或更 多虚拟资源例如虚拟机。每一个外围处理装置170都被配置为经由数据中心100的交换核心180通信。特 别地,数据中心100的交换核心180被配置为在外围处理装置170之间以相对低的等待时 间提供任意连接性。例如,交换核心180能够被配置为在一个或多个计算节点110和一个 或多个存储节点140之间发送(例如传送)数据。在一些实施例中,交换核心180能够具 有至少几百或几千个端口(例如,出口端和/或入口端),通过这些端口外围处理装置170 能够发送和/或接收数据。外围处理装置170包括一个或多个网络接口装置(例如网络接 口卡(NIC)UOG比特(Gb)以太网集中网络适配器(CNA)装置),通过这些网络接口装置, 外围处理装置170能够发送信号到交换核心180和/或从交换核心180接收信号。信号 能够经由可操作地耦接到外围处理装置170的物理链路和/或无线链路被发送到交换核 心180和/或从交换核心180接收。在一些实施例中,外围处理装置170能够被配置为基 于一个或多个协议(例如以太网协议、多协议标签交换(MPLS)协议、光纤信道协议、光纤 信道覆盖的以太网协议(fibre-charmel-over Ethernet protocol)、涉及无限带宽的协议
8(Infiniband-related protocol))发送数据到交换核心180和/或从交换核心180接收数据。在一些实施例中,交换核心180可以是(例如能够具备功能)单独的合并交换 (consolidated switch)(例如单独的大尺寸合并 L2/L3 交换(large-scaleconsolidated L2/L3switch))0换而言之,交换核心180能够被配置为与例如被配置为经由以太网连接相 互通信的不同网络元件集合相反地,作为单独的逻辑实体(例如单独的逻辑网络元件)操 作。交换核心180能够被配置为在数据中心100中连接(例如,便于其之间的通信)计算 节点110、存储节点140、服务节点120和/或路由器130。在一些实施例中,交换核心180 能够被配置为经由接口装置通信,其中接口装置被配置为以至少10Gb/S的速率发送数据。 在一些实施例中,交换核心180能够被配置为经由接口装置(例如光纤信道接口装置)通 信,所述接口装置被配置为以例如2Gb/S、4Gb/s、8Gb/S、10Gb/S、40Gb/S、100Gb/S和/或更 快的链路速率发送数据。虽然交换核心180可以是逻辑集中的,但是交换核心180的实施可以是高度分布 的,例如为了可靠性。例如,交换核心180的几部分可以是物理分布交叉,例如,许多机架。 在一些实施例中,例如交换核心180的处理级段能被包括在第一机架中以及交换核心180 的另一个处理级段能被包括在第二机架中。两个处理级段逻辑上都可以作为单独合并交换 部分。有关交换核心180体系结构的更多细节将结合附图4到13 —起被描述。如图1中所示,交换核心180包括边缘部分185和交换结构187。边缘部分185可 以包括边缘设备(未示出),能够作为交换结构187和外围处理装置170之间的网关装置 工作。在一些实施例中,在边缘部分185中的边缘设备能够共同地具有几千个端口(例如 100000个端口、500000个端口),通过这些端口来自外围处理装置170的数据能够被发送进 入(例如,路由)交换核心180的一个或多个部分和/或从交换核心180的一个或多个部 分发送出去。在一些实施例中,边缘设备能够被称为接入交换(access switch)、网络装置、 和/或输入/输出模块(例如,在图5A和图5B中示出)。在一些实施例中,边缘设备能够 被包括在例如机架的架顶(TOR)中。数据能够在外围处理装置170、交换核心180、交换核心180的交换结构187、和/ 或交换核心180的边缘部分185 (例如在被包括在边缘部分185中的边缘设备)处基于不 同的平台被处理。例如,在一个或多个外围处理装置170和在边缘部分185的边缘设备之 间的通信可以是基于以太网协议或非以太网协议定义的数据分组流。在一些实施例中,多 种数据处理能够在边缘部分185内的边缘设备执行,而不是在交换核心180的交换结构187 内执行。例如,数据分组能够在边缘部分185的边缘设备处被解析成信元,以及该信元被从 边缘设备发送到交换结构187。信元能够被解析为段(segment)并在交换结构187内作为 片段(在一些实施例中还能够被称为段(flits))被发送。在一些实施例中,数据分组能够 在交换结构187的一部分处被解析为信元。在一些实施例中,拥塞解决方案和/或经由交换 结构187的数据(例如信元)传输调度能够在交换中心180的边缘部分185内部的边缘设 备(例如接入交换(accessswitches))被实施或执行。然而,拥塞解决方案和/或数据传 输调度不可以在定义交换结构187的模块中执行。涉及数据中心的组件内部的数据分组、 信元和/或片段处理的更多细节将在下面描述。例如,涉及信元处理的更多细节将至少结 合图16A到图21描述。
在一些实施例中,边缘部分185内的边缘设备能够被配置为分类,例如在交换核 心180从外围处理装置170接收的数据分组。特别地,交换核心180的边缘部分185内的边 缘设备能够被配置为执行以太网类型的分类,其可以包括基于例如第2层以太网地址(例 如媒体接入控制(MAC)地址)和/或第4层以太网地址(例如通用数据报协议(UDP)地 址)的分类。在一些实施例中,目的地可以基于例如在交换核心180的边缘部分185的分 组的分类而被确定。例如,第一边缘设备能够基于分组的分类识别第二边缘设备作为该分 组的目的地。分组能够被解析成信元并被从第一边缘设备发送到交换结构187。信元能够 通过交换结构187交换,从而它们能够被发送到第二边缘设备。在一些实施例中,信元能够 通过交换结构187基于涉及目的地以及和信元相关联的信息而交换。关于交换核心180的安全策略能够更有效地应用,因为分类在交换核心180的单 独逻辑层,在交换核心180的边缘部分185执行。特别地,许多安全策略能够在分类期间以 相对统一的且无缝方式在交换核心180的边缘部分185应用。涉及数据中心内的分组分类的更多细节将结合例如图5A、图5B和图19描述。涉 及数据中心内相关联的分组分类的附加细节在名为“Methods andApparatus Related to Packet Classification Associated with a Multi-Stage Switch ( ^R^^J^M^^. 的分组分类的方法和设备)”并于2008年9月30日提交的美国专利申请序号12/242168 以及名为 “Methods and Apparatus forPacket Classification Based on Policy Vectors (基于策略向量的分组分类的方法和设备)”并于2008年9月30日提交的美国专 利申请序号12/242172中描述,这两者在这里都完全引用作为参考。交换核心180能够被定义从而数据(例如数据分组)的分类不在交换结构187中 执行。因此,虽然交换结构187可以具有多级,但是多级不需要拓扑跳转,在该拓扑跳转中 执行数据分类,并且交换结构187能够定义单独的拓扑跳转。作为替换,在边缘设备(例如 交换核心180的边缘部分185内部的边缘设备)基于分类确定的目的地信息能够被用于交 换结构187内部的交换(例如信元的交换)。涉及在交换结构187内部交换的更多细节将 结合例如附图4A和4B被描述。在一些实施例中,涉及分类的处理可以在包含在边缘设备(例如,输入/输出模 块)的分类模块(未示出)执行。将分组解析成信元、经由交换结构187的信元传输调度、 分组和/或信元的重组和/或等等能够在边缘设备(例如,输入/输出模块)的处理模块 (未示出)执行。在一些实施例中,分类模块可以被称为分组分类模块,和/或处理模块可 以被称为分组处理模块。涉及包括分类模块和处理模块的边缘设备的更多细节将结合图5B 描述。在一些实施例中,数据中心100的一个或多个部分可以是(或可以包括)基于硬 件的模块(例如,专用集成电路(ASIC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)) 和/或基于软件的模块(例如,计算机代码模块、能够在处理器上执行的处理器可读指令 集)。在一些实施例中,一个或多个与数据中心100有关的功可以被包括在不同的模块中 和/或被结合到一个或多个模块中。例如,数据中心管理模块190可以是硬件模块和软件 模块的结合,其被配置为管理数据中心100内的资源(例如交换核心180的资源)一个或多个计算节点110可以是通用目的计算引擎,其能够包括例如处理器、存 储器、和/或一个或多个网络接口装置(例如网络接口卡(NIC))。在一些实施例中,计算节
10点110中的处理器可以是一个或多个高速缓存相干域的一部分。在一些实施例中,计算节点110可以是主机装置、服务器和/或等等。在一些实施 例中,一个或多个计算节点110能够具有虚拟化资源,从而任何计算节点110(或其部分) 都能被用来替代数据中心100内的任何其他计算节点110(或其部分)。一个或多个存储节点140可以是包括例如处理器、存储器、本地连接的磁盘存储 器和/或一个或多个网络接口装置的装置。在一些实施例中,存储节点140能具有专用的模 块(例如,硬件模块和/或软件模块),被配置为使得例如一个或多个计算节点110能够经 由交换核心180读取来自一个或多个存储节点140的数据或写入数据到一个或多个存储节 点140。在一些实施例中,一个或多个存储节点140可以具有虚拟化资源,从而任何存储节 点140 (或其部分)可以被用来替代数据中心100内的任何其他存储节点140 (或其部分)。一个或多个服务节点120可以是开放系统互连(OSI)第4层到第7层装置,其可 以包括例如处理器(例如,网络处理器)、存储器、和/或一个或更多网络接口装置(例如, IOGb以太网装置)。在一些实施例中,服务节点120可以包括硬件和/或软件,被配置为对 相对重的网络工作负荷执行计算。在一些实施例中,服务节点120可以被配置为基于每一 个分组以相对有效(例如比在例如计算节点110上执行更有效)的方式执行计算。计算可 包括例如全状态防火墙计算、入侵检测和阻止(IDP)计算、可扩展标记语言(XML)加速计 算、传输控制协议(TCP)终端计算,和/或应用级别负载平衡计算。在一些实施例中,一个 或多个服务节点120可以具有虚拟化资源,从而任何服务节点120 (或其部分)能被用来替 代数据中心100内部的任何其他服务节点120 (或其部分)。一个或多个路由器130能够是网络装置,被配置为连接数据中心100的至少一部 分到另一个网络(例如全球因特网)。例如,如图1所示,交换核心180能被配置为通过路 由器130与网络135和网络137通信。虽然未示出,但是在一些实施例中,一个或多个路由 器130能够激活数据中心100内组件(例如,外围处理装置170、交换核心180的部分)之 间的通信。通信能够基于例如第3层路由协议定义。在一些实施例中,一个或多个路由器 130能够具有一个或多个网络接口装置(例如,IOGb以太网装置),通过该网络接口装置路 由器130能向和/或从例如交换核心180和/或其他外围处理装置170发送和/或接收信 号。涉及数据中心内虚拟化资源的更多细节在名为“Methods and Apparatusfor Determining a Network Topology During Network Provisioning(在网络供应期 间用于确定网络拓扑的方法和设备)”并于2008年12月30日提交的共同未决美国 专禾Ij ψ if No. 12/346623> ^ % "Methods and Apparatus for DistributedDynamic NetworkProvisioning(用于动态网络供应分布的方法和设备)”并于2008年12月30日 提交的共同未决美国专利申请No. 12/346632、以及名为“Methods and Apparatus for Distributed Dynamic Network Provisioning(用于分布式动态网络供应的方法和设备)” 并于2008年12月30日提交的共同未决美国专利申请No. 12/346630中阐明,所有这些申 请在这里都引用作为参考。如上所述,交换核心180能被配置为具有单独通用交换的功能,其能够将数据中 心100内的任何外围处理装置170连接到任何其他外围处理装置170。特别地,交换核心 180能被配置为在外围处理装置170 (例如相对多的外围处理装置170)和交换核心180之间提供任意连接性,除了那些被网络接口装置的带宽以及通过光速信令延迟(也被称为光 速等待时间)施加的限制之外,基本上不具有可见的限制,网络接口装置连接外围处理装 置170到交换核心180。换句话说,交换核心180能被配置为使得每一个外围处理装置170 看起来被直接互联到数据中心100内的所有其他外围处理装置。在一些实施例中,交换核 心180能被配置为使得外围处理装置170能够经由交换核心180以线路速率(line rate) (或基本上以线路速率)通信。任意连接性的示意性表示在图2中示出。此外,交换核心180能以期望的方式处理例如与交换核心180通信的任意外围处 理装置170之间的虚拟资源的迁移,因为交换核心180具有单独逻辑实体的功能。因此,在 外围处理装置170内的虚拟资源迁移范围可以跨越基本上所有耦接到交换核心180的端口 (例如,交换核心180的边缘设备185的所有端口)。在一些实施例中,与虚拟资源迁移相关联的提供可以部分地通过网络管理模块处 理。集中的网络管理实体或网络管理模块能够与网络装置(例如,交换核心180的几部分) 合作以收集并管理网络拓扑信息。例如,由于资源是附着或独立于网络装置的,网络装置能 将当前操作耦接于网络装置的有关资源(虚拟的和物理的)的信息推送到网络管理模块。 例如外围处理装置管理工具(例如,服务器管理工具)和/或网络管理工具的外部管理实 体能与网络管理模块通信以向网络装置和网络中的其他资源发送网络供应指令,而不需要 网络的静态描述。这样的系统避免了静态网络描述的困难和由其他类型外围处理装置170 和网络管理系统导致的网络性能退化。在一个实施例中,服务器管理工具或外部管理实体与网络管理模块通信以向网络 装置提供与外围处理装置170有关的虚拟资源,并确定操作状态或情形(例如运行、暂停或 迁移)以及虚拟资源在网络中的位置。虚拟资源可以是在经由数据中心中的接入交换(例 如,包括在边缘部分187中的接入交换)耦合到交换结构的外围处理装置170(例如,服务 器)上执行的虚拟机。许多类型的外围处理装置170能经由接入交换被耦接到交换结构。不是依靠对网络拓扑信息发现和/或(包括将虚拟资源捆绑到网络装置上)管理 的静态网络描述,网络管理模块与接入交换和外部管理实体通信并合作从而发现或确定网 络拓扑信息。在初始化(和/或开始)主机(和/或其他类型的外围处理装置170)上的 虚拟机之后,外部管理实体能够向网络管理模块提供虚拟机的设备标识符。该设备标识符 可以是,例如虚拟机或外围处理装置170的网络接口的媒体访问协议(“MAC””)地址、虚拟 机或外围处理装置170的名称、全球唯一标识符(“⑶ID”)、和/或虚拟资源或外围处理装 置170的通用唯一标识符(“UUID”)。⑶ID不需要是关于所有网络、虚拟资源、外围处理装 置170、和/或网络装置的全球唯一的,但是其在由网络管理模块管理的网络或网络片段内 是唯一的。此外,外部管理实体能够提供用于向管理虚拟机的外围处理装置170连接到的 接入交换的端口提供指令。接入交换能检测虚拟机已经被初始化、开始、和/或移动到外围 处理装置170。在检测到虚拟机之后,接入交换能够询问外围处理装置170有关外围处理装 置170和/或虚拟机的信息,包括例如外围处理装置170或虚拟机的设备标识符。接入交换能够询问或请求例如使用例如链路层发现协议(“LLDP”)、一些基于其 他标准或熟知协议,或私有协议的虚拟机的设备标识符的信息,其中该虚拟机被配置为经 由上述协议通信。作为替代,虚拟机可以在检测到其已经被连接到接入交换之后,使用例如 以太网或IP广播分组广播关于它自己的信息(包括虚拟机的设备标识符)。
12
接入交换然后推送虚拟装置的设备标识符(有时候被称为虚拟设备标识符)以 及,在一些实施例中,从虚拟机接收的其他信息给网络管理模块。此外,接入交换能推送接 入交换的设备标识符和接入交换端口的端口标识符给网络管理模块,控制虚拟机的外围处 理装置170连接到所述接入交换。该信息功能用作网络中虚拟机位置的描述,并且定义了 将虚拟机捆绑到用于网络管理模块和外部管理实体的外围处理装置170上。换而言之,在 接收该信息之后,网络管理模块能够能将虚拟机的设备标识符与特定接入交换上的特定端 口相关联,该虚拟机(和/或操作虚拟机的外围处理装置170)连接到该特定接入交换上。虚拟机的设备标识符、接入交换的设备标识符、端口标识符和由外部管理实体提 供的供应指令能够被存储在网络管理模块可接入的存储器中。例如,虚拟机的设备标识符、 接入交换的设备标识符、和端口标识符能够被存储在被配置作为数据库的存储器中,从而 基于虚拟机的设备标识符的数据库询问返回接入交换的设备标识符、端口标识符和供应指 令。因为网络管理模块能够基于虚拟机的设备标识符与虚拟机在网络中的位置相关 联,外部管理实体不需要注意网络的拓扑或将虚拟机捆绑到外围处理装置170上以提供网 络资源(例如,网络装置、虚拟机、虚拟交换或物理服务器)。换句话说,外部管理实体像网 络中的互联和虚拟机在网络中的位置(例如,在网络中哪个接入交换的哪个端口处、哪个 外围处理装置170上)一样不可知,并且能基于由网络中外围处理装置170控制的虚拟机 的设备标识符提供网络中的接入交换。在一些实施例中,外部管理实体还能提供物理外围 处理装置170。此外,因为网络管理模块动态确定并管理网络拓扑信息,外部管理实体不依 靠对于供应网络的网络静态描述。如在本说明书中所使用的,供应可以包括多种类型或形式的装置和/或软件模块 设置、配置和/或调整。例如,供应可以包括基于网络策略配置例如网络交换机的网络装 置。更特别地,例如,网络供应可以包括配置网络装置作为第2层或第3层网络交换机操 作;改变网络装置的路由表;更新可操作地耦接到网络装置的设备的安全策略和/或设备 地址或设备标识符;选择网络装置使用哪一个网络协议实施;设置例如用于网络装置端口 的虚拟局域网络(“VLAN”)标记的网络段标识符;和/或应用接入控制列表(“ACL”)到 网络装置。该网络交换机能被提供或配置,从而由网络策略定义的规则和/或接入限制被 应用于从网络交换机经过的数据分组。在一些实施例中,虚拟装置被提供。虚拟装置可以 是,例如实现虚拟交换、虚拟路由器、或虚拟网关的软件模块,其被配置为作为在物理网络 之间的媒介操作并且其由例如外围处理装置170的主机装置控制。在一些实施例中,供应 能包括建立虚拟端口或在虚拟资源和虚拟装置之间的连接。图2是根据一个实施例表明具有任意连接性的数据中心的一部分的实例的示意 图。如图2所示,外围处理装置PD(来自外围处理装置210组)经由交换核心280被连接 到每一个外围处理装置210。在一些实施例中,为了清楚,仅有从外围处理装置PD到其他外 围处理装置210 (除了外围处理装置PD)的连接被示出。在一些实施例中,交换核心280被定义,从而交换核心280在某种意义上是公平 的,即在外围处理装置PD和其他外围处理装置210之间的目的链路的带宽被基本上合理地 在竞争的外围处理装置210之间共享。例如,当图2所示的一些(或全部)外围处理装置 210试图在给定时间接入外围处理装置PD时,可用于每一个外围处理装置280接入外围处理装置PD的带宽(例如,即时带宽)将是基本上相等的。在一些实施例中,交换核心280 能被配置为使得一些(或全部)外围处理装置210能与外围处理装置PD以全带宽(例如, 外围处理装置PD的全带宽)和/或以无阻塞的方式通信。此外,交换核心280能被配置为 使得通过外围处理装置(来自外围处理装置210)到外围处理装置PD的接入可不被在其它 外围处理装置和外围处理装置PD之间的其他链路(例如,存在或试图)限制。在一些实施例中,交换核心280的属性,任意连接性、低等待时间、公平性和/或等 等能够使得连接到(例如,与其通信)交换核心280的给定类型(例如存储节点类型、计算 节点类型)的外围处理装置210能够被可互换地对待(例如,相对于其他处理装置210和 交换核心280的位置独立)。这能被称作可互换性,并能促使包括交换核心280的数据中心 的有效性和简易性。即使交换核心280可能具有大量的端口(例如,超过1000个端口),交 换核心280仍能够具有任意连接性和/或公平性的属性,从而每一个端口可以以相对高的 速度操作(例如,以超过lOGb/s的速度操作)。这不需要包括在例如超级计算机的专门的 互连和/或不需要对所有通信模式完全先知就能实现。涉及具有任意连接性和/或公平性 的交换核心体系结构的更多细节将至少部分地结合附图4到13描述。重新参考图1,在一些实施例中,数据中心100被配置为允许灵活的超额订购 (oversubscription)。在一些实施例中,通过灵活超额订购,网络基础结构(例如,涉及交 换核心180的网络基础结构)的相对花费能够相对例如计算和存储的花费被降低。例如, 在数据中心100的交换核心180内的资源(例如所有资源)能够作为灵活合并资源操作, 从而与第一应用(或应用集)相关联的未充分利用的资源在例如第二应用的峰值处理期间 能由第二应用(或应用集)被动态地提供使用。因此,数据中心100的资源(或资源的子 集)能被配置为比如果资源被严格地分配为贮藏资源分配给特定应用(或应用集)能更有 效地处理超额订购。如果作为贮藏资源管理,则超额订购能够仅在贮藏资源内实施,而不是 例如跨越整个数据中心107。在一些实施例中,数据中心100中的一个或更多协议和/或组 件能够基于开放标准(例如电气和电子工程师协会(IEEE)标准、互联网工程任务组(IETF) 标准、国际信息技术标准委员会(INCITS)标准)。在一些实施例中,数据中心100能支持允许实施宽范围策略的安全模式。例如,数 据中心100可以支持无通信策略,其中应用停留在数据中心100的独立的虚拟数据中心,但 是能够共享相同的物理外围处理装置(例如计算节点100、存储节点140)和网络基础结构 (例如交换核心180)。在一些配置中,数据中心100能支持相同应用部分的多处理并且需 要几乎无限制地通信。在一些配置中,数据中心100能支持需要例如深入分组检查、全状态 防火墙/或无状态滤波器的策略。数据中心100能具有端到端应用到基于源等待时间、零负载等待时间、拥塞等待 时间和目的地等待时间定义的应用等待时间(也被称为端到端等待时间)。在一些实施例 中,源等待时间可以是例如在源外围处理装置处理期间支出的时间(例如,由软件和/或 NIC支出的时间)。类似地,目的地等待时间可以是,例如在目的地外围处理装置处理期间 支出的时间(例如,由软件和/或NIC支出的时间)。在一些实施例中,零负载延迟可以是 光速延迟加上例如数据中心180内部的处理和存储转发延迟。在一些实施例中,拥塞等待 时间可以是,例如由网络中的拥塞引起的排队延迟。数据中心100能具有低端到端等待时 间能激活应用的期望应用性能,所述应用对于例如具有实时约束和/或具有高级内部处理通信需求的应用的等待时间敏感。交换核心180的零负载等待时间能明显小于具有基于以太网跳转的互联的数据 中心核心部分明显减少。在一些实施例中,例如,交换核心180能具有从交换核心180输入 端口到交换核心180输出端口低于6微秒的零负载等待时间(除了光速等待时间)。在一 些实施例中,例如,交换核心180能具有低于12微秒的零负载等待时间(除了拥塞等待时 间和光速等待时间)。基于以太网的数据中心核心部分具有明显高的等待时间是由于,例如 不期望的拥塞级别(例如链路间的拥塞)。在基于以太网的数据中心核心部分内的拥塞可 能由于基于以太网的数据中心核心(或者与基于以太网的数据中心核心有关的管理装置) 的无能而加重,从而以不期望的方式处理拥塞。此外,在基于以太网的数据中心核心部分内 的等待时间可以是不统一的,因为核心部分在不同源_目的地对之间和/或许多存储转发 交换节点之间能具有不同数目的跳转,在该存储转发交换节点中执行数据分组的分类。相 反,交换核心180的分类在边缘部分185执行,而不在交换结构187执行,以及交换核心180 具有确定性的基于信元的交换结构187。例如,通过交换结构187的信元处理等待时间(而 不是通过交换结构187的信元路径)可以是可预知的。数据中心100的交换核心180能提供无损端到端分组传送,至少部分基于在数据 中心100内执行的流量控制机制。例如,经由交换结构187的数据(例如,与数据分组有关 的数据)传输调度在信元基础上使用请求授权机制(也被称为请求鉴权机制)被执行。特 别地,在发送信元的请求已经基于基本上授权传送(无损)被授权之后,信元被发送到交换 结构187 (例如从边缘部分185发送到交换结构187)。一旦被允许进入交换结构187,信元 在交换结构187中作为片段进行处理。交换结构187内的片段流能进一步被控制,例如这 样当交换结构187内的拥塞被检测到时,片段不丢失。涉及交换核心180内的信元和片段 处理的更多细节将在下面描述。此外,通过交换结构187来自每一个外围处理装置170的数据流能够被隔离于通 过交换结构187来自剩下的外围处理装置170的数据流。特别地,在一个或多个外围处理 装置170的数据拥塞不以不期望的方式影响通过交换核心180的交换结构187的数据流, 因为在交换核心180的边缘部分185,发送请求已经被授权工作,信元仅被发送到交换核心 180的交换结构187。例如,在第一外围处理装置170的高级别数据通信量可以基于请求授 权拥塞解决机制被处理,从而在第一外围处理装置170的高级别数据通信量将不会不利地 影响第二外围处理装置170接入到交换核心180的单独逻辑实体。换句话说,当被允许进入 交换核心180的交换结构187时,与第一外围处理装置170相关联的通信量将被隔离(例 如,从拥塞角度被隔离)于与第二外围处理装置170有关的通信量。同样,能被解析成信元和片段的交换核心180中的数据分组流能在外围处理装置 170基于精细粒度(fine grain)的流量控制机制被控制。在一些实施例中,精细粒度的流 量控制基于队列的级段被执行。精细粒度的流量控制类型能阻止(或基本上阻止)导致糟 糕的网络使用率的线头阻塞(head-of-lineblocking)。精细粒度的流量控制还能被用于降 低(或减少)交换核心180内的等待时间。在一些实施例中,精细粒度的流量控制能激活 高性能块发送磁盘通信量到外围处理装置170和从外围处理装置170接收磁盘通信量,该 外围处理装置170不可以使用以太网和因特网(IP)网络以期望的方式实现。涉及精细粒 度的流量控制的更多细节结合附图22到25被描述。
在一些实施例中,数据中心100,以及特别地,交换核心180可具有模块体系结构。 特别地,数据中心100的交换核心180能在小规模处起始实施并且能够依据需要扩展(例 如增加扩展)。交换核心180能被扩展而基本上不需要中断现有网络的连续操作和/或能 够扩展而不在交换核心180的新设备应当物理放置上受约束。在一些实施例中,交换核心180的一个或多个部分能被配置以基于虚拟专用网 ("VPN")操作。特别地,交换核心180能被划分从而一个或多个外围处理装置170能被配 置为经由交换核心180重叠或不重叠的虚拟化划分通信。交换核心180还能被分解为具有 分离或重叠子集的虚拟化资源。换句话说,交换核心180可以是能被以灵活方式划分的单 独交换。在一些实施例中,该方法能使得在数据中心100的合并交换核心180内一次扩展 联网。这与数据中心相反,数据中心可以是独立可升级网络的集合,该网络的每一个具有定 制和/或特定的资源。在一些实施例中,定义交换核心180的网络资源能被合并从而其可 以有效地使用。在一些实施例中,数据中心管理模块190能被配置为定义物理(和/或虚拟)资源 虚拟的多级别,该资源定义了数据中心100。例如,数据中心管理模块190被配置为定义虚 拟的多级别,其能体现数据中心100的应用宽度。在一些实施例中,(两个级别中的)较低 级别可以包括虚拟应用簇(VAC),其可以是分配给属于(例如,被其控制的)一个或多个实 体(例如,管理实体、财务制度)的单独应用的物理(或虚拟)资源集。(两个级别中的) 较高级别可以包括虚拟数据中心(VDC),其可以包括属于(例如,被其控制的)一个或多个 实体的VAC集。在一些实施例中,数据中心100包括多个VAC,其中每一个可以属于不同的 管理实体。图3是根据一个实施例表明与数据中心相关联的资源的逻辑组300的示意图。如 图3所示,逻辑组300包括虚拟数据中心VDC1、虚拟数据中心VDC2,和虚拟数据中心VDC3 ( — 起被称为VDC)。同样,如图3所示,每一个VDC包括虚拟应用簇VAC (例如VDC3中的VAC32)。 每一个VDC体现例如图1所示的数据中心100的数据中心的物理或虚拟部分(例如,交换核 心的部分、外围处理装置的部分和/或外围处理装置内部的虚拟机)的逻辑组。例如,VDC 内的每一个VAC体现例如计算节点的外围处理装置的逻辑组。例如,¥0(^可以体现物理数 据中心部分的逻辑组,而VAC22体现VDC1内的外围处理装置370的逻辑组。如图3所示,每 一个VDC能基于一组能被配置为例如定义在VDC内运行的应用上操作参数允许范围的策 略PY(还可以被称为商业规则)被管理。在一些实施例中,VDC能被称为逻辑资源的第一 层(tier),而VAC被称为逻辑资源的第二层。在一些实施例中,VDC(和VAC)可以被建立,从而与数据中心相关联的资源以期望 的方式通过例如实体被管理,该实体使用(例如,出租、拥有、通过其通信)数据中心的资源 和/或数据中心资源的管理者。例如,VDC1可以是与财务制度相关联的虚拟数据中心,而 VDC2可以是与电信服务提供者相关联的虚拟数据中心。因此,策略PY1能通过财务制度定 义从而VDC1 (和与VDC1相关联的物理和/或虚拟数据中心资源)能以不同于基于策略PY2 的管理VDC2 (和与VDC2有关的物理和/或虚拟数据中心资源)的方式被管理,该PY2策略 由电信服务提供商定义。在一些实施例中,一个或多个策略(例如,策略PY1W—部分)由 网络管理者建立,从而当被实施时,在与财务制度有关的VDC1和与电信服务提供商有关的 VDC2之间提供信息安全和/或防火墙。
16理(未示出)相关联(或在其中集成)。例 如,VDC2能基于策略PY2 (或策略PY2的子集)管理。在一些实施例中,数据中心管理能被配 置为,例如监视VDC内应用的实时性能和/或能被配置为自动分配或解除分配资源以满足 用于VDC内应用的相应策略。在一些实施例中,策略能被配置为基于时间阈值操作。例如, 一个或多个策略能被配置为基于例如在一天的特定时间或一周的某天期间的参数值(例 如,通信量级别)变化的周期事件(例如,可预知的周期事件)工作。在一些实施例中,策略能够基于高级别的语言被定义。因此,策略可以以相对可接 入的方式规定。策略的例子包括信息安全策略、故障隔离策略、防火墙策略、性能担保策略 (例如涉及由应用实施的服务级别的策略)、和/或其他涉及信息保护或获取的管理策略 (例如管理隔离策略)。在一些实施例中,策略能够在分组分类模块实施,该分组分类模块能被配置为例 如,分类数据分组(例如,IP分组、会话控制协议分组、媒体分组、在外围处理装置处定义的 数据分组)。例如,策略能在交换核心的边缘部分内的接入交换的分组分类模块内实施。分 类能包括任何执行的处理,从而数据分组能基于策略在数据中心(例如,数据中心的交换 核心)内被处理。在一些实施例中,策略包括一个或多个与能被执行的指令相关联的策略 条件。策略可以是,例如如果数据分组具有特定类型的网络地址(策略条件),则路由数据 分组到特定目的地(指令)的策略。分组分类能包括确定策略条件是否已经满足,从而该 指令能够被执行。例如,数据分组的一个或多个部分(例如,领域、有效载荷、地址部分、端 口部分)能基于策略内定义的策略条件被分组分类模块分析。当策略条件满足时,数据分 组能基于与策略条件相关联的指令被执行。在一些实施例中,逻辑组300的一个或多个部分能被配置为以来自多个远程位置 的“熄灯号”(“lights out”)模式操作-例如对于每个VDC的独立位置以及一个或两个 主位置来控制逻辑组300。在一些实施例中,具有例如图3中所示逻辑组的数据中心能被 配置为不需要人员物理地在数据中心侧就能操作。在一些实施例中,数据中心具有足够的 冗余资源以适应故障的发生,例如一个或多个外围处理装置(例如在VAC内的外围处理装 置)的故障、数据中心管理模块的故障、和/或交换核心组件的故障。当在数据中心内(例 如在数据中心的数据中心管理内)的监视软指示该故障已经到达预定阈值时,人员能被通 知和/或派遣为替换该故障的组件。如图3所示,VDC可以是互相独立的逻辑组。在一些实施例中,数据中心(例如图 1中所示的)的资源(例如,虚拟资源、物理资源)能被分割成相较于图3中所示的逻辑组 不同的逻辑组300(例如,逻辑组的不同层)。在一些实施例中,逻辑组300的两个或更多 VDC重叠。例如,第一 VDC能和第二 VDC共享数据中心的资源(例如,物理资源、虚拟资源)。 特别地,第一 VDC的交换核心的一部分能被与第二 VDC共享。在一些实施例中,例如,包括 在第一 VDC的VAC中的资源能被包括在第二 VDC的VAC中。在一些实施例中,一个或多个VDC能被手动定义(例如,由网络管理者手动定义) 和/或自动定义(例如基于策略自动定义)。在一些实施例中,VDC能被配置为改变(例如 动态改变)。例如,VDC(例如VDC1)能包括在一个时间周期内的特定资源集并且能包括在 一个不同时间周期内(例如相互独立的时间周期、重叠的时间周期)的不同资源集(例如 相互独立的资源集、重叠的资源集)。
17
在一些实施例中,数据中心的一个或多个部分能响应于改变、在改变之前或在改 变期间被动态提供,该改变涉及VDC (例如像VDC的虚拟机一样的VDC的部分迁移)。例如, 数据中心的交换核心能包括多个网络装置,例如网络交换机(network switches),每一个 存储包括提供服务指令的配置模板数据库,该服务指令由虚拟机提供和/或请求。当虚拟 机向和/或在连接到交换核心的网络交换机端口的服务器上迁移和/或初始化或开始时, 服务器能向网络交换机发送涉及由虚拟机提供的服务的标识符。网络装置能基于该标识符 从配置模板数据库中选择配置模板,并基于该配置模板提供端口和/或服务器。这样,供应 网络端口和/或装置的任务能在交换核心中的网络交换机中分布(例如,以自动方式分布、 不需要重定义模板分布),并能作为虚拟机动态变化或资源在外围处理装置间迁移。在一些实施例中,供应能包括多个类型或形式的装置和/或软件模块设置、配置 和/或调整。例如,供应能包括基于例如图3中所示的策略PY中一个的策略配置数据中心 内的网络装置,例如网络交换机。更特别地,例如,涉及数据中心的供应能包括下列中的一 个或多个配置网络装置以作为网络路由器或网络交换机操作;改变网络装置的路由表; 更新安全策略和/或可操作地耦接到网络装置设备的地址或标识符;选择网络装置将实施 哪一个网络协议;设置网络片段标识符例如用于网络装置端口的虚拟局域网络(“VLAN”) 标记;和/或应用接入控制列表(“ACL”)到网络装置。数据中心的一部分能被供应或配 置,从而由策略(例如,PY3)定义的规则和/或接入限制被应用(例如,通过分类处理应用) 到通过数据中心的一部分的数据分组。在一些实施例中,与数据中心相关联的虚拟资源能被供应。虚拟资源可以是例如, 实施虚拟交换(virtual switch)的软件模块、虚拟路由器,或配置为作为在物理网络和虚 拟资源之间媒介操作的虚拟网关,虚拟资源由例如服务器的主装置控制。在一些实施例中, 虚拟资源可以由主装置控制。在一些实施例中,供应可以包括建立虚拟资源和虚拟装置之 间的虚拟端口或连接。涉及数据中心中虚拟化资源的更多细节在名为“Method and Apparatusfor Determining a Network Topology During Network Provisioning(在网络供应期间 用于确定网络拓扑的方法和设备)”并于2008年12月30日提交的共同未决美国专利 ψ if No. 12/346623> ^ % "Methods and Apparatus for DistributedDynamic Netowrk Provisioning(用于动态网络供应分布的方法和设备)”并于2008年12月30日提交的 共同未决美国专利申请 No. 12/346632、名为“Methodsand Apparatus for Distributed Dynamic Network Provisioning(用于动态网络供应分布的方法和设备)”并于2008年12 月30日提交的共同未决美国专利申请No. 12/346630中阐明,所有这些申请在这里都引用 来作为参考。图4A是根据一个实施例表明可以包括在交换核心中的交换结构400的示意图。 在一些实施例中,交换结构400能被包括在例如图1中所示的交换核心180的交换核心中。 如图4A中所示,交换结构400是三级、无阻塞Clos (克洛斯)网络,并且包括第一级440、第 二级442和第三级444。第一级440包括模块412 (其每一个能被称为交换模块或信元交 换机)。第一级440的每一个模块412是电子组件和电路的集成。在一些实施例中,例如, 每一个模块是专用集成电路(ASIC)。在其他实施例中,多个模块被包含在一个单独的ASIC 上。在一些实施例中,每一个模块是离散电子组件的集成。在一些实施例中,具有多级的交换结构能被称为多级交换结构。在一些实施例中,第一级440的每一个模块412可以是信元交换机。信元交换机 能被配置为有效地重定向数据(例如,片段),因为其通过交换结构400流动。在一些实施 例中,例如,第一级的每一个模块412能被配置为基于包括在交换表中的信息重定向数据。 在一些实施例中,例如在交换结构400级内的信元的数据重定向能被称为交换(例如,数据 交换)或如果数据以交换结构400中信元的形式,则称为信元交换机。在一些实施例中,交 换结构400的模块内的交换可以基于例如与数据相关联的信息(例如,报头)。由交换结 构400的模块执行的交换可以与在边缘设备(例如,图1中所示的交换核心180的边缘部 分185内的边缘设备)内部执行的以太网类型分类不同。换句话说,在交换结构400的模 块内的交换不可以基于例如第2层以太网地址和/或第4层以太网地址。涉及基于交换表 数据交换的更多细节将结合图4B描述。在一些实施例中,每一个信元交换机还包括多个可操作地耦接到存储缓冲器(例 如,直通缓冲器(cut-through buffer))的写接口的输入端口。在一些实施例中,存储缓冲 器被包括在缓冲器模块中。类似地,输出端口集能可操作地耦接到存储缓冲器的读取接口 处。在一些实施例中,存储缓冲器可以是使用片上静态随机存取存储器(SRAM)以向所有输 入端口提供足够带宽用于每一时间周期写一个进入信元(例如,数据分组的一部分)以及 向所有输出端口提供足够带宽用于每一时间周期读取一个移出信元的共享存储缓冲器。每 一个信元交换机操作类似于能在每一时间周期之后被配置的纵横交换(crossbarswitch)。在一些实施例中,存储器缓冲器(例如,联合特定端口和/或流的存储缓冲器的几 部分)具有足够的大小(例如,长度)用于交换结构400中的模块(例如,模块412)来实 施交换(例如,信元交换机,数据交换)和/或数据(例如,信元)同步。然而,存储缓冲器 可以具有对于交换结构400内的模块(例如,模块412)不足的大小(和/或太短的处理等 待时间)来实施拥塞解决方案。例如授权/请求机制的拥塞解决方案能在例如与交换核心 相关联的边缘设备(未示出)处实施,但是不能在使用存储器缓冲器用于与拥塞解决方案 有关的数据排队的交换结构400内的模块内实施。在一些实施例中,模块(例如,模块414) 内的一个或多个存储器缓冲器具有不足够的大小(和/或太短的处理等待时间)用于例如 重组在模块处的数据(例如,信元)。涉及共享存储缓冲器的更多细节将结合附图15和名 为“Methods and Apparatus Related to a SharedMemory Buffer for Variable-Sized Cells (涉及可变化大小信元的共享存储缓冲器的方法和装置)”并于2009年月31日提交 的共同未决美国专利申请No. 12/415517中描述,该专利申请在这里完全被引用作为参考。在替代实施例中,第一级的每一个模块可以是具有输入口和输出口的纵横交换 机。在纵横交换机内的多个交换将每一个输入杆(bar)连接到每一个输出杆。当纵横交换 机内的交换在“开启”位置时,输入可操作地耦接到输出且数据可以流动。作为替代,当纵 横交换内的交换位于“关闭”位置时,输入不被可操作地耦接到输出且数据不流动。这样, 纵横交换机内的交换控制哪一个输入杆可操作地耦接到输出杆。第一级440的每一个模块412包括输入端口 460集,被配置为当数据进入交换结 构400时接收数据。在该实施例中,第一级440的每一个模块412包括相同数目的输入端 Π 460。类似于第一级440,交换结构400的第二级442包括模块414。第二级442的模块414结构上类似于第一级440的模块412。第二级442的每一个模块414通过数据路径420 可操作地耦接到第一级440的每一个模块。在第一级440的每一个模块和第二级442的每 一个模块414之间的每一条数据路径420被配置为促使数据从第一级440的模块412向第 二级442的模块414传送。在第一级440的模块412和第二级442的模块414之间的数据路径420可以以任 何方式构建配置为促使数据从第一级440的模块412向第二级442的模块414以期望的方 式(例如,以有效的方式)传送。在一些实施例中,例如,数据路径是模块间的光连接器。在 其它实施例中,数据路径在中平面内。这样的中平面可以类似于这里以更细节的方式描述 的。这样的中平面能够有效地用于将第二级的每一个模块连接到第一级的每一个模块。在 另外的实施例中,模块被包含在单独的芯片包中,并且该数据路径是电子轨迹。在一些实施例中,交换结构400是无阻塞Clos (克洛斯)网络。这样,交换结构400 的第二级442的模块414数目基于第一级440的每一个模块412的输入端口 460的数目而 变化。在可重排列无阻塞Clos (克洛斯)网络(例如,Benes (巴内斯)网络)中,第二级 442的模块414数目大于或等于第一级440的每一个模块412的输入端口 460的数目。这 样,如果η是第一级440的每一个模块412的输入端口 460的数目并且m是第二级442的 模块414的数目,m彡η。在一些实施例中,例如,第一级的每一个模块有5个输入端口。这 样,第二级具有至少5个模块。第一级的所有5个模块通过数据路径可操作地耦接到第二 级的所有5个模块。换句话说,第一级的每个模块能向第二级的任一模块发送数据。交换结构400的第三级444包括模块416。第三级444的模块416结构上类似于 第一级440的模块412。第三级444的模块416的数目等于第一级440的模块412的数目。 第三级444的每一个模块416包括输出端口 462,输出端口被配置为允许数据从交换结构 400送出。第三级444的每一个模块416包括相同数目的输出端口 462。此外,第三级444 的每一个模块416的输出端口 462的数目等于第一级440的每一个模块412的输入端口 460数目。第三级444的每一个模块416通过数据路径424被连接到第二级442的每一个模 块414。在第二级442的模块414和第三级444的模块416之间的数据路径424被配置为 促使数据从第二级442的模块414向第三级444的模块416传送。在第二级442的模块414和第三级444的模块416之间的数据路径424能够以任 意方式被构建以配置为有效地促使数据从第二级442的模块414向第三级444的模块416 传送。在一些实施例中,例如,数据路径是在模块间的光连接器。在其他实施例中,数据路 径是在中平面内的。这样的中平面类似于这里详细描述的。这样的中平面能够有效地用于 将第二级的每一个模块连接到第三级的每一个模块。在另一个实施例中,模块被包含在单 独的芯片包中且数据路径是电子轨迹。图4Β是根据一个实施例表明能被存储在如图4Α所示模块的存储器498中的交换 表49的示意图。例如图4Α所示第二级模块414中一个的模块(例如交换模块)能被配置 为基于例如图4Β所示交换表49的交换表执行信元交换机。例如,交换表49 (或类似配置 的交换表)能通过(和/或被包括在内)一级模块中的模块被使用于例如,确定信元能否 经由另一级模块中的模块被发送到其目的地。在一些实施例中,信元经由该模块能被发送 到其目的地的模块被称为交换目的地。特别地,交换目的地可以基于包括例如信元的目的
20地信息(其能够在交换结构400之外被确定)在交换表49中查找。交换表49包括二进制值(例如,二进制值“ 1 ”,二进制值“ 0 ”),其表示由目的地值 DT1到DTk(在47行中示出)代表的一个或多个目的地能否通过由模块值SM1到SMm(在48 列中示出)表示的一个或多个模块(其能够位于邻级)到达。特别地,当在包括二进制值 的列中的目的地(例如,目的地DT1)能经由在与列交叉的行中的模块(例如,模块SM2)到 达时,交换表49包括二进制值“1”。当在包括二进制值的列中的目的地不能经由在与列交 叉的行中的模块到达时,交换表49包括二进制值“0”。例如,在46处每一个条目中的二进 制值“1”表示如果模块(包括交换表49)向由模块值SM1到SM3表示的模块发送数据,则数 据最终能被发送到由目的地值DT3代表的目的地。在一些实施例中,模块能被配置为随机 选择由模块值SM1到SM3 (其是交换目的地)表示的模块组中的一个模块,并且能够将数据 发送到所选择的模块,从而数据能被发送到由目的地值DT3表示的目的地。在一些实施例中,目的地值47可以是与例如交换核心的边缘设备(例如,接入交 换机)、与边缘设备通信的服务器等等相关联的目的地端口值。在一些实施例中,目的地值 (其对应于被包括在交换表49中的至少一个目的地值47)可以基于例如被包括在信元中的 分组分类与信元(例如,被包括在信元报头)相关联。因此,与信元相关联的目的地值能通 过模块被用于使用交换表49查询交换目的地。分组分类能在交换核心的边缘设备(例如, 接入交换机)被执行。在一些实施例中,存储器(和这样的交换表49)能被包括在一个或多个模块的模 块系统中。在一些实施例中,交换表49能与模块系统(或多个系统)的多于一个输入端口 和/或多于一个输出端口相关联。涉及模块系统的更多细节将结合图7被描述。图5A是根据一个实施例表明交换结构系统500的示意图。交换结构系统500包 括多个输入/输出模块502,第一电缆集540、第二电缆集542和交换结构575。交换结构 575包括部署在外壳570或机架内的第一交换结构部分571,以及部署在外壳572和机架内 的第二交换结构部分573。输入/输出模块502 (其可以是例如边缘设备)被配置为向和/或从第一交换结 构部分571和/或第二交换结构部分573发送数据和/或接收数据。此外,每一个输入/ 输出模块502包括解析功能、分类功能、转发功能和/或排队和调度功能。这样,分组解析、 分组分类、分组转发和分组排队及调度都在数据分组进入第一交换结构部分571和/或第 二交换结构部分573之前发生。因此,这些功能不需要在交换结构575的每一级执行,并且 交换结构部分571,573的每个模块(这里进一步详细描述)不需要包括执行这些功能的能 力。这可以减少交换结构部分571,573每一个模块的花费、功率损耗、冷却要求和/或物理 范围需要。这还能减少与交换结构相关联的等待时间。在一些实施例中,例如,端到端等待 时间(即通过交换结构从输入/输出模块向另一个输入/输出模块发送数据所需要的时 间)能比使用以太网协议的交换结构系统的端到端等待时间更低。在一些实施例中,交换 结构部分571,573的吞吐量仅由交换结构系统500的连接密度而不是功率和/或热量限制 来约束。在一些实施例中,输入/输出模块502 (和/或与输入/输出模块502相关联的功 能)能被包括在,例如,如图1所示的交换核心的边缘部分内的边缘设备中。解析功能、分类 功能、转发功能和排队及调度功能可以类似于在名为“Methods and ApparatusRelated to Packet Classification Associated with a Multi-Stage Switch (分组分类的方法和设备)”并于2008年9月30日提交的美国专利申请序号12/242168和名 为“Methods and Apparatus for Packet ClassificationBased on Policy Vectors (基 于策略矢量的分组分类的方法和设备)”并于2008年9月30日提交的美国专利申请序号 12/242172中公开的功能执行,这两者在这里都完全引用作为参考。每一个输入/输出模块502被配置为将第一电缆集540电缆的第一端连接到第二 电缆集542电缆的第一端。每一根电缆540在输入/输出模块502和第一交换结构部分 571之间部署。类似地,每一根电缆542在输入/输出模块502和第二交换结构部分573之 间部署。使用第一电缆集540和第二电缆集542,每一个输入/输出模块502能分别向和/ 或从第一交换结构部分571和/或第二交换结构部分573发送数据和/或接收数据。第一电缆集540和第二电缆集542能由适于在输入/输出模块502和交换结构部 分571,573之间传送数据的任意材料组成。在一些实施例中,例如,每一根电缆540,542由 多根光纤组成。在这样的实施例中,每一根电缆540,542可以具有12根发送和12根接收 光纤。每一根电缆540,542的12根发送光纤可以包括8根用于发送数据的光纤、1根用于 发送控制信号的光纤,以及3根用于扩展数据容量和/或用于冗余的光纤。类似地,每一根 电缆540,542的12根接收光纤可以包括8根用于发送数据的光纤、1根用于发送控制信号 的光纤,以及3根用于扩展数据容量和/或用于冗余的光纤。在其他实施例中,任意数目的 光纤都可以被包含在每一根电缆中。第一交换结构部分571和第二交换结构部分573 —起用于冗余和/或更大的容 量。在其他实施例中,仅有一个交换结构部分被使用。仍在其他实施例中,超过2个交换结 构部分被用于增加的冗余和/或更大的容量。例如,4个交换结构部分能够可操作地通过例 如4根电缆耦接到每一个输入/输入模块。第二交换结构部分573在结构上和功能上类似 于第一交换结构571。因此,这里仅详细描述第一交换结构部分571。图5B是根据一个实施例表明输入/输出模块502的示意图。如图5B所示,输入 /输出模块502包括分类模块596、处理模块597,和存储器598。分类模块596能被配置为 执行数据分类,例如分组的以太网类型分类。数据处理的各种类型能在处理模块597执行。例如,数据,例如分组能在处理模块 597处被解析成信元。在一些实施例中,拥塞解决方案能在处理模块597处实施和/或经由 交换结构(例如,图4A所示的交换结构400)的数据(例如信元)传输调度能在处理模块 597处执行。处理模块597还能被配置为将信息(例如,报头信息、目的地信息、源信息)串 联成例如信元净负荷,信元净负荷能被用于通过交换结构(例如,图4A所示交换结构400) 交换信元(基于如图4B所示的交换表)。当数据处理在分类模块596和/或处理模块597处执行时,数据(例如分组、信 元)的一个或多个部分能被存储于(例如,排队)存储器598。例如,当处理模块597执行 涉及拥塞解决方案的处理时,被解析成信元的数据能在存储器598排队。因此,存储器598 可以具有足够的大小以实施如附图16A到附图21所述的拥塞解决方案。图6更详细地显示了图5A的包括第一交换结构部分571的交换结构系统500的 一部分。第一交换结构部分571包括接口卡510,其与第一交换结构部分571的第一级和 第三级相关联;接口卡516,其与第一交换结构部分571的第二级相关联;以及中平面550。 在一些实施例中第一交换结构部分571包括8个接口卡510,其与第一交换结构的第一级
22和第三级相关联,以及8个接口卡516,其与第一交换结构的第二级相关联。在其他实施例 中,可以使用与第一交换结构第一级和第三级相关联的接口卡的不同数目和/或与第一交 换结构第二级相关联的接口卡的不同数目。如图6所示,每一个输入/输出模块502可操作地经由第一电缆集540的一根电缆 耦接到接口卡510。在一些实施例中,例如8个接口卡510的每一个可操作地耦接到16个 输入/输出模块502,如这里更详细描述的。这样,第一交换结构部分571能被耦接到128 个输入/输出模块(16X8 = 128)。128个输入/输出模块502的每一个能向和从第一交 换结构部分571发送数据和接收数据。每一个接口卡510经由中平面550被连接到每一个接口卡516。这样,每一个接口 卡510能向和从每一个接口卡516发送数据和接收数据,如这里更详细描述的。使用中平
面550将接口卡510连接到接口卡516减少了用于连接第一交换结构部分571级的电缆数目。图7更详细地显示了第一接口卡510’、中平面550,以及第一接口卡516’。接口卡 510’与第一交换结构部分571的第一级和第三级相关联,以及接口卡516’与第一交换结构 部分571的第二级相关联。每一个接口卡510在结构上和功能上与第一接口卡510’类似。 类似地,每一个接口卡516在结构上和功能上与第一接口卡516’类似。第一接口卡510’包括多个电缆连接器端口 560、第一模块系统512、第二模块系 统514,以及多个中平面连接器端口 562。例如,图7显示了具有16个电缆连接器端口 560 和8个中平面连接器端口 562的第一接口卡510’。第一接口卡510’的每一个电缆连接器 端口 560被配置为接收来自第一电缆集540的电缆的第二端。这样,如上所述,8个接口卡 510每一个上的16个电缆连接器端口 560被用于接收128根电缆(16X8= 128)。虽然在 图7中所示具有16个电缆连接器端口 560,而在其他实施例中,任意数目的电缆连接器端口 都能被使用,从而第一电缆集的每一根电缆都能通过第一交换结构中的电缆连接器端口被 接收。例如,如果16个接口卡都被使用,则每一个接口卡能包括8个电缆连接器端口。第一接口卡510’的第一模块系统512和第二模块系统514每一个包括第一交换 结构部分571第一级的模块和第一交换结构部分571第三级的模块。在一些实施例中,16 个电缆连接器端口 560的8个电缆连接器端口可操作地耦接到第一模块系统512以及16 个电缆连接器端口 560剩下的8个电缆连接器端口可操作地耦接到第二模块系统514。第 一模块系统512和第二模块系统514都能可操作地耦接到接口卡510’的8个中平面连接 器端口 562的每一个。第一接口卡510’的第一模块系统512和第二模块系统514是ASIC。第一模块系 统512和第二模块系统514是相同ASIC的实例。这样,由于可以生产单独ASIC的多个实 例,制造成本可以降低。此外,第一交换结构部分571第一级的模块和第一交换结构第三级 的模块都被包括在每一个ASIC上。在一些实施例中,8个中平面连接器端口 562中的每一个中平面连接器端口有两 倍于16个电缆连接器端口 560中每一个电缆连接器端口的数据容量。这样,8个中平面连 接器端口 562每一个具有16数据发送和16数据接收连接,而不是具有8数据发送和8数 据接收连接。这样,8个中平面连接器端口 562的带宽等于16个电缆连接器端口 560的带 宽。在其他实施例中,每一个中平面连接器端口具有32数据发送和32数据接收连接。在
23这样的实施例中,每一个电缆连接器端口具有16数据发送和16数据接收连接。第一接口卡510’的8个中平面连接器端口 562被连接到中平面550。中平面550 被配置为将与第一交换结构部分571第一级和第三级相关联的每一个接口卡510连接到与 第一交换结构部分571第二级相关联的每一个接口卡516。这样,中平面550确保每一个 接口卡510的每一个中平面连接器端口 562被连接到不同接口卡516的中平面连接器端口 580。换句话说,没有接口卡510的两个相同的中平面连接器端口可操作地耦接到相同的接 口卡516。这样,中平面550允许每一个接口卡510向和从8个接口卡516中的任意一个发 送数据和接收数据。虽然图7显示了第一接口卡510’、中平面550和第一接口卡516’的示意图,而在 一些实施例中,第一接口卡510、中平面550和第一接口卡516是物理位置分别类似于水平 位置接口卡620、中平面640以及垂直位置接口卡630,如图5_7所示并在这里进一步详细 描述。这样,与第一级相关联的模块和与第三级相关联的模块(均在接口卡510上)位于 中平面的一边,而与第二级相关联的模块(在接口卡516上)位于中平面550的对边。这 样的拓扑允许与第一级相关联的每一个模块可操作地耦接到与第二级相关的每一个模块, 以及与第二级相关的每一个模块可操作地耦接到与第三级相关的每一个模块。第一接口卡516’包括多个中平面连接器端口 580、第一模块系统518,和第二模块 系统519。多个中平面连接器端口 580被配置经由中平面550向和从任意接口卡510发送 数据和接收数据。在一些实施例中,第一接口卡516’包括8个中平面连接器端口 580。第一接口卡516’的第一模块系统518和第二模块系统519可操作地耦接到第一 接口卡516’的每一个中平面连接器端口 580。这样,通过中平面550,与第一交换结构部分 571第一级和第三级相关联的每一个模块系统512、514可操作地耦接到与第一交换结构部 分571第二级相关联的每一个模块系统518,519。换句话说,与第一交换结构部分571第一 级和第三级相关的每一个模块系统512,514能向和从与第一交换结构部分571第二级相关 联的每一个模块系统518,519发送数据和接收数据,反之亦然。特别地,与模块系统512或 514内第一级相关联的模块能向与模块系统518或519内第二级相关联的模块发送数据。 类似地,与模块系统518或519内第二级相关联的模块能向与模块系统512或514内第三 级相关联的模块发送数据。在其他实施例中,与第三级相关联的模块能向与第二级相关联 的模块发送数据和/或控制信号,以及与第二级相关联的模块能向与第一级相关联的模块 发送数据和/或控制信号。在第一交换结构部分571第一级的每一个模块具有8个输入(即,每一个接口卡 510两个模块)的实施例中,第一交换结构部分571第二级具有至少8个模块用于第一交换 结构部分571以维持可重新安排的无阻塞。这样,第一交换结构部分571的第二级具有至 少8个模块并被可重新安排无阻塞。在一些实施例中,两倍于第二级的模块数目被用于促 使交换结构系统500从3级交换结构扩展为5级交换结构,如这里进一步详细描述的。在 这样的5级交换结构中,第二级支持2倍于在交换结构系统500的三级交换结构中第二级 的交换吞吐量。例如,在一些实施例中,第二级的16个模块能被用于促使交换结构系统500 将来从三级交换结构扩展为5级交换结构。第一接口卡516’的第一模块系统518和第二模块系统519是ASIC。第一模块系 统518和第二模块系统519是相同ASIC的实例。此外,在一些实施例中,与第一交换结构
24部分571第二级相关联的第一模块系统518和第二模块系统519是同样用于与第一交换结 构部分571第一级和第三级相关联的第一接口卡510’的第一模块系统512和第二模块系 统514的ASIC的实例。这样,因为单独ASIC的多个实例能被用于第一交换结构部分571 的每一个模块系统,制作开销能降低。在使用中,数据经由第一交换结构部分571从第一输入/输出模块502被传送到 第二输入/输出模块502。第一输入/输出模块502经由第一电缆集540的电缆向第一交 换结构部分571发送数据。数据经过接口卡510’中的一个的电缆连接器端口 560并被发 送至模块系统512或514内第一级模块。在模块系统512或514内的第一级模块通过接口卡510’的中平面中的一个连接 器端口 562、中平面550以及至接口卡516’中的一个发送数据,而将数据转发至模块系统 518或519内的第二级模块。数据通过接口卡516’的中平面连接器端口 580进入接口卡 516’。然后数据被发送到模块系统518或519内的第二级模块。第二级模块确定第二输/输出模块502怎样经由中平面550连接及重定向数据回 接口卡510’。因为每一个模块系统518或519可操作地耦接到接口卡510’上的每一个模 块系统512和514,模块系统518或519内的第二级模块能确定模块系统512或514内的哪 一个第三级模块被可操作地耦接到第二输入/输出模块并相应地发送数据。数据被发送到接口卡510’上的模块系统512,514内的第三级模块。第三级模块 然后经由第一电缆集540的电缆通过电缆连接器端口 560向输/输出模块502的第二输入 /输出模块发送数据。在其他实施例中,代替第一级模块发送数据到单独的第二级模块,第一级模块将 数据分割为独立的部分(例如,信元)并向每一个第二级模块转发数据的一部分,第一级模 块被可操作地耦接到第二级模块(例如,在该实施例中,每一个第二级模块接收数据的一 部分)。每一个第二级模块然后确定第二输入/输出模块怎样被连接并重定向数据的几部 分回到单独的第三级模块。第三级模块然后重建接收的数据的几部分并向第二输入/输出 模块发送数据。图8-10显示了根据一个实施例用于容纳交换结构(例如如上所述的第一交换结 构部分571)的外壳600 (即机架)。外壳600包括外套610、中平面640、水平位置的接口卡 620和垂直位置的接口卡630。图8显示了外套610的前视图,其中能看到部署在外套610 内的8个水平位置的接口卡620。图9显示了外套610的后视图,其中能看到部署在外套 610内的8个垂直位置的接口卡630。每一个水平位置的接口卡620经由中平面640可操作地耦接到每一个垂直位置的 接口卡630 (参见图10)。中平面640包括前表面642、后表面644和连接前表面642和后 表面644的插孔(receptacle)阵列650,如下所述。如图10所示,水平位置的接口卡620 包括多个连接到中平面640的前表面642上插孔的中平面连接器端口 622。类似地,垂直 位置的接口卡630包括多个连接到中平面640的后表面644上插孔的中平面连接器632。 以这样的方式,由每一个水平位置的接口卡620定义的平面与由每一个垂直位置的接口卡 630定义的平面相交。中平面640的插孔650可操作地耦接每一个水平位置的接口卡620到每一个垂直 位置的接口卡630。插孔650促使水平位置接口卡620和垂直位置接口卡630间的信号传输。在一些实施例中,例如,插孔650可以是配置为接收放置在接口卡620,630的中平面连 接器端口 622,632上的多销钉式连接器(multiple pin-connector)的多销钉式连接器、允 许水平位置接口卡620直接与垂直位置接口卡630连接的空管、和/或配置为可操作地耦 接两个接口卡的任意其他装置。使用这样的中平面640,每一个水平位置接口卡620可操作 地耦接到每一个垂直位置接口卡630,而不需要在中平面上的路由连接(例如,电子轨迹)。图10显示了包括位于8X8阵列中的全部64个插孔650的中平面。在这样的实 施例中,8个水平位置接口卡620能够可操作地耦接到8个垂直位置接口卡630。在其他实 施例中,任意数目的插孔能被包括在中平面中和/或任意数目的水平位置接口卡能通过中 平面被耦接到任意数目的垂直位置接口卡。如果第一交换结构部分571位于外壳600中,例如,与第一交换结构部分571的第 一级和第三级相关联的每一个接口卡510可以是水平位置以及与第一交换结构部分571第 二级相关联的每一个接口卡516可以是垂直位置。这样,与第一交换结构部分571的第一 级和第三级相关联的每一个接口卡510可以通过中平面640容易地被连接到与第一交换结 构部分571第二级相关联的每一个接口卡516。在其他实施例中,与第一交换结构部分第一 级和第三级相关联的每一个接口卡是垂直位置而与第一交换结构部分第二级相关联的每 一个接口卡是水平位置。在另一个实施例中,与第一交换结构的第一级和第三级相关联的 每一个接口卡可以是相对外壳的任意角度放置,并且与第一交换结构的第二级相关联的每 一个接口卡可以是正交于与第一交换结构部分第一级和第三级相关联的接口卡相对于外 壳的角度的位置。图11和12是根据一个实施例表明分别在第一配置和第二配置中的交换结构1100 的示意图。交换结构1100包括多个交换结构系统1108。每一个交换结构系统1108包括多个输入/输出模块1102、第一电缆集1140、第二 电缆集1142、部署在外壳1170内的第一交换结构部分1171、以及部署在外壳1172内的第 二交换结构部分1173。每一个交换结构系统1108在结构上和功能上类似。此外,输入/输 出模块1102、第一电缆集1140和第二电缆集1142在结构上和功能上分别类似于输入/输 出模块202、第一电缆集240和第二电缆集242。当交换结构1100在第一配置中时,每一个交换结构系统1108的第一交换结构部 分1171和第二交换结构部分1173功能类似于上述的第一交换结构部分571和第二交换结 构部分573。这样,当交换结构1100在第一配置中时,第一交换结构部分1171和第二交换 结构部分1173作为独立存在的三级交换结构操作。因此,当交换结构1100在第一配置中 时,每一个交换结构系统1108作为独立存在的交换结构系统动作并不可操作地耦接到其 它交换结构系统1108。在第二配置(图12)中,交换结构1100进一步包括第三电缆集1144和多个连接交 换结构1191,每一个都位于外壳1190内。外壳1190可以类似于上面详细描述的外壳600。 每一个交换结构系统1108的每一个交换结构部分1171、1173经由第三电缆集1144可操作 地耦接到每一个连接交换结构1191。这样,当交换结构1100在第二配置中时,每一个交换 结构系统1108经由连接交换结构1191可操作地耦接到其他交换结构系统1108。因此,在 第二配置中的交换结构1100是5级Clos (克洛斯)网络。第三电缆集1144能够由适用于在交换结构部分1171、1173和连接交换结构1191之间传送数据的任意材料组成。在一些实施例中,例如,每一根电缆1144由多根光纤组成。 在这样的实施例中,每一根电缆1144可以具有36根发送和36接收光纤。每一根电缆1144 的36根发送光纤可以包括32根用于发送数据的光纤,以及4根用于扩展数据容量和/或 用于冗余的光纤。类似地,每一根电缆1144的36根接收光纤包括32根用于发送数据的光 纤,以及4根用于扩展数据容量和/或用于冗余的光纤。在其他实施例中,每一根电缆中能 包含任意数目的光纤。通过使用具有增加数目光纤的电缆,使用的电缆数目能有效地减少。如上面所讨论的,流量控制能在例如数据中心的交换结构内部执行。图13和14 以及伴随的描述,是表明在交换结构内部的流量控制的示意图。特别地,图13是根据一个 实施例表明与交换结构1300相关联的数据流量的示意图。在图13中所示的交换结构1300 类似于在图4A中所示的交换结构400,并且能在例如图1中所示的数据中心100的数据中 心中实施。在该实施例中,交换结构1300是3级无阻塞Clos(克洛斯)网络并包括第一 级1340、第二级1342,和第三级1344。第一级1340包括模块1312,第二级1342包括模块 1314,以及第三级1344包括模块1316。在一些实施例中,交换结构1300可以是信元交换机 的交换结构以及第一级1340的每一个模块1312可以是信元交换机。第一级1340的每一 个模块1312包括输入端口集1360,被配置为当数据进入交换结构1300时接收数据。第三 级1344的每一个模块1316包括输出端口 1362,被配置为允许数据离开交换结构1300。第 三级1344的每一个模块1316包括相同数目的输出端口 1362。第二级1342的每一个模块1314通过单向数据路径1320可操作地耦接到第一级 1340的每一个模块。在第一级1340的每一个模块和第二级1342的每一个模块1314之间 的每一条单向数据路径1320被配置为促使数据从第一级1340的模块1312传送到第二级 1342的模块1314。因为数据路径1320是单向的,其并不促使数据从第二级1342的模块 1314传送到第一级1340的模块1312。这样的单向数据路径1320相对于类似的双向数据 路径花费较少、使用较少的数据连接并且更易于实施。第三级1344的每一个模块1316通过单向数据路径1324可操作地耦接到第二级 1342的每一个模块1314。在第二级1342的模块1314和第三级1344的模块1316之间的每 一条单向数据路径1324被配置为促使数据从第二级1342的模块1314传送到第三级1344 的模块1316。因为数据路径1324是单向的,其并不促使数据从第三级1344的模块1316传 送到第二级1344的模块1314。如上所述,这样的单向数据路径1324相对于类似的双向数 据路径花费较少,使用较少的区域。在第一级1340的模块1312和第二级1342的模块1314之间的单向数据路径1320 和/或在第二级1342的模块1314和第三级1344的模块1316之间的单向数据路径可以以 任何方式构造,被配置为有效促使数据传送。在一些实施例中,例如,数据路径是模块间的 光连接器。在其他实施例中,数据路径在中平面连接器内。这样的中平面连接器可以是类 似于如图8到10中所述的中平面连接器。这样的中平面连接器可以有效地用于将第二级 的每一个模块连接到第三级的每一个模块。在其他实施例中,模块被包含在单独的芯片包 以及单向数据路径是电子轨迹。第一级1340的每一个模块1312是相对于第三级1344的相应模块1316物理上接 近的。换句话说,第一级1340的每一个模块1312与第三级1344的模块1316成对。例如, 在一些实施例中,第一级1340的每一个模块1312与第三级1344的模块1316在相同的芯片包内。双向流量控制路径1322在第一级1340的每一个模块1312和第三级1344的相应 模块1316之间存在。流量控制路径1322允许第一级1340的模块1312向第三级1344的 相应模块1316发送流量控制指示符,反之亦然。如这里进一步详细描述的,这允许交换结 构任意级的任意模块向其发送数据的模块发送流量控制指示符。在一些实施例中,双向流 量控制路径1322由两条单独的单向流量控制路径构建。两条单独的单向流量控制路径允 许流量控制指示符在第一级1340的模块1312和第三级1344的模块1316之间通过。图14是根据一个实施例表明在图13中所示的交换结构1300中流量控制的示意 图。特别地,示意图表明图13所示的交换结构1300第一行1310的详细视图。第一行包括 第一级1340的模块1312,,第二级1342的模块1314,,第三级1344的模块1316,。第一级 1340的模块1312,包括处理器1330和存储器1332。处理器1330被配置为控制接收和发 送数据。存储器1332被配置为当第二级1342的模块1314’还不能接收数据和/或第一级 1340的模块1312’还不能发送数据时缓冲数据。在一些实施例中,例如,如果第二级1342 的模块1314,已经向第一级1340的模块1312’发送了中止指示符,则第一级1340的模块 1312’缓冲数据直到第二级1342的模块1314’能接收数据。类似地,在一些实施例中,当模 块1312’在基本上同时接收多个数据信号(例如从多个输入端口)时,第一级1340的模块 1312’能缓冲数据。在这样的实施例中,如果仅有一个单独的数据信号能由模块1312’在给 定的时间(例如,每一个时钟周期)输出,则其他接收的数据信号能被缓冲。类似于第一级 1340的模块1312’,交换结构1300内的每一个模块包括处理器和存储器。第一级1340的模块1312’和与其配对的第三级1344的模块1316’都被包括在第 一芯片包1326上。这允许在第一级1340的模块1312’和第三级1344的模块1316’之间 的流量控制路径1322容易地构建。例如,流量控制路径1322可以是在第一级1340的模块 1312’和第三级的模块1316’之间第一芯片包1326上的轨迹。在其他实施例中,第一级的 模块和第三级的模块在独立的芯片包上但是彼此非常接近,其仍然允许在其之间的流量控 制路径不需要使用大量的配线和/或长轨迹就能被建立。第二级1342的模块1314,被包括在第二芯片包1328上。在第一级1340的模 块1312’和第二级1342的模块1314’之间的单向数据路径1320,和在第二级1342的模块 1314’和第三级1344的模块1316’之间的单向数据路径1324可操作地将第一芯片包1326 连接到第二芯片包1328。虽然未在图14中示出,但是第一级1340的模块1312’和第三级 1344的模块1316’还通过单向数据路径被连接到第二级的每一个模块。如上所述,单向数 据路径能以任何方式构造,被配置为有效促使数据在模块间传送。流量控制路径1322和单向数据路径1320,1324能有效地被用于在模块1312’, 1314,,1316,之间发送流量控制指示符。例如,如果第一级1340的模块1312正向第二级 1342的模块1314’发送数据且在第二级1342的模块1314’的缓冲器中的数据量超过了阈 值,则第二级1342的模块1314’能经由在第二级1342的模块1314’和第三级1344的模块 1316’之间的单向数据路径1324向第三级1344的模块1316’发送流量控制指示符。该流 量控制指示符触发第三级1344的模块1316’经由流量控制路径1322向第一级1340的模块 1312’发送流量控制指示符。从第三级1344的模块1316,向第一级1340的模块1312’发 送的流量控制指示符引发第一级1340的模块1312’停止向第二级1342的模块1314’发送 数据。类似地,经由第三级1344的模块1316,从第二级1342的模块1314,向第一级1340
28的模块1312’发送的流量控制指示符,请求从第一级1340的模块1312’向第二级1342的 模块1314’发送数据(即,继续发送数据)。在其之间具有芯片上双向流量控制路径的相同芯片包内的两级交换结构最小化 单独芯片包间的连接,该单独芯片包体积大和/或需要大体积。此外,在其之间具有芯片上 双向流量控制路径的相同包内的两级,当提供在发送模块和接收模块之间的流量控制通信 能力时,允许在芯片包之间的数据路径为单向。涉及在交换结构内的双向流量控制路径的 更多细节在名为“Flow Controlin a Switch Fabric (在交换结构中的流量控制)”并于 2008年12月29日提交的共同未决美国专利申请号12/345490中被描述,其在这里完全被 引用作为参考。如结合图13和14所述,缓冲器模块能被包括在交换结构级中的模块内。涉及能 被包括在例如交换结构级内的缓冲器模块的更多细节将结合图15被描述。图15是根据一个实施例表明缓冲器模块1500的示意图。如图15所示,数据信 号Stl到Sm在缓冲器模块1500处在缓冲器模块1500的输入侧1580上被接收(例如,通过 缓冲器模块1500的输入端口 1562)。在缓冲器模块1500处理后,数据信号Stl到Sm从缓冲 器模块1500的输出侧1585上的缓冲器模块1500 (例如,通过缓冲器模块1500的输出端口 1564)发送。数据信号Stl到Sm中的每一个能定义信道(还能被称为数据信道)。数据信号 S0到Sm能共同被称为数据信号1560。虽然缓冲器模块1500的输入侧1580和缓冲器模块 1500的输出侧1585显示在缓冲器模块1500的不同物理侧,缓冲器模块1500的输入侧1580 和缓冲器模块1500的输出侧1585被逻辑定义且不排除缓冲器模块1500的各种物理配置。 例如,缓冲器模块1500的一个或多个输入端口 1562和/或一个或多个输出端口 1564能物 理地位于缓冲器模块1500的任意侧(和/或相同侧)。缓冲器模块1500能被配置为处理数据信号1560从而通过缓冲器模块1500的数 据信号1560处理等待时间能相对小且基本不变。因此,由于数据信号1560通过缓冲器模块 1500被处理,数据信号1560的比特率能基本不变。例如,通过缓冲器模块1500的数据信号 S2处理等待时间可以是基本不变的时钟周期数目(例如,单个时钟周期,几个时钟周期)。 因此,数据信号S2可以是通过多个时钟周期的时间偏移,以及被发送到缓冲器模块1500输 入侧1580的数据信号S2的比特率将基本上和从缓冲器模块1500的输出侧1585发送的数 据信号S2的比特率相同。缓冲器模块1500能被配置为响应于流量控制信号1570的一个或多个部分修改一 个或多个数据信号1560的比特率。例如,缓冲器模块1500能被配置为响应于流量控制信 号1570的一部分来延迟在缓冲器模块1500接收的数据信号S2,流量控制信号1570指示数 据信号S2应当被延迟特定的时间周期。特别地,缓冲器模块1500能被配置为存储(例如, 持有)数据信号S2的一个或多个部分直到缓冲器模块1500接收指示数据信号S2应当不再 被延迟的指示符(例如,流量控制信号1570的一部分)。因此,发送到缓冲器模块1500的 输入侧1580的数据信号S2的比特率与从缓冲器模块1500的输出侧1585发出的数据信号 S2的比特率不同(例如,基本上不同)。在一些实施例中,在缓冲器模块1500的处理能基于例如可变尺寸的信元片段在 存储体执行。例如,在一些实施例中,信元的片段能通过不同的被包括在缓冲器模块1500 内的存储体(例如,静态随机接入存储器(SRAM)存储体)在分配处理期间被处理。存储体
29能共同定义共享存储缓冲器。在一些实施例中,数据信号的片段能在分配处理期间以预定 义方式(例如以根据预定义算法的预定义模式)被分配到存储体。例如,在一些实施例中, 数据信号1560的引导片段能在缓冲器模块1500的几部分(例如,缓冲器模块1500的特定 存储体)进行处理,该部分与在缓冲器模块1500内处理的跟踪段(trailingsegments)的 几部分不同。在一些实施例中,数据信号1560的段能以特定的顺序处理。在一些实施例中, 例如,数据信号1560的每一个片段可以基于其在信元内的各自的位置进行处理。在信元片 段已经通过共享的存储缓冲器被处理之后,信元段能被排序并在重组的处理期间从缓冲器 模块1500发送。在一些实施例中,例如,缓冲器模块1500的读取多路复用模块能被配置为重组与 数据信号1560相关联的片段并从缓冲器模块1500发送(例如,传送)数据信号1560。重 组处理能够基于预定义的用于向缓冲器模块1500的存储体分配片段的方法论被定义。例 如,读取多路技术模块能被配置为以轮询方式(因为片段是以轮询方式写入的)从引导存 储体第一读取与信元相关联的引导片段,以及然后从跟踪存储体以轮询方式读取与信元有 关的跟踪片段。因此,非常少的控制信号,如果有的话,需要在写入多路复用模块和读取多 路复用模块之间被发送。涉及片段处理(例如,片段分配和/或片段重组)的更多细节在 名为“Methods and Apparatus Related to Shared Memory Buffer for Variable-Sized Cells (涉及用于可变大小信元的共享存储缓冲器的方法和设备)”并于2009年3月31日 提交的共同未决美国专利申请号12/415517中描述,其在这里完全被引用作为参考。图16A是根据一个实施例,被配置为经由交换核心1690的交换结构1600协调传 输信元组的入口调度模块1620和出口调度模块1630的示意框图。协调可以包括例如经由 交换结构1600调度传输信元组、跟踪涉及传输信元组的请求和/或响应等等。入口调度模 块1620能被包括在交换结构1600的入口侧以及出口调度模块1630能被包括在交换结构 1600的出口侧。交换结构1600能包括入口级1602、中间级1604,和出口级1606。在一些 实施例中,交换结构1600能基于Clos (克洛斯)网络架构(例如,无阻塞Clos网络、严格 意义上的无阻塞Clos网络、Benes (巴内斯)网络)被定义,且交换结构1600能包括数据平 面和控制平面。在一些实施例中,交换结构1600可以是数据中心(未示出)的核心部分, 其能包括网络或装置互连。如图16A所示,输入队列IQ1到IQK(共同被称为入口队列1610)能位于交换结构 1600的入口侧。入口队列1610能与交换结构1600的入口级1602相关联。在一些实施例 中,入口队列1610能被包括在线卡(line card)中。在一些实施例中,入口队列1610能位 于交换结构1600之外和/或交换核心1690之外。每一个入口队列1610可以是先入先出 (FIFO)类型队列。虽然为示出,然而在一些实施例中,每一个入口队列IQ1到1(^可以与输 入/输出端口(例如,10Gb/S端口)相关(例如,唯一相关)。在一些实施例中,每一个入 口队列IQ1到IQk能具有足够的大小以实施拥塞解决方案,例如请求授权拥塞解决方案。例 如,输入队列IQim能具有足够的大小以持有信元(或信元组)、直到请求授权拥塞方案已经 对于信元(或信元组)被执行。如图16A所示,输出端口(共同被称为输出端口 1640)能位于交换结构1600 的输出侧。输出端口 1640可以与交换结构1600的输出级1606相关。在一些实施例中,输 出端口 1640能被称为目的地端口。
30
在一些实施例中,输入队列1610能被包括在一个或多个位于交换结构1600的输 入级1602之外的输入线卡(未示出)中。在一些实施例中,输出端口 1640可以被包括在 一个或多个位于交换结构1600的输出级1606之外的输出线卡(未示出)中。在一些实 施例中,一个或多个输入队列1610和/或一个或多个输出端口 1640能被包括在交换结构 1600的一个或多个级(例如,输入级1602)中。在一些实施例中,输出调度模块1620能被 包括在一个或多个输出线卡中和/或输入调度模块1630能被包括在一个或多个输入线性 中。在一些实施例中,与交换核心1690有关的每一个线卡(例如,输出线卡,输入线卡)可 以包括一个或多个调度模块(例如,输出调度模块、输入调度模块)。在一些实施例中,输入队列1610和/或输出端口 1640能被包括在一个或多个位 于交换结构1600和/或外围处理装置(未示出)之间的网关装置(未示出)中。一个或 多个网关装置、交换结构1600和/或外围处理装置能共同定义数据中心(未示出)的至少 一部分。在一些实施例中,一个或多个网关装置可以是在交换核心1690的边缘部分内的边 缘设备。在一些实施例中,交换结构1600和外围处理装置能被配置为基于不同的协议处理 数据。例如,外围处理装置能包括,例如一个或多个能被配置为基于以太网协议和可以是基 于信元的结构的交换结构1600而通信的主装置(例如,被配置为执行一个或多个虚拟资源 的主装置、万维网服务器)。换句话说,一个或多个网关装置能向配置为经由一个协议通信 的其他装置提供到交换结构1600的接入,该交换结构能被配置为经由另一个协议通信。在 一些实施例中,一个或多个网关装置能被称为接入交换或网络装置。在一些实施例中,一个 或多个网关装置能被配置为作为路由器、网络集线器装置、和/或网络桥装置。在该实施例中,例如,输入调度模块1630能被配置为定义在输入队列IQ1排队的 信元组GA以及在输入队列IQim排队的信元组GC。信元组GA在输入队列IQ1的前部排队, 而信元组GB在输入队列IQ1内信元组GA之后排队。因为输入队列IQ1是FIFO类型队列, 信元组GB不能经由交换结构1600发送直到信元组GA已经从输入队列IQ1发送。信元组 GC在输入队列IQih的前部排队。在一些实施例中,输入队列1610的部分能被映射到(例如,指配到)一个或多个 输出端口 1640。例如,输入队列IQ1到IQih能被映射到输出端口 P1,从而所有在输入端口 IQ1到IQim排队的信元310都将由输入调度模块1620调度经由交换结构1600传输到输出 端口 Pi。类似地,输入队列IQk能被映射到输出端口 P2。该映射能作为例如查询表被存储 在存储器(例如,存储器1622),当调度(例如,请求)传输信元组时输入调度模块1620能 访问该查询表。在一些实施例中,一个或多个输入队列1610能与优先权值(还称为传输优先权 值)相关。输入调度模块1620能被配置为基于优先权值从输入队列1610调度信元的传输。 例如,因为输入队列IQim能与比输入队列IQ1更高的优先权值相关联,输入调度模块1620 能被配置为在请求信元组GA传输到输出端口 P1之前请求信元组GC传输到输出端口 P1。优 先权值能基于服务级别(例如,服务质量(QoS))被定义。例如,在一些实施例中,不同类型 的网络通信量可以与不同的服务级别(和不同的优先权)相关联。例如,存储通信量(例 如,读取和写入通信量)、内部处理器通信、媒体信令、会话层信令等等每一个都与至少一个 服务级别相关联。在一些实施例中,优先权值能基于例如IEEE802. Iqbb协议,其定义了基 于优先权的流量控制策略。
在一些实施例中,一个或多个输入队列1610和/或一个或多个输出端口 1640可 以被暂停。在一些实施例中,一个或多个输入队列1610和/或一个或多个输出端口 1640 能被暂停从而信元不会丢失。例如,如果输出端口 P1暂时不可用,则从输入队列IQ1*/或 输入队列IQih传输的信元能被暂停,从而在输出端口 P1信元不会因为输出端口 P1暂时不 可用而丢失。在一些实施例中,一个或多个输入队列1610可以与优先权值相关联。例如, 如果输出端口 P1拥塞,则从输入队列IQ1向输出端口 P1的信元传输可以暂停,而不是从输 入队列IQih向输出端口 P1的信元可以传输,因为输入队列IQim能与比输入队列IQ1更高 的优先权值相关联。输入调度模块1620能被配置为与(例如,向其发送信号以及从其接收信号)输出 调度模块1630交换信号以协调经由交换结构1600向输出端口 P1传输信元组GA,以及协调 经由交换结构1600向输出端口 P1传输信元组GC。因为信元组GA将被发送到输出端口 P1, 该输出端口 P1能被称为信元组GA的目的地端口。类似地,输出端口 P1能被称为信元组GB 的目的地端口。如图16A所示,信元组GA能经由传输路径4112被发送,传输路径4112不 同于发送信元组GC的传输路径4114。信元组GA和信元组GB由定义由输入调度模块1620基于在输入队列IQ1排队的 信元4110定义。特别地,信元组GA能基于来自具有公共目的地端口和具有在输入队列IQ1 内特定位置的信元组GA中每一个信元被定义。类似地,信元组GC能基于来自具有公共目 的地端口和具有在输入队列IQih内特定位置的信元组GC中每一个信元被定义。虽然未示 出,然而在一些实施例中,例如信元4110能包括在交换核心1690从一个或多个外围处理装 置(例如,个人计算机、服务器、路由器、个人数字助理(PDA))经由一个或多个可以是有线 和/或无线的网络(例如,局域网(LAN)、广域网(WAN)、虚拟网)接收的内容(例如,数据 分组)。涉及定义信元组,例如信元组GA、信元组GB和/或信元组GC的更多细节,结合附 图17和18进行讨论。图16B是根据一个实施例表明涉及信元组GA传输的信令的信令流程图。如图16B 所示,时间在下行方向上增长。在信元组GA已经被定义(如图16A中所示)之后,输入调 度模块1620能被配置为发送请求以调度信元组GA以经由交换结构1600传输;该请求作为 传输请求22显示。传输请求22能被定义为向信元组GA的目的地端口,即输出端口 P1发送 信元组GA的请求。在一些实施例中,信元组GA的目的地端口还能被称为传输请求22的目 标(还被称为目标目的地端口)。在一些实施例中,传输请求22可以包括经由特定的传输 路径(例如图16A中所示的传输路径4112)通过交换结构1600,或在特定时间发送信元组 GA的请求。输入调度模块1620能被配置为在传输请求22已经在输入调度模块1620被定 义之后向输出调度模块1630发送传输请求22。在一些实施例中,传输请求22能在被发送到交换结构1600的输出侧之前,在交 换结构1600的输入侧排队。在一些实施例中,传输请求22能排队直到输入调度模块1620 触发发送传输请求22到交换结构1600的输出侧。在一些实施例中,因为用于从交换结构 1600的输入侧发送的传输请求的容量高于阈值,输入调度模块1620能被配置为保持(或触 发保持)传输请求22在例如输入传输请求队列(未示出)中。该阈值能基于经由交换结 构1600的传输等待时间被定义。在一些实施例中,传输请求22能在交换结构1600的输出侧的输出队列(未示出)
32排队。在一些实施例中,输出队列能被包括在位于交换结构1600内或外,或位于交换核心 1690外的线卡(未示出)中。虽然未示出,但是在一些实施例中,传输请求22能在与特定 输入队列(例如,输入队列IQ1)相关联的输出队列或输出队列的一部分处排队。在一些实 施例中,每一个输出端口 1640能与输出队列相关,输出队列与输入队列1610的优先权值相 关联(例如,对应于)。例如,输出端DP1能与和输入队列IQ1 (其具有特定的优先权值)相 关联的输出队列(或输出队列的部分)以及和输入队列IQk(其具有特定的优先权值)相关 联的输出队列(或输出队列的一部分)相关联。因此,在输入队列IQ1排队的传输请求22 能在与输入队列IQ1相关联的输出队列排队。换句话说,传输请求22能在(交换结构1600 的输出侧)与至少一个输入队列1610的优先权值相关联的输出队列排队。类似地,传输请 求22能在输入传输请求队列(未示出)或与至少一个输入队列1610的优先权值相关联的 输入传输队列的一部分中排队。如果输出调度模块1630确定信元组GA的目的地端口(即图16A所示的输出端口 P1)可用于接收信元组GA,则输出调度模块1630能被配置为向输入调度模块1620发送传输 响应24。传输响应24可以是例如,对于将要(例如,从图16A所示的输入队列发送IQ1发 送)向信元组GA的目的地端口发送的信元组GA的授权。发送信元组的授权能称为传输授 权。在一些实施例中,信元组GA和/或输入队列IQ1能被称为传输响应24的目标。在一 些实施例中,当经过交换结构1600的传输基本上被授权时,例如,因为目的地端口可用时, 对于将要被发送的信元组GA的授权能被授予。响应于传输响应24,输入调度模块1620能被配置为从交换结构1600的输入侧向 交换结构1600的输出侧经由交换结构1600发送信元组GA。在一些实施例中,传输响应24 能包括经由特定传输路径(例如图16A中所示的传输路径4112)通过交换结构1600,或在 特定时间发送信元组GA的指令。在一些实施例中,该指令能基于例如路由策略被定义。如图16B所示,传输请求22包括信元数量值30、目的地标识符(ID)32、队列标识 符(ID)34、队列序列值(SV) 36 (其可以共同被称为请求标签)。信元数量值30能体现包括 在信元组GA中的信元数量。例如,在该实施例中,信元组GA包括七(7)个信元(在图16A 中所示)。目的地标识符32能表示信元组GA的目的地端口从而传输请求22的目标能由输 出调度模块1630确定。信元数量值30和目的地标识符32能被输出调度模块1630使用以调度信元组GA 经由交换结构1600向输出端口 PJ图16A所示)传输。如图16B所示,在该实施例中,因 为包括在信元组GA中的信元数量能在信元组GA的目的地段端口(例如,图16A中所示的 输出端DP1)被处理(例如,能被接收),输出调度模块1630能被配置为定义并发送传输响 应24。在一些实施例中,如果因为信元组GA的目的地端口不可用(例如,在不可用状态 中、在拥塞状态),包括在信元组GA中的信元数量不能在信元组GA的目的地端口(例如,图 16A中所示的输出端口 P1)被处理(例如,不能被接收),则输出调度模块1630能被配置为 不可用于通信到输入调度模块1620。在一些实施例中,例如,输出调度模块1630能被配置 为当信元组GA的目的地端口不可用时拒绝经由交换结构1600发送信元组GA的请求(未 示出)。传输请求22的拒绝能被称为传输拒绝。在一些实施例中,传输拒绝能包括响应标 签。
在一些实施例中,例如输出端口 P1 (图16A中所示)的可用或不可用能由输出调度 模块1630基于满足的条件确定。例如,条件能涉及超过与输出端口 P1相关联的队列(未在 图16A中示出)的存储限制、经由输出端口 P1的数据流量速率、准备好调度用于从输入队列 1610经由交换结构1600 (图16A中所示)传输的信元数量等等。在一些实施例中,当输出 端口 P1被禁用时,输出端口 P1不可用于经由交换结构1600接收信元。如图16B所示,队列标识符34和队列序列值36在传输请求22中被发送到输出调 度模块1630。队列标识符34能表示和/或能用于标识(例如,单独标识)信元组GA在其 中排队的输入队列IQ1 (图16A中所示)。队列序列值36能表示信元组GA相对于输入队列 IQ1内其他信元组的位置。例如,信元组GA能与队列序列值X相关联而信元组GB(在如图 16A中所示的输入队列IQ1处排队)能与队列序列值Y相关联。队列序列值X能指示信元 组GA将要在与队列序列值Y相关的信元组GB之前从输入队列IQ1被发送。在一些实施例中,从与输入队列IQ1 (图16A中所示)相关联的队列序列值的范围 中选择队列序列值36。队列序列值的范围能被定义从而来自于队列序列值范围中的序列值 对于输入队列IQ1在特定的时间段内不重复。例如,队列序列值的范围能被定义从而来自 于队列序列值范围中的队列序列值在至少一个时间段内不重复,该时间周期需要通过交换 核心1690 (在图16A中所示)清除一些在输入队列IQ1排队的几个信元周期(例如,信元 160)。在一些实施例中,队列序列值能被增加(在队列序列值范围内)并与由输入调度模 块1620基于在输入队列IQ1排队的信元4110定义的每一个信元组相关联。在一些实施例中,与输入队列IQ1相关联的队列序列值范围能与和输入队列 1610(图16A中所示)的另一个相关联的队列序列值范围重叠。因此,队列序列值36,即使 来自于队列序列值的非唯一范围,也能被包括(例如,包括在内)队列标识符34(其能是唯 一的)以唯一标识信元组GA(至少在特定的时间段期间)。在一些实施例中,队列序列值 36在交换结构1600内是唯一的或是全球唯一值(⑶ID)(例如,通用唯一标识符(UUID))。在一些实施例中,输入调度模块1620能被配置为等待来定义与信元组GB相关联 的传输请求(未示出)。例如,输入调度模块1620能被配置为等待直到传输请求22被发送 或等待直到响应于传输请求22的响应(例如,传输响应24、传输拒绝)在定义与信元组GB 相关联的传输请求之前被接收。如图16B所示,输出调度模块1630能被配置为在传输响应24中包括队列标识符 34和队列序列值36 (其能共同被称为响应标签)。当传输响应24在输入调度模块1620被 接收时,队列标识符34和队列序列值36能被包括在传输响应24中,从而传输响应24能与 在输入调度模块1620的信元组GA相关联。特别地,队列标识符34和队列序列值36能共 同被用于将信元组GA标识为授权经由交换结构1600传输。在一些实施例中,输出调度模块1630能被配置为延迟发送相应于传输请求22的 传输响应24。在一些实施例中,输出调度模块1630能被配置为如果例如信元组GA的目的 地端口(即图16A中所示的输出端口 P1)不可用(例如,临时不可用)则延迟响应。在一 些实施例中,输出调度模块1630能被配置为响应于输出端口 P1从不可用状态改变为可用 状态发送传输响应24。在一些实施例中,输出调度模块1630能被配置为因为信元组GA的目的地端口 (即图16A中所示的输出端口 P1)从另一个输入队列1610接收数据,而延迟发送传输响应
3424。例如,因为输出端口 P1从例如输入队列IQK(图16A中所示)接收不同的信元组(未示 出),输出端口 P1不可用于从输入队列IQ1接收数据。在一些实施例中,基于与输入队列IQ1 和输入队列IQk相关联的优先权值,来自输入队列IQ1的信元组能与比来自输入队列IQk的 信元组具有更高的优先权值。输出调度模块1630能被配置为延迟发送传输响应24 —时间 段,该时间段基于例如在输出端口 P1接收的不同信元组的大小计算。例如,输出调度模块 1630能被配置为为了完成在输出端口 P1的不同信元组的处理而延迟发送传输响应24—个 预期时间段,传输响应24目标定于信元组GA。换句话说,输出调度模块1630能被配置为基 于输出端口 P1从不可用状态改变到可用状态的预定时间延迟发送目标定于信元组GA的传 输响应24。在一些实施例中,因为信元组GA通过其发送的至少一部分传输路径(例如图16A 中所示的传输路径4112)不可用(例如,拥塞),输出调度模块1630能被配置为延迟发送传 输响应24。输出调度模块1630能被配置为延迟发送传输响应24直到该部分传输路径不再 拥塞,或基于该部分传输路径不再拥塞的预定时间。如图16B所示,信元组GA能基于(例如,响应于)传输响应24被发送到信元组GA 的目的地端口。在一些实施例中,信元组GA能基于一个或多个包括在传输响应24中的指 令被发送。例如,在一些实施例中,信元组GA能经由传输路径4112(图16A中所示)基于 包括在传输响应24中的指令,或基于一个或多个用于经由交换结构1600的信元组传输的 规则(例如,用于经由可重组交换结构的信元组传输的规则)被发送。虽然未示出,但是在 一些实施例中,在信元组GA已经在输出端口 P1 (图16A中所示)被接收之后,来自信元组的 内容(例如,数据分组)能经由一个或多个可以是有线和/或无线的网络(例如,LAN、WAN、 虚拟网)被发送到一个或多个网络实体(例如,个人计算机、服务器、路由器、PDA)。重新参考图16A,在一些实施例中,信元组GA经由传输路径4112被发送且在相比 于例如输入队列1610相对小的输出队列(未示出)被接收。在一些实施例中,输出队列 (或输出队列的一部分)能与优先权值有关。优先权值能与一个或多个输入队列1610相关 联。输出调度模块1630能被配置为从输出队列提取信元组GA并能被配置为向输出端口 P1 发送信元组GA。在一些实施例中,当信元组GA被发送到交换结构1600的输出侧时,信元组GA伴 随包括在信元组GA内的响应标识符一起能由输入调度模块1620提取并发送到输出端口 Piq响应标识符能在输出调度模块1630被定义并被包括在传输响应24中。在一些实施例 中,如果信元组GA在与信元组GA的目的地端口相关联的输出队列(未示出)排队,则响应 标识符能用于从信元组GA的目的地端口提取信元组GA,从而信元组GA能从交换结构1600 经由信元组GA的目的地端口被发送。响应标识符能与在输出队列中的位置相关联,该输出 队列已经由输出调度模块1630为信元组GA的排队保留。在一些实施例中,当与信元组相关联的传输请求(例如图16B中所示的传输请 求22)被定义时,在输入队列1610排队的信元组能被移动到存储器1622。例如,在输入队 列IQk排队的信元组GD能响应于与信元组GD相关联的传输请求被定义而被移动到存储器 1622。在一些实施例中,信元组⑶能在与信元组⑶相关联的传输请求从输入调度模块1620 向输出调度模块1630发送之前被移动到存储器1622。信元组GlD能被存储在存储器1622 中,直到信元组⑶从交换结构1600的输入侧向交换结构1600的输出侧发送。在一些实施例中,信元组能被移动到存储器1622,从而减少在输入队列的拥塞(例如,线头(HOL) 阻塞)。在一些实施例中,输入调度模块1620能被配置为基于与信元组相关联的队列标 识符和/或队列序列值提取存储在存储器1622中的信元组。在一些实施例中,信元在存储 器1622内的信元组位置能基于查询表和/或索引值被确定。信元组能在信元组被从交换 结构1600的输入侧向交换结构1600的输出侧发送之前被提取。例如,信元组GD能与队列 标识符和/或队列序列值有关联。信元组GD存储在存储器1622内的位置能与队列标识符 和/或队列序列值相关联。由输入调度模块1620定义并向输出调度模块1630发送的传输 请求能包括队列标识符和/或队列序列值。从输出调度模块1630接收的传输响应能包括 队列标识符和/或队列序列值。响应于传输响应,输入调度模块1620能被配置为在基于队 列标识符和/或队列序列值的位置从存储器1622中提取信元组⑶,且输入调度模块1620 能触发信元组GD的传输。在一些实施例中,包括在信元组内的一些信元数目能基于在存储器1622中的可 用空间量被定义。例如,输入调度模块1620能被配置为基于在信元组GD被定义时包括在 存储器1622内的可用存储空间量确定包括在信元组GD内的信元数量。在一些实施例中, 如果包括在存储器1622中的可用存储空间量增长,则包括在信元组GD内的信元数量能增 长。在一些实施例中,在信元组GD被移动到存储器1622用于存储之前和/或之后,包括在 信元组⑶中的信元数量能由输入调度模块1620增长。在一些实施例中,包括在信元组内的一些信元的数量能基于经过例如交换结构 1600的传输的等待时间被定义。特别地,鉴于与交换结构1600相关联的等待时间,输入调 度模块1620能被配置为定义信元组的大小以促使流量经过交换结构1600。例如,因为信元 组已经达到基于交换结构1600的等待时间定义的阈值大小,输入调度模块1620能被配置 为关闭信元组(例如,定义信元组的大小)。在一些实施例中,输入调度模块1620能被配置 为立即发送信元组中的数据分组,而不是等待另外的数据分组来定义更大的信元组,因为 经过交换结构1600的等待时间短。在一些实施例中,输入调度模块1620能被配置为限制从交换结构1600的输入侧 向交换结构1600的输出侧发送的传输请求的数量。在一些实施例中,该限制能基于存储在 输入调度模块1620的策略被定义。在一些实施例中,该限制能基于与一个或多个输入队 列1610相关联的优先权值被定义。例如,输入调度模块1620能被配置为允许(基于阈值 限制)与输入队列IQ1相关联的传输请求比来自输入队列IQk的传输请求多,因为输入队列 IQ1具有比输入队列IQk更高的优先权值。在一些实施例中,输入调度模块1620和/或输出调度模块1630的一个或多个部 分可以是基于硬件的模块(例如,DSP、FPGA)和/或基于软件的模块(例如,计算机代码模 块、能在处理器上执行的处理器可读指令集)。在一些实施例中,与输入调度模块1620和/ 或输出调度模块1630相关联的一个或多个功能能被包括在不同的模块中和/或结合成一 个或多个模块。例如,信元组GA能由输入调度模块1620内的第一子模块定义以及传输请 求22(图16B所示)能由输入调度模块1620内的第二子模块定义。在一些实施例中,交换结构1600具有比在图16A中所示的更多或更少级。在一些 实施例中,交换结构1600可以是可重配置(例如,可重组)的交换结构和/或时分复用交换结构。在一些实施例中,交换结构1600能基于Clos(克洛斯)网络体系结构(例如,严 格意义上的无阻塞Clos (克洛斯)网络、Benes (巴内斯)网络)被定义。图17是根据一个实施例表明在位于交换结构1700输入侧的输入队列1720处排 队的两个信元组的示意框图。信元组由输入调度模块1740在交换结构1700的输入侧上定 义,交换结构1700可以是例如与交换核心相关联和/或被包括在例如图16A中所示的交换 核心中。输入队列1720还在交换结构1700的输入侧上。在一些实施例中,输入队列1720 能被包括在与交换结构1700相关联的输入线卡(未示出)中。虽然未示出,然而在一些实 施例中,一个或多个信元组能包括多个信元(例如,25个信元、10个信元、100个信元)或仅 一个信元。如图17所示,输入队列1720包括信元1到T(即信元工到信元τ),其能共同被称 为排队信元1710。输入队列1720是FIFO类型队列,信元工位于队列的前端1724(或传输 端)以及信元4立于队列的后端1722(或入口端)。如图17所示,在输入队列1720处的排 队信元1710包括第一信元组1712和第二信元组1716。在一些实施例中,来自于排队信元 1710的每一个信元具有相等的长度(例如,32比特长度、64比特长度)。在一些实施例中, 排队信元1710中的两个或更多能具有不同的长度。来自于排队信元1710的每一个信元具有为向由来自于排队信元1710的每一个信 元上的输出端口标签(例如,字母“E”、字母“F”)指示的四个输出端口 1770中的一个-输 出端口 E、输出端口 F、输出端口 G、或输出端口 H传输排队的内容。信元被发送至的输出端 口 1770能被称为目的地端口。排队信元1710每一个能经由交换结构1700被发送到其相 对应的目的地端口。在一些实施例中,输入调度模块1740能被配置为基于例如像路由表一 样的查询表(LUT)确定对于来自于排队信元1710的每一个信元的目的地端口。在一些实 施例中,来自于排队信元1710的每一个信元的目的地端口能基于包括在信元内的内容(例 如,数据)的目的地被确定。在一些实施例中,一个或多个输出端口 1770能与输出队列相 关联,输出队列中信元能排队直到经由输出端口 1770被发送。第一信元组1712和第二信元组1716能由输入调度模块1740基于排队信元1710 的目的地端口被定义。如图17所示,包括在第一信元组1712中的每一个信元具有由输出 端口标签“E”指示的相同目的地端口(即,输出端口 E)。类似地,包括在第二信元组1716 中的每一个信元具有由输出端口标签“F”指示的相同目的地端口(即,输出端口 F)。信元组(例如,第一信元组1712)能基于目的地端口被定义,因为信元组经由交 换结构1700作为组被发送。例如,如果信元工被包括在第一信元组1712中,则第一信元组 1712不能被发送到单独的目的地端口,因为信元工具有与信元2到信元7 (输出端口 “E”)不 同的目的地端口(输出端口“F”)。这样,第一信元组1712不经由交换结构1700作为组被 传送。信元组作为连续的信元块被定义,因为信元组经由交换结构1700作为组被发送 而且因为输入队列1720是FIFO类型的队列。例如,信元12,以及信元2到信元7不能作为 信元组被定义,因为信元12不能和信元2到信元7的信元块一起被发送。信元8到信元n是 介于中间的信元,其在信元2到信元7从输入队列1720被发送之后,但是在信元12从输入队 列1720被发送之前必须从输入队列1720被发送。在一些实施例中,如果输入队列1720不 是FIFO类型队列,一个或多个排队信元1710可能不按顺序发送以及组可能跨越介于中间
37的信元。虽然未示出,然而来自于排队信元1710的每一个信元可以具有能被称为信元序 列值的序列值。信元序列值能表示例如信元2相对于信元3的顺序。信元序列值能用于在 例如一个或多个输出端口 1770在与信元相关联的内容从输出端口 1770被发送之前重排列 信元。例如,在一些实施例中,信元组1712能在与输出端口 E相关联的输出队列(未示出) 被接收并基于信元序列值重排列。在一些实施例中,输出队列可以相比输入队列1720相对 小(例如,浅(shallow)输出队列)。此外,包括在信元内的数据(例如,数据分组)还能具有被称为数据序列值的序列 值。例如,数据序列值能表示例如第一数据分组相对于第二数据分组的相对顺序。数据序 列值能被用于在例如一个或多个输出端口 1770处在数据分组从输出端口 1770被发送之前 重排列数据分组。图18是根据另一个实施例有明在位于交换结构1800输入侧的输入队列1820处 排队的两个信元组的示意框图。信元组由输入调度模块1840在交换结构1800输入侧上定 义,交换结构1800可以是例如与交换核心相关联和/或被包括在如图16A所示的交换核心 中。输入队列1820还在交换结构1800的输入侧上。在一些实施例中,输入队列1820能被 包括在与交换结构1800相关联的输入线卡(未示出)中。虽然未示出,然而在一些实施例 中,一个或多个信元组能包括仅一个信元。如图18所示,输入队列1820包括信元1到Z(即信元i到信元z),其共同被称为 排队信元1810。输入队列1820是FIFO类型队列,其中信元工在队列的前端1824(或传输 端)以及信元2在队列的后端1822(或入口端)。如图18所示,在输入队列1820处的排队 信元1810包括第一信元组1812和第二信元组1816。在一些实施例中,来自排队信元1810 的每一个信元具有相等的长度(例如,32比特长度,64比特长度)。在一些实施例中,两个 或更多排队信元1810具有不同的长度。在该实施例中,输入队列1820被映射到输出端口 F2从而所有的信元1810由输入调度模块1840调度用于经由交换结构1800传输到输出端 Π F2。来自于排队信元1810的每一个信元具有与一个或多个数据分组(例如,以太网数 据分组)相关联的内容。该数据分组由字母“Q”到“Y”表示。例如,如图18所示,数据分 组R被分割成三个不同的信元,信元2,信元3和信元4。信元组(例如,第一信元组1812)被定义,从而部分数据分组不关联到不同的信元 组。换句话说,信元组被定义,从而所有的数据分组都关联到单独的信元组。信元组的边界 基于在输入队列1820处排队的数据分组的边界被定义,从而数据分组不被包括在不同的 信元组中。分割数据分组为不同的信元组可能导致不期望的结果,例如在交换结构1800输 出侧的缓冲。例如,如果数据分组T的第一部分(例如信元6)被包括在第一信元组1812中 以及数据分组T的第二部分(例如信元7)被包括在第二信元组1816,则数据分组T的第一 部分必须在交换结构1800输出侧的一个或多个输出队列(未示出)中的至少一部分处缓 冲,直到数据分组T的第二部分被发送到交换结构1800输出侧,从而全部数据分组T从交 换结构1800经由输出端口 Ε2被发送。在一些实施例中,包括在排队信元1810内的数据分组也能具有序列值,其被称为 数据序列值。数据序列值能表示例如数据分组R相对于数据分组S的相对顺序。数据序列值能被用于在数据分组从输出端口 1870被发送之前,在例如一个或多个输出端口 1870处 重组数据分组。图19是根据一个实施例表明经由交换结构调度信元组传输的方法流程图。如图 19所示,在1900,信元在输入队列处排队用于传输的指示符经由交换结构被接收。在一些 实施例中,交换结构能够基于Clos (克洛斯)体系结构,且可以具有多级。在一些实施例中, 交换结构能与交换核心相关联(例如,在其之内)。在一些实施例中,当新信元在输入队列 被接收时,或当信元准备好(或马上准备好)经由交换结构被发送时,指示符能被接收。在1910,具有共同目的地的信元组根据在输入队列处排队的信元被定义。来自于 信元组的每一个信元的目的地基于查询表被确定。在一些实施例中,目的地基于策略和/ 或基于分组分类算法被确定。在一些实施例中,共同目的地可以是与交换结构输入部分相 关联的共同目的地端口。在1920,请求标签与信元组相关。请求标签可以包括例如,一个或多个信元数量 值、目的地标识符、队列标识符、队列序列值等等。在信元组被发送到交换结构的输入侧之 前,请求标签可以与信元组相关联。在1930,包括请求标签的传输请求被发送到输出调度模块。在一些实施例中,传 输请求包括在特定时间或经由特定传输路径被发送的请求。在一些实施例中,传输请求能 在信元组已经被存储在与交换结构输入级相关联的存储器中之后被发送。在一些实施例 中,信元组能被移动到存储器以减少在输入队列处拥塞的可能性。换句话说,信元组能被移 动到存储器从而在信元组之后排队的其他信元能被准备用于从输入队列处的传输(或发 送),而不需要等待信元组从输入队列处发送。在一些实施例中,传输请求可以是发送到特 定输出端口(例如,特定的目的地端口)的请求。在1950,当响应于传输请求,经由交换结构的传输在1940没有被授权时,包括响 应标签的传输拒绝被发送到输入调度模块。在一些实施例中,传输请求可以被拒绝,因为交 换结构拥塞、目的地端口不可用等等。在一些实施例中,传输请求能被拒绝一个特定的时间 段。在一些实施例中,响应标签可以包括一个或多个能被用于将传输拒绝与信元组关联的 标识符。如果在1940经由交换结构的传输被授权,则在1960,包括到输入调度模块的响应 标签的传输响应被发送。在一些实施例中,传输响应可以是传输授权。在一些实施例中,传 输响应可以在信元组的目的地准备好(或马上准备好)接收信元组之后被发送。在1970,信元组基于响应标签被提取。如果信元组已经被移动至存储器,则信元组 能从存储器中被提取。如果信元组在输入队列处排队,则信元组能从输入队列被提取。信 元组可以基于包括在响应标签中的队列标识符和/或队列序列值被提取。队列标识符和/ 或队列序列值可来自于队列标签。在1980,信元组可经由交换结构被发送。信元组可根据包括在传输响应中的指令 经由交换结构被发送。在一些实施例中,信元组可在特定的时间和/或经由特定的传输路 径被发送。在一些实施例中,信元组可经由交换结构向例如输出端口的目的地发送。在一 些实施例中,在经由交换结构被发送之后,信元组能在与信元组的目的地(例如,目的地端 口)相关联的输出队列处排队。
39
图20是根据一个实施例表明与传输请求相关联的请求序列值处理的信令流程 图。如图20所示,传输请求52从在交换结构输入侧上的输入调度模块2020被发送到在交 换结构输出侧上的输出调度模块2030。传输请求56在传输请求52被发送之后从输入调度 模块2020被发送到输出调度模块2030。如图20所示,传输请求54从输入调度模块2020 被发送,但是不由输出调度模块2030接收。传输请求52、传输请求54和传输请求56每一 个都与相同的输入队列IQl相关联,如其相应的队列标识符所指示,以及与相同的目的地 端口 EPl有关,如其相应的目的地标识符所指示。传输请求52,传输请求54和传输请求56 可共同被称为传输请求58。如图20所示,时间在下行方向上增长。如图20所示,每一个传输请求58可包括请求序列值(SV)。请求序列值可表示传 输请求相对于其他传输请求的序列。在该实施例中,请求序列值可来自于与目的地端口 EPl 相关联的请求序列值的范围,并且按数值顺序以全整数的形式增长。在一些实施例中,请求 序列值可以是例如串(strings),并且能以不同的顺序(例如,相反的数值顺序)增长。传 输请求52包括请求序列值5200,传输请求54包括请求序列值5201,以及传输请求56包括 请求序列值5202。在该实施例中,请求序列值5200指示传输请求52在传输请求54之前被 定义以及被发送,传输请求54具有请求序列值5201。输出调度模块2030能基于请求序列值确定从输入调度模块2020的传输请求的传 输可能已经失败。特别地,输出调度模块2030能确定与请求序列值5201相关联的传输请 求不在传输请求56被接收之前被接收,传输请求56与请求序列值5202有关。在一些实施 例中,当在传输请求52和传输请求56的接收之间的时间段(显示为时间段2040)超过阈 值时间段时,输出调度模块2030能执行关于丢失的传输请求54的动作。在一些实施例中, 输出调度模块2030能请求输入调度模块2020重传传输请求54。输出调度模块2030可包 括丢失的请求序列值,从而输入调度模块2020能识别传输请求54未被接收。在一些实施 例中,输出调度模块2030能拒绝包括在传输请求56中的用于传输信元组的请求。在一些 实施例中,输出调度模块2030能被配置为基于队列序列值以基本上类似于和请求序列值 一起被描述方法的方式处理和/或响应传输请求(例如传输请求58)。图21是根据一个实施例表明与传输响应有关的响应序列值的信令流程图。如图 21所示,传输响应62从交换结构输出侧上的输出调度模块2130被发送到交换结构输入侧 的输入调度模块2120。传输响应66在传输响应62被发送之后从输出调度模块2130发送 到输入调度模块2120。如图21所示,传输响应64从输出调度模块2130发送,但是不由输 入调度模块2120接收。传输响应62、传输响应64和传输响应66与相同的由其相应地队列 标识符指示的输入队列IQ2相关联。传输响应62、传输响应64和传输响应66可共同被称 为传输响应68。如图21所示,时间在下行方向上增长。如图21所示,每一个传输响应68可包括响应序列值(SV)。响应序列值可表示相 对于其他传输响应的传输响应序列。在该实施例中,响应序列值可以来自于与输入队列IQ2 相关联的响应序列值的范围,并且按照数值顺序以全整数的形式增长。在一些实施例中,响 应序列值可以是例如串,并且能以不同的顺序(例如,反向数值顺序)增长。传输响应62 可包括响应序列值5300,传输响应64包括响应序列值5301,且传出响应66包括响应序列 值5302。在该实施例中,响应序列值5300指示传输响应62在具有相应序列值5301的传输 响应64之前被定义及发送。
40
输入调度模块2120能基于响应序列值确定从输出调度模块2130的传输响应的传 输可能已经失败。特别地,输入调度模块2120能确定与响应序列值5301相关联的传输响应 不在传输响应66被接收之前被接收,传输响应66与响应序列值5302相关联。在一些实施 例中,当在传输响应62和传输响应66的接收之间的时间段(显示为时间周期2140)超过 阈值时间周期时,输入调度模块2120能执行关于丢失的传输响应64的动作。在一些实施 例中,输入调度模块2120能请求输出调度模块2130重传传输响应64。输入调度模块2120 可包括丢失的响应序列值,从而输出调度模块2130能识别传输响应64未被接收。在一些 实施例中,当与传输请求相关联的传输响应在特定的时间周期内未被接收时,输入调度模 块2120能丢弃信元组。图22是根据一个实施例表明流量可控队列的多级的示意框图。如图22所示,第一 级队列2210的发送侧和第二级队列2220的发送侧被包括在物理链路2200发送侧上的源 实体2230中。第一级队列2210的接收侧和第二级队列2220的接收侧被包括在物理链路 2200接收侧上的目的实体2240中。源实体2230和/或目的实体2240可以是任意类型的 计算装置(例如,交换核心的一部分、外围处理装置),其可以被配置为经由物理链路2200 接收和/或发送数据。在一些实施例中,源实体2230和/或目的实体2240可以与数据中 心相关联。如图22所示,第一级队列2210包括在物理链路2200发送侧上的发送队列A1到 A4(称为第一级发送队列2234)以及在物理链路2200接收侧上的接收队列D1到D4(称为 第一级接收队列2244)。第二级队列2220包括在物理链路2200发送侧上的发送队列B1和 B2 (称为第二级发送队列2232)以及物理链路2200接收侧上的接收队列C1和C2 (称为第二 级接收队列2242)。经由物理链路2200的数据流能够基于与在源实体2230和目的实体2240之间的 流量控制环相关联的流量控制信令被控制(例如,修改、暂停)。例如,从物理链路2200发 送侧上的源实体2230发送的数据能在物理链路2200接收侧上的目的实体2240接收。当 目的实体2240不可用于从源实体2230经由物理链路2200接收数据时,流量控制信号能在 目的实体2240处被定义和/或能从目的实体2240被发送到源实体2230。流量控制信号能 被配置为触发源实体2230以修改从源实体2230到目的实体2240的数据流。例如,如果接收队列D2不可用于处理从发送队列A1发送的数据,则目的实体2240 能被配置为向源实体2230发送与流量控制环相关联的流量控制信号;流量控制信号能被 配置为触发从发送队列A1向接收队列D2经由传输路径的数据传输的暂停,传输路径包括第 二级队列2220的至少一部分和物理链路2200。在一些实施例中,接收队列D2可能不可用, 例如,当接收队列D2太满而不能接接收数据时。在一些实施例中,接收队列D2能响应于先 前从发送队列A1接收的数据从可用状态改变为不可用状态(例如,拥塞状态)。在一些实 施例中,发送队列A1能被称为流量控制信号的目标。发送队列A1能在流量控制信号内基于 与发送队列A1相关联的队列标识符被识别。在一些实施例中,流量控制信号能被称为反馈 信号。在该实施例中,流量控制环与物理链路2200相关联(称为物理链路控制环),流 量控制环与第一级队列2210相关联(称为第一级控制环),以及流量控制环与第二级队列 2220相关联(称为第二级控制环)。特别地,物理链路控制环与包括物理链路2200且不包括第一级队列2210和第二级队列2200的传输路径相关联。经由物理链路2200的数据流 能基于与物理链路控制环有关的流量控制信令被接通和断开。第一级控制环可以基于来自于第二级队列2210内的至少一个发送队列2234的数 据传输以及基于第一级队列2210内至少一个接收队列2244可用性(例如,可用性的指示 符)定义的流量控制信号。这样,第一级控制环能被称为与第一级队列2210相关联。第一 级控制环能与包括物理链路2200、第二级队列2220的至少一部分和第一级队列2210的至 少一部分的传输路径相关联。与第一级控制环有关的流量控制信令能触发控制来自与第一 级队列2210相关联的发送队列2234的数据流。第二级控制环能与包括物理链路2200以及包括第二级队列2220的至少一部分, 但不包括第一级队列2210的传输路径相关联。第二级控制环能基于从第二级队列2220内 至少一个发送队列2232和基于第二级队列2220内至少一个接收队列2242可用性(例如, 可用性的指示符)定义的流量控制信号的数据传输。这样,第二级控制环能被称为与第二 级队列2220相关联。与第二级控制环相关联的流量控制信令能触发控制从与第二级队列 2220相关联的发送队列2232的数据流。在该实施例中,与第二级队列2220相关联的流量控制环是基于优先权的流量控 制环。特别地,来自于第二级发送队列2232的每一个发送队列与来自于第二级接收队列 2242的接收队列配对;以及每一个队列对与服务级别(还被称为服务等级或服务质量)有 关。在该实施例中,第二级发送队列B1和第二级发送队列C1定义队列对且与服务级别X相 关联。第二级发送队列B2和第二级发送队列C2定义队列对并与服务级别Y相关联。在一 些实施例中,不同类型的网络通信量可以与不同服务级别(即不同优先权)相关联。例如, 存储通信量(例如,读取和写入通信量)、内部处理器通信、媒体信令、会话层信令等等可以 与至少一服务级别相关。在一些实施例中,第二级控制环可以基于,例如电气和电子工程师 协会(IEEE)802. Iqbb协议,其定义基于优先权的流量控制策略。经由传输路径74的数据流量,如图22所示,能使用至少一个控制环被控制。传输 路径74包括第一级发送队列A2、第二级发送队列B1、物理链路2200、第二级接收队列C1和 第一级接收队列D3。然而,经由传输路径74 一级中的队列基于与该级相关联的流量控制环 的数据流中的改变,能够通过传输路径74的另一级影响数据流。在一级处的流量控制能影 响在另一级的数据流,因为源实体2230内的队列(例如,发送队列2232、发送队列2234)和 目的实体2240内的队列(例如,接收队列2242、接收队列2244)是分级段的。换句话说,基 于一流量控制环的流量控制能具有经由与不同流量控制环相关联的因素对数据流产生影 响。例如,从第一级发送队列A1经由传输路径74到第一级接收队列D3的数据流能基 于一个或多个控制环_第一级控制环、第二级控制环和/或物理链路控制环被修改。到第 一级接收队列D3的数据流的暂停可能由于第一级接收队列D3从可用状态改变为不可用状 态(例如,拥塞状态)而被触发。如果到第一级接收队列D3的数据流与服务级别X相关联,则经由第二级发送队列 B1和第二级接收队列C1 (其定义与服务级别X相关联的队列对)的数据流能基于与第二级 控制环(其是基于优先权的控制环)相关联的流量控制信令暂停。但是经由与服务级别X 相关联的队列对的数据传输暂停能导致来自于输入到第二级发送队列B1的发送队列的数据传输暂停。特别地,经由与服务级别X相关联的队列对的数据传输暂停能导致不仅来自 于第一级发送队列A2的数据传输,还来自于第一级发送队列A1的数据传输的暂停。换句话 说,来自第一级发送队列A1的数据流间接或并行地被影响。在一些实施例中,在发送队列A1 处接收的数据和在发送队列A2处接收的数据能与相同的服务级别X相关联,但是在发送队 列A1处接收的数据和在发送队列A2处接收的数据可能来自于例如不同的(例如,独立的) 网络装置(未示出),例如外围处理装置,其可以与不同的服务级别相关联。到第一级接收队列D3的数据流还能够特别地由来自于第一级发送队列A2的数据 传输暂停基于与第一级控制环有关的流量控制信令而暂停。通过来自于第一级发送队A2数 据传输的直接暂停,来自于第一级发送队列A1的数据传输可以不被中断。换句话说,第一 级发送队列A2的流量控制基于与第一级控制环相关联的流量控制信号能被直接控制,而不 需要来自于其他第一级发送队列例如第一级发送队列A1的数据传输暂停。到第一级接收队列D3的数据流还能由经由物理链路220基于与物理链路控制环 有关的流量控制信令数据传输暂停被控制。但是经由物理链路2200的数据传输暂停能导 致经由物理链路2200的所有数据传输暂停。在物理链路2200发送侧上的队列能被称为发送队列2236以及在物理链路接收侧 上的队列能被称为接收队列2246。在一些实施例中,发送队列2236还能被称为源队列,而 接收队列2246能被称为目的队列。虽然未示出,但是在一些实施例中,一个或多个发送队 列2236能被包括在一个或多个与源实体2230相关联的接口卡中,以及一个或多个接收队 列2246能被包括在一个或多个与目的实体2240有关的接口卡中。当源实体2230经由物理链路2200发送数据时,源实体2230能被称为位于物理链 路2200发送侧的发送机。目的实体2240能被配置为接收数据并被称为位于物理链路2200 接收侧上的接收机。虽然未示出,但是在一些实施例中,源实体2230(和相关联的元件(例 如,发送队列2236))能被配置为作为目的实体(例如,接收机)工作以及目的实体2240 (和 相关的元件(例如,接收队列2246))能被配置为作为源实体(例如,发送机)工作。此外, 物理链路2200能作为双向链路工作。在一些实施例中,物理链路2200可以是有形的链路,例如光链路(例如,光纤电 缆、塑料光纤电缆)、电缆链路(例如,基于铜的电线)、双绞线链路(例如,5类电缆)等等。 在一些实施例中,物理链路2200可以是无线链路经由物理链路2200的数据传输能基于例 如以太网协议、无线协议、以太网协议、光纤信道协议、以太网光纤信道协议、涉及无限带宽 的协议和/或等等协议被定义。在一些实施例中,第二级控制环能被称为嵌套在第一级控制环内,因为与第二级 控制环相关联的第二级队列2220位于与第一级控制环相关联的第一级队列2210内。类似 地,物理链路控制环能被称为嵌套在第二级控制环内。在一些实施例中,第二级控制环能被 称为内部控制环,且第一级控制环能被称为外部控制环。图23是根据一个实施例表明流量可控队列的多级的示意框图。如图23所示,第 一级队列2310的发送侧和第二级队列2320的发送侧被包括在位于物理链路2300发送侧 上的源实体2330内。第一级队列2310的接收侧和第二级队列2320的接收侧被包括在位 于物理链路2300接收侧上的目的实体2340内。物理链路2300发送侧上的队列可共同被 称为发送队列2336,以及物理链路接收侧上的队列可共同被称为接收队列2346。虽然未示
43出,但是在一些实施例中,源实体2330能被配置为作为目的实体工作,以及目的实体2340 能被配置为作为源实体(例如,发送机)工作。此外,物理链路2300能作为双向链路工作。如图23所示,源实体2330与目的实体2340经由物理链路2300通信。源实体2330 具有队列QP1,其被配置为在数据经由物理链路2300被发送之前缓冲数据(如果需要),以 及目的实体2340具有队列QP2,其被配置为数据在目的实体2340被分配之前缓冲经由物理 链路2300接收的数据(如果需要)。在一些实施例中,经由物理链路2300的数据流能被处 理,而不需要缓冲队列QPl和队列QP2。包括在第一级队列2310中的发送队列QA1到QAn每一个能被称为第一级发送队列 且能共同被称为发送队列2334(或队列2334)。包括在第二级队列2320中的发送队列QB1 到QBm每一个能被称为第二级发送队列且能共同被称为发送队列2332 (或队列2332)。包 括在第一级队列2310中的接收队列QD1到QDk每一个能被称为第一级接收队列并能共同被 称为接收队列2344 (或队列2344)。包括在第二级队列2320中的接收队列QC1到QCm每一 个能被称为第二级接收队列且能共同被称为接收队列2342 (或队列2342)。如图23所示,来自于第二级队列2320的每一个队列位于在物理链路2300和来自 于第一级队列2310中至少一个队列之间的传输路径之内。例如,传输路径的一部分能由第 一级接收队列QD4、第二级接收队列QC1和物理链路2300定义。第二级接收队列QC1位于在 第一级接收队列QD4和物理链路2300之间的传输路径内。在这个实施例中,物理链路控制环与物理链路2300相关联,第一级控制环与第一 级队列2310相关联,以及第二级控制环与第二级队列2320相关联。在一些实施例中,第 二级控制环可以是基于优先权的控制环。在一些实施例中,物理链路控制环包括物理链路 2300、队列QPl和队列QP2。流量控制信号能在源实体2330处的源控制模块2370和目的实体2340处的目的 控制模块2380被定义和/或在其之间被发送。在一些实施例中,源控制模块2370能被称 为源流量控制模块,以及目的控制模块2380能被称为目的流量控制模块。例如,目的控制 模块2380能被配置为当在目的实体2340处的一个或多个接收队列2346 (例如,接收队列 QD2)不可用于接受数据时,向源控制模块2370发送流量控制信号。流量控制信号能被配置 为触发源控制模块2370例如暂停从一个或多个接收队列2330向一个或多个接收队列2346 的数据流。在数据被发送之前,源控制模块2370将队列标识符与在来自于发送队列2336的 发送队列处排队的数据相关联。队列标识符能表示和/或被用于识别数据排队的发送队 列。例如,当数据分组在第一级发送队列QA』_队时,唯一识别第一级发送队列QA4的队列标 识符能被添加到数据分组上或被包括在数据分组内的字段(例如,头部、尾部、有效载荷) 中。在一些实施例中,队列标识符可以与源控制模块2370处的数据有关,或由源控制模块 2370触发。在一些实施例中,仅在数据被发送之前,或数据已经从发送队列2336之一被发 送之后,队列标识符能与数据相关联。队列标识符能与从物理链路2300发送侧发送到物理链路2300接收侧的数据相关 联从而数据源(例如,源队列)能被识别。因此,流量控制信号能被定义以基于队列标识符 暂停一个或多个发送队列2336的传输。例如,与第一级发送队列QAn相关联的队列标识符 能被包括在从第一级发送队列QAn向第一级接收队列QD3发送的数据分组中。如果在接收一级发送队列QAn的另一个数据分 组,则请求第一级发送队列QAn暂停到第一级收队列QD3的附加数据分组传输的流量控制信 号能基于与第一级发送队列QAn相关联的队列标识符被定义。队列标识符能由目的控制模 块2380从数据分组中解析,并被目的控制模块2380用于定义流量控制信号。在一些实施例中,从几个发送队列2336(例如,第一级发送队列2334)到第一级接 收队列QDk的数据传输能响应于第一级接收队列QDk从可用状态改变为不可用状态而暂停。 几个发送队列2336中的每一个能基于其相应的队列标识符在流量控制信号内被识别。在一些实施例中,一个或多个发送队列2336和/或一个或多个接收队列2346可 以是虚拟队列(例如,逻辑定义的队列组)。因此,队列标识符可以与虚拟队列相关联(例 如,能体现)。在一些实施例中,队列标识符可以与来自于定义虚拟队列的队列集中的队列 相关联。在一些实施例中,来自于与物理链路2300相关联的队列标识符集的每一个队列标 识符可以是唯一的。例如,与物理链路2300 (例如,与跳转相关联的)相关联的每一个发送 队列2336能与唯一的队列标识符相关联。在一些实施例中,源控制模块2370能被配置为将队列标识符仅与发送队列2336 的一个特定子集和/或仅与在发送队列2336中之一处排队的数据子集相关联。例如,如果 数据不伴随队列标识符从第一级发送队列QA2被发送到第一级接收队列QD1,则配置为请求 来自于第一级发送队列QA2的数据传输暂停的流量控制信号可以不被定义,因为不知晓源 数据。因此,当数据从发送队列被发送时,通过不将队列标识符与数据联系(例如,省略), 来自于发送队列2336的发送队列能从流量控制中被免除。在一些实施例中,在目的实体2340处的一个或多个接收队列2346的不可用性能 基于条件被满足而被定义。该条件能涉及队列的存储限制、队列接入速率、输入到队列的数 据流量速率等等。例如,流量控制信号能在目的控制模块2380处响应于一个或多个接收 队列2346的状态,例如第二级接收队列QC2从可用状态基于阈值存储限制被超过改变为不 可用状态(例如,拥塞状态)被定义。当在不可用状态中时,第二级接收队列QC2不可用于 接收数据,因为例如第二级接收队列QC2被认为太满(如由阈值存储限制的超过所指示)。 在一些实施例中,当禁用时,一个或多个接收队列2346能处于不可用状态。在一些实施例 中,当接收队列不可用于接收数据时,流量控制信号能基于请求到来自于接收队列2346的 接收队列的数据传输暂停被定义。在一些实施例中,一个或多个接收队列2346的状态能响 应于接收队列2346(例如,特定级内的接收队列)处于拥塞状态的特定子集从可用状态改 变为拥塞状态(通过目的控制模块2380)。在一些实施例中,流量控制信号能在目的控制模块2380处被定义以指示接收队 列2346中的一个已经从不可用状态改变为可用状态。例如,初始地,目的控制模块2380能 被配置为定义并响应于第一级接收队列QD3从可用状态改变为不可用状态发送第一流量控 制信号到源控制模块2370。第一级接收队列QD3能响应于从第一级发送队列QA2发送的数 据从可用状态改变为不可用状态。因此,第一流量控制信号的目标可以是第一级发送队列 QA2 (基于队列标识符指示的)。当第一级接收队列QD3从不可用状态改变回可用状态时,目 的控制模块2380能被配置为定义并向源控制模块2370发送第二流量控制信号,其指示从 不可用状态改变回可用状态。在一些实施例中,源控制模块2370能被配置为响应于第二流 量控制信号触发从一个或多个发送队列2336到第一级接收队列QD3的数据传输。
45
在一些实施例中,流量控制信号可具有一个或多个参数值,其通过源控制模块 2370被用于修改来自于发送队列2336中之一(由队列标识符在流量控制信号内识别)的 传输。例如,流量控制信号可包括触发源控制模块2370暂停来自于发送队列2336中之一 的传输一特定时间段(例如,10毫秒(ms))的参数值。换而言之,流量控制信号可包括暂停 时间段参数值。在一些实施例中,暂停时间段可以是不确定的。在一些实施例中,流量控制 信号能定义从一个或多个发送队列2336以特定速率(例如,每秒特定数目帧、每秒特定数 目比特)发送数据的请求。在一些实施例中,流量控制信号(例如,流量控制信号内的暂停时间段)能基于 流量控制算法被定义。暂停时间段能基于在来自于接收队列2346 (例如,第一级接收队列 QD4)的接收队列为不可用状态经过的时间周期被定义。在一些实施例中,暂停时间段能基 于多于一个第一级接收队列2344为不可用状态被定义。例如,在一些实施例中,当差不多 一特定数目的第一级接收队列2344为拥塞状态时,暂停时间段增加。在一些实施例中,这 种类型的确定能在目的控制模块2380被确定。接收队列处于不可用经历的时间段可以是 由目的控制模块2380基于例如来自于接收队列数据的流量率(例如,历史流量率、先前流 量率)计算的计划(例如,预计)时间段。在一些实施例中,源控制模块2370能拒绝或改变修改来自于一个或多个发送队 列2336的数据流的请求。例如,在一些实施例中,源控制模块2370能被配置为降低或增加 暂停时间段。在一些实施例中,不是响应于流量控制信号暂停数据传输,源控制模块2370 可被配置为修改与传输队列2336中之一相关联的传输路径。例如,如果第一级发送队列QA2 已经基于第一级接收队列QD2状态的改变接收暂停传输的请求,则源控制模块2370能被配 置为触发从第一级发送队列QA2向例如第一级接收队列QD3的数据传输,而不是按照暂停传 输的请求进行。如图23所示,第二级队列2320之内的队列扇入(fan into)或扇出(fan out)物 理链路2300。例如,物理链路2300发送侧上的发送队列2332 (例如,QB1到QBm)扇入物理 链路2300发送侧上的队列QPl。因此,在任意发送队列2332处排队的数据能被发送到物理 链路2300的队列QPl。在物理链路2300接收侧上,从物理链路2300经由队列QP2发送的 数据能被广播到接收队列2342 (即,队列QC1到QCm)。同样,如图23所示,在第一级队列2310内的发送队列2334扇入到第二级队列 2320内的发送队列2332。例如,在第一级发送队列QVQA4和QAN_2中任意处排队的数据能 被发送到第二级发送队列QB2。在物理链路2300接收侧上,从例如第二级接收队列QCm发 送的数据能被广播到第一级接收队列QDim和QDK。由于许多流量控制环(例如,第一控制环)与不同的扇入、扇出体系结构相关联, 流量控制环对经由物理链路2300的数据流具有不同的影响。例如,当从第二级发送队列QB1 的数据传输基于第二级控制环被暂停时,从第一级发送队列QAp QA2, QA3和QAim经由第二 级发送队列QB1到一个或多个接收队列2346的数据传输也被暂停。在这种情况下,当来自 于下行流队列(例如,第二级发送队列QB1)的传输暂停时,来自于一个或多个上行流队列 (例如,第一级发送队列QA1)的数据传输能被暂停。相反,如果从第一级发送队列QA1沿着 包括至少下行流第二级发送队列QB1的传输路径的数据传输基于第一级控制环暂停,则来 自于第二级发送队列QB1的流量数据率可以减少,而不需要来自于第二级发送队列QB1的数
46据传输全部暂停;例如,第一级发送队列QA1,仍能够经由第二级发送队列QB1发送数据。在一些实施例中,扇入和扇出体系结构可以与图23中所示的不同。例如,在一些 实施例中,第一级队列2310内的一些队列能被配置为迂回第二级队列2320地扇入物理链 路 2300。与发送队列2336相关联的流量控制信令由源控制模块2370处理且与接收队列 2346相关联的流量控制信令由目的控制模块2380处理。虽然未示出,但是在一些实施例 中,流量控制信令能由一个或多个可以是独立的和/或集成到单个控制模块上的控制模块 (或控制子模块)处理。例如,与第一级接收队列2344相关联的流量控制信令可以由独立 于被配置为处理与第二级接收队列2342相关联的流量控制信令的控制模块的控制模块处 理。类似地,与第一级发送队列2334相关联的流量控制信令可以由独立于被配置为处理与 第二级发送队列2332有关的流量控制信令控制模块的控制模块处理。在一些实施例中,源 控制模块2370和/或目的控制模块2380的一个或多个部分可以是基于硬件的模块(例如, DSP、FPGA)和/或基于软件的模块(例如,计算节点模块、能在处理器上执行的处理器可读 指令集)。图24是根据一个实施例表明目的控制模块2450的示意框图,该目的控制模块被 配置为定义与多个接收队列相关联的流量控制信号6428。队列级包括第一级队列2410和 第二级队列2420。如图24所示,源控制模块2460与第一级队列2410的发送侧相关联而 目的控制模块2450与第一级队列2410的接收侧相关联。在物理链路2400发送侧上的队 列能共同被称为发送队列2470。在物理链路2400接收侧上的队列能共同被称为接收队列 2480。目的控制模块2450被配置为响应于第一级队列2410内的一个或多个接收队列不 可用于从第一级队列2410处的单个源队列接收数据,向源控制模块2460发送流量控制信 号6428。源控制模块2460被配置为基于流量控制信号6428暂停从第一级队列2410处的 源队列到第一级队列2410处的多个接收队列的数据传输。流量控制信号6428能由目的控制模块2450基于与第一级队列2410内的每一个 不可用接收队列相关联的信息而定义。目的控制模块2450能被配置为收集与不可用接收 队列相关联的信息并被配置为定义流量控制信号6428,从而潜在冲突的流量控制信号(未 示出)不被发送到第一级队列2410处的单个源队列。在一些实施例中,基于收集的信息定 义的流量控制信号6428能被称为集合流量控制信号。特别地,在该例子中,目的控制模块2450被配置为响应于两个接收队列-接收队 列2442和接收队列2446第一级队列2410接收侧处不可用于从第一级队列2410发送侧上 的发送队列2412接收数据,来定义流量控制信号6428。在该实施例中,响应于从发送队列 2412分别经由传输路径6422和传输路径6424发送的数据分组,接收队列2442和接收队 列2446从可用状态改变为不可用状态。如图24所示,传输路径6422包括发送队列2412、 第二级队列2420内的发送队列2422、物理链路2400、第二级队列2420内的接收队列2432 和接收队列2442。传输路径6424包括发送队列2412、发送队列2422、物理链路2400、接收 队列2432和接收队列2446。在一些实施例中,流量控制算法能被用于基于涉及接收队列2442不可用性的信 息和/或涉及接收队列2446不可用性的信息而定义流量控制信号6428。例如,如果目的控
47制模块2450确定接收队列2442和接收队列2446不可用于不同的时间段,则目的控制模块 2450可以被配置为基于不同的时间段定义流量控制信号6428。例如,目的控制模块2450能 经由流量控制信号6428请求从发送队列2412的数据传输暂停一时间段,该时间段基于不 同的时间段(例如,等于不同时间段平均值的时间段、等于不同时间段中较大值的时间段) 计算。在一些实施例中,流量控制信号6428能基于来自于第一级队列2410接收侧的独立 暂停请求(例如,与接收队列2442相关联的暂停请求和与接收队列2446相关联的暂停请 求)定义。在一些实施例中,流量控制信号6428能基于最大或最小可允许时间段定义。在一 些实施例中,流量控制信号6428能基于来自于例如发送队列2412的集合数据流量速率计 算。例如,暂停时间段能基于来自于发送队列2412的集合数据流量速率测量。在一些实施 例中,例如,如果来自于发送队列2412的数据流量速率高于阈值,则暂停时间段能被增加, 以及如果来自于发送队列2412的数据流量速率低于阈值则暂停时间段可被减少。在一些实施例中,流量控制算法能被配置为在定义和/或发送流量控制信号6428 之前等待特定的时间段。等待时间段能被定义使得涉及发送队列2412且能在等待段内的 不同时间被接收的多个暂停请求能被用于定义流量控制信号6428。在一些实施例中,等待 时间段响应于涉及发送队列2412的至少一个暂停请求被接收而被触发。在一些实施例中,流量控制信号6428能基于与第一级队列2410内每一个接收队 列相关联的优先权值由流量控制算法定义。例如,如果接收队列2442具有比与接收队列 2446相关联的优先权值更高的优先权值,则目的控制模块2450能被配置为基于与接收队 列2442而不是接收队列2446相关联的信息定义流量控制信号6428。例如,流量控制信号 6428能基于与接收队列2442相关联的暂停时间段而不是与接收队列2446相关联的暂停时 间段定义,因为接收队列2442具有比与接收队列2446相关联的优先权值更高的优先权值。在一些实施例中,流量控制信号6428能基于与第一级队列2410内部的每一个接 收队列相关联的属性由流量控制算法定义。例如,流量控制信号6428能基于是特定类型队 列(例如,后入先出(LIFO)队列,先入先出(FIFO)队列)的接收队列2442和/或接收队 列2446定义。在一些实施例中,流量控制信号6428能基于被配置为接收特定类型数据(例 如,控制数据/信号队列、媒体数据/信号队列)的接收队列2442和/或接收队列2446定 义。虽然未示出,但是与队列级(例如,第一级队列2410)相关联的一个或多个控制模 块能被配置为向不同的控制模块发送信息,其中该信息被用于定义流量控制信号。不同的 控制模块与不同的队列级有关。例如,与接收队列2442相关联的暂停请求和与接收队列 2446有关的暂停请求能在目的控制模块2450被定义。暂停请求能被发送到与第二级队列 2420接收侧相关联的目的控制模块(未示出)。流量控制信号(未示出)能在与第二级队 列2420接收侧相关联的目的控制模块处基于暂停请求和基于流量控制算法定义。流量控制信号6428能基于与第一级队列2410相关联的流量控制环(例如,第一 级控制环)定义。一个或多个流量控制信号(未示出)还能基于与第二级队列2420相关 联的流量控制环和/或与物理链路2400相关联的流量控制环定义。与第一级队列2410内发送队列(除了发送队列2412)相关联的数据传输基本不 受流量控制信号6428限制,因为到接收队列2442和2446的数据流基于第一级流量控制环来控制。例如,即使从发送队列2412的数据传输暂停,发送队列2414还能继续经由发送队 列2422发送数据。例如,发送队列2414能被配置为即使从发送队列2412经由发送队列 2422的数据传输已经暂停,还能经由包括发送队列2422的传输路径6426向接收队列2448 发送数据。在一些实施例中,发送队列2422能被配置为即使从队列2412经由传输路径6422 的数据传输已经基于流量控制信号6428被暂停,还能继续从例如发送队列2416向接收队 列2442发送数据。反之,如果到接收队列2442和2446的数据传输通过基于与第二级控制环有关的 流量控制信号(未示出)控制经由发送队列2422的数据流被暂停,则(除来自于发送队列 2412的数据传输之外从发送队列2414和发送队列2416经由发送队列2422的数据传输还 将被限制。从发送队列2422的数据传输将被暂停,因为其与特定服务级别相关联,以及引 起例如在接收队列2442和2446处拥塞的数据可以与特定服务级别相关联。在流量控制信号6428之内定义的一个或多个参数值能被存储于目的控制模块 2450的存储器2452中。在一些实施例中,在一个或多个参数值被定义之后和/或当流量控 制信号6428被发送到源控制模块2460时,参数值能被存储在目的控制模块2450的存储器 2452处。在流量控制信号6428内定义的参数值能用于跟踪例如发送队列2412的状态。例 如,在存储器2452内的条目能指示发送队列2412在暂停状态(例如非发送状态)中。条目 能基于在流量控制信号6428内定义的暂停时间段参数值被定义。当暂停时间段已经超时, 该条目能被更新以指示发送队列2412的状态已经改变为例如活动状态(例如发送状态)。 虽然未示出,但是在一些实施例中,一个或多个参数值能被存储在目的控制模块2450之外 的存储器(例如,远程存储器)中。在一些实施例中,存储在目的控制模块2450的存储器2452中的一个或多个参数 值(例如,基于一个或多个参数值定义的状态信息)能由目的控制模块2450用于确定附加 的流量控制信号(未示出)是否应当被定义。在一些实施例中,一个或多个参数值能由目 的控制模块2450定义一个或多个附加的流量控制信号。例如,如果接收队列2442响应于从发送队列2412接收的第一数据分组从可用状 态改变为不可用状态(例如,拥塞状态),则暂停从发送队列2412的数据传输的请求能经由 流量控制信号6428被发送。流量控制信号6428能基于队列指示符指示发送队列2412是该 请求的目标以及能指定暂停时间段。当流量控制信号6428被发送到源控制模块2460时, 与发送队列2412相关联的暂停时间段和队列标识符能被存储在目的控制模块2450的存储 器2452中。在流量控制信号6428被发送之后,接收队列2444能响应于从发送队列2412 接收的第二数据分组从可用状态改变为拥塞状态(传输路径在图24中未示出)。在从发送 队列2412的数据传输暂停之前,第二数据分组能基于流量控制信号6428从发送队列2412 被发送。目的控制模块2450能访问存储在存储器2452中的信息,并且能响应于与接收队 列2444有关状态的改变,来确定目标为发送队列2412的附加流量控制信号不应当被定义 并发送到源控制模块2460,因为流量控制信号6428已经被发送。在一些实施例中,源控制模块2460能被配置为基于最近的流量控制信号参数值 暂停来自于发送队列2412的传输。例如,在目标为发送队列2412的流量控制信号6428已 经被发送到源控制模块2460之后,目标为发送队列2412的较迟流量控制信号(未示出)能 在源控制模块2460处被接收。源控制模块2460能被配置为执行与随后流量控制信号相关联的一个或多个参数值,而不是与流量控制信号6428相关联的参数值。在一些实施例中, 较迟流量控制信号能触发发送队列2412维持在暂停状态保持一个比在流量控制信号6428 中指示的更长或更短的时间段。在一些实施例中,当与一个或多个参数值相关联的优先权值高于(或低于)与和 流量控制信号6428相关联的一个或多个参数值相关联的优先权值时,源控制模块2460可 选地执行一个或多个与较迟流量控制信号相关联的参数值。在一些实施例中,每一个优先 权值能在目的控制模块2450被定义,并且每一个优先权值能基于与一个或多个接收队列 2480相关联的优先权值定义。在一些实施例中,流量控制信号6428和较迟流量控制信号(都是目标为发送队 列2412)都响应于来自于接收队列2480的相同接收队列不可用而被定义。例如,较迟流 量控制信号能包括由目的控制模块2450基于接收队列2442定义的更新参数值,接收队列 2442在不可用状态中维持一个比先前计算更长的时间段。在一些实施例中,目标为发送队 列2412的流量控制信号6428能响应于接收队列2480中之一改变状态(例如,从可用状态 改变为不可用状态)而被定义,以及目标为发送队列2412的较迟流量控制信号能响应于接 收队列2480中另一个改变状态(例如,从可用状态改变为不可用状态)而被定义。在一些实施例中,多个流量控制信号能在目的控制模块2450被定义以暂停来自 第一级队列2410多个发送队列的传输。在一些实施例中,多个发送队列可以是向单独接收 队列例如接收队列2444发送数据。在一些实施例中,到来自第一级队列2410的多个发送 队列的流量控制信号的历史能被存储在目的控制模块2450的存储器2452中。在一些实施 例中,与单独接收队列相关联的较迟流量控制信号能基于流量控制信号的历史被计算。在一些实施例中,与多个发送队列相关的暂停时间段能被分组并被包括在流量控 制分组中。例如,与发送队列2412相关联的暂停时间段和与发送队列2414相关联的暂停 时间段能被包括在流量控制分组(还被称为流量控制分组)中。涉及流量控制分组的更多 细节将结合图25被描述。图25是根据一个实施例表明流量控制分组的示意图。流量控制分组包括头部 2510、尾部2520和包括用于由队列标识符(ID)(在列2514中显示)表示的几个发送队列 的暂停时间段参数值(在列2512中显示)的有效负载2530。如图25所示,由队列ID 1到 V(即队列ID1到队列IDv)表示的发送队列每一个与暂停时间段参数值1到V(即暂停时间 周期1到暂停时间周期ν)相关联。暂停时间段参数值2514指示由队列2512表示的发送 队列从发送数据起应当被暂停(例如,禁止)所经历的时间段。在一些实施例中,流量控制分组能在例如,例如图24中所示的目的控制模块2450 的目的控制模块处被定义。在一些实施例中,目的控制模块能被配置为在规律的时间间隔 定义流量控制分组。例如,目的控制模块能被配置为每IOms定义一个流量控制分组。在一 些实施例中,当暂停时间段参数值已经被计算时,和/或当暂停时间段参数值的特定数目 已经被计算时,目的控制模块能被配置为以随机时间定义流量控制分组。在一些实施例中, 目的控制模块能基于例如一个或多个参数值和/或由目的控制模块访问的状态信息确定 至少一部分流量控制分组不应当被定义和/或发送。虽然未示出,但是在一些实施例中,多个队列ID能与单独暂停时间周期参数值相 关联。在一些实施例中,至少一个队列ID能与除了暂停时间段参数值之外的参数值相关联。例如,队列ID能与流量速率参数值相关联。流量速率参数值能指示发送队列(由队列 ID表示)应当发送数据的流量速率(例如,最大流量速率)。在一些实施例中,流量控制分 组能具有一个或多个被配置为指示特定接收队列是否可用于接收数据的手段。流量控制分组能从目的控制模块向源控制模块(例如图24中所示的源控制模块 2460)经由流量控制信号(例如图24中所示的流量控制信号6428)发送。在一些实施例 中,流量控制分组能基于第2层(例如,OSI模型的第2层)协议被定义。换句话说,流量 控制分组能在网络系统的第2层被定义并在其中被使用。在一些实施例中,流量控制分组 能在与第2层相关联的装置(例如,MAC装置)之间被发送。重新参考图25,与流量控制信号6428相关联的一个或多个参数值(例如,基于参 数值定义的状态信息)能被存储在源控制模块2560的存储器2562中。在一些实施例中, 当流量控制信号6428在源控制模块2560被接收时,一个或多个参数值能被存储在源控制 模块2560的存储器2562中。在流量控制信号6428中定义的参数值能被用于跟踪一个或 多个接收队列2580 (例如,接收2542)的状态。例如,存储器2562中的条目能指示接收队 列2542不可用于接收数据。该条目能基于在流量控制信号6428中定义的暂停时间周期参 数值被定义并且与接收队列2542的标识符(例如,队列标识符)相关联。当暂停时间段超 时,该条目能被更新以指示接收队列2542的状态已经改变为例如活动状态。虽然未示出, 然而在一些实施例中,一个或多个参数值能被存储在源控制模块2560之外的存储器(例 如,远程存储器)中。在一些实施例中,存储在源控制模块2560的存储器2562处的一个或多个参数值 (和/或状态信息)能由源控制模块2560用于确定数据是否应当被发送到一个或多个接 收队列2580。例如,源控制模块2560能被配置为基于涉及接收队列2544和接收队列2542 的状态信息从发送队列2516向接收队列2544而不是接收队列2542发送数据。在一些实施例中,源控制模块2560能分析数据传输模式以确定数据是否应当从 一个或多个源队列2570发送到一个或多个接收队列2580。例如,源控制模块2560能基于 存储在源控制模块2560的存储器2562处的参数值确定发送队列2514向接收队列2546发 送相对高的数据量。基于该确定,源控制模块2560能触发队列2516向接收队列2548而不 是接收队列2546发送数据,因为接收队列2546从发送队列2514接收高数据量。通过分析 与发送队列2570相关联的传输模式,一个或多个接收队列2580处的拥塞开始可以基本上 被避免。在一些实施例中,源控制模块2560能分析存储在源控制模块2560的存储器2562 处的参数值(和/或状态信息)以确定数据是否应当被发送到一个或多个接收队列2580。 通过分析存储的参数值(和/或状态信息),在一个或多个发送队列2580处的拥塞开始可 以基本上被避免。例如,源控制模块2560能基于相比于接收队列2542历史可用性(例如, 更好,更差)的接收队列2540历史可用性来触发数据发送到接收队列2540而不是接收队 列2542。在一些实施例中,例如,源控制模块2560能基于有关数据突发模式相比于接收队 列2544历史性能的接收队列2542历史性能向接收队列2542而不是接收队列2544发送数 据。在一些实施例中,涉及一个或多个接收队列2580的参数值分析可以基于特定的时间 窗、特定类型的网络处理(例如,内部处理器通信)、特定服务级别等等。在一些实施例中,目的控制模块2550能发送有关接收队列2580的状态信息(例
51如,当前状态信息),其能由源控制模块2560用于确定数据是否应当从一个或多个源队列 2570被发送。例如,源控制模块2560能触发队列2514向队列2544而不是队列2546发送 数据,因为队列2546具有如目的控制模块2550所指示的比队列2544更多的可用容量。在 一些实施例中,当前状态信息、传输模式分析和历史数据分析的任意结合能被用于基本上 阻止或减少一个或多个接收队列2580的拥塞开始的可能性。在一些实施例中,流量控制信号6428能从目的控制模块2550经由带外传输路径 被发送到源控制模块2560。例如,流量控制信号6428能经由涉及流量控制信令通信的专用 链路被发送。在一些实施例中,流量控制信号6428能经由与第二级队列2520相关联的队 列、与第一级队列2510相关联的队列,和/或物理链路2500被发送。这里描述的一些实施例涉及具有计算机可读媒介(还被称为处理器可读媒介)的 计算机存储产品,计算机可读媒介具有其上有用于执行各种计算机可执行操作的指令或计 算机代码。媒介和计算机代码(还被称为代码)可以是被设计以及构建用于特定目的的那 些媒介和计算机代码。计算机可读媒介的例子包括,但不被限制为例如硬盘、软盘和磁带 的磁存储媒介;例如压缩光盘/数字化视频光盘(CD/DVD)、压缩只读光盘存储器(CD-ROM) 和全息装置的光存储媒介;例如光盘的磁-光存储媒介;载波信号处理模块;以及被特别 配置为存储并执行程序代码的硬件装置,例如ASIC、可编程逻辑装置(PLD),和只读存储器 (ROM)和RAM装置。计算机代码的例子包括,但不被限制为,微代码或微指令、机器指令,例如由汇编 者产生的、用于产生万维网服务的代码,和包含由计算机使用翻译机执行的高级别指令的 文件。例如,实施例可以使用Java、C++或其他编程语言(例如,面向对象的编程语言)和 开发工具被实现。计算机代码的附加例子包括,但不被限制为控制信号、加密代码和压缩代码。虽然各种实施例在以上已经被描述,但是应当理解的是其仅仅是通过例子而不是 限制的方式体现,以及可以进行形式和细节上的各种变化。这里描述的设备和/或方法的 任意部分可以以任意方式结合,除了互相排斥的结合。这里描述的实施例能包括描述的不 同实施例的功能、组件和/或特征的各种结合和/或子结合。
5权利要求
一种设备,包括多级交换结构;和多个边缘设备,可操作地耦接到多级交换结构并被配置为耦接到多个外围处理装置,多个边缘设备和多级交换结构共同定义了单个逻辑实体。
2.如权利要求1所述的设备,其中多级交换结构在物理上跨多个机架分布,多级交换结构具有多个输入端口和多个输出 端口,多个输入端口中的每一个输入端口和多个输出端口中的每一个输出端口均被配置为 以不低于lOGb/s的速度操作;以及多个边缘设备和多级交换结构被共同配置为在多个处理装置中的第一外围处理装置 和多个处理装置中的第二外围处理装置之间以线速率提供无阻塞连接性。
3.如权利要求1所述的设备,其中多级交换结构具有多个输入端口和多个输出端口,被配置为耦接到多个外围处理装置 的多个边缘设备;以及多个边缘设备和多级交换结构共同被配置为以线速率为多个外围处理装置中的每一 个外围处理装置提供到多个外围处理装置中的每一个其余处理装置的连通性,从而使多个 输出端口中的每一个输出端口能够由多个外围处理装置中的每一个外围处理装置经由多 个输入端口中的一个输入端口平等地访问。
4.如权利要求1所述的设备,其中多级交换结构具有多个在物理上跨多个机架分布的级,多个级共同具有多个输入端口 和多个输出端口;多级交换结构被配置为当多个信元的传送能被基本上保证而没有通过多级交换结构 的损耗时,允许多个与分组有关的信元进入来自多个输入端口的输入端口 ;多级交换结构被配置为确定性网络,从而当多个信元在预定时间能被传送到来自多个 输出端口的一个输出端口时,多级交换结构允许多个信元;以及多级交换结构被配置为从输入端口向多个输出端口中的一个输出端口经由多级发送 多个与分组相关联的信元,而不需要在多级交换结构的多级中的至少一级处执行分组损耗 处理。
5.如权利要求1所述的设备,其中多级交换结构具有多个输入端口和多个输出端口,被配置为经由多个输入端口和多个 输出端口耦接到多个边缘设备;来自于多个边缘设备的边缘设备配置为接收分组,边缘设备被配置为发送与分组相关 联的多个信元到多个输入端口中的一个输入端口,不需要与零负载等待时间相关联的由多 级交换结构和边缘设备定义的用于交换核心的存储转发延迟;以及多级交换结构被配置为从输入端口向多个输出端口中的一个输出端口发送与分组相 关联的多个信元,从而使得除了光速等待时间之外的零负载等待时间或除了光速等待时间 之外的拥塞等待时间低于15微秒。
6.如权利要求1所述的设备,其中多级交换结构具有多个输入端口和多个输出端口,多级交换结构被配置为经由多个输 入端口和多个输出端口耦接到多个边缘设备;以及多个边缘设备中的一个边缘设备被配置为从多个输入端口中的每一个输入端口接收 分组,多级交换结构被配置为从相关联的输入端口向多个输出端口中的相关联输出端口发 送与每一个分组相关联的多个信元,从而当多级交换结构的电缆拓扑是对称时以及当电缆 拓扑的链路完全可操作时,对于每一个信元的等待时间基本上独立于由该信元遍历的多级 交换结构内的路径。
7.如权利要求1所述的设备,其中多级交换结构物理分布在多个机架中,多级交换结 构具有多个输入缓冲器和多个输出端口,多级交换被配置为接收与分组相关联的多个信 元,并被配置为基于多个信元对多个信元片段进行交换;所述设备进一步包括在操作期间不需要软件而以硬件实现,以及配置和监视期间需要软件实现的控制器, 所述控制器耦接到多个输入缓冲器和多个输出端口,控制器配置为当在多个输出端口中的 一个输出端口处的拥塞可预见时以及在交换核心内的拥塞发生之前,向多个输入缓冲器中 的一个输入缓冲器发送流量控制信号,控制器被配置为独立于多个信元片段的流量控制,为多个信元执行流量控制信令,控 制器被配置为独立于多个边缘设备的流量控制和多级交换结构的结构内流量控制,为多个 信元执行流量控制。
8.如权利要求1所述的设备,其中多级交换结构和多个边缘设备共同定义了交换核心;多个外围处理装置具有通过多个与协议相关联的连接耦接到多级交换结构的第一部 分,来自多个外围处理装置的第一部分中的每一个外围处理装置是具有虚拟化资源的存储 节点,多个外围处理装置的第一部分的虚拟化资源共同定义由交换核心互联的虚拟存储资 源;以及多个外围处理装置具有通过多个与协议相关联的连接耦接到多级交换结构的第二部 分,来自多个外围处理装置的第二部分中的每一个外围处理装置是具有虚拟化资源的计算 节点,多个外围处理装置的第二部分的虚拟化资源共同定义由交换核心互联的虚拟计算资 源。
9.如权利要求1所述的设备,其中多级交换结构和多个边缘设备共同定义交换核心;多级交换结构具有多个输入端口和多个输出端口;多个外围处理装置包括经由开放标准接口定义的连接耦接到多个输入端口中的一个 输入端口和耦接到多个输出端口中的一个输出端口的第一外围处理装置;多个外围处理装置包括经由由开放标准接口定义的连接耦接到多个输入端口中的一 个输入端口和耦接到多个输出端口中的一个输出端口的第二外围处理装置;第一外围处理装置是具有虚拟化资源的第一存储节点,第一外围处理装置被配置为使 得虚拟化资源可被与交换核心相关联的第二存储节点的虚拟化资源替代;以及第二外围处理装置是具有虚拟化资源的第一计算节点,第二外围处理装置被配置为使 得虚拟化资源可被与交换核心相关联的第二计算节点的虚拟化资源替代。
10.如权利要求1所述的设备,其中多级交换结构与基于信元的通信协议相关联;多个外围处理装置具有通过与基于分组的通信协议相关联的第一多个连接而耦接到 多级交换结构的第一部分,来自多个外围处理装置的第一部分中的每一个外围处理装置是 第一节点类型且与安全协议相关联;以及多个外围处理装置具有通过与基于分组的通信协议相关联的第二多个连接而耦接到 多级交换结构的第二部分,来自多个外围处理装置的第二部分中的每一个外围处理装置是 第二节点类型且与安全协议相关联。
11.如权利要求1所述的设备,其中多级交换结构和多个边缘设备共同定义交换核心,交换核心被配置为逻辑上划分为第 一虚拟交换核心和第二虚拟转交换核心;多个外围处理装置具有可操作地耦接到第一虚拟交换核心的第一外围处理装置子集 和可操作地耦接到第二虚拟交换核心的第二外围处理装置子集;以及交换核心被配置,从而使第一虚拟交换核心具有独立于第二虚拟交换核心带宽和管理 性管理的带宽和管理性管理。
12.如权利要求1所述的设备,其中多个边缘设备具有配置为耦接到多级交换结构的 多个第一端口和配置为耦接到多个外围处理装置的多个第二端口,多个边缘设备包括第一 边缘设备和第二边缘设备,第一边缘设备被配置为耦接到来自于多个外围处理装置的第一 外围处理装置,第二边缘设备被配置为耦接到来自于多个外围处理装置的第二外围处理装 置,第一边缘设备被配置为使得包括第一虚拟资源的多个虚拟资源在第一外围处理装置处 被定义,所述设备进一步包括耦接到多个边缘设备的网络管理模块,该网络管理模块被配置为提供多个虚拟资源, 从而使第一虚拟资源能从第一外围处理装置迁移到第二外围处理装置。
13.如权利要求1所述的设备,其中多个边缘设备具有第一部分,其共同具有耦接到多级交换结构的多个输出端口,并共 同具有被配置为耦接到多个外围处理装置的至少1000个输入端口,多个边缘设备中的每 一个边缘设备被配置为使得多个虚拟资源在多个外围处理装置处被定义,多个边缘设备具 有耦接到多级交换结构的第二部分,所述设备进一步包括耦接到第一多个边缘设备和第二多个边缘设备的网络管理模块,该网络管理模块被配 置为提供多个处理装置,从而使多个外围处理装置的第一外围处理装置的多个虚拟资源能 从多个外围处理装置迁移到第二外围处理装置。
14.如权利要求1所述的设备,其中多个边缘设备具有被配置为耦接到多级交换结构的多个第一端口和被配置为耦接到 多个外围处理装置的多个第二端口,在多个边缘设备的多个第一端口中的端口数目比在多 个边缘设备的多个第二端口中的端口数目少,多个边缘设备中的每一个边缘设备被配置为 使得多个虚拟资源在多个外围处理装置处被定义;多个边缘设备和多级交换结构被共同配置为使得从多个虚拟资源中的每一个虚拟资 源通过多个边缘设备中的相应边缘设备以及通过多级交换结构被发送的数据通信量独立 于从来自于多个虚拟资源的剩下虚拟资源发送的数据通信量,多个虚拟资源与多个边缘设备中其余的边缘设备相关联;以及多个边缘设备共同具有被配置为耦接到多个外围处理装置的至少100000个端口。
15.如权利要求1所述的设备,其中多个边缘设备包括具有分组处理模块的第一边缘设备,第一边缘设备被配置为接收分 组,第一边缘设备的分组处理模块被配置为基于分组产生多个信元;多个边缘设备包括具有被配置为基于多个信元重组分组的分组处理模块的第二边缘 设备;多级交换结构被耦接到第一边缘设备和第二边缘设备,多级交换结构具有多个交换模 块,多个交换模块中的每一个交换模块具有共享的存储装置,多级交换结构被配置为交换 多个信元,从而使多个信元被发送到第二边缘设备,多个交换模块中的每一个交换模块被 配置为不需要执行基于以太网的处理而交换信元;多个交换模块中的每一个交换模块被配置为基于多个信元中的信元的目的地址和独 立于一个顺序来交换该信元,该信元相对于多个信元中剩下的信元在交换模块处以该顺序 被接收;以及多个交换模块中的每一个交换模块的共享存储装置被配置为定义具有足够长用于多 级交换结构以实施信元交换同步和不足以用于多级交换结构在那个交换模块实施拥塞解 决方案的队列。
全文摘要
在实施例中,设备包括可以具有分组处理模块的第一边缘设备。第一边缘设备被配置为接收分组。第一边缘设备的分组处理模块可以被配置为基于分组产生多个信元。第二边缘设备具有配置为基于多个信元重组分组的分组处理模块。多级交换结构能耦接到第一边缘设备和第二边缘设备。多级交换结构能够定义单个逻辑实体。多级交换结构能具有多个交换模块。多个交换模块中的每一个交换模块具有共享的存储装置。多级交换结构能被配置为交换多个信元,从而使多个信元被发送到第二边缘设备。
文档编号H04L12/56GK101917331SQ200910246898
公开日2010年12月15日 申请日期2009年9月11日 优先权日2008年9月11日
发明者A·文卡特马尼, G·艾贝, J-M·弗爱龙, P·辛德胡, Q·沃赫拉 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1