CN1156771C - 用于在非均匀存储器存取计算机系统内提供逐出协议的方法和系统 - Google Patents
用于在非均匀存储器存取计算机系统内提供逐出协议的方法和系统 Download PDFInfo
- Publication number
- CN1156771C CN1156771C CNB991270614A CN99127061A CN1156771C CN 1156771 C CN1156771 C CN 1156771C CN B991270614 A CNB991270614 A CN B991270614A CN 99127061 A CN99127061 A CN 99127061A CN 1156771 C CN1156771 C CN 1156771C
- Authority
- CN
- China
- Prior art keywords
- node
- request
- intervention
- affairs
- sparse
- 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
Images
Classifications
-
- 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
- G06F12/082—Associative directories
-
- 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/12—Replacement 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)
Abstract
公开一种用于在非均匀存储器访问计算机系统内提供逐出协议的方法和系统。在项目涉及修改高速缓冲存储器行时,响应用于从稀疏目录中逐出一个项目的请求,把非干预性回写请求送到一个具有修改高速缓冲存储器行的节点。在已把来自修改高速缓冲存储器行的数据回写到节点的局部系统存储器以后,就能从稀疏目录中逐出该项目。如果项目涉及共用行,就把失效请求送到全部节点,从而目录项目指示可保持该行的复制品。一旦确认全部失效,就能从稀疏目录中逐出该项目。
Description
技术领域
一般说来,本发明涉及一种用于数据处理的方法和系统,具体地说,涉及一种用于给稀疏目录提供一个逐出协议的方法和系统。更具体地说,本发明涉及一种用于在非均匀存储器访问计算机系统内从稀疏目录中逐出一个高速缓冲存储器界线的方法和系统。
背景技术
众所周知,在计算机技术方面,可通过把若干个单独处理机的处理能力组合成一个多处理机(MP)系统,实现更大的计算机系统性能。可用一些不同的拓扑结构来设计MP计算机系统,这取决于特定应用的性能要求。例如,对称多处理机(SMP)结构是一种常用的较简单的MP计算机系统拓扑结构,其中象系统存储器之类的资源是由多个处理机共享的。拓扑结构名称“对称”是基于事实:在SMP计算机系统内的全部处理机可对称地访问该系统内的全部资源。
虽然SMP拓扑结构允许使用相对简单的处理机间通信和数据共享协议,但总的说来,SMP拓扑结构具有一个有限的可扩充性和带宽,尤其是在系统规模扩大时的系统存储器级别情况下更是如此。结果,叫作非均匀存储访问(NUMA)的另一种MP计算机系统拓扑结构已作为一种替代设计而出现,该设计以某种附加复杂性为代价,消除SMP拓扑结构的许多限制。
一种典型的NUMA计算机系统包括一些互连的节点。每个节点包括至少一个处理机和一个局部“系统”存储器。NUMA拓扑结构名称基于事实:一个处理机在其局部节点对系统存储器中所存储数据的访问等待时间,小于在其远程节点对系统存储器中所存储数据的访问等待时间。NUMA计算机系统能进一步分成非高速缓冲存储器相关和高速缓冲存储器相关两类,这取决于是否在不同节点的高速缓冲存储器中保持数据的相关性。NUMA拓扑结构通过使NUMA计算机系统内的每个节点都起一个较小的SMP系统的作用,消除常规SMP拓扑结构的可扩充性的限制。这样,每个节点内的共享部件由于只供几个处理机使用而能最佳化,而整个系统则由于比较小的等待时间而得益于较大规模并行操作的有效利用率。
在NUMA计算机系统内有几个问题,它们涉及用于稀疏目录的逐出协议的开发。第一个问题起因于为逐出而选择的项目的管理,第二个问题起因于用来使逐出发生的远程事务处理的生成,和第三个问题起因于生成一个事务处理,使数据实际回写到局部存储器。因此,希望提供一种改进的方法,用于在NUMA计算机系统内从稀疏目录中逐出一个高速缓冲存储器界线(cache line)。
发明内容
本发明提供了一个逐出协议的方法,该协议用于一个非均匀存储器访问计算机系统内的稀疏目录,其中所述的非均匀存储器访问计算机系统至少包括两个耦合于互连线的节点,所述至少两个节点中的每个节点都包括一个局部系统存储器,所述的方法包括:响应一个用于从稀疏目录中逐出一个项目的请求,其中所述项目涉及一个修改的高速缓冲存储器行,把一个非干预回写请求送到一个具有所述修改高速缓冲存储器行的节点;在来自所述修改高速缓冲存储器行的数据随后被写回到一个所述节点的局部系统存储器以后,从所述稀疏目录中逐出该项目。
本发明还提供了一种提供用于稀疏目录的逐出协议的非均匀存储器访问计算机,其中所述的非均匀存储器访问计算机系统至少包括两个耦合于互连线的节点,所述至少两个节点中的每个节点都包括一个局部系统存储器,所述的非均匀存储器访问计算机系统包括:用于响应一个用于从稀疏目录中逐出一个项目的请求,把一个非干预回写请求送到一个具有所述修改高速缓冲存储器行的节点的装置,其中所述项目涉及一个修改的高速缓冲存储器行;用于在来自所述修改高速缓冲存储器行的数据随后被写回到一个所述节点的局部系统存储器以后,从所述稀疏目录中逐出该项目的装置。
附图说明
在下面详细写出的描述中,会明白本发明的全部目的、特征和优点。
当结合附图阅读时,参考一个说明性实施例的下面详细描述,会最好地了解本发明自身、以及优选使用模式、它的进一步的目的和优点,在附图中:
图1是根据本发明优选实施例的非均匀存储器访问(NUMA)计算机系统的方块图;
图2a描述一个I-命令的说明性实施例;
图2b是图1所示节点控制器的更详细方块图;
图3是根据本发明优选实施例的用于稀疏目录的逐出逻辑的方块图;
图4是根据本发明优选实施例的稀疏目录内项目的方块图;和
图5根据本发明的优选实施例描述一个用于从NUMA计算机系统内稀疏目录中逐出一个高速缓冲存储器界线的方法的实例。
具体实施方式
I.NUMA系统
A.系统概述
现在参照诸图,尤其是图1,说明按照本发明一个优选实施例的非均匀存储器访问(NUMA)计算机系统的方块图。所描述的实施例能例如通过一个工作站、服务器或主计算机实现。如所示,NUMA计算机系统包括一些(N个)处理节点10a-10d,它们用互连线22来互连。每个处理节点10a-10d都包括至少一个,多达M个处理机。处理机12a-12d最好相同,并且可以包括一个在可从纽约阿尔莫克的国际商业机器公司(IBM公司)买到的处理机的power pcTM线路内的处理机。除了寄存器以外,指令流逻辑和执行部件也用来执行程序指令,每个处理机12a-12d还包括一个单片一级(L1)高速缓冲存储器(未示出),它与各个二极(L2)高速缓冲存储器14a-14d一起,用来把数据从系统存储器18移动到相关处理机12。换句话说,L1高速缓冲存储器和L2高速缓冲存储器14a-14d,在系统存储器18与暂时缓冲可能要由相关处理机12访问的数据的处理机12之间,起中间存储的作用。L2高速缓冲存储器14一般具有比L1缓冲存储器大得多的存储容量,但有较长的访问等待时间。例如,L2高速缓冲存储器14a-14d可以具有1-16兆字节(MB)的存储容量,而单片L1高速缓冲存储器可以具有8-32千字节的存储容量。虽然L2高速缓冲存储器14a-14d是作为处理机12的外部设备而示于图1中,但应当了解,L2高速缓冲存储器14a-14d也能够另外作为单片高速缓冲存储器的附加级而装入相关的处理机12内。此外,应当了解,能用一个或多个附加级的高速缓冲存储器(L3,L4等)去提供附加的数据存储。在下面的讨论中,认为每个处理机12及其相关高速缓冲存储器分级结构(L1,L2,等)是一个单探究器(snooper)。
如所示,处理节点10a-10d还包括一个相应的节点控制器20,它与系统存储器18和L2高速缓冲存储器14a-14d一起,耦合于局部互连线16。每个节点控制器20用作一个局部代理者,通过执行至少两个功能而用于远程处理节点10。首先,每个节点控制器20探究相关的局部互连线16,并且促进局部通信事务传送到远程处理节点10。其次,每个节点控制器20探究节点互连线22上的通信事务,并且控制相关局部互连线16上的相关通信事务。由一个仲裁器24控制每个局部互连线16上的通信。如下面进一步讨论的那样,仲裁器24根据由处理机12生成的总线请求信号,调节对局部互连线16的访问,并且编译用于局部互连线16上所探究通信事务的相关请求。
当然,NUMA计算机系统8可进一步包括一些不是了解本发明必需的附加设备,从而略去,以免遮蔽本发明。例如,每个节点10还可以装配I/O设备(比如显示设备,键盘,或图形指示器),用于存储操作系统和应用软件的非易失性存储器,和用于连接到网络或附属设备的串行和并行端口。
B.存储器结构
NUMA计算机系统8中全部处理机12都共用一个单独的物理存储器空间,这意味着每个物理地址都只涉及系统存储器18之一中一个单独的位置。这样,通常能够由NUMA计算机系统8中任一处理机12访问的系统存储器全部内容,能被看成是分区于4个系统存储器18之间的。例如,对于图1所示本发明说明性实施例来说,处理机12可寻址一个16吉字节的地址空间,该空间包括一个通用存储区和一个保留区。通用存储区被分成500兆字节段,每隔3个段分配4个处理节点10的每个节点。保留区可包含约2吉字节,包括一些系统控制和外围存储和I/O区,它们每一个都分配到处理节点10的每个相应节点。
对本讨论来说,处理节点在它的系统存储器18中存储一个特定数据,该节点被看成是用于这个数据的本地节点,而其它处理节点被看成是相对于该特定数据的远程节点。
C.存储器相关性
因为能用NUMA计算机系统8内任何处理机12请求、访问和修改每个系统存储器18内存储的数据,所以NUMA计算机系统8执行一个高速缓冲存储相关性协议,以便既在同一处理节点内的诸高速缓冲存储器之间又在不同处理节点内的诸高速缓冲存储器之间,保持相关性。这样,NUMA计算机系统8被适当地归入CC-NUMA计算机系统一类。所执行的高速缓冲存储相关性协议是执行一相关的,并且可以包括例如熟知的修改、独占、共用、无效(MESI)协议,或它的变体。在下文中,将假定,L1高速缓冲存储器,L2高速缓冲存储器14、和仲裁器24执行常规的MESI协议,其节点控制器20识别M.S和I状态,并且考虑把E状态合并成用于正确性的M状态。即,节点控制器20假定,由远程高速缓冲存储器独占地保存的数据是已被修改的,而不管该数据是否已被真正修改过。
D.互连结构
局部互连线16和节点互连线22皆可用任何基于总线的广播结构、基于开关的广播结构或基于开关的非广播结构来执行。然而,在一个优选实施例中,至少节点互连线22是作为基于开关的非广播互连线来执行的,该互连线由IBM公司开发的6XX通信协议来控制。局部互连线16和节点互连线22允许分离事务处理,这意味着在包括通信事务处理的地址与数据使用期间不存在固定的计时关系,并且数据包能够不同于相应地址包而排序。通过流水线通信事务处理,也可优选地提高局部互连线16和节点互连线22的利用率,这就允许随后的通信事务处理成为在以前通信事务处理主机从各个接收器接收相关性响应之前的源。
不管所执行的一种还是多种互连结构,都至少利用三种“包”(在此使用的包从种属上说指的是一种离散信息单元)-地址,数据,和相关性响应-来通过节点互连线22在诸处理节点10之间和通过局部互连线16在诸探究器之间,传送信息。现在参照表I和Ⅱ,分别对地址和数据包给出相关字段和定义的摘要。
表I
字段名 | 描 述 |
Address〈0∶7〉 | 限定用于相关性、写入通过方式、和保护的通信事务的属性的修饰语 |
Address〈8∶15〉 | 用来识别通信事务内的全部包的标记 |
Address〈16∶63〉 | 按请求指示物理、虚拟或I/O地址的地址部分 |
Aparity〈0∶2〉 | 指示用于地址位的奇偶性〈0∶63〉 |
TDescriptors | 指示通信事务的规模和类型 |
表II
字段名 | 描 述 |
Data〈0∶127〉 | 用于读和写事务的数据 |
Data parity〈0∶15〉 | 指示用于数据行的奇偶性〈0∶127〉 |
DTag〈0∶7〉 | 用来使数据包与地址包匹配的标记 |
DValid〈0∶1〉 | 在Data和DTag字段中存在有效信息时的指示 |
如表I和II所示,为了允许一个接收节点探究器确定每个包所属的通信事务,就用一个事务标记来识别通信事务处理中的每个包。本专业的技术人员会了解,可以利用附加的数据流控制逻辑和相关的数据流控制信号,去调节有限通信资源的利用。
在各个处理节点10内,状态和相关性响应交往于各个探究器与局部伸裁器24之间。在局部互连线16内用于状态和相关性通信的信号线,摘要于下表III中。
表III
信号名 | 描 述 |
AStatOut〈0∶1〉 | 由各总线接收器确认编码信号,以指示到仲裁器的流控制或错误信息 |
AStatIn〈0∶1〉 | 由仲裁器确认编码信号,以响应由总线接收器确认的AStatOut信号的计数 |
ARespOut〈0∶2〉 | 由各总线接收器确认编码信号,以指示到仲裁器的相关性信息 |
ARespIn〈0∶2〉 | 由仲裁器确认编码信号,以响应由总线接收器确认的ARespOut信号的计数 |
通过局部互连线16的AResp和AStat线路传送状态和相关性响应,最好具有一种与有关地址包的固定但可程序化的计时关系。例如,在地址包的第二循环后继接收中可能需要AStatOut表决数据库,它对是否各个探究器已经成功地收到一个在局部互连线16上传送的地址包,提供一个初步指示。仲裁器24编译AStatOut表决数据库,并且在固定但可编程数目的循环以后(例如1个循环以后),发布AStatIn表决。下面在表IV中摘要可能的AStat表决数据库。
表IV
AStat表决 | 意 义 |
零 | 空闲 |
确认 | 由探究器接收的事务 |
错 | 在事务处理中检测的奇偶错 |
重试 | 重试事务,常用于流控制 |
在后面的AStatIn时期,在固定但可编程数目的循环(例如2个循环)以后可能需要ARespOut表决数据库。仲裁器24还编辑各个探究器的ARespOut表决数据库,并且最好在下一个循环中交付一个ARespIn表决。可能的AResp表决数据库最好包括列于表V中的相关性响应,表V按照优先权降序列出这样的AResp表决数据库。
表V
相关性响应 | 意 义 |
重试 | 请求源必须重试事务-常用于流控制理由 |
修改干预 | 在高速缓冲存储器中修改行,并把该行从高速缓冲存储器转到请求者 |
共享干预 | 在高速缓冲存储器中不修改行(行可共享),并把该行从高速缓冲存储器转到请求者 |
ReRun | 所探究的请求具有长的等待时间,并且指令请求源在较后的时间重新发布事务处理 |
共享 | 在高速缓冲存储器中保持行被共享 |
零 | 在高速缓冲存储器中行无效 |
常由一个节点控制器20发布的ReRun AResp表决指示,所探究的请求具有长的等待时间(例如,该请求将由在远程处理节点的处理机12或系统存储器18来服务),并且指令该请求在较晚的时间重新发布事务处理。这样,和Retry AResp表决形成对比,一个ReRun使表决ReRun的事务的接收器(不是事务的发端器),负责引起通信事务在较晚的时间重新发布。
现在参看图2a,它说明I-命令的一个示记性实施例,利用I-命令在互连线22上的诸节点控制器20之间连通响应和命令。如所示,一个I-命令36包括5个字段:命令类型字段33,目标节点字段35,源节点字段37,事务标记字段38,和有效(V)字段39。命令类型字段33提供一个I-命令类型的编码指示36。下面在表VI中列出一些可能的I-命令,它们能在命令类型字段33内编码。
表VI
I-命令组 | I-命令类型 | 意 义 |
第3个节点运行 | 在第3个节点运行所缓冲的事务 | |
错误 | 在事务处理中检测的错误 | |
重新发布 | 向源节点重新发布事务 | |
相关性响应 | 重试 | 重试事务-常用于流控制理由 |
修改干预 | 在高速缓冲存储器中修改行,并把该行转到目标节点 | |
共享 | 在高速缓冲存储器中保持行被共享 | |
零 | 在高速缓冲存储器中行无效 |
对于每种I-命令,在目标节点字段35中指定接收器,在源节点字段37中指定发送节点,且在事务标记字段38内指定I-命令涉及的事务。由有效(V)字段39指示I~命令36的有效性。
E.节点控制器
现在参照2b,它说明图1的NUMA计算机系统8中的节点控制器20的更详细的方块图。如图2b所示,耦合于局部互连线16与节点互连线22之间的各个节点控制器20皆包括事务接收单元(TRU)40,事务发送单元(TSU)42,数据接收单元(DRU)44,和数据发送单元46。TRU 40、TSU 42、DRU 44和DSU 46能够例如用字段可编程门阵列(FPGAs)或应用特定积分电路(ASICs)来执行。如所示,通过节点控制器20的地址和数据通路是分为二支的,地址信号由TRU 40和TSU 42处理,而数据信号由DSU 44和DRU 46处理。
TRU 40是如此指定,以致于指示节点互连线22的事务流出,它负责通过一个I-命令通道从其他节点接收I-命令,从节点互连线22的共用地址总线接受事务,在局部互连线16上发布事务,向TSU发送响应。TRU 40包括响应多路复用器52,它从节点互连线22接收事务,并且把所选择的事务送到总线主机54和TSU 42内的相关性响应逻辑电路56。根据来自响应多路复用器52的通信事务的接收,总线主机54能够启动在它的局部互连线16上的通信事务,该事务是与所接收的通信事务相同的,或者是为TSU内的目录控制而生成的,用于逐出之类目录的维护。
TSU 42如它的名称所示,是一个用于流向节点互连线22的事务的管道,它与TRU 40相互作用,以处理存储器请求事务,并且向DRU 44和DSU 46发布命令,以便在局部互连线16与节点互连线22之间控制数据的传送。TSU 42还用相关性响应逻辑电路56执行用于节点互连线22的所选择(即MSI)相关性协议,和用目录控制逻辑电路58维护相关性目录50。
表VII
相关性目录状态 | 局部高速缓冲存储器中的可能状态 | 远程高速缓冲存储器中可能的状态 | 意义 |
修改的(M) | I | M,E,或I | 可在远程节点修改高速缓冲存储器行 |
共用的(S) | S或I | S或I | 可在远程节点非排他地保持高速缓冲存储器行 |
无效的(I) | M,E,S或I | I | 任何远程节点都不保持高速缓冲存储器行 |
未决共用的 | S或I | S或I | 高速缓冲存储器行处于在远程节点失效的过程中 |
未决修改的 | 1 | ME或I | 可在远程节点修改的高速缓冲存储器行,处于回写到本地节点的系统存储器中的过程中,可能在远程节点失效 |
相关性目录50存储数据的系统存储器地址(例如高速缓冲存储器行),这些数据是在局部处理节点用作本地节点的远程节点为高速缓冲存储器检验的。用于各个数据的地址指示是与各个远程处理节点的标识符联合存储的,该节点具有在各个这种远程处理节点的数据复制品和数据相关性状态。用于相关性目录50中的项目的可能相关性状态摘要于表VII中。如表VII中所示,由远程处理节点保持的高速缓冲存储器行的相关性状态的知识是不精确的。这种不精确性是由于下述事实:一个远程地保持的高速缓冲存储器行能够造成一个从S到I,从E到I,或从E到M的变换,而不通知本地节点的节点控制器20。
II.稀疏目录逐出概述
现在参照图3,它按照本发明一个优选实施例说明一个用于NUMA计算机系统内的稀疏目录的逐个逻辑电路的方块图。如图所示,逐出逻辑60包括三个部件,即逐出选择逻辑61,逐出生成逻辑62,和逐出缓冲器63。逐出选择逻辑61接受在一个相关性目录(例如来自图2b的相关性目录50)内的当前项目的状态,且确定用于逐出的“最佳”选择。如果相关性目录内的全部项目都处于未决状态,就设置一个逐出-忙标志。当设置逐出-忙标志时,相关性目录中遗漏的和需要进入相关性目录的任何事务将被重试。逐出生成逻辑62接受用于逐出的选择项目(或候选者),并且生成一个完成逐出所需的适当互连事务。逐出缓冲器63除了保持关于什么样的响应是完成逐出所需的信息以外,还保持正在逐出的存储器行的地址。如果针对正在逐出的存储器行接收一个新的请求,就重试该请求。在完成逐出以后,就从逐出逻辑60中删除该项目。相关性目录保证,正在逐出的项目要直到已用一个新项目更新主相关性目录中的项目时才被访问。
此外,逐出选择逻辑61还利用一个优先随机模式来从用于逐出的相关性目录中选择一个项目。优选随机模式的优先级基于相关性目录的状态。一般说来,当不能逐出未决项目时,首选选择共用的项目,然后选择修正的项目。在具有相同状态的一组项目内,不论是处于共用状态还是修正状态,都利用一个连续的计数器去选择一个逐出项目。
现在参照图4,它按照本发明一个优选实施例说明一个稀疏目录内的项目的方块图。如图所示,项目70包括一个索引字段71,一个位向量字段72,和一个状态字段73。索引字段71包含高速缓冲存储器行的标记。位向量字段72指示哪一些节点包含具有索引字段71的行。向量字段72内的大小(即向量数)应相当于NUMA计数机系统内的节点数。位Vi涉及节点i。状态字段73指示具有一个索引字段71中所含标记的行状态。
III.稀疏目录逐出协议
为了使一个共用项目失效,逐出逻辑60生成一个无效事务,在本例中的一个DClaim事务,把该事务传送到NUMA计算机系统内的全部节点,使相关性目录指示一个可以含于其中的共用复制品。用一个AutoRetry位集合发布该事务,从而迫使一个在目的地节点的事务接收单元(比如图2b中事务接收单元40)局部地连续重试事务,直至以原始响应完成事务为止。在事务完成以后,把一个响应送回逐出缓冲器63。在逐出缓冲器63接收一个用于全部DClaim事务的证实以后,从逐出缓冲器63中删除项目。在这时,已从稀疏目录中删除该行。
然而,在使一个修改项目失效时,需要局部存储器接受所逐出的数据,如果有的话。为了作到这点,就利用一个带有禁止干预和AutoRetry位集合的无效读,在本例中的一个有修改意图的读(RWITM)。AutoRetry位的功能类似于如上所述的DClaim事务的功能。需要一个非干预的模式去强制拥有数据的处理机,生成一个要在本地节点上发布的给存储器的事务,并且允许数据回写到本地节点的局部存储器中。逐出逻辑60还必须保证,要到数据已被回写到局部存储器时才从逐出缓冲器63中清除项目。非干预清仓请求的使用可导致固有处理机生成回写事务,该系统对此运用适当的冲突检测规则。只需要逐出逻辑电路继续试验RWITM请求,直至完全完成为止,在此时保证修改的数据已回写到本地节点的系统存储器。
例如,如图5所示,一个本地节点10a正在试图逐出一个目录项目,其中行可能保持于远程节点10b的修改状态。逐出逻辑(从图3看)生成一个具有确认AutoRetry位和未确认干预允许位的RWITM事务(即一个非干预RWITM事务),如图5a所示。在远程节点10b发布RWITM事务时,可能出现下述三种情况之一。第一种情况是除了处理机在试图把修改的数据推回系统存储器时生成一个重试之外,还由于各种原因能使RWITM事务变成Retry。在这种情况下,AutoRetry模式会强制事务接收单元在节点10b重新发布RWITM事务。第二种情况是远程节点10b没有修改的高速缓冲存储器行,并且RWITM会接收一个清除响应。节点控制器20b中的事务接收单元(比如图2b中的事务接收单元40)随后会把一个响应送回逐出逻辑电路,并且逐出会完成。第三种情况是高速缓冲存储器可能有修改的高速缓冲存储器行,并且由于禁止干预,故处理机会重试RWITM,然后在写回删除(WBK)请求下试图把数据推回局部存储器。
当这事务是一个给远程存储器的请求时,在节点10b的节点控制器20就会重新运行它。同时,在节点控制器20b的事务接收单元会继续重试逐出RWITM事务,如图5b所示,但因为在节点控制器20b的事务接收单元重新运行WBK事务,故在节点控制器20b的事务发送单元会重试逐出RWITM事务。当在本发节点10a上完成WBK请求,并且完成数据传送以后,本地节点10a会把一个响应送回远程节点10b,这会从节点控制器20b内的事务发送单元内的未决缓冲器中清除WBK请求,如图5c所示。当节点控制器20b内的事务发送单元试图重新发布逐出事务时,节点控制器20b内的事务接收单元会接收一个清除响应,因为固有的处理机不再具有修改的高速缓冲存储器行。节点控制器20b内的事务接收单元会把该响应送回节点10a内的逐出逻辑,这会清除未决的缓冲器,现在已从节点的相关性目录中成功地逐出包含一个用于修改高速缓冲存储器行的项目的目录项目,并且局部存储器具有有效的数据。
象已描述的一样,本发明提供一种用于提供一个逐出协议的方法,该协议用于NUMA计算机系统内的稀疏目录。
虽已参照一个优选实施例,特别示出和描述本发明,但本专业的技术人员会了解,此中可在形式和细节上作出各种变更,而不背离本发明的精神和范围。
Claims (6)
1.一种用于提供一个逐出协议的方法,该协议用于一个非均匀存储器访问计算机系统内的稀疏目录,其中所述的非均匀存储器访问计算机系统至少包括两个耦合于互连线的节点,所述耦合于互连线的节点中的每个节点都包括一个局部系统存储器,所述的方法包括下述步骤:
响应一个用于从稀疏目录中逐出一个项目的请求,其中所述项目涉及一个修改的高速缓冲存储器行,把一个非干预性回写请求发送到一个具有所述修改的高速缓冲存储器行的节点;和
在来自所述修改的高速缓冲存储器行的数据随后被写回到一个所述节点的局部系统存储器以后,从所述稀疏目录中逐出所述的项目。
2.根据权利要求1的方法,其中所述的非干预性回写请求带有一个“自动重试”指示位,用于迫使接收该请求的节点连续地重试该非干预性回写,直至完成为止。
3.根据权利要求1的方法,其中所述的非干预性回写请求是一个非干预性的有修改意图的读事务。
4.一种能够提供一个用于稀疏目录的逐出协议的非均匀存储器访问计算机系统,其中所述的非均匀存储器访问计算机系统包括至少两个耦合于互连线的节点,所述耦合于互连线的节点中的每个节点都包括一个局部系统存储器,所述的非均匀存储器访问计算机系统包括:
用于响应一个用于从稀疏目录中逐出一个项目的请求,把一个非干预性回写请求发送到一个具有修改的高速缓冲存储器行的节点的装置,其中所述的项目涉及到所述修改的高速缓冲存储器行;和
用于在来自所述修改的高速缓冲存储器行的数据随后被写回到一个所述节点的局部系统存储器以后,从所述稀疏目录中逐出所述项目的装置。
5.根据权利要求4的非均匀存储器访问计算机系统,其中所述的非干预性回写请求带有一个“自动重试”指示位,用于迫使接收该请求的节点连续地重试该非干预性回写,直至完成为止。
6.根据权利要求4的非均匀存储器访问计算机系统,其中所述的非干预性回写请求是一个非干预性的有修改意图的读事务。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/259,365 US6266743B1 (en) | 1999-02-26 | 1999-02-26 | Method and system for providing an eviction protocol within a non-uniform memory access system |
US09/259,365 | 1999-02-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1264873A CN1264873A (zh) | 2000-08-30 |
CN1156771C true CN1156771C (zh) | 2004-07-07 |
Family
ID=22984643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB991270614A Expired - Fee Related CN1156771C (zh) | 1999-02-26 | 1999-12-27 | 用于在非均匀存储器存取计算机系统内提供逐出协议的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6266743B1 (zh) |
JP (1) | JP3661764B2 (zh) |
CN (1) | CN1156771C (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6438658B1 (en) * | 2000-06-30 | 2002-08-20 | Intel Corporation | Fast invalidation scheme for caches |
US6434673B1 (en) | 2000-06-30 | 2002-08-13 | Intel Corporation | Optimized configurable scheme for demand based resource sharing of request queues in a cache controller |
US6965973B2 (en) * | 2002-05-15 | 2005-11-15 | Broadcom Corporation | Remote line directory which covers subset of shareable CC-NUMA memory space |
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 |
US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
US6934814B2 (en) * | 2002-11-05 | 2005-08-23 | Newisys, Inc. | Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering |
US6925536B2 (en) * | 2002-11-05 | 2005-08-02 | Newisys, Inc. | Cache coherence directory eviction mechanisms for unmodified copies of memory lines in multiprocessor systems |
US6920532B2 (en) * | 2002-11-05 | 2005-07-19 | Newisys, Inc. | Cache coherence directory eviction mechanisms for modified copies of memory lines in multiprocessor systems |
US8751753B1 (en) | 2003-04-09 | 2014-06-10 | Guillermo J. Rozas | Coherence de-coupling buffer |
US7370154B2 (en) * | 2004-02-24 | 2008-05-06 | Silicon Graphics, Inc. | Method and apparatus for maintaining coherence information in multi-cache systems |
JP4335298B2 (ja) | 2006-02-24 | 2009-09-30 | 富士通株式会社 | スヌープ制御方法および情報処理装置 |
JP4373485B2 (ja) * | 2006-02-28 | 2009-11-25 | 富士通株式会社 | 情報処理装置及び該制御方法 |
US8898652B2 (en) * | 2006-03-23 | 2014-11-25 | Microsoft Corporation | Cache metadata for accelerating software transactional memory |
US20080209131A1 (en) * | 2006-11-22 | 2008-08-28 | Kornegay Marcus L | Structures, systems and arrangements for cache management |
US20080120469A1 (en) * | 2006-11-22 | 2008-05-22 | International Business Machines Corporation | Systems and Arrangements for Cache Management |
US8782348B2 (en) * | 2008-09-09 | 2014-07-15 | Via Technologies, Inc. | Microprocessor cache line evict array |
WO2014059576A1 (zh) * | 2012-10-15 | 2014-04-24 | 华为技术有限公司 | 请求报文处理方法以及发送方法、节点和系统 |
CN103488606B (zh) * | 2013-09-10 | 2016-08-17 | 华为技术有限公司 | 基于节点控制器的请求响应方法和装置 |
US9866498B2 (en) * | 2014-12-23 | 2018-01-09 | Intel Corporation | Technologies for network packet cache management |
KR102428563B1 (ko) * | 2015-09-30 | 2022-08-03 | 삼성전자주식회사 | 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들 |
KR20180078253A (ko) | 2015-11-04 | 2018-07-09 | 삼성전자주식회사 | 다중 프로세서 시스템에서 코히어런트 메모리를 구현하기 위한 시스템 및 방법 |
EP3519993A1 (en) * | 2016-09-29 | 2019-08-07 | Veritas Technologies LLC | Tracking access pattern of inodes and pre-fetching inodes |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4775955A (en) | 1985-10-30 | 1988-10-04 | International Business Machines Corporation | Cache coherence mechanism based on locking |
US4885680A (en) | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
US5313609A (en) | 1991-05-23 | 1994-05-17 | International Business Machines Corporation | Optimum write-back strategy for directory-based cache coherence protocols |
JP3200757B2 (ja) | 1993-10-22 | 2001-08-20 | 株式会社日立製作所 | 並列計算機の記憶制御方法および並列計算機 |
US5684977A (en) | 1995-03-31 | 1997-11-04 | Sun Microsystems, Inc. | Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system |
US5680576A (en) | 1995-05-05 | 1997-10-21 | Silicon Graphics, Inc. | Directory-based coherence protocol allowing efficient dropping of clean-exclusive data |
US5893144A (en) * | 1995-12-22 | 1999-04-06 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
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 |
US6108764A (en) * | 1998-12-17 | 2000-08-22 | International Business Machines Corporation | 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 |
-
1999
- 1999-02-26 US US09/259,365 patent/US6266743B1/en not_active Expired - Fee Related
- 1999-12-27 CN CNB991270614A patent/CN1156771C/zh not_active Expired - Fee Related
-
2000
- 2000-02-23 JP JP2000045976A patent/JP3661764B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6266743B1 (en) | 2001-07-24 |
JP3661764B2 (ja) | 2005-06-22 |
JP2000250884A (ja) | 2000-09-14 |
CN1264873A (zh) | 2000-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1156771C (zh) | 用于在非均匀存储器存取计算机系统内提供逐出协议的方法和系统 | |
CN1157659C (zh) | 非均匀存储器访问数据处理系统及其通信方法 | |
CN1244055C (zh) | 计算机系统及其通信的方法 | |
CN1116642C (zh) | 避免由于取消事务处理造成数据丢失的方法和系统 | |
CN1116643C (zh) | 具有共享干预支持的非均匀存储器访问数据处理系统及方法 | |
CN100592269C (zh) | 用于预测性选择预取操作的范围的数据处理系统和方法 | |
US5734922A (en) | Multiprocessing system configured to detect and efficiently provide for migratory data access patterns | |
US6408362B1 (en) | Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data | |
US6510496B1 (en) | Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions | |
US6018791A (en) | Apparatus and method of maintaining cache coherency in a multi-processor computer system with global and local recently read states | |
US6405289B1 (en) | Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response | |
US7003632B2 (en) | Method and apparatus for scalable disambiguated coherence in shared storage hierarchies | |
CN100444134C (zh) | 数据处理系统和方法 | |
CN1114865C (zh) | 用于避免冲突回写造成的活锁的方法和系统 | |
WO1995025306A2 (en) | Distributed shared-cache for multi-processors | |
CN1940892A (zh) | 逐出高速缓存的行的电路布置、数据处理系统和方法 | |
GB2460337A (en) | Reducing back invalidation transactions from a snoop filter | |
US8145870B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation | |
US8285942B2 (en) | Region coherence array having hint bits for a clustered shared-memory multiprocessor system | |
US20050216672A1 (en) | Method and apparatus for directory-based coherence with distributed directory management utilizing prefetch caches | |
US20060123196A1 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation requests | |
US5361342A (en) | Tag control system in a hierarchical memory control system | |
US20050198438A1 (en) | Shared-memory multiprocessor | |
US6813694B2 (en) | Local invalidation buses for a highly scalable shared cache memory hierarchy | |
US6944721B2 (en) | Asynchronous non-blocking snoop invalidation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
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: 20040707 Termination date: 20101227 |