具有共享干预支持的非均匀存储器访问数据处理系统的制作方法

文档序号:6417537阅读:162来源:国知局

专利名称::具有共享干预支持的非均匀存储器访问数据处理系统的制作方法本申请书涉及如下共同未决申请(1)参见申请号No.08/837,516,″MethodofSharedInterventionforCacheLinesinSharedStateforanSMPBus″,申请日为1997年4月14日。(2)参见申请号No.09/024,307,″CacheCoherencyProtokolwithGlobalandLocalRecentlyReadState″,申请日为1998年2月27日。(3)参见申请号No.09/213,997,″Non-UniformMemoryAccess(NUMA)DataProcessingSystemHavingSharedInterventionSupport″,申请日为1997年12月17日。本发明一般涉及数据处理方法及系统,特别涉及非均匀存储器访问(NUMA)数据处理系统中的数据处理。本发明还特别涉及在非均匀存储器访问(NUMA)数据处理系统中通过共享干预提供所需数据的非均匀存储器访问(NUMA)数据处理系统和方法。在计算机技术中公知可利用级联多片单个处理器的处理能力获得更好的计算机系统性能。多处理器(MP)计算机系统可采用多种拓扑进行设计,其中不同的拓扑可能更好地适于某些具体应用,依所需性能及各应用的软件环境而定。最通常的多处理器(MP)计算机拓扑为对称多处理器(SMP)配置,其中的多处理器共享共用资源,如系统存储器及输入/输出(I/O)子系统,它们通常连接于共享系统的互连。此种计算机系统称为对称系统是因为在对称多处理器(SMP)计算机系统中在理想情况下所有的处理器相对存储于共享系统存储器中的数据都具有同样的访问等待时间。尽管对称多处理器(SMP)计算机系统容许使用相对简单的处理器间通信及数据共享方法,但对称多处理器(SMP)计算机系统具有有限的规模扩缩性。换言之,虽然一般可以预期通常的对称多处理器(SMP)计算机系统的性能会随着规模(即随着增加更多的处理器)而达到改进,但固有总线、存储器及输入/输出(I/O)带宽的限制却妨碍从调整对称多处理器(SMP)的规模超过由执行所决定的可优化利用这些共享资源的规模大小而获得的显著的好处。因此,对称多处理器(SMP)拓扑本身在一定程度上受到带宽限制的制约,特别是随着系统规模的加大在系统存储器方面尤其如此。从生产效率观点出发,对称多处理器(SMP)计算机系统的规模设计不良。比如,虽然某些部件可针对在单处理器及小规模对称多处理器(SMP)计算机系统中使用都进行优化,但这些部件用于大规模对称多处理器(SMP)中经常效率低下。反之,从成本观点出发,用于大规模对称多处理器(SMP)中的部件也不适合用于小型计算机系统。结果,就出现了一种称为非均匀存储器访问(NUMA)的多处理器(MP)计算机系统拓扑作为一种以增加某些复杂性为代价来克服对称多处理器(SMP)计算机系统的许多限制的另外一种替代设计。典型的非均匀存储器访问(NUMA)数据处理系统包含多个互连节点,每个节点包含一个或多个处理器及局部“系统”存储器。此种计算机系统称为具有非均匀存储器访问是因为每个处理器对在其局部节点处的系统存储器中所存储的数据的访问等待时间低于对远方节点处的系统存储器中所存储的数据的访问等待时间。非均匀存储器访问系统可根据数据等待时间是否是在不同节点中的高速缓存中间维持而进一步划分为非相关或高速缓存相关系统。高速缓存相关非均匀存储器访问(CC-NUMA)系统的复杂性在很大程度上可归因于硬件为了不仅在每个节点内部的各级高速缓存存储器和系统存储器之间,而且在不同节点中的高速缓存和系统存储器之间保持数据相关性而需要的额外通信。然而,非均匀存储器访问(NUMA)计算机系统的确可克服通常的对称多处理器(SMP)计算机系统规模扩缩性的限制,因为在非均匀存储器访问(NUMA)计算机系统中每个节点都可作为更小的对称多处理器(SMP)系统。于是,在每个节点内部的共享部件可针对只使用少数处理器进行优化,而同时整个系统可在保持相对低等待时间的同时从可获得更大规模的并行度而受益。对高速缓存相关非均匀存储器访问(CC-NUMA)计算机系统的主要性能的关心是与通过连接节点的互连传送的通信事务相关联的等待时间。特别是,当以常驻远方系统存储器中的数据为目标时,最通常类型的事务的读出型事务与以常驻局部系统存储器中的数据为目标的读出数据相比较,可具有两倍的等待时间。因为与在节点互连上传输的读出事务相关联的等待时间与在局部互连上的读出事务相比较相对高,所以减小请求通过节点互连传输的读出型事务的数目,以及减小此种远方读出型事务的等待时间,是有用并且是所希望的。根据本发明,在非均匀存储器访问(NUMA)计算机系统中的读出请求的数目及等待时间可通过支持共享干预而减少。根据本发明的非均匀存储器访问(NUMA)计算机系统至少包含每个都连接到一个节点互连的第一和第二处理节点。第一处理节点包含一个系统存储器及第一及第二处理器,两者都分别具有第一及第二高速缓存分级之一,高速缓存分级由局部互连连接进行通信。第二处理节点至少包含系统存储器及具有第三高速缓存分级的第三处理器。第一高速缓存分级和第三高速缓存分级可并发地存储“最近”相关状态下的特定高速缓存线的一份未经修改的拷贝,共享干预可从该处对该特定高速缓存线的拷贝定源。响应第二高速缓存分级对特定高速缓存线请求,第一高速缓存分级通过只利用局部互连通信而不利用节点互连通信的共享干预将特定高速缓存线拷贝定源于第二高速缓存分级。本发明的所有目的、特点和优点在下面的详细书面描述中将变得很明显。确信为本发明特征的新特点在后附的权利请求中提出。然而,本发明本身,及其应用的优选模式、其他目的及优点,在参考附图阅读下面的实施例的详细描述时将会连接得最为清楚。在附图中图1示出根据本发明的非均匀存储器访问(NUMA)计算机系统的实施例;而图2为图1中示出的节点控制器的更为详细的框图。下面参考附图,特别是参考图1介绍根据本发明的非均匀存储器访问(NUMA)计算机系统的实施例。所描述的实施例可作为,比如,工作站、服务器或大型机实现。如图所示,非均匀存储器访问(NUMA)计算机系统6包含多个(N≥2)处理节点8a-8n,这些节点由节点互连22互连。处理节点8a-8n每个都可包含M(M≥0)个处理器10、局部互连16及通过存储器控制器17访问的系统存储器18。处理器10a-10m最好是(但不是必须是)完全一样的,并且可以是纽约Armonk的IBM公司出售的处理器的PowerPCTM线中的一个处理器。除了一般称为处理器核心12的寄存器、指令流逻辑及用来执行程序指令的执行单元之外,处理器10a-10m中的每一个都还包含一个用来从系统存储器18将数据定级到相关的处理器核心12的单片高速缓存分级。每个高速缓存分级14包含至少一个高速缓存级并可包含,比如,一个高速缓存级1(L1)和一个高速缓存级1(L2),分别具有在8-32千字节(kB)和1-16兆字节(MB)之间的存储能力。一般此种高速缓存由高速缓存控制器管理,此管理器,除了其他功能之外,实施选定高速缓存线替换方案及相关协议。在本公开中,每个处理器10及其相关高速缓存分级14被认为是单个探究器(snooper)。处理节点8a-8n中的每一个还包含一个连接于局部互连16和节点互连22中间的相应的节点控制器20。每个节点控制器20通过执行至少两种功能用作远方处理节点8的局部代理。首先,每个节点控制器20探究相关的局部互连16并便利局部通信事务(比如读出请求)传输到远方处理节点8。其次,每个节点控制器20探究节点互连22上的通信事务并且掌握相关局部互连16上的有关通信事务。在每个局部互连16上的通信都由仲裁器24控制。仲裁器24根据处理器10生成的总线请求信号调节对局部互连16的访问并如下面进一步所讨论的汇集对局部互连16上探究的通信事务的相关响应。局部互连16通过中间总线桥26连接到中间总线桥30,后者可用作,比如,外部设备互连(PCI)局部总线。中间总线桥26既可提供处理器10可直接访问映射到总线存储器和/或输入/输出(I/O)地址空间的输入/输出(I/O)装置32和存储装置34之间的装置的低等待时间通路,又可以提供输入/输出(I/O)装置32和存储装置34访问系统存储器18所通过的高带宽通路。输入/输出(I/O)装置32可包含,比如,显示装置、键盘、图形指示器及连接外部网络或附加装置的串口和并口。另一方面,存储装置34可包含为操作系统和应用软件提供非易失性存储的光盘或磁盘。存储器的组织在非均匀存储器访问计算机系统6中的所有处理器10共享一个物理存储空间,就是说每个物理地址只与系统存储器18之一的一个位置相关联。于是,非均匀存储器访问计算机系统6中的任何处理器10通常可访问的系统存储器的整个内容就可看作是系统存储器18之间的分区。比如,在本发明的具有4个处理节点8的实施例中,非均匀存储器访问计算机系统可具有一个既包含通用存储器区又包含保留存储器区的16G字节(GB)的物理地址空间。通用存储器区划分为多个500MB的区段,4个处理节点8中的每一个都是每隔三个区段分配一个。内容大致为2GB的保留区包含系统控制器及外部存储器及输入/输出区,每一个都分配处理节点8的一个相应的节点。为了便于本讨论,在系统存储器18中存储特定数据的处理节点8称为该数据的本地节点;反之,处理节点8a-8n的其他节点则称为特定数据的远方节点。存储器相关性因为非均匀存储器访问计算机系统6之中的任何一个处理器10都可对存储于每个系统存储器18中的数据提出请求、访问和修改,非均匀存储器访问计算机系统6执行一个高速缓存相关协议以便既可以在同一处理节点中的高速缓存之间保持相关性,又可以在不同处理节点中的高速缓存之间保持相关性。于是,非均匀存储器访问计算机系统6就恰当地分类为高速缓存相关非均匀存储器访问(CC-NUMA)计算机系统。所执行的此专用高速缓存相关协议是与执行相关的,但在本发明的优选实施例中其构成包括多种众所周知的包含第五R(最近)状态的“修改、独占、共享、无效”(MESI)协议,在未决专利申请中有详细说明。如下面将详细讨论的,R状态容许保持有可共享的未修改高速缓存线的高速缓存可响应读出型请求(比如“目的为修改的读出”(RWITM))直接将高速缓存线定源于另一高速缓存。在下文中,将假设高速缓存分级14及仲裁器24执行通常的R-MESI协议,其中节点控制器20识别M、S及I状态并考虑E状态合并到M状态及R状态合并到S状态。即节点控制器20假设由远方高速缓存独占保持的数据已经经过修改,无论数据实际上是否已经修改,并且对远方保持的数据不区别S和R状态。互连体系结构局部互连16就节点互连22每个都可应用于任何基于总线的广播体系结构,或基于转接的非广播体系结构。然而,在一优选实施例中,至少节点互连22是用作由IBM公司开发的6xx通信协议管理的基于转接的非广播互连。局部互连16及节点互连22容许分离事务,即意味着在地址和数据占用之间不存在构成通信事务的固定的定时关系,并且数据包的定序可以和相关地址包不同。利用局部互连16及节点互连22也最好是由流水线通信事务进行增强,这可以容许其后的通信事务在从每个接收方接收相关响应的前面的通讯事务的主机之前定源。不论所实施的互连体系结构的类型或多种类型如何,至少三类“包”(此处所使用的包通指分立信息单位)-地址、数据及相关响应-是用来通过节点互连22在处理节点8之间和通过局部互连16在探究器之间传送信息。下面参考表I和表II,其中分别给出地址及数据包的定义。表I表II如表I及表II所示,为容许接收节点或探究器确定每个包所属的通信事务,利用通信事务标识确认通信事务中的每个包。本领域内行人士可以理解,可以利用附加的流控制逻辑及相关的流控制信号来调节有限通信资源的利用。在每个处理节点8中,可在各探究器及仲裁器24之间就状态及相关响应进行通信。用于状态及相关响应通信的局部互连16之内的信号线总结与下面的表III中。表III</tables>通过局部互连16的AResp及AStat线传输的状态及相关响应最好是具有与相关地址包的固定但可编程的定时关系。比如,可提供关于每个探究器是否已经顺利接收到在局部互连16上传播的地址包的初步指示的AStatOut表决可能在接收到地址包之后的第二循环中接收请求。仲裁器24汇集AStatOut表决并在固定但可编程的循环数目(比如1个循环)之后发出AStatIn表决。可能的AStat表决总结在下面的表IV。表IV在AStatIn周期之后,在固定但可编程的循环数目(比如2个循环)之后可能请求ARespOut表决。仲裁器24也汇集每个探究器的ARespOut表决并交付一ARespIn表决,最好是在下一个循环。可能的AResp表决最好是包含在表V中所列出的相关响应,在该表中以下降的优先权为序列出了这种AResp表决。表V通常由节点控制器20发出的ReRunAResp表决指示探究的请求具有长等待时间(比如请求将由远方处理节点8上的处理器10或系统存储器18提供服务),并且将指示请求源以后重发事务。这样,与RetryAResp表决相对照,ReRun使表决ReRun(并且不是事务的始发方)的事务的接收方负责使通讯事务以后重发。节点控制器下面参考图2,其中示出非均匀存储器访问计算机系统6中的节点控制器20的更为详细的框图。如图2所示,连接在局部互连16和节点互连22之间的每个节点控制器20都包含事务接收单元(TRU)40、事务发送单元(TSU)42、数据接收单元(DRU)44及数据发送单元(DSU)46。TRU40、TSU42、DRU44及DSU46可利用域可编程门阵列(EPGA)或专用集成电路(ASIC)实现。如前所述,通过节点控制器20的地址及数据通路是分叉的,地址(及相关性)包由事务接收单元(TRU)40及事务发送单元(TSU)42处理,而数据包由数据接收单元(DRU)44及数据发送单元(DSU)46处理。事务接收单元(TRU)40(其所以这样标记就是表示从节点互连22向外的事务流)负责从节点互连22接收地址及相关性包、向局部互连16发出事务并向事务发送单元(TSU)42转送响应。事务接收单元(TRU)40包含从节点互连22接收包并将选择的包转发给总线主控器54及事务发送单元(TSU)42中的相关响应逻辑56的响应多路复用器(mux)52。作为对从响应多路复用器(mux)52接收地址包发出的响应,总线主控器54可在其局部互连16上启动与接收的地址包所指示的通信事务相同或不同的通信事务。事务发送单元(TSU)42,顾名思义,是流向节点互连22的事务管道,包含一个临时存储定源于节点互连22的有待完成的通信事务的属性的多入口未决缓冲器60。存储于未决缓冲器60的一个入口中的事务属性最好是至少包含事务的地址(包括标识)、事务的类型及预期的相关响应的数目。每个未决缓冲器入口都具有一个既可设定为表示未决缓冲器入口可删除的“空(Null)”,或是设定为表示事务仍然是未决的ReRun的相关的状态。除了将节点互连22上地址包定源之外,事务发送单元(TSU)42与事务接收单元(TRU)40交互以处理存储器请求事务并向数据接收单元(DRU)44及数据发送单元(DSU)46发出命令控制局部互连16和节点互连22之间的数据传输。事务发送单元(TSU)42也对具有相关响应逻辑56的节点互连22应用所选择的(即MSI)相关协议并保持具有目录控制逻辑58的相关目录50。相关目录50存储转到局部处理节点是其本地节点的远方节点中的高速缓存中的数据的系统存储器地址的指示(比如,高速缓存线)。对每个高速缓存线的地址指示是与具有高速缓存线拷贝的每个远方节点的标识符及在每个这种远方处理节点处的高速缓存线的相关状态结合起来进行存储的。相关目录50中的条目的可能相关状态总结与表VI。表VI</tables>如表VI所示,由远方处理节点保持的高速缓存线的相关状态的知识是不精确的。这种不精确是由于远方保持的高速缓存线可从R、S或E过渡到I或从E过渡到M而不通知本地节点的节点控制器20。共享干预概述为了减小处理器读出型请求的等待时间,本发明支持共享干预,即由响应读出型请求保持数据为未修改(即E或R)状态的高速缓存对数据的定源。因为非均匀存储器访问计算机系统6中的多高速缓存可并发地保持同一未修改的高速缓存线,就请求有某一机制来调节由哪一个高速缓存通过共享干预对所请求的高速缓存线定源。如上述的参考未决专利申请所述,该机制就是R(最近)高速缓存相关状态。根据本发明,只有特定处理节点8中的一个高速缓存分级14可使特定的高速缓存线在任何一个时候都保持处于R状态;然而,在多处理节点8中的高速缓存分级14可并发地保持同一高速缓存线处于R状态。本发明支持响应所有READ(读出)事务保持于R状态及E状态中的高速缓存线的共享干预并支持响应事务保持于E状态的高速缓存线的共享干预。响应RWITM事务保持于R状态的高速缓存线的共享干预最好是禁用,因为必须是这种RWITM事务对所有的处理节点8为可见以便维持相关性。不禁用RWITM事务所请求的R状态的高速缓存线的共享干预就需要另外附加事务开销以通知通过共享干预由本地服务的RWITM事务的其他处理节点8,并且这一附加事务开销如果不是消除也将会极大地减小共享干预的性能的好处。在请求高速缓存分级上所请求的高速缓存线的相关状态响应在利用RWITM事务时接收所请求的高速缓存线,请求的高速缓存分级14总是将高速缓存线存储于修改状态。然而,响应READ事务而得到高速缓存线的相关状态取决于所请求的高速缓存线的源。下面的表VII总结了在读出失误之后发出请求高速缓存线的READ事务的高速缓存分级14的状态过渡。表VII</tables>可见,如高速缓存分级14接收ARespIn“共享”相关表决,高速缓存分级14的高速缓存控制器“了解”在同一处理节点8中没有另一探究器保持所请求的高速缓存线于R状态或M状态以及所请求的高速缓存线将由局部系统存储器18或远方系统存储器18通过节点控制器20提供。因此,当请求高速缓存分级14通过局部互连16接收所请求的高速缓存线时,高速缓存分级14的高速缓存控制器对高速缓存线进行高速缓存并将其相关状态设定为Recent(最新),它意味着在保持所请求的高速缓存线的多高速缓存分级14中请求高速缓存分级14负责通过共享干预为所请求的高速缓存线定源。如请求高速缓存分级14响应读出请求接收一ARespInNull(空)相关表决,则请求高速缓存分级14的高速缓存控制器“了解”没有局部高速缓存分级14存储所请求的高速缓存线的拷贝并且所请求的高速缓存线将由局部系统存储器18或远方系统存储器通过节点控制器20定源。当所请求的高速缓存线为请求高速缓存分级14所接收时,所请求的高速缓存线以“Exclusive(独占)”状态存储。如请求高速缓存分级14接收ARespIn“共享”干预或“修改”干预表决,则提出请求的处理器10上的高速缓存控制器“了解”所请求的高速缓存线将由同一处理节点10中的另一探究器定源,并且在接收到所请求的高速缓存线时将其存储于R状态。在探究的高速缓存分级上所请求的高速缓存线的相关状态探究RWITM事务的高速缓存分级14总是将所请求的高速缓存线(如存在时)的拷贝的相关状态更新为“无效的”状态。探究的高速缓存分级14响应接收到根据优选实施例的READ(读出)事务的状态过渡总结于下面的表VIII中。表VIII如表VIII所示,如高速缓存分级14探究READ(读出)请求并将所请求的高速缓存线保持于“Exclusive(独占)”状态或Recent(最新)状态,则探究的高速缓存分级14提供“共享”干预ARespOut表决,响应从仲裁器24发出的接收到“共享”干预ARespOut表决将所请求的高速缓存线定源于局部互连16上,并将其所请求的高速缓存线的拷贝的相关状态更新为共享状态。与此类似,如高速缓存分级14探究由局部处理器10发出的READ(读出)请求并将所请求的高速缓存线保持于修改状态,则探究的高速缓存分级14提供“修改”干预ARespOut表决,响应接收到“修改”干预ARespIn表决将所请求的高速缓存线定源于局部互连16上,并将其所请求的高速缓存线的拷贝的相关状态更新为“共享”状态。另一方面,如探究的高速缓存分级14提供适合的ARespOut表决(即分别为“共享”或“空”)并不对所请求的高速缓存线定源。对于表VII及VIII中未示出那些状态及操作,高速缓存分级14的相关状态过渡及相关响应根据现有技术的MESI协议处理,对待Recent(最新)状态与“共享”状态一样。节点控制器的相关协议性能节点控制器20响应启用共享干预的读出型事务的相关性能取决于请求高速缓存分级14及有关节点控制器20相对所请求的高速缓存线的本地节点的位置。一般讲,在非均匀存储器访问(NUMA)计算机系统中请求可能有4种不同的情况(1)所请求的高速缓存线的本地节点上的处理器的请求由本地节点的节点控制器接收;(2)远方节点上的处理器的请求由所请求的高速缓存线的本地节点的节点控制器接收;(3)远方节点(相对高速缓存线)上的处理器的请求由处理器本身的节点控制器接收;以及(4)远方节点上的处理器的请求由远方节点的节点控制器接收。下面的表IX总结了上列第1种情况中的节点控制器响应接收READ(读出)事务的性能。如表中所示,当本地节点的节点控制器20从局部处理器10接收到READ(读出)事务并且指示所请求的高速缓存线为相关目录50中的远方处理节点8处的“修改的”时,节点控制器20表决ARespOutReRun并将READ(读出)事务转移到所指示的响应从仲裁器24接收ARespInReRun启用了干预(即N=1)的远方处理节点8。如所请求的高速缓存线在远方处理节点8上有效(“修改的”或“Exclusive(独占)的”),则远方处理节点8就通过修改的或共享的干预向节点控制器20提供所请求的高速缓存线的更新的拷贝;否则(即所请求的高速缓存线在远方处理节点8处无效)远方处理节点8将向节点控制器20提供“空”响应。无论在哪一种情况下,节点控制器20都将请求局部处理器10重新发送READ(读出)事务。响应接收到重新发送的READ(读出)事务,如高速缓存线由“修改的”干预定源,则节点控制器20表决ARespOut“修改的干预”(MI),如所请求的高速缓存线由“共享的”干预定源,则节点控制器20表决ARespOut“共享的干预”(SI),并且否则表决“空”。如节点控制器20接收对重新发送的READ(读出)事务(R=1)的ARespInMI或SI表决,则节点控制器20将所请求的高速缓存线定源于局部互连16并更新相关目录50中的所请求高速缓存线的相关状态为“共享的”。另一种情况是如仲裁器24发出ARespIn“空”表决,则系统存储器18将所请求的高速缓存线定源于提出请求的处理器10,并且节点控制器更新所请求的高速缓存线的相关状态为“无效的”。如所请求的高速缓存线在相关目录50中指示为“共享的”或“无效的”并且ARespIn表决为“共享的”或“空”,则系统存储器18同样对所请求的高速缓存线定源。然而,在这些场合下,READ(读出)事务不转移到任何远方处理节点8。表IX响应接收到RWITM事务时节点控制器20的操作与表IX所示一样,但有下述区别。首先,在相关目录50中的所请求的高速缓存线的相关状态在所有的场合都更新为或保持为“无效的”。第二,RWITM事务,不是READ(读出),由节点控制器20转移到在相关目录50中指示的作为保持所请求的高速缓存线于“修改的”状态的远方处理节点8(如存在)。第三,如所请求的高速缓存线在相关目录50中指示在远方处理节点8处为“共享的”时,则节点控制器20发出DClaim事务给远方处理节点8以使远方处理节点8处所请求的高速缓存线的拷贝无效。下面参考表X,其中总结了第二种情况下的节点控制器的操作,在第二种情况下由远方节点的处理器进行的READ事务是由所请求的高速缓存线的本地节点的节点控制器20通过节点互连22接收的。如上所述,如所请求的高速缓存线在相关目录50中指示在远方处理节点8为“无效的”,则节点控制器20在ARespOut期间表决“空”并且,响应SI或“空”ARespIn的表决及其后所请求的高速缓存线,向提出请求的处理节点8提供所请求的高速缓存线。节点控制器20也将相关目录50中的高速缓存线的状态从“无效的”更新为“共享的”。如在提出请求的处理节点8所请求的高速缓存线指示为“共享的”时,节点控制器20的性能作用类似,不过不更新高速缓存线的相关状态。如表X中的第3至第5行所示,如所请求的高速缓存线在相关目录50中指示为在与本地节点及提出请求的处理节点8不同的第3节点处为“修改的”,则节点控制器20必须执行附加的操作。特别是,节点控制器20表决ARespOutReRun以使第1局部READ(读出)事务(R=0)在以后重新发出。之后,节点控制器20将READ(读出)事务转移到第3节点以确认所请求的高速缓存线在第3节点处是否经过修改。由于相关目录50所利用的相关协议的不精确性,存在3种可能性(1)所请求的高速缓存线在第3节点处经过修改(第4行);(2)所请求的高速缓存线在第3节点处保持在“Exclusive(独占)”状态(第3行);或(3)所请求的高速缓存线在第3节点处为“无效的”(第5行)。如所请求的高速缓存线在第3节点处为“修改的”或“Exclusive(独占)”,则第3节点通过干预将所请求的高速缓存线定源于节点控制器20;否则第3节点对转移的READ(读出)事务的响应为“空”响应。当节点控制器20在本地节点(R=1)重新发出READ(读出)事务时,节点控制器20表决ARespIn“修改的干预(MI)”,SI或“空”,取决于从第3节点接收的响应。节点控制器20就响应ARespInMI或SI将所请求的高速缓存线定源于提出请求的处理节点8,或是响应ARespIn“空”表决将从本地节点的系统存储器18接收的所请求的高速缓存线的拷贝转移。如在第3节点处所请求的高速缓存线有效,节点控制器20也将把相关目录50中的所请求的高速缓存线的相关状态从“修改的”更新为“共享的”,如在第3节点处所请求的高速缓存线“无效的”,将从“修改的”更新为“无效的”。表X</tables>如在节点控制器20处接收的读出型事务是RWITM事务而不是READ(读出)事务,则节点控制器20的操作将与表X中列出的非常相似,只有下述的差异。在前面两行,在存储器目录50中的相关状态将更新为“修改的”,并且在第3至第5行,在所有3种场合相关状态将更新为“无效的”。在第3至第5行,在节点互连22向第3节点发出的事务也将是RWITM事务而不是READ(读出)事务。下面参考表XI,其中总结了第三种情况下的节点控制器的操作,在第三种情况下由远方节点(相对于所请求的高速缓存线)的处理器进行的READ事务是由提出请求的处理器节点的节点控制器20通过局部互连16接收的。表XI未指出所请求的高速缓存线的可能的相关状态过渡,因为只有在本地节点的相关目录50跟踪相关状态。如表XI的第1列中所指出,节点控制器20在每个操作情况下都表决ReRunARespOut以指示所请求的高速缓存线是处于分配给不同处理节点8的物理存储空间之内。除非READ(读出)事务可由共享的或修改的干预在本地进行服务,如在第6行所示,仲裁器24将READ(读出)事务转移到所请求的高速缓存线的本地节点。之后对本地节点READ(读出)事务进行最后相关响应提供节点控制器20,并且如相关响应不是Retry(重试),还与所请求的高速缓存线一起。当在提出请求的处理节点8重新发出READ请求时,节点控制器20提供在ARespOut期间从本地节点接收的相关响应,并在ARespIn表决不是Retry(重试)时提供所请求的高速缓存线。应该指出,除了转移到第1至第5行的每一个之中的本地节点的事务将是RWITM事务之外,对RWITM事务的操作与在表XI中给出的将一样。表XI最后,下面参考表XII,其中总结了第四种情况下的节点控制器20的操作,在第四种情况下提出请求的处理器10及节点控制器20两者都驻留在相对在READ事务中指定的高速缓存线的本地节点的远方(第3)节点处。如上所示,节点控制器20,响应其任何运行在请求具有另一节点作为其本地节点的高速缓存线的局部互连16上的READ(读出)事务,表决ARespOut“空”。节点控制器20将由READ(读出)事务接收到的ARespIn转移到本地节点,并且在局部ARespIn表决为“修改的干预”或“共享的干预”时也提供所请求的高速缓存线。如读出型事务为RWITM事务,节点控制器20的操作将于表XII中示出的相同。表XII如上所示,本发明通过支持数据共享干预可提供能有利地减少节点间读出请求的数目的非均匀存储器访问(NUMA)计算机系统并减小读出请求的等待时间。根据本发明,每个处理节点可具有一个将同一高速缓存线保持于非独占Recent状态中的探究器(比如高速缓存级),该探究器可通过共享干预对高速缓存线定源。重要的是通过在处理节点上的共享干预定源高速缓存线经常不请求通知任何其他处理节点或通过节点互连转移事务。虽然本发明是参考优选实施例具体示出和描述的,但本领域的内行人士可以理解其中的形式和细节可做各种改变而不脱离本发明的精神和范围。权利要求1.一种计算机系统,包括节点互连;每个都连接到所述节点互连的第一和第二处理节点,其中所述第一处理节点包含一个系统存储器及第一及第二处理器,两者都分别具有第一及第二高速缓存分级之一,所述第一及第二高速缓存分级由局部互连连接,并且其中所述第二处理节点至少包含系统存储器及具有第三高速缓存分级的第三处理器;其中所述第一高速缓存分级和所述第三高速缓存分级可并发地存储“最近”相关状态下的特定高速缓存线的一份未经修改的拷贝,共享干预可从该处对所述特定高速缓存线的拷贝定源,并且其中响应所述第二高速缓存分级对所述特定高速缓存线请求,所述第一高速缓存分级通过只利用所述局部互连通信而不利用所述节点互连通信的共享干预将所述特定高速缓存线拷贝定源于所述第二高速缓存分级。2.如权利请求1的计算机系统,其中所述请求是READ(读出)请求。3.如权利请求1的计算机系统,其中如果所述第一高速缓存级存储所选择的高速缓存线的未修改的拷贝,则所述第一高速缓存级只有在所述选择的高速缓存线是由所述第一高速缓存级保持于“Exclusive(独占)”状态时才响应RWITM(“目的为修改的读出”)请求通过共享干预将所选择的所述高速缓存线的拷贝定源。4.如权利请求1的计算机系统,其中所述第一和第二处理节点每一个都包含连接到所述节点互连的节点控制器,每个节点控制器都具有指示从远方保持的高速缓存线的可能的相关状态的相关目录,对它们而言包含该节点控制器的处理节点是本地节点。5.如权利请求4的计算机系统,其中每个相关目录利用单个相关状态追踪可从远方保持于“共享的”或“Recent(最新)”状态的高速缓存线。6.如权利请求4的计算机系统,其中在所述第一处理节点上的节点控制器,只有在所述第一处理节点的所述节点控制器的所述相关目录指示所述请求的高速缓存线在所述第二处理节点是修改的时候,才将对所述第一处理节点是其本地节点的高速缓存线的请求转发到所述第二处理节点。7.一种计算机系统中的通信方法,在该计算机系统中包含每个都连接到节点互连的第一和第二处理节点,其中所述第一处理节点包含一个系统存储器及第一及第二处理器,两者都分别具有第一及第二高速缓存分级之一,所述第一及第二高速缓存分级由局部互连连接,并且其中所述第二处理节点至少包含系统存储器及具有第三高速缓存分级的第三处理器,所述方法包含在所述第一高速缓存分级和所述第三高速缓存分级中可并发地存储“最近”相关状态下的特定高速缓存线的一份未经修改的拷贝,共享干预可从该处对所述特定高速缓存线的拷贝定源;并且其中响应所述第二高速缓存分级的请求,所述第一高速缓存分级通过只利用所述局部互连通信而不利用所述节点互连通信的共享干预将所述特定高速缓存线拷贝定源于所述第二高速缓存分级。8.如权利请求7的方法,其中所述请求是READ(读出)请求。9.如权利请求7的方法,其构成还包括在所述第一高速缓存级中存储所选择的高速缓存线未修改的拷贝;并且只有在所述选择的高速缓存线是保持于“Exclusive(独占)”状态时才响应RWITM(“目的为修改的读出”)请求通过共享干预将所选择的所述高速缓存线的拷贝定源。10.如权利请求7的方法,其中所述第一和第二处理节点每一个都包含连接到所述节点互连的节点控制器,每个节点控制器都具有相关目录,所述方法还包括指示在每个节点控制器的相关目录中的从远方保持的高速缓存线的可能的相关状态,对它们而言包含该节点控制器的处理节点是本地节点。11.如权利请求10的方法,还包括在每个相关目录中利用单个相关状态追踪可从远方保持于“共享的”或“Recent(最新)”状态的高速缓存线。12.如权利请求10的方法,其构成还包括只有在所述第一处理节点的所述节点控制器的所述相关目录指示所述请求的高速缓存线在所述第二处理节点是修改的时候,才从所述第一处理节点上的节点控制器将对所述第一处理节点是其本地节点的高速缓存线的请求转发到所述第二处理节点。全文摘要一种非均匀存储器访问计算机系统,包含每个都连接到一个节点互连的第一和第二处理节点。第一处理节点包含一个系统存储器及第一及第二处理器,两者都分别具有第一及第二高速缓存分级之一,高速缓存分级由局部互连连接进行通信。第二处理节点至少包含系统存储器及具有第三高速缓存分级的第三处理器。第一高速缓存分级和第三高速缓存分级可并发地存储“最近”相关状态下的特定高速缓存线的一份未经修改的拷贝,共享干预可从该处对该特定高速缓存线的拷贝定源。文档编号G06F12/08GK1263312SQ9912709公开日2000年8月16日申请日期1999年12月29日优先权日1999年2月10日发明者加里·D·卡彭特,马克·E·迪恩,戴维·B·格拉斯科申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1