数据错误修复方法、装置和设备的制作方法

文档序号:6401149阅读:471来源:国知局
专利名称:数据错误修复方法、装置和设备的制作方法
技术领域
本发明涉及计算机技术领域,特别涉及一种数据错误修复方法、装置和设备。
背景技术
内存作为计算机系统中必备的部件,通常以内存条的形式存在于不同架构的系统中。在系统运行过程中,内存可能发生硬失效或软失效。硬失效是指由于硬件问题引入的无法恢复的数据错误,软失效是指由于数据跳变而引入的可以由上、下电或者重启进行恢复的数据错误。而为了维护系统的正常运行,需要对硬失效和软失效引入的数据错误进行修复。现有技术中的修复方法一般通过在内存条上增加ECC (Error Checking andCorrection,错误检测和纠正)校验芯片进行,当内存的数据出现数据错误,ECC检测到该数据错误后,输出正确的数据给用户。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:ECC仅是根据数据错误向用户输出正确的数据,而不对内存中的错误数据进行任何修复动作。通过ECC不能有效区分硬失效和软失效,进而不能对错误数据修复,使得错误数据的累积而容易造成系统挂死、系统无法启动等,影响正常业务的进行。

发明内容
为了解决软、硬失效的区分和处理问题,本发明实施例提供了一种数据错误修复方法、装置和设备。所述技术方案如下:第一方面,提供了一种数据错误修复方法,所述方法包括:判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。结合第一方面,本发明实施例的第一种可能实现方式中,如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复,包括:如果所述内存中存储的发生数据错误的物理地址中存在相同的物理地址,确定所述相同的物理地址对应的数据错误的失效类型为硬失效。结合第一方面,本发明实施例的第二种可能实现方式中,如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复,包括:如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,进行内存巡检;在结束巡检之后,判断所述内存中的数据错误是否已被修复;
如果所述数据错误未被修复,确定所述数据错误的失效类型为硬失效;如果所述数据错误已被修复,确定所述数据错误的失效类型为软失效。结合第一方面,本发明实施例的第三种可能实现方式中,如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,进行内存巡检,包括:如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,将所述预设计数器中的物理地址转换成巡检地址;根据所述巡检地址对应的所述内存中的数据进行巡检。结合第一方面,本发明实施例的第四种可能实现方式中,如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复之后,所述方法还包括:当确定所述内存的失效类型为硬失效时,获取所述失效类型为硬失效的数据错误的物理地址;触发警报,以便提示用户更换所述失效类型为硬失效的数据错误的物理地址对应的内存。结合第一方面,本发明实施例的第五种可能实现方式中,判断内存中预设计数器是否溢出之前,所述方法还包括:当内存中发生数据错误时,获取发生数据错误的物理地址;将所述发生数据错误的物理地址存储至内存中,并对所述发生数据错误的物理地址进行数据回写。第二方面,提供了一种数据错误修复装置,所述装置包括:判断模块,用于判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;确定模块,用于如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。结合第二方面,本发明实施例的第一种可能实现方式中,所述确定模块用于如果所述内存中存储的发生数据错误的物理地址中存在相同的物理地址,确定所述相同的物理地址对应的数据错误的失效类型为硬失效。结合第二方面,本发明实施例的第二种可能实现方式中,所述确定模块包括:巡检单元,用于如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,进行内存巡检;判断单元,用于在结束巡检之后,判断所述内存中的数据错误是否已被修复;确定单元,用于如果所述数据错误未被修复,确定所述数据错误的失效类型为硬失效;所述确定单元,用于如果所述数据错误已被修复,确定所述数据错误的失效类型为软失效。结合第二方面,本发明实施例的第三种可能实现方式中,所述巡检单元包括:巡检地址转换子单元,用于如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,将所述预设计数器中的物理地址转换成巡检地址;巡检子单元,用于根据所述巡检地址对应的所述内存中的数据进行巡检。
结合第二方面,本发明实施例的第四种可能实现方式中,所述装置还包括:硬失效物理地址获取模块,用于当确定所述内存的失效类型为硬失效时,获取所述失效类型为硬失效的数据错误的物理地址;触发模块,用于触发警报,以便提示用户更换所述失效类型为硬失效的数据错误的物理地址对应的内存。结合第二方面,本发明实施例的第五种可能实现方式中,所述装置还包括:数据错误物理地址获取模块,用于当内存中发生数据错误时,获取发生数据错误的物理地址;存储模块,用于将所述发生数据错误的物理地址存储至内存中;回写模块,用于对所述发生数据错误的物理地址进行数据回写。第三方面,提供了一种数据错误修复设备,所述设备包括:内存,用于存储数据以及发生数据错误的物理地址;处理器,用于判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;所述处理器,还用于如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。本发明实施例提供的技术方案带来的有益效果是:本发明实施例提供的数据错误修复方法、装置和设备,通过判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。采用本发明实施例提供的技术方案,可以有效区分内存的失效类型,并根据失效类型进行修复,避免了数据错误累积造成的系统挂死或无法启动等情况,保证了业务的正常进行。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例中提供的一种数据错误修复方法流程图;图2是本发明实施例中提供的一种数据错误修复方法流程图;图3是本发明实施例中提供的一种数据错误修复装置结构示意图;图4是本发明实施例中提供的一种数据错误修复设备结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。本发明实施例中,终端设备指向用户提供数据处理功能、语音和/或数据连通性的设备,包括无线终端或有线终端。无线终端可以是具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备,经无线接入网与一个或多个核心网进行通信的移动终端。例如,无线终端可以是移动电话(或称为“蜂窝”电话)和具有移动终端的计算机。又如,无线终端也可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置。再如,无线终端可以为移动站(英文为:mobile station)、接入点(英文为:access point)、或用户装备(英文为:user equipment,简称UE)等。图1是本发明实施例中提供的一种数据错误修复方法流程图,本发明实施例的执行主体是终端设备,参见图1,该方法包括:101:判断内存中预设计数器是否溢出,所述预设计数器用于存储所述内存发生数据错误的物理地址;其中,预设计数器是预先设置在内存中的空间,该预设计数器的大小由技术人员在设计过程中进行设定,本发明实施例对此不作具体限定。优选地,该预设计数器每隔一定时间间隔对ECC寄存器进行读取,当读取到ECC寄存器中的标识位表示内存中的数据存在错误时,将该预设计数器的值加I。进一步地,每隔预设时长,该预设计数器的值减1,预设时长大于读取的时间间隔。当预设计数器的数值超过溢出门限时,该预设计数器溢出。其中,该预设计数器涉及到的读取的时间间隔、预设时长以及溢出门限等参数可以由技术人员进行设置,本发明实施例对此不作具体限定。终端设备判断内存中预设计数器是否溢出时,可以由预设计数器的值超出溢出门限时触发相应的指令,在接收到预设计数器在溢出时触发相应的指令时,确定预设计数器溢出,否则,确定该预设计数器未溢出。优选地,该数据错误为单比特错误,当预设计数器溢出时,需要判断内存中存储的发生单比特数据错误的物理地址对应的数据的失效类型,并加以处理,以防止多比特数据错误的发生;当预设计数器未溢出时,内存中存储的发生单比特数据错误的物理地址数量较少,可以不对内存中存储的物理地址对应的数据进行处理。102:如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。其中,内存的失效类型分为软失效和硬失效。软失效的数据错误可以进行回写,即将正确的数据写至该软失效对应的物理地址中;硬失效的数据错误不能进行回写,只能通过人工的方式进行对应内存的更换。如果所述预设计数器溢出,终端设备需要对内存中存储的物理地址对应的内存的失效类型进行判断,以确定内存的失效类型。终端设备可以对内存中存储的物理地址对应的数据进行反复读取,判断内存中存储的物理地址对应的数据是否被修复,如果该数据被修复,则该物理地址对应的内存的失效类型为软失效;如果该数据未被修复,则该物理地址对应的内存的失效类型为硬失效。如,当对一个物理地址对应数据进行多次读取后,通过检测获知该物理地址对应的数据仍然存在错误,则该物理地址对应的内存的失效类型为硬失效。优选地,判断内存中存储的物理地址对应的数据是否被修复可以由ECC寄存器进行检测获知。当确定内存中存储的物理地址对应失效类型为软失效时,则将正确的数据回写至该软失效对应的物理地址中,当确定内存中存储的物理地址对应失效类型为硬失效时,则无法将正确的数据回写至该硬失效对应的物理地址中,相应的,提示用户该内存错误为硬失效,需要人工对该物理地址对应的内存进行更换,以防止多比特错误累积造成系统挂死等问题。本发明实施例提供的数据错误修复方法,通过判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。采用本发明实施例提供的技术方案,可以有效区分内存的失效类型,并根据失效类型进行修复,避免了数据错误累积造成的系统挂死或无法启动等情况,保证了业务的正常进行。图2是本发明实施例中提供的一种数据错误修复方法流程图,本发明实施例的执行主体是终端设备,数据错误为单比特数据错误为例进行说明。参见图2,该方法包括:201:当内存中发生数据错误时,获取发生数据错误的物理地址;当内存中发生单比特数据错误时,终端设备根据ECC检测到的单比特数据错误,获取单比特数据错误对应的物理地址。202:将所述发生数据错误的物理地址存储至内存中,并对所述发生数据错误的物理地址进行数据回写;具体地,终端设备在获取到发生数据错误的物理地址后,将该发生数据错误的物理地址存储至内存的同时,启动需求清除(Demand Scrubbing)功能,在发生单比特数据错误的物理地址中回写正确的数据,以实现对单比特数据错误的修复。当该发生的单比特数据错误对应的失效类型为软失效时,理想状态下,该需求清除功能可以将正确的数据回写,当该发生的单比特数据错误对应的失效类型为硬失效时,该需求清除功能不能将正确的数据回写。因此,终端设备需要进一步判断发生单比特数据错误的内存的失效类型,如果是软失效,则单比特数据错误已经被修复,如果是硬失效,则单比特数据错误未被修复,还需后续进一步处理。203:判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数,如果是,执行步骤204,如果否,继续执行该步骤203 ;当预设计数器的值大于溢出门限,该预设计数器溢出。需要说明的是,当预设计数器未溢出时,则不进行后续步骤,终端设备继续判断预设计数器是否溢出。步骤201-202为可选步骤,将所述发生数据错误的物理地址存储至内存可以作为步骤203的触发条件,当对发生数据错误的物理地址进行存储时,执行步骤203,而在本发明提供的另一实施例中,还可以是每隔预设时长执行步骤203,而不以对发生单比特错误并对发生数据错误的物理地址进行存储为触发条件。204:判断所述内存中存储的发生数据错误的物理地址中是否存在相同的物理地址,如果是,执行步骤205,如果否,执行步骤206 ;如果预设计数器溢出,终端设备读取该内存中存储的各个发生数据错误的物理地址,判断各个发生数据错误的物理地址中是否存在相同的物理地址。如果判断过程中确定存在两个或者两个以上相同的物理地址,则可以确定内存中存在相同的物理地址,如果不存在两个或者两个以上相同的物理地址,则可以确定内存中不存在相同的物理地址。205:如果所述内存中存在相同的物理地址,确定所述相同的物理地址对应的单比特数据错误的失效类型为硬失效,执行步骤211 ;根据步骤202可知,对于软失效来说,在获取到发生单比特数据错误的物理地址后,将该发生单比特数据错误的物理地址存储至内存的同时,启动需求清除(DemandScrubbing)功能,通过需求清除功能在发生单比特数据错误的物理地址中写入正确的数据。因此,如果该发生单比特数据错误的失效类型为软失效时,该发生单比特数据错误的物理地址中将被写入正确的数据,当再次对该物理地址进行检测时,该物理地址中的数据正确,则不将该物理地址写入内存,也即是发生软失效的物理地址仅会在内存中存储一次;而如果该发生单比特数据错误的失效类型为硬失效时,由于数据回写不能将正确的数据写入该发生单比特数据错误的物理地址中,导致该物理地址的错误数据未能被修复,当再次对该物理地址进行检测时,该物理地址将再次被写入内存,因此,当该发生单比特数据错误的失效类型为硬失效时,该发生单比特数据错误的物理地址可能会多次存储在内存中。由于发生单比特数据错误的物理地址可能会多次存储在内存中,如果内存中存在两个或两个以上相同的物理地址,确定该相同的物理地址对应的单比特数据错误的失效类型为硬失效。206:如果所述内存中不存在相同的物理地址,将所述内存中的发生数据错误的物理地址转换成巡检地址;当终端设备启动巡检清除Patrol Scrubbing功能时,根据转换的巡检地址对该巡检地址对应的内存数据进行巡检。终端设备将内存中的发生数据错误的物理地址转换成巡检地址,便于根据该巡检地址进行巡检。具体地,将所述内存中的发生数据错误的物理地址转换成巡检地址包括:终端设备判断内存中的发生数据错误的物理地址是否为内存地址,如果确定该内存中的发生数据错误的物理地址是内存地址,则读取DRAM_RULE寄存器确定该内存所在的socket ;查询TADO-TAD11寄存器确定Channel ID ;根据RIRWAYNESS寄存器和riri IvXoffset可以确定故障的 DIMM、Rank ID 和 Rank 内部地址,根据获取的 socket ID、Channel ID、DIMM、RankID和Rank地址获取巡检地址。终端设备根据物理地址获取巡检地址的过程为本领域技术人员所熟知,本发明实施例不再赘述。如果内存中不存在相同的物理地址,则该内存中存储的物理地址对应的单比特数据错误的类型可能是软失效也可能是硬失效。207:根据所述巡检地址对应的所述内存中的数据进行巡检;具体地,终端设备停止系统自动的巡检清除Patrol Scrubbing,将转换后的巡检地址写入SCRUBADDRESSLO寄存器和SCRUBADDRESSHI寄存器,使能巡检,根据SCRUBADDRESSLO寄存器和SCRUBADDRESSHI寄存器对转换后的巡检地址对应的内存中的数据的巡检。在巡检过程中,如果巡检地址对应的内存数据存在数据错误,对该巡检地址对应的内存中的数据进行回写;如果巡检地址对应的内存中数据正确,则不对该数据进行任何处理。步骤206-207是如果所述内存中不存在相同的物理地址,进行内存巡检的过程。
208:在结束巡检之后,判断所述内存中的单比特数据错误是否已被修复,如果是,执行步骤209,如果否,执行步骤210 ;在终端设备对内存中和巡检地址对应的数据巡检结束后,读取ECC寄存器中的标志着是否存在单比特数据错误的标识位,如果ECC寄存器中的标识位表明巡检地址对应内存中的数据存在错误,说明内存中的单比特数据错误未被修复;如果ECC寄存器中的标识位表明巡检地址对应内存中的数据没有错误,说明内存中的单比特数据错误已被修复。209:如果所述单比特数据错误已被修复,确定所述单比特数据错误的失效类型为软失效,结束;如果根据ECC寄存器中的标识位确定内存中的单比特数据错误已被修复,说明在终端设备启动需求清除(Demand Scrubbing)功能过程中,该单比特数据错误被纠正,确定该单比特数据错误的失效类型为软失效。210:如果所述单比特数据错误未被修复,确定所述单比特数据错误的失效类型为硬失效;如果根据ECC寄存器中的标识位确定内存中的单比特数据错误未被修复,说明在终端设备启动需求清除(Demand Scrubbing)功能过程中,该单比特数据错误未被纠正,确定该单比特数据错误的失效类型为硬失效。211:当确定所述内存的失效类型为硬失效时,获取所述失效类型为硬失效的单比特数据错误的物理地址;当确定所述内存的失效类型为硬失效时,终端设备获取所述失效类型为硬失效的单比特数据错误的物理地址的过程可以为以下任一项:(I)终端设备通过对内存中的相同物理地址检测,当存在相同的物理地址时确定内存的失效类型为硬失效时,终端设备直接读取该相同的物理地址;(2)终端设备通对巡检地址对应的数据进行巡检,当巡检后根据ECC寄存器中的标志位确定所述内存的失效类型为硬失效时,终端设备从操作系统OS的mcelog文件中获取该硬失效对应的数据的物理地址。212:触发警报,以便提示用户更换所述失效类型为硬失效的单比特数据错误的物理地址对应的内存。优选地,终端设备获取到失效类型为硬失效的单比特数据错误的物理地址后,在显示屏幕上显示所述失效类型为硬失效的单比特数据错误的物理地址,并触发警报,使得用户在获知该信息后,对失效类型为硬失效的单比特数据错误的物理地址对应的内存进行更换,避免硬失效的单比特数据错误累积,造成系统挂死,防止内存问题在单板集中复位或者升级时大量爆发。步骤204-212是如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复的过程。需要说明的是,本发明实施例的执行主体还可以是终端设备中的内存控制器。本发明实施例提供的数据错误修复方法,通过判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复采用本发明实施例提供的技术方案,可以有效区分内存的失效类型,并根据失效类型进行修复,避免了数据错误累积造成的系统挂死或无法启动等情况,保证了业务的正常进行。图3是本发明实施例中提供的一种数据错误修复装置结构示意图,参见图3,该装置包括:判断模块301,用于判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;确定模块302,用于如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。所述确定模块302用于如果所述内存中存储的发生数据错误的物理地址中存在相同的物理地址,确定所述相同的物理地址对应的数据错误的失效类型为硬失效。所述确定模块302包括:巡检单元,用于如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,进行内存巡检;判断单元,用于在结束巡检之后,判断所述内存中的数据错误是否已被修复;确定单元,用于如果所述数据错误未被修复,确定所述数据错误的失效类型为硬失效;所述确定单元,用于如果所述数据错误已被修复,确定所述数据错误的失效类型为软失效。所述巡检单元包括:巡检地址转换子单元,用于如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,将所述预设计数器中的物理地址转换成巡检地址;巡检子单元,用于根据所述巡检地址对应的所述内存中的数据进行巡检。所述装置还包括:硬失效物理地址获取模块303,用于当确定所述内存的失效类型为硬失效时,获取所述失效类型为硬失效的数据错误的物理地址;触发模块304,用于触发警报,以便提示用户更换所述失效类型为硬失效的数据错误的物理地址对应的内存。所述装置还包括:数据错误物理地址获取模块305,用于当内存中发生数据错误时,获取发生数据错误的物理地址;存储模块306,用于将所述发生数据错误的物理地址存储至内存中;回写模块307,用于对所述发生数据错误的物理地址进行数据回写。本发明实施例提供的数据错误修复装置,通过判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。采用本发明实施例提供的技术方案,可以有效区分内存的失效类型,并根据失效类型进行修复,避免了数据错误累积造成的系统挂死或无法启动等情况,保证了业务的正常进行。需要说明的是:上述实施例提供的数据错误修复装置在数据错误修复时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据错误修复装置与数据错误修复方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。图4是本发明实施例中提供的一种数据错误修复设备结构示意图。参见图4,该数据错误修复设备包括:处理器401和内存402,处理器401,用于判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存402发生数据错误进行计数;处理器401,用于如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存402的失效类型,以便后续进行相应地修复。内存402,用于存储数据以及发生数据错误的物理地址。处理器401,用于如果所述内存402中存储的发生数据错误的物理地址中存在相同的物理地址,确定所述相同的物理地址对应的数据错误的失效类型为硬失效。处理器401,用于如果所述内存402中存储的发生数据错误的物理地址中不存在相同的物理地址,进行内存巡检;处理器401,用于在结束巡检之后,判断所述内存402中的数据错误是否已被修复;处理器401,用于如果所述数据错误未被修复,确定所述数据错误的失效类型为硬失效;处理器401,用于如果所述数据错误已被修复,确定所述数据错误的失效类型为软失效。处理器401,用于如果所述内存402中存储的发生数据错误的物理地址中不存在相同的物理地址,将所述预设计数器中的物理地址转换成巡检地址;处理器401,用于根据所述巡检地址对应的所述内存402中的数据进行巡检。处理器401,用于当确定所述内存402的失效类型为硬失效时,获取所述失效类型为硬失效的数据错误的物理地址;处理器401,用于触发警报,以便提示用户更换所述失效类型为硬失效的数据错误的物理地址对应的内存402。处理器401,用于当内存402中发生数据错误时,获取发生数据错误的物理地址;处理器401,用于将所述发生数据错误的物理地址存储至内存402中,并对所述发生数据错误的物理地址进行数据回写。本发明实施例提供的数据错误修复设备,通过判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。采用本发明实施例提供的技术方案,可以有效区分内存的失效类型,并根据失效类型进行修复,避免了数据错误累积造成的系统挂死或无法启动等情况,保证了业务的正常进行。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据错误修复方法,其特征在于,所述方法包括: 判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数; 如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。
2.根据权利要求1所述的方法,其特征在于,如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复,包括: 如果所述内存中存储的发生数据错误的物理地址中存在相同的物理地址,确定所述相同的物理地址对应的数据错误的失效类型为硬失效。
3.根据权利要求1所述的方法,其特征在于,如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复,包括: 如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,进行内存巡检; 在结束巡检之后,判断所述内存中的数据错误是否已被修复; 如果所述数据错误未被修复,确定所述数据错误的失效类型为硬失效; 如果所述数据错误已被修复,确定所述数据错误的失效类型为软失效。
4.根据权利要 求3所述的方法,其特征在于,如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,进行内存巡检,包括: 如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,将所述预设计数器中的物理地址转换成巡检地址; 根据所述巡检地址对应的所述内存中的数据进行巡检。
5.根据权利要求1所述的方法,其特征在于,如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复之后,所述方法还包括: 当确定所述内存的失效类型为硬失效时,获取所述失效类型为硬失效的数据错误的物理地址; 触发警报,以便提示用户更换所述失效类型为硬失效的数据错误的物理地址对应的内存。
6.根据权利要求1所述的方法,其特征在于,判断内存中预设计数器是否溢出之前,所述方法还包括: 当内存中发生数据错误时,获取发生数据错误的物理地址; 将所述发生数据错误的物理地址存储至内存中,并对所述发生数据错误的物理地址进行数据回写。
7.一种数据错误修复装置,其特征在于,所述装置包括: 判断模块,用于判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数; 确定模块,用于如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。
8.根据权利要求7所述的装置,其特征在于,所述确定模块用于如果所述内存中存储的发生数据错误的物理地址中存在相同的物理地址,确定所述相同的物理地址对应的数据错误的失效类型为硬失效。
9.根据权利要求7所述的装置,其特征在于,所述确定模块包括: 巡检单元,用于如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,进行内存巡检; 判断单元,用于在结束巡检之后,判断所述内存中的数据错误是否已被修复; 确定单元,用于如果所述数据错误未被修复,确定所述数据错误的失效类型为硬失效; 所述确定单元,用于如果所述数据错误已被修复,确定所述数据错误的失效类型为软失效。
10.根据权利要求9所述的装置,其特征在于,所述巡检单元包括: 巡检地址转换子单元,用于如果所述内存中存储的发生数据错误的物理地址中不存在相同的物理地址,将所述预设计数器中的物理地址转换成巡检地址; 巡检子单元,用于根据所述巡检地址对应的所述内存中的数据进行巡检。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括: 硬失效物理地址获取 模块,用于当确定所述内存的失效类型为硬失效时,获取所述失效类型为硬失效的数据错误的物理地址; 触发模块,用于触发警报,以便提示用户更换所述失效类型为硬失效的数据错误的物理地址对应的内存。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括: 数据错误物理地址获取模块,用于当内存中发生数据错误时,获取发生数据错误的物理地址; 存储模块,用于将所述发生数据错误的物理地址存储至内存中; 回写模块,用于对所述发生数据错误的物理地址进行数据回写。
13.一种数据错误修复设备,其特征在于,所述设备包括: 内存,用于存储数据以及发生数据错误的物理地址; 处理器,用于判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数; 所述处理器,还用于如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。
全文摘要
本发明公开了一种数据错误修复方法、装置和设备,属于终端设备领域。所述方法包括判断内存中预设计数器是否溢出,所述预设计数器用于对所述内存发生数据错误进行计数;如果所述预设计数器溢出,根据所述内存中存储的发生数据错误的物理地址,确定所述内存的失效类型,以便后续进行相应地修复。本发明通过根据所述预设存储空间中存储的物理地址有效区分内存的失效类型,并根据失效类型进行修复,避免了数据错误累积造成的系统挂死或无法启动等情况,保证了业务的正常进行。
文档编号G06F11/14GK103218275SQ20131010531
公开日2013年7月24日 申请日期2013年3月28日 优先权日2013年3月28日
发明者傅汝丹 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1