CN1220949C - 容忍多处理器数据处理系统中不可恢复差错的方法和装置 - Google Patents
容忍多处理器数据处理系统中不可恢复差错的方法和装置 Download PDFInfo
- Publication number
- CN1220949C CN1220949C CNB011033703A CN01103370A CN1220949C CN 1220949 C CN1220949 C CN 1220949C CN B011033703 A CNB011033703 A CN B011033703A CN 01103370 A CN01103370 A CN 01103370A CN 1220949 C CN1220949 C CN 1220949C
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- node
- catalogue
- handling system
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/427—Loop networks with decentralised control
- H04L12/433—Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
Abstract
一个基于目录的多处理器计算机系统被提供了一个机制,该机制通过提供检查数据差错,并且在检测到一个差错时确定系统中是否有另一个数据有效副本的能力来容忍差错。如果另一个数据副本可用,则在不需要产生一个中断的情况下向请求数据的处理器/存储器控制器提供数据。
Description
技术领域
本发明涉及计算机系统领域,更具体地,是涉及一个容忍多处理器系统中数据差错的数据结构和方法。
背景技术
多处理计算机系统通常包含两个或更多的可以被用来完成计算任务的处理器。可以在一个处理器上完成一个具体的计算任务,其它的处理器同时完成无关的处理任务。可选地,一个具体任务的各组成部分可以被分布在多个处理器上以便减少完成计算任务所需的时间。概括地讲,处理器是一种被用来对一或多个操作数进行操作以产生一个结果的设备。根据处理器执行的一个指令来完成操作。
具有单个基地址和相关(coherent)高速缓存的多处理器系统提供了一种灵活并且强有力的计算环境。单个基地址和相关高速缓存共同缓解了数据分区和动态负载平衡的问题。单个基地址和相关高速缓存还为并行编译器,标准操作系统和多程序提供了较好的支持,从而允许更灵活和有效地利用机器。
多处理计算机系统的一种结构是分布存储器体系结构。分布存储器体系结构通常包含多个结点,其中每个结点均具有一或多个处理器和一个存储器。各结点被连接到一个网络以允许在结点之间进行通信。当被当成一个整体时,所有结点的存储器组合构成一个可以被各个结点访问的“共享存储器”。通常,用目录来标识哪些结点具有对应于一个具体地址的数据的副本。通过检查目录并确定数据状态来维护数据的相关性。
上述示意性的并且已经出现的基于目录的高速缓存相关体系结构包含高速缓存相关非统一存储器访问(CC-NUMA)和唯高速缓存存储器体系结构(COMA)。CC-NUMA和COMA体系结构均具有一个分布存储器,一个可伸缩互连网络,和基于目录的高速缓存相关。分布存储器和可伸缩互连网络提供所需的可伸缩存储器带宽,而基于目录的方案提供了高速缓存相关。与CC-NUMA体系结构相反,COMA体系结构把一个每结点(per-node)主存储器转换成一个也被称作吸引(attraction)存储器(AM)的大的第二或第三高速缓存。通过在主存储器数据的高速缓存线大小分区中加入标签来进行转换。结果,系统中数据项的位置与数据项的物理地址隔离开来,并且根据一个存储器索引模式在主存储器中自动迁移或复制数据项。
不幸的是,在COMA和NUMA体系结构中,数据可能会被破坏,从而导致存储器中的差错。由于存储器作为电子存储设备会返回不同于最初存储的内容的信息,所以会发生这种差错。一般情况下,通常会在一个存储器系统中发生两种差错:可重复(硬)差错和瞬时(软)差错。一个硬差错通常是一个硬件故障的结果,并且由于是始终如一并且可重复的,所以易于诊断和纠正。当一个位仅一次读出错误数值并且后续操作均正确时,就发生了一次软差错。
对存储器差错的唯一防护是使用存储器检错或纠错协议。某些协议可以只检测一个八位数据字节的一个位中的差错,其它协议可以自动检测多于一个位中的差错。别的协议可以检测并纠正单位和/或多位存储器问题。
一般的差错检测/纠正机制包含奇偶校验,纠错码(ECC),等等。本领域中众所周知的是使用奇偶校验和纠错码(ECC)确认在一个中央处理单元(CPU)和一个存储器,编程输入/输出(PIO)设备或其它设备之间传送的数据的可靠性。并且,ECC被用来恢复存储器中的某些数据差错。
当允许奇偶校验检查时,每当一个字节被写到存储器中时,一个被称作奇偶校验生成器/检查器的逻辑电路检查该字节并且确定数据字节具有偶数或奇数个一。如果有偶数个一,则第九(奇偶校验)位被设成一,否则被设成零。这样,无论在最初的八个数据位被有多少个位被设成一,九个位加起来总有奇数个一。这种机制被称作奇校验。当从存储器读出数据时,奇偶校验电路充当一个差错检查器。该电路读出所有九个位并且再次确定有偶数还是奇数个一。如果有偶数个一,则这些位中的一个很可能有差错。当检测到一个奇偶差错时,奇偶校验电路产生一个中断,该中断指示处理器暂停运行以保证不正确的存储器不会破坏正在执行或可执行的进程。
奇偶校验检查提供了单位差错检测,但不校正存储器差错。并且,奇偶校验检查仅仅确定一个差错的存在,并不能校正差错。ECC不仅检测单位和多位差错,而且可以校正单位或多位差错。ECC使用一个特殊的算法对一个位块中的信息进行编码,这个编码包含足够的细节从而允许恢复受保护数据中的一个单位或多位差错。是校正单位差错还是校正多位差错取决于所使用的ECC算法。当ECC检测到一个不可校正的差错时,便产生一个中断,该中断指示系统关机以避免数据被破坏。
常规差错检测/校正机制的一个问题是系统中断频率比期望的要高。根据故障性质和系统的软件性能,中断可以导致系统或处理器复位。由于导致系统停机,丢失数据和损失效率,中断是不期望的。
因而需要一种能够检测差错并且使系统中断最少的结构和技术。系统应当能够检测单位或多位差错并且即使如此仍然能够避免系统中断。
发明内容
概括地讲,本发明提供了一个适于检测数据差错并且在检测到差错时能够确定系统内是否有数据的一个有效副本可用的方法和系统。
在本发明的一个方面,提供了一个在基于目录的数据处理系统中传送数据的方法。该方法包括的步骤有:通过请求方设备访问与该请求方设备相关的一个本地存储器中包含的数据;确定数据中是否存在一个差错状态;在存在一个差错状态的情况下,从一个远端存储器请求该数据。在一个实施例中,从一个远端存储器请求数据包括首先访问一个目录以确定数据的状态。如果状态指示远端存储器中的数据可用,则在一个连接请求方设备和远端存储器的互连上放置一个请求。
在本发明的另一方面,一个数据处理系统包含一个第一结点,一个第二结点和一个连接第一结点和第二结点的互连,其中第一结点具有一个第一处理单元,一个第一存储器和一个目录,第二结点具有一个第二处理单元和一个第二存储器。第一处理单元包括一个存储器控制器。数据处理系统适于执行一个包括以下操作的过程:由存储器控制器访问第一存储器中包含的数据;确定数据中是否存在一个差错状态;在存在一个差错状态的情况下,从第二存储器请求数据。
在本发明的另一个方面,提供一个基于目录的数据处理系统,该系统具有一个分布共享存储器。数据处理系统包括:一个第一结点,该结点至少包含一个第一处理器,一个第一存储器,一个第一存储器控制器和一个包含第一存储器的一或多个存储器模块的状态数据的第一目录;一个第二结点,该结点至少包含一个第二处理器,一个第二存储器,一个第二存储器控制器和一个包含第二存储器的一或多个存储器模块的状态数据的第二目录;和一个连接第一结点和第二结点的互连。第一存储器控制器被用来访问第一存储器中包含的数据并且确定数据中是否存在一个差错状态,如果存在一个差错状态,则在互连上放置一个数据请求。
附图说明
本领域的技术人员通过下面的详细描述和附图会理解本发明的这些和其它特性和目标。
图1是一个本发明可以在其中找到应用的多处理器系统的模块图。
图2是图1的一个结点的详细模块图。
图3是本发明的方法的一个简化逻辑流程图。
图4是示出图3的方法的其它细节的逻辑流程图。
图5是另一个示出图4的一个可选逻辑流程的逻辑流程图。
具体实施方式
概括地讲,本发明提供了一个方法和系统,该方法和系统适于在多处理系统中检查数据差错并且在检测到一个差错的情况下确定系统中是否有一个可用的有效数据副本。如果有一个数据的有效副本,则在不需要产生一个中断的情况下数据被提供给请求数据的设备(例如处理器和/或存储器控制器)。通过只在没有请求的存储器模块的远端副本的情况下才产生一个系统中断,本发明较好地提高了系统可用性。
在一个实施例中,一个请求方设备(例如一个存储器控制器)提交一个存储器读请求,表明期望得到一个指定存储器位置上存储的数据。存储器控制器确定在一个相关存储器中是否驻留被请求的存储器模块的一个有效副本。相关存储器可以是高速缓存存储器或非高速缓存存储器(例如主存储器)。如果存储器模块驻留并且有效,则存储器控制器相应向请求方处理器提供被请求数据模块的一个副本。否则请求存储器模块的一个远端副本。
一个请求方存储器控制器可以接收一个存储器模块并且执行所有必需的差错检测和校正指令。当在接收的存储器模块内出现不可恢复差错时,请求方存储器控制器请求存储器模块的一个远端副本。在一个实施例中,相关的请求方处理器则在确定是否存在一个不可恢复差错状态之前开始处理远端存储器模块。
尽管这里参照了诸如NUMA和COMA的具体系统体系结构,但本发明并不仅限于一个具体的体系结构。对具体体系结构的参考只是示例性的。通常,本发明可以应用于任何基于目录的多处理器系统。
图1是可以应用本发明的诸如NUMA系统的一个通用多处理器系统10的简要模块图。一个系统互连12连接多个诸如Node0-Nodei的结点14,每个结点均包含至少一个诸如P0-Pi的处理器。每个处理器P0-Pi均有一个可以包含任意数量的高速缓存级别的高速缓存存储器24与之关联。系统10还包含一个I/O适配器18和各种I/O设备20。可以使用各种本领域中已知和未知的高速缓存相关模式来保证数据的最近有效副本被任意的处理器P0-Pi所使用。
图2还提供了与系统互连12相连的结点14的细节。一个网络接口21提供把结点14连接到互连12所需的电路。结点14还包含至少一个与高速缓存24关联的处理器22(对应于图1的一个处理器Pi),其中高速缓存24可以包含主或板上高速缓存和一或多个片外或低级高速缓存。本发明并不受限于特定的高速缓存体系结构。结点14还包含一个可以象在NUMA系统中那样被用作主存储器或象在COMA系统中那样被用作吸引存储器的存储器26。一个存储器控制器28支持通信高速缓存相关功能以及对结点14的差错检查。尽管在图中分别示出,可以理解在其它实施例中存储器控制器28和处理器22可以被认为是一个集中处理单元,该单元被用来完成存储器控制功能和数据处理。
如存储器模块30所示,存储器26被排列成存储器模块。每个结点14均包含一个目录29,对于每个与互连12相连的结点14,该目录均包含存储器26的存储器模块的入口(entry)。在使用NUMA类型的体系结构的情况下,目录29包含一个状态字段32和一个数据字段34。数据字段34对应于存储器26内的一个唯一地址模块(例如存储器模块30)。状态字段32包含关于数据字段34中的数据是否最新,数据是驻留在请求数据的特定结点14中(即,是一个本地副本)还是驻留在其它结点14中(即,是一个远端副本)的信息。正如这里所使用的,一个远端副本是指位于一个不同于请求数据的结点的结点14的存储器中的数据。远端数据可以驻留在任何形式的,可以被请求数据的本地存储器设备访问的存储器设备中。例如,远端数据可以驻留在另一个与互连12相连的结点14的一个处理器的高速缓存或主存储器中。
在使用COMA类型的体系结构的情况下,目录29还包含一个地址字段。为体系结构提供了地址字段35,其中在任意指定时间可以把许多数据片段映射到一个具体的存储器模块30上。结果,有必要维护目录29中的一个地址字段35以便跟踪数据的位置。
在一个实施例中,通过一种MESI协议可以确定一个高速缓存的“状态”。MESI协议中的一个高速缓存数据块具有四个状态“M”(被修改),“E”(独占),“S”(共享)或“I”(无效)中的一个状态。在MESI协议下,每个高速缓存入口(例如一个32字节扇区)具有两个附加位,这两个附加位从四个可能状态中指示出入口的状态。根据请求方处理器寻找的入口的状态和访问类型,状态可以被改变,并且为请求方处理器的高速缓存中的入口设置一个具体的状态。例如,当一个扇区处于被修改状态时,被寻址的扇区只有在具有该被修改扇区的高速缓存中才是有效的,并且被修改的值未被回写到系统存储器中。当一个扇区处于独占状态时,该扇区只在被标记的扇区中出现,并且与系统存储器是一致的。如果一个扇区处于共享状态,这个扇区在该高速缓存和在至少另一个高速缓存中是有效的,其中所有的共享扇区均与系统存储器一致。最终,当一个扇区处于无效状态时,这表明被寻址的扇区未驻留在高速缓存中。如果一个扇区处于被修改,共享,独占或无效状态中的任何一个状态,根据具体的总线处理事务该扇区可以在状态之间切换。虽然一个处于独占状态的扇区可以切换到任何其它状态,但一个扇区只在首先处于无效状态的情况下才可以变成独占的。MESI协议是众所周知的,但参考在这里被引用的共同转让的美国专利第5,946,709号可以有进一步的理解。另外,本发明并不特定于一个具体的协议,MESI只是说明一个可以被利用的协议。
图3是示出本发明使用的一个过程300的流程图。在步骤302,过程300开始并且有关的处理器22提交一个存储器请求(即一个读或取数)指令。在步骤306,存储器控制器28访问并检查被用来跟踪存储器26中各个存储器模块30的状态的目录29。在步骤308,存储器控制器确定所请求的数据在本地是否有效。即,确定本地数据(即,与请求方处理器关联的存储器中包含的数据)是否有效。“有效”意味着数据没有被一个不同的结点14上的另一个处理器修改。如果所请求的数据有效并且本地可用,则方法前进到访问本地数据的步骤312。
如果所请求的数据无效或本地不可用,则过程前进到步骤310。在步骤310中,存储器控制器28提交一个远端取数请求以得到数据的一个远端副本。在步骤314中,方法300查询是否已经接收到数据。过程300继续通过步骤314直到已经接收到远端数据。一旦在步骤314中接收到远端数据,则方法300沿着逻辑线路328前进,该线路指示在步骤320中把数据发送到处理器22。在步骤324完成操作。
可选地,当在步骤314中接收到数据之后,可以在步骤316中更新本地存储器目录(数据可以被写到主存储器或吸引存储器中)。接着在步骤318中完成过程300。接着相同存储器控制器/处理器对数据的后续请求可以在本地访问数据(步骤312)。
在一个实施例中,当在步骤320中把远端副本发送到处理器之后可以进行差错检查。这样,如果在步骤314确定已经接收到数据,则在步骤320中把数据发送到处理器并且随着处理器开始进行处理,方法300继续执行。如果一个奇偶校验检查器确定接收到的数据有一个奇偶校验错,则可以执行一个数据校正算法。如果接收数据中没有差错,则数据被传递到处理器中的执行单元。相应地,存储器控制器提供的接收数据被确定为有效的并且直接把数据传送到执行单元而不需要如已知系统的存储器控制器中所通常具有的与奇偶校验和ECC操作相关的等待时间。
如果在步骤312执行一次本地存储器访问,则在步骤322进行一次差错确定。如果没有出现一个差错状态(或者可以被诸如ECC的常规装置校正),则在步骤312中把数据提供给处理器22,并且在步骤314完成操作。
如果本地数据包含一个不能被常规方法校正的差错状态,则方法300前进到步骤330并且查询数据的一个远端副本是否可用。在一个使用MESI协议的实施例中,方法300会确定数据状态是否共享状态。如果在一个远端位置上数据可用,则方法300前进到步骤310,在该步骤中提交一个取数请求以检索数据的远端副本。如果数据没有远端驻留(步骤330),则在步骤332产生一个机器检查中断并且在运行诊断程序或类似程序的同时停止数据处理。这样,本发明确定是否发生一个数据差错,并且在有一个不可校正的数据差错时从其它地方得到数据的一个可用副本。
本发明也可以包含附加的,如下面参照图4和5描述的数据差错识别功能。在图3的模块334内可以分别执行图4和5的方法400和500。一旦接收到请求的数据,模块334沿着逻辑线路338从步骤314开始前进,并且当在具有一个共享状态的本地数据中出现一个差错状态时沿着逻辑线路336从步骤330开始前进。在一个实施例中,方法300通过从逻辑线路328引出的步骤沿着逻辑线路336和338并行前进。相应地,如上所述,在确定一个差错之前可以处理通过步骤310提交的远端取数接收的数据。并且,在方法400,500中使用奇偶校验和ECC只是为了说明。应当理解,本发明不要求使用奇偶校验,ECC或任何其它的特定检测机制;所需的只是一个数据差错的某种指示。
首先参照图4,逻辑线路336(从步骤330)前进到步骤402,该步骤查询系统是与NUMA类型相反的COMA类型系统还是其它系统。如果系统是COMA类型的系统,则在步骤404中把存储器模块标成对本地处理器禁用或无效的。步骤404是一个可选的步骤,在具有能够动态再分配数据的硬件的唯高速缓存系统中可以执行该步骤。步骤404提供了一种更高速硬件部件可以用来监视无效数据的机制。在任意情况下,方法继续到步骤406,在该步骤中系统记录差错以便被一个服务处理器用来确定失效的字段替代单元(FRU)。在知道失效位的情况下系统可以确定一个失效的卡或DIMM。在一个实施例中,通过比较失效本地数据(所有数据位和奇偶校验或ECC位)和在步骤310通过可选路径338根据远端取数请求接收的好数据来确定失效位。本地数据中包含的、与通过远端取数得到的假定良好的数据不匹配的位被认为是失效的。通常不知道因一个不可校正差错(UE)造成的失效位;因而在一个数据分布在多个卡或存储器模块上的已知系统中通常不能隔离系统中的一个失效卡/存储器模块。
一旦在步骤406中记录了这种差错数据,则在步骤408通知操作系统以便允许操作系统处理差错。例如,操作系统可以能够在一个致命差错发生之前结束访问存储器的失效区域的当前任务。
图5的方法为模块334提供了一个可选方法。在步骤502中,请求方结点专门确定在步骤312中访问的哪些位是损坏的。在一个实施例中,以图4的步骤406所述的方式实现步骤502。即,处理器/存储器控制器比较在步骤312中接收的失效本地数据(所有数据位和差错检测位,例如奇偶校验或ECC位)和在步骤310通过远端取数请求接收的好数据。本地数据中包含的与通过远端取数得到的假定良好的数据不匹配的位被认为是失效的。在步骤504中,存储器控制器向有坏数据的地址写入通过步骤310的远端取数得到的假定良好的数据。在步骤506,存储器控制器从刚被写入的地址读取数据并且在步骤508进行差错检测。如果没有检测到差错,则方法前进到指示差错已经被校正的步骤510,并且记录在步骤512已经发生的一个可校正差错。
如果在步骤508检测到一个差错,则存储器控制器在步骤514确定差错是否是不可校正的。一个不可校正的差错表明数据中包含的差错不可改变或已经恶化。如果差错是不可校正的,则过程以参照图4所述的方式继续进行。这样,步骤402确定系统是否是一个COMA类型的系统,并且在是的情况下在步骤404中标记存储器模块。无论系统体系结构如何,方法500均在步骤406中记录差错数据,在步骤408中通知操作系统,并且在步骤410中完成操作。
步骤514检测到的一个可校正差错表明通过步骤502-506已经校正了至少一部分的失效位,并且在步骤508检测到的剩余失效位的数量等于或小于通过存储器控制器的校正机制可以校正的位的数量。相应地,在校正剩余的失效位之后,方法500可以结束。
但在图5所示的实施例中,方法500确定任何部分在步骤508发现失效的位是否源于硬差错,即相同的位是否重复失效。在步骤516,方法500确定哪些位是损坏的。即,把通过步骤506接收的数据与通过在步骤310提交的远端数据取数接收的数据相比较。包含在通过步骤506接收的数据中但不包含在远端数据中的那些位被假定是损坏的位。
接着,在步骤518进行比较以确定在步骤516中明确的任何损坏数据位是否与任何原始损坏数据位,即在步骤502确定的损坏位匹配。如果失效位不匹配,则在步骤508确定的一或多个失效位不同于那些在步骤322确定失效的位,这表明发生了一个软差错。接着方法500继续到步骤512以记录已经发生的一个可校正差错。
如果在步骤518确定数据位匹配,则步骤520注明故障是一个硬差错。即,故障源于因步骤322上的初始差错状态而失效的位上的一个差错,并且没有被步骤502-504校正。在一个实施例中,如步骤522所示,存储器控制器执行一个引导操作(如果在系统中支持)以替换因硬差错而失效的位。引导操作使用一个冗余数据位,该数据位被选择用来替换在一个存储器操作期间检测到的一个失效数据位。在一个位被引导后,执行一个引导清除操作。一个引导清除操作使用原始数据位获取数据,使用ECC校正数据并且接着使用冗余数据位把校正的数据回写到相同的地址上。相应地,引导操作减少了因硬失效位导致后续差错的可能性。尽管引导操作是优选的,但本发明也能使用其它的校正机制来减少后续差错的可能性。接着方法500前进到记录一个可校正差错的出现的步骤512。
虽然前面的描述针对的是本发明的最优实施例,但在不偏离本发明的基本范围的前提下可以导出本发明其它和进一步的实施例,并且根据下面的权利要求书来确定本发明的范围。
Claims (34)
1.一个在基于目录的数据处理系统中向一个请求方设备传送数据的方法,其中包括的步骤有:
a)通过请求方设备访问与该请求方设备相关的一个本地存储器中包含的数据;
b)确定数据中是否存在一个差错状态;
c)在存在一个差错状态的情况下,访问一个目录以确定数据在一个远端存储器上是否可用;
d)如果远端存储器中的数据可用,则从远端存储器请求数据。
2.如权利要求1所述的方法,其中还包括的步骤有:
e)从远端存储器接收数据;
f)向请求方设备提供数据。
3.如权利要求1所述的方法,其中步骤d)包括在一个连接请求方设备和远端存储器的互连上放置一个请求。
4.如权利要求1所述的方法,其中还包括在步骤b)确定没有差错状态存在的情况下向请求方设备提供数据的步骤。
5.如权利要求1所述的方法,其中从一个存储器控制器,一个处理器和其任意组合中选择一个作为请求方设备。
6.如权利要求1所述的方法,其中还包括用从远端存储器接收的数据更新本地存储器的步骤。
7.如权利要求1所述的方法,其中还包括在确定存在一个差错状态之后记录一个数据差错的步骤。
8.如权利要求1所述的方法,其中还包括在步骤a)之前确定数据状态的步骤。
9.如权利要求8所述的方法,其中确定数据状态包括访问目录。
10.如权利要求1所述的方法,其中步骤c)包括确定数据状态。
11.如权利要求10所述的方法,其中确定数据状态的步骤包括确定数据是否处于一个共享状态。
12.如权利要求10所述的方法,其中还包括的步骤有:
e)识别位于含有数据的本地存储器的一个地址上的一或多个失效位;
f)用来自远端存储器的一或多个位重写该地址上的一或多个位;
g)从该地址读取数据。
13.如权利要求12所述的方法,其中还包括的步骤有:
h)识别在步骤g)读出的数据中包含的一或多个失效位;
i)确定在步骤h)识别的任意一或多个失效位是否与在步骤e)识别的一或多个失效位匹配。
14.如权利要求13所述的方法,其中e)和h)包括把本地存储器中包含的数据与从远端存储器接收的数据相比较。
15.如权利要求12所述的方法,其中还包括的步骤有:
h)用来自远端存储器的数据重写本地存储器中一个地址上的数据;
i)从该地址读取数据;
j)确定在步骤i)从上述地址读出的数据中是否存在一个差错状态;
k)如果在步骤j)存在一个差错状态,确定在步骤b)得到的数据中包含的一或多个失效位是否与在步骤i)得到的数据中包含的一或多个失效位匹配。
16.如权利要求15所述的方法,其中还包括记录差错数据的步骤。
17.一个数据处理系统,其中包括一个第一结点,一个第二结点和一个连接第一结点和第二结点的互连,其中第一结点具有一个第一处理单元,一个第一存储器和一个目录,第二结点具有一个第二处理单元和一个第二存储器;第一处理单元包含一个存储器控制器,所述存储器控制器访问第一存储器中包含的数据;确定数据中是否存在一个差错状态;在存在一个差错状态的情况下,访问目录以确定数据是否可能驻留在系统中的另一个位置上。
18.如权利要求17所述的数据处理系统,其中第一结点和第二结点是一个体系结构的部件,该体系结构是从一个非统一存储器访问(NUMA)体系结构和一个唯高速缓存存储器体系结构(COMA)中选择出的一个体系结构。
19.如权利要求17所述的数据处理系统,其中第一处理单元中的存储器控制器在访问目录时确定数据的状态。
20.如权利要求17所述的数据处理系统,其中第一处理单元中的存储器控制器在访问第一存储器中包含的数据之前访问目录以确定数据是否位于第一存储器之中。
21.如权利要求17所述的数据处理系统,其中第一处理单元还包括一个处理器,存储器控制器在不存在差错状态的情况下向处理器提供数据。
22.如权利要求17所述的数据处理系统,其中第一结点和互连中至少一个在数据可能驻留在系统中另一个位置上的情况下从第二结点请求数据。
23.如权利要求22所述的数据处理系统,其中第一结点和互连中至少一个被用来接收数据;以及用从第二结点接收的数据更新第一存储器。
24.如权利要求23所述的数据处理系统,其中存储器控制器还适于将在第一存储器中访问的数据与从第二结点接收的数据相比较以确定从第一存储器请求的数据的一或多个失效位。
25.如权利要求22所述的数据处理系统,其中第一结点和互连中至少一个被用来从第二结点接收数据;向第一处理单元提供从第二结点接收的数据;用从第二结点接收的数据更新第一存储器;以及如果确定存在一个差错状态,向第一处理单元提供数据。
26.如权利要求25所述的数据处理系统,其中第一处理单元中的存储器控制器在访问第一存储器中包含的数据之前访问目录以确定数据是否位于第一存储器之中。
27.一个具有分布共享存储器的基于目录的数据处理系统,其中包括:
a)一个第一结点,其中第一结点包含一个第一处理器,一个第一存储器,一个第一存储器控制器和一个第一目录,第一目录包含第一存储器的一或多个存储器模块的状态数据;
b)一个第二结点,其中第二结点包含一个第二处理器,一个第二存储器,一个第二存储器控制器和一个第二目录,第二目录包含第二存储器的一或多个存储器模块的状态数据;
c)一个连接第一结点和第二结点的互连;
其中第一存储器控制器被用来访问第一存储器中包含的数据并且确定数据中是否存在一个差错状态,在存在一个差错状态的情况下在互连上放置一个数据请求。
28.如权利要求27所述的基于目录的数据处理系统,其中第一结点和第二结点是一个体系结构的部件,该体系结构是从一个非统一存储器访问(NUMA)体系结构和一个唯高速缓存存储器体系结构(COMA)中选择出的一个体系结构。
29.如权利要求27所述的基于目录的数据处理系统,其中第一存储器控制器适于在访问数据之前访问第一目录以确定第一存储器中包含的数据的状态。
30.如权利要求27所述的基于目录的数据处理系统,其中第一存储器控制器适于在把请求放置到互连上之前访问目录以确定第一结点是否包含数据的一个有效副本。
31.如权利要求27所述的基于目录的数据处理系统,其中在存在一个差错状态的情况下,第一结点,第二结点和互连中的一或多个被用来确定第二结点中是否包含数据,并且在包含的情况下向第一结点提供数据。
32.如权利要求27所述的基于目录的数据处理系统,其中第一存储器控制器还被用来确定差错状态是一个不可校正差错还是一个可校正差错。
33.如权利要求27所述的基于目录的数据处理系统,其中第一存储器控制器还被用来识别第一存储器中含有的数据中有哪些位包含一个数据差错。
34.如权利要求27所述的基于目录的数据处理系统,其中第一存储器控制器还被用来比较第一存储器中包含的数据和根据放置在互连上的请求而接收的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/497,589 | 2000-02-03 | ||
US09/497,589 US6615375B1 (en) | 2000-02-03 | 2000-02-03 | Method and apparatus for tolerating unrecoverable errors in a multi-processor data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1319807A CN1319807A (zh) | 2001-10-31 |
CN1220949C true CN1220949C (zh) | 2005-09-28 |
Family
ID=23977478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011033703A Expired - Fee Related CN1220949C (zh) | 2000-02-03 | 2001-02-02 | 容忍多处理器数据处理系统中不可恢复差错的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6615375B1 (zh) |
JP (1) | JP3851093B2 (zh) |
KR (1) | KR100406575B1 (zh) |
CN (1) | CN1220949C (zh) |
TW (1) | TW484069B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035470B2 (en) * | 2001-02-05 | 2006-04-25 | Ati Technologies, Inc. | System for handling errors related to IDCT data and method thereof |
US7885336B2 (en) * | 2001-02-05 | 2011-02-08 | Ati Technologies Ulc | Programmable shader-based motion compensation apparatus and method |
AU2002245678C1 (en) * | 2001-03-12 | 2005-10-13 | Honeywell International, Inc. | Method of recovering a flight critical computer after a radiation event |
US6851071B2 (en) * | 2001-10-11 | 2005-02-01 | International Business Machines Corporation | Apparatus and method of repairing a processor array for a failure detected at runtime |
US7043666B2 (en) * | 2002-01-22 | 2006-05-09 | Dell Products L.P. | System and method for recovering from memory errors |
TW200417851A (en) * | 2003-03-07 | 2004-09-16 | Wistron Corp | Computer system capable of maintaining system's stability while memory is unstable and memory control method |
CN101061467B (zh) * | 2004-07-23 | 2011-12-14 | Emc公司 | 远程存储数据副本 |
CN101084552A (zh) * | 2004-12-21 | 2007-12-05 | 皇家飞利浦电子股份有限公司 | 一种光盘数据纠错方法及装置 |
US7366846B2 (en) * | 2005-01-14 | 2008-04-29 | International Business Machines Corporation | Redirection of storage access requests |
US7328315B2 (en) * | 2005-02-03 | 2008-02-05 | International Business Machines Corporation | System and method for managing mirrored memory transactions and error recovery |
JP5021978B2 (ja) * | 2006-08-11 | 2012-09-12 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム及びその動作方法 |
US7966526B2 (en) * | 2007-04-10 | 2011-06-21 | Galileo Tools Gmbh | Software event recording and analysis system and method of use thereof |
US20090150721A1 (en) * | 2007-12-10 | 2009-06-11 | International Business Machines Corporation | Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System |
JP4878050B2 (ja) * | 2008-11-28 | 2012-02-15 | 富士通株式会社 | コンピュータ及び制御方法 |
US8510615B2 (en) | 2009-10-22 | 2013-08-13 | Xerox Corporation | Virtual repair of digital media |
US9128887B2 (en) * | 2012-08-20 | 2015-09-08 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Using a buffer to replace failed memory cells in a memory component |
JP5800058B2 (ja) * | 2014-05-26 | 2015-10-28 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
US11544153B2 (en) * | 2020-03-12 | 2023-01-03 | International Business Machines Corporation | Memory error handling during and/or immediately after a virtual machine migration |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4044337A (en) | 1975-12-23 | 1977-08-23 | International Business Machines Corporation | Instruction retry mechanism for a data processing system |
US4538265A (en) | 1983-03-24 | 1985-08-27 | International Business Machines Corporation | Method and apparatus for instruction parity error recovery |
JPH0680492B2 (ja) | 1984-09-29 | 1994-10-12 | 株式会社日立製作所 | エラー回復方法 |
US4924466A (en) | 1988-06-30 | 1990-05-08 | International Business Machines Corp. | Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system |
US5280615A (en) * | 1990-03-23 | 1994-01-18 | Unisys Corporation | Out of order job processing method and apparatus |
EP0528538B1 (en) | 1991-07-18 | 1998-12-23 | Tandem Computers Incorporated | Mirrored memory multi processor system |
US5406504A (en) * | 1993-06-30 | 1995-04-11 | Digital Equipment | Multiprocessor cache examiner and coherency checker |
US5771247A (en) | 1994-10-03 | 1998-06-23 | International Business Machines Corporation | Low latency error reporting for high performance bus |
JP3889044B2 (ja) | 1995-05-05 | 2007-03-07 | シリコン、グラフィクス、インコーポレイテッド | 不均一メモリ・アクセス(numa)システムにおけるページ移動 |
US5720029A (en) | 1995-07-25 | 1998-02-17 | International Business Machines Corporation | Asynchronously shadowing record updates in a remote copy session using track arrays |
US5768623A (en) * | 1995-09-19 | 1998-06-16 | International Business Machines Corporation | System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers |
US5870537A (en) | 1996-03-13 | 1999-02-09 | International Business Machines Corporation | Concurrent switch to shadowed device for storage controller and device errors |
US5933653A (en) | 1996-05-31 | 1999-08-03 | Emc Corporation | Method and apparatus for mirroring data in a remote data storage system |
US5892970A (en) | 1996-07-01 | 1999-04-06 | Sun Microsystems, Inc. | Multiprocessing system configured to perform efficient block copy operations |
US6029231A (en) * | 1996-12-03 | 2000-02-22 | Emc Corporation | Retrieval of data stored on redundant disks across a network using remote procedure calls |
US5881282A (en) | 1996-12-10 | 1999-03-09 | Intel Corporation | Controlling ill-behaved computer add-on device through a virtual execution mode |
US6073209A (en) * | 1997-03-31 | 2000-06-06 | Ark Research Corporation | Data storage controller providing multiple hosts with access to multiple storage subsystems |
US5946709A (en) | 1997-04-14 | 1999-08-31 | International Business Machines Corporation | Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing |
DE69715203T2 (de) * | 1997-10-10 | 2003-07-31 | Bull Sa | Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff |
US6260069B1 (en) * | 1998-02-10 | 2001-07-10 | International Business Machines Corporation | Direct data retrieval in a distributed computing system |
US6088815A (en) * | 1998-02-23 | 2000-07-11 | International Busines Machines Corporation | Automatic data recovery for a duplex pair |
US6151685A (en) * | 1998-05-15 | 2000-11-21 | International Business Machines Corporation | System and method for recovering a segment directory for a log structured array |
US6275900B1 (en) * | 1999-01-27 | 2001-08-14 | International Business Machines Company | Hybrid NUMA/S-COMA system and method |
US6449731B1 (en) * | 1999-03-03 | 2002-09-10 | Tricord Systems, Inc. | Self-healing computer system storage |
US6725343B2 (en) * | 2000-10-05 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system |
-
2000
- 2000-02-03 US US09/497,589 patent/US6615375B1/en not_active Expired - Fee Related
- 2000-11-20 TW TW089124581A patent/TW484069B/zh not_active IP Right Cessation
-
2001
- 2001-01-22 KR KR10-2001-0003628A patent/KR100406575B1/ko not_active IP Right Cessation
- 2001-02-01 JP JP2001025699A patent/JP3851093B2/ja not_active Expired - Fee Related
- 2001-02-02 CN CNB011033703A patent/CN1220949C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1319807A (zh) | 2001-10-31 |
JP2001249911A (ja) | 2001-09-14 |
KR100406575B1 (ko) | 2003-11-21 |
US6615375B1 (en) | 2003-09-02 |
JP3851093B2 (ja) | 2006-11-29 |
KR20010078055A (ko) | 2001-08-20 |
TW484069B (en) | 2002-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1220949C (zh) | 容忍多处理器数据处理系统中不可恢复差错的方法和装置 | |
US7032123B2 (en) | Error recovery | |
US10789117B2 (en) | Data error detection in computing systems | |
US6292906B1 (en) | Method and apparatus for detecting and compensating for certain snoop errors in a system with multiple agents having cache memories | |
US8205136B2 (en) | Fault tolerant encoding of directory states for stuck bits | |
EP0989492B1 (en) | Technique for correcting single-bit errors in caches with sub-block parity bits | |
US5233616A (en) | Write-back cache with ECC protection | |
US6480975B1 (en) | ECC mechanism for set associative cache array | |
US7975169B2 (en) | Memory preserved cache to prevent data loss | |
EP0297507A2 (en) | Memory unit backup using checksum | |
US5875201A (en) | Second level cache having instruction cache parity error control | |
US7895465B2 (en) | Memory preserved cache failsafe reboot mechanism | |
US6108753A (en) | Cache error retry technique | |
JP3693555B2 (ja) | アドレスエラーから回復するためのシステムおよび方法 | |
US20060031708A1 (en) | Method and apparatus for correcting errors in a cache array | |
US7523342B1 (en) | Data and control integrity for transactions in a computer system | |
US7689891B2 (en) | Method and system for handling stuck bits in cache directories | |
US6035436A (en) | Method and apparatus for fault on use data error handling | |
US7577890B2 (en) | Systems and methods for mitigating latency associated with error detection and correction | |
US11593236B2 (en) | Preserving data integrity during controller failures | |
US8458532B2 (en) | Error handling mechanism for a tag memory within coherency control circuitry | |
JP3788822B2 (ja) | コンピュータシステムおよびそのシステムにおける障害回復方法 | |
EP0128353A2 (en) | Error recovery of non-store-through cache | |
JPH0353660B2 (zh) | ||
CN114116530A (zh) | 存储控制方法及装置、数据处理方法及装置以及存储介质 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050928 Termination date: 20190202 |