CN1330783A - 把读请求推测地传送到远程处理节点的非均匀存储器访问(numa)数据处理*** - Google Patents
把读请求推测地传送到远程处理节点的非均匀存储器访问(numa)数据处理*** Download PDFInfo
- Publication number
- CN1330783A CN1330783A CN99814443A CN99814443A CN1330783A CN 1330783 A CN1330783 A CN 1330783A CN 99814443 A CN99814443 A CN 99814443A CN 99814443 A CN99814443 A CN 99814443A CN 1330783 A CN1330783 A CN 1330783A
- Authority
- CN
- China
- Prior art keywords
- node
- teleprocessing
- response
- processing node
- local
- 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.)
- Granted
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
一个非均匀存储器访问(NUMA)计算机***包括至少一个本地处理节点和一个远程处理节点,它们每个与一节点互连相连。该本地处理节点包括一个本地互连,与本地互连相连的一个处理器和一个***存储器,以及一个节点控制器放在本地互连和节点互连之间。为响应收到了一个来自本地互连的读请求,节点控制器推测地把该读请求经由节点互连传送到远程处理节点。然后,为响应收到了一个来自远程处理节点的对该读请求的响应,节点控制器根据本地处理节点处该读请求的分辨力处理该响应。例如,在一个处理过程中,从远程处理节点接收的响应中包含的数据被该节点控制器抛弃,如果该读请求在本地处理节点处收到了一个修正的干预相干性响应的话。
Description
一般地说,本发明涉及数据处理方法和***,特别是涉及非均匀存储器访问(NUMA)数据处理***内的数据处理。更具体地说,本发明涉及NUMA数据处理***中的通信方法,在该***中的读请求被推测地传送到远程存储器中。
在计算机技术领域众所周知,通过相互合作地驾驭多个单独处理器的处理能力,能达到更强的计算机***性能。可以以多种不同的拓扑结构设计多处理器计算机***,其中各种拓扑结构可能适用于特定的应用,这取决于每个应用的性能要求和软件环境。最通用的MP计算机拓扑结构之一是对称多处理器(SMP)配置,其中多个处理器共享公用资源,如***存储器和输入/输出(I/O)子***,它们通常连接于共享的***互连。把这种计算机***称作对称的,这是因为在理想状态下在一个SMP计算机***中的所有处理器针对共享***存储器中存储的数据有相同的访问延迟时间。
虽然SMP计算机***允许使用相对简单的处理器间通信和数据共享方法,但SMP计算机***有有限的可伸缩性。换句话说,尽管通过扩大规模(即增加更多的处理器)一般可以期望使典型的SMP计算机***改善性能,但总线、存储器和输入/输出(I/O)带宽等固有限制,使得在超出与其实现有关的规模(在这种规模下对这些共享资源的利用达到最佳)之后,靠扩大SMP的规模已不能得到显著的好处。这样,在***规模增大时,SMP拓扑结构本身受到某种程序的带宽限制,特别是在***存储器处的带宽限制。例如,尽管一些部件能最佳地应用于单处理器和小规模SMP计算机***,但这些部件在应用于大规模SMP时往往是效率差的。与此相反,为用于大规模SMP而设计的部件从费用的观点看要用于较小的***是不实际的。
结果,一种称作非均匀存储器访问(NUMA)的MP计算机***拓扑结构出现了,作为克服SMP计算机***的许多限制的另一种设计,其代价是某些额外的复杂性。典型的NUMA计算机***包括若干个彼此互连的节点,每个节点包括一个或多个处理器以及一个本地“***”存储器。这种计算机***被称作有非均匀存储器访问,这是因为每个处理器针对其存储在本地节点处的***存储器中的数据,其访问延时低于针对其存储在远程节点处的***存储器中的数据的访问延时。NUMA***可进一步分类为非相干的或高速缓存相干的,这取决于是否保持不同节点中各高速缓存之间的数据相干性。高速缓存相干的NUMA(CC-NUMA)***的复杂性在很大程度上归因于硬件不仅要维持每个节点内的各级高速缓存和***存储器之间的数据相干性而且要维持不同节点中的高速缓存和***存储器之间的数据相干性所需要的额外通信。然而,NUMA计算机***确实解决了传统SMP计算机的规模限制,因为在NUMA计算机***内的每个节点可作为较小的SMP***来实现。这样,每个节点的共享部件能被最佳地应用于少数处理器,而整个***则得益于可得到较大规模的并行度并同时保持较低的延时。
CC-NUMA计算机***所关心的主要性能是经由连接各节点的互连传送的通信事务(transacfion)所伴随的延时。特别是读事务,它是到目前为止最普通的事务类型,与指出本地***存储器所驻留的数据的读事务相比,当指出远程***中所驻留的数据时,延时可能为其两倍。因为在节点互连上传送的读事务所伴随的延时高于在本地互连上的读事务所伴随的延时,所以减少在节点互连上传送的读事务的延时是有用的和人们所希望的。
根据第一方面,本发明提供一计算机***,包含:一个节点互连;以及至少一个本地处理节点和一个远程处理节点,它们每个都连到所述节点互连上,所述本地处理节点包括一个本地互连,与本地互连相连的一个处理器和一个***存储器,以及一个节点控制器放在所述本地互连和节点互连之间,这里所述节点控制器推测地把从所述本地互连接收的请求事务经由所述节点互连传送到所述远程处理节点,而且这里所述节点控制器根据在所述本地处理节点处所述请求事务的分辨力,处理从所述远程处理节点处接收的对所述请求事务的响应。
根据其第二方面,本发明提供一种在计算机***中的通信方法,该计算机***包括一个节点互连,该节点互连至少连接一个本地处理节点和一个远程处理节点,所述本地处理节点包括一个本地互连,与本地互连相连的一个处理器和一个***存储器,以及一个节点控制器放在所述本地互连和所述节点互连之间,所述方法包含:经由所述节点互连推测地把从所述本地互连接收请求事务传送到所述远程处理节点;在所述本地处理接点,从所述远程处理节点接收一个对所述请求事务的响应,为响应这一接收,根据所述本地处理节点处所述请求事务的分辨力,处理所述对该请求事务的响应。
相信为本发明特点的新特性将在所附权利要求中提出。然而,结合附图阅读下文中对实施示例的详细描述,将能最好地理解发明本身和最佳使用方式及其进一步的目的和优点,这里:
图1描绘根据本发明的一个NUMA计算机***的一个实施示例;
图2是图1中所示节点控制器的更详细的方框图;
图3A和图3B是高层逻辑流程图,它们一起说明一种处理请求事务的方法示例,其中在源处理节点处的读请求被推测地传送到远程处理节点;以及
图4A-4D一起显示根据图3A和3B中所示方法进行的处理过程示例。
***概述
现在参考附图,特别是参考图1,图中描绘了根据本发明的一个NUMA计算机***的实施示例。所描绘的实例示例可实现为例如一个工作站、服务器或大型机。如图所示,NUMA计算机***6包括若干处理节点8a-8n(N≥2),它们由节点互连22彼此互连。处理节点8a-8n每个可以包括M(M≥0)个处理器10,一个本地互连16以通过存储器控制器17访问的***存储器18。处理器10a—10m最好是(但不是必须是)相同的,而且可以包含PowerPCTM处理器线内的一个处理器,它可从纽约州Armonk的国际商用机器公司得到。除了用于执行程序指令的寄存器、指令流逻辑和执行单元(它们通常被指定为处理器核12)外,每个处理器10a-10m还包括一个在芯片上的高速缓存分级***,它用于把数据从***存储器18存储到相关联的处理器核12。每个高速缓存分级***14可以包括例如一个一级(L1)高速缓存和一个二级(L2)高速缓存,它们分别有8—32kB和1—16MB的存储能力。
每个处理节点8a-8n进一步包括各自的节点控制器20连在本地互连16和节点互连22之间。每个节点控制器20通过完成至少两项功能作为远程处理节点8的本地代理。第一,每个节点控制器20窥探相关联的本地互连16并使本地通信事务向远程处理节点8的传送便利。第二,每个节点控制器20窥探节点互连22上的通信事务并主控相关联的本地互连16上的相关通信事务。在每个本地互连16上的通信由一个仲裁器24控制。仲裁器24根据处理器10产生的总线请求信号规则对地方互连16的访问,并为本地互连16上窥探到的通信事务编辑相干性响应,对此下文中将进一步讨论。
本地互连16通过夹层总线桥26与夹层总线30相连,例如,夹层总线30可以作为***部件互连(PCI)本地总线实现。夹层总线桥26提供一个低延时路径和一个高带宽路径,通过低延时路经处理器10可以直接访问I/O装置32和存储器装置34当中的装置,这些装置被映射到总线存储器和/或I/O地址空间,而通过高带宽路径I/O装置32和存储器装置34可以访问***存储器18。I/O装置32可以包括例如显示装置、键盘、图形指示器以及用于连接外部网络或附属装置的串行和并行端口。另一方面,存储装置34可以包括光盘或磁盘,它们提供操作***和应用软件的非易失存储。存储器组织
在NUMA计算机***6中的所有处理器10共享单一的物理存储器空间,意思是每个物理地址只与***存储器18之一中的单个位置相关联。这样,***存储器的总内容(它一般可由NUMA计算机***6中任何处理器访问)可被看作是在各***存储器18之间分区的。例如,在本发明的有4个处理节点8的实施示例中,NUMA计算机***可以有16GB物理地址空间,包括通用存储区和保留区。通用存储区分成若干500MB段,4个处理节点8的每个节点被分配每个第4段。保留区可以包含大约2GB,它包括***控制和***存储区以及I/O存储区,它们每个被分配给各一个处理节点8。
为了本讨论的目的,在其***存储器18中存储特定数据的处理节点8被称作那个数据的主节点(home node);相反,处理节点8a-8n中的其他节点被称作该特定数据的远程节点。存储器相干性
因为存储在每个***存储器18内的数据能被NUMA计算机***6内的任何处理器10请求、访问和修改,所以NUMA计算机***6实现一个高速缓存相干性协议以维持同一处理节点中各高速缓存之间的相干性,还维持不同处理节点中高速缓存之间的相干性。这样,NUMA计算机***6被适当地分类为CC-NUMA计算机***。所实现的高速缓存相干性协议是依赖于具体实现的,可能包含例如著名的“修改的、排他的、共享的、无效的(MESI)”协议或其变体。下文中将假定高速缓存分级结构14和仲裁器24实现传统的MESI协议,其中节点控制器20认识M、S和I状态,并认为E状态被合并到M状态中供校正之用。就是说,节点控制器20假定排他地由远程高速缓存保持的数据已经被修改,而不管该数据在实际上是否被修改。互连体系结构
本地互连16和节点互连22每个能由任何基于总线的广播分级结构、基于交换的广播分级结构、或者基于交换的非广播分级结构来实现。然而,在一个最佳实施例中,至少节点控制器22是作为由IBM公司开发的6××通信协议管制的、基于交换的非广播互连来实现的。本地互连16的节点互连22允许***的事务,意思是在组成通信事务的地址和数据使用权(tenure)之间不存在固定的时间关系,而且数据打包的顺序可以不同于相应的地址打包顺序。本地互连16和节点互连22的利用还最好由流水线通信事务来说加强,它允许在先前的通信事务的主控方(master)从每个接收方(recipient)接收相干性响应之前寻找下一个通信事务的发源。
不管所实现的互连分级结构的类型如何,至少有三类“包”一般地讲,(这里所用的“包”是指一个单独的信息单元),即地址、数据和相干性响应,用于通过节点互连22在处理节点8之间传递信息以及通过本地互连16在各窥探器之间传递信息。现在参考表I和表II,它们分别给出地址包和数据包的相关字段和定义概要。
表I
字段名 | 描述 |
地址<0:7> | 调节器,定义一个通信事务关于相干性、写通过(write thru)以及保护的属性 |
地址<8:15> | 标记,用于标识一个通信事务中的所有包 |
地址<16:63> | 地址部分,它指出一个请求中的物理、虚拟或I/O地址 |
AParity<0:2> | 指出地址位<0:63>的奇偶校验 |
TDescriptors | 指出通信事务的大小和类型 |
表II
如表I和表II中指出的那样,为允许一接收方节点或窥探器能确定每个包属于的通信事务,在通信事务中的每个包都用事务标记来标识。本领域技术人员将会理解,可以使用额外的流控制逻辑和相关联的流控制信号来管制有限通信资源的利用。
字段名 | 描述 |
数据<0:127> | 用于读和写事务的数据 |
数据奇偶性<0:15> | 指出数据行<0:127>的奇偶校验 |
DTag<0:7> | 标记,用于使一数据包与一地址包匹配 |
DValid<0:1> | 指出在数据和D标记字段中是否存在有效信息 |
在每个处理节点8内,在每个窥探器和本地仲裁器24之间传送状态和相干性响应。在本地互连16内用于状态和相干性通信的信号行概括在下面的表III中。
表III
经由本地互连16的AResp和AStat线传送的状态和相干性响应最好与相关联的地址包有固定的但可编程的时间关系。例如,可能在接收地址包之后的第二个周期中需要AStatOut表决(vote),它提供关于每个窥探器是否已成功地接收到本地互连16上传送的地址包的初步指示。仲裁器24编译AStatOut表决结果,然后在一固定的但可编程的周期数(例如1个周期)之后发布AStatIn表决结果。在下面的表IV中概括了可能的AStat表决结果。
信号名 | 描述 |
AStatOut<0:1> | 由每个总线接收器认定的编码信号,用于向仲裁器指出流控制或错误信息 |
AStatIn<0:1> | 由仲裁器认定的编码信号,以响应与总线接收器认定的AStatOut信号的符合 |
ARespOut<0:2> | 由每个总线接收器认定的编码信号,用于向仲裁器指出相干性信息 |
ARespIn<0:2> | 由仲裁器认定的编码信号,以响应与总线接收器认定的ARespOut信号的符合 |
表IV
跟随AStatOut周期,在一个固定的但可编程的周期数(例如2个周期)之后可能需要ARespOut表决结果。仲裁器24还编译每个窥探器的ARespOut表决结果并发布ARespIn表决结果,这最好在下一个周期中进行。可能的AResp表决结果最好包括表V中列出的相干响应。
AStat表决 | 意义 |
Null | 空闲 |
Ack | 由窥探器接受的事务 |
Error | 在事务中检测到奇偶校验错 |
Retry | “重试”事务,通常用于流控制 |
表V
重运行(ReRun)AResp表决结果通常由节点控制器20发出,指出窥探到的请求有长的延时,而且该请求的源将被指示在晚些时候重新发出该事务。这样,与重试(Retry)AResp表决结果不同,一个重运行(ReRun)使得表决为重运行(ReRun)的事务接收方(而不是该事务的发起方)有责任在晚些时候使该通信事务再次被发出。节点控制器
相干性响应 | 意义 |
Retry | 请求源必须重试事务——通常是为了流控制的原因 |
修正的干预 | 行在高速缓存中被修正并将把请求方作为源 |
共享的 | 行保持在高速缓存中供共享 |
空(Null) | 行在高速缓存中无效 |
重运行 | 窥探到的请求有长的延时,请求源被指示在晚些时候重新发出事务 |
现在参考图2,图中显示图1的NUMA计算机***6中的节点控制器20的更详细的方框图。如图2中所示,连在本地互连16和节点互连22之间的每个节点控制器20包括一个事务接收单元(TRU)40、一个事务发送单元(TSU)42、一个数据接收单元(DRU)44以及一个数据发送单元(DSU)46。TRU40、TSU42、DRU44及DSU46能由例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)来实现。如所指出的那样,穿过节点控制器20的地址和数据路径是分为两支的,其地址(和相干性)包由TRU40和TSU42处理,而数据包由DRU44和DSU46处理。
TRU40,这样指定它是为了表明事务流从节点互连22流出,负责接收来自节点互连22的地址和相干性包,在本地互连16上发出事务以及向TSU42传送响应。TRU40包括响应多路转换器(mux)52,它从节点互连22接收包并把选定的包传送给TSU42中的总线主控器54和相干性响应逻辑56。对接收来自响应多路转换器52的地址包作出响应,总线主控器52能在它的本地互连16上发起一个通信事务,它与收到的地址包所指示的通信事务类型相同或者不同。
TSU42,如其名称指出的那样,是事务流到节点互连22上的管道,它包括一个多条目待决缓存器60,它暂时存储通信事务的属性,这些通信事务是把源放到节点互连22上的尚待完成的通信事务。在待决缓存器60的一个条目中存储的事务属性最好至少包括该事务的地址(包括标记)、事务的类型、以及预期的相干响应个数。每个待决缓存器条目有相应的状态,它可设置为Null(空),表明该待决缓存器条件可被删除,或设置为ReRun(重运行),表明该事务仍在待决。除了在节点互连22上对地址包寻源外,TSU42还与TRU40交互作用以处理存储器请求事务和向DRU44及DSU46发出命令以控制本地互连16和节点互连22之间的数据传送。TSU42还以相干性响应逻辑56实现用于节点互连22的选定(即MSI)相干性协议,并以目录控制逻辑58维持相干性目录50。
相干性目录50存储数据的***存储器地址(即高速缓存行)的指示,这些数据已被验明送到远程节点中的高速缓存,对这些远程节点而言,本地处理节点是其主节点。与每个高速缓存行的地址指示一起存储的具有该高速缓存行副本的每个远程处理节点的标识符以及在每个这种远程处理节点处该高速缓存行的相干性状态。相干性目录50中的条目可能有的相干性状态概括在表VI中。
表VI
如表VI中指出的那样,由远程处理节点保持的高速缓存行相干性状态知识是不准确的。这种不准确是由于这样的事实:远程保持的高速缓存行可以从S过渡到I,从E过渡到I,或从E过渡到M,而不通知主节点的节点控制器20。处理读请求事备
相干性目录状态 | 在本地高速缓存中的可能状态 | 在远程高速缓存中的可能状态 | 意义 |
修正的(M) | I | M、E、或I | 针对主节点处的***存储器,其高速缓存行可在远程节点被修改 |
共享的(S) | S或I | S或I | 高速缓存行可以不排他地保持在远程节点 |
无效的(I) | M、E、S或I | I | 高速缓存行不被任何远程节点保持 |
待共享的 | S或I | S或I | 高速缓存行是在远程节点处被作废的过程中 |
待修改的 | I | M、E或I | 可能已被远程修改的高速缓存行,正处于被写回主节点处***存储器的过程中,可能在远程节点处被作废 |
现在参考图3A和图3B,图中显示两个高速逻辑流程图,它们一起描述根据本发明处理读请求事务的方法示例。首先参考图3A,过程从块70开始,然后进到块72,它描绘处理器10(如处理节点8a的处理器10a)在其本地互连16上发出一个读请求事务。该读请求事务由节点控制器20以及与处理节点8a的本地互连16相连的其余窥探器接收。响应对读请求的接收,窥探器驱动AStatOut表决,它们由仲裁器24编译以产生AStatIn表决结果,如块74所示。在节点控制器20提供AckAStatOut表决结果以允许读请求继续进行之前,节点控制器20在待决缓存器60中分配一个读条目和一个带清除的写条目,如果该读请求指定一个远程***存储器18中的地址的话。如下文中将进一步讨论的那样,通过分配这两个条目,节点控制器20能推测地把读请求传送到被请求高速缓存行的主节点并正确地处置对读请求的响应,不管在处理节点8a处接下来的AResp表决结果如何。
现在参考块76,如果在块74产生的AStatIn表决结果是Retry(重试),则该读请求基本上被杀掉,在待决缓存器60中被分配的条目(如果有的话)被释放,过程返回到前已描述过的块72。在这种情况中,处理器10a必须在晚些时候再发出读请求。另一方面,如果在块74产生的AStatIn表决结果不是Retry(重试),则过程从块76进到块78,它描绘节点控制器20通过参考存储器图确定它的处理节点8是否是在读请求中指定的物理地址的主节点。如果是,则过程进到块80;然而,如果本地处理节点8不是该读请求的主节点,则过程进到块100。
现在参考块80,此时处理节点8a内的窥探器提供它们的ARespOut表决结果,仲裁器24编译这一表决结果以产生ARespIn表决结果。如果相干性目录50表明,由读请求中指定的地址标识的高速缓存行被验明送到至少一个远程处理节点8,则节点控制器20将表决ReRun(重运行),如果对这一读请求的服务需要与远程处理节点8通信的话。例如,如果相干性目录50表明,所请求的高速缓存行是在远程处理节点8处“被修正的”,则对读请求的服务将需要把该读请求送到远程处理节点8。类似地,如果相干性目录50表明,所请求的高速缓存行是在远程处理节点8处“被共享的”,则对带有修正意图的读(RWITM)请求的服务将需要向远程处理节点8传送一个“杀掉”(Kill)命令,以使所请求的高速缓存行的远程副本作废。如块82所示,如果ARespIn表决结果不是ReRun(重运行),则过程进到块90,它将在下文中描述;如果AResp In表决结果是ReRun(重运行),则过程进到块84。
块84说明节点控制器20通过节点互连22把一适当的事务传送到一个或多个远程处理节点8,这些节点已经结清(check out)了这个所请求的高速缓存行。如前面指出的那样,该事务或者可以是一个高速缓存命令(例如Kill(杀掉))或读请求事务。然后该过程在块86处循环,直主节点控制器20收到来自每个被传送过事务(在块84)的远程处理节点8的响应为止。在收到适当数量的响应(它们可以包括接收所请求的高速缓存行的副本)之后,节点控制器20在本地互连16上传送一个ReRun(重运行)请求,指示发请求的处理器10a重发读请求。如在块88中指出的那样,发请求的处理器10a通过在本地互连16上重发读请求事务来响应这个ReRun(重运行)请求。跟随AStat和AResp周期,该读请求在块90得到服务:或者由节点控制器20提供从一远程处理节点8收到的所请求高速缓存行的副本,或者由处理节点8a中的另一本地窥探器(例如存储器控制器17或高速缓存14)对所请求的高速缓存行寻源。然后,该过程在块150终止。
现在参考块100,如果处理节点8a的节点控制器20确定处理节点8a不是所请求高速缓存行的主节点,则节点控制器20推测地把读请求事务传送到作为所请求高速缓存行主节点的远程处理节点8。如图3A指出的那样,由节点控制器20传送读请求至少是与AStatIn周期并发,而且最好是在从仲裁器24收到AStatIn表决结果之后和在ARespOut周期之前立即传送。当读请求被传送时,待决缓存器60中的读条目状态被更新为ReRun(重运行)。然后,如块102所示,窥探器提供它们的表决结果,而仲裁器编译这些结果以产生AStatIn表决结果。然后,如块110及其后各块所示,主节点提供一个对该读请求的响应,而节点控制器20根据处理节点8a处对该读请求的AStatIn表决结果处置这一响应。
如果该ARespIn表决结果是Retry(重试),该读请求基本上在处理节点8a被杀掉。这样,为了响应收到一个ARespIn Retry(重试)表决结果,在待决缓存器60中分配的读和写条目的状态被更新为Null(空)。然后过程穿过块110到达块112和114,它们描述节点控制器20等待来自主节点的所请求的高速缓存行并当收到后废弃该高速缓存行以响应待决缓存器60中该读条目的Null(空)状态。
如果ARespIn表决结果是“修正的”干预,则该读请求可在本地的处理节点8a中得到服务,无需利用来自主节点的(陈旧的)数据。这样,为响应收到一个ARespIn Modified(修正的)干预表决结果,待决缓存器60中该读条目的状态被更新为Null(空),于是过程从块102穿过块110和120进到块122。块122说明,在ARespOut周期表决为Modified(修正的)干预的那个窥探器在处理节点8a的本地互连16上对所请求的高速缓存行寻源。然后,在对所请求的高速缓存行寻源的窥探器处所请求的高速缓存行的相干性状态从Modified(修正的)更新为Shared(共享的)。为响应收到所请求的高速缓存行,发请求的处理器10a把所请求的高速缓存行加载到它的高速缓存分层结构14,如块124所示。此外,如块126所示,节点控制器捕获离开本地互连16的所请求高速缓存行,并向主节点发出含有该高速缓存行的带清除的写事务,以便用这修正的高速缓存行更新该主节点的***存储器18。然后过程进到块112,这已经描述过了。
由计算机***6实现的相干性协议可以任选地支持共享干预,即由持有处于Shared(共享的)状态的所请求高速缓存行的本地高速缓存分层结构14提供读请求事务服务。如果共享干预是由计算机***6的高速缓存相干性协议支持的,而是该请求事务的ARespIn表决结果是Shared(共享的)(即“共享的”干预),则表决为Shared(共享的)的窥探器在本地互连16上对所请求的高速缓存行寻源,如块132所示。为响应收到所请求的高速缓存行,发请求的处理器10a把所请求的高速缓存行加载到它的高速缓存分层结构14中,如块134所示。由于不需要对***存储器18进行更新,分配在待决缓存器60中的读和写条目的状态被更新为Null(空),于是过程在块150终止。
最后,如果在处理节点8a处对该请求事务的ARespIn表决结果为ReRun(重运行),则待决缓存器60中写条目的状态被更新为Null(空),而读条目的状态设置为ReRun(重运行)。然后,过程从块102穿过块110、120、130到达块142,它描述处理节点8a的节点控制器20等待直至从主节点收到所请求的高速缓存行。为响应经由节点互连22收到来自主节点的所请求的高速缓存行,节点控制器20经由本地互连16把所请求的高速缓存行传送到发请求的处理器10a,如块144所示。为响应收到所请求的高速缓存行,发请求的处理器10a把所请求的高速缓存行加载到它的高速缓存分层结构14中,如块146所示。然后,过程在块150终止。
现在参考图3B,图中描绘了一个高层逻辑流程图,显示主节点如何处理从另一处理节点接收的一个事务。如图所示,过程在块160开始,然后进到块162,它说明确定主节点是否已经通过节点互连22收到了来自另一处理节点的事务。如果不是,则过程在块162简单地循环,直至从另一处理节点8收到一个事务。为响应主节点的节点控制器20从一远程处理节点8收到一个事务,过程进到块164,它描述主节点的节点控制器20在主节点的本地互连16上传送在块162中收到的事务,如决策块170所指出的那样,如果在本地互连16上发布的事务是一个读事务,则过程地行到块172,它说明该读请求由一窥探器提供服务,该窥探器向主节点的节点控制器20提供所请求的高速缓存行的一个副本。为响应收到了所请求的高速缓存行,节点控制器20把所请求的高速缓存行经由节点互连22传送到发请求的处理节点8,如块174所示。然后,过程在块190终止。
回到块164,如果在主节点的本地互连16上传送的事务是写(例如带清除的写)事务,则过程穿过170和180进到块184,它说明存储器控制器17以写事务中包含的高速缓存行更新***存储器18。然后,过程在块180终止。如果在主节点的本地互连16上传送的事务既不是读事务也不是写事务,则主节点进行块182处的事务所指出的行动,然后过程在块190终止。为响应读或写事务以外的其他事务可能进行的行动包括例如更新主节点高速缓存分层结构14中保持的高速缓存行的相干性状态。
现在参考图4A—4D,图中描绘了根据本发明的处理过程示例。为了清楚,下面对处理过程示例的解释利用计算机***6的一个简化表示,它有两个处理节点8a和8b,每个含有两个处理器10a和10b。所请求的高速缓存行的相干性状态在每个处理器10的高速缓存分层结构14内和在主节点8a的相干性目录50内指出。
如图4A中指出的那样,处理节点8b的处理器10b首先发出对一高速缓存行的读请求,那个高速缓存行在其高速缓存分层结构14中是Invalid(无效的)(即未驻留)。为响应对该读请求的接收,处理节点8b的节点控制器推测地把读请求传送处理节点8a,它是在读请求中指定的该高速缓存行的主节点。当读请求被推测地传递到处理节点8a时,处理器10a在ARespOut周期期间表决为Modified(修正的)干预,因为它的高速缓存分层结构14持有处于Modified(修正的)状态的所请求的高速缓存行。处理节点8b的仲裁器编译ARespOut表决结果并向处理节点8b中的每个窥探器提供一个Modified(修正的)干预ARespIn表决结果。
接下来,如图4B中所示,处理节点8a的节点控制器20接收这个被推测地传递的读请求并在它的本地互连16上发布该请求。如图4B中指出的那样,节点控制器20在AResp Out周期期间表决为Null(空)以响应相干性目录50,表明读请求中指定的高速缓存行在处理节点8b为Modified(修正的)。节点控制器20承认这个特殊状态,这允许该读请求继续进行,如下文中针对图4D所讨论的那样。
如图4C中所示,独立于向处理节点8a推测地传送请求(而且可能在此传送之前、同时或之后),处理节点8b的处理器10a对该读请求作出响应:即在本机互连16上对所请求的高速缓存行寻源,并把所请求的高速缓存行在其高速缓存分层结构14中的相干性状态更新为Shared(共享的)。为响应窥探到了所请求的高速缓存行,发请求的处理器10b把所请求的高速缓存行加载到它的高速缓存分层结构14并把相应的相干性状态设置为Shared(共享的)。此外,处理节点8b的节点控制器20捕获该高速缓存行并向处理节点8a发出一个含有此修正过的高速缓存行的带清除的写事务。为响应收到这带清除的写事务,处理节点8a的节点控制器20通过其本地互连16向***存储器18发出这带清除的写。然后主节点8a的***存储器18用这修正的数据更新相应的存储器行。
现在参考图4D,独立于图4A中所示存储器更新(而且可能在这更新之前、同时或之后),处理节点8a的***存储器18对该读请求作出响应:即通过本地互连16寻到所请求的高速缓存行的一个可能的陈旧副本源于处理节点8a的节点控制器20。于是处理节点8a的节点控制器20把所请求的高速缓存行的这个副本传送到处理节点8b的节点控制器20,它抛弃该高速缓存行以响应在其待决缓存器60中被标为Null(空)的读请求。
如已描述的那样,本发明提供了一种改进的NUMA计算机***和在NUMA计算机***中的一种改进的通信方法。根据本发明,在确定一读请求是否能在本地得到服务而无需远程处理器干预之前,通过节点互连该读请求被推测地发布到一个远程处理节点(即主节点)。当该远程处理节点响应这一推测地传送的读请求时,发请求的处理节点根据该读请求的本地相干性响应来处置远程处理节点的响应。以这种方式,通信事务的延时能显著地减小。
还如已描述的那样,本发明提供了一个非均匀存储器访问(NUMA)计算机***,它包括至少一个本地处理节点和一个远程处理节点,它们每个连到一个节点互连上。本地处理节点包括一个本地互连,与该本地互连连接的一个处理器和一个***存储器,以及放在本地互连和节点互连之间的一个节点控制器。为响应收到一个来自本地互连的读请求,节点控制器通过节点互连把该读请求推测地传送到远程处理节点。然后,为响应收到来自该远程处理节点的对该读请求的响应,该节点控制器根据该本发处理节点处该读请求的分辨力(resolution)处置这个来自远程处理节点的响应。例如,在一个处理过程中,在从远程处理节点收到的响应中包含的数据被该节点控制器抛弃,如果该读请求在本地处理节点处接收一个Modified Intervention(修正的干预)相干性响应的话。
Claims (12)
1.一个计算机***,包含:
一个节点互连,以及至少一个本地处理节点和一个远程处理节点,它们每个都连到所述节点互连上,所述本地处理节点包括一个本地互连,与本地互连相连的一个处理器和一个***存储器,以及一个节点控制器放在所述本地互连和节点互连之间,其中所述节点控制器推测地把从所述本地互连接收的请求事务经由所述节点互连传送到所述远程处理节点,而且其中所述节点控制器根据在所述本地处理节点处所述请求事务的分辨力,处理从所述远程处理节点处接收的对所述请求事务的响应。
2.权利要求1的计算机***,其中所述远程处理节点进一步包含一个本地互连以及一个放在所述节点互连和所述本地互连之间的一个节点控制器,其中为响应收到所述推测的请求事务,所述远程处理节点的节点控制器在所述远程处理节点的本地互连上发出所述推测的请求事务。
3.权利要求1的计算机***,其中:
所述计算机***进一步包含第三个处理节点:
所述请求事务包括一个地址;以及
所述第一处理节点的节点控制器至少是部分地响应所述请求事务中包括的所述地址,确定所述推测地传送的请求事务的一个目标处理节点。
4.权利要求1的计算机***,其中所述本地处理节点的所述节点控制器抛弃响应所述请求事务而从所述远程节点接收的数据,如果所述请求事务在所述本地处理节点收到一个修正的或共享的干预相干性响应的话。
5.权利要求1的计算机***,所述远程处理节点包括一个***存储器,其中所述本地处理节点的节点控制器推测地把所述请求事务传送到所述远程处理节点,以响应确定了所述请求事务指定了一个与所述远程处理节点处的***存储器相关联的地址。
6.权利要求1的计算机***,其中所述本地处理节点的节点控制器把从所述远程处理节点接收的数据之源放到所述本地处理节点的本地互连上,如果所述请求事务在所述本地处理节点收到一个相干性响应,指出所述请求事务不能在本地得到服务的话。
7.一种在计算机***中的通信方法,该计算机***包括一个节点互连,该节点互连至少连接一个本地处理节点和一个远程处理节点,所述本地处理节点包括一个本地互连,与本地互连相连的一个处理器和一个***存储器,以及一个节点控制器放在所述本地互连和所述节点互连之间,所述方法包含:
经由所述节点互连推测地把从所述本地互连接收的请求事务传送到所述远程处理节点;以及
在所述本地处理节点,从所述远程处理节点接收一个对所述请求事务的响应,为响应这一接收,根据所述本地处理节点处所述请求事务的分辨力,处理所述对该请求事务的响应。
8.权利要求7的方法,进一步包含:
为响应在所述远程处理节点处收到所述推测的请求事务,在所述远程处理节点的本地互连上发出所述推测的请求事务。
9.权利要求7的方法,其中所述计算机***进一步包括第三个处理节点,而且所述请求事务包括一个地址,所述方法进一步包含:
至少是部分地响应所述请求事务中包括的所述地址,确定所述推测地传送的请求事务的一个目标处理节点。
10.权利要求7的方法,其中处理所述响应包含抛弃从所述远程节点接收的数据,如果所述请求事务在所述本地处理节点处接收一个修正的或共享的干预相干性响应的话。
11.权利要求7的方法,所述远程处理节点包括一个***存储器,其中推测地传送一个请求事务包含向所述远程处理节点推测地传送所述请求事务,以响应确定所述请求事务指定了一个与所述远程处理节点处的***存储器相关联的地址。
12.权利要求7的方法,其中处理所述响应包含把从所述远程节点接收的数据放到所述本地处理节点的本地互连上,如果所述请求事务在所述本地处理节点收到一个相干性响应,指出所述请求事务不能在本地得到服务的话。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/211,351 | 1998-12-15 | ||
US09/211,351 US6338122B1 (en) | 1998-12-15 | 1998-12-15 | Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1330783A true CN1330783A (zh) | 2002-01-09 |
CN1157659C CN1157659C (zh) | 2004-07-14 |
Family
ID=22786571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998144436A Expired - Fee Related CN1157659C (zh) | 1998-12-15 | 1999-12-10 | 非均匀存储器访问数据处理***及其通信方法 |
Country Status (16)
Country | Link |
---|---|
US (1) | US6338122B1 (zh) |
EP (1) | EP1153349B1 (zh) |
KR (1) | KR100465583B1 (zh) |
CN (1) | CN1157659C (zh) |
AT (1) | ATE236431T1 (zh) |
AU (1) | AU1672500A (zh) |
CA (1) | CA2349569C (zh) |
CZ (1) | CZ20012153A3 (zh) |
DE (1) | DE69906585T2 (zh) |
ES (1) | ES2196893T3 (zh) |
HU (1) | HUP0104577A3 (zh) |
IL (2) | IL142265A0 (zh) |
PL (1) | PL348859A1 (zh) |
RU (1) | RU2220444C2 (zh) |
TW (1) | TW446883B (zh) |
WO (1) | WO2000036514A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102439571A (zh) * | 2011-10-27 | 2012-05-02 | 华为技术有限公司 | 一种防止节点控制器死锁的方法及节点控制器 |
CN108829614A (zh) * | 2014-12-23 | 2018-11-16 | 英特尔公司 | 缓冲存储器中的推测性读 |
CN112074822A (zh) * | 2018-05-03 | 2020-12-11 | Arm有限公司 | 具有针对流式数据传输的流压缩的数据处理网络 |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69806812T2 (de) * | 1997-12-19 | 2003-03-13 | Unilever N.V., Rotterdam | Olivenöl enthaltende nahrungsmittelzusammensetzung |
US6546429B1 (en) * | 1998-09-21 | 2003-04-08 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry |
US6591307B1 (en) * | 1999-11-09 | 2003-07-08 | International Business Machines Corporation | Multi-node data processing system and method of queue management in which a queued operation is speculatively cancelled in response to a partial combined response |
JP2001167077A (ja) * | 1999-12-09 | 2001-06-22 | Nec Kofu Ltd | ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体 |
US6915387B1 (en) | 2000-07-20 | 2005-07-05 | Silicon Graphics, Inc. | System and method for handling updates to memory in a distributed shared memory system |
US8635410B1 (en) | 2000-07-20 | 2014-01-21 | Silicon Graphics International, Corp. | System and method for removing data from processor caches in a distributed multi-processor computer system |
US6678798B1 (en) * | 2000-07-20 | 2004-01-13 | Silicon Graphics, Inc. | System and method for reducing memory latency during read requests |
US6938128B1 (en) | 2000-07-20 | 2005-08-30 | Silicon Graphics, Inc. | System and method for reducing memory latency during read requests |
US6810467B1 (en) * | 2000-08-21 | 2004-10-26 | Intel Corporation | Method and apparatus for centralized snoop filtering |
US20020078118A1 (en) * | 2000-12-19 | 2002-06-20 | Cone Robert W. | Network interface application specific integrated circuit to allow direct attachment for an appliance,such as a printer device |
US7234029B2 (en) * | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
US6799217B2 (en) * | 2001-06-04 | 2004-09-28 | Fujitsu Limited | Shared memory multiprocessor expansion port for multi-node systems |
US7394823B2 (en) * | 2001-11-20 | 2008-07-01 | Broadcom Corporation | System having configurable interfaces for flexible system configurations |
US7206879B2 (en) * | 2001-11-20 | 2007-04-17 | Broadcom Corporation | Systems using mix of packet, coherent, and noncoherent traffic to optimize transmission between systems |
US6748479B2 (en) * | 2001-11-20 | 2004-06-08 | Broadcom Corporation | System having interfaces and switch that separates coherent and packet traffic |
DE50113128D1 (de) * | 2001-12-03 | 2007-11-22 | Infineon Technologies Ag | Datenübertragungseinrichtung |
US6959372B1 (en) * | 2002-02-19 | 2005-10-25 | Cogent Chipware Inc. | Processor cluster architecture and associated parallel processing methods |
US7085866B1 (en) * | 2002-02-19 | 2006-08-01 | Hobson Richard F | Hierarchical bus structure and memory access protocol for multiprocessor systems |
US7103725B2 (en) * | 2002-03-22 | 2006-09-05 | Newisys, Inc. | Methods and apparatus for speculative probing with early completion and delayed request |
US7107409B2 (en) * | 2002-03-22 | 2006-09-12 | Newisys, Inc. | Methods and apparatus for speculative probing at a request cluster |
US7107408B2 (en) * | 2002-03-22 | 2006-09-12 | Newisys, Inc. | Methods and apparatus for speculative probing with early completion and early request |
US7395379B2 (en) * | 2002-05-13 | 2008-07-01 | Newisys, Inc. | Methods and apparatus for responding to a request cluster |
US7653790B2 (en) * | 2002-05-13 | 2010-01-26 | Glasco David B | Methods and apparatus for responding to a request cluster |
US6965973B2 (en) * | 2002-05-15 | 2005-11-15 | Broadcom Corporation | Remote line directory which covers subset of shareable CC-NUMA memory space |
US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
US6993631B2 (en) * | 2002-05-15 | 2006-01-31 | Broadcom Corporation | L2 cache maintaining local ownership of remote coherency blocks |
US7003631B2 (en) * | 2002-05-15 | 2006-02-21 | Broadcom Corporation | System having address-based intranode coherency and data-based internode coherency |
US7103636B2 (en) * | 2002-05-28 | 2006-09-05 | Newisys, Inc. | Methods and apparatus for speculative probing of a remote cluster |
US6865595B2 (en) * | 2002-05-28 | 2005-03-08 | Newisys, Inc. | Methods and apparatus for speculative probing of a remote cluster |
US7155525B2 (en) * | 2002-05-28 | 2006-12-26 | Newisys, Inc. | Transaction management in systems having multiple multi-processor clusters |
US7281055B2 (en) * | 2002-05-28 | 2007-10-09 | Newisys, Inc. | Routing mechanisms in systems having multiple multi-processor clusters |
US7251698B2 (en) * | 2002-05-28 | 2007-07-31 | Newisys, Inc. | Address space management in systems having multiple multi-processor clusters |
US6959364B2 (en) * | 2002-06-28 | 2005-10-25 | Intel Corporation | Partially inclusive snoop filter |
US7346744B1 (en) | 2002-11-04 | 2008-03-18 | Newisys, Inc. | Methods and apparatus for maintaining remote cluster state information |
US7296121B2 (en) * | 2002-11-04 | 2007-11-13 | Newisys, Inc. | Reducing probe traffic in multiprocessor systems |
US7003633B2 (en) * | 2002-11-04 | 2006-02-21 | Newisys, Inc. | Methods and apparatus for managing probe requests |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
US7577755B2 (en) * | 2002-11-19 | 2009-08-18 | Newisys, Inc. | Methods and apparatus for distributing system management signals |
EP1426866A1 (en) * | 2002-12-06 | 2004-06-09 | Sun Microsystems, Inc. | A method to reduce memory latencies by performing two levels of speculation |
US7917646B2 (en) * | 2002-12-19 | 2011-03-29 | Intel Corporation | Speculative distributed conflict resolution for a cache coherency protocol |
US7111128B2 (en) | 2002-12-19 | 2006-09-19 | Intel Corporation | Hierarchical virtual model of a cache hierarchy in a multiprocessor system |
US7334089B2 (en) * | 2003-05-20 | 2008-02-19 | Newisys, Inc. | Methods and apparatus for providing cache state information |
US7386626B2 (en) * | 2003-06-23 | 2008-06-10 | Newisys, Inc. | Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems |
US7337279B2 (en) * | 2003-06-27 | 2008-02-26 | Newisys, Inc. | Methods and apparatus for sending targeted probes |
US7577727B2 (en) * | 2003-06-27 | 2009-08-18 | Newisys, Inc. | Dynamic multiple cluster system reconfiguration |
US7395347B2 (en) * | 2003-08-05 | 2008-07-01 | Newisys, Inc, | Communication between and within multi-processor clusters of multi-cluster computer systems |
US7117419B2 (en) * | 2003-08-05 | 2006-10-03 | Newisys, Inc. | Reliable communication between multi-processor clusters of multi-cluster computer systems |
US7103823B2 (en) | 2003-08-05 | 2006-09-05 | Newisys, Inc. | Communication between multi-processor clusters of multi-cluster computer systems |
US7159137B2 (en) * | 2003-08-05 | 2007-01-02 | Newisys, Inc. | Synchronized communication between multi-processor clusters of multi-cluster computer systems |
US20050262250A1 (en) * | 2004-04-27 | 2005-11-24 | Batson Brannon J | Messaging protocol |
US7822929B2 (en) * | 2004-04-27 | 2010-10-26 | Intel Corporation | Two-hop cache coherency protocol |
US20050240734A1 (en) * | 2004-04-27 | 2005-10-27 | Batson Brannon J | Cache coherence protocol |
US7395381B2 (en) * | 2005-03-18 | 2008-07-01 | Intel Corporation | Method and an apparatus to reduce network utilization in a multiprocessor system |
US8037465B2 (en) * | 2005-09-30 | 2011-10-11 | Intel Corporation | Thread-data affinity optimization using compiler |
US20110004732A1 (en) * | 2007-06-06 | 2011-01-06 | 3Leaf Networks, Inc. | DMA in Distributed Shared Memory System |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
JP5553111B2 (ja) * | 2010-09-02 | 2014-07-16 | 富士通株式会社 | ノードコントローラ、ノードコントローラの制御方法及びコンピュータシステム |
US8635412B1 (en) | 2010-09-09 | 2014-01-21 | Western Digital Technologies, Inc. | Inter-processor communication |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
US9158670B1 (en) | 2011-06-30 | 2015-10-13 | Western Digital Technologies, Inc. | System and method for dynamically adjusting garbage collection policies in solid-state memory |
US9619303B2 (en) | 2012-04-11 | 2017-04-11 | Hewlett Packard Enterprise Development Lp | Prioritized conflict handling in a system |
US9465740B2 (en) | 2013-04-11 | 2016-10-11 | Apple Inc. | Coherence processing with pre-kill mechanism to avoid duplicated transaction identifiers |
US9925492B2 (en) * | 2014-03-24 | 2018-03-27 | Mellanox Technologies, Ltd. | Remote transactional memory |
FR3021773B1 (fr) * | 2014-05-27 | 2017-10-06 | Bull Sas | Interrogation speculative en memoire centrale d'un systeme multiprocesseur |
US10642780B2 (en) | 2016-03-07 | 2020-05-05 | Mellanox Technologies, Ltd. | Atomic access to object pool over RDMA transport network |
US10552367B2 (en) | 2017-07-26 | 2020-02-04 | Mellanox Technologies, Ltd. | Network data transactions using posted and non-posted operations |
US10613980B2 (en) * | 2017-12-19 | 2020-04-07 | International Business Machines Corporation | Coherence protocol providing speculative coherence response to directory probe |
US10579527B2 (en) | 2018-01-17 | 2020-03-03 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10713169B2 (en) | 2018-01-17 | 2020-07-14 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10387310B2 (en) | 2018-01-17 | 2019-08-20 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US11068407B2 (en) | 2018-10-26 | 2021-07-20 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction |
US10884740B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads |
US11119781B2 (en) | 2018-12-11 | 2021-09-14 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US11106608B1 (en) | 2020-06-22 | 2021-08-31 | International Business Machines Corporation | Synchronizing access to shared memory by extending protection for a target address of a store-conditional request |
US11693776B2 (en) | 2021-06-18 | 2023-07-04 | International Business Machines Corporation | Variable protection window extension for a target address of a store-conditional request |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02205963A (ja) | 1989-01-27 | 1990-08-15 | Digital Equip Corp <Dec> | 読取中断処理 |
JPH06282528A (ja) | 1993-01-29 | 1994-10-07 | Internatl Business Mach Corp <Ibm> | データ転送方法及びそのシステム |
US5950226A (en) * | 1996-07-01 | 1999-09-07 | Sun Microsystems, Inc. | Multiprocessing system employing a three-hop communication protocol |
US5958019A (en) * | 1996-07-01 | 1999-09-28 | Sun Microsystems, Inc. | Multiprocessing system configured to perform synchronization operations |
US5878268A (en) | 1996-07-01 | 1999-03-02 | Sun Microsystems, Inc. | Multiprocessing system configured to store coherency state within multiple subnodes of a processing node |
US5892970A (en) * | 1996-07-01 | 1999-04-06 | Sun Microsystems, Inc. | Multiprocessing system configured to perform efficient block copy operations |
US5754877A (en) * | 1996-07-02 | 1998-05-19 | Sun Microsystems, Inc. | Extended symmetrical multiprocessor architecture |
-
1998
- 1998-12-15 US US09/211,351 patent/US6338122B1/en not_active Expired - Fee Related
-
1999
- 1999-12-10 HU HU0104577A patent/HUP0104577A3/hu unknown
- 1999-12-10 PL PL99348859A patent/PL348859A1/xx unknown
- 1999-12-10 CZ CZ20012153A patent/CZ20012153A3/cs unknown
- 1999-12-10 DE DE69906585T patent/DE69906585T2/de not_active Expired - Lifetime
- 1999-12-10 RU RU2001119159/09A patent/RU2220444C2/ru not_active IP Right Cessation
- 1999-12-10 WO PCT/GB1999/004204 patent/WO2000036514A1/en active IP Right Grant
- 1999-12-10 KR KR10-2001-7007362A patent/KR100465583B1/ko not_active IP Right Cessation
- 1999-12-10 CA CA002349569A patent/CA2349569C/en not_active Expired - Fee Related
- 1999-12-10 ES ES99959592T patent/ES2196893T3/es not_active Expired - Lifetime
- 1999-12-10 EP EP99959592A patent/EP1153349B1/en not_active Expired - Lifetime
- 1999-12-10 CN CNB998144436A patent/CN1157659C/zh not_active Expired - Fee Related
- 1999-12-10 TW TW088121663A patent/TW446883B/zh not_active IP Right Cessation
- 1999-12-10 AT AT99959592T patent/ATE236431T1/de not_active IP Right Cessation
- 1999-12-10 AU AU16725/00A patent/AU1672500A/en not_active Abandoned
- 1999-12-10 IL IL14226599A patent/IL142265A0/xx not_active IP Right Cessation
-
2001
- 2001-03-26 IL IL142265A patent/IL142265A/en unknown
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102439571A (zh) * | 2011-10-27 | 2012-05-02 | 华为技术有限公司 | 一种防止节点控制器死锁的方法及节点控制器 |
CN108829614A (zh) * | 2014-12-23 | 2018-11-16 | 英特尔公司 | 缓冲存储器中的推测性读 |
CN112074822A (zh) * | 2018-05-03 | 2020-12-11 | Arm有限公司 | 具有针对流式数据传输的流压缩的数据处理网络 |
CN112074822B (zh) * | 2018-05-03 | 2024-06-11 | Arm有限公司 | 具有针对流式数据传输的流压缩的数据处理装置 |
Also Published As
Publication number | Publication date |
---|---|
CA2349569C (en) | 2005-04-05 |
EP1153349A1 (en) | 2001-11-14 |
AU1672500A (en) | 2000-07-03 |
HUP0104577A3 (en) | 2003-11-28 |
EP1153349B1 (en) | 2003-04-02 |
TW446883B (en) | 2001-07-21 |
CA2349569A1 (en) | 2000-06-22 |
US6338122B1 (en) | 2002-01-08 |
CN1157659C (zh) | 2004-07-14 |
WO2000036514A1 (en) | 2000-06-22 |
IL142265A (en) | 2007-06-03 |
KR100465583B1 (ko) | 2005-01-13 |
KR20010101193A (ko) | 2001-11-14 |
CZ20012153A3 (cs) | 2001-09-12 |
ES2196893T3 (es) | 2003-12-16 |
IL142265A0 (en) | 2002-03-10 |
ATE236431T1 (de) | 2003-04-15 |
DE69906585T2 (de) | 2004-02-12 |
PL348859A1 (en) | 2002-06-17 |
HUP0104577A2 (hu) | 2002-03-28 |
RU2220444C2 (ru) | 2003-12-27 |
DE69906585D1 (de) | 2003-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1157659C (zh) | 非均匀存储器访问数据处理***及其通信方法 | |
CN1116643C (zh) | 具有共享干预支持的非均匀存储器访问数据处理***及方法 | |
CN100520738C (zh) | 更新无效一致状态的方法、数据处理***和高速缓存*** | |
CN1116642C (zh) | 避免由于取消事务处理造成数据丢失的方法和*** | |
CN101625664B (zh) | 满足部分写和非监听存取之间的存储器排序要求 | |
CN100428195C (zh) | 数据处理***和方法 | |
CN1156771C (zh) | 用于在非均匀存储器存取计算机***内提供逐出协议的方法和*** | |
US6108764A (en) | Non-uniform memory access (NUMA) data processing system with multiple caches concurrently holding data in a recent state from which data can be sourced by shared intervention | |
US6279084B1 (en) | Shadow commands to optimize sequencing of requests in a switch-based multi-processor system | |
CN100394406C (zh) | 用于高速缓存分配的方法和设备 | |
US6816947B1 (en) | System and method for memory arbitration | |
CN1786927B (zh) | 应用层高速缓存映像知晓和再分配的***和方法 | |
JPH10187645A (ja) | プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム | |
JPH10143483A (ja) | ミグラトリ・データ・アクセス・パターンを検出し、効果的に提供するように構成されたマルチプロセスシステム | |
CN1116641C (zh) | 用于避免因冲突的失效事务而造成的活锁的方法和*** | |
JPH10149342A (ja) | プリフェッチ動作を実行するマルチプロセス・システム | |
CN100495360C (zh) | 数据处理的单元、***和方法 | |
JPH1185710A (ja) | サーバ装置およびファイル管理方法 | |
JP2005539282A (ja) | 単一のコヒーレントなシステム内の分散コンピュータ・ノードにキャッシュ・コヒーレンスを提供するのにグローバル・スヌープを使用する方法および装置 | |
US7000080B2 (en) | Channel-based late race resolution mechanism for a computer system | |
CN1829988A (zh) | 无共享数据库***中的单相提交 | |
CN102959529A (zh) | 用于缓存的网络的广播协议 | |
US6687795B2 (en) | Data processing system and method of communication that reduce latency of write transactions subject to retry | |
US7769959B2 (en) | System and method to facilitate ordering point migration to memory | |
US10713169B2 (en) | Remote node broadcast of requests in a multinode data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
C10 | Entry into substantive examination | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040714 Termination date: 20100111 |