CN103631721A - 一种隔离内存中坏块的方法及系统 - Google Patents

一种隔离内存中坏块的方法及系统 Download PDF

Info

Publication number
CN103631721A
CN103631721A CN201210302861.6A CN201210302861A CN103631721A CN 103631721 A CN103631721 A CN 103631721A CN 201210302861 A CN201210302861 A CN 201210302861A CN 103631721 A CN103631721 A CN 103631721A
Authority
CN
China
Prior art keywords
data
physical address
internal memory
mistake
unit
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
Application number
CN201210302861.6A
Other languages
English (en)
Inventor
张洪岽
李小华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210302861.6A priority Critical patent/CN103631721A/zh
Publication of CN103631721A publication Critical patent/CN103631721A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开一种隔离内存中坏块的方法及系统。所述方法应用于具有内存和处理器的电子设备,所述处理器通过逻辑地址对所述内存中的物理地址进行数据的读写操作,所述方法包括:当所述内存中的数据发生错误时,获取错误物理地址,所述错误物理地址为发生错误的数据在所述内存中的物理地址;确定与所述错误物理地址相对应的错误逻辑地址;在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。采用本发明的方法或系统,即使内存中的物理地址出现永久性损坏,存在坏块,依然可以避免电子设备的操作系统复位,当前运行的业务中断,或电子设备的性能下降等问题。

Description

一种隔离内存中坏块的方法及系统
技术领域
本发明涉及数据安全领域,特别是涉及一种隔离内存中坏块的方法及系统。
背景技术
内存是计算机中重要的部件之一,其主要作用是暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。由于计算机中所有程序的运行都是在内存中进行的,因此,一旦内存中存储的数据发生错误,则会直接导致程序运行失败甚至引起操作系统的崩溃。
现有技术中,有一种检查和纠正内存中的错误数据的技术,称为ECC技术。ECC是“Error Correcting Code”的简写,中文名称是“错误检查和纠正”。ECC技术的主要原理是:向内存中写入数据时,采用一定的算法生成ECC代码并存储;从内存中向外提供该数据时,采用相同的算法计算该数据的ECC代码,如果计算得到的ECC代码与之前存储的ECC代码相同,则表明该数据在读写过程中没有出现错误,否则,意味着数据发生错误。当数据中的某一数据位的数据发生错误时,采用ECC技术还可以纠正该数据位的数据。
但是,ECC技术只能纠正一位发生错误的数据,当多个数据位的数据发生错误时,ECC技术就无法纠正发生错误的数据位。现有技术中,当多个数据位的数据发生错误时,通常会导致操作系统复位或重启,同时也会导致当前正在运行的业务中断。
而发明人经过研究发现,现有技术中,多个数据位的数据发生错误的情况通常是由于内存中存在坏块导致的。当内存中存在坏块时,内存将频繁出现多个数据位的数据发生错误的情况,进而导致操作系统多次复位或重启,严重影响相关设备的性能。
发明内容
本发明的目的是提供一种隔离内存中坏块的方法及系统,能够对内存中存在的坏块进行隔离,避免使用内存中的坏块进行数据的存储,即使内存中存在坏块,也可以尽量避免该坏块的存在导致的频繁出现多个数据位的数据发生错误的情况。
为实现上述目的,本发明提供了如下方案:
根据本发明的第一方面的第一种可能的实现方式,本发明提供一种隔离内存中坏块的方法,所述方法应用于具有内存和处理器的电子设备,所述处理器通过逻辑地址对所述内存中的物理地址进行数据的读写操作,所述方法包括:
当所述内存中的数据发生错误时,获取错误物理地址,所述错误物理地址为发生错误的数据在所述内存中的物理地址;
确定与所述错误物理地址相对应的错误逻辑地址;
在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
结合第一方面的第二种可能的实现方式,将所述逻辑地址对应的物理地址修改为所述内存中预留的未做映射的预留物理地址之前,还包括:
累计所述错误物理地址存储的数据发生错误的次数;
判断所述次数是否大于或等于预设数值;
如果是,则执行修改所述逻辑地址对应的物理地址的步骤;否则,保持所述逻辑地址对应的物理地址。
结合第一方面的第三种可能的实现方式,还包括:
实时将写入所述内存中的数据备份至所述另外的内存;
从备份的数据中读取与所述发生错误的数据相对应的数据;
将所述相对应的数据写入修改后的所述逻辑地址对应的物理地址。
结合第一方面的第四种可能的实现方式,还包括:
采用错误检查和纠正技术纠正所述发生错误的数据;
将纠正后的所述发生错误的数据写入修改后的所述逻辑地址对应的物理地址。
结合第一方面的四种可能的实现方式中的任意一种,所述获取错误物理地址,包括:
检测所述内存中的数据是否发生内存访问错误;
当所述内存中的数据发生内存访问错误时,获取发生内存访问错误的数据在所述内存中的错误物理地址。
根据本发明的第二方面的第一种可能的实现方式,本发明提供一种隔离内存中坏块的系统,所述系统应用于具有内存和处理器的电子设备,所述处理器通过逻辑地址对所述内存中的物理地址进行数据的读写操作,所述系统包括:
错误物理地址获取单元,用于当所述内存中的数据发生错误时,获取错误物理地址,将所述错误物理地址发送至逻辑地址确定单元,所述错误物理地址为发生错误的数据在所述内存中的物理地址;
逻辑地址确定单元,用于接收所述错误物理地址获取单元发送的所述错误物理地址,确定与所述错误物理地址相对应的逻辑地址,将所述逻辑地址发送至映射关系修改单元;
映射关系修改单元,用于接收所述逻辑地址确定单元发送的所述逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
结合第二方面的第二种可能的实现方式,还包括:
出错次数累计单元,用于累计所述错误物理地址存储的数据发生错误的次数,将所述次数发送至出错次数判断单元;
出错次数判断单元,用于接收所述出错次数累计单元发送的所述次数,判断所述次数是否大于或等于预设数值,将判断结果发送至映射关系修改控制单元;
映射关系修改控制单元,用于接收所述出错次数判断单元发送的判断结果,当所述出错次数判断单元的判断结果为是时,控制所述映射关系修改单元执行修改所述逻辑地址对应的物理地址的步骤;
映射关系保持单元,用于接收所述出错次数判断单元发送的判断结果,当所述出错次数判断单元的判断结果为否时,保持所述逻辑地址对应的物理地址。
结合第二方面的第三种可能的实现方式,所述电子设备具有另外的内存,所述方法还包括:
数据备份单元,用于实时将写入所述内存中的数据备份至所述另外的内存;
备份数据读取单元,用于从备份的数据中读取与所述发生错误的数据相对应的备份数据,将与所述发生错误的数据相对应的备份数据发送至备份数据写入单元;
备份数据写入单元,用于接收所述备份数据读取单元发送的与所述发生错误的数据相对应的备份数据,将所述相对应的备份数据写入修改后的所述逻辑地址对应的物理地址。
结合第二方面的第四种可能的实现方式,还包括:
错误数据纠正单元,用于采用错误检查和纠正技术纠正所述发生错误的数据,将纠正后的所述发生错误的数据发送至纠正数据写入单元;
纠正数据写入单元,用于接收所述错误数据纠正单元发送的纠正后的所述发生错误的数据,将纠正后的所述发生错误的数据写入修改后的所述逻辑地址对应的物理地址。
结合第二方面的四种可能的实现方式中的任意一种,所述错误物理地址获取单元,包括:
内存访问错误检测子单元,用于检测所述内存中的数据是否发生内存访问错误,将检测结果发送至错误物理地址获取子单元;
错误物理地址获取子单元,用于接收所述内存访问错误检测子单元发送的所述检测结果,当所述内存中的数据发生内存访问错误时,获取发生内存访问错误的数据在所述内存中的错误物理地址。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开的隔离内存中坏块的方法或系统,通过获取出现错误的错误物理地址,确定与所述错误物理地址相对应的错误逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址,由于处理器是通过逻辑地址对所述内存中的物理地址进行数据的读写操作的,在将与内存中的坏块所在的物理地址对应的错误逻辑地址修改为与该内存中预留的未做映射的预留物理地址对应之后,对于处理器而言,内存中出现错误的物理地址就被隔离了。采用本发明的方法或系统,即使内存中的物理地址出现永久性损坏,存在坏块,依然可以避免电子设备的操作系统复位,当前运行的业务中断,或电子设备的性能下降等问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的隔离内存中坏块的方法实施例1的流程图;
图2为本发明的隔离内存中坏块的方法实施例2的流程图;
图3为本发明的隔离内存中坏块的方法实施例3的流程图;
图4为本发明的隔离内存中坏块的方法实施例4的流程图;
图5为本发明的隔离内存中坏块的系统实施例1的结构图;
图6为本发明的隔离内存中坏块的系统实施例2的结构图;
图7为本发明的隔离内存中坏块的系统实施例3的结构图;
图8为本发明的隔离内存中坏块的系统实施例4的结构图;
图9为本发明的计算节点的系统实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的隔离内存中坏块的方法应用于具有内存和处理器的电子设备,所述处理器通过逻辑地址对所述内存中的物理地址进行数据的读写操作。
图1为本发明的隔离内存中坏块的方法实施例1的流程图。如图1所示,该方法包括:
步骤101:当所述内存中的数据发生错误时,获取错误物理地址,所述错误物理地址为发生错误的数据在所述内存中的物理地址;
具体的,可以定期或实时检测所述内存中的数据是否发生硬件错误,例如ECC错误。当所述内存中的数据发生ECC错误时,获取发生ECC错误的数据在所述内存中的错误物理地址。
对于实时检测模式,当系统执行内存读写操作时会接收到操作失败的结果,此时根据访问的逻辑地址可以查找到对应的物理地址;
对于定期检测模式,则可以从内存控制器中读取到错误记录信息,从错误信息中可以获取到错误物理地址。
步骤102:确定与所述错误物理地址相对应的错误逻辑地址;
所述错误物理地址属于所述内存的物理地址。通常所述内存的物理地址与所述逻辑地址具有一一对应的映射关系。上述映射关系存储在一张数据表中,通过查询该数据表,可以确定与所述错误物理地址相对应的错误逻辑地址。需要说明的是,本步骤中错误逻辑地址只是一个名词,用于表示与所述错误物理地址相对应的逻辑地址,并不表示逻辑地址发生错误。
步骤103:在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
本实施例中,在内存中预先留有未做映射的物理地址,称为预留物理地址。例如内存中的物理地址为1-100,现有技术中,会将这100个物理地址分别与逻辑地址做映射。但是本实施例中,可以只将1-90这90个物理地址与逻辑地址做映射,而对91-100这10个物理地址不做映射,保留起来。假设物理地址1对应的逻辑地址为101,当物理地址1出现错误时,就可以将逻辑地址101与91-100中的任意一个未做映射的物理地址进行映射。这样,在处理器运行程序的过程中,依然可以对逻辑地址101进行读写操作。
综上所述,本实施例中,通过获取出现错误的错误物理地址,确定与所述错误物理地址相对应的错误逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址,由于处理器是通过逻辑地址对所述内存中的物理地址进行数据的读写操作的,在将与内存中的坏块所在的物理地址对应的错误逻辑地址修改为与该内存中预留的未做映射的预留物理地址对应之后,对于处理器而言内存中出现错误的物理地址就被隔离了。采用本发明的方法或系统,即使内存中的物理地址出现永久性损坏,存在坏块,依然可以避免电子设备的操作系统复位,当前运行的业务中断,或电子设备的性能下降等问题。
实际应用中,并不是所有数据错误都是内存中的坏块导致的。通常,可以将由内存中的坏块导致的数据错误称为硬失效,将其他原因导致的数据错误称为软失效。
硬失效一旦发生,则以后只要再次在发生过数据错误的内存区域进行数据读写,还会再次发生数据错误。因此,对于硬失效,通常只有一种解决思路。即对发生故障的内存中的坏块进行更换。而本申请的解决思路是将发生故障的内存中的坏块进行隔离,不再使用,进而避免使用相同的内存区域导致再次发生数据错误,从而实现故障内存可以继续使用,且系统业务尽可能不中断。
软失效与硬失效不同。导致软失效的原因有很多,比如较强的电磁干扰,就可以导致内存中的某些区域产生临时性的数据错误。由于发生软失效的内存区域本身并没有发生硬件故障,所以,一旦外界的干扰因素消失,发生过软失效的内存区域依然可以正常工作,不会多次发生数据错误。
为了能够区分发生数据错误的内存区域是软失效还是硬失效,进而对发生软失效的内存区域继续使用,本发明还提供了另一个实施例。
图2为本发明的隔离内存中坏块的方法实施例2的流程图。如图2所示,该方法包括:
步骤201:获取错误物理地址;
步骤202:确定与所述错误物理地址相对应的逻辑地址;
步骤203:累计所述错误物理地址存储的数据发生错误的次数;;
例如第一次出错时,将所述错误物理地址的出错次数记为1,第二次出错时,将所述错误物理地址的出错次数记为2,依此类推。
步骤204:判断所述次数是否大于或等于预设数值;如果是,则执行步骤205;否则,执行步骤206;
所述预设数值可以根据实际需要进行设定。例如设置为3,则当所述错误物理地址的出错次数累计达到3次时,认为所述错误物理地址为硬失效,执行修改所述逻辑地址对应的物理地址的步骤;当所述错误物理地址的出错次数累计小于3次时,认为所述错误物理地址为软失效,保持所述逻辑地址对应的物理地址。需要说明的是,本步骤中的出错次数为可修复的出错次数。可修复的错误是指,可以采用ECC等技术对出错数据纠错的错误。
步骤205:在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址;
还可以将步骤201中获取的错误物理地址标记为硬失效模式。
步骤206:保持所述逻辑地址对应的物理地址。
本实施例中,通过对错误物理地址的出错次数进行累计,当错误物理地址的出错次数累计达到预设数值时,才执行修改所述逻辑地址对应的物理地址的步骤,能够区分发生数据错误的内存区域是软失效还是硬失效,进而对发生软失效的内存区域继续使用,充分利用内存资源。
此外,需要说明的是,本实施例中的步骤203与步骤204也可以在步骤202之前执行,这样可以减少步骤202的执行次数,提高本实施例的隔离内存中坏块的方法的运行效率。
通常,现有技术中,当发生错误的数据在所述内存中的物理地址为多位时,采用ECC技术也无法将多位发生错误的数据纠正成正确的数据。此时的电子设备的操作系统只能通过重启或复位的方式来达到正常运行的状态。
当发生错误的数据在所述内存中的物理地址为多位时,为了能够将发生错误的数据恢复成正确的数据,令操作系统可以继续运行当前的业务,而不必重启或复位,本发明还提供了另一个实施例。
图3为本发明的隔离内存中坏块的方法实施例3的流程图。如图3所示,该方法包括:
步骤301:实时备份写入所述内存中的数据;
可以将写入所述内存中的数据备份到其他内存中。例如,许多商用服务器由于需要存储的数据很多,并且需要保证系统具有较高的稳定性,所以这些服务器会采用具有多个存储控制器的存储阵列系统。每个存储控制器均具有内存。不同的存储控制器之间可以通过对板镜像芯片共享内存中的数据。
假设本实施例的方法应用于具有两个存储控制器的存储阵列系统,两个存储控制器分别为第一存储控制器和第二存储控制器。第一存储控制器具有第一内存,第二存储控制器具有第二内存。则本实施例的步骤301可以将写入第一存储控制器的第一内存备份至第二存储控制器的第二内存。
步骤302:获取错误物理地址,所述错误物理地址为发生错误的数据在所述内存中的物理地址;
步骤303:确定与所述错误物理地址相对应的逻辑地址;
步骤304:将所述逻辑地址对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
假设错误物理地址为0x8000,逻辑地址为A,预留物理地址为0x9000。则本步骤中,就可以将逻辑地址A与预留物理地址0x9000做映射,将逻辑地址A对应的物理地址修改为0x9000。
步骤305:当发生错误的数据无法自动修复时,当发生错误的数据在所述内存中的物理地址为多位时,从备份的数据中读取与所述发生错误的数据相对应的数据;
通常一个数据,例如10110001,包含多个数据位(10110001包含8个数据位)。当数据中的一个数据位出现错误时,是可以采用一定算法自行修复的。当数据中的多个数据位出现错误时,是很难采用算法自行修复的,甚至无法自行修复。
按照步骤301中的假设,本步骤中可以通过对板镜像芯片读取第二内存中的备份数据。并且不用读取全部的备份数据,可以只读取发生错误的数据对应的备份数据。
步骤306:将所述相对应的数据写入修改后的所述逻辑地址对应的物理地址。
本步骤中,可以将从第二内存中读取的备份数据(在这里可以认为是正确的数据)写入修改后的所述逻辑地址对应的物理地址,例如0x9000。
本实施例中,通过将写入内存中的数据实时备份,当发生错误的数据在所述内存中的物理地址为多位时,读取备份数据,通过备份数据对发生错误的数据进行纠正,能够将发生错误的数据恢复成正确的数据,令操作系统可以继续运行当前的业务,而不必重启或复位。
需要说明的是,当发生错误的数据可以自行修复时,也可以采用实施例3的方法,对出错的数据进行纠正。当然,当发生错误的数据可以自行修复时,采用ECC技术也可以完成对错误数据的纠正。
为了降低对出错的数据进行纠正所消耗的时间与硬件资源,本发明还提供了另一个实施例。
图4为本发明的隔离内存中坏块的方法实施例4的流程图。如图4所示,该方法包括:
步骤401:获取错误物理地址,所述错误物理地址为发生错误的数据在所述内存中的物理地址;
步骤402:确定与所述错误物理地址相对应的逻辑地址;
步骤403:将所述逻辑地址对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
步骤404:当发生错误的数据可以自行修复时,采用ECC技术纠正所述发生错误的数据;
ECC技术,是在数据原有的数据位的基础上增加额外的一个数据位,增加的数据位用于存储加密的代码。当数据被写入内存,相应的ECC代码与此同时也被保存下来。当重新读回刚才存储的数据时,保存下来的ECC代码就会和读数据时产生的ECC代码做比较。如果两个代码不相同,则会对两个ECC代码进行解码,以确定数据中的哪一位是不正确的。然后这一位错误数据会被抛弃,内存控制器则会释放出正确的数据。
步骤405:将纠正后的所述发生错误的数据写入修改后的所述逻辑地址对应的物理地址。
本实施例中,当发生错误的数据在所述内存中的物理地址为一位时,采用ECC技术纠正所述发生错误的数据,一方面可以降低对出错的数据进行纠正所消耗的时间与硬件资源,另一方面,可以对不具有多个存储控制器或者无法对内存中的数据进行备份的系统中出现的错误数据进行纠错。
本发明还公开了一种隔离内存中坏块的系统。所述系统应用于具有内存和处理器的电子设备,所述处理器通过逻辑地址对所述内存中的物理地址进行数据的读写操作。
图5为本发明的隔离内存中坏块的系统实施例1的结构图。如图5所示,该系统可以包括:
错误物理地址获取单元501,用于当所述内存中的数据发生错误时,获取错误物理地址,将所述错误物理地址发送至逻辑地址确定单元502,所述错误物理地址为发生错误的数据在所述内存中的物理地址;逻辑地址确定单元502,用于接收所述错误物理地址获取单元501发送的所述错误物理地址,确定与所述错误物理地址相对应的逻辑地址,将所述逻辑地址发送至映射关系修改单元503;
映射关系修改单元503,用于接收所述逻辑地址确定单元502发送的所述逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
综上所述,本实施例中,通过获取出现错误的错误物理地址,确定与所述错误物理地址相对应的错误逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址,由于处理器是通过逻辑地址对所述内存中的物理地址进行数据的读写操作的,在将与内存中的坏块所在的物理地址对应的错误逻辑地址修改为与该内存中预留的未做映射的预留物理地址对应之后,对于处理器而言内存中出现错误的物理地址就被隔离了。采用本发明的方法或系统,即使内存中的物理地址出现永久性损坏,存在坏块,依然可以避免电子设备的操作系统复位,当前运行的业务中断,或电子设备的性能下降等问题。
图6为本发明的隔离内存中坏块的系统实施例2的结构图。如图6所示,该系统可以包括:
错误物理地址获取单元501,用于当所述内存中的数据发生错误时,获取错误物理地址,将所述错误物理地址发送至逻辑地址确定单元502,所述错误物理地址为发生错误的数据在所述内存中的物理地址;逻辑地址确定单元502,用于接收所述错误物理地址获取单元501发送的所述错误物理地址,确定与所述错误物理地址相对应的逻辑地址,将所述逻辑地址发送至映射关系修改单元;
出错次数累计单元601,用于累计所述错误物理地址存储的数据发生错误的次数,将所述次数发送至出错次数判断单元602;
出错次数判断单元602,用于接收所述出错次数累计单元601发送的所述次数,判断所述次数是否大于或等于预设数值,将判断结果发送至映射关系修改控制单元603;
映射关系修改控制单元603,用于接收所述出错次数判断单元602发送的判断结果,当所述出错次数判断单元602的判断结果为是时,控制所述映射关系修改单元503执行修改所述逻辑地址对应的物理地址的步骤;映射关系保持单元604,用于接收所述出错次数判断单元602发送的判断结果,当所述出错次数判断单元602的判断结果为否时,保持所述逻辑地址对应的物理地址。
映射关系修改单元503,用于接收所述逻辑地址确定单元502发送的所述逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
本实施例中,通过对错误物理地址的出错次数进行累计,当错误物理地址的出错次数累计达到预设数值时,才执行修改所述逻辑地址对应的物理地址的步骤,能够区分发生数据错误的内存区域是软失效还是硬失效,进而对发生软失效的内存区域继续使用,充分利用内存资源。
图7为本发明的隔离内存中坏块的系统实施例3的结构图。如图7所示,该系统可以包括:
数据备份单元701,用于实时将写入所述内存中的数据备份至所述另外的内存;
错误物理地址获取单元501,用于当所述内存中的数据发生错误时,获取错误物理地址,将所述错误物理地址发送至逻辑地址确定单元502,所述错误物理地址为发生错误的数据在所述内存中的物理地址;逻辑地址确定单元502,用于接收所述错误物理地址获取单元501发送的所述错误物理地址,确定与所述错误物理地址相对应的逻辑地址,将所述逻辑地址发送至映射关系修改单元503;
映射关系修改单元503,用于接收所述逻辑地址确定单元502发送的所述逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
备份数据读取单元702,用于从备份的数据中读取与所述发生错误的数据相对应的备份数据,将与所述发生错误的数据相对应的备份数据发送至备份数据写入单元703;
备份数据写入单元703,用于接收所述备份数据读取单元702发送的与所述发生错误的数据相对应的备份数据,将所述相对应的备份数据写入修改后的所述逻辑地址对应的物理地址。
本实施例中,通过将写入内存中的数据实时备份,当发生错误的数据在所述内存中的物理地址为多位时,读取备份数据,通过备份数据对发生错误的数据进行纠正,能够将发生错误的数据恢复成正确的数据,令操作系统可以继续运行当前的业务,而不必重启或复位。
图8为本发明的隔离内存中坏块的系统实施例4的结构图。如图8所示,该系统可以包括:
错误物理地址获取单元501,用于当所述内存中的数据发生错误时,获取错误物理地址,将所述错误物理地址发送至逻辑地址确定单元502,所述错误物理地址为发生错误的数据在所述内存中的物理地址;
逻辑地址确定单元502,用于接收所述错误物理地址获取单元501发送的所述错误物理地址,确定与所述错误物理地址相对应的逻辑地址,将所述逻辑地址发送至映射关系修改单元503;
映射关系修改单元503,用于接收所述逻辑地址确定单元502发送的所述逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
错误数据纠正单元801,用于采用ECC技术纠正所述发生错误的数据,将纠正后的所述发生错误的数据发送至纠正数据写入单元802;
纠正数据写入单元802,用于接收所述错误数据纠正单元801发送的纠正后的所述发生错误的数据,将纠正后的所述发生错误的数据写入修改后的所述逻辑地址对应的物理地址。
本实施例中,当发生错误的数据在所述内存中的物理地址为一位时,采用ECC技术纠正所述发生错误的数据,一方面可以降低对出错的数据进行纠正所消耗的时间与硬件资源,另一方面,可以对不具有多个存储控制器或者无法对内存中的数据进行备份的系统中出现的错误数据进行纠错。
需要说明的是,本发明的隔离内存中坏块的系统的各个实施例中,所述错误物理地址获取单元501,均可以包括:
内存访问错误检测子单元,用于检测所述内存中的数据是否发生内存访问错误,将检测结果发送至错误物理地址获取子单元;
错误物理地址获取子单元,用于接收所述内存访问错误检测子单元发送的所述检测结果,当所述内存中的数据发生内存访问错误时,获取发生内存访问错误的数据在所述内存中的错误物理地址。
另外,本发明实施例还提供了一种计算节点700,计算节点可能是包含计算能力的主机服务器,或者是个人计算机PC,或者是可携带的便携式计算机或终端等等,本发明具体实施例并不对计算节点700的具体实现做限定。计算节点700包括:
处理器(processor)710,通信接口(Communications Interface)720,存储器(memory)730,总线740。
处理器710,通信接口720,存储器730通过总线740完成相互间的通信。
处理器710,用于执行程序732。
具体地,程序732可以包括程序代码,所述程序代码包括计算机操作指令。
处理器710可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器730,用于存放程序732。存储器730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序732具体可以包括:
错误物理地址获取单元501,用于当所述内存中的数据发生错误时,获取错误物理地址,将所述错误物理地址发送至逻辑地址确定单元502,所述错误物理地址为发生错误的数据在所述内存中的物理地址;逻辑地址确定单元502,用于接收所述错误物理地址获取单元501发送的所述错误物理地址,确定与所述错误物理地址相对应的逻辑地址,将所述逻辑地址发送至映射关系修改单元;
出错次数累计单元601,用于累计所述错误物理地址存储的数据发生错误的次数,将所述次数发送至出错次数判断单元602;
出错次数判断单元602,用于接收所述出错次数累计单元601发送的所述次数,判断所述次数是否大于或等于预设数值,将判断结果发送至映射关系修改控制单元603;
映射关系修改控制单元603,用于接收所述出错次数判断单元602发送的判断结果,当所述出错次数判断单元602的判断结果为是时,控制所述映射关系修改单元503执行修改所述逻辑地址对应的物理地址的步骤;映射关系保持单元604,用于接收所述出错次数判断单元602发送的判断结果,当所述出错次数判断单元602的判断结果为否时,保持所述逻辑地址对应的物理地址。
映射关系修改单元503,用于接收所述逻辑地址确定单元502发送的所述逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
程序732中各单元的具体实现参见图5-图8所示实施例中的相应单元,在此不赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种隔离内存中坏块的方法,其特征在于,所述方法应用于具有内存和处理器的电子设备,所述处理器通过逻辑地址对所述内存中的物理地址进行数据的读写操作,所述方法包括:
当所述内存中的数据发生错误时,获取错误物理地址,所述错误物理地址为发生错误的数据在所述内存中的物理地址;
确定与所述错误物理地址相对应的错误逻辑地址;
在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
2.根据权利要求1所述的方法,其特征在于,将所述逻辑地址对应的物理地址修改为所述内存中预留的未做映射的预留物理地址之前,还包括:
累计所述错误物理地址存储的数据发生错误的次数;
判断所述次数是否大于或等于预设数值;
如果是,则执行修改所述逻辑地址对应的物理地址的步骤;否则,保持所述逻辑地址对应的物理地址。
3.根据权利要求1所述的方法,其特征在于,所述电子设备具有另外的内存,所述方法还包括:
实时将写入所述内存中的数据备份至所述另外的内存;
从备份的数据中读取与所述发生错误的数据相对应的数据;
将所述相对应的数据写入修改后的所述逻辑地址对应的物理地址。
4.根据权利要求1所述的方法,其特征在于,还包括:
采用错误检查和纠正技术纠正所述发生错误的数据;
将纠正后的所述发生错误的数据写入修改后的所述逻辑地址对应的物理地址。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述获取错误物理地址,包括:
检测所述内存中的数据是否发生内存访问错误;
当所述内存中的数据发生内存访问错误时,获取发生内存访问错误的数据在所述内存中的错误物理地址。
6.一种隔离内存中坏块的系统,其特征在于,所述系统应用于具有内存和处理器的电子设备,所述处理器通过逻辑地址对所述内存中的物理地址进行数据的读写操作,所述系统包括:
错误物理地址获取单元,用于当所述内存中的数据发生错误时,获取错误物理地址,将所述错误物理地址发送至逻辑地址确定单元,所述错误物理地址为发生错误的数据在所述内存中的物理地址;
逻辑地址确定单元,用于接收所述错误物理地址获取单元发送的所述错误物理地址,确定与所述错误物理地址相对应的逻辑地址,将所述逻辑地址发送至映射关系修改单元;
映射关系修改单元,用于接收所述逻辑地址确定单元发送的所述逻辑地址,在逻辑地址与物理地址的映射表中,将所述错误逻辑地址在所述映射表中对应的物理地址修改为所述内存中预留的未做映射的预留物理地址。
7.根据权利要求6所述的系统,其特征在于,还包括:
出错次数累计单元,用于累计所述错误物理地址存储的数据发生错误的次数,将所述次数发送至出错次数判断单元;
出错次数判断单元,用于接收所述出错次数累计单元发送的所述次数,判断所述次数是否大于或等于预设数值,将判断结果发送至映射关系修改控制单元;
映射关系修改控制单元,用于接收所述出错次数判断单元发送的判断结果,当所述出错次数判断单元的判断结果为是时,控制所述映射关系修改单元执行修改所述逻辑地址对应的物理地址的步骤;
映射关系保持单元,用于接收所述出错次数判断单元发送的判断结果,当所述出错次数判断单元的判断结果为否时,保持所述逻辑地址对应的物理地址。
8.根据权利要求6所述的系统,其特征在于,所述电子设备具有另外的内存,所述系统还包括:
数据备份单元,用于实时将写入所述内存中的数据备份至所述另外的内存;
备份数据读取单元,用于从备份的数据中读取与所述发生错误的数据相对应的备份数据,将与所述发生错误的数据相对应的备份数据发送至备份数据写入单元;
备份数据写入单元,用于接收所述备份数据读取单元发送的与所述发生错误的数据相对应的备份数据,将所述相对应的备份数据写入修改后的所述逻辑地址对应的物理地址。
9.根据权利要求6所述的系统,其特征在于,还包括:
错误数据纠正单元,用于采用错误检查和纠正技术纠正所述发生错误的数据,将纠正后的所述发生错误的数据发送至纠正数据写入单元;
纠正数据写入单元,用于接收所述错误数据纠正单元发送的纠正后的所述发生错误的数据,将纠正后的所述发生错误的数据写入修改后的所述逻辑地址对应的物理地址。
10.根据权利要求6-9任一项所述的系统,其特征在于,所述错误物理地址获取单元,包括:
内存访问错误检测子单元,用于检测所述内存中的数据是否发生内存访问错误,将检测结果发送至错误物理地址获取子单元;
错误物理地址获取子单元,用于接收所述内存访问错误检测子单元发送的所述检测结果,当所述内存中的数据发生内存访问错误时,获取发生内存访问错误的数据在所述内存中的错误物理地址。
CN201210302861.6A 2012-08-23 2012-08-23 一种隔离内存中坏块的方法及系统 Pending CN103631721A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210302861.6A CN103631721A (zh) 2012-08-23 2012-08-23 一种隔离内存中坏块的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210302861.6A CN103631721A (zh) 2012-08-23 2012-08-23 一种隔离内存中坏块的方法及系统

Publications (1)

Publication Number Publication Date
CN103631721A true CN103631721A (zh) 2014-03-12

Family

ID=50212805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210302861.6A Pending CN103631721A (zh) 2012-08-23 2012-08-23 一种隔离内存中坏块的方法及系统

Country Status (1)

Country Link
CN (1) CN103631721A (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461759A (zh) * 2014-11-27 2015-03-25 杭州华为企业通信技术有限公司 一种内存多位错误的处理方法及装置
CN105376780A (zh) * 2015-11-24 2016-03-02 广东欧珀移动通信有限公司 网络通信功能异常的处理方法、调制解调器和移动终端
CN105808394A (zh) * 2014-12-31 2016-07-27 中兴通讯股份有限公司 一种服务器自愈的方法和装置
CN105893166A (zh) * 2016-04-29 2016-08-24 浪潮电子信息产业股份有限公司 一种处理内存错误的方法及装置
CN105976868A (zh) * 2016-05-05 2016-09-28 浪潮电子信息产业股份有限公司 一种通过故障隔离技术提高内存可靠性的方法
CN106133704A (zh) * 2015-01-19 2016-11-16 华为技术有限公司 内存故障隔离方法和装置
WO2017215377A1 (zh) * 2016-06-16 2017-12-21 中兴通讯股份有限公司 内存硬错误的处理方法及装置
CN108121603A (zh) * 2017-12-20 2018-06-05 安徽皖通邮电股份有限公司 一种嵌入式系统内存管理方法
CN108231134A (zh) * 2018-02-08 2018-06-29 芯颖科技有限公司 Ram良率补救方法及装置
CN108228398A (zh) * 2018-02-11 2018-06-29 维沃移动通信有限公司 一种异常处理方法及移动终端
CN108229214A (zh) * 2016-12-22 2018-06-29 北京兆易创新科技股份有限公司 一种提高数据安全性的方法和装置
CN108733510A (zh) * 2017-04-25 2018-11-02 慧荣科技股份有限公司 数据储存装置及映射表重建方法
CN109254862A (zh) * 2018-08-21 2019-01-22 奇酷互联网络科技(深圳)有限公司 自动修复ddr翻转的方法、移动终端和存储介质
CN110058955A (zh) * 2017-12-18 2019-07-26 钰创科技股份有限公司 具有错误纠正功能的内存和相关内存系统
CN111506460A (zh) * 2020-04-16 2020-08-07 Oppo广东移动通信有限公司 内存故障的处理方法、装置、移动终端及存储介质
CN114461436A (zh) * 2022-04-08 2022-05-10 苏州浪潮智能科技有限公司 一种内存故障处理方法、装置及计算机可读存储介质
CN117472291A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备
WO2024041093A1 (zh) * 2022-08-25 2024-02-29 超聚变数字技术有限公司 一种处理内存故障的方法及其相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1932778A (zh) * 2006-07-23 2007-03-21 海信集团有限公司 一种对nand flash存储器进行虚拟空间管理的方法
CN1937080A (zh) * 2006-10-19 2007-03-28 骆建军 一种nand flash存储器件
WO2008013431A1 (en) * 2006-07-28 2008-01-31 Mtekvision Co., Ltd. Bad block managing device and bad block managing method
CN101127233A (zh) * 2007-09-25 2008-02-20 Ut斯达康通讯有限公司 流媒体应用中的硬盘错误检测与容错方法
CN101593157A (zh) * 2008-05-27 2009-12-02 中兴通讯股份有限公司 非线性闪存的坏块管理方法及装置
CN101681281A (zh) * 2007-06-07 2010-03-24 美光科技公司 检测出现的坏块

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1932778A (zh) * 2006-07-23 2007-03-21 海信集团有限公司 一种对nand flash存储器进行虚拟空间管理的方法
WO2008013431A1 (en) * 2006-07-28 2008-01-31 Mtekvision Co., Ltd. Bad block managing device and bad block managing method
CN1937080A (zh) * 2006-10-19 2007-03-28 骆建军 一种nand flash存储器件
CN101681281A (zh) * 2007-06-07 2010-03-24 美光科技公司 检测出现的坏块
CN101127233A (zh) * 2007-09-25 2008-02-20 Ut斯达康通讯有限公司 流媒体应用中的硬盘错误检测与容错方法
CN101593157A (zh) * 2008-05-27 2009-12-02 中兴通讯股份有限公司 非线性闪存的坏块管理方法及装置

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461759A (zh) * 2014-11-27 2015-03-25 杭州华为企业通信技术有限公司 一种内存多位错误的处理方法及装置
CN104461759B (zh) * 2014-11-27 2018-05-11 杭州华为企业通信技术有限公司 一种内存多位错误的处理方法及装置
CN105808394B (zh) * 2014-12-31 2020-09-04 南京中兴新软件有限责任公司 一种服务器自愈的方法和装置
CN105808394A (zh) * 2014-12-31 2016-07-27 中兴通讯股份有限公司 一种服务器自愈的方法和装置
CN106133704A (zh) * 2015-01-19 2016-11-16 华为技术有限公司 内存故障隔离方法和装置
CN105376780B (zh) * 2015-11-24 2018-06-29 广东欧珀移动通信有限公司 网络通信功能异常的处理方法、调制解调器和移动终端
CN105376780A (zh) * 2015-11-24 2016-03-02 广东欧珀移动通信有限公司 网络通信功能异常的处理方法、调制解调器和移动终端
CN105893166A (zh) * 2016-04-29 2016-08-24 浪潮电子信息产业股份有限公司 一种处理内存错误的方法及装置
CN105976868A (zh) * 2016-05-05 2016-09-28 浪潮电子信息产业股份有限公司 一种通过故障隔离技术提高内存可靠性的方法
WO2017215377A1 (zh) * 2016-06-16 2017-12-21 中兴通讯股份有限公司 内存硬错误的处理方法及装置
CN108229214A (zh) * 2016-12-22 2018-06-29 北京兆易创新科技股份有限公司 一种提高数据安全性的方法和装置
US11249840B2 (en) 2017-04-25 2022-02-15 Silicon Motion, Inc. Data storage devices and methods for rebuilding a memory address mapping table
CN108733510B (zh) * 2017-04-25 2023-03-28 慧荣科技股份有限公司 数据储存装置及映射表重建方法
CN108733510A (zh) * 2017-04-25 2018-11-02 慧荣科技股份有限公司 数据储存装置及映射表重建方法
CN110058955A (zh) * 2017-12-18 2019-07-26 钰创科技股份有限公司 具有错误纠正功能的内存和相关内存系统
CN110058955B (zh) * 2017-12-18 2024-04-09 钰创科技股份有限公司 具有错误纠正功能的内存和相关内存系统
CN108121603B (zh) * 2017-12-20 2021-11-02 安徽皖通邮电股份有限公司 一种嵌入式系统内存管理方法
CN108121603A (zh) * 2017-12-20 2018-06-05 安徽皖通邮电股份有限公司 一种嵌入式系统内存管理方法
CN108231134A (zh) * 2018-02-08 2018-06-29 芯颖科技有限公司 Ram良率补救方法及装置
CN108231134B (zh) * 2018-02-08 2021-06-25 芯颖科技有限公司 Ram良率补救方法及装置
CN108228398A (zh) * 2018-02-11 2018-06-29 维沃移动通信有限公司 一种异常处理方法及移动终端
CN109254862A (zh) * 2018-08-21 2019-01-22 奇酷互联网络科技(深圳)有限公司 自动修复ddr翻转的方法、移动终端和存储介质
CN109254862B (zh) * 2018-08-21 2022-04-12 奇酷互联网络科技(深圳)有限公司 自动修复ddr翻转的方法、移动终端和存储介质
CN111506460B (zh) * 2020-04-16 2023-08-29 Oppo广东移动通信有限公司 内存故障的处理方法、装置、移动终端及存储介质
CN111506460A (zh) * 2020-04-16 2020-08-07 Oppo广东移动通信有限公司 内存故障的处理方法、装置、移动终端及存储介质
CN114461436A (zh) * 2022-04-08 2022-05-10 苏州浪潮智能科技有限公司 一种内存故障处理方法、装置及计算机可读存储介质
WO2023193396A1 (zh) * 2022-04-08 2023-10-12 苏州浪潮智能科技有限公司 一种内存故障处理方法、装置及计算机可读存储介质
WO2024041093A1 (zh) * 2022-08-25 2024-02-29 超聚变数字技术有限公司 一种处理内存故障的方法及其相关设备
CN117472291A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备
CN117472291B (zh) * 2023-12-27 2024-03-22 苏州元脑智能科技有限公司 数据块的校验方法和装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN103631721A (zh) 一种隔离内存中坏块的方法及系统
CN106201338B (zh) 数据存储方法及装置
US8417989B2 (en) Method and system for extra redundancy in a raid system
CN103019888B (zh) 备份方法与装置
CN108646982B (zh) 一种基于ubifs的数据自动修复方法及装置
CN102799533B (zh) 一种磁盘损坏扇区屏蔽方法及装置
CN103955430A (zh) 一种闪存存储设备中数据管理的方法及装置
US10387280B2 (en) Reporting defects in a flash memory back-up system
CN103077095B (zh) 内存数据的纠错方法及装置及计算机系统
CN103019880B (zh) 一种数据校验方法及存储设备、存储系统
CN102890645B (zh) 存储器储存装置、存储器控制器与数据写入方法
US10324794B2 (en) Method for storage management and storage device
CN110399247A (zh) 一种数据恢复方法、装置、设备及计算机可读存储介质
CN103218271B (zh) 一种数据纠错方法及装置
CN103593301B (zh) 坏块管理方法及系统
CN103106148B (zh) 区块管理方法、存储器控制器与存储器存储装置
CN102520223B (zh) 用于电能表的软件抗干扰方法
US20130151886A1 (en) Computing device and method for switching physical links of a sas expander of the computing device
CN103279402A (zh) 基于多层单元固态硬盘的数据恢复方法及固态硬盘
CN107894900A (zh) 一种mcu升级的方法及系统
CN111428280A (zh) SoC安全芯片密钥信息完整性存储及错误自修复方法
CN106708445A (zh) 链路选择方法及装置
CN104205097A (zh) 一种去重方法装置与系统
CN105575439A (zh) 一种存储单元失效纠错的方法及存储器
CN105354107A (zh) NOR Flash的数据传输方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140312