固态储存装置中高速缓存的管理方法

文档序号:6508457阅读:271来源:国知局
固态储存装置中高速缓存的管理方法
【专利摘要】一种运用于固态储存装置中高速缓存的管理方法,包括下列步骤:于该固态储存装置决定执行一垃圾搜集操作时,将一高速缓存的储存空间区分为多个部分;设定该高速缓存中一第一部分储存空间作为一垃圾搜集用途;以及设定该高速缓存中一第二部分储存空间作为一写入用途。
【专利说明】固态储存装置中高速缓存的管理方法

【技术领域】
[0001]本发明是有关于一种固态储存装置的控制方法,且特别是有关于一种固态储存装置中高速缓存的管理方法。

【背景技术】
[0002]请参照图1,其所绘示为已知储存装置(81:01'叫6 (16^106)示意图。储存装置10连接至主机(1100) 12,可接收主机10发出的读取指令或者写入指令。其中,主机12可为计算机主机,储存装置10可为硬式磁盘驱动器(他!^ (1180或者光驱⑴的丨⑶丨(^;!^^)。
[0003]储存装置10中包括一控制单元101、一高速缓存103与一储存元件105。其中,控制单元101利用一外部总线20与主机12之间进行指令与数据的传递。而控制单元101根据主机的指令,以存取储存元件105中的数据。再者,高速缓存111011101-7) 103连接至控制单元101用以暂时储存主机20输入的写入数据、以及主机20要求的读取数据。
[0004]另外,外部总线20可为…8总线、12221394总线或5八7八总线等等。而储存元件105可为光盘片或者磁盘片。
[0005]众所周知,高速缓存103可用来暂时储存主机20输入的写入数据、以及主机20要求的读取数据。举例来说,当主机12发出写入指令以及对应的写入数据至储存装置10时,控制单元101会先将写入数据暂存于高速缓存103中。之后,控制单元101会处理写入数据(例如产生2(1:码),并且将写入数据储存于储存元件105。或者,当主机12发出读取指令至储存装置10时,控制单元101会将储存元件105中的读取数据先暂存于高速缓存103中。之后,控制单元101再将读取数据输出至主机12。
[0006]由以上的说明可知,当主机12发出写入指令时,高速缓存103是作为写入用途用以暂存写入数据。当主机12发出读取指令时,高速缓存103是作为读取用途用以暂存读取数据。
[0007]近几年来,一种新的固态储存装置(3011(1 81:81:6简称330)逐渐流行,其可取代已知硬式磁盘驱动器(他!^ (1180 或者光驱⑴的丨⑶丨(^;!^^)。
[0008]固态储存装置(3011(1义01~叫6 1)6^106)内部使用与非门闪存(嫩冊打已吐111611101-7)为储存元件,而此类的储存元件为一种非易失性16)的存储器元件。也就是说,当数据写入闪存后,一旦系统电源关闭,数据仍保存在固态储存装置中。
[0009]由于储存元件的差异,固态储存装置中的高速缓存需要有另外的管理方式,以提高固态储存装置的效率。


【发明内容】

[0010]本发明是有关于一种运用于固态储存装置中高速缓存的管理方法,包括下列步骤:于该固态储存装置决定执行一垃圾搜集操作时,将一高速缓存的储存空间区分为多个部分;设定该高速缓存中一第一部分储存空间作为一垃圾搜集用途;以及设定该高速缓存中一第二部分储存空间作为一写入用途。
[0011]本发明是有关于一种运用于固态储存装置中高速缓存的管理方法,包括下列步骤:(a)于该固态储存装置尚未执行一垃圾搜集操作时,根据一主机的一存取指令将一高速缓存作为一写入用途或者一读取用途;(b)于该固态储存装置决定执行一垃圾搜集操作时,设定该高速缓存中一第一部分储存空间作为一垃圾搜集用途,以及设定该高速缓存中一第二部分储存空间作为该写入用途;以及(c)当该固态储存装置完成该垃圾搜集操作时,回到步骤(a)。
[0012]本发明是有关于一种固态储存装置,连接至一主机,该固态储存装置包括:一控制单元,连接至该主机用以接收该主机发出的一存取指令;一闪存,连接至该控制单元;以及一高速缓存,连接至该控制单元;其中,当该控制单元决定执行一垃圾搜集操作时,设定该高速缓存中一第一部分储存空间作为一垃圾搜集用途,并设定该高速缓存中一第二部分储存空间作为一写入用途。
[0013]为了对本发明的上述及其它方面有更佳的了解,下文特举较佳实施例,并配合所附图式,作详细说明如下。

【专利附图】

【附图说明】
[0014]图1所绘示为已知储存装置示意图。
[0015]图2所绘示为固态储存装置的示意图。
[0016]图3所绘示为垃圾搜集操作示意图。
[0017]图4所绘示为固态储存装置在执行写入指令时进行垃圾搜集操作时的写入速度示意图。
[0018]图5A所绘示为本发明运用于固态储存装置中高速缓存的管理方法。
[0019]图5B所绘示为根据本发明实施例的固态储存装置在执行写入指令时进行垃圾搜集操作时的写入速度示意图。
[0020]图6所绘示为本发明固态储存装置运作时高速缓存的管理方法。
[0021][标号说明]
[0022]10:储存装置12:主机
[0023]20:外部总线101:控制单元
[0024]103:高速缓存105:储存元件
[0025]210:固态储存装置212:主机
[0026]220:外部总线201:控制单元
[0027]203:高速缓存205:闪存
[0028]S502?S508:步骤流程S601?S612:步骤流程

【具体实施方式】
[0029]请参照图2,其所绘示为固态储存装置的示意图。固态储存装置210中包括一控制单元201、一高速缓存203与一闪存205。控制单元201与闪存205之间利用一内部总线207进行数据的存取,而控制单元201利用一外部总线220与主机212之间进行指令与数据的传递。再者,高速缓存103连接至控制单元101用以暂时储存主机220输入的写入数据、以及主机220要求的读取数据。其中,外部总线220可为USB总线、IEEE1394总线或SATA> H1、-rf* -rf* o
[0030]由于固态储存装置210与传统的硬式磁盘驱动器或者光驱中的储存元件的材料特性差异,其数据储存方式也有极大的不同。
[0031]固态储存装置210中的闪存205包括许多区块(block),而每个区块中又包括多个页(page)。例如,一个区块中有64页,而每个页的容量为4K bytes。再者,由于闪存205的特性,每次数据写入时是以页为最小单位,而每次抹除(erase)时则是以区块为单位进行数据抹除。
[0032]基本上,在闪存205中,尚未储存数据的区块称为空白区块(free block);而已经储存数据的区块则称为使用区块(used block)。当使用区块中的数据全部都是无效数据时,该使用区块即可被抹除并成为空白区块。而空白区块即可再次被用来储存数据。
[0033]由于闪存205经过长时间的存取之后,几乎每个使用区块中都会涵盖着有效数据以及无效数据。然而,只要使用区块中还存在有效数据时,该使用区块即无法被抹除为空白区块。因此,会造成太多的无效数据占据闪存205的空间,使得闪存205的可写入空间变少。
[0034]当闪存205中的使用区块越来越多而空白区块越来越少时,就必须要进行垃圾搜集动作(garbage collect1n)。一般来说,当闪存205中空白区块的数目下降到达一临限数目(threshold number)时,控制单元201即启动垃圾搜集动作。垃圾搜集动作主要的目的在于释放出使用区块中无效数据的储存空间,让闪存205可以继续储存主机212输入的写入数据。
[0035]请参照图3,其所绘示为垃圾搜集动作示意图。假设使用区块C(Bl0Ck_C)中的数据D1为有效数据,数据D2为无效数据,而区块d(Block_d)为空白区块。如步骤l(st印1)所示,假设控制单元101经过搜寻后,决定针对使用区块c(Bl0Ck_C)进行垃圾搜集动作。此时,如步骤2(st印2)所示,控制单元201会将使用区块C(Bl0Ck_C)中的有效数据D1写入空白区块d(Block_d)中成为有效数据D1’。在写入有效数据D1’后,空白区块d(Block_d)转变为一使用区块d(Block_d)。接着,将使用区块C(Bl0Ck_C)中的所有数据设定为无效数据。最后,如步骤3(st印3)所示,将使用区块C(Bl0Ck_C)抹除成为一个新的空白区块c (Block_c),即完成一次垃圾搜集动作。
[0036]换句话说,于垃圾搜集动作后,区块C(Bl0Ck_C)将成为一个新的空白区块,而使用区块d(Block_d)中尚有其它空白空间B (free space)可以用来储存数据。也就是说,进行垃圾搜集动作后,空白空间B即为一释放空间,供主机12来继续储存数据,该空白空间B的大小是小于一空白区块的大小。
[0037]在上述的垃圾搜集动作过程的步骤2(step2)中,控制单元201将使用区块c (Block_c)中的有效数据D1写入空白区块d(Block_d)中成为有效数据D1’。在此步骤的过程中,控制单元201需要先将使用区块C(Bl0Ck_C)中的有效数据D1暂时储存于高速缓存203。之后,再读取高速缓存203中的有效数据D1,并写入空白区块d(Block_d)中成为有效数据D1’。
[0038]由上述的说明可知,固态储存装置210中的高速缓存203可作为写入用途用以暂存写入数据、作为读取用途用以暂存读取数据、以及作为垃圾搜集用途用以暂存闪存205中的搬移数据。
[0039]请参照图4,其所绘示为固态储存装置在执行写入指令时进行垃圾搜集动作时的写入速度示意图。当固态储存装置210在执行写入指令时,高速缓存203是作为写入用途,用以暂存写入数据。此时的写入速度几乎维持在一个最高速度(11)。上述的最高速度(11)是相关于高速缓存203的容量以及控制单元201的操作速度。
[0040]然而,于时间点时,闪存205中空白区块的数目下降到达一临限数目(1:111-681101(1 11111111361-)时,控制单元201必须启动垃圾搜集动作。换句话说,于时间点1: 1时,控制单元201暂时无法执行主机的写入指令,并且必须执行垃圾搜集动作用以释放出使用区块中无效数据的储存空间,让闪存205可以继续执行写入指令,并且储存主机212输入的写入数据。
[0041]于时间点至〖2之间,控制单元201执行垃圾搜集动作,此时的高速缓存203是作为垃圾搜集用途,用以暂存闪存205中的搬移数据。因此,固态储存装置210的写入速度下降至(12),例如8600
[0042]于时间点12,控制单元201完成垃圾搜集动作,并且释放出储存空间用以继续执行写入指令。因此,时间点12至13之间,高速缓存203是作为写入用途,而此时的写入速度会回到最高速度(11)。
[0043]同理,时间点1:3至1:4之间、时间点1:5至1:6之间、以及时间点1:7至1:8之间,控制单元201执行垃圾搜集动作。因此,固态储存装置210的写入速度会再次下降至(12),例如087^6/8600而控制单元201在执行写入指令时,固态储存装置210的写入速度会再次上升至(11)。
[0044]由以上的说明可知,当固态储存装置210的控制单元201在执行写入指令时进行垃圾搜集动作时,将会造成写入速度断断续续的现象发生。而在使用者端,会觉得固态储存装置210耗费很长的时间执行部分写入指令。因此,造成固态储存装置210的效能在单位时间内急遽降低。
[0045]同理,当固态储存装置210的控制单元201在执行读取指令时进行垃圾搜集动作时,也会造成读取速度断断续续的现象发生,造成固态储存装置210的效能在单位时间内急遽降低。
[0046]请参照图5八,其所绘示为本发明运用于固态储存装置中高速缓存的管理方法。请参照图58,其所绘示为根据本发明实施例的固态储存装置在执行写入指令时进行垃圾搜集动作时的写入速度示意图。而运用本发明可以维持固态储存装置210维持在较平稳的效倉泛。
[0047]如图5八所示,当固态储存装置210的控制单元201决定执行垃圾搜集动作(步骤8502)时,将高速缓存203的储存空间区分为多个部分(步骤3504)。接着,设定高速缓存203第一部分的储存空间作为垃圾搜集用途(步骤3506);以及,设定高速缓存203第二部分的储存空间作为写入用途(步骤3506)。
[0048]根据上述方式来区分高速缓存203。当固态储存装置210的控制单元201在进行垃圾搜集动作时,可以利用第一部分的储存空间来暂存闪存205中的搬移数据。同时,如果固态储存装置210的控制单元201收到主机212所发出的写入指令时,亦可以利用高速缓存203第二部分的储存空间来暂存写入数据。因此,在固态储存装置210的控制单元201在进行垃圾搜集动作时,控制单元201仍旧可以利用第二部分的储存空间来暂存写入数据并执行写入指令。
[0049]因此,如图58所示,当固态储存装置210在执行写入指令时,高速缓存203是作为写入用途,用以暂存写入数据。此时的写入速度几乎维持在一个最高速度(11)。
[0050]于时间点仏时,闪存205中空白区块的数目下降到达一临限数目“1^681101(111111111361-)时,控制单元201必须启动垃圾搜集动作。由于本发明设定高速缓存203的第二部分的储存空间来暂存写入数据。因此,控制单元201仍可以执行写入指令,而其写入速度降至13。
[0051]换句话说,利用本发明高速缓存的管理方法,可以让固态储存装置210进行垃圾搜集动作时,仍可以执行主机212所发出的写入指令。让固态储存装置210维持在较佳效倉泛。
[0052]当然,固态储存装置210也可设定高速缓存203第三部分的储存空间作为读取用途用以暂存读取数据。因此,可以让固态储存装置210进行垃圾搜集动作时,亦可以执行主机212所发出的写入指令与读取指令。让固态储存装置210维持在较佳效能。
[0053]请参照图6,其所绘示为本发明固态储存装置运作时高速缓存的管理方法。当固态储存装置210的控制单元201开始动作时,根据主机212的存取指令将高速缓存203分作为写入/读取用途和垃圾搜集用途(步骤3602)。
[0054]当固态储存装置210的控制单元201执行写入、读取、垃圾搜集动作(步骤3604)时,设定高速缓存203第一部分的储存空间作为垃圾搜集用途(步骤3610);设定高速缓存203第二部分的储存空间作为写入用途(步骤3612);以及设定高速缓存203第三部分的储存空间作为读取用途(步骤3614〉。接着,执行写入、读取、垃圾搜集动作(步骤3616)后回到步骤3602。
[0055]反之,当固态储存装置210的控制单元201不执行写入、读取、垃圾搜集动作(步骤3604)时,即结束此流程。
[0056]由以上的说明可知,本发明是提出一种运用于固态储存装置中高速缓存的管理方法。可以让固态储存装置210在执行垃圾搜集动作时,仍可以执行主机212发出的存取指令,使得固态储存装置210维持在较佳的效能。
[0057]综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属【技术领域】中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视所附的权利要求范围所界定者为准。
【权利要求】
1.一种用于固态储存装置中高速缓存的管理方法,包括下列步骤: 于该固态储存装置决定执行一垃圾搜集操作时,将一高速缓存的储存空间区分为多个部分; 设定该高速缓存中一第一部分储存空间作为一垃圾搜集用途;以及 设定该高速缓存中一第二部分储存空间作为一写入用途。
2.根据权利要求1所述的管理方法,其中,当该固态储存装置收到一写入指令时,利用该第二部分储存空间来暂存一写入数据并执行该写入指令。
3.根据权利要求1所述的管理方法,其中,该固态储存装置利用该第一部分储存空间来暂存一闪存的一搬移数据。
4.根据权利要求1所述的管理方法,其中还包括:设定该高速缓存中一第三部分储存空间作为一读取用途;以及,于该固态储存装置收到一读取指令时,利用该第三部分储存空间来暂存一读取数据并执行该读取指令。
5.一种用于固态储存装置中高速缓存的管理方法,包括下列步骤: (a)于该固态储存装置尚未执行一垃圾搜集操作时,根据一主机的一存取指令将一高速缓存作为一写入用途或者一读取用途; (b)于该固态储存装置决定执行一垃圾搜集操作时,设定该高速缓存中一第一部分储存空间作为一垃圾搜集用途,以及设定该高速缓存中一第二部分储存空间作为该写入用途;以及 (C)当该固态储存装置完成该垃圾搜集操作时,回到步骤(a)。
6.根据权利要求5所述的管理方法,其中,当该固态储存装置收到一写入指令时,利用该第二部分储存空间来暂存一写入数据并执行该写入指令。
7.根据权利要求5所述的管理方法,其中,该固态储存装置利用该第一部分储存空间来暂存一闪存的一搬移数据。
8.根据权利要求5所述的管理方法,其中步骤(b)还包括:设定该高速缓存中一第三部分储存空间作为一读取用途;以及,于该固态储存装置收到一读取指令时,利用该第三部分储存空间来暂存一读取数据并执行该读取指令。
9.一种固态储存装置,连接至一主机,该固态储存装置包括: 一控制单元,连接至该主机用以接收该主机发出的一存取指令; 一闪存,连接至该控制单元;以及 一高速缓存,连接至该控制单元; 其中,当该控制单元决定执行一垃圾搜集操作时,设定该高速缓存中一第一部分储存空间作为一垃圾搜集用途,并设定该高速缓存中一第二部分储存空间作为一写入用途。
10.根据权利要求9所述的固态储存装置,其中,当该存取指令为一写入指令时,利用该第二部分储存空间来暂存一写入数据并执行该写入指令。
11.根据权利要求9所述的固态储存装置,其中,该固态储存装置利用该第一部分储存空间来暂存一闪存的一搬移数据。
12.根据权利要求9所述的固态储存装置,其中还包括:设定该高速缓存中一第三部分储存空间作为一读取用途;以及,该存取指令为一读取指令时,利用该第三部分储存空间来暂存一读取数据并执行该读取指令。
13.根据权利要求9所述的固态储存装置,其中,当该控制单元未执行该垃圾搜集操作时,根据该存取指令将该高速缓存作为该写入用途或者该读取用途。
【文档编号】G06F12/08GK104424103SQ201310365417
【公开日】2015年3月18日 申请日期:2013年8月21日 优先权日:2013年8月21日
【发明者】林信宇 申请人:光宝科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1