CN1286016C - 通过放/取窗口管理一致性 - Google Patents

通过放/取窗口管理一致性 Download PDF

Info

Publication number
CN1286016C
CN1286016C CNB028054318A CN02805431A CN1286016C CN 1286016 C CN1286016 C CN 1286016C CN B028054318 A CNB028054318 A CN B028054318A CN 02805431 A CN02805431 A CN 02805431A CN 1286016 C CN1286016 C CN 1286016C
Authority
CN
China
Prior art keywords
data
processor
speed cache
cache
window
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
Application number
CNB028054318A
Other languages
English (en)
Other versions
CN1493027A (zh
Inventor
马赛厄斯A·布卢姆里奇
陈东
保罗W·科特尤斯
艾伦G·加拉
马克E·贾姆帕帕
菲利普·海德伯格
德克·霍尼克
马丁·奥马彻特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1493027A publication Critical patent/CN1493027A/zh
Application granted granted Critical
Publication of CN1286016C publication Critical patent/CN1286016C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K7/00Constructional details common to different types of electric apparatus
    • H05K7/20Modifications to facilitate cooling, ventilating, or heating
    • H05K7/20709Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
    • H05K7/20836Thermal management, e.g. server temperature control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D25/00Pumping installations or systems
    • F04D25/16Combinations of two or more pumps ; Producing two or more separate gas flows
    • F04D25/166Combinations of two or more pumps ; Producing two or more separate gas flows using fans
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D27/00Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
    • F04D27/004Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • G09G5/008Clock recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
    • H04L7/0338Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/70Control systems characterised by their outputs; Constructional details thereof
    • F24F11/72Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
    • F24F11/74Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
    • F24F11/77Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B30/00Energy efficient heating, ventilation or air conditioning [HVAC]
    • Y02B30/70Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating

Abstract

一种用于管理多处理器计算机系统的两个处理器节点的两个处理器之间的一致性的方法和装置。总体来说,本发明涉及一种简化并明显加快在消息传递并行计算机中的高速缓存一致性的管理的软件算法,还涉及辅助此高速缓存一致性算法的硬件装置。该软件算法使用放/取窗口的打开和关闭来协调获得高速缓存一致性所需的行为。硬件装置可以是硬件地址解码的扩展,它在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的虚拟存储器区。

Description

通过放/取窗口管理一致性
对相关申请的交叉引用
本发明请求于2001年2月24日提交的题为“MASSIVELY PARALLELSUPERCOMPUTER”的共同拥有、共同未决的美国临时专利申请No.60/271,124的利益,通过引用的方式将该申请的全部内容和公开直接并入到这里,就好像是在这里完整给出的一样。本专利申请还涉及下面与之同日提交的共同拥有、共同未决的美国专利申请,通过引用的方式将这些申请的每一个的全部内容和公开直接并入到这里,就好像是在这里完整给出的一样:美国专利申请No.(YOR920020027US1,Y0R920020044US1(15270)),“Class NetworkingRouting”;美国专利申请No.(YOR920020028US1(15271)),“A GlobalTree Network for Computing Structures”;美国专利申请No.(YOR920020029US1(15272)),“Global Interrupt and BarrierNetworks”;美国专利申请No.(YOR920020030US1(15273)),“Optimized Scalable Network Switch”;美国专利申请No.(YOR920020031US1,YOR920020032US1(15258)),“ArithmeticFunctions in Torus and Tree Networks”;美国专利申请No.(YOR920020033US1,YOR920020034US1(15259)),“Data CaptureTechnique for High Speed Signaling”;美国专利申请No.(YOR920020035US1(15260)),“Managing Coherence Via Put/GetWindows”;美国专利申请No.(YOR920020036US1,YOR920020037US1(15261)),“Low LatencyMemory Access And Synchronization”;美国专利申请No.(YOR920020038US1(15276)),“Twin-Tailed Fail-Over forFileservers Maintaining Full Performance in the Presence ofFailure”;美国专利申请No.(YOR920020039US1(15277)),“FaultIsolation Through No-Overhead Link Level Checksums”;美国专利申请No.(YOR920020040US1(15278)),“Ethernet AddressingVia Physical Location for Massively Parallel Systems”;美国专利申请No.(YOR920020041US1(15274)),“Fault Tolerance ina Supercomputer Through Dynamic Repartitioning”;美国专利申请No.(YOR920020042US1(15279)),“checkpointingFilesystem”;美国专利申请No.(YOR920020043US1(15262)),“Efficient Implementation of Multidimensional Fast FourierTransform on a Distributed-Memory Parallel Multi-NodeComputer”;美国专利申请No.(YOR9-20010211US2(15275)),“ANovel Massively Parallel Supercomputer”;以及美国专利申请No.(YOR920020045US1(15263)),“Smart Fan Modules and SYstem”。
技术领域
本发明涉及分布式存储器消息传递并行计算机设计和系统软件的领域,例如应用于生命科学领域中的计算。
背景技术
在题为“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.html,MPI-2下)中描述的公用的消息传递接口称为“单向通信”。单向通信使用一个“放/取”(“put/get”)消息传递的模式,在该模式中,消息携带源(用于取)或目的(用于放)存储器地址。在操作一个公共问题的并行超级计算机中,典型地,放和取是成批集合并一起发出的。这使独立运行的处理器保持大致同步,同时使性能最优化。放和取发生的时间段称为放/取窗口。此窗口在时间(它的出现时候)和存储器(在放或取消息携带的存储器地址的范围上)方面进行扩展。图2显示了包含许多不同消息的放/取窗口30。
放/取窗口将一致性的概念扩展到大规模并行超级计算机的不同处理节点上的处理器。放/取窗口的实施必须确保在窗口打开期间被放到窗口的所有消息在窗口关闭之前被接收到窗口的存储器中。相似的,在窗口的存储器上的取也只有在窗口打开的期间内允许。因此,放/取窗口只不过单纯地是一种用于使节点与操作它的存储器的远程处理器同步的机构。
放/取窗口的管理目前是通过缓冲放/取消息或者通过使用清楚的同步消息来完成的。对消息的缓冲消耗存储器,而所述存储器总是有限的。每个窗口的清楚的同步受访问窗口的所有节点之间往返消息的较长延迟的影响。因此,在例如共同未决的专利申请No.10/468993(代理卷号15275)中描述的大规模机器上,这些方法不很适合,因为缓冲存储器有限,还因为访问任一特定窗口的节点数目通常随计算机中的处理节点的数目扩张。
在计算机设计领域内的长期存在的问题是如何保持这些L1高速缓存一致。典型的解决方案使用了称为“侦听”其它处理器的存储器总线的技术,这种技术可能速度很慢,并可能降低每个处理器的性能。作为替换,包含公用存储器中的数据的L1旧拷贝的处理器可请求一个新的拷贝,或者将旧拷贝标记为作废,但这需要知道该拷贝何时变为无效。有时,该知识是不完整的,这就必须执行不必要的存储操作,从而进一步降低了性能。其它计算机利用“互锁”,由此,一个处理器获准使用特定数据,而其它处理器不能使用,但是,这种准许涉及两个处理器之间的相互作用,通常需要在半导体设备中的额外复杂电路,从而降低了两个处理器的性能。
通常实际应用中的其它解决方案使希望共享的存储器区的所有高速缓存失效。这一事实使对这些区域的所有存储访问恶化,而不仅仅是对共享数据的存储访问。
发明内容
本发明的目的是提供一种用于管理并行处理计算机系统中的一致性的改进的方法。
本发明的另一个目的是在没有扩展电路并且对每个处理器影响最小的情况下获得多处理器节点的处理器的一级高速缓存之间的一致性。
本发明的再一个目的是提供一种方法和装置,所述的方法和装置与软件算法结合使用,以便在处理器或直接存储器存取(DMA)设备之间完成有效的高速消息传递通信,这可在不明显降低性能的条件下维持一致性。
使用本发明的方法和装置可获得这些目的以及其它的目的。根据第一方面,本发明提供一种简化并明显加快在消息传递大规模并行超级计算机(例如在共同未决的专利申请No.10/468993(代理案号15275)中描述的超级计算机)中的高速缓存一致性的管理的软件算法,其中该超级计算机包含两个或更多个非一致的处理单元(或者甚至DMA控制器),这里的一个处理单元主要执行计算,而另一个单元执行消息传递。在这种大规模并行超级计算机中,算法通常以一系列步骤进行,其中每个步骤包括一个计算阶段,随后是一个通讯阶段。在通信阶段中,节点交换由计算阶段产生的数据和该算法的下一步所需的数据。由于算法的性质,这些阶段通常是紧密同步的,以便使通信在一瞬间发生在整个机器上。因此,在每个通信阶段的开始和结束时,可以将管理放/取窗口的同步的成本分摊到大量节点上。简要地说,可以在通信阶段的开始时使用一个全局操作来打开很多放/取窗口,并且可以在通信阶段的结束时使用一个第二全局操作来关闭这些窗口。
因为I/O处理器在高速缓存一致性被保证之后才能对消息进行实际的发送或接收,所以本发明提供了一种机构以确保:被“放”(发送)的数据不在任一处理器的高速缓存中;并且被“取”(接收)的数据也不在任一处理器的高速缓存中。通过在打开和关闭“放/取窗口”时协调这些行为,本发明降低了获得一致性并允许将那个工作分摊到大量个体消息上所需的工作总量。同样,由于在节点中的两个处理单元必须执行此工作,所以本发明使这能够同时发生。而且,当需要的时候,可以通过使用共同未决的专利申请No.10/468993(代理卷号15275)中描述的全局屏障网络来在大规模并行机器中的大量独立节点上协调这些行为。
根据第二方面,本发明提供一种硬件装置,该硬件装置辅助上述的高速缓存一致性软件算法,并限制在放/取窗口上获得高速缓存一致性所需的总时间(或等待时间)。此装置是硬件地址解码器的一个简单的扩展,它在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的存储器区。这进一步地加快了一致性行为,因为它允许将垃圾数据(处理器绝不会使用的数据)拉进处理器的高速缓存,从而仅驱逐修改过的数据,并以最佳性能替换未修改的数据。性能变得更快,因为此垃圾数据实际上不需被从存储器中取出,相反,存储器控制器只需要立即地进行答复。
性能变得更快还因为只有修改的数据被从高速缓存写到存储器,而干净的数据被简单地立即抛弃。而且,对于“放/取窗口”的总体大小超过(可能是大大超过)处理器高速缓存的大小的情况,以这种方式清理高速缓存为用于确保在高速缓存中没有遗留来自通信区的数据所需的工作总量提供了一个上限。可以注意到:独立于上述的软件算法,对于通常的、使用最近最少使用的高速缓存替换策略的计算机系统来说,这种硬件设备是有用的。
此外,有两种特殊软件指令可被用在本发明的优选实施中。一种称为“数据高速缓存块清除和无效”的指令可被用于将数据从第一处理器的存储器区写进共享的存储器区,并同时防止第一处理器使用被写入其存储器区的数据。称为“数据高速缓存块零”的第二软件指令可被用于将数据从第一处理器的存储器区写进共享的存储器。通过使用这些软件指令或类似的软件指令,本发明的方法和装置在与软件算法结合使用时可以获得节点之间的高速消息传递通信,同时在不明显降低性能的条件下维持一致性。
通过考虑下面参照指定和显示本发明的优选实施例的附图而给出的具体描述,可以使本发明的进一步益处和优点变得明显。
附图说明
图1显示了实现本发明的两个处理器节点。
图2图示了可在本发明的实际应用中使用的放/取窗口。
具体实施方式
本发明涉及用于管理多处理器计算机系统的一致性的方法和装置。图1示出可实现本发明的一个节点10,节点10的处理器12和14中的每一个都具有相应的高速缓存存储器区16和20,并且两个处理器共享一个第三存储器区22。总体来说,本发明涉及一种简化并明显加快在消息传递并行计算机中的高速缓存存储器一致性管理的软件算法,还涉及辅助此高速缓存一致性算法的硬件装置。该软件算法使用放/取窗口的打开和关闭来协调获得高速缓存一致性所需的行为。硬件装置可以是硬件地址解码的扩展,它在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的物理存储器区。
如上面指出的,本发明利用一个称为“放/取”数据传输的原理。由于并行的多个计算机被扩张到更多的节点,所以典型的应用消息传输包含更多的消息,其中每一个这样的消息包含由多个计算机中的其它节点执行的一项工作。通常,一个节点将本地产生的工作项目分散到许多其它节点(一次“放”),同时将许多远程产生的工作项目集合到其本地存储器中(一次“取”)。所述多个计算机的总体性能通常受该系统的消息传递性能所限。
对于这种数据传输,一种在文献(见例如http://www.mpi-forum.org/docs/docs.html,MPI-2下)中描述的特殊有效的消息传递接口称为单向通信。单向通信使用一个“放/取”消息传递的模式,在该模式中,消息携带源(用于“取”)或目的(用于“放”)的存储器地址。在操作一个公共问题的并行超级计算机中,典型地,放和取是成批集合并同时发出的。这使独立运行的处理器保持大致同步,同时允许对于公共问题的良好性能。放和取发生的时间段由放/取窗口限定。此窗口在时间(它什么时候出现)和存储器(放或取中的数据存在于存储器地址的哪个范围)的方面进行扩展。图2显示了包含许多不同消息的放/取窗口30。
在这种大规模并行超级计算机中,算法通常以一系列步骤进行,其中每个步骤由一个计算阶段随后接着一个通讯阶段组成。在通信阶段中,节点交换由计算阶段产生的数据和该算法的下一步所需的数据。由于算法的性质,这些阶段通常是紧密同步的,以便使通信在一瞬间发生在整个机器上。因此,在每个通信阶段的开始和结束时,可以将管理放/取窗口的同步的成本分摊到大量节点上。简要地说,可以在通信的开始时使用一个全局操作来打开很多放/取窗口。
本发明利用这个放/取窗口提供一个的简单方法以便管理存储器的一致性。根据第一方面,提供了一种简化并明显加快在消息传递大规模并行超级计算机中的高速缓存一致性的管理的软件算法(例如在共同未决专利申请No.10/468993(代理卷号15275)中描述的算法),其中该超级计算机包含两个或更多个非一致的处理单元(或者甚至DMA控制器),这里的一个处理单元主要执行计算,而另一个单元执行消息传递行为。简要地说,这种算法使用“放/取窗口”的打开和关闭来协调获得存储器一致性所需的行为。
因为在高速缓存一致性被保证之后才能对消息进行实际的发送或接收,所以本发明提供了一种机构以确保:被“放”(发送)的数据不在任一处理器的高速缓存中;并且被“取”(接收)的数据也不在任一处理器的高速缓存中。通过在打开和关闭“放/取窗口”时协调这些行为,本发明降低了获得一致性并允许将那个工作分摊到大量个体消息上所需的工作总量。同样,由于在节点中的两个处理单元必须执行此工作,所以本发明使这能够同时发生。而且,当需要的时候,可以通过使用共同未决的专利申请No.10/468993(代理卷号15275)中描述的全局屏障网络来在大规模并行机器中的大量独立节点上协调这些行为。
此算法由下面描述的硬件辅助,但通常来说,即使在没有该装置的时候该算法也对消息传递计算机有益。在没有该装置时,通过为保留物理区的每个高速缓存线发出一个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处理器继续进行,直到所有预期的消息到达。该软件之后允许计算机处理器继续处理指令,并且使用全局同步操作(例如在共同未决的申请10/468997(代理卷号15272)全局中断和屏障网络中描述的全局屏障)来关闭放/取窗口。
第二实施例:如果被接收的消息的大小大于L1的大小。
在这种情况中,本发明在大小等于L1的保留的连续物理地址范围上使用术语上称为“数据高速缓存块零”(DCBZ)的指令。DCBZ创建一个内容为零的新高速存储线。如果新的高速存储线不可用,则L1中的另一个高速存储线(例如,最近最少使用的线)将其数据写回到公用存储器,并且之后使用由DCBZ指令给定的地址置零。DCBZ是一个PowerPC BookE指令;对于其它处理器存在相似的指令。软件向保留区的每个线连续地执行DCBZ,其中保留区的线的大小等于高速缓存线并被类对齐。这造成L1中的所有线被清除,即,所有修改的线被写回公用存储器,因为L1的全部内容很快地从保留区中被替换。该软件之后允许计算机处理器继续处理指令,并且使用全局同步操作(例如在共同未决的申请10/468997(代理卷号15272)全局中断和屏障网络中描述的全局屏障)来关闭放/取窗口。
可以注意到:保留的物理空间不需要存在于物理存储器中,除非到该空间的访问不可能造成访问违例。到此保留的存储器空间的所有写必须是由存储器控制器确认的。到此保留的空间的所有读必须立即返回一个任意(即“垃圾”)值到请求处理器的L1。还需要注意,这样的装置还提供用于无特权的(又称用户空间)程序的、用于对L1高速存储的全部内容进行清除并使所述内容无效的最有效的方法。
还可注意到,如果DCBF指令慢于DCBZ,那么操作系统可以对慢于L1的消息使用DCBZ指令,并且反之亦然。
使用本发明,如果通信存储器空间被标记为向其L1高速缓存进行直接写入,则I/O处理器根本不需要清除其高速缓存。
在相关的专利申请No.10/468991(代理人案号:15258)中,详细地讨论了对于上述全局的“和”在允许放/取窗口暂时变窄的短时间间隔中的建立。
虽然很明显这里描述的本发明是被充分计算以达到前述目标的,但可以理解,可以由本领域技术人员设计多种修改和实施例,希望附带的权利要求书覆盖所有的这种修改和实施例,作为落入本发明的真正精神和范围内。

Claims (16)

1.一种简化并加快在消息传递并行超级计算机中的高速缓存一致性管理的方法,该超级计算机包含两个或更多个非一致的处理器单元,这里的一个处理器单元主要执行计算,而另一个处理器单元执行消息传递行为,该方法包含步骤:
打开和关闭放/取窗口;
执行用于实现高速缓存一致性的行为;以及
使用放/取窗口的所述打开和关闭来协调用于获得高速缓存一致性的行为。
2.根据权利要求1所述的方法,其中所述使用的步骤包含确保被发送的数据不在任一处理器的高速缓存中,而且被接收的数据也不在任一处理器的高速缓存中的步骤。
3.根据权利要求2所述的方法,其中确保的步骤包含通过发出软件命令来将数据载入高速缓存的步骤。
4.根据权利要求1所述的方法,进一步包括一个辅助实现所述高速缓存一致性的步骤,所述步骤包括:
使用一个存储器控制器,以便在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的虚拟存储器区。
5.根据权利要求4所述的方法,其中存储器控制器允许将处理器绝不会使用的垃圾数据拉进处理器的高速缓存,从而仅驱逐修改过的数据,并替换具有最佳性能的未修改的数据。
6.根据权利要求5所述的方法,其中,实际上不需要从存储器中取出垃圾数据,而只需以存储器控制器对处理器单元的立即回复的方式来实现将垃圾数据拉进处理器的高速缓存的步骤。
7.根据权利要求6所述的方法,其中只有实际修改的数据被从高速缓存写到存储器,而未修改的数据被简单地立即抛弃。
8.根据权利要求7所述的方法,其中,当放/取窗口的总体大小超过处理器的高速缓存的大小时,以这种方式清理高速缓存为用于确保在高速缓存中没有遗留来自通信区的数据所需的工作总量提供了一个上限。
9.一种简化并加快在消息传递并行超级计算机中的高速缓存一致性管理的系统,其中该超级计算机包含两个或更多个非一致的处理器单元,这里的一个处理器单元主要执行计算,而另一个处理器单元执行消息传递行为,该系统包含:
用于打开和关闭放/取窗口的装置;
用于执行获得高速缓存一致性的行为的装置;以及
用于使用放/取窗口的所述打开和关闭来协调实现高速缓存一致性的行为的装置。
10.根据权利要求9所述的系统,其中所述使用的装置包含用于确保被发送的数据不在任一处理器的高速缓存中,而且被接收的数据也不在任一处理器的高速缓存中的装置。
11.根据权利要求10所述的系统,其中确保的装置包含用于通过发出软件命令来将数据载入高速缓存的装置。
12.根据权利要求9所述的系统,进一步包括用于辅助实现高速缓存一致性的装置,该装置包含:
一个用于在节点的物理存储器地址空间内创建一个(a)并不实际存在的、并(b)因此能够立即响应来自处理单元的读和写请求的虚拟存储器区的存储器控制器。
13.根据权利要求12所述的系统,其中存储器控制器允许将处理器绝不会使用的垃圾数据拉进处理器的高速缓存,从而仅驱逐修改过的数据,并替换具有最佳性能的未修改的数据。
14.根据权利要求13所述的系统,其中,实际上不需要从存储器中取出垃圾数据,而存储器控制器只需以对处理器单元的立即回复的方式来实现将垃圾数据拉进处理器的高速缓存。
15.根据权利要求14所述的系统,其中只有实际修改的数据被从高速缓存写到存储器,而未修改的数据被简单地立即抛弃。
16.根据权利要求15所述的系统,其中,当放/取窗口的总体大小超过处理器的高速缓存的大小时,以这种方式清理高速缓存提供了为确保在高速缓存中没有遗留来自通信区的数据所需的工作总量的一个上限。
CNB028054318A 2001-02-24 2002-02-25 通过放/取窗口管理一致性 Expired - Fee Related CN1286016C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US27112401P 2001-02-24 2001-02-24
US60/271,124 2001-02-24
PCT/US2002/005587 WO2002069238A2 (en) 2001-02-24 2002-02-25 Managing coherence via put/get windows

Publications (2)

Publication Number Publication Date
CN1493027A CN1493027A (zh) 2004-04-28
CN1286016C true CN1286016C (zh) 2006-11-22

Family

ID=68463256

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028054318A Expired - Fee Related CN1286016C (zh) 2001-02-24 2002-02-25 通过放/取窗口管理一致性

Country Status (11)

Country Link
US (3) US7870343B2 (zh)
EP (1) EP1410216B1 (zh)
JP (1) JP3954969B2 (zh)
KR (1) KR100615411B1 (zh)
CN (1) CN1286016C (zh)
AT (1) ATE437402T1 (zh)
AU (1) AU2002245518A1 (zh)
CA (1) CA2437663A1 (zh)
DE (1) DE60233055D1 (zh)
IL (1) IL157517A0 (zh)
WO (1) WO2002069238A2 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7804504B1 (en) 2004-12-13 2010-09-28 Massachusetts Institute Of Technology Managing yield for a parallel processing integrated circuit
US7882307B1 (en) 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US7853752B1 (en) * 2006-09-29 2010-12-14 Tilera Corporation Caching in multicore and multiprocessor architectures
JP2009104300A (ja) * 2007-10-22 2009-05-14 Denso Corp データ処理装置及びプログラム
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8725951B2 (en) * 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US10152450B2 (en) * 2012-08-09 2018-12-11 International Business Machines Corporation Remote processing and memory utilization
US9037669B2 (en) 2012-08-09 2015-05-19 International Business Machines Corporation Remote processing and memory utilization
FR3048795A1 (fr) * 2016-03-11 2017-09-15 Commissariat Energie Atomique Systeme sur puce et procede d'echange de donnees entre noeuds de calculs d'un tel systeme sur puce
US10691609B2 (en) 2017-07-24 2020-06-23 International Business Machines Corporation Concurrent data erasure and replacement of processors
US10116436B1 (en) * 2017-09-26 2018-10-30 Intel Corporation Techniques for preventing memory timing attacks
CN110567112B (zh) * 2019-09-16 2021-07-13 重庆美的通用制冷设备有限公司 空调设备的控制方法、空调设备的控制系统和空调系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379391A (en) * 1991-03-01 1995-01-03 Storage Technology Corporation Method and apparatus to access data records in a cache memory by multiple virtual addresses
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US5537588A (en) * 1994-05-11 1996-07-16 International Business Machines Corporation Partitioned log-structured file system and methods for operating the same
US5860110A (en) * 1995-08-22 1999-01-12 Canon Kabushiki Kaisha Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
US5841973A (en) * 1996-03-13 1998-11-24 Cray Research, Inc. Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory
US5958019A (en) * 1996-07-01 1999-09-28 Sun Microsystems, Inc. Multiprocessing system configured to perform synchronization operations
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
US6223269B1 (en) * 1997-09-27 2001-04-24 Emc Corporation Stacked mapped storage system
US6085295A (en) * 1997-10-20 2000-07-04 International Business Machines Corporation Method of maintaining data coherency in a computer system having a plurality of interconnected nodes
US6032228A (en) * 1997-11-26 2000-02-29 International Business Machines Corporation Flexible cache-coherency mechanism
US6490625B1 (en) * 1997-11-26 2002-12-03 International Business Machines Corporation Powerful and flexible server architecture
US6119205A (en) * 1997-12-22 2000-09-12 Sun Microsystems, Inc. Speculative cache line write backs to avoid hotspots
GB9727452D0 (en) * 1997-12-31 1998-02-25 Northern Telecom Ltd Method and apparatus for replicating operations on data
US6148146A (en) * 1998-01-07 2000-11-14 Poore; Bobby L. Water heater
US6631448B2 (en) * 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
JP3959914B2 (ja) * 1999-12-24 2007-08-15 株式会社日立製作所 主記憶共有型並列計算機及びそれに用いるノード制御装置
US6772298B2 (en) * 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
JP2003288218A (ja) * 2002-03-27 2003-10-10 Toshiba Corp マイクロコンピュータ及びマイクロコンピュータの制御方法

Also Published As

Publication number Publication date
WO2002069238A2 (en) 2002-09-06
IL157517A0 (en) 2004-03-28
US8122197B2 (en) 2012-02-21
EP1410216B1 (en) 2009-07-22
US20090313439A1 (en) 2009-12-17
US20110072219A1 (en) 2011-03-24
KR20040004529A (ko) 2004-01-13
US20070055825A1 (en) 2007-03-08
WO2002069238A3 (en) 2003-11-27
ATE437402T1 (de) 2009-08-15
EP1410216A2 (en) 2004-04-21
AU2002245518A1 (en) 2002-09-12
CA2437663A1 (en) 2002-09-06
JP2005507097A (ja) 2005-03-10
KR100615411B1 (ko) 2006-08-25
EP1410216A4 (en) 2006-03-22
JP3954969B2 (ja) 2007-08-08
US8161248B2 (en) 2012-04-17
CN1493027A (zh) 2004-04-28
US7870343B2 (en) 2011-01-11
DE60233055D1 (de) 2009-09-03

Similar Documents

Publication Publication Date Title
CN1286016C (zh) 通过放/取窗口管理一致性
Martin et al. Token coherence: Decoupling performance and correctness
Zhou et al. Performance evaluation of two home-based lazy release consistency protocols for shared virtual memory systems
EP0817071B9 (en) A multiprocessing system configured to detect and efficiently provide for migratory data access patterns
JP3987162B2 (ja) 読取り−共有トランザクションのための強化ブロッキング・メカニズムを含むマルチプロセス・システム
US7174434B2 (en) Low latency memory access and synchronization
US7818514B2 (en) Low latency memory access and synchronization
JPH10133917A (ja) コヒーレンシー関連エラー・ロッジング能力を有するマルチプロセス・システム
JPH10116253A (ja) 同期動作を実行するマルチプロセス・システム
EP0640923A1 (en) System and method to notify an empty status from peer cache units to global storage control unit in a multiprocessor data processing system
JPH10187470A (ja) スピンロック動作を最適化する装置を含むマルチプロセス・システム
JPH10171710A (ja) 効果的なブロック・コピー動作を実行するマルチプロセス・システム
JPH10187645A (ja) プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム
JPH10143476A (ja) プリフェッチ動作を開始するソフトウエアを実行するマルチプロセス・システム
JPH10340227A (ja) ローカル・グローバル・アドレス・スペース及びマルチアクセス・モードを用いたマルチプロセッサ・コンピュータ・システム
JPH10134014A (ja) 3ホップ通信プロトコルを用いたマルチプロセス・システム
JP2002304328A (ja) マルチプロセッサシステム用コヒーレンスコントローラ、およびそのようなコントローラを内蔵するモジュールおよびマルチモジュールアーキテクチャマルチプロセッサシステム
WO1995025306A2 (en) Distributed shared-cache for multi-processors
JPH10149342A (ja) プリフェッチ動作を実行するマルチプロセス・システム
JPH10214230A (ja) 応答カウントを含むコヒーレンシー・プロトコルを採用したマルチプロセッサ・システム
JP2019500705A (ja) 選択的リソースマイグレーションを用いるネットワーク接続型メモリ
Blumrich et al. Managing coherence via put/get windows
WO2002069152A1 (en) Managing coherence via put/get windows
Memo Issues in Building a Cache-Coherent Distributed Shared Memory Machine using Commercial SMPs
Blumrich et al. Simplifying and speeding the management of intra-node cache coherence

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061122

Termination date: 20190225