存储器故障区域的识别方法、装置、电子设备及存储介质与流程

1.本发明涉及存储

技术领域


:,尤其涉及一种存储器故障区域的识别方法、装置、电子设备及存储介质。

背景技术


::2.随着计算机技术的发展,软件程序的设计和开发日渐趋于复杂,对内存访问的压力也逐渐提高,对内存稳定性也提出了更高的要求。特别的,对于服务器等设备,由于需要长期开机值守等特点,对应用程序的稳定运行有更加严格的要求,要求内存具备高可靠性和高稳定性。3.随着使用过程中的积累损耗和使用不当导致的物理损伤等因素,内存会不可避免的出现读写错误。4.为了解决该问题,对于可修复错误(ce)普遍采用了各种检测和修复技术进行数据的修正,但大量的数据修复会占用硬件处理时间,影响系统的访存性能。更重要的是,对于不可修复错误不能进行数据的修复,这类访存错误会严重影响系统稳定性和数据可靠性。5.现有技术中,出了一种内存检测模型训练的方法,用于故障监测。通过内存状态历史数据,结合真实故障情况训练内存监测子模型,达到对内存模块级别粒度的预测故障。6.在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:7.现有技术只能根据预测结果评估出内存健康状况以及风险级别,但是,对实际发生的内存故障不能进行有效的解决。技术实现要素:8.本发明提供一种存储器故障区域的识别方法、装置、电子设备及存储介质,能够屏蔽故障内存区域,隔绝系统对故障内存区域的使用。9.本发明提供一种存储器故障区域的识别方法,包括:10.检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;11.如果所述当前的存储器配置情况未发生变化,则获取系统的当前可疑存储器区域列表,所述当前可疑存储器区域列表记载有当前可疑存储器区域的故障地址;12.根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。13.可选地,所述根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理的步骤包括:14.对所述当前可疑存储器区域列表对应的存储器区域进行扫描;15.如果扫描的存储器区域未通过测试,则将所述存储器区域继续保持在所述当前可疑存储器区域列表,以更新所述当前可疑存储器区域列表;16.如果扫描的存储器区域通过测试,则将所述存储器区域从所述当前可疑存储器区域列表中去除,以更新所述当前可疑存储器区域列表;17.根据更新后的所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。18.可选地,在所述检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化的步骤之后,所述方法还包括:19.如果所述当前的存储器配置情况发生变化,则将所述当前可疑存储器区域列表清空;20.监测所述存储器的读写错误情况;21.基于所述存储器的读写错误情况,根据故障判定策略判断,检测出新增的可疑存储器区域;22.解析新增的可疑存储器区域对应的故障地址;23.基于所述新增的可疑存储器区域对应的故障地址,划定待屏蔽区域;24.根据所述待屏蔽区域,更新所述当前可疑存储器区域列表;25.根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。26.可选地,所述故障判定策略包括:27.预定时间段内的循环冗余校验crc错误次数、错误检查和纠正ecc错误次数、可修复错误ce次数、不可修复错误ue次数的任意组合。28.可选地,所述解析新增的可疑存储器区域对应的故障地址的步骤具体为:根据当前的存储器交织类型,解析新增的可疑存储器区域对应的故障地址;或者29.所述基于所述新增的可疑存储器区域对应的故障地址,划定待屏蔽区域的步骤具体为:基于所述新增的可疑内存区域对应的故障地址,根据系统要求的最小内存对齐规则,划定待屏蔽区域。30.可选地,所述根据当前的存储器交织类型,解析新增的可疑存储器区域对应的故障地址的步骤具体为:31.若当前系统为封装单元交织socketinterleave类型,在整个系统地址上,将内存以交织尺寸interleavesize作为颗粒度和地址对齐规则,分别按照封装单元socket/封装前的单芯片die/通道channel为索引,交错映射到各个内存channel上;32.若当前系统为封装前的单芯片交织dieinterleave类型,在整个系统地址上,将内存以socket为索引顺序叠加,在同socket内存范围内,内存以interleavesize作为颗粒度和地址对齐规则,分别按照die和channel为索引,交错映射到各个内存channel上;33.若当前系统为通道交织channelinterleave类型,在整个系统地址上,将内存分别以socket/die为索引顺序叠加,在同die内存范围内,将内存以interleavesize作为颗粒度和地址对齐规则,按照channel为索引,交错映射到各个内存channel上;34.若当前系统为非内存交织non-interleave类型,在整个系统地址上,将内存分别以socket/die/channel为索引顺序叠加。35.可选地,所述根据所述待屏蔽区域,更新所述当前可疑存储器区域列表的步骤具体为:36.获取系统支持的最小地址对齐大小;37.获取所述故障地址,将所述故障位置除以所述最小地址对齐大小,得到计算结果;38.将所述计算结果向前取整,再乘以所述最小地址对齐大小,得到待屏蔽区域的低地址边界;39.将所述低地址边界,加上所述最小地址对齐大小,得到所述待屏蔽区域的高地址边界;40.根据所述待屏蔽区域的所述低高地址边界和所述高地址边界,更新所述当前可疑存储器区域列表。41.可选地,所述根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理的步骤具体为:42.对所述当前可疑存储器区域列表中的存储器区域不进行地址映射。43.可选地,所述检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化的步骤具体为;44.对存储器的串行存在检测spd信息叠加后,进行循环冗余校验,以确定当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;或者45.对存储器的硬件标识信息叠加后,进行循环冗余校验,以确定当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化。46.本发明还提供一种存储器故障区域的识别装置,包括:47.检查单元,用于检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;48.获取单元,用于当所述当前的存储器配置情况未发生变化时,获取系统的当前可疑存储器区域列表,所述当前可疑存储器区域列表记载有当前可疑存储器区域的故障地址;49.屏蔽单元,用于根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。50.本发明还提供一种电子设备,所述电子设备包括上述存储器故障区域的识别装置。51.本发明还提供一种存储器故障区域的识别装置,包括:52.存储器;53.以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行上述存储器故障区域的识别方法。54.本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现所述的存储器故障区域的识别方法。55.本发明提供的存储器故障区域的识别方法、装置、电子设备及存储介质,通过屏蔽故障内存区域,隔绝系统对故障内存区域的使用,有效提高了系统的可靠性。附图说明56.图1为本发明一实施例存储器故障区域的识别方法的流程图;57.图2为本发明另一实施例存储器故障区域的识别方法的流程图;58.图3为本发明一实施例存储器故障区域的识别装置的结构示意图;59.图4为本发明应用场景所述的存储器故障区域的识别装置的连接示意图;60.图5为本发明一实施例所述的存储器故障区域的识别方法的流程示意图;61.图6为本发明一实施例中无故障时内存地址编址示意图;62.图7为本发明一实施例中的故障内存地址重新进行地址编址的示意图;63.图8为本发明另一实施例存储器故障区域的识别装置的结构示意图。具体实施方式64.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。65.本发明实施例提供一种存储器故障区域的识别方法,如图1所示,所述方法包括:66.s11、检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;存储器可以为内存等等。67.s12、如果所述当前的存储器配置情况未发生变化,则获取系统的当前可疑存储器区域列表,所述当前可疑存储器区域列表记载有当前可疑存储器区域的故障地址;68.s13、根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。69.本发明通过实时动态检测内存访问错误,精确定位访存故障区域。进一步通过屏蔽故障内存区域,隔绝系统对故障内存区域的使用,有效提高了系统的可靠性。该方案无需人为监控内存损耗情况,并且减少了对内存条的更换,在提高系统稳定性的前提下最大程度降低了硬件更换成本。70.如图2所示,为本发明另一实施例提供的一种存储器故障区域的识别方法,包括:71.s11、检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;步骤具体为:对存储器的spd(serialpresencedetect,串行存在检测)信息叠加后,进行crc(cyclicredundancycheck,循环冗余校验),以确定当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;或者对存储器的硬件标识信息叠加后,进行crc,以确定当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化。如果所述当前的存储器配置情况未发生变化,则跳转到步骤s12;如果所述当前的存储器配置情况发生变化,则跳转到步骤14。72.步骤s12、当所述当前的存储器配置情况为发生变化,则获取系统的当前可疑存储器区域列表,所述当前可疑存储器区域列表记载有当前可疑存储器区域的故障地址;73.步骤s13、根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。74.其中,步骤s13包括:75.步骤s131、对所述当前可疑存储器区域列表对应的存储器区域进行扫描;76.步骤s132、如果扫描的存储器区域未通过测试,则将所述存储器区域继续保持在所述当前可疑存储器区域列表,以更新所述当前可疑存储器区域列表;跳转到步骤s134。77.步骤s133、如果扫描的存储器区域通过测试,则将所述存储器区域从所述当前可疑存储器区域列表中去除,以更新所述当前可疑存储器区域列表;跳转到步骤134。78.步骤s134、根据更新后的所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。79.步骤s14、将所述当前可疑存储器区域列表清空;80.步骤s15、监测所述存储器的读写错误情况;81.步骤s16、基于所述存储器的读写错误情况,根据故障判定策略判断,检测出新增的可疑存储器区域;所述故障判定策略包括:预定时间段内的crc错误次数、ecc(errorcheckingandcorrecting,错误检查和纠正)错误次数、ce(correctableerror,可修复错误)次数、ue(un-correctableerror,不可修复错误)次数的任意组合。82.步骤s17、解析新增的可疑存储器区域对应的故障地址;该步骤具体为:根据当前的存储器交织类型,解析新增的可疑存储器区域对应的故障地址。更具体为:83.若当前系统为socketinterleave(封装单元交织)类型,在整个系统地址上,内存以interleavesize(交织尺寸)作为颗粒度和地址对齐规则,分别按照socket(封装单元)/die(封装前的单芯片)/channel(通道)为索引,交错映射到各个内存channel上;84.若当前系统为dieinterleave(封装前的单芯片交织)类型,在整个系统地址上,内存以socket为索引顺序叠加,在同socket内存范围内,内存以interleavesize作为颗粒度和地址对齐规则,分别按照die和内存channel为索引,交错映射到各个内存channel上;85.若当前系统为channelinterleave(通道交织)类型,在整个系统地址上,内存分别以socket/die为索引顺序叠加,在同die内存范围内,内存以interleavesize作为颗粒度和地址对齐规则,按照channel为索引,交错映射到各个内存channel上;86.若当前系统为non-interleave(非内存交织)类型,在整个系统地址上,内存分别以socket/die/channel为索引顺序叠加。87.步骤s18、基于所述新增的可疑存储器区域对应的故障地址,划定待屏蔽区域;该步骤具体为:所述基于所述新增的可疑存储器区域对应的故障地址,划定待屏蔽区域的步骤具体为:基于所述新增的可疑内存区域对应的故障地址,根据系统要求的最小内存对齐规则,划定待屏蔽区域。88.步骤s19、根据所述待屏蔽区域,更新所述当前可疑存储器区域列表;89.步骤s110、根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。具体为:对所述当前可疑存储器区域列表中的存储器区域,不进行地址映射。90.步骤s19具体为:91.步骤s191、获取系统支持的最小地址对齐大小;92.步骤s192、获取所述故障地址,将所述故障位置除以所述最小地址对齐大小,得到计算结果;93.步骤s193、将得到所述计算结果向前取整,再乘以所述最小地址对齐大小,得到待屏蔽区域的低地址边界;94.步骤s194、将所述低地址边界,加上所述最小地址对齐大小,得到所述待屏蔽区域的高地址边界;95.步骤s195、根据所述待屏蔽区域的所述低高地址边界和所述高地址边界,更新所述当前可疑存储器区域列表。96.上述实施例中,以最小地址对齐,要求向低地址取整。97.本发明实施例还提供一种存储器故障区域的识别装置,如图3所示,所述装置包括:98.检查单元11,用于检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;99.获取单元12,用于当所述当前的存储器配置情况未发生变化时,获取系统的当前可疑存储器区域列表,所述当前可疑存储器区域列表记载有当前可疑存储器区域的故障地址;100.屏蔽单元13,用于根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。101.其中,所述屏蔽单元13具体为:对所述当前可疑存储器区域列表对应的存储器区域进行扫描;如果扫描的存储器区域未通过测试,则将所述存储器区域继续保持在所述当前可疑存储器区域列表,以更新所述当前可疑存储器区域列表;如果扫描的存储器区域通过测试,则将所述存储器区域从所述当前可疑存储器区域列表中去除,以更新所述当前可疑存储器区域列表;根据更新后的所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。102.可选的,所述装置还包括:103.清空单元,如果所述当前的存储器配置情况发生变化,则将所述当前可疑存储器区域列表清空;104.监测单元,用于监测所述存储器的读写错误情况;105.检测单元,基于所述存储器的读写错误情况,根据故障判定策略判断,检测出新增的可疑存储器区域;106.解析单元,解析新增的可疑存储器区域对应的故障地址;107.划片单元,基于所述新增的可疑存储器区域对应的故障地址,划定待屏蔽区域;108.更新单元,根据所述待屏蔽区域,更新所述当前可疑存储器区域列表;109.处理单元,根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。110.其中,所述故障判定策略包括:111.预定时间段内的循环冗余校验crc错误次数、错误检查和纠正ecc错误次数、可修复错误ce次数、不可修复错误ue次数的任意组合。112.所述解析单元具体为:根据当前的存储器交织类型,解析新增的可疑存储器区域对应的故障地址;或者113.所述划片单元具体为:基于所述新增的可疑内存区域对应的故障地址,根据系统要求的最小内存对齐规则,划定待屏蔽区域。114.所述解析单元具体为:115.若当前系统为封装单元交织socketinterleave类型,在整个系统地址上,将内存以交织尺寸interleavesize作为颗粒度和地址对齐规则,分别按照封装单元socket/封装前的单芯片die/通道channel为索引,交错映射到各个内存channel上;116.若当前系统为封装前的单芯片交织dieinterleave类型,在整个系统地址上,将内存以socket为索引顺序叠加,在同socket内存范围内,内存以interleavesize作为颗粒度和地址对齐规则,分别按照die和channel为索引,交错映射到各个内存channel上;117.若当前系统为通道交织channelinterleave类型,在整个系统地址上,将内存分别以socket/die为索引顺序叠加,在同die内存范围内,将内存以interleavesize作为颗粒度和地址对齐规则,按照channel为索引,交错映射到各个内存channel上;118.若当前系统为非内存交织non-interleave类型,在整个系统地址上,将内存分别以socket/die/channel为索引顺序叠加。119.其中,所述更新单元具体为:120.获取系统支持的最小地址对齐大小;121.获取所述故障地址,将所述故障位置除以所述最小地址对齐大小,得到计算结果;122.将所述计算结果向前取整,再乘以所述最小地址对齐大小,得到待屏蔽区域的低地址边界;123.将所述低地址边界,加上所述最小地址对齐大小,得到所述待屏蔽区域的高地址边界;124.根据所述待屏蔽区域的所述低高地址边界和所述高地址边界,更新所述当前可疑存储器区域列表。125.可选的,所述屏蔽单元具体为:对所述当前可疑存储器区域列表中的存储器区域不进行地址映射。126.其中,所述检查单元具体为;127.对存储器的串行存在检测spd信息叠加后,进行循环冗余校验,以确定当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;或者128.对存储器的硬件标识信息叠加后,进行循环冗余校验,以确定当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化。129.本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。130.以下描述本发明的应用场景。131.如图4所示,本发明的处理装置包括:132.启动模块:负责整个系统的启动;133.内存条配置校验模块:负责每次重启后,检查系统上搭载的内存条是否发生更换,判断内存状态记录模块上保存的内存存疑区域信息是否适配(在这里,我们把内存读写时经常出现错误的内存区域称作内存存疑区域);134.内存状态扫描模块:负责对内存状态记录模块上记录的内存存疑区域进行逐个扫描测试,判断该区域内存读写功能是否正常;135.内存故障监测模块:监测内存读写中是否出现异常错误,并进行统计;136.内存状态记录模块:用于记录和存储当前系统上的内存存疑区域信息;137.内存故障区域处理模块:用于定位内存存疑区域的位置,并对该内存区域进行屏蔽处理。138.如图5所示,本方案的处理流程,包括:139.步骤1.配置系统工作环境,开始启动系统;140.步骤2.检查当前系统上搭载的内存条配置情况与上次运行时相比是否发生了变化。如果未发生变化,则执行步骤3,如果发生变化,则清除当前存储的系统可疑内存区域列表后,直接执行步骤6;141.步骤3.如果内存条配置情况未发生变化,则获取系统可疑内存区域列表;142.步骤4.对可疑内存区域列表中的内存范围逐个进行扫描,如读写校验测试等。如果当前扫描区域未通过测试,则将该区域继续保持在可疑内存区域列表中,如果当前扫描区域通过测试,则将该区域从可疑内存区域列表中去除;143.步骤5.根据上述步骤的扫描结果,生成新的可疑内存区域列表;144.步骤6.系统启动过程中,加载系统可疑内存区域列表;145.步骤7.在系统启动阶段,根据可疑内存区域列表,对其对应的内存区域进行屏蔽处理;146.步骤8.系统启动完成,执行使用场景;147.步骤9.系统监测收集各个内存通道上的读写错误情况;148.步骤10.根据收集到的各个内存通道上的各种读写错误情况,根据既定故障判定策略判断是否有新增的可疑内存区域。149.如果没有新增的可疑内存区域,则重复步骤10,150.如果有新增的可疑内存区域,则执行步骤11;151.步骤11.根据当前的内存交织类型解析新增的可疑内存区域对应的位置,根据系统要求的最小内存对齐规则划定屏蔽区域,同时减少内存浪费,并将该区域添加到可疑内存区域列表中;152.此处内存交织解析规则为:153.(1)若当前系统为socketinterleave,在整个系统地址上,内存以interleavesize作为颗粒度和地址对齐规则,分别按照socket/die/channel为索引,交错映射到各个内存channel上;154.(2)若当前系统为dieinterleave,在整个系统地址上,内存以socket为索引顺序叠加,在同socket内存范围内,内存以interleavesize作为颗粒度和地址对齐规则,分别按照die/channel为索引,交错映射到各个内存channel上;155.(3)若当前系统为channelinterleave,在整个系统地址上,内存分别以socket/die为索引顺序叠加,在同die内存范围内,内存以interleavesize作为颗粒度和地址对齐规则,按照channel为索引,交错映射到各个内存channel上;156.(4)若当前系统为non-interleave,在整个系统地址上,内存分别以socket/die/channel为索引顺序叠加;157.此处的屏蔽区域划定规则为:158.(1)获取系统支持的最小地址对齐大小;159.(2)获取故障地址,除以最小地址对齐大小,将得到结果向前取整,在乘以最小地址对齐大小后,得到屏蔽区域的低地址边界;160.(3)在低地址的基础上,加上最小地址对齐大小,得到屏蔽区域的高地址边界;161.(4)对于多处故障地址的情况,如果其对应的屏蔽区域完全或部分重合,则按照最大的覆盖范围进行合并;162.步骤12.重新启动系统,重新执行步骤6。163.以下描述本发明的应用场景。164.下面以由1个socket组成,socket内部有2个die组成系统为例。165.该系统的每个die有2个内存channel,每个channel下挂载1根1g的dimm(dual-inline-memory-modules,双列直插式存储模块),配置为不进行任何类型的内存交织,则地址分配时以die0和channel为索引进行顺序编址,如图6所示:166.处理流程包括:167.步骤1、正确安装搭载系统的硬件环境,通过专用接口为每个内存通道配置内存条,接通电源并启动系统;168.步骤2、系统检查当前搭载的内存条配置情况与上次运行时相比是否发生了变化。169.由于每根dimm上spd的唯一性,本例中采用将系统上所有dimm的spd信息叠加后生成crc校验码的方式进行检查。170.具体方式为:每次生成crc校验码后,将该数值存储在flash(闪存)中。下次系统启动时,再次计算crc校验码,并读取flash中的crc校验码数值进行比较。171.如不同,将新计算的crc数值写入falsh覆盖原有数值后执行后续步骤;172.如相同,则认为内存条未发生更换,继续后续步骤,本例以该情况为例。173.步骤3、系统获取系统可疑内存区域列表,此时以首次启动时为例,故列表为空为例;174.步骤4、对可疑内存区域列表中的内存范围逐个进行读写校验,由于此时可疑内存区域列表为空,故此步骤跳过;175.步骤5、生成新的可疑内存区域列表,本实例中继续为空列表;176.步骤6、系统启动过程中,加载系统可疑内存区域列表;177.步骤7、在系统启动阶段,由于此时可疑内存区域列表为空,故不对任何内存区域屏蔽;178.步骤8、系统启动完成,执行当前使用场景;179.步骤9、在使用过程中,系统开始通过各个内存通道上设置的计数器收集各个内存通道上的访问错误情况;180.步骤10、分析12小时内的访存错误数据,检查是否有“发生5次(含)以上的crc/eccce错误或发生2次(含)以上ue错误”内存地址。181.根据当前系统的内存交织情况,解析该错误内存地址所处的实际位置。在该实例中,由于未开启内存交织逻辑,内存存储空间顺序编址。在连续的地址分布下,内存分别以socket/die/channel为索引映射到各个socket上各个die上的各个channel上,故障内存地址所处实际位置如图6所示。182.由于本系统硬件设计上地址最小对齐规则为256mb对齐,故按照最小对齐规则将该内存地址所处的地址段添加到可疑内存列表中;183.步骤11、重新启动系统,加载可疑内存列表后重新进行地址编址,如图7所示。184.本发明实施例具有以下有益效果:185.1、通过屏蔽故障内存区域,隔绝系统对故障内存区域的使用,有效提高了系统的可靠性;186.2、无需人为监控内存损耗情况,减少了对内存条的更换,在提高系统稳定性的前提下最大程度降低了硬件更换成本;187.3、本发明能够实时动态检测内存错误,采用策略精确定位访问故障区域;188.4、本发明能够通过屏蔽故障内存区域,采用策略提高系统运行稳定性和可靠性;189.5、本发明能够每次重启后检查内存条是否发生更换;190.6、本发明能够每次重启后对可疑内存区域进行再次扫描,将恢复正常的内存解除屏蔽。191.本发明实施例中,根据可疑内存区域列表对内存区域进行屏蔽的处理方式可以有多种方式,例如,对故障区域不进行地址映射的方式,使上层软件访问不到故障区域。本步骤中,使得系统上能看到的地址范围都是正常的内存,不正常的区域未进行地址映射,间接达到了屏蔽该地址范围使用的目的。192.本发明实施例中,对可疑内存区域扫描的方式可以有多种形式,例如,基本读写校验测试。193.本发明实施例中,确定当前系统上内存条配置是否发生变化的方式有多种方式,例如,对所有dimm的spd信息叠加后进行crc校验。具体为:根据crc规则,生成校验码,然后比较校验码前后是否一致。194.本发明实施例中,对可疑内存区域判定的方式可以有多种,可以采用不同错误类型的加权形式,且屏蔽的内存空间的颗粒度可以根据实际系统情况或硬件设计要求进行调节.195.本发明实施例还提供一种电子设备,所述电子设备包括上述存储器故障区域的识别装置。196.本发明实施例还提供一种存储器故障区域的识别装置,如图8所示,所述装置8包括:197.存储器81;198.以及耦接至所述存储器81的处理器82,所述处理器82被配置为基于存储在所述存储器81中的指令,执行上述存储器故障区域的识别方法。199.本发明实施例还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现上述存储器故障区域的识别方法。200.本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。201.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本

