CN1116642C - 避免由于取消事务处理造成数据丢失的方法和系统 - Google Patents
避免由于取消事务处理造成数据丢失的方法和系统 Download PDFInfo
- Publication number
- CN1116642C CN1116642C CN99126571.8A CN99126571A CN1116642C CN 1116642 C CN1116642 C CN 1116642C CN 99126571 A CN99126571 A CN 99126571A CN 1116642 C CN1116642 C CN 1116642C
- Authority
- CN
- China
- Prior art keywords
- data
- node
- request
- host node
- issued transaction
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种用于避免因非均匀存储器存取(NUMA)数据处理系统内的取消的事务处理而造成的数据丢失的方法。NUMA数据处理系统包括至少连接着第一节点和第二节点的节点互连。第一、第二节点各包括连接着系统存储器的本地互连,并在本地互连和节点互连之间插入一个节点控制器。该节点控制器检测因NUMA数据处理系统的特性而导致数据丢失的某些情况。
Description
发明领域
本发明一般地涉及数据处理的方法和系统,尤其涉及一种避免计算机系统中数据丢失的方法和系统。更加具体地,本发明涉及一种避免因在非均匀存储器存取(NUMA)计算机系统中取消事务处理造成数据丢失的方法和系统。
发明背景
计算机技术中周知,通过利用多个级联的独立处理机的处理能力可达到更高的计算机系统性能。可以用一些不同的拓扑设计多处理机(MP)计算机系统,其中的不同的拓扑可能更适用于特定应用,这取决于各个应用的性能要求和软件环境。最常用MP计算机拓扑中的一种是对称多处理机(SMP)配置,在其中多处理机可共享公用资源,例如典型地连接到互连的共享系统上的系统存储器和输入/输出(I/O)子系统。由于SMP计算机系统中的所有处理机对于共享系统存储器中存储的数据理想上具有相同的存取等待时间所以说这样的计算机系统是对称的。
尽管SMP计算机系统允许采用相对简单的处理机间通信和数据共享方法,但SMP计算机系统的扩缩性有限。换言之,尽管通常期望可利用规模(即,增加更多的处理机)改进典型SMP计算机系统的性能,固有的总线、存储器和输入/输出(I/O)带宽限制在超过最佳利用各共享资源的和实现有关的尺寸下通过扩大SMP获得明显的好处。从而,当系统规模增加时,SMP拓扑本身在一定程度上受到带宽的限制,尤其在系统存储器上。从制造效率的角度,SMP计算机系统也不能良好扩缩。例如,尽管某些部件可以优化地应用于单处理机系统和小规模SMP计算机系统中,在大规模SMP使用中这些部件常常是效率低的。相反,从成本角度,设计成用于大规模SMP的部件用于较小系统是不实用的。
因此,出现一种称为非均匀存储器存取(NUMA)的MP计算机系统拓扑,以作为在某种附加的复杂性代价下解决SMP计算机系统的许多限制的替代设计方法。典型的NUMA计算机系统包括若干互连的节点,每个节点包括一个或多个处理机和本地“系统”存储器。这样的计算机系统被称为具有非均匀存储器存取是因为,每个处理机对存储在其本地节点处的系统存储器中存储的数据的存取等待时间短于对远程节点处的系统存储器中存储的数据的存取等待时间。根据不同节点中的超高速缓存之间是否保持数据相关性,还可进一步把NUMA系统分类成不相关的或者超高速缓存相关的。超高速缓存相关NUMA(CC-NUMA)系统的复杂性可归因于硬件中所需的附加通信的大量措施,以便不仅保持各个节点内的超高速缓存以及系统存储器的不同层之间的数据相关性而且保持不同节点的超高速缓存以及系统存储器之间的数据相关性。然而,由于可把NUMA计算机系统中的每个节点按较小的SMP系统实现,NUMA计算机系统的确解决了常规SMP计算机系统的扩缩性限制。从而,可以优化每个节点内的仅由一些处理机使用的共享部件,同时整个系统在保持相对低的等待时间下受益于可得到的更大规模的并行性。
在设计可扩缩超高速缓存相关的NUMA系统中,必须解决较小SMP设计中不存在的数据相关性问题。例如,在单总线MP计算机系统中,当在系统总线上取消事务处理时不会出现数据丢失。可把数据丢失看做成一类情况,在其中从系统中的某些或全部超高速缓存或者存储器丢失数据元素(例如超高速缓存线)的唯一有效拷贝。SMP系统的超高速缓存相关性协议设计成防止出现这种丢失。例如,若由SMP系统中的某处理机“重试”读事务处理,在把该数据实际上提供到总线上之前,总线上的所有部件,数据的请求方、数据的提供方以及所有的监听方,上都可看到该“重试”。这确保数据不会由具有唯一有效拷贝的部件废弃,从而“丢失”该数据。这还确保系统中的所有超高速缓存都不会象数据已被提供后它们会做的那样改变它们的状态,对于“取消”事务处理,单总线MP仍可借助协议机制的存在保持数据相关性。当某部件请求数据但在该数据可被提供前该请求方又表示不再需要该数据,事务处理被“取消”。可以由发出事务处理之外的其它部件取消事务处理,例如其所有缓冲区都满了的存储器控制器。当第三方以这种方式取消事务处理时,仅当仍需要该数据时请求方会重新进行事务处理。接着既不从其驻留的存储器提供也不去掉数据的有效拷贝。尽管取消事务处理不是SMP系统的典型特性,可以提供一种由于所有的监听方同时可看到系统总线的事务处理而不牺牲相关性的取消机制。
由于某些事务处理的等待时间可能长,高性能的NUMA系统可能发现一种取消先前发布的事务处理的协议机制是相当有用的。在特定情况下,NUMA系统可利用一种取消方法使不再需要的抽象取作废。这是一件应做的事,因为处理机不必浪费资源以保持这种悬而未决的事务处理并且不必传输浪费宝贵的总线带宽的数据。然而,在NUMA系统中,可以出现在事务处理取消期间会丢掉事务处理中的数据情况,除非采取了检测并补救这些情况的措施才不会丢失数据。考虑向远程处理节点发出读事务处理的情况,其中该事务处理在提供数据的节点处是成功的,但仍在从远程节点发送该数据时在接收节点取消该事务处理。这会造成丢失数据的唯一有效拷具,并从而丢失数据相关性。
在上面说明的情况中,当提供数据节点处的超高速缓存在可把事务处理取消发送到远程处理节点之前改变状态时,造成数据丢失。由于物理上在和提供读数据的总线不同的总线上发出取消,这种取消不能防止SMP系统中会发生的超高速缓存状态的改变。在接收数据的节点取消事务处理之前,或者在物理上独立的总线之间通告取消之前,可以在一条总线上成功地完成读事务处理并且触发该总线上的超高速缓存的状态改变。在这些情况下,在这些总线之间接口的控制器可以留住数据的唯一有效拷贝,尤其当数据是尚未写入到存储器中的某超高速缓存线的修改拷贝时。一旦取消事务处理,可能永远不会对由节点控制器保持的该数据发出读请求,因此,会丢失数据,并且存储器不一致。在任何使修改的数据通过节点控制器写入到存储器的数据事务处理的过程中可出现这种问题。从而,需要提供一种方法和系统,用于检测和修正这些情况,以避免数据以及相关性的丢失。
发明内容
一种方法,用于避免非均匀存储器存取(NUMA)计算机系统内因取消的事务处理而产生的丢失数据,其中所述NUMA计算机系统包括至少二个连接到互连上的节点并且所述至少二个节点中的每个包括本地系统存储器,所述方法包括步骤:
响应从主节点对驻留着修改的数据的远程节点的数据访问请求,从所述远程节点向所述主节点发送修改的干预表决以及所述修改的数据;
然后,响应位于所述主节点处的处理机由于来自位于所述主节点处的节点控制器的“重新发出”请求而重新发出数据访问请求,取消来自所述主节点的所述数据访问请求;以及
发出回写请求,以从所述节点控制器把所述修改的数据发送到位于所述主节点内的本地系统存储器。
本发明还提供一种能避免因取消的事务处理造成丢失数据的非均匀存储器存取计算机系统,其中所述非均匀存储器存取计算机系统包括至少二个连接到互连上的节点并且所述至少二个节点中的每个包括本地系统存储器,其包括:
发送修改的干预表决和数据的装置,用于响应从主节点对驻留着修改的数据的远程节点的数据访问请求,从所述远程节点向所述主节点发送修改的干预表决以及所述修改的数据;
重新发出数据访问请求的装置,用于响应位于所述主节点处的处理机由于来自位于所述主节点处的节点控制器的“重新发出”请求而重新发出数据访问请求,取消来自所述主节点的所述数据访问请求;以及
发出回写请求的装置,用于发出回写请求,以从所述节点控制器把所述修改的数据发送到位于所述主节点的本地系统存储器。
在下述详细的书面说明中,本发明的所有目的、特性和优点会变为清楚。
附图简介
通过连带附图参照下述对示范性实施例的详细说明,可最好地理解本发明本身、优选使用方式、其它目的以及其优点,附图是:
图1是依据本发明的一个优选实施例的非均匀存储器存取(NUMA)计算机系统的框图;
图2a描述I命令的示范实施例;
图2b是图1中示出的节点控制器的更详细框图;
图3a和3b是NUMA计算机系统中由取消事务处理而造成的丢失数据情况的示例;以及
图4a、4b和4c是依据本发明的优选实施例解决由取消的事务处理造成的丢失数据情况的方法的示范例。
实施例详述
I.NUMA系统
A.系统概述
现参照各附图并尤其参照图1,图1示出依据本发明的一个示范实施例的非均匀存储器存取(NUMA)计算机系统的框图。所描述的实施例例如可由工作站、服务器或大型计算机实现。如图所示,NUMA计算机系统8包括若干(N个)处理节点10a-10d,它们通过节点互连22互连。处理节点10a-10d各包括至少一个到M个的处理机12。处理机12a-12d最好相同,并且可由能从纽约州Armonk镇的国际商用机器(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千字节的存储容量。尽管图1中把L2超高速缓存14a-14d示成在处理机12的外部,应理解可替代地把L2超高速缓存14a-14d作为另一层单片超高速缓存合并到相关的处理机12之中。此外,应理解可采用附加的一层或多层超高速缓存(L3、L4等)以提供附加的数据存储。在下面的讨论中,把每个处理机12以及其相关的超高速缓存分级结构(L1、L2、等)当成单个监听方。
如所示,处理节点10a-10d还包括各自的节点控制器20,后者和系统存储器18以及L2超高速缓存14a-14d一起连接到本地互连16。通过至少执行二种功能,每个节点控制器20充当远程处理节点10的本地代理。首先,每个节点控制器20监听相关的本地互连16并且便利把本地通信事务处理对远程处理节点10的传输。其次,每个节点控制器20监听节点互连22上的通信事务处理并且控制相关的本地互连16上的有关通信事务处理。每个本地互连16上的通信是由仲裁器24控制的。如后面进一步讨论那样,仲裁器24根据处理机12生成的总线请求信号调节对本地互连16的访问并且编制本地互连16上的被监听的通信事务处理的相关性响应。
当然,NUMA计算机系统8还可包括其它的但对于理解本发明非必需的部件,并且相应地为了避免使本发明模糊不清省略掉这些部件。例如,每个节点10还可支持I/O部件(如显示器、键盘或图形打印机)、用于存储操作系统和应用软件的非易失性存储以及用于连接网络或辅助部件的串行和并行端口。
B.存储器组织
NUMA计算机系统8中的所有处理机12共享单个物理存储器空间,这意味着每个物理地址只和系统存储器18中之一的单个单元关联。从而,可由NUMA计算机系统8中的任何处理机12访问的系统存储器的总内容可看成是在四个系统存储器18之间划分的。例如,对于图1所示的本发明的示范实施例,处理机组12定址16吉字节的包括通用存储器区和保留区的地址空间。通用存储器区划分成500兆字节的区段,其中四个处理节点10中的每个节点每四个区段分配一个区段。大约包括二吉字节的保留区包含系统控制区、外围存储器区和I/O区,并向每个处理节点10分配。
出于本讨论的目的,在其系统存储器18中存储某特定数据的处理节点被称为是该数据的主节点,对于该特定数据其它处理节点被称为是远程节点。
C.存储器相关性
由于每个系统存储器18中存储的数据可由NUMA计算机系统8中的任何处理机12请求、访问和修改,NUMA计算机系统8实现一种超高速缓存相关协议,以保持同一处理节点内的超高速缓存之间的以及不同处理节点中超高速缓存之间的相关性。这样,NUMA计算机系统8被适当地分类为CC-NUMA计算机系统。这样实现的超高速缓存相关协议是和实现有关的,并且可包括,例如,周知的“修改”、“排它”、“共享”、无效(MESI)协议或其变型。以下假定L1超高速缓存、L2超高速缓存14和仲裁器24实施常规MESI协议,节点控制器20识别该协议的M(修改)、S(共享)、I(无效)状态,并认为E(排它)状态合并到M状态以用于修正。即,节点控制器20假定远程超高速缓存排它性持有的数据已被修改,不管事实上是否修改该数据。
D.互连体系结构
可采用基于总线的广播体系结构、基于交换的广播体系结构或基于交换的非广播体系结构实现本地互连16和节点互连12。然而,在一种示范实施例中,至少节点互连22是按由IBM公司开发的6xx通信协议控制的基于交换的非广播互连实现的。本地互连16和节点互连22允许分割的事务处理,即意味着在构成通信事务处理的地址占有和数据占有之间不存在固定的定时关系,并且还意味着数据分组的次序可以不同于相关地址分组的次序。最好还通过流水线通信事务处理加强本地互连16以及节点互连12的使用,流水线通信事务处理允许在前一通信事务处理的主方接收来自各接收方的相关性响应之前发出相继的通信事务处理。
和所实施的互连体系结构的类型或类型组无关,至少使用三种类型的“分组”(本文中使用的分组在属上指的是信息的分离单元)——地址、数据和相关性响应——在处理节点10之间通过节点互连以及在监听方之间通过本地互连16传递信息。现参照表I和表II,其中分别给出地址分组和数据分组的有关字段和定义的概要。
表1
字段名 | 说明 |
地址<0:7> | 定义用于相关性的通信事务处理的属性的变址数,写全,并保护 |
地址<8:15> | 用于识别某通信事务处理中的所有分组的标记 |
地址<16:63> | 指示请求中的物理、虚拟或I/O地址的地址部分 |
A寄偶性<0:2> | 指示地址位<0:63>的奇偶性 |
T描述符 | 指示通信事务处理的长度和类型 |
表2
字段名 | 说明 |
数据<0:127> | 用于读写事务处理的数据 |
数据奇偶性<0:15> | 指示数据行<0:127)的奇偶性 |
D标记<0:7> | 用于把数据分组和地址分组匹配的标记 |
D有效<0:1> | 指示数据字段和D标记字段是否存在有效信息 |
如表I和表II所指示,为了使接收方节点或监听方确定每个分组所属于的通信事务处理,通信事务处理中的每个分组用一个事务处理标记标别。业内人士可理解,可采用附加的流控制逻辑以及相关的流控制信号以调节有限的通信资源的使用。
在各个通信节点10内,在每个监听方和本地仲裁器24之间通信状态以及相关性响应。在下面的表III中总结本地互连16中用于状态及相关性通信的信号线。
表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也收集每个监听方的AResp Out表决,并且最好在下个周期期间发送ARespIn表决。AResp的可能表决最好包括表V中列出的相关性响应,表V中列出递减优先级次序的AResp表决。
表V
相关性响应 | 意义 |
重试 | 请求源必须重试事务处理-通常出于流控制原因 |
修改的干预 | 超高速缓存中的线被修改并要从超高速缓存流到请求者 |
共享的干预 | 超高速缓存中的线未被修改(并可能共享)并要从超高速缓存流到请求者 |
重新运行 | 被监听的请求具有长的等待时间,请求源被指示晚些时候重新发出事务处理 |
共享的 | 超高速缓存中线保持为共享 |
无 | 超高速缓存中的线无效 |
通常由节点控制器20发出的重新运行(ReRun)AResp表决表明被监听的请求具有长的等待时间(例如,该请求将由远程处理节点处的处理机12或系统存储器18服务)并且会指示该请求的源晚些时候重新发出事务处理。这样,和重试(Retry)AResp表决不同,ReRun使表决出ReRun的事务处理的接收方(而不是该事务处理的发出方)负责晚些时候促使重新发出该通信事务处理。
现参照图2a,图中示出I命令的示范实施例,I命令用于在互连22上的节点控制器20之间传递响应和命令。如图所示,I命令36包括五个字段:命令类型字段33、目标节点字段35、源节点字段37、事务处理标记字段38以及有效(V)字段39。命令类型字段33对I命令36的类型提供编码指示。在下面的表VI中列出在命令类型字段33内可编码的一些可能的I命令。
表VI
I命令分组 | I命令类型 | 意义 |
命令 | 第三节点运行 | 在第三(目标)节点运行缓冲的事务处理 |
出错 | 在事务处理中检测出错误 | |
重新发出 | 向源节点重新发出事务处理 | |
相关性响应 | 重试 | 重试事务处理--通常出于流控制原因 |
修改的干预 | 超高速缓存中的线被修改并会传到目标节点 | |
共享的 | 超高速缓存中的线保持为共享的 | |
无 | 超高速缓存中的线无效 |
对于各种类型的I命令,在目标节点字段35中规定接收方,在源节点字段37中规定发送节点,并且在事务处理标记字段38中规定和该I命令有关的事务处理。I命令36的有效性是通过有效(V)字段39指示的。
E.节点控制器
现参照图2c,其中示出图1的NUMA计算机系统8中的节点控制器20的更详细框图。如图2c中所示,连接在本地互连16和节点互连22之间的每个节点控制器20包括事务处理接收单元40、事务处理发送单元42、数据接收单元(DRU)44和数据发送单元(DSU)46。例如可利用现场可编程门阵列)(FPGA)或应用专用集成电路(ASIC)实现事务处理接收单元40、事务处理发送单元42、DRU44和DSU46。如图所示,借助地址信号由事务处理接收单元40和事务处理发送单元42处理以及数据信号由DSU44和DRU46处理,通过节点控制器20的地址通路和数据通路分为二支。
指定成指示离开节点互连22的事务处理单元负责:接收经过I命令通道来自其它节点的I命令,接收来自节点互连22的共享地址总线的事务处理,在本地互连上发出事务处理以及把响应传送到事务处理接收单元42。事务处理接收单元40包括响应多路复用器52,后者从节点互连22接收事务处理并且把选定的事务处理传送到总线主控器54以及事务处理发送单元42内的相关性响应逻辑电路56二者。响应接收来自响应多路复用器52的通信事务处理,总线主控器54可以在其本地互连16上启动一个通信事务处理,该通信事务处理可和所接收的通信事务处理相同,或者生成用于TSU内的目录控制的通信事务处理供诸如驱逐(evictions)的目录维护。
事务处理发送单元42由其命名表明是流入节点互连22的事务处理的输送管道,它和事务处理接收单元40交互以便处理存储器请求事务处理,它还向DRU44和DSU46发命令以控制本地互连16和节点连22之间的数据传输。事务处理发送单元42还借助相关性响应逻辑电路56为节点互连22实现选定(即,MSI)的相关性协议,并且还借助目录控制逻辑电路58保持相关性目录。
表VII
相关性目录状态 | 本地超高速缓存器中的可能状态 | 远程超高速缓存器中的可能状态 | 意义 |
修改的(M) | I | M,E,或I | 超高速缓存线可能在远程节点修改 |
共享的(S) | S或I | S或I | 超高速缓存线可能在远程节点保持成非排它的 |
无效的(I) | M,E,S,或I | I | 超高速缓存线未由任何远程节点保持 |
待定共享的 | S或I | S或I | 超高速缓存线在远程节点处处于无效处理过程中 |
待定修改的 | I | M,E,或I | 可在远程节点处修改的超高速缓存线在主节点处处于写回系统存器的处理过程中,在远程节点其可能无效 |
相关性目录50为那些本地处理节点是主节点的对远程节点中的超高速缓存检查出的数据存储系统存储器地址(即,超高速缓存线)的指示。各数据的地址指示是和具有该数据的拷贝的每个远程处理节点的标识符以及这个这种远程处理节点中该数据的相关性状态一起存储的。表VII总结相关性目录中各项可能的相关性状态。如表VII中所示,对远程处理节点所持有的超高速缓存线的相关性状态的了解是不准确的。这种不准确的原因在于,远程持有的超高速缓存线可在不通知主节点的节点控制器20下进行从S到I、从E到I或从E到M的迁移。
II.丢失数据问题
现参照图3a和3b,图中示出由于在NUMA计算机系统中的被取消事务处理而造成的丢失数据情况的例子。在图3a中,由主节点10a的处理机12a做出的超高速缓存线的读请求被传送到远程节点10b,在该远程节点10b中该超高速缓存线保持在修改的状态。接着,该读请求在远程节点10b接收修改的干预响应。修改的干预是一种这样的相关性表决,即,若请求是只读请求,它允许一个超高速缓存直接向一个或多个其它超高速缓存提供修改的数据,并把接收该修改的数据的所有超高速缓存带到共享状态。在MESI和MSI协议中,共享状态意味着所有的超高速缓冲存储器和主节点10a处的系统存储器中的线的拷贝是相容的。这样,远程节点10b中持有该修改的线的超高速缓存进入共享状态,但是,由于该超高速缓存线的主节点是10a,必须更新主节点10a中的系统存储器。接着如图3b中所示,修改的干预响应以及修改的数据一起送回主节点10a,在主节点中发出“重新运行”事务处理。当主节点10a中的处理机12a重新发出该事务处理时,主节点10a处的某代理取消该事务处理。取消该“重新运行”事务处理的许多原因中的一个可能是因为该事务处理是一个被认为是不再需要的推论读。同时,远程节点10b中的超高速缓存可能已经不声不响地废弃该超高速缓存线(因为它现在处于共享状态),并且该超高速缓存线的唯一正确拷贝驻留在无法得到本地存储器18的节点控制器20中。除非检测到并且纠正上述情况,该数据会丢失,和上述情况关联的另一个问题是,节点控制器20内的超高速缓存相关性目录在出现数据传输之前不能被清除,这可能会在数据丢失后由于总线的冲突检测协议而造成死锁。
III.这种丢失数据问题的解决办法
为解决丢失数据问题,节点控制器20中的超高速缓存相关性目录必须能够观测所有上述事件。借助节点控制器20能看到的信息这是有可能的。节点控制器20还必须在从相关性响应表决窗口清除所有事务处理之前缓冲所有的事务处理。若节点控制器20检测出取消某被“重新运行”的事务处理而对该事务处理节点控制器的表决是修改的干预,则说明已出现上述丢失数据的情况。NUMA计算机系统典型地提供一种指示,例如带有事务处理的地址的R位属性,以表明事务处理的种类。例如,R=0代表原始的事务处理,而R=1代表某事务处理已被“重新运行”并且因“重新运行”请求而重新发出。
一旦节点控制器20检测出丢失数据情况,节点控制器20必须按如下解决该丢失数据情况。节点控制器20必须生成一个本地总线上的请求,其使修改的数据写回到本地存储器18。由于在事务处理通过“响应”阶段之前,节点控制器20保持所有以前的事务处理,节点控制器20可以生成一个“写回并清除”(WBC)总线事务处理以把数据写回到本地存储器18。节点控制器20必须在标记空间中使用节点控制器20拥有的标记。不能使用原始标记,因为拥有该标记的处理机可能再次使用该标记或者别的总线主控器可能会混淆相同的标记。节点控制器20可以利用待决缓冲器的标识(ID)、节点ID或其自己的总线主控器ID产生唯一标记。
当节点控制器20得到总线时,节点控制器20生成带有新标记并且R位被置成“1”的WBC事务处理。节点控制器20还提供在其数据缓冲器中保持的用于WBC的数据,改变该数据的标记以和新的事务处理标记匹配。若节点控制器20分割成分离的地址单元和数据单元,还必须用新标记重新标记数据单元中所驻留的数据分组。这用一个向该数据单元传送新标记和旧标记的命令实现。在数据写到存储器之前,节点控制器20中的相关性机制必须保护该超高速缓存线的对其重试事务处理的相关性。节点控制器20不会重试其自己的WBC事务处理, 因为R位被置成“1”。一旦完成该WBC请求,从待决缓冲器删除该条目并更新目录状态。
现参照图4a、4b和4c,其中示出依据本发明的一种示范实施例解决因取消事务处理造成的丢失数据情况。如图4a中所示,在主节点10a向驻留着修改的数据的远程节点10b传送读请求。在远程节点10b该读请求接收修改的干预的表决。接着如图4b中所示,远程节点10b向主节点10a发送修改的干预和修改的数据。当主节点10a中的处理机12a重新发出作为来自节点控制器20的“重新运行”请求的结果的R=1事务处理时,主节点10a发出“重试”表决,从而取消该事务处理。节点控制器20可观察到已出现丢失数据情况。节点控制器20接着如上面所述生成新标记,并发出带有R=1的一个WBC请求。如图4c中所示,节点控制器20内的相关性机制允许仿佛该WBC请求是本地生成的WBC请求的“重新运行”下完成该WBC请求。从而,本地存储器18中的数据现在是有效的。
如已说明那样,本发明提供一种改进型的方法,用于避免因在NUMA计算机系统内取消事务处理而造成的丢失数据。
虽然本发明是参照示范实施例具体地示出和说明的,业内人士理解,在不背离本发明的精神和范围下在形式和细节上可对其做出各种修改。
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/259,378 US6192452B1 (en) | 1999-02-26 | 1999-02-26 | Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system |
US09/259,378 | 1999-02-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1264874A CN1264874A (zh) | 2000-08-30 |
CN1116642C true CN1116642C (zh) | 2003-07-30 |
Family
ID=22984698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99126571.8A Expired - Fee Related CN1116642C (zh) | 1999-02-26 | 1999-12-24 | 避免由于取消事务处理造成数据丢失的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6192452B1 (zh) |
JP (1) | JP3629511B2 (zh) |
CN (1) | CN1116642C (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591348B1 (en) * | 1999-09-09 | 2003-07-08 | International Business Machines Corporation | Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system |
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 |
US6938128B1 (en) | 2000-07-20 | 2005-08-30 | Silicon Graphics, Inc. | System and method for reducing memory latency during read requests |
US6678798B1 (en) * | 2000-07-20 | 2004-01-13 | Silicon Graphics, Inc. | System and method for reducing memory latency during read requests |
US6826619B1 (en) | 2000-08-21 | 2004-11-30 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6487643B1 (en) * | 2000-09-29 | 2002-11-26 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
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 |
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 |
US7234029B2 (en) * | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
US7213049B2 (en) * | 2001-07-17 | 2007-05-01 | Bea Systems, Inc. | System and method for transaction processing with transaction property feature |
US7266587B2 (en) * | 2002-05-15 | 2007-09-04 | Broadcom Corporation | System having interfaces, switch, and memory bridge for CC-NUMA operation |
US20040059858A1 (en) * | 2002-09-23 | 2004-03-25 | Blankenship Robert G. | Methods and arrangements to enhance a downbound path |
US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
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 |
US7395347B2 (en) * | 2003-08-05 | 2008-07-01 | Newisys, Inc, | Communication between and within multi-processor clusters of multi-cluster computer systems |
CN101248517B (zh) * | 2005-08-31 | 2013-05-29 | 英特尔公司 | 包括微处理器和第四级高速缓存的封装 |
US7769957B2 (en) * | 2007-06-22 | 2010-08-03 | Mips Technologies, Inc. | Preventing writeback race in multiple core processors |
US20080320233A1 (en) * | 2007-06-22 | 2008-12-25 | Mips Technologies Inc. | Reduced Handling of Writeback Data |
US8627014B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Memory model for hardware attributes within a transactional memory system |
CN102122256B (zh) * | 2011-03-28 | 2013-01-09 | 中国人民解放军国防科学技术大学 | 一种用于进程间通信的管道式通信方法及系统 |
US20120311262A1 (en) * | 2011-06-01 | 2012-12-06 | International Business Machines Corporation | Memory cell presetting for improved memory performance |
US9280468B2 (en) * | 2011-10-26 | 2016-03-08 | Qualcomm Technologies, Inc. | Three channel cache-coherency socket protocol |
US9287005B2 (en) | 2013-12-13 | 2016-03-15 | International Business Machines Corporation | Detecting missing write to cache/memory operations |
US10237169B2 (en) * | 2016-04-01 | 2019-03-19 | Intel Corporation | Technologies for quality of service based throttling in fabric architectures |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
US5895484A (en) * | 1997-04-14 | 1999-04-20 | International Business Machines Corporation | Method and system for speculatively accessing cache memory data within a multiprocessor data-processing system using a cache controller |
US5940856A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Cache intervention from only one of many cache lines sharing an unmodified value |
US5943684A (en) * | 1997-04-14 | 1999-08-24 | International Business Machines Corporation | Method and system of providing a cache-coherency protocol for maintaining cache coherency within a multiprocessor data-processing system |
US6067611A (en) * | 1998-06-30 | 2000-05-23 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency |
US6085293A (en) * | 1998-08-17 | 2000-07-04 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests |
US6081874A (en) * | 1998-09-29 | 2000-06-27 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect |
US6067603A (en) * | 1998-10-01 | 2000-05-23 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect |
US6115804A (en) * | 1999-02-10 | 2000-09-05 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention |
-
1999
- 1999-02-26 US US09/259,378 patent/US6192452B1/en not_active Expired - Fee Related
- 1999-12-24 CN CN99126571.8A patent/CN1116642C/zh not_active Expired - Fee Related
-
2000
- 2000-02-23 JP JP2000045925A patent/JP3629511B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1264874A (zh) | 2000-08-30 |
JP3629511B2 (ja) | 2005-03-16 |
US6192452B1 (en) | 2001-02-20 |
JP2000250883A (ja) | 2000-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1116642C (zh) | 避免由于取消事务处理造成数据丢失的方法和系统 | |
CN1157659C (zh) | 非均匀存储器访问数据处理系统及其通信方法 | |
CN1116643C (zh) | 具有共享干预支持的非均匀存储器访问数据处理系统及方法 | |
CN1156771C (zh) | 用于在非均匀存储器存取计算机系统内提供逐出协议的方法和系统 | |
US6546429B1 (en) | Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry | |
CN1244055C (zh) | 计算机系统及其通信的方法 | |
EP0817073B1 (en) | A multiprocessing system configured to perform efficient write operations | |
US6546471B1 (en) | Shared memory multiprocessor performing cache coherency | |
EP0817071B1 (en) | A multiprocessing system configured to detect and efficiently provide for migratory data access patterns | |
CN1114865C (zh) | 用于避免冲突回写造成的活锁的方法和系统 | |
US6067611A (en) | Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency | |
WO1995025306A2 (en) | Distributed shared-cache for multi-processors | |
JPH10187645A (ja) | プロセス・ノードの多数のサブノード内にコヒーレンス状態で格納するように構成されたマルチプロセス・システム | |
CN1116641C (zh) | 用于避免因冲突的失效事务而造成的活锁的方法和系统 | |
KR20000022712A (ko) | 노드 상호 접속망 상에서 요구를 예측 방식으로 발행하는 비균일 메모리 액세스 데이터 처리 시스템 | |
KR100234503B1 (ko) | 디렉토리 기반의 캐시 코히어런스 프로토콜을 사용하는 멀티프로세서에서의 무효화 버스 최적화 | |
EP0981092A2 (en) | Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests | |
US6813694B2 (en) | Local invalidation buses for a highly scalable shared cache memory hierarchy | |
US20100241814A1 (en) | Bandwidth-efficient directory-based coherence protocol | |
US20080104333A1 (en) | Tracking of higher-level cache contents in a lower-level cache | |
US20040030950A1 (en) | Apparatus for imprecisely tracking cache line inclusivity of a higher level cache |
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: 20030730 Termination date: 20100125 |