存储器装置与其相关的抹除方法与流程

文档序号:11954891阅读:232来源:国知局
存储器装置与其相关的抹除方法与流程

本发明是有关于一种存储器装置与其相关的抹除方法,且特别是有关于一种采用管线架构(pipeline configuration)的存储器装置与其相关的抹除方法。



背景技术:

闪存(flash memory)是一种相当普遍的非挥发性存储器(non-volatile memory)。闪存芯片包含多个存储单元。

请参见图1,其是一个非挥发式存储器的存储单元的侧视图。简单来说,闪存的控制端C与基板13间,可用于储存电荷。闪存的操作可大致分为:写入操作、读取操作、抹除操作。写入操作与抹除操作都是改变在晶体管存储单元(transistor memory cell)的控制端C与基极(substrate)间,所储存的电荷(charge)量的多少。

随着所储存的电荷量变化,晶体管的临界电压(threshold voltage,简称为Vth)也随着改变。其中,写入操作是通过在控制端C施加正电压的方式改变临界电压(Vth),临界电压(Vth)的大小会随着所写入的数据内容改变。另一方面,抹除操作则是通过在控制端C施加负电压的方式改变临界电压(Vth)。读取操作则是在漏极D与源极S间施加电压,当所施加在控制端C的电压达到临界电压(Vth)时,将因而使存储单元导通(turn on)。其后,再根据使存储单元导通的临界电压(Vth)的值判断该存储单元所存储的数据内容。

请参见图2,其是对存储单元进行抹除操作时,存储单元个数相对于临界电压变化的示意图。其中曲线位置愈高,表示与该临界电压对应的存储单元个数越多。此处代表一个单层存储单元(single-level cell,简称为SLC)被写入数据后,临界电压为原始电平(V0)。为了能再重复利用这个存储单元,便需要对存储单元施加负向电压,进而使存储单元的临界电压(Vth)向图2的左侧移动。

每个闪存芯片由多个存储区块(block)构成,每个区块则进一步包含许多分页(page)。抹除闪存时,需以存储区块为单位。写入或读取闪存时,则以分页为单位。与读取操作、写入操作相较,闪存的抹除操作需要花费较长的时间。一般说来,写入操作与读取操作所需的时间约为微秒(μs)等级,抹除操作所需的时间约为毫秒(ms)等级。对存储区块进行抹除操作相当的费时,也需要大量的电力。

控制电路对存储区块发出抹除指令时,不仅是单纯的对存储区块内的存储单元施加负向电压,还需要再进一步确认存储区块内的所有存储单元的临界电压(Vth)确实都已低于抹除验证电压Verase。此处将存储区块内的所有存储单元的临界电压(Vth)均已低于抹除验证电压Verase称为满足验证条件。若验证条件不满足,控制电路将控制电压对存储区块再次进行抹除,直到所有存储单元的临界电压(Vth)均低于符合抹除验证电压Verase为止。此处将经过抹除后的存储单元的临界电压(Vth)称为目标电平Vtarget。此处并将对存储区块发出抹除指令后,所需花费的时间定义为存储区块的抹除期间Terase

请参见图3,其是对一个存储区块发出抹除指令后,存储区块的操作状态改变的示意图。抹除前的存储区块15a称为使用后存储区块,抹除后的存储区块15b称为闲置存储区块(free block)。如前所述,存储区块内的每一个存储单元均需要进行抹除与验证。随着存储区块所包含的分页数量的增加,或是每个分页内所包含的存储单元个数增加等因素,存储区块所包含的存储单元个数也跟着增加。连带的,对存储区块发出抹除指令所需花费的存储区块的抹除期间Terase也越来越长。

存储区块的抹除期间Terase变长不仅会影响使用者的使用经验,还可能因为这样而使闪存控制芯片将闪存芯片误判为损坏。因为快闪存储器控制芯片会针对抹除指令的发出而预设一段等待期间,倘若等待期间经过后,仍无法顺利接收存储器芯片所回传的验证条件通过的信息时,便会将抹除指令视为失败。然而,等待期间变长也许是因为存储区块所包含的存储单元个数的增加,进而导致对存储区块进行抹除的时间也跟着变长的缘故。也因此,闪存控制芯片可能因而将闪存芯片误判为损坏。因此,如何快速进行抹除以产生闲置存储区块(free blocks)已成为一重要议题。



技术实现要素:

根据本发明的第一方面,提出一种抹除方法,应用于包含多个存储区块的一存储器装置,该抹除方法包含以下步骤:依序于一第一期间及一第二期间对该等存储区块中的至少一第一存储区块进行一第一阶段抹除操作及一第二阶段抹除操作;以及依序于该第二期间及一第三期间对该等存储区块中的至少一第二存储区块进行该第一阶段抹除操作及该第二阶段抹除操作。

根据本发明的第二方面,提出一种存储器装置,包含:多个存储区块,包含:至少一第一存储区块;以及至少一第二存储区块;以及一控制器,电连接于该等存储区块,其依序于一第一期间及一第二期间对该至少一第一存储区块进行一第一阶段抹除操作及一第二阶段抹除操作,以及依序于该第二期间及一第三期间对该至少一第二存储区块进行该第一阶段抹除操作及该第二阶段抹除。

为了对本发明的上述及其他方面有更佳的了解,下文特举优选实施例,并配合所附附图,作详细说明如下:

附图说明

图1,其是一个非挥发式存储器的存储单元的侧视图。

图2,其是对存储单元进行抹除操作时,存储单元个数相对于临界电压变化的示意图。

图3,其是对一个存储区块发出抹除指令后,存储区块的操作状态改变的示意图。

图4A,其是固态存储装置包含多个闪存芯片的示意图。

图4B,其是快闪记存储器芯片包含多个快闪存储区块的示意图。

图5,其是通过三次部分抹除指令而改变存储区块的临界电压的示意图。

图6,其是通过三次部分抹除指令而对存储区块进行抹除操作的抹除期间的示意图。

图7,其是采用三个管线阶段,对多个存储区块发出多区块部分抹除指令的示意图。

图8,其是采用三个管线阶段,并于各个管线阶段同时对多个存储区 块执行多重-部分抹除的示意图。

图9,其是于管线阶段包含提前完成抹除操作的存储区块的示意图。

图10,其是通过区块抹除指令而对存储区块进行抹除的示意图。

图11,其是采用三个管线阶段,并于各个管线阶段发出多重-子区块抹除指令的示意图。

图12,其是采用三个管线阶段,并于各个管线阶段同时对多个存储区块执行多重-子区块抹除指令的示意图。

图13A~图13F,其是对存储区块发出子区块抹除指令作法时,事先备份存储区块所存储的数据的示意图。

图14A~图14E,其是对存储区块发出子区块抹除指令时,能弹性选择被抹除的分页的示意图。

图15,其是使用存储器装置的数据处理系统的各功能层的示意图。

【符号说明】

基板 13 抹除前的存储区块 15a

抹除后的存储区块 15b 固态存储装置 20

控制器 23

闪存芯片 251、252、253、254、30

存储区块 251a、251b、251c、251d、252a、252b、252c、252d、253a、253b、253c、253d、254a、254b、254c、254d、35、37、39、40a、40b、40c、40d、41a、41b、41c、41d、42a、42b、42c、42d、43a、43b、43c、61、63、71

第一存储区块 41、51 第二存储区块 42、52

第三存储区块 43、53 第四存储区块 44、54

第五存储区块 45、55 第六存储区块 46、56

第七存储区块 47、57 第八存储区块 48、58

第九存储区块 49、59 第十存储区块 410、60

分页50a、50b、50c、50d、50e、50f、51a、51b、51c、51d、51f、52a、52b、52c、52d、52e、52f、53a、53b、53c、53d、53e、53f、61a、61b、61c、61d、61e、61f、63a、63b、63c、63d、63e、63f、71a、71b、71c、71d、71e、71f

系统 80 应用程序 81

区块文件系统 83 原生性文件系统 88

闪存转换层 85 分配器 851

清理器 853 损耗平均器 855

存储器技术装置 87 读取驱动程序 871

部分抹除驱动程序 873 多重部分抹除驱动程序 874

写入驱动程序 875 抹除驱动程序 876

子区块抹除驱动程序 877 多重子区块抹除驱动程序 878

具体实施方式

为了改善对存储区块发出抹除指令时,花费时间过长的现象。本发明提出一种利用管线架构而对多个存储区块同步进行抹除的作法。以下交替使用的区块、存储区块代表快闪存储区块。此外,在以下的附图中,以格状的底纹代表经由选取算法所选出,需要被用于抹除的存储区块。

快闪存储装置或固态存储装置(Solid State Drive,简称为SSD)可能包含多个闪存芯片,这些存储器芯片可能各自都有一部分的存储区块需要被抹除。或者,针对单一个存储器芯片内部,也可能有多个存储区块需要进行抹除。固态硬盘的所有元件组装完成后,包含一颗用来管理众多NAND闪存颗粒的闪存存储处理器(FSP)。固态硬盘制造商可在进行韧体程序设计时,额外保留一部分硬盘存储容量作为超容量快取(over-provisioning,简称为OP)。超容量快取一般用于垃圾数据回收功能(garbage collector)与损耗平均功能(wear leveller)。在本发明的实施例中,还进一步利用超容量快取,作为进行管线阶段(pipeline erase stages)抹除所需的缓冲空间,并维持使用者所能使用的存储容量。

请参见图4A,其是固态存储装置包含多个闪存芯片的示意图。位于外部的主机21(例如:笔记本电脑的CPU)通过外部总线而连接至固态存储装置20,且固态存储装置20内部由控制器23控制多个闪存芯片251、252、253、254。为便于说明,此处假设每一个闪存芯片251、252、253、254各自包含四个快闪存储区块。存储器芯片251包含存储区块251a、251b、251c、251d;存储器芯片252包含存储区块252a、252b、252c、252d;存储器芯片253包含存储区块253a、253b、253c、253d;存储器芯片254包 含存储区块254a、254b、254c、254d。控制器23可以掌握在不同闪存芯片251、252、253、254上的各个存储区块的状态。例如:存储区块251a、252a、254a处于需要被抹除的状态;存储区块251b、252c、252d、253b、253c、253d、254b、254c、254d处于闲置(free)状态;存储区块251c、251d、252b、253a为存放有效数据的状态。

