掌桥专利:专业的专利平台
掌桥专利
首页

数据存储装置及其垃圾收集方法

文献发布时间:2023-06-19 11:49:09


数据存储装置及其垃圾收集方法

技术领域

本发明涉及一种数据存储的相关技术,尤其涉及一种可用于一数据存储装置之垃圾收集方法。

背景技术

数据存储装置,尤其是采用非易失性存储媒体的数据存储装置,包括复数个数据区块,每一数据区块包含复数个数据页,每一数据页用以存储至少一存储单位的数据,存储单位可为512B或较佳为4KB。数据区块又依据其存储数据与否而区分为空白数据区块(或称为备用区块)与非空白数据区块(或称使用中数据区块)。为了进行数据的管理及存取,数据存储装置需要建立及存储一个数据的逻辑至实体地址L2P映射表(Host logical-to-Flashphysical address mapping table,H2F table),并于数据存储装置运作时将逻辑至实体地址L2P映射表复制至动态随机存取存储器(Dynamic random access memory,DRAM),以增加数据的管理及存取上的效率。另外,L2P映射表的大小依其记录内容而不同,较常见的大小为数据存储装置的数据存储容量的1/1000,以数据存储容量为256GB(GigaByte)的数据存储装置为例,L2P映射表的大小为256MB(MegaByte),因此,数据存储装置所配置的DRAM的大小较佳为大于或等于256MB,以存储一整个L2P映射表以及数据存储装置运作时所需要的系统数据、参数、或程序。

对于没有配置动态随机存取存储器或者仅配置小型DRAM(即DRAM的大小不足以存储一整个逻辑至实体地址L2P映射表)的数据存储装置而言,整个逻辑至实体地址L2P映射表会分割成复数个子L2P映射表,并时常交换子L2P映射表至小型DRAM以进行垃圾收集。而在收集来源区块的有效数据时,会依序从第一个来源区块的第一张子L2P映射表从非易失性存储媒体载入到控制器内部,并且去检查此次垃圾收集的每个来源区块是否有有效数据仍在这张子L2P映射表上,这种检查所有来源区块的作法是为了减少频繁地交换子L2P映射表,之后若有其他来源区块拥有相同的子L2P映射表的话,便可以不用重新载入到控制器内部。然而,在挑选来源区块时,会将来源区块的有效数据尽可能的塞满或超过目的地来源区块。当选定的来源区块的有效数据总和超过目的地来源区块时,有可能会发生在此次垃圾收集结束后,并无法保证能够释放出来源区块变成备用区块,因而存在着技术上的需求。

发明内容

本发明之目的在提供一种可用于一数据存储装置之垃圾收集方法,其可确保目的区块可以被有效利用,并且确保来源区块被释放而成为备用区块。

本发明实施例提供一种垃圾收集方法,适用于一数据存储装置,垃圾收集方法包括:从复数个数据区块中选取复数个来源区块,其中复数个来源区块的总有效数据数大于或等于一个区块的一预设数据数;复制部分来源区块的有效数据至一目的区块,其中,部分来源区块的总有效数据数小于预设数据数;复制剩余来源区块的全部或部份有效数据至目的区块,其中,复制有效数据的数据量等于预设数据数减去部分来源区块的总有效数据数;以目的区块的映射信息更新逻辑至实体地址映射表;以及将全部或部分来源区块回收成为备用区块。

本发明实施例提供一种数据存储装置,包括:一控制单元,用以执行一垃圾收集方法,包括:从复数个数据区块中选取复数个来源区块,其中复数个来源区块的总有效数据数大于或等于一个区块的一预设数据数;复制部分来源区块的有效数据至一目的区块,其中,部分来源区块的总有效数据数小于预设数据数;复制剩余来源区块的全部或部份有效数据至目的区块,其中,复制有效数据的数据量等于预设数据数减去部分来源区块的总有效数据数;以目的区块的映射信息更新逻辑至实体地址映射表;以及将全部或部分来源区块回收成为备用区块。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

图1为本发明实施例所提供的数据存储装置及其与主机的电性耦接关系的示意图。

图2为本发明实施例所提供的垃圾收集方法的流程图。

图3A为本发明实施例的垃圾收集方法所提供的从复数个数据区块中选取复数个来源区块的示意图。

图3B为本发明实施例的垃圾收集方法所提供的复制部分来源区块的有效数据至目的区块的示意图。

图3C为本发明实施例的垃圾收集方法所提供的将全部或部分来源区块回收成为备用区块的示意图。

具体实施方式

在下文中,将借由图式说明本发明之各种实施例来详细描述本发明。然而,本发明概念可能以许多不同形式来体现,且不应解释为限于本文中所阐述之例示性实施例。此外,在图式中相同参考数字可用以表示类似的元件。

图1为本发明实施例所提供的数据存储装置及其与主机的电性耦接关系的示意图。如图1所示,主机10主要包括有中央处理单元11与连接接口12。连接接口12适于电性耦接数据存储装置20。中央处理单元11用以通过连接接口12传送命令、数据给数据存储装置20,例如是传送读取命令给数据存储装置20,或是传送写入命令及欲写入数据存储装置20的数据给数据存储装置20。而在此例中,主机10包括以电脑、手机、平板、相机或是其他具运算功能的手持式电子装置来实现。

数据存储装置20包括有控制单元21与非易失性存储媒体22。控制单元21系电性耦接非易失性存储媒体22,并用以控制非易失性存储媒体22的操作(例如进行数据的存取与抹除)。在此例中,非易失性存储媒体22例如是以快闪存储器(Flash Memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)等具有长时间数据保存之存储器装置来实现。非易失性存储媒体22具有多个实体区块(简称区块)30,而每一区块30具有多个数据页(Page),以及所述多个数据页用来存储数据。区块30可依据其功能而有不同的称呼。例如:正在写入有效数据的区块30称为主动区块(Active Block),存储有效数据的区块30称为数据区块31,未存储有效数据的区块30称为备用区块32,数据区块31可回收成为备用区块32。

控制单元21主要包括有接口逻辑212、微处理器214、控制逻辑216与易失性存储媒体218,其中易失性存储媒体218例如是以静态随机存取存储器(SRAM)来实现。控制单元21之微处理器214电性耦接接口逻辑212与控制逻辑214,而其中控制逻辑214又电性耦接非易失性存储媒体22与易失性存储媒体218。微处理器214用以通过控制逻辑216存取非易失性存储媒体22与易失性存储媒体218中的数据,且微处理器214还用以通过接口逻辑212接收来自主机10之命令或数据,命令例如:写入命令、读取命令、或倾倒(Flush)命令等。

数据存储装置20更可以包括有一个DRAM,此DRAM主要用以暂储L2P映射表(Logical addresses to Physical addresses Mapping Table),L2P映射表的大小例如为512MB而DRAM的大小为512MB。另外,数据存储装置20也可以包括有一个DRAM而DRAM的大小为128MB,此DRAM可用以暂储部分L2P映射表。

在下述的说明中将以未配置DRAM的数据存储装置20为例进行本发明数据存储装置之垃圾收集方法的说明,然而,本发明数据存储装置之垃圾收集方法亦可适用于配置DRAM的数据存储装置20,故不以此为限。

图2为本发明实施例所提供的垃圾收集方法的流程图。请同时参照图1、图2、图3A、图3B及图3C。其中,触发本发明垃圾收集方法的条件很多,例如,备用区块32的总数量小于或等于垃圾收集阈值(GC Threshold),主机10于预设时间长度内并未下达任何命令,主机10命令数据存储装置20进入待命(Standby)模式或节电(Power Saving)模式。当任何一个上述条件满足时,控制单元21执行下述步骤。

步骤S21:如图3A所示,从复数个数据区块31中选取复数个来源区块,其中这些来源区块的总有效数据数(Valid Data Count)大于或等于一个区块30的预设数据数(Default Data Count),来源区块的数量至少为3。控制单元21较佳选取具有较少的有效数据数的数据区块31作为来源区块,例如,选取4个数据区块31作为来源区块311~314,来源区块311~314分别具有400、450、550、1000的有效数据。区块30例如有512个数据页,每一数据页可存储4笔4KB大小的数据,则预设数据数为2048(即2048笔4KB大小的数据)。另外,控制单元21较佳即时更新每一数据区块31的有效数据量,并将每一数据区块31的有效数据量记录至系统资讯区块中。

步骤S23:如图3B所示,复制部分来源区块311~313的有效数据至目的区块321,其中,部分来源区块311~313的总有效数据数小于预设数据数,部分来源区块311~313的数量至少为2,剩余来源区块313的数量等于1。例如,控制单元21选取来源区块311~313,总有效数据数为1350,小于2048,并将来源区块311~313的有效数据复制至目的区块321。另外,目的区块321是从复数个备用区块32中选出,目的区块321是从复数个备用区块32中随机选取、或者从复数个备用区块32中依序选取、或者是复数个备用区块32中具有最小抹写次数(Erase Count)者。

步骤S25:复制剩余来源区块的全部或部份有效数据至目的区块321,其中,复制有效数据的数据量等于预设数据数减去部分来源区块的总有效数据数。2048减去1350等于698,因此,控制单元21复制来源区块314的698笔有效数据至目的区块321。复制完成后,来源区块314仍具有302笔有效数据未被复制。

在另一实施例中,来源区块311~314分别具有400、450、500、698的有效数据。控制单元21复制来源区块314的698笔有效数据至目的区块321。复制完成后,来源区块314的所有有效数据已被复制。

步骤S27:以目的区块321的映射信息更新L2P映射表。由于目的区块321已写满数据,因此,控制单元21将目的区块321关闭,即写入区块结束(End of Block)资讯至目的区块321中。另外,控制单元21以目的区块321所存储的数据的映射信息(即数据的实体地址)更新L2P映射表的内容。另外,由于数据存储装置20未配置有DRAM,控制单元21可将部分L2P映射表,例如:L2P映射表中的一个群组映射表(Group Table),暂存至SRAM,且以群组映射表为主,将目的区块321中所有与群组映射表相关的映射信息更新群组映射表的内容。之后,控制单元21再载入另一群组映射表至SRAM,并重复上述步骤,直到目的区块321的所有映射信息皆已更新至L2P映射表(或一个以上群组映射表)。

步骤S29:如图3C所示,将全部或部分来源区块回收成为备用区块32。由于来源区块311~313的有效数据复制至目的区块321,且L2P映射表的映射信息已指向目的区块321,因此来源区块311~313的有效数据已不再有效。控制单元21可抹除来源区块311~313并将来源区块311~313回收成为备用区块32,或直接将来源区块311~313作为备用区块32,如此一来,备用区块32的总数量可增加3。

在另一实施例中,来源区块311~314的所有有效数据复制至目的区块321,且L2P映射表的映射信息已指向目的区块321,因此来源区块311~314的有效数据已不再有效。控制单元21可抹除来源区块311~314并将来源区块311~314回收成为备用区块32,或直接将来源区块311~314作为备用区块32,如此一来,备用区块32的总数量可增加4。

在另一实施例中,本发明垃圾收集方法可分段执行,并于每段之间,控制单元21执行来自主机10之命令,换句话说,数据存储装置20轮流执行本发明垃圾收集方法以及来自主机10之命令,如此一来,数据存储装置20的系统效能不会有显著地降低。

综上所述,本发明实施例所提供的数据存储装置以及用于一数据存储装置之垃圾收集方法,其可确保目的区块可以被填满及有效利用,并且确保来源区块被释放而成为备用区块。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

相关技术
  • 高效能垃圾收集方法以及数据存储装置及其控制器
  • 高效能垃圾收集方法以及数据存储装置及其控制器
技术分类

06120113066894