技术领域


:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页12当前第1页12

技术特征:


1.一种存储器故障区域的识别方法,其特征在于,包括:检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;如果所述当前的存储器配置情况未发生变化,则获取系统的当前可疑存储器区域列表,所述当前可疑存储器区域列表记载有当前可疑存储器区域的故障地址;根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理的步骤包括:对所述当前可疑存储器区域列表对应的存储器区域进行扫描;如果扫描的存储器区域未通过测试,则将所述存储器区域继续保持在所述当前可疑存储器区域列表,以更新所述当前可疑存储器区域列表;如果扫描的存储器区域通过测试,则将所述存储器区域从所述当前可疑存储器区域列表中去除,以更新所述当前可疑存储器区域列表;根据更新后的所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。3.根据权利要求1所述的方法,其特征在于,在所述检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化的步骤之后,所述方法还包括:如果所述当前的存储器配置情况发生变化,则将所述当前可疑存储器区域列表清空;监测所述存储器的读写错误情况;基于所述存储器的读写错误情况,根据故障判定策略判断,检测出新增的可疑存储器区域;解析新增的可疑存储器区域对应的故障地址;基于所述新增的可疑存储器区域对应的故障地址,划定待屏蔽区域;根据所述待屏蔽区域,更新所述当前可疑存储器区域列表;根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。4.根据权利要求3所述的方法,其特征在于,所述故障判定策略包括:预定时间段内的循环冗余校验crc错误次数、错误检查和纠正ecc错误次数、可修复错误ce次数、不可修复错误ue次数的任意组合。5.根据权利要求4所述的方法,其特征在于:所述解析新增的可疑存储器区域对应的故障地址的步骤具体为:根据当前的存储器交织类型,解析新增的可疑存储器区域对应的故障地址;或者所述基于所述新增的可疑存储器区域对应的故障地址,划定待屏蔽区域的步骤具体为:基于所述新增的可疑内存区域对应的故障地址,根据系统要求的最小内存对齐规则,划定待屏蔽区域。6.根据权利要求5所述的方法,其特征在于,所述根据当前的存储器交织类型,解析新增的可疑存储器区域对应的故障地址的步骤具体为:若当前系统为封装单元交织socket interleave类型,在整个系统地址上,将内存以交织尺寸interleave size作为颗粒度和地址对齐规则,分别按照封装单元socket/封装前的单芯片die/通道channel为索引,交错映射到各个内存channel上;若当前系统为封装前的单芯片交织die interleave类型,在整个系统地址上,将内存
以socket为索引顺序叠加,在同socket内存范围内,内存以interleave size作为颗粒度和地址对齐规则,分别按照die和channel为索引,交错映射到各个内存channel上;若当前系统为通道交织channel interleave类型,在整个系统地址上,将内存分别以socket/die为索引顺序叠加,在同die内存范围内,将内存以interleave size作为颗粒度和地址对齐规则,按照channel为索引,交错映射到各个内存channel上;若当前系统为非内存交织non-interleave类型,在整个系统地址上,将内存分别以socket/die/channel为索引顺序叠加。7.根据权利要求4所述的方法,其特征在于,所述根据所述待屏蔽区域,更新所述当前可疑存储器区域列表的步骤具体为:获取系统支持的最小地址对齐大小;获取所述故障地址,将所述故障位置除以所述最小地址对齐大小,得到计算结果;将所述计算结果向前取整,再乘以所述最小地址对齐大小,得到待屏蔽区域的低地址边界;将所述低地址边界,加上所述最小地址对齐大小,得到所述待屏蔽区域的高地址边界;根据所述待屏蔽区域的所述低高地址边界和所述高地址边界,更新所述当前可疑存储器区域列表。8.根据权利要求1所述的方法,其特征在于,所述根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理的步骤具体为:对所述当前可疑存储器区域列表中的存储器区域不进行地址映射。9.根据权利要求1所述的方法,其特征在于:所述检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化的步骤具体为;对存储器的串行存在检测spd信息叠加后,进行循环冗余校验,以确定当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;或者对存储器的硬件标识信息叠加后,进行循环冗余校验,以确定当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化。10.一种存储器故障区域的识别装置,其特征在于,包括:检查单元,用于检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;获取单元,用于当所述当前的存储器配置情况未发生变化时,获取系统的当前可疑存储器区域列表,所述当前可疑存储器区域列表记载有当前可疑存储器区域的故障地址;屏蔽单元,用于根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。11.一种电子设备,其特征在于,所述电子设备包括如权利要求10所述的存储器故障区域的识别装置。12.一种存储器故障区域的识别装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至9中任一项所述的存储器故障区域的识别方法。
13.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至9中任一项所述的存储器故障区域的识别方法。

技术总结


本发明提供一种存储器故障区域的识别方法、装置、电子设备及存储介质。所述方法包括:检查系统中当前的存储器配置情况与上次运行时的存储器配置情况相比是否发生变化;如果所述当前的存储器配置情况未发生变化,则获取系统的当前可疑存储器区域列表,所述当前可疑存储器区域列表记载有当前可疑存储器区域的故障地址;根据所述当前可疑存储器区域列表,将对应的存储器区域进行屏蔽处理。本发明通过屏蔽故障内存区域,隔绝系统对故障内存区域的使用,有效提高了系统的可靠性。有效提高了系统的可靠性。有效提高了系统的可靠性。


技术研发人员:

黄炜 钟雨阳 李阳 蔡庆瑶 张攀勇

受保护的技术使用者:

成都海光集成电路设计有限公司

技术研发日:

2021.12.27

技术公布日:

2022/4/8

本文发布于:2024-09-20 16:23:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/14664.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:存储器   所述   区域   可疑
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议