CN105357152B - 用于高性能、低功率数据中心互连结构的系统和方法 - Google Patents
用于高性能、低功率数据中心互连结构的系统和方法 Download PDFInfo
- Publication number
- CN105357152B CN105357152B CN201510827453.6A CN201510827453A CN105357152B CN 105357152 B CN105357152 B CN 105357152B CN 201510827453 A CN201510827453 A CN 201510827453A CN 105357152 B CN105357152 B CN 105357152B
- Authority
- CN
- China
- Prior art keywords
- processing core
- processing
- core
- power management
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本发明提供了支持如下路由的系统和方法,该路由使用树状或者图形拓扑,该树状或者图形拓扑支持每节点多个链接,其中每个链接在拓扑内指定为向上、向下或者横向链接或者两者。该系统可以使用分段式MAC架构,该架构可以具有一种将MAC IP地址多目的化用于内部MAC和外部MAC并且将通常是物理信令的内容用于MAC以向交换机中馈送的方法。
Description
本申请是申请日为2010年10月19日、申请号为201080060153.5、发明名称为“用于高性能、低功率数据中心互连结构的系统和方法”的发明专利申请的分案申请。
优先权要求/相关申请
本专利申请要求35 USC 119(e)下的2009年10月30日提交的并且标题为“Systemand Method for Enhanced Communications in a Multi-Processor System of a Chip(SOC)”的美国临时专利申请系列号61/256,723的优先权,通过引用将其合并于此。
技术领域
本公开主要地涉及用于基于计算的系统的交换结构(switching fabric)。
背景技术
随着因特网、基于web的公司和系统的持续成长以及计算机的激增,如公知的那样,存在在温度受控制的位置容纳多个服务器计算机并且可以外部管理的许多数据中心。
图1A和1B示出了如目前众所周知的经典数据网络聚合。图1A 示出了典型网络数据中心架构100的图解视图,其中顶级交换机101a-n 在机架102a-n的顶层,这些机架102a-n由点缀有本地路由器103a-f的刀片服务器107a-n填充。附加存储路由器和核心交换机105a-b以及附加机架单元108a-n包含附加服务器104e-k和路由器106a-g。图1b示出了如下系统的示例性物理视图110,该系统具有布置于边缘路由器系统 112a-h周围的外围服务器111a-bn,这些边缘路由器系统112a-h放置于位于中央的核心交换系统113周围。通常,这样的聚合110具有从机架服务器到它们的机架顶交换机的1-Gb以太网以及经常具有通向边缘和核心路由器的10Gb以太网端口。
然而需要的是一种着重于网络聚合的用于分组交换功能的系统和方法,该系统和方法减少典型系统的大小和功率要求,而又同时减少成本,并且这一点正是本公开所涉及的。
附图说明
图1A和1B图示了典型数据中心系统;
图2是网络聚合系统的概况;
图3图示了机架系统中的示例性数据中心的概况;
图4图示了网络聚合系统的高级拓扑;
图5A图示了网络聚合系统的示例性交换机的框图;
图5B图示了MAC地址编码;
图6图示了网络聚合系统的广播机制的第一实施例;
图7图示了网络聚合系统的单播路由的示例;
图8图示了网络聚合系统的防故障单播路由的示例;并且
图9图示了网络聚合系统的广播机制的第二实施例。
具体实施方式
本公开特别可应用于如图所示和下文描述的网络聚合系统和方法,并且正是将在这一背景中描述本公开。然而将理解该系统和方法具有更大效用,因为可以使用在本公开的范围内的其他元件和架构来实施该系统和方法,并且本公开并不限于下文描述的示范实施例。
该系统和方法也支持如下路由,该路由使用树状或者图形拓扑,该树状或者图形拓扑支持每节点多个链接,其中每个链接在拓扑内指定为向上、向下或者横向链接或者两者。此外,如下文更具体描述的那样,系统中的每个节点可以是组合计算/交换机节点或者仅为交换机节点,并且输入/输出(I/O)可以驻留于任何节点上。系统也可以提供具有分段式以太网介质访问控制(MAC)架构的系统,该架构可以具有将MAC IP 地址多目的化(re-purpose)用于内部MAC和外部MAC并且将通常是物理信令的内容用于MAC以向交换机中馈送的方法。系统也可以提供一种非欺骗(non-spoofing)通信方法以及一种故障恢复(fault-resilient) 广播方法,该故障恢复广播方法可以具有一种用于故障恢复的单播误路由方法。在网络安全的背景中,欺骗攻击是如下情形,在该情形中,一个人或者程序通过伪造数据并且由此获得非法利益来成功地冒充为另一个人或者程序。
系统也可以提供在管理处理器之间的严格安全性,使得管理处理器可以相互“信任”。在(下文更详细描述的)图5A中所示的示例系统中,在每个SoC内有管理处理器(M3微处理器,框906,图5A)。信任管理处理器上运行的软件,因为a)销售商(在这一情况下为Smooth-Stone)已经开发和验证代码、b)不允许非销售商代码在处理器上运行。维持在管理处理器之间的信任关系允许它们传送命令(例如重新引导另一节点)或者请求来自另一节点的敏感信息而不担心用户可能欺骗请求并且获得对信息的访问或者系统的控制。
系统也可以提供如下网络代理,该网络代理在片上系统(SOC) 内的常通(always-on)功率域中具有集成微控制器,该微控制器可以接管用于更大板上处理器的网络代理并且可以应用于子树。系统也提供如下多域(multi-domaining)技术,该技术可以明显扩展可路由粗树(fat tree)状结构的大小而仅有对路由报头和路由表的不重要改变。
图2图示了网络聚合系统300。网络聚合支持一个或者多个高速链接301(粗线)(诸如10-Gb/秒以太网通信),该链接301连接聚合路由器302和一个或者多个机架303(诸如如图3中所示的三个机架 303a-c)。在第一机架303a中,网络聚合系统提供在机架内的架子上的一个或者多个Smooth-Stone计算单元306a-d(诸如服务器计算机)之间的由粗线表示的多个高速10Gb路径。在于2009年10月30日提交并且标题为“System and Method forEnhanced Communications in a Multi-Processor System of a Chip(SOC)”的美国临时专利申请系列号 61/256,723中更详细描述了每个Smooth-Stone计算单元的更多细节,通过引用将该申请整体结合于此。Smooth-Stone计算单元中的嵌入式交换机306a-d可以替换机架顶交换机,因此节省大量功率和成本而又仍然提供通向聚合路由器302的10Gb以太网端口。网络聚合系统交换结构可以将传统以太网(1Gb或者10Gb)集成到XAUI结构中,并且Smooth-Stone计算单元可以充当用于第三方以太网连接的服务器的机架顶交换机。
中间机架303b图示了网络聚合系统中的机架的另一配置,其中一个或者多个Smooth-Stone计算单元306e、f可以集成到已经包含机架顶交换机308a的现有数据中心机架中。在这一情况下,IT团体可以继续让它们的其他计算单元经由1Gb以太网直至现有机架顶交换机连接,并且内部Smooth-Stone计算单元可以经由10Gb XAUI结构来连接,并且它们可以如图2中所示用1Gb或者10Gb以太网互连集成直至现有机架顶交换机。第三机架303c图示了一种传统上部署数据中心机架的目前方式。第三机架303c中的细红线表示1Gb以太网。因此,数据中心机架的目前部署在传统上是直至机架顶交换机308b的1Gb以太网,并且然后是从机架顶交换机出来通向聚合路由器的10Gb(粗红线310)。注意所有服务器以未知量存在,而出于清楚和简单的目的,这里以有限量描绘它们。另外,使用增强型SS服务器,无需附加路由器,因为它们操作它们自己的XAUI交换结构,下文讨论。
图3示出了根据本系统一个实施例的示例性“机架中的数据中心”400的概况。“机架中的数据中心”400可以具有10-Gb以太网PHY 401a-n和1-Gb私有以太网PHY 402。大型计算机(功率服务器)403a-n 支持搜索;数据挖掘;编索引;Apache Hadoop(Java软件框架);MapReduce(Google引入的软件框架,该软件框架用于支持计算机集群上的对大数据集的分布式计算);云应用等。具有本地闪存和/或固态盘 (SSD)的计算机(服务器)404a-n支持搜索、MySQL、CDN、软件即服务(SaaS)、云应用等。单个大型慢速风扇405扩增它上方的竖直安装的服务器的对流冷却。数据中心400具有例如简单磁盘捆绑(JBOD) 配置的硬盘阵列406并且可选地具有盘外形规格的Smooth-Stone计算单元(例如阵列406和407中的绿框),这些计算单元可选地充当盘控制器。硬盘服务器或者SS盘服务器可以用于web服务器、用户应用和云应用等。也示出了存储服务器的阵列407和历史服务器408a、b(任何大小、任何销售商),历史服务器408a、b具有用于旧式应用的标准以太网接口。
机架400中的数据中心使用专用系统互连方式,该方式明显减少功率和接线并且实现异构系统,从而将集成现有的基于以太网的服务器并且实现旧式应用。在一个方面中,完整服务器或者存储服务器置于具有盘或者SSD外形规格中,具有带有4个ServerNodeTM的8-16个SATA 接口和带有4个ServerNodeTM的8个PCIe x4接口。它使用如下专用板来支持盘和/或SSD+ServerNodeTM,该专用板与(一个或多个)盘配对并且支持Web应用、用户应用、云应用、盘高速缓存等。
Smooth-Stone XAUI系统互连减少机架的功率、接线和大小。无需个别服务器上的高功率、昂贵以太网交换机和高功率以太网Phy。它明显减少线缆(线缆复杂性、成本和显著故障源)。它也实现机架以内的异构服务器混合,从而支持任何使用以太网或者SATA或者PCIe的设备。它可以集成到系统互连中。
具有分组交换机功能的片上服务器(SOC)的这里呈现的方面着重于网络聚合。SOC在功能上不是完全等同于工业标准网络交换机(如例如Cisco交换机或者路由器)。但是对于贯穿本文档讨论的某些应用,它赋予更佳价格/性能比以及功率/性能比。它包含层2分组交换机,基于源/目的地MAC地址路由。它还支持虚拟局域网(VLAN)而在域上可配置VLAN过滤传入分组以最小化域中的不必要的业务。在没有嵌入式交换机明确地具有VLAN支持的情况下,SOC内的嵌入式MAC具有向整个SOC提供VLAN能力的完整VLAN支持。它也可以通过管理处理器唤醒系统从而向管理处理器通知链接状态转变以对路由配置重新编程来绕过(route around)故障。这样的功能无需层3(或者以上)处理(即它不是路由器)。它也未赋予完整VLAN支持、针对QoS/CoS 的支持、地址学习、过滤、生成树协议(STP)等。
图4示出了网络系统的高级拓扑800,该拓扑图示了由交换结构连接的XAUI连接SoC节点。10Gb以太网端口Eth0 801a和Eth1 801b 来自树的顶层。椭圆802a-n是包括计算处理器以及嵌入式交换机两者的 Smooth-Stone节点。这些节点具有连接到内部交换机的五个XAUI链接。交换层将所有五个XAUI链接用于交换。0级叶节点802d、e(即N0n 节点或者Nxy,其中x=级别并且y=项目编号)仅使用一个XAUI链接以附着到互连,从而留下可以用作XAUI、10Gb以太网、PCIe、STAT 等的四个高速端口用于附着到I/O。大多数树和粗树仅以活跃节点作为叶节点,并且其他节点为纯交换节点。这一方式使路由简单直接得多。拓扑800具有允许每个节点为组合计算和交换节点或者仅为交换节点的灵活性。多收树型实施在叶节点上具有I/O,但是拓扑800让I/O在任何节点上。一般而言,将以太网置于树的顶层最小化了通向以太网的平均跳数。
更详细而言,图6中的面向树的拓扑中所示椭圆表示计算集群内的独立节点。图5A图示了集群的个别节点的一个示例实施。当着眼于例如图6中的拓扑的常规实施时,通常在更下级叶节点(例如N00-N08) 中发现计算节点,并且更上级节点无计算元件而是仅为网络交换元件 (N10-N21)。就图5A中所示节点架构而言,可以可选地实现A9核(905) 或者可以仅让它们掉电。因而图6中的更上级交换节点(N10-N21)可以用作纯交换元件(如同传统实施),或者我们可以使A9核模块上电并且使用它们作为计算集群内的完整节点。
交换机结构需要路由帧预加(prepend)到以太网帧。交换机仅针对路由帧内的字段操作并且不直接检查以太网帧。图5a示出了根据这里公开的系统和方法的一个方面的示例性交换机900的框图。它具有四个兴趣区域910a-d。区域910a对应于在CPU与内部MAC之间的以太网分组。区域910b对应于在内部MAC的以太网物理接口处的以太网帧,该帧包含前导、帧开始和帧间间隙字段。区域910c对应于在外部MAC 的以太网物理接口处的以太网帧,该帧包含前导、帧开始和帧间间隙字段。区域910d对应于在路由报头901的处理器与外部MAC 904之间的以太网分组。这一分段式MAC架构是不对称的。内部MAC具有通入路由报头处理器的以太网物理信令接口并且外部MAC具有通入路由报头处理器的以太网分组接口。因此,针对内部MAC和外部MAC多目的化MAC IP,并且利用通常是用于MAC向交换机中馈送的物理信令的内容。MAC配置使得A9核905的操作系统设备驱动器管理和控制内部 Eth0 MAC902和内部ETH1 MAC 903。管理处理器906的设备驱动器管理和控制内部Eth2 MAC 907。外部Eth MAC 904不受设备驱动器控制。以混杂(promiscuous)模式配置MAC 904以传递所有帧而无用于网络监视的任何过滤。在MAC的硬件实例化与任何其他必需管理处理器初始化之间协调这一MAC的初始化。外部Eth MAC 904寄存器对于A9 905和管理处理器906地址映射两者而言可见。用于外部Eth MAC 904 的中断可路由到A9或者管理处理器。XGMAC支持CPU可能想要监视的若干可中断事件,包括XGMII链接故障状态的任何改变、热插拔或者去除PHY、活状态或者链接状态改变以及任何RMON计数器达到与阈值寄存器相等的值。
在一些情况下,根据具体微结构可以有前导、帧开始和跨越XAUI 的帧间间隙。路由帧报头处理器可以标准化这些字段。XAUI接口可能需要一些或者所有这些字段。在这一情况下,在区域910d的路由报头处理器需要添加进入交换机的这些字段并且去除离开交换机的它们。为了减少需要通过XAUI发送的字节数量,可以去除这三个字段(如果 XAUI接口允许它)。在这一情况下,在区域910b的路由报头处理器将需要剥离进入交换机的这些字段并且添回离开交换机的字段。
路由帧报头处理器从MAC接收以太网帧,从而向交换机发送路由帧。它也标准化前导、帧开始和帧间间隙字段、预加路由报头并且从交换机接收路由帧,从而向MAC中发送以太网帧。这一处理器然后剥离路由报头并且标准化前导、帧开始和帧间间隙字段。注意,在结构内流动的所有帧是路由帧而不是以太网帧。仅在分组经由MAC进入或者离开结构时完成以太网/路由帧转换。也注意,交换机内的路由逻辑可以改变路由帧内的字段。从未修改以太网帧(除了添加/去除前导、帧开始和帧间间隙字段之外)。
路由帧由路由帧报头加上以太网帧的核心部分组成并且结构化为如下表1中所示:
表1
注意用于位大小设定(sizing)的实施假设是4096个节点→12位节点ID。可以按需在实施期间重新设定这些字段的大小。
路由帧报头由下表2中所示字段构成。
表2
如果交换机接收校验和失败的分组,则丢弃分组、递增统计计数器并且通知管理处理器。
路由帧处理器在若干目的地MAC地址编码之间进行区分。作为提示,如图5b中所示格式化MAC地址。下表描述了MAC地址内的3 字节OUI和3字节NIC特定字段的使用。这里公开的系统和方法的新颖方面之一是使用附加地址位以对内部到外部MAC映射编码,也如下表3中在“结构内部节点本地地址命中MAC查找CAM”下的第二条目中所示。
表3
另外,可以在表3中的“编码节点单播”以及允许一个内部节点或者链接对所有外部MAC部分寻址的“编码链接单播”和允许向邻近节点多播的“邻居多播”条目中发现其他新颖方面。
注意值SS_MAC_NODE_ENCODED_MAGIC和 SS_MAC_LINK_ENCODED_MAGIC是用于唯一标识这些MAC地址类型的恒定标识符。术语“幻(magic)数”是用于如下恒定数值或者文本值的标准行业术语,该数值或者文本值用来标识文件格式或者协议。在两个寄存器(magicNodeEncodedMAC和macgicLinkEncodedMAC,这些寄存器在硬件初始化期间默认为标准值、但是允许管理处理器软件以如果必要则改变它们)中配置这些幻数。
报头处理器包含MAC查找CAM(内容可寻址存储器)、即 macAddrLookup,其如下表4中所示从6字节MAC地址映射到12位节点ID。
表4
这一CAM中的行数依赖于实施,但是将有望在256-1204行的级。管理处理器利用用于SS结构内的所有节点的节点ID映射初始化CAM。根据用于行的本地节点(Node Local)位的设置有两类行。本地节点字段针对默认MAC地址允许CAM中的MAC地址的4:1压缩,从而将所有四个MAC映射到CAM表(下表5)中的单行。
表5
CAM中的任意行允许将MAC地址别名映射到节点。Linux(和 MAC)允许在网络接口上重新分配MAC地址(例如利用ifconfig eth0 hw ether 00:80:48:BA:d1:30)。这有时由虚拟化/云计算用来避免需要在开始会话之后对重新ARP(re-ARP)的需要。
交换机架构提供如下次级MAC查找CAM,该CAM仅存储用于与交换机OUI匹配的那些地址的MAC地址的NIC特定部分的3字节。这一本地OUI CAM的可用性由实施确定。见下表6。
表6
可以评估用于三类MAC地址编码的最大节点数量限制如下:
1.默认MAC地址-管理处理器设置用于结构中的每个节点的本地节点映射。在CAM中有用于每个节点的一个条目。最大节点数量由MAC 地址查找CAM中的最大行数控制。
2.编码节点地址-对所有MAC重新编程以使用编码节点地址。以这一方式,将节点ID直接编码成MAC地址。未使用MAC查找CAM 中的条目。最大节点数量由单播查找表中的最大行数控制(与查找CAM 相比更容易变大)。注意这也在MAC查找CAM逻辑失败的情况下给予我们一些风险减轻。针对编码节点地址思想提供用例。
3.任意MAC地址别名-取CAM中的行。作为示例,512行CAM 可以保持256个节点(本地节点地址)+每个节点1个MAC地址别名。
由于仅在路由报头创建期间访问查找CAM,所以如果结构内的 MAC地址用作分组内的源或者目的地MAC地址,则管理处理器实际上仅需填充行。换而言之,如果两个节点将从不相互通话,则无需创建映射行。但是通常管理处理器不会具有该知识,因此期望在所有节点中创建用于所有节点的映射。也注意即使未在查找CAM中创建条目,实际上仍将通过将分组通过外部路由器路由除以太网网关、回到结构、去往目的地阶段来使路由成功。
表7定义如何针对除了目的地节点和端口之外的所有字段设置路由报头内的字段。
表7
表8定义如何设置用于结构内的地址的目的地节点和端口。
表8
表9定义如何设置用于结构以外的地址的目的地节点和端口。
表9
此外,这里公开的系统和方法的管理处理器软件架构依赖于管理处理器节点相互“信任”的能力。关于管理处理器到管理处理器通信的这一更严格安全性以及跨越结构的在私有管理LAN上的更佳安全性是希望的。可以通过针对需要多个“硬”安全域的环境简单地定义客户简单地不混合结构内的安全域来减轻这一结构问题。在这样的情况下,可以有可能将14节点的板连接到机架顶交换机,从而允许客户具有每个14节点板的VLAN粒度控制。
已经描述的多域结构架构通过跨越结构创建安全“隧道”和域来解决VLAN支持的缺乏,并且它可以在1:1基础上与VLAN保护的路由器端口互操作。
这里公开的系统和方法中的用于域管理的方式如下:支持结构内的多个域ID。允许向域ID个别分配(并且如果未设置则用域0标注) 节点内的每个MAC(管理处理器、MAC0、MAC1、网关)。允许节点内的每个MAC具有指示对管理域的访问的位。与MAC关联的域ID仅可以由管理处理器分配并且不可以由A9变更。对于MAC(内部和外部两者)生成的帧,路由帧处理器将用与该MAC关联的域ID和管理域状态标注路由帧。域将提供隧道或者VLAN的效果,其中它们将分组(单播和多播)保持于该域内,从而允许该域以外的MAC不能够嗅探或者欺骗那些分组。此外,这一方式将运用五位域ID。它将添加用于控制域处理的选项(如例如具有每MAC的布尔值的交换机,该布尔值定义分组是否与非定义(即零)域ID一起递送,或者具有每MAC的布尔值的交换机,该布尔值定义分组是否与已定义(非零)、但是非匹配域ID 一起递送。交换机中的又一选项可以关断每MAC的编码节点MAC地址(消除另一潜在攻击矢量样式)。
为了保持管理处理器到管理处理器通信安全,可以标记所有管理处理器MAC上的管理域位。一般而言,管理处理器应当在域1上(按照惯例)路由。这样的技术允许所有管理处理器隧穿管理域上的分组,使得其他VLAN或者域上的任何其他设备(在结构以内或者以外)不能检查或者欺骗它们。另外,为了提供安全管理LAN,可以分配具有设置的管理域位的网关MAC,从而保持管理分组对于于管理处理器域而言是私有的。此外,交换机结构可以通过关联每个网关MAC与单独域来支持它本身内的“多租户(tenant)”。例如每个网关MAC可以连接到外部路由器上的个别端口,从而允许该端口可选地与VLAN关联。在分组进入网关时,用域ID标注它们,从而保持该业务对于跨越结构的与该域关联的MAC而言私有。
交换机支持多个寄存器(aka CSR、aka MMR)以允许软件或者固件控制交换机。这些寄存器的实际布局将由实施限定。表10中列举的字段为软件读/写。所有这些寄存器需要具有一种用于保护它们不被 A9写入的机制(可以是安全模式或者在管理处理器私有总线上)。
表10
表11中所示寄存器包含于交换机实施中,但是无需软件可访问。
表11
注意软件应当能够关于活跃分组路由自动更新路由表 (unicastRoute)和macAddrLookup CAM。一个实施将是在更新操作期间拖延对这些表的路由访问。
广播/多播路由
图6示出了根据这里公开的系统和方法的一个方面的示例性广播机制 100。在节点N101001与N21 1002之间的链接如虚线1003所示向下。在多播分组的路由报头生成期间,源节点将用于该源节点的递增的广播ID置于路由帧(rframe.bcastID)中。当节点接收多播路由帧(即 rframe.rfType==多播||rframe.rfType==邻居多播)时,它检查以查看它是否已经看见这一广播分组。通过访问具有如下标签的bcastIDseen CAM 来完成检查,该标签形成有广播源节点和广播ID。如果已经看见它(即 CAM命中),则不执行动作。如果以前尚未看见广播帧,则它将它广播到适当内部端口和外部网关(intPortBroadcastVec寄存器)并且经过除了它参与的链接之外的所有向外XAUI链接重新广播它。注意如果设置broadcastLateral寄存器则它仅经过横向广播。不必广播多数拓扑上的横向,并且这样做可以来通过禁用它来减少重复的广播分组数量。它然后按照FIFO顺序向bcastIDSeen CAM添加这一广播标签。在图7中, N04 1004向所有邻居(即N11 1105)发起广播。N11尚未看见分组,因而它向所有非传入邻居(在这一示例中为N21 1002、N20 1006、N03、 1007和N051008)广播并且内部接受分组。节点N03和N05尚未看见分组,因而它们内部接受广播并且完成。N21尚未看见分组,因而它向所有活跃非传入链接(例如N10、N12 1009)广播分组并且内部接受分组。N20向所有活跃非传入链接(即N12)广播分组并且内部接受分组。 N10向N001010、N01 1011和N02 1012向下广播。N12向N06 1013、 N07 1014、N08 1015并且向N21和N20之一(它未从其获得广播分组的一个)重新广播。注意N20和N21之一以及N12看见分组两次。它们仅作用于它们的第一实例,它二次命中广播CAM视为重复,并且忽略分组。
单播路由
到其他节点的单播路由
单播路由(如图7中所示)负责将非多播(即单播)分组向下一节点路由。这通过利用软件计算的unicastRoute[]下一节点路由表来完成,该路由表提供用于到达目的地节点的可用链接的矢量。
条件
rframe.rfType==Unicast(单播)
路由
有与绕过故障有关的大量复杂性。将单独讨论无故障路由和绕过故障。
传统上,在树形路由中,分组将向上路由直至到达(源、目的地) 的共同父亲。这一向上路由可以是确定性的、遗忘的(oblivious)或者自适应的。分组然后使用确定性路由向目的地向下路由。
作为示例,图7图示了从节点N00 1010到N08 1015的分组路由。分组在向上阶段中经过节点N10 1001向共同祖先(N21))路由,并且然后在下降阶段中向目的地路由。
注意在节点N10处的向上阶段期间有两个候选链接(N10,N21) 和(N10,N20)。可以确定性地选择第一候选链接,或者自适应算法可以动态选择任一链接。但是一旦节点到达共同祖先并且向下转向,就没有用于节点到达目的地的冗余路径(一般而言)。
在不存在故障时的单播路由
每个链接在这一unicastRoute表内加注有2位链接权重,其中软件可以表达经由这一链接到目的地节点的相对成本/距离。按照惯例,链接权重应当表示:
·0=无路由
·3=直接下一跳连接
·1和2=软件计算的相对成本。作为示例,如果有跨越3个链接(这些链接具有2个跳跃、3个跳跃和6个跳跃的成本)的路由,则可以向前两个链接分配权重=2并且可以向6个跳跃的路径分配权重=1。
用于无故障单播路由的算法:
·从单播路由表获得链接权重矢量
οlinkWeightVector=unicastRoute[rframe.dstNode]
·去除它参与的链接以去除将它发送回的可能性
·去除未向上的任何链接
·在这一点具有如下链接的候选列表,这些链接具有关联链接权重。
·从最高优先级(3)经过1向下开始经过链接权重迭代。收集在这一优先级的链接的候选列表,从而一旦候选列表具有至少一个链接就停止。结果是在最高优先级的链接的候选列表。作为示例,如果有处于权重=2 的2个链接和处于权重=1的2个链接,则优先级化的候选列表将包含处于权重=2的两个链接。
·检查自适应寄存器以确定是进行自适应还是确定性路由。
οadaptive(自适应)==0指示将使用确定性路由,因而从优先级化的候选列表选择第一链接。
οadaptive==1指示将使用自适应路由。交换机实施将选择一种用于从优先级化的候选列表自适应地选择目标链接的算法。该自适应算法可以与围绕列表的循环法(round-robin)一样简单。替代地,可以选择以考虑(factor in)其他属性(例如FIFO自由深度、链接速度…)
■一个实施选项可以是添加寄存器选项以允许路由器从所有非零权重自适应地选择或者仅从最高优先级的候选列表自适应地选择。
·从选择的链接发送分组。
故障恢复单播路由
数个问题造成故障恢复单播路由的复杂性:
·希望仅用本地化知识完成故障路由。节点隐式地知道链接向下通向邻居节点。选择设计以避免由于在存在故障时维持全局统一状态的复杂性而必须传送链接(或者节点)向下去往结构中的别处。
·树中的路由的性质。在分组路由的上升阶段期间,可以从冗余链接自适应地选择链接,因而避免具有正常自适应链接选择的链接可以是简单直接的。
·但是一旦分组开始下降,传统上就没有用于下降路径的冗余路径(这些冗余路径遵循路由规则),因而故障路由可能变得有挑战性。
图8图示了链接故障(N10,N21)以及单播路由使用前文描述的正常自适应路由算法来选择(N10,N20)链接。但是注意如果分组向 N20向上路由并且链接(N20,N12)向下,则没有用于到达目的地的容易路径。
具有用于处置绕过故障的两种方式:
·软件可以组成具有权重=1的替代、但是非所需路由。将调用这些逃逸路由。这些是可能违反在绕过故障期间使用的严格路由规则的低优先级路由。作为示例,如果链接(N20,N12)向下,则用于N20的 unicastRoute[N08]条目可以包含具有权重=2的通向N12的链接和具有权重=1的通向N11的链接。以这一方式,正常自适应路由算法将自动完成N20->N11->N21->N12->N08路径。
·结构架构包括一种称为“误路由(misroute)”的技术。误路由提供迭代退回(backtrack)。
·这两种技术将提供实质上的单播故障恢复。
单播误路由
作为示例,考虑以下拓扑,该拓扑具有已经出故障的3个链接1101、1102 和1103(在图9中以红色示出)。考虑从N0到N3的单播路由。将考虑以下路由以理解误路由技术,从而理解这仅为可能已经自适应选择的若干路由之一。
·N0到N6路由的分组
·N6到N10路由的分组
·N10看见它除了它参与的链接之外没有用于达到N3的路径。N10在路由报头中设置misrouting位并且将它发送回到N6。
·N6看见分组被误路由、在路由报头中的misrouteVector中设置用于N10链接的位、选择尚未误路由的替代链接并且向N11发送分组。
·N11看见它除了它参与的链接之外没有通向N3的路径。
misrouting位已经接通并且将它发送回到N6。
·N6看见分组被误路由、将N11链接添加到misrouteVector(现在包含N10和N11链接ID)、选择尚未误路由的替代链接并且将它发送到N7。
·N7看见设置了misrouting位、但是确实具有通向N3(通向N12) 的有效链接,并且因此清除报头中的misrouting位并且向N12转发分组。
·N12向N9发送。
·N9unicastRoute现在可能包含通向N3的链接(权重=3)和通向 N8的链接(权重=2)。正常自适应路由将不选择通向N3的直接链接,因为它向下,并且将把分组向N8、然后最终向N3路由。
·如果N6已经穷举它的候选链接列表(意味着misrouteVector将它们全部掩蔽),则实施然后具有两个选择:
ο丢弃分组并且向M3通知路由失败。
ο清除misrouteVector从而留下misrouting被设置并且经过向下链接之一(如果存在一个)转发分组。这将在更低一层重试误路由。实施可能想要具有用于在更低层选项实现这一重试的寄存器位 (enableRecursiveMisrouting)。
有如下寄存器enableMisrouting,该寄存器允许软件控制交换机是否将发起误路由算法。
多域
发明人也知道如下多域,多域的目的在于增加节点到大量节点(例如64K 个节点)的寻址性,而不必将单播路由表的大小增加至64K个节点。
如当前描述的那样,单播路由表是按照节点编号(即0到 MAX_NODES-1)编索引的单维数组,其中一个典型实施将在256与4K 个节点之间。
这一节现在将描述如何变更当前架构以支持具有最多64K个节点的多个域。
·节点名称空间从自0到MAX_NODES-1的节点ID改变成(域 ID,节点ID)的2元组,其中域ID和节点ID两者范围从0到255。因而可以有效地有256个域,其中每个域可以包含上至256个节点。
·单播路由表从大小为MAX_NODES的单维表改变成大小为256 的二维表。单播路由表现在从unicastRoute[NODES]的结构改变成 unicastRoute[2][256]。
ο本地域路由:当向这一域内的节点路由时,单播路由表作为 unicastRoute[0][节点ID]来访问并且提供用于从当前节点向指定的节点 ID路由的加权链接矢量。
ο远程域路由:当向远程域内的节点路由时,单播路由表作为 unicastRoute[1][域ID]来访问并且提供用于从当前节点向指定的域ID路由的加权链接矢量。
·路由帧:向路由帧添加一位dstRemote,其在向远程域路由时被设置为真(true)。
·本地监管的MAC地址:下面的节描述编码节点单播MAC地址编码如下:
这针对多域而获得更改如下:
·创建路由帧报头:表2描述用于创建路由帧报头的算法。这在多域情况下由以下扩充:
网络代理
网络代理的概念是主处理器(图5A,905)用于在处于低功率睡眠/冬眠(hibernation)状态时维持网络存在并且当需要进一步处理时智能醒来的能力。有与网络代理有关的若干架构特征:
·有用于允许重新映射端口ID的CSR(portRemap)。在效果上,当交换机将向内部MAC0端口(例如图5A,902)递送分组时,这一端口重新映射CSR允许软件将MAC0重新映射到管理处理器MAC(例如图5A, 907)并且让分组递送到管理处理器用于网络代理处理。这一重新映射CSR也可以用来将MAC1业务重新映射到MAC0或者MAC1业务重新映射到管理处理器。
·通常,交换机看到路由帧的目的地节点ID以决定分组是向节点内的内部端口递送还是获得向其他XAUI连接节点路由。这通过匹配目的地节点ID与“我的节点ID”来完成。如果nodeRangeLo<= Destination_Node<=nodeRangeHi||myNodeID==Destination_Node,则节点ID匹配寄存器(nodeRangeLo,nodeRangeHi)使分组向节点内的内部端口递送。这允许节点为节点子树做代理。
典型使用序列将是以下形式:
·管理处理器维持节点上的用于MAC0和MAC1的IP到MAC地址映射。这可以经由这些映射的从主处理器OS到管理处理器的显式通信来完成或者可以通过让管理处理器探听本地无偿ARP广播来隐式地完成。
·主处理器与管理处理器协调以进入低功率休眠(dormant)状态。在这一转变期间,管理处理器建立用于将MAC0和MAC1业务向管理处理器路由的端口ID重新映射CSR。
·管理处理器处理任何传入MAC0/MAC1分组。有3类处理:
·对需要简单响应(例如ARP响应和ICMP ping)的一些事务类做出响应。
·倾卸(dump)和忽略一些分组类,通常为以其他计算机为目标的单播或者广播分组。
·决定必须唤醒主处理器以处理一些分组类。管理处理器将唤醒主处理器、撤消端口ID重新映射寄存器并且经过交换机重新发送回分组,其中它们将获得重新路由回到MAC/1。
在LAN上唤醒的幻分组(magic packet)
在传统桌面型计算机中,待唤醒的计算机被关闭(睡眠、冬眠或者软关断;即ACPI状态G1或者G2)而为网卡保留功率,但是未从它的电源断开。网卡监听包含它的MAC地址的具体分组、调用幻分组、在用于该特定子网(或者整个LAN,但是这需要特殊硬件或者配置)的广播地址上广播。在OSI模型中的数据链路或者层2上发送幻分组并且向广播地址的网络内的所有NIC广播该分组;未使用IP地址(OSI模型中的层 3)。当监听计算机接收这一分组时,网卡为了正确信息检查分组。如果幻分组有效,则网卡使计算机脱离冬眠或者待机或者启动它。
幻分组是如下广播分组,该分组在它的净荷内别处包含:6个字节的一(产生十六进制FF FF FF FF FF FF)、跟随有目标计算机的MAC 地址的十六次重复。由于仅针对上述串扫描幻分组而不是通过全协议栈实际解析该幻分组,所以可以发送它作为任何网络和传送层协议的广播分组。通常将它发送到端口0、7或者9作为UDP数据报或者在以前时间作为IPX分组。
使用刚才描述的网络代理结构,管理处理器可以支持这些LAN 上唤醒的分组。它将获得这些广播分组、将知道用于节点上的其他MAC 的MAC地址并且能够适当地唤醒主处理器。在交换机中无需进一步功能以支持这些LAN上唤醒的分组。
尽管前文已经参照本发明的特定实施例,但是本领域技术人员将理解可以做出这一实施例中的改变而不脱离本公开的原理和精神,本公开的范围由所附权利要求书限定。
Claims (10)
1.一种片上系统,包括:
两个或更多处理核心;以及
辅助处理器,耦合到所述两个或更多处理核心中的每个处理核心,其中当所述辅助处理器确定所述处理核心中的第一处理核心处于非活动状态中时,所述辅助处理器促使被指引到所述两个或更多处理核心中的所述第一处理核心的通信请求被保持在所述片上系统通过其与远程系统进行通信的交换结构中,其中所述辅助处理器评估所述处理核心以确定所述处理核心中的当前处于允许所述处理核心中的第二处理核心执行所述通信请求中所请求的任务的状态中的所述第二处理核心,并且其中在确定所述处理核心中的所述第二处理核心当前处于允许所述处理核心中的所述第二处理核心执行所述任务的所述状态中同时所述处理核心中的所述第一处理核心仍然处于所述非活动状态中之后,所述辅助处理器促使所述通信请求被递送给所述处理核心中的所述第二处理核心,以便允许所述处理核心中的所述第二处理核心执行所述任务。
2.根据权利要求1所述的片上系统,其中所述处理核心中的所述第二处理核心处于允许所述处理核心中的所述第二处理核心执行所述任务的状态中包括:所述处理核心中的第二处理核心具有足够的处理功率可用于执行所述任务。
3.根据权利要求2所述的片上系统,其中所述第一处理器在处于所述非活动状态中时是睡眠的。
4.一种片上系统,包括:
两个或更多处理核心;
交换结构,耦合到所述两个或更多处理核心中的每个处理核心;以及
辅助处理器,耦合到结构交换机并且耦合到所述处理核心中的每个处理核心,其中所述辅助处理器使得所述处理核心中的每个处理核心能够在非活动状态与活动状态之间选择性地被转换,其中所述辅助处理器接收并且响应于意图用于由所述处理核心中的第一处理核心处理的通信请求,其中在所述处理核心中的所述第一处理核心处于所述非活动状态中时,所述辅助处理器接收并且响应于所述通信请求,其中所述辅助处理器在将所述处理核心中的所述第一处理核心从所述非活动状态转换为所述活动状态之后使得所述交换结构能够向所述处理核心中的所述第一处理核心提供与所述通信请求相关联的数据,并且其中在所述处理核心中的所述第一处理核心正从所述非活动状态被转换为所述活动状态时,所述辅助处理器保持所述通信请求在所述交换结构中是搁置的。
5.根据权利要求4所述的片上系统,其中:
所述非活动状态是如下状态,在所述状态中,被分配给所述处理核心中的所述第一处理核心的电功率不足以用于执行所述通信请求中所请求的任务;并且
所述活动状态是如下状态,在所述状态中,被分配给所述处理核心中的所述第一处理核心的电功率足以用于执行所述任务。
6.根据权利要求5所述的片上系统,其中所述第一处理器在处于所述非活动状态中时是睡眠的。
7.一种在处理系统中的片上系统节点,包括:
处理核心,每个处理核心都能够被操作在两个或更多不同的功率电平;
一个或多个外部通信接口,允许与一个或多个其他系统的对信息的通信,其中所述外部通信接口中的每个外部通信接口都耦合到所述处理核心中的至少一个处理核心;以及
一个或多个功率管理部分,耦合到所述处理核心中的每个处理核心,其中所述一个或多个功率管理部分确定对于在所述处理核心中的每个处理核心处的计算的需求,其中所述一个或多个功率管理部分确定从至少一个可控制的电源单元向所述处理核心中的每个处理核心分配电功率的方式,以满足对于所述处理核心中的每个处理核心的计算的所述需求,其中所述一个或多个功率管理部分能够从多个可控制的电源单元选择性地分配电功率,并且其中所述一个或多个功率管理部分从所述可控制的电源单元中当前没有向所述处理核心供应功率的特定的一个可控制的电源单元分配附加的电功率,以便满足对于所述处理核心中的每个处理核心的计算的所述需求;
其中所述一个或多个功率管理部分使得所述处理核心中的每个处理核心能够在活动状态与非活动状态之间选择性地被转换;
其中所述一个或多个功率管理部分接收并且响应于意图用于由所述处理核心中的第一处理核心处理的通信请求;
其中当所述处理核心中的所述第一处理核心处于所述非活动状态中时,所述一个或多个功率管理部分接收并且响应于所述通信请求;并且
其中在将所述处理核心中的所述第一处理核心从所述非活动状态转换到所述活动状态之后,所述一个或多个功率管理部分使得与所述通信请求相关联的数据能够被提供给所述处理核心中的所述第一处理核心;并且
其中在所述处理核心中的所述第一处理核心正从所述非活动状态被转换为所述活动状态时,所述一个或多个功率管理部分保持所述通信请求在交换结构中是搁置的。
8.一种在处理系统中的片上系统节点,包括:
处理核心,每个处理核心都能够被操作在两个或更多不同的功率电平;
一个或多个外部通信接口,允许与一个或多个其他系统的对信息的通信,其中所述外部通信接口中的每个外部通信接口都耦合到所述处理核心中的至少一个处理核心;
一个或多个功率管理部分,耦合到所述处理核心中的每个处理核心,其中所述一个或多个功率管理部分确定对于在所述处理核心中的每个处理核心处的计算的需求,其中所述一个或多个功率管理部分确定从至少一个可控制的电源单元向所述处理核心中的每个处理核心分配电功率的方式,以满足对于所述处理核心中的每个处理核心的计算的所述需求,其中所述一个或多个功率管理部分能够从多个可控制的功率电源单元选择性地分配电功率,并且其中所述一个或多个功率管理部分从所述可控制的电源单元中当前没有向所述处理核心供应功率的特定的可控制的电源单元分配附加的电功率,以便满足对于所述处理核心中的每个处理核心的计算的所述需求;以及
交换结构,耦合到所述两个或更多处理器核心中的每个处理器核心,其中结构交换器允许在所述处理核心中的每个处理核心与所述外部通信接口中的每个外部通信接口之间的选择性通信;
其中在所述一个或多个功率管理部分确定所述处理核心中的第一处理核心处于非活动状态中时,所述一个或多个功率管理部分促使被指引到所述处理核心中的所述第一处理核心的通信请求被保持在所述交换结构中;
其中所述一个或多个功率管理部分评估所述处理核心以确定所述处理核心中的当前处于活动状态中的第二处理核心;并且
其中在确定所述处理核心中的所述第二处理核心当前处于所述活动状态中之后,所述一个或多个功率管理部分促使所述通信请求被递送给所述处理核心中的所述第二处理核心,以便允许所述处理核心中的所述第二处理核心执行所述通信请求中所请求的任务。
9.根据权利要求8所述的片上系统节点,其中:
在促使所述通信请求被递送给所述处理核心中的所述第二处理核心之前,所述一个或多个功率管理部分评估所述处理核心中的所述第二处理核心以确定可用的处理功率容量;并且
响应于确定所述处理核心中的所述第二处理核心具有足够的处理功率可用于执行所述任务,所述一个或多个功率管理部分促使所述通信请求被递送给所述处理核心中的所述第二处理核心。
10.根据权利要求9所述的片上系统节点,进一步包括:
辅助处理器,耦合到所述结构交换机并且耦合到所述处理核心中的每个处理核心,其中所述辅助处理器包括所述一个或多个功率管理部分。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US25672309P | 2009-10-30 | 2009-10-30 | |
US61/256,723 | 2009-10-30 | ||
US12/794,996 | 2010-06-07 | ||
US12/794,996 US20110103391A1 (en) | 2009-10-30 | 2010-06-07 | System and method for high-performance, low-power data center interconnect fabric |
CN201080060153.5A CN102668473B (zh) | 2009-10-30 | 2010-10-19 | 用于高性能、低功率数据中心互连结构的系统和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080060153.5A Division CN102668473B (zh) | 2009-10-30 | 2010-10-19 | 用于高性能、低功率数据中心互连结构的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105357152A CN105357152A (zh) | 2016-02-24 |
CN105357152B true CN105357152B (zh) | 2018-08-31 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1890990A (zh) * | 2003-12-12 | 2007-01-03 | 西门子公司 | 替代切换在空间上分开的交换系统的方法 |
CN101060442A (zh) * | 2006-04-22 | 2007-10-24 | 华为技术有限公司 | 一种链路状态检测装置及方法 |
CN101083606A (zh) * | 2006-05-29 | 2007-12-05 | 中兴通讯股份有限公司 | 移动交换中心仿真的容灾备份方法及其装置 |
CN101361333A (zh) * | 2005-11-18 | 2009-02-04 | 桑德拉系统公司 | 用于会话初始协议(sip)快速切换的方法、系统和计算机程序产品 |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1890990A (zh) * | 2003-12-12 | 2007-01-03 | 西门子公司 | 替代切换在空间上分开的交换系统的方法 |
CN101361333A (zh) * | 2005-11-18 | 2009-02-04 | 桑德拉系统公司 | 用于会话初始协议(sip)快速切换的方法、系统和计算机程序产品 |
CN101060442A (zh) * | 2006-04-22 | 2007-10-24 | 华为技术有限公司 | 一种链路状态检测装置及方法 |
CN101083606A (zh) * | 2006-05-29 | 2007-12-05 | 中兴通讯股份有限公司 | 移动交换中心仿真的容灾备份方法及其装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104836755B (zh) | 用于高性能、低功率数据中心互连结构的系统和方法 | |
TWI543566B (zh) | 基於軟體定義網路的資料中心網路系統及其封包傳送方法、位址解析方法與路由控制器 | |
US9977763B2 (en) | Network proxy for high-performance, low-power data center interconnect fabric | |
US20160285765A1 (en) | Virtual network device architecture | |
JP5654142B2 (ja) | ネットワーク・スイッチを構成するための方法 | |
Jyothi et al. | Towards a flexible data center fabric with source routing | |
US9185056B2 (en) | System and methods for controlling network traffic through virtual switches | |
JP2014135721A (ja) | データセンタネットワークのトラフィックを分配するための装置および方法 | |
US9008080B1 (en) | Systems and methods for controlling switches to monitor network traffic | |
JP6248938B2 (ja) | 通信システム、仮想ネットワーク管理装置、仮想ネットワークの管理方法及びプログラム | |
Li et al. | Towards full virtualization of SDN infrastructure | |
Arora et al. | ProActive routing in scalable data centers with PARIS | |
US20170237691A1 (en) | Apparatus and method for supporting multiple virtual switch instances on a network switch | |
CN105357152B (zh) | 用于高性能、低功率数据中心互连结构的系统和方法 | |
CN108833284A (zh) | 一种云平台和idc网络的通信方法及装置 | |
Shahbaz et al. | Elmo: Source-routed multicast for cloud services | |
Shafer et al. | Axon: A flexible substrate for source-routed Ethernet | |
Chen et al. | Svdc: a highly scalable isolation architecture for virtualized layer-2 data center networks | |
JP2009081816A (ja) | パケット中継装置 | |
WO2023014252A1 (en) | System and method for cache pooling and efficient usage and i/o transfer in disaggregated and multi-processor architectures via processor interconnect |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180831 |