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

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

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


背景技术:

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


技术实现要素:

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