存储器模组及于存储器模组中实现平均磨损的方法

文档序号:6480423阅读:176来源:国知局

专利名称::存储器模组及于存储器模组中实现平均磨损的方法
技术领域
:本发明是有关于存储器模组,尤其是有关于存储器模组的平均磨损(wear-leveling)。
背景技术
:存储器模组的闪存(flashmemory)包括多个可储存资料的区块(block)。由于闪存的区块的数目很大,因此这些区块被区分为多个群组,每一群组的区块由一管理单元(managementunit)管理。一闪存包括多个管理单元,分别用以管理一定数量的区块。图1为一电脑系统100的区块图。电脑系统100包括主机102及存储器模组104。存储器模组104为主机102储存资料。存储器模组104包括控制器112及闪存114。当主机102要求存储器模组104储存资料时,控制器112自主机102接收资料并将资料储存于闪存114。当主机102要求自存储器模组104读取资料时,控制器112自闪存114读取资料并将资料递送至主机102。闪存114包括多个管理单元12112N。每一管理单元121~12N管理固定数量的区块以供储存资料。于新资料储存至已存有资料的一区块之前,控制器112必须先相该区块的旧资料删除。闪存的区块因此被一遍又一遍的删除。然而,闪存的每一区块可被删除的次数是有限度的,当区块被删除的次数超过一限度时,便会影响到闪存运作的正确性。存储器模组的控制器因此必须纪录一区块资料被删除的次数,该次数称之为删除次数(eraseco皿t)。若控制器将资料储存于具有超过界限值的删除次数的区块时,该区块可能无法正常的被写入资料,而导致读取资料时发生错误。因此,控制器必须均等地将资料写入一闪存的所有区块,避免某些区块的删除次数过高而某些区块的删除次数过低的现象发生。此一均等编程闪存的区块的技术称的为"平均磨损"(wear-leveling)。然而,当一闪存的区块是由多个管理单元分别管理时,现有的平均磨损计数仅能平均地写入单一管理单元所管控的多个区块,而无法平均写入多个管理单元所管控的区块。因此,依旧会造成某些管理单元的区块的删除次数过高而某些管理单元的区块的删除次数过低的现象。因此,需要一种于存储器模组中实现平均磨损的方法,可以对不同管理单元的区块实现平均磨损,以避免上述现有技术的缺失。
发明内容有鉴于此,本发明的目的在于提供一种具有平均磨损(weaMeveling)功能的存储器模组,以解决现有技术存在的问题。于一实施例中,该存储器模组包括-一闪存(flashmemory)及一控制器。该闪存包括多个管理单元(managementunit),其中每一管理单元包括多个区块(block)。该控制器接收用以写入由这些管理单元中的一第一管理单元所管理的一逻辑地址的新资料,自该第一管理单元的一空白区域(sparearea)取得一第一空白区块,决定是否该第一空白区块的一删除次数(erasecoimt)大于一第一界限值,当该第一空白区块的删除次数大于该第一界限值时自这些管理单元中的一第二管理单元的多个区块中搜寻具有低于一第二界限值的删除次数的一置换区块(replacingblock),以及指示该第一管理单元与该第二管理单元交换该第一空白区块与该置换区块。本发明更提供一种于存储器模组中实现平均磨损(wear-leveling)的方法。于一实施例中,该存储器模组包括具有多个管理单元(managementunit)的一闪存(flashmemory),而每一管理单元包括多个区块(block)。首先,接收用以写入由这些管理单元中的一第一管理单元所管理的一逻辑地址的新资料。接着,自该第一管理单元的一空白区域(sparearea)取得一第一空白区块。接着,决定是否该第一空白区块的一删除次数(erasecount)大于一第一界限值。接着,当该第一空白区块的删除次数大于该第一界限值时,自这些管理单元中的一第二管理单元的多个区块中搜寻具有低于一第二界限值的删除次数的一置换区块(replacingblock)。最后,指示该第一管理单元与该第二管理单元交换该第一空白区块与该置换区块。为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中图1为一电脑系统的区块图2为依据本发明具有平均磨损功能的存储器模组的区块图;图3为依据本发明实行磨损平均的方法的流程图4A为依据本发明的闪存的第一管理单元的链结表、空白区域、以及重新对应表的实施例的示意图4B为依据本发明的闪存的第二管理单元的链结表以及重新对应表的实施例的示意图5为图4A经修改后的各表的示意图6为图5经修改后的各表的示意图7A为图6经磨损平均程序修改后的各表的示意图7B为图4B经磨损平均程序修改后的各表的示意图。主要元件符号说明(图1)102主机;104存储器模组;112控制器;114闪存;12-12N管理单元;(图2)202控制器;204~闪存;212,213,214管理单元;221,231,241链结表;222,232,342删除次数表;223,233,243重新对应表;(图4A,5,6,7A)401链结表;402空白区域;403重新对应表;421,422,424,425区块;(图4B,7B)451链结表;453重新对应表;473~区块。具体实施例方式图2为依据本发明具有平均磨损(wear-leveling)功能的存储器模组200的区块图。存储器模组200包括一控制器202及一闪存204。闪存204包括多个管理记忆单元212~214。每一管理记忆单元212~214管理多个区块(block)的资料写入及删除。此外,每一管理记忆单元212214包括一链结表(linktable)、一删除次数表(erasecounttable)、以及一重新对应表(rem叩pingtable)。链结表用以纪录一管理单元所储存的资料的多个逻辑地址(logicaladdress)与储存这些资料的多个区块的索引值的对应关系。重新对应表用以纪录该管理单元所包含的多个区块的实体地址(physicaladdress)与多个索引值的对应关系。删除次数表用以纪录一管理单元所包括的多个区块的索引值与这些区块的删除次数间的对应关系。图4A为依据本发明的闪存204的第一管理单元400的链结表401、空白区域402、以及重新对应表403的实施例的示意图。一管理单元所管理的多个区块可分为两类,一类为储存资料的区块,另一类为未储存资料的区块。储存资料的区块称的为使用中区块,未储存资料的区块称的为空白区块(spareblock)。第一管理单元400所管理的区块包括一使用中区块421及三个空白区块422、424、及425。区块421、422、424、及425的删除次数分别为6、30、10、3。第一管理单元400的重新对应表403依据一系列的索引值储存第一管理单元400的所有区块的实体地址。举例来说,使用中区块421的实体地址P19是依据索引值Fl储存于重新对应表403中。此外,空白区块422、424、425的实体地址P2、P4、P5系依据索引值F2、F4、F5储存于重新对应表403中。链结表401中储存第一管理单元400所有的使用中区块的逻辑地址。举例来说,使用中区块421的逻辑地址L1是依据索引值F1储存于链结表401中。空白区域402中储存第一管理单元400所有的空白区块的索引值。举例来说,空白区块422、424、425的索引值F5、F2、F4是储存于空白区域402中。图4B为依据本发明的闪存204的第二管理单元450的链结表451以及重新对应表453的实施例的示意图。第二管理单元450所管理的区块454包括一使用中区块473,而区块473的删除次数为0。第二管理单元450的重新对应表453依据一系列的索引值储存第二管理单元450的所有区块的实体地址。举例来说,使用中区块473的实体地址P3是依据索引值F3储存于重新对应表453中。此外,链结表451中储存第二管理单元450所有的使用中区块的逻辑地址。举例来说,使用中区块473的逻辑地址L3是依据索引值F3储存于链结表451中。图3为依据本发明实行磨损平均的方法300的流程图。存储器模组200系依据一主机的指令对闪存204进行资料写入。假设主机要求存储器模组200更新其内储存的资料。控制器202首先自主机接收用以写入由第一管理单元400管理的一逻辑地址L1的资料(步骤302)。控制器202接着自第一管理单元400的空白区域402取得具有索引值F4的第一空白区块424(步骤304)。控制器202接着决定是否第一空白区块424的删除次数。于一实施例中,控制器202由第一管理单元400的一删除次数表中取得第一空白区块424的删除次数。假设第一空白区块424的删除次数为10。控制器202接着决定是否第一空白区块424的删除次数大于一第一界限值(步骤306)。假设第一界限值为30,因此第一空白区块424的删除次数小于一第一界限值。控制器202接着将自主机收到的该资料写入第一空白区块424(步骤308),如图5所示。控制器202接着于第一管理单元400的链结表401中修改该资料的逻辑地址Ll与第一空白区块424的索引F4间的对应关系(步骤310)。原本的区块421的资料便被删除,而原本区块421的索引Fl被储存至空白区域402中。假设主机要求存储器模组400再次写入另一新资料至逻辑地址Ll。控制器202接着自主机接收新资料(步骤302),并自第一管理单元400的空白区域402取得具有索引值F2的一第一空白区块422(步骤304)。控制器202接着决定是否第一空白区块422的一删除次数大于一第一界限值(步骤306)。因为第一空白区块422的删除次数31大于第一界限值30,控制器202接着自第一管理单元400的空白区域402取得具有索引值F5的一第二空白区块425(步骤312)。控制器202接着将资料写入第二空白区块425(步骤314),并于第一管理单元400的链结表401中修改该资料的逻辑地址Ll与第二空白区块425的索引值L5间的对应关系(步骤315),如图6所示。原本的区块424所储存的资料接着被删除,而原本区块424的索引F4被储存至空白区域402中。由于控制器202决定第一空白区块422的删除次数大于第一界限值30,因此必须进行多个管理单元间的磨损平均。控制器202接着自第二管理单元450的多个区块中搜寻具有低于一第二界限值的删除次数的一置换区块(步骤316)。于一实施例中,该第二界限值为第一界限值30的一半15。假设控制器202找到第二管理单元450的区块473作为置换区块,而区块473的删除次数为0,控制器202接着决定是否该置换区块473是一空白区块(步骤320)。由于置换区块473非空白区块,控制器202将储存于置换区块473中的资料写入第一空白区块422(步骤322),并删除该置换区块473(步骤324),如图7A所示。控制器202接着以置换区块473的实体地址P3置换该第一管理单元400的重新对应表403中第一空白区块422的实体地址P2(步骤326),如图7A所示。此外,控制器202亦以第一空白区块422的实体地址P2置换第二管理单元450的重新对应表453中的置换区块473的实体地址P3(步骤328),如图7B所示。由于重新对应表403与453分别纪录第一管理单元400与第二管理单元450的所有区块的实体地址,步骤326、328中对于重新对应表403与453的实体地址的修改将导致第一管理单元400与第二管理单元450交换第一空白区块422及置换区块473。因此,当具有磨损平均功能的步骤320~328执行完毕后,具有高删除次数32的第一空白区块422归属于较少进行资料写入的第二管理单元450,而具有低删除次数9的置换区块473归属于较多进行资料写入的第一管理单元400,从而达成磨损平均的效果。因此,当第一管理单元400的区块的删除次数大于第一界限值时,第一管理单元400便会与第二管理单元450交换区块,而第二管理单元450用以置换的区块的删除次数小于第二界限值。因此,即使主机经常将资料写入第一管理单元400的区块,第一管理单元400的区块仍旧能维持较低的删除次数,从而达成跨管理单元磨损平均的功效。另外,若第二管理单元450中无法找到删除次数小于第二界限值的用以置换的区块,则控制器202自一第三管理单元的多个区块中搜寻具有低于第二界限值的删除次数的置换区块,以提供与第一管理单元交换区块之用。虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。权利要求1.一种存储器模组,具平均磨损功能,包括一闪存,包括多个管理单元,其中每一管理单元包括多个区块;一控制器,接收用以写入由这些管理单元中的一第一管理单元所管理的一逻辑地址的新资料,自该第一管理单元的一空白区域取得一第一空白区块,决定是否该第一空白区块的一删除次数大于一第一界限值,当该第一空白区块的删除次数大于该第一界限值时自这些管理单元中的一第二管理单元的多个区块中搜寻具有低于一第二界限值的删除次数的一置换区块,以及指示该第一管理单元与该第二管理单元交换该第一空白区块与该置换区块。2.如权利要求l所述的存储器模组,其特征在于,每一这些管理单元具有一重新对应表以及一链结表,该重新对应表纪录该管理单元包含的这些多个区块的实体地址与多个索引值的第一对应关系,该链结表纪录该管理单元所储存的资料的多个逻辑地址与储存这些资料的区块的这些索引值的第二对应关系。3.如权利要求2所述的存储器模组,其特征在于,当该第一空白区块的删除次数大于该第一界限值时,该控制器自该第一管理单元的该空白区域取得一第二空白区块,将该新资料写入该第二空白区块,并于该第一管理单元的链结表中纪录该新资料的逻辑地址与该第二空白区块的索引值间的第二对应关系。4.如权利要求2所述的存储器模组,其特征在于,当该第一空白区块的删除次数大于该第一界限值时,该控制器决定是否该置换区块是一空白区块,并于该置换区块非空白区块时,该控制器将储存于该置换区块中的资料写入该第一置换区块,并删除该置换区块,以使该第一管理单元与该第二管理单元完成该第一空白区块与该置换区块的交换。5.如权利要求4所述的存储器模组,其特征在于,当该第一空白区块的删除次数大于该第一界限值且该置换区块为一空白区块时,该控制器以该置换区块的实体地址置换该第一管理单元的重新对应表中的该第一对应关系的该第一空白区块的实体地址,并以该第一空白区块的实体地址置换该第二管理单元的重新对应表中的该第一对应关系的该置换区块的实体地址,以使该第一管理单元与该第二管理单元完成该第一空白区块与该置换区块的交换。6.如权利要求2所述的存储器模组,其特征在于,当该第一空白区块的删除次数不大于该第一界限值时,该控制器将该新资料写入该第一空白区块,并于该第一管理单元的链结表中纪录该新资料的逻辑地址与该第一空白区块的索引值间的第二对应关系。7.如权利要求2所述的存储器模组,其特征在于,每一这些管理单元更包含一删除次数表,用以纪录该管理单元所包括的多个区块的索引值与这些区块的删除次数间的第三对应关系。8.如权利要求l所述的存储器模组,其特征在于,该第二界限值为该第一界限值的一半。9.如权利要求l所述的存储器模组,其特征在于,当该第二管理单元的所有区块的删除次数皆大于该第二界限值时,该控制器自这些管理单元中的一第三管理单元的多个区块中搜寻具有低于该第二界限值的删除次数的该置换区块,其中该第三管理单元非该第二管理单元。10.—种于存储器模组中实现平均磨损的方法,其特征在于,该存储器模组包括具有多个管理单元的一闪存,而每一管理单元包括多个区块,该方法包括接收用以写入由这些管理单元中的一第一管理单元所管理的一逻辑地址的新资料;自该第一管理单元的一空白区域取得一第一空白区块;决定是否该第一空白区块的一删除次数大于一第一界限值;当该第一空白区块的删除次数大于该第一界限值时,自这些管理单元中的一第二管理单元的多个区块中搜寻具有低于一第二界限值的删除次数的一置换区块;以及指示该第一管理单元与该第二管理单元交换该第一空白区块与该置换区块。11.如权利要求IO所述的于存储器模组中实现平均磨损的方法,其特征在于,每一这些管理单元具有一重新对应表以及一链结表,该重新对应表纪录该管理单元包含的这些多个区块的实体地址与多个索引值的第一对应关系,该链结表纪录该管理单元所储存的资料的多个逻辑地址与储存这些资料的区块的这些索引值的第二对应关系。12.如权利要求11所述的于存储器模组中实现平均磨损的方法,其特征在于,该方法更包括当该第一空白区块的删除次数大于该第一界限值时,自该第一管理单元的该空白区域取得一第二空白区块;将该新资料写入该第二空白区块;以及于该第一管理单元的链结表中纪录该新资料的逻辑地址与该第二空白区块的索引值间的第二对应关系。13.如权利要求11所述的于存储器模组中实现平均磨损的方法,其特征在于,该第一管理单元与该第二管理单元对于该第一空白区块与该置换区块的交换包括决定是否该置换区块是一空白区块;当该置换区块非空白区块时,将储存于该置换区块中的资料写入该第一置换区块,并删除该置换区块。14.如权利要求13所述的于存储器模组中实现平均磨损的方法,其特征在于,该第一管理单元与该第二管理单元对于该第一空白区块与该置换区块的交换更包括以该置换区块的实体地址置换该第一管理单元的重新对应表中的该第一对应关系的该第一空白区块的实体地址;以及以该第一空白区块的实体地址置换该第二管理单元的重新对应表中的该第一对应关系的该置换区块的实体地址。15.如权利要求11所述的于存储器模组中实现平均磨损的方法,其特征在于,该方法更包括当该第一空白区块的删除次数不大于该第一界限值时,将该新资料写入该第一空白区块;以及于该第一管理单元的链结表中纪录该新资料的逻辑地址与该第一空白区块的索引值间的第二对应关系。16.如权利要求11所述的于存储器模组中实现平均磨损的方法,其特征在于,每一这些管理单元更包含一删除次数表,用以纪录该管理单元所包括的多个区块的索引值与这些区块的删除次数间的第三对应关系。17.如权利要求IO所述的于存储器模组中实现平均磨损的方法,其特征在于,该第二界限值为该第一界限值的一半。18.如权利要求IO所述的于存储器模组中实现平均磨损的方法,其特征在于,该方法更包括当该第二管理单元的所有区块的删除次数皆大于该第二界限值时,该控制器自这些管理单元中的一第三管理单元的多个区块中搜寻具有低于该第二界限值的删除次数的该置换区块,其中该第三管理单元非该第二管理单元。全文摘要本发明提供一种具有平均磨损功能的存储器模组及于存储器模组中实现平均磨损的方法。于一实施例中,该存储器模组包括一闪存及一控制器。该闪存包括多个管理单元,其中每一管理单元包括多个区块。该控制器接收用以写入由这些管理单元中的一第一管理单元所管理的一逻辑地址的新资料,自该第一管理单元的一空白区域取得一第一空白区块,决定是否该第一空白区块的一删除次数大于一第一界限值,当该第一空白区块的删除次数大于该第一界限值时自这些管理单元中的一第二管理单元的多个区块中搜寻具有低于一第二界限值的删除次数的一置换区块,以及指示该第一管理单元与该第二管理单元交换该第一空白区块与该置换区块。文档编号G06F12/06GK101582052SQ200910004099公开日2009年11月18日申请日期2009年2月9日优先权日2008年5月15日发明者林建成申请人:慧国(上海)软件科技有限公司;慧荣科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1