CN101419834B - 平均磨损方法及使用此方法的控制器 - Google Patents
平均磨损方法及使用此方法的控制器 Download PDFInfo
- Publication number
- CN101419834B CN101419834B CN2007101670072A CN200710167007A CN101419834B CN 101419834 B CN101419834 B CN 101419834B CN 2007101670072 A CN2007101670072 A CN 2007101670072A CN 200710167007 A CN200710167007 A CN 200710167007A CN 101419834 B CN101419834 B CN 101419834B
- Authority
- CN
- China
- Prior art keywords
- data block
- erasing
- data
- spare area
- recently
- 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
本发明提出一种有限系统资源下的平均磨损方法,适于非易失性存储器,其中,非易失性存储器实质上分割为多个数据块且此些数据块至少分组为数据区、备用区、替换瞬时区,数据区的这些数据块可分为多个最近使用数据块与多个最近未使用数据块,此平均磨损方法包括:a.仅记录最近使用数据块以及备用区的数据块抹除次数;b.当从备用区中提取用于替换瞬时区的数据块时,以备用区中其它数据块的抹除次数加上第一阈值为提取的判断条件;以及c.执行耗损调整程序。其中,所提取数据块与其它数据块是以一随机方式或一循序方式来选取。
Description
技术领域
本发明涉及一种平均磨损方法,且特别是涉及一种用于非易失性存储器的平均磨损方法以及使用此方法的控制器。
背景技术
数字相机、手机相机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加,由于闪存(Flash Memory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。除了可携式产品内建存储器需要之外,对于小型存储卡与随身听等外接式产品来说,每个人可能同时拥有多个随身听与小型存储卡,所以市场规模较那些设备更大。因此,近年闪存产业成为电子产业中相当热门的一环。
虽然闪存具有可写入、可抹除、以及断电后仍可保存数据的优点。然而,闪存数据块的抹除次数是有限的,例如存储器数据块抹除一万次后就会磨损。当存储器数据块磨损导致存储容量的部分的使用损失或性能的明显退化时,会造成使用者存储数据的损失或无法存储数据等不利影响。
闪存数据块的磨损取决于每一数据块中被程序(program)或抹除的次数。也就是,若一数据块仅被程序(或者写入)一次,而后未被再程序时,则此数据块的磨损将相对地低,反之,若一数据块被重复地程序与抹除时,则此数据块的磨损就会相对地高。例如,当存取存储器数据块的主机重复地使用相同逻辑数据块地址来写入数据时,则闪存内的相同实体位置的数据块会被重复地写入与抹除。
当某些数据块被磨损同时其它数据块相对地未磨损时,一般而言,磨损数据块的存在会降低闪存的性能。除了磨损数据块本身性能的退化之外,当未磨损的数据块不足以存储数据时,闪存整体的性能亦会降低。也就是,当闪存发生超过一阈值数的磨损数据块时,即使仍有其它数据块未磨损,然,此闪存会被判为无法再使用。当实质上未磨损数据块被视为无法使用时,将为造成资源实际上的浪费。
为了增加闪存的寿命,会尽可能平均地使用闪存的数据块。一般来说,闪存的数据块会区分为数据区与备用区,传统平均磨损的方法是循序地在闪存每执行一段时间时将数据区中的数据块与备用区中的数据块逻辑上交换,以期使得抹除次数较少的数据块可被交换至备用区以供程序(或写入)使用。然而,此种依序地将数据区中的数据块与备用区中的数据块逻辑上交换的方式,无法确保交换的是抹除次数较少的数据块,若所交换的是抹除次数较多个数据块反而更加速其磨损,因此平均磨损的效果有限。
基此,有需要发展一平均磨损方法,以有效地延长闪存的寿命。
发明内容
本发明提供一种用于非易失性存储器的平均磨损方法,其可有效地平均存储器数据块的磨损,以延长存储器的使用寿命。
本发明提供一种控制器,其可执行用于非易失性存储器的平均磨损方法,由此有效地平均存储器数据块的磨损,以延长存储器的使用寿命。
本发明提出一种有限系统资源下的平均磨损方法,适于非易失性存储器,其中非易失性存储器实质上分割为多个数据块且此些数据块至少分组为数据区、备用区、替换瞬时区,数据区的这些数据块可分为多个最近使用数据块与多个最近未使用数据块,此平均磨损方法包括:a.仅记录最近使用数据块以及备用区的数据块抹除次数;b.当从备用区中提取用于替换瞬时区的数据块时,以备用区中其它数据块的抹除次数加上第一阈值为提取的判断条件;以及c.执行耗损调整程序。其中,所提取数据块与其它数据块是以一随机方式或一循序方式来选取。
在本发明的一实施例中,上述的判断条件包括:倘若所提取数据块的抹除次数≤备用区中其它数据块的抹除次数加上第一阈值时,将所提取数据块搬移至该替换瞬时区,倘若所提取数据块的抹除次数>备用区中其它数据块的抹除次数加上第一阈值时,将其它数据块搬移至替换瞬时区。
在本发明的一实施例中,上述的耗损调整程序包括从备用区中提取一数据块,倘若所提取数据块的抹除次数>备用区中其它数据块的抹除次数加上第一阈值时,将所提取数据块与最近未使用数据块的其中之一交换,倘若所提取数据块的抹除次数≤该备用区中其它数据块的抹除次数加上第一阈值时,将其它数据块与最近未使用数据块的其中之一交换。
在本发明的一实施例中,上述的平均磨损方法还包括:当备用区中抹除次数最大的数据块的抹除次数>最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加上第二阈值时,则将计数值加1;以及倘若计数值大于第三阈值时,则执行步骤c并且重置计数值。
在本发明的一实施例中,上述的平均磨损方法还包括:当执行写入或抹除指令时,则将计数值加1;以及当计数值大于第三阈值时,则执行步骤c并且重置计数值。
在本发明的一实施例中,上述的平均磨损方法还包括:当备用区中抹除次数最大的数据块的抹除次数>最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加上第四阈值时,则执行步骤c。
在本发明的一实施例中,上述的平均磨损方法还包括:以随机方式执行步骤c。
在本发明的一实施例中,上述的平均磨损方法还包括当抹除数据块时,增加所抹除数据块的抹除次数。
在本发明的一实施例中,上述的记录最近使用数据块以及备用区的数据块抹除次数是记录在将数据块更分组的系统区中。
在本发明的一实施例中,上述的平均磨损方法还包括执行正常写入指令来完成步骤c。
在本发明的一实施例中,上述的最近未使用数据块的其中之一是以一循序方式或一随机方式来选取。
在本发明的一实施例中,上述的非易失性存储器为SLC(Single LevelCell)或MLC(Multi Level Cell)与非(NAND)闪存。
本发明提供一种控制器,其适用于存储装置,存储装置的非易失性存储器实质上分割为多个存储器数据块并且此些存储器数据块至少分组为数据区、备用区、替换瞬时区,该数据区的这些数据块可分为多个最近使用数据块与多个最近未使用数据块,控制器包括非易失性存储器界面、缓冲存储器、微处理单元与存储器管理模块。非易失性存储器界面是用以存取非易失性存储器。缓冲存储器用以暂时地存储数据。微处理单元用以控制控制器的整体运作。存储器管理模块是用以管理非易失性存储器,其中,存储器管理模块会执行平均磨损方法。平均磨损方法包括:a.仅记录最近使用数据块以及备用区的数据块抹除次数;b.当从备用区中提取用于替换瞬时区的数据块时,以备用区中其它数据块的抹除次数加上第一阈值为提取的判断条件;以及c.执行耗损调整程序。其中,所提取数据块与其它数据块是以一随机方式或一循序方式来选取。
在本发明的一实施例中,上述的判断条件包括:倘若所提取数据块的抹除次数≤备用区中其它数据块的抹除次数加上第一阈值时将所提取数据块搬移至该替换瞬时区,倘若所提取数据块的抹除次数>备用区中其它数据块的抹除次数加上第一阈值时将其它数据块搬移至替换瞬时区。
在本发明的一实施例中,上述的耗损调整程序包括从备用区中提取一数据块,倘若所提取数据块的抹除次数>备用区中其它数据块的抹除次数加上第一阈值时,将所提取数据块与最近未使用数据块的其中之一交换,倘若所提取数据块的抹除次数≤该备用区中其它数据块的抹除次数加上第一阈值时,将其它数据块与最近未使用数据块的其中之一交换。
在本发明的一实施例中,上述的平均磨损方法还包括:当备用区中抹除次数最大的数据块的抹除次数>最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加上第二阈值时,则将计数值加1;以及倘若计数值大于第三阈值时,则执行步骤c并且重置计数值。
在本发明的一实施例中,上述的平均磨损方法还包括:当执行写入或抹除指令时,则将计数值加1;以及当计数值大于第三阈值时,则执行步骤c并且重置计数值。
在本发明的一实施例中,上述的平均磨损方法还包括:当备用区中抹除次数最大的数据块的抹除次数>最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加上第四阈值时,则执行步骤c。
在本发明的一实施例中,上述的平均磨损方法还包括:以随机方式执行步骤c。
在本发明的一实施例中,上述的平均磨损方法还包括当抹除数据块时,增加所抹除数据块的抹除次数。
在本发明的一实施例中,上述的记录最近使用数据块以及备用区的数据块抹除次数是记录在将数据块更分组的系统区中。
在本发明的一实施例中,上述的平均磨损方法还包括执行正常写入指令来完成步骤c。
在本发明的一实施例中,上述的最近未使用数据块的其中之一是以一循序方式或一随机方式来选取。
在本发明的一实施例中,上述的非易失性存储器为SLC(Single LevelCell)或MLC(Multi Level Cell)与非(NAND)闪存。
本发明提出一种有限系统资源下的平均磨损方法,适于非易失性存储器,其中,非易失性存储器实质上分割为多个数据块且此些数据块至少分组为数据区与备用区,数据区的这些数据块可分为多个最近使用数据块与多个最近未使用数据块,此平均磨损方法包括:仅管理与记录最近使用数据块以及备用区的数据块抹除次数在缓冲存储器中;以及执行耗损调整程序。
在本发明的一实施例中,上述的最近使用数据块为数据区中于一定次数内有抹除或写入动作的数据块。
本发明提供一种控制器,其适用于存储装置,存储装置的非易失性存储器实质上分割为多个存储器数据块并且此些存储器数据块至少分组为数据区与备用区,该数据区的这些数据块可分为多个最近使用数据块与多个最近未使用数据块,控制器包括非易失性存储器界面、缓冲存储器、微处理单元与存储器管理模块。非易失性存储器界面是用以存取非易失性存储器。缓冲存储器用以暂时地存储数据。微处理单元用以控制控制器的整体运作。存储器管理模块是用以管理非易失性存储器,其中存储器管理模块会执行平均磨损方法。平均磨损方法包括:仅管理与记录最近使用数据块以及备用区的数据块抹除次数在缓冲存储器中;以及执行耗损调整程序。
本发明提出一种平均磨损方法,其可适时地平均使用存储器数据块,由此平均存储器数据块的磨损,以延长存储器的使用寿命。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1A是根据本发明实施例示出了使用非易失性存储器存储装置的主机。
图1B是示出了图1A所示非易失性存储器存储装置的详细方块图。
图1C是根据本发明另一实施例示出了控制器的方块图。
图2A与2B是根据本发明实施例示出了非易失性存储器124及其运作的详细方块图。
图3是根据本发明实施例示出了平均磨损方法的流程图。
图4是示出了本发明实施例的平均磨损方法可应用的装置的示意图。
附图符号说明
100:主机
102:微处理器
104:随机存取存储器
106:输入/输出装置
108:系统总线
110:数据传输界面
120:非易失性存储器存储装置
122、122’:控制器
122a:存储器管理模块
122b:非易失性存储器界面
122c:主机传输界面
122d:缓冲存储器
122e:程序存储器
122f:错误校正模块
122g:电源管理模块
122h:微处理单元
124:非易失性存储器
124-0、124-1、124-2、1 24-N:数据块
202:系统区
204:数据区
206:备用区
208:替换区
210:瞬时区
212:替换瞬时区
M、C、T:数据块
S1310、S1320:步骤
S301、S303、S305、S307、S309、S311、S313、S315、S317、S319、S321、S323:步骤
402:USB快闪盘
404:数字相机
404a:SD卡
404b:MMC卡
404c:CF卡
404d:存储棒
406:固态硬盘
具体实施方式
非易失性存储器存储系统一般而言包括非易失性存储器与控制器(控制芯片)。通常非易失性存储器存储系统会与主机系统一起使用,以使主机系统可将数据写入至非易失性存储器存储系统或从非易失性存储器存储系统中读取数据。另外,亦有非易失性存储器存储系统是包括嵌入式非易失性存储器与可执行于主机系统上以实质地作为此嵌入式闪存的控制器的软件。
图1A是根据本发明实施例示出了使用非易失性存储器存储装置的主机。
请参照图1A,主机100一般包括微处理器102、随机存取存储器(randomaccess memory,RAM)104、输入/输出(input/out put,I/O)装置106、系统总线108以及数据传输界面110。必须了解的是,主机100可还包括其它组件,例如显示器装置或网络装置等。
主机100可以是计算机、数字相机、摄影机、通信装置、音频播放器或视频播放器等系统。一般而言,主机100可实质地为可存储数据的任意系统。
在本发明实施例中非易失性存储器存储装置120是通过数据传输界面110与主机100的其它组件电性连接。藉由微处理器102、随机存取存储器104与输入/输出装置106的处理可将数据写入至非易失性存储器存储装置120或从非易失性存储器存储装置120中读取数据。
图1B是示出了图1A所示非易失性存储器存储装置的详细方块图。
请参照图1B,非易失性存储器存储装置120一般包括控制器122与非易失性存储器124。
控制器122用以控制非易失性存储器存储装置120的整体运作,例如数据的存储、读取与抹除等。控制器122包括存储器管理模块122a、非易失性存储器界面122b、缓冲存储器122d与微处理单元122h。
存储器管理模块122a用以管理非易失性存储器124,例如执行平均磨损(wear leveling)方法、坏数据块管理、维护对映表(mapping table)等。
非易失性存储器界面122b用以存取非易失性存储器124,也就是主机100欲写入至的数据会经由非易失性存储器界面122b转换为非易失性存储器124所能接受的格式。
微处理单元122h用以控制控制器122的整体运作。
缓冲存储器122d用以暂时地存储系统数据(例如对映表)或者主机所读取或写入的数据。在本实施例中,缓冲存储器122d为静态随机存取存储器(static random access memory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(DRAM)、磁阻式存储器(MRAM)、相变化存储器(PRAM)动态随机存取存储器、磁阻式存储器或其它适合的存储器亦可应用于本发明。
在本发明另一实施例中,控制器122’还包括主机传输界面122c、程序存储器122e、错误校正模块122f与电源管理模块122g(如图1C所示)。
主机传输界面122c用以与主机100通讯,主机传输界面122c可以是USB界面、IEEE 1394界面、SATA界面、PCI Express界面、MS界面、MMC界面、SD卡界面、CF卡界面或IDE界面。
程序存储器122e用以存储控制器所执行用以控制非易失性存储器存储装置120的程序代码。
错误校正模块122f用以计算错误校正码(error correcting code)来检查与校正主机所读取或写入的数据。
电源管理模块122g用以管理非易失性存储器存储装置120的电源。
非易失性存储器124用以存储数据。在本实施中非易失性存储器124为闪存,更具体来说,非易失性存储器124为多层存储胞(Multi Level Cell,MLC)与非(NAND)闪存。但必须了解的是,本发明不限于此,例如非易失性存储器124亦可为单层存储胞(Single Level Cell,SLC)与非闪存。
非易失性存储器124通常实质上分割为多个实体数据块(physicalblock)124-0至124-N,为方便说明以下将实体数据块简称为数据块。一般而言,在闪存中数据块为抹除的最小单位。亦即,每一数据块含有最小数目的一并被抹除的存储胞。每一数据块通常会分割为数十个页(page)。页通常为程序(program)的最小单元,但要特别说明的是于有些不同的闪存设计,最小的程序单位也可为一个扇区(sector)大小,即一页中有多个扇区并以一扇区为程序的最小单元。换言之,页为写入数据或读取数据的最小单元。每一页通常包括使用者数据区D与冗余区R。使用者数据区用以存储使用者的数据,而冗余区用以存储系统的数据(例如,上述的ECC code)。
为对应于磁盘驱动器的扇区(sector)大小,一般而言,使用者数据区D通常为512字节,而冗余区R通常为16字节。也就是,一页为一个扇区。然而,亦可以多个扇区形成一页,例如一页包括4个扇区。一般而言,数据块可由任意数目的页所组成,例如64页、128页、256页等。数据块124-0至124-N通常会被分组为数个区域(zone),以区域来管理存储器某种程度上是彼此独立地操作以增加操作执行的平行程度且简化管理的复杂度。
当非易失性存储器124的某些数据块被持续地程序(例如重复地写入及抹除)时,此些数据块一般而言会较未被持续地程序的数据块更快磨损。为有效地平均非易失性存储器124内的数据块的磨损,通过本发明所提出的平均磨损方法可自动地减少使用已被持续程序的数据块而使用程序未被持续程序的数据块,由此延长非易失性存储器124的寿命。
以下将根据本发明并配合附图详细说明非易失性存储器的运作。必须了解的是,在以下描述中使用“提取”、“搬移”、“交换”等词来操作闪存数据块是逻辑上的概念。也就是说,闪存数据块的实际位置并未更动,而是逻辑上对闪存数据块进行操作。
图2A与2B是根据本发明实施例示出了非易失性存储器124及其运作的详细方块图。
请参照图2A,在本发明实施例中,为了有效率地程序(即写入与抹除)非易失性存储器124,非易失性存储器124的数据块124-1至124-N会在逻辑上分组为一系统区202、一数据区204与一备用区206。一般来说,非易失性存储器124中属于数据区204的数据块会占90%以上,剩下的才是系统区202与备用区206。
系统区202中的数据块用以记录系统数据,系统数据例如是关于非易失性存储器124的区域数、每一区域的数据块数、每一数据块的页数、逻辑实体对映表等。
数据区204中的数据块用以存储使用者的数据,一般来说就是主机100所操作的逻辑数据块地址所对应的数据块。
备用区206中的数据块是用以替换数据区204中的数据块,因此,在备用区206中的数据块为空的数据块,即无记录数据或标记为已没用的无效数据。具体来说,由于若要对已写过数据位置再次写入数据时,必须先执行抹除的动作。然而,如前所述闪存写入单位为页,而抹除单位为数据块。一个抹除的单位大于写入的单位,这表示若要执行数据块抹除动作,必须先将欲抹除数据块中的有效页复制至其它数据块后才可进行。因此,当欲在数据区204中已写过数据位置的数据块M中写入新数据时,一般会在备用区206中提取一数据块C,然后将数据块M中的有效数据复制至数据块C且将新数据写入数据块C后,将数据块M抹除后搬移至备用区206同时将数据块C搬移至数据区204。必须了解的是,将数据块M抹除后搬移至备用区206同时将数据块C搬移至数据区2 04是逻辑上将数据块M关联于备用区206而将数据块C关联于数据区204。其中,此领域具一般技艺者皆能了解数据区204中数据块的逻辑关系可由逻辑实体对映表来维护。
在本发明实施例中,为了更有效率地使用非易失性存储器124,数据块124-1至124-N在逻辑上更分为一替换瞬时区212,其包括一替换区208与一瞬时区210。
请参照图2B,替换区208是用以暂时存放准备替换数据区204的数据块的数据块。更详细而言,当上述备用区206的数据块C被提取来取代数据区204的数据块M时,在本发明实施例中会将新数据写入至数据块C,但不会立刻将数据块M中的有效数据搬移至数据块C而抹除数据块M。此是因为,数据块M中的有效数据有可能在下个操作中变成无效,因此,立刻将数据块M中的有效数据搬移至实体数据块C会造成无谓的搬移。在本发明实施例中,会将写入新数据的数据块C暂时地关联为替换区,并且在逻辑数据块地址与实体数据块地址的对映上会记录多个实体数据块地址对应到一个逻辑数据块地址的情况,也就是数据块M与数据块C的内容整合起来才是所对映逻辑数据块的内容,由此提升数据块的使用效率。此等母子数据块(数据块M与数据块C)的关系可依据控制器122中缓冲存储器122d的大小而定,在本发明实施例中是以五组来实作。
瞬时区210的功能与替换区208类似。如上所述,在本发明实施例中是使用MLC NAND闪存。此MLC NAND闪存1页中可包括4个扇区,即1页中有4个512 bytes的扇区,共2K bytes。如上所述,闪存在写入时是以页为单位,因此在使用MLC NAND闪存的情况下每次必须程序4个扇区,由此当写入小量数据时会造成资源的浪费。在本发明实施例中,瞬时区210是用以暂时存放此类少量数据。具体来说,如上所述当欲写入替换区208的数据块C的数据为不满一个页的小量数据时,会从备用区206中提取一数据块T,然后将此小量数据写入至数据块T并且将数据块T关联为瞬时区210。之后,当后续写入的数据量足够写入一页时再将此些数据写入至数据块C,然后再将数据块T抹除且从瞬时区210中搬移至备用区206。
一般来说,经常会在数据区204与备用区206之间交换的数据块称为动态数据数据块。在本发明实施例中,使用替换区208与瞬时区210的设计是为了使动态数据数据块的使用更有效率。另外,在数据区204中往往有一些数据写入后就长时间未曾更动,例如数据区204中有100首MP3歌曲为使用者喜爱的音乐,写入后不曾再去更动。存储此类数据的数据块称为静态数据数据块。静态数据数据块由于很少更动,因此其抹除次数会相对低。在本发明实施中,控制器122的存储器管理模块122a会执行平均磨损方法,以有效地平均数据块124-1至124-N的磨损。
图3是根据本发明实施例示出了平均磨损方法的流程图,其用于程序存储器数据块时平均地使用存储器数据块以达到平均磨损的目的。本发明的平均磨损方法包括从备用区中提取用于替换瞬时区212的数据块时依据一判断条件来进行提取(步骤S1310)以及执行耗损调整程序(步骤S1320)。以下将配合图3详细说明平均磨损方法。
请参照图3,为了平均数据块的磨损,一般必须记录非易失性存储器124内全部数据块124-1至124-N的抹除次数。然而,考虑系统负荷,在本方法中会将数据区的数据块区分为最近使用数据块以及最近未使用数据块,并且在步骤S301中初始化非易失性存储器存储装置120时仅记录最近使用数据块以及备用区与替换瞬时区的数据块的抹除次数于缓冲存储器122d中。由于本实施例仅记录部分数据块的抹除次数而非所有数据块的抹除次数,因此可以减轻系统的负荷,并且又可达到平均磨损的功效。在本实施例中,最近使用数据块为最近所抹除或写入的100个数据块。然而,必须了解的是,本发明另一实施例亦将最近使用数据块的数目因不同的设计需求,定义调整为其它不同的个数。具体来说,倘若非易失性存储器124的系统区202未存储此些抹除次数信息时则会重新建立,倘若系统区202中存储有此些抹除次数信息时,则将其加载至控制器122的缓冲存储器122d中。
值得一提的是,在非易失性存储器存储装置的运作期间每当抹除数据块时,则会在缓冲存储器122d中持续更新抹除次数,并且例如在非易失性存储器存储装置120结束运作或者每动作一定次数后会将此些信息记录至系统区202的数据块中,此备份动作是避免因不正常断电而遗失已更新的抹除次数。
在步骤S303中,从备用区206中提取一数据块以用于替换瞬时区212(即替换区208或瞬时区210)。也就是说,当接收到系统写入数据指令时,控制器122的存储器管理模块122a会从备用区206提取数据块来进行程序。之后,在步骤S305中会判断所提取数据块的抹除次数是否大于备用区206中每一数据块的抹除次数一第一阈值。具体来说,控制器122的存储器管理模块122a会将所提取数据块的抹除次数与在备用数据块中以随机或循序方式所选取的其它数据块的抹除次数进行比对,并且判断所提取数据块的抹除次数是否比该比对数据块的抹除次数超过第一阈值。在本发明中,第一阈值是根据预期达到的平均磨损效果而决定的数目。在本实施例中,第一阈值可以是10-50的任意数,其中最佳为20。
倘若在步骤S305中判断所提取数据块的抹除次数比该比对数据块的抹除次数多出第一阈值时,则在步骤S307中,会将该比对数据块交换成为提取数据块,并且产生该比对数据块与替换瞬时区212的关联同时取消该比对数据块与备用区206的关联。也就是说,提取该比对数据块以用于替换瞬时区212,而将原提取抹除次数相对较大的数据块留在备用区206之中。反之,则在步骤S309中产生所提取数据块与替换瞬时区212的关联同时取消所提取数据块与备用区206的关联。也就是说,当欲从备用区206中提取用于替换瞬时区212的数据块时,尽可能不选择具有高抹除次数的数据块(亦即使用频繁的数据块)。由此,避免高磨损的数据块再继续被频繁使用。
在平均磨损方法中,除了上述依据一判断条件从备用区中提取用于替换瞬时区212的数据块之外还包括启动与执行耗损调整程序(步骤S1320)。在本发明实施例中,所谓耗损调整程序就是将数据区中的数据块与备用区的数据块互换,以平均数据块的使用。在本发明实施例中,是以数据区中最近未使用数据块与备用区中抹除次数较多的数据块交换。以下将配合图3继续作详细说明。
请参照图3,每当从备用区206中提取用于替换瞬时区212的数据块之后,判断备用区206中抹除次数最大的数据块的抹除次数是否大于最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加一第二阈值(步骤S311)。具体来说,控制器122的存储器管理模块122a会将备用数据块206中抹除次数最大的数据块的抹除次数与最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值(例如(最大抹除次数+最小抹除次数)/2的平均值)进行比对,并且判断备用数据块206中抹除次数最大的数据块的抹除次数是否比最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值多出第二阈值。在本发明中,第二阈值是根据预期达到的平均磨损效果而决定的数目,在本实施例中第二阈值是要使((最大抹除次数+最小抹除次数)/2+第二阈值)所计算出的值比最大抹除次数与最小抹除次数的平均大但比最大抹除次数小的任意正数。
倘若在步骤S311中判断备用数据块206中抹除次数最大的数据块的抹除次数比最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的平均多出第二阈值时,则在步骤S313中会将一计数值加1累计于缓冲存储器122d中。此计数值用以计数满足步骤S311的判断的次数。
在步骤S315中,会判断此计数值是否大于一第三阈值。其中,第三阈值是根据预期达到的平均磨损效果而决定的数目。在本实施例中,第三阈值可以是任意正数,其中,本实施例中第三阈值为10。倘若在步骤S315中判断计数值是大于第三阈值时,则在步骤S317中会从备用区206中提取一数据块,并且在步骤S319中会判断倘若所提取数据块的抹除次数是否大于备用区206中其它随机或循序所选取的比对数据块的抹除次数加上第一阈值。倘若在步骤S319中所提取数据块的抹除次数>备用区206中该比对数据块的抹除次数加上第一阈值时,则在步骤S321中会将所提取数据块与数据区204中最近未使用数据块的其中之一交换并且重置计数值(例如重置为0)。倘若在步骤S319中所提取数据块的抹除次数≤备用区206中该比对数据块的抹除次数加上第一阈值时,则在步骤S323中会将该比对数据块(成为判断后的提取数据块)与数据区204中最近未使用数据块的其中之一交换并且重置计数值(例如重置为0)。在此,所谓交换是指,产生所选择的备用区206的数据块与数据区204的关联同时,取消所选择的备用区206的数据块与备用区206的关联,并且产生所选择的数据区204的数据块与备用区206的关联并且取消所选择的数据区204的数据块与数据区204的关联。
值得一得的是,在本发明另一实施例中,图3中步骤S313-S315简化为:当执行一写入或抹除指令时,则将该计数值加1,若计数值超过第三阈值则执行上述耗损调整程序;或者当备用区206中抹除次数最大的数据块的抹除次数>最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加上一第四阈值时则执行上述耗损调整程序,其中第四阈值是根据预期达到的平均磨损效果而决定的数目。
在本发明另一实施例中,图3中步骤S313-S315更简化为以一随机方式来执行上述耗损调整程序。
在本实施例中,在步骤S321与S323中从数据区204的最近未使用数据块之中选择数据块是以循序方式来选择,但必须了解的是,在本发明另一实施例中亦可使用随机方式来选择。
在本发明实施例中,步骤S317的执行是由控制器122执行主机端一正常的写入指令来完成。具体来说,在本实施例中,当执行步骤S317时,控制器122会执行写入指令,而欲写入的数据为空集合,由此执行上述产生母子数据块的方式的一般写入指令来替换备用区206的数据块与从最近未使用数据块中所选择的数据块。
在本发明上述实施例中的平均磨损方法是包括从备用区中提取用于替换瞬时区212的数据块时,依据一判断条件来进行提取(步骤S1310)以及执行耗损调整程序(步骤S1320)来达成平均磨损的目的。然而,在本发明另一实施例中,平均磨损方法亦可为:在缓冲存储器中仅管理与记录这些最近使用数据块以及该备用区的数据块抹除次数以及执行耗损调整程序来平均数据块的使用,其中此些最近使用数据块例如为数据区中于一定次数内有抹除或写入动作的数据块。换言之,即利用有限的系统资源,仅对特定而非全面的数据块的抹除次数记录及管理,并利用此信息来作为数据块提区及耗损调整程序时数据块选择的判断条件。
在根据本发明所提出的平均磨损方法是适用于非易失性存储器,因此本发明所提出的平均磨损方法可应用各种以非易失性存储器作为存储媒体的装置。例如图4所示的USB快闪盘402、数字相机(摄影机)404所使用的SD卡404a、MMC卡404b、CF卡404c与存储棒(memory stick)404d以及固态硬盘406等。尤其是固态硬盘406更需要好的平均磨损方法。
综上所述,本发明所提出用于非易失性存储器的平均磨损方法可有效地平均存储器内数据块的磨损,由此延长存储器的寿命。再者,本发明所提出的平均磨损方法的总抹除次数与传统方法的总抹除次数差异不大并不会增加造成额外抹除负担,然而本发明的方法比传统方法更可以平均存储器数据块的抹除次数。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视本发明的申请专利范围所界定者为准。
Claims (25)
1.一种有限系统资源下的平均磨损方法,适用于一非易失性存储器,其中,该非易失性存储器实质上分割为多个数据块且这些数据块至少分组为一数据区、一备用区与一替换瞬时区,该数据区的这些数据块可分为多个最近使用数据块与多个最近未使用数据块,该平均磨损方法包括:
a.仅记录这些最近使用数据块以及该备用区的数据块抹除次数;
b.当从该备用区中提取用于该替换瞬时区的一数据块时,以该备用区中其它数据块的抹除次数加上一第一阈值为提取的一判断条件,其中,所提取数据块与该其它数据块是以一随机方式或一循序方式来选取;以及
c.执行一耗损调整程序,其中,该耗损调整程序包括从该备用区中提取一数据块,倘若所提取数据块的抹除次数>该备用区中其它数据块的抹除次数加上该第一阈值时,将所提取数据块与这些最近未使用数据块的其中之一交换,倘若所提取数据块的抹除次数≤该备用区中该其它数据块的抹除次数加上该第一阈值时,将该其它数据块与这些最近未使用数据块的其中之一交换。
2.如权利要求1所述的有限系统资源下的平均磨损方法,其中,该判断条件包括:
倘若所提取数据块的抹除次数≤该备用区中其它数据块的抹除次数加上该第一阈值时,将所提取数据块搬移至该替换瞬时区,倘若所提取数据块的抹除次数>该备用区中该其它数据块的抹除次数加上该第一阈值时,将该其它数据块搬移至该替换瞬时区。
3.如权利要求1所述的有限系统资源下的平均磨损方法,还包括:
当该备用区中抹除次数最大的数据块的抹除次数>这些最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加上一第二阈值时,则将一计数值加1;以及
倘若该计数值大于一第三阈值时,则执行步骤c并且重置该计数值。
4.如权利要求1所述的有限系统资源下的平均磨损方法,其中还包括:
当执行一写入或抹除指令时,则将一计数值加1;以及
当该计数值大于一第三阈值时,则执行步骤c并且重置该计数值。
5.如权利要求1所述的有限系统资源下的平均磨损方法,其中还包括:
当该备用区中抹除次数最大的数据块的抹除次数>这些最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加上一第四阈值时,则执行步骤c。
6.如权利要求1所述的有限系统资源下的平均磨损方法,其中还包括:
以一随机方式执行步骤c。
7.如权利要求2所述的有限系统资源下的平均磨损方法,其中还包括:当抹除数据块时,增加所抹除数据块的抹除次数。
8.如权利要求2所述的有限系统资源下的平均磨损方法,其中,这些数据块至少分组为该数据区、该备用区、该替换瞬时区与一系统区,
其中,这些最近使用数据块以及该备用区的数据块抹除次数是记录在该系统区中。
9.如权利要求1所述的有限系统资源下的平均磨损方法,其中还包括:执行一正常写入指令来完成步骤c。
10.如权利要求1所述的有限系统资源下的平均磨损方法,其中,这些最近未使用数据块的其中之一是一循序方式或一随机方式来选取。
11.如权利要求1所述的有限系统资源下的平均磨损方法,其中,该非易失性存储器为一单层存储单元或多层存储单元与非闪存。
12.一种控制器,其适用于一存储装置,该存储装置的一非易失性存储器实质上分割为多个数据块并且这些数据块至少分组为一数据区、一备用区与一替换瞬时区,该数据区的这些数据块可分为多个最近使用数据块与多个最近未使用数据块,该控制器包括:
一非易失性存储器界面,用以存取该非易失性存储器;
一缓冲存储器,用以暂时地存储数据;
一微处理单元,用以控制该控制器的整体运作;以及
一存储器管理模块,用以管理该非易失性存储器,其中,该存储器管理模块仅记录这些最近使用数据块以及该备用区的数据块抹除次数,
其中,当该存储器管理模块从该备用区中提取用于该替换瞬时区的一数据块时,该存储器管理模块以该备用区中其它数据块的抹除次数加上一第一阈值为提取的一判断条件,其中,所提取数据块与该其它数据块是以一随机方式或一循序方式来选取,
其中,该存储器管理模块用以执行一耗损调整程序,其中,该耗损调整程序包括从该备用区中提取一数据块,倘若所提取数据块的抹除次数>该备用区中其它数据块的抹除次数加上该第一阈值时,将所提取数据块与这些最近未使用数据块的其中之一交换,倘若所提取数据块的抹除次数≤该备用区中该其它数据块的抹除次数加上该第一阈值时,将该其它数据块与这些最近未使用数据块的其中之一交换。
13.如权利要求12所述的控制器,其中,
倘若所提取数据块的抹除次数≤该备用区中其它数据块的抹除次数加上该第一阈值时,该存储器管理模块用以将所提取数据块搬移至该替换瞬时区,倘若所提取数据块的抹除次数>该备用区中该其它数据块的抹除次数加上该第一阈值时,该存储器管理模块用以将该其它数据块搬移至该替换瞬时区。
14.如权利要求12所述的控制器,其中,
当该备用区中抹除次数最大的数据块的抹除次数>这些最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加上一第二阈值时,则该存储器管理模块用以将一计数值加1;以及
倘若该计数值大于一第三阈值时,则该存储器管理模块用以执行该耗损调整程序并且重置该计数值。
15.如权利要求12所述的控制器,其中,
当执行一写入或抹除指令时,则该存储器管理模块用以将一计数值加1;以及
当该计数值大于一第三阈值时,则该存储器管理模块用以执行该耗损调整程序并且重置该计数值。
16.如权利要求12所述的控制器,其中,
当该备用区中抹除次数最大的数据块的抹除次数>这些最近使用数据块的抹除次数之中最大抹除次数与最小抹除次数的中间值加上一第四阈值时,则该存储器管理模块用以执行该耗损调整程序。
17.如权利要求12所述的控制器,其中,
该存储器管理模块用以以一随机方式执行该耗损调整程序。
18.如权利要求13所述的控制器,其中,当抹除数据块时,该存储器管理模块用以增加所抹除数据块的抹除次数。
19.如权利要求13所述的控制器,其中,这些数据块至少分组为该数据区、该备用区、该替换瞬时区与一系统区,
其中,该存储器管理模块用以在该系统区中记录这些最近使用数据块以及该备用区的数据块抹除次数。
20.如权利要求12所述的控制器,其中,该存储器管理模块用以执行一正常写入指令来完成该耗损调整程序。
21.如权利要求12所述的控制器,其中,这些最近未使用数据块的其中之一是以一循序方式或一随机方式来选取。
22.如权利要求12所述的控制器,其中:该非易失性存储器为一单层存储单元或多层存储单元与非闪存。
23.一种有限系统资源下的平均磨损方法,适用于一非易失性存储器,其中,该非易失性存储器实质上分割为多个数据块且这些数据块至少分组为一数据区与一备用区,该数据区的这些数据块可分为多个最近使用数据块与多个最近来使用数据块,该平均磨损方法包括:
仅管理与记录这些最近使用数据块以及该备用区的数据块抹除次数在一缓冲存储器中;以及
执行一耗损调整程序,其中,该耗损调整程序包括从该备用区中提取一数据块,倘若所提取数据块的抹除次数>该备用区中其它数据块的抹除次数加上该第一阈值时,将所提取数据块与这些最近未使用数据块的其中之一交换,倘若所提取数据块的抹除次数≤该备用区中该其它数据块的抹除次数加上该第一阈值时,将该其它数据块与这些最近未使用数据块的其中之一交换。
24.如权利要求23所述的有限系统资源下的平均磨损方法,其中,这些最近使用数据块为该数据区中于一定次数内有抹除或写入动作的数据块。
25.一种控制器,其适用于一存储装置,该存储装置的一非易失性存储器实质上分割为多个数据块并且这些数据块至少分组为一数据区与一备用区,该数据区的这些数据块可分为多个最近使用数据块与多个最近未使用数据块,该控制器包括:
一非易失性存储器界面,用以存取该非易失性存储器;
一缓冲存储器,用以暂时地存储数据;
一微处理单元,用以控制该控制器的整体运作;以及
一存储器管理模块,用以管理该非易失性存储器,其中该存储器管理模块用以仅管理与记录这些最近使用数据块以及该备用区的数据块抹除次数在一缓冲存储器中,
其中该存储器管理模块用以执行一耗损调整程序,其中,该耗损调整程序包括从该备用区中提取一数据块,倘若所提取数据块的抹除次数>该备用区中其它数据块的抹除次数加上该第一阈值时,将所提取数据块与这些最近未使用数据块的其中之一交换,倘若所提取数据块的抹除次数≤该备用区中该其它数据块的抹除次数加上该第一阈值时,将该其它数据块与这些最近未使用数据块的其中之一交换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101670072A CN101419834B (zh) | 2007-10-22 | 2007-10-22 | 平均磨损方法及使用此方法的控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101670072A CN101419834B (zh) | 2007-10-22 | 2007-10-22 | 平均磨损方法及使用此方法的控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101419834A CN101419834A (zh) | 2009-04-29 |
CN101419834B true CN101419834B (zh) | 2011-03-30 |
Family
ID=40630587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101670072A Active CN101419834B (zh) | 2007-10-22 | 2007-10-22 | 平均磨损方法及使用此方法的控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101419834B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI498911B (zh) * | 2012-12-04 | 2015-09-01 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193869B (zh) * | 2010-03-01 | 2015-05-20 | 群联电子股份有限公司 | 存储器管理与写入方法及其存储器控制器与储存系统 |
KR101989850B1 (ko) * | 2012-04-03 | 2019-06-18 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법 |
CN103870399B (zh) * | 2012-12-18 | 2017-03-01 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器储存装置 |
CN104360957A (zh) * | 2014-11-26 | 2015-02-18 | 上海爱信诺航芯电子科技有限公司 | 一种维持闪存损耗均衡的方法 |
KR20160096435A (ko) * | 2015-02-05 | 2016-08-16 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
TWI604455B (zh) * | 2016-05-13 | 2017-11-01 | Silicon Motion Inc | 資料儲存裝置、記憶體控制器及其資料管理方法與資料區塊管理方法 |
CN107273303B (zh) * | 2017-05-23 | 2020-06-26 | 建荣半导体(深圳)有限公司 | 一种闪存数据管理系统、方法、闪存芯片及存储装置 |
CN110675910B (zh) * | 2019-09-09 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 一种ssd磨损均衡机制测试方法、系统、介质和终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1338073A (zh) * | 1998-12-22 | 2002-02-27 | 格姆普拉斯公司 | 包含抗磨损存储器的管理装置的存储系统,和存储器的抗磨损管理过程 |
WO2004040457A1 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Method and apparatus for managing an erase count block |
CN1720590A (zh) * | 2002-10-28 | 2006-01-11 | 桑迪士克股份有限公司 | 非易失性存储系统中的自动磨损平衡 |
-
2007
- 2007-10-22 CN CN2007101670072A patent/CN101419834B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1338073A (zh) * | 1998-12-22 | 2002-02-27 | 格姆普拉斯公司 | 包含抗磨损存储器的管理装置的存储系统,和存储器的抗磨损管理过程 |
WO2004040457A1 (en) * | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Method and apparatus for managing an erase count block |
CN1720590A (zh) * | 2002-10-28 | 2006-01-11 | 桑迪士克股份有限公司 | 非易失性存储系统中的自动磨损平衡 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI498911B (zh) * | 2012-12-04 | 2015-09-01 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
CN101419834A (zh) | 2009-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101419834B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101483067B (zh) | 快闪存储器数据写入方法及其快闪存储器控制器 | |
CN101414282B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损系统 | |
CN102135942B (zh) | 一种存储设备中实现损耗均衡的方法及存储设备 | |
CN101464834B (zh) | 闪存数据写入方法及使用此方法的控制器 | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
CN101369451A (zh) | 固态存储器、包含其的计算机系统和操作其的方法 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
US20190332320A1 (en) | Data writing method, memory control circuit unit and memory storage device | |
TW200917261A (en) | Wear leveling method and controller using the same | |
CN101409108B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
CN101957797A (zh) | 闪速存储器逻辑区块管理方法及其控制电路与储存系统 | |
US9965400B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
CN101527169A (zh) | 闪存数据写入方法及其控制器 | |
CN101630233A (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN101425338B (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
CN102890655A (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN102866861B (zh) | 闪存储存系统、闪存控制器与数据写入方法 | |
CN101625661B (zh) | 用于闪存的数据管理方法、储存系统与控制器 | |
US11347433B2 (en) | Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device |
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 |