CN109144885A - 固态存储设备的垃圾回收方法与固态存储设备 - Google Patents

固态存储设备的垃圾回收方法与固态存储设备 Download PDF

Info

Publication number
CN109144885A
CN109144885A CN201710499439.7A CN201710499439A CN109144885A CN 109144885 A CN109144885 A CN 109144885A CN 201710499439 A CN201710499439 A CN 201710499439A CN 109144885 A CN109144885 A CN 109144885A
Authority
CN
China
Prior art keywords
physical block
blocks
data
dirty
free
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.)
Granted
Application number
CN201710499439.7A
Other languages
English (en)
Other versions
CN109144885B (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.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze Technology Co Ltd
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 Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201710499439.7A priority Critical patent/CN109144885B/zh
Publication of CN109144885A publication Critical patent/CN109144885A/zh
Application granted granted Critical
Publication of CN109144885B publication Critical patent/CN109144885B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures

Landscapes

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

Abstract

本申请公开了固态存储设备的数据清理方法及其存储介质。数据清理方法包括如下步骤:将有效数据量或有效数据量占比大于第一阈值的物理块记录在低效脏物理块集合中,将有效数据量或有效数据量占比小于第二阈值的物理块记录在高效脏物理块集合中,将尚未被使用的物理块记录在空闲物理块集合中;其中,第一阈值大于或等于第二阈值。

Description

固态存储设备的垃圾回收方法与固态存储设备
技术领域
本申请涉及存储设备技术领域,尤其涉及固态存储设备的数据清理方法及其存储介质。
背景技术
图1展示了存储设备的框图。固态存储设备100同主机相耦合,用于为主机提供存储能力。主机同固态存储设备100之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(SmallComputer System Interface,小型计算机系统接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal SerialBus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备100。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备100包括接口110、控制部件120、一个或多个NVM芯片130以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)140。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)等是常见的NVM。
接口110可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件120用于控制在接口110、NVM芯片130以及DRAM 140之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件120可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件120可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件120也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件120的硬件来处理IO(Input/Output)命令。控制部件120还可以耦合到DRAM 140,并可访问DRAM 140的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件120包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片130,并以遵循NVM芯片130的接口协议的方式向NVM芯片130发出命令,以操作NVM芯片130,并接收从NVM芯片130输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
存储器目标(Target)是NAND闪存封装内的共享芯片使能(CE,Chip Enable)信号的一个或多个逻辑单元(Logic Unit)。每个逻辑单元具有逻辑单元号(LUN,Logic UnitNumber)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold.ashx获得的“Open NAND Flash Interface Specification(Revision 3.0)”中,提供了关于目标(target)、逻辑单元、LUN、平面(Plane)的含义,其为现有技术的一部分。
存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。块包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
在固态存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在现有技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。
FTL表包括多个FTL表条目(或称表项)。在一个实施例中,每个FTL表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一个例子中,每个FTL表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一个实施例中,每个FTL表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一个实施例中,FTL表中记录逻辑块地址与物理块地址的映射关系,和/或逻辑页地址与物理页地址的映射关系。
固态存储设备中包括多个NVM芯片。每个NVM芯片包括一个或多个管芯(DIE)或逻辑单元(LUN,Logic UNit)。管芯或逻辑单元之间可以并行响应读写操作。在同一管芯或逻辑单元上的多个读、写或擦除操作顺序执行。
图2示出了大块的示意图。大块包括来自多个逻辑单元(称为逻辑单元组)的每个的物理块。优选的,每个逻辑单元为大块提供一个物理块。作为举例,在每16个逻辑单元(LUN)上构造大块。每个大块包括16个物理块,来自16个逻辑单元(LUN)的每一个。在图2的例子中,大块0包括来自16个逻辑单元(LUN)的每个的物理块0,大块1包括来自每个逻辑单元(LUN)的物理块1。也可以有多种其他方式来构造大块。
作为一种可选的方式,在大块中构造页条带,每个逻辑单元(LUN)内相同物理地址的物理页构成了“页条带”。图2中,物理页0-0、物理页0-1……与物理页0-x构成了页条带0,其中物理页0-0、物理页0-1……物理页0-14用于存储用户数据,而物理页0-15用于存储根据条带内的所有用户数据计算得到的校验数据。类似地,图2中,物理页2-0、物理页2-1……与物理页2-x构成了页条带2。可选地,用于存储校验数据的物理页可以位于页条带中的任意位置。
当逻辑页被重复写入数据,FTL表条目中记录逻辑页地址与最新的物理页地址的对应关系,而曾经被写入数据但不再被引用(例如,FTL表中没有记录)的物理页地址中记录的数据成为“垃圾”(数据)。将已经被写入数据,且被引用(例如,在FTL表中有记录)的数据称为有效数据,而将“垃圾”称为脏数据。将含有脏数据的物理块称为“脏物理块”,将未被写入数据的物理块称为“空闲物理块”。
固态存储设备执行垃圾回收(GC)过程以回收无效数据。图3展示了垃圾回收过程的示意图。物理块0与物理块1被写入了数据。物理块0的物理页210、212、214和216在FTL表中没有记录,其上的数据是脏数据。物理块1的物理页220、222、224与226上的数据是脏数据。图3中,用网格指示的物理页所容纳的数据是脏数据,而用空白方框指示的物理页所容纳的数据是有效数据。
为进行垃圾回收,扫描NVM芯片的物理块(例如,物理块0与物理块1),将其中的有效数据读出并写入空闲物理块2,以及在FTL表中记录有效数据的物理页地址的变化。在所有的有效数据都搬移到物理块2后,擦除被扫描的物理块0与物理块1,从而使物理块0与物理块1变为空闲物理块。
固态存储设备还实施磨损均衡过程,以使固态存储设备的多个NVM芯片的多个物理块经历大体上相同的擦除次数。
图4展示了垃圾回收方法的示意图。
在脏物理块集合中记录固态存储设备的部分或所有NVM芯片的脏物理块。在空闲物理块集合中记录固态存储设备的部分或所有NVM芯片的空闲物理块。
为实施垃圾回收,“GC模块”(例如,实现于控制部件120或其中的CPU或控制器)从脏物理块集合中获取脏物理块之一,从空闲物理块集合中获取空闲物理块之一。扫描脏物理块,将其中的有效数据写入空闲物理块。将获取的脏物理块擦除,并在空闲物理块集合中记录擦除后的物理块。
脏物理块集合和空闲物理块集合可以是链表、线性表或其他用于表示集合的数据结构。在集合中记录物理块的地址,以访问物理块。
发明内容
由于实施了垃圾回收与磨损均衡过程,数据被反复写入NVM芯片,增加了数据写入量,降低了固态存储设备的寿命。以及向NVM写入数据的过程占用了固态存储设备的写带宽,并会影响用户体验到的性能。
本申请的实施例的目的包括但不限于,改进了垃圾回收过程的处理方法,优化了脏物理块的管理、搜索和/或选取过程,和/或降低了垃圾回收过程对用户写入过程的影响,从而提升了固态存储设备的性能,改善了用户体验。
根据本申请的第一方面,提供了根据本申请第一方面的第一固态存储设备的数据清理方法,包括如下步骤:
将有效数据量或有效数据量占比大于第一阈值的物理块记录在低效脏物理块集合中,将有效数据量或有效数据量占比小于第二阈值的物理块记录在高效脏物理块集合中,将尚未被使用的物理块记录在空闲物理块集合中;
其中,第一阈值大于或等于第二阈值。
根据本申请的第一方面的第一固态存储设备的数据清理方法,提供了根据本申请第一方面的第二固态存储设备的数据清理方法,其中,从高效脏物理块集合或低效脏物理块集合中获取脏物理块,从空闲物理块集合中获取空闲物理块;
获取脏物理块中的有效数据;
将有效数据写入空闲物理块;
擦除脏物理块;
将被擦除的脏物理块记录在空闲物理块集合中。
根据本申请的第一方面的第二固态存储设备的数据清理方法,提供了根据本申请第一方面的第三固态存储设备的数据清理方法,其中,轮流从高效脏物理块集合和低效脏物理块集合中获取脏物理块,每次从高效脏物理块集合中获取第一数量的脏物理块,每次从低效脏物理块集合中获取第二数量的脏物理块;其中,第一数量与第二数量相同或不同,第一数量和第二数量为正整数。
根据本申请的第一方面的第二或三固态存储设备的数据清理方法,提供了根据本申请第一方面的第四固态存储设备的数据清理方法,其中,若指定时间期间内从高效脏物理块集合中回收的有效数据量超过第三阈值,停止从高效脏物理块集合中获取脏物理块。
根据本申请的第一方面的第二至第四固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第五固态存储设备的数据清理方法,其中,若指定时间期间内从低效脏物理块集合中回收的有效数据量超过第四阈值,停止从低效脏物理块集合中获取脏物理块。
根据本申请的第一方面的第二至第五固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第六固态存储设备的数据清理方法,其中,若从低效脏物理块集合中获取的脏物理块中的有效数据量或有效数据量占比位于第一阈值与第五阈值之间,将从低效脏物理块集合中获取的脏物理块中的有效数据写入空闲物理块;其中,第五阈值大于第一阈值。
根据本申请的第一方面的第六固态存储设备的数据清理方法,提供了根据本申请第一方面的第七固态存储设备的数据清理方法,其中,若从低效脏物理块集合中获取的脏物理块中的有效数据量或有效数据量占比大于第五阈值,将从低效脏物理块集合中获取的脏物理块归还低效脏物理块集合。
根据本申请的第一方面的第二至第七固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第八固态存储设备的数据清理方法,其中,若从高效脏物理块集合中获取的脏物理块中的有效数据量或有效数据量占比位于第六阈值与第二阈值之间,将从高效脏物理块集合中获取的脏物理块中的有效数据写入空闲物理块;其中,第二阈值大于第六阈值。
根据本申请的第一方面的第八固态存储设备的数据清理方法,提供了根据本申请第一方面的第九固态存储设备的数据清理方法,其中,若从高效脏物理块集合中获取的脏物理块中的有效数据量或有效数据量占比小于第六阈值,将从高效脏物理块集合中获取的脏物理块归还高效脏物理块集合。
根据本申请的第一方面的第二至第九固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第十固态存储设备的数据清理方法,其中,高效脏物理块集合的元素是排序的,低效脏物理块集合的元素是排序的,按顺序从高效脏物理块集合或低效脏物理块集合获取排序最前的脏物理块。
根据本申请的第一方面的第七或第九固态存储设备的数据清理方法,提供了根据本申请第一方面的第十一固态存储设备的数据清理方法,其中,将脏物理块归还高效脏物理块集合或低效脏物理块集合时,被归还的脏物理块被置于高效脏物理块集合或低效脏物理块集合中排序最后的位置。
根据本申请的第一方面的第十或第十一固态存储设备的数据清理方法,提供了根据本申请第一方面的第十二固态存储设备的数据清理方法,其中,若从低效脏物理块集合获取的脏物理块的被擦除次数小于平均擦除次数或最大擦除次数,且被擦除次数与平均擦除次数或最大擦除次数的差的绝对值大于第七阈值,则将从低效脏物理块集合获取的脏物理块的有效数据写入空闲物理块;
否则,将从低效脏物理块集合获取的脏物理块添加到低效脏物理块集合中排序最后的位置。
根据本申请的第一方面的第十二固态存储设备的数据清理方法,提供了根据本申请第一方面的第十三固态存储设备的数据清理方法,其中,若从高效脏物理块集合获取的脏物理块的被擦除次数小于平均擦除次数或最大擦除次数,且被擦除次数与平均擦除次数或最大擦除次数的差的绝对值大于第七阈值,则将从高效脏物理块集合获取的脏物理块的有效数据写入空闲物理块;否则,将从高效脏物理块集合获取的脏物理块添加到高效脏物理块集合中排序最后的位置。
根据本申请的第一方面的第十二固态存储设备的数据清理方法,提供了根据本申请第一方面的第十四固态存储设备的数据清理方法,其中,对于从高效脏物理块集合获取的脏物理块,直接将从高效脏物理块集合获取的脏物理块的有效数据写入空闲物理块。
根据本申请的第一方面的第十至第十四固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第十五固态存储设备的数据清理方法,其中,当低效脏物理块集合为空或空闲物理块集合中的物理块的数量低于第八阈值时,开始从高效脏物理块集合获取脏物理块。
根据本申请的第一方面的第二至第十五固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第十六固态存储设备的数据清理方法,其中,从空闲物理块集合中获取被擦除次数最少的空闲物理块。
根据本申请的第一方面的第一至第十六固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第十七固态存储设备的数据清理方法,其中,若低效脏物理块集合内的脏物理块的有效数据量或有效数据量占比小于第一阈值,则将低效脏物理块集合内有效数据量或有效数据量占比小于第一阈值的脏物理块从低效脏物理块集合移除,并记录在高效脏物理块集合中。
根据本申请的第一方面的第二固态存储设备的数据清理方法,提供了根据本申请第一方面的第十八固态存储设备的数据清理方法,其中,依据使用频率将脏物理块中的有效数据识别为冷数据或热数据;空闲物理块包括第一空闲物理块和第二空闲物理块,第一空闲物理块的被擦除次数小于第九阈值,第二空闲物理块的被擦除次数大于第九阈值;
将脏物理块中的热数据写入第一空闲物理块;
将脏物理块中的冷数据写入第二空闲物理块。
根据本申请的第一方面的第一至第十八固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第十九固态存储设备的数据清理方法,其中,空闲物理块集合包括第一空闲物理块集合和第二空闲物理块集合,第一空闲物理块集合用于记录热数据,第二空闲物理块集合用于记录冷数据;
为第一空闲物理块集合提供物理块的第一非易失性存储器芯片与为第二空闲物理块集合提供物理块的第二非易失性存储器芯片无关。
根据本申请的第一方面的第十九固态存储设备的数据清理方法,提供了根据本申请第一方面的第二十固态存储设备的数据清理方法,其中,将第一空闲物理块集合和第二空闲物理块集合调换,从而使第一空闲物理块集合用于记录热数据,第二空闲物理块集合用于记录冷数据。
根据本申请的第一方面的第二固态存储设备的数据清理方法,提供了根据本申请第一方面的第二十一固态存储设备的数据清理方法,其中,依据使用频率将脏物理块中的有效数据识别为冷数据或热数据;空闲物理块包括第一空闲物理块和第二空闲物理块,第一空闲物理块的被擦除次数小于第九阈值,第二空闲物理块的被擦除次数大于第九阈值;
将脏物理块中的热数据写入第二空闲物理块;
将脏物理块中的冷数据写入第一空闲物理块。
根据本申请的第一方面的第二固态存储设备的数据清理方法,提供了根据本申请第一方面的第二十二固态存储设备的数据清理方法,其中,依据写命令流的来源将数据识别为冷数据或热数据;将垃圾回收过程回收的数据识别为冷数据,将用户写入的数据识别为热数据;
空闲物理块包括第三空闲物理块和第四空闲物理块,第三空闲物理块的被擦除次数小于第九阈值,第四空闲物理块的被擦除次数大于第九阈值;
将热数据写入第三空闲物理块;
将冷数据写入第四空闲物理块。
根据本申请的第一方面的第二固态存储设备的数据清理方法,提供了根据本申请第一方面的第二十三固态存储设备的数据清理方法,其中,依据写命令流的来源将数据识别为冷数据或热数据;写命令流按照使用频率分组,空闲物理块集合按照擦除次数分组,用于分组的使用频率范围与用于分组的擦除次数范围相对应,使用频率越高的写命令流的数据被记录在擦除次数越低的空闲物理块集合中。
根据本申请的第一方面的第二至第二十三固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第二十四固态存储设备的数据清理方法,其中,高效脏物理块集合包括第一子集合、第二子集合和第三子集合;
被擦除次数小于平均擦除次数或最大擦除次数,且被擦除次数与平均擦除次数或最大擦除次数的差的绝对值大于第十阈值的物理块被记录在第一子集合中;
被擦除次数小于平均擦除次数或最大擦除次数,且被擦除次数与平均擦除次数或最大擦除次数的差的绝对值小于第十阈值的物理块被记录在第二子集合中;
被擦除次数大于平均擦除次数或最大擦除次数,且被擦除次数与平均擦除次数或最大擦除次数的差的绝对值大于第十阈值的物理块被记录在第三子集合中。
根据本申请的第一方面的第二十四固态存储设备的数据清理方法,提供了根据本申请第一方面的第二十五固态存储设备的数据清理方法,其中,其中,第一子集合、第二子集合和第三子集合各自具有优先级,按照优先级从第一子集合、第二子集合和第三子集合中获取脏物理块。
根据本申请的第一方面的第二十五固态存储设备的数据清理方法,提供了根据本申请第一方面的第二十六固态存储设备的数据清理方法,其中,识别来自第二子集合和第三子集合的脏物理块中的第二有效数据量或第二有效数据量占比;
若第二有效数据量或第二有效数据量占比高于第十一阈值,则将来自第二子集合和第三子集合的脏物理块放回对应的子集合。
根据本申请的第一方面的第二十六固态存储设备的数据清理方法,提供了根据本申请第一方面的第二十七固态存储设备的数据清理方法,其中,识别来自第一子集合的脏物理块中的第三有效数据量或第三有效数据量占比;
若第三有效数据量或第三有效数据量占比高于第十二阈值,则将脏物理块放回第一子集合。
根据本申请的第一方面的第二十四至第二十七固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第二十八固态存储设备的数据清理方法,其中,高效脏物理块集合的子集合中的元素是排序的,按顺序从高效脏物理块集合的子集合获取排序最前的脏物理块。
根据本申请的第一方面的第二至第二十三固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第二十九固态存储设备的数据清理方法,其中,高效脏物理块集合包括多个子集合,每个子集合与一个被擦除次数范围对应。
根据本申请的第一方面的第二至第二十三固态存储设备的数据清理方法之一,提供了根据本申请第一方面的第三十固态存储设备的数据清理方法,其中,低效脏物理块集合包括多个具有不同优先级的子集合;按照优先级依次从低效脏物理块集合的子集合中获取脏物理块;
其中,优先级是脏物理块的有效数据量和脏物理块的擦除次数的函数。
根据本申请的第二方面,提供了根据本申请第二方面的第一数据清理方法,包括:
从第一脏物理块集合或第二脏物理块集合中获取脏物理块;
获取脏物理块中的有效数据;
将有效数据写入从空闲物理块集合获取的空闲物理块;
擦除脏物理块;
将被擦除的脏物理块记录在空闲物理块集合中。
根据本申请的第二方面的第一数据清理方法,提供了根据本申请第二方面的第二数据清理方法,其中,第一脏物理块集合中记录有效数据量或有效数据量占比大于第一阈值的物理块;第二脏物理块集合中记录有效数据量或有效数据量占比小于第二阈值的物理块;第一阈值大于或等于第二阈值。
根据本申请的第二方面的第一或第二数据清理方法,提供了根据本申请第二方面的第三数据清理方法,轮流从第一脏物理块集合和第二脏物理块集合中获取脏物理块。
根据本申请的第二方面的第三数据清理方法,提供了根据本申请第二方面的第四数据清理方法,对于从第一低脏物理块集合获取的第一脏物理块,在指定条件满足时,才将第一脏物理块的有效数据写入空闲物理块;
对于从第二脏物理块集合获取的第二脏物理块,直接将第二脏物理块的有效数据写入空闲物理块。
根据本申请的第二方面的第四数据清理方法,提供了根据本申请第二方面的第五数据清理方法,在指定条件不满足时,将获取的第一脏物理块放回第一低脏物理块集合。
根据本申请的第三方面,提供了根据本申请第三方面的第一数据清理方法,包括如下步骤:
将有效数据量或有效数据量占比大于第一阈值的大块记录在第一脏大块集合中,将有效数据量或有效数据量占比小于第二阈值的大块记录在第二脏大块集合中,将尚未被使用的大块记录在空闲大块集合中;
其中,第一阈值大于或等于第二阈值。
根据本申请的第三方面的第一数据清理方法,提供了根据本申请第一方面的第二数据清理方法,其中,从第一脏大块集合或第二脏大块集合中获取脏大块,从空闲大块集合中获取空闲大块;
获取脏大块中的有效数据;
将有效数据写入空闲大块;
擦除脏大块;
将被擦除的脏大块记录在空闲大块集合中。
根据本申请的第三方面的第一或第二数据清理方法,提供了根据本申请第一方面的第三数据清理方法,其中,轮流从第一脏大块集合和第二脏大块集合中获取脏大块。
根据本申请的第四方面,提供了根据本申请第四方面的第一固态存储设备,包括控制部件与非易失性存储器(NVM)芯片,控制部件用于执行上述的数据清理方法。
根据本申请的第五方面,提供了根据本申请第五方面的第一存储了程序的存储介质,响应于程序被载入处理器运行,程序使处理器执行上述的数据清理方法。
本申请的技术方案获得的有益效果如下:
(1)本申请的实施例根据脏物理块的有效数据量或有效数据量占比将脏物理块放置在低效脏物理块集合和高效脏物理块集合中,将脏物理块分类,使得不同类型的脏物理块被回收的几率有所不同,更好地调整垃圾回收与磨损之间的均衡性。
(2)本申请的实施例按照使用频率为数据分类,并写入相应的空闲物理块或空闲物理块集合,使空闲物理块的擦除次数得到均衡的控制,有效控制NVM芯片的数据写入量,提高了固态存储设备的性能。
(3)本申请的实施例中高效脏物理块集合和/或低效脏物理块集合中设置了各种优先级的子集合,并按照优先级获取脏物理块,使得不同类型的脏物理块得到适合的回收几率,更好地调整垃圾回收与磨损之间的均衡性。
(4)本申请的实施例按照大块进行垃圾回收,降低了垃圾回收过程的复杂度。
(5)本申请的实施例通过为各个命名空间执行垃圾回收,避免了一个命名空间中的垃圾回收操作对其他命名空间的用户体验的影响,有利于保证服务质量。
(6)本申请的实施例轮流从低效脏物理块集合和高效脏物理块集合中获取脏物理块进行垃圾回收,有利于将单位时间内因垃圾回收过程引入的写入数据量控制在合理水平,避免过多的回收数据对用户性能体验造成较大影响。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为存储设备的框图。
图2为大块的示意图。
图3为现有技术的垃圾回收过程的示意图。
图4为现有技术的垃圾回收方法的示意图。
图5为根据本申请实施例一的固态存储设备的垃圾回收系统的示意图。
图6为根据本申请实施例一的固态存储设备的垃圾回收方法的流程图。
图7为根据本申请实施例二的固态存储设备的垃圾回收方法的流程图。
图8为根据本申请实施例二的空闲物理块集合的示意图。
图9为根据本申请实施例三的固态存储设备的垃圾回收系统的示意图。
图10为根据本申请实施例四的固态存储设备的垃圾回收系统的示意图。
图11为根据本申请实施例五的固态存储设备的垃圾回收系统的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
图5为根据本申请实施例一的固态存储设备的垃圾回收系统的示意图。图6为根据本申请实施例一的固态存储设备的垃圾回收方法的流程图。
如图5所示,实施例一的垃圾回收系统包括低效脏物理块集合510、高效脏物理块集合520和空闲物理块集合530。低效脏物理块集合510中记录了有效数据量或有效数据量占比大于第一阈值的物理块,高效脏物理块集合520中记录了有效数据量或有效数据量占比小于第二阈值的物理块,空闲物理块集合530中记录了尚未被使用的物理块。其中,第一阈值大于或等于第二阈值。
作为一个实施例,对于有效数据量占比来说,第一阈值为75%~85%,第二阈值为35%~45%。可选地,第一阈值为80%,第二阈值为40%。
作为另一个实施例,第二阈值等于第一阈值。也就是说,将有效数据量或有效数据量占比大于第一阈值的物理块记录在低效脏物理块集合510,将其他脏物理块记录在高效脏物理块集合520。
作为一个实施例,对于有效数据量来说,第一阈值为FTL表条目对应的7300个数据单元,第二阈值为FTL表条目对应的3600个数据单元。
如图6所示,实施例一的固态存储设备的垃圾回收方法包括如下步骤:从高效脏物理块集合520(也参看图5)或低效脏物理块集合510中获取脏物理块,从空闲物理块集合530中获取空闲物理块(610);获取脏物理块中的有效数据(620);将有效数据写入空闲物理块(630);擦除脏物理块(640);将被擦除的脏物理块记录在空闲物理块集合530中(650)。
可选地,轮流从高效脏物理块集合520与低效脏物理块集合530中获取脏物理块。作为一个例子,从高效脏物理块集合520中获取一个脏物理块并进行垃圾回收,再从低效脏物理块集合510中获取一个脏物理块并进行垃圾回收。作为另一个例子,每次从高效脏物理块集合520或低效脏物理块集合510获取两个或其他数量的脏物理块进行垃圾回收。当然,每次从高效脏物理块集合520和低效脏物理块集合510获取的脏物理块的数量可以相同,也可以不同。
作为又一个例子,为高效脏物理块集合520和低效脏物理块集合510提供回收数据配额。若指定时间期间内(例如100毫秒或1秒)从高效脏物理块集合520中回收的有效数据量超过第三阈值(例如,20MB-2GB),则停止从高效脏物理块集合520中获取脏物理块,而从低效脏物理块集合510中获取脏物理块。
若指定时间期间内从低效脏物理块集合510中回收的有效数据量超过第四阈值(例如,20MB-2GB),则停止从低效脏物理块集合510中获取脏物理块,而从高效脏物理块集合520中获取脏物理块。
为停止从当前脏物理块集合获取脏物理块,要完成对当前脏物理块的垃圾回收,并且将记录的从当前脏物理块集合回收的有效数据量清零。
可选地,对于从低效脏物理块集合510和高效脏物理块集合520中获取的脏物理块,进一步识别其有效数据量或有效数据量占比。
对于从低效脏物理块集合510中获取的脏物理块,如果脏物理块的有效数据量或有效数据量占比位于第一阈值与第五阈值之间,则将从低效脏物理块集合510中获取的脏物理块中的有效数据写入空闲物理块;如果脏物理块中的有效数据量或有效数据量占比大于第五阈值,将从低效脏物理块集合510中获取的脏物理块归还低效脏物理块集合510。
其中,第五阈值大于第一阈值。可选地,有效数据量占比的第五阈值是86%~95%。可选地,第五阈值为90%。
对于从高效脏物理块集合520中获取的脏物理块,如果脏物理块的有效数据量或有效数据量占比位于第六阈值与第二阈值之间,将从高效脏物理块集合520中获取的脏物理块中的有效数据写入空闲物理块;如果脏物理块中的有效数据量或有效数据量占比小于第六阈值,将从高效脏物理块集合520中获取的脏物理块归还高效脏物理块集合520。
其中,第二阈值大于第六阈值。可选地,有效数据量占比的第六阈值是26%~35%。可选地,第六阈值为30%。
作为又一个实施例,高效脏物理块集合520的元素是排序的,低效脏物理块集合510的元素是排序的,按顺序从高效脏物理块集合520或低效脏物理块集合510获取排序最前的脏物理块。
将脏物理块归还高效脏物理块集合520或低效脏物理块集合510时,被归还的脏物理块被置于高效脏物理块集合520或低效脏物理块集合510中排序最后的位置。
在该实施例中,对从低效脏物理块集合510获取的脏物理块,识别其被擦除的次数。若从低效脏物理块集合510获取的脏物理块的被擦除次数小于固态存储设备的多个或全部NVM芯片的物理块的平均擦除次数或最大擦除次数,且被擦除次数与平均擦除次数或最大擦除次数的差的绝对值大于第七阈值(例如,100-150次),则将从低效脏物理块集合510获取的脏物理块的有效数据写入空闲物理块,并回收该脏物理块;否则,将从低效脏物理块集合510获取的脏物理块添加到低效脏物理块集合510中排序最后的位置。
在识别从低效脏物理块集合510获取的脏物理块的被擦除次数的基础上,作为一个实施例,还识别从高效脏物理块集合520获取的脏物理块的被擦除次数。
若从高效脏物理块集合520获取的脏物理块的被擦除次数小于平均擦除次数或最大擦除次数,且被擦除次数与平均擦除次数或最大擦除次数的差的绝对值大于第七阈值,则将从高效脏物理块集合520获取的脏物理块的有效数据写入空闲物理块,并回收该脏物理块;否则,将从高效脏物理块集合520获取的脏物理块添加到高效脏物理块集合520中排序最后的位置。
在识别从低效脏物理块集合510获取的脏物理块的被擦除次数的基础上,作为另一个实施例,对于从高效脏物理块集合520获取的脏物理块,不识别脏物理块的擦除次数,直接将从高效脏物理块集合520获取的脏物理块的有效数据写入空闲物理块,并回收该脏物理块。
作为再一个实施例,仅在低效脏物理块集合510为空,和/或空闲物理块集合530的物理块数量低于第八阈值(例如,100-200个)时,开始从高效脏物理块集合520获取脏物理块并进行垃圾回收。
作为一个实施例,空闲物理块集合530是排序的,例如按物理块被擦除的次数排序。从空闲物理块集合530中获取被擦除次数最少的空闲物理块,并向其写入回收的有效数据。
响应于写入数据或FTL表被更新,被更新的FTL表项的原有物理地址的数据变为脏数据。相应地,脏数据所在的脏物理块的有效数据量也发生变化。若低效脏物理块集合510内的脏物理块的有效数据量或有效数据量占比小于第一阈值,则将低效脏物理块集合510内有效数据量或有效数据量占比小于第一阈值的脏物理块从低效脏物理块集合510移除,并记录在高效脏物理块集合520中。
根据脏物理块的有效数据量或有效数据量占比将脏物理块放置在低效脏物理块集合和高效脏物理块集合中,将脏物理块分类,使得不同类型的脏物理块被回收的几率有所不同,从不同脏物理块集合中获取的脏物理块在进行垃圾回收时产生的写入数据量不同,从而使垃圾回收过程更高效,垃圾回收过程产生的写入数据量更可控。
实施例二
图7为根据本申请实施例二的固态存储设备的垃圾回收方法的流程图。如图7所示,实施例二中,获取待回收的数据(710),然后按照数据类型将待回收数据写入相应的空闲物理块中。
实施例二中,数据被识别为冷数据或热数据。可选地,依照数据被更新的频率,将数据识别为只读数据、冷数据、温数据、热数据等多种类别,其中每个类别中数据被更新的频率依次升高。
作为一个实施例,步骤710中,从低效脏物理块集合和/或从高效脏物理块集合中获取待回收的脏物理块。脏物理块的获取方法请参见实施例一。
获取脏物理块后,扫描脏物理块。扫描时,依据使用频率将脏物理块中的有效数据识别为冷数据或热数据。使用频率低的数据被识别为冷数据,使用频率高的数据被识别为热数据。
作为一个实施例,从空闲物理块集合中获取空闲物理块包括第一空闲物理块和第二空闲物理块,第一空闲物理块的被擦除次数小于第九阈值(例如,空闲物理块的被擦除次数的平均值,或者固态存储中所有物理块的被擦除次数的平均值),第二空闲物理块的被擦除次数大于第九阈值。
作为一个例子,扫描脏物理块后,将脏物理块中的热数据写入第一空闲物理块(720),将脏物理块中的冷数据写入第二空闲物理块(730)。这样的数据分类可实现对多个NVM芯片的物理块的磨损均衡。
作为另一个实施例,如图8所示,空闲物理块集合530包括第一空闲物理块集合5304和第二空闲物理块集合5302,第一空闲物理块集合5304用于记录热数据,第二空闲物理块集合5302用于记录冷数据。返回参看图7,将扫描脏物理块得到的热数据写入从第一空闲物理块集合中获取的物理块(730),将扫描脏物理块得到的冷数据写入从第二空闲物理块集合中获取的物理块(720)。
可选地,为第一空闲物理块集合5304提供物理块的第一非易失性存储器芯片与为第二空闲物理块集合5302提供物理块的第二非易失性存储器芯片无关。例如,固态存储设备中的一些NVM芯片向第一空闲物理块集合5304提供物理块,而另一些或其他NVM芯片向第二空闲物理块集合5302提供物理块。从而,冷数据被写入固态存储设备的一些NVM芯片,而热数据被写入固态存储设备的另一些NVM芯片。
冷数据和热数据被分别写入不同的NVM芯片,在物理位置上彼此分离,由不同的NVM芯片承载冷数据和热数据,使得固态存储设备为冷数据和热数据分配提供了可确保的写入带宽(对应于承载每种写入数据的NVM芯片的数量),从而可减少垃圾回收过程对用户写请求的性能影响。
随着固态存储设备的使用,承载冷数据的物理块将具有相对较高比例的有效数据,以及较少的被擦除次数,而承载热数据的物理块,将具有相对较低比例的有效数据,以及较高的被擦除次数。
可选地,定期地,将第一空闲物理块集合5304和第二空闲物理块集合5302调换,从而使第一空闲物理块集合5304用于记录热数据,第二空闲物理块集合5302用于记录冷数据。定期或不定期地调换用于冷数据的空闲物理块集合与用于热数据的空闲物理块集合,使得空闲物理块获得均衡的被擦除次数。
作为再一个例子,扫描脏物理块后,将脏物理块中的热数据写入从第二空闲物理块集合5302获取的物理块,将脏物理块中的冷数据写入从第一空闲物理块集合5304获取的物理块。这样的数据分类使擦除次数高的物理块尽快磨损,并尽快达到预期寿命(预期擦写次数),并尽快被丢弃/不再使用。以此方式,降低在大块中有两个或更多物理块同时出现故障的几率。
作为又一个实施例,依据写命令流的来源或其他属性识别数据的使用频率,从而将数据识别为冷数据或热数据。
例如,扫描待回收物理块得到的有效数据构成垃圾回收流,作为写命令流的一种。来自用户的写命令构成另一种写命令流。进一步地,来自不同用户、操作系统、命名空间等的写命令分别构成不同的写命令流。
本实施例中,将用户写入的数据识别为使用频率高的数据,作为热数据。而将垃圾回收过程回收的数据识别为使用频率低的数据,作为冷数据。
依然可选地,在申请号为201610836522.4的中国专利申请中,提供了将多种写命令流映射到不同的逻辑单元组的方案。逻辑单元是空闲物理块集合的一个例子。根据待回收的数据所来自的写命令流识别数据的使用频率,并进而选择空闲物理块集合。
作为一个例子,将被使用频率高的数据(例如,用户数据)写入来自擦除次数低的空闲物理块集合的物理块,而将被使用频率低的数据(例如,垃圾回收产生的数据)写入来自擦除次数高的空闲物理块集合的物理块。
作为另一个例子,写命令流按照使用频率分组,空闲物理块集合按照擦除次数分组,用于分组的使用频率范围与用于分组的擦除次数范围相对应(一一对应、一对多或多对一),使用频率越高的写命令流的数据被记录在擦除次数越低的空闲物理块集合中。这一实施方式中,待写入的数据被分成多个组,并记录在相应的空闲物理块集合中,数据得到更细的划分。
通过按照使用频率为数据分类,并写入相应的空闲物理块或空闲物理块集合,使空闲物理块的擦除次数得到均衡的控制。
实施例三
图9为根据本申请实施例三的固态存储设备的垃圾回收系统的示意图。如图9所示,实施例三的垃圾回收系统包括低效脏物理块集合910、高效脏物理块集合920和空闲脏物理块集合930。
如图9所示,高效脏物理块集合920包括多个子集合,例如子集合922、子集合924和子集合926。依据脏物理块的擦除次数,将脏物理块记录在子集合之一中。作为举例,子集合922记录的是擦除次数最低的物理块,子集合924记录的是擦除次数次低的物理块,而子集合926记录的是擦除次数最高的物理块。
作为又一个例子,统计固态存储设备的多个或全部NVM芯片的物理块的平均擦除次数或最大擦除次数。被擦除次数小于平均擦除次数(或最大擦除次数),且被擦除次数与平均擦除次数(或最大擦除次数)的差的绝对值大于第十阈值(例如,180~250次;可选地,200次)的物理块被记录在子集合922中。被擦除次数小于平均擦除次数(或最大擦除次数),且被擦除次数与平均擦除次数(或最大擦除次数)的差的绝对值小于第十阈值的物理块被记录在子集合924中。被擦除次数大于平均擦除次数(或最大擦除次数),且被擦除次数与平均擦除次数(或最大擦除次数)的差的绝对值大于第十阈值的物理块被记录在子集合926中。
可以理解的,随着固态存储设备被使用,物理块的平均擦除次数发生变化,相应地各个脏物理块与平均擦除次数的差也发生变化,相应地,改变记录脏物理块的子集合。
请参考图6,为获取脏物理块以进行垃圾回收,在根据本申请的实施例中,轮流从高效物理块集合的子集合和低效脏物理块集合910中获取脏物理块,扫描获取的脏物理块,将有效数据写入从空闲脏物理块集合930获取的空闲物理块,并擦除获取的脏物理块,在空闲脏物理块集合930中记录被擦除的脏物理块。
可选地,高效脏物理块集合920的子集合中的元素是排序的,按顺序从子集合获取排序最前的脏物理块。
作为一个例子,子集合922、子集合924和子集合926各自具有优先级,当高优先级的子集合为空时,才选取优先级相对较低的子集合,并从优先级相对较低的子集合中获取脏物理块。
例如,子集合922比子集合924具有最高的优先级,子集合924比子集合926具有更高的优先级,依次从子集合922、子集合924和子集合926中获取脏物理块。
可选地,对于来自子集合924和子集合926的脏物理块,识别其有效数据量或有效数据量占比。若有效数据量或有效数据量占比较高,例如高于阈值,则将来自子集合924和子集合926的脏物理块放回对应的子集合。对于来自子集合922的脏物理块,不考虑其中的有效数据量或有效数据占比,都立即进行垃圾回收。
在此基础上,作为另一个例子,识别子集合922的脏物理块中的有效数据量或有效数据量占比。若有效数据量或有效数据量占比较高,例如高于阈值,则将脏物理块放回子集合922。
可选地,只要子集合922中有脏物理块,就从子集合922中获取脏物理块并进行垃圾回收,直到子集合922为空。
作为另一个例子,高效脏物理块集合920包括多个子集合,每个子集合与一个被擦除次数范围对应。
例如,每个子集合对应指定大小的擦除次数范围。子集合的擦除次数范围,是脏物理块的擦除次数的范围,或者脏物理块的擦除次数与平均擦除次数的差的范围。
又例如,各个子集合的擦除次数范围具有相同的大小。例如,子集合922的擦除次数范围是2000-3000次,子集合924的擦除次数范围是1000-2000次,子集合926的擦除次数范围是0-1000次。
在再一个例子中,为远离擦除次数的中央位置(例如,由擦除次数指示的物理块擦除寿命的中值,或擦除次数的平均值)的擦除次数范围,提供更多的子集合。表1和表2分别提供了擦除次数与子集合的对应关系。
表1
表2
擦除次数-平均擦除次数 子集合
<-400 0
-400~-350 1
-350~-300 2
-300~-100 3
-100~100 4
100~300 5
300~350 6
350~400 7
>400 8
在实施例三中,可选地,低效脏物理块集合910的多个子集合是排序的,或者多个子集合各自具有优先级。作为举例,拥有擦除次数低且有效数据量低(或有效数据量占比低)的脏物理块的子集合排序在前,或具有高的优先级。进行垃圾回收时,选取高优先级子集合并从子集合中获取物理块。按照顺序或优先级依次从低效脏物理块集合910的子集合中获取脏物理块。
例如,优先级是脏物理块的有效数据量和脏物理块的擦除次数的函数。根据物理块的擦除次数(或擦除次数与平均擦除次数的差)和有效数据量,得到优先级P,并将物理块放入具有优先级P的子集合中。
可选地,子集合的优先级(记为P)是物理块的擦除次数或擦除次数与平均擦除次数的差(记为PE)、物理块有效数据量(记为V)的函数,即P=f(PE,v)。
在另一个例子中,P=f(PE,v)+r,其中r为随机数。
随着脏物理块被写入数据,以及平均擦除次数的变化,脏物理块所属的子集合也会发生变化。若有变化,则将脏物理块从一个子集合搬移到另一个适配的子集合。
实施例四
图10为根据本申请实施例四的固态存储设备的垃圾回收系统的示意图。如图10所示,实施例四的垃圾回收系统包括第一脏大块集合1020、第二脏大块集合1010和空闲大块集合1030。
第一脏大块集合1020中记录的大块的有效数据量(或有效数据量占比)大于第二脏大块集合1010中记录的大块的有效数据量(或有效数据量占比)。空闲大块集合1030中记录了尚未被使用的大块。
实施例四的固态存储设备的垃圾回收方法包括如下步骤:从第一脏大块集合1020或第二脏大块集合1010中获取脏大块,从空闲大块集合1030中获取空闲大块;获取脏大块中的有效数据;将有效数据写入空闲大块;擦除脏大块;将被擦除的脏大块记录在空闲大块集合1030中。
可选地,轮流从第一脏大块集合1020和第二脏大块集合1010中获取脏大块。
可选地,依据使用频率将脏物理块中的数据识别为冷数据或热数据。由不同的空闲大块分别记录冷数据和热数据。可选地,承载冷数据和热数据的空闲大块彼此无关,从而以大块为粒度聚集冷数据或热数据。
空闲大块集合1030对数据的分类和记录方法、从第一脏大块集合1020和第二脏大块集合1010中获取脏大块的方法等请参考实施例一至实施例三。
实施例四中,以大块为粒度实施垃圾回收,降低了管理垃圾回收过程的复杂度。
实施例五
在虚拟化环境中,固态存储设备服务多个应用。一些存储协议(例如,NVMe协议)中还定义了命名空间(namespace,NS)。大小为n的命名空间是具有从0到n-1的逻辑块地址的逻辑块集合。通过命名空间ID(Namespace ID,NSID)能够唯一标识命名空间。命名空间可以在主机/NVMe控制器之间共享。主机通过单一NVMe控制器能够访问不同命名空间。不同主机也可通过多个NVMe控制器访问相同的命名空间。
在根据本申请的实施例五中,为应用和/或命名空间或其组合提供高效脏物理块集合、低效脏物理块集合。图11为根据本申请实施例五的固态存储设备的垃圾回收系统的示意图。参看图11,为命名空间1110提供高效脏物理块集合1112与低效脏物理块集合1114,而为命名空间1120提供高效脏物理块集合1122与低效脏物理块集合1124。高效脏物理块集合1112与低效脏物理块集合1114仅用于记录承载了向命名空间1110写入的数据的脏物理块,或者记录同向其他命名空间写入的数据相比更多承载了向命名空间1110写入的数据的脏物理块。高效脏物理块集合1122与低效脏物理块集合1124仅用于记录承载了向命名空间1120写入的数据的脏物理块,或者记录同向其他命名空间写入的数据相比更多承载了向命名空间1120写入的数据的脏物理块。
可以理解地,固态存储系统还提供其他的一个或多个命名空间,并为各个命名空间设置记录不同类型数据的多个脏物理块集合。
实施例五中,为执行垃圾回收,对于每个命名空间,轮流从高效物理块集合与低效脏物理块集合中获取脏物理块,扫描获取的脏物理块,将有效数据写入从空闲物理块集合1130获取的空闲物理块,并擦除获取的脏物理块,在空闲物理块集合1130中记录被擦除的脏物理块。
可选地,依据命名空间当前的使用情况(例如,用户写入数据带宽、用户写入数据量)和/或命名空间的预约/保留的性能指标,决定是否在该命名空间上启动垃圾回收。例如,在命名空间1110上的用户写入数据量较低时,在命名空间1110上执行垃圾回收,从高效脏物理块集合1112或低效脏物理块集合1114获取待回收的物理块。
可选地,每个命名空间具有写入数据带宽的配额,确保在指定命令空间上,用户写入的数据与垃圾回收要写入的数据带宽的总和不超过该命名空间的配额。例如,依据命名空间的写入数据带宽配额与用户写入数据带宽的差,确定是否有可用的写入数据带宽提供该命名空间,以用于垃圾回收。
本实施例中,空闲物理块集合1130对数据的分类和记录方法、从各个高效脏物理块集合和低效脏物理块集合中获取脏物理块的方法等请参考实施例一至实施例三。
可选地,命名空间1110、命名空间1120的垃圾回收也可以以大块为单位进行,请参见实施例四。
可选地,对各个命名空间上的垃圾回收操作进行调度,以平衡各命名空间的性能、性能波动、服务质量和/或可用存储空间大小。
实施例五中,通过为各个命名空间执行垃圾回收,避免了一个命名空间中的垃圾回收操作对其他命名空间的用户体验的影响,有利于保证服务质量。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种固态存储设备的数据清理方法,其特征在于,包括如下步骤:
将有效数据量或有效数据量占比大于第一阈值的物理块记录在低效脏物理块集合中,将有效数据量或有效数据量占比小于第二阈值的物理块记录在高效脏物理块集合中,将尚未被使用的物理块记录在空闲物理块集合中;
其中,所述第一阈值大于或等于所述第二阈值。
2.根据权利要求1所述的固态存储设备的数据清理方法,其特征在于,从所述高效脏物理块集合或所述低效脏物理块集合中获取脏物理块,从所述空闲物理块集合中获取空闲物理块;
获取所述脏物理块中的有效数据;
将所述有效数据写入所述空闲物理块;
擦除所述脏物理块;
将被擦除的脏物理块记录在所述空闲物理块集合中。
3.根据权利要求2所述的固态存储设备的数据清理方法,其特征在于,轮流从所述高效脏物理块集合和所述低效脏物理块集合中获取脏物理块,每次从所述高效脏物理块集合中获取第一数量的脏物理块,每次从所述低效脏物理块集合中获取第二数量的脏物理块;其中,所述第一数量与所述第二数量相同或不同,所述第一数量和所述第二数量为正整数。
4.根据权利要求2所述的固态存储设备的数据清理方法,其特征在于,依据使用频率将脏物理块中的有效数据识别为冷数据或热数据;所述空闲物理块包括第一空闲物理块和第二空闲物理块,所述第一空闲物理块的被擦除次数小于第九阈值,所述第二空闲物理块的被擦除次数大于所述第九阈值;
将脏物理块中的热数据写入所述第一空闲物理块;
将脏物理块中的冷数据写入所述第二空闲物理块。
5.根据权利要求1-4中任一项所述的固态存储设备的数据清理方法,其特征在于,所述空闲物理块集合包括第一空闲物理块集合和第二空闲物理块集合,所述第一空闲物理块集合用于记录热数据,所述第二空闲物理块集合用于记录冷数据;
为所述第一空闲物理块集合提供物理块的第一非易失性存储器芯片与为所述第二空闲物理块集合提供物理块的第二非易失性存储器芯片无关。
6.根据权利要求2-5中任一项所述的固态存储设备的数据清理方法,其特征在于,所述高效脏物理块集合包括第一子集合、第二子集合和第三子集合;
被擦除次数小于平均擦除次数或最大擦除次数,且所述被擦除次数与所述平均擦除次数或所述最大擦除次数的差的绝对值大于第十阈值的物理块被记录在所述第一子集合中;
被擦除次数小于平均擦除次数或最大擦除次数,且所述被擦除次数与所述平均擦除次数或所述最大擦除次数的差的绝对值小于所述第十阈值的物理块被记录在所述第二子集合中;
被擦除次数大于平均擦除次数或最大擦除次数,且所述被擦除次数与所述平均擦除次数或所述最大擦除次数的差的绝对值大于所述第十阈值的物理块被记录在所述第三子集合中。
7.一种数据清理方法,其特征在于,包括:
从第一脏物理块集合或第二脏物理块集合中获取脏物理块;
获取所述脏物理块中的有效数据;
将所述有效数据写入从空闲物理块集合获取的空闲物理块;
擦除所述脏物理块;
将被擦除的脏物理块记录在空闲物理块集合中。
8.根据权利要求7所述的数据清理方法,其特征在于,第一脏物理块集合中记录有效数据量或有效数据量占比大于第一阈值的物理块;第二脏物理块集合中记录有效数据量或有效数据量占比小于第二阈值的物理块;所述第一阈值大于或等于所述第二阈值。
9.根据权利要求7或8所述的数据清理方法,其特征在于,轮流从所述第一脏物理块集合和所述第二脏物理块集合中获取脏物理块。
10.一种固态存储设备,包括控制部件与非易失性存储器,所述控制部件用于执行根据权利要求1-9所述的数据清理方法。
CN201710499439.7A 2017-06-27 2017-06-27 固态存储设备的垃圾回收方法与固态存储设备 Active CN109144885B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710499439.7A CN109144885B (zh) 2017-06-27 2017-06-27 固态存储设备的垃圾回收方法与固态存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710499439.7A CN109144885B (zh) 2017-06-27 2017-06-27 固态存储设备的垃圾回收方法与固态存储设备

