CN108073522B - 可用于数据储存装置的垃圾搜集方法 - Google Patents

可用于数据储存装置的垃圾搜集方法 Download PDF

Info

Publication number
CN108073522B
CN108073522B CN201710066017.0A CN201710066017A CN108073522B CN 108073522 B CN108073522 B CN 108073522B CN 201710066017 A CN201710066017 A CN 201710066017A CN 108073522 B CN108073522 B CN 108073522B
Authority
CN
China
Prior art keywords
data blocks
data
garbage collection
collection method
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710066017.0A
Other languages
English (en)
Other versions
CN108073522A (zh
Inventor
许鸿荣
郭郡杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN108073522A publication Critical patent/CN108073522A/zh
Application granted granted Critical
Publication of CN108073522B publication Critical patent/CN108073522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种可用于数据储存装置的垃圾搜集方法。垃圾搜集方法包括下列步骤:自前景模式进入背景模式;从复数个使用中数据区块中选取复数个源数据区块;将对照表切割成复数个子对照表,并从上述子对照表中选取一目标子对照表;从复数个备用数据区块中选取一目的数据区块;以及依序将目标子对照表所储存的有效数据的对应关系从上述源数据区块更新至目的数据区块。

Description

可用于数据储存装置的垃圾搜集方法
技术领域
本发明涉及一种数据储存的相关技术,尤其是一种可用于数据储存装置的垃圾搜集方法。
背景技术
数据储存装置,尤其是采用非易失性储存媒体的数据储存装置,包括复数个数据区块,每一数据区块包含复数个数据页,每一数据页用以储存至少一储存单位的数据,储存单位可为512B (Byte)或较佳为4KB。数据区块又依据其储存数据与否而区分为空白数据区块(或称为备用数据区块)与非空白数据区块(或称使用中数据区块)。为了进行数据的管理及存取,数据储存装置需要建立及储存一个逻辑至实体地址对照表(Host logical-to-Flash physical address mapping table,H2F table),在本案中将它简称为对照表,并于数据储存装置运作时将对照表复制至动态随机存取存储器(dynamic random accessmemory,DRAM),以增加数据的管理及存取上的效率。另外,对照表的大小依其记录内容而不同,较常见的大小为数据储存装置的数据储存容量的1/1000,以256GB大小的数据储存装置为例,对照表的大小为256MB,因此,配置有DRAM的大小较佳为大于或等于256MB,以储存一整个对照表。
对于没有配置DRAM或者仅配置小型DRAM(即DRAM的大小不足以储存一整个对照表)的数据储存装置而言,如何运用其配置的静态随机存取存储器(static random accessmemory,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例如是以闪存(flash memory)、磁阻式随机存取存储器(magnetoresistive RAM)、铁电随机存取存储器(ferroelectric RAM)、电阻式存储器(resistive RAM,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:自前景模式(foreground mode)进入背景模式(background mode)。当主机100停止传送命令或数据,或非易失性储存媒体220的备用区块(spare data block)的数目低于一临界值时,或自其他电力状态(power state)进入节电(power saving)状态,或其他特定的状态时,数据储存装置200将自前景模式进入背景模式。非易失性储存媒体220包含复数个数据区块,假设总共有65536个数据区块,分别为数据区块#0~#65535,其中,数据区块#0~数据区块#59999为使用中(in-use)数据区块,数据区块#60000~数据区块#65535为备用数据区块。
步骤S204:从复数个使用中数据区块中选取复数个源数据区块,其中,复数个源数据区块中的其中一个数据区块乃复数个使用中数据区块中具有最小有效数据数(leastvalid data count)者;或者,复数个源数据区块的其中一个数据区块乃复数个使用中数据区块中具有最大或最小抹写次数(most or least erase count)者;或者,复数个源数据区块的其中一个数据区块乃复数个使用中数据区块中具有最大或最小读取次数(most orleast read count)者;或者,复数个源数据区块系从复数个使用中数据区块中随机选取;又或者,复数个源数据区块系从复数个使用中数据区块中依编号依序选取。如图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的实体至逻辑地址对照表(flash physical-to-hostlogical address mapping table,F2H table)为示意图,用以进行下的说明,并不以此为限。
步骤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:从复数个备用数据区块中选取一个目的数据区块,其中,目的数据区块仍从复数个备用数据区块中随机选取;或者,目的数据区块仍从复数个备用数据区块中依序选取;或者,目的数据区块乃复数个备用数据区块中具有最大抹写次数(most erasecount)者。假设控制单元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,选取一个目的数据区块,用户可依其实际需求而进行调整。
综上所述,由于本发明乃是以每次依据一子对照表的完整记录内容的方式来对数据区块执行一垃圾搜集程序,本发明可有效降低执行垃圾搜集程序时子对照表的抽换次数,进而降低数据储存装置所耗的资源及时间,达到本发明的目的。
虽然本发明以前述的实施例揭露如上,然其并非用于限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的申请专利范围所界定者为准。

Claims (17)

1.一种用于数据储存装置的垃圾搜集方法,其中所述数据储存装置包括非易失性储存媒体及易失性储存媒体,其特征在于,所述垃圾搜集方法包括:
自前景模式进入背景模式;
从复数个使用中数据区块中选取复数个源数据区块;
将储存于所述非易失性储存媒体中的对照表切割成复数个子对照表,并将大部分的所述复数个子对照表储存于所述非易失性储存媒体中以及将少部分的所述复数个子对照表储存于所述易失性储存媒体中,并从所述非易失性储存媒体中的所述复数个子对照表选取目标子对照表,其中,所述目标子对照表系用以管理其中一所述复数个源数据区块;
从复数个备用数据区块中选取目的数据区块;
依序将储存在所述复数个源数据区块的复数个有效数据复制至所述目的数据区块;以及
将所述目标子对照表所储存的有效数据的对应关系从所述复数个源数据区块更新至所述目的数据区块。
2.如权利要求1所述的垃圾搜集方法,其特征在于,还包括:
判断所述目标子对照表所储存的数据的对应关系是否全部完成更新;以及
当判断为否时,自所述复数个备用数据区块中选取另一目的数据区块。
3.如权利要求1所述的垃圾搜集方法,其特征在于,所述复数个源数据区块的其中之一数据区块系所述复数个使用中数据区块中具有有效数据数的极端值者。
4.如权利要求1所述的垃圾搜集方法,其特征在于,所述复数个源数据区块的其中之一数据区块系所述复数个使用中数据区块中具有抹写次数的极端值者。
5.如权利要求1所述的垃圾搜集方法,其特征在于,所述复数个源数据区块中的其中之一数据区块系所述复数个使用中数据区块中具有读取次数的极端值者。
6.如权利要求1所述的垃圾搜集方法,其特征在于,所述复数个源数据区块系从所述复数个使用中数据区块中随机选取。
7.如权利要求1所述的垃圾搜集方法,其特征在于,所述复数个源数据区块系从所述复数个使用中数据区块中依编号依序选取。
8.如权利要求1所述的垃圾搜集方法,其特征在于,所述目标子对照表系从所述复数个子对照表中依序选取。
9.如权利要求1所述的垃圾搜集方法,其特征在于,所述目标子对照表系从所述复数个子对照表中随机选取。
10.如权利要求1所述的垃圾搜集方法,其特征在于,所述目的数据区块系从所述复数个备用数据区块中随机选取。
11.如权利要求1所述的垃圾搜集方法,其特征在于,所述目的数据区块系从所述复数个备用数据区块中依序选取。
12.如权利要求1所述的垃圾搜集方法,其特征在于,所述目的数据区块系所述复数个备用数据区块中具有抹写次数的极端值者。
13.如权利要求1所述的垃圾搜集方法,其特征在于,所述数据储存装置包括储存有效数据的所述复数个使用中数据区块以及未储存有效数据的所述复数个备用数据区块。
14.如权利要求1所述的垃圾搜集方法,其特征在于,所述数据储存装置包括动态随机存取存储器,所述动态随机存取存储器的大小不足以储存所述对照表。
15.如权利要求1所述的垃圾搜集方法,其特征在于,当所述数据储存装置未收到命令时,自所述前景模式进入所述背景模式。
16.如权利要求1所述的垃圾搜集方法,其特征在于,当所述复数个备用数据区块的总数低于临界值时,自所述前景模式进入所述背景模式。
17.如权利要求1所述的垃圾搜集方法,其特征在于,当所述数据储存装置的电力状态改变时,自所述前景模式进入所述背景模式。
CN201710066017.0A 2016-11-10 2017-02-06 可用于数据储存装置的垃圾搜集方法 Active CN108073522B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TWTW105136580 2016-11-10
TW105136580A TWI619018B (zh) 2016-11-10 2016-11-10 可用於資料儲存裝置之垃圾蒐集方法

Publications (2)

Publication Number Publication Date
CN108073522A CN108073522A (zh) 2018-05-25
CN108073522B true CN108073522B (zh) 2021-10-08

Family

ID=62063963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710066017.0A Active CN108073522B (zh) 2016-11-10 2017-02-06 可用于数据储存装置的垃圾搜集方法

Country Status (3)

Country Link
US (2) US10657048B2 (zh)
CN (1) CN108073522B (zh)
TW (1) TWI619018B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016122227A (ja) * 2014-12-24 2016-07-07 株式会社東芝 メモリシステムおよび情報処理システム
US10795810B2 (en) * 2018-09-10 2020-10-06 Micron Technology, Inc. Wear-leveling scheme for memory subsystems
CN110895513B (zh) * 2018-09-12 2024-09-17 华为技术有限公司 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
CN114528226A (zh) 2018-09-17 2022-05-24 慧荣科技股份有限公司 高效能垃圾收集方法以及数据存储装置及其控制器
TWI721365B (zh) * 2018-09-17 2021-03-11 慧榮科技股份有限公司 高效能垃圾收集方法以及資料儲存裝置及其控制器
US10884954B2 (en) 2018-09-17 2021-01-05 Silicon Motion, Inc. Method for performing adaptive locking range management, associated data storage device and controller thereof
US11249901B2 (en) * 2018-12-07 2022-02-15 EMC IP Holding Company LLC Ownership-based garbage collection of data
KR20200073017A (ko) * 2018-12-13 2020-06-23 에스케이하이닉스 주식회사 데이터 저장 장치와, 그것의 동작 방법
US11237924B2 (en) * 2019-12-11 2022-02-01 Commvault Systems, Inc. Dynamic resizing and re-distribution of destination data storage resources for bare metal restore operations in a data storage management system
TWI729674B (zh) * 2020-01-13 2021-06-01 慧榮科技股份有限公司 資料儲存裝置及其垃圾蒐集方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6810037B1 (en) * 1999-03-17 2004-10-26 Broadcom Corporation Apparatus and method for sorted table binary search acceleration
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8806144B2 (en) * 2009-05-12 2014-08-12 Stec, Inc. Flash storage device with read cache
US8402242B2 (en) * 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
WO2011095516A1 (en) * 2010-02-05 2011-08-11 St-Ericsson Sa Method and system for mass storage on flash memory
US9026716B2 (en) * 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
US8527544B1 (en) * 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
TWI514140B (zh) * 2013-02-05 2015-12-21 Via Tech Inc 非揮發性記憶裝置及其操作方法
US9383924B1 (en) * 2013-02-27 2016-07-05 Netapp, Inc. Storage space reclamation on volumes with thin provisioning capability
US9208074B2 (en) * 2013-08-30 2015-12-08 Silicon Motion, Inc. Updating address mapping in sub-intervals in a flash memory data storage device
CN103530237B (zh) * 2013-10-31 2016-02-17 厦门大学 一种固态盘阵列的垃圾回收方法
US9684568B2 (en) * 2013-12-26 2017-06-20 Silicon Motion, Inc. Data storage device and flash memory control method
KR102254392B1 (ko) * 2014-05-12 2021-05-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
CN105260325A (zh) * 2014-07-17 2016-01-20 广明光电股份有限公司 固态硬盘搜集垃圾区块的方法
CN105573661B (zh) * 2014-10-15 2018-11-09 群联电子股份有限公司 数据写入方法、存储器存储装置及存储器控制电路单元
US9753649B2 (en) * 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US9858008B2 (en) * 2014-10-30 2018-01-02 ScaleFlux Method to reduce flash memory IOs with host maintained address mapping table
TWI604307B (zh) * 2014-10-31 2017-11-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
KR102425470B1 (ko) * 2015-04-06 2022-07-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN105389266B (zh) * 2015-10-16 2019-03-01 北京联想核芯科技有限公司 一种数据管理方法及装置
CN105528301A (zh) * 2015-12-07 2016-04-27 中国人民解放军信息工程大学 一种NAND Flash闪存垃圾回收方法
KR102580820B1 (ko) * 2016-03-10 2023-09-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI653533B (zh) * 2017-03-07 2019-03-11 慧榮科技股份有限公司 資料儲存裝置以及其操作方法

Also Published As

Publication number Publication date
US11354236B2 (en) 2022-06-07
US10657048B2 (en) 2020-05-19
CN108073522A (zh) 2018-05-25
US20180129602A1 (en) 2018-05-10
TW201818255A (zh) 2018-05-16
TWI619018B (zh) 2018-03-21
US20200226062A1 (en) 2020-07-16

Similar Documents

Publication Publication Date Title
CN108073522B (zh) 可用于数据储存装置的垃圾搜集方法
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US8046526B2 (en) Wear leveling method and controller using the same
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
US8103820B2 (en) Wear leveling method and controller using the same
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
CN108073359B (zh) 数据储存装置的操作方法
US8417872B2 (en) Write and merge methods in memory card systems for reducing the number of page copies
US7649794B2 (en) Wear leveling method and controller using the same
US10936203B2 (en) Memory storage device and system employing nonvolatile read/write buffers
US11150819B2 (en) Controller for allocating memory blocks, operation method of the controller, and memory system including the controller
KR20070046864A (ko) 플래쉬 화일 시스템에서 가상-물리 주소 변환 방법 및시스템
JP2005222550A (ja) フラッシュメモリのリマッピング方法
US20100318726A1 (en) Memory system and memory system managing method
CN112684976A (zh) 用于执行迁移操作的存储器系统及其操作方法
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
US11372774B2 (en) Method and system for a solid state drive with on-chip memory integration
US11392310B2 (en) Memory system and controller
US11455246B2 (en) Garbage collection method for data storage device
CN112527692A (zh) 数据储存装置以及非挥发式存储器控制方法
TWI808011B (zh) 資料處理方法及對應之資料儲存裝置
US20240193053A1 (en) Data storage device, memory controller and method of operating the same
CN115221072A (zh) 固态存储装置的快闪转换层对应表处理方法
CN116009790A (zh) 有效节点管理方法、存储装置及存储器控制电路单元

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant