CN101727396B - 用于非易失性存储器的存储器管理方法及其控制器 - Google Patents
用于非易失性存储器的存储器管理方法及其控制器 Download PDFInfo
- Publication number
- CN101727396B CN101727396B CN2008101678149A CN200810167814A CN101727396B CN 101727396 B CN101727396 B CN 101727396B CN 2008101678149 A CN2008101678149 A CN 2008101678149A CN 200810167814 A CN200810167814 A CN 200810167814A CN 101727396 B CN101727396 B CN 101727396B
- Authority
- CN
- China
- Prior art keywords
- memory cell
- zone
- memory
- data
- count value
- 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
Landscapes
- Read Only Memory (AREA)
Abstract
本发明公开一种用于非易失性存储器的存储器管理方法及其控制器。所述控制器包含系统均匀擦除构件,用以对所述非易失性存储器进行第一均匀擦除程序,以选择存储器单元;及子系统均匀擦除构件,用以对所述被选择的存储器单元进行第二均匀擦除程序,以从所述被选择的存储器单元选取至少一区域来编程数据;从而防止被选择的存储器单元的区域在使用上的不平均。
Description
技术领域
本发明涉及一种存储器管理方法,尤其涉及一种用于非易失性存储器的子系统均匀擦除方法及其控制器。
背景技术
诸如闪存存储系统的非易失性存储器系统,由于其存储器系统小巧的实体尺寸及非易失性存储器可重复编程的能力,使得其使用性更为增加。闪存存储系统小巧的实体尺寸,也让其在日趋普遍的电子装置上的使用需求提高。使用闪存存储系统的装置包含,但不拘限于数字相机、数字摄像机、数字音乐播放器、便携式计算机、全球定位装置。闪存存储系统的非易失性存储器可重复编程的能力让闪存存储系统可以被重复使用。
一般来说,闪存存储系统可包含快闪记忆卡及闪存芯片组。闪存芯片组一般包含闪存组件及控制器。原则上,闪存芯片组可组装于嵌入式系统。装配或主系统的制造业者一般取得的闪存,如同其它配件,是以组件的形式呈现,然后,所述闪存及其它配件会再被组装到主系统内。
虽然非易失性存储器,或更明确地说,闪存系统中的闪存存储区域可被重复编程及擦除,每一个区域或实体位置在耗损前,仅能以特定的次数被擦除,也就是说,在存储器容量开始变小之前。换言之,每一个区域具有编程及擦除循环限制。对于某些存储器而言,在区域被视为无法使用之前,一个区域大约可被擦除一万次。而对于其它存储器而言,在区域被视为耗损之前,一个区域大约可被擦除十万次或甚至百万次。当一个区域耗损而导致无法使用或闪存系统部分存储容量的效率相当程度地降低时,可能会对闪存系统的使用者相当不利,例如:遗失已编程的数据或无法编程数据。
闪存系统区域或实体位置的耗损,会因为每一个区域编程的次数而有所不同。假若一个区域,或更明确地说,存储组件,被编程一次,然后不再被重新的编程,则编程及擦除循环的次数将比耗损的区域低。然而,假如一个区域重复地写入及擦除,例如,以一个循环,则所述区域的耗损程度将相对较高。熟悉此技艺者应了解,由于主机(即存取或使用闪存系统的系统)常使用逻辑区域地址来存取编程于闪存系统的数据,假若一个主机重复地使用相同的逻辑区域地址来重复写入数据时,则闪存系统中相同的实体位置或区域将被重复地写入及擦除。
当一些区域耗损而其余区域仍有效时,耗损的区域会让闪存系统的整体性能遭到影响。耗损的区域除了本身会让性能降低之外,闪存系统的整体性能也会在有效区域数量不足以编程数据时受到影响。通常,当闪存系统中出现过多的耗损区域时,即使闪存系统仍然存在有效的其它区域,但所述闪存系统还是会被视为无法使用。当包含相当数量未耗损区域的闪存系统被视为无法使用时,很多与所述闪存系统相关的资源将遭到浪费。
为了让闪存系统的区域能够均匀的耗损,常会进行均匀擦除程序。均匀擦除程序,如熟悉此技术者所知,是用来允许实体位置或关联于特定逻辑区域地址的区域被替换,使得相同的逻辑区域地址并不永远属于同一个实体位置或区域。通过变更区域关联的逻辑区域地址,可以让特定区域不会在其它区域耗损前先行耗损。
最近,以区域组合为单位来传输数据的非易失性存储器正快速地发展,归因于所述非易失性存储器具有比以单区域为单位来传输数据的传统非易失性存储器更快的存取速度,或让区域管理更为容易或能减少映像表的容量。换句话说,所述非易失性存储器是以存储器单元而非区域为单位来管理数据。因此,数据也以存储器单元为单位来擦除。然而,存储器单元中未使用的区域有可能在擦除的同时也被擦除,且让存储器单元的区域产生使用上不平均的情况。因此,一种可以延长非易失性存储器寿命并用于非易失性存储器的子系统均匀擦除方法及其控制器为目前所述相关领域所亟需。
发明内容
由于现有技术受限于上述问题。本发明的目的在于提供一种用于非易失性存储器的存储器管理方法及其控制器,以防止存储器单元的区域在使用上的不平均。
本发明第一个目的是提供一种存储器管理方法,用于具有多个区域的非易失性存储器,其中所述区域具有第一数量,所述存储器管理方法包括以下步骤:(a)将所述多个区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一数量;(b)将数据写入到所述存储器单元当中的至少一区域;(c)在所述存储器单元其中之一所属的区域都被写入后,增加所述所属区域都被写入的存储器单元相对应的计数值;及(d)根据至少部分存储器单元的计数值,对所述非易失性存储器进行均匀擦除程序。
根据本发明思想,所述存储器管理方法在步骤(b)及(c)之间,进一步包括标记写入区域的步骤。
根据本发明思想,在将资料写入到所述存储器单元当中的至少一区域后,更包括在参考表中标记所述写入区域,用以标示所述写入区域的使用状态的步骤。
根据本发明思想,在所述存储器单元其中之一所属的区域都被写入后,还包括从参考表中删除标示所述存储器单元写入区域的标记的步骤。
根据本发明思想,在所有标示所述写入区域的标记被删除后,所述存储器单元的计数值将增加默认值。
根据本发明思想,在所述写入区域的数据被擦除后,所述存储器单元的计数值将增加默认值。
根据本发明思想,所述计数值代表存储器单元的擦除次数累积值。
根据本发明思想,所述存储器管理方法在步骤(b)及(c)之间,进一步包括选取无标记区域并将另一数据写入到所述选取无标记区域的步骤。
根据本发明思想,步骤(d)包括:(d1)计算至少部分存储器单元的计数值;(d2)从至少部分所述存储器单元当中找出空的存储器单元;及(d3)从空的存储器单元当中再选择具有最少计数值的存储器单元。
根据本发明思想,所述存储器管理方法在步骤(a)及(b)之间,进一步包括以下步骤:(a1)从至少部分所述存储器单元当中选择存储器单元;及(a2)从所述被选择的存储器单元当中再选取至少一区域。
根据本发明思想,所述被选择的存储器单元是随机、顺序、或经由均匀擦除程序从至少部分所述存储器单元当中选择出来。
根据本发明思想,所述选取区域是随机地或顺序地从所述被选择的存储器单元当中选取出来。
根据本发明思想,所述数据比所述存储器单元的容量小。
根据本发明思想,所述数据包括暂存对象、表格、映像文件或比所述存储器单元容量小的数据。
根据本发明思想,所述非易失性存储器包括多个信道或数据总线。
本发明第二个目的是提供一种用于非易失性存储器的控制器,所述非易失性存储器具有多个区域,其中所述区域具有第一数量,所述区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一数量,所述控制器包括:系统均匀擦除构件,用以对所述非易失性存储器进行第一均匀擦除程序,以选择存储器单元;及子系统均匀擦除构件,用以对所述被选择的存储器单元进行第二均匀擦除程序,以从所述被选择的存储器单元选取至少一区域来编程数据;从而防止被选择的存储器单元的区域在使用上的不平均。
本发明第三个目的是提供一种用于非易失性存储器的控制器,所述非易失性存储器具有多个区域,其中所述区域具有第一数量,所述区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一数量,所述控制器包括:微处理器,用来编程被选取区域及擦除被选取区域上的数据;计算单元,耦合于所述微处理器,用来计算每一个所述存储器单元的计数值;及选取器,耦合于所述微处理器,用来选择具有空的存储器空间及最少计数值的存储器单元,并用来从被选择的存储器单元中选取至少一区域。
根据本发明思想,所述选取器包括:子系统均匀擦除构件,用以对所述存储器单元其中一个进行第一均匀擦除程序,以从所述存储器单元当中选取至少一区域;及系统均匀擦除构件,用以对所述非易失性存储器进行第二均匀擦除程序,以选择存储器单元来编程数据。
根据本发明思想,所述控制器进一步包括缓冲存储器用来编程参考表;及标记管理单元,用来在所述数据被编程到所述选取区域时,于参考表中加入标记,以标示所述被选择的存储器单元的区域的使用状态,并在所有所述被选择的存储器单元的区域被使用后,用来删除所述参考表中的标记。
根据本发明思想,所述计数值代表每一个存储器单元的擦除次数累积值。一旦被选择的存储器单元的区域的标记被标记管理单元删除,则所述计算单元将把被选择的存储器单元的计数值增加默认值。
根据本发明思想,所述被选取区域为无标记区域。所述选取器顺序地或随机地从被选择的存储器单元当中选取区域。
本发明第四个目的是提供一种数据编程系统,包括:多个存储器模块,每一个都具有多个区域,各个存储器模块的区域被组合成各个存储器单元;及控制器,用来控制多个存储器模块,包含:计算单元,用来计算所述存储器单元的计数值;选取器,用来选择具有空的存储器空间且最少计数值的存储器单元,并用来从被选择的存储器单元当中选取至少一区域;及微处理器,用来编程被选取区域及擦除被选取区域上的数据;从而防止被选择的存储器单元的区域在使用上的不平均。
根据本发明思想,所述控制器进一步包括缓冲存储器,用来编程参考表;及标记管理单元,用来在所述数据被编程到所述选取区域时,在参考表中加入标记,以标示所述被选择的存储器单元的区域的使用状态,并在所有所述被选择的存储器单元的区域被使用后,用来删除所述参考表中的标记。
本发明第五个目的是提供一种存储器管理方法,用于具有多个区域的非易失性存储器,其中所述区域具有第一数量,所述存储器管理方法包括以下步骤:(a)将所述多个区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一数量;(b)计算每一个存储器单元的第一计数值;(c)从所述存储器单元当中找出空的存储器单元;(d)计算所述存储器单元的每一个区域的第二计数值;(e)从所述空的存储器单元当中选择具有最少第一计数值的存储器单元;(f)从所述被选择的存储器单元当中选取具有最少第二计数值的区域;及(g)将数据编程到所述选取区域;从而防止被选择的存储器单元的区域在使用上的不平均。
根据本发明思想,所述第一计数值及所述第二计数值分别代表每一个存储器单元的擦除次数累积值及每一个区域的擦除次数累积值。
本发明第六个目的是提供一种用于非易失性存储器的控制器,所述非易失性存储器具有多个区域,其中所述区域具有第一数量,所述区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一数量,所述控制器包括:计算单元,用来计算每一个存储器单元的第一计数值及所述存储器单元每一个区域的第二计数值;选取器,用来选择具有空的存储器空间且最少第一计数值的存储器单元,并用来从被选择的存储器单元当中选取具有最少第二计数值的区域;及微处理器,用来编程被选取区域及擦除被选取区域上的数据;从而防止被选择的存储器单元的区域在使用上的不平均。
本发明第七个目的是提供一种数据编程系统,包括:多个存储器模块,每一个都具有多个区域,各个存储器模块的区域被组合成各个存储器单元;及控制器,用来控制多个存储器模块,包含:计算单元,用来计算每一个存储器单元的第一计数值及所述存储器单元每一个区域的第二计数值;选取器,用来选择具有空的存储器空间且最少第一计数值的存储器单元,并用来从被选择的存储器单元当中选取具有最少第二计数值的区域;及微处理器,用来编程被选取区域及擦除被选取区域上的数据;从而防止被选择的存储器单元的区域在使用上的不平均。
附图说明
图1为四个信道非易失性存储器的示意图;
图2为根据本发明数据编程系统的框图;
图3A-3C为根据本发明非易失性存储器管理方法的流程图;以及
图4为根据本发明显示存储器单元状态的参考表的示意图。
主要组件符号说明
100 非易失性存储器
101~104 存储器模块
A1~An 区域
B1~Bn 区域
C1~Cn 区域
D1~Dn 区域
U1~Un 存储器单元
210 控制器
211 计算单元
212 选取器
2121 系统均匀擦除构件
2122 子系统均匀擦除构件
213 微处理器
214 缓冲存储器
215 标记管理单元
S301~S317 步骤
S401~S405 步骤
具体实施方式
体现本发明特征与优点的一些典型实施例将在后面的说明中详细叙述。应理解的是本发明能够在不同情况下具有各种变化,这些都不脱离本发明的范围,且其中的说明及附图在本质上是起说明的作用,而不是用来限制本发明。
在本实施例中,将以四个信道非易失性存储器来表示本发明,其中信道的数量与数据总线的数量相等。然而,熟悉此技术者应了解,由多个区域组合成存储器单元的单一信道非易失性存储器也可用于实现本发明的精神。图1为四个信道非易失性存储器的示意图,其中,所述非易失性存储器的区域数为第一数量。如第1图所示,四个信道非易失性存储器100具有四个存储器模块101、102、103、104,且每一个存储器模块都具有n个区域,n为整数,所以,上文所述的第一数量,在本实施例中即为4n。举例来说,存储器模块101包含区域A1~An、存储器模块102包含区域B1~Bn、存储器模块103包含区域C1~Cn、存储器模块104包含区域D1~Dn。为了增加四个信道非易失性存储器100的数据存取速度,并让区域管理更为容易或减少映像表的容量,将具有第一数量4n个区域的非易失性存储器100中的存储器模块101、102、103、104中的各个区域组合成多个存储器单元U1~Un,其中,所述存储器单元U1~Un具有第二数量,且所述第二数量小于第一数量,在本实施例中所述第二数量即为n。举例来说,将区域A1、区域B1、区域C1、区域D1组合成存储器单元U1。换句话说,所述四个信道非易失性存储器100具有n个存储器单元U1~Un。
另外,为了有效编程(意思是写入与擦除)所述非易失性存储器100,存储器模块101、102、103、104中的各个区域A1~An、B1~Bn、C1~Cn、D1~Dn,将逻辑组合成系统区、数据区、及备用区。也就是说,所述非易失性存储器100分别在每一个存储器模块中具有系统区、数据区、及备用区。一般来说,数据区约占整个存储器模块的90%。
系统区主要用来记载系统数据,诸如存储器模块的区域码;每一个区域的区域码;每一个区域的页码;及逻辑/实体映像表等等。数据区主要用来存储使用者数据。而备用区是用来提供替代的空区域,以取代数据区中的区域。详细地说,当要将新的数据写入到一个已经存有数据的地址时,则必须将已有的数据先行擦除。
由于存储器单元数据区内仍有效的存储器单元为映像表中一个最小的管理单位,所以在原始存储器单元即将被擦除之前,存储于其中的数据将会被复制到备用区内的另一个存储器单元中。举例来说,当一个新的数据即将被写入到已经存储有数据并位于数据区的存储器单元U1时,则会从备用区当中选取另一个存储器单元U2,然后,存储于存储器单元U1的有效数据将被复制到所述存储器单元U2,而新的数据会被写入到存储器单元U2。接下来,所述存储器单元U1上的数据会被擦除且所述存储器单元U1会被挪到备用区以供未来使用。同时,所述存储器单元U2会被挪到数据区。换句话说,所述存储器单元U1逻辑上属于备用区,而所述存储器单元U2则逻辑上属于数据区。熟悉此技术者应了解,数据区内的存储器单元的逻辑关系可由逻辑/实体映像表来获得。而且,存储器单元中每一个区域都具有相同的逻辑单元数量。也就是说,存储器单元U1中的区域A1、区域B1、区域C1、区域D1都具有相同的逻辑单元数量。
请参照图2。图2为根据本发明数据编程系统的框图。所述数据编程系统包含四个信道非易失性存储器100及控制器210。所述控制器210是用来控制所述四个信道非易失性存储器100的操作,诸如数据的编程、读取、擦除等等。所述控制器210包含计算单元211、选取器212、微处理器213、缓冲存储器214、标记管理单元215。所述计算单元211、选取器212、标记管理单元214都可由编程于控制器210或非易失性存储器100中存储器区域(未显示)的硬件或软件来执行。所述微处理器213负责将数据编程于区域中及将数据从所述区域中擦除。
所述选取器212包含系统均匀擦除构件2121。所述系统均匀擦除构件2121主要对所述四个信道非易失性存储器100进行第一均匀擦除程序,以从备用区而非数据区当中选择存储器单元。在另一个实施例中,所述选取器212可进一步包含子系统均匀擦除构件2122,所述子系统均匀擦除构件2122会对所述被选择的存储器单元进行第二均匀擦除程序或由标记管理单元215检查存储于参考表的标记,以从被选择的存储器单元当中选取至少一区域作为数据编程。
简言之,上述第一均匀擦除程序包含下列步骤:(a)计算每一个存储器单元U1~Un的第一计数值,其中所述第一计数值代表每一个存储器单元U1~Un的擦除次数累积值;(b)从存储器单元U1~Un当中找出空的存储器单元;及(c)从空的存储器单元当中选择具有最少第一计数值的存储器单元。在另一个实施例中,所述第一计数值可包括每一个存储器单元U1~Un的擦除次数、使用次序、纠错码(ECC)的纠错位数、读取次数、使用次数、或闲置次数其中之一。
上述第二均匀擦除程序包含下列步骤:(a)计算每一个区域的第二计数值,其中所述第二计数值代表四个信道非易失性存储器100中每一个区域的擦除次数累积值;(b)从被选择的存储器单元的区域当中找出空的区域;及(c)从空的区域当中选取至少具有最少计数值的区域。根据所要编程的数据的大小决定选取区域的数量。所要编程的数据一般包含诸如:暂存对象、表格、映像文件或比存储器单元容量小的信息。在另一个实施例中,所述第二计数值可包括四个信道非易失性存储器100中每一个区域的擦除次数、使用次序、纠错码(ECC)的纠错位数、读取次数、使用次数、或闲置次数其中之一。
所述计算单元211主要计算每一个存储器单元U1~Un的第一计数值,所述第一计数值可为每一个存储器单元U1~Un的擦除次数、使用次序、错误修正码(ECC)的修正位数、读取次数、使用次数、或闲置次数的一个累积值或前述数值的组合累积值。在另一个实施例中,所述计算单元211进一步计算第二计数值,所述第二计数值可为四个信道非易失性存储器100中每一个区域的擦除次数、使用次序、纠错码(ECC)的纠错位数、读取次数、使用次数、或闲置次数的一个累积值或前述数值的组合累积值。在另一个实施例中,所述计算单元211只计算部分存储器单元U1~Un的第一计数值,或第二计数值。
因此,上述存储器单元可从备用区当中随机、顺序、或根据所述第一计数值来选择。同样地,上述区域也可从被选择的存储器单元当中随机、顺序、或根据所述第二计数值来选择。若存储器单元是根据第一计数值来选择的话,则被选择的存储器单元将是具有空的存储器空间及最少第一计数值的一个存储器单元。同样地,若区域是根据第二计数值来选取的话,则被选取的区域将是具有空的存储器空间及最少第二计数值的一个区域。
选取区域的数量取决于所要编程的数据大小。在本发明中,所要编程的数据一般包含诸如暂存对象、表格、映像文件或比存储器单元容量小的信息。
控制器210的缓冲存储器214是用来让四个信道非易失性存储器100暂时编程系统数据,诸如参考表或映像表。缓冲存储器214为静态随机存取存储器(SRAM)。然而,本发明并不限于此。应了解,缓冲存储器214也可为动态随机存取存储器(DRAM)、磁性随机存取存储器(MRAM)、,伪随机存取存储器(PRAM)或其它适当的存储器都可用于实现本发明。
在本实施例中,一旦数据编程于选取区域中,则标记管理单元215会在参考表中加入标记,以标示被选择的存储器单元的区域的使用状态,并在所有被选择的存储器单元的区域被使用后,将参考表中的标记予以删除。在标记管理单元215将参考表中的标记删除后,计算单元211会以默认值增加被选择的存储器单元的第一计数值。而且,前述标记不仅可被加入到参考表中,也可被加入到区域的冗余区。每当编程于选取区域的数据被擦除,计算单元211会进一步以默认值增加选取区域的第二计数值。
如上所述,所述选取器212会从存储器单元U1~Un当中选择具有空的存储器空间及最少第一计数值的存储器单元,再从被选择的存储器单元当中选取至少一具有空的存储器空间及最少第二计数值的区域。此外,所述选取器212会从参考表中没有被标记的存储器单元当中选取所述区域。在另一个实施例中,所述选取器212会从存储器单元U1~Un当中选择具有空的存储器空间及最少第一计数值的存储器单元,再直接从参考表中没有被标记的存储器单元当中选取所述区域。
在本示范实施例中,所述系统均匀擦除构件2121并不会在每一次数据被编程时,进行所述第一均匀擦除程序。所述第一均匀擦除程序只会在第一计数值达到第一默认值时,才会被启动。因此,在第一计数值达到第一默认值之前,存储器单元会由所述选取器212随机地或顺序地进行选择。在另一个实施例中,所述系统均匀擦除构件2121会在每一次数据被编程时,进行所述第一均匀擦除程序。
同样地,在本示范实施例中,所述子系统均匀擦除构件2122并不会在每一次数据被编程时,进行所述第二均匀擦除程序。所述第二均匀擦除程序只会在第二计数值达到第二默认值时,才会被启动。因此,在第二计数值达到第二默认值之前,区域会由所述选取器212随机地或顺序地进行选取。不同之处在于,区域的选取与选取方式无关,而是基于所述区域是否为无标记区域而定。在另一个实施例中,所述子系统均匀擦除构件2122会在每一次数据被编程时,进行所述第二均匀擦除程序。
所述四个信道非易失性存储器100为闪存。更明确地说,所述四个信道非易失性存储器100为多级单元(MLC)NAND闪存。然而,本发明并不限于此。所述四个信道非易失性存储器100也可为单级单元(SLC)NAND闪存。
请参照图3A-3C及图4。图3A-3C为根据本发明非易失性存储器管理方法的流程图,而第4图为根据本发明显示存储器单元U1状态的参考表的示意图。如上所述,四个存储器模块101、102、103、104中的各个区域组合成各个存储器单元U1~Un以增加所述四个信道非易失性存储器100的数据存取速度,如步骤S301所示。然后,通过所述选取器212随机、顺序、或由第一均匀擦除程序从备用区中存储器单元U1~Un当中选择存储器单元,诸如存储器单元U1,如步骤S302所示。接着,通过所述选取器212随机、顺序、或由第二均匀擦除程序从被选择的存储器单元U1当中选取至少一区域,如步骤S303-S305所示。第4图显示区域在顺序被选取时,存储器单元U1的参考表示意图。
若区域是顺序地或随机地被选取,一旦区域被选取,则数据会被写入所述选取区域,如步骤S306所示,而标记会由标记管理单元215在参考表中被加入,以标示所述选取区域的使用状态,如步骤S307所示。除非所述选取区域上的数据被擦除,否则所述选取区域不会再被选取以供任何进一步数据的编程。
在这同时,标记管理单元215会持续判断被选择的存储器单元U1中每一个区域是否已被标记,如步骤S308所示。假如每一个被选择的存储器单元U1的区域都已被标记(也就是说所述被选择的存储器单元U1已被完全的使用且没有包含任何无标记区域),那么标记管理单元215会将对应于被选择的存储器单元U1的标记全部删除,如步骤S309所示。举例来说,如第4图所示,当区域A1、区域B1、区域C1、区域D1已全部被使用且标记时,对应于所述被选择的存储器单元U1的标记将全部被删除。在标记管理单元215删除所述被选择的存储器单元U1的标记后,存储器单元U1的第一计数值就会以默认值增加,例如:增加1,如步骤S310所示。
相反地,在步骤S306,数据写入后,假如被选择的存储器单元U1仍包含无标记区域,则所述无标记区域将供将来使用且所述标记将维持现状,不会从参考表中被删除。如上所述,每当要写入数据,存储器单元会被随机、顺序、或经由第一均匀擦除程序被选择,如步骤S302所示,也因此,存储器单元U1并不会每一次都被选择。若同一个存储器单元在步骤S302再次被选择,则选取的区域将与选取方式无关,而是基于所述区域是否为无标记区域而定,如步骤S311所示。之后,数据会被写入所述无标记区域,如步骤S312所示,且另一个标记会由标记管理单元215被加入到所述参考表中,以标示所述选取的无标记区域的使用状态,如步骤S313所示。接下来,所述管理方法将从步骤S308继续。因此步骤S308-S313会持续地重复。
如第4图所示,区域A1在步骤S401被选取及标记。之后,当数据从区域A1被擦除后,区域A1的标记会维持不变,而区域B1会在步骤S402被选取及标记。接下来,当数据从区域B1被擦除后,区域A1及B1的标记会维持不变,而区域C1会在步骤S403被选取及标记。最后,当数据从区域C1被擦除后,区域A1、B1、C1的标记会维持不变,而区域D1会在步骤S404被选取及标记。此时,区域A1、B1、C1、D1的标记将全部被删除,且全部成为无标记区域,如所示S405步骤。
而且,在另一个实施例中,无标记区域并不保证其为空的区域。无标记区域仅仅表示其尚未被用来编程具有小容量的数据,诸如暂存对象、表格、映像文件或比存储器单元容量小的数据。若被选择的存储器单元不但已由数据所占据并在参考表中已标记之外,且所述存储器单元逻辑上属于数据区时,则所述标记管理单元215并不会标记所述存储器单元,而是变成标记逻辑上属于备用区且对应于所述被选择的存储器单元的另一个存储器单元。因此,一旦所述被选择的存储器单元中的数据被擦除且所述被选择的存储器单元变成属于备用区时,则所述被选择的存储器单元会接续参与所述编程循环。换句话说,假如无标记区域逻辑上属于数据区中的存储器单元,则所述无标记区域会等到所述存储器单元逻辑上属于备用区时才会被选取。在另一个实施例中,参考表可被动态存储于非易失性存储器100的缓冲存储器214、备用区、数据区、或其它上述位置中。
由标记管理单元215加入标记是为了标示数据已编程于存储器单元的区域中,而所述标记在所有的存储器单元的区域都被标记后予以删除。也就是说,所述标记会以存储器单元为单位,而非以区域为单位,进行删除。然而,应了解,在别的实施例中,所述标记也可以以区域为单位,分开予以删除。
而且,在步骤S303-305,假如区域是由第二均匀擦除程序从被选择的存储器单元U1当中选取,则在区域被选取后,数据会被写入到所述选取区域,如步骤S314所示。其中所述第二均匀擦除程序是根据所述四个信道非易失性存储器100中每一个区域的下列数值的一个累积值或组合累积值而进行:擦除次数、使用次序、纠错码(ECC)的纠错位数、读取次数、使用次数、或闲置次数。之后,一旦写入的数据从选取区域被擦除,如步骤S315所示,计算单元211会以默认值增加选取区域的第二计数值,如步骤S316所示。接下来,在选择存储器单元之后,当要写入另一数据时,所述选取器212会根据所述第二计数值选取区域。也就是说,所述选取区域为被选择的存储器单元中具有最少第二计数值的一个区域,如步骤S317所示。然后,所述管理方法将从步骤S314继续。而步骤S314-S317会持续地重复。
简言之,随机地或顺序地选取一个区域与由第二均匀擦除程序来选取一个区域在流程上的差异,主要在于前者是根据一个区域是否为无标记区域来作选取,而后者是根据一个区域是否具有最少第二计数值来作选取。
本发明主要防止未使用的存储器单元区域同时被擦除并避免不均匀地使用存储器单元中的区域,以延长非易失性存储器的寿命。
虽然本发明已由上述的实施例详细叙述,而可以由本领域的技术人员做出各种变化,这些都不脱离附加的权利要求所要保护的范围。
Claims (29)
1.一种存储器管理方法,用于具有多个区域的非易失性存储器,其中所述区域具有第一数量,所述存储器管理方法包括以下步骤:
(a)将所述多个区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一数量;
(b)将数据写入到所述存储器单元当中的至少一区域;
(c)在所述存储器单元其中之一所属的区域都被写入后,增加所述所属区域都被写入的存储器单元相对应的计数值;以及
(d)根据至少部分存储器单元的计数值,对所述非易失性存储器进行第一均匀擦除程序,其中
第一均匀擦除程序包括:
计算至少部分存储器单元的计数值;
从至少部分所述存储器单元当中找出空的存储器单元;以及
从空的存储器单元当中再选择具有最少计数值的存储器单元;
其中所述计数值包括擦除次数、使用次序、改错码的纠错位数、读取次数、使用次数、或闲置次数的累积值或前述数值的组合累积值。
2.根据权利要求1所述的存储器管理方法,在步骤(b)及(c)之间,进一步包括标记写入区域的步骤。
3.根据权利要求2所述的存储器管理方法,其中在将数据写入到所述存储器单元当中的至少一区域后,还包括在参考表中标记所述写入区域,用以标示所述写入区域的使用状态的步骤。
4.根据权利要求3所述的存储器管理方法,其中在所述存储器单元其中之一所属的区域都被写入后,还包括从参考表中删除标示所述存储器单元写入区域的标记的步骤。
5.根据权利要求4所述的存储器管理方法,其中在所有标示所述写入区域的标记被删除后,所述存储器单元的计数值将增加一个默认值。
6.根据权利要求1所述的存储器管理方法,其中在所述写入区域的数据被擦除后,所述存储器单元的计数值将增加一个默认值。
7.根据权利要求1所述的存储器管理方法,在步骤(a)及(b)之间,进一步包括以下步骤:
(a1)从至少部分所述存储器单元当中选择存储器单元;以及
(a2)从所述被选择的存储器单元当中再选取至少一区域。
8.根据权利要求7所述的存储器管理方法,其中所述选取区域是随机地从所述被选择的存储器单元当中选取出来的。
9.根据权利要求7所述的存储器管理方法,其中所述选取区域是顺序地从所述被选择的存储器单元当中选取出来的。
10.根据权利要求1所述的存储器管理方法,其中所述数据比所述存储器单元的容量小。
11.根据权利要求1所述的存储器管理方法,其中所述数据包括暂存对象、表格、映像文件或比所述存储器单元容量小的数据。
12.根据权利要求1所述的存储器管理方法,其中所述非易失性存储器包括多个数据总线。
13.一种用于非易失性存储器的控制器,所述非易失性存储器具有多个区域,其中所述区域具有第一数量,所述区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一数量,所述控制器包括:
微处理器,用来编程被选取区域及擦除被选取区域上的数据;
计算单元,耦合于所述微处理器,用来计算所述存储器单元的计数值;以及
选取器,耦合于所述微处理器,包括一系统均匀擦除构件,用于对所述非易失性存储器进行第一均匀擦除程序,用来选择具有空的存储器空间及最少计数值的存储器单元,并包括子系统均匀擦除构件,用于对所述存储器单元其中一个进行第二均匀擦除程序,用来从被选择的存储器单元中选取至少一区域;
其中所述计数值包括擦除次数、使用次序、改错码的纠错位数、读取次数、使用次数、或闲置次数的累积值或前述数值的组合累积值。
14.根据权利要求13所述的控制器,进一步包括缓冲存储器,用来编程参考表。
15.根据权利要求14所述的控制器,进一步包括标记管理单元,用来在所述数据被编程到所述选取区域时,在参考表中加入标记,以标示所述被选择的存储器单元的区域的使用状态,并在所有所述被选择的存储器单元的区域被使用后,用来删除所述参考表中的标记。
16.根据权利要求15所述的控制器,其中所述被选取区域为无标记区域。
17.根据权利要求15所述的控制器,其中一旦被选择的存储器单元的区域的标记被标记管理单元删除,则所述计算单元将把被选择的存储器单元的计数值增加一个默认值。
18.根据权利要求13所述的控制器,其中所述选取器顺序从被选择的存储器单元当中选取区域。
19.根据权利要求13所述的控制器,其中所述选取器随机地从被选择的存储器单元当中选取区域。
20.根据权利要求13所述的控制器,其中所述数据包括暂存对象、表格、映像文件或比存储器单元容量小的数据。
21.根据权利要求13所述的控制器,其中所述非易失性存储器包括多个数据总线。
22.一种数据编程系统,包括:
多个存储器模块,每一个都具有多个区域,各个存储器模块的区域被组合成各个存储器单元;以及
控制器,用来控制多个存储器模块,包含:
计算单元,用来计算所述存储器单元的计数值;
选取器,包括系统均匀擦除构件,用于对所述存储器模块进行第一均匀擦除程序,用来选择具有空的存储器空间且最少计数值的存储器单元,并包括子系统均匀擦除构件,用于对所述存储器单元其中一个进行第二均匀擦除程序,用来从被选择的存储器单元当中选取至少一区域;及
微处理器,用来编程被选取区域及擦除被选取区域上的数据;
其中所述计数值包括擦除次数、使用次序、改错码的纠错位数、读取次数、使用次数、或闲置次数的累积值或前述数值的组合累积值。
23.根据权利要求22所述的数据编程系统,其中所述控制器进一步包括缓冲存储器,用来编程参考表。
24.根据权利要求23所述的数据编程系统,其中所述控制器进一步包括标记管理单元,用来在所述数据被编程到所述选取区域时,在参考表中加入标记,以标示所述被选择的存储器单元的区域的使用状态,并在所有所述被选择的存储器单元的区域被使用后,用来删除所述参考表中的标记。
25.一种存储器管理方法,用于具有多个区域的非易失性存储器,其中所述区域具有第一数量,所述存储器管理方法包括以下步骤:
(a)将所述多个区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一数量;
(b)计算每一个存储器单元的第一计数值;
(c)从所述存储器单元当中找出空的存储器单元;
(d)计算所述存储器单元的每一个区域的第二计数值;
(e)从所述空的存储器单元当中选择具有最少第一计数值的存储器单元;
(f)从所述被选择的存储器单元当中选取具有最少第二计数值的区域;以及
(g)将数据编程到所述选取区域;
其中所述第一计数值及第二计数值分别包括擦除次数、使用次序、改错码的纠错位数、读取次数、使用次数、或闲置次数的累积值或前述数值的组合累积值。
26.根据权利要求25所述的存储器管理方法,其中所述数据包括暂存对象、表格、映像文件或比存储器单元容量小的数据。
27.根据权利要求25所述的存储器管理方法,其中所述数据比被选择的存储器单元的容量小。
28.根据权利要求25所述的存储器管理方法,其中所述非易失性存储器包括多个信道。
29.根据权利要求25所述的存储器管理方法,其中所述非易失性存储器包括多个数据总线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101678149A CN101727396B (zh) | 2008-10-10 | 2008-10-10 | 用于非易失性存储器的存储器管理方法及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101678149A CN101727396B (zh) | 2008-10-10 | 2008-10-10 | 用于非易失性存储器的存储器管理方法及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727396A CN101727396A (zh) | 2010-06-09 |
CN101727396B true CN101727396B (zh) | 2012-11-28 |
Family
ID=42448314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101678149A Active CN101727396B (zh) | 2008-10-10 | 2008-10-10 | 用于非易失性存储器的存储器管理方法及其控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101727396B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017107161A1 (zh) * | 2015-12-25 | 2017-06-29 | 研祥智能科技股份有限公司 | 基于异构混合内存的nvm内存擦写控制方法和系统 |
CN109947353B (zh) * | 2017-12-20 | 2021-03-09 | 浙江宇视科技有限公司 | 存储管理方法、固态硬盘及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1351350A (zh) * | 2000-10-27 | 2002-05-29 | 岳京星 | 闪存中存储块的分区及读写信息标识的方法 |
CN1466060A (zh) * | 2002-06-10 | 2004-01-07 | 三星电子株式会社 | 闪速存储器文件系统 |
-
2008
- 2008-10-10 CN CN2008101678149A patent/CN101727396B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1351350A (zh) * | 2000-10-27 | 2002-05-29 | 岳京星 | 闪存中存储块的分区及读写信息标识的方法 |
CN1466060A (zh) * | 2002-06-10 | 2004-01-07 | 三星电子株式会社 | 闪速存储器文件系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101727396A (zh) | 2010-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10209902B1 (en) | Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data | |
US8386697B2 (en) | Memory managing method for non-volatile memory and controller using the same | |
US8122184B2 (en) | Methods for managing blocks in flash memories | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
KR101464338B1 (ko) | 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템 | |
US8046526B2 (en) | Wear leveling method and controller using the same | |
US8041884B2 (en) | Controller for non-volatile memories and methods of operating the memory controller | |
CN100492322C (zh) | 非易失性存储系统中的损耗平衡 | |
CN101681300B (zh) | 存储器系统 | |
KR101477047B1 (ko) | 메모리 시스템 및 그것의 블록 병합 방법 | |
CN102292711B (zh) | 固态存储器格式化 | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
CN101425041B (zh) | 在nand flash存储器上建立fat文件系统的优化方法 | |
TWI399644B (zh) | 非揮發記憶體區塊管理方法 | |
US8504760B2 (en) | Method and apparatus for managing erase count of memory device | |
US20100161885A1 (en) | Semiconductor storage device and storage controlling method | |
CN102047230A (zh) | 混合式存储器管理 | |
CN101494085B (zh) | 防止非易失性存储器发生读取干扰的方法及其控制器 | |
CN103106923A (zh) | 存储器装置架构和操作 | |
US8098523B2 (en) | Semiconductor memory device with memory cell having charge accumulation layer and control gate and memory system | |
CN102157202B (zh) | 防止非易失性存储器发生读取干扰的方法及其控制器 | |
JP2011192212A (ja) | メモリシステム | |
CN102142277A (zh) | 一种存储器及存储器读写控制方法及系统 | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
CN101727396B (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 |