内存故障处理方法、装置和存储介质与流程

文档序号:32418111发布日期:2022-12-02 22:32阅读:41来源:国知局
内存故障处理方法、装置和存储介质与流程

1.本技术涉及内存技术领域,尤其涉及一种内存故障处理方法、装置和存储介质。


背景技术:

2.当前计算机设备中内存作为重要的存储模块,用于计算机设备获取或存放相关数据。对此,若内存发生故障则对计算机设备的运行产生影响,例如数据丢失等等。当前提供了一种故障修复方法,采用替换缓存块代替发生故障的缓存块的方式修复内存故障,该技术称为分块缓存线冗余替换(partial cache line sparing,pcls)技术。然而,考虑到内存成本的问题,替换缓存块的数量是有限的,因此,如何高效利用有限的替换缓存块修复内存中的故障是目前亟待解决的问题。


技术实现要素:

3.本技术实施例提供了一种内存故障处理方法、装置和存储介质,用于提升修复内存故障的效率。
4.为达到上述目的,本技术的实施例采用如下技术方案:
5.第一方面,提供了一种内存故障处理方法,用于处理器固件,该方法包括:中央处理器cpu接收到带外控制器发送的修复请求;修复请求用于请求对内存中的目标缓存块进行故障修复,修复请求携带有目标缓存块的故障严重程度;当存在空闲的替换缓存块时,cpu采用空闲的替换缓存块替换目标缓存块;当不存在空闲的替换缓存块时,cpu基于目标缓存块的故障严重程度确定目标替换缓存块;目标替换缓存块为当前替换了历史故障缓存块的缓存块,目标缓存块的故障严重程度大于或等于历史故障缓存块的故障严重程度;cpu将目标替换缓存块替换目标缓存块。
6.当前内存故障采用pcls技术进行修复时,替换缓存块的数量是有限的,对此,本技术提出在有空闲的替换缓存块时,对发生故障的缓存块进行修复,而当不存在空闲的替换缓存块时,根据发生故障的缓存块的故障严重程度,在被历史故障缓存块所占用的替换缓存块中,将历史故障缓存块中故障严重程度低于发生故障的缓存块的故障严重程度的修复资源用于修复发生故障的缓存块,从而有助于将有限的修复资源用于修复对系统产生影响的可能性较大的故障,进而提升修复内存故障的效率。
7.在一种可能的实现方式中,方法还包括:当目标缓存块采用空闲的替换缓存块修复成功时,保存目标缓存块和替换目标缓存块的替换缓存块之间的对应关系;当目标缓存块采用目标替换缓存块修复成功时,将目标替换缓存块与历史故障缓存块之间的对应关系,更新为目标替换缓存块与目标缓存块之间的对应关系。
8.该种可能的实现方式中,通过对发生故障的缓存块和修复资源之间的对应关系进行更新,有助于根据该故障修复结果确定目标缓存块是否占用有限的替换缓存块,进而在下一次发生故障时,判断下一次发生故障的缓存块与目标缓存块的故障严重程度,从而为下一次发生故障的缓存块确定目标替换缓存块。
9.在一种可能的实现方式中,目标替换缓存块为当前替换了故障严重程度最小的历史故障缓存块的缓存块。
10.该种可能的实现方式中,通过确定故障严重程度最小的历史故障缓存块对应的替换缓存块作为目标替换缓存块,有助于将替换缓存块用于修复故障严重程度较高的故障,从而降低故障严重程度较高的目标缓存块对系统产生影响的风险。
11.在一种可能的实现方式中,目标缓存块的故障严重程度为目标缓存块在预设时间段内的故障发生次数,预设时间段是指内存所在的服务器从启动至今的时间段。
12.该种可能的实现方式中,提供了一种表征目标缓存块的故障严重程度的具体实现方式,通过故障发生次数来表征故障严重程度,从而有助于对每个发生故障的缓存块进行评估,确定出对系统产生影响可能性较高的故障。
13.在一种可能的实现方式中,目标缓存块的故障严重程度为故障模型的输出结果,故障模型用于基于目标缓存块的故障信息确定故障严重程度,故障信息包括位置信息、故障发生时间和故障发生次数中的至少一个。
14.该种可能的实现方式中,提供了一种表征目标缓存块的故障严重程度的具体实现方式,通过故障模型输出结果作为目标缓存块的故障严重程度,有助于避免用户参与计算和数据处理,避免用户操作造成人工错误,进而提高故障预测结果的准确性。
15.第二方面,提供了一种内存故障处理装置,包括:用于执行第一方面提供的任意一种方法的功能单元,各个功能单元所执行的动作通过硬件实现或通过硬件执行相应的软件实现。例如,该装置可以包括:接收单元和处理单元;接收单元,用于接收到带外控制器发送的修复请求;修复请求用于请求对内存中的目标缓存块进行故障修复,修复请求携带有目标缓存块的故障严重程度。处理单元,用于当存在空闲的替换缓存块时,采用空闲的替换缓存块替换目标缓存块。处理单元,还用于当不存在空闲的替换缓存块时,基于目标缓存块的故障严重程度确定目标替换缓存块;目标替换缓存块为当前替换了历史故障缓存块的缓存块,目标缓存块的故障严重程度大于或等于历史故障缓存块的故障严重程度;将目标替换缓存块替换目标缓存块。
16.第三方面,提供了一种计算机设备,包括:处理器和存储器。处理器与存储器连接,存储器用于存储计算机执行指令,处理器执行存储器存储的计算机执行指令,从而实现第一方面提供的任意一种方法。
17.第四方面,提供了一种芯片,该芯片包括:处理器和接口电路;接口电路,用于接收代码指令并传输至处理器;处理器,用于运行代码指令以执行第一方面提供的任意一种方法。
18.第五方面,提供了一种计算机可读存储介质,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
19.第六方面,提供了一种计算机程序产品,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行第一方面提供的任意一种方法。
20.第二方面至第六方面中的任一种实现方式所带来的技术效果可参见第一方面中对应实现方式所带来的技术效果,此处不再赘述。
附图说明
21.图1为本技术实施例提供的一种计算机设备的组成示意图;
22.图2为一种内存故障修复方法的流程示意图;
23.图3为一种内存故障修复方法的流程示意图;
24.图4为本技术实施例提供的一种内存故障修复方法的流程示意图;
25.图5为本技术实施例提供的一种内存故障修复方法的流程示意图;
26.图6为本技术实施例提供的一种内存故障修复系统的交互示意图;
27.图7为本技术实施例提供的一种内存故障修复装置的组成示意图。
具体实施方式
28.在本技术的描述中,除非另有说明,“/”表示“或”的意思,例如,a/b可以表示a或b。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
29.需要说明的是,本技术中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
30.如图1所示,为本技术实施例提供的一种系统架构图。该系统架构图是计算机设备的架构图。参考图1,该计算机设备的硬件部分包括处理器、带外控制器以及内存,软件部分主要包括带外管理模块、处理器固件以及操作系统(operating system,os)管理单元。其中,带外管理模块位于带外控制器内,os管理单元位于处理器内,处理器固件可以位于处理器内(如图1所示),或者处理器固件也可以位于处理器外的固件芯片(图1中未示出)内。
31.其中,带外管理模块可以为非业务模块的管理单元。例如,带外管理模块可以通过专用的数据通道对服务器进行远程维护和管理,该带外管理模块是完全独立于服务器的操作系统之外,可以通过服务器的带外管理接口与基本输入输出系统(basic input output system,bios)和os(或os管理单元)进行通信。
32.示例性的,带外管理模块可以包括计算机设备运行状态的管理单元、处理器外的管理芯片中的管理系统、计算机设备主板管理单元(baseboard management controller,bmc)、系统管理模块(system management mode,smm)等。需要说明的是,本技术实施例对带外管理模块的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以带外管理模块为bmc为例进行说明。
33.其中,处理器固件也可以称为处理器固件程序。具体地,处理器固件包括firmware、基本输入输出系统(basic input output system,bios)、管理引擎(management engine,me)、微码或智能管理单元(intelligent management unit,imu)等固件。需要说明的,本技术实施例对处理器固件的具体形式并不限定,以上仅为示例性说明。在下述实施例中,仅以处理器固件为bios为例进行说明。
34.需要说明的是,上述带外管理模块与处理器固件中所包含的部分管理单元或模块
与固件仅作为示例。事实上,部分管理单元也可以作为处理器固件程序在计算机中运行,例如smm也可以为用户提供业务服务,执行bios相关功能。类似地,部分处理器固件也可以作为非业务模块的管理单元,例如me、imu等,执行bmc相关功能。
35.其中,内存,也称为内存储器或主存储器,安装在计算机设备的主板上的内存插槽中,内存与内存控制器之间通过内存通道(channel)进行通信。内存具有至少一个内存列(rank),每个内存列分别位于内存的一个面上,每个内存列包括至少一个子内存列(subrank),内存列或子内存列包括多个内存芯片(device),每个内存芯片被划分为多个存储阵列组(bankgroup),每个存储阵列组包括多个存储阵列(bank),每个存储阵列划分为多个存储单元(cell),每个存储单元具有一个行(row)地址和一个列(column)地址,每个存储单元包括一个或多个比特位。也即是说,只要指定存储阵列上的行(row)和列(column),则可以在存储阵列上定位一个存储单元。其中,内存发生故障的最小单位为存储阵列上的存储单元。
36.本技术实施例中,存储单元可以称为缓存块,当缓存块占用四个比特位时,可以称为半字节条目,当缓存块占用八个比特位时,可以称为字节条目。其中,存储单元的行地址和列地址用于指示存储单元在内存中的位置。在一种划分方式中,内存从上级至下级可以依次划分为内存芯片、存储阵列组、存储阵列,存储行/存储列、存储单元(缓存块)、比特位,其中,内存颗粒、存储阵列组、存储阵列、存储行、存储列、存储单元(缓存块)、比特位在内存上的地址为真实的物理地址。在另一种划分方式中,中央处理单元(central processing unit,cpu)基于分页机制将内存芯片划分为多个内存页(page),其中,内存页的地址为虚拟地址,虚拟地址需要转换后才会变为真实的物理地址。
37.需要说明的,本技术实施例描述的系统架构以及应用场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
38.本技术实施例提供的方法可适用但不限于动态随机存取存储器(dynamic random access memory,dram)、静态随机存取存储器(static random access memory,sram)等内存,本技术实施例的方法对于内存的类型不作限制。
39.当前,大部分计算机设备的处理器都支持对内存进行检查,并对检查到的错误进行纠错,即修复内存中的故障。例如,在内存每次执行读写任务时,处理器采用错误检查与纠正(error checking and correcting,ecc)方法识别内存中故障并进行修复。其中,ecc方法用于识别内存中较少比特失效时的错误。能够被纠正的错误称为可纠正错误(corrected error,ce),也可以称为可纠正故障。如果超出纠错算法的能力,例如,内存上有大范围的多比特失效时,则会纠错失败,产生不可纠正错误(uncorrected error,uce),也可以称为不可纠正故障。当产生uce时,则会导致计算机设备的系统发生严重故障,比如,宕机,造成内存中的数据丢失。
40.对此,为了针对内存中出现故障的缓存块进行修复,本技术实施例提供了一种采用替换缓存块代替发生故障的缓存块的方式修复内存故障的技术,该技术称为pcls技术。其中,缓存块为半字节条目时,替换缓存块可以称为半字节替换条目。该替换缓存块通常存储于内存控制器中,考虑到内存控制器的成本,替换缓存块的数量是有限的。例如,针对每
个内存通道的替换缓存块的数量为16个。因此,如何高效利用有限的替换缓存块对内存故障进行修复是目前亟待解决的问题。需要说明的,本技术实施例对内存控制器中的替换缓存块的数量并不限定,以上仅为示例性说明。
41.其中,在一些实施例中,如图2所示,按照以下步骤s201-s204利用pcls技术对内存故障进行修复。
42.s201、发生故障并且故障发生次数达到阈值时,触发故障修复流程。
43.s202、查找是否存在空闲pcls资源。
44.可以理解的是,该pcls资源是指上文所描述的替换缓存块。空闲pcls资源是指未被用于修复故障的缓存块。
45.s203、若存在空闲pcls资源,则执行pcls修复任务。
46.具体地,采用空闲pcls资源替换发生故障的缓存块。
47.若不存在空闲pcls资源,则不执行pcls修复任务。
48.可以理解的是,在没有空闲的pcls资源用于替换发生故障的缓存块时,将无法对该发生故障的缓存块进行修复,进而该发生故障的缓存块可能对系统产生影响。
49.s204、更新pcls资源的标记为已使用。
50.pcls资源的标记用于指示该资源是否已经被用于修复发生故障的缓存块。
51.上述步骤s201-s204,描述了利用pcls技术修复内存故障的基本方案,然而,pcls资源通常是有限的,在上述方案中,当pcls资源均被使用后,对于后续发生故障的缓存块将无法进行修复。显然,上述方式不利于修复资源的合理利用。
52.在另一些实施例中,如图3所示,按照以下步骤s301-s306利用pcls技术对内存故障进行修复。
53.s301、发生故障并且故障发生次数达到阈值时,触发故障修复流程。
54.s302、查找是否存在空闲pcls资源。
55.s303、若存在空闲pcls资源,则执行pcls修复任务。
56.s304、若不存在空闲pcls资源,则回收最旧的pcls资源,再执行pcls修复任务。
57.其中,最旧的pcls资源是指在已被占用的修复资源中最早用于修复故障的缓存块。例如,替换缓存块a、b和c按照时间顺序分别用于修复故障,则替换缓存块a为最旧的pcls资源。
58.上述步骤s304中,将回收最旧的pcls资源用于替换当前发生故障的缓存块。
59.s305、更新pcls资源的标记为已使用。
60.s306、更新已使用的pcls资源集合。
61.可以理解的是,该已使用的pcls资源集合中包括多个替换缓存块,该多个替换缓存块分别对应被使用的时间,或者该多个替换缓存块按照被使用的时间顺序排列,当后续内存中其他缓存块发生故障时,在该已使用的pcls资源集合中回收修复资源。
62.上述步骤s301-s306,描述了利用pcls技术,回收pcls资源实现内存故障修复的方案。然而,该方案中回收pcls资源的策略是基于pcls资源被使用的时间顺序而确定的,而最先修复故障的缓存块用于修复当前发生故障的缓存块的方式同样不利于修复资源的合理利用。
63.有鉴于此,在下述各个示例中,本技术实施例提供了一种内存故障处理方法,根据
目标缓存块的故障严重程度,在没有空闲的替换缓存块用于修复故障时,通过在已占用修复资源的历史故障缓存块中确定故障严重程度小于目标缓存块的故障严重程度的历史故障缓存块,再根据该历史故障缓存块所占用的替换缓存块,修复目标缓存块。上述根据发生故障的缓存块的故障严重程度确定对该缓存块的修复方式,有助于提升修复资源的利用率,以降低故障对系统产生影响的可能性。
64.如图4所示,为本技术实施例提供的一种内存故障处理方法的流程图,包括步骤s401-s403。
65.s401、cpu获取内存的故障信息。
66.其中,该故障信息指示了至少一个缓存块发生故障。该至少一个缓存块中的任意一个缓存块可以称为目标缓存块。故障信息包括至少一个缓存块在内存中发生故障的位置信息。例如,上述用于指示存储单元在内存中的地址信息。
67.可选的,故障信息包括缓存块的故障发生时间。该故障发生时间用于后续带外控制器判断该缓存块在预设时间段内的发生频率。示例性的,当故障发生时间在预设时间段内,则将统计缓存块在该故障发生时间发生的故障,当故障发生时间不在预设时间段内,则对于本次故障不进行统计。
68.可以理解的是,故障信息用于指示故障发生的基本信息,以上故障信息中包含的信息仅作为示例,还可以包括更多或更少的信息,本技术对此不作限制。
69.在上述相关技术中,内存每次执行读写任务时,cpu会基于ecc方法对内存进行故障检测,如果检测到故障则会对该检测到的错误进行纠正。
70.s402、cpu向带外控制器发送故障信息。
71.其中,步骤s402用于带外控制器根据故障信息对该故障进行诊断。
72.具体地,包括如图5所示的步骤s501-s503。
73.s501、带外控制器判断缓存块是否为单点故障。
74.可选的,带外控制器根据至少一个缓存块发生故障的位置信息确定目标缓存块是否为单点故障。带外控制器根据至少一个缓存块发生故障的位置信息,确定至少一个缓存块的故障类型,确定故障类型为单点故障的缓存块为目标缓存块。
75.具体地,带外控制器通过确定目标缓存块的地址信息是否与其他发生故障的缓存块的地址信息不同,以确定目标缓存块是否为单点故障。其中,该其他发生故障的缓存块包括故障信息中所指示的至少一个缓存块以及历史故障缓存块。历史故障缓存块是指在目标缓存块发生故障之前发生故障并被修复的缓存块。其中,判断地址信息是否不同包括:目标缓存块的行地址与其他发生故障的缓存块的行地址是否不同,以及目标缓存块的列地址与其他发生故障的缓存块的列地址是否不同。当目标缓存块的行地址与其他发生故障的缓存块的行地址不同,并且目标缓存块的列地址与其他发生故障的缓存块的列地址不同时,确定目标缓存块为单点故障。
76.可以理解的是,当内存中同一行或同一列出现多个(例如两个)发生故障的缓存块时,带外控制器可以诊断该存储行或该存储列发生故障的可能性较大,则需要对该存储行或该存储列采用其他技术进行故障修复,而不再通过pcls技术利用替换缓存块代替发生故障的缓存块的方式进行修复。
77.在一些实施例中,当cpu向带外控制器发送故障信息,带外管理类模块根据故障信
息判断缓存块的故障类型不是单点故障时,可以将缓存块的故障信息返回至cpu。或者,带外控制器将缓存块的故障类型不是单点故障的信息反馈至cpu,以便cpu再通过其他方式确定目标缓存块的修复方式。
78.具体地,当带外控制器确定缓存块为单点故障时,则该缓存块为目标缓存块,带外控制器确定对该对目标缓存块基于pcls技术进行修复,执行以下步骤s502;当带外控制器确定缓存块不是单点故障时,不执行pcls修复。
79.s502、带外控制器确定目标缓存块的故障严重程度。
80.可选的,目标缓存块的故障严重程度用于指示目标缓存块故障转变为uce的概率。
81.在一种示例中,带外控制器可以通过统计目标缓存块的故障发生次数确定目标缓存块的故障严重程度。其中,该故障发生次数用于表征目标缓存块的故障严重程度。
82.可以理解的是,通常情况下,内存针对目标缓存块进行修复,若修复成功则标记该故障为ce,后续若该缓存块反复出现故障并进行多次修复时,为了避免该缓存块的故障由ce转变为uce,内存可以考虑采用pcls技术将该发生故障的缓存块以替换缓存块进行替换,以解决该缓存块反复出现故障的问题。
83.可选的,带外控制器根据目标缓存块的故障发生时间,统计预设时间段内的故障发生次数;进一步地,根据预设时间段内的故障发生次数,确定目标缓存块的发生频率。通过计算故障的发生频率,有助于确定在预设时间段内发生频率较高的故障,该故障在预设时间段内的故障严重程度较高。示例性的,该预设时间段是指内存所在服务器从启动至获取故障信息的时间段。
84.在一种示例中,带外控制器将目标缓存块的故障信息输入到故障模型,输出目标缓存块的故障严重程度。其中,该故障信息包括位置信息、故障发生时间和故障发生次数中的一个或多个。
85.其中,故障模型为预先训练完成的机器学习模型,该故障模型的训练过程可以是通过训练样本和样本标签进行迭代训练,其中,训练样本包括多个内存的故障信息,样本标签包括每个训练样本的故障严重程度。该故障训练模型可以为人工智能(artificial intelligence,ai)故障训练模型。
86.在该实施例中,由于故障模型是预先训练完成的,因此,将目标内存的故障信息输入故障模型即可得到目标内存的故障严重程度,不需要用户参与计算和数据处理,不仅有助于提高故障预测的速度,还可以避免用户操作所造成的人工错误,进而提高故障预测结果的准确性。
87.在一些实施例中,机器学习模型可以是分级阈值算法,或者,随机森林、梯度下降决策树模型(gradient boosting decision tree,gbdt)、极端梯度提升(extreme gradient boosting,xgboost)、朴素贝叶斯、支持向量机(support vector machine,svm)等机器学习算法中的一种或多种,或者,卷积神经网络(convolutional neural network,cnn)、长短期神经网络(long short-term memory,lstm)等深度学习算法中的一种或多种,或者,联邦平均法(federated averaging,fedavg)、fedprox、fedcs等联邦学习优化类算法中的一种或多种。
88.s503、带外控制器向cpu发送修复请求。
89.其中,该修复请求用于请求对内存中目标缓存块进行故障修复,该修复请求携带
有目标缓存块的故障严重程度。
90.可以理解的是,该任务指示消息也可以理解为带外控制器在诊断单点故障后,向cpu反馈的故障诊断结果。
91.s403、cpu接收带外控制器发送的修复请求,根据修复请求对目标缓存块进行修复。
92.具体地,步骤s403包括以下步骤s403a-s403d。
93.s403a、cpu判断是否存在空闲的替换缓存块。
94.其中,空闲的替换缓存块是指当前pcls技术中提供的可用的修复资源。可以理解的是,基于pcls技术对发生故障的缓存块进行修复时,利用替换缓存块代替发生故障的缓存块,当替换缓存块有限的情况下,所能修复的故障也是有限的。
95.具体地,若cpu判断存在空闲的替换缓存块时,执行步骤s403b;若cpu判断不存在空闲的替换缓存块时,执行步骤s403c。
96.s403b、cpu利用空闲的替换缓存块对目标缓存块进行修复。
97.具体地,cpu采用空闲的替换缓存块代替目标缓存块的方式修复目标缓存块。
98.可以理解的是,内存中缓存块发生故障导致cpu无法在该缓存块中读取或写入数据,采用替换缓存块代替目标缓存块的修复方式,具体是指将cpu对目标缓存块进行处理的映射关系,调整为cpu对替换缓存块进行处理的映射关系,使得后续cpu通过对替换缓存块进行读写,从而修复该内存故障。具体地,该映射关系可以为cpu读取或写入数据所对应缓存块的位置信息。
99.s403c、cpu基于目标缓存块的故障严重程度确定目标替换缓存块,将目标替换缓存块替换目标缓存块。
100.其中,目标替换缓存块用于替换目标缓存块,该目标替换缓存块为当前替换了历史故障缓存块的缓存块。目标缓存块的故障严重程度大于或等于历史故障缓存块的故障严重程度。
101.可以理解的是,上述步骤s403中cpu获取发生故障的缓存块的故障严重程度,进一步地,比较目标缓存块的故障严重程度与历史故障缓存块的故障严重程度,若存在故障严重程度低于目标缓存块的故障严重程度所对应的历史故障缓存块,则可以将用于修复故障严重程度较低的历史故障缓存块的替换缓存块进行回收,并确定出目标替换缓存块,用于替换目标缓存块。其中,故障严重程度低于目标缓存块的历史故障缓存块可能存在多个,相应地,可回收的修复资源可能也存在多个。
102.在一种示例中,cpu根据历史故障缓存块的故障严重程度确定优先级序列,其中,故障严重程度高的历史故障缓存块对应的优先级高,故障严重程度低的历史故障缓存块对应的优先级低。进一步地,cpu将目标缓存块的故障严重程度与该优先级序列进行比较,根据目标缓存块的故障严重程度确定目标缓存块在优先级序列中的位置。其中,若目标缓存块的优先级较高,则表示该目标缓存块对系统产生影响的可能性较大。若目标缓存块的优先级较低,则表示该目标缓存块对系统产生影响的可能性较小。
103.其中,该优先级序列用于表征目标缓存块的故障严重程度的高低。示例性的,若以上述故障发生次数标识各个历史故障缓存块的故障严重程度,假设历史故障缓存块a发生故障6次,历史故障缓存块b发生故障8次,历史故障缓存块c发生故障15次,则按照故障严重
程度由高到低的顺序进行排序,得到优先级序列为c、b、a。也就是说,历史故障缓存块c的故障严重程度高于历史故障缓存块b的故障严重程度,历史故障缓存块b的故障严重程度高于历史故障缓存块a的故障严重程度,相应地,修复故障时对故障严重程度较高的故障先进行修复,从而有助于避免故障严重程度较高的故障影响系统的运行。
104.可以理解的是,当前替换缓存块数量有限,通过比较目标缓存块的故障严重程度与历史故障缓存块的故障严重程度,有助于灵活调配有限的替换缓存块以修复故障严重程度较高的缓存块,从而尽可能地避免故障对系统产生的影响。
105.在一种示例中,cpu根据目标缓存块的故障严重程度,确定优先级低于目标缓存块的优先级的一个或多个历史故障缓存块,进一步地,确定该一个或多个历史故障缓存块所使用的替换缓存块。cpu在一个或多个历史故障缓存块所使用的替换缓存块中确定目标替换缓存块,该目标替换缓存块用于在没有空闲的替换缓存块时,修复目标缓存块。
106.在一种示例中,cpu在一个或多个历史故障缓存块中确定严重程度最低的历史故障缓存块,将该历史故障缓存块所使用的替换缓存块作为目标替换缓存块。或者,cpu在一个或多个历史故障缓存块中选择任意一个历史故障缓存块所占用的替换缓存块作为目标替换缓存块。
107.可以理解的是,针对目标缓存块,cpu通过判断其故障严重程度与历史故障缓存块的故障严重程度,确定出优先级序列,若目标缓存块的故障严重程度较高,且所有的替换缓存块已全部被用于修复历史故障缓存块的故障,cpu将该优先级序列中,故障严重程度最低的历史故障缓存块对应的替换缓存块进行回收,回收后的替换缓存块作为目标替换缓存块,在修复过程中没有空闲的替换缓存块的情况下,该目标替换缓存块用于修复目标缓存块。
108.在一种示例中,cpu将回收后的替换缓存块确定可回收标识,该可回收标识用于指示该替换缓存块为目标替换缓存块。具体地,可回收标识包括可回收和不可回收,例如通过0和1分别表示可回收和不可回收。或者,cpu确定可回收标识的范围,该范围用于指示修复资源中替换缓存块的个数,例如,替换缓存块个数为16个,则可回收标识的范围为0-15,当存在多个可回收修复资源时,按照多个可回收修复资源所对应故障严重程度由小到大的顺序,确定可回收标识分别为0,1,
……
,n,n≤15。
109.s403d、当存在可回收修复资源时,cpu利用可回收修复资源对目标缓存块进行修复。
110.具体地,cpu采用目标替换缓存块代替目标缓存块进行修复。
111.其中,采用目标替换缓存块代替目标缓存块的修复方式与上述采用空闲的替换缓存块代替目标缓存块的修复方式相同,不再赘述。
112.可选的,方法还包括步骤s403e、当不存在可回收修复资源时,cpu对目标缓存块不进行修复。
113.可选的,在步骤s403e之后,还包括步骤s403f、cpu返回故障信息,用于表示对该发生故障的缓存块不进行修复。
114.通过上述步骤s401-s403,cpu通过接收带外控制器发送的目标缓存块的故障严重程度,确定对目标缓存块的修复方式,其中,当不存在空闲的修复资源时,可以通过故障严重程度确定可回收修复资源,在可回收修复资源中确定目标替换缓存块为该目标缓存块进
行修复,其中,可回收修复资源为历史故障缓存块所占用的修复资源。也就是说,根据故障严重程度回收已占用的修复资源为目标缓存块进行修复。通过上述方法有助于降低内存故障对系统产生影响的可能性,提升内存故障的修复效率。
115.可选的,在步骤s403b之后,方法还包括:cpu保存目标缓存块和替换目标缓存块的替换缓存块之间的对应关系。其中,该故障修复结果中还可以包括上述故障信息,例如位置信息、故障发生时间以及故障严重程度等信息。
116.可选的,在步骤s403c之后,方法还包括:cpu将目标替换缓存块与历史故障缓存块之间的对应关系,更新为目标替换缓存块与目标缓存块之间的对应关系。其中,该目标替换缓存块的标记信息可以为上述可回收标识。
117.可以理解的是,cpu保存上述对应关系用于后续其他缓存块发生故障时,当故障严重程度高于该目标缓存块的故障严重程度,此时用于修复该目标缓存块的替换缓存块可以用于修复后续发生故障的缓存块,该对应关系相应会进行修改。
118.上述图4与图5所执行的方法可应用于如图6所示的内存故障修复系统,该系统至少包括带外控制器和cpu。包括步骤s601-s612。
119.s601、cpu接收内存的故障信息,并向带外控制器上报该故障信息。
120.如上述步骤s401、s402。
121.s602、带外控制器诊断是否为单点故障。
122.如上述步骤s501。
123.s603、当带外控制器确定为单点故障时,确定目标缓存块的故障严重程度。
124.如上述步骤s502。
125.s604、带外控制器向cpu发送修复请求。
126.如上述步骤s503。
127.s605、cpu查找是否存在空闲的修复资源。
128.若存在,则执行步骤s610、执行pcls修复。
129.如上述步骤s403a-s403b。
130.s606、当不存在空闲的修复资源时,确定是否存在可回收修复资源。
131.如上述步骤s403c。
132.s607、cpu将目标缓存块与历史故障缓存块的故障严重程度进行比较。
133.s608、cpu确定是否存在历史故障缓存块的故障严重程度小于目标缓存块的故障严重程度。
134.s609、当存在时,cpu确定可回收修复资源。
135.可参考上述步骤s203c具体实现方式。
136.当不存在时执行步骤s611、不执行pcls修复。
137.s610、cpu执行pcls修复任务。
138.s612、cpu更新修复资源与发生故障的缓存块之间的对应关系。
139.在上述方案中,cpu用于执行修复动作逻辑以及回收动作逻辑,带外控制器用于执行故障诊断逻辑。其中,修复动作逻辑用于响应硬件产生故障的处理,负责上报故障信息到故障诊断逻辑,以及处理诊断逻辑下发的故障修复任务。回收动作逻辑用于回收指定的修复资源,完成后续的修复任务。故障诊断逻辑用于接收上报的故障信息,以及识别故障特
征。
140.内存故障系统通过执行上述方法,cpu与带外控制器分别执行故障诊断与故障修复,在历史故障缓存块所占用的替换缓存块中为目标缓存块确定可用资源,有助于实现按照发生故障的缓存块的故障严重程度进行修复,从而有助于实现合理利用有限的修复资源,以修复较为严重的故障,提升内存故障的修复资源的利用率。
141.上述主要从方法的角度对本技术实施例的方案进行了介绍。可以理解的是,内存故障处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和软件模块中的至少一个。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
142.本技术实施例可以根据上述方法示例对内存故障处理装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
143.在采用对应各个功能划分各个功能模块的情况下,图7示出上述实施例中所涉及的内存故障处理装置的一种可能的结构示意图。如图7所示,内存故障处理装置70包括接收单元701和处理单元702。
144.接收单元701,用于接收到带外控制器发送的修复请求;修复请求用于请求对内存中的目标缓存块进行故障修复,修复请求携带有目标缓存块的故障严重程度。
145.处理单元702,用于当存在空闲的替换缓存块时,采用空闲的替换缓存块替换目标缓存块。
146.处理单元702,还用于当不存在空闲的替换缓存块时,基于目标缓存块的故障严重程度确定目标替换缓存块;目标替换缓存块为当前替换了历史故障缓存块的缓存块,目标缓存块的故障严重程度大于或等于历史故障缓存块的故障严重程度;将目标替换缓存块替换目标缓存块。
147.在一种示例中,处理单元702,还用于当目标缓存块采用空闲的替换缓存块修复成功时,保存目标缓存块和替换目标缓存块的替换缓存块之间的对应关系;当目标缓存块采用目标替换缓存块修复成功时,将目标替换缓存块与历史故障缓存块之间的对应关系,更新为目标替换缓存块与目标缓存块之间的对应关系。
148.在一种示例中,目标替换缓存块为当前替换了故障严重程度最小的历史故障缓存块的缓存块。
149.在一种示例中,目标缓存块的故障严重程度为目标缓存块在预设时间段内的故障发生次数,预设时间段是指内存所在的服务器从启动至今的时间段。
150.在一种示例中,目标缓存块的故障严重程度为故障模型的输出结果,故障模型用于基于目标缓存块的故障信息确定故障严重程度,故障信息包括位置信息、故障发生时间和故障发生次数中的至少一个。
subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
160.尽管在此结合各实施例对本技术进行了描述,然而,在实施所要求保护的本技术过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
161.尽管结合具体特征及其实施例对本技术进行了描述,显而易见的,在不脱离本技术的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1