发明内容
本发明提供一种用于非易失性存储器的平均磨损方法,其可有效地平均存储器区块的磨损,以延长存储器的使用寿命。
本发明提供一种控制器,其可执行用于非易失性存储器的平均磨损方法,由此有效地平均存储器区块的磨损,以延长存储器的使用寿命。
本发明提出一种用于非易失性存储器的平均磨损方法,其中非易失性存储器实质上分割为多个区块且所述区块至少分组为数据区与备用区,此平均磨损方法包括:a.当从备用区中提取物理区块时,根据所述物理区块被擦除的先后顺序来提取物理区块;以及b.执行耗损调整编程。
在本发明的一实施例中,上述的步骤a包括还根据权重标记来提取物理区块。
在本发明的一实施例中,上述的平均磨损方法其中步骤a包括:还包括c.当从备用区中提取用于数据区的物理区块时,则选择在备用区的中具权重标记且最早被擦除的物理区块;以及d.当从备用区中提取物理区块以用于将所述物理区块更分组的瞬时区时,则根据擦除的先后顺序选择在备用区之中不具有该权重标记且最晚被擦除的物理区块。
在本发明的一实施例中,上述的耗损调整编程包括将未使用过的逻辑区块所对映的物理区块与在备用区的中具有权重标记的物理区块进行交换。
在本发明的一实施例中,上述的平均磨损方法还包括当执行第一预设次数的擦除时则执行步骤b。
在本发明的一实施例中,上述的平均磨损方法还包括以随机方式执行步骤b。
在本发明的一实施例中,上述的平均磨损方法还包括依照先后顺序将被擦除的物理区块记录在擦除区块表中,其中倘若被擦除的物理区块已被记录在擦除区块表中第二预设次数时则不再记录被擦除的物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括依照循环覆盖方式记录被擦除的物理区块,并且倘若要覆盖已被多次记录在擦除区块表中的被擦除的物理区块时,则会在该擦除区块表中将被擦除的物理区块的其它擦除记录的中最先的记录中标记权重标记。
在本发明的一实施例中,上述的步骤c还包括判断备用区的中是否存有具权重标记的物理区块,倘若无具权重标记的物理区块时,则根据先后顺序选择在备用区中最早被擦除的物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括当从备用区中提取一物理区块以用于将所述物理区块还分组的一替换区时,则以随机方式或循序方式选择备用区中的物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括使用逻辑物理对映表来记录逻辑区块的使用信息。
在本发明的一实施例中,上述的平均磨损方法还包括倘若在擦除区块表中无任何记录时,则当从备用区中提取物理区块时,则以随机方式或循序方式选择备用区中的物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括执行主机端正常的写入指令来完成步骤b。
在本发明的一实施例中,上述的非易失性存储器为一SLC(Single LevelCell)或MLC(Multi Level Cell)与非(NAND)闪速存储器。
本发明提供一种控制器,其适用于储存装置,储存装置的非易失性存储器实质上分割为多个存储器区块并且所述存储器区块至少分组为数据区与备用区,控制器包括非易失性存储器接口、缓冲存储器、微处理单元与存储器管理模块。非易失性存储器接口是用以存取非易失性存储器。缓冲存储器用以暂时地储存数据。微处理单元用以控制控制器的整体运作。存储器管理模块是用以管理非易失性存储器,其中存储器管理模块会执行平均磨损方法。平均磨损方法包括:a.当从备用区中提取物理区块时,根据所述物理区 块被擦除的先后顺序来提取物理区块;以及b.执行耗损调整编程。
在本发明的一实施例中,上述的平均磨损方法其中步骤a包括:还根据权重标记来提取物理区块。
在本发明的一实施例中,上述的平均磨损方法其中步骤a还包括c.当从备用区中提取用于数据区的物理区块时,则选择在备用区的中具权重标记且最早被擦除的物理区块以及d.当从备用区中提取物理区块以用于将所述物理区块还分组的瞬时区的时,则根据擦除的先后顺序选择在备用区之中不具该权重标记且最晚被擦除的物理区块。
在本发明的一实施例中,上述的耗损调整编程包括将未使用过的逻辑区块所对映的物理区块与在备用区之中具有权重标记的物理区块进行交换。
在本发明的一实施例中,上述的平均磨损方法还包括当执行第一预设次数的擦除时则执行步骤b。
在本发明的一实施例中,上述的平均磨损方法还包括以随机方式执行步骤b。
在本发明的一实施例中,上述的平均磨损方法还包括依照先后顺序将被擦除的物理区块记录在擦除区块表中,其中倘若被擦除的物理区块已被记录在擦除区块表中第二预设次数时则不再记录被擦除的物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括依照循环覆盖方式记录被擦除的物理区块,并且倘若欲覆盖已被多次记录在擦除区块表中的被擦除的物理区块时,则会在该擦除区块表中将被擦除的物理区块的其它擦除记录之中最先的记录中标记权重标记。
在本发明的一实施例中,上述的步骤c还包括判断备用区之中是否存有具有权重标记的物理区块,倘若无具有权重标记的物理区块时,则根据先后顺序选择在备用区中最早被擦除的物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括当从备用区中提取物理区块以用于将所述物理区块还分组的替换区时,则以随机方式或循序方式选择备用区中的物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括使用逻辑物理对映表来记录逻辑区块的使用信息。
在本发明的一实施例中,上述的平均磨损方法还包括倘若在擦除区块表中无任何记录时,则当从备用区中提取物理区块时,则以随机方式或循序方 式选择备用区中的物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括执行主机端正常的写入指令来完成步骤b。
在本发明的一实施例中,上述的非易失性存储器为一SLC(Single LevelCell)或MLC(Multi Level Cell)与非(NAND)闪速存储器。
本发明提出一种用于非易失性存储器的平均磨损方法,其中非易失性存储器实质上分割为多个物理区块且所述物理区块至少分组为数据区与备用区,此平均磨损方法包括:a.以表格来记录多个逻辑区块的使用信息;b.依据使用信息在数据区中选择逻辑区块中未使用过的逻辑区块所对映的物理区块;以及c.将所选择的物理区块与备用区中的物理区块进行交换。
在本发明的一实施例中,上述的表格为逻辑物理对映表。
在本发明的一实施例中,上述的平均磨损方法在步骤b中是以一循序方式或一随机方式来选择该物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括执行一主机端正常的写入指令来完成步骤c。
在本发明的一实施例中,上述的非易失性存储器为一SLC(Single LevelCell)或MLC(Multi Level Cell)与非(NAND)闪速存储器。
本发明提供一种控制器,其适用于储存装置,储存装置的非易失性存储器实质上分割为多个存储器区块并且所述存储器区块至少分组为数据区与备用区,控制器包括非易失性存储器接口、缓冲存储器、微处理单元与存储器管理模块。非易失性存储器接口用以存取非易失性存储器。缓冲存储器用以暂时地储存数据。微处理单元用以控制控制器的整体运作。存储器管理模块是用以管理非易失性存储器,其中存储器管理模块会执行平均磨损方法。平均磨损方法包括:a.以表格来记录多个逻辑区块的使用信息;b.依据使用信息在数据区中选择逻辑区块中未使用过的逻辑区块所对映的物理区块;以及c.将所选择的物理区块与备用区中的物理区块进行交换。
在本发明的一实施例中,上述的表格为逻辑物理对映表。
在本发明的一实施例中,上述的平均磨损方法在步骤b中是以一循序方式或一随机方式来选择该物理区块。
在本发明的一实施例中,上述的平均磨损方法还包括执行一主机端正常的写入指令来完成步骤c。
在本发明的一实施例中,上述的非易失性存储器为一SLC(Single LevelCell)或MLC(Multi Level Cell)与非(NAND)闪速存储器。
本发明提供一种用于非易失性存储器的平均磨损方法,其中该非易失性存储器实质上分割为多个物理区块且所述物理区块至少分组为一数据区与一备用区,该平均磨损方法包括:a.当从该备用区中提取一物理区块时,根据所述物理区块被擦除的一先后顺序与一权重标记来提取该物理区块;以及b.执行一耗损调整编程,所述耗损调整编程是指,利用提取的物理区块,形成一个具有更新后的数据的物理区块,将具有更新后的数据的物理区块搬移至数据区,将具有更新前的数据的物理区块擦除后从数据区搬移至备用区。其中步骤a包括:c.当从该备用区中提取用于该数据区的一物理区块时,则选择在该备用区之中具该权重标记且最早被擦除的一物理区块。
本发明提供一种控制器,其适用于一储存装置,该储存装置的一非易失性存储器实质上分割为多个区块并且所述区块至少分组为一数据区与一备用区,该控制器包括:一非易失性存储器接口,用以存取该非易失性存储器;一缓冲存储器,用以暂时地储存数据;一微处理单元,用以控制该控制器的整体运作;以及一存储器管理模块,用以管理该非易失性存储器,其中该存储器管理模块会执行一平均磨损方法。该平均磨损方法包括:a.当从该备用区中提取一物理区块时,根据所述物理区块被擦除的一先后顺序来提取该物理区块;以及b.执行一耗损调整编程,所述耗损调整编程是指,利用提取的物理区块,形成一个具有更新后的数据的物理区块,将具有更新后的数据的物理区块搬移至数据区,将具有更新前的数据的物理区块擦除后从数据区搬移至备用区。其中该平均磨损方法还包括依照该先后顺序将一被擦除的物理区块记录在一擦除区块表中,其中倘若该被擦除的物理区块已被记录在该擦除区块表中一第二预定次数时则不再记录该被擦除的物理区块。
本发明提供一种用于非易失性存储器的平均磨损方法,其中该非易失性存储器实质上分割为多个物理区块且所述物理区块至少分组为一数据区与一备用区,该平均磨损方法包括:a.以一表格来记录多个逻辑区块的使用信息;b.依据所述使用信息在该数据区中选择所述逻辑区块中未使用过的逻辑区块所对映的一物理区块;以及c.从该备用区中提取一物理区块,利用从该备用区中所提取的物理区块,形成一个具有所选择的物理区块中的数据的物理区块,将所形成的物理区块搬移至数据区,将所选择的物理区块擦除后从 数据区搬移至备用区。
本发明提供一种控制器,其适用于一储存装置,该储存装置的一非易失性存储器实质上分割为多个区块并且所述区块至少分组为一数据区与一备用区,该控制器包括:一非易失性存储器接口,用以存取该非易失性存储器;一缓冲存储器,用以暂时地储存数据;一微处理单元,用以控制该控制器的整体运作;以及一存储器管理模块,用以管理该非易失性存储器,其中该存储器管理模块会执行一平均磨损方法。该平均磨损方法包括:a.以一表格来记录多个逻辑区块的使用信息;b.依据所述使用信息在该数据区中选择所述逻辑区块中未使用过的逻辑区块所对映的一物理区块;以及c.从该备用区中提取一物理区块,利用从该备用区中所提取的物理区块,形成一个具有所选择的物理区块中的数据的物理区块,将所形成的物理区块搬移至数据区,将所选择的物理区块擦除后从数据区搬移至备用区。
为使本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并结合附图详细说明如下。
具体实施方式
非易失性存储器储存系统一般而言包括非易失性存储器与控制器(控制芯片)。通常非易失性存储器储存系统会与主机系统一起使用,以使主机系统可将数据写入至非易失性存储器储存系统或从非易失性存储器储存系统中读取数据。另外,也有非易失性存储器储存系统包括嵌入式非易失性存储器与可执行于主机系统上以实质地作为此嵌入式闪速存储器的控制器的软件。
[第一实施例]
图1A是根据本发明第一实施例绘示使用非易失性存储器储存装置的主机。
请参考图1A,主机100一般包括微处理器102、随机存取存储器(randomaccess memory,RAM)104、输入/输出(input/output,I/O)装置106、系统总线108以及数据传输接口110。必须了解的是,主机100还可包括其它组件,例如显示器装置或网络装置等。
主机100可以是计算机、数字相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。一般而言,主机100可实质地为可储存数据的任意系统。
在本发明实施例中非易失性存储器储存装置120通过数据传输接口110与主机100的其它组件电连接。藉由微处理器102、随机存取存储器104与输入/输出装置106的处理可将数据写入至非易失性存储器储存装置120或从非易失性存储器储存装置120中读取数据。非易失性存储器储存装置120包括随身盘、存储卡或固态硬盘(Solid State Drive,SSD)。
图1B示出了图1A所示非易失性存储器储存装置的详细方块图。
请参考图1B,非易失性存储器储存装置120一般包括控制器122与非易失性存储器124。
控制器122用以控制非易失性存储器储存装置120的整体运作,例如数据的储存、读取与擦除等。控制器122包括存储器管理模块122a、缓冲存储器122d、微处理单元122h与非易失性存储器接口122b。
存储器管理模块122a用以管理非易失性存储器124,例如执行平均磨损(wear leveling)方法、坏区块管理、维护对映表(mapping table)等。
非易失性存储器接口122b用以存取非易失性存储器124,也就是主机100要写入至的数据会经由非易失性存储器接口122b转换为非易失性存储器124所能接受的格式。
缓冲存储器122d用以暂时地储存系统数据(例如对映表)或者主机所读取或写入的数据。在本实施例中,缓冲存储器122d为静态随机存取存储器(static random access memory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(DRAM)、磁阻式存储器(MRAM)、相变化存储器(PRAM)或其它适合的存储器也可应用于本发明。
微处理器122h用以控制控制器122的整体运作。
在本发明另一实施例中,控制器还包括主机传输接口122c、编程存储器122e、错误校正模块122f与电源管理模块122g(如图1C的控制器122’)。
主机传输接口122c用以与主机100通讯,主机传输接口122c可以是USB接口、IEEE 1394接口、SATA接口、PCI Expres s接口、SAS接口(SerialAttached SCSI)、MS接口、MMC接口、SD接口、CF接口或IDE接口。
编程存储器122e用以储存控制器所执行用以控制非易失性存储器储存装置120的编程代码。
错误校正模块122f用以计算错误校正码(error correcting code)来检查与校正主机所读取或写入的数据。
电源管理模块122g用以管理非易失性存储器储存装置120的电源。
非易失性存储器124用以储存数据。在本实施中非易失性存储器124为闪速存储器,更具体来说,非易失性存储器124为多层存储单元(Multi LevelCell,MLC)与非(NAND)闪速存储器。但必须了解的是,本发明不限于此,例如非易失性存储器124也可为单层存储单元(Single Level Cell,SLC)与非闪速存储器。
非易失性存储器124通常实质上分割为多个物理区块(physical block)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、2C与2D示出了非易失性存储器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中提取一区块S,然后将区块M中的有效数据复制至区块S且将新数据写入区块S后,将区块M擦除后搬移至备用区206同时将区块S搬移至数据区204(如图2A所示)。必须了解的是,将区块M擦除后搬移至备用区206同时将区块S搬移至数据区204是逻辑上将区块M关联于备用区206而将区块S关联于数据区204。其中本领域技术人员都能了解数据区204中区块的逻辑关系可由逻辑物理对 映表来维护。
在本发明实施例中,为了更有效率地使用非易失性存储器124,区块124-1至124-N在逻辑上还分为一替换区208与一瞬时区210。
请参考图2B,替换区208是用以暂时存放准备替换数据区204的区块的区块。更详细地说,当上述备用区206的区块C被提取来取代数据区204的区块M时,在本发明实施例中会将新数据入至区块C,但不会立刻将区块M中的有效数据搬移至区块C而擦除区块M。这是因为,区块M中的有效数据有可能在下个操作中变成无效,因此立刻将区块M中的有效数据搬移至物理区块C会造成无谓的搬移。在本发明实施例中,会将写入新数据的区块C暂时地关联为替换区,并且在逻辑区块地址与物理区块地址的对映上会记录多个物理区块地址对应到一个逻辑区块地址的情况,也就是区块M与区块C的内容整合起来才是所对映逻辑区块的内容,由此提高区块的使用效率。这些母子区块(区块M与区块C)的关系可依据控制器122中缓冲存储器122d的大小而定,在本发明实施例中是以五组来实作。之后,当需要将区块M与区块C的内容真正合并时,一般有两种作法,一则是将区块M中有效的数据复制至区块C,然后将区块M擦除并搬移至备用区206,同时,将区块C从替换区208搬移至数据区204,由此完成合并(如图2B所示)。另一种方法,则是从备用区206中提取一区块,并且将区块M与区块C的有效数据复制于此区块中,并且将区块M与区块C擦除后搬移至备用区206而将此区块搬移至数据区204,由此完成合并(如图2C所示)。
瞬时区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(如图2D所示)。
值得一提的是,在非易失性存储器储存装置的运作期间上述区块的逻辑对映关系会在缓冲存储器122d中持续更新,并且例如在非易失性存储器储存装置结束运作或者每操作一定次数后将所述信息记录至系统区202的区块中。
一般来说,经常会在数据区204与备用区206之间交换的区块称为动态数据区块。在本发明实施例中,使用替换区208与瞬时区210的设计是为了使动态数据区块的使用更有效率。另外,在数据区204中往往有一些数据写入后就长时间未曾更动,例如数据区204中有100首MP3歌曲为使用者喜爱的音乐,写入后不曾再去更动。储存此类数据的区块称为静态数据区块。静态数据区块由于很少更动,因此其擦除次数会相对低。在本发明实施中,控制器122的存储器管理模块122a会执行平均磨损方法,以有效地平均区块124-1至124-N的磨损。
本发明实施例的平均磨损方法包括根据物理区块被擦除的先后顺序从备用区中提取物理区块(步骤S1310)以及执行耗损调整编程(步骤S1320)。在本发明另一实施例中,在步骤S1310中从备用区中提取物理区块时除了根据区块被擦除的先后顺序之外还包括根据权重标记。
图3示出了平均磨损方法的流程图,其用于编程存储器区块时可平均地使用存储器区块以达到平均磨损的目的。以下将结合图3详细说明平均磨损方法。
请参考图3,在步骤S301中,当初始化非易失性存储器储存装置120时,会建立一擦除区块表400。擦除区块表400是用以依序记录被擦除的区块。具体来说,每当对区块进行擦除后,则在擦除区块表400中记录此被擦除的区块的地址。在闪速存储器的编程与擦除管理中,本领域技术人员都了解当区块被擦除后一般会搬移至备用区206以备下次编程的使用。因此,在擦除区块表400中依序记录被擦除的区块,则可从擦除区块表400中得知在备用区206中区块的擦除先后顺序。
图4示出了擦除区块表与记录方法的示意图。请参考图4,擦除区块表400的每一字段可记录被擦除区块的地址,并且是以由左至右由上至下的先后顺序来记录。当所有字段都被记录后,则再由起始记录的位置以循环覆盖方式来继续记录。擦除区块表400中包括一记录指针402,用以标示目前记录的位置。
如图4的(a)所示,假设系统曾经以区块0、区块1、区块3、区块4...区块100的先后顺序擦除区块时,则在擦除区块表400中会依序记录所述区块,并且记录指针402是在区块0的前,表示区块0、区块1、区块3、区块4...区块100之中,区块0是最先被擦除,而区块100最后被擦除。值得一提的是,当记录被擦除的区块之前会判断此被擦除的区块是否已记录在擦除区块表400中达到一第二预设次数,倘若是时,则不再记录此擦除的区块。其中第二预设次数是依据达到的平均磨损效果而设定。在本实施例中,第二预设次数为2,然而必须了解的是,本发明不限于此。例如,在图4的(a)中区块1已被记录2次,因此倘若区块1再被擦除时,则不再在擦除区块表400中记录。
如图4的(b)所示,倘若在图4的(a)所示的情况之后,非易失性存储器储存装置120擦除区块101时,则会在记录指针402的下一个位置记录区块101,由于记录指针402的下一个位置是循环回开始位置,因此会将先前区块0的记录覆盖。
如图4的(c)所示,倘若在图4的(b)所示的情况之后,非易失性存储器储存装置120擦除区块102时,则会在记录指针402的下一个位置记录区块102。然而,由于区块1在擦除区块表400中已记录预设次数的2次,因此,在覆盖此记录之前会将另一个区块1的记录标记一权重标记(如图4的1*)。此权重标记用以标示该区块的擦除次数大于预设次数。在本实施例中,倘若要覆盖的先前记录具有权重标记录时则不会执行覆盖,而覆盖其下一个未具有权重标记的记录。
值得一提的是,在本发明实施例中,倘若在备用区206的区块在擦除区块表400中无任何记录时,则表示此类区块比在擦除区块表400中记录的区块更早被擦除。
在本实施例中,擦除区块表400记录在缓冲存储器122d,每当非易失性存储器储存装置120重新启动时会重新建立擦除区块表400,并且所有记录会重置。然而,在本发明另一实施例中,也可将擦除区块表400在非易失性存储器储存装置的运作期间定期或结束运作时记录至系统区202的区块中,并且当非易失性存储器储存装置120重新启动时从系统区202中加载擦除区块表400继续使用。
请再参考图3,在步骤S303中当从备用区206中提取区块时判断要提 取的区块的用途。倘若在步骤S303判断所提取的区块用于数据区204时,则在步骤S305中会判断在备用区206中是否存有具权重标记的区块。倘若在步骤S305中判断在备用区206中存有具权重标记的区块时,则步骤S307选择具权重标记且较早被擦除的区块(较早代表已存在擦除区块表较久的时间)。具体来说,在步骤S307中会依据擦除区块表400寻找在备用区206中具有权重标记的区块,倘若找寻到多个具有权重标记的区块时则依据在擦除区块表400中擦除的先后顺序选择最早被擦除的区块。倘若在步骤S305中判断在备用区206中无具权重标记的区块,则在步骤S309中会依据在擦除区块表中擦除的先后顺序选择最早被擦除的区块。其中,在本发明中,所谓用于数据区204的区块是指如图2A或图2C所示的区块S,其是用以从备用区206提取以替换数据区204的区块。
倘若在步骤303中判断所提取的区块是用于瞬时区210时,则在步骤S311中会选择在备用区206中不具权重标记且最晚被擦除的区块(最晚代表存在擦除区块表最短的时间)。具体来说,在步骤S311中会先判断备用区206中是否存有未被记录于擦除区块表400中的区块。如上所述,未被记录于擦除区块表400中的区块为最先擦除的区块。若存有未被记录于擦除区块表400中的区块时,则随机选择未被记录于擦除区块表400中的区块的其中的一。若无存有未被记录于擦除区块表400中的区块时,则依据在擦除区块表中擦除的先后顺序选择最晚被擦除且不具权重标记的区块。
倘若在步骤303中判断所提取的区块用于替换区208时,则在步骤S313中以随机方式选取备用区206中的区块。在本发明另一实施例中,也可步骤S313亦可使用一循序方式从备用区206中选取区块。
在步骤S315中会判断记录非易失性存储器124的擦除次数的计数值是否大于一第一预定次数。倘若在步骤S315中计数值大于第一预设次数时,则在步骤S317中会启动执行耗损调整编程。在本发明另一实施例中,耗损调整编程包括将任一未使用过的逻辑区块所对映的物理区块与在备用区206的中一具有权重标记且较早擦除的物理区块进行交换并且重置计数值(例如归0),其中若无具有权重标记则选择最早擦除的区块。具体来说,在耗损调整编程中所谓的交换是产生所选择区块与数据区204的关联同时取消所选择区块与备用区206的关联,以及产生此未使用过的逻辑区块所对映的物理区块与备用区206的关联同时取消此未使用过的逻辑区块所对映的物理区块 与数据区2 04的关联。在本实施例中,第一预定次数是使用者依据要达到平均磨损效果来设定,第一预定次数可以是50~200的范围,在本实施例中第一预定次数为100。然而,必须了解的是,本发明不限于此。
必须了解的是,在本发明实施例中,是以非易失性存储器124的擦除次数作为启动耗损调整编程的机制。然而,本发明不限于此,任何已知的启动机制都可应用于本发明。例如,以写入次数或随机方式启动耗损调整编程。
在本发明另一实施中,平均磨损方法还包括依据逻辑物理对映表(未示出)来记录逻辑区块的使用信息。具体来说,为标示逻辑区块的使用状况,本发明另一实施例是使用逻辑物理对映表的1个位来记录逻辑区块的使用信息。当非易失性存储器储存装置120初始化时,会将使用信息皆标示为“0”。每当主机100写入某个逻辑区块时,则将此逻辑区块的使用信息标示为“1”。此时,标示“1”的逻辑区块表示为使用过,而标示“0”的区块表示为未使用过。直到所有逻辑区块都标示为“1”时,则将标示“1”的逻辑区块表示为未使用过,每当主机100写入某个逻辑区块时,则将此逻辑区块的使用信息标示为“0”。此时,标示“0”的逻辑区块表示为使用过,而标示“1”的区块表示为未使用过。如此循环来判断使用过与未使用的逻辑区块。
值得一提的是,在本实施例中倘若在擦除区块表400中无任何记录时,则表示在备用区206中的区块的先后顺序与权重皆为相同。因此,当从备用区206中提取区块时,则以随机方式来选取区块。类似地,在本发明另一实施例中也可使用循序方式来选取区块。
在本发明另一实施中,平均磨损方法还包括执行一主机100正常的写入指令来完成步骤S317,如此可以避免突然断电所衍生的问题。
[第二实施例]
本发明第二实施例的硬件架构、非易失性存储器运作以及区块擦除先后顺序与权重的记录相同于第一实施例(如图1A-1B、2A-2D、4),因此在此不再重复说明。第二实施例与第一实施例所不同之处在于第二实施例在平均磨损方法中仅对用于替换区与数据区的区块提取设定规则。
图5是根据在本发明第二实施例绘示平均磨损的流程图。请参考图5,图5所示的流程图与图3所示的流程图其不同之处在于图5是仅针对用于数据区204与替换区208的用途来设定不同提取方式(步骤S1310’),除此之外其它步骤相同于图3,在此不再重复说明。
[第三实施例]
本发明第三实施例的硬件架构、非易失性存储器运作以及区块擦除先后顺序与权重的记录相同于第一实施例(如图1A-1B、2A-2D、4),因此在此不再重复说明。第三实施例与第一实施例所不同之处在于第三实施例在平均磨损方法中仅对用于替换区与瞬时区的区块提取设定规则。
图6是根据在本发明第四实施例绘示平均磨损的流程图。请参考图6,图6所示的流程图与图3所示的流程图其不同之处在于图6是仅针对用于瞬时区210与替换区208的用途来设定不同提取方式(步骤S1310”),除此之外其它步骤相同于图3,在此不再重复说明。
在本发明第一、二与第三实施例中以判断从备用区206中提取的区块用于数据区204、替换区208或瞬时区210。然而,此不限于本发明。换言之,在本发明另一实施例中从备用区206中所提取区块的用途也可以再分类其它用途,或者也可仅针对用于数据区204、替换区208与瞬时区210其中之一或其组合来进行提取。
[第四实施例]
本发明第四实施例的硬件架构、非易失性存储器运作以及区块擦除先后顺序与权重的记录是相同于第一实施例(如图1A-1B、2A-2D、4),因此在此不再重复说明。第四实施例与第一实施例所不同之处在于第一实施例的平均磨损方法是包括根据物理区块被擦除的先后顺序与权重标记从备用区中提取物理区块以及执行耗损调整编程。然而,在本发明第四实施例中,仅执行耗损调整编程也可达到平均存储器内区块的磨损的目的。
图7根据本发明第四实施例绘示平均磨损方法的流程图。平均磨损方法包括以表格来记录多个逻辑区块的使用信息(S701)。之后,依据所记录的使用信息在数据区中选择逻辑区块之中未使用过的逻辑区块所对映的物理区块(S703)。最后,将所选择的物理区块与备用区中的物理区块进行交换(S705)。其中,在步骤S701所述的表格例如是一逻辑物理对映表。
在根据本发明所提出的平均磨损方法是适用于非易失性存储器,因此本发明所提出的平均磨损方法可应用各种以非易失性存储器作为储存媒体的装置。例如图8所示的USB闪速盘802、数字相机(摄影机)804所使用的SD卡804a、MMC卡804b、CF卡804c与存储棒(memory stick)804d以及固态硬盘806等。尤其是固态硬盘806还需要好的平均磨损方法。
综上所述,本发明所提出用于非易失性存储器的平均磨损方法可有效地平均存储器内区块的磨损,由此延长存储器的寿命。再者,本发明所提出的平均磨损方法的总擦除次数与传统方法的总擦除次数差异不大并不会增加造成额外擦除负担,然而本发明的方法比传统方法还可以平均存储器区块的擦除次数。
虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围的前提下,当可作若干的更改与修饰,因此本发明的保护范围应以本发明的权利要求为准。