用于非易失性存储器的存储器管理方法及其控制器的制作方法

文档序号:6467203阅读:133来源:国知局
专利名称:用于非易失性存储器的存储器管理方法及其控制器的制作方法
技术领域
本发明涉及一种存储器管理方法,尤其涉及一种用于非易失性存储器的子系统均
匀擦除方法及其控制器。
背景技术
诸如闪存存储系统的非易失性存储器系统,由于其存储器系统小巧的实体尺寸及
非易失性存储器可重复编程的能力,使得其使用性更为增加。闪存存储系统小巧的实体尺
寸,也让其在日趋普遍的电子装置上的使用需求提高。使用闪存存储系统的装置包含,但不
拘限于数字相机、数字摄像机、数字音乐播放器、便携式计算机、全球定位装置。闪存存储系
统的非易失性存储器可重复编程的能力让闪存存储系统可以被重复使用。 —般来说,闪存存储系统可包含快闪记忆卡及闪存芯片组。闪存芯片组一般包含
闪存组件及控制器。原则上,闪存芯片组可组装于嵌入式系统。装配或主系统的制造业者
一般取得的闪存,如同其它配件,是以组件的形式呈现,然后,所述闪存及其它配件会再被
组装到主系统内。 虽然非易失性存储器,或更明确地说,闪存系统中的闪存存储区域可被重复编程 及擦除,每一个区域或实体位置在耗损前,仅能以特定的次数被擦除,也就是说,在存储器 容量开始变小之前。换言之,每一个区域具有编程及擦除循环限制。对于某些存储器而言, 在区域被视为无法使用之前,一个区域大约可被擦除一万次。而对于其它存储器而言,在区 域被视为耗损之前, 一个区域大约可被擦除十万次或甚至百万次。当一个区域耗损而导致 无法使用或闪存系统部分存储容量的效率相当程度地降低时,可能会对闪存系统的使用者 相当不利,例如遗失已编程的数据或无法编程数据。 闪存系统区域或实体位置的耗损,会因为每一个区域编程的次数而有所不同。假 若一个区域,或更明确地说,存储组件,被编程一次,然后不再被重新的编程,则编程及擦除 循环的次数将比耗损的区域低。然而,假如一个区域重复地写入及擦除,例如,以一个循环, 则所述区域的耗损程度将相对较高。熟悉此技艺者应了解,由于主机(即存取或使用闪存 系统的系统)常使用逻辑区域地址来存取编程于闪存系统的数据,假若一个主机重复地使 用相同的逻辑区域地址来重复写入数据时,则闪存系统中相同的实体位置或区域将被重复 地写入及擦除。 当一些区域耗损而其余区域仍有效时,耗损的区域会让闪存系统的整体性能遭到 影响。耗损的区域除了本身会让性能降低之外,闪存系统的整体性能也会在有效区域数量 不足以编程数据时受到影响。通常,当闪存系统中出现过多的耗损区域时,即使闪存系统仍 然存在有效的其它区域,但所述闪存系统还是会被视为无法使用。当包含相当数量未耗损 区域的闪存系统被视为无法使用时,很多与所述闪存系统相关的资源将遭到浪费。
为了让闪存系统的区域能够均匀的耗损,常会进行均匀擦除程序。均匀擦除程序, 如熟悉此技术者所知,是用来允许实体位置或关联于特定逻辑区域地址的区域被替换,使 得相同的逻辑区域地址并不永远属于同一个实体位置或区域。通过变更区域关联的逻辑区域地址,可以让特定区域不会在其它区域耗损前先行耗损。 最近,以区域组合为单位来传输数据的非易失性存储器正快速地发展,归因于所 述非易失性存储器具有比以单区域为单位来传输数据的传统非易失性存储器更快的存取 速度,或让区域管理更为容易或能减少映像表的容量。换句话说,所述非易失性存储器是以 存储器单元而非区域为单位来管理数据。因此,数据也以存储器单元为单位来擦除。然而, 存储器单元中未使用的区域有可能在擦除的同时也被擦除,且让存储器单元的区域产生使 用上不平均的情况。因此,一种可以延长非易失性存储器寿命并用于非易失性存储器的子 系统均匀擦除方法及其控制器为目前所述相关领域所亟需。

发明内容
由于现有技术受限于上述问题。本发明的目的在于提供一种用于非易失性存储器
的存储器管理方法及其控制器,以防止存储器单元的区域在使用上的不平均。 本发明第一个目的是提供一种存储器管理方法,用于具有多个区域的非易失性存
储器,其中所述区域具有第一数量,所述存储器管理方法包括以下步骤(a)将所述多个区
域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一
数量;(b)将数据写入到所述存储器单元当中的至少一区域;(C)在所述存储器单元其中之
一所属的区域都被写入后,增加所述所属区域都被写入的存储器单元相对应的计数值;及
(d)根据至少部分存储器单元的计数值,对所述非易失性存储器进行均匀擦除程序。 根据本发明思想,所述存储器管理方法在步骤(b)及(c)之间,进一步包括标记写
入区域的步骤。 根据本发明思想,在将资料写入到所述存储器单元当中的至少一区域后,更包括
在参考表中标记所述写入区域,用以标示所述写入区域的使用状态的步骤。 根据本发明思想,在所述存储器单元其中之一所属的区域都被写入后,还包括从
参考表中删除标示所述存储器单元写入区域的标记的步骤。 根据本发明思想,在所有标示所述写入区域的标记被删除后,所述存储器单元的 计数值将增加默认值。 根据本发明思想,在所述写入区域的数据被擦除后,所述存储器单元的计数值将 增加默认值。 根据本发明思想,所述计数值代表存储器单元的擦除次数累积值。 根据本发明思想,所述存储器管理方法在步骤(b)及(c)之间,进一步包括选取无
标记区域并将另一数据写入到所述选取无标记区域的步骤。 根据本发明思想,步骤(d)包括(dl)计算至少部分存储器单元的计数值;(d2) 从至少部分所述存储器单元当中找出空的存储器单元;及(d3)从空的存储器单元当中再 选择具有最少计数值的存储器单元。 根据本发明思想,所述存储器管理方法在步骤(a)及(b)之间,进一步包括以下步 骤(al)从至少部分所述存储器单元当中选择存储器单元;及(a2)从所述被选择的存储器 单元当中再选取至少一区域。 根据本发明思想,所述被选择的存储器单元是随机、顺序、或经由均匀擦除程序从 至少部分所述存储器单元当中选择出来。
根据本发明思想,所述选取区域是随机地或顺序地从所述被选择的存储器单元当 中选取出来。 根据本发明思想,所述数据比所述存储器单元的容量小。 根据本发明思想,所述数据包括暂存对象、表格、映像文件或比所述存储器单元容 量小的数据。 根据本发明思想,所述非易失性存储器包括多个信道或数据总线。
本发明第二个目的是提供一种用于非易失性存储器的控制器,所述非易失性存储 器具有多个区域,其中所述区域具有第一数量,所述区域组合成多个存储器单元,其中所述 存储器单元具有第二数量,且所述第二数量小于第一数量,所述控制器包括系统均匀擦除 构件,用以对所述非易失性存储器进行第一均匀擦除程序,以选择存储器单元;及子系统均 匀擦除构件,用以对所述被选择的存储器单元进行第二均匀擦除程序,以从所述被选择的 存储器单元选取至少一区域来编程数据;从而防止被选择的存储器单元的区域在使用上的 不平均。 本发明第三个目的是提供一种用于非易失性存储器的控制器,所述非易失性存储 器具有多个区域,其中所述区域具有第一数量,所述区域组合成多个存储器单元,其中所述 存储器单元具有第二数量,且所述第二数量小于第一数量,所述控制器包括微处理器,用 来编程被选取区域及擦除被选取区域上的数据;计算单元,耦合于所述微处理器,用来计算 每一个所述存储器单元的计数值;及选取器,耦合于所述微处理器,用来选择具有空的存储 器空间及最少计数值的存储器单元,并用来从被选择的存储器单元中选取至少一区域。
根据本发明思想,所述选取器包括子系统均匀擦除构件,用以对所述存储器单元 其中一个进行第一均匀擦除程序,以从所述存储器单元当中选取至少一区域;及系统均匀 擦除构件,用以对所述非易失性存储器进行第二均匀擦除程序,以选择存储器单元来编程 数据。 根据本发明思想,所述控制器进一步包括缓冲存储器用来编程参考表;及标记管 理单元,用来在所述数据被编程到所述选取区域时,于参考表中加入标记,以标示所述被选 择的存储器单元的区域的使用状态,并在所有所述被选择的存储器单元的区域被使用后, 用来删除所述参考表中的标记。 根据本发明思想,所述计数值代表每一个存储器单元的擦除次数累积值。 一旦被 选择的存储器单元的区域的标记被标记管理单元删除,则所述计算单元将把被选择的存储 器单元的计数值增加默认值。 根据本发明思想,所述被选取区域为无标记区域。所述选取器顺序地或随机地从 被选择的存储器单元当中选取区域。 本发明第四个目的是提供一种数据编程系统,包括多个存储器模块,每一个都具 有多个区域,各个存储器模块的区域被组合成各个存储器单元;及控制器,用来控制多个存 储器模块,包含计算单元,用来计算所述存储器单元的计数值;选取器,用来选择具有空 的存储器空间且最少计数值的存储器单元,并用来从被选择的存储器单元当中选取至少一 区域;及微处理器,用来编程被选取区域及擦除被选取区域上的数据;从而防止被选择的 存储器单元的区域在使用上的不平均。 根据本发明思想,所述控制器进一步包括缓冲存储器,用来编程参考表;及标记管理单元,用来在所述数据被编程到所述选取区域时,在参考表中加入标记,以标示所述被选 择的存储器单元的区域的使用状态,并在所有所述被选择的存储器单元的区域被使用后, 用来删除所述参考表中的标记。 本发明第五个目的是提供一种存储器管理方法,用于具有多个区域的非易失性存 储器,其中所述区域具有第一数量,所述存储器管理方法包括以下步骤(a)将所述多个区 域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一 数量;(b)计算每一个存储器单元的第一计数值;(c)从所述存储器单元当中找出空的存储 器单元;(d)计算所述存储器单元的每一个区域的第二计数值;(e)从所述空的存储器单元 当中选择具有最少第一计数值的存储器单元;(f)从所述被选择的存储器单元当中选取具 有最少第二计数值的区域;及(g)将数据编程到所述选取区域;从而防止被选择的存储器 单元的区域在使用上的不平均。 根据本发明思想,所述第一计数值及所述第二计数值分别代表每一个存储器单元 的擦除次数累积值及每一个区域的擦除次数累积值。 本发明第六个目的是提供一种用于非易失性存储器的控制器,所述非易失性存储 器具有多个区域,其中所述区域具有第一数量,所述区域组合成多个存储器单元,其中所述 存储器单元具有第二数量,且所述第二数量小于第一数量,所述控制器包括计算单元,用 来计算每一个存储器单元的第一计数值及所述存储器单元每一个区域的第二计数值;选取
器,用来选择具有空的存储器空间且最少第一计数值的存储器单元,并用来从被选择的存 储器单元当中选取具有最少第二计数值的区域;及微处理器,用来编程被选取区域及擦除 被选取区域上的数据;从而防止被选择的存储器单元的区域在使用上的不平均。
本发明第七个目的是提供一种数据编程系统,包括多个存储器模块,每一个都具 有多个区域,各个存储器模块的区域被组合成各个存储器单元;及控制器,用来控制多个存 储器模块,包含计算单元,用来计算每一个存储器单元的第一计数值及所述存储器单元每 一个区域的第二计数值;选取器,用来选择具有空的存储器空间且最少第一计数值的存储 器单元,并用来从被选择的存储器单元当中选取具有最少第二计数值的区域;及微处理器, 用来编程被选取区域及擦除被选取区域上的数据;从而防止被选择的存储器单元的区域在 使用上的不平均。


图1为四个信道非易失性存储器的示意图; 图2为根据本发明数据编程系统的框图3A-3C为根据本发明非易失性存储器管理方法的流程图;以及 图4为根据本发明显示存储器单元状态的参考表的示意图。 主要组件符号说明







100 非易失性存储器 101 104 存储器模块 Al An 区域 Bl Bn 区域 CI Cn 区域
8
Dl Dn区域Ul Un存储器单元210控制器211计算单元212选取器2121系统均匀擦除构件2122子系统均匀擦除构件213微处理器214缓冲存储器215标记管理单元S301 S317步骤S401 S405步骤
具体实施例方式
体现本发明特征与优点的一些典型实施例将在后面的说明中详细叙述。应理解的 是本发明能够在不同情况下具有各种变化,这些都不脱离本发明的范围,且其中的说明及 附图在本质上是起说明的作用,而不是用来限制本发明。 在本实施例中,将以四个信道非易失性存储器来表示本发明,其中信道的数量与 数据总线的数量相等。然而,熟悉此技术者应了解,由多个区域组合成存储器单元的单一信 道非易失性存储器也可用于实现本发明的精神。图l为四个信道非易失性存储器的示意 图,其中,所述非易失性存储器的区域数为第一数量。如第l图所示,四个信道非易失性存 储器100具有四个存储器模块101、102、103、104,且每一个存储器模块都具有n个区域,n 为整数,所以,上文所述的第一数量,在本实施例中即为4n。举例来说,存储器模块101包含 区域Al An、存储器模块102包含区域B1 Bn、存储器模块103包含区域CI Cn、存储器 模块104包含区域D1 Dn。为了增加四个信道非易失性存储器100的数据存取速度,并让 区域管理更为容易或减少映像表的容量,将具有第一数量4n个区域的非易失性存储器100 中的存储器模块101 、 102、 103、 104中的各个区域组合成多个存储器单元Ul Un,其中,所 述存储器单元Ul Un具有第二数量,且所述第二数量小于第一数量,在本实施例中所述第 二数量即为n。举例来说,将区域A1、区域B1、区域C1、区域D1组合成存储器单元U1。换句 话说,所述四个信道非易失性存储器100具有n个存储器单元Ul Un。
另外,为了有效编程(意思是写入与擦除)所述非易失性存储器100,存储器模块 101 、102、 103、 104中的各个区域Al An、 Bl Bn、 Cl Cn、 Dl Dn,将逻辑组合成系统 区、数据区、及备用区。也就是说,所述非易失性存储器IOO分别在每一个存储器模块中具 有系统区、数据区、及备用区。 一般来说,数据区约占整个存储器模块的90%。
系统区主要用来记载系统数据,诸如存储器模块的区域码;每一个区域的区域码; 每一个区域的页码;及逻辑/实体映像表等等。数据区主要用来存储使用者数据。而备用 区是用来提供替代的空区域,以取代数据区中的区域。详细地说,当要将新的数据写入到一 个已经存有数据的地址时,则必须将已有的数据先行擦除。 由于存储器单元数据区内仍有效的存储器单元为映像表中一个最小的管理单位,所以在原始存储器单元即将被擦除之前,存储于其中的数据将会被复制到备用区内的另一 个存储器单元中。举例来说,当一个新的数据即将被写入到已经存储有数据并位于数据区 的存储器单元U1时,则会从备用区当中选取另一个存储器单元U2,然后,存储于存储器单 元U1的有效数据将被复制到所述存储器单元U2,而新的数据会被写入到存储器单元U2。接 下来,所述存储器单元Ul上的数据会被擦除且所述存储器单元Ul会被挪到备用区以供未 来使用。同时,所述存储器单元U2会被挪到数据区。换句话说,所述存储器单元U1逻辑上 属于备用区,而所述存储器单元U2则逻辑上属于数据区。熟悉此技术者应了解,数据区内 的存储器单元的逻辑关系可由逻辑/实体映像表来获得。而且,存储器单元中每一个区域 都具有相同的逻辑单元数量。也就是说,存储器单元U1中的区域A1、区域B1、区域C1、区域 Dl都具有相同的逻辑单元数量。 请参照图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)计算每一个存储器单元Ul Un的第一计数值,其中所述第一计数值代表每一个存储器单元U1 Un的擦除次数累积值; (b)从存储器单元U1 Un当中找出空的存储器单元;及(c)从空的存储器单元当中选择 具有最少第一计数值的存储器单元。在另一个实施例中,所述第一计数值可包括每一个存 储器单元Ul Un的擦除次数、使用次序、纠错码(ECC)的纠错位数、读取次数、使用次数、 或闲置次数其中之一。 上述第二均匀擦除程序包含下列步骤(a)计算每一个区域的第二计数值,其中 所述第二计数值代表四个信道非易失性存储器100中每一个区域的擦除次数累积值;(b) 从被选择的存储器单元的区域当中找出空的区域;及(c)从空的区域当中选取至少具有最 少计数值的区域。根据所要编程的数据的大小决定选取区域的数量。所要编程的数据一般 包含诸如暂存对象、表格、映像文件或比存储器单元容量小的信息。在另一个实施例中,所 述第二计数值可包括四个信道非易失性存储器100中每一个区域的擦除次数、使用次序、 纠错码(ECC)的纠错位数、读取次数、使用次数、或闲置次数其中之一。
所述计算单元211主要计算每一个存储器单元Ul Un的第一计数值,所述第一 计数值可为每一个存储器单元Ul 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会从存储器单元Ul Un 当中选择具有空的存储器空间及最少第一计数值的存储器单元,再直接从参考表中没有被 标记的存储器单元当中选取所述区域。 在本示范实施例中,所述系统均匀擦除构件2121并不会在每一次数据被编程时, 进行所述第一均匀擦除程序。所述第一均匀擦除程序只会在第一计数值达到第一默认值 时,才会被启动。因此,在第一计数值达到第一默认值之前,存储器单元会由所述选取器212 随机地或顺序地进行选择。在另一个实施例中,所述系统均匀擦除构件2121会在每一次数 据被编程时,进行所述第一均匀擦除程序。 同样地,在本示范实施例中,所述子系统均匀擦除构件2122并不会在每一次数据 被编程时,进行所述第二均匀擦除程序。所述第二均匀擦除程序只会在第二计数值达到第 二默认值时,才会被启动。因此,在第二计数值达到第二默认值之前,区域会由所述选取器 212随机地或顺序地进行选取。不同之处在于,区域的选取与选取方式无关,而是基于所述 区域是否为无标记区域而定。在另一个实施例中,所述子系统均匀擦除构件2122会在每一 次数据被编程时,进行所述第二均匀擦除程序。 所述四个信道非易失性存储器100为闪存。更明确地说,所述四个信道非易失性
11存储器100为多级单元(MLC)NAND闪存。然而,本发明并不限于此。所述四个信道非易失 性存储器100也可为单级单元(SLC)NAND闪存。 请参照图3A-3C及图4。图3A-3C为根据本发明非易失性存储器管理方法的流程 图,而第4图为根据本发明显示存储器单元Ul状态的参考表的示意图。如上所述,四个存 储器模块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的区域都已被标记 (也就是说所述被选择的存储器单元Ul已被完全的使用且没有包含任何无标记区域),那 么标记管理单元215会将对应于被选择的存储器单元Ul的标记全部删除,如步骤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图所示,区域Al在步骤S401被选取及标记。之后,当数据从区域Al被擦 除后,区域A1的标记会维持不变,而区域B1会在步骤S402被选取及标记。接下来,当数据 从区域Bl被擦除后,区域Al及Bl的标记会维持不变,而区域Cl会在步骤S403被选取及 标记。最后,当数据从区域C1被擦除后,区域A1、B1、C1的标记会维持不变,而区域D1会在 步骤S404被选取及标记。此时,区域A1、B1、C1、D1的标记将全部被删除,且全部成为无标 记区域,如所示S405步骤。 而且,在另一个实施例中,无标记区域并不保证其为空的区域。无标记区域仅仅 表示其尚未被用来编程具有小容量的数据,诸如暂存对象、表格、映像文件或比存储器单元容量小的数据。若被选择的存储器单元不但已由数据所占据并在参考表中已标记之外,且 所述存储器单元逻辑上属于数据区时,则所述标记管理单元215并不会标记所述存储器单 元,而是变成标记逻辑上属于备用区且对应于所述被选择的存储器单元的另一个存储器单 元。因此,一旦所述被选择的存储器单元中的数据被擦除且所述被选择的存储器单元变成 属于备用区时,则所述被选择的存储器单元会接续参与所述编程循环。换句话说,假如无标 记区域逻辑上属于数据区中的存储器单元,则所述无标记区域会等到所述存储器单元逻辑 上属于备用区时才会被选取。在另一个实施例中,参考表可被动态存储于非易失性存储器 100的缓冲存储器214、备用区、数据区、或其它上述位置中。 由标记管理单元215加入标记是为了标示数据已编程于存储器单元的区域中,而 所述标记在所有的存储器单元的区域都被标记后予以删除。也就是说,所述标记会以存储 器单元为单位,而非以区域为单位,进行删除。然而,应了解,在别的实施例中,所述标记也 可以以区域为单位,分开予以删除。 而且,在步骤S303-305,假如区域是由第二均匀擦除程序从被选择的存储器单元 Ul当中选取,则在区域被选取后,数据会被写入到所述选取区域,如步骤S314所示。其中所 述第二均匀擦除程序是根据所述四个信道非易失性存储器100中每一个区域的下列数值 的一个累积值或组合累积值而进行擦除次数、使用次序、纠错码(ECC)的纠错位数、读取 次数、使用次数、或闲置次数。之后,一旦写入的数据从选取区域被擦除,如步骤S315所示, 计算单元211会以默认值增加选取区域的第二计数值,如步骤S316所示。接下来,在选择 存储器单元之后,当要写入另一数据时,所述选取器212会根据所述第二计数值选取区域。 也就是说,所述选取区域为被选择的存储器单元中具有最少第二计数值的一个区域,如步 骤S317所示。然后,所述管理方法将从步骤S314继续。而步骤S314-S317会持续地重复。
简言之,随机地或顺序地选取一个区域与由第二均匀擦除程序来选取一个区域在 流程上的差异,主要在于前者是根据一个区域是否为无标记区域来作选取,而后者是根据 一个区域是否具有最少第二计数值来作选取。 本发明主要防止未使用的存储器单元区域同时被擦除并避免不均匀地使用存储 器单元中的区域,以延长非易失性存储器的寿命。 虽然本发明已由上述的实施例详细叙述,而可以由本领域的技术人员做出各种变 化,这些都不脱离附加的权利要求所要保护的范围。
1权利要求
一种存储器管理方法,用于具有多个区域的非易失性存储器,其中所述区域具有第一数量,所述存储器管理方法包括以下步骤(a)将所述多个区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所述第二数量小于第一数量;(b)将数据写入到所述存储器单元当中的至少一区域;(c)在所述存储器单元其中之一所属的区域都被写入后,增加所述所属区域都被写入的存储器单元相对应的计数值;以及(d)根据至少部分存储器单元的计数值,对所述非易失性存储器进行均匀擦除程序。
2. 根据权利要求l所述的存储器管理方法,在步骤(b)及(c)之间,进一步包括标记写 入区域的步骤。
3. 根据权利要求2所述的存储器管理方法,其中在将数据写入到所述存储器单元当中 的至少一区域后,还包括在参考表中标记所述写入区域,用以标示所述写入区域的使用状 态的步骤。
4. 根据权利要求3所述的存储器管理方法,其中在所述存储器单元其中之一所属的区 域都被写入后,还包括从参考表中删除标示所述存储器单元写入区域的标记的步骤。
5. 根据权利要求4所述的存储器管理方法,其中在所有标示所述写入区域的标记被删 除后,所述存储器单元的计数值将增加默认值。
6. 根据权利要求1所述的存储器管理方法,其中在所述写入区域的数据被擦除后,所 述存储器单元的计数值将增加默认值。
7. 根据权利要求1所述的存储器管理方法,其中所述计数值代表存储器单元的擦除次 数累积值。
8. 根据权利要求1所述的存储器管理方法,其中步骤(d)包括 (d 1)计算至少部分存储器单元的计数值;(d2)从至少部分所述存储器单元当中找出空的存储器单元;以及(d3)从空的存储器单元当中再选择具有最少计数值的存储器单元。
9. 根据权利要求l所述的存储器管理方法,在步骤(a)及(b)之间,进一步包括以下步骤(al)从至少部分所述存储器单元当中选择存储器单元;以及 (a2)从所述被选择的存储器单元当中再选取至少一区域。
10. 根据权利要求9所述的存储器管理方法,其中所述被选择的存储器单元是随机地 从至少部分所述存储器单元当中选择出来的。
11. 根据权利要求9所述的存储器管理方法,其中所述被选择的存储器单元是顺序地 从至少部分所述存储器单元当中选择出来的。
12. 根据权利要求9所述的存储器管理方法,其中所述被选择的存储器单元是由均匀 擦除程序从至少部分所述存储器单元当中选择出来的。
13. 根据权利要求9所述的存储器管理方法,其中所述选取区域是随机地从所述被选 择的存储器单元当中选取出来的。
14. 根据权利要求9所述的存管理方法,其中所述选取区域是顺序地从所述被选择的 存储器单元当中选取出来的。
15. 根据权利要求1所述的存储器管理方法,其中所述数据比所述存储器单元的容量小。
16. 根据权利要求1所述的存储器管理方法,其中所述数据包括暂存对象、表格、映像 文件或比所述存储器单元容量小的数据。
17. 根据权利要求1所述的存储器管理方法,其中所述非易失性存储器包括多个数据 总线。
18. —种用于非易失性存储器的控制器,所述非易失性存储器具有多个区域,其中所述 区域具有第一数量,所述区域组合成多个存储器单元,其中所述存储器单元具有第二数量, 且所述第二数量小于第一数量,所述控制器包括微处理器,用来编程被选取区域及擦除被选取区域上的数据; 计算单元,耦合于所述微处理器,用来计算所述存储器单元的计数值;以及 选取器,耦合于所述微处理器,用来选择具有空的存储器空间及最少计数值的存储器 单元,并用来从被选择的存储器单元中选取至少一区域。
19. 根据权利要求18所述的控制器,其中所述选取器包括子系统均匀擦除构件,用于对所述存储器单元其中一个进行第一均匀擦除程序,以从 所述存储器单元当中选取至少一区域;及系统均匀擦除构件,用于对所述非易失性存储器进行第二均匀擦除程序,以选择存储 器单元来编程数据。
20. 根据权利要求18所述的控制器,进一步包括缓冲存储器,用来编程参考表。
21. 根据权利要求20所述的控制器,进一步包括标记管理单元,用来在所述数据被编 程到所述选取区域时,在参考表中加入标记,以标示所述被选择的存储器单元的区域的使 用状态,并在所有所述被选择的存储器单元的区域被使用后,用来删除所述参考表中的标 记。
22. 根据权利要求21所述的控制器,其中所述被选取区域为无标记区域。
23. 根据权利要求18所述的控制器,其中所述计数值代表每一个存储器单元的擦除次 数累积值。
24. 根据权利要求21所述的控制器,其中一旦被选择的存储器单元的区域的标记被标 记管理单元删除,则所述计算单元将把被选择的存储器单元的计数值增加默认值。
25. 根据权利要求18所述的控制器,其中所述选取器顺序从被选择的存储器单元当中 选取区域。
26. 根据权利要求18所述的控制器,其中所述选取器随机地从被选择的存储器单元当 中选取区域。
27. 根据权利要求18所述的控制器,其中所述数据包括暂存对象、表格、映像文件或比 存储器单元容量小的数据。
28. 根据权利要求18所述的控制器,其中所述非易失性存储器包括多个数据总线。
29. —种数据编程系统,包括多个存储器模块,每一个都具有多个区域,各个存储器模块的区域被组合成各个存储 器单元;以及控制器,用来控制多个存储器模块,包含计算单元,用来计算所述存储器单元的计数值;选取器,用来选择具有空的存储器空间且最少计数值的存储器单元, 并用来从被选择的存储器单元当中选取至少一区域;及 微处理器,用来编程被选取区域及擦除被选取区域上的数据; 以防止被选择的存储器单元的区域在使用上的不平均。
30. 根据权利要求29所述的数据编程系统,其中所述控制器进一步包括缓冲存储器, 用来编程参考表。
31. 根据权利要求30所述的数据编程系统,其中所述控制器进一步包括标记管理单 元,用来在所述数据被编程到所述选取区域时,在参考表中加入标记,以标示所述被选择的 存储器单元的区域的使用状态,并在所有所述被选择的存储器单元的区域被使用后,用来 删除所述参考表中的标记。
32. —种存储器管理方法,用于具有多个区域的非易失性存储器,其中所述区域具有第 一数量,所述存储器管理方法包括以下步骤 (a) 将所述多个区域组合成多个存储器单元,其中所述存储器单元具有第二数量,且所 述第二数量小于第一数量;(b) 计算每一个存储器单元的第一计数值;(C)从所述存储器单元当中找出空的存储器单元;(d) 计算所述存储器单元的每一个区域的第二计数值;(e) 从所述空的存储器单元当中选择具有最少第一计数值的存储器单元;(f) 从所述被选择的存储器单元当中选取具有最少第二计数值的区域;以及(g) 将数据编程到所述选取区域;以防止被选择的存储器单元的区域在使用上的不平均。
33. 根据权利要求32所述的存储器管理方法,其中所述第一计数值及所述第二计数值 分别代表每一个存储器单元的擦除次数累积值及每一个区域的擦除次数累积值。
34. 根据权利要求32所述的存储器管理方法,其中所述数据包括暂存对象、表格、映像 文件或比存储器单元容量小的数据。
35. 根据权利要求32所述的存储器管理方法,其中所述数据比被选择的存储器单元的 容量小。
36. 根据权利要求32所述的存储器管理方法,其中所述非易失性存储器包括多个信道。
37. 根据权利要求32所述的存储器管理方法,其中所述非易失性存储器包括多个数据 总线。
全文摘要
本发明公开一种用于非易失性存储器的存储器管理方法及其控制器。所述控制器包含系统均匀擦除构件,用以对所述非易失性存储器进行第一均匀擦除程序,以选择存储器单元;及子系统均匀擦除构件,用以对所述被选择的存储器单元进行第二均匀擦除程序,以从所述被选择的存储器单元选取至少一区域来编程数据;从而防止被选择的存储器单元的区域在使用上的不平均。
文档编号G06F12/02GK101727396SQ20081016781
公开日2010年6月9日 申请日期2008年10月10日 优先权日2008年10月10日
发明者叶志刚 申请人:群联电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1