通过放/取窗口管理一致性的制作方法

文档序号:6354474阅读:103来源:国知局
专利名称:通过放/取窗口管理一致性的制作方法
技术领域
本发明涉及分布式存储器消息传递并行计算机设计和系统软件的领域,例如应用于生命科学领域中的计算。
背景技术
在题为“A Novel Massively Parallel Supercomputer”的临时专利申请中,描述了一种三维环形式的大规模并行超级计算机的体系结构,该体系结构被设计为大范围应用的、在万亿OPS(每秒万亿个操作)的数量级上传递处理功率。该体系结构包含65,536个处理节点,这些处理节点被组织成一个64×32×32的三维环,其中每个处理节点连接到六个(6)相邻的节点。
超级计算机体系结构的每个处理节点都是包含两个电子处理器(此外还有其它的部件)的半导体设备。这些处理器中的一个被指定为“计算处理器”,并且该处理器在通常进行的操作中专用于应用计算。另一个处理器是“I/O处理器”,该处理器在通常进行的操作中是专用执行支持消息传递通信的行为的服务处理器。这些处理器中的每一个包含一个分离的一级高速缓存(L1),该一级高速缓存(L1)可包含在两个处理器访问的公用存储器中存储的数据的拷贝。如果一个处理器改变它的存储器位置的L1拷贝,且另一个处理器具有相同位置的拷贝,那么如果使这两份拷贝相同,则它们变得“一致”。
消息传递是计算机通信的一种众所周知的形式,其中处理器从它们自己的存储器向另一个节点的存储器清楚地拷贝数据。在上述临时专利申请No.60/271,124中公开的双处理器节点中,I/O处理器主要用于方便在节点的公用存储器与其它节点的公用存储器之间的消息传递。因此,它既产生由计算处理器消耗的数据(当消息被接收时),又消耗由计算处理器产生的数据(以便发送消息)。结果,对于这两个处理器来说,通常在它们的L1中包含相同存储器位置的拷贝。如果传递的消息很小,并且数量很多,这个问题就会变得更严重。因此,很明显地需要一种方法来使每个处理器的L1一致,同时不需要扩展电路,并对性能的影响最小。
由于大规模并行计算机被扩张到几千个处理节点,所以典型的应用消息传输业务包含更多的消息,其中每一个这样的消息包含由计算机中的其它节点传送的信息。通常,一个节点将本地产生的消息分散到一些其它节点,同时将一些远程产生的消息接收到其本地存储器中。这些大规模计算机的总体性能通常由该系统的消息传递性能限制。
对于这种数据传输,一种在文献(见例如http//www.mpi-forum.org/docs/docs.htm1,MPI-2下)中描述的公用的消息传递接口称为“单向通信”。单向通信使用一个“放/取”(“put/get”)消息传递的模式,在该模式中,消息携带源(用于取)或目的(用于放)存储器地址。在操作一个公共问题的并行超级计算机中,典型地,放和取是成批集合并一起发出的。这使独立运行的处理器保持大致同步,同时使性能最优化。放和取发生的时间段称为放/取窗口。此窗口在时间(它的出现时候)和存储器(在放或取消息携带的存储器地址的范围上)方面进行扩展。图2显示了包含许多不同消息的放/取窗口30。
放/取窗口将一致性的概念扩展到大规模并行超级计算机的不同处理节点上的处理器。放/取窗口的实施必须确保在窗口打开期间被放到窗口的所有消息在窗口关闭之前被接收到窗口的存储器中。相似的,在窗口的存储器上的取也只有在窗口打开的期间内允许。因此,放/取窗口只不过单纯地是一种用于使节点与操作它的存储器的远程处理器同步的机构。
放/取窗口的管理目前是通过缓冲放/取消息或者通过使用清楚的同步消息来完成的。对消息的缓冲消耗存储器,而所述存储器总是有限的。每个窗口的清楚的同步受访问窗口的所有节点之间往返消息的较长延迟的影响。因此,在例如共同未决的专利申请No.------(代理卷号15275)中描述的大规模机器上,这些方法不很适合,因为缓冲存储器有限,还因为访问任一特定窗口的节点数目通常随计算机中的处理节点的数目扩张。
在计算机设计领域内的长期存在的问题是如何保持这些L1高速缓存一致。典型的解决方案使用了称为“侦听”其它处理器的存储器总线的技术,这种技术可能速度很慢,并可能降低每个处理器的性能。作为替换,包含公用存储器中的数据的L1旧拷贝的处理器可请求一个新的拷贝,或者将旧拷贝标记为作废,但这需要知道该拷贝何时变为无效。有时,该知识是不完整的,这就必须执行不必要的存储操作,从而进一步降低了性能。其它计算机利用“互锁”,由此,一个处理器获准使用特定数据,而其它处理器不能使用,但是,这种准许涉及两个处理器之间的相互作用,通常需要在半导体设备中的额外复杂电路,从而降低了两个处理器的性能。
通常实际应用中的其它解决方案使希望共享的存储器区的所有高速缓存失效。这一事实使对这些区域的所有存储访问恶化,而不仅仅是对共享数据的存储访问。

发明内容
本发明的目的是提供一种用于管理并行处理计算机系统中的一致性的改进的方法。
本发明的另一个目的是在没有扩展电路并且对每个处理器影响最小的情况下获得多处理器节点的处理器的一级高速缓存之间的一致性。
本发明的再一个目的是提供一种方法和装置,所述的方法和装置与软件算法结合使用,以便在处理器或直接存储器存取(DMA)设备之间完成有效的高速消息传递通信,这可在不明显降低性能的条件下维持一致性。
使用本发明的方法和装置可获得这些目的以及其它的目的。根据第一方面,本发明提供一种简化并明显加快在消息传递大规模并行超级计算机(例如在共同未决的专利申请No.------(代理案号15275)中描述的超级计算机)中的高速缓存一致性的管理的软件算法,其中该超级计算机包含两个或更多个非一致的处理单元(或者甚至DMA控制器),这里的一个处理单元主要执行计算,而另一个单元执行消息传递。在这种大规模并行超级计算机中,算法通常以一系列步骤进行,其中每个步骤包括一个计算阶段,随后是一个通讯阶段。在通信阶段中,节点交换由计算阶段产生的数据和该算法的下一步所需的数据。由于算法的性质,这些阶段通常是紧密同步的,以便使通信在一瞬间发生在整个机器上。因此,在每个通信阶段的开始和结束时,可以将管理放/取窗口的同步的成本分摊到大量节点上。简要地说,可以在通信阶段的开始时使用一个全局操作来打开很多放/取窗口,并且可以在通信阶段的结束时使用一个第二全局操作来关闭这些窗口。
因为I/O处理器在高速缓存一致性被保证之后才能对消息进行实际的发送或接收,所以本发明提供了一种机构以确保被“放”(发送)的数据不在任一处理器的高速缓存中;并且被“取”(接收)的数据也不在任一处理器的高速缓存中。通过在打开和关闭“放/取窗口”时协调这些行为,本发明降低了获得一致性并允许将那个工作分摊到大量个体消息上所需的工作总量。同样,由于在节点中的两个处理单元必须执行此工作,所以本发明使这能够同时发生。而且,当需要的时候,可以通过使用共同未决的专利申请No.------(代理卷号15275)中描述的全局屏障网络来在大规模并行机器中的大量独立节点上协调这些行为。
根据第二方面,本发明提供一种硬件装置,该硬件装置辅助上述的高速缓存一致性软件算法,并限制在放/取窗口上获得高速缓存一致性所需的总时间(或等待时间)。此装置是硬件地址解码器的一个简单的扩展,它在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的存储器区。这进一步地加快了一致性行为,因为它允许将垃圾数据(处理器绝不会使用的数据)拉进处理器的高速缓存,从而仅驱逐修改过的数据,并以最佳性能替换未修改的数据。性能变得更快,因为此垃圾数据实际上不需被从存储器中取出,相反,存储器控制器只需要立即地进行答复。
性能变得更快还因为只有修改的数据被从高速缓存写到存储器,而干净的数据被简单地立即抛弃。而且,对于“放/取窗口”的总体大小超过(可能是大大超过)处理器高速缓存的大小的情况,以这种方式清理高速缓存为用于确保在高速缓存中没有遗留来自通信区的数据所需的工作总量提供了一个上限。可以注意到独立于上述的软件算法,对于通常的、使用最近最少使用的高速缓存替换策略的计算机系统来说,这种硬件设备是有用的。
此外,有两种特殊软件指令可被用在本发明的优选实施中。一种称为“数据高速缓存块清除和无效”的指令可被用于将数据从第一处理器的存储器区写进共享的存储器区,并同时防止第一处理器使用被写入其存储器区的数据。称为“数据高速缓存块零”的第二软件指令可被用于将数据从第一处理器的存储器区写进共享的存储器。通过使用这些软件指令或类似的软件指令,本发明的方法和装置在与软件算法结合使用时可以获得节点之间的高速消息传递通信,同时在不明显降低性能的条件下维持一致性。
通过考虑下面参照指定和显示本发明的优选实施例的附图而给出的具体描述,可以使本发明的进一步益处和优点变得明显。


图1显示了实现本发明的两个处理器节点。
图2图示了可在本发明的实际应用中使用的放/取窗口。
具体实施例方式
本发明涉及用于管理多处理器计算机系统的一致性的方法和装置。图1示出可实现本发明的一个节点10,节点10的处理器12和14中的每一个都具有相应的高速缓存存储器区16和20,并且两个处理器共享一个第三存储器区22。总体来说,本发明涉及一种简化并明显加快在消息传递并行计算机中的高速缓存存储器一致性管理的软件算法,还涉及辅助此高速缓存一致性算法的硬件装置。该软件算法使用放/取窗口的打开和关闭来协调获得高速缓存一致性所需的行为。硬件装置可以是硬件地址解码的扩展,它在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的物理存储器区。
如上面指出的,本发明利用一个称为“放/取”数据传输的原理。由于并行的多个计算机被扩张到更多的节点,所以典型的应用消息传输包含更多的消息,其中每一个这样的消息包含由多个计算机中的其它节点执行的一项工作。通常,一个节点将本地产生的工作项目分散到许多其它节点(一次“放”),同时将许多远程产生的工作项目集合到其本地存储器中(一次“取”)。所述多个计算机的总体性能通常受该系统的消息传递性能所限。
对于这种数据传输,一种在文献(见例如http//www.mpi-forum.org/docs/docs.htm1,MPI-2下)中描述的特殊有效的消息传递接口称为单向通信。单向通信使用一个“放/取”消息传递的模式,在该模式中,消息携带源(用于“取”)或目的(用于“放”)的存储器地址。在操作一个公共问题的并行超级计算机中,典型地,放和取是成批集合并同时发出的。这使独立运行的处理器保持大致同步,同时允许对于公共问题的良好性能。放和取发生的时间段由放/取窗口限定。此窗口在时间(它什么时候出现)和存储器(放或取中的数据存在于存储器地址的哪个范围)的方面进行扩展。图2显示了包含许多不同消息的放/取窗口30。
在这种大规模并行超级计算机中,算法通常以一系列步骤进行,其中每个步骤由一个计算阶段随后接着一个通讯阶段组成。在通信阶段中,节点交换由计算阶段产生的数据和该算法的下一步所需的数据。由于算法的性质,这些阶段通常是紧密同步的,以便使通信在一瞬间发生在整个机器上。因此,在每个通信阶段的开始和结束时,可以将管理放/取窗口的同步的成本分摊到大量节点上。简要地说,可以在通信的开始时使用一个全局操作来打开很多放/取窗口。
本发明利用这个放/取窗口提供一个的简单方法以便管理存储器的一致性。根据第一方面,提供了一种简化并明显加快在消息传递大规模并行超级计算机中的高速缓存一致性的管理的软件算法(例如在共同未决专利申请No.------(代理卷号15275)中描述的算法),其中该超级计算机包含两个或更多个非一致的处理单元(或者甚至DMA控制器),这里的一个处理单元主要执行计算,而另一个单元执行消息传递行为。简要地说,这种算法使用“放/取窗口”的打开和关闭来协调获得存储器一致性所需的行为。
因为在高速缓存一致性被保证之后才能对消息进行实际的发送或接收,所以本发明提供了一种机构以确保被“放”(发送)的数据不在任一处理器的高速缓存中;并且被“取”(接收)的数据也不在任一处理器的高速缓存中。通过在打开和关闭“放/取窗口”时协调这些行为,本发明降低了获得一致性并允许将那个工作分摊到大量个体消息上所需的工作总量。同样,由于在节点中的两个处理单元必须执行此工作,所以本发明使这能够同时发生。而且,当需要的时候,可以通过使用共同未决的专利申请No.------(代理卷号1527)中描述的全局屏障网络来在大规模并行机器中的大量独立节点上协调这些行为。
此算法由下面描述的硬件辅助,但通常来说,即使在没有该装置的时候该算法也对消息传递计算机有益。在没有该装置时,通过为保留物理区的每个高速缓存线发出一个DCBT(数据高速缓存块接触)指令来从此物理区向高速缓存进行载入,就可以使用一个大小等于处理器的高速缓存的物理存储器的特殊保留区,但性能会有所降低。
根据本发明的第二方面,提供一种新颖的硬件装置,该装置辅助上述的高速缓存一致性算法,并限制在放/取窗口上获得高速缓存一致性所需的总时间(或等待时间)。此装置是硬件地址解码器的一个简单的扩展,它在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的虚拟存储器区。这进一步地加快了一致性行为,因为它允许将垃圾数据(处理器绝不会使用的数据)拉进处理器的高速缓存,从而仅驱逐修改过的数据,并以最佳性能替换未修改的数据。性能变得更快,因为此垃圾数据实际上不需被从存储器中取出,相反,存储器控制器只需要立即地进行答复。
性能变得更快还因为只有实际修改的数据被从高速缓存写到存储器,而干净的数据被简单地立即抛弃。而且,对于“放/取窗口”的总体大小超过(可能是大大超过)处理器高速缓存的大小的情况,以这种方式清理高速缓存为用于确保在高速缓存中没有遗留来自通信区的数据所需的工作总量提供了一个上限。例如,假设一个完全关联的高速缓存,如果通信区是16兆字节(通常事件),传统的高速缓存清除技术可能需要(等于每高速缓存线16MB/32MB)524,288DCBF指令,而这里描述的算法可能需要最多1,024DCBF指令——如果处理器的高速缓存的大小为32千字节,并具有32字节高速缓存线。可以注意到独立于上述的软件算法,对于通常的、使用最近最少使用的高速缓存替换策略的计算机系统来说,这种硬件设备是有用的。
下面描述两个具体的软件实施例。如果被接收的消息的大小小于L1的大小,则第一实施例可能是优选的;如果被接收的消息的大小大于L1的大小,则第二实施例可能是优选的。
第一实施例如果被接收的消息的大小小于L1的大小。
在这种情况中,本发明使用术语上称为“数据高速缓存块清除和无效”(DCBF)的软件指令,由此,如果存储器的连续范围已经在L1中被修改,则将其从L1写回到公共存储器。DCBF是一个PowerPC BookE指令;对于其它处理器存在相似的指令。同时,高速缓存中的数据被标记为无效,并且在没有重载公用存储器内容的情况下不能使用。对于地址窗口中的每个线发出一个DCBF。
更具体地说,当为放或取而打开窗口时,软件(在通信库中)指示接收处理器(在我们的双处理器节点中的计算处理器)清除地址窗口中的L1的内容,就如上面所述的。这个简单的操作确保公用存储器中的数据与计算处理器的高速缓存中的数据相同,并且进一步,因为无效,所以这个简单的操作允许给I/O处理器一个机会来改变公用存储器的内容,因为L1的全部内容很快从保留区中被替换。该软件之后指示I/O处理器继续进行,直到所有预期的消息到达。该软件之后允许计算机处理器继续处理指令,并且使用全局同步操作(例如在共同未决的申请——共同未决申请D#15272全局中断和屏障网络中描述的全局屏障)来关闭放/取窗口。
第二实施例如果被接收的消息的大小大于L1的大小。
在这种情况中,本发明在大小等于L1的保留的连续物理地址范围上使用术语上称为“数据高速缓存块零”(DCBZ)的指令。DCBZ创建一个内容为零的新高速存储线。如果新的高速存储线不可用,则L1中的另一个高速存储线(例如,最近最少使用的线)将其数据写回到公用存储器,并且之后使用由DCBZ指令给定的地址置零。DCBZ是一个PowerPC BookE指令;对于其它处理器存在相似的指令。软件向保留区的每个线连续地执行DCBZ,其中保留区的线的大小等于高速缓存线并被类对齐。这造成L1中的所有线被清除,即,所有修改的线被写回公用存储器,因为L1的全部内容很快地从保留区中被替换。该软件之后允许计算机处理器继续处理指令,并且使用全局同步操作(例如在共同未决的申请——共同未决申请D#15272全局中断和屏障网络中描述的全局屏障)来关闭放/取窗口。
可以注意到保留的物理空间不需要存在于物理存储器中,除非到该空间的访问不可能造成访问违例。到此保留的存储器空间的所有写必须是由存储器控制器确认的。到此保留的空间的所有读必须立即返回一个任意(即“垃圾”)值到请求处理器的L1。还需要注意,这样的装置还提供用于无特权的(又称用户空间)程序的、用于对L1高速存储的全部内容进行清除并使所述内容无效的最有效的方法。
还可注意到,如果DCBF指令慢于DCBZ,那么操作系统可以对慢于L1的消息使用DCBZ指令,并且反之亦然。
使用本发明,如果通信存储器空间被标记为向其L1高速缓存进行直接写入,则I/O处理器根本不需要清除其高速缓存。
在相关的专利申请No.(代理人案号15258)中,详细地讨论了对于上述全局的“和”在允许放/取窗口暂时变窄的短时间间隔中的建立。
虽然很明显这里描述的本发明是被充分计算以达到前述目标的,但可以理解,可以由本领域技术人员设计多种修改和实施例,希望附带的权利要求书覆盖所有的这种修改和实施例,作为落入本发明的真正精神和范围内。
权利要求
1.一种简化并加快在消息传递并行超级计算机中的高速缓存一致性管理的方法,该超级计算机包含两个或更多个非一致的处理器单元,这里的一个处理器单元主要执行计算,而另一个处理器单元执行消息传递行为,该方法包含步骤打开和关闭放/取窗口;执行用于实现高速缓存一致性的行为;以及使用放/取窗口的所述打开和关闭来协调用于获得高速缓存一致性的行为。
2.根据权利要求1所述的方法,其中该方法是通过一种软件算法实施的。
3.根据权利要求1所述的方法,其中所述使用的步骤包含确保被发送的数据不在任一处理器的高速缓存中,而且被接收的数据也不在任一处理器的高速缓存中的步骤。
4.根据权利要求3所述的方法,其中确保的步骤包含通过发出软件命令来将数据载入高速缓存的步骤。
5.一种机器可读的程序存储设备,该程序存储设备确实地实施一个指令程序,所述的指令可由机器执行以便进行用于简化并加快在消息传递并行超级计算机中的高速缓存一致性管理的方法步骤,其中该超级计算机包含两个或更多个非一致的处理器单元,这里的一个处理器单元主要执行计算,而另一个处理器单元执行消息传递行为,该方法步骤包含打开和关闭放/取窗口;执行用于获得高速缓存一致性的行为;以及使用放/取窗口的所述打开和关闭来协调用于实现高速缓存一致性的行为。
6.根据权利要求5所述的程序存储设备,其中所述使用的步骤包含确保被发送的数据不在任一处理器的高速缓存中,而且被接收的数据也不在任一处理器的高速缓存中的步骤。
7.根据权利要求6所述的程序存储设备,其中确保的步骤包含通过发出软件命令来将数据载入高速缓存的步骤。
8.一种简化并加快在消息传递并行超级计算机中的高速缓存一致性管理的系统,其中该超级计算机包含两个或更多个非一致的处理器单元,这里的一个处理器单元主要执行计算,而另一个处理器单元执行消息传递行为,该系统包含用于打开和关闭放/取窗口的装置;用于执行获得高速缓存一致性的行为的装置;以及用于使用放/取窗口的所述打开和关闭来协调实现高速缓存一致性的行为的装置。
9.根据权利要求8所述的系统,其中所述使用的装置包含用于确保被发送的数据不在任一处理器的高速缓存中,而且被接收的数据也不在任一处理器的高速缓存中的装置。
10.根据权利要求9所述的系统,其中确保的装置包含用于通过发出软件命令来将数据载入高速缓存的装置。
11.用于辅助实现消息传递并行计算机中的高速缓存一致性的硬件装置,其中该计算机包含两个或更多个非一致的处理单元,这里的一个处理单元主要执行计算,而第二个处理单元执行消息传递行为,该硬件装置包含一个用于在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的虚拟存储器区的存储器控制器。
12.根据权利要求11所述的硬件装置,其中存储器控制器允许将处理器绝不会使用的垃圾数据拉进处理器的高速缓存,从而仅驱逐修改过的数据,并替换具有最佳性能的未修改的数据。
13.根据权利要求12所述的硬件装置,其中垃圾数据实际上不需被从存储器中取出,而存储器控制器只需要立即地进行答复。
14.根据权利要求13所述的硬件装置,其中只有实际修改的数据被从高速缓存写到存储器,而干净的数据被简单地立即抛弃。
15.根据权利要求14所述的硬件装置,其中,当放/取窗口的总体大小超过处理器的高速缓存的大小时,以这种方式清理高速缓存提供了为确保在高速缓存中没有遗留来自通信区的数据所需的工作总量的一个上限。
16.一种操作计算机硬件装置以便辅助实现消息传递并行计算机中的高速缓存一致性的方法,其中该计算机包含两个或更多个非一致的处理单元,这里的一个处理单元主要执行计算,而第二处理单元执行消息传递行为,该方法包含步骤使用一个存储器控制器,以便在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的虚拟存储器区。
17.根据权利要求16所述的方法,其中存储器控制器允许将处理器绝不会使用的垃圾数据拉进处理器的高速缓存,从而仅驱逐修改过的数据,并替换具有最佳性能的未修改的数据。
18.根据权利要求17所述的方法,其中垃圾数据实际上不需被从存储器中取出,而存储器控制器只需要立即地进行答复。
19.根据权利要求18所述的方法,其中只有实际修改的数据被从高速缓存写到存储器,而干净的数据被简单地立即抛弃。
20.根据权利要求19所述的方法,其中,当放/取窗口的总体大小超过处理器的高速缓存的大小时,以这种方式清理高速缓存为用于确保在高速缓存中没有遗留来自通信区的数据所需的工作总量提供了一个上限。
全文摘要
一种用于管理多处理器计算机系统的两个处理器节点的两个处理器之间的一致性的方法和装置。总体来说,本发明涉及一种简化并明显加快在消息传递并行计算机中的高速缓存一致性的管理的软件算法,还涉及辅助此高速缓存一致性算法的硬件装置。该软件算法使用放/取窗口的打开和关闭来协调获得高速缓存一致性所需的行为。硬件装置可以是硬件地址解码的扩展,它在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的虚拟存储器区。
文档编号G06F13/24GK1493027SQ02805431
公开日2004年4月28日 申请日期2002年2月25日 优先权日2001年2月24日
发明者马赛厄斯A·布卢姆里奇, 马赛厄斯A 布卢姆里奇, た铺赜人, 陈东, ぜ永, 保罗W·科特尤斯, ぜ帜放僚, 艾伦G·加拉, 海德伯格, 马克E·贾姆帕帕, 菲利普·海德伯格, 霍尼克, 奥马彻特, 德克·霍尼克, 马丁·奥马彻特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1