数据贮存装置的垃圾回收方法制造方法及图纸

技术编号:18496559 阅读:25 留言:0更新日期:2018-07-21 19:55
本发明专利技术公开了一个数据贮存装置用一种垃圾回收方法。数据贮存装置包括一个NAND闪存,NAND闪存包括若干数据区块,每一个数据区块包括若干数据页。在垃圾回收方法中,从数据区块选一个目的数据区块。把用户数据写入目的数据区块以前,为目的数据建立若干映像表来记录用户数据的逻辑地址与实体地址的关系,并建立一个关联性位图。关联性位图中的每一个位对应一个映像表。然后,选择一个待回收数据区块。然后,依待回收数据区块的关联性位图读取相关映像表。然后,逐一判断待回收数据区块的全部数据页是否在相关映像表里。若待回收数据区块的一数据页在相关映像表里,则把数据页设为有效数据页。然后,把有效数据页的数据写入目的数据区块。

Garbage collection method of data storage device

The invention discloses a garbage collection method for a data storage device. The data storage device includes a NAND flash memory, and NAND flash memory includes a number of data blocks, each of which contains a number of data pages. In the garbage collection method, a destination data block is selected from the data block. Before the user data is written to the target data block, a number of image tables are set up for the target data to record the relationship between the logical address of the user's data and the entity address, and establish an associated bitmap. Each bit in the associated bitmap corresponds to a mapping table. Then, select a data block to be recovered. Then, the related image table is read according to the associated bitmap of the data block to be recovered. Then, one by one determines whether all the data pages of the data block to be recovered are in the relevant image table. If a data page in the recovered data block is in the related image table, the data page is set as a valid data page. Then, the data of the valid data page is written to the destination data block.

【技术实现步骤摘要】
数据贮存装置的垃圾回收方法
本专利技术有关于数据贮存装置,特别有关于数据贮存装置的垃圾回收方法。
技术介绍
闪存转换层(FlashTranslationLayer:FTL)泛指实现于闪存的韧体算法。闪存分为NOR和NAND闪存。以下主要讨论NAND闪存的FTL(或称NFTL)。NAND闪存的闪存,不论SLC(Single-LevelChip)或MLC(Multi-LevelChip),有三个物理特性。第一,写过的地址须抹除后方能再写。第二,一次读或写的单位小而一次抹除的单位大。举例而言,一次读或写的单位是一数据页(Page)而一次抹除的单位是一数据区块(Block)。通常,一数据区块包括许多数据页。第三,每一数据区块的抹除次数受限。举例而言,SLC的抹除次数的限制是约100000次,MLC的抹除次数之限制是约10000次。如图1所示,一个FTL管理一个NAND闪存,并连接一个文件系统。NAND闪存被分成若干数据区块。如图2所示,每一数据区块有若干数据页及若干备用部(Spare)。如上所述,对FTL而言,读及写的最小单位是一数据页,抹除的最小单位是一数据区块。数据页贮存用户数据。备用部,又称作元数据(Metadata),贮存关于对应数据页的信息,例如这数据页对应的逻辑位置及ECC信息。FTL的主要工作是处理逻辑地址(LogicAddress)与实体地址(PhysicalAddress)的映像关系(Mapping)。所以,FTL会用一些表格记录这些关系,方便查表及写入。FTL在写入后,更新表格。FTL在内存里配置表格空间,并在写满表格后,把数据从该表格下刷到NAND闪存。NAND闪存的数据区块简单被分为数据区块及表格区块。数据区块贮存用户数据,表格区块贮存表格。图3至图5显示写入及回收的简单范例。图中的表格为实体页码(PhysicalPageNumber:PPN)及数据的对应。如图3所示,数据区块1000有三笔数据x、y及z。数据区块2000是一个空闲的(free)数据区块,里面没任何数据。如图4所示,更新x的数据,也就是为同一个逻辑地址(图未示)把一笔新的数据x’写入PPN是3的那数据页。此时,PPN是0的那数据页的数据就变成无效数据(invaliddata)。写满数据区块1000时,它包含有效数据(validdata)及无效数据。如图5所示,数据区块1000被回收以前,数据区块1000的有效数据页会被写入数据区块2000。然后,数据区块1000就被抹除,变回空闲数据区块。当NAND闪存的可用的空间降到一个水位,FTL就会执行垃圾回收(GarbageCollection:GC)。垃圾回收有几个步骤。首先,从一个数据区块区域(DataBlockArea:DBA)挑选一个待回收数据区块(victimblock),例如图4所示的数据区块1000。其次,挑选一个目的数据区块(destinationblock),例如图4所示的数据区块2000。接着,搬待回收数据区块中有效数据页到目的数据区块。最后,抹除并释放待回收数据区块。这流程会一直被执行,直到空闲数据区块数目回到另一个水位之上为止。要判断待回收数据区块里的某一数据页是有效数据页或无效数据页,做法是检查该数据页的实体地址是否在一张映像表(MappingTable)里。若是,则表示数据页是有效数据页。当控制器用小尺寸的RAM,FTL不能把全部映射表贮存在RAM里,以致它只能把一定数量的映射表暂存(CACHE)于RAM里。有两种方法可比较实体地址与映像表。第一种做法是FTL把全部映射表逐一从NAND闪存写入RAM,并把它的内容与实体地址相比。举例而言,若在NAND闪存里有M张映像表,则FTL须花映像表载入时间的M倍。这时间很长。第二种做法是FTL从待回收数据区块的每一数据页的元数据读取逻辑地址,并由这些逻辑地址得知应从NAND闪存读取那些映射表。举例而言,若一个数据区块有K数据页,且须从NAND闪存读取L张映像表,则FTL须花元数据读取时间的K倍加映像表加载时间L倍。L小于或等于K。这时间不短。
技术实现思路
有鉴于上述习知技术的问题与缺失,本专利技术的目的在于为一个数据贮存装置提供一种只需要很少资源的垃圾回收方法。为达成上述目的,一种数据贮存装置的垃圾回收方法,包括以下步骤:提供一种数据贮存装置,数据贮存装置包括一个NAND闪存,NAND闪存包括若干数据区块,每一个数据区块包括若干数据页。在垃圾回收方法中,从数据区块选一个目的数据区块。把用户数据写入目的数据区块以前,为目的数据建立若干映像表来记录用户数据的逻辑地址与实体地址的关系,并建立一个关联性位图。关联性位图中的每一个位对应一个映像表。然后,选择一个待回收数据区块。然后,依待回收数据区块的关联性位图读取相关映像表。然后,逐一判断待回收数据区块的全部数据页是否在相关映像表里。若待回收数据区块的一数据页在相关映像表里,则把数据页设为有效数据页。然后,把有效数据页的数据写入另一个数据区块。本专利技术的有益效果:本专利技术的垃圾回收方法特别适用于SSD内存有限的数据贮存装置。建立关联性位图来减少扫瞄的映射表的数量,并因此快速找到有效的数据页。另外,建立有效数据页位图来标示有效数据页,并因此快速把有效数据页从待回收数据区块写入一个新的数据区块。附图说明图1是典型的数据贮存系统的方块图;图2是图1所示的数据贮存系统的NAND闪存的简化的方块图;图3至图5是图2所示的NAND闪存的两个数据区块在不同状态的方块图;图6是本专利技术的较佳实施例的数据贮存系统在书写子程序里的方块图;图7是图6所示的数据贮存系统在回收子程序里的方块图;图8是图6所示的数据贮存系统所执行的书写子程序的流程图;图9是图7所示的数据贮存系统所执行的回收子程序的流程图;及图10是图9所示的回收子程序的部分的流程图。其中:10、主机,12、SSD控制器,14、SSD内存,16、NAND闪存,18、处理器,20、有效数据页位图,22、映射表,24、关联性位图,26、数据缓冲区,28、表格索引一维数组,30、数据区块,32、表格区块,34、表格索引区块,S10、书写指令,S12、写入新的数据区块?,S14、初始化新的映像表及关联性位图,S16、把用户数据写入下刷到NAND闪存,S18、更新映像表及关联性位图,S20、数据区块已满?,S22、把关联性位图下刷到NAND闪存,S24、映射表已满?,S26、把映射表下刷到NAND闪存,S28、结束,S30、开始回收程序,S32、选择待回收数据区块,S34、把关联性位图的数据加载SSD内存,S36、扫描关联性位图并把对应的映像表加载SSD内存,S38、建立有效数据页位图,S40、扫描映像表,S42、读取在映射表的条目,S44、对应的实体地址在待回收数据区块内?,S46、把在有效数据页位图中与该实体地址对应的位的值设为「1」,S48、目前的条目是最后一个条目,S50、结束,S52、已扫描全部有关联的映像表?,S54、把用户数据从待回收数据区块加载新的数据区块,S56、结束。具体实施方式以下,参考相关附图,进一步说明本专利技术的数据贮存装置的垃圾回收方法的实施例,相同组件系采相同符号。如图6、7所示,一个数据贮存系统包括一个主机10、本文档来自技高网
...

【技术保护点】
1.一种数据贮存装置的垃圾回收方法,其特征在于,包括以下步骤:(a)提供一种数据贮存装置,该数据贮存装置包括一个NAND闪存(16),该NAND闪存(16)包括若干数据区块(30),每一个数据区块(30)包括若干数据页;(b)从数据区块(30)选一个目的数据区块(30);(c)把用户数据写入目的数据区块(30)以前,为目的数据建立若干映像表(22)来记录用户数据的逻辑地址与实体地址的关系,并建立一个关联性位图(24),关联性位图(24)中的每一个位对应一个映像表(22);(d)从数据区块(30)选一个待回收数据区块(30);(e)依待回收数据区块(30)的关联性位图(24)读取相关映射表(22);(f)逐一判断待回收数据区块(30)的全部数据页是否在相关映像表(22)里;(g)若待回收数据区块(30)的一数据页在相关映像表(22)里,则把该数据页设为有效数据页;及(h)把有效数据页的数据写入另一个数据区块(30)。

【技术特征摘要】
1.一种数据贮存装置的垃圾回收方法,其特征在于,包括以下步骤:(a)提供一种数据贮存装置,该数据贮存装置包括一个NAND闪存(16),该NAND闪存(16)包括若干数据区块(30),每一个数据区块(30)包括若干数据页;(b)从数据区块(30)选一个目的数据区块(30);(c)把用户数据写入目的数据区块(30)以前,为目的数据建立若干映像表(22)来记录用户数据的逻辑地址与实体地址的关系,并建立一个关联性位图(24),关联性位图(24)中的每一个位对应一个映像表(22);(d)从数据区块(30)选一个待回收数据区块(30);(e)依待回收数据区块(30)的关联性位图(24)读取相关映射表(22);(f)逐一判断待回收数据区块(30)的全部数据页是否在相关映像表(22)里;(g)若待回收数据区块(30)的一数据页在相关映像表(22)里,则把该数据页设为有效数据页;及(h)把有效数据页的数据写入另一个数据区块(30)。2.如权利要求1所述的数据贮存装置的垃圾回收方法,其特征在于,步骤(g)包括以下步骤:(g1)建立一个有效数据页位图(20),有效数据页位图(20)中每一个位对应该待回收数据区块(30)的一数据页。3.如权利要求2所述的数据贮存装置的垃...

【专利技术属性】
技术研发人员:许嫣兰徐伯贤张柏坚
申请(专利权)人:国科美国研究实验室
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1