掌桥专利:专业的专利平台
掌桥专利
首页

内存故障的处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 18:46:07


内存故障的处理方法、装置、设备及存储介质

技术领域

本公开涉及半导体技术领域,尤其涉及一种内存故障的处理方法、装置、设备及存储介质。

背景技术

RAM(Random Access Memory,随机存取存储器)在使用过程中可能会发生错误,导致终端设备出现异常或无法工作,终端设备在运行过程也可能会发生各种其它故障,因此,当内存出现错误时,用户需要逐步排查多个方面,才能确定故障为内存故障异常,增加时间成本。

另外,当确定异常是内存故障异常后,还需要进一步排查内存故障的地址,以便于对出现故障的内存进行处理。目前,确定内存故障地址的方式通常是利用内存厂商提供的开发板进行调试分析,然而开发板与终端设备具有一定的差异性,开发板的部分功能无法实现,导致在排查内存故障的地址时故障复现和分析困难,进一步增加时间成本。

发明内容

以下是对本公开详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

本公开提供一种内存故障的处理方法、装置、设备及存储介质。

根据本公开实施例的第一方面,提供了一种内存故障的处理方法,应用于终端设备,所述内存故障的处理方法包括:

获取中断信息,所述中断信息用于表征所述终端设备运行过程中出现了异常;

所述中断信息为预设中断信息时,确定出现的所述异常为内存故障异常;

存储内存故障信息至预先建立的异常信息表。存储内存故障信息至预先建立的异常信息表。

根据本公开的一些实施例,存储内存故障信息至预先建立的异常信息表,包括:

存储内存异常信息至错误寄存器,所述内存异常信息与所述内存故障信息的数据结构不同;

读取所述内存异常信息并基于所述终端设备的配置信息对所述内存异常信息进行解析,获取所述内存故障信息;

于闪存芯片中查询所述异常信息表,并将所述内存故障信息存储于所述异常信息表。

根据本公开的一些实施例,于闪存芯片中查询所述异常信息表,包括:

基于预先建立的索引信息,于闪存芯片中查询所述异常信息表。

根据本公开的一些实施例,所述错误寄存器中存储所述终端设备运行过程中出现的全部异常的异常信息,读取所述内存异常信息,包括:

通过遍历方式从所述错误寄存器中读取所述内存异常信息。

根据本公开的一些实施例,所述内存故障信息包括故障类型和故障地址。

根据本公开的一些实施例,所述方法还包括:

所述终端设备启动时,查询所述异常信息表;

所述异常信息表中存储有所述内存故障信息时,以预设方式显示所述内存故障信息。

根据本公开的一些实施例,以预设方式显示所述内存故障信息,包括:

以表格形式显示故障数量和每个内存故障的故障序号,以及每个内存故障的故障类型和故障地址。

根据本公开的一些实施例,所述方法还包括:

显示提示信息,所述提示信息中包含对于所述内存故障信息的至少一种处理方式;

基于接收到的对于所述处理方式的选择指令,采用与所述选择指令对应的运行方式继续运行。

根据本公开的一些实施例,所述方法还包括:

没有查询到所述异常信息表时,创建所述异常信息表。

根据本公开的一些实施例,创建所述异常信息表,包括:

于闪存芯片的存储器中建立目标存储卷;

于所述目标存储卷中建立目标存储区,并在所述存储器、所述目标存储卷和所述目标存储区之间建立索引信息;

于所述目标存储区中创建并存储所述异常信息表。

根据本公开的一些实施例,所述方法还包括:

对所述目标存储区的读取属性、写入属性和有效属性进行配置。

根据本公开的一些实施例,所述方法还包括:

基于接收到的读取指令,读取所述异常信息表中存储的所述内存故障信息;和/或,

所述终端设备无法启动时,读取所述异常信息表中存储的所述内存故障信息传输至与所述终端设备形成电连接的治具。

根据本公开实施例的第二方面,提供了一种内存故障的处理装置,应用于终端设备,内存故障的处理装置包括:

获取模块,被配置为获取中断信息,所述中断信息用于表征所述终端设备运行过程中出现了异常;

确定模块,被配置为所述中断信息为预设中断信息时,确定出现的异常为内存故障异常;

存储模块,被配置为存储内存故障信息至预先建立的异常信息表。

根据本公开实施例的第三方面,提供了一种终端设备,所述终端设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行本公开实施例第一方面所述的内存故障的处理方法。

根据本公开实施例的第四方面,提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端设备的处理器执行时,使得所述终端设备能够执行本公开实施例第一方面所述的内存故障的处理方法。

本公开实施例所提供的内存故障的处理方法、装置、设备及存储介质中,通过设定一个表征内存故障异常的预设中断信息,当终端设备出现异常时获取中断信息并与预设中断信息进行对比,以快速确定终端设备出现的异常类型是否为内存故障异常,节省异常排查时间成本;将内存故障异常对应的内存故障信息存储至预先建立的异常信息表,以便于用户确定内存故障异常的地址,节省分析时间成本,以便于用户及时对内存故障异常进行处理。

在阅读并理解了附图和详细描述后,可以明白其他方面。

附图说明

并入到说明书中并且构成说明书的一部分的附图示出了本公开的实施例,并且与描述一起用于解释本公开实施例的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本公开的一些实施例,而不是全部实施例。对于本领域技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。

图1是根据一示例性实施例示出的内存故障的处理方法的流程图。

图2是根据一示例性实施例示出的内存故障的处理方法的流程图。

图3是根据一示例性实施例示出的内存故障的处理方法的流程图。

图4是根据一示例性实施例示出的一种以表格形式显示内存故障信息的示意图。

图5是根据一示例性实施例示出的内存故障的处理方法的流程图。

图6是根据一示例性实施例示出的内存故障的处理方法的流程总图。

图7是根据一示例性实施例示出的内存故障的处理装置的结构框图。

图8是根据一示例性实施例示出的一种终端设备的框图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互任意组合。

内存在使用或调试过程中可能会发生错误,导致终端设备出现异常或无法工作,终端设备在运行过程也可能会发生各种其它故障,因此,当内存出现错误时,用户需要逐步排查多个方面,才能确定故障为内存故障异常,增加时间成本。

另外,当确定异常是内存故障异常后,还需要进一步排查内存故障的地址,以便于对出现故障的内存进行处理。相关技术中,确定内存故障地址的方式通常是利用内存厂商提供的开发板,将内存与开发板连接以进行调试分析。然而,由于开发板与终端设备具有一定的差异性,调试分析的结果可能存在差异;同时,开发板的部分功能无法利用终端设备实现,导致在排查内存故障的地址时故障复现和分析困难,进一步增加时间成本。

有鉴于此,本公开提供了一种内存故障的处理方法,应用于终端设备,包括:获取中断信息,中断信息用于表征所述终端设备运行过程中出现了异常;中断信息为预设中断信息时,确定出现的异常为内存故障异常;存储内存故障信息至预先建立的异常信息表。本公开通过设定一个表征内存故障异常的预设中断信息,当终端设备出现异常时获取中断信息并与预设中断信息进行对比,以快速确定终端设备出现的异常类型是否为内存故障异常,节省异常排查时间成本;将内存故障异常对应的内存故障信息存储至预先建立的异常信息表,以便于用户确定内存故障异常的地址,节省分析时间成本,以便于用户及时对内存故障异常进行处理。

下面结合附图及具体实施例对本公开进行说明。本公开示例性的实施例提供了一种内存故障的处理方法,应用于终端设备,终端设备例如可以但不限于台式电脑、笔记本电脑、手机、平板电脑等等。参考图1所示,图1是根据一示例性实施例示出的一种内存故障的处理方法的流程图,该内存故障的处理方法包括以下步骤:

步骤S100、获取中断信息,中断信息用于表征终端设备运行过程中出现了异常;

步骤S200、中断信息为预设中断信息时,确定出现的异常为内存故障异常;

步骤S300、存储内存故障信息至预先建立的异常信息表。

本实施例中,内存可以是RAM,包括但不限于DRAM(Dynamic RAM,动态随机存取存储器)、SRAM(Static RAM,静态随机存取存储器)、RDRAM(Rambus DRAM,高频动态随机存取存储器)、SDRAM(Synchronous DRAM,同步动态随机存取存储器)等存储器,本公开对此不作限制。

在步骤S100中,在终端设备的运行过程中,终端设备在执行常规程序或功能时,终端设备可能会出现各种异常,终端设备出现的异常例如可以包括复位、取指令异常、数据异常、业务上报中断、内存故障异常等等。当终端设备中发生异常时,会触发中断信息传输至终端设备的CPU(Central Processing Unit,中央处理器)或者SOC(System on Chip,片上系统),以使得终端设备的CPU或SOC获取中断信息后,根据中断处理程序对该异常进行处理。中断信息可以是打破终端设备当前执行常规功能的信息,中断信息例如可以包括一串代码形成的信息,也可以包括某个或某些特定程序的运行信息,以表征终端设备出现了异常。

在步骤S200中,预设中断信息可以是技术人员预设在终端设备的CPU或SOC中的特定的中断信息,也可以是技术人员对CPU或SOC设定的特定的中断程序,例如可以包括SMI(System Management Interrupt,系统管理中断)。预设中断信息用于表征终端设备中出现了内存故障异常,内存故障异常为RAM中出现故障导致的异常,例如可以包括RAM中某个存储单元出现故障导致的异常,也可以包括RAM中的某条字线(word line)出现故障导致的异常,还可以包括某个内存条出现了异常,等等。当获取的中断信息为预设中断信息时,可以确定终端设备当前的异常是由于内存故障导致的,以使得当终端设备出现内存故障异常时得以快速确定,从而节省用户排查异常类型的时间成本。示例性地,当获取的中断信息不是预设中断信息时,说明终端设备当前的异常与内存故障无关,此时执行与其它异常相关的修复操作流程。

在步骤S300中,异常信息表可以是技术人员预先建立的、仅用于存储内存故障异常对应的内存故障信息的图表,当确定终端设备出现的异常为内存故障异常时,可以将与内存故障异常对应的内存故障信息存储至错误寄存器,再将内存故障信息存储预先建立的异常信息表;也可以将内存故障异常对应的内存故障信息直接存储于预先建立的异常信息表中。异常信息表可以设置在非易失性存储器中,例如可以设置在闪存芯片或ROM(ReadOnly Memory,只读存储器)中,以使得用户可以读取闪存芯片从而便捷快速地获取内存故障异常对应的内存故障信息,进而便于及时对内存故障异常进行处理,节省分析内存故障异常的时间成本。

示例性地,内存故障信息是描述内存故障异常的详细内容的信息,例如可以包括内存故障的故障类型和故障地址,故障类型可以包括可修复故障(Correctable Error,CE)和不可修复故障(Un Correctable Error,UCE)。需要说明的是,由于可修复故障在出现时,CPU在获取到中断信息后会执行修复程序,因此,此处的可修复故障是指可修复且已经被修复了的故障,不可修复故障是指修复程序无法修复的故障。故障地址即为内存出现故障的地址,故障地址包括但不限于以下类型的地址进行描述:socket(插槽)、channel(通道)、channel(内存条)、rank(内存区块)、chip(内存颗粒)、bank(存储阵列)、row(行)、column(列)。

其中,由于终端设备可以包括多个CPU,而DRAM等存储器是设置于CPU中的,socket为CPU插槽,可以描述故障内存位于终端设备的哪个CPU上。终端设备访问内存时,由于是通过CPU中的内存控制器(Memory Controller)依次选择channel、dimm、rank、chip、bank、row、column最终定位至某个存储器的某个存储单元(cell)上的。在一些实施例中,当故障地址仅包括socket时,说明socket对应的CPU上的存储器均出现了损坏;在另一些实施例中,当故障地址包括socket、channel、dimm时,说明socket对应的CPU中,通过channel对应的通道访问的某一内存条出现了损坏。需要说明的是,故障地址中包括的地址类型越多,该内存故障异常对应的故障地址就越详细,该内存故障异常的影响范围越小。

在一个示例性实施例中,参考图2所示,步骤S300中,存储内存故障信息至预先建立的异常信息表,包括:

步骤S310、存储内存异常信息至错误寄存器,内存异常信息与内存故障信息的数据结构不同;

步骤S320、读取内存异常信息并基于终端设备的配置信息对内存异常信息进行解析,获取内存故障信息;

步骤S330、于闪存芯片中查询异常信息表,并将内存故障信息存储于异常信息表。

在步骤S310中,当终端设备出现内存故障异常,终端设备的CPU或SOC获取到预设中断信息的同时,CPU或SOC还会生成与内存故障异常对应的内存异常信息,并存储至CPU内部的错误寄存器或SOC寄存器中。内存异常信息可以是一串字符或者代码以记录内存故障异常,例如可以是0x1234567此类系统地址,因此,内存异常信息与内存故障信息的数据结构不同。示例性地,内存异常信息记录内存故障异常的方式可以基于当前终端设备中的CPU的配置确定。

在步骤S320中,由于内存异常信息记录内存故障异常的方式是基于当前终端设备中的CPU的配置信息确定的,终端设备中CPU的配置信息是CPU厂商根据CPU的特性进行设置的代码,并在对CPU进行出厂时将配置信息设置于CPU中,也就是说,当CPU生成内存异常信息时,是基于配置信息中设定的规则生成的。因此,当获取描述内存故障异常的详细内容的内存故障信息时,于错误寄存器中读取内存异常信息后,需要进一步获取设置于终端设备的CPU中的配置信息,基于配置信息对内存异常信息进行解析,以获取内存故障信息。

在一些可能的实施方式中,错误寄存器中存储终端设备运行过程中出现的全部异常的异常信息,步骤S320中,读取内存异常信息,包括:

通过遍历方式从错误寄存器中读取内存异常信息。

本实施例中,当终端设备在运行过程中出现各种异常时,终端设备的CPU或SOC在获取到中断信息的同时,CPU或SOC均会生成与该异常对应的异常信息,并存储至CPU内部的错误寄存器或SOC寄存器中。因此,在读取内存异常信息时,需要遍历错误寄存器中的所有异常信息,以从错误寄存器中读取内存异常信息。

在步骤S330中,闪存芯片(Flash Memory)的特点是在断电后数据仍可以保存,闪存芯片可以包括NOR型闪存和NAND型闪存。将异常信息表设置于闪存芯片中,可以确保内存故障信息的可保留性。在存储内存故障信息时,在闪存芯片中查询预先设置的异常信息表,并将解析得到的内存故障信息存储于异常信息表中。示例性地,异常信息表中可以设置内存故障信息中的故障类型和故障地址的对应关系,以便于用户的查询和处理。

在一些实施例中,当将错误寄存器中的内存异常信息解析得到内存故障信息,并将内存故障信息存储于异常信息表后,可以对错误寄存器中的内存异常信息进行清除。以便于当终端设备出现新的内存故障异常时,将新出现的内存故障异常对应的内存异常信息存储于错误寄存器,并对其进行解析,避免对同一个或相同几个内存故障异常对应的内存故障信息重复储存于异常信息表。

在一些可能的实施方式中,步骤S330中,于闪存芯片中查询异常信息表,包括:

基于预先建立的索引信息,于闪存芯片中查询异常信息表。

本实施例中,由于闪存芯片中存储有用于初始化系统主板和加载操作系统的终端设备的系统固件,因此,异常信息表设置于闪存芯片中除设置系统固件之外的空闲区域。索引信息为在闪存芯片中设置异常信息表时预先建立并设置于终端设备中的,索引信息可以包括于闪存芯片中查询异常信息表时的路径信息,即异常信息表在闪存芯片中的位置信息。在获取内存故障信息后,终端设备的CPU获取预先建立的索引信息,根据索引信息中表示的异常信息表在闪存芯片中的位置,于闪存芯片中查询预先设置的异常信息表,以将内存故障信息存储于异常信息表中。

在一个示例性实施例中,参考图3所示,内存故障的处理方法还包括以下步骤:

步骤S400、终端设备启动时,查询异常信息表;

步骤S500、异常信息表中存储有内存故障信息时,以预设方式显示内存故障信息。

在步骤S400中,终端设备的启动可以是首次启动,也可以终端设备在上一次使用后正常关机后的启动,还可以是因上一次终端设备出现异常导致无法工作的重启。在终端设备的启动过程中,基于预先建立的索引信息于闪存芯片中查询异常信息表,以对异常信息表中存储的内存故障信息进行读取。

在步骤S500中,当查询到异常信息表中存储有内存故障信息时,说明上次使用终端设备的过程中出现了内存故障异常。此时,终端设备暂停启动,并将内存故障信息以预设方式在终端设备的显示屏上进行显示,预设方式是技术人员预先设置在终端设备中的确保用户可以清楚了解到内存故障信息的方式,例如可以是以序列的方式显示,也可以是以异常信息表中的图表的方式,还可以是以弹框或者串口日志的形式进行显示,等等。以使得用户通过显示的内存故障信息可以快速确定上次使用终端设备过程中内存出现的故障异常,便于用户可以及时并针对性地对出现故障异常的内存进行处理。

