CN104395897B - 服务器节点互连装置和方法 - Google Patents
服务器节点互连装置和方法 Download PDFInfo
- Publication number
- CN104395897B CN104395897B CN201380030850.XA CN201380030850A CN104395897B CN 104395897 B CN104395897 B CN 104395897B CN 201380030850 A CN201380030850 A CN 201380030850A CN 104395897 B CN104395897 B CN 104395897B
- Authority
- CN
- China
- Prior art keywords
- data
- electronic device
- memory
- convergence
- local storage
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000015654 memory Effects 0.000 claims abstract description 231
- 230000007246 mechanism Effects 0.000 claims abstract description 35
- 230000004044 response Effects 0.000 claims abstract description 33
- 238000004891 communication Methods 0.000 claims abstract description 31
- 239000000872 buffer Substances 0.000 claims description 87
- 238000003860 storage Methods 0.000 claims description 77
- 238000004220 aggregation Methods 0.000 claims description 22
- 230000002776 aggregation Effects 0.000 claims description 19
- 238000009826 distribution Methods 0.000 claims description 19
- 238000000605 extraction Methods 0.000 claims description 16
- 239000000284 extract Substances 0.000 claims description 9
- 229910052710 silicon Inorganic materials 0.000 claims description 2
- 239000010703 silicon Substances 0.000 claims description 2
- 239000011800 void material Substances 0.000 claims 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 claims 1
- 238000007726 management method Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 20
- 238000004590 computer program Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 239000012536 storage buffer Substances 0.000 description 4
- 229910003460 diamond Inorganic materials 0.000 description 3
- 239000010432 diamond Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/1735—Network adapters, e.g. SCI, Myrinet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明描述用于将装置互连的系统和方法。开关机构与多个电子装置通信。汇聚存储器与所述开关机构通信。数据响应于所述数据准备好从第一电子装置处的存储器输出的确定且响应于所述汇聚存储器中经分配用于所述数据的位置而从所述多个电子装置的所述第一电子装置传递到所述汇聚存储器。
Description
发明领域
本发明大体涉及一种网络开关架构,且更特定来说涉及用于使用开关机构将服务器节点互连的系统和方法。
发明背景
数据中心通常是提供支持企业和组织的因特网和内联网服务的集中设施。典型的数据中心可容纳各种类型的电子设备,例如计算机、服务器(例如,电子邮件服务器、代理服务器和DNS服务器)、网络开关、路由器、数据存储装置,和其它相关联组件。给定的数据中心可具有数百或数千个互连的服务器节点,其经由包括开关和路由器的开关架构彼此间以及与外部装置通信。常规数据中心还可经配置用于虚拟化,从而允许服务器节点共享网络接口卡(NIC)、硬盘驱动器或其它硬件。这样做时,需要复杂的开关机构来促进节点之间经由数据中心架构的通信。
发明概要
根据一个方面,提供一种聚集装置,其包括开关机构和汇聚存储器。所述开关机构与多个电子装置通信。所述汇聚存储器与开关机构通信。数据响应于数据准备好从第一电子装置处的存储器输出的确定且响应于汇聚存储器中经分配用于所述数据的位置而从所述多个电子装置的所述第一电子装置传递到汇聚存储器。
根据另一方面,提供一种服务器聚集系统,其包括多个服务器节点和耦合到所述多个服务器节点的聚集装置。所述聚集装置包含汇聚存储器,其响应于数据准备好从第一服务器节点的存储器输出的确定且响应于汇聚存储器中经分配用于所述数据的位置而参与与所述多个服务器节点的所述第一服务器节点的本地存储器的数据传递。
根据另一方面,提供一种用于在多个电子装置与聚集系统之间通信的方法。所述方法包括:在所述多个电子装置的第一电子装置的本地存储器处提供数据以供发送到所述多个电子装置的第二电子装置;在聚集系统处提供汇聚存储器用于接收来自第一电子装置的本地存储器的数据;以及响应于通过聚集系统确定所述数据在第一电子装置的本地存储器中以供发射且响应于确定在汇聚存储器中分配用于存储从第一电子装置的本地存储器接收的数据的位置而将数据从第一电子装置的本地存储器传递到汇聚存储器。
根据另一方面,提供一种用于在多个电子装置与聚集系统之间通信的方法。所述方法包括:在所述多个电子装置的第一电子装置的本地存储器处提供数据以供发送到所述多个电子装置的第二电子装置;通知聚集系统处的虚拟网络接口卡(vNIC)所述数据在第一电子装置的本地存储器处可用于发射;产生第二电子装置处的至少一个可用缓冲器的通知;分配所述至少一个可用缓冲器用于接收所述数据;通过vNIC将所述数据输出到第二电子装置处的所述至少一个可用缓冲器;以及响应于确定所述数据在第一电子装置的本地存储器中以供发射且响应于确定第二电子装置处的所述至少一个可用缓冲器的分配而将数据从第一电子装置的本地存储器传递到汇聚存储器。
根据另一方面,提供一种包括计算机可读存储媒体的计算机程序产品,所述计算机可读存储媒体具有随其实施的计算机可读程序代码。所述计算机可读程序代码包括:经配置以在第一电子装置的本地存储器处提供数据以供经由聚集系统发送到第二电子装置的计算机可读程序代码;经配置以通知聚集系统处的虚拟网络接口卡(vNIC)所述数据在第一电子装置的本地存储器处可用于发射的计算机可读程序代码;经配置以产生第二电子装置处的至少一个可用缓冲器的通知的计算机可读程序代码;经配置以分配所述至少一个可用缓冲器用于接收所述数据的计算机可读程序代码;经配置以通过vNIC将所述数据输出到第二电子装置处的所述至少一个可用缓冲器的计算机可读程序代码;以及经配置以响应于确定所述数据在第一电子装置的本地存储器中以供发射且响应于确定第二电子装置处的所述至少一个可用缓冲器的分配而将数据从第一电子装置的本地存储器传递到汇聚存储器的计算机可读程序代码。
附图简述
通过结合附图参考以下描述将更好地理解本发明的以上和其它优点,附图中各图中相同数字指示相同结构元件和特征。图式不一定按比例绘制,而是强调说明本发明的原理。
图1是常规数据中心网络层级的框图;
图2是包含耦合到常规互连机构开关的多个服务器节点的数据中心的框图;
图3是根据一个实施方案包含与具有汇聚存储器的服务器聚集系统通信的多个服务器节点的计算基础架构的框图;
图4是根据一个实施方案图3的汇聚管理器的框图;
图5是根据一个实施方案图3的网络处理器的框图;
图6是根据一个实施方案用于服务器节点与具有汇聚存储器的服务器聚集系统之间的电子通信的方法的流程图;
图7是根据一个实施方案用于源服务器节点与具有汇聚存储器的服务器聚集系统之间的电子通信的方法的流程图;
图8是根据一个实施方案用于在服务器聚集系统与目的地服务器节点之间建立通信的方法的流程图;以及
图9是根据另一个实施方案用于在经配置以用于汇聚开关的耦合到服务器聚集系统的第一与第二服务器节点之间建立通信的方法的流程图。
具体实施方式
在以下描述中,陈述特定细节,但一般技术人员应了解,所述系统和方法可在没有所述细节中的至少一些细节的情况下实践。在一些例子中,未详细描述已知特征或过程以免混淆本发明。
图1是常规数据中心网络层级10的框图。在图1中,多个服务器节点12-1到12-N(N是大于1的整数)可经由例如以太网LAN或机架18-1中的相关数据网络等局域网(LAN)与机架开关14通信。机架18-1可配置为数据中心网络层级10中具有一个或多个其它机架18-2、18-N(N是大于1的整数)的群集的一部分。每一群集可包含聚集开关22-1、22-2、22-N(N是大于1的整数),其经由以太网或其它网络连接而连接到核心路由器24。例如膝上型计算机、智能电话或其它电子装置等用户设备32可经由例如IP网络、因特网等网络26与服务器节点12-1到12-N(通常,12)通信。减小与数据中心开关相关联的大小、费用和功率要求,同时还增加数据中心可缩放性的愿望一直存在。
图2是包含耦合到常规互连机构开关120的多个服务器节点112_1到112_N(N是大于1的整数)的数据中心20的框图。互连机构开关120可通过将聚集开关和机架开关的功能合并在单一机箱下从而替代常规服务器机架中使用的大部分传统以太网开关要求而减少开关的数目。
服务器节点112_1到112_N(通常,112)可配置为处理器群集或其它众所周知的布置。服务器节点112可包含具有共享基础架构的单一插口服务器或低功率处理器102。服务器节点处理器102可包含一个或多个微处理器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、存储器控制器、多核心处理器和其它类型的数据处理装置,以及这些和其它装置的部分和/或组合。
服务器节点112还包含本地存储器104和I/O逻辑106。本地存储器104可包含非易失性或易失性存储器,例如动态随机存取存储器(DRAM)或静态RAM(SRAM)的一个或多个信道。I/O逻辑106可经配置以包含I/O控制器,其包含南桥等用于管理计算机I/O功能,例如服务器节点112与互连机构开关120之间的数据传递。I/O逻辑106可包含以太网、PCIe或其它网络连接器114,用于建立与互连机构开关120的电子通信。
互连机构开关120包含多个输入和输出端口以及一个交叉开关124,其可在所述输入和输出端口之间路由可变或固定长度帧、数据包、单元等,从而促进服务器节点112、共享装置(例如,NIC 142或硬盘驱动器144)和/或外部电子装置(例如,用户计算机152)之间的通信。所述端口可包含虚拟端口、实体端口或其组合。所述端口可经配置用于单向或双向通信。
交叉开关124可组织为行和列的阵列。在数据发射期间,给定行上的若干输入端口可争夺列处的输出端口。输入端口可与输入缓冲器126通信,输入缓冲器126临时存储从服务器节点112接收的数据直到交叉开关124可将数据递送到可用输出端口为止。输出端口可包含输出缓冲器128,用于临时存储从一个或多个输入端口接收的数据直到所要输出端口可用于经由网络总线140(例如,以太网总线、PCIe总线等)将包发射到其目的地为止。
然而,互连机构开关120容易发生例如线头(HOL)阻塞等拥塞相关问题,其可在开关120的多个输入端口竞争同一输出端口时发生。还可发生缩放相关问题,因为在开关120处添加I/O端口增加争夺共享资源的风险。一个相关问题是服务器节点112与互连机构开关120之间带宽的低效使用。举例来说,HOL阻塞可消耗交叉开关124处的大量带宽,尤其在输入端口处等待的包、单元等存储在先入先出(FIFO)队列中的情况下。并且,输入和输出缓冲器126、128处的队列可快速填充,从而产生不合需要的延时、抖动或包损失,以及溢出和/或不足状况,这可导致低效带宽利用和性能问题。
流控制技术可容易地用于缓解数据中心20处的网络拥塞。举例来说,可应用复杂调度技术来管理穿过交叉开关124的数据通信。然而,此类技术通常实施起来较昂贵。
另一众所周知的技术是实施基于以太网的再发射。然而,基于以太网的再发射消耗宝贵带宽。
其它流控制机制可应用于上游装置,请求其停止传递包。尽管此类方法有效地减少缓冲器溢流,但其不能完全缓解网络拥塞。
另一方法是依赖于外部存储器装置用于包的临时存储和排队。然而,此方法需要互连机构开关120处的额外针脚以及到开箱即用存储器装置的“线路”或连接器,从而导致缩放限制和带宽相关问题以及对应的对额外功率消耗的需要。
本发明概念通过引入服务器聚集系统而减少或消除与常规数据中心互连开关相关联的拥塞相关问题,所述服务器聚集系统包含汇聚装置,其以受控方式经由高带宽开关机构与多个服务器节点或相关电子装置的本地存储器通信。汇聚装置在具有准备好供输出的数据的发射装置与具有可用于接收所述数据的存储器缓冲器的接收装置之间通信,从而在发射装置与接收装置之间提供有效数据发射路径。举例来说,数据可在服务器聚集系统确定数据准备好供输出之后且在特定存储器位置分配到用于存储所述数据的汇聚装置处的存储器位置之后从发射装置的本地存储器明确地传递。当两个条件均确定为真时,即当发射装置具有待发送的数据且接收装置具有可用缓冲器时,发生从发射装置到接收装置的有效、低延时数据移动。
在图2中描述的常规网络开关环境中,数据输出到交叉开关队列126、128,而不管队列126、128是否具有可用空间。如果队列126、128不具有可用空间,那么数据通常被丢弃,且实施复杂、消耗带宽的再发射过程。
在一个实施方案中,服务器聚集系统可确定何时从源服务器节点等接收数据,且建立“汇聚”位置,所述“汇聚”位置又可与目的地服务器节点等处的存储器位置通信以提供何时将数据发送到目的地服务器节点。预分配的位置可提供在用于来自服务器聚集系统的任何输入端口的传入数据的汇聚存储器和/或目的地服务器节点存储器处。这样做时,分配空闲数据缓冲器以便将数据从源服务器节点存储器移动到汇聚存储器,或从汇聚存储器移动到目的地服务器节点存储器。如果汇聚存储器中不存在用于既定从源服务器节点发送的数据的可用位置,那么数据直到汇聚存储器中一个位置可用才传递到汇聚存储器。并且,所接收数据可存储在汇聚存储器中直到目的地服务器节点通知服务器聚集系统其具有其本地存储器中可用的位置来接收所述数据为止。
在另一个实施方案中,远程计算机经由外部网络到NIC或耦合在外部网络与服务器聚集系统之间的相关接口将数据提供到服务器聚集系统。此处,NIC将数据传递到汇聚存储器处的接收缓冲器,例如由NIC的接收环处的描述符所识别。如果没有充足缓冲可用,那么数据被放弃或过滤。否则,接收缓冲器可用,其中数据提供到汇聚存储器,且通知与汇聚存储器通信的处理复合体。接着检查存储器缓冲器以确定其应路由和放置在到开关机构的处理复合体连接中的描述符上的何处。在此点处,数据以类似方式移动,似乎其在进入vNIC处。此处,汇聚存储器管理器由目的地服务器节点例如经由vNIC通知目的地服务器节点存储器处是否存在可用位置。汇聚存储器管理器直到其被分配接收缓冲器才提取数据以供发射到目的地服务器节点存储器。
因此,本发明概念的特征是,流控制可在数据缓冲器中的汇聚存储器的输入和/或输出区处发生,即在汇聚存储器的与源服务器节点通信的一端处,以及汇聚存储器的与目的地服务器节点通信的另一端处。并且,从开关机构的进入端口到外出端口的处理延时较低,因为开关机构处执行极少缓冲或不执行缓冲。举例来说,延时可改进,因为数据事务经调度以减少归因于拥塞或投机性数据移动引起的其它通信的阻塞的风险。
本发明概念的另一特征是,可在服务器聚集系统中且在互连的服务器节点之间有效分摊带宽,因为服务器聚集系统可在实际数据传递之前确定源服务器节点处的本地存储器是否具有待输出的数据、汇聚存储器是否可接收数据、和/或存储器间数据交换中服务器节点处的本地存储器是否具有足够的空间来接收数据。
图3是根据一个实施方案包含与具有汇聚存储器308的服务器聚集系统300通信的多个服务器节点312-1到312-N的计算基础架构30的框图。计算基础架构30可包含大规模数据中心、云等。计算基础架构可经配置用于虚拟化,类似于参考图2描述的数据中心20。因此相对于图3出于简洁的原因省略关于虚拟化相关元件的细节。
服务器聚集系统300包含开关机构302、汇聚管理模块304、I/O处理器306、汇聚存储器308和控制平面处理器110。服务器聚集系统300可经配置用于虚拟化。
服务器节点312-1到312-N(通常,312)或微服务器和/或具有至少一个处理器的其它电子装置可经由连接器314(优选地PCIe总线或其它网络连接器)与服务器聚集系统300通信。每一连接器314可在一个或多个服务器节点312与服务器聚集系统300之间提供数据路径。服务器聚集系统300和服务器节点312可协同定位在同一多处理单元(例如,芯片、计算装置或机架)处。在其它实施方案中,服务器节点312制造在一个或多个单元上,且服务器聚集系统300制造在单独单元(例如,芯片)上。
开关机构302包含多个输入端口和输出端口,且可经配置以在与其输入端口通信的服务器节点312同与其外出端口通信的汇聚存储器308之间移动数据或其它电子信息。开关机构302可包含开关配置,例如交叉开关,用于在其进入端口与外出端口之间移动数据,如本领域一般技术人员众所周知。不同于常规开关机构,开关机构302处需要极少缓冲或不需要缓冲,因为所述开关机构处不需要常规排队技术。开关机构302和汇聚存储器308可互连,其间具有I/O带宽通信信道,且因此能够从任何数目的服务器节点312接收数据,条件是汇聚存储器308已被分配足够用于数据的空间。
汇聚管理模块304与控制平面处理器310和I/O处理器306协作监督服务器节点312处的一个或多个存储器104-1到104-N(通常,104)与汇聚存储器308之间的明确数据传递。汇聚管理模块304可在汇聚存储器308中分配缓冲器空间用于“停放”从源服务器节点发送的数据直到目的地服务器节点或外部计算装置可从汇聚存储器308检索所述数据为止。汇聚管理模块304可使用描述符等控制数据从汇聚存储器308发射到目的地存储器的方式。汇聚管理模块304可监视汇聚存储器308处的接收缓冲器可用性且等待公布接收缓冲器。换句话说,汇聚管理模块304可确保传递操作中的一方(即,源服务器节点或汇聚存储器)具有供发射的数据,且传递操作中的另一方(即,目的地服务器或汇聚存储器)具有足够空间来接收数据。
汇聚存储器308可包含穿硅通孔(TSV)、SRAM或裸片上存储器,其经配置用于当与多个网络开关链路通信时具有足够高的带宽(例如,10Gb或更大)。汇聚存储器308可经配置以包含例如多个空闲数据缓冲器,其组织为存储器块,所述存储器块可在将数据从本地存储器104移动到汇聚存储器308时分配到一个或多个vNIC 334。
I/O处理器306处理在汇聚存储器308与一个或多个电子装置(例如,服务器节点312和/或远程计算装置352)之间传递的数据。I/O处理器306可包含多路复用器和用于根据与汇聚管理模块304、控制平面处理器310或其组合进行的通信执行与汇聚存储器308间的数据传递的其它逻辑。以此方式,I/O处理器306可充当分级区域,其用于例如在两个或两个以上服务器节点312之间或在服务器节点312与外部计算装置352之间将数据移动到服务器聚集系统300中以及移动离开服务器聚集系统300。
I/O处理器306可识别汇聚存储器308中的缓冲器,经确定准备好从源服务器节点312发射的特定数据将临时存储在所述缓冲器中,例如直到目的地服务器节点312通过公布指向可用缓冲器的接收描述符而检索所述数据为止。I/O处理器306可维持例如汇聚存储器308的一个或多个信道的缓冲器描述符,所述信道用于将数据从汇聚存储器308移动到vNIC334,vNIC 334可处理缓冲器描述符。I/O处理器306可用接收缓冲器资源填充接收描述符。
控制平面处理器310通过操作网络路由协议、参与服务器聚集系统300接收的数据包、帧、单元等的转发等等而管理用于服务器节点312与服务器聚集系统300之间的数据递送的开关控制平面(未示出)。其它控制平面处理器310功能包含产生数据就绪通知、接收缓冲器可用通知、缓冲器释放等。控制平面处理器310可提供服务器聚集系统300处的块、端口和节点之间的通信,且与开关机构302通信以用于端口之间的数据移动。控制平面处理器310可向汇聚存储器308和/或一个或多个服务器节点存储器104进行写入和/或从其进行读取。控制平面可经配置以发送可用数据(例如,准备好发送的消息)用于询问可用的接收缓冲器的数目和缓冲器释放消息。
控制平面处理器310可实施且管理零个、一个或多个vNIC 334,优选与直接存储器存取(DMA)代理(未示出)或开关机构302中的相关代理组合。可在控制平面处理器310的管理下在控制平面上发生各种类型的通信,例如发射/接收描述符门铃通知,其从服务器节点接口驱动器写入以指示缓冲器描述符存储器位置的状态的改变。在另一个实施例中,控制平面可管理缓冲器释放消息,例如已经发射以再循环用于更多发射的缓冲器或作为接收缓冲器。其它控制平面功能可包含提供数据就绪通知、接收缓冲器可用通知和缓冲器释放等。
图4是根据一个实施方案图3的汇聚管理模块304的框图。汇聚管理模块304可包含存储器分配模块402、通知模块404、数据分布模块406、中断产生模块408,和/或计时器410。汇聚管理模块304展示为同一装置(例如,芯片、机架等)的一部分。或者,汇聚管理模块304的一些元件可实体上位于图3所示的计算基础架构30中的其它地方。
存储器分配模块402在汇聚存储器308中分配缓冲器空间供vNIC 334在从源服务器节点312-1提取数据时使用。更特定来说,存储器分配模块402可提供指向汇聚存储器308中的块的索引,其含有指向汇聚存储器处的可用数据缓冲器块的缓冲器描述符。
当数据输入到汇聚存储器308时,通知模块404产生关于缓冲器分配的通知。举例来说,通知模块404可响应于vNIC 334请求缓冲器而通知vNIC 334接受缓冲器分配。通知模块404可例如从vNIC 334接收通知,从而指示数据可用于从服务器节点312发射。通知模块404可在针对目的地装置从汇聚存储器308将描述符和/或数据提取到vNIC 334之后通知vNIC 334新数据可用。
数据分布模块406可从汇聚存储器308提取描述符、数据等以供分配到vNIC 334,vNIC 334又可将数据提供到目的地本地存储器。
中断产生模块408在新数据位于汇聚存储器308中时将中断信号输出到I/O处理器306,借此I/O处理器306可从汇聚存储器取得数据且为其服务。中断产生模块408还可在释放发射描述符之后,例如在将数据从汇聚存储器308移动到目的地本地存储器104-N之后将中断信号输出到网络处理器。
计时器410可在接收缓冲器在汇聚存储器308处不可用于分配到vNIC 334时激活,从而向服务器聚集系统300的元件指示数据不能传递到汇聚存储器308,借此提供一定程度的流控制。
图5是根据一个实施方案图3的I/O处理器306的框图。I/O处理器306包含处理器502、描述符处理模块504,和/或调度器508。I/O处理器还可包含存储器(未示出)。尽管I/O处理器306展示为共同装置(例如,芯片、机架等)的一部分,但I/O处理器306的元件的一些或全部可在图3所示的计算基础架构30的其它元件处。
处理器502可执行用于与参与数据的输出的元件(例如,NIC 342)介接的程序的程序代码。处理器502可作出路由决策且将接收缓冲器从接收描述符环移动到目的地发射描述符环。
描述符处理模块504可产生和/或公布指向汇聚存储器308处的可用于从源服务器节点312-1接收数据的位置的接收描述符。接收描述符可指示缓冲器驻留在汇聚存储器308中何处、缓冲器的大小、片段的数目等等。I/O处理器306可通过将当前空闲(可用于接收数据)的数据缓冲器的描述符从汇聚存储器308传递到I/O处理器306而接收关于汇聚存储器308中的哪些数据缓冲器可供使用的信息。描述符处理模块504还可产生发射描述符,其可包含命令、散-集列表等用于将数据从汇聚存储器308传递到目的地服务器节点312-N的本地存储器104-N。
当调度器508接收新数据被服务器聚集系统300例如经由NIC342或PCIe连接器314接收或新数据在汇聚存储器308中可用于发射到目的地装置的通知时,调度器508唤醒。调度器508可协调数据在汇聚存储器与一个或多个服务器节点312和/或远程计算装置352之间例如以循环次序、先进先出次序或本领域的一般技术人员已知的其它次序的传递。调度器可根据预定策略布置数据的传递。举例来说,策略可包含以优先权标记流或端口的机制。I/O处理器306可执行一定水平的包检查和分类以区分流。可实施严格优先权调度器508。或者,调度器508可提供具有最小带宽分配的不同流。调度器508可通过管理服务器聚集系统300处的vNIC而选择针对目的地的数据。
图6是根据一个实施方案用于服务器节点与具有汇聚存储器的服务器聚集系统之间的电子通信的方法600的流程图。方法600可由存储在图3的一个或多个服务器节点312和/或服务器聚集系统300的存储器104中的指令控制。因此,参考图2-5。方法600的一些或全部可在裸片上、在ASIC处、芯片上系统(SOC)或相关装置处执行。
在框602处,源服务器节点312-1宣布本地存储器104-1中的单元、包、帧或其它数据单元可用于经由NIC 342输出到目的地(例如,另一服务器节点312-N或外部计算装置352)。源服务器节点312-1可通知vNIC 334供发射的数据在存储器104-1中且可用于发射。服务器节点312可维持存储器104-1中界定的环缓冲器等用于处理用于执行数据发射或接收操作的数据。
在决策菱形604处,作出汇聚存储器308是否可接收源服务器节点312-1的存储器104-1中的供发射的数据的确定。所述确定可由汇聚管理模块304作出,汇聚管理模块304可确立汇聚存储器308中是否有缓冲器空间可用,数据可在所述缓冲器空间处直接从源服务器节点312-1发射。如果汇聚存储器308不能接收所述数据,那么在框608处,汇聚管理模块304可等待接收缓冲器被公布。否则,在框606处,数据、描述符等可从源服务器节点312-1的存储器104-1传递到汇聚存储器308。
在决策菱形610处,由I/O处理器306作出从源服务器节点312-1传递到汇聚存储器308的数据是否将转发到目的地服务器节点(例如,服务器节点312-N)的确定。所述确定可基于目的地地址,或通过预置关于识别目的地端口的发射描述符或包的元信息。如果确定结果是数据将不会传递到目的地服务器节点,那么在框612处,I/O处理器306可消耗所述数据,例如数据在I/O处理器306处终止。或者,I/O处理器306可依据数据内容(例如,基于目的地地址)将数据转发到NIC342。举例来说,数据包可与经由开关机构302的流管理相关联,且与I/O处理器306处理复合体的控制数据的路由的元件交互。否则,在决策菱形614处,作出目的地服务器节点312-N是否在其本地存储器104-N中具有可用空间来接收准备好从汇聚存储器308发射的数据的确定。所述确定可由控制平面处理器310作出,其中虚拟NIC 334可确立目的地本地存储器104-N中是否存在可用的缓冲器空间。如果否,那么在框616处,汇聚管理模块304可等待直到接收缓冲器由目的地服务器节点CPU 102公布才将数据发送到目的地本地存储器104-N。否则,在框618处,当作出数据在汇聚存储器308处可用于传递且接收缓冲器经分配用于汇聚存储器308的确定时,数据可从汇聚存储器308传递到目的地服务器节点存储器104-N。
图7是根据一个实施方案用于服务器节点与具有汇聚存储器的服务器聚集系统之间的电子通信的方法700的流程图。方法700可由存储在图3的一个或多个服务器节点312和/或服务器聚集系统300的存储器104中的指令控制。因此,参考图2-5。方法700的一些或全部可在裸片上、在ASIC处、芯片上系统(SOC)或相关集成电路处执行。
服务器节点312-1首先确定单元、包、帧或其它数据单元在本地存储器104-1中待经由NIC 342输出到目的地(例如,另一服务器节点312-N或远程计算装置352)。本地存储器104-1可包含队列、环缓冲器、链接列表等用于处理数据。
在框702处,服务器节点312-1的CPU 102可产生关于本地存储器104-1中待从服务器节点312-1输出的数据的描述符或相关信息。描述符可包含关于待传递到汇聚存储器308的数据的命令、散-集列表等。相关描述符信息可识别存储器104-1中数据驻留的位置、数据待发射的目的地地址、将移动的数据字节的数目,和/或用于在CPU102与服务器聚集系统300处的vNIC 334之间建立通信的其它相关信息。
在框704处,第一服务器节点312-1的CPU 102通知vNIC 334新描述符在存储器104-1中且可用于发射。CPU 102可通过将邮箱书写或相关事件通知经由通信路径314发送到vNIC 334而通知vNIC334供发射的数据的可用性。
在框706处,I/O处理器306公布指向汇聚存储器308中的可用数据缓冲器的接收描述符。接收描述符可包含缓冲器地址、长度或相关信息。
在框708处,I/O处理器306通知汇聚管理模块304针对vNIC 334的一个或多个汇聚存储器缓冲器的可用性。
在框710处,控制平面处理器310将请求汇聚存储器308中的一个或多个缓冲器位置以获得针对vNIC 334的可用性的消息发送到汇聚管理模块304。
在框712处,汇聚管理模块304针对vNIC 334分配来自汇聚存储器308的一个或多个接收缓冲器以允许vNIC 334将来自服务器节点存储器104-1的数据传递、复制或以其它方式移动到汇聚存储器308。汇聚管理模块304可将缓冲器分配的通知发送到控制平面处理器310。如果无接收缓冲器当前可用,那么汇聚管理模块304可等待接收缓冲器变为可用。在此等待周期期间不提取描述符和/或数据。在一个实施方案中,输入描述符可预先提取以减少延时,因为其不消耗显著存储器资源以减少传递延时。
在框714处,vNIC 334从服务器节点存储器104-1提取用于提取数据的发射描述符。vNIC 334可提取一个或多个描述符,或跟随用于提取的描述符链。vNIC 334根据来自服务器节点存储器104-1的描述符信息(例如,地址)提取数据,且在开关机构302上将数据移动到由汇聚管理模块304分配的可用汇聚存储器308。举例来说,控制平面处理器310可经由PCIe连接器314发布对存储器104-1的读取以提取所述数据以移动到汇聚存储器308。
在框716处,控制平面处理器310可将所提取的数据在汇聚存储器308中可用的通知发送到汇聚管理模块304。汇聚管理模块304可产生发射到I/O处理器306的中断,借此I/O处理器306可从汇聚存储器308取得数据且为其服务。
在框718处,I/O处理器306可处理汇聚存储器308中的数据,例如确定是否消耗所述数据、将其转发到NIC 342,或将其转发到作为计算基础架构30的一部分的另一服务器节点312的CPU 102。
尽管未示出,但控制平面处理器310可释放服务器节点312-1处产生的发射描述符。控制平面处理器310可任选地中断服务器节点CPU 102。I/O处理器306可例如根据调度器508控制数据在汇聚存储器308中的递送。以此方式,I/O处理器306可保证数据递送到其目的地,例如目的地服务器节点312-N(图8中详细描述)。
图8是根据一个实施方案用于在经配置以用于汇聚开关的耦合到服务器聚集系统的第一与第二服务器节点之间建立通信的方法800的流程图。方法800可响应于图7的框718处的确定由服务器聚集系统的网络处理器执行以将汇聚存储器308中可用的所提取数据转发到另一服务器节点或具有CPU的相关电子装置(例如,图3所示的服务器节点312-N)。方法800可由存储在图3的服务器节点312和/或服务器聚集系统300的存储器104中的指令控制。这样做时,参考图2-5和图7。
在框802处,I/O处理器306的描述符处理模块504可提供关于根据图7中描述的方法700移动到汇聚存储器308中的数据的描述符或相关信息。描述符可包含用于将数据移动到目的地服务器节点312-N的本地存储器104-N的命令、散-集列表等。相关描述符信息可识别存储器104-1中数据驻留的位置、数据待发射的目的地地址、待移动的数据字节的数目,和/或用于在参与数据到本地存储器104-N的传递的I/O处理器306与vNIC 334之间建立通信的其它相关信息。
在框804中,I/O处理器306通知汇聚管理模块304汇聚存储器308中的数据可用于发射。
在框806中,目的地服务器节点312-N处的CPU 102公布指向目的地服务器节点312-N的存储器104-N中的可用数据缓冲器的接收描述符。接收描述符可包含缓冲器地址、长度或相关信息。
在框808处,目的地服务器节点312-N的CPU 102通知控制平面处理器310存储器104-N处的一个或多个主机存储器缓冲器对汇聚管理模块304的可用性。
在框810处,目的地服务器节点312-N的CPU 102将请求目的地节点存储器104-N中的一个或多个缓冲器位置以获得对汇聚管理模块304的可用性的请求发送到控制平面处理器310。
在框812处,控制平面处理器310针对汇聚管理模块304分配来自目的地节点存储器104-N的接收缓冲器以允许汇聚管理模块304将来自汇聚存储器308的数据传递、复制(等)到目的地节点存储器104-N。控制平面处理器310可将缓冲器分配的通知发送到汇聚管理模块304。如果无接收缓冲器当前可用,那么汇聚管理模块304可等待接收缓冲器变为在目的地服务器节点存储器104-N处可用。在一个实施方案中,在此等待周期期间不提取描述符和/或数据。
在框814处,汇聚管理模块304提取用于从汇聚存储器308提取数据的发射描述符。汇聚管理模块304根据来自汇聚存储器308的描述符信息(例如,地址)提取数据,且在开关机构302上将数据移动到vNIC 634。汇聚管理模块304可通知控制平面处理器310在针对目的地服务器节点312-N从汇聚存储器308将描述符和/或数据提取到vNIC 334之后新数据可用。
在框816处,vNIC/CP提取并处理接收缓冲器的描述符且将数据移动到目的地服务器节点存储器104-N。控制平面处理器310可产生输出到目的地服务器节点312-N的CPU 102用于为移动到存储器104-N的数据服务的中断。汇聚管理模块304可释放发射描述符且任选地中断服务器节点I/O处理器306。
本文描述的方法的实施方案允许当服务器聚集系统300确定数据准备好发送到其目的地时按需传递数据。如果汇聚存储器308未准备好接收数据,那么数据不发射到其处,即使数据准备好在源服务器节点312-1处传递时也如此。类似地,如果目的地服务器节点312-N未准备好接收数据,那么数据不从汇聚存储器308发射到其处。以此方式,不需要常规排队技术,且数据不会归因于缓冲器空间的缺乏而被放弃。代之,数据的移动与描述符的可用性关联。当描述符建立时,可由服务器聚集系统300作出存在待移动的数据的确定。
图9是根据一个实施方案用于在经配置以用于汇聚开关的耦合到服务器聚集系统的第一与第二服务器节点之间建立电子通信的方法900的流程图。方法900可由存储在上文描述的一个或多个服务器节点312和/或服务器聚集系统300的存储器104中的指令控制。方法900的一个或多个元件可类似于上文描述的元件。尽管参考图2-5,但方法900在不存在汇聚存储器308的情况下执行。特定来说,汇聚管理模块304和控制平面处理器310可参与方法900,其中数据传递在无介入汇聚存储器308的情况下在两个服务器节点212-1、212-N之间发生。
在框902处,在第一服务器节点312-1处产生描述符。
在框904处,通知vNIC 334数据可用于发射。
在框906处,在第二服务器节点312-N的可用缓冲器处公布接收描述符。
在框908处,目的地服务器节点312-N通知控制平面处理器310存储器104-N处的一个或多个主机存储器缓冲器对汇聚管理模块304的可用性。
在框910处,作出对于目的地节点存储器104-N处的缓冲器的请求。
在框912处,分配接收缓冲器。缓冲器可针对vNIC 334分配以允许控制平面处理器310的vNIC 334将来自服务器节点存储器104-1的数据传递、复制或以其它方式移动到目的地节点存储器104-N。
在框914处,vNIC 334提取并处理针对接收缓冲器的描述符且将数据移动到目的地服务器节点存储器104-N。
如本领域技术人员将了解,本发明的方面可实施为系统、方法或计算机程序产品。因此,本发明的方面可采取完全硬件实施方案、完全软件实施方案(包含固件、驻留软件、微代码等)或将可全部通常在本文中称为“电路”、“模块”或“系统”的软件与硬件方面组合的实施方案的形式。此外,本发明的方面可采取实施在其上实施有计算机可读程序代码的一个或多个计算机可读媒体中的计算机程序产品的形式。
可利用一个或多个计算机可读媒体的任何组合。计算机可读媒体可为计算机可读信号媒体或计算机可读存储媒体。计算机可读存储媒体可为例如(但不限于)电子、磁性、光学、电磁、红外或半导体系统、设备或装置,或以上的任何适宜组合。计算机可读存储媒体的更具体实例(非详尽列表)将包含以下各者:具有一个或多个电线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便携式压缩光盘只读存储器(CD-ROM)、光学存储装置、磁性存储装置,或以上的任何适宜组合。在本文献的上下文中,计算机可读存储媒体可为可含有或存储程序以供由指令执行系统、设备或装置或结合指令执行系统、设备或装置使用的任何有形媒体。
计算机可读信号媒体可包含传播数据信号,其具有在其中实施的计算机可读程序代码(例如,在基带中或作为载波的一部分)。此传播信号可采取多种形式中的任一者,包含(但不限于)电磁、光学,或其任何适宜组合。计算机可读信号媒体可为不是计算机可读存储媒体且可传送、传播或运送程序以供由指令执行系统、设备或装置或结合指令执行系统、设备或装置使用的任何计算机可读媒体。实施在计算机可读媒体上的程序代码可使用任何适当媒体发射,包含(但不限于)无线、线路、光纤缆线、RF等,或以上的任何适宜组合。
用于执行本发明的方面的操作的计算机程序代码可以一种或多种编程语言的任何组合编写,包含例如Java、Smalltalk、C++等对象定向编程语言,以及例如“C”编程语言或类似编程语言等常规程序编程语言。程序代码可完全在用户的计算机上、部分在用户的计算机上,作为独立软件包、部分在用户的计算机上且部分在远程计算机上,或完全在远程计算机或服务器上执行。在后一情境中,远程计算机可经由任何类型的网络(包含局域网(LAN)或广域网(WAN))连接到用户的计算机,或可作出到外部计算机的连接(例如,经由因特网使用因特网服务提供者)。
本文参考根据本发明的实施方案的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。将理解,流程图说明和/或框图的每一框以及流程图说明和/或框图中的框的组合可由计算机程序指令实施。计算机程序指令可提供到通用计算机的处理器、专用计算机或其它可编程数据处理设备以产生机器,使得经由计算机的处理器或其它可编程数据处理设备执行的指令产生用于实施流程图和/或框图框中指定的功能/动作的手段。
这些计算机程序指令还可存储在计算机可读媒体中,其可引导计算机、其它可编程数据处理设备或其它装置以特定方式起作用,使得存储在计算机可读媒体中的指令产生包含实施流程图和/或框图框中指定的功能/动作的指令的制品。计算机程序指令还可加载到计算机、其它可编程数据处理设备,或其它装置以致使在计算机、其它可编程设备或其它装置上执行一系列操作步骤以产生计算机实施的过程,使得在计算机或其它可编程设备上执行的指令提供用于实施流程图和/或框图框中指定的功能/动作的过程。
图中的流程图和框图说明根据本发明的各个实施方案的系统、方法和计算机程序产品的可能实现方式的架构、功能性和操作。在此方面,流程图或框图中的每一框可表示包括用于实施指定的逻辑功能的一个或多个可执行指令的模块、片段或代码部分。还应注意,在一些替代实现方式中,框中所述的功能可不以图中所述的次序发生。举例来说,连续展示的两个框可实际上大体同时执行,或所述框可有时以相反次序执行,这取决于所涉及的功能性。还将注意,框图和/或流程图说明的每一框以及框图和/或流程图说明中的框的组合可由执行指定功能或动作的专用基于硬件的系统或者专用硬件与计算机指令的组合实施。
虽然已参考特定实施方案展示和描述本发明,但本领域技术人员应理解,可在不脱离本发明的精神和范围的情况下在其中作出形式和细节上的各种改变。
Claims (25)
1.一种聚集装置,其包括:
开关机构,其与多个电子装置通信;
控制平面处理器,其从第一电子装置处的存储器提取第一发射描述符,所述第一发射描述符包括对应于待从所述第一电子装置处的所述存储器输出的数据的信息,所述信息包括所述数据在所述第一电子装置处的所述存储器中驻留的位置和所述数据的大小,其中所述控制平面处理器包括虚拟网络接口卡(vNIC),并且其中所述虚拟网络接口卡从所述第一电子装置提取所述数据;以及
汇聚存储器,其与所述开关机构通信,其中响应于使用所述第一发射描述符所述数据准备好从所述第一电子装置处的所述存储器输出的确定且响应于足以包含所述数据的所述汇聚存储器中位置的分配,所述控制平面处理器将所述数据从所述多个电子装置的所述第一电子装置传递到所述汇聚存储器;
并且,其中汇聚管理模块从所述汇聚存储器提取第二发射描述符,所述第二发射描述符包括对应于待从所述汇聚存储器输出的数据的信息,所述信息包括所述数据在所述汇聚存储器中驻留的位置和所述数据的大小,并且响应于所述数据准备好从所述汇聚存储器输出到第二电子装置的确定且响应于所述第二电子装置处的存储器中经分配的位置,所述汇聚管理模块使用所述第二发射描述符将所述数据从所述汇聚存储器移动到所述第二电子装置。
2.根据权利要求1所述的聚集装置,其中所述第一电子装置是耦合到所述开关机构的服务器节点。
3.根据权利要求1所述的聚集装置,其中所述第一电子装置是与所述聚集装置通信的远程计算机。
4.根据权利要求1所述的聚集装置,其中第二电子装置是所述多个服务器节点的第二服务器节点,或与所述聚集装置通信的远程计算机。
5.根据权利要求1所述的聚集装置,其进一步包括所述汇聚管理模块负责在所述汇聚存储器中分配用于所述数据的所述位置直到所述数据可提供到第二电子装置为止。
6.根据权利要求1所述的聚集装置,其进一步包括输入/输出(I/O)处理器,所述输入/输出(I/O)处理器识别所述汇聚存储器中分配的将接收准备好输出的所述数据的位置。
7.根据权利要求1所述的聚集装置,其进一步包括控制平面处理器,所述控制平面处理器管理开关控制平面用于所述多个电子装置之间的数据递送。
8.根据权利要求1所述的聚集装置,其中所述存储器包含硅通孔存储器。
9.根据权利要求1所述的聚集装置,其中所述存储器包含裸片上存储器。
10.一种服务器聚集系统,其包括:
多个电子装置;以及
聚集装置,其耦合到所述多个电子装置,所述聚集装置包含:
控制平面处理器,其从第一电子装置处的存储器提取第一发射描述符,所述第一发射描述符包括对应于待从所述第一电子装置处的所述存储器输出的数据的信息,所述信息包括所述数据在所述第一电子装置处的所述存储器中驻留的位置和所述数据的大小,其中所述控制平面处理器包括虚拟网络接口卡(vNIC),并且其中所述虚拟网络接口卡从所述第一电子装置提取所述数据;以及
汇聚存储器,其参与与所述多个电子装置的所述第一电子装置的本地存储器的数据传递,并且其中响应于所述数据准备好从第一电子装置的存储器输出的确定且响应于足以包含所述数据的所述汇聚存储器中位置的分配,所述控制平面处理器使用所述第一发射描述符将所述数据从所述第一电子装置传递到所述聚集装置,其中汇聚管理模块从所述汇聚存储器提取第二发射描述符,所述第二发射描述符包括对应于待从所述汇聚存储器输出的数据的信息,所述信息包括所述数据在所述汇聚存储器中驻留的位置和所述数据的大小,并且响应于所述数据准备好从所述汇聚存储器输出到第二电子装置的确定且响应于所述第二电子装置处的存储器中经分配的位置,所述汇聚管理模块使用所述第二发射描述符将所述数据从所述汇聚存储器传递到所述第二电子装置。
11.根据权利要求10所述的服务器聚集系统,其中所述第二电子装置是所述多个电子装置的第二电子装置,或与所述聚集装置通信的远程计算机。
12.根据权利要求10所述的服务器聚集系统,其进一步包括所述汇聚管理模块负责在所述汇聚存储器中分配用于所述数据的所述位置直到所述数据可提供到第二电子装置为止。
13.根据权利要求10所述的服务器聚集系统,其进一步包括输入/输出(I/O)处理器,所述输入/输出(I/O)处理器识别所述汇聚存储器中分配的将接收准备好输出的所述数据的位置。
14.根据权利要求10所述的服务器聚集系统,其进一步包括控制平面处理器,所述控制平面处理器在所述第一电子装置的所述本地存储器与所述汇聚存储器之间建立数据传递。
15.一种用于多个电子装置与聚集系统之间的通信的方法,所述方法包括:
在所述多个电子装置的第一电子装置的本地存储器处提供数据以供发送到所述多个电子装置的第二电子装置;
在控制平面处理器,从所述第一电子装置处的所述本地存储器提取第一发射描述符,所述第一发射描述符包括对应于待从所述第一电子装置处的所述本地存储器输出的数据的信息,所述信息包括所述数据在所述第一电子装置处的所述本地存储器中驻留的位置和所述数据的大小,其中所述控制平面处理器包括虚拟网络接口卡(vNIC),并且其中所述虚拟网络接口卡从所述第一电子装置提取所述数据;
在所述聚集系统处提供汇聚存储器用于从所述第一电子装置的所述本地存储器接收所述数据;
响应于使用所述第一发射描述符确定所述数据在所述第一电子装置的所述本地存储器中以供发射且响应于确定在足以包含所述数据的所述汇聚存储器中位置的分配通过所述控制平面处理器将所述数据从所述第一电子装置的所述本地存储器传递到所述汇聚存储器;
从所述汇聚存储器提取第二发射描述符,所述第二发射描述符包括对应于待从所述汇聚存储器输出的数据的信息,所述信息包括所述数据在所述汇聚存储器中驻留的位置和所述数据的大小;以及
响应于所述数据准备好从所述汇聚存储器输出到第二电子装置的确定且响应于所述第二电子装置处的本地存储器中经分配的位置,使用所述第二发射描述符将所述数据从所述汇聚存储器传递到所述第二电子装置。
16.根据权利要求15所述的方法,其进一步包括:
从所述第一电子装置产生所述数据可用于在所述第一电子装置的所述本地存储器处发射的通知;
识别所述汇聚存储器处的可用缓冲器;
分配所述可用缓冲器用于从所述第一电子装置的所述本地存储器接收所述数据;以及
将来自所述第一电子装置的所述本地存储器的所述数据输出到所述汇聚存储器处的所述可用缓冲器。
17.根据权利要求15所述的方法,其进一步包括:
确定所述第二电子装置处的本地存储器可接收所述数据;以及
将所述数据从所述汇聚存储器传递到所述第二电子装置处的所述本地存储器。
18.根据权利要求17所述的方法,其进一步包括:
从所述汇聚存储器产生所述数据可用于在所述汇聚存储器处发射的通知;
识别所述第二电子装置处的所述本地存储器处的可用缓冲器;
分配所述第二电子装置处的所述本地存储器处的所述可用缓冲器;以及
将来自所述汇聚存储器的所述数据输出到所述第二电子装置处的所述本地存储器。
19.根据权利要求15所述的方法,其中所述第一和第二电子装置的至少一者包含服务器节点。
20.根据权利要求15所述的方法,其中所述第二电子装置是服务器节点或远程计算机。
21.一种用于多个电子装置与聚集系统之间的通信的方法,所述方法包括:
在控制平面处理器,从第一电子装置处的本地存储器提取第一发射描述符,所述第一发射描述符包括对应于待从所述第一电子装置处的所述本地存储器输出的数据的信息,所述信息包括所述数据在所述第一电子装置处的所述本地存储器中驻留的位置和所述数据的大小,其中所述控制平面处理器包括虚拟网络接口卡(vNIC),并且其中所述虚拟网络接口卡从所述第一电子装置提取所述数据;
通知所述聚集系统处的所述虚拟网络接口卡(vNIC)所述数据在所述第一电子装置处的所述本地存储器处可用于发射;
产生第二电子装置处的至少一个可用缓冲器的通知;
分配所述至少一个可用缓冲器用于接收所述数据;
响应于使用所述第一发射描述符确定所述数据在所述第一电子装置的所述本地存储器中以供发射且响应于确定足以包含所述数据的汇聚存储器中的位置的分配而通过所述控制平面处理器将所述数据从所述第一电子装置的所述本地存储器传递到所述汇聚存储器;
从所述汇聚存储器提取第二发射描述符,所述第二发射描述符包括对应于待从所述汇聚存储器输出的数据的信息,所述信息包括所述数据在所述汇聚存储器中驻留的位置和所述数据的大小;以及
响应于所述数据准备好从所述汇聚存储器输出到第二电子装置的确定且响应于所述第二电子装置处的本地存储器中经分配的位置,使用所述第二发射描述符将所述数据从所述汇聚存储器传递到所述第二电子装置。
22.根据权利要求21所述的方法,其中所述多个电子装置的至少一者包含服务器节点。
23.根据权利要求21所述的方法,其中所述第二电子装置是服务器节点或远程计算机。
24.一种用于多个电子装置与聚集系统之间的通信的系统,其包括:
装置,用于在所述多个电子装置的第一电子装置的本地存储器处提供数据以供发送到所述多个电子装置的第二电子装置;
装置,用于在控制平面处理器,从第一电子装置处的本地存储器提取第一发射描述符,所述第一发射描述符包括对应于待从所述第一电子装置处的所述本地存储器输出的数据的信息,所述信息包括所述数据在所述第一电子装置处的所述本地存储器中驻留的位置和所述数据的大小,其中所述控制平面处理器包括虚拟网络接口卡(vNIC),并且其中所述虚拟网络接口卡从所述第一电子装置提取所述数据;
装置,用于在所述聚集系统处提供汇聚存储器用于从所述第一电子装置的所述本地存储器接收所述数据;
装置,用于响应于使用所述第一发射描述符确定所述数据在所述第一电子装置的所述本地存储器中以供发射且响应于确定在足以包含所述数据的所述汇聚存储器中位置的分配通过所述控制平面处理器将所述数据从所述第一电子装置的所述本地存储器传递到所述汇聚存储器;
装置,用于从所述汇聚存储器提取第二发射描述符,所述第二发射描述符包括对应于待从所述汇聚存储器输出的数据的信息,所述信息包括所述数据在所述汇聚存储器中驻留的位置和所述数据的大小;以及
装置,用于响应于所述数据准备好从所述汇聚存储器输出到第二电子装置的确定且响应于所述第二电子装置处的本地存储器中经分配的位置,使用所述第二发射描述符将所述数据从所述汇聚存储器传递到所述第二电子装置。
25.一种计算机可读存储介质,其包括:
永久的计算机可读存储媒体,其具有随其实施的计算机可读程序代码,所述计算机可读程序代码包括:
经配置以在控制平面处理器,从第一电子装置处的本地存储器提取第一发射描述符的计算机可读程序代码,所述第一发射描述符包括对应于待从所述第一电子装置处的所述本地存储器输出的数据的信息,所述信息包括所述数据在所述第一电子装置处的所述本地存储器中驻留的位置和所述数据的大小,其中所述控制平面处理器包括虚拟网络接口卡(vNIC);
经配置以通知聚集系统处的所述虚拟网络接口卡(vNIC)所述数据在所述第一电子装置处的所述本地存储器处可用于发射的计算机可读程序代码;
经配置以产生第二电子装置处的至少一个可用缓冲器的通知的计算机可读程序代码;
经配置以分配所述至少一个可用缓冲器用于接收所述数据的计算机可读程序代码;
经配置以响应于使用所述第一发射描述符确定所述数据在所述第一电子装置的所述本地存储器中以供发射且响应于确定在足以包含所述数据的汇聚存储器中位置的分配通过所述控制平面处理器将所述数据从所述第一电子装置的所述本地存储器传递到所述汇聚存储器的计算机可读程序代码;
经配置以从所述汇聚存储器提取第二发射描述符的计算机可读程序代码,所述第二发射描述符包括对应于待从所述汇聚存储器输出的数据的信息,所述信息包括所述数据在所述汇聚存储器中驻留的位置和所述数据的大小;以及
经配置以响应于所述数据准备好从所述汇聚存储器输出到第二电子装置的确定且响应于所述第二电子装置处的本地存储器中经分配的位置,使用所述第二发射描述符将所述数据从所述汇聚存储器传递到所述第二电子装置的计算机可读程序代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/470,847 US8868672B2 (en) | 2012-05-14 | 2012-05-14 | Server node interconnect devices and methods |
US13/470,847 | 2012-05-14 | ||
PCT/US2013/040508 WO2013173181A1 (en) | 2012-05-14 | 2013-05-10 | Server node interconnect devices and methods |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104395897A CN104395897A (zh) | 2015-03-04 |
CN104395897B true CN104395897B (zh) | 2018-08-14 |
Family
ID=49549514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380030850.XA Active CN104395897B (zh) | 2012-05-14 | 2013-05-10 | 服务器节点互连装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8868672B2 (zh) |
EP (1) | EP2850533A4 (zh) |
JP (1) | JP6392745B2 (zh) |
KR (1) | KR101665035B1 (zh) |
CN (1) | CN104395897B (zh) |
IN (1) | IN2014DN09341A (zh) |
WO (1) | WO2013173181A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013251715A (ja) * | 2012-05-31 | 2013-12-12 | Toshiba Corp | ルータ及びメニーコアシステム |
US20140237156A1 (en) * | 2012-10-25 | 2014-08-21 | Plx Technology, Inc. | Multi-path id routing in a pcie express fabric environment |
US9344383B2 (en) | 2012-11-07 | 2016-05-17 | Dell Products L.P. | Event driven network system |
US20140164669A1 (en) * | 2012-12-09 | 2014-06-12 | Giovanni Coglitore | Disaggregation of server components in a data center |
US9363204B2 (en) | 2013-04-22 | 2016-06-07 | Nant Holdings Ip, Llc | Harmonized control planes, systems and methods |
US9363193B2 (en) * | 2013-11-19 | 2016-06-07 | Cavium, Inc. | Virtualized network interface for TCP reassembly buffer allocation |
CN104753702B (zh) | 2013-12-27 | 2018-11-20 | 华为技术有限公司 | 一种集群系统中的集群处理方法、装置及系统 |
CN106688208B (zh) * | 2014-09-25 | 2020-06-30 | 英特尔公司 | 利用机架规模架构中的池化存储器进行的网络通信 |
TWI511104B (zh) * | 2014-10-07 | 2015-12-01 | Wistron Corp | 互動式電子白板操作方法以及使用該方法的裝置 |
US9338071B2 (en) | 2014-10-08 | 2016-05-10 | Google Inc. | Locale profile for a fabric network |
US9977750B2 (en) * | 2014-12-12 | 2018-05-22 | Nxp Usa, Inc. | Coherent memory interleaving with uniform latency |
US10097484B2 (en) | 2015-10-21 | 2018-10-09 | International Business Machines Corporation | Using send buffers and receive buffers for sending messages among nodes in a network |
US10509738B2 (en) * | 2016-07-01 | 2019-12-17 | Intel Corporation | Remote memory operations |
CN109952744B (zh) | 2016-09-26 | 2021-12-14 | 河谷控股Ip有限责任公司 | 云网络中提供虚拟电路的方法和设备 |
CN107612721B (zh) * | 2017-08-31 | 2021-07-06 | 网宿科技股份有限公司 | 运维数据的管理系统及方法、汇聚服务器及处理服务器 |
JP6711339B2 (ja) * | 2017-10-25 | 2020-06-17 | 横河電機株式会社 | 通信処理装置、プログラム、および通信処理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5636210A (en) * | 1995-08-02 | 1997-06-03 | Agrawal; Jagannath P. | Asynchronous transfer mode packet switch |
CN101395861A (zh) * | 2005-12-30 | 2009-03-25 | 霍尼韦尔国际公司 | 用于将无线设备与分布式控制系统相集成的方法和系统 |
CN101453398A (zh) * | 2007-12-06 | 2009-06-10 | 怀特威盛软件公司 | 一种新型分布式网格超级计算系统及方法 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2757482B2 (ja) * | 1989-08-25 | 1998-05-25 | 日本電気株式会社 | プロセッサ間通信システム |
US5291482A (en) | 1992-07-24 | 1994-03-01 | At&T Bell Laboratories | High bandwidth packet switch |
JPH10229429A (ja) * | 1997-02-13 | 1998-08-25 | Oki Electric Ind Co Ltd | 通信ネットワークシステム |
US6370605B1 (en) | 1999-03-04 | 2002-04-09 | Sun Microsystems, Inc. | Switch based scalable performance storage architecture |
US6850987B1 (en) | 1999-06-01 | 2005-02-01 | Fastforward Networks, Inc. | System for multipoint infrastructure transport in a computer network |
US6785892B1 (en) | 2000-06-23 | 2004-08-31 | Unisys | Communications between partitioned host processors and management processor |
US20020069317A1 (en) | 2000-12-01 | 2002-06-06 | Chow Yan Chiew | E-RAID system and method of operating the same |
US6795886B1 (en) | 2000-12-22 | 2004-09-21 | Ncr Corporation | Interconnect switch method and apparatus |
US7154885B2 (en) | 2001-12-31 | 2006-12-26 | Stmicroelectronics Ltd. | Apparatus for switching data in high-speed networks and method of operation |
US7404012B2 (en) | 2002-05-06 | 2008-07-22 | Qlogic, Corporation | System and method for dynamic link aggregation in a shared I/O subsystem |
US20050041510A1 (en) * | 2003-08-19 | 2005-02-24 | Jean Khawand | Method and apparatus for providing interprocessor communications using shared memory |
US7421532B2 (en) * | 2003-11-18 | 2008-09-02 | Topside Research, Llc | Switching with transparent and non-transparent ports |
JP3933134B2 (ja) * | 2004-01-15 | 2007-06-20 | 日本電気株式会社 | 通信システム |
US7694167B2 (en) | 2004-10-22 | 2010-04-06 | Microsoft Corporation | Maintaining routing consistency within a rendezvous federation |
US8095600B2 (en) | 2004-10-22 | 2012-01-10 | Microsoft Corporation | Inter-proximity communication within a rendezvous federation |
US7480303B1 (en) * | 2005-05-16 | 2009-01-20 | Pericom Semiconductor Corp. | Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports |
CN101356783B (zh) * | 2006-01-12 | 2014-06-04 | 博通以色列研发公司 | 虚拟化网络环境中具有i/o共享的协议卸载和直接i/o的方法和系统 |
US8397284B2 (en) | 2006-01-17 | 2013-03-12 | University Of Maryland | Detection of distributed denial of service attacks in autonomous system domains |
JP2007328461A (ja) * | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | 非対称マルチプロセッサ |
US7925802B2 (en) | 2007-06-21 | 2011-04-12 | Seamicro Corp. | Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric |
US8140719B2 (en) | 2007-06-21 | 2012-03-20 | Sea Micro, Inc. | Dis-aggregated and distributed data-center architecture using a direct interconnect fabric |
US7788334B2 (en) * | 2007-06-26 | 2010-08-31 | International Business Machines Corporation | Multiple node remote messaging |
EP2224338A3 (en) * | 2007-09-12 | 2011-03-16 | Citrix Systems, Inc. | Methods and systems for generating desktop environments providing integrated access to remote and local resources |
JP5096905B2 (ja) * | 2007-12-20 | 2012-12-12 | 株式会社日立製作所 | サーバ装置及びそのリンク回復処理方法 |
US8249072B2 (en) | 2009-03-12 | 2012-08-21 | Oracle America, Inc. | Scalable interface for connecting multiple computer systems which performs parallel MPI header matching |
JP2009282917A (ja) * | 2008-05-26 | 2009-12-03 | Hitachi Ltd | サーバ間通信機構及びコンピュータシステム |
US9575889B2 (en) * | 2008-07-03 | 2017-02-21 | Hewlett Packard Enterprise Development Lp | Memory server |
KR101539297B1 (ko) | 2009-01-05 | 2015-07-24 | 삼성전자주식회사 | 반도체 장치, 이를 포함하는 반도체 시스템, 및 반도체 장치의 전압 공급방법 |
US7913027B2 (en) * | 2009-04-07 | 2011-03-22 | Lsi Corporation | Configurable storage array controller |
US8352669B2 (en) | 2009-04-27 | 2013-01-08 | Lsi Corporation | Buffered crossbar switch system |
TW201115458A (en) * | 2009-10-29 | 2011-05-01 | Ralink Technology Corp | Buffer space allocation method and related packet switch |
US8463934B2 (en) * | 2009-11-05 | 2013-06-11 | Rj Intellectual Properties, Llc | Unified system area network and switch |
-
2012
- 2012-05-14 US US13/470,847 patent/US8868672B2/en active Active
-
2013
- 2013-05-10 EP EP13790307.6A patent/EP2850533A4/en not_active Ceased
- 2013-05-10 KR KR1020147034454A patent/KR101665035B1/ko active IP Right Grant
- 2013-05-10 JP JP2015512707A patent/JP6392745B2/ja active Active
- 2013-05-10 WO PCT/US2013/040508 patent/WO2013173181A1/en active Application Filing
- 2013-05-10 CN CN201380030850.XA patent/CN104395897B/zh active Active
- 2013-05-10 IN IN9341DEN2014 patent/IN2014DN09341A/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5636210A (en) * | 1995-08-02 | 1997-06-03 | Agrawal; Jagannath P. | Asynchronous transfer mode packet switch |
CN101395861A (zh) * | 2005-12-30 | 2009-03-25 | 霍尼韦尔国际公司 | 用于将无线设备与分布式控制系统相集成的方法和系统 |
CN101453398A (zh) * | 2007-12-06 | 2009-06-10 | 怀特威盛软件公司 | 一种新型分布式网格超级计算系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104395897A (zh) | 2015-03-04 |
EP2850533A1 (en) | 2015-03-25 |
WO2013173181A1 (en) | 2013-11-21 |
US20130304841A1 (en) | 2013-11-14 |
KR101665035B1 (ko) | 2016-10-24 |
KR20150013259A (ko) | 2015-02-04 |
JP6392745B2 (ja) | 2018-09-19 |
EP2850533A4 (en) | 2016-06-29 |
JP2015522991A (ja) | 2015-08-06 |
US8868672B2 (en) | 2014-10-21 |
IN2014DN09341A (zh) | 2015-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104395897B (zh) | 服务器节点互连装置和方法 | |
US20220197685A1 (en) | Technologies for application-specific network acceleration with unified coherency domain | |
US20240080246A1 (en) | Techniques for artificial intelligence capabilities at a network switch | |
US8806025B2 (en) | Systems and methods for input/output virtualization | |
US8644139B2 (en) | Priority based flow control within a virtual distributed bridge environment | |
US8930595B2 (en) | Memory switch for interconnecting server nodes | |
CN104320350B (zh) | 用于提供基于信用的流控制的方法及系统 | |
US10142231B2 (en) | Technologies for network I/O access | |
US8761204B2 (en) | Packet assembly module for multi-core, multi-thread network processors | |
US20170180216A1 (en) | Method for Unified Communication of Server, Baseboard Management Controller, and Server | |
US8825927B2 (en) | Systems and methods for managing queues | |
US10248315B2 (en) | Devices and methods for interconnecting server nodes | |
CN109684269A (zh) | 一种pcie交换芯片内核及工作方法 | |
US20140281099A1 (en) | METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR CONTROLLING FLOW OF PCIe TRANSPORT LAYER PACKETS | |
US8671220B1 (en) | Network-on-chip system, method, and computer program product for transmitting messages utilizing a centralized on-chip shared memory switch | |
US11875839B2 (en) | Flow based rate limit | |
US10680976B2 (en) | Technologies for performing switch-based collective operations in distributed architectures | |
US10069767B1 (en) | Method of dynamically allocating buffers for packet data received onto a networking device | |
US10341246B1 (en) | Update packet sequence number packet ready command | |
CN117041147B (zh) | 智能网卡设备、主机设备和方法及系统 | |
US11580058B1 (en) | Hierarchical ring-based interconnection network for symmetric multiprocessors | |
TW201606507A (zh) | 具有基於協定之優先性的基於節點之運算裝置 | |
Takano et al. | Performance-assured network function virtualization for open and disaggregated optical transport systems | |
CN115914110A (zh) | 一种基于片上网络的挂死解除电路以及挂死解除方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |