可纠正内存故障的处置方法、系统、存储介质和终端与流程

文档序号:32405416发布日期:2022-12-02 20:22阅读:78来源:国知局
可纠正内存故障的处置方法、系统、存储介质和终端与流程

1.本技术涉及电子设备领域,特别涉及可纠正内存故障的处置方法、系统、存储介质和终端。


背景技术:

2.当前,针对可纠正内存故障,即ce(corrected error)内存故障,尚不存在系统解决方案,或者抑制效果到不到预期。业界主流方案主要有几种:完全屏蔽ce报错,设置静态ce阈值或者完全不考虑ce内存故障情况。其中完全屏蔽ce报错会导致系统对ce内存故障无感知,少量的ce内存故障会逐渐蔓延加重,最终发展成ue内存故障,造成宕机。且设置静态ce阈值只能靠经验值来设定,不一定符合真实场景的情况,阈值设置偏低结果更不考虑ce内存故障的情况,极易影响系统性能,也会让内存故障加重,升级成为ue内存故障。
3.因此,如何有效实现可纠正内存故障处置是本领域技术人员亟需解决的技术问题。


技术实现要素:

4.本技术的目的是提供一种可纠正内存故障的处置方法、系统、存储介质和终端,能够有效处置可纠正内存故障。
5.为解决上述技术问题,本技术提供一种可纠正内存故障的处置方法,具体技术方案如下:
6.检测可纠正内存故障;
7.通过预设接口隔离所述可纠正内存故障对应的内存页;
8.将所述内存页划分至软件内存故障隔离区;
9.迁移所述内存故障隔离区中的所有数据至无故障内存区域。
10.可选的,所述方法还包括:
11.利用自适应双dram设备更正算法处置所述可纠正内存故障,或利用单设备数据校正算法处置所述可纠正内存故障。
12.可选的,迁移所述内存故障隔离区中的所有数据至无故障内存区域之后,还包括:
13.将所述内存故障隔离区的隔离记录保存至固化隔离文件。
14.可选的,还包括:
15.利用硬件内存扫描引擎扫描未使用内存区域;
16.若发现内存故障区域时,将所述内存故障区域划分至硬件内存隔离区。
17.可选的,还包括:
18.移除所述可纠正内存故障对应故障内存条,或,利用封装后修复对所述可纠正内存故障执行行修复。
19.可选的,利用封装后修复对所述可纠正内存故障执行行修复包括:
20.将指向所述可纠正内存故障的访问永久性重新映射至备用内存行。
21.可选的,利用封装后修复对所述可纠正内存故障执行行修复包括:
22.将指向所述可纠正内存故障的访问重新映射至预设冗余行,并在设备重启后恢复映射关系。
23.本技术还提供一种可纠正内存故障的处置系统,包括:
24.故障检测模块,用于检测可纠正内存故障;
25.软件处置模块,用于通过预设接口隔离所述可纠正内存故障对应的内存页;将所述内存页划分至软件内存故障隔离区;迁移所述内存故障隔离区中的所有数据至无故障内存区域。
26.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
27.本技术还提供一种终端,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
28.本技术提供一种可纠正内存故障的处置方法,包括:检测所述可纠正内存故障,;通过预设接口隔离所述可纠正内存故障对应的内存页;将所述内存页划分至软件内存故障隔离区;迁移所述内存故障隔离区中的所有数据至无故障内存区域。
29.本技术结合硬件和软件对发生的可纠正故障进行处置,在检测可纠正内存故障时,在软件层面及时对可纠正内存故障进行隔离,确保了发生的可纠正内存故障不蔓延累积形成不可纠正内存故障,降低ce内存故障对系统的负面影响。
30.本技术还提供一种可纠正内存故障的处置系统、计算机可读存储介质和终端,具有上述有益效果,此处不再赘述。
附图说明
31.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
32.图1为本技术实施例所提供的一种可纠正内存故障的处置方法的流程图;
33.图2为本技术实施例所提供的一种可纠正内存故障的处置系统结构示意图:
34.图3为本技术实施例所提供的一种终端的结构示意图。
具体实施方式
35.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
36.当前,完全屏蔽ce报错,设置静态ce阈值或者完全不考虑ce内存故障情况。使得少量的ce内存故障会逐渐蔓延加重,最终发展成ue(uncorrected error,不可纠正错误故障)内存故障,不可纠正错误已经超出了硬件平台的容错范围,已有容错纠正方案无法恢复此类型的数据错误,会导致系统宕机或应用停止运行,不可纠正错误通常是多比特数据错误。
37.为了解决上述问题,参见图1,图1为本技术实施例所提供的一种可纠正内存故障的处置方法的流程图,该方法如下:
38.s101:检测所述可纠正内存故障;
39.本步骤旨在检测可纠正内存故障,在此对于采用何种检测方式不作限定,可以直接对内存运行状态进行监控,并在监控到内存异常时确定其中的可纠正内存故障。也可以对于内存故障的日志或者运行记录进行监控,从而确定其中的可纠正内存故障。
40.所谓可纠正内存故障,是在硬件平台的容错范围内可以被纠正的数据错误,已有容错纠正方案可恢复此错误,系统或应用不会因此类型错误停止运行,可纠正错误通常是单bit数据错误。
41.s102:通过预设接口隔离所述可纠正内存故障对应的内存页;
42.s103:将所述内存页划分至软件内存故障隔离区;
43.s104:迁移所述内存故障隔离区中的所有数据至无故障内存区域。
44.步骤s102至s104旨在从软件层面对于已使用部分内存区域发生的可纠正内存故障进行故障处置。具体的,已被申请使用的内存区域,若检测到进程访问故障内存区域触发可纠正内存故障时,系统会通过预设接口隔离内存页。在此对于采用何种预设接口不作限定,例如可以采用soft offline接口实时隔离,以便修复对应内存页,并划分内存故障隔离区,迁移隔离区内所有数据到无故障内存区域。具体的,若采用soft offline接口,可以通过soft offline接口确认发送可纠正内存故障的内存地址,并为该内存地址添加标记,此后系统所有内存访问过程不会指向包含该标记的内存地址。即确保已发生的可纠正内存故障不会累积或蔓延,对可纠正内存故障进行软件隔离。当然,还可以采用其他预设接口,在此不一一举例限定。
45.作为一种优选的执行方式,在执行完成上述过程后,还可以将内存故障隔离区的隔离记录保存至固化隔离文件,以便用户根据固话隔离文件确定其中的隔离记录,并针对发生的可纠正内存故障进行处置。
46.本技术结合硬件和软件对发生的可纠正故障进行处置,在检测可纠正内存故障时,在软件层面及时对可纠正内存故障进行隔离,一方面确保了发生的可纠正内存故障不蔓延累积形成不可纠正内存故障,同时在硬件层对可纠正内存故障进行处置,从而降低ce内存故障对系统的负面影响。
47.在上述实施例的基础上,作为一种优选的过程,在步骤s101检测到可纠正内存故障时,还可以利用预设硬件纠错算法处置所述可纠正内存故障。
48.此时本实施例对应的完整执行过程如下:
49.第一步、检测可纠正内存故障,利用预设硬件纠错算法处置所述可纠正内存故障;
50.第二步、通过预设接口隔离所述可纠正内存故障对应的内存页;
51.第三步、将所述内存页划分至软件内存故障隔离区;
52.第四步、迁移所述内存故障隔离区中的所有数据至无故障内存区域。
53.本实施例在检测到可纠正内存故障时,可以先从硬件角度对可纠正内存故障进行处置,对于系统中已使用的内存区域发生的可纠正内存故障,可以通过预设的硬件纠错算法进行处置,在此对于采用何种预设硬件纠错算法不作限定,一种可行的方式,可以利用自适应双dram(dynamic random access memory,动态随机存取存储器)设备更正算法
(adddc,adaptive double dram device correction)处置所述可纠正内存故障,或利用单设备数据校正算法(single device data correction,简称sddc)处置所述可纠正内存故障。当然本领域技术人员还可以采用其他算法进行硬件故障处置。自适应双dram设备更正算法需要预置备用内存单元,在其他内存条故障时可以使用备用内存单元提供的冗余能力,使用少量的硬件冗余空间,提高了系统整体的可靠性。而单设备数据校正算法支持检查和纠正dram设备的单位或多位(最大4位)内存故障,纠错过程可以采用crc校验和奇偶校验等校验方式。
54.本技术在上一实施例的基础上,检测到可纠正内存故障时,可以先利用预设硬件纠错算法从硬件层对可纠正算法进行处置,从而实现软件层和硬件层的故障处置结合,能够提高可纠正内存故障的处置效率,进一步降低可纠正内存故障对系统的负面影响。
55.在上述实施例的基础上,为了进一步提高可纠正内存故障的处置效率,实现对可纠正内存故障的预防,可执行软硬件结合的可纠正内存故障预防可以采用如下步骤:
56.对于硬件层面;可以利用硬件内存扫描引擎扫描未使用内存区域,若发现内存故障区域时,将所述内存故障区域划分至硬件内存隔离区。
57.即周期性执行硬件内存巡检,扫描内存所有地址,以主动发现潜在的可纠正内存故障,特别是容易发现尚未生成告警的可纠正内存故障。
58.对于软件层面,可以对于硬件内存巡检过程中发现的可纠正内存故障,扫描其故障类型,划分可纠正内存故障的隔离区进行隔离故障,防止该可纠正内存故障所在区域触发严重的内存故障告警。
59.本实施例旨在对设备中可能出现的可纠错内存故障从硬件层和软件层分别进行故障预防,在硬件层执行主动扫描,软件层针对扫描出的潜在故障进行故障隔离和固化,防止扫描出的故障触发可纠正内存故障。本实施例可以应用至当前设备未使用的内存区域,从而加强对于未使用内存区域的可纠正内存故障预防。
60.在上述各实施例的基础上,还可以针对系统宕机/系统重启/系统启动时执行可纠正内存故障预防,同样可以在硬件和软件两部分相结合进行预防:
61.对于硬件层面,可以通过开机时硬件自检阶段memory test检测内存故障,如果发现有大量ce内存故障,可以移除所述可纠正内存故障对应故障内存条,或,利用封装后修复(post packet repair,简称ppr)对所述可纠正内存故障执行行修复。封装后修复是利用内存条冗余的行修复内存故障的技术,通过禁用硬件层上的位置/地址并启用一个备用内存行来修复dimm上的故障内存位置,其通常在开机时检测,在设备开机后无法检测。一般ppr分为两种模式,即hard-ppr和soft-ppr。
62.若采用hard-ppr,可以将指向所述可纠正内存故障的访问永久性重新映射至备用内存行,即使系统宕机/系统重启/系统启动,也不会变更访问映射关系。
63.而soft-ppr可以将指向所述可纠正内存故障的访问重新映射至预设冗余行,并在设备重启后恢复映射关系。具体的,在“热”重启后保持新的映射关系,但在电源循环中会恢复到原来的内存映射关系。
64.对于软件层面,可以同样启动可纠正内存故障的固化隔离,对所有记录在固化隔离文件中的可纠正内存故障隔离区域内存调用soft offline接口隔离,保持可纠正内存故障隔离区域处于hwpoison(hardware poison)状态,hwpoison状态是软件层面内存页的一
种状态,处于hwpoison状态的内存页上通常设有标记,表示该内存区域已经被隔离。防止系统重启过后,隔离状态丢失重复访问内存故障区域引起可纠正内存故障。
65.本实施例旨在系统宕机、系统重启或者正常启动时执行可纠正内存故障预防,同样从硬件层和软件层相结合。硬件层在开机时进行硬件自检,若发现存在可纠正内存故障,提可以移除故障内存条或者利用封装后修复技术进行修复。在软件层,可以直接在系统重启后或者开机时启动故障隔离及固化,将存在可纠正内存故障的内存页进行标记,以使得后续内存访问不再以包含标记的内存页为访问目标,避免可纠正内存故障蔓延,给系统造成严重不良影响。
66.参见图2,图2为本技术实施例所提供的一种可纠正内存故障的处置系统结构示意图,本技术还提供一种可纠正内存故障的处置系统,包括:
67.故障检测模块,用于检测可纠正内存故障;
68.软件处置模块,用于通过预设接口隔离所述可纠正内存故障对应的内存页;将所述内存页划分至软件内存故障隔离区;迁移所述内存故障隔离区中的所有数据至无故障内存区域。
69.基于上述实施例,作为优选的实施例,还可以包括:
70.硬件算法处置模块,用于利用自适应双dram设备更正算法处置所述可纠正内存故障,或利用单设备数据校正算法处置所述可纠正内存故障。
71.基于上述实施例,作为优选的实施例,还包括:
72.隔离固化模块,用于将所述内存故障隔离区的隔离记录保存至固化隔离文件。
73.基于上述实施例,作为优选的实施例,还包括:
74.硬件预防模块,用于利用硬件内存扫描引擎扫描未使用内存区域;若发现内存故障区域时,将所述内存故障区域划分至硬件内存隔离区。
75.基于上述实施例,作为优选的实施例,还包括:
76.硬件层故障处置模块,用于移除所述可纠正内存故障对应故障内存条,或,利用封装后修复对所述可纠正内存故障执行行修复。
77.基于上述实施例,作为优选的实施例,硬件层故障处置模块包括:
78.第一处置单元,用于将指向所述可纠正内存故障的访问永久性重新映射至备用内存行。
79.基于上述实施例,作为优选的实施例,硬件层故障处置模块包括:
80.第二处置单元,用于将指向所述可纠正内存故障的访问重新映射至预设冗余行,并在设备重启后恢复映射关系。
81.本技术还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的方法的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
82.本技术还提供了一种终端,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的方法的步骤。当然所述终端还可以包括各种网络接口,电源等组件。请参见图3,图3为本技术实施例所提供的一种终端的结构示意图,本实施例的终端可以包括:处理器2101和存储器
2102。
83.可选的,该终端还可以包括通信接口2103、输入单元2104和显示器2105和通信总线2106。
84.处理器2101、存储器2102、通信接口2103、输入单元2104、显示器2105、均通过通信总线2106完成相互间的通信。
85.在本技术实施例中,该处理器2101,可以为中央处理器(central processing unit,cpu),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。
86.该处理器可以调用存储器2102中存储的程序。具体的,处理器可以执行上文的实施例中终端所执行的操作。
87.存储器2102中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本技术实施例中,该存储器中至少存储有用于实现以下功能的程序:
88.若检测到所述可纠正内存故障,利用预设硬件纠错算法处置所述可纠正内存故障;
89.通过预设接口隔离所述可纠正内存故障对应的内存页;
90.将所述内存页划分至软件内存故障隔离区;
91.迁移所述内存故障隔离区中的所有数据至无故障内存区域。
92.在一种可能的实现方式中,该存储器2102可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据。
93.此外,存储器2102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
94.该通信接口2103可以为通信模块的接口,如gsm模块的接口。
95.本技术还可以包括显示器2105和输入单元2104等等。
96.图3所示的终端的结构并不构成对本技术实施例中终端的限定,在实际应用中终端可以包括比图3所示的更多或更少的部件,或者组合某些部件。
97.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
98.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
99.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1