CN115237820A - 以局部清理操作来进行垃圾回收的方法与相关控制器和储存系统 - Google Patents
以局部清理操作来进行垃圾回收的方法与相关控制器和储存系统 Download PDFInfo
- Publication number
- CN115237820A CN115237820A CN202210010570.3A CN202210010570A CN115237820A CN 115237820 A CN115237820 A CN 115237820A CN 202210010570 A CN202210010570 A CN 202210010570A CN 115237820 A CN115237820 A CN 115237820A
- Authority
- CN
- China
- Prior art keywords
- page
- pages
- cleaning
- valid
- read
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- 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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及以局部清理操作来进行垃圾回收的方法与相关控制器和储存系统。本发明的一种对一来源区块进行一垃圾回收操作的方法,包含:在一系列的主机写入操作期间,进行多个局部清理操作。每个局部清理操作包含:在该来源区块的一分区搜寻范围内执行一有效性检查程序,以获得一有效页资讯;以及根据该有效页资讯与一目标清理页数量,执行一页清理程序,以读取该有效页资讯所指出的一个或多个有效页。
Description
技术领域
本发明关于快闪存储器,尤指在快闪存储器中执行垃圾回收操作的方法,以及相关控制器和储存系统。
背景技术
近来,基于NAND快闪存储器的储存设备被广泛应用于各种范畴。与传统硬碟相比,NAND快闪存储器的优势包括卓越的读写性能、抗震性、无噪音和更低的功耗。
由于快闪存储器的特性,其不支援覆写操作。当新数据需要替换已经储存在快闪存储器中的旧数据时,新数据将被写入新位置,而旧位置上的数据便失效。因此,随着对数据的重复覆写,无效数据的数量将增加。为了确保有足够的储存区域可供数据储存,需要抹除快闪存储器中的无效数据。一般来说,快闪存储器依靠垃圾回收(garbage collection)操作来释放无效数据占用的空间。
在垃圾回收操作期间,来源区块的有效页(即,具有有效数据的页)被复制(其数据被读出和写入)到空白的目的区块,然后将来源区块抹除,以供重新使用。通常,垃圾回收操作需要查询地址转换表(address translation table),以确定来源区块上哪些页是有效的,哪些数据需要被复制到目的区块中,这将耗费相当可观的时间。另外,为了在快闪存储器中保持足够的储存空间,垃圾回收操作还需要释放一定量的储存空间,来容纳主机尝试写入的数据。由于有效页不是连续且均匀地分布在来源区块上,因此垃圾回收操作可能会卡在从来源区块中搜寻有效页,并释放所需的储存空间的过程中,这可能导致显著的系统延迟。在最坏的情况下,还这可能导致在时限到期前无法顺利执行主机命令,从而严重降低平均系统性能。
发明内容
有鉴于此,本发明的目的之一在于提供一种执行垃圾回收操作的方法和装置。本发明实施例将垃圾回收操作划分为多个局部清理操作,这些操作与主机写入操作交错地进行。在单次局部清理操作期间,仅检查来源区块的一部分的页有效性,并读取发现的有效页数据。如果发现的有效页数量低于预期,局部清理操作将提前结束,使得存储器控制器不会卡在进行垃圾回收操作的过程中,而是转而执行主机写入操作。如此一来,本发明避免了主机写入操作因搜寻有效页而被延宕,导致系统性能下降的问题。
本发明的实施例提供一种对一来源区块进行一垃圾回收操作的方法,该方法包含:在一系列的主机写入操作期间,进行多个局部清理操作。其中,每个局部清理操作包含:在该来源区块的一分区搜寻范围内执行一有效性检查程序,以获得一有效页资讯;以及根据该有效页资讯与一目标清理页数量,执行一页清理程序,以读取该有效页资讯所指出的一个或多个有效页。
本发明的实施例提供一种用于控制一快闪存储器并对该快闪存储器上的一来源区块进行一垃圾回收操作的控制器。该控制器包含:一储存单元与一处理单元。该储存单元用于储存资讯。该处理单元用于执行一程序码,并参考该快闪存储器或该储存单元中储存的资讯,进行以下操作:在一系列的主机写入操作期间,进行多个局部清理操作。其中每个局部清理操作包含:在该来源区块的一分区搜寻范围内执行一有效性检查程序,以获得一有效页资讯;以及根据该有效页资讯与一目标清理页数量,执行一页清理程序,以读取该有效页资讯所指出的一个或多个有效页。
本发明的实施例提供一种储存系统,该储存系统包含一快闪存储器与一控制器。该控制器用于控制该快闪存储器并对该快闪存储器上的一来源区块进行一垃圾回收操作。该控制器用于在一系列的主机写入操作期间,进行多个局部清理操作。其中,每个局部清理操作包含:在该来源区块的一分区搜寻范围内执行一有效性检查程序,以获得一有效页资讯;以及根据该有效页资讯与一目标清理页数量,执行一页清理程序,以读取该有效页资讯所指出的一个或多个有效页。
附图说明
图1绘示本发明实施例的储存系统的架构示意图。
图2绘示在本发明实施例中如何执行垃圾回收操作。
图3绘示本发明实施例中单次局部页清理操作的流程图。
图4~图6绘示在不同的有效页分布下,有效性检查程序和页清理程序之间的关联。
图7绘示本发明实施例中实现有效性检查程序的硬件架构。
图8绘示本发明另一实施例中单次局部页清理操作的流程图。
【符号说明】
10 电子装置
50 主控装置
52 处理器
54 随机存取存储器
100 储存系统
120 NV存储器
122_1~122_N NV存储器元件
110 存储器控制器
112 微处理器
112M 只读存储器
112C 程序码
114 控制逻辑电路
116 随机存取存储器
118 传输接口电路
170 有效性位元映射硬件引擎
201、205、210~250 步骤
具体实施方式
在以下内文中,描述了许多具体细节以提供阅读者对本发明实施例的透彻理解。然而,本领域的技术人士将能理解,如何在缺少一个或多个具体细节的情况下,或者利用其他方法或元件或材料等来实现本发明。在其他情况下,众所皆知的结构、材料或操作不会被示出或详细描述,从而避免模糊本发明的核心概念。
说明书中提到的“一实施例”意味着该实施例所描述的特定特征、结构或特性可能被包含于本发明的至少一个实施例中。因此,本说明书中各处出现的“在一实施例中”不一定意味着同一个实施例。此外,前述的特定特征、结构或特性可以以任何合适的形式在一个或多个实施例中结合。
图1为本发明实施例的电子装置10的架构示意图。如图所示,电子装置10包含主控装置(host device)50与储存系统100。主控装置50可包含:一随机存取存储器(randomaccess memory,RAM)54与至少一处理器52,用来控制主控装置50的运作。在不同实施例中,主控装置50可以是(但不限于):智慧型手机、平板电脑、可穿戴装置、个人电脑、笔记型电脑、数位相机、数位录影机、游戏主机、车用导航系统、印表机、扫描器或者伺服器。另外,在不同实施例中,储存系统100可以是(但不限于):可携式储存装置(如符合SD/MMC、CF、MS、XD或UFS标准的记忆卡)、固态硬碟(solid state drive,SSD)以及各种嵌入式(embedded)储存装置(如符合UFS或EMMC规格的嵌入式储存装置)。
在本发明的各种实施例中,储存系统100可以包含如存储器控制器110之类的控制器,并且还可以包括非挥发性(non-volatile,NV)存储器120。NV存储器120用于储存资讯。NV存储器120可以包括一个或多个NV存储器元件,例如,多个NV存储器元件122_1~122_N。再者,NV存储器120可以是快闪存储器,并且NV存储器元件122_1~122_N可以分别是多个快闪存储器晶片或多个快闪存储器裸晶,但本发明不限于此。另外,NV存储器120可以包含具有二维结构的存储器单元(memory cells),或者可以包含具有三维结构的存储器单元。
如图1所示,存储器控制器110可以包含如微处理器112之类的处理电路、只读存储器(read-only memory,ROM)112M之类的储存元件、控制逻辑电路114、挥发性存储器116、传输接口电路118以及一选择性的有效性位元映射引擎(validity bitmap engine)170。其中,这些元件的至少一部分(例如,一部分或全部)可以透过总线彼此互连。挥发性存储器116由随机存取存储器(random-access memory,RAM)实现。例如,挥发性存储器116可以是静态RAM(static RAM,SRAM)。挥发性存储器116可以用于向存储器控制器110提供内部储存空间,例如,暂时性地储存资讯。另外,本实施例的ROM 112M用于储存程序码112C,而微处理器112用于执行程序码112C,从而控制对NV存储器120的存取。在另一个实施例中,程序码112C可以被储存在NV存储器120中。
存储器控制器110透过控制逻辑电路114控制NV存储器120的读取、写入和抹除。此外,存储器控制器110可以同时基于来自主控装置50的主机命令,执行使用者数据的写入,并且藉由垃圾回收操作或耗损平衡(wear-leveling)操作从NV存储器120中搜集有效数据,执行有效数据的写入。控制逻辑电路114可以进一步用于控制NV存储器120,其包含错误校正(error correction code,ECC)电路(未示出),以执行数据保护和/或校正,但是本发明不限于此。传输接口电路118符合特定的数据传输规范(例如,序列进阶技术附加装置(Serial Advanced Technology Attachment,SATA)规范、通用序列总线(UniversalSerial Bus,USB)规范、快捷外设互联标准((Peripheral Component InterconnectExpress,PCIE)规范、嵌入式多媒体卡(Embedded Multimedia Card,eMMC)规范、或通用快闪存储器储存(Universal Flash Storage,UFS)规范,并可以根据特定的通信规范与主控装置50进行通讯。
一般来说,主控装置50可以透过向存储器控制器110发送主机命令和相应的逻辑地址来间接存取储存系统100。存储器控制器110接收主机命令和逻辑地址,将主机命令转换为存储器操作命令,并且进一步用存储器操作命令控制NV存储器120,从而对NV存储器120内具有特定物理地址的存储器单元(memory cells)或页(pages),执行读、写或抹除操作,其中物理地址对应于逻辑地址。当存储器控制器110对NV存储器元件122_1~122_N内的任何NV存储器元件122_k执行抹除操作时,NV存储器元件122_k中的至少一个区块(block)可以被抹除。另外,NV存储器元件122_k的每个区块可以包括多个页,并且可以在一个或多个页上执行存取操作(例如,读取或写入)。
在本发明中,垃圾回收(garbage collection,GC)操作可以透过由存储器控制器110所驱动的多个局部清理(partial clean)操作来实现,并且这些局部清理操作可以分散到不同的时槽(time slot)。局部清理操作可以与基于主控装置50发送的主机命令所导致的一系列读取或写入操作,交错地进行。在单次局部清理操作期间,存储器控制器110可以辨识一个来源区块的一部分分页的有效页,并读出被辨识为有效页上的数据。在执行几次局部清理操作,并将来源区块中所有有效页上的数据复制到新的目的区块后,来源区块便可以被抹除和再次使用。此时,GC操作完成。
图2绘示本发明实施例如何执行GC操作。如图所示,每个局部清理操作包含两个子程序(sub-process),一个是有效性检查(validity check)程序,另一个是页清理(pageclean)程序。在有效性检查程序中,将在来源区块的一分区搜寻范围ScanP内,检查每个页的有效性,从而建立关于分区搜寻范围ScanP内的有效页资讯,其中有效页资讯指出哪些页是有效的。在有效性检查程序中,存储器控制器110将查询主机至快闪存储器(host-to-flash,H2F)地址转换表,以及快闪存储器至主机(flash-to-host,F2H)地址转换表,以确认哪一个页是有效的。具体来说,存储器控制器110首先将与分区搜寻范围ScanP相关联的一部分F2H地址转换表载入到主控装置50的存储器54或存储器控制器110自身的存储器116。基于所载入的F2H地址转换表的部分,存储器控制器110可以得到待检查的页被映射到哪个逻辑地址。据此,存储器控制器110再查询H2F地址转换表,以将待检查的页的逻辑地址转换为物理地址。如果该物理地址属于待检查的页,则确认待检查的页有效。如果不是,则表示待检查的页的逻辑地址还被映射到另一个页,故待检查的页为无效。
透过有效性检查程序所获得的有效页资讯可以被记录到,主控装置50的存储器54或存储器控制器110自身的存储器116所保存的有效性位元映射表(validity bitmap)中,其使用一位元来指出一页的有效性。或者,有效页资讯可以记录到在存储器54或存储器116中额外配置的先进先出(first in-first out,FIFO)缓冲器中,FIFO缓冲器的项目(entry)记录有效页的地址。一个来源区块中所有页的有效性,可透过对该来源区块的多个连续分区搜寻范围ScanP,执行有效性检查程序后来决定。例如,假设一个来源区块由10000个页组成,每个分区搜寻范围ScanP划分来源区块中的400个连续页。因此,经过25次有效性检查程序后,便可确认来源区块上所有页的有效性。
一旦完成有效性检查程序(即,分区搜寻范围ScanP内所有页的有效性已检查),页清理程序开始。在页清理程序中,将读取有效页资讯所指出的有效页上的数据。存储器控制器110将读出在有效性检查程序中已发现并且被确认的有效页。根据本发明不同实施例,当有效页的数据被读出后,页清理程序可以结束。又或者是,当有效页的数据已被写入到新的目的区块中的页时,页清理程序才结束。
存储器控制器110凭借指标SearchPtr来追踪有效性检查的进度。指标SearchPtr指向有效性正在被检查的页的地址。一旦有效性检查程序结束,指标SearchPtr将有效性已被检查的最后一页的地址。稍后,将使用指标SearchPtr指向的页,做为新的有效性检查程序所检查的第一个页。此外,存储器控制器110凭借指标CleanPtr来追踪页清理的进度。指标CleanPtr指向数据正在被读取的有效页的地址。一旦页清理程序结束,指标CleanPtr储存数据已被读取的最后一个有效页的地址。稍后,将使用指标CleanPtr指向的页,做为新的页清理程序所读取的第一个页。
为了初始化GC操作,存储器控制器110首先需要确定主机对GC操作的写入比例。主机对GC操作的写入比例表示,在特定时间内,基于主控装置50所发送的主机命令要求写入的使用者数据的写入量,与基于GC操作的有效数据写入量的比例。主机对GC操作的写入比例反映了GC操作需要移动多少有效数据(即,需要释放NV存储器120中多少储存空间),才能平衡主机命令引发的写入(其将占用NV存储器120的储存空间),从而在NV存储器120中保有一定数量的空闲区块。根据主机对GC操作的写入比例,存储器控制器110可以决定一目标清理页数量C,它表示有多少有效页需要在每次页清理程序中被读取或复制,以满足主机对GC操作的写入比例。假设一来源区块的有效页总数为SrcVP,且该来源区块的页总数为BlkP,则读出该来源区块中所有有效页需要进行的局部清理操作的次数为:(SrcVP/C)。并且,每一次局部清理操作中的有效性检查程序的分区搜寻范围ScanP将为:BlkP/(ScrVP/C),其中分区搜寻范围ScanP表示在一个有效性检查程序中,来源区块中需要被检查的页数。
由于有效页不是连续且均匀地分布在来源区块上,因此在单一次有效性检查程序中,存储器控制器110可能无法找到与目标清理页数量C所要求的一样多的有效页。例如,当前分区搜寻范围ScanP内的有效页数量低于预期,导致页清理程序读取不到有效页,或者是读取到的有效页数量很少。如此,代表了在每个页清理程序中实际读取了多少页的实际清理页数量CleanVP,将会有很大的变动。基于有效页在来源区块上的分布情况,实际清理页数量CleanVP可能小于目标清理页数量C。在这种情况下,一旦指标CleanPtr与指标SearchPtr相同,则页清理程序将结束。这是因为已被发现并且确认的有效页都已被页清理程序所读取。因此,只能预期后续的页清理程序可以读取到更多有效页。有鉴于此,接下来的页清理程序需要读取的有效页数将变为(RemainVP+C),其中“RemainVP”为剩余清理页数量,其代表目标清理页数量中有多少个页到目前为止还没有被读取。如果实际清理页数量CleanVP持续低于目标清理页数量C,则剩余清理页数量RemainVP将被累加。例如,如果目标清理页数量C指出,每个页清理程序需要清理出30个页,并且在一第一局部清理操作的有效性检查程序中,仅在其对应的分区搜寻范围ScanP内发现且确认14个有效页,则这意味着该第一局部清理操作的页清理程序只能读取到14个有效页。因此,在该第一局部清理操作结束之后,剩余清理页数量RemainVP便是16个页(即,30-14=16)。有鉴于此,一第二局部清理操作中的页清理程序便需要读取46个有效页(即,RemainVP(16)+C(30)=46)。但是,如果该第二局部清理操作的有效性检查页程序仅在其对应的分区搜寻范围ScanP内,发现且确认13个有效页,则这意味着该第二局部清理操作中的页清理程序只能读取到13个有效页。因此,在该第二次局部清理操作结束后,剩余清理页数RemainVP便是63个页(即,RemainVP(46)+C(30)-CleanVP(13)=63)。有鉴于此,一第三局部清理操作中的页清理程序需要读取93个有效页(即,63+30=93)。由以上描述可知,在局部清理操作完成后,剩余清理页数量RemainVP将透过:(RemainVP+C)-CleanVP的计算而进行更新。另一方面,如果有效页集中分布在当前的分区搜寻范围ScanP内,则存储器控制器110可能足以找到与目标清理页数量C和剩余清理页数量RemainVP之总和一样多的有效页。在此情况下,一旦存储器控制器110所读取的有效页数量达到:(RemainVP+C),则页清理程序将结束。
请参考图3,其绘示出本发明实施例的执行单一局部清理操作的流程图。如图所示,该流程包括以下步骤:
步骤210:基于指标SearchPtr,在一来源区块的一分区搜寻范围内进行一有效性检查程序,从而得到有效页资讯;
步骤220:基于指标CleanPtr,根据该有效页资讯进行一页清理程序,从而读取该有效页资讯所指出的有效页。
步骤230:判断实际清理页数量CleanVP是否低于目标清理页数量C与剩余清理页数量RemainVP的总和。
步骤240:设定剩余清理页数量RemainVP为:C+RemainVP-CleanVP。
步骤250:设定剩余清理页数量RemainVP为0。
在步骤210中,在一来源区块的一分区搜寻范围ScanP内执行一有效性检查程序,以获得有效页资讯。如上所述,来源区块的分区搜寻范围ScanP是根据来源区块的目标清理页数量C、有效页总数SrcVP和页总数BlkP来确定的。在步骤220,根据该有效性检查程序中获得的有效页资讯进行一页清理程序。如果存储器控制器110读取到的有效页数,与剩余清理页数量RemainVP和目标清理页数量C之总和(即,C+RemainVP)一样多,则该页清理程序结束。又或者,当指标CleanPtr追上指标SearchPtr时,页清理程序也会结束,这意味着已确认的有效页数量可能不足。在完成该页清理程序后,流程进入步骤230。在步骤230中,检查实际清理页数量CleanVP(即,存储器控制器110实际读取的有效页的数量)是否小于(C+RemainVP)个页。如果是,这意味着已确认的有效页数量不足,存储器控制器110将在随后的页清理程序中,尝试读取更多的有效页。之后,流程进入步骤240,将剩余清理页数量设定成C+RemainVP-CleanVP。若步骤230的检查结果为否,则表示在该有效性检查程序中所确认的有效页足以供存储器控制器110进行读取,并满足主机对GC操作的写入比例。据此,流程进入步骤250,剩余清理页数量RemainVP将被设定成0。
图4~图6绘示在不同有效页分布情况下,有效性检查程序和页清理程序之间的关联。在图4所示的第一种情况下,有效页主要分布在来源区块(或者是一超级来源区块(super source block))的末端。所以在操作之初,每一次局部清理操作中的页清理程序都无法读取到足够的有效页(即,实际清理页数量CleanVP持续低于目标清理页数量C)。如此一来,在大多数情况下,指标CleanPtr与指标SearchPtr非常接近。据此,剩余清理页数量RemainVP将不断增加。
在图5所示的第二种情况中,有效页主要分布在来源区块的开头。有鉴于此,每次局部清理操作中的页清理程序将无法完全读取出,在分区搜寻范围ScanP内已发现且确认的所有有效页(即,分区搜寻范围ScanP内找到的有效页数量明显高于RemainVP+C)。如此,指标CleanPtr将在一开始落后指标SearchPtr。而一旦页清理程序朝向不包含任何有效页,或仅包含很少有效页的来源区块范围中移动时,指标CleanPtr将逐渐追上指标SearchPtr。当指标CleanPtr追上指标SearchPtr后,剩余清理页数量RemainVP开始增加。
在图6所示的第三种情况中,有效页均匀第分布在来源区块上。因此,指标CleanPtr可能会落后或追上指标SearchPtr。当指标CleanPtr落后于指标SearchPtr时,剩余清理页数量RemainVP逐渐增加。当指标CleanPtr赶上指标SearchPtr时,剩余清理页数量RemainVP逐渐减少至零。
图7绘示了本发明实施例中,有效性检查程序的硬件实施架构。在一个实施例中,微处理器112可以在具备多个处理器核心的多核心处理器112上实现。每个处理器核心可包含用于储存全局或局部变量的数据存储器、用于储存程序码的指令存储器,以及处理单元。在操作期间,微处理器112可以分配一个或多个处理器核心来运作快闪存储器转换层(flash translation layer,FTL)相关的执行绪(thread),以进行关于地址映射、垃圾回收和耗损平衡等操作。例如,可以在一个或多个处理器核心上,执行前述的局部清理操作。又或者是,可以在一个处理器核心上,运作关于有效性检查程序的执行绪,同时在另一个处理器核心上,运作关于页清理程序的执行绪。在部分实施例中,存储器控制器110还可能包含专用硬件,即有效性位元映射硬件引擎170,以执行有效性检查程序。有效性位元映射硬件引擎170可透过查询F2H和H2F地址转换表,检查分区搜寻范围内的页有效性,并且如上所述将有效页资讯储存在缓冲器中。
图8绘示了在本发明另一实施例中的进行局部清理操作的流程。如图所示,在微处理器112的处理器核心上运作的FTL执行绪,可以发起局部清理操作。在步骤201,FTL执行绪可以将有效性检查程序的任务,分配给微处理器112内部的另一个处理器核心或者是有效性位元映射硬件引擎170,从而逐页进行有效性检查。
在以上实施例中,局部清理操作和相应的有效性检查程序以及页清理程序被描述为应用在NV存储器120的页与区块。然而,根据本发明不同各种实施例,本发明也可以针对NV存储器120的超级页(super page)和超级区块(super block)进行局部清理操作,以及相应的有效性检查程序与页清理程序。其中,一个超级页可以由不同NV存储器元件122_1~122_N上的数个页所组成,而一个超级区块可能由不同NV存储器元件122_1~122_N上的数个区块所组成。此外,存储器控制器110可以同时对不同的NV存储器元件122_1~122_N分别进行多个局部清理操作。因此,不同NV存储器元件122_1~122_N上的有效性检查程序和页清理程序可以分别具有不同的进度。
总结来说,本发明提供了一种进行垃圾回收操作的方法。本发明的实施例以多次局部清理操作来实现垃圾回收操作。这些局部清理操作与主机写入操作交错地进行。在每次局部清理操作中,执行有效性检查程序以检查来源区块中的部分页的有效性,并且执行页清理程序以读取在有效性检查程序中被发现且确认的有效页的数据。另外,本发明也允许页清理程序的进度与有效性检查程序的进度不同。并且,当已发现且确认的有效页数量低于预期(即,有效页数低于(RemainVP+C)),则结束局部清理操作,使得存储器控制器不会卡在垃圾回收操作上,而是转而进行主机写入操作。并期待有效性检查程序能够在下一个分区搜寻范围内,发现更多的有效页,从而弥补有效页的匮乏。有鉴于此,本发明避免了主机写入操作因寻找有效页而延迟,导致系统性能下降的问题。
本发明的实施例可使用硬件、软件、固件以及其相关结合来完成。藉由适当之一指令执行系统,可使用储存于一存储器中的软件或固件来实作本发明的实施例。就硬件而言,则是可应用下列任一技术或其相关结合来完成:具有可根据数据信号执行逻辑功能之逻辑闸的一个别运算逻辑、具有合适的组合逻辑闸之一特定应用集成电路(applicationspecific integrated circuit,ASIC)、可程序闸阵列(programmable gate array,PGA)或一现场可程序闸阵列(field programmable gate array,FPGA)等。
说明书内的流程图中的流程和方块示出了基于本发明的各种实施例的系统、方法和电脑软体产品所能实现的架构,功能和操作。在这方面,流程图或功能方块图中的每个方块可以代表程序码的模组,区段或者是部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。另外,功能方块图以及/或流程图中的每个方块,以及方块的组合,基本上可以由执行指定功能或动作的专用硬件系统来实现,或专用硬件和电脑程序指令的组合来实现。这些电脑程序指令还可以存储在电脑可读媒体中,该媒体可以使电脑或其他可编程数据处理装置以特定方式工作,使得存储在电脑可读媒体中的指令,实现流程图以及/或功能方块图中的方块所指定的功能/动作。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (17)
1.权利要求一种对一来源区块进行一垃圾回收操作的方法,包含:
在一系列的主机写入操作期间,进行多个局部清理操作,每个局部清理操作包含:
在该来源区块的一分区搜寻范围内执行一有效性检查程序,以获得一有效页资讯;以及
根据该有效页资讯与一目标清理页数量,执行一页清理程序,以读取该有效页资讯所指出的一个或多个有效页。
2.如权利要求1所述的方法,其特征在于,另包含:
决定一主机对垃圾回收操作的写入比例,其代表基于主机命令的使用者数据的一写入量与基于该垃圾回收操作的有效数据的一写入量之间的比例;
根据该主机对垃圾回收操作的写入比例,决定该目标清理页数量;以及
根据该目标清理页数量、该来源区块的一页总数、该来源区块的一有效页总数,决定该分区搜寻范围。
3.如权利要求1所述的方法,其特征在于,执行该有效性检查程序的步骤包含:
将该分区搜寻范围内每个页的有效性,记录到一有效性位元映射表(validitybitmap)中。
4.如权利要求1所述的方法,其特征在于,执行该有效性检查程序的步骤包含:
将该分区搜寻范围内每个有效页的地址,记录到一先进先出(first in-first out,FIFO)缓冲器中。
5.如权利要求1所述的方法,其特征在于,执行该页清理程序的步骤包含:
如果在该页清理程序中所读取到的有效页数量,与该目标清理页数量和一剩余清理页数量两者的总和相同,则结束该页清理程序。
6.如权利要求5所述的方法,其特征在于,另包含:
在该页清理程序结束后,将该剩余清理页数量更新成零。
7.如权利要求1所述的方法,其特征在于,中执行该页清理程序的步骤包含:
如果在该页清理程序中所读取到的有效页数量,小于该目标清理页数量和一剩余清理页数量两者的总和,并且该分区搜寻范围内的所有有效页皆已被读取,则结束该页清理程序。
8.如权利要求7所述的方法,其特征在于,另包含:
在该页清理程序结束后,根据该剩余清理页数量、该目标清理页数量,以及在已结束的该页清理程序中所读取的有效页数,更新该剩余清理页数量。
9.一种用于控制一快闪存储器并对该快闪存储器上的一来源区块进行一垃圾回收操作的控制器,包含:
一储存单元,用于储存资讯;以及
一处理单元,用于执行一程序码,并参考该快闪存储器或该储存单元中储存的资讯,进行以下操作:
在一系列的主机写入操作期间,进行多个局部清理操作,每个局部清理操作包含:
在该来源区块的一分区搜寻范围内执行一有效性检查程序,以获得一有效页资讯;以及
根据该有效页资讯与一目标清理页数量,执行一页清理程序,以读取该有效页资讯所指出的一个或多个有效页。
10.如权利要求9所述的控制器,其特征在于,该处理单元执行该程序码以进行以下操作:
决定一主机对垃圾回收操作的写入比例,其代表基于主机命令的使用者数据的一写入量与基于该垃圾回收操作的有效数据的一写入量之间的比例;
根据该主机对垃圾回收操作的写入比例,决定该目标清理页数量;以及
根据该目标清理页数量、该来源区块的一页总数、该来源区块的一有效页总数,决定该分区搜寻范围。
11.如权利要求9所述的控制器,其特征在于,该处理单元执行该程序码以进行以下操作:
将该分区搜寻范围内每个页的有效性,记录到一有效性位元映射表(validitybitmap)中。
12.如权利要求9所述的控制器,其特征在于,该处理单元执行该程序码以进行以下操作:
将该分区搜寻范围内每个有效页的地址,记录到一先进先出(first in-first out,FIFO)缓冲器中。
13.如权利要求9所述的控制器,其特征在于,该处理单元执行该程序码以进行以下操作:
如果在该页清理程序中所读取到的有效页数量,与该目标清理页数量和一剩余清理页数量两者的总和相同,则结束该页清理程序。
14.如权利要求13所述的控制器,其特征在于,该处理单元执行该程序码以进行以下操作:
在该页清理程序结束后,将该剩余清理页数量更新成零。
15.如权利要求9所述的控制器,其特征在于,该处理单元执行该程序码以进行以下操作:
如果在该页清理程序中所读取到的有效页数量,小于该目标清理页数量和一剩余清理页数量两者的总和,并且该分区搜寻范围内的所有有效页皆已被读取,则结束该页清理程序。
16.如权利要求15所述的控制器,其特征在于,该处理单元执行该程序码以进行以下操作:
在该页清理程序结束后,根据该剩余清理页数量、该目标清理页数量,以及在已结束的该页清理程序中所读取的有效页数,更新该剩余清理页数量。
17.一种储存系统,包含:
一快闪存储器;以及
一控制器,用于控制该快闪存储器并对该快闪存储器上的一来源区块进行一垃圾回收操作,该控制器用于:
在一系列的主机写入操作期间,进行多个局部清理操作,每个局部清理操作包含:
在该来源区块的一分区搜寻范围内执行一有效性检查程序,以获得一有效页资讯;以及
根据该有效页资讯与一目标清理页数量,执行一页清理程序,以读取该有效页资讯所指出的一个或多个有效页。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/239,669 | 2021-04-25 | ||
US17/239,669 US11580018B2 (en) | 2021-04-25 | 2021-04-25 | Method and apparatus for page validity management and related storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237820A true CN115237820A (zh) | 2022-10-25 |
Family
ID=83668240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210010570.3A Pending CN115237820A (zh) | 2021-04-25 | 2022-01-05 | 以局部清理操作来进行垃圾回收的方法与相关控制器和储存系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11580018B2 (zh) |
CN (1) | CN115237820A (zh) |
TW (1) | TWI792534B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12019878B2 (en) * | 2021-11-22 | 2024-06-25 | Western Digital Technologies, Inc. | Pre-validation of blocks for garbage collection |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576330B (zh) | 2009-06-12 | 2015-01-28 | 提琴存储器公司 | 具有持久化无用单元收集机制的存储系统 |
US8782327B1 (en) * | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
KR102025263B1 (ko) * | 2012-10-05 | 2019-09-25 | 삼성전자주식회사 | 메모리 시스템 및 그것의 읽기 교정 방법 |
US9645924B2 (en) | 2013-12-16 | 2017-05-09 | International Business Machines Corporation | Garbage collection scaling |
TWI548989B (zh) | 2014-03-19 | 2016-09-11 | 宏達國際電子股份有限公司 | 行動電子裝置與清理記憶區塊的方法 |
US9875039B2 (en) * | 2014-09-30 | 2018-01-23 | Sandisk Technologies Llc | Method and apparatus for wear-leveling non-volatile memory |
US10360144B2 (en) * | 2015-02-27 | 2019-07-23 | Hitachi, Ltd. | Storage apparatus and non-volatile memory device including a controller to selectively compress data based on an update frequency level |
EP3350703A1 (en) | 2015-10-19 | 2018-07-25 | Huawei Technologies Co., Ltd. | Method and device for determination of garbage collector thread number and activity management in log-structured file systems |
CN110580228A (zh) | 2018-06-11 | 2019-12-17 | 北京忆恒创源科技有限公司 | 去分配命令处理方法及其存储设备 |
KR102512727B1 (ko) * | 2017-12-22 | 2023-03-22 | 삼성전자주식회사 | 가비지 컬렉션을 수행하는 스토리지 장치, 및 스토리지 장치의 가비지 컬렉션 방법 |
KR102671743B1 (ko) * | 2019-05-31 | 2024-06-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2021
- 2021-04-25 US US17/239,669 patent/US11580018B2/en active Active
- 2021-09-06 TW TW110132998A patent/TWI792534B/zh active
-
2022
- 2022-01-05 CN CN202210010570.3A patent/CN115237820A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI792534B (zh) | 2023-02-11 |
US11580018B2 (en) | 2023-02-14 |
TW202242664A (zh) | 2022-11-01 |
US20220342811A1 (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783004B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
US10007468B2 (en) | Method and apparatus for erasing data in data section in flash memory | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US8166233B2 (en) | Garbage collection for solid state disks | |
US20180373428A1 (en) | Methods and systems for managing data migration in solid state non-volatile memory | |
US7979626B2 (en) | Flash recovery employing transaction log | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US10372619B2 (en) | Data backup method, data recovery method and storage controller | |
US10782909B2 (en) | Data storage device including shared memory area and dedicated memory area | |
US10866751B2 (en) | Method for managing flash memory module and associated flash memory controller | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
KR20160044989A (ko) | 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법 | |
CN112306898A (zh) | 存储设备、其操作方法及包括其的电子设备 | |
CN115114180A (zh) | 在快闪存储器中进行耗损平衡操作的方法和相关控制器以及储存系统 | |
CN115237820A (zh) | 以局部清理操作来进行垃圾回收的方法与相关控制器和储存系统 | |
CN111767007A (zh) | 用于闪存的写入管理机制 | |
CN112099731B (zh) | 数据储存装置与数据处理方法 | |
CN110162493B (zh) | 存储器管理方法及使用所述方法的储存控制器 | |
US20240020226A1 (en) | Data storage device, memory controller therefor, and operating method thereof | |
CN117908761A (zh) | 数据储存装置与写入缓存器管理方法 | |
KR101791855B1 (ko) | 스토리지 장치 및 이의 공간 재수거 방법 | |
CN117950573A (zh) | 数据储存装置与写入缓存器管理方法 | |
CN118051167A (zh) | 存储器控制器及其操作方法、存储器系统和电子设备 | |
CN114664337A (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 |