用于动态执行垃圾回收数据储存装置与操作方法与流程

文档序号:18265977发布日期:2019-07-27 09:08阅读:131来源:国知局
用于动态执行垃圾回收数据储存装置与操作方法与流程

本发明是关于一种包含闪存(flashmemory)的数据储存装置,特别是关于在闪存上动态执行垃圾回收(garbage-collection,gc)的流程。



背景技术:

垃圾回收流程被广泛使用于各种存储器装置中。垃圾回收流程特别被使用在大多数页面储存无效(invalid)数据的数据区块,合并多个数据区块中的有效数据至一个备用区块(之后,称为数据区块),则多个储存无效数据的数据区块可转化成备用(spare)区块。藉由规律地执行垃圾回收流程,能够提升存储器装置的效率。

然而,是否执行垃圾回收流程通常是由一个临界值所决定。当决定执行垃圾回收流程时,会降低存储器装置的效能。此外,存储器装置可能会短时间被写入大量数据而消耗许多区块。如果同时写入数据以及执行垃圾回收流程,会造成写入延迟的突然增加以及效能突然劣化。因此,需要一种动态调整的垃圾回收流程,配合主机写入数据,并且防止存储器装置的效能突然劣化。



技术实现要素:

本发明是依据存储器的备用区块的数量,比较备用区块的数量与预设值的差值,动态调整垃圾回收流程的带宽与速度。当主机写入数据越多时,备用区块的数量就越少,因此计算备用区块的数量能够反映出主机写入数据的情况。要注意的是,本发明不会在主机写入数据时立刻启动垃圾回收流程,而是在一段时间之后才动态调整垃圾回收流程的带宽与速度。因此,本发明的数据储存方法能够避免造成写入延迟的突然增加、以及备用区块的突然减少,维持数据储存装置的运作效能。

本发明提供一种用于动态执行垃圾回收流程的数据储存装置,包括一闪存以及一控制器。闪存包括多个区块,其中上述区块的每一者包括多个页面。控制器耦接闪存,用以计算闪存的至少一备用区块的数量是否小于一预设值,并且依据备用区块的数量与预设值的差值,在闪存执行一垃圾回收流程。垃圾回收流程是用以合并上述区块中的至少两个该等数据区块,以释放至少一备用区块。

当闪存的至少一备用区块的数量小于预设值时,控制器依据备用区块的数量与预设值的差值执行垃圾回收流程。当差值越大时,控制器执行垃圾回收流程的带宽则越快。当主机写入数据储存装置的数据越多时,闪存的备用区块的数量则越少。在一实施例中,当主机将数据写入数据储存装置时,控制器不会立即执行垃圾回收流程。此外,主机将数据写入数据储存装置的带宽以及控制器执行垃圾回收流程的带宽的总和,是小于或等于数据储存装置的系统流量。

再者,当该存的至少一备用区块的数量小于预设值时,控制器依据至少一备用区块的数量设定一阀值带宽。当备用区块的数量与预设值的差值愈大,或备用区块的数量的值愈小,则阀值带宽愈大。控制器判断一写入数据带宽是否小于该阀值带宽,其中写入数据带宽是一主机将数据写入该数据储存装置的速度。当写入数据带宽小于该阀值带宽,控制器计算阀值带宽与写入数据带宽的一差值,并且以差值执行垃圾回收流程。当写入数据带宽大于阀值带宽,则控制器不启动垃圾回收流程;当写入数据带宽小于阀值带宽,则控制器启动垃圾回收流程。当写入数据带宽愈小或阀值带宽愈大,则控制器执行垃圾回收流程的带宽则越大。

本发明提供一种一种动态执行垃圾回收流程的数据储存方法,应用于一数据储存装置。数据储存装置包括一闪存以及一控制器,闪存包括多个区块,上述区块的每一者包括多个页面。数据储存方法包括:计算该闪存的至少一备用区块的数量;判断至少一备用区块的数量是否小于一预设值;以及依据备用区块的数量与该预设值的差值,在闪存执行一垃圾回收流程。垃圾回收流程是用以合并上述区块中的至少两个数据区块,以释放至少一备用区块。

关于本发明其他附加的特征与优点,本领域的技术人员,在不脱离本发明的精神和范围内,当可根据本案实施方法中所揭露的数据储存装置与操作方法。

附图说明

图1是显示根据本发明一实施例所述的数据储存装置的方块示意图;

图2是显示根据本发明一实施例所述的依据备用区块的数量执行垃圾回收流程的示意图;

图3是显示根据本发明一实施例的阀值带宽、写入数据带宽以及垃圾回收流程的带宽的三者关系的示意图;

图4是显示根据本发明一实施例所述的写入数据带宽以及执行垃圾回收流程的带宽的示意图;以及

图5是根据本发明一实施例的智能型垃圾回收程序的流程的示意图。

符号说明

100~数据储存装置

120~控制器

140~闪存

160-16n~储存矩阵

160_a、160_z…16n_a、16n_z~区块

160_a_1、160_z_1…16n_a_x、16n_z_x~页面

180~随机存取存储器

200~主机

h2f~对照表

具体实施方式

为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合所附图式,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。

图1是显示根据本发明一实施例所述的数据储存装置100与主机200的示意图。在一实施例中,数据储存装置100包括控制器120、非挥发性存储器以及随机存取存储器(ram)180。数据储存装置100耦接主机200以传送数据与指令、或是接收数据与指令。数据储存装置100与主机200之间的通信协议是符合嵌入式闪存模块(emmc)规范、通用闪存(ufs)、nvme、sd或sata规范。非挥发式存储器可以是闪存(flashmemory)、磁阻式挥发性存储器(magnetoresistiveram)、铁电挥发性存储器(ferroelectricram)、电阻式存储器(resistiveram,rram)、自旋转移力矩挥发性存储器(spintransfertorque-ram,stt-ram)…等具有长时间数据保存的存储器装置。以下特别以闪存(flashmemory)140为例进行讨论。

如图1所示,控制器120耦接闪存140以及随机存取存储器180。随机存取存储器180用以暂存以及预取控制器120所需的数据,或是用以暂存主机200要写入闪存140的数据,以加快数据储存装置100的访问时间。随机存取存储器180较佳是sram,也可以是dram。

控制器120耦接闪存140以相互传送数据与指令或接收数据与指令。在一实施例中,控制器120与闪存140之间具有4个通道(亦即ch0~ch3)以传输数据或指令。进一步而言,控制器120可包括具有固件码的一微控制器以及只读存储器(rom),并且微控制器执行固件码以操作或是存取闪存140。

闪存140包括多个储存单元160~16n所形成的储存矩阵。举例而言,闪存140具有4个储存单元160~163所形成的储存矩阵。在一实施例中,每个储存单元包括一个以上的模块(die),并且每个模块包括一个以上的平面(plane),每个平面包括多个区块(blocks)160_a~16n_z,每个包括多个页面。在一实施例中,将每个平面的一个区块组合成一超级区块(superblock),使得闪存140包括多个超级区块,每一超级区块包括多个超级页面。由于页面与超级页面的运作原理类似,在下述的说明中两者将交替使用以简化说明,但不以此为限

如图1所示,储存单元160包括区块160_a~160_z;储存单元16n包括区块16n_a~16n_z,z例如是2048。对于储存单元160而言,区块160_a~160_z中的每一者更包括多个页面160_a_1~16n_z_x,x例如是768,每一页面160_a_1~16n_z_x的数据储存量例如是16kb,一个页面数据例如是4笔4kb大小的数据。控制器120在对闪存140执行写入动作时,是以页面为最小数据写入单位来执行数据写入的动作,其中,页面是由字符线所控制。

对于闪存140而言,每一区块160_a~16n_z的每一页面160_a_1~16n_z_x皆具有不同的实体地址。当数据储存装置100执行一数据写入运作时,控制器120决定闪存140的一实体地址以写入数据。此外,控制器120则分别将上述实体地址对应至数据的逻辑地址,并依此建立了对照表h2f。因此,对于主机200而言,主机200是藉由逻辑地址,来读取数据储存装置100的数据,控制器120藉由对照表h2f得知实体地址,并提供实体地址所储存的数据至主机200。其中,对照表h2f可以由控制器120建立并维护,也可以由主机200建立并维护。

在一实施例中,控制器120是用以依据闪存140中的备用区块的数量,在闪存140执行垃圾回收流程。垃圾回收流程是用以合并至少两个数据区块所储存的数据(有效),从数据区块中释放出至少一个备用区块。进一步而言,备用区块的特征在于其每一个页面都是空的、没有写入任何数据。数据区块的特征在于其一部分或全部页面有储存数据。如果一数据区块的大部分页面是空的、没有储存有效数据,则该数据区块为无效率区块。详细而言,无效率区块是垃圾回收流程所欲回收的数据区块。

在一实施例中,垃圾回收流程是根据备用区块的数量进行动态调整、而不是单一临界值来执行或操作,以避免造成闪存140运作时的延迟。控制器120计算闪存140的备用区块的数量是否小于一预设值。当闪存140的备用区块的数量小于预设值时,控制器120依据备用区块的数量与预设值的差值动态调整垃圾回收流程的速度。如图2所示,备用区块的数量与预设值的差值愈大,或备用区块的数量的值愈小,则阀值带宽(thresholdbandwidth)愈大,两者为负相关,可为线性关系、指数式关系等,或非线性关系。

如图3所示,阀值带宽与写入数据带宽可决定垃圾回收流程的带宽,三者关系如下列方程式所示:

垃圾回收流程的带宽=阀值带宽-写入数据带宽

由上列方程式可知,如果写入数据带宽大于阀值带宽,则不启动垃圾回收流程;如果写入数据带宽小于阀值带宽,则启动垃圾回收流程。写入数据带宽愈小或阀值带宽愈大,则执行垃圾回收流程的带宽则越大,其中,带宽为每秒钟的数据传输量,写入数据带宽表示每秒钟数据储存装置100的数据传输量,垃圾回收流程的带宽表示每秒钟垃圾回收流程的数据传输量。

在一实施例中,当主机200将数据写入数据储存装置100时,控制器120不会立即执行垃圾回收流程。当主机200写入数据储存装置100的数据越多时,闪存140的备用区块的数量则越少并小于一预设值,则依据备用区块的数量与预设值的差值来决定阀值带宽。

图4是显示根据本发明一实施例所述的写入数据带宽(如虚线所示)以及执行垃圾回收流程(如实线所示)的带宽的示意图。主机200在时间t0开始写入数据至数据储存装置100,并且在时间t1时以300mb/秒的速度写入数据至数据储存装置100。在时间t1时,控制器120计算闪存140的备用区块的数量并未小于预设值(例如:25)。换言之,备用区块的数量是足够的。因此,控制器120并未在时间t1立刻执行垃圾回收程序。此外,控制器120是周期性地计算闪存140的备用区块的数量。例如,控制器120是每隔1毫秒(ms)计算闪存140的备用区块的数量。在时间t2时,控制器120判断闪存140的备用区块的数量为20,小于预设值,开始执行垃圾回收程序,并依据备用区块的数量而决定阀值带宽等于150mb/秒。由于此时写入数据带宽为100mb/秒,所以垃圾回收流程的带宽为50mb/秒。因此,虽然备用区块被消耗时,启动垃圾回收流程的带宽可有效地降低备用区块的消耗量,因此,能够避免垃圾回收程序影响数据储存装置100的效能、并且防止备用区块的数量被过度消耗。

在时间t3,控制器120判断闪存140的备用区块的数量为15,小于预设值,并依据备用区块的数量而决定阀值带宽等于250mb/秒。由于此时写入数据带宽为50mb/秒,所以垃圾回收程序的带宽为200mb/秒。因为垃圾回收程序的带宽大于写入数据的带宽,垃圾回收程序可显著地增加了备用区块的数量。

在时间t4,控制器120判断闪存140的备用区块的数量为20,小于预设值,并依据备用区块的数量而决定阀值带宽等于150mb/秒。由于此时写入数据带宽为400mb/秒,所以垃圾回收程序的带宽为0mb/秒。

在时间t5,控制器120判断闪存140的备用区块的数量为13,小于预设值,并依据备用区块的数量而决定阀值带宽等于350mb/秒。由于此时写入数据带宽为50mb/秒,所以垃圾回收程序的带宽为300mb/秒。垃圾回收程序的带宽大于写入数据的带宽,备用区块的数量再次增加,并朝着默认值而增加

在时间t6,控制器120判断闪存140的备用区块的数量为20,小于预设值,并依据备用区块的数量而决定阀值带宽等于150mb/秒。由于此时写入数据带宽为500mb/秒,所以垃圾回收程序的带宽为0mb/秒。

在时间t7,控制器120判断闪存140的备用区块的数量为13,小于预设值,并依据备用区块的数量而决定阀值带宽等于350mb/秒。由于此时写入数据带宽为0mb/秒,所以垃圾回收程序的带宽为350mb/秒。垃圾回收程序的带宽大于写入数据的带宽,备用区块的数量再次增加,并朝着默认值而增加。

由上述中可知,当写入数据的带宽增加时,控制器120降低垃圾回收程序的带宽,待写入数据的带宽降低时,控制器120增加垃圾回收程序的带宽,写入数据的带宽与写入数据的带宽如同翘翘板,使垃圾回收程序能发挥其功能且将垃圾回收程序对系统效能的影响降至最低。

以下将进一步说明依据备用区块的数量与预设值的差值,对闪存140执行垃圾回收流程的方法。图5是本发明智能型垃圾回收程序的流程的示意图。在此实施例中,预设值为25。当控制器120计算备用区块的数量低于25,则表示备用区块的数量不足,应执行垃圾回收流程以释放更多备用区块。当备用区块的数量越少,或与预设值的差值就越大,则控制器120所设定的阀值带宽则越大。

在步骤s502,控制器120(周期性地)计算闪存140的备用区块的数量。在步骤s504,控制器120判断备用区块的数量是否小于预设值。如果没有小于预设值,则回到步骤s502。在时间t1时,控制器120计算闪存140的备用区块的数量并未小于预设值。换言之,备用区块的数量是足够的。如果小于预设值,则执行步骤s506,控制器120依据备用区块的数量设定阀值带宽。在时间t2时,控制器120判断闪存140的备用区块的数量为20,小于预设值。

在步骤s508,控制器120判斷写入数据带宽是否小于阀值带宽。如果没有小于预设值,则回到步骤s502。如果小于预设值,则执行步骤s510,控制器120计算阀值带宽与写入数据带宽的差值。控制器120依据备用区块的数量而决定阀值带宽等于150mb/秒。此时,写入数据带宽为100mb/秒,所以阀值带宽与写入数据带宽的差值为50mb/秒。

在步骤s512,控制器120以此差值执行垃圾回收程序。控制器120以50mb/秒执行垃圾回收程序,並结束本发明智能型垃圾回收程序的流程。

本发明是藉由比较备用区块的数量与预设值,动态调整垃圾回收流程的带宽与速度。当主机200写入数据越多时,备用区块的数量就越少,因此计算备用区块的数量能够反映出主机200写入数据的情况。然而,本发明不会在主机200写入数据时立刻启动垃圾回收流程,或是让垃圾回收流程占据闪存140的访问速度,而是在一段时间之后动态调整垃圾回收流程的带宽与速度。因此,本发明的数据储存方法能够避免造成数据的写入延迟,维持相当数量的备用区块,使数据储存装置100能够运作顺畅。

本发明的方法,或特定型态或其部份,可以以程序代码的型态存在。程序代码可储存于实体媒体,如软盘、光盘片、硬盘、或是任何其他机器可读取(如计算机可读取)储存媒体,亦或不限于外在形式的计算机程序产品,其中,当程序代码被机器,如计算机加载且执行时,此机器变成用以参与本发明的装置。程序代码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序代码被机器,如计算机接收、加载且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序代码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。

在本说明书以及权利要求书中的序数,例如「第一」、「第二」、「第三」等等,彼此之间并没有顺序上的先后关系,其仅用于标示区分两个具有相同名字的不同元件。本发明说明书中「耦接」一词是泛指各种直接或间接的电性连接方式。本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,本领域的技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求书所界定者为准。

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