在一些实施例中,异常信息表可以一直存储终端设备出现过的内存故障信息,异常信息表中存储的内存故障信息可以是以终端设备的使用次数进行保存和区分的,也可以是以用户是否对内存故障异常进行处理进行保存和区分的。当内存故障信息以终端设备的使用次数进行保存和区分时,例如,终端设备启动时是第4次使用,异常信息表中可以存储有前3次终端设备在运行过程中出现的内存故障信息,此时,显示的内存故障信息为终端设备第3次运行过程中出现的内存故障信息。当内存故障信息以用户是否对内存故障异常进行处理进行保存和区分时,显示的内存故障信息可以是用户在本次终端设备启用之前忽略未处理的内存故障信息,以提醒用户进行处理。

在一些实施例中,当异常信息表中没有存储内存故障信息时,说明此前终端设备中未出现内存故障异常,或者此前出现过的内存故障异常已经被处理,用户已经将内存故障信息进行清除,此时,终端设备继续启动,正常运行。

在一些可能的实施方式中,步骤S500中,以预设方式显示内存故障信息,包括:

以表格形式显示故障数量和每个内存故障的故障序号,以及每个内存故障的故障类型和故障地址。

本实施例中,以表格的形式显示内存故障信息,可以使得用户可以清楚的获得信息。故障数量可以是上次使用终端设备的过程中出现的内存故障异常的总数量,也可以是之前终端设备未处理的内存故障异常的总数量。以故障序号的方式显示每个内存故障,在故障序号对应的表格中显示该内存故障的故障类型和故障地址,以使得用户可以清楚的获得每个内存故障的类型和地址,便于用户对内存故障进行处理。

下面结合图4进行说明,图4是一示例性实施例示出的以表格形式显示内存故障信息的示意图。图4中,故障数量为3,即内存故障异常的总数量为3处,其中,序号为0的内存故障的故障类型为CE,即可修复且已经被修复了的故障,该内存故障的地址中,Socket=00即表示该内存故障位于第一个CPU中,Channel=01即表示该内存故障位于第二个通道,Dimm=01即表示该内存故障位于第二个内存条,Rank=00即表示该内存故障位于第一个内存区块,Chip=01即表示该内存故障位于第二个内存颗粒,Bank=02即表示该内存故障位于第三个存储阵列,Row=0040即表示该内存故障位于第41行,Column=0030即表示该内存故障位于第31列。也就是说,对于序号为0的内存故障,故障类型为CE,故障地址位于第一个CPU中使用第二个通道的第二个内存条中,具体地址为该内存条中的第一个内存区块上的第二个内存颗粒上的第三个存储阵列中的第41行第31列处的存储单元。

此外,序号为1以及序号为2的内存故障的故障类型为UCE,即终端设备的修复程序无法修复的故障,序号为1的故障地址位于第三个CPU中使用第二个通道的第一个内存条中,具体地址为该内存条中的第三个内存区块上的第二个内存颗粒上的第一个存储阵列中的第54行第65列处的存储单元。序号为2的故障地址位于第一个CPU中使用第一个通道的第三个内存条中,具体地址为该内存条中的第二个内存区块上的第五个内存颗粒上的第四个存储阵列中的第184行第13列处的存储单元。

在一个示例性实施例中,参考图5所示,内存故障的处理方法还包括以下步骤:

步骤S600、显示提示信息,提示信息中包含对于内存故障信息的至少一种处理方式;

步骤S700、基于接收到的对于处理方式的选择指令,采用与选择指令对应的运行方式继续运行。

当终端设备的显示屏显示内存故障信息后,显示屏继续显示提示信息,提示信息用于提供给用户对内存故障信息进行处理的处理方式,处理方式可以是一种,也可以是多种。对内存故障信息的处理方式,例如可以包括“继续”、“关机”、“清除”等处理方式。用户根据显示屏显示的处理方式,可以根据需要选择某一种处理方式,此时,用户与终端设备交互,发出与该处理方式对应的选择指令。终端设备可以基于接收到的用户对于处理方式的选择指令,采用与该选择指令相对应的运行方式继续运行。

在一些实施例中,当用户选择“继续”时,可以表示用户选择忽略内存故障信息,不对内存故障信息对应的内存故障异常进行处理;也可以是基于显示的内存故障信息均为可修复且已经被修复了的故障,无需用户再行处理。此时终端设备基于接收到的对于“继续”的选择指令,关闭显示的内存故障信息,终端设备继续启动或继续运行。在另一些实施例中,当用户选择“关机”时,表示用户选择不继续运行终端设备,需要对终端设备关机,此时终端设备基于接收到的对于“关机”的选择指令,终端设备关机。示例性地,用户在关机后可以基于显示的内存故障信息,对相应的内存进行更换或修复,例如在关机后将出现内存故障异常的内存条进行拆卸并更换,或拆卸后对内存条进行修复再行安装,等等。在另一些实施例中,当用户选择“清除”时,表示用户选择清除异常信息表中存储的内存故障信息,此时终端设备基于接收到的对于“清除”的选择指令,终端设备对异常信息表中存储的内存故障信息进行清除。

在一个示例性实施例中,内存故障的处理方法还包括:

步骤S410、没有查询到异常信息表时,创建异常信息表。

本实施例中,当终端设备启动时未查询到异常信息表时,例如是当终端设备首次启动时,创建异常信息表,例如可以是在闪存芯片中创建异常信息表,使得当终端设备中出现内存故障异常时,对内存故障异常对应的内存故障信息进行储存。以便于在终端设备下一次启动时,在终端设备的显示屏上显示内存故障信息。

在一些可能的实施方式中,步骤S410中,创建异常信息表,包括:

步骤S411、于闪存芯片的存储器中建立目标存储卷;

步骤S412、于目标存储卷中建立目标存储区,并在存储器、目标存储卷和目标存储区之间建立索引信息;

步骤S413、于目标存储区中创建并存储异常信息表。

本实施例中,由于闪存芯片中存储有用于初始化系统主板和加载操作系统的终端设备的系统固件,在闪存芯片的存储器中建立目标存储卷,可以是在闪存芯片中设置系统固件的固件设备(Firmware Devices)的空闲区域建立目标存储卷,目标存储卷可以是固件卷(Firmware Volumn),目标存储卷用于存储各种需要实现非易失性的数据,可以对目标存储卷进行命名以将其与其它系统固件进行区分,并对目标存储卷设置GUID(GloballyUnique Identifier,全局唯一标识符)以区分不同的目标存储区,GUID可以是由算法生成的二进制长度为128位的数字标识符。

于目标存储卷中建立目标存储区,目标存储区例如可以是固件区(FirmwareSection),目标存储区用于存储某种实际的数据。例如可以在某一目标存储区中创建并存储异常信息表。示例性地,可以对目标存储区进行命名以区分存储的数据内容,并对不同命名的目标存储区设置GUID编码。命名可以是任意的字符或字符串,例如将用于存放异常信息表的目标存储区命名为“DIMMINFO”。在存储器、目标存储卷和目标存储区之间建立索引信息,例如对于存放异常信息表的目标存储区,其索引信息可以是固件设备=>目标存储卷特定GUID编码=>目标存储区特定GUID编码。当需要查询异常信息表或存储内存故障信息时,通过在闪存芯片的存储器中查询固件设备,在固件设备中查询目标存储卷的特定GUID编码,以定位至目标存储卷,并在目标存储卷中查询目标存储区的特定GUID编码,即可对异常信息表进行访问。

在一些可能的实施方式中,内存故障的处理方法还包括:

步骤S4121、对目标存储区的读取属性、写入属性和有效属性进行配置。

在建立目标存储区时,对目标存储区的读取属性进行配置,以便于终端设备对目标存储区中的异常信息表进行读取。对目标存储区的写入属性进行配置,以便于终端设备将内存故障异常对应的内存故障信息存储于目标存储区中的异常信息表中。对目标存储区的有效属性进行配置,以避免在终端设备运行系统固件时对目标存储区进行错误访问,避免影响系统固件的运行,同时可以避免内存故障信息的错误读取或修改。

示例性地,在建立目标存储区时,还可以计算目标存储区的存储空间,以明确异常信息表中的内存故障信息所占用的空间。例如,目标存储区中,“DRAMINFO”为关键字,以明确此信息为内存故障信息,关键字占用8字节;故障数量、故障序号、故障类型、socket、channel、dimm、rank、chip、bank各占用1字节,row和column各占用2字节。

在一些可能的实施方式中,内存故障的处理方法还包括:

步骤S510、基于接收到的读取指令,读取异常信息表中存储的内存故障信息。

本实施例中,当终端设备启动时,或者当用户需要对内存故障信息进行读取时,终端设备基于接收到的读取指令,根据索引信息查询异常信息表,并读取异常信息表中存储的内存故障信息,以确定发生内存故障异常的故障地址。

在一些可能的实施方式中,内存故障的处理方法还包括:

步骤S520、终端设备无法启动时,读取异常信息表中存储的内存故障信息传输至与终端设备形成电连接的治具。

本实施例中,当终端设备因发生的异常使得严重故障而无法启动时,由于异常信息表设置于闪存芯片中,可以将终端设备与治具进行电连接,通过对治具进行操作,例如利用外部治具烧录闪存芯片,以将闪存芯片中的异常信息表转储于治具中,通过读取治具,以读取异常信息表中存储的内存故障信息。以使得可以在终端设备无法启动的情况下也可以快速获取内存故障异常的地址,便于用户对内存进行修复或更换处理。

在一些可能的实施方式中,内存故障的处理方法还包括:

步骤S510、基于接收到的读取指令,读取异常信息表中存储的内存故障信息;

步骤S520、终端设备无法启动时,读取异常信息表中存储的内存故障信息传输至与终端设备形成电连接的治具。

本实施例中,步骤S510和步骤S520的具体实施方式与上述实施例中描述的具体实施方式类似,区别在于终端设备接收到的读取指令可以是与终端设备形成电连接的治具发出的。基于接收到的治具发出的读取指令,通过先读取异常信息表中存储的内存故障信息,将异常信息表中存储的内存故障信息转储至治具中,并对治具读取,以使得可以在终端设备无法启动的情况下也可以快速获取内存故障异常的地址。

下面对本公开的技术方案的整体工作流程进行说明。参考图6所示,图6为本公开一示例性实施例提供的内存故障的处理方法的流程示意总图。

S1、终端设备启动,查询异常信息表。

S2、判断是否查询到异常信息表;

若是,说明终端设备中已经设置有异常信息表,执行S4;若否,执行S3。

S3、创建异常信息表。

S4、检查异常信息表中是否存储有内存故障信息;

若是,执行S11;若否,说明此前终端设备中未出现内存故障异常,执行S5。

S5、终端设备继续启动。

S6、当终端设备运行过程中出现了异常,获取中断信息。

S7、判断中断信息是否为预设中断信息;

若是,执行S8;若否,说明出现的异常为除内存故障异常之外的其它异常,执行S10。

S8、确定出现的异常为内存故障异常。

S9、存储内存故障信息至预先建立的异常信息表。

S10、执行其它异常处理方法。

S11、以预设方式显示内存故障信息。

S12、显示提示信息,提示信息中包含对于内存故障信息的至少一种处理方式。

S13、基于接收到的对于处理方式的选择指令,采用与选择指令对应的运行方式继续运行。

本公开示例性地提供了一种内存故障的处理装置,应用于终端设备,参考图7所示,图7是内存故障的处理装置的结构框图,该内存故障的处理装置被配置为能够执行本公开上述实施例中的内存故障的处理方法,该内存故障的处理装置包括:

获取模块100,被配置为获取中断信息,中断信息用于表征终端设备运行过程中出现了异常;

确定模块200,被配置为中断信息为预设中断信息时,确定出现的异常为内存故障异常;

存储模块300,被配置为存储内存故障信息至预先建立的异常信息表。

关于上述实施例中的内存故障的处理装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图8是根据一示例性实施例示出的一种终端设备,即终端设备800的框图。终端设备800可以被提供为电脑、笔记本电脑等。参照图8,终端设备800包括处理器801,处理器801的个数可以根据需要设置为一个或者多个。终端设备800还包括存储器802,用于存储可由处理器801的执行的指令,例如应用程序。存储器802的个数可以根据需要设置一个或者多个。其存储的应用程序可以为一个或者多个。处理器801被配置为执行指令,以执行上述的内存故障的处理方法。

本领域技术人员应明白,本公开的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

在示例性实施例中,提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器802,上述指令可由终端设备800的处理器801执行以完成上述内存故障的处理方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

在本公开示例性的实施例中,提供了一种非临时性计算机可读存储介质,该非临时性计算机可读存储介质可以设置于终端设备,使得终端设备能够执行本公开示例性的实施例所提供的内存故障的处理方法。

本公开是参照根据本公开实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在本公开中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。

尽管已描述了本公开的优选实施例,但本领域技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。

显然,本领域技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开的意图也包含这些改动和变型在内。

技术分类

06120115686978