CN108073522B - 可用于数据储存装置的垃圾搜集方法 - Google Patents
可用于数据储存装置的垃圾搜集方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration 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所述的垃圾搜集方法,其特征在于,当所述数据储存装置的电力状态改变时,自所述前景模式进入所述背景模式。
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)
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)
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 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
-
2016
- 2016-11-10 TW TW105136580A patent/TWI619018B/zh active
-
2017
- 2017-02-06 CN CN201710066017.0A patent/CN108073522B/zh active Active
- 2017-10-13 US US15/783,953 patent/US10657048B2/en active Active
-
2020
- 2020-03-30 US US16/833,680 patent/US11354236B2/en active Active
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 |