请参见图4B,其是闪存芯片包含多个快闪存储区块的示意图。闪存芯片30包含多个存储区块,且控制器31可掌握各个存储区块的使用状态。例如,在图4B中,以格状底纹的方块代表处于被抹除状态的存储区块37;以标示data的方块代表存储有效数据的存储区块35,以及以空白的方块代表未存储任何数据的存储区块39。

在本发明的实施例中,待抹除的存储区块的选择可以通过各类型的选择算法得出。例如,最近最少使用(Least Recently Used,简称为LRU)选取算法、贪婪(Greedy)选取算法、最年轻存储区块优先(Young Block first)选取算法、基于最少有效分页的选取算法(least valid page based selection)等。当然,选择需被抹除的存储区块的方式并不以此为限。

本发明所提出的管线阶段的抹除方式,可以在每一个管线阶段中,对多个需要被抹除的存储区块同步进行多重-部分抹除指令(multiple partial erase command)或多重-子区块抹除指令(multiple subblock erase command)。在管线阶段中,同时被用于抹除的多个存储区块,其实际位置并不需要被限定。换句话说,需要被抹除的存储区块可能如图4B所示位于同一个芯片,或者如图4A所示分别位于不同的存储器芯片。甚至,部分的需被抹除的存储区块位于同一个存储芯片上,需被抹除的其余存储区块则分散在其他存储芯片上。

针对存储器装置包含多个需要被抹除的存储区块的情形,本发明的抹除方法提出以M个管线阶段进行的作法,对M组存储区块同步进行部分抹除指令(partial erase command)或子区块抹除指令(subblock erase command)。其中,M为正整数。为便于说明,以下的实施例假设M=3,但实际应用时并不以此为限。若抹除一个存储区块需要的抹除期间为Terase,在采用本发明后,每间隔Terase/M即可提供一组闲置存储区块。因此,当M的数值越大,对存储区块的平均抹除时间也随着变短。

如前所述,对一个存储区块发出抹除指令后,需要的执行期间(抹除期间)为Terase。对每一个存储区块的抹除被区分为M个管线阶段。根据一种管线抹除指令,在长度为Terase/M的每一个管线阶段内,执行多个管线抹除操作。第一存储区块会在一个存储区块的抹除期间Terase后完成抹除,其后,每间隔Terase/M便可提供一个经过抹除后而可使用的闲置存储区块(free block)。根据本发明的构想,与管线阶段搭配使用的管线抹除指令可分为两类,多重-部分抹除指令(multiple-partial erase command)以及多重-子区块抹除指令(multiple-subblock erase command)。

请参见图5,其是通过三次部分抹除指令而改变存储区块的临界电压的示意图。在此实施例中,将整个抹除过程分为三个阶段(M=3)。通过第一次部分抹除指令,将存储区块内部的存储单元的临界电压由原始电平V0移动至第一电平V1。执行第一次部分抹除指令所需花费的时间称为第一阶段的抹除期间T1。通过第二次部分抹除指令,将存储区块内部的存储单元的临界电压由第一电平V1移动至第二电平V2。执行第二次部分抹除指令所需花费的时间称为第二阶段的抹除期间T2。通过第三次部分抹除指令,将存储区块内部的存储单元的临界电压由第二电平V2移动至目标电平Vtarget。执行第三次部分抹除指令所需花费的时间称为第三阶段的抹除期间T3。其中,第一阶段的抹除期间T1、第二阶段的抹除期间T2与第三阶段的抹除期间T3的长度彼此相等。此外,原始电平V0与第一电平V1之间的电压差,大于第一电平V1与第二电平V2之间的电压差;且,第一电平V1与第二电平V2之间的电压差,大于第二电平V2与目标电平Vtarget之间的电压差。

请参见图6,其是通过三次部分抹除指令而对存储区块进行抹除操作的抹除期间的示意图。待抹除的存储区块40a经过第一次部分抹除指令后,内部存储单元的临界电压均已经由原始电平V0变成第一电平V1。此处以直线方向的底纹代表经过第一次部分抹除指令后,临界电压为第一电平V1的存储区块40b。

接着,对临界电压为第一位电平V1的存储区块40b执行第二部分抹除指令,进而使内部存储单元的临界电压由第一电平V1变成第二电平V2。此处以横线方向的底纹代表经过第二次部分抹除指令后,临界电压为第二 电平V2的存储区块40c。

其后,对临界电压为第二电平V2的存储区块40c执行第三部分抹除指令,进而使内部存储单元的临界电压由第二电平V2变成目标电平Vtarget。此处以空白的方块代表经过第三次部分抹除指令后,临界电压为目标电平Vtarget的存储区块40d。

根据本发明的实施例,第一阶段的抹除期间T1、第二阶段的抹除期间T2与第三阶段的抹除期间T3的总和大致等于单一个存储区块的抹除期间Terase,或者,第一阶段的抹除期间T1、第二阶段的抹除期间T2与第三阶段的抹除期间T3的总和略大于单一个存储区块的抹除期间Terase

请参见图7,其是采用三个管线阶段,对多个存储区块同时发出部分抹除指令的示意图。本发明针对同时对多个区块发出部分抹除指令的情形,进一步定义一多重-部分抹除指令(multiple partial erase command)。此附图同样假设M=3,即,每个存储区块在个别经过三个管线阶段后完成抹除。图7的第一列代表控制器对存储芯片所发出的多重-部分抹除指令的先后顺序。

图7的第二列代表对第一存储区块41的抹除过程。第一存储区块41在第一个多重-部分抹除指令的执行期间,进行第一个管线阶段(T1)。即,使第一存储区块41内的存储单元的临界电压,由原始电平V0降低至第一电平V1。第一存储区块41在第二个多重-部分抹除指令的执行期间,进行第二个管线阶段(T2)。即,使第一存储区块41内的存储单元的临界电压,由第一电平V1降低至第二电平V2。第一存储区块41在第三多重-部分抹除指令的执行期间,进行第三个管线阶段(T3)。即,使第一存储区块41内的存储单元的临界电压,由第二电平V2降低至目标电平Vtarget。在第三个多重-部分抹除指令结束后,第一存储区块41便完成抹除。换句话说,自第四个多重-部分抹除指令开始执行时,第一存储区块41便可以被用于存储数据。

图7的第三列代表对第二存储区块42的抹除过程。第二存储区块42在第二个多重-部分抹除指令的执行期间(T1),进行第一个管线阶段(T1)。即,使第二存储区块42内的存储单元的临界电压,由原始电平V0降低至第一电平V1。第二存储区块在第三个多重-部分抹除指令的执行期间,进 行第二个管线阶段(T2)。即,使第二存储区块42内的存储单元的临界电压,由第一电平V1降低至第二电平V2。第二存储区块在第四个多重-部分抹除指令的执行期间,进行第三个管线阶段(T3)。即,使第二存储区块42内的存储单元的临界电压,由第二电平V2降低至目标电平Vtarget。在第四个多重-部分抹除指令结束后,第二存储区块42便完成抹除。换句话说,自第五个多重-部分抹除指令开始执行时,第二存储区块42便可以被用于存储数据。

图7的第四列代表对第三存储区块43的抹除过程。第三存储区块43在第三个多重-部分抹除指令的执行期间,进行第一个管线阶段(T1)。即,使第三存储区块43内的存储单元的临界电压,由原始电平V0降低至第一电平V1。第三存储区块43在第四个多重-部分抹除指令的执行期间,进行第二个管线阶段(T2)。即,使第三存储区块43内的存储单元的临界电压,由第一电平V1降低至第二电平V2。第三存储区块43在第五个多重-部分抹除指令的执行期间,进行第三个管线阶段(T3)。即,使第三存储区块43内的存储单元的临界电压,由第二电平V2降低至目标电平Vtarget。在第五个多重-部分抹除指令结束后,第三存储区块43便完成抹除,并可用于存储数据。

据此,自第三个多重-部分抹除指令执行完毕后,每经过一个阶段的抹除期间,便会有一个存储区块完成抹除而可用于存储数据。由于每一个阶段的抹除期间约等于(1/3)×Terase,让区块整体的抹除速度大幅提升。

进一步地,在每一个多重-部分抹除指令执行时,也可以对同时对多个存储区块进行相同管线阶段的部分抹除。请参见图8,其是采用三个管线阶段,并于各个管线阶段同时对多个存储区块执行多重-部分抹除的示意图。在此实施例中,对多个存储区块同时发出多重-部分抹除指令。此处同样假设对每一个存储区块的抹除操作被区分为三个管线阶段(M=3)。

图8的第一列代表控制器对存储芯片所发出的多重-部分抹除指令的先后顺序。图8的第二列代表经由选择算法所选出,作为下一个多重-部分抹除指令执行期间开始进行部分抹除的存储区块。图8的其余各列对应于存储区块的状态。

在第一个多重-部分抹除指令的执行期间,第一存储区块41与第二存 储区块42同时处于第一管线阶段(T1),并用于进行第一次部分抹除。即,将第一存储区块41与第二存储区块42的存储单元的临界电压Vth,由原始电平V0移动至第一电平V1。此外,第三存储区块43与第四存储区块44则被选择为待抹除区块。

在第二个多重-部分抹除指令的执行期间,第一存储区块41与第二存储区块42同时处于第二管线阶段(T2),并用于进行第二次部分抹除。即,将第一存储区块41与第二存储区块42的存储单元的临界电压Vth,由第一电平V1移动至第二电平V2。在此同时,第三存储区块43与第四存储区块44则同时处于第一管线阶段(T1),并用于进行第一次部分抹除。即,将第三存储区块43与第四存储区块44的存储单元的临界电压Vth,由原始电平V0移动至第一电平V1。此外,第五存储区块45与第六存储区块46则被选择为待抹除区块。

在第三个多重-部分抹除指令的执行期间,第一存储区块41与第二存储区块42同时处于第三管线阶段(T3),并用于进行第三次部分抹除。即,将第一存储区块41与第二存储区块42的存储单元的临界电压Vth,由第二电平V2移动至目标电平Vtarget。在此同时,第三存储区块43与第四存储区块44则同时处于第二管线阶段(T2),并用于进行第二次部分抹除。即,将第三存储区块43与第四存储区块44的存储单元的临界电压Vth,由第一电平V1移动至第二电平V2。以及,第五存储区块45与第六存储区块46则同时处于第一管线阶段(T1),并用于进行第一次部分抹除。即,将第五存储区块45与第六存储区块46的存储单元的临界电压Vth,由原始电平V0移动至第一电平V1。此外,第七存储区块47与第八存储区块48则被选择为待抹除区块。

第三个多重-部分抹除指令结束后,第一存储区块41与第二存储区块42已经抹除完成。在第四个多重-部分抹除指令的执行期间,第三存储区块43与第四存储区块44同时处于第三管线阶段(T3),并用于进行第三次部分抹除。即,将第三存储区块43与第四存储区块44的存储单元的临界电压Vth,由第二电平V2移动至目标电平Vtarget。在此同时,第五存储区块45与第六存储区块46则同时处于第二管线阶段(T2),并用于进行第二次部分抹除。即,将第五存储区块45与第六存储区块46的存储单元 的临界电压Vth,由第一电平V1移动至第二电平V2。以及,第七存储区块47与第八存储区块48则同时处于第一管线阶段(T1),并用于进行第一次部分抹除。即,将第七存储区块47与第八存储区块48的存储单元的临界电压Vth,由原始电平V0移动至第一电平V1。此外,第九存储区块49与第十存储区块410则被选择为待抹除区块。

比较图7与图8的两个实施例可以看出,在每一个管线阶段同时进行部分抹除的存储区块的个数越多时,整体的抹除速度亦同步提升。例如,在图7中,于第三阶段的抹除期间T3结束后,仅有第一存储区块41完成抹除。另一方面,在图8中,于第三阶段的抹除期间T3结束后,第一存储区块41与第二存储区块42均完成抹除。同理,在M个管线阶段中,若每一个管线阶段可对N个存储区块进行部分抹除,则整体用于产生抹除后存储区块的速度可进一步提升。即,平均每间隔Terase/(M*N)期间便产生一抹除后存储区块。

在某些情况下,有些存储区块内的存储单元,其临界电压的移动较为容易。针对此种情形,可能发生存储区块在所有管线阶段完成前即已完成抹除。也就是说,临界电压Vth的电平已经在较先前的管线阶段变成目标电平Vtarget。基于管线阶段的管理一致性考虑,针对此种状况,仍等待管线阶段结束后,才一起提供该存储区块与其他存储区块作为闲置存储区块。

请参见图9,其是于管线阶段包含提前完成抹除操作的存储区块的示意图。此附图的各个存储区块相对于各管线阶段与多重-部分抹除指令的执行顺序均与图8相似。与图8不同的是,在图9中,于第二个多重-部分抹除指令执行完毕后,第二存储区块42虽然才经过第二个管线阶段,却已经达到抹除完成的状态。即便如此,控制器仍会将第二存储区块42排入下一个管线阶段。也就是说,控制器仍会发出第三个多重-部分抹除指令至第二存储区块42。

一般而言,抹除指令可理解为通过一抹除电路施加适当的电压于存储区块。则,针对第二存储区块42提前完成抹除的情形,可以通过抹除电路进行特殊处理。例如,抹除电路在第三个多重-部分抹除指令的执行期间,再次对第二存储区块42进行部分抹除。或者,在第三个多重-部分抹除指令的执行期间,抹除电路可以暂停再对第二存储区块42进行部分抹除。 据此,控制器将维持整体抹除过程的各个管线阶段存在相同数量的存储区块,并在每一个阶段的抹除期间结束后维持产生N个(在图9中,N=2)闲置存储区块。

本发明所述的管线阶段,亦可通过子区块抹除方式实现。每一个存储区块均包含多个分页(例如,O个分页)。这些分页可进一步被分为M组(M个子区块)。其中,位于同一组内的分页并不一定彼此相邻。假设子区块抹除指令发出后,抹除电路会对同一组内的分页(O/M个分页)进行抹除。子区块抹除指令会使特定的一个或多个分页内的存储单元的临界电压Vth,直接由原始电平V0降低至目标电平Vtarget

请参见图10,其是通过子区块抹除指令而对存储区块进行抹除的示意图。此处假设每个存储区块包含6个分页50a、50b、50c、50d、50e、50f。即,O=6。这六个分页被区分为三组。即,M=3。其中每一组包含两个分页。在此实施例中,假设子区块抹除指令每次会同时对其中的2个分页进行抹除。

在管线阶段开始时前,存储区块内的6个分页50a、50b、50c、50d、50e、50f均为待抹除状态。经过第一阶段的抹除期间T1后,分页50e、50f完成抹除。经过第二阶段的抹除期间T2后,分页50c、50d完成抹除。经过第三阶段的抹除期间T3后,分页50a、50b完成抹除。本发明实施例在图10的基础上,可搭配管线架构而加速整体抹除的速度。

请参见图11,其是采用三个管线阶段,并于各个管线阶段同时对多个存储区块发出多重-子区块抹除指令的示意图。此实施例将存储区块的抹除过程区分为三个管线阶段(M=3)。换句话说,经过三次子区块抹除操作后,完成对存储区块的抹除操作。图11的第一列代表控制器对存储芯片所发出的多重-子区块抹除指令的先后顺序。

图11的第二列代表对第一存储区块的抹除过程。第一存储区块在第一个多重-子区块抹除指令的执行期间,处于第一个管线阶段(T1)。此时,控制器控制抹除电路对第一存储区块的第一组分页51e、51f进行抹除。第一存储区块在第二个多重-子区块抹除指令的执行期间,处于第二个管线阶段(T2)。此时,控制器控制抹除电路对第一存储区块的第二组分页51c、51d进行抹除。第一存储区块在第三个多重-子区块抹除指令的执行期间, 处于第三个管线阶段(T3)。此时,控制器控制抹除电路对第一存储区块的第三组分页51a、51b进行抹除。在第三个多重-子区块抹除指令的执行结束后,第一存储区块便完成抹除。换句话说,自第四个多重-子区块抹除指令开始,第一存储区块便可以被用于存储数据。

图11的第三列代表对第二存储区块的抹除过程。第二存储区块在第二个多重-子区块抹除指令的执行期间,处于第一个管线阶段(T1)。此时,控制器控制抹除电路对第二存储区块的第一个子区块内的分页52e、52f进行抹除。第二存储区块在第三个多重-子区块抹除指令的执行期间,处于第二个管线阶段(T2)。此时,控制器控制抹除电路对第二存储区块的第二个子区块内的分页52c、52d进行抹除。第二存储区块在第四个多重-子区块抹除指令的执行期间,处于第三个管线阶段(T3)。此时,控制器控制抹除电路对第一存储块的第三个子区块内的分页52a、52b进行抹除。在第四个多重-子区块抹除指令结束后,第二存储区块便完成抹除。换句话说,自第五个多重-子区块抹除指令开始,第二存储区块便可以被用于存储数据。

图11的第四列代表第三存储区块的抹除过程。第三存储区块在第三个多重-子区块抹除指令的执行期间,处于第一个管线阶段(T1)。此时,控制器控制抹除电路对第三存储区块的第一组分页53e、53f进行抹除。第三存储区块在第四个多重-子区块抹除指令的执行期间,处于第二个管线阶段(T2)。此时,控制器控制抹除电路对第三存储区块的第二组分页53c、53d进行抹除。第三存储区块在第五个多重-子区块抹除指令的执行期间,处于第三个管线阶段(T3)。此时,控制器控制抹除电路对第三存储块的第三组分页53a、53b进行抹除。在第五个多重-子区块抹除指令结束后,第三存储区块便完成抹除。换句话说,自第六个多重-子区块抹除指令开始,第三存储区块便可以被用于存储数据。承上,自第三个多重-子区块抹除指令的执行完毕后,每经过一个阶段的抹除期间,便会有一个存储区块完成抹除操作而可用于存储数据。

以图11为基础,多重-子区块抹除指令的执行也可进一步搭配在每一个管线阶段中,同时对多个存储区块同时进行。请参见图12,其是采用三个管线阶段,并于各个管线阶段同时对多个存储区块执行多重-子区块抹除 指令的示意图。此实施例对多个存储区块同时发出多重-子区块抹除指令。此处同样假设一个存储区块的抹除被区分为三个管线阶段(M=3)。

在第一个多重-子区块抹除指令的执行期间,第一存储区块51与第二存储区块52同时处于第一管线阶段(T1),并用于对各自的第一组分页进行抹除。此外,第三存储区块53与第四存储区块54则被选择为待抹除区块。

在第二个多重-子区块抹除指令执行前,第一存储区块51与第二存储区块52的第一组分页已经完成抹除。在第二个多重-子区块抹除指令执行期间,第一存储区块51与第二存储区块52处于第二管线阶段(T2)。此时,控制器控制抹除电路对第一存储区块51与第二存储区块52的第二组分页进行抹除。在此同时,第三存储区块53与第四存储区块54则处于第一管线阶段(T1),抹除电路对第三存储区块53与第四存储区块54的第一组分页进行抹除。此外,第五存储区块55与第六存储区块56则被选择为待抹除区块。

在第三个多重-子区块抹除指令执行前,第一存储区块51与第二存储区块52的第二组分页已经完成抹除,且第三存储区块53与第四存储区块54的第一组分页已经完成抹除。在第三个多重-子区块抹除指令的执行期间,第一存储区块51与第二存储区块52处于第三管线阶段(T3),抹除电路对第一存储区块51与第二存储区块52的第三组分页进行抹除。在此同时,第三存储区块53与第四存储区块54则处于第二管线阶段(T2),抹除电路对第三存储区块53与第四存储区块54的第二组分页进行抹除。以及,第五存储区块55与第六存储区块56则处于第一管线阶段(T1),抹除电路对第五存储区块55与第六存储区块56的第一组分页进行抹除。此外,第七存储区块57与第八存储区块58则被选择为待抹除区块。

第三个多重-子区块抹除指令结束后,第一存储区块51与第二存储区块52已经抹除完成。在第四个多重-子区块抹除指令执行前,第三存储区块53与第四存储区块54的第二组分页已经完成抹除,且第五存储区块55与第六存储区块56的第一组分页已经完成抹除。在第四个多重-子区块抹除指令的执行期间,第三存储区块53与第四存储区块54处于第三管线阶段(T3),抹除电路对第三存储区块53与第四存储区块54的第三组分页 进行抹除。在此同时,第五存储区块55与第六存储区块56则处于第二管线阶段(T2),抹除电路对第五存储区块55与第六存储区块56则的第二组分页进行抹除。以及,第七存储区块57与第八存储区块58则处于第一管线阶段(T1),抹除电路对第七存储区块57与第八存储区块58的第一组分页进行抹除。此外,第九存储区块59与第十存储区块510则被选择为待抹除区块。

比较图11与图12可以看出,在同样假设M=3的情况下,每一个管线阶段用于施加多重-子区块抹除指令的存储区块个数越多时,对存储区块的抹除速度亦同步提升。例如,在图11中,于第三个多重-子区块抹除指令结束后,仅有第一存储区块完成抹除。另一方面,在图12中,于第三个多重-子区块抹除指令结束后,第一存储区块51与第二存储区块52均完成抹除。同理,在M个管线阶段中,若每一个管线阶段可对N个存储区块进行部分抹除,则整体用于产生抹除后存储区块的速度可进一步提升。

请参见图13A~图13F,其是对存储区块发出子区块抹除指令作法时,事先备份存储区块所存储的数据的示意图。此附图假设选择存储区块61作为待抹除区块,存储区块61包含分页61a、61b、61c、61d、61e、61f。其中,分页61a、61e、61f处于需要被抹除的状态;分页61c为空白分页;以及分页61b、61d存有最新的资料。

如图13A所示,为了避免在分页61b、61d所存储的最新的数据被抹除而使数据损坏的现象,在进行管线抹除前,可先将分页61b、61d内的数据复制一份至另一个备份用的存储区块63。同样的,存储区块63包含六个分页63a、63b、63c、63d、63e、61f。存储区块63的各个分页的大小,与存储区块61各个分页的大小相同。附带一提的是,用于存放待抹除区块的分页内的数据的备份用存储区块,并不一定全部分页均为闲置的闲置存储区块。

换句话说,分页61b、61d内的数据也可以被复制到部分分页处于闲置状态的存储区块。甚至,分页61b、61d所存储的数据data1、data2,也可能被分别复制到不同存储区块内的分页。此部分的变化可由本案所属技术领域的普通技术人员自由应用,此处不再赘述。

由图13B可以看出,由于分页61b、61d的数据data1、data2已经经 过备份,代表分页61b、61d的内容属于可被抹除的数据。此处在数据data1、data2的上方标示叉号。

在图13C、13D、13E中,以粗黑框代表被选取作为在管线阶段进行抹除用的分页。在图13C中,对存储区块61的第一组分页61e、61f进行抹除。即,存储区块61进入第一管线阶段。在图13D中,对存储区块61的第二组分页61c、61d进行抹除。即,存储区块61进入第二管线阶段。在图13E中,对存储区块61的第三组分页61a、61b进行抹除。即,存储区块61进入第三管线阶段。图13F代表经过三个管线阶段后,存储区块61的所有分页63a、63b、63c、63d、63e、61f均已完成抹除。即,存储区块61完成抹除而成为闲置区块。

本发明可以通过不同的方式与改良实现。例如:若控制器可以掌握存储区块内各个分页的使用状态,则前述将分页所存储的内容复制至其他存储区块的步骤可省略。

请参见图14A~图14E,其是对存储区块发出子区块抹除指令时,能弹性选择被抹除的分页的示意图。图14A的存储区块71具有与图13A的存储区块61类似的组成。即,存储区块71的分页71a、71e、71f处于需要被抹除的状态;分页71c为空白分页;以及分页71b、71d存有最新的资料。在图14B、图14C、图14D中,以粗黑框代表被选取作为在管线阶段进行抹除用的分页。

在图14B中,对分页71e、71f进行抹除。即,存储区块71进入第一管线阶段。在图14C中,存储区块71c、71d虽然进入第二管线阶段,但控制器将控制抹除电路仅对分页71c进行抹除。即,控制器确知分页71d内存储有效数据data1,进而避免抹除电路对分页71d进行抹除。在某些应用中,分页71c、71d虽然被排入第二管线阶段,但控制器可进一步判断分页71c为空白分页,且分页71d内有有效数据data1后,在第二管线阶段暂停控制抹除电路进行抹除操作。

在图14D中,存储区块71虽然进入第三管线阶段,但是控制器将控制抹除电路仅对分页71a进行抹除。即,控制器确知分页71b内存储有效数据data2,进而避免抹除电路对分页71b进行抹除。图14E代表存储区块经过第三管线阶段的抹除后的结果。

进一步的,若子区块抹除的功能能更加弹性而能掌握在存储区块内实际需要抹除的分页,则甚至可以只利用两个管线阶段即完成抹除。例如,在第一个管线阶段对分页71e、71f进行抹除。以及,在第二个管线阶段对分页71a进行抹除。关于判断分页所存储的内容后,因应实际需要被抹除的分页的个数与在存储区块内的位置,再决定管线阶段所用的分页(群组)的方式,可由本案所述技术领域的普通技术人员自行应用,此处不再详述。

综上,本发明提出利用管线架构方式的存储器装置与抹除方法,能提升产生闲置区块的速度。本发明所提出的管线架构,可搭配多重-部分抹除指令,或是多重-子区块抹除指令使用。无论管线架构是搭配多重-部分抹除指令,或是多重-子区块抹除指令,均会随着运行时间化抹除指令(阶段的抹除期间)的经过,使不同的存储区块处于相对应的管线阶段。本发明的管线架构利用存储器装置的超容量快取作为部分抹除、子区块的存储区块使用。因此,使用者并不会感觉到整体的可存储空间受到影响。

请参见图15,其是使用存储器装置的数据处理系统的各功能层的示意图。本发明由控制器执行的抹除方法,可以利用韧体或软件实现。系统80根据应用程序81的操作而存储、撷取并更新存储于与非门(NAND)闪存89中的数据。

于此实施例中,区块文件系统83与原生性文件系统88是以存储器技术装置(Memory Technology Device,简称为MTD)层87作为与非门闪存89的存取介面。系统80还包含一个作为在区块文件系统83与存储器技术装置层87间的介面的闪存转换层(Flash Translation Layer,简称为FTL)85。闪存转换层85包含分配器851、清理器853、损耗平均器855。

针对将闪存作为存储装置的用途,采用区块文件系统83、闪存转换层85与存储器技术装置的组合。其中,区块文件系统83可为文件分配表(File Allocation Table,简称为FAT)文件系统、第三代扩充功能文件系统(Third Extended File System,简称为EXT3)或新型技术文件系统(New Technology File System,简称为NTFS)。

此外,本发明还使用针对闪存设计的原生性(native)文件系统88。原生性文件系统88可为日志式闪存文件系统版本2(Journaling Flash File System Version 2,简称为JFFS2),无排序区块图像文件系统(Unsorted Block Image File System,简称为UBIFS)或又另一种闪存文件系统(Yet Another Flash File System,简称为YAFFS)。

存储器技术装置层87包括:读取驱动程序871、部分抹除驱动程序873、多重部分抹除驱动程序874、写入驱动程序875、抹除驱动程序876、子区块抹除驱动程序877、多重子区块抹除驱动程序878。

本发明可应用于安全数字卡(Secure Digital Memory Card,简称为SD)、固态存储装置或嵌入式多媒体卡(Embedded Multi Media Card,简称为eMMC)等类型的存储系统,搭配以韧体方式控制的闪存转换层与存储器技术装置。根据本发明的构想,通过韧体方式实现而提供的管线抹除方法,不需要再对位于上层的文件系统进行修改。

本发明可在闪存转换层85或原生性文件系统88实现,用于控制存储区块的管理(block management)。其中,存储器技术装置87需包含可支持与部分抹除指令、多重-部分抹除指令、多重-子区块抹除指令、多区块的多重-子区块抹除指令相对应的驱动程序。本发明还可应用于闪存转换层的一般性设计(common designs),例如,区块层级映像(Block Level Mapping,简称为BL)、区块关联性的区段转译(Block Associative Sector Translation,简称为BAST)与全关联性区段转译(Fully Associative Sector Translation,简称为FAST)。

闪存存储电荷的作法可分为使用具导电性材质的浮动栅极(floating gate)架构,以及用浮动栅极或氮化物(Silicon-Oxide-Nitride-Oxide-Silicon,简称为SONOS)的电荷局限(trap)架构。SONOS架构的特征为,利用电荷不易在氧氮氧(ONO)层间移动的特性,将电荷局限(trap)在固定位置。由于电荷在ONO层间移动的速度较慢,对SONOS架构的闪存进行抹除操作时,其抹除操作所需花费的时间又更长。因此,若将本发明应用于SONOS架构的闪存时,其成效也更加显著。

需留意的是,仅管前述关于临界电压的电平以单阶式存储单元(Single-Level Cell,简称为SLC)为例。但是,本发明的构想同样可以应用至多阶存储单元(Multi-Level Cell,简称为MLC)或三阶存储单元(Triple-Level Cell,简称为TLC)类型的存储单元。再者,存储器芯片属于与非门(NAND)或或非门(NOR)方式实现时,均可能存在抹除时间 过长的现象。因此,本发明所提出的管线式抹除的作法可应用于各类型需要进行抹除装置的存储器装置。

根据前述说明可以明显看出,本发明提出以管线阶段的方式,对存储区块进行阶段的抹除操作,确实能缩短产生闲置区块的等候时间。连带的,控制器也比较不容易因为等候时间过长而将存储区块误判为已经损坏。其中,阶段的抹除操作可通过多重-部分抹除指令,或是多重-子区块抹除指令而对存储区块进行。

综上所述,虽然本发明已以优选实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作各种的更改与修饰。因此,本发明的保护范围当视权利要求所界定者为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1