固态储存装置中用于垃圾搜集动作的区块分组方法

文档序号:6505912阅读:160来源:国知局
固态储存装置中用于垃圾搜集动作的区块分组方法
【专利摘要】一种固态储存装置中用于垃圾搜集动作的区块分组方法,包括下列步骤:(a)建立一连结表,其中该连结表根据每一区块所对应的一有效资料数目将所述区块区分为多个群组;(b)判断一主机是否更改或者新增资料于该固态储存装置中的一闪存;(c)于确认该主机更改或者新增资料于该固态储存装置中的该闪存时,根据更改或者新增资料来更改对应区块的该有效资料数目,并据以更新该连结表;以及(d)于该固态储存装置未进行一垃圾搜集动作时,回到步骤(b);以及,于该固态储存装置进行该垃圾搜集动作时,根据该连结表的内容来选择区块,并进行该垃圾搜集动作。
【专利说明】固态储存装置中用于垃圾搜集动作的区块分组方法

【技术领域】
[0001]本发明是有关于一固态储存装置,且特别是有关于一种固态储存装置中用于垃圾搜集动作的区块分组方法。

【背景技术】
[0002]众所周知,固态储存装置(Solid State Drive, SSD)使用与非门闪存(NAND flashmemory)为主要储存元件,而此类的储存装置为一种非挥发性(non-volatile)的存储器元件。也就是说,当资料写入闪存后,一旦系统电源关闭,资料仍保存在固态储存装置中。
[0003]请参照图1,其所绘示为已知固态储存装置的示意图。固态储存装置10中包括一控制单元101、一缓存单元103与一闪存105。控制单元101与闪存105之间利用一内部总线107进行资料的存取,而控制单元101利用一外部总线20与主机(host) 12之间进行指令与资料的传递。再者,缓存单元103可为随机存取存储器,用以暂时储存读取资料、写入资料、或者控制单元101所需的暂存参数;再者,外部总线20可为USB总线、IEEE1394总线或SATA总线等等。
[0004]一般来说,闪存中105包括许多区块(block),而每个区块中又包括多个页(page)。例如,一个区块中有64页,而每个页的容量为4K bytes。再者,由于闪存105的特性,每次资料写入时是以页为写入单位,而每次擦除(erase)时则是以区块为擦除单位来进行资料擦除。
[0005]由于闪存105中每个页内的资料是无法任意更新的,因此当闪存105接收到更新资料时,必须将更新资料储存在新页(空白页)内,而原来的旧页中的原始资料会被设定为无效资料。当整个区块中的每一页内都是无效资料时,即可将该区块擦除进而成为一个空白区块。
[0006]然而,由于闪存105经过长时间的存取之后,几乎每个区块中都会包含一些有效资料以及一些无效资料。当区块中还存在有效资料时,该区块将无法进行擦除,如此,将会造成太多的无效资料占据闪存105的空间,使得闪存105的可写入空间变少。因此,一种垃圾搜集动作(garbage collect1n)即被提出。而以下的范例是以闪存105中有八个区块(Block_l-Block_8),每个区块中有四个页(Page_l_Page_4)为例来进行说明,但并不限定于此。
[0007]请参照图2A至图2F,其所绘示为闪存进行资料更新、搬移及擦除的示意图。基本上,固态储存装置的架构与图1相同。
[0008]如图2A所示,假设第一区块(Block_l)与第二区块(Block_2)中所有的页内储存有 Datal-DataS 的资料。如图 2B 所不,当主机 12 欲将 Datal、Data2、Data4、Data6、Data7的资料更新为Datal,、Data2,、Data4,、Data6’、Data7,时,控制单元101会在闪存中寻找空白页来储存更新的资料。例如,将Datal’写在第四区块(Block_4)第二页(page_2);Data2’写在第五区块(Block_5)第三页(page_3) ;Data4’写在第七区块(Block_7)第二页(page_2) ;Data6’写在第六区块(Block_6)第二页(page_2) ;Data7’写在第六区块(Block_6)第三页(page_3)。之后,原储存 Datal、Data2、Data4、Data6、Data7 的资料页将被视为无效资料(以斜线来表示)。
[0009]如图2C 所示,当主机 12 欲将 Datal\ Data2,、Data4,、Data6’、Data7,的资料再更新为Datal”、Data2”、Data4”、Data6”、Data7”时,控制单元101同样地会在闪存中寻找空白页来储存更新的资料。例如,将Datal”写在第五区块(Block_5)第二页(page_2);Data2”写在第四区块(Block_4)第一页(page_l) ;Data4”写在第六区块(Block_6)第一页(page_l) ;Data6”写在第三区块(Block_3)第二页(page_2) ;Data7”写在第六区块(Block_6)第四页(page_4)。之后,原储存 Datal’、Data2’、Data4’、Data6’、Data7’ 的资料页将被视为无效资料(以斜线来表示)。
[0010]如图2D所示,当主机12欲将Data7”的资料再更新为Data7”’时,控制单元101同样地又会在闪存中寻找空白页来储存更新的资料。例如,将Data7”’写在第四区块(Block_4)第四页(page_4)。之后,原储存Data7”的资料页将被视为无效资料(以斜线来表不)。
[0011]由以上的说明可知,当主机12经过多次的存取之后,如图2D中的斜线部分所示,在闪存105中将会出现许多的无效资料。由于闪存的擦除最小单位为区块,而图2D的闪存中虽然有很多无效资料,但是每个区块中都还是有部份的有效资料,因此控制单元101无法擦除任何一个区块。而太多的无效资料将占据闪存的空间,使得闪存可写入的空间变少。
[0012]因此,固态储存装置10中的控制单元101需要在适当的时间进行垃圾搜集(garbage collect1n)动作,并解决写入空间变少的问题。所谓的垃圾搜集动作即是控制单元101将区块中的有效资料搜集起来另外存放在新的区块中,使原区块中的每个页全部变成无效资料,因此可以进行区块擦除(block erase)动作,并且产生空白区块,使闪存释放更多可写入的空间。在经过垃圾搜集动作后,新产生的空白区块即可再次成为可使用的空间。
[0013]例如,在图2D所示的情况下控制单元101开始执行垃圾搜集动作。此时控制单兀101可将第一区块(Block_l)第三页(Page_3)中的Data3,第二区块(Block_2)第一页(Page_l)中的Data5,第二区块(Block_2)第四页(Page_4)中的Data8,第六区块(Block_6)第一页(Page_l)中的Data4”写入一个空白的第八区块(Block_8)。
[0014]如图2E 所不,当 Data3、Data5、Data8、Data4” 写入第八区块(Block_8)后,闪存中的第一区块(Block_l)、第二区块(Block_2)、第六区块(Block_6)中的每个页都是无效资料。因此,控制单元101可以对第一区块(Block_l)、第二区块(Block_2)、第六区块(Block_6)进行区块擦除动作。之后,如图2F所示,第一区块(Block_l)、第二区块(Block_2)、第六区块(Block_6)变成空白的区块,并且使得闪存释放更多可写入的空间。
[0015]由以上的说明可知,垃圾搜集动作确实可以让闪存105增加更多可写入的空间。然而,在大容量的闪存105中,其区块数目至少上千个。当固态储存装置10欲进行垃圾搜集动作之前,控制单元101需要逐一检查每个区块中的有效资料,并选择有效资料数目较少的区块来进行垃圾搜集动作,以尽量减少需要进行搬移的有效资料数目。
[0016]由于每次进行一次垃圾搜集动作皆需要逐一搜集每个区块中的有效资料的信息,如此控制单元101需要花费许多的时间来进行搜寻,而且也非常没有效率。


