可用于数据储存装置的垃圾搜集方法与流程

文档序号:14518999阅读:124来源:国知局
本发明涉及一种数据储存的相关技术,尤其是一种可用于数据储存装置的垃圾搜集方法。
背景技术
::数据储存装置,尤其是采用非易失性储存媒体的数据储存装置,包括复数个数据区块,每一数据区块包含复数个数据页,每一数据页用以储存至少一储存单位的数据,储存单位可为512b(byte)或较佳为4kb。数据区块又依据其储存数据与否而区分为空白数据区块(或称为备用数据区块)与非空白数据区块(或称使用中数据区块)。为了进行数据的管理及存取,数据储存装置需要建立及储存一个逻辑至实体地址对照表(hostlogical-to-flashphysicaladdressmappingtable,h2ftable),在本案中将它简称为对照表,并于数据储存装置运作时将对照表复制至动态随机存取存储器(dynamicrandomaccessmemory,dram),以增加数据的管理及存取上的效率。另外,对照表的大小依其记录内容而不同,较常见的大小为数据储存装置的数据储存容量的1/1000,以256gb大小的数据储存装置为例,对照表的大小为256mb,因此,配置有dram的大小较佳为大于或等于256mb,以储存一整个对照表。对于没有配置dram或者仅配置小型dram(即dram的大小不足以储存一整个对照表)的数据储存装置而言,如何运用其配置的静态随机存取存储器(staticrandomaccessmemory,sram)或小型dram以进行数据的管理及存取,存在着技术上的需求。技术实现要素:本发明的一目的在提供一种可用于数据储存装置的垃圾搜集方法,其可减少子对照表的抽换次数,进而降低数据储存装置所耗的资源。本发明提出一种可用于数据储存装置的垃圾搜集方法,包括下列步骤:自前景模式进入背景模式;从复数个使用中数据区块中选取复数个源数据区块;将对照表切割成复数个子对照表,并从上述子对照表中选取一目标子对照表;从复数个备用数据区块中选取一目的数据区块;以及依序将目标子对照表所储存的有效数据的对应关系从上述源数据区块更新至目的数据区块。由于本发明乃是以每次依据一子对照表的完整记录内容的方式来对数据区块执行垃圾搜集程序,因此可减少子对照表的抽换次数,进而降低数据储存装置所耗的资源。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举优选实施例,并配合附图,详细说明如下。附图说明图1绘有依照本发明一实施例的数据储存装置及其与主机的电性耦接关系。图2为依照本发明一实施例的垃圾搜集方法的流程图。图3绘有数据区块302~308的实体至逻辑地址对照表的示意图。图4系用以说明将有效数据从数据区块302~308复制至数据区块310。图5系用以说明将被复制的数据的对应关系记录至目标子对照表322并成为目标子对照表322’。图6系用以说明依序将lba值为0~15的数据从数据区块308复制至数据区块312。图7系用以说明将被复制的数据的对应关系记录至目标子对照表322’以成为目标子对照表322”。具体实施方式图1绘有依照本发明一实施例的数据储存装置及其与主机的电性耦接关系。请参照图1,主机100主要包括有中央处理单元110与连接接口120。连接接口120适于电性耦接数据储存装置200。中央处理单元110用以透过连接接口120传送命令、数据给数据储存装置200,例如是传送读取命令给数据储存装置200,或是传送写入命令及欲写入数据储存装置200的数据给数据储存装置200。而在此例中,主机100包括以计算机、手机、平板、相机或是其他具运算功能的手持式电子装置来实现。数据储存装置200主要包括有控制单元210与非易失性储存媒体220。控制单元210系电性耦接非易失性储存媒体220,并用以控制非易失性储存媒体220的操作(例如进行数据的存取与抹除)。在此例中,非易失性储存媒体220例如是以闪存(flashmemory)、磁阻式随机存取存储器(magnetoresistiveram)、铁电随机存取存储器(ferroelectricram)、电阻式存储器(resistiveram,rram)等具有长时间数据保存的存储器装置来实现。非易失性储存媒体220具有多个数据区块(如标示221所示),而每一数据区块具有多个数据页(page)。在此例中,每一数据区块具有十个数据页,分别以0~9来标示。数据储存装置200可以更包括有一个小型dram,此dram的大小不足以储存一整个对照表,而一整个对照表的大小较佳为大于或等于非易失性储存媒体220的储存容量的千分之一。控制单元210主要包括接口逻辑212、微处理器214、控制逻辑216与易失性储存媒体218,其中易失性储存媒体218例如是以静态随机存取存储器来实现。控制单元210的微处理器214系电性耦接接口逻辑212与控制逻辑216,而其中控制逻辑216又电性耦接非易失性储存媒体220与易失性储存媒体218。微处理器214用以透过控制逻辑216存取非易失性储存媒体220与易失性储存媒体218中的数据,且微处理器214还用以透过接口逻辑212接收来自主机100的命令或数据,命令例如:写入命令、读取命令、或倾倒(flush)命令等。在下述的说明中将以未配置小型dram的数据储存装置200为例进行本发明数据储存装置的垃圾搜集方法的说明,然而,本发明数据储存装置的垃圾搜集方法亦可适用于配置小型dram的数据储存装置200,故不以此为限。图2即为依照本发明一实施例的垃圾搜集方法的流程图,请同时参照图1与图2。步骤s202:自前景模式(foregroundmode)进入背景模式(backgroundmode)。当主机100停止传送命令或数据,或非易失性储存媒体220的备用区块(sparedatablock)的数目低于一临界值时,或自其他电力状态(powerstate)进入节电(powersaving)状态,或其他特定的状态时,数据储存装置200将自前景模式进入背景模式。非易失性储存媒体220包含复数个数据区块,假设总共有65536个数据区块,分别为数据区块#0~#65535,其中,数据区块#0~数据区块#59999为使用中(in-use)数据区块,数据区块#60000~数据区块#65535为备用数据区块。步骤s204:从复数个使用中数据区块中选取复数个源数据区块,其中,复数个源数据区块中的其中一个数据区块乃复数个使用中数据区块中具有最小有效数据数(leastvaliddatacount)者;或者,复数个源数据区块的其中一个数据区块乃复数个使用中数据区块中具有最大或最小抹写次数(mostorleasterasecount)者;或者,复数个源数据区块的其中一个数据区块乃复数个使用中数据区块中具有最大或最小读取次数(mostorleastreadcount)者;或者,复数个源数据区块系从复数个使用中数据区块中随机选取;又或者,复数个源数据区块系从复数个使用中数据区块中依编号依序选取。如图3所示,控制单元210会自60000个使用中数据区块中挑选出复数个使用中数据区块,例如:数据区块302~308,分别是数据区块#1、#20、#300以及#4000,作为源数据区块。此4个源数据区块较佳为60000个使用中数据区块中具有最小有效数据数的前4个;或者,此4个源数据区块为60000个使用中数据区块中具有最小抹写次数的前4个;或者,此4个源数据区块系从60000个使用中数据区块中随机选取;又或者,此4个源数据区块系60000个使用中数据区块中数据区块编号的最前4个数据区块,即数据区块#0~#3,或是最后4个,即数据区块#59996~#59999。另外,图3的数据区块302~308的实体至逻辑地址对照表(flashphysical-to-hostlogicaladdressmappingtable,f2htable)为示意图,用以进行下的说明,并不以此为限。步骤s206:将对照表切割成复数个子对照表,并从复数个子对照表选取一个目标子对照表,其中,目标子对照表较佳系用以管理其中一个源数据区块;或者,目标子对照表系从复数个子对照表中依序选取,或者,目标子对照表系从复数个子对照表中随机选取;另外,目标子对照表的大小较佳大于等于源数据区块的大小;另外,对照表的内容较佳系以lba为索引依序建立,亦可依lba的接收顺序依序建立。假设对照表的大小为256mb,而易失性储存媒体218的储存容量仅64kb,或者仅保留64kb的容量以储存一个子对照表,则控制单元210将对照表切割成4000个子对照表,分别为子对照表#0~#3999,使得子对照表的大小与易失性储存媒体218的储存容量一致。假设目标子对照表系从复数个子对照表中依序选出,则首先被选取的子对照表可以是子对照表#0或子对照表#3999。假设目标子对照表系从复数个子对照表中随机选取,则子对照表#1000可能首先被选取。假设对照表的内容系以lba为索引依序建立,子对照表322~326分别对应至子对照表#0、#1以及#625。数据区块302~308所储存的数据的实体至逻辑地址的对应关系(简称为对应关系),其中,标号x表示无效的数据,标号ff表示无此数据的对应关系的记录。由于数据区块302的第1笔有效数据的lba的值为0,经由地址的计算,lba的值为0乃对应至是子对照表#0的第1笔记录,故子对照表322为首先被选取为目标子对照表。另外,地址的计算为习知技艺,故不多作说明。步骤s208:从复数个备用数据区块中选取一个目的数据区块,其中,目的数据区块仍从复数个备用数据区块中随机选取;或者,目的数据区块仍从复数个备用数据区块中依序选取;或者,目的数据区块乃复数个备用数据区块中具有最大抹写次数(mosterasecount)者。假设控制单元210从数据区块#60000~#65535中选取一个备用数据区块,例如数据区块#60000,作为目的数据区块310,如果是依序选取,则数据区块#60000或数据区块#65535被选取为目的数据区块;如果是选取具有最大抹写次数者,则目的数据区块可能是数据区块#65432,在下述说明中,将以数据区块#60000作为数据区块310以进行说明,但不以此为限。步骤s210:依序将目标子对照表所储存的数据的对应关系从复数个源数据区块更新至目的数据区块,其中,更新包括将复数个源数据区块的数据复制至目的数据区块。请同时参考图3~7,如图3所示,目标子对照表322乃记录lba的值为0~15的数据的对应关系,这些数据分别储存在数据区块302~308,如图4所示,依序将lba的值为0~15的有效数据,如标记s所示,从数据区块302~308复制至数据区块310,并将被复制的数据的对应关系记录至目标子对照表322并成为目标子对照表322’,一如图5所示。由于数据区块304所储存的数据为无效数据或有效数据的对应关系已被更新,因此,数据区块304不包含任何有效数据,因此可以被回收成为备用数据区块,达到垃圾搜集的目的。由于在配置小型dram的数据储存装置上进行子对照表的替换(swap)会需要颇长的等待时间,而本发明垃圾搜集方法乃将(目标)子对照表内容完成更新之后,再进行子对照表的替换,不但能达到垃圾搜集的目的,因为减少了对照表的替换频率,所以也减少执行垃圾搜集所需的时间。步骤s212:判断目标子对照表所储存的数据的对应关系是否完成更新,如果是则结束本发明垃圾搜集方法,如果否,则执行步骤s208。以上述为例,由于数据区块310的大小有限,因此,目标子对照表322仅有部份数据的对应关系完成更新。因此,步骤s212的判断结果为否,当步骤s208被重新执行时,另一个数据区块,例如,数据区块#60001,如数据区块312所示,成为目的数据区块。如图6所示,依序将lba值为0~15的数据,如标记y所示,从数据区块308复制至数据区块312,并将被复制的数据的对应关系记录至目标子对照表322’以成为目标子对照表322”,如图7所示。此时,目标子对照表322所储存的数据的对应关系已经全部完成更新(目标子对照表322已更新为目标子对照表322”),结束本发明垃圾搜集方法。当再一次执行本发明垃圾搜集方法,由于数据区块302的第1笔有效数据的lba的值为23,经由地址的计算,lba的值为23乃是子对照表#1的第8笔记录,故子对照表324将被选取为目标子对照表。当子对照表324完成更新后,数据区块302以及306亦可被回收成备用数据区块。值得一提的是,步骤s202~s208的执行顺序不以上述为限,例如,亦可先执行步骤s206,即先选取目标子对照表,再执行步骤s204,选取复数个源数据区块以及步骤s208,选取一个目的数据区块,用户可依其实际需求而进行调整。综上所述,由于本发明乃是以每次依据一子对照表的完整记录内容的方式来对数据区块执行一垃圾搜集程序,本发明可有效降低执行垃圾搜集程序时子对照表的抽换次数,进而降低数据储存装置所耗的资源及时间,达到本发明的目的。虽然本发明以前述的实施例揭露如上,然其并非用于限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的申请专利范围所界定者为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1