CN101640069B - 用于闪速存储器的平均磨损方法与平均磨损系统 - Google Patents
用于闪速存储器的平均磨损方法与平均磨损系统 Download PDFInfo
- Publication number
- CN101640069B CN101640069B CN 200810145510 CN200810145510A CN101640069B CN 101640069 B CN101640069 B CN 101640069B CN 200810145510 CN200810145510 CN 200810145510 CN 200810145510 A CN200810145510 A CN 200810145510A CN 101640069 B CN101640069 B CN 101640069B
- Authority
- CN
- China
- Prior art keywords
- physical blocks
- erase count
- count value
- value
- spare area
- 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
Abstract
本发明关于用于闪速存储器的平均磨损方法、储存系统与控制器。其中闪速存储器包括多个实体区块且此些实体区块至少分组为数据区与备用区。此平均磨损方法包括设定第一预设阈值作为平均磨损启动值,并且随机产生一随机数值作为存储器擦除计数值,其中此随机数值小于平均磨损启动值。此平均磨损方法也包括每当擦除实体区块时则计数存储器擦除计数值,并且判断存储器擦除计数值是否小于平均磨损启动值,其中当存储器擦除计数值不小于平均磨损启动值时则在数据区与备用区之间执行实体区块交换。基此,能够有效地平均实体区块的磨损。
Description
技术领域
本发明涉及一种平均磨损方法,且特别是涉及一种用于闪速存储器的平均磨损方法及使此方法的储存系统与其控制器。
背景技术
数字相机、手机相机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于闪速存储器(Flash Memory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合便携式应用,最适合使用于这类便携式由电池供电的产品上。存储卡就是一种以与非(NAND)闪速存储器作为储存媒体的储存装置。由于存储卡体积小容量大且携带方便,所以已广泛用于个人重要数据的储存。因此,近年闪速存储器产业成为电子产业中相当热门的一环。
一般来说,闪速存储器储存系统的闪速存储器会划分为多个实体区块并且此些实体区块会分组为数据区(data area)与备用区(spare area)。归类为数据区的实体区块中会储存由写入指令所写入的有效数据,而备用区中的实体区块是用以在执行写入指令时替换数据区中的实体区块。具体来说,当闪速存储器储存系统接受到主机的写入指令而欲对数据区的实体区块进行写入时,闪速存储器储存系统会从备用区中提取一实体区块并且将在数据区中欲写入的实体区块中的有效旧数据与欲写入的新数据写入至从备用区中提取的实体区块并且将已写入新数据的实体区块关联为数据区,并且将原本数据区的实体区块进行擦除并关联为备用区。为了能够让主机能够顺利地存取以轮替方式储存数据的实体区块,闪速存储器储存系统会提供逻辑区块给主机。也就是说,闪速存储器储存系统会通过在一逻辑-实体对映表中记录与更新逻辑区块与数据区的实体区块之间的对映关系来反映实体区块的轮替,所以主机仅需要针对所提供逻辑区块进行写入而闪速存储器储存系统会依据逻辑-实体对映表对所对映的实体区块进行读取或写入数据。
然而,实体区块的擦除次数是有限的(例如实体区块擦除一万次后就会损坏)。倘若一实体区块仅被程序化(programming)一次,而后未被再程序时,则此区块的磨损是相对地低,反之,若一实体区块被重复地程序化与擦除时,则此实体区块的磨损就会相对地高。因此,所谓的磨损就是每一实体区块被程序化或擦除的次数。
当实体区块磨损程度过高而导致损毁时,系统会将损毁的实体区块放置于坏区块区而不会再使用。特别是,一旦损毁的实体区块数超过一定数量而使得实体区块的数目不足以提供主机对上述逻辑区块的存取时,即使仍有其它实体区块磨损程度仍低,此闪速存储器储存系统依然会被判定为无法再使用。然而,在储存系统中往往会存有一些不会经常更动的数据,例如当使用者储存喜好的音乐文件后,往往一段时间内不会更动此文件。因此,可能造成每一实体区块的磨损程度有很大的差异。
基此,有需要发展一平均磨损方法,以有效地延长闪速存储器储存系统的寿命。
发明内容
有鉴于此,本发明提供一种平均磨损方法,其能够有效地平均闪速存储器的实体区块的磨损以延长闪速存储器储存系统的寿命。
此外,本发明提供一种控制器,其使用上述平均磨损方法来管理闪速存储器,其能够有效地平均闪速存储器的实体区块的磨损以延长闪速存储器储存系统的寿命。
再者,本发明提供一种储存系统,其使用上述区块管理方法来管理闪速存储器,其能够有效地平均闪速存储器的实体区块的磨损以延长闪速存储器储存系统的寿命。
本发明提出一种平均磨损方法,适用于储存系统的闪速存储器,其中此闪速存储器包括多个实体区块且此些实体区块至少分组为数据区与备用区,此平均磨损方法包括设定第一预设阈值作为平均磨损启动值,并且随机产生一随机数值作为存储器擦除计数值,其中此随机数值小于上述平均磨损启动值。此平均磨损方法也包括每当擦除此些实体区块时计数存储器擦除计数值,以及判断存储器擦除计数值是否小于平均磨损启动值,其中当存储器擦除计数值不小于平均磨损启动值时在数据区与备用区之间执行实体区块交换。
在本发明的一实施例中,上述的在数据区与备用区之间执行实体区块交换的步骤包括分别地从数据区与备用区中选择一实体区块并且将从数据区中所选择的实体区块的数据复制到从备用区中所选择的实体区块中。上述的执行实体区块交换的步骤还包括将从数据区中所选择的实体区块关联为备用区,以及将从备用区中所选择的实体区块关联为数据区。
在本发明的一实施例中,上述的平均磨损方法还包括记录每一实体区块的擦除计数值,以及每当擦除此些实体区块时计数所擦除的实体区块的擦除计数值。
在本发明的一实施例中,上述的分别地从该数据区与该备用区中选择一实体区块的步骤包括选择数据区中具有最小擦除次数的实体区块,以及选择备用区中具有最大擦除次数的实体区块。
在本发明的一实施例中,上述的从数据区与备用区中选择一实体区块的步骤包括循序地或随机地从数据区与备用区中选择一实体区块。
在本发明的一实施例中,上述的平均磨损方法还包括依据此些实体区块的擦除计数值计算平均擦除计数值,以及判断此平均擦除计数值是否大于磨损阈值,其中当平均擦除计数值大于磨损阈值时以第二预设阈值取代第一预设阈值作为平均磨损启动值,其中第二预设阈值小于第一预设阈值。
在本发明的一实施例中,上述的平均磨损方法还包括当储存系统开机时调整备用区的实体区块的擦除计数值。
在本发明的一实施例中,上述的随机产生随机数值作为存储器擦除计数值的步骤在储存系统开机时执行。
在本发明的一实施例中,上述的平均磨损方法,还包括判断每一实体区块的擦除计数值是否大于磨损阈值以及当至少一个实体区块的擦除计数值大于磨损阈值时以第二预设阈值取代第一预设阈值作为平均磨损启动值,其中第二预设阈值小于第一预设阈值。
在本发明的一实施例中,上述的调整备用区的实体区块的擦除计数值的步骤包括将备用区的实体区块的擦除计数值加一调整数。
本发明也提供一种储存系统及其控制器,此储存系统包括闪速存储器、连接器以及控制器,其中闪速存储器具有多个实体区块且此些实体区块至少分组为数据区与备用区。此控制器电连接至上述闪速存储器与连接器,并且此控制器包括微处理器单元以及耦接至微处理器单元的闪速存储器接口模块、缓冲存储器、主机接口模块与存储器管理模块。特别是,此存储器管理模块具有可由微处理器单元执行的多个机器指令以对闪速存储器完成上述平均磨损方法步骤。
在本发明的一实施例中,上述的储存系统为随身盘、快闪存储卡或固态硬盘。
在本发明的一实施例中,上述的存储器管理模块是配置在控制器中的硬件。
在本发明的一实施例中,上述的存储器管理模块是固件码,此固件码储存在上述闪速存储器中或上述控制器的程序存储器中。
本发明因采用以随机方式产生的一随机数值来设定每次闪速存储器储存系统开机时的存储器擦除计数值,因此可以避免实体区块因闪速存储器储存系统开关机而造成长时间未执行实体区块交换的问题。
为使本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并结合附图详细说明如下。
附图说明
图1是根据本发明一实施例绘示闪速存储器储存系统的概要方块图。
图2A与2B是根据本发明实施例绘示闪速存储器的实体区块进行轮替的示意图。
图3是根据本发明第一实施例绘示平均磨损步骤的流程图
图4是根据本发明第二实施例绘示平均磨损步骤的流程图
附图符号说明
100:闪速存储器储存系统
110:控制器
110a:微处理器单元
110b:存储器管理模块
110c:闪速存储器接口模块
110d:缓冲存储器
110e:主机接口模块
120:连接器
130:闪速存储器
200:主机
202:系统区
204:数据区
206:备用区
208:替换区块
210:逻辑区块
300:总线
M、C:区块
S301、S303、S305、S307、S309、S311:平均磨损步骤
S401、S403、S405、S406、S407、S409、S411、S413、S415、S417:平均磨损步骤
具体实施方式
图1是根据本发明一实施例绘示闪速存储器储存系统的概要方块图。请参考图1,闪速存储器储存系统100包括控制器(亦称控制器系统)110、连接器120以及闪速存储器130。
通常闪速存储器储存系统100会与主机200一起使用,以使主机200可将数据写入至闪速存储器储存系统100或从闪速存储器储存系统100中读取数据。在本实施例中,闪速存储器储存系统120为固态硬盘(Solid StateDrive,SSD)。但必须了解的是,在本发明另一实施例中闪速存储器储存系统100也可以是存储卡或随身盘。
控制器110会执行以硬件型式或固件型式实作的多个指令以配合连接器120与闪速存储器130来进行数据的储存、读取与擦除等运作。控制器110包括微处理器单元110a、存储器管理模块110b、闪速存储器接口模块110c、缓冲存储器110d与主机接口模块110e。
微处理器单元110a用以与存储器管理模块110b、闪速存储器接口模块110c、缓冲存储器110d与主机接口模块110e等协同合作以进行闪速存储器储存系统100的各种运作。
存储器管理模块110b耦接至微处理器单元110a。存储器管理模块110b具有可由微处理器单元110a执行的多个机器指令以管理闪速存储器130,例如区块管理功能、维护逻辑-实体对映表(mapping table)功能等的机器指令。特别是,在本发明实施例中,存储器管理模块110b包含可完成根据本实施例的平均磨损步骤(如图3所示)的机器指令。
在本实施例中,存储器管理模块110b的机械指令以固件型式储存于闪速存储器130的特定区域(例如,下述的系统区202)中,其中当闪速存储器储存系统100运作时,存储器管理模块110b的多个机械指令会被加载至缓冲存储器110d中并且由微处理器单元110a来执行以完成根据本实施例的平均磨损步骤。
在本发明另一实施例中,存储器管理模块110b的机械指令也可是以一固件型式实作在控制器110中,例如以程序语言撰写程序相关机械指令并且储存于程序存储器(例如,只读存储器(Read Only Memory,ROM))来实作存储器管理模块110b,当闪速存储器储存系统100运作时,存储器管理模块110b的多个机器指令会间接地被加载至缓冲存储器110d中并且由微处理器单元110a来执行或直接由微处理器单元110a来执行。此外,在本发明另一实施例中存储器管理模块110b也可以一硬件型式实作在控制器110中。
闪速存储器接口模块110c耦接至微处理器单元110a并且用以存取闪速存储器130。也就是,欲写入至闪速存储器130的数据会经由闪速存储器接口模块110c转换为闪速存储器130所能接受的格式。
缓冲存储器110d耦接至微处理器单元110a并且用以暂时地储存系统数据(例如逻辑-实体对映表)或者主机200所读取或写入的数据。在本实施例中,缓冲存储器110d为静态随机存取存储器(static random accessmemory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(Dynamic Random Access memory,DRAM)、磁阻式存储器(Magnetoresistive Random Access Memory,MRAM)、相变存储器(PhaseChange Random Acces s Memory,PRAM)或其它适合的存储器也可应用于本发明。
主机接口模块110e耦接至微处理器单元110a并且用以接收与识别主机200所传送的指令。也就是,主机200所传送的指令与数据会通过主机接口模块110e来传送至微处理器单元110a。
此外,虽未绘示于本实施例,但控制器110可还包括错误校正模块与电源管理模块等用于控制闪速存储器的一般功能模块。
连接器120用以通过总线300连接主机200。在本实施例中,连接器120为PCI Express接口。然而,必须了解的是本发明不限于此,连接器120也可以是USB接口、IEEE1394接口、SATA接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其它适合的数据传输接口。
闪速存储器130电连接至控制器110并且用以储存数据。闪速存储器130通常实质上分割为多个实体区块(physicalblock)。一般而言,在闪速存储器中实体区块为擦除的最小单位。亦即,每一实体区块含有最小数目的一并被擦除的存储单元。每一实体区块通常会分割为数个页面地址(page)。页面地址通常为程序化(program)的最小单元。但要特别说明的是于有些不同的闪速存储器设计,最小的程序化单位也可为一个扇区(sector)。也就是说,一页面地址中有多个扇区并以一扇区为程序化的最小单元。换言之,页面地址为写入数据或读取数据的最小单元。每一页面地址通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误校正码(error correct ing code,ECC))。
为对应于磁盘驱动器的扇区(sector)大小,一般而言,使用者数据区D通常为512字节,而冗余区R通常为16字节。也就是,一页为一个扇区。然而,也可以多个扇区形成一页,例如一页包括4个扇区。
一般而言,实体区块可由任意数目的页面地址所组成,例如64个页面地址、128个页面地址、256个页面地址等。实体区块通常也可被分组为数个区域(zone),以区域来管理存储器某种程度上是彼此独立地操作以增加操作执行的平行程度且简化管理的复杂度。
图2A与2B是根据本发明实施例绘示闪速存储器的实体区块进行轮替的示意图。
必须了解的是,在此描述闪速存储器的运作时以“提取”、“搬移”、“交换”、“替换”、“轮替”、”分割”、”划分”等词来操作闪速存储器130的实体区块是逻辑上的概念。也就是说,闪速存储器的实体区块的实际位置并未更动,而是逻辑上对闪速存储器的实体区块进行操作。值得一提的是,下述实体区块的运作通过控制器110执行存储器管理模块110b的机械指令所完成。
请参考图2A,在本发明实施例中,为了有效率地程序化(即,写入与擦除)闪速存储器130,控制器110会将闪速存储器130的实体区块在逻辑上分组为一系统区202、一数据区204与一备用区206。一般来说,闪速存储器130中属于数据区204的实体区块会占90%以上。如前所述,闪速存储器130的实体区块会以轮替方式提供主机来储存数据,因此控制器110会提供逻辑区块210给主机以进行数据存取,并且通过维护逻辑-实体对映表来记录逻辑区块所对映的实体区块。
系统区202中的实体区块用以记录系统数据,系统数据例如是关于闪速存储器130的区域数、每一区域的实体区块数、每一实体区块的页面地址数、记录逻辑区块与实体区块对映关系的逻辑-实体对映表(logical-physicalmapping table)等。
数据区204中的实体区块用以储存使用者的数据,一般来说就是主机200所存取的逻辑区块210所对映的区块。
备用区206中的实体区块是用以替换数据区204中的实体区块,因此在备用区206中的实体区块为空或可使用的区块,即无记录数据或标记为已没用的无效数据。
具体来说,由于在闪速存储器中每个地址仅能程序化一次,因此若要对已写过数据的位置再次写入数据时,必须先执行擦除的动作。然而,如前所述闪速存储器写入单位为页面,其小于以实体区块为单位的擦除单位。因此,若要执行实体区块的擦除动作时,必须先将欲擦除实体区块中的有效页面地址的数据复制至其它实体区块后才可进行实体区块的擦除动作。
例如,当主机欲写入数据至逻辑区块210之中的逻辑区块L时,控制器110会通过逻辑-实体对映表得知逻辑区块L目前是对映数据区204中的实体区块M。因此,闪速存储器储存系统100将对实体区块M中的数据进行更新,期间,控制器110会从备用区206中提取实体区块C来取代数据区204的实体区块M。然而,当将新数据写入至实体区块C的同时,不会立刻将实体区块M中的所有有效数据搬移至实体区块C而擦除实体区块M。具体来说,控制器110会将实体区块M中欲写入页面地址之前的有效数据(即页P0与P1)复制至实体区块C(如图2B的(a)),并且将新数据(即实体区块C的页P2与P3)写入至C区块(如图2B的(b))。此时,将含有部分的有效旧数据与所写入新数据的实体区块C暂时地关联为替换实体区块208。此是因为实体区块M中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体区块M中的所有有效数据搬移至替换实体区块C可能会造成无谓的搬移。在此案例中,实体区块M与替换实体区块C的内容整合起来才是所对映逻辑区块L的完整内容。此等母子区块(即,实体区块M与替换实体区块C)的瞬时关系可依据控制器110中缓冲存储器110d的大小而定,例如一般会使用五组来实作。暂时地维持此种瞬时关系的动作一般可称为开启(open)母子区块。
之后,当需要将实体区块M与替换实体区块C的内容真正合并时,控制器110才会将实体区块M与替换实体区块C整并为一区块,由此提升区块的使用效率,此合并的动作又可称为关闭(close)母子区块。例如,如图2B的(c)所示,当进行关闭母子区块时,控制器110会将实体区块M中剩余的有效数据(即,页P4-PN)复制至替换实体区块C,然后将实体区块M擦除并关联为备用区206,同时,将替换实体区块C关联为数据区204,并且在逻辑-实体对映表中将逻辑区块L的对映更改为实体区块C,由此完成关闭母子区块的动作。
由于闪速存储器130的程序化规格要求必须从每一实体区块的第一页开始写入至最后一页并且在每个位仅能程序一次(即由仅能“1”变为“0”)的条件下,一旦存储器实体区块的页面地址写入数据后,若欲更新已写入的数据就必须如图2A所示从备用区206中提取一实体区块重新进行图2B所示的步骤。因此,当实体区块在未进行图2B的(c)关闭动作之前(即处于图2B的(b)所示的瞬时),而发生必须更新刚搬移的数据(例如图2B的P0-P1)时,则所搬移的旧数据就必须再搬移一次,此称为随机(Random)写入模式时。例如,一般在储存装置中会使用文件配置表(File Allocat ion Table,FAT)来管理储存媒体,其中FAT数据的存取是非常频繁的。因此,当存取FAT表时可能会因为不断更新刚搬移的数据而进入随机写入模式。在进入上述随机写入模式时,控制器110会直接在替换实体区块C中循序地写入数据而不进行如图2B的(a)所述的有效数据搬移动作,以避免在随机写入模式下不断重复执行图2A与图2B的动作。并且,当随机写入模式结束后再进行有效数据的整并。
一般来说,经常在数据区204与备用区206之间轮替的实体区块称为动态实体区块。另外,在数据区204中往往有一些数据写入后就长时间未曾更动。例如,当使用者储存100首喜爱的MP3歌曲后就不曾再去删除或更新。储存此类数据的实体区块一般称为静态实体区块。静态实体区块由于很少更动或更新,因此其擦除次数会相对低(即,磨损程度较低)。在本发明实施中,控制器110会在数据区204与备用区206之间执行实体区块交换的动作,以使得数据区204中较少轮替的实体区块有机会进行轮替,由此有效地平均实体区块的磨损。以下将结合以几个范例实施例说明本发明的平均磨损方法。
[第一实施例]
图3是根据本发明第一实施例绘示平均磨损步骤的流程图,其中此些步骤是控制器110的微处理器单元110a执行存储器管理模块110b的机械指令所完成。
请参考图3,当闪速存储器储存系统100开机时,首先在步骤S301中会设定第一预设阈值作为平均磨损启动值。平均磨损启动值是代表启动下述实体区块交换动作的频率,其中平均磨损启动值越大,启动实体区块交换动作的频率越低,反之,平均磨损启动值越小,启动实体区块交换动作的频率越高。使用者(例如,储存系统的制造商)可根据所使用的闪速存储器的质量以及要达成平均磨损的效果来自行设定第一预设阈值。需注意的是,执行实体区块交换动作的频率越高则平均磨损的效果越佳,但执行实体区块交换动作所需的时间会影响闪速存储器储存系统100的效能。在本范例实施例中第一预设阈值是设定为500。
在步骤S303中会随机产生一随机数值作为存储器擦除计数值。存储器擦除计数值是计数闪速存储器储存系统100在此次开机运作过程中对实体区块执行擦除的次数,其用以判断是否已达到执行实体区块交换的条件(即,平均磨损启动值)。因此,存储器擦除计数值的初始值一般会设为0。然而,在存储器擦除计数值的初始值设为0的例子中,倘若闪速存储器储存系统100在对实体区块执行擦除的次数已接近平均磨损启动值的时候关机时,则在闪速存储器储存系统100重新开机时存储器擦除计数值的初始值将重新从0开始计算,此将造成实体区块实际执行实体区块交换动作的频率偏低而使得平均磨损效果不佳而影响闪速存储器储存系统的寿命。基此,在本实施例中控制器110会以随机数值作为存储器擦除计数值的初始值。值得一提的是,控制器110所产生的随机数值必须小于所设定的平均磨损启动值。例如,在本实施例中步骤S301所设定的平均磨损启动值为500(即,第一预设阈值),因此控制器110会在0至500的范围内随机产生随机数值。产生随机数的方法可通过软件或硬件实作一随机数产生器,此为本领域技术人员可轻易了解的,在此不详细描述。此外,产生此随机数值的动作是在闪速存储器储存系统100执行一开机程序时所执行。
接着,在步骤S305中控制器110会待命并且当实体区块被执行擦除指令时计数存储器擦除计数值。例如,将存储器擦除计数值加1。
之后,在步骤S307中会判断存储器擦除计数值是否小于平均磨损启动值。倘若在步骤S307中判断存储器擦除计数值不小于平均磨损启动值时,则在步骤S309中会执行实体区块交换。具体来说,在步骤S309中控制器110会从数据区204中随机地提取一实体区块(例如,实体区块M),并且从备用区206中随机地提取一实体区块(例如,实体区块C),然后将实体区块M中的数据复制至实体区块C中。最后,将实体区块C关联为数据区204且将实体区块M擦除后关联为备用区206。也就是说,实体区块C会取代实体区块M作为对映逻辑区块L的实体区块。
值得一提的是,在本实施例中是以随机的方式从数据区204中选择进行交换的实体区块。然而,在本发明另一实施例中,也可以依据在逻辑-实体对映表中逻辑区块的顺序循序地从数据区204中选择实体区块,以及依据可用实体区块表中可用实体区块的顺序来循序地从备用区206中选择实体区块。在此,可用实体区块表是用以记录在备用区206中可用的实体区块。
之后,在步骤S311中会将存储器擦除计数值重置归零,然后返回步骤S305。在此,平均磨损步骤会在闪速存储器储存系统100关机时结束。
基此,在本实施例的平均磨损方法中闪速存储器储存系统100在开机时存储器擦除计数值的初始值会通过一随机数值来设定,因此可使得执行实体区块交换的频率更为稳定,以提升平均磨损的效果而延长闪速存储器储存系统100的寿命。
[第二实施例]
图4是根据本发明第二实施例绘示平均磨损步骤的流程图,其中此些步骤是控制器110的微处理器单元110a执行存储器管理模块110b的机械指令所完成的。
请参考图4,当闪速存储器储存系统100开机时,首先在步骤S401中会设定第一预设阈值作为平均磨损启动值,例如第一预设阈值是设定为500。在步骤S403中会随机产生一随机数值作为存储器擦除计数值。例如,控制器110会在0至500的范围内随机产生随机数值。在步骤S405中控制器110会待命并且当实体区块被执行擦除指令时计数存储器擦除计数值。上述步骤S401、S403与S405相同于S301、S303与S305,在此不再详细说明。
接着,在步骤S406中会记录或更新所执行擦除指令的实体区块的擦除计数值,例如在所执行擦除指令的实体区块的擦除计数值上加1。具体来说,在本实施例中,控制器110会在逻辑-实体对映表中记录与更新数据区204的实体区块的擦除次数,并且此信息会在此些实体区块程序化时记录在页面的冗余区R中。另外,控制器110会在可用实体区块表记录备用区206的实体区块的擦除次数。特别是,在闪速存储器储存系统100运作期间逻辑-实体对映表与可用实体区块表在缓冲存储器110d中进行更新,闪速存储器储存系统100会不定期地备份至闪速存储器130的系统区202中。
然后,在步骤S407中会判断存储器擦除计数值是否小于平均磨损启动值。倘若在步骤S407中判断存储器擦除计数值不小于平均磨损启动值时,则在步骤S409中会执行实体区块交换。在本实施例中,在步骤S409中控制器110会依据实体区块的擦除计数值从数据区204中提取具有最小擦除计数值的实体区块,并且从备用区206中提取具有最大擦除计数值的实体区块,然后将从数据区204中提取的实体区块中的数据复制至从备用区206中提取的实体区块中。最后,将从备用区206中提取的实体区块关联为数据区204且将从数据区204中提取的实体区块擦除后关联为备用区206。也就是说,从备用区206中提取的实体区块会取代从数据区204中提取的实体区块作为对映逻辑区块的实体区块。
接着,在步骤S411中会依据实体区块的擦除计数值计算一平均擦除计数值,平均擦除计数值是闪速存储器130中所有实体区块的平均擦除次数。之后,在步骤S413中会判断平均擦除计数值是否大于磨损阈值,其中磨损阈值由使用者或闪速存储器储存系统100的制造商自行设定。在此,磨损阈值的设定是表示实体区块已接近损坏的擦除次数,在本实施例中是依据闪速存储器130规格中所标示可擦除次数的90%来设定。例如,当闪速存储器130的可擦除次数为10000次时,在本实施例中会将磨损阈值设定为9000。
在步骤S413中倘若判断平均擦除计数值大于磨损阈值时则在步骤S415中会以第二预设阈值取代第一预设阈值作为平均磨损启动值,其中第二预设阈值小于第一预设阈值。第二预设阈值也可由使用者(例如,闪速存储器储存系统100的制造商)自行设定。在本实施例中,会将第二预设阈值设定为第一预设阈值的15%。例如,第二预设阈值会设定为75(=500×15%)。在本实施例中,执行步骤S413与步骤S415的目的是要判断闪速存储器储存系统100的实体区块的使用(或擦除)程度是否已接近损坏程度,并且当闪速存储器储存系统100的实体区块已接近损坏程度时,在本实施例中会提高执行实体区块交换动作的频率,以使实体区块的磨损更为平均以延长闪速存储器储存系统的寿命。
之后,在步骤S417中会将存储器擦除计数值重置归零,然后返回步骤S405。在此,平均磨损步骤会在闪速存储器储存系统100关机时结束。
必须了解的是,虽然在本实施例中当闪速存储器储存系统100开机时会先以第一预设阈值作为平均磨损启动值,然后,在步骤S413与步骤S415才会依据目前的平均擦除计数值是否大于磨损阈值而使用第二默认值作为平均磨损启动值。然而,在本发明另一实施例中,也可在闪速存储器储存系统100开机时先确认目前的平均擦除计数值是否大于磨损阈值,或者确认是否有至少一实体区块的擦除次数到达一磨损阈值,若平均擦除计数值大于磨损阈值时则直接使用第二预设阈值设定作为平均磨损启动值。
此外,如上所述逻辑-实体对映表与可用实体区块表是在缓冲存储器110d中进行更新,并且以不定期的方式备份至闪速存储器130的系统区202中。因此,在闪速存储器储存系统100关机时实体区块的擦除次数有可能未实时地更新与备份至系统区202中,此将造成所记录的实体区块的擦除次数不精准。值得一提的是,由于数据区204的实体区块的擦除次数会记录在页面的冗余区R中,因此当闪速存储器储存系统100重新开机时,可较正确地更新逻辑-实体对映表中所记录关于数据区204的实体区块的擦除次数。对于备用区206的实体区块来说,在本发明另一实施例中的平均磨损方法会还包括当闪速存储器储存系统100开机时调整备用区206的实体区块的擦除计数值,以使备用区206的实体区块的擦除次数更为精确。例如,当储存系统开机时会对备用区206的每一实体区块的擦除计数值随机地加上一调整数。也就是,以随机方式对某些实体区块进行擦除计数值的调整。此外,此调整数是依据平均磨损启动值除以备用区206的实体区块数的整数值来设定,例如当平均磨损启动值为500而备用区206的实体区块数为384时,则此调整数为1。
综上所述,本发明的平均磨损方法会以随机方式产生的一随机数值来设定每次闪速存储器储存系统开机时的存储器擦除计数值,以避免实体区块因闪速存储器储存系统频繁开关机而造成长时间未执行实体区块交换的问题,由此使实体区块的磨损程度更为平均以延长闪速存储器储存系统的寿命。再者,在本发明中会根据闪速存储器目前的使用状态来重新设定平均磨损启动值以较高的频率执行实体区块交换,由此更平均实体区块的磨损情形以延长闪速存储器储存系统的寿命。
虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围的前提下,当可作若干的更改与修饰,因此本发明的保护范围应以本发明的权利要求为准。
Claims (19)
1.一种平均磨损方法,适用于一储存系统的一闪速存储器,其中该闪速存储器包括多个实体区块且所述实体区块至少分组为一数据区与一备用区,该平均磨损方法包括:
设定一第一预设阈值作为一平均磨损启动值;
随机产生一随机数值作为一存储器擦除计数值,其中该随机数值小于该平均磨损启动值;
每当擦除所述实体区块时计数该存储器擦除计数值;以及
判断该存储器擦除计数值是否小于该平均磨损启动值,其中当该存储器擦除计数值不小于该平均磨损启动值时在该数据区与该备用区之间执行一实体区块交换,
其中在该数据区与该备用区之间执行该实体区块交换的步骤包括:
分别地从该数据区与该备用区中选择一实体区块;
将从该数据区中所选择的实体区块的数据复制到从该备用区中所选择的实体区块中;
将从该数据区中所选择的实体区块关联为该备用区;以及
将从该备用区中所选择的实体区块关联为该数据区。
2.如权利要求1所述的平均磨损方法,还包括:
记录每一实体区块的擦除计数值;以及
每当擦除所述实体区块时计数所擦除的实体区块的擦除计数值。
3.如权利要求2所述的平均磨损方法,其中分别地从该数据区与该备用区中选择一实体区块的步骤包括:
选择该数据区中具有最小擦除次数的实体区块;以及
选择该备用区中具有最大擦除次数的实体区块。
4.如权利要求1所述的平均磨损方法,其中从该数据区与该备用区中选择一实体区块的步骤包括循序地或随机地从该数据区与该备用区中选择一实体区块。
5.如权利要求2所述的平均磨损方法,还包括:
依据所述实体区块的擦除计数值计算一平均擦除计数值;以及
判断该平均擦除计数值是否大于一磨损阈值,
其中当该平均擦除计数值大于该磨损阈值时以一第二预设阈值取代该第一预设阈值作为该平均磨损启动值,其中该第二预设阈值小于该第一预设阈值。
6.如权利要求2所述的平均磨损方法,还包括当该储存系统开机时调整该备用区的实体区块的擦除计数值。
7.如权利要求1所述的平均磨损方法,其中随机产生该随机数值作为该存储器擦除计数值的步骤是在该储存系统开机时执行。
8.如权利要求2所述的平均磨损方法,还包括:
判断每一实体区块的擦除计数值是否大于一磨损阈值;以及
当至少一个所述实体区块的擦除计数值大于该磨损阈值时以一第二预设阈值取代该第一预设阈值作为该平均磨损启动值,其中该第二预设阈值小于该第一预设阈值。
9.如权利要求6所述的平均磨损方法,其中调整该备用区的实体区块的擦除计数值的步骤包括将该备用区的实体区块的擦除计数值加一调整数。
10.一种平均磨损系统,适用于一储存系统的一闪速存储器,其中该闪速存储器包括多个实体区块且所述实体区块至少分组为一数据区与一备用区,该平均磨损系统包括:
用于设定一第一预设阈值作为一平均磨损启动值的部件;
用于随机产生一随机数值作为一存储器擦除计数值的部件,其中该随机数值小于该平均磨损启动值;
用于每当擦除所述实体区块时计数该存储器擦除计数值的部件;
用于判断该存储器擦除计数值是否小于该平均磨损启动值的部件;以及
用于当该存储器擦除计数值不小于该平均磨损启动值时在该数据区与该备用区之间执行一实体区块交换的部件,
其中用于当该存储器擦除计数值不小于该平均磨损启动值时在该数据区与该备用区之间执行该实体区块交换的部件包括:
用于分别地从该数据区与该备用区中选择一实体区块的部件;
用于将从该数据区中所选择的实体区块的数据复制到从该备用区中所选择的实体区块中的部件;
用于将从该数据区中所选择的实体区块关联为该备用区的部件;以及
用于将从该备用区中所选择的实体区块关联为该数据区的部件。
11.如权利要求10所述的平均磨损系统,还包括:
用于记录每一实体区块的擦除计数值的部件;以及
用于每当擦除所述实体区块时计数所擦除的实体区块的擦除计数值的部件。
12.如权利要求11所述的平均磨损系统,其中用于分别地从该数据区与该备用区中选择一实体区块的部件选择该数据区中具有最小擦除次数的实体区块并且选择该备用区中具有最大擦除次数的实体区块。
13.如权利要求10所述的平均磨损系统,其中用于分别地从该数据区与该备用区中选择一实体区块的部件循序地或随机地从该数据区与该备用区中选择一实体区块。
14.如权利要求11所述的平均磨损系统,还包括:
用于依据所述实体区块的擦除计数值计算一平均擦除计数值的部件;
用于判断该平均擦除计数值是否大于一磨损阈值的部件;以及
用于当该平均擦除计数值大于该磨损阈值时以一第二预设阈值取代该第一预设阈值作为该平均磨损启动值的部件,其中该第二预设阈值小于该第一预设阈值。
15.如权利要求11所述的平均磨损系统,还包括用于当该储存系统开机时调整该备用区的实体区块的擦除计数值的部件。
16.如权利要求10所述的平均磨损系统,其中该储存系统为一随身盘、一快闪存储卡或一固态硬盘。
17.如权利要求10所述的平均磨损系统,其中用于随机产生该随机数值作为该存储器擦除计数值的部件是在该储存系统开机时随机产生该随机数值作为该存储器擦除计数值。
18.如权利要求11所述的平均磨损系统,还包括:
用于判断每一实体区块的擦除计数值是否大于一磨损阈值的部件;以及
用于当至少一个所述实体区块的擦除计数值大于该磨损阈值时以一第二预设阈值取代该第一预设阈值作为该平均磨损启动值的部件,其中该第二预设阈值小于该第一预设阈值。
19.如权利要求15所述的平均磨损系统,其中用于当该储存系统开机时调整该备用区的实体区块的擦除计数值的部件将该备用区的实体区块的擦除计数值加一调整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810145510 CN101640069B (zh) | 2008-08-01 | 2008-08-01 | 用于闪速存储器的平均磨损方法与平均磨损系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810145510 CN101640069B (zh) | 2008-08-01 | 2008-08-01 | 用于闪速存储器的平均磨损方法与平均磨损系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101640069A CN101640069A (zh) | 2010-02-03 |
CN101640069B true CN101640069B (zh) | 2013-12-18 |
Family
ID=41615006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810145510 Active CN101640069B (zh) | 2008-08-01 | 2008-08-01 | 用于闪速存储器的平均磨损方法与平均磨损系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101640069B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354663A (zh) * | 2015-07-15 | 2017-01-25 | 爱思开海力士有限公司 | 存储系统和存储系统的操作方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI446349B (zh) | 2010-03-04 | 2014-07-21 | Phison Electronics Corp | 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 |
CN103473182B (zh) * | 2010-03-12 | 2016-05-11 | 群联电子股份有限公司 | 非挥发性存储器存取方法及非挥发性存储器控制器 |
CN103092766B (zh) * | 2012-12-28 | 2015-09-30 | 北京时代民芯科技有限公司 | 一种用于nand flash的均衡损耗实现方法 |
CN104111893A (zh) * | 2013-06-21 | 2014-10-22 | 芜湖美的厨卫电器制造有限公司 | 数据的存储方法 |
CA2896128C (en) | 2013-06-29 | 2018-04-03 | Huawei Technologies Co., Ltd. | Method, apparatus, and controller for managing storage array |
CN105989887B (zh) * | 2015-03-02 | 2020-01-07 | 群联电子股份有限公司 | 抹除操作配置方法、存储器控制电路单元与存储器 |
CN106354651B (zh) * | 2015-07-14 | 2020-05-26 | 群联电子股份有限公司 | 平均磨损方法、存储器控制电路单元及存储器储存装置 |
CN108984131B (zh) * | 2018-07-25 | 2021-07-16 | 浪潮电子信息产业股份有限公司 | 数据操作的处理方法以及相关装置 |
CN110007857B (zh) * | 2019-03-08 | 2022-08-19 | 北京星网锐捷网络技术有限公司 | 一种闪存芯片的寿命预测方法及装置 |
CN112559384B (zh) * | 2020-12-17 | 2022-04-15 | 南昌航空大学 | 一种基于非易失存储器的混合固态盘动态分区方法 |
TWI764771B (zh) * | 2021-06-29 | 2022-05-11 | 群聯電子股份有限公司 | 跨框編碼管理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN113434331B (zh) * | 2021-07-05 | 2023-07-25 | 群联电子股份有限公司 | 跨框编码管理方法、存储器存储装置及存储器控制电路 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1701309A (zh) * | 2002-10-28 | 2005-11-23 | 桑迪士克股份有限公司 | 非易失性存储系统中的损耗平衡 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003282544A1 (en) * | 2002-10-28 | 2004-05-25 | Sandisk Corporation | Automated wear leveling in non-volatile storage systems |
CN100580811C (zh) * | 2005-11-25 | 2010-01-13 | 康佳集团股份有限公司 | 一种闪存装置的脏块回收方法 |
-
2008
- 2008-08-01 CN CN 200810145510 patent/CN101640069B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1701309A (zh) * | 2002-10-28 | 2005-11-23 | 桑迪士克股份有限公司 | 非易失性存储系统中的损耗平衡 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354663A (zh) * | 2015-07-15 | 2017-01-25 | 爱思开海力士有限公司 | 存储系统和存储系统的操作方法 |
CN106354663B (zh) * | 2015-07-15 | 2020-08-07 | 爱思开海力士有限公司 | 存储系统和存储系统的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101640069A (zh) | 2010-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损系统 | |
TWI385669B (zh) | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 | |
CN103425597B (zh) | 数据储存装置和快闪存储器的区块管理方法 | |
US8131911B2 (en) | Data writing method, and flash storage system and controller using the same | |
US20100042774A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN101414282B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101630233B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
CN101419834B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存系统及控制器 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN101634967A (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
CN102890655A (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
CN101625661B (zh) | 用于闪存的数据管理方法、储存系统与控制器 | |
CN101409108B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101882111B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN101661432B (zh) | 闪存区块管理方法、闪存储存系统及控制器 | |
CN101788954B (zh) | 用于快闪存储器的区块管理方法及其存储系统与控制器 | |
CN102456401B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN102779551B (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 |