【发明内容】

[0017]本发明有关于一种固态储存装置,连接至一主机,包括:一闪存,具有多个区块;一控制单元,接收该主机的更改或者新增资料,并储存于该闪存;一缓存单元,连接至该控制单元;其中,该控制单元用以建立一链接表并储存于该缓存单元中,其中该连结表根据每一区块所对应的一有效资料数目将所述区块区分为多个群组;当该主机更改或者新增资料于该闪存时,该控制单元用以根据更改或者新增资料来更改对应区块的该有效资料数目,并据以更新该连结表;以及,于进行一垃圾搜集动作时,该控制单元用以根据该链接表的内容来选择区块,并进行该垃圾搜集动作。
[0018]本发明更提出一种固态储存装置中用于垃圾搜集动作的区块分组方法,包括下列步骤:(a)建立一连结表,其中该连结表根据每一区块所对应的一有效资料数目将所述区块区分为多个群组;(b)判断一主机是否更改或者新增资料于该固态储存装置中的一闪存;(C)于确认该主机更改或者新增资料于该固态储存装置中的该闪存时,根据更改或者新增资料来更改对应区块的该有效资料数目,并据以更新该连结表;以及(d)于该固态储存装置未进行一垃圾搜集动作时,回到步骤(b);以及,于该固态储存装置进行该垃圾搜集动作时,根据该连结表的内容来选择区块,并进行该垃圾搜集动作。

【专利附图】

【附图说明】
[0019]为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,并配合所附附图,作详细说明如下,其中:
[0020]图1所绘示为已知固态储存装置的示意图。
[0021]图2A至图2F所绘示为闪存进行资料更新、搬移及擦除的示意图。
[0022]图3A与图3B所绘示为根据有效资料数目来进行区块分组的示意图。
[0023]图4所绘示为本发明运用于垃圾搜集动作的区块分组方法流程图。

【具体实施方式】
[0024]本发明提出藉由控制单元提供另一种垃圾搜集动作时的控制方法,以提高固态储存装置进行垃圾搜集动作的效率。本发明可运用于图1的固态储存装置10。再者,以下的范例皆以图1的固态储存装来进说明,但并不限定于此。本发明所揭露的方法可以运用于所有具备垃圾搜集动作的固态储存装置。
[0025]由于已知固态储存装置10每次进行垃圾搜集动作时,内部的控制单元101需要逐一的搜寻每个区块中的有效资料,并选择有效资料数目较少的区块来进行垃圾搜集动作。如此,控制单元需要花费许多的时间来进行搜寻,而且也会让垃圾搜集动作变的非常没有效率。
[0026]根据本发明的实施例,当固态储存装置10接收电源并进行初始化动作时,控制单元101会先根据所有区块的有效资料数目(Valid data count)于缓存单元103中建立一个连结表(Link list)。该链接表是根据所有区块中有效资料数目,将所有的区块区分成多个群组。
[0027]而在初始化动作完成后,主机12可以正常存取固态储存装置中的资料时,控制单元101会将主机12所提供的更新资料储存于空白页中,并且被更新的旧资料会被视为无效资料,而储存旧资料以及更新资料的相关区块的有效资料数目也会一并更新。再者,当区块的有效资料数目变更时,控制单元101也会一并更新缓存单元103中的连结表。
[0028]请参照图3A与图3B,其所绘示为根据有效资料数目来进行区块分组的示意图。在本实施例中,固态储存装置10在初始化动作时,控制单元101将有效资料数目区分为十个有效资料数目区间。例如,有效资料数目在1-100定义为第一个有效资料数目区间,有效资料数目在101-200定义为第二个有效资料数目区间,有效资料数目在201-300定义为第三个有效资料数目区间,并依此类推。而有效资料数目在901以上则定义为第十个有效资料数目区间。
[0029]接着,根据闪存105中所有的区块的有效资料数目分别进行归类。而归类完成后,如图3A所示,所有的区块被区分为十组(1-10)。在第一群组(I)中,共有A1-A4个区块;在第二组(2)中,共有B1-B2个区块;在第三群组(3)中,共有C1-C5个区块;在第四群组
(4)中,共有D1-D3个区块;在第五群组(5)中,共有E1-E2个区块;在第六群组¢)中,共有F1-F6个区块;在第七群组(7)中,共有G1-G3个区块;在第八群组(8)中,共有H1-H3个区块;在第九群组(9)中,共有11-15个区块;在第十群组(10)中,共有J1-J3个区块。
[0030]再者,每个群组中可以根据特定参数来将所属群组的区块进行排序并连结。假设特定参数即为有效资料数目,则以第一群组⑴为例,最下方的A4区块的有效资料数目最小,最上方的Al区块的有效资料数目最大。当然,特定参数也可以是每个区块的擦除次数(erase count),或者是历史数目(history number)。
[0031]当固态储装置10中控制单元101将链接表建立完成并储存于缓存单元103后,固态储装置即可让主机12来正常存取闪存105中的资料。
[0032]而随着主机12传送写入指令的增加,每个区块的有效资料数目也会随之改变。举例来说,当写入资料为新的资料时,被写入的区块的有效资料数目会增加;而当写入资料为更新的资料时,除了被写入的区块的有效资料数目会增加之外,由于被更新的旧资料会被视为无效资料,因此储存旧资料的区块的有效资料数目会减少。当然,主机12也可以传送删除指令至固态储存装置10,使得储存有相关资料的特定区块的有效资料数目会减少。
[0033]而控制单元101即根据主机12传送的指令以及闪存105的资料修改情形来更新缓存单元103中的连结表。当某一区块的有效资料数目被更新时,控制单元101会根据更新的有效资料数目及其特定参数来判断是否需要将该区块归类于其他群组,或是将群组内的区块进行重新排序。经过多次的存取后,当固态储存装置10欲进行垃圾搜集动作时,即根据当时缓存单元103中连结表的内容来快速找出对应区块以进行垃圾搜集动作。
[0034]假设经过多次的存取后,缓存单元103中的连结表的内容如图3B所示。而当固态储存装置10欲进行垃圾搜集动作时,控制单元101无须逐一的搜寻每个区块中的有效资料数目。控制单元101仅选取链接表中第一群组(I)中的区块来进行垃圾搜集动作即可。
[0035]举例来说,假设特定参数为有效资料数目,则第一群组(I)中,A2、A4、C3、A3、F4区块的有效资料数目较低,因此可被控制单元101选择成为垃圾搜集动作的区块,并进行垃圾搜集动作。当然,如果第一群组(I)的区块数目太少时,控制单元101也可以一并选择第二群组(2)中的区块来进行垃圾搜集动作。
[0036]请参照图4,其所绘示为本发明运用于垃圾搜集动作的区块分组方法流程图。当固态储存装置进行初始化动作时,搜寻闪存中的所有区块,并根据有效资料数目将区块区分为多个群组,并建立一连结表(步骤S401)。
[0037]接着,当主机12可以正常存取固态储存装置中的资料时,判断主机是否有更改或者新增资料(步骤S403)。当主机未更改或者新增资料时,回到步骤S403 ;反之,当主机更改或者新增资料时,根据修改或者新增资料更改对应区块的有效资料数目,并据以更新连结表(步骤S405)。
[0038]接着,当固态储存装置未进行资料搜集动作时,回到步骤S403。当固态储存装置进行资料搜集动作时,根据连结表内容来选择区块,并进行垃圾搜集动作(步骤S409)。
[0039]由以上的说明可知,本发明在固态储存装置的缓存单元中建立一个连结表,该连接表将所有的群组依照有效资料数目区分为多个群组。而控制单元随着闪存中的资料更新状况,来修改连结表。当固态储存装置欲进行垃圾搜集动作时,控制单元无须逐一的搜寻每个区块中的有效资料数目。控制单元仅需选取链接表中有效资料数目较少的群组,并从中选择区块并据以进行垃圾搜集动作即可。因此,可以大幅提高垃圾搜集动作的效率。
[0040]再者,本发明更可以利用相同的方法在每个群组之中再细分出更多的子群组。以图3A为例,将第十群组(10)定义的901以上的第十有效资料数目区间,更细分出更多的子有效资料数目区间。并利用特定参数建立该第十群组(10)中的子连结表。由于方法相同,因此不再赘述。
[0041]此外,在上述的实施例中,各群组的有效资料数目范围为采用均分的方式,然而,本发明并不以此为限。在另一实施例中,控制单元101可根据所有区块的有效资料数目分布状态来设定各群组的有效资料数目范围。假设在所有区块中,有10%的区块其有效资料数目在1-900之间,而有90%的区块其有效资料数目在901-1000之间,则控制单元101可将有效资料数目在1-900定义为第一个有效资料数目区间,并将有效资料数目在901-1000的区间细分为多个区间。例如,有效资料数目在901-920定义为第二个有效资料数目区间,有效资料数目在901-920定义为第三个有效资料数目区间,以此类推。
[0042]综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属【技术领域】中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视后附的权利要求范围所界定的为准。
【权利要求】
1.一种固态储存装置中用于垃圾搜集动作的区块分组方法,包括下列步骤: (a)建立一连结表,其中该连结表为根据每一区块所对应的一有效资料数目将所述区块区分为多个群组; (b)判断一主机是否更改或者新增资料于该固态储存装置中的一闪存; (c)于确认该主机更改或者新增资料于该固态储存装置中的该闪存时,根据更改或者新增资料来更改对应区块的该有效资料数目,并据以更新该连结表;以及 (d)于该固态储存装置未进行一垃圾搜集动作时,回到步骤(b);以及,于该固态储存装置进行该垃圾搜集动作时,根据该连结表的内容来选择区块,并进行该垃圾搜集动作。
2.如权利要求1所述的固态储存装置中用于垃圾搜集动作的区块分组方法,其中建立该连接表还包括下列步骤: 提供多个有效资料数目区间; 将所述区块中的Μ个区块归类至所述有效资料数目区间中的一第一有效资料数目区间,并定义为一第一群组;以及 将所述区块中的Ν个区块归类至所述资料数目区间中的一第二有效资料数目区间,并定义为一第二群组; 其中,Μ与Ν为大于等于0的整数,且该Μ个区块所对应的Μ个有效资料数目皆位于该第一有效资料数目区间,该Ν个区块所对应的Ν个有效资料数目皆位于该第二有效资料数目区间。
3.如权利要求2所述的固态储存装置中用于垃圾搜集动作的区块分组方法,其中还包括下列步骤: 根据一特定参数来进行排序并连结该第一群组中的Μ个区块;以及 根据该特定参数来进行排序并连结该第二群组中的Ν个区块。
4.如权利要求2所述的固态储存装置中用于垃圾搜集动作的区块分组方法,其中还包括下列步骤: 根据所述区块的该有效资料数目的一分布状态来提供所述有效资料数目区间。
5.如权利要求1所述的固态储存装置中用于垃圾搜集动作的区块分组方法,其中该特定参数为区块的该有效资料数目、区块的一擦除次数、或者区块的一历史数目。
6.一种固态储存装置,连接至一主机,包括: 一闪存,具有多个区块; 一控制单元,接收该主机的更改或者新增资料,并储存于该闪存; 一缓存单元,连接至该控制单元; 其中,该控制单元用以建立一链接表并储存于该缓存单元中,其中该连结表为根据每一区块所对应的一有效资料数目将所述区块区分为多个群组;当该主机更改或者新增资料于该闪存时,该控制单元用以根据更改或者新增资料来更改对应区块的该有效资料数目,并据以更新该连结表;以及,于进行一垃圾搜集动作时,该控制单元用以根据该链接表的内容来选择区块,并进行该垃圾搜集动作。
7.如权利要求6所述的固态储存装置,其中该控制单元所建立该连接表中包括:多个群组,每一个该群组皆对应至多个有效资料数目区间其中之一;其中,一第一群组包括所述区块中的Μ个区块,且该Μ个区块对应的Μ个有效资料数目皆位于一第一有效资料数目区间;一第二群组包括所述区块中的N个区块,且该N个区块对应的N个有效资料数目皆位于一第二有效资料数目区间;以及M与N为大于等于O的整数。
8.如权利要求7所述的固态储存装置,其中:该第一群组中的M个区块根据一特定参数来进行排序与连结;以及,该第二群组中的N个区块根据该特定参数来进行排序与连结。
9.如权利要求8所述的固态储存装置,其中该特定参数系为区块的该有效资料数目、区块的一擦除次数、或者区块的一历史数目。
10.如权利要求7所述的固态储存装置,其中所述有效资料数目区间是根据所述区块的该有效资料数目的一分布状态来提供。
【文档编号】G06F12/02GK104298605SQ201310300066
【公开日】2015年1月21日 申请日期:2013年7月17日 优先权日:2013年7月17日
【发明者】苏忠益, 李嘉伦 申请人:光宝科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1