分层/无损的分组抢先以减少流控制的基于分组的网络中的等待时间抖动的制作方法

文档序号:9602819阅读:226来源:国知局
分层/无损的分组抢先以减少流控制的基于分组的网络中的等待时间抖动的制作方法
【专利说明】分层/无损的分组抢先以减少流控制的基于分组的网络中 的等待时间抖动
[0001] 背景信息
[0002] 近年来,对高性能计算(HPC)的使用和兴趣已出现大幅增长。过去,HPC通常与 所谓的"超级计算机"相关联。超级计算机在I960年代面世,最初以及数十年来主要由 SeymourCray在以SeymourCray的名字或首字母缩写命名的控制数据公司(CDC)、Cray研 究以及随后的多个公司制造。虽然1970年代的超级计算机仅使用几个处理器,但在1990 年代,具有数千个处理器的机器开始出现,并且近来已经实现具有数十万个"现成"的处理 器的大规模并行超级计算机。
[0003] 存在许多类型的HPC架构,这些HPC架构以不同级别的规模和性能被实现和被研 究。然而,共同的思路是诸如处理器和/或处理器核之类的大量计算单元的互连,以用于以 并行的方式协作地执行任务。根据近来的芯片上系统(SoC)设计和提案,使用二维(2D)阵 列、三维环(torus)、环或其它配置在单个SoC上实现大量的处理器核或类似物。此外,研究 人员已经提出了 3DSoC,其中100个或甚至1000个处理器核以3D阵列互连。在多个服务 器板上的多个分开的多核处理器和SoC也可以间隔很近,多个服务器板又通过背板或类似 物通信地互连。另一常见方法是互连在通常以2D阵列配置的服务器的机架(例如刀片式服 务器和模块)中的多个互连计算单元。声称是世界上最快的超级计算机的IBMSequoia(红 杉)包括总计1,572, 864个核的服务器刀片/模块的96个机架的2D阵列,在峰值性能下 工作时消耗巨额的7. 9兆瓦。
[0004]HPC的性能瓶颈之一是由在计算节点之间的多个互连上传送数据引起的等待时 间。典型地,这些互连以互连层次结构构造,最高速和最短的那些互连在处理器/SoC内处 于该层次结构的顶部,而等待时间随着沿层次结构级别向下而增加。例如,在处理器/SoC 级别之后,互连层次结构可包括处理器间的互连级别、板间的互连级别、以及将各个服务器 或各个服务器的聚集与其它机架中的服务器/聚集相连接的一个或多个附加的级别。
[0005] 互连层次结构的一个或多个级别采用不同协议是常见的。例如,SoC之内的多个互 连典型地是专有的,而层次结构中的较低级别可采用专有或标准化的多个互连。不同的互 连级别还将典型地实现不同的物理(PHY)层。作为结果,必须在多个互连级别之间采用一 些类型的互连桥接。此外,当实现异构计算环境时,给定互连级别内的桥接可能是必须的。
[0006] 在互连层次结构的较低级别,使用诸如以太网(在各种IEEE802. 3标准中定义) 和无限带宽(InfiniBand)之类的标准化互连。在PHY层,这些标准中的每一种支持有线连 接(诸如缆线和在背板上)以及光链路。以太网在0SI7层模型中的链路层(层2)上实 现,并且从根本上被视为链路层协议。无限带宽(InfiniBand)标准定义了用于无限带宽的 覆盖0SI层1-4的各个0SI层方面。
[0007] 高性能结构可承载不同类型的业务,其中每种类型可具有对于等待时间的不同要 求。具体地,一些业务可能由非常大的消息组成,其等待时间不是关键的,而一些业务可能 由小消息组成,其等待时间直接影响应用的性能。通常,在结构的多个节点上运行的应用的 性能由完成任务的集群中的最后一个节点的完成时间决定。在这些应用中,对于这些等待 时间敏感的消息而言具有低的最小和平均等待时间是重要的,并且对于这些消息具有低的 最大等待时间也是关键的。最小和最大等待时间之间的跨度(称为等待时间抖动)应当小。
[0008] 当小的消息和大的消息混合在结构中时,在小消息到达交换机端口而正好大分组 开始传输时,小消息会与大消息冲撞。在传统的结构中,小消息直到大消息完成时才能传 输。这增加了小分组遇到的交换机等待时间,并且显著增加了等待时间抖动。
[0009] 许多结构通过限制大分组的最大尺寸、从而限制冲撞引发的延迟,来解决该问题。 该解决方案不利地影响了该结构的效率。由于小分组意味着需要更多分组来承载消息,并 且每个分组需要分组首部,所以需要更多的总位数来承载给定的消息。
[0010] 已经作出提案以通过定义两类业务一一即时间关键和非时间关键,并允许时间关 键的帧抢先在非时间关键的帧之前,来解决以太网中的该问题。不同的提案允许被抢先的 帧在抢先之后重启或在抢先之后恢复,其中恢复是优选的选项。
【附图说明】
[0011] 通过参考与附图一起进行的下面的详细描述,本发明的前述的方面和许多伴随的 优点,将变得更加轻松地被理解,其中,在各个视图中,相同参考编号表示相同部件,除非另 作说明:
[0012] 图1是示出根据一个实施例的包括结构架构的各种部件和互连的系统的高级视 图的不意图;
[0013] 图2是描绘根据一个实施例的用于在结构链路上传送数据的该架构的多个层的 示意图;
[0014] 图3是示出被集合在捆包中的多个微片(flit)的示意图。
[0015] 图4是示出根据一个实施例的结构分组的结构的示意图;
[0016] 图5是示出根据一个实施例的标准检测LTP的数据结构的示图;
[0017] 图6是示出根据一个实施例的14位CRCLTP的数据结构的示图;
[0018] 图7是示出根据一个实施例的增强检测LTP的数据结构的示图;
[0019] 图8是示出根据一个实施例的标准检测空LTP的数据结构的示图;
[0020] 图9a是示出根据一个实施例的用于4通道链路的传输方案的实施例的示图,其中 每次在链路结构与链路传送子层之间的接口处并行地处理两个用于标准检测LTP的微片;
[0021] 图9b是示出根据一个实施例的用于4通道链路的传输方案的实施例的示图,其中 每次在链路结构与链路传送子层之间的接口处并行地处理两个用于增强检测LTP的微片;
[0022] 图10是示出根据一个实施例的在4通道链路上传输具有两个控制位的14位CRC LTP的示意图,其中每次在链路结构与链路传送子层之间的接口处并行地处理两个微片;
[0023] 图11是示出根据一个实施例的在8通道数据路径上并行地传输具有两个控制位 的两个14位CRCLTP的示意图,该8通道数据路径包括结合在一起的两个4通道链路;
[0024] 图12是示出根据一个实施例的在采用4通道的两个链路端口之间的双向数据传 输的示例的示意图;
[0025] 图13是示出交织来自从不同的虚拟通道上发送的两个FP的多个结构分组微片的 实施例的示例的示图;
[0026] 图14是示出根据一个实施例的使用进栈和出栈(PushandPop)交织的示图;
[0027] 图15是示出根据一个实施例的使用进栈和出栈交织和VL标记交织的组合的示 图;
[0028] 图16是示出根据一个实施例的来自缓存在三个不同的VLFIFO中的三个结构分 组的多个微片的抢先交织的示例的组合示意图和时间流图,三个不同的VLFIFO与具有不 同优先级的VL相对应;
[0029] 图17是示出根据一个实施例的来自缓存在三个不同的VLFIFO中的三个结构分 组的多个微片的冒泡交织和抢先交织的示例的组合示意图和时间流图,其中两个VL共享 优先级,而另一个VL具有更尚的优先级;
[0030] 图18a和18b是示出传输LTP传输方案和使用按照通道的CRC和LTPCRC来检测 LTP通道和错误通道的示意图,其中
[0031] 图18a描绘了根据一个实施例的LTP传输方案中的LTP的原始传输,而图18b描 绘了根据一个实施例的使用重放缓冲器在LTP传输流中的LTP的重传;
[0032] 图18c是示出根据一个实施例的使用重试标记和往返标记来防止重放缓冲器LTP 被覆写的示意图;
[0033] 图19是示出根据一个实施例的使用33个传送组(XFR)来传输标准检测LTP的示 图;
[0034] 图20是示出根据一个实施例的使用33个32位XFR和四个LTP序列状态在4通 道链路上传输LTP的示图;
[0035] 图21是示出根据一个实施例的如何使用33个32位XFR在4通道链路上传输包 括8字节数据和第65位的微片数据的示图;
[0036] 图22a_22e共同构成多页流程图,示出根据一个实施例的用于便于使用使用隐式 ACK以及重放缓冲器在链路层的可靠LTP传输,还示出根据一个实施例的用于检测错误通 道的操作和逻辑;
[0037]图23a是根据一个实施例的用于发射机的状态图;
[0038]图23b是根据一个实施例的用于接收机的状态图;
[0039] 图24是根据一个实施例的按照XFR组来计算和存储的按照通道的CRC的示图;
[0040] 图25是示出用于图18a和18b的示例的按照每个XFR组来存储的示例性的按照 通道的CRC计算的示图,其中在第一LTP序列状态下在坏LTP的原始传输和在第三LTP系 列状态下在从重放缓冲器重传该坏LTP的期间计算按照通道的CRC;
[0041] 图26是示出根据一个实施例的在三个通道上的标准检测LTP的传送的示图,其中 按照通道并行地传送11个XFR;
[0042] 图27是示出根据一个实施例的在两个通道上并且采用两个LTP序列状态来传送 标准检测LTP,其中在一个通道上传送17个XFR,并在另一个通道上传输16个XFR;
[0043] 图28是示出根据一个实施例的使用33个32位XFR在单个通道上传输标准检测 LTP的示图;以及
[0044] 图29是根据一个实施例的包括HFI的系统的示意图。
【具体实施方式】
[0045] 本申请描述了用于在高性能结构内实现灵活的信用交换的方法、装置和系统的实 施例。在以下描述中,阐述了许多具体细节以提供对本发明的实施例的透彻理解。然而,本 领域技术人员将领会,可以不利用这些具体细节中的一个或多个细节或者通过其他方法、 部件、材料等来实施本发明。在其他实例中,没有详细示出或描述公知的结构、材料、或操作 以免模糊本发明的多个方面。本申请文件中通篇对"一个实施例"或"实施例"的引用意指 结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。如此,在 整个说明书中的不同位置出现短语"在一个实施例中"或"在实施例中"不一定都是指同一 个实施例。而且,可按照任何合适的方式在一个或多个实施例中组合特定特征、结构、或特 性。
[0046] 为清楚起见,也可通过本申请附图中的各个部件的标记而不是通过特定的参考编 号来指代本申请附图中的各个部件。附加地,可利用跟随有"(typ)"(表示"典型的")的参 考编号示出指代特定类型的部件(与特定部件相对照)的参考编号。将理解,这些部件的 配置将是在附图中示出但为了简明和清楚起见未标记的相似部件的典型配置。相反,"typ" 不应理解为表示该部件、元件等等典型地用于所公开的其功能、实现、目的等等。
[0047] 根据本申请中描述的实施例的多个方面,提供了一种架构,该架构定义了消息传 递、交换的、服务器互连网络。该架构跨越了 0SI网络模型层1和2,充分利用用于层3的IETF因特网协议,并且包括用于该架构的层4的新的和充分利用的规范的组合。
[0048] 可通过正式定义(诸如超级计算机)或简单地通过关联来实现该架构以用于互连 CPU和包括逻辑消息传递配置的多个其它子系统,如同云计算中常见的情况,这样的服务器 组或集群由于它们运行的消息传递应用而以某种类型的协作方式工作。互连的部件被称为 节点。还可实现该架构以用于互连处理器节点与SoC、多芯片模块或类似物。一种类型的节 点称为主机,用户模式软件在该类型的节点上执行。在一个实施例中,主机包括单个高速缓 存一致性存储器域(不管该一致性域中的核或CPU的数量),并且可包括各种本地I/O和存 储子系统。主机运行的软件的类型可定义诸如用户应用节点、或存储或文件服务器之类的 更专门的功能,并用于描述更详细的系统架构。
[0049] 在顶层,该架构定义以下部件:
[0050] ?主机结构接口(HFI);
[0051] ?链路
[0052] ?交换机;
[0053] ?网关;以及
[0054] ?综合性的管理模型。
[0055] 主机结构接口至少由用于实现该架构的物理层和链路层的逻辑组成,使得节点可 附接至结构并向其它服务器或设备发送分组和接收分组。HFI包括用于操作系统和VMM(虚 拟机管理器)支持的适当的硬件接口和驱动器。HFI还可包括用于执行或加速上层协议和/ 或卸载传输协议的专门逻辑。HFI还包括用于响应于来自网络管理部件的消息的逻辑。每 个主机经由HFI连接至架构结构。
[0056] 链路是全双工的点对点互连,这些互连将HFI连接至交换机、将交换机连接至其 它交换机、或将交换机连接至网关。链路可具有不同的物理配置,以电路板迹线的形式、以 铜缆的形式或以光缆的形式。在一个实施例中,PHY(物理层)实现、电缆和连接器策略将遵 循以太网(具体是lOOGbE,每秒100千兆比特的以太网,诸如IEEE802. 3bj标准草案(当 前草案2. 2)中定义的以太网链路)的PHY(物理层)实现、电缆和连接器策略。该架构是灵 活的,支持使用可超过lOOGbE带宽的未来以太网或其它链路技术。高端超级计算机产品可 使用专用(更高带宽)的PHY,对于这些配置,与架构产品的互操作性将基于具有不同PHY 的端口的多个交换机。
[0057] 交换机是0SI层2部件,并且由该架构的管理基础设施管理。该架构将因特网协 议定义为其0SI层3或互联层,不过该架构不在IP域中指定任何东西,也不管理IP相关的 设备。支持架构结构与外部网络(尤其是以太网)之间的连接性的设备被称为网关。轻量 网关可提供降低的功能性并且严格地在以太网的层2上工作。全功能网关可在层3上以及 更高层上工作,因此像路由器那样工作。由该架构提供的网关规范包括用于以太网封装和 网关如何能够在该结构上工作以允许至与该架构的余下部分一致的以太网数据中心网络 的灵活的连接性的机制。使用IP作为互联协议使得能够使用IETF认可的传输(即TCP、 UDP和SCTP)来超越该架构的结构发送和接收消息。
[0058] 图1示出根据一个实施例的系统100的高级视图,示出了该架构的各种部件和互 连。该架构的中心特征是结构102,该结构102包括经由架构链路和交换机互连的HFI和网 关的集合。如图1所描绘,结构102部件包括:多个HFI104(示出了一个HFI104),每个 HFI104由相应的分立的单节点平台106主控;HFI108,由虚拟平台110主控;HFI112# 112n,由多节点平台116的相应节点11尖和114n主控;HFI118JP118n,属于集成单节点平 台120 ;高基交换机122 ;交换机124和126 ;结构管理器128、网关130、链路132、134、136i、 136^138^40^140^ 142、144、148以及共同示为云150的附加的链路和交换机。
[0059] 如上所讨论,交换机是层2设备,并且在结构内担当分组转发机构。交换机由结构 管理软件集中地供应和管理,并且每个交换机包括管理代理以对管理事务作出响应。中央 供应意味着转发表由结构管理软件编程,以实现特定结构拓扑和转发能力,类似于用于自 适应路由的替代路径。交换机负责执行诸如自适应路由和负载平衡之类的QoS功能,并且 还实现阻塞管理功能。图2描绘了用于在结构链路上传送数据的该架构的多个层。这些层 包括物理(PHY)层、链路传送子层、链路结构子层以及传输层。在图2的左侧是这些层向 0SI参考模型的映射,其中PHY层映射至层1 (PHY层),链路传送子层和链路结构子层共同 映射至层2 (链路层),并且传输层映射至层4 (传输层)。
[0060] 在该架构中,信号在物理层中被集合在一起至端口中,这些端口可如同单片实体 那样工作、被控制和被报告。端口包括一个或多个物理通道,其中每个通道由实现在物理传 输介质中的两个差分对或光纤组成,每个通信方向一个。构成端口的通道的数量是实现方 式相关的;然而,链路传送子层的架构支持端口宽度的有限集合。支持特定的端口宽度以作 为基本端口宽度,以允许电缆和芯片设计的常见目标。这些端口宽度包括1χ、4χ、8χ、12x和 16x,其中"X"标识物理通道的数量。在诸如检测缺陷通道的一些情况下,链路可能在减小 的通道宽度下运行。
[0061] 链路传送子层充当物理层与链路结构子层之间的接口。(链路结构子层上的)链 路结构分组被分割成64位流控制数(FLIT、Flit或微片,流控制数的近似收缩)。图3示 出了集合在捆包302中的多个微片300的示例。每个微片300包含64个数据位,包括8字 节的数据。
[0062] 链路传送子层将多个通道形成组,这些组能够以可靠的方式在该链路上传送微片 和它们相关联的信用返回信息。这利用与链路结构子层相关联的称为链路传送分组(LTP) 的1056位捆包来完成。图3还描绘了LTP的数据部分,包括16个数据微片。此外,LTP包 括微片类型信息、CRC数据以及可选的数据(未在图3中示出)。在各个图(例如5-11)中 并在下文中更详细地描述了LTP的示例。
[0063]结构分组由64位微片和用于每个微片的微片类型位组成。结构分组的第一数据 微片被称为头微片。结构分组的最后一个数据微片被称为尾微片。结构分组中的任何其它 数据微片被称为体微片。在图4中示出结构分组400的示例。
[0064] 为每个微片设置了微片类型位以将体微片与其它微片类型区分开。在一个实施例 中,体微片被编码成将微片类型位设置为1,并且包含64位数据。所有其它微片被标记成将 类型位设置为0。头微片被编码成将微片[63]设置为1。所有其它的(非体)微片被编码 成将微片[63]设置为0。尾微片被编码成将微片[62]设置为1。所有其它的(非体/头) 微片被编码成将微片[62]设置为0。在以下表1中概述了微片编码。
[0065]
[0066]表1
[0067]在表2中概述了控制微片。在空LTP中发送仅由链路传送层使用的七个控制微片 (LT控制微片)。余下的控制微片被划分成两个组。结构分组(FP)微片包括HeadBadPkt、 BodyBadPkt以及TailBadPkt控制微片以及正常的分组头(Head)微片、体(Body)微片和尾 (Tail)微片。链路结构(LF)命令微片包括Idle、VLMrkr和CrdtRet微片。FP微片和LF 命令微片可被一起混合在可靠的LTP之内以用于在链路上传输。
[0068]
[0069] 表 2
[0070] 当没有要插入数据流中的结构分组微片时,链路结构层使用空闲命令微片。如果 数据路径的完整宽度包含空闲,则链路传送层将从被插入输入缓冲器的微片流中去除这些 空闲。如果该数据路径既包含空闲的微片又包含非空闲的微片,则将不会去除这些空闲。这 是为了使链路传送层在该链路的远侧向链路结构层呈现相同的数据路径组成。如果链路传 送层没有来自链路结构层的待处理的微片,则它将在该链路上发送原始微片时插入空闲。 原始微片是首次在链路上发送的微片,与之形成对比的是从重放缓冲器发送的包括重传或 重放微片的那些微片。
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1