CN118295838A - 一种确定内存故障的修复资源粒度的方法及装置 - Google Patents
一种确定内存故障的修复资源粒度的方法及装置 Download PDFInfo
- Publication number
- CN118295838A CN118295838A CN202410390412.4A CN202410390412A CN118295838A CN 118295838 A CN118295838 A CN 118295838A CN 202410390412 A CN202410390412 A CN 202410390412A CN 118295838 A CN118295838 A CN 118295838A
- Authority
- CN
- China
- Prior art keywords
- repair
- fault
- information
- resource
- resources
- 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.)
- Pending
Links
- 230000008439 repair process Effects 0.000 title claims abstract description 559
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 88
- 238000004891 communication Methods 0.000 claims description 4
- 230000008447 perception Effects 0.000 abstract description 9
- 235000019580 granularity Nutrition 0.000 description 116
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 239000002245 particle Substances 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008263 repair mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Abstract
本申请提供一种内存故障的修复方法,包括:处理模块获取内存的故障信息,故障信息包括故障的类型;处理模块获取第一修复资源信息,第一修复资源信息包括第一修复资源的类型,第一修复资源能修复故障;处理模块根据故障信息和第一修复资源信息确定第一修复信息,第一修复信息用于指示BIOS使用第二修复资源对故障进行修复,第二修复资源为第一修复资源中粒度最小的修复资源;BIOS基于第一修复信息,对故障进行修复。本申请提供的内存故障的修复方法,优先使用对性能几乎无影响的细粒度的自愈资源执行故障的修复,不仅避免了直接使用大粒度的自愈资源修复手段造成系统性能的下降而导致业务的感知明显,还实现了细粒度资源的充分利用。
Description
本申请要求于2022年7月8日递交的申请号为202210797526.1申请名称为“一种确定内存故障的修复资源粒度的方法及装置”的中国专利申请案的分案申请,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及服务器技术领域,尤其涉及一种确定内存故障的修复资源粒度的方法及装置。
背景技术
动态随机存取存储器(dynamic random access memory,DRAM)是一种在存储和IT领域有广泛应用的随机存取存储器。随着DRAM的集成度越高、制程越小,基础失效率也越来越高,内存故障已经成为造成服务器宕机的重要原因之一。
发明内容
本申请的实施例提供一种内存故障的修复方法,针对内存故障,优先使用对性能几乎无影响的小粒度的自愈资源执行故障的修复,不仅避免了直接使用大粒度的自愈资源修复手段造成系统性能的下降而导致业务的感知明显,还实现了小粒度资源的充分利用。
第一方面,本申请实施例提供一种确定内存故障的修复资源粒度的方法,该方法由处理模块执行,所述方法包括:获取内存的故障信息,该故障信息包括故障的类型;确定故障的类型;获取修复资源信息,该修复资源信息包括修复资源集合中包括的修复资源的类型且该修复资源能修复上述故障;根据故障类型和修复资源信息确定修复信息,修复信息包括第一修复资源的类型或者第一修复资源的粒度中的至少一个,第一修复资源为修复资源集合中粒度最小的修复资源。
也就是说,本申请实施例提供一种确定内存故障的修复资源粒度的方法通过确定优先采用修复资源中的最小粒度的修复资源对故障进行修复,以实现故障修复对系统性能影响较小,以及修复资源的充分利用。
在一个可能的实现中,上述修复资源信息还包括修复资源集合中包括的修复资源的数量,则修复信息还包括第一修复资源的数量。
例如,修复资源信息不但包括修复资源的类型,还包括各个类型的修复资源的数量,相对应的,修复信息包括第一修复资源,也就是最小粒度的修复资源,以及第一修复资源的数量,即修复信息指示了针对内存出现的故障类型的,采用的修复资源的类型以及该类型修复资源的数量,以实现对内存故障的修复。
在另一个可能的实现中,确定内存故障的修复资源粒度的方法还包括:当第一修复资源的数量不满足故障的修复资源需求时,修复信息还包括第二修复资源的类型或者第二修复资源的粒度中的至少一个,第二修复资源为修复资源集合中第二小粒度的修复资源。
换言之,在本可能的实现中,确定优先使用小粒度的修复资源,当小粒度修复资源耗尽后,再确定使用次小粒度的修复资源对内存故障执行修复,依次类推,通过优先使用对性能几乎无影响的小粒度的自愈资源执行故障的修复,不仅避免了直接使用大粒度的自愈资源修复手段造成系统性能的下降而导致业务的感知明显,还实现了小粒度资源的充分利用。
在另一个可能的实现中,修复信息还包括所述第二修复资源的数量。
在另一个可能的实现中,故障信息包括故障的第一类型和数量,则处理模块确定故障的类型,包括:处理模块根据故障的第一类型和数量,确定故障的第二类型。例如,内存的一个Bank中的不同位置发生了16(数量)次Cell(第一类型)故障,则确定该故障的类型为Bank(第二类型)故障。
在另一个可能的实现中,所述处理模块为处理器或BMC芯片。
第二方面,本申请实施例提供一种内存故障的修复方法,包括:处理模块获取内存的故障信息,故障信息包括故障的类型;处理模块获取第一修复资源信息,第一修复资源信息包括第一修复资源的类型,第一修复资源能修复故障;处理模块根据故障信息和第一修复资源信息确定第一修复信息,第一修复信息用于指示BIOS使用第二修复资源对故障进行修复,第二修复资源为第一修复资源中粒度最小的修复资源;BIOS获取第一修复信息,然后基于第一修复信息,对故障进行修复。
本申请实施例提供的内存故障的修复方法,通过优先使用对性能几乎无影响的小粒度的自愈资源执行故障的修复,不仅避免了直接使用大粒度的自愈资源修复手段造成系统性能的下降而导致业务的感知明显,还实现了细粒度资源的充分利用。
在一个可能的实现中,故障信息包括故障的第一类型和数量,则处理模块根据故障信息和第一修复资源信息确定第一修复信息,包括处理模块根据故障的第一类型和数量,确定故障的第二类型。
例如,内存的一个Bank上发生了16次Cell故障,则确定故障类型为bank故障。
在另一个可能的实现中,第一修复信息包括第一修复资源的类型,例如第一修复信息包括第二修复资源的类型为PCLS类型的修复资源,指示BIOS采用PCLS类型的修复资源对故障进行修复,换言之,第一修复资源信息只指示第二修复资源的类型,使BIOS采用该类型的修复资源对故障进行修复,直至将故障修复完成。
在另一个可能的实现中,第一修复信息还包括第二修复资源的数量,也就是说,第一修复信息包括第二修复资源的类型和数量,例如第一修复信息包括第二修复资源的类型为PCLS类型的修复资源,数量为16,指示BIOS采用16个PCLS类型的修复资源对故障进行修复即可实现故障的修复。
在另一个可能的实现中,还包括:当第二修复资源的数量不满足故障的修复资源需求时,则确定第二修复信息,第二修复信息用于指示BIOS使用第三修复资源对故障进行修复,第三修复资源为第二修复资源中第二小粒度的修复资源。也就是说,当最小粒度的修复资源不能满足故障的修复资源需求时,采用次小粒度的修复资源继续对故障进行修复,依次类推,直至实现对故障的修复。
在另一个可能的实现中,故障信息还包括故障的内存地址;BIOS基于第一修复信息,对故障进行修复,包括:基于第一修复信息对内存地址对应的内存执行故障修复,实现对故障的修复。
在另一个可能的实现中,故障的类型包括Cell故障、Row故障、col故障、Bank故障、Device故障、Rank故障中的一种或多种。
在另一个可能的实现中,修复资源包括PCLS修复资源、PPR修复资源、ADDDCSparing修复资源、Device Sparing修复资源、Rank Sparing修复资源中的至少两种;其中,PCLS修复资源的粒度小于PPR修复资源的粒度,PPR修复资源的粒度小于ADDDC Sparing修复资源的粒度,ADDDC Sparing修复资源的粒度小于Device Sparing修复资源的粒度,Device Sparing修复资源的粒度小于Rank Sparing修复资源的粒度。
可选的,处理模块为服务器的处理器,也就是说处理模块执行的步骤可以在处理器中执行实现;或者处理模块为服务器的带外管理单板管理控制器(BaseBoardManagement Controller,BMC),即处理模块执行的步骤可以在BMC中执行实现。
第三方面,本申请实施例提供一种确定内存故障的修复资源粒度的装置,包括处理模块,其中处理模块包括:
第一获取单元,用于获取内存的故障信息,所述故障信息包括故障的类型;
第一确定单元,用于确定所述故障的类型;
第二获取单元,用于获取修复资源信息,所述修复资源信息包括修复资源集合中包括的修复资源的类型所述修复资源能修复所述故障;
第二确定单元,用于根据所述故障类型和所述修复资源信息确定修复信息,所述修复信息包括第一修复资源的类型或者所述第一修复资源的粒度中的至少一个,所述第一修复资源为所述修复资源集合中粒度最小的修复资源。
在一个可能的实现中,所述修复资源信息还包括所述修复资源集合中包括的修复资源的数量,则所述修复信息还包括所述第一修复资源的数量。
在另一个可能的实现中,所述第二确定单元还用于:当所述第一修复资源的数量不满足所述故障的修复资源需求时,所述修复信息还包括第二修复资源的类型或者所述第二修复资源的粒度中的至少一个,所述第二修复资源为所述修复资源集合中第二小粒度的修复资源。
在另一个可能的实现中,所述修复信息还包括所述第二修复资源的数量。
在另一个可能的实现中,所述故障信息包括故障的第一类型和数量,所述第一确定单元具体用于:
根据所述故障的第一类型和数量,确定故障的第二类型。
在另一个可能的实现中,所述处理模块为处理器或BMC芯片。
第四方面,本申请实施例提供一种内存故障的修复装置,包括:处理模块和BIOS模块;
其中,所述处理模块包括:
第一获取单元,用于获取内存的故障信息,所述故障信息包括故障的类型;以及
获取第一修复资源信息,所述第一修复资源信息包括所述第一修复资源的类型,所述第一修复资源能修复所述故障;
确定单元,用于根据所述故障信息和所述第一修复资源信息确定第一修复信息,所述第一修复信息用于指示所述BIOS使用第二修复资源对所述故障进行修复,所述第二修复资源为所述第一修复资源中粒度最小的修复资源;
所述BIOS模块包括:
第二获取单元,用于获取所述第一修复信息;
修复单元,用于基于所述第一修复信息,对所述故障进行修复。在一个可能的实现中,所述故障信息包括故障的第一类型和数量;
所述确定单元还用于,根据所述故障的第一类型和数量,确定故障的第二类型。
在另一个可能的实现中,所述第一修复信息包括所述第二修复资源的类型。
在另一个可能的实现中,所述第一修复信息还包括所述第二修复资源的数量。在另一个可能的实现中,所述确定单元还用于:
当所述第二修复资源的数量不满足所述故障的修复资源需求时,则确定第二修复信息,第二修复信息用于指示BIOS使用第三修复资源对所述故障进行修复,所述第三修复资源为所述第二修复资源中第二小粒度的修复资源。
在另一个可能的实现中,
所述故障信息还包括所述故障的内存地址;
所述修复单元具体用于:
基于所述第一修复信息对所述内存地址对应的内存执行故障修复,实现对所述故障的修复。
在另一个可能的实现中,所述故障的类型包括Cell故障、Row故障、col故障、Bank故障、Device故障、Rank故障中的一种或多种。
在另一个可能的实现中,所述修复资源包括PCLS修复资源、PPR修复资源、ADDDCSparing修复资源、Device Sparing修复资源、Rank Sparing修复资源中的至少两种;
其中,所述PCLS修复资源的粒度小于所述PPR修复资源的粒度,所述PPR修复资源的粒度小于所述ADDDC Sparing修复资源的粒度,所述ADDDC Sparing修复资源的粒度小于所述Device Sparing修复资源的粒度,所述Device Sparing修复资源的粒度小于所述RankSparing修复资源的粒度。
在另一个可能的实现中,所述处理模块为服务器的处理器或BMC的处理器。
第五方面,本申请实施例提供一种芯片,包括至少一个处理器和通信接口,所述处理器用于执行第一方面或第二方面所述的方法。
第六方面,本申请实施例提供一种计算设备,包括处理器,和内存,所述处理器用于执行第一方面或第二方面所述的方法,以实现对所述内存中的故障进行修复。
第七方面,本申请实施例提供一种计算设备,包括处理器、BMC和内存,所述处理器和BMC中的任意一个用于执行第一方面或第二方面所述的方法,以实现对所述内存中的故障进行修复。
第八方面,本申请实施例提供一种计算设备,包括处理单元、BIOS和内存:
所述BIOS,用于获取所述内存的第一故障信息和第一修复资源信息;
所述处理模块,用于获取内存的第二故障信息,所述第二故障信息包括故障的类型;还确定所述故障的类型;还获取第二修复资源信息,所述第二修复资源信息包括修复资源集合中包括的修复资源的类型所述修复资源能修复所述故障;还根据所述故障类型和所述第二所述修复资源信息确定修复信息,所述修复信息包括第一修复资源的类型或者所述第一修复资源的粒度中的至少一个,所述第一修复资源为所述修复资源集合中粒度最小的修复资源;
所述BIOS,还用于获取所述第一修复信息;并用于基于所述第一修复信息对所述故障进行修复。
在一个可能的实现中,所述处理模块为处理器或者BMC芯片。
第九方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在被处理器执行时,使得第一方面或第二方面所述的方法被实现。
第十方面,本申请实施例还提供一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括指令,当所述指令执行时,令计算机执行第一方面或第二方面所述的方法。
附图说明
图1示出了可执行本申请实施例提供的一种内存故障的修复方法的计算设备的硬件结构示意图;
图2为本申请实施例提供的一种确定内存故障的修复资源粒度的方法的流程图;
图3为本申请实施例提供的一种内存故障的修复方法的流程图;
图4为本申请实施例提供的一种内存故障的修复方法在内存故障突发上报的情况下的实现过程示意图;
图5为本申请实施例提供的一种内存故障的修复方法在内存故障依次上报的情况下的实现过程示意图;
图6为本申请实施例提供的一种确定内存故障的修复资源粒度的装置的结构示意图。
具体实施方式
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
为了解决内存故障问题,一种方案为:服务器带外管理单板管理控制器(BaseBoard Management Controller,BMC)收集故障信息,开展故障预测,定义故障特征模式和修复机制,例如,针对Cell故障,使用部分缓存数据替换(partial cache linesparing,PCLS)修复资源进行修复;针对Row故障,使用PPR修复资源进行修复;针对Col故障和Bank故障,使用ADDDC Sparing修复资源进行修复;针对Device故障,使用DeviceSparing修复资源进行修复;针对Rank故障,使用Rank Sparing修复资源进行修复;发送给BIOS执行相应的请求;BIOS根据修复请求,执行相应的隔离机制,以完成系统的修复。
该方案的主要特点为针对不同的故障类型,执行相对应的自愈机制,却缺少了对内存不同粒度修复资源优先使用的考虑。针对可以使用多个小粒度的修复资源执行自愈的故障(例如可以使用多个PCLS修复资源执行该故障的修复),当优先使用了内存较大粒度的故障修复资源(例如ADDDC Sparing)执行该故障的修复,将导致小粒度的修复资源(例如PCLS)不可用,不仅造成剩余小粒度修复资源的浪费,还会影响系统性能导致业务的感知明显。
也就是说,该方案在执行对内存故障的修复时,固定类型的故障执行固定粒度的修复资源,没有考虑不同粒度修复资源优先使用的情况,导致修复资源的使用欠细致,不仅造成修复资源的浪费,还会影响系统性能,进而导致业务的感知明显。
可以理解的是,内存包括多个channel(通道),每个Channel包括多个双列直插式存储模块(dual inline memory modules,DIMM),一个DIMM包括多个Rank(内存模组),一个Rank包括多个Device(内存颗粒),一个Device包括多个Bank(内存库),一个Bank包括多个Row(内存行)或Col(内存列),一个Row或Col包括多个Cell(内存位)。Cell故障、行Row故障、列Col故障、Bank故障、颗粒Device故障、Rank故障分别表征,内存在Cell粒度、Row粒度、Col粒度、Bank粒度、Device粒度、Rank粒度上发生了故障。粒度用于度量内存空间的大小,例如DIMM的粒度大于rank,rank的粒度大于Device,Device的粒度大于Bank,Bank的粒度大于Row/Col,Row或Col的粒度大于Cell。
通常,当内存的某个Cell出现了故障,则称之为Cell故障;当Row/Col出现了故障(例如某个Row/Col出现了多个Cell故障,则确定该Row/Col出现了故障),则称之为Row故障/col故障;当Bank出现了故障,则称之为Bank故障;当Device出现了故障,则称之为Device故障;当Rank出现了故障,则称之为Rank故障;相应的将出现故障的内存空间大小,也可以将内存故障分为不同的粒度,例如,内存不同粒度故障从小到大可分为Cell故障、Row故障/col故障、Bank故障、Device故障、Rank故障。
内存是计算设备的重要组成部分,在使用过程中通常会由于各种原因发送故障,为了保证内存发生故障后不影响系统的运行,内存通常会冗余设置,例如每个Bank上会有冗余Row或Col,当Bank上的某个Row出现了故障,会用冗余的Row去替换掉发生故障的Row,我们把内存中可能存在的冗余的Cell、Row、col、Bank、Device、Rank等称之为修复资源。对应地,Cell修复资源包括部分缓存数据替换(partial cache line sparing,PCLS)修复资源,Row修复资源或者Col修复资源修复包括行替换(post-package repair,PPR)修复资源、Bank修复资源包括自适应型双颗粒数据纠正(adaptive doubledevice data correctionsparing,ADDDC Sparing)修复资源、Device修复资源包括Device Sparing修复资源、Rank修复资源包括Rank Sparing修复资源。粒度在描述修复资源时,是度量修复资源的大小,例如PCLS故障修复资源的粒度小于PPR故障修复资源。粒度越大的修复资源对系统性能的影响越大,业务感知会越明显。
针对包括上述一种方案以及现有技术存在的问题,本申请实施例提出一种内存故障的修复方法,对内存故障的修复优先使用小粒度的故障修复资源,当小粒度故障修复资源耗尽后,再使用次小粒度的修复资源对内存故障执行修复,依次类推,通过优先使用对性能几乎无影响的小粒度的自愈资源执行故障的修复,不仅避免了直接使用大粒度的自愈资源修复手段造成系统性能的下降而导致业务的感知明显,还实现了小粒度资源的充分利用。
需要解释的是,若无特殊说明,本申请实施例上下文提及的“修复资源”和“自愈资源”含义相同,“修复”和“自愈”的含义相同。
图1示出了可执行本申请实施例提供的一种内存故障的修复方法的计算设备的硬件结构示意图。如图1所示,该计算设备包括处理器105、内存控制器102、内存103和基本输入输出系统(basic input output system,BIOS)芯片104。处理器105和内存控制器102可以是集成在一起的,也可以是独立设置的。内存103用于存放处理器运算所需要的数据,并且还能够与计算设备中的硬盘等外部存储器进行数据交换,例如,内存103中可以缓存操作系统和软件应用程序等。内存控制器102用于对内存103中的数据/程序进行管理;BIOS芯片104用于对计算设备100中各个硬件进行检测,例如CPU、内存和主板等。
在另一种可能的实施例中,计算设备100还可以包括基板管理控制器106(baseboard management controller,BMC),用于对计算设备进行远程管理等操作。
该计算设备可以是终端设备,例如,个人电脑、智能手机、智能穿戴设备等。
该计算设备也可以是服务器,例如,X86架构的服务器,具体可以是刀片服务器、高密服务器、机架服务器或高性能服务器等。
应理解,在本申请实施例中,处理器105可以是中央处理单元CPU,该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
内存103为易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
应理解,根据本申请实施例的计算设备100可以执行实现下文中本申请实施例提供的内存故障的修复方法,为了便于描述,可以将处理器105以及BMC107合称为处理模块,也就是说在下文中,提到处理模块时,可以是处理器105,或者也可以是BMC106。
具体地,BIOS用于收集内存故障信息(包括内存故障发生的位置,故障数量、故障类型等)和故障修复资源信息,处理模块用于基于故障信息和故障修复资源信息,确定内存故障的修复策略,并将该修复策略发送至BIOS,BIOS基于故障修复策略对内存的故障进行修复。
例如,处理模块收集BIOS上报的内存故障信息,收集并统计BIOS上报的内存故障修复资源的数量。处理模块中的故障自愈推理决策模块根据内存故障信息以及故障修复资源信息,优先定义使用细粒度的故障修复资源执行内存故障修复的策略,并将该故障修复机制请求发送给BIOS,执行相应的故障修复。
需要说明的是,BIOS可以为一个存储器,也可以为一个具有功能的芯片。为了便于说明,在本申请后文中,BIOS实现的功能可以由处理器调用BIOS存储器中存储的程序执行,也可以由BIOS芯片直接执行。
图1示出的计算设备仅为可执行本申请实施例提供的一种内存故障的修复方法的计算设备的硬件结构的一种示意图,其不对本申请实施例所适用的计算设备构成限定,例如,该计算设备还可以包括持久性存储介质、通信接口、通信线路等,图1中未示出。
下面以计算设备为服务器为例介绍本申请实施例提供的方案,其他计算设备与之类似,这里不再赘述。
图2为本申请实施例提供的一种确定内存故障的修复粒度的方法的流程图。该方法可以在图1所示的服务器中执行,以实现对内存故障的修复粒度的确定,避免浪费修复资源。如图2所示,本申请实施例提供的一种确定内存故障的修复资源粒度的方法,至少包括步骤S201至步骤S206。
在步骤S201中,BIOS获取内存的故障信息。
BIOS获取内存中存在的故障信息,例如包括,故障的类型、故障的内存地址、故障的数量等信息。
在步骤S202中,处理模块获取内存的故障信息。
处理模块可以通过接收BIOS上报内存的故障信息的方式获取内存的故障信息,或者,处理模块可以通过向BIOS发送请求的方式获取内存的故障信息,例如,处理模块向BIOS发送请求,该请求用于请求获取内存的故障信息,BIOS响应该请求,向处理模块发送内存的故障信息。
内存的故障可以按照粒度划分为多种不同的类型,例如,内存的故障类型可以包括Cell故障、行Row故障、列col故障、Bank故障、颗粒Device故障、Rank故障中的一种或多种。本申请实施例对于内存的故障类型的具体粒度不做限定,在此仅是示例性说明,随着技术的进步,未来可能会出现更小或更大粒度的故障类型。
需要说明的是,处理模块可以获取BIOS获得的全部故障信息,也可以获取BIOS获得的全部故障信息中至少包括故障类型的一部分,例如BIOS获取的故障信息包括故障的类型、故障的内存地址、故障的数量,处理模块可以只获取故障的类型,或者,处理模块可以获取故障的类型,以及故障的数量。
在步骤S203中,处理模块确定内存的故障类型。
处理模块通过获取到的内存的故障信息,当故障信息包括故障类型以及该故障类型的数量时,处理模块可以根据故障类型和故障类型的数量确定内存故障的类型,例如,处理模块从BIOS获取的故障信息为在内存的一个Bank中的不同位置发生了16次Cell故障,则确定该内存故障的类型为Bank故障。
在另一个示例中,处理模块还可以直接从BIOS中直接获取故障类型,例如,BIOS上报给处理模块的故障类型为Cell故障,则处理模块就确定故障类型为Cell故障,换言之,处理模块实时处理BIOS上报的故障信息。
可选地,处理模块还可以确定内存故障的数量。
在步骤S204中,BIOS获取修复资源的信息。
BIOS对内存进行检测,以获取内存中的修复资源,该修复资源可以用于对内存故障进行修复。
内存是计算设备的重要组成部分,在使用过程中通常会由于各种原因发送故障,为了保证内存发生故障后不影响系统的运行,内存通常会冗余设置,例如每个Bank上会有冗余Row或Col,当Bank上的某个Row出现了故障,会用冗余的Row去替换掉发生故障的Row,我们把内存中可能存在的冗余的Cell、Row、col、Bank、Device、Rank等称之为修复资源。
BIOS获取修复资源信息,也就是获取内存中的冗余的Cell、Row、col、Bank、Device、Rank信息。
BIOS可以通过对内存进行检测,获取内存中所有修复资源的类型。
容易理解的是,修复资源的类型可以包括PCLS修复资源、PPR修复资源、ADDDCSparing修复资源、Device Sparing修复资源、Rank Sparing,其中,PCLS修复资源的粒度小于PPR修复资源的粒度,PPR修复资源的粒度小于ADDDC Sparing修复资源的粒度,ADDDCSparing修复资源的粒度小于Device Sparing修复资源的粒度,Device Sparing修复资源的粒度小于Rank Sparing修复资源的粒度。内存故障的粒度与修复资源的粒度对应关系,通常为:Cell故障对应PCLS修复资源、行Row故障/列Col故障对应PPR修复资源、Bank故障对应ADDDC Sparing修复资源、颗粒Device故障对应Device Sparing修复资源、Rank故障对应Rank Sparing修复资源。
可选地,BIOS还可以获取内存中所有修复资源的数量。例如,例如PCLS修复资源数量为16个,PPR修复资源数量为8个,ADDDC Sparing修复资源数量为4个。
在步骤S205中,处理模块获取修复资源的信息。
处理模块可以通过接收BIOS上报的修复资源信息的方式获取修复资源信息。
处理模块也可以向BIOS发送获取请求,以获取修复资源信息。
需要说明的是,处理模块可以获取BIOS获得的修复资源的全部信息,也可以获取BIOS获得的修复资源的全部信息中至少包括修复资源类型的一部分,例如BIOS获取的修复资源的信息包括修复资源的类型、修复资源的数量,处理模块可以只获取修复资源的类型,或者,处理模块可以获取修复资源的类型,以及修复资源的数量。
在一个示例中,处理模块可以根据故障类型,向BIOS发送获取粒度小于或等于故障类型的粒度对应粒度的修复资源信息的请求,例如故障类型为Bank,则处理模块向BIOS发送获取小于或等于ADDDC Sparing修复资源粒度的修复资源的信息(包括PCLS故障修复资源、PPR故障修复资源和ADDDC Sparing故障修复资源),修复资源信息包括修复资源的类型。
在另一个示例中,处理模块从BIOS获取内存中的所有修复资源信息。
需要说明的是,处理模块也可以获取BIOS获得的部分修复资源的信息中至少包括修复资源类型的一部分。
在步骤S206中,处理模块确定优先使用第一粒度的修复资源对故障进行修复的修复信息,第一粒度为最小粒度。
处理模块根据内存的故障信息和故障修复资源信息,确定针对该类型的故障的修复信息,该修复信息为在具有的内存修复资源中,优先使用当前可用的故障修复资源中最小粒度的修复资源对该类型的故障进行修复。修复信息可以包括该修复资源的粒度;可选地,修复信息可以包括修复资源的类型,例如ADDDC Sparing,或者修复信息可以包括修复资源的粒度和类型;可选地,修复信息还可以包括修复资源的粒度和数量,或者,修复信息还可以包括修复资源的类型和数量,或者修复信息还可以包括修复资源的粒度、类型和数量。
例如,当内存的故障类型为Bank故障时,以及当获取到的修复资源包括PCLS修复资源、PPR修复资源、ADDDC Sparing修复资源时,则确定优先使用最小粒度的PCLS修复资源对Bank故障进行修复。
在另一个示例中,内存的故障信息还包括故障的内存地址,则修复信息中也可以包括故障的内存地址。
在一个示例中,当最小粒度的修复资源的数量满足故障的修复资源需求时,则确定使用最小粒度的修复资源对故障进行修复的修复信息。当最小粒度的修复资源的数量不满足故障的修复资源需求时,可以使用第二小粒度的修复资源对故障进行修复,依次类推,直至故障修复完成为止。
图3为本申请实施例提供的一种内存故障的修复方法的流程图。该方法可以在图1所示的服务器中执行,以实现对内存故障的修复。如图3所示,至少包括步骤S301至步骤S303。
在步骤301中,处理模块确定内存故障的修复资源的修复信息。具体地可以采用图3所示的步骤201至步骤206,在此不再赘述。
在步骤S302中,BIOS获取修复信息。
当处理模块确定修复信息后,将该修复信息发送给BIOS,该修复信息用于指示BIOS对内存故障执行的修复策略。
在步骤S303中,BIOS基于修复信息,对故障进行修复。
处理模块将修复信息发送给BIOS,使BIOS基于该修复信息,对故障进行修复。
当修复信息为修复资源的粒度时,BIOS可以多次使用对应粒度的修复资源修复故障,直至故障修复完成。
当修复信息为修复资源的类型时,BIOS可以多次使用对应类型的修复资源修复故障,直至故障修复完成。
当修复信息包括修复资源的粒度和类型时,BIOS可以多次使用对应粒度的修复资源修复故障,直至故障修复完成,或者BIOS可以多次使用对应类型的修复资源修复故障,直至故障修复完成。
当修复信息包括修复资源的粒度和数量时,BIOS可以使用对应数量的对应粒度的修复资源修复故障。
当修复信息包括修复资源的类型和数量时,BIOS可以使用对应数量的对应类型的修复资源修复故障。例如,处理模块向BIOS发送的修复信息为PCLS修复资源和8,则BIOS采用8个数量的PCLS对故障进行修复。
当修复信息包括修复资源的粒度、类型和数量时,BIOS可以使用对应数量的对应粒度的修复资源修复故障,或者BIOS可以使用对应数量的对应类型的修复资源修复故障。
当修复信息包括故障的内存地址时,BIOS可以对所述内存地址对应的内存执行故障修复。
在一个示例中,BIOS检测到一次故障即将该故障的信息上报给处理模块,处理模块接收该故障信息,BIOS检测内存中的修复资源信息,处理模块根据该次故障信息和修复资源信息确定修复信息,并将该修复信息发送给BIOS,BIOS根据修复信息对故障进行修复。也就是说,当BIOS检测到多次故障时,处理模块和BIOS之间会有多次交互,处理模块针对每次上报的故障信息会发送针对该故障信息的修复信息,BIOS执行该修复信息对该次故障进行修复。
在另一个示例中,BIOS检测到多次故障(例如16次),将检测到的多次故障信息上报给处理模块,处理模块接收该故障信息,处理模块根据故障信息确定故障类型,例如在一个Bank内上报了17次Cell故障,则确定该故障类型为Bank故障;BIOS检测内存中的修复资源信息,处理模块根据故障类型和修复资源信息确定修复信息,并将该修复信息发送给BIOS,BIOS根据修复信息对该类型的故障进行修复。也就是说,当BIOS检测到多次故障时,会将多次故障集中到一起上报给处理模块,处理模块针对上报的故障信息确定故障类型,然后发送针对该故障类型的修复信息,BIOS执行该修复信息对该类型的故障进行修复。
下面通过两个示例介绍本申请实施例提供的内存故障的修复方法在内存的故障实际发生时的具体实现。
在一个示例中,内存故障为突发上报,假设系统中存在bit级别自愈资源PCLS剩余数量为16,row级别自愈资源剩余数量在线PPR为2,在内存的同一Bank0上发生了17次Cell故障,那么,该方案的流程具体实施如图4所示:
BIOS通过对内存检测,获取内存中的故障信息,例如Bank0上发生了17次Cell故障;
BIOS将获取到的内存故障信息上报给BMC;
BMC收集BIOS上报的17次故障信息,确认为Bank故障;
BIOS检测内存中的故障自愈资源信息,并将故障自愈资源信息发送给BMC;
BMC收集BIOS上报的故障自愈资源信息,统计故障自愈资源PCLS修复资源剩余数量为16,在线PPR修复资源剩余数量为2;
BMC中根据上述故障类型信息以及自愈资源信息执行故障自愈推理决策,确定对前16次故障执行PCLS的修复策略,并将该修复策略发送给BIOS;
BMC中根据上述故障类型信息以及自愈资源信息执行故障自愈推理决策,不确定直接执行Bank级别的ADDDC Sparing的修复策略,确定对第17次故障执行在线PPR的修复策略,并将该修复策略发送给BIOS;
BIOS执行完上述修复策略后,完成对该内存的故障修复。
本申请实施例提供的内存故障的修复方法,针对内存突发上报故障,内存故障为bank故障,没有直接使用Bank级别的ADDDC Sparing故障修复手段,而是优先使用对性能几乎无影响的小粒度的PCLS和在线PPR对该bank中已存在的故障执行修复,不仅避免了ADDDCSparing修复手段造成系统性能的下降而导致业务的感知明显,还实现了小粒度修复资源的充分利用。
在另一个示例中,内存故障为依次上报,假设系统中存在bit级别自愈资源PCLS剩余数量为16,row级别自愈资源在线PPR数量剩余为2,那么,该方案的流程具体实施如图5所示:
BIOS通过对内存检测,获取内存中的故障信息,例如Bank0上发生了16次Cell故障;
BIOS将获取到的内存故障信息上报给BMC;
BMC依次收集BIOS上报的16次故障信息;
BIOS检测内存中的故障自愈资源信息,并将故障自愈资源信息发送给BMC;
BMC收集BIOS上报的故障自愈资源信息,统计故障自愈资源PCLS修复资源剩余数量为16;
BMC中根据上述故障类型信息以及自愈资源信息执行故障自愈推理决策,优先依次对16次故障执行PCLS的修复策略,并将该修复策略发送给BIOS;
BIOS继续对内存检测,获取内存中的故障信息,例如Bank0上发生了2次Cell故障;
BIOS将获取到的内存故障信息上报给BMC;
BMC依次收集BIOS上报的2次故障信息;
BMC收集BIOS上报的故障自愈资源信息,统计故障自愈资源在线PPR修复资源剩余数量为2;
BMC中根据上述故障类型信息以及自愈资源信息执行故障自愈推理决策,优先依次对2次故障执行在线PPR的修复策略,并将该修复策略发送给BIOS;
BMC依次收集BIOS上报的内存继续发生故障的信息;
BMC收集BIOS上报的其他故障自愈资源信息,统计其他故障自愈资源充足(例如其他故障自愈资源为ADDDC Sparing);
BMC中根据上述故障类型信息以及自愈资源信息执行故障自愈推理决策,确定符合其他故障的自愈策略(例如Bank故障),并将该修复策略(例如修复策略为ADDDCSparing)发送给BIOS;
BIOS执行完上述修复策略后,完成对该内存的故障修复。
本申请实施例提供的内存故障的修复方法,针对内存依次发生故障,优先使用对性能几乎无影响的细粒度的自愈资源执行故障的修复,不仅避免了直接使用大粒度的自愈资源修复手段造成系统性能的下降而导致业务的感知明显,还实现了细粒度资源的充分利用。
与前述的内存故障的修复方法的实施例基于相同的构思,本申请实施例中还提供了一种内存故障的修复装置600,该内存故障的修复装置600包括用以实现图2-5所示的内存故障的修复方法中的各个步骤的单元或模块。
当计算设备中无BMC时,例如服务器中无BMC时,则处理模块为服务器的处理器,上文中在BMC的执行步骤则可在服务器的处理器中执行实现,因此,当处理模块为处理器时,本申请实施例提供的内存故障的修复方法的具体实现可参见上文描述,为了简洁,这里不再赘述。
图6为本申请实施例提供的一种确定内存故障的修复粒度的装置的结构示意图。该装置可以由处理模块执行,如图6所示,该一种确定内存故障的修复资源粒度的装置600至少包括:
包括:处理模块601;
其中,所述处理模块601包括:
第一获取单元6011,用于获取内存的故障信息,所述故障信息包括故障的类型;
第一确定单元6012,用于确定所述故障的类型;
第二获取单元6013,用于获取修复资源信息,所述修复资源信息包括修复资源集合中包括的修复资源的类型所述修复资源能修复所述故障;
第二确定单元6014,用于根据所述故障类型和所述修复资源信息确定修复信息,所述修复信息包括第一修复资源的类型或者所述第一修复资源的粒度中的至少一个,所述第一修复资源为所述修复资源集合中粒度最小的修复资源。
在一个可能的实现中,所述修复资源信息还包括所述修复资源集合中包括的修复资源的数量,则所述修复信息还包括所述第一修复资源的数量。
在另一个可能的实现中,所述第二确定单元6014还用于:当所述第一修复资源的数量不满足所述故障的修复资源需求时,所述修复信息还包括第二修复资源的类型或者所述第二修复资源的粒度中的至少一个,所述第二修复资源为所述修复资源集合中第二小粒度的修复资源。
在另一个可能的实现中,所述修复信息还包括所述第二修复资源的数量。
在另一个可能的实现中,所述故障信息包括故障的第一类型和数量,所述第一确定单元6012具体用于:
根据所述故障的第一类型和数量,确定故障的第二类型。
在另一个可能的实现中,所述处理模块为处理器或BMC芯片。根据本申请实施例的内存故障的修复装置600可对应于执行本申请实施例中描述的方法,并且一种内存故障的修复装置600中的各个模块的上述和其它操作和/或功能分别为了实现图2-5中的各个方法的相应流程,为了简洁,在此不再赘述。
需要解释的是,本申请实施例提供的确定内存故障的修复粒度的方法可以由服务器的处理器执行,例如处理器调用程序代码,该程序代码包括一个或多个软件模块,计算设备通过处理器执行程序代码,实现本申请实施例提供的一种确定内存故障的修复粒度的方法。
本申请实施例提供的内存故障的修复方法可以由图2中的带外管理BMC执行,例如带外管理BMC中存储有本申请实施例提供的确定内存故障的修复粒度的方法对应的程序代码,该程序代码包括一个或多个软件模块,计算设备通过带外管理BMC执行程序代码,实现本申请实施例提供的一种确定内存故障的修复粒度的方法。
本申请的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机指令在被处理器执行时,使得上文提及的方法被实现。
本申请的实施例提供了一种芯片,该芯片包括至少一个处理器和接口,所述至少一个处理器通过所述接口确定程序指令或者数据;该至少一个处理器用于执行所述程序指令,以实现上文提及的方法。
本申请的实施例提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括指令,当该指令执行时,令计算机执行上文提及的方法。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种确定内存故障的修复资源粒度的方法,其特征在于,所述方法包括:
获取内存的故障信息,所述故障信息包括故障的类型;
确定所述故障的类型;
获取修复资源信息,所述修复资源信息包括修复资源集合中的修复资源的类型,所述修复资源集合包括第一修复资源和第二修复资源,所述第一修复资源的粒度小于所述第二修复资源的粒度;
根据所述故障的类型和所述修复资源信息确定修复信息,所述修复信息包括第一修复资源的类型或者所述第一修复资源的粒度中的至少一个。
2.根据权利要求1所述的方法,其特征在于,所述修复资源信息还包括所述修复资源集合中的修复资源的数量,则所述修复信息还包括所述第一修复资源的数量。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:当所述第一修复资源的数量不满足所述故障的修复资源需求时,所述修复信息还包括第二修复资源的类型或者所述第二修复资源的粒度中的至少一个。
4.根据权利要求3所述的方法,其特征在于,所述修复信息还包括所述第二修复资源的数量。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述故障信息包括故障的第一类型和数量,则所述处理模块确定所述故障的类型,包括:
所述处理模块根据所述故障的第一类型和数量,确定故障的第二类型。
6.一种确定内存故障的修复资源粒度的装置,其特征在于,包括:处理模块;
其中,所述处理模块包括:
第一获取单元,用于获取内存的故障信息,所述故障信息包括故障的类型;
第一确定单元,用于确定所述故障的类型;
第二获取单元,用于获取修复资源信息,所述修复资源信息包括修复资源集合中的修复资源的类型,所述修复资源集合包括第一修复资源和第二修复资源,所述第一修复资源的粒度小于所述第二修复资源的粒度;
第二确定单元,用于根据所述故障的类型和所述修复资源信息确定修复信息,所述修复信息包括第一修复资源的类型或者所述第一修复资源的粒度中的至少一个。
7.根据权利要求6所述的装置,其特征在于,所述修复资源信息还包括所述修复资源集合中包括的修复资源的数量,则所述修复信息还包括所述第一修复资源的数量。
8.根据权利要求7所述的装置,其特征在于,所述第二确定单元还用于:当所述第一修复资源的数量不满足所述故障的修复资源需求时,所述修复信息还包括第二修复资源的类型或者所述第二修复资源的粒度中的至少一个。
9.根据权利要求8所述的装置,其特征在于,
所述修复信息还包括所述第二修复资源的数量。
10.根据权利要求6-9任一项所述的装置,其特征在于,
所述故障信息包括故障的第一类型和数量,所述第一确定单元具体用于:
根据所述故障的第一类型和数量,确定故障的第二类型。
11.根据权利要求6-10任一项所述的装置,其特征在于,所述处理模块为处理器或BMC芯片。
12.一种芯片,其特征在于,包括至少一个处理器和通信接口,所述处理器用于执行如权利要求1-5中任一项所述的方法。
13.一种计算设备,其特征在于,包括处理器和内存,所述处理器用于执行如权利要求1-5中任一项所述的方法,以实现对所述内存中的故障进行修复。
14.一种计算设备,其特征在于,包括处理器、BMC和内存,所述处理器和BMC中的任意一个用于执行如权利要求1-5任一项所述的方法,以实现对所述内存中的故障进行修复。
15.一种计算设备,包括处理单元、BIOS和内存:其特征在于,
所述BIOS,用于获取所述内存的第一故障信息和第一修复资源信息;
所述处理模块,用于获取内存的第二故障信息,所述第二故障信息包括故障的类型;还确定所述故障的类型;还获取第二修复资源信息,所述第二修复资源信息包括修复资源集合中包括的修复资源的类型,所述修复资源能修复所述故障,所述修复资源集合包括第一修复资源和第二修复资源,所述第一修复资源的粒度小于所述第二修复资源的粒度;还根据所述故障类型和所述第二所述修复资源信息确定修复信息,所述修复信息包括第一修复资源的类型或者所述第一修复资源的粒度中的至少一个;
所述BIOS,还用于获取所述第一修复信息;并用于基于所述第一修复信息对所述故障进行修复。
16.根据权利要求15所述的计算设备,其特征在于,所述处理模块为处理器或者BMC芯片。
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210797526.1A Division CN115168087B (zh) | 2022-07-08 | 2022-07-08 | 一种确定内存故障的修复资源粒度的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118295838A true CN118295838A (zh) | 2024-07-05 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102451163B1 (ko) | 반도체 메모리 장치 및 그것의 리페어 방법 | |
US11276450B2 (en) | Refresh circuitry | |
CN115168087B (zh) | 一种确定内存故障的修复资源粒度的方法及装置 | |
US8020053B2 (en) | On-line memory testing | |
CN1819062B (zh) | 为存储器内建自测试提供灵活模块冗余分配的方法和设备 | |
EP3391220B1 (en) | Systems, methods, and computer programs for resolving dram defects | |
CN114064333A (zh) | 一种内存故障处理方法和装置 | |
US20190019569A1 (en) | Row repair of corrected memory address | |
US20230185659A1 (en) | Memory Fault Handling Method and Apparatus | |
CN104685474A (zh) | 包括不可纠正的错误的地址范围的通知 | |
CN115168088A (zh) | 一种针对内存的不可纠正错误的修复方法及装置 | |
Du et al. | Predicting uncorrectable memory errors for proactive replacement: An empirical study on large-scale field data | |
CN115328684A (zh) | 内存故障的上报方法、bmc及电子设备 | |
US8261137B2 (en) | Apparatus, a method and a program thereof | |
CN114730607A (zh) | 一种存储器故障修复方法及装置 | |
US20230260590A1 (en) | Row access strobe (ras) clobber and row hammer failure mitigation | |
CN115757196B (zh) | 内存、访问内存方法及计算设备 | |
CN118295838A (zh) | 一种确定内存故障的修复资源粒度的方法及装置 | |
Jung et al. | Predicting Future-System Reliability with a Component-Level DRAM Fault Model | |
CN115686901B (zh) | 内存故障分析方法及计算机设备 | |
CN115269245B (zh) | 一种内存故障处理方法及计算设备 | |
CN116483612B (zh) | 内存故障处理方法、装置、计算机设备和存储介质 | |
US20240038291A1 (en) | Selectable row hammer mitigation | |
WO2024066500A1 (zh) | 内存错误处理方法及装置 | |
Kim et al. | Stay Alive, Don't Give Up: DUE and SDC Reduction with Memory Repair |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |