CN101740123B - 存储器的数据保护方法 - Google Patents
存储器的数据保护方法 Download PDFInfo
- Publication number
- CN101740123B CN101740123B CN2008101748669A CN200810174866A CN101740123B CN 101740123 B CN101740123 B CN 101740123B CN 2008101748669 A CN2008101748669 A CN 2008101748669A CN 200810174866 A CN200810174866 A CN 200810174866A CN 101740123 B CN101740123 B CN 101740123B
- Authority
- CN
- China
- Prior art keywords
- block
- data
- list
- particular block
- blocks
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种存储器的数据保护方法,该数据保护方法适用于存储器中多个区块所涵盖的多个页。所述数据保护方法是在存储器平时的操作中,记录区块的位错误程度值以及清除次数。藉此,系统在闲置时将可针对位错误程度值较高的区块进行数据的修复。此外,针对清除次数较少的区块,所述数据保护方法更将其数据搬移到其他的区块,以使得清除次数较少的区块可以从数据区中释放出来使用。藉此,所述数据保护方法将可使存储器中所有区块平均地被使用,并以有效率的方式来完成存储器中数据的保护以及平均抹除的动作。
Description
技术领域
本发明是有关于一种数据保护方法,且特别是有关于一种存储器的数据保护方法。
背景技术
快闪存储器因具有非易失性(non-volatile)、高密集度、以及反应速度快...等特性,而在众多的存储器中崭露头角。对于快闪存储器而言,即使只做重复的读取动作,也有可能发生数据内容的变化,进而造成所读出的数据与原本数据不符的不可预期的错误。
为了避免上述情况的发生,错误纠正码(error correction code)是普遍运用于快闪存储器的数据保护技术。当快闪存储器内的数据被读取时,系统可通过控制器端的错误纠正码的运算,来对快闪存储器进行有限度的修复错误。其中,有限度的修复错误是指控制器的运算能力,例如:有的控制器可提供在256位组(bytes)内找出并修复1位(bit)数据的能力;此外,有的控制器则可提供在512位组内找出并修复4位或8位数据的能力。
除了错误纠正码的使用之外,当长时间重复读取快闪存储器时,还是有机会发生超出控制器运算能力的错误。因此,一种已知技术是在所储存的数据超出错误纠正码可更正的错误率之前,需将数据读出更正错误后重新写入快闪存储器中,以确保数据储存的正确性。但是,如果要立即做数据读出、更正错误以及再写入的动作,会大幅地降低系统在读取快闪存储器中数据的速度。
另外,有的已知技术是在系统处于闲置状态时,将快闪存储器中的数据依序读出,并在读出的过程中若发现数据有错误,则将错误的数据更正后重新写入。但是,当快闪存储器的容量越大时,扫描全部的数据的时间将会更久。此时,将造成有些错误的数据太晚被检测到,而使得数据的错误位数超出错误纠正码可更正的能力范围。此外,数据的修复与搬移也会增加快闪存储器中区块(block)额外的抹除(erase)次数,进而会减少区块的使用寿命(lifetime)。
换而言之,如何有效地保护快闪存储器的数据,并同时兼顾快闪存储器的读取速度与使用寿命,遂成为快闪存储器在使用上的重要课题。
发明内容
本发明提供一种数据保护方法,用以保护非易失性存储器中的数据,并同时兼顾非易失性存储器的读取速度与使用寿命。
本发明提出一种数据保护方法,适用于一非易失性存储器,非挥发存储器包含多个区块所涵盖的多个页(Page),且这些区块至少分组为一数据区与一备用区。所述数据保护方法包括下列步骤。首先,利用这些页所进行的错误纠正码的运算结果,更新一第一表单所记录的这些区块的位错误程度值,并决定是否备份至少一修复数据至易失性存储器。接着,于一第二表单记录这些区块的清除次数,并在记录第二表单的同时更新第一表单。
之后,依据第二表单而从备用区中挑选出具有最小清除次数的区块,以作为一置换区块。接着,依据修复数据的存在与否,来判别是否对一特定区块与置换区块执行一区块交换。
在本发明的一实施例中,上述的数据保护方法更包括:依据特定区块的修复置换效率值的大小,来判别是否对特定区块与置换区块执行区块交换。
在本发明的一实施例中,上述的数据保护方法更包括:判别易失性存储器中是否存有修复数据;当易失性存储器中存有修复数据时,从非易失性存储器的数据区中挑选出修复数据所属的一特定区块,并将特定区块的部分数据以及修复数据依序储存至置换区块;以及,当易失性存储器中尚未存有修复数据时,计算出非易失性存储器中这些区块的修复置换效率值,以从非易失性存储器的数据区中挑选出特定区块,并利用一第一门槛值来判定是否将特定区块的数据储存至置换区块。
在本发明的一实施例中,上述的数据保护方法更包括:判别非易失性存储器所属的系统是否处在闲置状态;当非易失性存储器所属的系统处在闲置状态时,则重复所有步骤;以及,当非易失性存储器所属的系统并非处在闲置状态时,则暂停所有步骤。
在本发明的一实施例中,上述的从数据区中挑选出修复数据所属的特定区块,并将特定区块的部分数据以及修复数据依序储存至置换区块的步骤如下所述。首先,从这些页与这些区块中分别选出修复数据所属的页与区块,以分别作为一特定页与一特定区块。之后,读出并修复特定区块中除特定页以外的数据,并与修复数据依序储存至置换区块。
在本发明的一实施例中,上述的计算出这些区块的修复置换效率值,以从数据区中挑选出特定区块,并利用第一门槛值来判定是否将特定区块的数据储存至置换区块的步骤如下所述。首先,将第一表单所记录的位错误程度值与第二表单所记录的清除次数依序带入一特定公式,以计算出这些区块的修复置换效率值。接着,从数据区中选出具有最大修复置换效率值的区块,以作为特定区块。
之后,判别特定区块的修复置换效率值是否大于第一门槛值。当特定区块的修复置换效率值大于第一门槛值时,读出与修复特定区块中的数据,并将特定区块修复后的数据依序储存至置换区块。相对地,当特定区块的修复置换效率值小于第一门槛值时,则不需将特定区块的数据做置换。
在本发明的一实施例中,上述的对特定区块与置换区块执行区块交换的步骤如下所述。首先,将连结到特定区块的逻辑位置更改成连接到置换区块。之后,清除特定区块的数据,并将特定区块移入至备用区。
本发明是在非易失性存储器平时的操作中,记录区块的位错误程度值以及清除次数。藉此,系统在闲置时将可针对位错误程度值较高的区块进行数据的修复,以确保数据可以在错误纠正码可更正的范围内之前就被修复。此外,针对清除次数较少的区块,本发明更将其数据搬移到其他的区块,以使得清除次数较少的区块可以从数据区中释放出来使用。藉此,与已知技术相较之下,本发明将可使非易失性存储器中所有区块平均地被使用,进而增加非易失性存储器的使用寿命。此外,此机制更以有效率的方式来完成易失性存储器中数据的保护以及平均抹除的动作,进而提高非易失性存储器的读取速度。
附图说明
图1是依照本发明一实施例所绘示的数据保护方法的流程图。
图2是依照本发明实施例所绘示的快闪存储器的结构示意图。
图3是用以说明图1中步骤S110的详细流程图。
图4是用以说明步骤S120的详细流程图。
图5是依照本发明另一实施例所绘示的数据保护方法流程图。
图6为由图5实施例所延伸的数据保护方法流程图。
图7是依照本发明又一实施例所绘示的数据保护方法流程图。
附图标号:
S110~S190、S151、S152、S161~S164:用以说明图1实施例的各步骤流程
200:快闪存储器
210:数据区
220:备用区
BP11~BP13、BP21~BP23:区块
P11~P13、P21~P23:页
S300~S370:用以说明图3实施例的各步骤流程
S410、S420:用以说明图4实施例的各步骤流程
S510~S550:用以说明图5与图6实施例的各步骤流程
S710~S750:用以说明图7实施例的各步骤流程
具体实施方式
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
图1是依照本发明一实施例所绘示的数据保护方法的流程图,其中所述的数据保护方法适用于一存储器。在下述实施例中以一非易失性存储器作为表示,且所述的非易失性存储器可以是快闪存储器。
在说明本实施例的数据保护方法之前,先针对快闪存储器的结构进行说明。在此,如图2所示的,快闪存储器通常实质上分割成多个实体区块(physicalblock),例如:快闪存储器200包括多个实体区块,例如:BP11~BP13以及BP21~BP23等,为方便说明以下将实体区块简称为区块。此外,每一区块通常会分割为数个页(page),例如:区块BP11包括页P11~P13,而区块BP12则包括页P21~P23。
一般而言,快闪存储器中的区块为进行抹除(erase)的最小单位,而其所包括的页则是编程(program)或是读取(read)的最小单位。此外,为了简化快闪存储器在管理上的复杂度,快闪存储器的区块也可被分组为数个区域(area),例如:快闪存储器200中的区块被分组为数据区(data area)210与备用区(sparearea)220。本发明的实施例虽以有分组的快闪存储器200做为实施例的解说,然其不表示将本发明限定于此,即不分组的快闪存储器亦可以利用本发明的数据保护方式达到相同的效果。
请同时参照图1与图2,来看本实施例的数据保护方法。首先,于步骤S110,利用数个页所进行的错误纠正码的运算结果,更新第一表单所记录的多个区块的位错误程度值,并决定是否备份至少一修复数据至一易失性存储器。
举例来说,图3是是用以说明图1中步骤S110的详细流程图。在此,以图2所示的快闪存储器200为例,请同时参照图2与图3,来看步骤S110的详细流程。
首先,于步骤S300,在非易失性存储器(例如:快闪存储器200)所属的系统初次启动时,初始化第一表单,也就是将第一表单中所有区块的位错误程度值EDb都一并设为0。之后,于步骤S310,从快闪存储器200中多个区块所涵盖的多个页择一读取。举例而言,倘若快闪存储器200只由区块BP11与BP12所构成,又区块BP11与BP12所涵盖的数个页则包括页P11~P13与页P21~P23。再者,倘若此时被读取的页为P11,则其将被视为一预设页。之后,于步骤S320,对预设页P11进行错误纠正码的运算,以取得预设页P11的错误位数。
接着,于步骤S330,根据错误位数取得一位错误权重值EDbp。举例来说,如式(1)所示的,当预设页P11被检测到的错误位数为1位时,则此时的位错误权重值EDbp将相等于a1。相对地,当预设页P11被检测到的错误位数为2位时,则此时的位错误权重值EDbp将相等于a2。
之后,于步骤S340,将位错误权重值EDbp累加至预设页P11所对应的区块BP11的位错误程度值EDb。举例来说,如式(2)所示的,步骤S340会将错误权重值EDbp与位错误程度值EDb相加,以取得累加后的位错误程度值EDb’。且知,第一表单记录着各个区块的位错误程度值EDb,故步骤S340更将原本记录在第一表单中区块BP11的位错误程度值EDb更新为累加后的位错误程度值EDb’。
此外,步骤S350更判断位错误权重值EDbp是否超过第二门槛值。在此,倘若错误纠正码可更正的错误位数最高为8位时,则可将第二门槛值设定在错误位数为6位时的位错误权重值{a6}。如此一来,系统将可通过位错误权重值EDbp与第二门槛值的比较,来判定预设页P11的数据的可修复度,进而决定是否要备份预设页P11的数据。值得注意的是,本领域具有通常知识者可依设计所需,来任意更改第二门槛值的实施型态。
接者,当位错误权重值EDbp超过第二门槛值时,则代表预设页P11的数据已快超出错误纠正码可修复的能力范围,故此时将执行步骤S360。于步骤S360中,将修复并备份预设页P11的数据,并将其视为一笔修复数据储存在系统的易失性存储器中,例如:动态随机存取存储器(DRAM)。
相对地,当位错误权重值EDbp尚未超过第二门槛值时,则代表预设页P11的数据在错误纠正码可修复的能力范围内,故此时将执行步骤S370。于步骤S370中,将第一表单存入非易失性存储器(快闪存储器200),并重复上述各步骤S310~S360,直到非易失性存储器(快闪存储器200)中的所有页逐一被读取为止。
上述的步骤是可以利用系统平时读取的操作过程中去读取Pn,即可适时的更新第一表单与第二表单,并不需要特意的逐一读取每一页;又于系统长期闲置时,亦可以排定逐一读取每一页以做一全面更新保护。换而言之,页P11~P13与P21~P23可逐一被视为预设页。藉此,页P11~P13根据错误纠正码所得的位错误权重值EDbp,将用以更新第一表单中区块BP11的位错误程度值EDb,并通过与第二门槛值的比较来决定是否需要进行页P11~P13的备份。相对地,页P21~P23根据错误纠正码所得的位错误权重值EDbp,也将用以更新第一表单中区块BP12的位错误程度值EDb,并通过与第二门槛值的比较来决定是否需要进行页P21~P23的备份。
如此一来,系统在平时读取非易失性存储器的过程中,将可通过步骤S110来记录每一区块的位错误程度值,并即时地备份已快超出错误纠正码可修复的能力范围的数据。之后,如步骤S120所示,于第二表单记录这些区块的清除次数,并在记录第二表单的同时更新第一表单。
举例来说,图4是是用以说明步骤S120的详细流程图。在此,以图2所示的快闪存储器200为例,请同时参照图2与图4,来看步骤S120的详细流程。
首先,于步骤S410,在非易失性存储器所属的系统首次启动时,初始化第二表单,也就是将第二表单中所有区块的清除次数ECb都一并设为0。之后,于步骤S420,当这些区块的其一进行清除时,例如:区块BP11进行清除时,将第二表单中被清除的区块BP11所对应的清除次数ECb加1,并将第一表单中被清除的区块BP11所对应的位错误程度值EDb设为0。
如此一来,系统在平时清除非易失性存储器的过程中,将可通过步骤S120来记录每一区块的清除次数。接着,通过步骤S130,依据第二表单而从备用区中挑选出具有最小清除次数的区块,以作为一置换区块(若无划分数据区与备份区的存储器,则依据第二表单从所有区块中挑选一最小/少清除次数区块作为置换区块)。举例来说,如图2所示的,倘若备用区220中的区块BP21具有最小清除次数,则其将被视为置换区块。
之后,将通过步骤S140来判别易失性存储器中是否存有修复数据。当易失性存储器中存有修复数据时,则将执行步骤S150。此时,将从数据区中挑选出修复数据所属的特定区块,并将特定区块的部分数据以及修复数据依序储存至置换区块。
举例来说,假设备用区200中的区块BP21为置换区块,且易失性存储器中存有页P11所属的修复数据。于此,步骤S150会先从快闪存储器200所包括的所有区块与所有页中,分别选出修复数据所属的区块BP11与页P11’以分别作为一特定区块与一特定页(步骤S151)。之后,于步骤S152,读出并修复特定区块BP11中除特定页P11以外的数据,例如:此时来自页P12与页P13的数据将被读出并修复。之后,特定区块BP11中除特定页P11以外的数据将与修复数据依序储存至置换区块BP21。
另一方面,当易失性存储器中尚未存有修复数据时,则将于步骤S160中,计算出这些区块的修复置换效率值,以从数据区中挑选出特定区块,并利用第一门槛值来判定是否将特定区块的数据储存至置换区块。
举例来说,就步骤S160的详细流程来看,首先,于步骤S161,会将第一表单所记录的位错误程度值EDb与第二表单所记录的清除次数ECb依序带入一特定公式,以计算出这些区块的修复置换效率值BEb。例如:当第i个区块的修复置换效率值表示为BEbi、其位错误程度值表示为EDbi以及其清除次数表示为ECbi,且第二表单中备用区(220)的最小清除次数表示为MinEC(若无划分数据区与备份区的存储器,则依据第二表单从所有区块中挑选一最小/少清除次数区块表示为MinEC),其中i为正整数,α与β为系数,则所述特定公式则可表示为:
BEbi=αEDbi+β(MinEC-ECbi)
当(MinEC-ECbi)<0,β=0式 (3)
之后,于步骤S162,从数据区中选出具有最大修复置换效率值的区块,以作为一特定区块(若无划分数据区与备份区的存储器,则依据第二表单从所有区块中挑选一具有最大修复置换效率值的区块作为一特定区块)。换而言之,通过步骤S162,数据区中具有较大位错误程度值EDb的区块,其会优先被挑选为特定区块。此外,当数据区中的某一区块的抹除次数远远小于备用区中所有区块的最小清除次数时,此一区块也将优先从数据区中被挑选为特定区块。其中,上述两挑选准则可通过α与β两参数的设定来调整其权重。
接着,于步骤S163,判别特定区块的修复置换效率值是否大于第一门槛值。倘若特定区块的修复置换效率值小于第一门槛值时,则代表所有的区块仍未到达做数据修复与搬移的程度,故此时将执行步骤S190,以暂停所有步骤。藉此,将可减少区块执行不必要的写入动作,进而提升存储器的使用寿命。相对地,当特定区块的修复置换效率值大于第一门槛值时,则将于步骤S164,读出与修复特定区块中的数据,并将特定区块修复后的数据依序储存至置换区块。
接着,步骤S170将针对特定区块与置换区块执行区块交换。举例来说,假设数据区210中的区块BP11为特定区块,且备用区220中的区块BP21为置换区块,则步骤S170会将连结到特定区块BP11的逻辑位置(logical blockaddress)更改成连接到置换区块BP21。此外,步骤S170更将清除特定区块BP11的数据,并将原本列属为数据区210的特定区块BP11移入至备用区220。
当完成数据的修复与搬移后,将于步骤S180判别非易失性存储器所属的系统是否处在闲置状态。倘若非易失性存储器所属的系统并非处在闲置状态时,则将执行步骤S190,以暂停所有步骤。相对地,倘若非易失性存储器所属的系统处在闲置状态时,则将重复所有步骤,直到系统回复繁忙,或是数据区中区块的最大修复置换效率值小于第一门槛值为止。
图5是依照本发明另一实施例所绘示的数据保护方法流程图,其中所述的数据保护方法适用于一非易失性存储器中多个区块所涵盖的多个页。参照图5,首先,于步骤S510,利用这些页所进行的错误纠正码的运算结果,更新一第一表单所记录的这些区块的位错误程度值,并决定是否备份至少一修复数据至一易失性存储器。
之后,于步骤S520,于一第二表单记录这些区块的清除次数,并在记录第二表单的同时更新第一表单。接着,于步骤S530,判别易失性存储器中是否存有修复数据。藉此,当易失性存储器中存有修复数据时,则将执行步骤S540,以依据第二表单而从这些区块中挑选出具有最小清除次数的区块,来作为一置换区块,并在步骤S550中,对一特定区块与置换区块执行一区块交换。
反之,当易失性存储器中尚未存有修复数据时,则将回到步骤S510,以维持系统的正常操作。值得注意的是,通过步骤S520与步骤S540,清除次数较少的区块将被释放出来,以作为区块交换时所使用的区块,进而致使非易失性存储器中所有区块平均地被使用。此外,所属技术领域具有通常知识者可依设计所需,来更动图5实施例的步骤流程。
举例来说,图6为由图5实施例所延伸的数据保护方法流程图。其中,图6实施例与图5实施例最大不同之处在于,图6实施例是先找出置换区块(步骤S540)之后,再进行易失性存储器中是否存有修复数据的判断(步骤S530)。如此一来,当易失性存储器中存有修复数据时,则可直接执行区块交换(步骤S550)。至于图6实施例的详细流程则与图5实施例相似,故在此不予赘述。
图7是依照本发明又一实施例所绘示的数据保护方法流程图,其中所述的数据保护方法适用于一非易失性存储器中多个区块所涵盖的多个页。参照图7,首先,于步骤S710,利用这些页所进行的错误纠正码的运算结果,更新一第一表单所记录的这些区块的位错误程度值,并决定是否备份至少一修复数据至一易失性存储器。之后,于步骤S720,于一第二表单记录这些区块的清除次数,并在记录第二表单的同时更新第一表单。
接着,于步骤S730,依据第二表单而从这些区块中挑选出具有最小清除次数的区块,以作为一置换区块,并于步骤S740,计算出这些区块的修复置换效率值,以挑选出一特定区块,并利用一第一门槛值来比对特定区块的修复置换效率值的大小,以判定是否将特定区块的数据储存至置换区块。值得注意的是,当特定区块的数据储存至置换区块时,则将执行步骤S750,以对特定区块与置换区块执行一区块交换。反之,当特定区块的数据没有储存至置换区块时,则将回到步骤S710,以维持系统的正常操作。
综上所述,本发明是将区块的位错误程度值作为系统闲置时数据修复的优先顺序。此外,针对清除次数较少的区块,本发明更将其数据搬移到其他的区块,以使得清除次数较少的区块可以从数据区中释放出来使用。藉此,本发明将可致使存储器中所有区块平均地被使用,进而增加存储器的使用寿命。此外,此机制更以有效率的方式来完成存储器中数据的保护以及平均抹除的动作。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定为准。
Claims (12)
1.一种存储器的数据保护方法,适用于一非易失性存储器中多个区块所涵盖的多个页,其特征是,所述数据保护方法包括:
利用所述多个页所进行的错误纠正码的运算结果,更新一第一表单所记录的所述多个区块的位错误程度值,并决定是否备份至少一修复数据至一易失性存储器;
于一第二表单记录所述多个区块的清除次数,并在记录所述第二表单的同时更新所述第一表单;
依据所述第二表单而从所述多个区块中挑选出具有最小清除次数的区块,以作为一置换区块;以及
依据所述修复数据的存在与否,来判别是否对一特定区块与所述置换区块执行一区块交换。
2.根据权利要求1所述的数据保护方法,其特征是,其更包括:
判别所述非易失性存储器所属的系统是否处在闲置状态;
当所述非易失性存储器所属的系统处在闲置状态时,则重复所有步骤;以及
当所述非易失性存储器所属的系统并非处在闲置状态时,则暂停所有步骤。
3.根据权利要求1所述的数据保护方法,其特征是,其中利用所述多个页所进行的错误纠正码的运算结果,更新所述第一表单所记录的所述多个区块的位错误程度值,并决定是否备份至少所述修复数据至所述易失性存储器的步骤包括:
在所述非易失性存储器所属的系统初次启动时,初始化所述第一表单;
从所述多个页中择一读取,以作为一预设页;
对所述预设页进行错误纠正码的运算,以取得所述预设页的一错误位数;
根据所述错误位数取得一位错误权重值;
将所述位错误权重值累加至所述预设页所对应的区块的位错误程度值,并据以更新所述第一表单;
判断所述位错误权重值是否超过一第二门槛值;
当所述位错误权重值超过所述第二门槛值时,修复并备份所述预设页的数据,以成为所述修复数据;以及
当所述位错误权重值尚未超过所述第二门槛值时,将所述第一表单存入所述非易失性存储器,并重复上述各步骤,直到所述多个页逐一被读取为止。
4.根据权利要求1所述的数据保护方法,其特征是,其中于所述第二表单记录所述多个区块的清除次数,并在记录所述第二表单的同时更新所述第一表单的步骤包括:
在所述非易失性存储器所属的系统初次启动时,初始化所述第二表单;以及
当所述多个区块的其一进行清除时,将所述第二表单中被清除的区块所对应的清除次数加1,并将所述第一表单中被清除的区块所对应的位错误程度值设为0。
5.根据权利要求1所述的数据保护方法,其特征是,其更包括:
判别所述易失性存储器中是否存有所述修复数据;
当所述易失性存储器中存有所述修复数据时,从所述多个区块中挑选出所述修复数据所属的所述特定区块,并将所述特定区块的部分数据以及所述修复数据依序储存至所述置换区块;以及
当所述易失性存储器中尚未存有所述修复数据时,计算出所述多个区块的修复置换效率值,以挑选出所述特定区块,并利用一第一门槛值来判定是否将所述特定区块的数据储存至所述置换区块。
6.根据权利要求5所述的数据保护方法,其特征是,其中从所述多个区块中挑选出所述修复数据所属的所述特定区块,并将所述特定区块的部分数据以及所述修复数据依序储存至所述置换区块的步骤包括:
从所述多个页与所述多个区块中分别选出所述修复数据所属的页与区块,以分别作为一特定页与一特定区块;以及
读出并修复所述特定区块中除所述特定页以外的数据,并与所述修复数据依序储存至所述置换区块。
7.根据权利要求5所述的数据保护方法,其特征是,其中计算出所述多个区块的修复置换效率值,以挑选出所述特定区块,并利用所述第一门槛值来判定是否将所述特定区块的数据储存至所述置换区块的步骤包括:
将所述第一表单所记录的位错误程度值与所述第二表单所记录的清除次数依序带入一特定公式,以计算出所述多个区块的修复置换效率值;
从所述多个区块中选出具有最大修复置换效率值的区块,以作为所述特定区块;
判别所述特定区块的修复置换效率值是否大于所述第一门槛值;
当所述特定区块的修复置换效率值大于所述第一门槛值时,读出与修复所述特定区块中的数据,并将所述特定区块修复后的数据依序储存至所述置换区块;以及
当所述特定区块的修复置换效率值小于所述第一门槛值时,则不需将所述特定区块的数据做置换。
8.根据权利要求7所述的数据保护方法,其特征是,其中所述多个区块中第i个区块的修复置换效率值表示为BEbi、其位错误程度值表示为EDbi以及其清除次数表示为ECbi,所述第二表单中所述多个区块的最小清除次数表示为MinEC,i为正整数,α与β为系数,且所述特定公式为:
BEbi=αEDbi+β(MinEC-ECbi),
当(MinEC-ECbi)<0,β=0。
9.根据权利要求1所述的数据保护方法,其特征是,其中对所述特定区块与所述置换区块执行所述区块交换的步骤包括:
将连结到所述特定区块的逻辑位置更改成连接到所述置换区块;以及
清除所述特定区块的数据,并将所述特定区块移入至备用区。
10.根据权利要求1所述的数据保护方法,其特征是,其更包括:
判别所述易失性存储器中是否存有所述修复数据;以及
当所述易失性存储器中存有所述修复数据时,则对所述特定区块与所述置换区块执行所述区块交换。
11.根据权利要求1所述的数据保护方法,其特征是,其更包括:
计算出所述多个区块的修复置换效率值,以挑选出所述特定区块;以及
利用一第一门槛值来比对所述特定区块的修复置换效率值的大小,以判定是否将所述特定区块的数据储存至所述置换区块,并在所述特定区块的数据储存至所述置换区块时,对所述特定区块与所述置换区块执行所述区块交换。
12.根据权利要求1所述的数据保护方法,其特征是,其更包括:
依据所述特定区块的修复置换效率值的大小,来判别是否对所述特定区块与所述置换区块执行所述区块交换。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101748669A CN101740123B (zh) | 2008-11-10 | 2008-11-10 | 存储器的数据保护方法 |
US12/366,099 US8230302B2 (en) | 2008-11-10 | 2009-02-05 | Data protection method for memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101748669A CN101740123B (zh) | 2008-11-10 | 2008-11-10 | 存储器的数据保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101740123A CN101740123A (zh) | 2010-06-16 |
CN101740123B true CN101740123B (zh) | 2012-04-04 |
Family
ID=42166275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101748669A Active CN101740123B (zh) | 2008-11-10 | 2008-11-10 | 存储器的数据保护方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8230302B2 (zh) |
CN (1) | CN101740123B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004701B (zh) * | 2009-08-28 | 2013-01-09 | 炬才微电子(深圳)有限公司 | 一种次级内存的分配方法和装置 |
WO2012022024A1 (zh) * | 2010-08-17 | 2012-02-23 | 成都市华为赛门铁克科技有限公司 | 对存储设备中的数据进行搬移的方法、装置及存储设备 |
US8589730B2 (en) * | 2010-08-31 | 2013-11-19 | Apple Inc. | Handling errors during device bootup from a non-volatile memory |
CN108595345B (zh) | 2012-07-25 | 2021-11-23 | 慧荣科技股份有限公司 | 管理闪存中所储存的数据的方法及相关记忆装置与控制器 |
US9305663B2 (en) * | 2013-12-20 | 2016-04-05 | Netapp, Inc. | Techniques for assessing pass/fail status of non-volatile memory |
US9348748B2 (en) * | 2013-12-24 | 2016-05-24 | Macronix International Co., Ltd. | Heal leveling |
CN117707988A (zh) * | 2023-08-08 | 2024-03-15 | 荣耀终端有限公司 | 回收内存的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959622A (zh) * | 2006-11-24 | 2007-05-09 | 骆建军 | 基于flash的硬盘 |
CN101246725A (zh) * | 2007-02-16 | 2008-08-20 | 联发科技股份有限公司 | 缓冲区管理方法 |
CN101281492A (zh) * | 2007-04-04 | 2008-10-08 | 扬智科技股份有限公司 | 恢复闪存的对照表的方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963970A (en) * | 1996-12-20 | 1999-10-05 | Intel Corporation | Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields |
US7173852B2 (en) * | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7032087B1 (en) * | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
JP4041076B2 (ja) * | 2004-02-27 | 2008-01-30 | 株式会社東芝 | データ記憶システム |
US7315916B2 (en) * | 2004-12-16 | 2008-01-01 | Sandisk Corporation | Scratch pad block |
US7954037B2 (en) * | 2005-10-25 | 2011-05-31 | Sandisk Il Ltd | Method for recovering from errors in flash memory |
US20080294813A1 (en) * | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Managing Housekeeping Operations in Flash Memory |
-
2008
- 2008-11-10 CN CN2008101748669A patent/CN101740123B/zh active Active
-
2009
- 2009-02-05 US US12/366,099 patent/US8230302B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1959622A (zh) * | 2006-11-24 | 2007-05-09 | 骆建军 | 基于flash的硬盘 |
CN101246725A (zh) * | 2007-02-16 | 2008-08-20 | 联发科技股份有限公司 | 缓冲区管理方法 |
CN101281492A (zh) * | 2007-04-04 | 2008-10-08 | 扬智科技股份有限公司 | 恢复闪存的对照表的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101740123A (zh) | 2010-06-16 |
US8230302B2 (en) | 2012-07-24 |
US20100122114A1 (en) | 2010-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101740123B (zh) | 存储器的数据保护方法 | |
US9489303B2 (en) | Techniques for controlling recycling of blocks of memory | |
US20190220392A1 (en) | Method for reusing destination block related to garbage collection in memory device, associated memory device and controller thereof, and associated electronic device | |
CN107608908B (zh) | 用于数据储存装置的磨损平均方法 | |
US8296501B2 (en) | Memory management method for non-volatile memory and controller using the same | |
CN104298465B (zh) | 固态储存装置中的区块分组方法 | |
US9311006B2 (en) | Table journaling in flash storage devices | |
CN101615427B (zh) | 非易失性存储器的存储器管理方法及使用此方法的控制器 | |
JP5031849B2 (ja) | フラッシュメモリのブロック管理方法 | |
US9720820B2 (en) | Data storage device and flash memory control method | |
CN101859604B (zh) | 闪存坏块的利用方法 | |
CN103377152A (zh) | 固态硬盘的写操作控制方法及写操作装置 | |
US8296503B2 (en) | Data updating and recovering methods for a non-volatile memory array | |
JP2014517412A (ja) | ストレージシステム及びストレージ方法 | |
CN100533408C (zh) | 一种闪存的安全读写方法 | |
WO2009067138A1 (en) | Writing data to different storage devices based on write frequency | |
CN101908368A (zh) | 电子存储装置及其操作方法 | |
TW201011755A (en) | Flash memory system and its data recovery method | |
CN101923448A (zh) | 一种nand闪存的转换层读写方法 | |
CN102163165A (zh) | 一种闪存错误预估模块及其预估方法 | |
JP4666081B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JPWO2016088234A1 (ja) | ストレージ装置、ストレージ装置の制御方法、及びプログラムを記憶するコンピュータ読み取り可能な不揮発性記憶媒体 | |
CN102279809A (zh) | 一种在固态硬盘中重定向写入及垃圾回收的方法 | |
CN101425342B (zh) | 针对NAND Flash冗余码的存取方法 | |
CN109256166A (zh) | 闪存器的擦除方法及闪存器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |