CN104969200B - 具有故障冗余的分布式高速缓存一致性目录 - Google Patents
具有故障冗余的分布式高速缓存一致性目录 Download PDFInfo
- Publication number
- CN104969200B CN104969200B CN201380071972.3A CN201380071972A CN104969200B CN 104969200 B CN104969200 B CN 104969200B CN 201380071972 A CN201380071972 A CN 201380071972A CN 104969200 B CN104969200 B CN 104969200B
- Authority
- CN
- China
- Prior art keywords
- catalogue
- cache coherence
- processor
- failure
- cache
- 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.)
- Active
Links
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/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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/0824—Distributed directories, e.g. linked lists of caches
-
- 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
-
- 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
- G06F11/2017—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 where memory access, memory control or I/O control functionality is redundant
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种系统包括许多处理器,其中每个处理器包括高速缓存存储器。该系统还包括耦接到该处理器的许多目录控制器。每个目录控制器可以被配置为管理对应的高速缓存一致性目录。每个高速缓存一致性目录可以被配置为跟踪对应的存储器地址集合。每个处理器可以用指示由每个高速缓存一致性目录跟踪的对应的存储器地址集合的信息来配置。在这样的系统中的目录冗余操作可以包括识别高速缓存一致性目录中的一个高速缓存一致性目录的故障;在无故障的高速缓存一致性目录当中再分配由故障的高速缓存一致性目录先前跟踪的存储器地址集合;以及用描述在无故障的高速缓存一致性目录当中再分配存储器地址集合的信息来重新配置每个处理器。
Description
技术领域
本公开涉及高速缓存一致性目录,并且更具体地涉及用于高速缓存一致性系统的方法、系统和产品。
背景技术
在每个处理器共享存储器的多处理器系统中,可以实施高速缓存一致性方案。在此类方案中,可以采用目录以跟踪对一致的高速缓存行的访问。可以以分布的方式实施此类目录,其中该目录的多个部分被实施为该多处理器系统的单独组件。但是,在现有技术的此类示例系统中,此类组件的故障致使整个高速缓存一致性系统不可用。
发明内容
在此说明书中公开了各种示例系统和方法。一个示例系统包括许多处理器,其中每个处理器包括高速缓存存储器。此类系统还可以包括耦接到处理器的许多目录控制器,其中每个目录控制器被配置为管理对应的高速缓存一致性目录,每个高速缓存一致性目录被配置为跟踪对应的存储器地址集合,并且每个处理器用指示由每个高速缓存一致性目录跟踪的对应的存储器地址集合的信息来配置。这样的示例系统还可以包括一个或多个组件,该一个或多个组件被配置为识别高速缓存一致性目录中的一个高速缓存一致性目录的故障并且在无故障的高速缓存一致性目录当中再分配由故障的高速缓存一致性目录先前跟踪的存储器地址集合。所述一个或多个组件还可以被配置为用描述在无故障的高速缓存一致性目录当中再分配存储器地址集合的信息来重新配置每个处理器。
在此说明书中还公开用于诸如上述系统之类的系统的方法。这样的方法可以包括:识别高速缓存一致性目录中的一个高速缓存一致性目录的故障。这样的方法还可以包括在无故障的高速缓存一致性目录当中再分配由故障的高速缓存一致性目录先前跟踪的存储器地址集合。这样的方法还可以包括用描述在无故障的高速缓存一致性目录当中再分配存储器地址集合的信息来重新配置每个处理器。
附图说明
图1阐述了包括分布式高速缓存一致性目录的计算机系统的一个实施例的方框图。
图2阐述了说明在多处理器、高速缓存一致性系统中提供高速缓存一致性目录的冗余的示例方法的流程图。
图3阐述了说明在多处理器、高速缓存一致性系统中提供高速缓存一致性目录的冗余的另一个示例方法的流程图。
图4阐述了说明在多处理器、高速缓存一致性系统中提供高速缓存一致性目录的冗余的另一个示例方法的流程图。
在附图中举例示出特定的实施例并且将在这里详细描述。但是,应当理解的是附图和详细描述不旨在将权利要求限制到所公开的特定实施例,甚至在关于特定特征仅仅描述单个实施例时。相反地,意图是覆盖对受益于本公开的本领域的技术人员来说显而易见的所有修改、等效物和可替代物。除非另有说明,在本公开中提供的特征的示例旨在是说明性的而不是限制性的。
贯穿本申请使用的,“可以(may)”一词用于许可的意思(即,意味着有潜能),而不是强制的意思(即,意味着必须)。类似地,词“包括(include)”“包括(including)”和“包括(includes)”意味着包括但不限于。
各种单元、电路、或其它组件可以被描述为“被配置为”执行一个任务或多个任务。在此语境中,“被配置为”是对通常意味着“具有在操作期间执行一个任务或多个任务的电路”的结构的广义叙述。因而,单元/电路/组件可以被配置为执行任务甚至在单元/电路/组件当前未开启时执行任务。通常地,形成对应于“被配置为”的结构的电路可以包括硬件电路。类似地,在描述中为了方便起见,各单元/电路/组件可以被描述为执行一个任务或多个任务。此类描述将被解释为包括短语“被配置为”。对被配置为执行一个或多个任务的单元/电路/组件的叙述明确地不意图援引35U.S.C.§112的第六段,用于那个单元/电路/组件的解释。
具体实施方式
图1阐述了下面进一步详细描述的包括分布式高速缓存一致性目录的计算机系统的一个实施例的方框图。图1的示例计算机系统102还包括若干处理器110A、110B、和110C,其经由点到点链路114、内部总线、或一些其它的数据通信链路耦接到一个或多个I/O(输入/输出)块112和一个或多个存储器块104。在一些实施例中,每个处理器110可以经由图1中未描述的链路直接耦接到单独的存储器104和单独的I/O块112,而每个处理器110经由点到点链路114耦接到所有存储器104和I/O块112。这样的计算机系统102可以被配置用于不同的应用,其包括例如作为移动设备、个人桌上型计算机、笔记本或膝上型计算机、服务器和类似设备。
图1的示例I/O块112可以被配置为协调计算机系统102和一个或多个外围设备之间的数据转移。这样的外围设备可以包括但不限于存储设备(例如,基于磁介质或光介质的存储设备,其包括硬盘驱动器、磁带驱动器、CD驱动器、DVD驱动器等)、音频处理子系统、或任何其它适合类型的外围设备。在一些实施例中,I/O块112可以被配置为实施通用串行总线(USB)协议版本或IEEE 1394协议。
示例I/O块112还可以被配置为协调计算机系统102和经由网络耦接到计算机系统102的一个或多个设备(例如,其它计算机系统)之间的数据转移。在一些实施例中,I/O块112可以被配置为执行实施以太网(IEEE 802.3)联网标准(诸如千兆位以太网或10-千兆位以太网)所必需的数据处理,但是预期可以实施任何适合的联网标准。在一些实施例中,I/O块112可以被配置为实施多个离散网络接口端口。
图1的示例存储器块104可以包括任何适合类型的存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、或闪速存储器。应当注意在图1中示出的计算机系统的实施例中,描述了单个存储器块。在其它实施例中,可以采用任何适合数目的存储器块。
处理器110可以共享计算机存储器104并且每个都可以包括高速缓存存储器122A、122B、和122C。图1的系统可以被配置用于高速缓存一致性。高速缓存一致性指存储在诸如存储器104之类的共享资源的本地高速缓存中的数据的一致性。例如,如果存储器地址被读取到第一处理器110A的本地高速缓存122A的高速缓存行中然后被读取到第二处理器110B的本地高速缓存122B中,则在任何后续向存储器地址的写入之前必然有所有其它处理器中的对应高速缓存行的无效。以这种方式,其它处理器不会读取高速缓存行的本地版本,其在写入存储器地址之后可以包括过期数据。应注意的是,虽然这里描述实时高速缓存一致性协议的示例,但这样的协议仅仅是示例并且可以采用其它类型的高速缓存一致性协议。
为实现高速缓存一致性,每个处理器110可以包括高速缓存一致性控制器106A、106B、106C,并且图1的系统可以采用由目录控制器116A、116B、116C管理的全局高速缓存一致性目录118。全局高速缓存一致性目录118可以包括代表每个处理器110的高速缓存行的条目、与每个高速缓存行相关联的存储器地址、与一致性相关的状态信息、和可用于支持高速缓存一致性方案的其它信息。当处理器打算将存储器地址读取到高速缓存行中或写入存储在本地高速缓存中的存储器地址时,处理器的高速缓存一致性控制器106可以经由目录控制器116的一个从全局高速缓存一致性目录118请求信息或向全球高速缓存一致性目录118通知信息。目录控制器116被称成是‘管理(administer)’高速缓存一致性目录,因为目录控制器116维护高速缓存一致性目录118中的条目并且还基于来自高速缓存一致性目录的信息响应来自高速缓存一致性控制器106的请求。
在图1的示例中,高速缓存一致性目录118在若干组件128A、128B、和128C当中被分配,使得全局高速缓存一致性目录118被分成三个部分,有效地被分成三个高速缓存一致性目录118A、118B和118C。每个高速缓存一致性目录118A、118B、118C可以与单独存储器地址集合相关联。为此,每个目录控制器116A、116B、和116C被配置为具有指示与目录控制器管理的高速缓存一致性目录相关联的存储器地址集合的信息。此外,每个高速缓存一致性控制器106A、106B、106C被配置为具有指示与每个高速缓存一致性目录相关联的存储器地址集合的信息。以这种方式,每个高速缓存一致性控制器106基于写入或读取的存储器地址知道高速缓存行写入或读取的目标是哪个高速缓存一致性目录。
在组件128中的一个组件故障时,高速缓存一致性目录可以被破坏或未完成到高速缓存一致性方案不能继续的程度。在现有技术的系统中,在高速缓存一致性目录的这种故障发生时,将发出服务调用并且使得系统102脱机直到故障的组件128被替换。但是,可以针对在组件(或高速缓存目录)故障的情况下的冗余改进图1的系统102。应当注意高速缓存一致性目录的故障可以包括实施目录的组件的故障、目录本身的故障、被配置为管理目录的目录控制器的故障、或从一个或多个测试、低于标准的工作特性、或上面描述的模块中的任何一个的异常运行中表明的暗示、推断、或预测的故障。
图1的系统可以被以多种方式配置用于高速缓存一致性目录冗余。图1的系统,例如,可以包括经由带外总线、一组点到点链路126、或一些其它的数据通信链路耦接到处理器110A、110B和110C以及目录组件128A、128B和128C的服务处理器。服务处理器是被配置为监控系统组件、控制环境特性、报告系统状态等的系统的处理器,而不执行主操作系统和应用级别的程序指令。这样的服务处理器可以经由带外方式被耦接到传感器、系统处理器、I/O适配器、通信适配器、存储器适配器、存储器、和系统的其它组件。此外,当系统的电力被移除时(系统断电),在一些情况下服务处理器可以保持被充分供电。在这样的状态中,服务处理器可以被配置为对非易失性存储器编程、在处理器寄存器中存储数据、启动或禁止各种中断标记等。在图1的示例中,服务处理器还可以被配置为在高速缓存一致性目录故障的情况下提供冗余。
在其它实施例中,处理器中的一个可以被选择或指定为‘主’处理器。如下面进一步的详细描述,这样的‘主’处理器可以被配置为实施高速缓存一致性目录冗余操作。应当注意虽然或服务处理器或主处理器可以被配置为管理这种冗余,但图1的描述的剩余部分将描述服务处理器124的操作。
在图1的示例中的服务处理器124可以识别高速缓存一致性目录118A、118B或118C中的一个的故障。如上所述,高速缓存一致性目录的故障可以包括实施高速缓存一致性目录118的组件128的任何部分的故障。例如,诸如目录控制器116A之类的目录控制器的故障可以是高速缓存一致性目录118A的故障,因为从处理器110的视角来看,高速缓存一致性目录118A不再是经由目录控制器116A可访问的或可信赖的。
在一些实施例中,对高速缓存一致性目录118中的一个目录的故障的识别由于在高速缓存一致性目录118中遭遇致命错误而发生。这样的致命错误可以使得系统断电、‘崩溃(crash)’、或开始重新启动过程。在其它实施例中,对高速缓存一致性目录118中的一个目录的故障的识别包括通过跟踪高速缓存一致性目录(和相关联组件)的操作特性并且确定这样的操作特性不满足可接受的标准来预测高速缓存一致性目录故障。
当识别高速缓存一致性目录118中的一个目录的故障包括预测高速缓存一致性目录故障时,服务处理器124可以通过刷新系统中的至少一些高速缓存存储器来刷新无故障的高速缓存一致性目录,而不是将系统断电。在图1的系统中,考虑高速缓存一致性目录118C发生故障作为一个示例。在服务处理器124识别高速缓存一致性目录118C的故障时,服务处理器可以被配置为刷新高速缓存一致性目录118A和118B(无故障的目录)。在一个实施例中,服务处理器124可以通过刷新每个处理器110的高速缓存来刷新无故障的目录。在一些实施例中,服务处理器124可以直接刷新处理器的高速缓存,而在其它实施例中,该服务处理器指示处理器110来刷新高速高速缓存122。这样对高速缓存存储器的刷新将由每个处理器110的高速缓存一致性控制器106传播到目录控制器116,有效地通知每个目录控制器116没有存储器地址被存储在高速缓存中。响应该信息,每个目录控制器116将清除由目录控制器116管理的高速缓存一致性目录118中的所有条目。
服务处理器124可以在无故障的高速缓存一致性目录当中再分配由故障的高速缓存一致性目录跟踪的存储器地址集合。在一些实施例中,由故障的高速缓存一致性目录先前跟踪的存储器地址集合的一部分可以被分配给无故障的高速缓存一致性目录的每个目录以用于将来的跟踪。即,由故障的高速缓存一致性目录跟踪的存储器地址集合可以在无故障的目录当中被重新分配以被无故障的目录跟踪。在其它实施例中,所有地址(包括那些被故障的高速缓存一致性目录跟踪的地址以及那些被无故障的目录跟踪的地址)在所有无故障目录当中被重新分配。在这种方式下,有可能的是无故障的目录中的一个或多个目录被分配得到由故障的目录跟踪的存储器地址集合中的不均等部分或分配不到任何部分。
在再分配时,除由无故障的目录先前跟踪的存储器地址之外,无故障的高速缓存一致性目录中的一个或多个目录将被配置为跟踪由故障的高速缓存一致性目录先前跟踪的存储器地址集合的某一部分。即,在再分配时,无故障的目录被配置为跟踪在故障之前由所有目录先前跟踪的整个地址集合。继续以上示例并且进一步考虑三个高速缓存一致性目录的每一个目录都被配置为跟踪100个存储器地址,在高速缓存一致性目录118C发生故障时,由故障的目录118C跟踪的100个存储器地址将被再分配给高速缓存一致性目录118A和118B。因此,在故障之前,高速缓存一致性目录118A被配置为跟踪100个存储器地址并且高速缓存一致性目录118B被配置为跟踪不同的100个存储器地址。在故障和由服务处理器124再分配之后,高速缓存一致性目录118A被配置为跟踪150个存储器地址并且高速缓存一致性目录118B被配置为跟踪不同的150个存储器地址。在图1的示例中,每个高速缓存一致性目录118A、118B、和118C可以被配置为具有附加数量的保留空间120A、120B、和120C。该保留空间是可以用来跟踪一个或多个故障的高速缓存一致性目录的存储器地址集合的一部分的存储器空间。在一些实施例中,该保留的存储器空间可以被配置为存储至少:
个条目,
其中N是在系统中的高速缓存一致性目录的数目,M是可以故障但系统保持正常运行的高速缓存一致性目录的最大数目,并且X是在系统中任何高速缓存一致性目录故障之前每个高速缓存一致性目录被配置的条目数。系统中的高速缓存一致性目录数N可以是特定于设计的并且包括大于二的任何数目的目录。同样地,X还可以是特定于设计的并且包括大于零的任何数。N可以是用户或设计者指定的大于零的数目。以这种方式,在一些实施例中,高速缓存一致性目录可以包括某一保留空间量,其被配置为使得一个以上的高速缓存一致性目录可以发生故障并且系统可以被重新配置。这里术语‘条目’可以和‘与高速缓存行地址相关的高速缓存一致性信息’同义,因为高速缓存一致性目录的每个条目可以表示与高速缓存行地址相关的高速缓存一致性信息。应当注意这些数字仅仅是许多实施例当中的一个可能的实施例的示例。在其它实施例中,由高速缓存一致性目录中的每个目录跟踪的存储器地址的数目可以是2的大得多的幂。
但是,此再分配还可以被传播到处理器使得每个处理器在再分配之后被通知由每个高速缓存一致性目录跟踪的地址集合。为此,服务处理器124还可以用描述在无故障的高速缓存一致性目录当中再分配由故障的高速缓存一致性目录先前跟踪的存储器地址集合的信息重新配置每个处理器110A、110B和110C。服务处理器可以通过更新由高速缓存一致性控制器利用的信息108来提供此类信息以访问高速缓存一致性目录。
在一些实施例中,服务处理器124还可以在再分配和重新配置之后基于存储在每个处理器的高速缓存中的状态信息来重建无故障的高速缓存一致性目录。以这种方式,系统的操作可以在没有重新启动系统的情况下继续。在其中故障被预测的其它实施例中,高速缓存一致性目录可以在不参考高速缓存的情况下被重新布置。
在上面描述的实施例中,其中系统在遭遇高速缓存一致性目录118中的一个目录的致命错误时断电,该系统可以在对故障的一致性目录先前跟踪的存储器地址集合进行再分配和相应地对处理器进行再配置之后被加电。一旦加电后,无故障的高速缓存一致性目录可以被处理器110利用以在高速缓存一致性目录的故障发生之前实现用于相同的存储地址空间的高速缓存一致性。
在一些实施例中,故障的高速缓存一致性目录可以被替换为功能完全的组件。在这样的实施例中,服务处理器124可以在识别故障之前在无故障高速缓存一致性目录和被替换的高速缓存一致性目录当中再分配由所有高速缓存一致性目录跟踪的所有存储器地址集合,并且用描述在无故障的高速缓存一致性目录和被替换的高速缓存一致性目录当中再分配所有存储器地址集合的信息来重新配置每个处理器。即,在用替换目录对故障的高速缓存目录进行替换时,可以刷新高速缓存(使得没有一致性目录保存任何状态信息),服务处理器可以在所有无故障的目录(包括替换目录)当中再分配由所有高速缓存一致性目录跟踪的整个存储器地址集合,向处理器提供描述在无故障的目录(包括替换目录)当中再分配存储器地址的更新的信息,并且系统的操作可以继续。
为了进一步的说明,图2阐述了示出提供在多处理器、高速缓存一致性系统(诸如在图1的示例中阐述的系统)中的高速缓存一致性目录的冗余的示例方法的流程图。图2的方法包括识别202高速缓存一致性目录中的一个目录的故障。如下面更进一步的详细说明,识别202高速缓存一致性目录中的一个目录的故障可以通过各种方式来实施,其包括例如通过在高速缓存一致性目录中的一个目录中遭遇致命错误或通过‘推断’或‘预测’故障。
图2的方法还包括在无故障的高速缓存一致性目录当中再分配206由故障的高速缓存一致性目录先前跟踪的存储器地址集合。在无故障的高速缓存一致性目录当中再分配206由故障的高速缓存一致性目录先前跟踪的存储器地址集合可以通过多种方式来实施。在一个实施例中,例如,可以在所有无故障的高速缓存一致性目录当中以均等的(或几乎均等的)部分再分配存储器地址集合。在其它实施例中,可以在无故障的高速缓存一致性目录当中再分配由所有高速缓存一致性目录跟踪的所有存储器地址集合。即,整个存储器地址池在所有无故障的高速缓存一致性目录当中被再分配。在这样的实施例中,由故障的高速缓存一致性目录跟踪的存储器地址集合可以以任何大小被再分配到任何数目的无故障的高速缓存一致性目录中。同样在这样的实施例中,每个高速缓存一致性目录可以不再跟踪在再分配之前跟踪的相同的地址集合。
例如,考虑诸如图1描述的包括三个高速缓存一致性目录的系统,该三个目录中的每个目录被配置为(在故障之前)存储100个条目(高速缓存行地址)。在一个高速缓存一致性目录故障的情况下,在一些实施例中,由该故障的高速缓存一致性目录先前跟踪的100个条目可以在剩下的两个高速缓存一致性目录当中以均等的数目(50个条目)再分配。在一些实施例中,每个高速缓存一致性目录被配置为具有保留的存储器空间,其包括:
个条目,其中N是系统中高速缓存一致性目录的数目,X是在系统中任何高速缓存一致性目录故障之前每个高速缓存一致性目录被配置为跟踪的条目的数目,并且M是系统可以承受并且继续操作高速缓存一致性方案的高速缓存一致性目录故障的最大数目。考虑一个示例,其中十个高速缓存一致性目录的每个目录在高速缓存一致性目录故障之前跟踪100个条目。还考虑该系统被配置为能承受两个高速缓存一致性目录故障。在这样的系统中,跟踪由故障的高速缓存一致性目录先前跟踪的存储器地址所需要的保留空间的量包括用于二十五个条目的空间。即,如果两个高速缓存一致性目录发生故障,则200个条目将在八个高速缓存一致性目录当中、以每个无故障的高速缓存一致性目录25个条目的方式被再分配。应当注意这些数字仅仅是许多实施例当中的一个可能实施例的示例。在其它实施例中,由高速缓存一致性目录的每个目录跟踪的存储器地址的数目可以是2的大得多的幂。
图2的方法还包括用描述在无故障的高速缓存一致性目录当中再分配存储器地址集合的信息来重新配置208每个处理器。重新配置208每个处理器可以通过向每个处理器提供指示从系统中移除一个高速缓存一致性目录和由剩余的、无故障的高速缓存一致性目录跟踪的‘新’存储器地址集合的通知来实施。由无故障的高速缓存一致性目录跟踪的‘新’存储器地址集合包括由故障的高速缓存一致性目录先前跟踪的存储器地址集合的再分配部分。应当注意,更新的信息可以被存储在预先指定的寄存器文件(诸如可由处理器的高速缓存一致性控制器访问的寄存器文件)中,可以经由数据通信消息被提供,可以被存储在可由所有处理器访问的存储位置,并且可以响应于更新的通知被检索等。可替换地,控制寄存器可以被编程有对故障的高速缓存一致性目录的识别。在启动或重新开始操作时,每个处理器可以检查该编程的控制寄存器,并且在知道上述的再分配技术时,每个处理器可以利用高速缓存一致性目录地址的新目标更新任何必要的数据结构、寄存器以及类似物。
为了进一步的说明,图3阐述了示出提供在多处理器、高速缓存一致性系统中的高速缓存一致性目录的冗余的另一个示例方法的流程图。图3的方法与图2所述的方法相似,因为图3的方法还可以在和图1示例中的系统类似的系统中实施。此外,图3包括识别202高速缓存一致性目录中的一个目录的故障、再分配206由故障的高速缓存一致性目录先前跟踪的存储器地址集合并且用描述在无故障的高速缓存一致性目录当中再分配存储器地址集合的信息来重新配置208每个处理器。
但是,图3的方法不同于图2的方法在于,识别202高速缓存一致性目录中的一个目录的故障可以通过跟踪212高速缓存一致性目录的操作参数、针对高速缓存一致性目录中的特定一个目录识别214操作异常的历史模式、以及基于操作异常的历史模式确定216高速缓存一致性目录中的该特定一个目录有可能在预先确定的一段时间之内发生故障来实施。作为操作异常的历史模式的示例,考虑高速缓存一致性目录(或它关联的目录控制器)在预先定义的一段时间内具有许多通信超时。在一些实施例中,通信超时的一些历史模式(诸如在预先定义的一段时间内包括大于预先定义的阈值的许多超时的那些模式)可以指示实施高速缓存一致性目录的组件或目录控制器正在发生故障或有可能发生故障。以这种方式,故障可以被‘推断’、‘暗示’或‘预测’,与高速缓存一致性目录的完全的、实际的故障相反。可以从其中形成历史模式以推断目录故障的操作异常的另一个示例可以包括在高速缓存一致性目录中的可校正错误率。
图3的方法还包括刷新204无故障的高速缓存一致性目录。可以通过刷新210处理器的至少一些高速缓存存储器来实施对无故障的高速缓存一致性目录的刷新204。刷新210处理器的高速缓存存储器可以以多种方式实施,包括例如,通过将用来使处理器的高速缓存的所有高速缓存行无效的指示发送到每个处理器的高速缓存一致性控制器(例如,图1的106)。在其它实施例中,系统可以被置于静止状态中,并且高速缓存一致性目录信息可以在重新开始操作之前被重新布置。
同样在图3的方法中,对由故障的高速缓存一致性目录先前跟踪的存储器地址集合的再分配206可以通过由服务处理器再分配306由故障的高速缓存一致性目录先前跟踪的存储器地址集合来实施。在其它实施例中,对由故障的高速缓存一致性目录先前跟踪的存储器地址集合的再分配206可以通过由从多个处理器中选择出的主处理器再分配404所述存储器地址集合来实施。以和图3的方法类似的方式,用描述所述再分配的信息重新配置208每个处理器可以包括由服务处理器重新配置308每个处理器或由主处理器重新配置406每个处理器。
为了进一步的说明,图4阐述了示出提供在多处理器、高速缓存一致性系统中的高速缓存一致性目录的冗余的另一个示例方法的流程图。图4的方法与图2的方法相似,因为图4的方法可以在类似于上面关于图1描述的系统的系统中实施并且还可以包括:识别202高速缓存一致性目录中的一个目录的故障;在无故障的高速缓存一致性目录当中再分配206由故障的高速缓存一致性目录先前跟踪的存储器地址集合;以及用描述在无故障的高速缓存一致性目录当中再分配存储器地址集合的信息来重新配置208每个处理器。
但是,图4的方法不同于图2的方法在于,在图4的方法中识别高速缓存一致性目录中的一个目录的故障包括在高速缓存一致性目录的一个目录中遭遇402致命错误。即,不是如图3所述地预测错误,而是在图4的示例中实际上遭遇错误。
图4还包括在遭遇402致命错误之后将系统断电304。在一些实施例中,断电可以是‘崩溃’而不是操作的从容退出。在断电中,高速缓存存储器数据丢失,因此状态丢失。
同样在图4的方法中,对由故障的高速缓存一致性目录先前跟踪的存储器地址集合的再分配206可以通过由服务处理器再分配306由故障的高速缓存一致性目录先前跟踪的存储器地址集合来实施。即,只要系统断电304,服务处理器(可以是系统本身的一部分或在系统以外的组件)可以在无故障目录当中再分配故障的高速缓存一致性目录的存储器地址集合。在其它实施例中,对由故障的高速缓存一致性目录先前跟踪的存储器地址集合的再分配206可以通过由从多个处理器中选择出的主处理器再分配404存储器地址集合来实施。
以和图4的方法类似的方式,用描述再分配的信息重新配置208每个处理器可以包括由服务处理器重新配置308每个处理器或由主处理器重新配置406每个处理器。在再分配206和重新配置处理器208之后,系统可以加电310。
虽然上面已经非常详细地描述了实施例,但是一旦上述公开被完全理解,对本领域技术人员来说,许多变化和修改将变得显而易见。以下的权利要求旨在被理解为涵盖所有这样的变化和修改。
Claims (18)
1.一种用于高速缓存一致性系统的系统,包括:
多个处理器,其中每个处理器包括高速缓存存储器;
耦接到所述多个处理器的多个目录控制器,其中每个目录控制器被配置为管理对应的高速缓存一致性目录,每个高速缓存一致性目录被配置为跟踪对应的存储器地址集合,并且每个处理器用指示由每个高速缓存一致性目录跟踪的对应的存储器地址集合的信息来配置;以及
一个或多个组件,被配置为:
识别所述高速缓存一致性目录中的一个高速缓存一致性目录的故障;
在无故障的高速缓存一致性目录当中再分配由故障的高速缓存一致性目录先前跟踪的存储器地址集合;
用描述在无故障的高速缓存一致性目录当中再分配存储器地址集合的信息来重新配置每个处理器;以及
在再分配和重新配置之后从存储在每个处理器的高速缓存中的状态信息重建无故障的高速缓存一致性目录并且在不重新启动系统的情况下继续系统的操作。
2.如权利要求1所述的系统,其中:
所述一个或多个组件被配置为通过以下步骤来识别所述高速缓存一致性目录中的一个高速缓存一致性目录的故障:
跟踪所述高速缓存一致性目录的操作参数;
针对所述高速缓存一致性目录中的特定的一个高速缓存一致性目录识别操作异常的历史模式;以及
基于该操作异常的历史模式确定所述高速缓存一致性目录中的该特定的一个高速缓存一致性目录已经发生故障;并且
该系统还包括被配置为响应于识别故障,在再分配由故障的高速缓存一致性目录先前跟踪的存储器地址集合之前,刷新无故障的高速缓存一致性目录的一个或多个组件。
3.如权利要求2所述的系统,其中所述一个或多个组件被配置为通过刷新所有处理器的高速缓存来刷新无故障的高速缓存一致性目录。
4.如权利要求1所述的系统,其中:
所述一个或多个组件被配置为通过以下步骤来识别所述高速缓存一致性目录中的一个高速缓存一致性目录的故障:
在所述高速缓存一致性目录中的一个高速缓存一致性目录中遭遇致命错误;并且
该系统还包括被配置为执行以下操作的一个或多个组件:
响应于遭遇致命错误将系统断电;以及
在再分配和重新配置之后将系统加电。
5.如权利要求1所述的系统,其中:
该系统包括N个高速缓存一致性目录;
该系统被配置为在故障的高速缓存一致性目录不多于M个的情况下保持运行;
在任何高速缓存一致性目录故障之前,每个高速缓存一致性目录被配置为跟踪X个条目;以及
每个高速缓存一致性目录包括一数量的保留的存储器空间,所述保留的存储器空间被配置为在高速缓存一致性目录发生故障时存储至少:
个条目。
6.如权利要求1所述的系统,其中被配置为进行再分配和重新配置的所述一个或多个组件包括从所述多个处理器中选择的主处理器。
7.如权利要求1所述的系统,其中被配置为进行再分配和重新配置的所述一个或多个组件包括通过一个或多个带外数据通信链路耦接到处理器的服务处理器。
8.如权利要求1所述的系统,还包括被配置为执行以下操作的一个或多个组件:
替换故障的高速缓存一致性目录;
在无故障的高速缓存一致性目录和被替换的高速缓存一致性目录当中再分配在识别故障之前由所有高速缓存一致性目录跟踪的所有存储器地址集合;以及
用描述在无故障的高速缓存一致性目录和被替换的高速缓存一致性目录当中再分配所有存储器地址集合的信息来重新配置每个处理器。
9.如权利要求8所述的系统,还包括被配置为执行以下操作的一个或多个组件:
在再分配所有存储器地址集合和用描述再分配所有存储器地址集合的信息来重新配置每个处理器之前将系统断电;以及
在再分配所有存储器地址集合和用描述再分配所有存储器地址集合的信息来重新配置每个处理器之后将系统加电。
10.如权利要求8所述的系统,还包括被配置为执行以下操作的一个或多个组件:
在再分配所有存储器地址集合和用描述再分配所有存储器地址集合的信息来重新配置每个处理器之前刷新系统中的所有高速缓存;以及
在不重新启动系统的情况下继续对无故障的和被替换的高速缓存一致性目录进行操作。
11.如权利要求8所述的系统,其中被配置为再分配所有存储器地址集合并且用描述再分配所有存储器地址集合的信息来重新配置每个处理器的一个或多个组件包括从所述多个处理器中选择的主处理器。
12.如权利要求8所述的系统,其中被配置为再分配所有存储器地址集合并且用描述再分配所有存储器地址集合的信息来重新配置每个处理器的一个或多个组件包括通过一个或多个带外数据通信链路耦接到处理器的服务处理器。
13.如权利要求1所述的系统,其中所述多个高速缓存一致性目录的集合包括被配置为跟踪在处理器当中一致的所有存储器地址的全局高速缓存一致性目录。
14.一种用于高速缓存一致性系统的方法,包括:
识别系统中的多个高速缓存一致性目录中的一个高速缓存一致性目录的故障,其中所述多个高速缓存一致性目录被耦接到该系统中的多个处理器,其中每个处理器包括高速缓存存储器,其中每个高速缓存一致性目录被配置为跟踪用于高速缓存一致性状态的对应的存储器地址集合,并且其中每个处理器用指示由每个高速缓存一致性目录跟踪的对应的存储器地址集合的信息来配置;
在无故障的高速缓存一致性目录当中再分配由故障的高速缓存一致性目录先前跟踪的存储器地址集合;
用描述在无故障的高速缓存一致性目录当中再分配存储器地址集合的信息来重新配置每个处理器;
替换故障的高速缓存一致性目录;
在无故障的高速缓存一致性目录和被替换的高速缓存一致性目录当中再分配在识别故障之前由所有高速缓存一致性目录跟踪的所有存储器地址集合;以及
用描述在无故障的高速缓存一致性目录和被替换的高速缓存一致性目录当中再分配所有存储器地址集合的信息来重新配置每个处理器。
15.如权利要求14所述的方法,其中:
识别所述高速缓存一致性目录中的一个高速缓存一致性目录的故障还包括:
跟踪所述高速缓存一致性目录的操作参数;
针对所述高速缓存一致性目录中的特定的一个高速缓存一致性目录识别操作异常的历史模式;以及
基于操作异常的历史模式确定所述高速缓存一致性目录中的所述特定的一个高速缓存一致性目录已经故障;并且
该方法还包括响应于识别故障,在再分配由故障的高速缓存一致性目录先前跟踪的存储器地址集合之前,刷新无故障的高速缓存一致性目录。
16.如权利要求15所述的方法,其中刷新高速缓存一致性目录还包括刷新一个或多个处理器的高速缓存。
17.如权利要求14所述的方法,其中:
识别所述高速缓存一致性目录中的一个高速缓存一致性目录的故障还包括在所述高速缓存一致性目录中的一个高速缓存一致性目录中遭遇致命错误;以及
该方法还包括响应于遭遇致命错误将该系统断电;以及
在实施再分配和重新配置之后,将该系统加电。
18.如权利要求14所述的方法,其中:
该系统包括N个高速缓存一致性目录;
该系统被配置为在故障的高速缓存一致性目录不多于M个的情况下保持运行;
在系统中任何高速缓存一致性目录发生故障之前,每个高速缓存一致性目录被配置为跟踪X个条目;以及
每个高速缓存一致性目录包括一数量的保留的存储器空间,所述保留的存储器空间被配置为在高速缓存一致性目录故障时存储至少:
个条目。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261745122P | 2012-12-21 | 2012-12-21 | |
US61/745,122 | 2012-12-21 | ||
US13/758,491 US9135175B2 (en) | 2012-12-21 | 2013-02-04 | Distributed cache coherency directory with failure redundancy |
US13/758,491 | 2013-02-04 | ||
PCT/US2013/075622 WO2014099887A1 (en) | 2012-12-21 | 2013-12-17 | Distributed cache coherency directory with failure redundancy |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104969200A CN104969200A (zh) | 2015-10-07 |
CN104969200B true CN104969200B (zh) | 2018-02-23 |
Family
ID=50976065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380071972.3A Active CN104969200B (zh) | 2012-12-21 | 2013-12-17 | 具有故障冗余的分布式高速缓存一致性目录 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9135175B2 (zh) |
EP (1) | EP2936320B1 (zh) |
CN (1) | CN104969200B (zh) |
WO (1) | WO2014099887A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406745B (zh) * | 2015-07-27 | 2020-06-09 | 华为技术有限公司 | 根据目录信息维护Cache数据一致性的方法及装置 |
US9929780B2 (en) * | 2015-07-27 | 2018-03-27 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Capturing physical inventory in a data center |
CN106155827A (zh) * | 2016-06-28 | 2016-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于linux系统的CPU故障诊断处理方法及系统 |
US10635588B2 (en) * | 2018-06-05 | 2020-04-28 | Advanced Micro Devices, Inc. | Distributed coherence directory subsystem with exclusive data regions |
US10970215B1 (en) * | 2019-12-03 | 2021-04-06 | International Business Machines Corporation | Cache snooping mode extending coherence protection for certain requests |
US11188480B1 (en) * | 2020-05-12 | 2021-11-30 | Hewlett Packard Enterprise Development Lp | System and method for cache directory TCAM error detection and correction |
US11625251B1 (en) * | 2021-12-23 | 2023-04-11 | Advanced Micro Devices, Inc. | Mechanism for reducing coherence directory controller overhead for near-memory compute elements |
CN117093511B (zh) * | 2023-09-04 | 2024-05-10 | 海光云芯集成电路设计(上海)有限公司 | 访存控制方法、访存控制装置、芯片及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073216A (en) * | 1997-11-25 | 2000-06-06 | Intel Corporation | System and method for reliable system shutdown after coherency corruption |
CN101065736A (zh) * | 2004-11-30 | 2007-10-31 | 国际商业机器公司 | 管理多处理器操作 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247648A (en) * | 1990-04-12 | 1993-09-21 | Sun Microsystems, Inc. | Maintaining data coherency between a central cache, an I/O cache and a memory |
US6012127A (en) * | 1997-12-12 | 2000-01-04 | Intel Corporation | Multiprocessor computing apparatus with optional coherency directory |
US6633960B1 (en) | 2000-08-31 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Scalable directory based cache coherence protocol |
US6681339B2 (en) * | 2001-01-16 | 2004-01-20 | International Business Machines Corporation | System and method for efficient failover/failback techniques for fault-tolerant data storage system |
US6996674B2 (en) * | 2001-05-07 | 2006-02-07 | International Business Machines Corporation | Method and apparatus for a global cache directory in a storage cluster |
US6587921B2 (en) * | 2001-05-07 | 2003-07-01 | International Business Machines Corporation | Method and apparatus for cache synchronization in a clustered environment |
US7290260B2 (en) * | 2003-02-20 | 2007-10-30 | International Business Machines Corporation | Dynamic processor redistribution between partitions in a computing system |
US7434008B2 (en) * | 2004-04-23 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | System and method for coherency filtering |
US8195890B1 (en) | 2006-08-22 | 2012-06-05 | Sawyer Law Group, P.C. | Method for maintaining cache coherence using a distributed directory with event driven updates |
US8392661B1 (en) | 2009-09-21 | 2013-03-05 | Tilera Corporation | Managing cache coherence |
-
2013
- 2013-02-04 US US13/758,491 patent/US9135175B2/en active Active
- 2013-12-17 EP EP13818113.6A patent/EP2936320B1/en active Active
- 2013-12-17 WO PCT/US2013/075622 patent/WO2014099887A1/en active Application Filing
- 2013-12-17 CN CN201380071972.3A patent/CN104969200B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073216A (en) * | 1997-11-25 | 2000-06-06 | Intel Corporation | System and method for reliable system shutdown after coherency corruption |
CN101065736A (zh) * | 2004-11-30 | 2007-10-31 | 国际商业机器公司 | 管理多处理器操作 |
Also Published As
Publication number | Publication date |
---|---|
EP2936320A1 (en) | 2015-10-28 |
US9135175B2 (en) | 2015-09-15 |
US20140181420A1 (en) | 2014-06-26 |
WO2014099887A1 (en) | 2014-06-26 |
CN104969200A (zh) | 2015-10-07 |
EP2936320B1 (en) | 2018-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104969200B (zh) | 具有故障冗余的分布式高速缓存一致性目录 | |
CN101131675B (zh) | 预防存储控制器的分区高速缓存中写饥饿的装置和方法 | |
CN102081561B (zh) | 在存储系统的冗余存储控制器之间镜像数据 | |
CN102708065B (zh) | 一种预留页面文件的方法及计算机系统 | |
CN114788238A (zh) | 云原生工作负载的数据管理平台中的存储管理 | |
US20090271564A1 (en) | Storage system | |
US20110035540A1 (en) | Flash blade system architecture and method | |
CN105573660A (zh) | 用于改善分簇磁盘阵列的性能的方法和装置 | |
US20170262375A1 (en) | Programmable cache size via class of service cache allocation | |
CN101567211A (zh) | 一种提高磁盘可用性的方法和磁盘阵列控制器 | |
CN105472047A (zh) | 存储系统 | |
WO2017167106A1 (zh) | 存储系统 | |
EP2972899B1 (en) | Providing local cache coherency in a shared storage environment | |
CN108540315A (zh) | 分布式存储系统、方法和装置 | |
CN102150157A (zh) | 使用大规模非活动磁盘阵列和自适应数据布局的电源和性能管理 | |
US9148430B2 (en) | Method of managing usage rights in a share group of servers | |
US20050033933A1 (en) | Systems and methods for modifying disk drive firmware in a raid storage system | |
US7725654B2 (en) | Affecting a caching algorithm used by a cache of storage system | |
JP2008016024A (ja) | キャッシュされたデータのダイナミック適応フラッシング | |
US20080005627A1 (en) | Self-defining counters | |
US11531621B2 (en) | Selective endpoint isolation for self-healing in a cache and memory coherent system | |
US20140304547A1 (en) | Drive array apparatus, controller, data storage apparatus and method for rebuilding drive array | |
CN113391945A (zh) | 用于存储管理的方法、电子设备以及计算机程序产品 | |
JP4789263B2 (ja) | メモリ制御システム、メモリ制御装置、メモリ制御方法 | |
CN111158580B (zh) | 关于容错式磁盘阵列的映像信息管理的方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |