CN107924343B - 低等待时间节点间通信 - Google Patents
低等待时间节点间通信 Download PDFInfo
- Publication number
- CN107924343B CN107924343B CN201680049862.0A CN201680049862A CN107924343B CN 107924343 B CN107924343 B CN 107924343B CN 201680049862 A CN201680049862 A CN 201680049862A CN 107924343 B CN107924343 B CN 107924343B
- Authority
- CN
- China
- Prior art keywords
- node
- memory
- message
- processor
- processor node
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
Abstract
低等待时间节点间消息通讯方案绕过节点的I/O栈以使用支持节点与汇集存储器控制器(或汇集存储装置控制器)之间的“节点侧”上以及控制器与其汇集存储器或存储装置之间的“汇集侧”上的存储器过程逻辑(例如SMI3)或电过程逻辑(例如PCIe)。控制器可转化和重定向消息并查找地址。方式适应2级存储器(本地附连节点存储器和可访问汇集存储器),其中任一级或两级存储器私用、全局共享、分配(或以任何组合)给节点的子集。兼容中断方案使用消息通讯链路和组件。
Description
技术领域
相关领域包括分布式和并行计算、特别是节点间通信。
附图说明
图1A和1B示出通用分布式和并行计算网络以帮助理解本公开的更复杂网络。
图2示出可受益于低等待时间消息接发选项的具有多个和混合类型的节点、链路和存储器布置的计算网络。
图3A和3B是通用借用变量(borrowed-variable)过程和一组潜在低等待时间消息接发步骤的流程图。
图4是其中所有链路都支持存储器语义的并行计算网络的框图。
图5是用于使用存储器语义吞吐量的节点间消息接发的过程的跨功能流程图。
图6A和6B是其中所有链路都支持电语义的并行计算网络的框图和跨功能图。
图7A和7B是其中节点侧链路支持存储器语义并且汇集可写介质(pooled-writeable-medium)侧链路支持电语义的并行计算网络的框图和跨功能图。
图8A和8B是其中节点侧链路支持电语义并且汇集可写介质侧链路支持存储器语义的并行计算网络的框图和跨功能图。
图9A-9C示出配置成仅使用存储器语义来支持与消息信号中断(MSI)相似的节点间中断的PMC系统的构造和功能。
图10A和10B示出配置成仅使用电语义来支持与消息信号中断(MSI)相似的节点间中断的PSC系统的构造和功能。
具体实施方式
并行计算(其中操作被分布在多个被链接的处理器之间)能够潜在地比串行计算(其中操作在单个处理器上每次被进行一个)要更快得多地分析非常大的数据量(例如,通用或者大规模气象信息)。然而,并行计算呈现其自己的难题。例如,如果运行于不同处理器上的操作改变相同变量,则如果处理器之一在另一处理器已完成对变量改变之前访问该变量,那么结果可能是不准确或者不可重复的。编程量度器(例如锁和臂板信号机(semaphore))已被用来防止变量被多于一个操作这样同时访问。
因此,该过程的一些部分(也就是由多个处理器所使用的变量的获取和释放)在某种程度上仍然是串行的。任何串行过程可变成限制最终结果的产生速率的瓶颈。考查的一个区域涉及缩短第一处理器对这些“借用的”变量之一的释放与下一个处理器对它的获取和使用之间的等待时间。在一些并行计算布置中,节点(CPU或其它处理器,可选地具有一个或更多外围设备)通过“消息传递”或者简单的“消息接发“来相互通信。
为了本文中的目的,“消息”是附连到一对地址的信息(例如命令或数据)。一个地址与源节点(或者“发送方”或“产生方”)关联。另一地址与目标节点(或者“接收方”或“消费方”)关联。
用于高性能计算机、网络和群集的一些节点间通信方案使用I/O栈,诸如以太网、InfiniBand(IB)或者Cray Inc.的专有解决方案、等等。I/O栈的使用可促成不想要的等待时间;例如,如果由程序或应用所进行的“消息写”中的每个“消息写”触发了由存储器或存储组件所进行的(例如分离的消息子段的)多个读和写。在一些过程中,从元数据的地址提取以及连续备份(诸如RAID)也可促成等待时间。
为了本文档的目的,下列术语将会具有下列含意:
电语义:可包括用来控制对共享的存储器位置的访问的电路。
构造:节点和链路的网络,其在从上方查看时类似编织物。
等待时间:消息遍历系统所花费的时间量。
链路:数据路径,通过其消息可在两个或更多电子组件之间被交换。
链路,相干:使用促进高速缓存和存储器相干性的协议的链路。
链路,电:能够采用电互连语义(诸如用来访问驱动、网络适配器和诸如此类的I/O语义)来携带消息的链路。非限制性示例包括外围设备组件互连高速(PCIe)语义、以太网语义、InfiniBand语义、以及适合于I/O的专有语义。还设想可与多节点并行节点群集和汇集存储器或存储装置兼容的对当前I/O语义类型的将来变化和后继。
链路,存储器:能够采用用来访问存储器的语义(例如,加载/存储(LD/ST)语义)来携带消息的链路。
链路,双语义:能够采用存储器语义或者电语义来携带消息的链路,例如Plattsmouth(PLM)链路。
邮箱:被分配以缓冲寻址到具体节点的接收的消息(在它们被读之前)的地址空间。
存储器语义:用来控制对共享的存储器位置的访问的过程逻辑。
消息区域:被分配以缓冲由具体节点所写的消息(在它们被传送之前)的地址空间。
节点:处理器及其本地外围设备(如果有的话),链接到在并行或分布式计算网络中具有或不具有本地外围设备的其它处理器。网络的节点可在广域(平方公里)、局域(平方米)、单个芯片、或者任何中间大小域上被分布。
汇集存储器:由两个或更多节点可访问的非本地存储器。所述存储器能是:(1)易失性或者非易失性的,(2)由所有连接的节点所共享、或者分配给特定节点或节点群组,或者(3)任何组合。
汇集存储装置:由两个或更多节点可访问的非本地存储装置。所述存储装置能是:(1)非易失性存储器或者其它存储介质,(2)由所有连接的节点所共享、或者分配给特定节点或节点群组,或者(3)任何组合。
请求、加载、或者释放变量:请求、加载、或者释放变量的当前值。
对I/O栈节点间通信的潜在低等待时间备选方案是通过支持存储器加载/存储(LD/ST)语义和/或高速电互连语义(例如PCIe)的构造的节点间通信。实施例类别包括:
1)源节点将消息写到其消息区域,并且使用存储器语义吞吐量来将消息转移到目标节点的邮箱。
2)源节点将消息写到其消息区域,并且使用电语义吞吐量来将消息转移到目标节点的邮箱。
3)源节点使用存储器语义来将消息写到其消息区域,并且使用电语义来将消息转移到目标节点的邮箱。
4)源节点使用电语义来将消息写到其消息区域,并且使用存储器语义来将消息转移到目标节点的邮箱。
节点间通信的另一方面涉及采用用于通过存储器链路或通过存储器构造的传送的存储器语义、或者备选地采用用于通过电链路或通过电构造的传送的电语义来生成的中断。
配置以用于低等待时间消息接发的计算系统的实施例可包括至少两个处理器节点、和至少一个存储器或存储组件。所述存储器或存储组件可包括用于所述处理器之一的至少一个消息区域、以及用于另一个处理器的至少一个邮箱。在一些实施例中,固定的一组硬件连接和交换机可将每个节点连接到其自己的消息区域并且连接到目标节点的邮箱。
在一些实施例中,消息接发控制器被完全或部分专用于节点间通信。消息接发控制器可包括汇集存储器控制器、汇集存储装置控制器、或两者。消息接发控制器可包括至少三个通信接口(两个处理器-节点兼容接口(又称作处理器节点接口))和一个存储器兼容或存储装置兼容接口(又称作存储组件接口)。所述通信接口可配置成使用存储器语义、电语义、或两者来传送和接收消息。消息接发控制器可接收从第一节点寻址到第二节点的消息、将所述消息中继到第一节点的消息区域、更新第二节点的邮箱、并向第二节点发送指导它读所述消息的指示(例如中断)。
图1A和1B示出通用分布式和并行计算网络以帮助理解本公开的更复杂网络。
图1A是通过电构造所连接的分布式计算网络的示例。每个节点102A包括处理器112、由私用专用存储器单元104所组成的本地存储器124、以及与处理器112的I/O栈关联的I/O组件122。连接节点102A的电构造121包括多个电链路133。
图1B是共享了公共存储器组件的并行计算网络的示例。每个节点102B包括处理器112和I/O组件122,但是所有节点102B都访问由共享的存储器单元114所组成的共享的存储器134。连接节点102A的存储器构造131包括多个存储器链路143。
图2示出可受益于低等待时间消息接发选项的具有多个和混合类型的节点、链路、和存储器布置的计算网络。此类网络可被定制成以优化的速度或者某个另外预期特性在具体类型的数据上执行特殊化的过程。
节点202A包括处理器212、I/O组件222、和本地私用专用存储器224A。另外,节点202A通过存储器链路203而能访问汇集存储器244中的共享的存储器单元214的块。节点202B包括处理器212和I/O组件222,但是没有本地存储器。代替地,它通过双语义链路223来访问汇集存储器244中的共享的存储器单元214的块和分配的存储器单元204的块(其像私用专用存储器单元那样来运转)。节点202C仅具有处理器212,并通过双语义链路223来访问汇集存储器244中的分配的存储器单元204的块。节点202C还通过存储器链路203来访问节点202D的本地共享的存储器224B以及节点202E的本地混合存储器224的共享部分。节点202A、202B和202C的处理器212通过电链路213或双语义链路223而相互直接通信,其任一个可以是“相干”链路—那就是说,它们在促进高速缓存和存储器相干性的链路协议上操作。汇集存储器244由三个分离模块(其通过存储器链路203来相互连接)所组成。
所有这些连接可以是硬连线的,并且汇集存储器244的存储器单元可被永久配置为共享或者分配给具体节点。备选地,汇集存储器控制器(PMC)206可被插入在节点202与汇集存储器244之间。PMC 206可具有各种能力。例如,PMC 206可从电链路213接受采用电语义的消息,将所述消息转化成存储器语义,并通过存储器链路203将所转化的消息传送到汇集存储器244。这可允许到PMC 206的所有节点连接是电链路213的构造或者双语义链路(例如PLM链路)223的构造,其可在处理器中更容易可用,而PMC 206到汇集存储器244的连接可组成存储器构造。在一些实施例中,PMC 206可以能够将汇集存储器244重新配置成如果系统需要对不同类型的过程或数据来优化,则改变与分配的存储器单元204相比的共享的存储器单元214的相对量。
图3A和3B是通用借用变量过程和一组潜在低等待时间消息接发步骤的流程图。
图3A是对控制借用变量的标志设置方式的流程图。在所示出的标志设置流程中,如果变量可用,则与具体变量关联的标志位可被设置为0(通过白色标志304所表示),或者如果变量不可用(例如,当前由处理器所借用),则可被设置为1(通过黑色标志306所表示)。当处理器在其运行操作中遇到对某个变量的调用时,它执行步骤302以请求该变量,由此充当源节点(即,请求的源)。在这个流程中,请求可采取访问和读标志位的形式。随后,确定变量是否由另一个处理器所使用中。这可包括查找标志状态的对应动作(判定310)。
状态306与不可用变量关联;源节点的对应动作是在继续其操作之前执行等待标志状态改变的步骤312。在等待时,源节点可重复轮询标志位,或者从某个其它组件请求标志状态中的改变的通知,这取决于硬件和软件布置。当标志进入与可用变量关联的状态304时,源节点(假定它是队列中的下一个)执行获取和加载变量的步骤311。同时,标志返回到状态306以向其它节点通知变量已变得不可用。
标志状态306在源节点执行使用及可能更新变量的步骤313时继续进行。随后,检测瞬时操作中变量的作用的结束可包括读“变量###完成”行,或者编码到所述操作中的类似的某方面(判定320)。在源节点仍正使用变量时,步骤313继续进行,并且标志状态306持续。当源节点已经完成使用变量(至少对于操作的目前阶段)时,源节点执行释放变量并存储其当前值的步骤321。在源节点执行步骤321之后,标志状态改变成304,向一个或更多其它节点发信号通知变量可用于它们的使用。
为了帮助减少节点等待借用变量所花费的时间,操作可被编码成仅当立即需要借用变量时才调用它们,以及在它们的使用和更新结束(或者对于另一个节点利用变量足够长的中断)的同时立即将它们释放。
图3B是由一些实施例可使用的节点间消息接发过程的跨功能流程图。网络中的第一节点充当源节点,编发和写消息以便第二节点对其进行读和反应。
节点1(源节点)351执行消息构成步骤371,然后执行或者控制另一个组件来执行消息写步骤372。写步骤372将消息写到指定为节点1的消息域353的节点1的地址空间352的一部分。这触发对指定为节点2(目标节点)361的邮箱363的地址空间362的一部分的更新。在某个点(例如响应于中断),节点2执行消息读步骤376和反应步骤378(例如动作或者动作的挂起)。
写步骤372、更新步骤373、读步骤376以及所涉及的硬件的细节在消息接发系统的不同实施例之间可改变。消息本身可采用存储器语义、电语义来呈递,或者可取决于连接节点1(源节点)351、节点1消息域353、节点2邮箱363、和节点2(目标节点)361的链路的类型而从一个语义切换到另一个语义。例如,链路可包括存储器链路、电链路、或者双语义链路(诸如PLM)中的一个或更多。附加地或备选地,更新步骤373可由源节点、由目标节点、或者由中间组件(诸如汇集存储器控制器)来发起。附加地或备选地,节点2邮箱363中的更新可以是由节点1 351所写的整个消息或者只是它的一部分。例如,如果节点1消息域353能仅由节点1 351来写但能由任何节点(包括节点2 361)来读,则节点2的邮箱363中的更新可能只是节点1的消息域353的地址,其中节点2 361将对寻址到其自己邮箱的(一个或更多)消息进行查找、读、和反应。
图4是其中所有链路支持存储器语义的并行计算网络的框图。虽然对大的构造连接网络有益,但所公开的原理可在具有少至三个连接(到节点的两个连接以及到存储器池的一个连接)的汇集存储器控制器(PMC)上被实现。
汇集存储器控制器(PMC)406被示出具有一个收发器接口405、一个传送器/接收器接口415、和一个“非端点”交换机接口425。然而,任何数量的接口可能是收发器接口405、传送器/接收器接口415、交换机接口425、或者任何其它适合端点或非端点接口(例如通信端点)。
汇集存储器444可包括共享的存储器414以及与特定节点关联的分配的存储器404。分配的存储器404可包括节点402.1的邮箱434.1和节点402.2的邮箱434.2。邮箱434.1和434.2可包括指针。另外,汇集存储器444可包括易失性存储器、非易失性存储器、或两者。汇集存储器444可以是单个连续存储器块或者多个互连存储器块。存储器块和互连可包括通过PLM链路所连接的存储器驱动或者通过DDRT总线所连接的DIMM。
将PMC 406连接到节点402.1、节点402.2、和汇集存储器444的链路被示出为存储器链路403。然而,对于全存储器语义情况,它们仅需要能够支持存储器语义;例如,它们能是双语义链路,对于其,存储器是所支持的语义之一。
节点402.1或节点402.2中的至少一个节点具有包括使它能够充当源节点的消息区域的地址空间。节点402.2或节点402.1中的至少另一个节点具有包括使它能够充当目标节点的邮箱的地址空间。在一些实施例中,节点402.1和节点402.2均具有包括消息区域的地址空间以及包括用于双向节点间通信的邮箱的地址空间。地址空间可在汇集存储器444中或者在附连到节点的本地存储器424.1和424.2中。目标节点的邮箱区域可在目标节点的本地附连的存储器中或者在PMC后面的存储器中被物理地备份。
图5是用于始终使用存储器语义的节点间消息接发的过程的跨功能流程图。所示出的过程使用SMI3,但是可使用任何其它适合存储器语义。
400系列中的参考标号指的是图4的元件。
在此示例中,源节点402.1和目标本地存储器424.1的物理备份在PMC 406的“节点侧”上,而目标邮箱和指针在不可缓存(UC)空间中,其被物理地备份于PMC 406的相对“存储器侧”上(其也可被表达为在PMC 406“后面”)的分配的汇集存储器404中。所有所示出(illustrious)的链路是Intel(R)可缩放存储器互连(SMI3),但是可使用任何其它适合架构和协议。
在步骤561,源节点402.1将消息写到其消息区域。在步骤562,PMC 406重定向消息;例如,PMC 406可转化消息中的接收方地址,以将它映射到目标节点402.2的邮箱区域434.2。在步骤565,目标邮箱434.2等待直到在判定560的“写完成=是”为止。当这发生时,它继之以步骤564,其中PMC 406向源节点402.1发送写完成通知。在步骤566,源节点402.1接收写完成通知。
在这些消息区域写(其直接更新目标邮箱434.2)的一个或更多之后,源节点402.1执行UC写(步骤567),以促使PMC 406在步骤568中更新目标节点402.2的邮箱434.2的写指针。在步骤571,目标邮箱434.2等待直到在判定570的“写完成=是”为止。当这发生时,它继之以步骤572,其中PMC 406向源节点402.1发送写完成通知。在步骤573,源节点402.1接收写完成通知。
用于提示目标节点402.2读其消息的选项中的两个选项通过虚线形状和箭头来表示。
通过长虚线所示的第一选项涉及中断。它开始于步骤574,中断请求被写到源节点402.1的中断区域(像可本地于源节点402.1或在PMC 406后面的消息区域的另一地址空间)。在步骤575,PMC 406向目标节点402.2发送中断。中断可类似于消息信号中断(message-signaled interrupt)(MSI)来构成。在步骤576,PMC 406向源节点402.1发送中断完成通知;在步骤578,源节点402.1接收写完成通知;并且在步骤577,目标节点402.2接收中断。
通过短虚线所示的第二选项涉及轮询。在步骤579,目标节点402.2周期地轮询其邮箱写指针,以在一个或更多新消息进入目标邮箱434.2时检测邮箱写指针的行动。
通过任一种提示方式(或者本领域中已知的适合替代),在步骤581,目标节点402.2读其邮箱写指针和来自源节点402.1的消息。在步骤582,目标节点402.2等待直到在判定580的“读完成=是”为止。当这发生时,它继之以步骤583,其中PMC 406向目标节点402.2发送读完成通知。在步骤584,目标节点402.2接收读完成通知。目标节点402.2随后在步骤585请求对读指针的更新。在步骤586,PMC 406更新目标节点402.2的邮箱读指针。在步骤591,目标节点402.2等待直到在判定590的“读完成=是”为止。当这发生时,它继之以步骤592,其中PMC 406向目标节点402.2发送写完成通知。在步骤593,目标节点402.2接收写完成通知。
此实现适合于控制借用变量的产生和耗用的顺序。优选地,每个源节点可以能够将其消息的大小与目标邮箱中剩余的空间进行比较,以防止邮箱溢出。为了减少由位于PMC后面的不可缓存空间中的邮箱所生成的任何等待时间,在一些实施例中,目标节点可以仅使用一次数据来预取并缓存读于其邮箱区域,并随后清洗受影响的(一个或更多)缓存线。
图6A和6B是其中所有链路都支持电语义的并行计算网络的框图和跨功能图。示出了PCIe连接,但是可使用支持电语义的任何适合架构和协议,诸如大规模网络上的InfiniBand或以太网。
图6A中,一组节点602.1、602.2...602.N可被连接到汇集存储装置控制器(PSC)616。PSC 616还可被连接到一个或更多存储模块;例如,共享的非易失性存储器(NVM,例如NVMe)614、分配的NVM 604和另一存储装置609。另一存储装置609可以是例如磁或光存储装置。PSC 616另外可被连接到汇集系统管理引擎(PSME)608。到PSC 616的所有连接都是电链路613。节点602.1、602.2、602.N可具有附连本地存储器624.1、624.2...624.N。PSME 608可具有其自己的专用PSME本地存储器654。节点的邮箱备份区域可在PSME本地存储器654(像邮箱634.1)中、或在节点本地存储器624.x(例如邮箱634.2)中。
图6B是类似于图6A仅使用电语义的系统中的节点间消息接发的过程的跨功能图。在步骤661,源节点602.1执行对其消息区域的存储器映射输入/输出(MIMO)/PCIe写。在步骤662,源节点602.1将消息转发到PSC 616。在步骤663,PSC 616将消息作为直接存储器访问(direct memory access)(DMA)重定向到目标邮箱634.2,其可在目标节点602.2的本地存储器624.2的部分中或者在PSME存储器654的部分中被物理地备份。
图7A和7B是其中节点侧链路支持存储器语义且汇集可写介质侧链路支持电语义的并行计算网络的框图和跨功能图。
在图7A中,一组节点702.1、702.2...702.N可被连接到“节点侧”上的汇集存储器控制器(PMC)706。节点702.1、702.2...702.N可具有附连本地存储器724.1、724.2...724.N,其可以是附连的节点的处理器私用的、全局共享的、或者分配给定义的一组节点的处理器。PMC 706还可被连接到“汇集侧”上的一个或更多存储器模块;例如,共享的NVM(例如NVMe)714、分配的NVM 704、分配的RAM 784或共享的RAM 794。PMC 706使汇集存储器模块是节点702.1、702.2、...702.N可访问的。因此,节点702.1、702.2、...702.N具有存储器的两个级别;本地和汇集。节点的邮箱备份区域可在节点本地存储器724.1、724.2...724.N中。
节点侧上的所有连接(从节点702.1、702.2...702.N到PMC 706)被示出为双语义链路723,但是存储器链路可被替代。汇集侧上的所有连接(从PMC 706到分配的RAM 784、共享的RAM 794、分配的NVM 704和共享的NVM 714)被示出为双语义链路723,但是电链路可被替代。双语义链路的优点是其支持存储器语义或电语义的能力,因此本文中的过程及它们的等效体和混合体可被互换而无需改变任何硬件。
图7B是类似于图7A从源节点到PMC使用存储器语义并从PMC到目标节点使用电语义的系统中的节点间消息接发的过程的跨功能图。在步骤761,源节点702.1执行对其消息区域的消息的存储器写,将消息转发到PMC 706。在步骤762,PMC 706将消息转化成DMA。在步骤763,PMC 706尝试将DMA消息写到目标邮箱,其默认位置是本地存储器724.2。如果可用邮箱空间存在于本地存储器724.2中,则在那里写消息。备选地,在近存储器未命中的事件中(其中在判定770邮箱空间不存在于目标本地存储器724.2中(例如邮箱已被移动或者它满了)),目标本地存储器704.2读出到检索线路的PMC 706。于在步骤782完成目标节点的指定备选存储器(例如汇集存储器的部分)中的写之前,PMC 706在步骤781中等待直到读被完成且判定780=“是”为止。
直到写在本地存储器724.2或备选邮箱空间中被完成为止,于在步骤792发送写完成通知(其由源节点在步骤793所接收)之前,PMC 706在步骤791等待直到写被完成且判定790=“是”为止。
图8A和8B是其中节点侧链路支持电语义且汇集可写介质侧链路支持存储器语义的并行计算网络的框图和跨功能图。
在图8A中,一组节点802.1、802.2...802.N可被连接到“节点侧”上的汇集存储器控制器(PMC)806。节点802.1、802.2…802.N可具有附连本地存储器824.1、824.2...824.N,其可以是附连的节点的处理器私用的、全局共享的、或分配给定义的一组节点的处理器。PMC 806还可被连接到“汇集侧”上的一个或更多存储器模块,其包括MMIO空间805和UC空间815。PMC 806使汇集存储器模块是节点802.1、802.2、...802.N可访问的。因此,节点802.1、802.2、...802.N具有存储器的两个级别;本地和汇集。节点的消息区域834可在MMIO空间805中被备份。节点的邮箱备份区域824可在UC空间815中。
节点侧上的所有连接(从节点802.1、802.2...802.N到PMC 806)被示出为双语义链路823,但是电链路可被替代。汇集侧上的所有连接(从PMC 806到MMIO空间805和UC空间815)被示出为双语义链路823,但是存储器链路可被替代。双语义链路的优点是其支持存储器语义或电语义的能力,因此本文中的过程及它们的等效体和混合体可被互换而无需改变任何硬件。
图8B是对来自源节点的写使用电语义(例如PCIe)并对由目标节点进行的读使用存储器语义(例如SMI3)的消息接发过程的跨功能流程图。在步骤861,源节点802.1使用电语义(例如PCIe)经由PMC 806向其消息区域834.1发送MMIO写请求。PMC 806在步骤862中采用存储器语义(例如SMI3)来重播消息,并将消息发送到目标邮箱824.2。在步骤863,目标邮箱824.2接收消息。在步骤864,源节点802.1向PMC 806发送MMIO请求,以更新目标邮箱824.2中的(一个或更多)写指针。在步骤865,PMC 806在步骤862中采用存储器语义(例如SMI3)来重播消息,并将消息发送到目标邮箱824.2。在步骤866,目标邮箱824.2接受指针更新。
该过程在判定870分支;目标节点802.2可或可不对其邮箱824.2的写指针中的变化自动感知并反应。如果这样的话,则目标节点802.2可继续在步骤871立即读指针和消息。如果不是的话,则另一个选项是源节点802.1在步骤874经由PMC 806向目标节点802.2发送中断。PMC 806在步骤875中采用存储器语义(例如SMI3)来重播消息,并将它发送到目标节点802.2。在步骤877,目标节点802.2接收中断,并在步骤871读指针和消息。通过后一方案,PMC可承担监测邮箱状态并查找潜在目标节点中的每个节点的中断策略的任务,而不是让功能和信息在源节点中的每个节点上被复制。在读写指针和消息之后,目标节点802.2可使用存储器语义在步骤885请求读指针更新,以避免不必要地重读所述消息。PMC 806在步骤886更新邮箱读指针,并且目标节点邮箱824.2在步骤887接受指针更新。
图9A-9C示出配置成仅使用存储器语义来支持与消息信号中断(MSI)相似的节点间中断的PMC系统的结构和功能。与本文中所公开的消息接发方式相似,这些中断技术也能在PSC上起作用。
图9A是配置成仅使用存储器语义来支持MSI-相似的节点间中断的PMC、节点网络、和汇集存储器的框图。节点902.1-902.N通过存储器链路903来连接到PMC 906。PMC 906包括高级可编程中断控制器(APIC)926,其生成与节点902.1-902.N对应的MSI-x-相似的表936.1-936.N。与MSI-x表相似,表936.1-936.N能存储大量中断,各具有其自己的分离目标地址和数据字。PMC 906还被连接到PSME 908以及汇集存储器和/或存储装置(诸如分配的NVM 904和共享的NVM 914)。另外,PSME 908具有其自己的专用PSME本地存储器954。
图9B是MSI-x-相似的表936.1-936.N的建立过程的跨功能流程图。在步骤941,节点902.1-902.N中的每个节点通过写到PSME本地存储器954中的预分配登记范围来向PSME908登记数据字和地址的集合,其中PSME 908在步骤942存储它们。在步骤943,PSME 908将地址和数据字组织成MSI-x-相似的表936.1-936.N。在步骤943,PSME 908将MSI-x-相似的表936.1-936.N写到APIC 926,其中APIC 926在步骤944存储它们。
图9C是采用与图9A类似的配置的、仅使用存储器语义来生成并发送节点间中断的跨功能流程图。在步骤951,源节点902.1执行对于与目标节点902.2关联的地址的UC写,并将它发送到PMC 906。在步骤952,PMC 906将UC写上的地址转化成目标节点902.2的全局地址,并将它发送到APIC 926。全局地址与MSI-x-相似的表936.1-936.N中的条目关联。在步骤953,APIC 926通过查找与条目对应的地址和数据字来生成中断,随后在步骤954将中断发送到目标节点902.2。在步骤955,目标节点902.2接收中断。
图10A和10B示出配置成仅使用电语义来支持与消息信号中断(MSI)类似的节点间中断的PSC系统的结构和功能。与本文中所公开的消息接发方式相似,这些中断技术也能在PMC上起作用。
图10A是配置成仅使用电语义来支持MSI-x-相似的节点间中断的PSC、节点网络、和汇集存储装置的框图。节点1002.1-1002.N通过在PSC端与电(例如PCIe)端点1018.1、1018.2、1018.N进行端接的电链路1013来连接到PSC 1016。在PCIe的情况中,端点1018.1、1018.2、1018.N与采用标准软件流程所编程的MSI-x表1046.1、1046.2、1046.N关联。PSC1016包括高级可编程中断控制器(APIC)1026,其生成MSI-x表1046.1-1046.N。PMC 1016还被连接到PSME 1008以及汇集存储器和/或存储装置(诸如分配的NVM 1004、共享的NVM1014、和可选的另一存储装置1009 (例如磁或光))。另外,PSME 1008被连接到专用PSME本地存储器1054。
图10B是采用与图10A类似的配置的、仅使用电语义来生成并发送节点间中断的跨功能流程图。在步骤1051,源节点1002.1执行对于与目标节点1002.2关联的地址的MMIO写,并将它发送到PMC 1016。在步骤1052,PMC 1016将MMIO写上的地址转化成目标节点1002.2的全局地址,并将它发送到APIC 1026。全局地址对应于目标节点1002.2的指定的MSI-x表1046.2的偏移和基址。在步骤1053,APIC 1026通过查找与目标端点1018.2的MSI-x表1046.2中的条目对应的地址和数据字来生成中断,随后在步骤1054向目标节点1002.2发送中断。在步骤1055,目标节点1002.2接收中断。
示例
示例1是一种系统,包括:多个处理器节点,其包括第一处理器节点和第二处理器节点;至少一个存储组件,其包括对于每个处理器节点的消息区域以及对于每个处理器节点的邮箱。所述系统还包括控制器,其具有处理器节点接口和存储组件接口。所述控制器可操作以接收从第一处理器节点寻址到第二处理器节点的消息,将消息中继到指派给第一处理器节点的消息区域,更新指派给第二处理器节点的邮箱,以及向第二处理器节点发送指引第二处理器节点读消息的指示。
在示例2中,示例1的主题还能包括附连于本地存储器的汇集系统管理引擎(PSME)。
在示例3中,示例1的主题还能包括耦合于PSME的高级可编程中断控制器(APIC)。
在示例4中,示例1的主题,其中发送到第二处理器节点的指示是中断。
在示例5中,示例2和3中的任一个示例的主题,其中存储组件包括至少一个存储器组件。
在示例6中,示例1的主题,其中处理器节点接口包括收发器、传送器和接收器、或交换机。
在示例7中,示例1的主题还能包括附连于所述多个处理器节点中的至少一个处理器节点的本地存储器。
在示例8中,示例2、3、4、5、6和7的主题,其中所述至少一个存储组件包括全局共享的存储器或存储装置、仅由所述多个处理器节点的子集可共享的分配的存储器、以及被指定以供单个处理器节点使用的私用存储器或存储装置。
在示例9中,示例1的主题还能包括用于将所述多个处理器节点耦合于控制器的多个处理器-节点侧通信链路。
在示例10中,示例1的主题,其中所述多个处理器-节点侧通信链路支持外围设备组件互连协议。
在示例11中,示例1的主题还能包括用于将控制器耦合到所述至少一个存储装置的多个汇集侧通信链路。
示例12是一种包括处理器-节点通信接口和存储装置-组件通信接口的控制器。控制器还包括内部逻辑,其能够接收从第一处理器节点寻址到第二处理器节点的消息,将消息中继到指派给第一处理器节点的消息区域,更新指派给第二处理器节点的邮箱,以及向第二处理器节点发送指引第二处理器节点读消息的指示。
在示例13中,权利要求12的主题还能包括内部逻辑,其能够将消息或指示转化成不同类型的过程逻辑。
在示例14中,权利要求12的主题还能包括耦合于每个处理器-节点通信接口的通信端点。
在示例15中,权利要求12的主题,其中第一处理器节点被附连于本地节点存储器,并且其中控制器被耦合以读或写本地节点存储器。
示例16是包含代码的非暂态机器可读信息存储介质,所述代码在被运行时促使机器执行动作。所述动作包括由第一处理器节点将消息写到第一地址空间;响应于第一地址空间中的写而更新第二地址空间;响应于第二地址空间由第二处理器节点所更新而读消息。所述消息包括存储器逻辑或电逻辑。
在示例17中,示例16的主题,其中第二处理器节点响应于由第一处理器节点所发送的中断而读消息。
在示例18中,示例16的主题,其中第二处理器节点响应于在轮询第二地址空间时发现更新而读消息。
在示例19中,示例16的主题,动作还能包括控制器向第一处理器节点发送写完成通知。
在示例20中,示例16和19的主题,动作还能包括控制器改变消息的协议或过程逻辑,并将改变的消息定向到第二地址空间。
先前描述和附图相当详细地描述了实施例的示例以帮助理解。然而,保护的范畴还可包括本文中没有显式描述的等效体、置换和组合。只有本文随附的权利要求(如果有的话,则连同父、子、或分开的专利)定义了受保护知识产权的界限。
Claims (20)
1.一种用于处理器节点的系统,包括:
多个处理器节点,包括第一处理器节点和第二处理器节点;
至少一个存储组件,所述至少一个存储组件包括:
用于每个处理器节点的消息区域;以及
用于每个处理器节点的邮箱;以及
控制器,具有处理器节点接口和存储组件接口,
其中控制器可操作以接收从所述第一处理器节点寻址到所述第二处理器节点的消息,将所述消息中继到指派给所述第一处理器节点的消息区域,更新指派给所述第二处理器节点的邮箱,以及向所述第二处理器节点发送指引所述第二处理器节点读所述消息的指示。
2.如权利要求1所述的系统,还包括附连于本地存储器的汇集系统管理引擎PSME。
3.如权利要求2所述的系统,还包括耦合于所述PSME的高级可编程中断控制器(APIC)。
4.如权利要求1所述的系统,其中发送到所述第二处理器节点的所述指示是中断。
5.如权利要求1所述的系统,其中所述存储组件包括至少一个存储器组件。
6.如权利要求1所述的系统,其中所述处理器节点接口包括收发器、传送器和接收器、或交换机。
7.如权利要求1所述的系统,还包括附连于所述多个处理器节点中的至少一个处理器节点的本地存储器。
8.如权利要求1所述的系统,其中所述至少一个存储组件包括全局共享的存储器或存储装置、仅由所述多个处理器节点的子集可共享的分配的存储器、以及被指定以供单个处理器节点使用的私用存储器或存储装置。
9.如权利要求1所述的系统,还包括用于将所述多个处理器节点耦合于所述控制器的多个处理器-节点侧通信链路。
10.如权利要求9所述的系统,其中所述多个处理器-节点侧通信链路支持外围设备组件互连协议。
11.如权利要求1所述的系统,还包括用于将所述控制器耦合于所述至少一个存储装置的多个汇集侧通信链路。
12.一种控制器,包括:
处理器-节点通信接口和存储装置-组件通信接口,
内部逻辑,能够接收从第一处理器节点寻址到第二处理器节点的消息,将所述消息中继到指派给所述第一处理器节点的消息区域,更新指派给所述第二处理器节点的邮箱,以及向所述第二处理器节点发送指引所述第二处理器节点读所述消息的指示。
13.如权利要求12所述的控制器,还包括内部逻辑,其能够将所述消息或所述指示转化成不同类型的过程逻辑。
14.如权利要求12所述的控制器,还包括耦合于每个处理器-节点通信接口的通信端点。
15.如权利要求12所述的控制器,其中所述第一处理器节点被附连于本地节点存储器;并且其中所述控制器被耦合以读或写所述本地节点存储器。
16.一种包含代码的非暂态机器可读信息存储介质,所述代码在被运行时促使机器执行动作,所述动作包括:
由第一处理器节点将消息写到第一地址空间;
响应于所述第一地址空间中的所述写而更新第二地址空间;
响应于所述第二地址空间由第二处理器节点所更新而读所述消息,以及
其中所述消息包括存储器逻辑或电逻辑。
17.如权利要求16所述的非暂态机器可读信息存储介质,其中所述第二处理器节点响应于由所述第一处理器节点所发送的中断而读所述消息。
18.如权利要求16所述的非暂态机器可读信息存储介质,其中所述第二处理器节点响应于在轮询所述第二地址空间时发现所述更新而读所述消息。
19.如权利要求16所述的非暂态机器可读信息存储介质,其中所述动作还包括控制器向所述第一处理器节点发送写完成通知。
20.如权利要求19所述的非暂态机器可读信息存储介质,其中所述动作还包括所述控制器改变所述消息的协议或过程逻辑,并将所改变的消息定向到所述第二地址空间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/866,955 US9665415B2 (en) | 2015-09-26 | 2015-09-26 | Low-latency internode communication |
US14/866955 | 2015-09-26 | ||
PCT/US2016/050339 WO2017053052A1 (en) | 2015-09-26 | 2016-09-06 | Low-latency internode communication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107924343A CN107924343A (zh) | 2018-04-17 |
CN107924343B true CN107924343B (zh) | 2021-10-08 |
Family
ID=58386805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680049862.0A Active CN107924343B (zh) | 2015-09-26 | 2016-09-06 | 低等待时间节点间通信 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9665415B2 (zh) |
CN (1) | CN107924343B (zh) |
DE (1) | DE112016004362T5 (zh) |
WO (1) | WO2017053052A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11573947B2 (en) | 2017-05-08 | 2023-02-07 | Sap Se | Adaptive query routing in a replicated database environment |
KR102516584B1 (ko) | 2018-11-21 | 2023-04-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US10915470B2 (en) * | 2018-07-23 | 2021-02-09 | SK Hynix Inc. | Memory system |
KR102513919B1 (ko) | 2018-11-05 | 2023-03-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
CN113805788B (zh) * | 2020-06-12 | 2024-04-09 | 华为技术有限公司 | 一种分布式存储系统及其异常处理方法和相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0602915A2 (en) * | 1992-12-18 | 1994-06-22 | Xerox Corporation | SIMD architecture for connection to host processor's bus |
CN101438247A (zh) * | 2006-05-10 | 2009-05-20 | 兰德马克绘图公司 | 在瘦客户端计算机网络中显示关于地质资源勘探和生产的高分辨率内容的方法、系统及计算机可读介质 |
CN102915292A (zh) * | 2011-08-02 | 2013-02-06 | 北京大学 | 基于多核处理器的通信方法及其检测方法和控制方法 |
CN103473095A (zh) * | 2013-09-10 | 2013-12-25 | 江苏中科梦兰电子科技有限公司 | Cpu二级缓存的加速初始化方法 |
WO2015021037A1 (en) * | 2013-08-07 | 2015-02-12 | Qualcomm Incorporated | Dynamic address negotiation for shared memory regions in heterogeneous muliprocessor systems |
CN104871172A (zh) * | 2012-10-12 | 2015-08-26 | 思杰系统有限公司 | 用于连接的设备的编配框架 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5194588A (en) | 1985-01-22 | 1993-03-16 | Ici Americas Inc. | Aminoalcohol intermediates for peptide derivatives |
US6912716B1 (en) * | 1999-11-05 | 2005-06-28 | Agere Systems Inc. | Maximized data space in shared memory between processors |
US7940932B2 (en) * | 2004-04-08 | 2011-05-10 | Texas Instruments Incorporated | Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor |
CN102006333B (zh) * | 2007-06-11 | 2012-12-26 | 华为技术有限公司 | 安装软件组件的方法、系统及装置 |
US9727521B2 (en) * | 2012-09-14 | 2017-08-08 | Nvidia Corporation | Efficient CPU mailbox read access to GPU memory |
-
2015
- 2015-09-26 US US14/866,955 patent/US9665415B2/en active Active
-
2016
- 2016-09-06 WO PCT/US2016/050339 patent/WO2017053052A1/en active Application Filing
- 2016-09-06 CN CN201680049862.0A patent/CN107924343B/zh active Active
- 2016-09-06 DE DE112016004362.7T patent/DE112016004362T5/de active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0602915A2 (en) * | 1992-12-18 | 1994-06-22 | Xerox Corporation | SIMD architecture for connection to host processor's bus |
CN101438247A (zh) * | 2006-05-10 | 2009-05-20 | 兰德马克绘图公司 | 在瘦客户端计算机网络中显示关于地质资源勘探和生产的高分辨率内容的方法、系统及计算机可读介质 |
CN102915292A (zh) * | 2011-08-02 | 2013-02-06 | 北京大学 | 基于多核处理器的通信方法及其检测方法和控制方法 |
CN104871172A (zh) * | 2012-10-12 | 2015-08-26 | 思杰系统有限公司 | 用于连接的设备的编配框架 |
WO2015021037A1 (en) * | 2013-08-07 | 2015-02-12 | Qualcomm Incorporated | Dynamic address negotiation for shared memory regions in heterogeneous muliprocessor systems |
CN103473095A (zh) * | 2013-09-10 | 2013-12-25 | 江苏中科梦兰电子科技有限公司 | Cpu二级缓存的加速初始化方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017053052A1 (en) | 2017-03-30 |
CN107924343A (zh) | 2018-04-17 |
US20170091003A1 (en) | 2017-03-30 |
US9665415B2 (en) | 2017-05-30 |
DE112016004362T5 (de) | 2018-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11929927B2 (en) | Network interface for data transport in heterogeneous computing environments | |
CN107924343B (zh) | 低等待时间节点间通信 | |
US10732879B2 (en) | Technologies for processing network packets by an intelligent network interface controller | |
US20210373951A1 (en) | Systems and methods for composable coherent devices | |
EP3028162B1 (en) | Direct access to persistent memory of shared storage | |
CN103080918B (zh) | 功率优化的中断传递 | |
US20170353576A1 (en) | Method and apparatus for remote prefetches of variable size | |
US20090083760A1 (en) | Management component transport protocol interconnect filtering and routing | |
US8656137B2 (en) | Computer system with processor local coherency for virtualized input/output | |
CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
CN101216814A (zh) | 一种多核多操作系统之间的通信方法及系统 | |
US10951741B2 (en) | Computer device and method for reading or writing data by computer device | |
CN101794271A (zh) | 多核内存一致性的实现方法和装置 | |
TW201135469A (en) | Opportunistic improvement of MMIO request handling based on target reporting of space requirements | |
KR20210124082A (ko) | 구성 가능한 일관성 장치들을 위한 시스템 및 방법 | |
EP3036648B1 (en) | Enhanced data transfer in multi-cpu systems | |
CN106844263B (zh) | 一种基于可配置的多处理器计算机系统及实现方法 | |
CN109840241B (zh) | 一种异构双核处理器核间通讯电路 | |
CN100349142C (zh) | 一种用于虚拟共享存储系统的远程取页方法及网络接口卡 | |
WO2004092958A3 (en) | Multi-node computer system with proxy transaction to read data from a non-owning memory device | |
CN110221995B (zh) | 一种集成智能网卡的数据管理方法及系统 | |
JP2011164838A (ja) | エンドポイント共有システムおよびデータ転送方法 | |
KR20230105374A (ko) | 컴퓨팅 장치 및 차세대 연결망 접근 방법 | |
CN116501456A (zh) | 用于利用一致性接口的队列管理的系统、方法和设备 | |
CN109997122A (zh) | 信息处理系统、半导体集成电路以及信息处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |