CN103092728A - 一种非易失性内存的磨损错误恢复方法和装置 - Google Patents

一种非易失性内存的磨损错误恢复方法和装置 Download PDF

Info

Publication number
CN103092728A
CN103092728A CN2013100241183A CN201310024118A CN103092728A CN 103092728 A CN103092728 A CN 103092728A CN 2013100241183 A CN2013100241183 A CN 2013100241183A CN 201310024118 A CN201310024118 A CN 201310024118A CN 103092728 A CN103092728 A CN 103092728A
Authority
CN
China
Prior art keywords
memory
tearing
wearing
memory block
archive
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
CN2013100241183A
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN2013100241183A priority Critical patent/CN103092728A/zh
Publication of CN103092728A publication Critical patent/CN103092728A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提出一种非易失性内存的磨损错误恢复方法,包括以下步骤:S1,将非易失性内存行划分为多个内存块;S2,检测多个内存块中发生磨损错误的内存块;S3,将发生磨损错误的内存块重映射到备份内存块中;以及S4,将发生磨损错误的内存块中的内存地址读写请求重定向到备份内存块中的备份内存地址。采用该方法能够提高非易失性内存的可靠性,延长其使用寿命。本发明同时还提出一种非易失性内存的磨损错误恢复装置。

Description

一种非易失性内存的磨损错误恢复方法和装置
技术领域
本发明涉及数据存储技术领域,特别涉及一种非易失性内存的磨损错误恢复方法和装置。
背景技术
在非易失存储介质发展的过程中,新兴的非易失性内存NVRAM(Non-Volatile Random Access Memory,非易失性随机访问存储器)正在逐步成为易失性内存的可替代产品。与DRAM(Dynamic Random AccessMemory,动态随机存取存储器)相比,非易失性内存例如PCRAM(Phase-Change Memory,相变存储内存),两者的访问速度相近,但在相同芯片面积上PCRAM可以提供更大的容量,扩展性更好,能耗低,且有数据非易失等特点。然而,大部分非易失性内存技术包括PCRAM技术在内,都存在磨损问题,非易失性内存的存储单元在写操作超过一定次数后,都会出现磨损错误,例如对于PCRAM的存储单元,其写次数上限为108—1010次。当PCRAM的写次数超过该阈值时,PCRAM的存储单元的值将固化在某一状态上,例如为0或1,造成该bit(binary digit,位)存储单元的数据不能写入,从而引起PCRAM存储单元的磨损错误,造成该单元数据不能继续写入。如此便降低了非易失内存的可靠性,缩短了其使用寿命。
发明内容
本发明的目的旨在至少解决上述的技术缺陷之一。为此,本发明的第一个目的在于提出一种非易失性内存的磨损错误恢复方法,采用该方法能够提高非易失性内存的可靠性,延长其使用寿命。本发明的第二个目的在于提出一种非易失性内存的磨损错误恢复装置。
为达到上述目的,本发明第一方面实施例提出一种非易失性内存的磨损错误恢复方法,包括以下步骤:S1,将非易失性内存行划分为多个内存块;S2,检测所述多个内存块中发生磨损错误的内存块;S3,将所述发生磨损错误的内存块重映射到备份内存块中;以及,S4,将所述发生磨损错误的内存块中的内存地址读写请求重定向到所述备份内存块中的备份内存地址。
根据本发明实施例的非易失性内存的磨损错误恢复方法,通过将发生磨损错误的内存块重映射到备份内存块中,并在进行读写请求时,将发生磨损错误的内存块的读写请求重定向到其映射地址,提高了非易失性内存的可靠性,延长了使用寿命。
较优地,所述步骤S2具体包括:在所述多个内存块中的一个内存块写入数据后,读取所述一个内存块中的数据,并将所述一个内存块中的数据与写入的数据进行比对;若所述一个内存块中的数据与所述写入的数据不相符,则判断所述一个内存块发生磨损错误。
进一步地,所述步骤S3具体包括:判断所述发生磨损错误的内存块所处的内存行是否为首次发生磨损错误;如果是,触发操作系统中断,所述操作系统重新分配备份非易失性内存行,并将所述备份内存行的地址指针写入到所述内存行的元数据位置;如果否,从所述发生磨损错误的内存块所处的内存行的元数据中读取已分配的所述备份内存行的映射地址指针。
另外,在所述步骤S3中,还包括:将所述备份内存块所处的备份内存行的地址指针以N重冗余形式写入所述发生磨损错误的内存块中,其中,N为正整数。
将地址指针以N重冗余形式写入内存块中,能够保证写入的地址指针被正确读取。
其中,所述备份内存地址为所述备份内存行的映射地址指针指向的映射地址。
为实现上述目的,本发明的第二方面实施例提出一种非易失性内存的磨损错误恢复装置,包括:划分模块,用于将非易失性内存行划分为多个内存块;检测模块,用于检测所述多个内存块中发生磨损错误的内存块;重映射模块,用于将所述发生磨损错误的内存块重映射到备份内存块中;以及,重定向模块,用于将所述发生磨损错误的内存块中的内存地址读写请求重定向到所述备份内存块中的备份内存地址。
根据本发明实施例的非易失性内存的磨损错误恢复装置,通过重映射模块将发生磨损错误的内存块重映射到备份内存块中,并在进行读写请求时,由重定向模块将发生磨损错误的内存块的读写请求重定向到其映射地址,提高了非易失性内存的可靠性,延长了使用寿命。
进一步地,所述检测模块还用于在所述多个内存块中的一个内存块写入数据后,读取所述一个内存块中的数据,并将所述一个内存块中的数据与写入的数据进行比对,以及在所述一个内存块中的数据与所述写入的数据不相符时判断所述一个内存块发生磨损错误。
进一步地,所述重映射模块还用于判断所述发生磨损错误的内存块所处的内存行是首次发生磨损错误时,触发操作系统中断,所述操作系统重新分配备份内存行,并将所述备份内存行的地址指针写入到所述内存行的元数据位置。另外,所述重映射模块还用于判断所述发生磨损错误的内存块所处的内存行不是首次发生磨损错误时,从所述发生磨损错误的内存块所处的内存行的元数据中读取已分配的所述备份内存行的映射地址指针。
较优地,所述重映射模块还用于将所述备份内存块所处的备份内存行的地址指针以N重冗余形式写入所述发生磨损错误的内存块中,其中,N为正整数。
重映射模块将地址指针以N重冗余形式写入内存块中,能够保证写入的地址指针被正确读取。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的非易失性内存的磨损错误恢复方法的流程图;
图2为根据本发明的一个实施例的内存块重映射和读写请求重定向的示意图;以及
图3为根据本发明实施例的非易失性内存的磨损错误恢复装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。此外,本发明提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的可应用于性和/或其他材料的使用。另外,以下描述的第一特征在第二特征之“上”的结构可以包括第一和第二特征形成为直接接触的实施例,也可以包括另外的特征形成在第一和第二特征之间的实施例,这样第一和第二特征可能不是直接接触。
在本发明的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
下面参照附图1至2描述根据本发明第一方面实施例提出的一种非易失性内存的磨损错误恢复方法。
如图1所示,本发明实施例的非易失性内存的磨损错误恢复方法,包括以下步骤:
S1,将非易失性内存行划分为多个内存块。
非易失性内存例如PCRAM存储阵列由内存行和内存列构成,在本发明的一个实施例中,以缓存行(Cache Line)大小为单位将PCRAM划分为多个内存块,并且内存读写的最小单元为缓存行,即以内存块为最小单元进行内存读写。如图2所示,将PCRAM存储阵列中每一个内存行均划分为4个内存块。
S2,检测多个内存块中发生磨损错误的内存块。
在本发明的一个实施例中,步骤S2具体包括:在多个内存块中的一个内存块写入数据后,立即读取此内存块中的数据,并将此内存块中的数据与写入的数据进行比对。如果此内存块中的数据与写入的数据相符,则判断该内存行中的此内存块没有发生磨损错误,若此内存块中的数据与写入的数据不相符,则判断此内存块发生磨损错误。如图2中所示,例如内存行0中的偏移4的内存块发生内存磨损错误。
S3,将发生磨损错误的内存块重映射到备份内存块中。
由步骤S2获得发生磨损错误的内存块及其所在的内存行,例如内存行0偏移4的内存块发生磨损错误。在本发明的一个实施例中,步骤S3具体包括:当检测到内存块发生磨损错误时,判断发生磨损错误的内存块所处的内存行是否为首次发生磨损错误。如果是,则触发操作系统中断,操作系统重新分配备份内存行,并将备份内存行的地址指针写入到发生磨损错误的内存块所处的内存行的元数据位置,如果否,从发生磨损错误的内存块所处的内存行的元数据中读取已分配的备份内存行的映射地址指针。其中,备份内存行为非易失内存中的空闲内存行,即没有存储数据的内存行。需要说明的是,将发生磨损错误的内存块所处的内存行整体映射到操作系统重新分配的备份内存行,并且每一内存块都一一对应,发生磨损错误的内存块将被映射到重新分配的备份内存行的同一偏移位置对应的内存块,并将备份内存行中对应的备份内存块地址指针写入原发生磨损错误的内存块中,即发生磨损错误内存块中写入的是重映射的地址指针,发生磨损错误的内存块不再作为数据存储使用。其中,发生磨损错误的内存块所处的内存行中的其他内存块可以继续使用,备份内存行中除了与发生磨损错误的内存块对应位置的备份内存块之外的其他内存块位置,作为发生磨损错误的内存块所处内存行中的其他内存块的备份内存块使用。将重新分配的备份内存行的行地址指针写入发生磨损错误的内存块所处的内存行的元数据单元中,并将发生磨损错误的内存块及其所处的内存行的D/P标志位标为P表示该内存块已被重映射,其存储的为地址指针,初始情况下内存块D/P标志位为D表示内存块还未被重映射,其存储的为数据。例如如图2所示,当内存行0偏移4的内存块发生磨损错误时,如果内存行0是首次发生磨损错误,操作系统重新分配备份内存行5,备份内存行5为空闲行,将内存行0映射到备份内存行5,并将内存行0的标志位D/P置为P表明该内存行已被映射,内存行元数据例如图2中Rptr位置写入备份内存行地址5。同时将内存行0偏移4的内存块标志位D/P置为P,内存块例如ptr位置写入备份内存行5偏移4的备份内存块的地址指针。如果发生磨损错误的内存块所处的内存行不是首次发生磨损错误,即检测到内存行0中其他内存块发生磨损错误时,则不必触发中断,从发生磨损错误的内存块所处的内存行的元数据中读取已分配的备份内存行的映射地址指针,并且内存控制器将该位置映射到备份内存行的对应备份内存块。
在本发明的一个实施例中,将备份内存块的地址指针以N重冗余(N-modular redundancy)形式写入发生磨损错误的内存块中,其中,N为正整数。由于发生磨损错误的内存块中只有部分比特(bit)数据发生磨损错误,其他比特数据依然可以写入,采用N重冗余写入可以保证写入的映射地址指针被正确读取。
S4,将发生磨损错误的内存块中的内存地址读写请求重定向到备份内存块中的备份内存地址。
在本发明的一个实施例中,在内存控制器的读写请求队列之后,为磨损错误地址重定向处理,即将发生磨损错误的内存块读写请求的地址重定向到映射地址。首先需要检测内存块的缓存信息,找到对应内存块请求的D/P标志位和地址映射信息。如果内存行的D/P标志位为P,则表示该内存行被映射,从该内存行的元数据位置读取映射的备份内存行地址指针,确定发生磨损错误内存模块所在内存行映射到的备份内存行地址,备份内存行地址为备份内存行的映射地址指针指向的映射地址。并根据发生磨损错误的内存块的地址映射信息,将此内存块请求地址重定向到映射地址的内存请求。例如如图2所示,内存行0偏移4的内存块为磨损错误内存块,根据发生磨损错误内存块所处内存行0的元数据位置例如Rptr中的备份内存行映射地址指针,确定内存行0所映射到的备份内存行为备份内存行5。根据发生磨损错误的内存块中例如Ptr位置的映射地址指针,确定此内存块映射地址为备份内存行5偏移4的位置,如此便将发生磨损错误的内存块中的内存地址读写请求重定向到备份内存块中的备份内存地址。
综上所述,根据本发明实施例的非易失性内存的磨损错误恢复方法,通过将发生磨损错误的内存块重映射到备份内存块中,并在进行读写请求时,将发生磨损错误的内存块的读写请求重定向到其映射地址,提高了非易失性内存的可靠性,延长了使用寿命。
下面参照附图3描述根据本发明第二方面实施例提出的一种非易失性内存的磨损错误恢复装置。
如图3所示,本发明实施例的非易失性内存的磨损错误恢复装置包括:划分模块301(未在图中标示)、检测模块302、重映射模块303和重定向模块304。其中,划分模块301用于将非易失性内存行划分为多个内存块。检测模块302用于检测多个内存块中发生磨损错误的内存块。重映射模块303用于将发生磨损错误的内存块重映射到备份内存块中。重定向模块304用于将发生磨损错误的内存块中的内存地址读写请求重定向到备份内存块中的备份内存地址。
在本发明的一个实施例中,划分模块301以缓存行为单位将非易失性内存的内存行划分为多个内存块,内存读写的最小单元为缓存行大小,即以内存块为单位进行内存读写。如果非易失性内存例如PCRAM中划分的内存块发生磨损错误,则此内存块的部分位置将不能再写入数据,通过检测模块302检测PCRAM中的多个内存块中的发生磨损错误的内存块。具体地,检测模块302在PCRAM中的多个内存块中的一个内存块写入数据后,读取此内存块中的数据,并将此内存块中的数据与写入的数据进行比对,在此内存块中的数据与写入的数据不相符时,判断此内存块发生磨损错误。
在本发明的一个实施例中,由检测模块301检测到PCRAM中的多个内存块中的一个内存块发生磨损错误,例如图2所示的内存行0偏移4的内存块发生磨损错误,则由重映射模块303判断发生磨损错误的内存块所处的内存行是首次发生磨损错误时,触发操作系统中断,操作系统重新分配备份内存行,并将备份内存行的地址指针写入到发生磨损错误的内存块所处的内存行的元数据位置。其中,备份内存行为非易失内存中的空闲内存行,即没有存储数据的内存行。需要说明的是,重映射模块303将发生磨损错误的内存块所处的内存行整体映射到操作系统重新分配的备份内存行,并且每一内存块都一一对应,重映射模块303将发生磨损错误的内存块映射到重新分配的备份内存行的同一偏移位置对应的内存块,并将备份内存行中对应的备份内存块地址指针写入发生磨损错误的内存块中,即发生磨损错误内存块中写入的是重映射的地址指针,原发生磨损错误的内存块不再作为数据存储使用,在本实施例中,重映射模块303将备份内存块所处的备份内存行的地址指针以N重冗余形式写入发生磨损错误的内存块中,其中,N为正整数。由于发生磨损错误的内存块中只有部分比特(bit)数据发生磨损错误,其他比特数据依然可以写入,采用N充冗余写入可以保证写入的映射地址指针被正确读取。其中,发生磨损错误的内存块所处的内存行中的其他内存块可以继续使用,备份内存行中除了与发生磨损错误的内存块对应位置的备份内存块之外的其他内存块位置,作为发生磨损错误的内存块所处内存行中的其他内存块的备份内存块使用。重映射模块303将重新分配的备份内存行的行地址指针写入发生磨损错误的内存块所处的内存行的元数据单元中,并将发生磨损错误的内存块及其所处的内存行的D/P标志位标为P表示该内存块已被重映射,其内存储的为地址指针,初始情况下内存块D/P标志位为D表示内存块还未被重映射,其内存储的为数据。例如图2所示,当内存行0中偏移4的内存块发生磨损错误时,如果重映射模块303判断内存行0是首次发生磨损错误,则触发操作系统中断,操作系统分配备份内存行5,备份内存行5为空闲行,将内存行0映射到备份内存行5,并将内存行0的标志位D/P置为P表明该内存行已被映射,内存行元数据例如图2中Rptr位置写入备份内存行地址5。同时将内存行0偏移4的内存块标志位D/P置为P,内存块中的例如ptr位置被写入备份内存行5偏移4的备份内存块的地址指针。
在本发明的另一个实施例中,重映射模块303还用于判断发生磨损错误的内存块所处的内存行不是首次发生磨损错误时,从发生磨损错误的内存块所处的内存行的元数据中读取已分配的备份内存行的映射地址指针。如果重映射模块303判断发生磨损错误的内存块所处的内存行不是首次发生磨损错误,即检测到内存行0中其他内存块发生磨损错误时,则不触发中断,从发生磨损错误的内存块所处的内存行的元数据中读取已分配的备份内存行的映射地址指针,并且内存控制器将该位置映射到备份内存行的对应备份内存块。
在重映射模块303将发生磨损错误的内存块重映射到备份内存块后,由重定向模块304建立发生磨损错误的内存块与备份内存块间的重定向。内存控制器接收来自一个或多个微处理器以及I/O设备的内存请求,并将其缓存在内存控制器的读写请求队列中,然后通过内存控制器调度到各个PCRAM内存芯片。在本发明的一个实施例中,如图3所示,重定向模块304位于内存控制器的读写请求队列之后,重定向模块304中缓存了磨损错误内存块地址的映射信息,其作用是将发生磨损错误的内存块读写请求的地址重定向到映射地址,然后再由内存控制器进行调度。首先重定向模块304检测内存块的缓存信息,找到对应内存块请求的D/P标志位和地址映射信息。如果内存行的D/P标志位为P,则表示该内存行被映射,从该内存行的元数据位置读取映射的备份内存行地址指针,确定发生磨损错误内存模块所在内存行映射到的备份内存行地址,备份内存行地址为备份内存行的映射地址指针指向的映射地址。并根据发生磨损错误的内存块的地址映射信息,将此内存块请求地址重定向到映射地址的内存请求,如此便可以进行正确的读写操作。
综上所述,根据本发明实施例的非易失性内存的磨损错误恢复装置,通过重映射模块将发生磨损错误的内存块重映射到备份内存块中,并在进行读写请求时,由重定向模块将发生磨损错误的内存块的读写请求重定向到其映射地址,提高了非易失性内存的可靠性,延长了使用寿命。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (10)

1.一种非易失性内存的磨损错误恢复方法,其特征在于,包括以下步骤:
S1,将非易失性内存行划分为多个内存块;
S2,检测所述多个内存块中发生磨损错误的内存块;
S3,将所述发生磨损错误的内存块重映射到备份内存块中;以及
S4,将所述发生磨损错误的内存块中的内存地址读写请求重定向到所述备份内存块中的备份内存地址。
2.如权利要求1所述的非易失性内存的磨损错误恢复方法,其特征在于,所述步骤S2具体包括:
在所述多个内存块中的一个内存块写入数据后,读取所述一个内存块中的数据,并将所述一个内存块中的数据与写入的数据进行比对;
若所述一个内存块中的数据与所述写入的数据不相符,则判断所述一个内存块发生磨损错误。
3.如权利要求1所述的非易失性内存的磨损错误恢复方法,其特征在于,所述步骤S3具体包括:
判断所述发生磨损错误的内存块所处的内存行是否为首次发生磨损错误;
如果是,触发操作系统中断,所述操作系统重新分配备份内存行,并将所述备份内存行的地址指针写入到所述内存行的元数据位置;
如果否,从所述发生磨损错误的内存块所处的内存行的元数据中读取已分配的所述备份内存行的映射地址指针。
4.如权利要求3所述的非易失性内存的磨损错误恢复方法,其特征在于,在所述步骤S3中,还包括:
将所述备份内存块的地址指针以N重冗余形式写入所述发生磨损错误的内存块中,其中,N为正整数。
5.如权利要求3所述的非易失性内存的磨损错误恢复方法,其特征在于,所述备份内存行地址为所述备份内存行的映射地址指针指向的映射地址。
6.一种非易失性内存的磨损错误恢复装置,其特征在于,包括:
划分模块,用于将非易失性内存行划分为多个内存块;
检测模块,用于检测所述多个内存块中发生磨损错误的内存块;
重映射模块,用于将所述发生磨损错误的内存块重映射到备份内存块中;以及
重定向模块,用于将所述发生磨损错误的内存块中的内存地址读写请求重定向到所述备份内存块中的备份内存地址。
7.如权利要求6所述的非易失性内存的磨损错误恢复装置,其特征在于,所述检测模块还用于在所述多个内存块中的一个内存块写入数据后,读取所述一个内存块中的数据,并将所述一个内存块中的数据与写入的数据进行比对,以及在所述一个内存块中的数据与所述写入的数据不相符时判断所述一个内存块发生磨损错误。
8.如权利要求6所述的非易失性内存的磨损错误恢复装置,其特征在于,所述重映射模块还用于判断所述发生磨损错误的内存块所处的内存行是首次发生磨损错误时,触发操作系统中断,所述操作系统重新分配备份内存行,并将所述备份内存行的地址指针写入到所述内存行的元数据位置。
9.如权利要求8所述的非易失性内存的磨损错误恢复装置,其特征在于,所述重映射模块还用于判断所述发生磨损错误的内存块所处的内存行不是首次发生磨损错误时,从所述发生磨损错误的内存块所处的内存行的元数据中读取已分配的所述备份内存行的映射地址指针。
10.如权利要求9所述的非易失性内存的磨损错误恢复装置,其特征在于,所述重映射模块还用于将所述备份内存块所处的备份内存行的地址指针以N重冗余形式写入所述发生磨损错误的内存块中,其中,N为正整数。
CN2013100241183A 2013-01-22 2013-01-22 一种非易失性内存的磨损错误恢复方法和装置 Pending CN103092728A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013100241183A CN103092728A (zh) 2013-01-22 2013-01-22 一种非易失性内存的磨损错误恢复方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013100241183A CN103092728A (zh) 2013-01-22 2013-01-22 一种非易失性内存的磨损错误恢复方法和装置

Publications (1)

Publication Number Publication Date
CN103092728A true CN103092728A (zh) 2013-05-08

Family

ID=48205332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013100241183A Pending CN103092728A (zh) 2013-01-22 2013-01-22 一种非易失性内存的磨损错误恢复方法和装置

Country Status (1)

Country Link
CN (1) CN103092728A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528262A (zh) * 2014-10-21 2016-04-27 杭州华为数字技术有限公司 一种实现内存镜像的方法及装置
CN107066394A (zh) * 2017-03-31 2017-08-18 深圳市金印达科技有限公司 一种成像设备的数据读写方法和系统
CN107633865A (zh) * 2016-07-19 2018-01-26 北京兆易创新科技股份有限公司 一种非易失性存储器的数据读取装置及方法
CN108231134A (zh) * 2018-02-08 2018-06-29 芯颖科技有限公司 Ram良率补救方法及装置
CN109388511A (zh) * 2018-09-14 2019-02-26 联想(北京)有限公司 一种信息处理方法、电子设备及计算机存储介质
CN110058955A (zh) * 2017-12-18 2019-07-26 钰创科技股份有限公司 具有错误纠正功能的内存和相关内存系统
CN111428280A (zh) * 2020-06-09 2020-07-17 浙江大学 SoC安全芯片密钥信息完整性存储及错误自修复方法
CN111506460A (zh) * 2020-04-16 2020-08-07 Oppo广东移动通信有限公司 内存故障的处理方法、装置、移动终端及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383190A (zh) * 2008-08-11 2009-03-11 湖南源科创新科技股份有限公司 应用于固态硬盘的闪存均衡损耗算法
CN101620572A (zh) * 2008-07-02 2010-01-06 上海华虹Nec电子有限公司 非易失性内存及控制方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620572A (zh) * 2008-07-02 2010-01-06 上海华虹Nec电子有限公司 非易失性内存及控制方法
CN101383190A (zh) * 2008-08-11 2009-03-11 湖南源科创新科技股份有限公司 应用于固态硬盘的闪存均衡损耗算法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
朱龙云等: "Smart-P:重映射粒度可变的PCRAM磨损错误恢复机制", 《中国科技论文》 *
赵鹏等: "基于相变存储器的非易失内存数据机密性保护", 《计算机学报》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528262A (zh) * 2014-10-21 2016-04-27 杭州华为数字技术有限公司 一种实现内存镜像的方法及装置
CN107633865A (zh) * 2016-07-19 2018-01-26 北京兆易创新科技股份有限公司 一种非易失性存储器的数据读取装置及方法
CN107633865B (zh) * 2016-07-19 2024-02-20 兆易创新科技集团股份有限公司 一种非易失性存储器的数据读取装置及方法
CN107066394A (zh) * 2017-03-31 2017-08-18 深圳市金印达科技有限公司 一种成像设备的数据读写方法和系统
CN110058955B (zh) * 2017-12-18 2024-04-09 钰创科技股份有限公司 具有错误纠正功能的内存和相关内存系统
CN110058955A (zh) * 2017-12-18 2019-07-26 钰创科技股份有限公司 具有错误纠正功能的内存和相关内存系统
CN108231134B (zh) * 2018-02-08 2021-06-25 芯颖科技有限公司 Ram良率补救方法及装置
CN108231134A (zh) * 2018-02-08 2018-06-29 芯颖科技有限公司 Ram良率补救方法及装置
CN109388511A (zh) * 2018-09-14 2019-02-26 联想(北京)有限公司 一种信息处理方法、电子设备及计算机存储介质
CN111506460A (zh) * 2020-04-16 2020-08-07 Oppo广东移动通信有限公司 内存故障的处理方法、装置、移动终端及存储介质
CN111506460B (zh) * 2020-04-16 2023-08-29 Oppo广东移动通信有限公司 内存故障的处理方法、装置、移动终端及存储介质
CN111428280B (zh) * 2020-06-09 2020-11-17 浙江大学 SoC安全芯片密钥信息完整性存储及错误自修复方法
CN111428280A (zh) * 2020-06-09 2020-07-17 浙江大学 SoC安全芯片密钥信息完整性存储及错误自修复方法

Similar Documents

Publication Publication Date Title
CN103092728A (zh) 一种非易失性内存的磨损错误恢复方法和装置
US8464106B2 (en) Computer system with backup function and method therefor
US8456938B2 (en) Systems and methods for refreshing non-volatile memory
US8977813B2 (en) Implementing RAID in solid state memory
US8516343B2 (en) Apparatus, system, and method for retiring storage regions
TWI416513B (zh) A system and method for managing adjacent track interference in a hard disk drive
CN103853582A (zh) 闪存更新方法以及闪存控制器
TWI479314B (zh) 系統資料儲存方法、記憶體控制器與記憶體儲存裝置
WO2013134042A1 (en) System and method to decode data subject to a disturb condition
CN101777013A (zh) 一种固态硬盘及数据读写方法
CN101567220B (zh) 闪存的损坏区块辨识方法、储存系统及其控制器
CN104423888A (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
CN111124758A (zh) 一种故障硬盘的数据恢复方法
US20070294588A1 (en) Performing a diagnostic on a block of memory associated with a correctable read error
US20140351630A1 (en) Apparatuses, systems, devices, and methods of replacing at least partially non-functional portions of memory
CN101000569A (zh) 一种对多重扇区进行错误修正编码的方法
CN103699491A (zh) 数据储存方法、存储器控制器与存储器储存装置
US5467361A (en) Method and system for separate data and media maintenance within direct access storage devices
CN102543196A (zh) 数据读取方法、存储器储存装置及其控制器
CN105320464A (zh) 防止读取干扰的方法、存储器控制电路单元与存储装置
CN109390027A (zh) 解码方法及相关的闪存控制器与电子装置
CN103678162B (zh) 系统数据储存方法、存储器控制器与存储器储存装置
US11698832B2 (en) Selective sampling of a data unit during a program erase cycle based on error rate change patterns
CN104750577A (zh) 面向片上大容量缓冲存储器的任意多位容错方法及装置
US10901866B2 (en) Failure detection and data recovery in a storage system

Legal Events

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

Application publication date: 20130508