CN1286016C - 通过放/取窗口管理一致性 - Google Patents
通过放/取窗口管理一致性 Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 21
- 230000005540 biological transmission Effects 0.000 claims description 17
- 230000006399 behavior Effects 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 19
- HFSXRRTUWAPWSJ-UHFFFAOYSA-N 3,4-dichlorocatechol Chemical compound OC1=CC=C(Cl)C(Cl)=C1O HFSXRRTUWAPWSJ-UHFFFAOYSA-N 0.000 description 7
- 230000004888 barrier function Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- NAGBBYZBIQVPIQ-UHFFFAOYSA-N 6-methyl-3-pentyl-9-prop-1-en-2-yldibenzofuran-1-ol Chemical compound C1=CC(C(C)=C)=C2C3=C(O)C=C(CCCCC)C=C3OC2=C1C NAGBBYZBIQVPIQ-UHFFFAOYSA-N 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K7/00—Constructional details common to different types of electric apparatus
- H05K7/20—Modifications to facilitate cooling, ventilating, or heating
- H05K7/20709—Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
- H05K7/20836—Thermal management, e.g. server temperature control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D25/00—Pumping installations or systems
- F04D25/16—Combinations of two or more pumps ; Producing two or more separate gas flows
- F04D25/166—Combinations of two or more pumps ; Producing two or more separate gas flows using fans
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D27/00—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
- F04D27/004—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
-
- 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
-
- 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/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- 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/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
- G09G5/008—Clock recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
- H04L7/033—Speed 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/0337—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
- H04L7/0338—Selecting 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
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24F—AIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
- F24F11/00—Control or safety arrangements
- F24F11/70—Control systems characterised by their outputs; Constructional details thereof
- F24F11/72—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
- F24F11/74—Control 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/77—Control 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B30/00—Energy efficient heating, ventilation or air conditioning [HVAC]
- Y02B30/70—Efficient 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所述的系统,其中,当放/取窗口的总体大小超过处理器的高速缓存的大小时,以这种方式清理高速缓存提供了为确保在高速缓存中没有遗留来自通信区的数据所需的工作总量的一个上限。
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)
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)
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 | マイクロコンピュータ及びマイクロコンピュータの制御方法 |
-
2002
- 2002-02-25 DE DE60233055T patent/DE60233055D1/de not_active Expired - Lifetime
- 2002-02-25 AT AT02713681T patent/ATE437402T1/de not_active IP Right Cessation
- 2002-02-25 US US10/468,995 patent/US7870343B2/en not_active Expired - Fee Related
- 2002-02-25 AU AU2002245518A patent/AU2002245518A1/en not_active Abandoned
- 2002-02-25 IL IL15751702A patent/IL157517A0/xx unknown
- 2002-02-25 EP EP02713681A patent/EP1410216B1/en not_active Expired - Lifetime
- 2002-02-25 CN CNB028054318A patent/CN1286016C/zh not_active Expired - Fee Related
- 2002-02-25 KR KR1020037010817A patent/KR100615411B1/ko not_active IP Right Cessation
- 2002-02-25 WO PCT/US2002/005587 patent/WO2002069238A2/en active Application Filing
- 2002-02-25 JP JP2002568284A patent/JP3954969B2/ja not_active Expired - Fee Related
- 2002-02-25 CA CA002437663A patent/CA2437663A1/en not_active Abandoned
-
2009
- 2009-08-19 US US12/543,890 patent/US8122197B2/en not_active Expired - Fee Related
-
2010
- 2010-11-24 US US12/953,770 patent/US8161248B2/en not_active Expired - Fee Related
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 |