Publications (2)

Publication Number Publication Date
CN109144885A true CN109144885A (zh) 2019-01-04
CN109144885B CN109144885B (zh) 2022-04-29

Family

ID=64805029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710499439.7A Active CN109144885B (zh) 2017-06-27 2017-06-27 固态存储设备的垃圾回收方法与固态存储设备

Country Status (1)

Country Link
CN (1) CN109144885B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026673A (zh) * 2019-11-19 2020-04-17 中国航空工业集团公司西安航空计算技术研究所 一种nand flash垃圾回收动态优化方法
CN111045956A (zh) * 2019-12-22 2020-04-21 北京浪潮数据技术有限公司 一种基于多核cpu的固态硬盘垃圾回收方法以及装置
CN111078137A (zh) * 2019-11-07 2020-04-28 深圳市金泰克半导体有限公司 清理存储空间的方法
CN111324303A (zh) * 2020-01-21 2020-06-23 深圳忆联信息系统有限公司 Ssd垃圾回收方法、装置、计算机设备及存储介质
CN111435335A (zh) * 2019-01-15 2020-07-21 爱思开海力士有限公司 存储器系统及其操作方法
CN114415944A (zh) * 2021-12-27 2022-04-29 深圳忆联信息系统有限公司 固态硬盘物理块管理方法、装置、计算机设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999003680A1 (en) * 1997-07-15 1999-01-28 Silverbrook Research Pty. Limited A field acutated ink jet
EP1532439A2 (en) * 2002-05-10 2005-05-25 Engeneos, Inc. Unique recognition sequences and methods of use thereof in protein analysis
CN102841851A (zh) * 2012-07-19 2012-12-26 深圳市江波龙电子有限公司 闪存管理方法和闪存设备
CN103744614A (zh) * 2013-12-17 2014-04-23 记忆科技(深圳)有限公司 固态硬盘访问的方法及其固态硬盘
CN104850500A (zh) * 2014-02-14 2015-08-19 腾讯科技(深圳)有限公司 用于数据存储的数据处理方法和装置
CN105612503A (zh) * 2013-08-09 2016-05-25 桑迪士克科技股份有限公司 持久性数据结构
CN106598508A (zh) * 2016-12-30 2017-04-26 郑州云海信息技术有限公司 一种固态硬盘及其写入仲裁方法、系统
CN106681935A (zh) * 2016-12-29 2017-05-17 郑州云海信息技术有限公司 一种固态硬盘垃圾回收方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999003680A1 (en) * 1997-07-15 1999-01-28 Silverbrook Research Pty. Limited A field acutated ink jet
EP1532439A2 (en) * 2002-05-10 2005-05-25 Engeneos, Inc. Unique recognition sequences and methods of use thereof in protein analysis
CN102841851A (zh) * 2012-07-19 2012-12-26 深圳市江波龙电子有限公司 闪存管理方法和闪存设备
CN105612503A (zh) * 2013-08-09 2016-05-25 桑迪士克科技股份有限公司 持久性数据结构
CN103744614A (zh) * 2013-12-17 2014-04-23 记忆科技(深圳)有限公司 固态硬盘访问的方法及其固态硬盘
CN104850500A (zh) * 2014-02-14 2015-08-19 腾讯科技(深圳)有限公司 用于数据存储的数据处理方法和装置
CN106681935A (zh) * 2016-12-29 2017-05-17 郑州云海信息技术有限公司 一种固态硬盘垃圾回收方法
CN106598508A (zh) * 2016-12-30 2017-04-26 郑州云海信息技术有限公司 一种固态硬盘及其写入仲裁方法、系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A. SPESSOT: "VT statistics on nanoscale NAND Flash arrays", 《2011 IEEE WORKSHOP ON MICROELECTRONICS AND ELECTRON DEVICES》 *
G. R. ALLEN: "Single Event Effects Test Results for Advanced Field Programmable Gate Arrays", 《2006 IEEE RADIATION EFFECTS DATA WORKSHOP》 *
朱敬华: "无线传感器网络QoS保障技术的研究", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 *
郭敏杰: "基于云计算的海量网络流量数据分析处理及关键算法研究", 《中国博士学位论文全文数据库 信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111435335A (zh) * 2019-01-15 2020-07-21 爱思开海力士有限公司 存储器系统及其操作方法
CN111078137A (zh) * 2019-11-07 2020-04-28 深圳市金泰克半导体有限公司 清理存储空间的方法
CN111078137B (zh) * 2019-11-07 2021-07-06 深圳市金泰克半导体有限公司 清理存储空间的方法
CN111026673A (zh) * 2019-11-19 2020-04-17 中国航空工业集团公司西安航空计算技术研究所 一种nand flash垃圾回收动态优化方法
CN111026673B (zh) * 2019-11-19 2023-05-05 中国航空工业集团公司西安航空计算技术研究所 一种nand flash垃圾回收动态优化方法
CN111045956A (zh) * 2019-12-22 2020-04-21 北京浪潮数据技术有限公司 一种基于多核cpu的固态硬盘垃圾回收方法以及装置
CN111045956B (zh) * 2019-12-22 2021-10-22 北京浪潮数据技术有限公司 一种基于多核cpu的固态硬盘垃圾回收方法以及装置
CN111324303A (zh) * 2020-01-21 2020-06-23 深圳忆联信息系统有限公司 Ssd垃圾回收方法、装置、计算机设备及存储介质
CN114415944A (zh) * 2021-12-27 2022-04-29 深圳忆联信息系统有限公司 固态硬盘物理块管理方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN109144885B (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
CN109144885A (zh) 固态存储设备的垃圾回收方法与固态存储设备
CN102012867B (zh) 资料储存系统
CN102819496B (zh) 闪存ftl的地址转换方法
CN106021013A (zh) 非挥发性存储器装置及其操作方法
CN106448737A (zh) 读取闪存数据的方法、装置以及固态驱动器
CN106354615A (zh) 固态硬盘日志生成方法及其装置
CN109086219A (zh) 去分配命令处理方法及其存储设备
US20220326872A1 (en) Method for selecting a data block to be collected in gc and storage device thereof
CN109558334B (zh) 垃圾数据回收方法及固态存储设备
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
CN109977032A (zh) 垃圾数据回收控制方法及其装置
CN109558333A (zh) 具有可变额外存储空间(op)的固态存储设备命名空间
CN110389709A (zh) 顺序流检测与数据预读
CN107797938A (zh) 加快去分配命令处理的方法与存储设备
CN109976664A (zh) 固态存储设备的日志数据组织
CN110554833B (zh) 存储设备中并行处理io命令
CN109426436A (zh) 基于可变长大块的垃圾回收方法与装置
CN109840048A (zh) 存储命令处理方法及其存储设备
CN110321057A (zh) 具有增强io性能确定性的缓存的存储设备
CN106205707A (zh) 存储器装置
CN110515861A (zh) 处理刷写命令的存储设备及其方法
CN112181274A (zh) 提升存储设备性能稳定性的大块的组织方法及其存储设备
CN112181276B (zh) 提升存储设备服务质量的大块构造、分配方法及其存储设备
CN110096452A (zh) 非易失随机访问存储器及其提供方法
CN110968520B (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
CB02 Change of applicant information

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant