买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】具有可变额外存储空间的固态存储设备命名空间_北京忆恒创源科技股份有限公司_201710888159.5 

申请/专利权人:北京忆恒创源科技股份有限公司

申请日:2017-09-27

公开(公告)日:2024-04-05

公开(公告)号:CN109558333B

主分类号:G06F12/02

分类号:G06F12/02;G06F3/06

优先权:

专利状态码:有效-授权

法律状态:2024.04.05#授权;2021.09.28#著录事项变更;2020.07.31#实质审查的生效;2019.04.02#公开

摘要:提供了具有可变额外存储空间OP的固态存储设备命名空间。所公开的由固态存储设备执行的方法,其中所述固态存储设备包括多个命名空间,其中第一命名空间具有第一额外存储空间OP,第二命名空间具有第二额外存储空间OP,第一额外存储空间不同于第二额外存储空间;所述方法包括:根据第一命名空间的空闲大块数量确定在第一命名空间上启动垃圾回收操作;以及根据第二命名空间的空闲大块数量确定在第二命名空间上启动垃圾回收操作。

主权项:1.一种由固态存储设备执行的方法,其中所述固态存储设备包括多个命名空间,其中第一命名空间具有第一额外存储空间,第二命名空间具有第二额外存储空间,第一额外存储空间不同于第二额外存储空间;所述方法包括:根据第一命名空间的空闲大块数量确定在第一命名空间上启动垃圾回收操作;以及根据第二命名空间的空闲大块数量确定在第二命名空间上启动垃圾回收操作;为在第一命名空间上执行垃圾回收操作,从属于第一命名空间的脏大块集合获取第一大块,在确定不完整回收第一大块的情况下,保留第一大块的一个或多个第一物理块,而回收除所述一个或多个第一物理块之外的第一大块的一个或多个第二物理块。

全文数据:具有可变额外存储空间OP的固态存储设备命名空间技术领域本申请涉及固态存储设备,具体地,涉及固态存储设备的命名空间的垃圾回收与额外存储空间OP管理。背景技术图1展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATASerialAdvancedTechnologyAttachment,串行高级技术附件、SCSISmallComputerSystemInterface,小型计算机系统接口、SASSerialAttachedSCSI,串行连接SCSI、IDEIntegratedDriveElectronics,集成驱动器电子、USBUniversalSerialBus,通用串行总线、PCIEPeripheralComponentInterconnectExpress,PCIe,高速外围组件互联、NVMeNVMExpress,高速非易失存储、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAMDynamicRandomAccessMemory,动态随机访问存储器110。NAND闪存、相变存储器、FeRAMFerroelectricRAM,铁电存储器、MRAMMagneticRandomAccessMemory,磁阻存储器、RRAMResistiveRandomAccessMemory,阻变存储器等是常见的NVM。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及DRAM110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGAField-programmablegatearray,现场可编程门阵列、ASICApplicationSpecificIntegratedCircuit,应用专用集成电路或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IOInputOutput命令。控制部件104还可以耦合到DRAM110,并可访问DRAM110的数据。在DRAM可存储FTL表和或缓存的IO命令的数据。控制部件104包括闪存接口控制器或称为介质接口控制器、闪存通道控制器,闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。存储器目标Target是NAND闪存封装内的共享CE,ChipEnable,芯片使能信号的一个或多个逻辑单元LUN,LogicUNit。NAND闪存封装内可包括一个或多个管芯Die。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面Plane。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。存储介质上通常按页来存储和读取数据。而按块来擦除数据。块也称物理块包含多个页。块包含多个页。存储介质上的页称为物理页具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。在固态存储设备中,利用FTLFlashTranslationLayer,闪存转换层来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。FTL表包括多个FTL表条目或称表项。在一种情况下,每个FTL表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一种情况下,每个FTL表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一种情况下,每个FTL表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一种情况下,FTL表中记录逻辑块地址与物理块地址的映射关系,和或逻辑页地址与物理页地址的映射关系。固态存储设备中包括多个NVM芯片。每个NVM芯片包括一个或多个管芯DIE或逻辑单元LUN。管芯或逻辑单元之间可以并行响应读写操作。在同一管芯或逻辑单元上的多个读、写或擦除操作顺序执行。大块包括来自多个逻辑单元LUN,也称为逻辑单元组,的每个的物理块。每个逻辑单元可以为大块提供一个物理块。例如,在图2所示出的大块的示意图中,在每16个逻辑单元LUN上构造大块。每个大块包括16个分别来自16个逻辑单元LUN的物理块。在图2的例子中,大块0包括来自16个逻辑单元LUN中的每个逻辑单元的物理块0,而大块1包括来自每个逻辑单元LUN的物理块1。也可以以多种其他方式来构造大块。例如,在大块中构造页条带,每个逻辑单元LUN内相同物理地址的物理页构成了“页条带”。图2中,物理页P0-0、物理页P0-1……与物理页P0-x构成了页条带0,其中,物理页P0-0、物理页P0-1……物理页P0-14用于存储用户数据,而物理页P0-x用于存储根据条带内的所有用户数据计算得到的校验数据。类似地,图2中,物理页P2-0、物理页P2-1……与物理页P2-x构成了页条带2。用于存储校验数据的物理页可以位于页条带中的任意位置。当逻辑页被重复写入数据,FTL表条目中记录逻辑页地址与最新的物理页地址的对应关系,而曾经被写入数据但不再被引用例如,FTL表中没有记录成为“垃圾”数据。将已经被写入数据,且被引用例如,在FTL表中有记录的数据称为有效数据,而将“垃圾”称为脏数据。将含有脏数据的物理块称为“脏物理块”或者,将被写满了数据的物理块也称为“脏物理块”,将未被写入数据的物理块称为“空闲物理块”。发明内容当大块作为垃圾回收过程的基本处理单元时,大块或者被整体回收,或者不被回收。而构成大块的多个物理块,可能具有不同数量的有效数据。回收有效数据量低的物理块是有利的,以少量的数据搬移为代价,获得了可用于写入数据的空闲物理块。回收有效数据高的物理块是不利的,会导致写入数据量的增加。希望在垃圾回收过程中,能对构成大块的物理块加以识别,仅回收其中有利于垃圾回收过程的物理块,而不回收或延迟回收大块中不利于垃圾回收过程的物理块。命名空间的引入,增强了固态存储设备的虚拟化能力。也希望对各命名空间提供灵活而独立的管理能力,以及降低命名空间之间的干扰。根据本申请的第一方面,提供了根据本申请第一方面的第一垃圾回收方法,包括:获取待回收大块;确定是否要完整回收所述大块;在确定不完整回收所述大块的情况下,保留所述大块的一个或多个第一物理块,回收除所述一个或多个第一物理块之外的所述大块的一个或多个第二物理块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二垃圾回收方法,其中,获取待回收大块包括:根据以下至少一项参数确定大块的优先级,并根据所述优先级从脏大块集合中选择待回收大块:大块的有效数据量、大块的有效数据占比、大块的擦除次数、大块被记录到脏大块集合的顺序和或数据被记录到大块的时间。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第三垃圾回收方法,其中,确定是否要完整回收所述大块,包括:在所述大块的物理块中的有效数据量低于第一阈值或所述大块的物理块中的有效数据占比低于第二阈值的情况下,确定完整回收所述大块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第四垃圾回收方法,其中,确定是否要完整回收所述大块,包括:在所述大块的每个物理块中的有效数据量都低于第一阈值或所述大块的每个物理块中的有效数据占比都低于第二阈值的情况下,确定完整回收所述大块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第五垃圾回收方法,其中,确定是否要完整回收所述大块,包括:在所述大块的有效数据量高于第三阈值的物理块的数量低于第一指定值或所述大块的有效数据占比高于第四阈值的物理块数量高于第二指定值的情况下,确定完整回收所述大块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第六垃圾回收方法,其中,若无法确定完整回收所述大块,则确定不完整回收所述大块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第七垃圾回收方法,其中,确定是否要完整回收所述大块,包括:在所述大块的物理块中的有效数据量不低于第五阈值,所述大块的物理块中的有效数据占比不低于第六阈值的情况下,确定不完整回收所述大块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第八垃圾回收方法,其中,确定是否要完整回收所述大块,包括:在所述大块的物理块中的有效数据占比低于第七阈值的物理块的数量占所述大块物理块总数量的比值低于第三指定值的情况下,确定不完整回收所述大块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第九垃圾回收方法,其中,确定是否要完整回收所述大块,包括:在所述大块的物理块中有效数据量低于第八阈值的物理块的数量占所述大块物理块总数量的比值低于第四指定值的情况下,确定不完整回收所述大块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十垃圾回收方法,其中,确定是否要完整回收所述大块,包括:在所述大块的待回收数据量大于第九阈值的情况下,确定不完整回收所述大块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十一垃圾回收方法,其中,在确定不完整回收所述大块的情况下,将所述第二物理块的有效数据写入空闲大块;擦除所述第二物理块;将擦除后的第二物理块添加到空闲物理块集合。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十二垃圾回收方法,所述方法还包括:将所述大块中存储校验数据的物理块擦除;将所述存储校验数据的物理块添加到空闲物理块集合。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十三垃圾回收方法,所述方法还包括:从空闲物理块集合中获取一个或多个第三物理块;根据从所述大块的所述一个或多个第一物理块读出的数据生成新校验数据,将该新校验数据写入获取的一个或多个第三物理块;更新在脏大块集合中指示所述大块的第一元素,在该第一元素中记录属于所述大块的所述一个或多个第一物理块的地址,以及所述一个或多个第三物理块的地址。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十四垃圾回收方法,所述方法还包括:在所述第一元素中还记录所述一个或多个第三物理块存储所述大块的校验数据。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十五垃圾回收方法,所述方法还包括:响应于第一大块的一个或多个第四物理块故障,从空闲物理块集合中获取m+n个空闲物理块,其中,m为所述一个或多个第四物理块中存储用户数据的物理块的数量,n为所述第一大块中存储校验数的物理块的数量;从属于所述第一大块的物理块中读取数据,根据所述第一大块的RAID配置计算所述一个或多个第四物理块的数据,将计算得到的数据写入所述m+n个空闲物理块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十六垃圾回收方法,所述方法还包括:更新在脏大块集合中指示所述第一大块的第二元素;在所述第二元素中记录所述第一大块的所有物理块地址、擦除次数和或大块创建时间。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十七垃圾回收方法,所述方法还包括:从空闲物理块集合中获取空闲物理块;使用获取到的空闲物理块构建大块并生成该大块的元数据;根据构建的大块的元数据生成空闲大块集合的元素,将该元素添加到空闲大块集合。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十八垃圾回收方法,所述空闲物理块集合包括多个子集合,各个子集合分别记录源于同一LUN的空闲物理块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第十九垃圾回收方法,所述子集合记录物理块的地址、或描述LUN的物理块是否处于空闲状态。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十垃圾回收方法,所述空闲物理块集合或所述子集合中的空闲物理块按照擦除次数排序。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十一垃圾回收方法,所述方法还包括:为向空闲大块集合中的空闲大块写入数据,从所述空闲大块集合中获取空闲大块,向获取到的空闲大块的物理块地址列表所指向的物理块写入数据,更新指示该空闲大块的元素的时间戳;响应于从所述空闲大块集合中获取空闲大块,将指示该空闲大块的元素从所述空闲大块集合中移除,响应于该元素所指示的空闲大块被写满数据,将该元素或根据该元素的内容生成的指示脏大块的元素添加到脏大块集合中。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十二垃圾回收方法,其中,在确定完整回收所述大块的情况下,将所述大块的有效数据写入空闲大块;擦除所述大块的所有物理块;将所述大块添加到空闲大块集合。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十三垃圾回收方法,所述方法还包括:响应于重建脏大块表,扫描固态存储设备的物理块;根据被扫描的第一物理块中记录的元数据,获得与第一物理块属于同一大块的所有物理块;获取被扫描的所述第一物理块以及与该第一物理块属于同一大块的其余物理块的元数据中的序号,在所述其余物理块的序号均不大于所述第一物的物理块的序号的情况下,根据所述第一物理块的元数据创建脏大块表的元素。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十四垃圾回收方法,其中,在所述其余物理块中存在序号大于第一物理块序号的物理块时,取具有最大的序号的物理块的元数据中记录的所有物理块构建大块,并更新脏大块表的元素。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十五垃圾回收方法,其中,所述大块包括多个物理块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十六垃圾回收方法,所述方法还包括:在存储设备初始化或被格式化时,将多个逻辑单元LUN的物理块组织为具有相同数量物理块、各物理块具有相同LUN内块号的多个大块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十七垃圾回收方法,其中,所述大块具有不同数量的物理块和或所述大块的各物理块具有不同的LUN内块号。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十八垃圾回收方法,其中,所述大块的每个物理块中记录有所述大块的元数据,该元数据包括:所述大块的所有物理块地址、所述大块的RAID配置以及存储所述大块校验数据的物理块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第二十九垃圾回收方法,其中,所述大块的元数据还包括以下至少一项:所述大块的擦除次数、所述大块被写入数据的时间或所述大块被创建的时间。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第三十垃圾回收方法,其中,所述脏大块集合的元素指示大块之一;脏大块集合的元素记录其所指示的大块的所有物理块地址、大块的RAID配置以及存储大块校验数据的物理块。根据本申请的第一方面的第一垃圾回收方法,提供了根据本申请第一方面的第三十一垃圾回收方法,其中,所述空闲大块集合的元素指示大块之一;空闲大块集合的元素记录其所指示的大块的所有物理块地址、大块的RAID配置以及存储大块校验数据的物理块。根据本申请的第二方面,提供了根据本申请第二方面的垃圾回收装置,包括:获取模块,用于获取待回收大块;确定模块,用于确定是否要完整回收所述大块;回收模块,用于在确定不完整回收所述大块的情况下,保留所述大块的一个或多个第一物理块,回收除所述一个或多个第一物理块之外的所述大块的一个或多个第二物理块。根据本申请的第三方面,提供了根据本申请第三方面的固态存储设备,包括控制器与非易失存储器芯片,所述控制器执行根据本申请提供的任一种垃圾回收方法。根据本申请的第四方面,提供了根据本申请第四方面的存储在可读介质上的程序,当被固态存储设备的控制器运行时,使得所述固态存储设备执行根据本申请提供的任意一种垃圾回收方法。本申请实施例提供的方案,在固态存储设备垃圾回收的过程中,在确定不完整回收大块的情况下,回收大块中部分物理块,避免了仅能完整回收或不回收大块导致的大块中的部分需被回收的物理块无法被回收的问题,使得大块中的物理块得以被合理的回收,提高了资源的利用率。根据本申请的第五方面,提供了根据本申请第五方面的第一由固态存储设备执行的方法,所述固态存储设备包括多个命名空间,其中第一命名空间具有第一额外存储空间OP,第二命名空间具有第二额外存储空间OP,第一额外存储空间不同于第二额外存储空间;所述方法包括:根据第一命名空间的空闲大块数量确定在第一命名空间上启动垃圾回收操作;以及根据第二命名空间的空闲大块数量确定在第二命名空间上启动垃圾回收操作。根据本申请第五方面的第一由固态存储设备执行的方法,提供了根据本申请第五方面的第二由固态存储设备执行的方法,其中命名空间的额外存储空间OP关联于命名空间的物理存储空间大小与命名空间的用户存储空间大小的差。根据本申请第五方面的第二由固态存储设备执行的方法,提供了根据本申请第五方面的第三由固态存储设备执行的方法,其中命名空间的物理存储空间大小是命名空间已使用的脏大块与命名空间的空闲大块的存储空间的和。根据本申请第五方面的第一至第三由固态存储设备执行的方法之一,提供了根据本申请第五方面的第四由固态存储设备执行的方法,还包括:响应于改变第一命名空间的额外存储空间的请求,使第一命名空间的空闲大块数量增加。根据本申请第五方面的第一至第三由固态存储设备执行的方法之一,提供了根据本申请第五方面的第五由固态存储设备执行的方法,还包括:响应于改变第一命名空间的额外存储空间的请求,使第一命名空间的空闲大块数量增加,以及使第二命名空间的空闲大块数量相应地减少。根据本申请第五方面的第四或第五由固态存储设备执行的方法,提供了根据本申请第五方面的第六由固态存储设备执行的方法,响应于第一命名空间的性能指标低于阈值,生成改变第一命名空间的额外存储空间的请求。根据本申请第五方面的第一至第六由固态存储设备执行的方法之一,提供了根据本申请第七方面的第四由固态存储设备执行的方法,还包括:为在第一命名空间上执行垃圾回收操作,从属于第一命名空间的脏大块集合获取第一大块,将第一大块的有效数据写入从空闲大块集合获取的第一空闲大块,擦除第一大块的物理块,并将第一大块添加到空闲大块集合。根据本申请第五方面的第七由固态存储设备执行的方法,提供了根据本申请第五方面的第八由固态存储设备执行的方法,还包括:响应于从空闲大块集合获取了第一空闲大块,使第一命名空间的空闲大块数量递减;以及响应于将第一大块添加到空闲大块集合,使第一命名空间的空闲大块数量递增。根据本申请第五方面的第七或第八由固态存储设备执行的方法,提供了根据本申请第五方面的第九由固态存储设备执行的方法,还包括:将第一空闲大块添加到第一命名空间的第一脏大块集合。根据本申请第五方面的第一至第九由固态存储设备执行的方法之一,提供了根据本申请第五方面的第十由固态存储设备执行的方法,还包括:为在第二命名空间上执行垃圾回收操作,从属于第二命名空间的脏大块集合获取第二大块,将第二大块的有效数据写入从空闲大块集合获取的第二空闲大块,擦除第二大块的物理块,并将第二大块添加到空闲大块集合。根据本申请第五方面的第十由固态存储设备执行的方法,提供了根据本申请第五方面的第十一由固态存储设备执行的方法,还包括:响应于从空闲大块集合获取了第二空闲大块,使第二命名空间的空闲大块数量递减;以及响应于将第二大块添加到空闲大块集合,使第二命名空间的空闲大块数量递增。根据本申请第五方面的第十或十一由固态存储设备执行的方法,提供了根据本申请第五方面的第十二由固态存储设备执行的方法,还包括:将第二空闲大块添加到第二命名空间的第二脏大块集合。据本申请第五方面的第一至第六由固态存储设备执行的方法之一,提供了根据本申请第五方面的第十三由固态存储设备执行的方法,还包括:为在第一命名空间上执行垃圾回收操作,从属于第一命名空间的脏大块集合获取第一大块,在确定不完整回收第一大块的情况下,保留第一大块的一个或多个第一物理块,而回收除所述一个或多个第一物理块之外的第一大块的一个或多个第二物理块。根据本申请第五方面的第十三由固态存储设备执行的方法,提供了根据本申请第五方面的第十四由固态存储设备执行的方法,还包括:将第二物理块的有效数据写入从空闲大块集合获取的第一空闲大块;擦除第二物理块;将擦除后的第二物理块添加到空闲物理块集合。根据本申请第五方面的第十四由固态存储设备执行的方法,提供了根据本申请第五方面的第十五由固态存储设备执行的方法,还包括:擦除第一大块中存储校验数据的物理块;将第一大块中存储校验数据的物理块添加到空闲物理块集合。根据本申请第五方面的第十三至第十五由固态存储设备执行的方法之一,提供了根据本申请第五方面的第十六由固态存储设备执行的方法,还包括:从空闲物理块集合获取一个或多个第三物理块;根据从第一大块的一个或多个第一物理块读出的数据生成新校验数据,将新校验数据写入所述一个或多个第三物理块;记录所述一个或多个第一物理块与所述一个或多个第三物理块属于第一大块。根据本申请第五方面的第十三至第十六由固态存储设备执行的方法之一,提供了根据本申请第五方面的第十七由固态存储设备执行的方法,其中在第一大块的物理块中的有效数据量低于第一阈值或第一大块的物理块中的有效数据占比低于第二阈值的情况下,确定完整回收第一大块。根据本申请第五方面的第十三至第十六由固态存储设备执行的方法之一,提供了根据本申请第五方面的第十八由固态存储设备执行的方法,其中在第一大块的每个物理块中的有效数据量都低于第一阈值或第一大块的每个物理块中的有效数据占比都低于第二阈值的情况下,确定完整回收第一大块。根据本申请第五方面的第十三至第十六由固态存储设备执行的方法之一,提供了根据本申请第五方面的第十九由固态存储设备执行的方法,其中在第一大块的有效数据量高于第三阈值的物理块的数量低于第一指定值或第一大块的有效数据占比高于第四阈值的物理块数量高于第二指定值的情况下,确定完整回收第一大块。根据本申请第五方面的第十七至第十九由固态存储设备执行的方法之一,提供了根据本申请第五方面的第二十由固态存储设备执行的方法,其中若无法确定完整回收第一大块,则确定不完整回收第一大块。根据本申请第五方面的第十三至第十六由固态存储设备执行的方法之一,提供了根据本申请第五方面的第二十一由固态存储设备执行的方法,其中在第一大块的物理块中的有效数据量不低于第五阈值,或者第一大块的物理块中的有效数据占比不低于第六阈值的情况下,确定不完整回收第一大块。根据本申请第五方面的第十三至第十六由固态存储设备执行的方法之一,提供了根据本申请第五方面的第二十二由固态存储设备执行的方法,其中在第一大块的物理块中有效数据占比低于第七阈值的物理块的数量占第一大块物理块总数量的比值低于第三指定值的情况下,确定不完整回收第一大块。根据本申请第五方面的第十三至第十六由固态存储设备执行的方法之一,提供了根据本申请第五方面的第二十三由固态存储设备执行的方法,其中在所第一大块的物理块中有效数据量低于第八阈值的物理块的数量占第一大块物理块总数量的比值低于第四指定值的情况下,确定不完整回收第一大块。根据本申请第五方面的第十三至第十六由固态存储设备执行的方法之一,提供了根据本申请第五方面的第二十四由固态存储设备执行的方法,其中在第一大块的待回收数据量大于第九阈值的情况下,确定不完整回收第一大块。根据本申请第五方面的第一至第二十四由固态存储设备执行的方法之一,提供了根据本申请第五方面的第二十五由固态存储设备执行的方法,其中所述固态存储设备的控制器维护空闲大块集合;所述固态存储设备的多个命名空间可从所述空闲大块集合获取空闲大块。根据本申请第五方面的第一至第二十五由固态存储设备执行的方法之一,提供了根据本申请第五方面的第二十六由固态存储设备执行的方法,其中所述固态存储设备的控制器维护空闲物理块集合;所述固态存储设备的多个命名空间可从所述空闲物理块集合获取空闲物理块。根据本申请第五方面的第一至第二十四由固态存储设备执行的方法之一,提供了根据本申请第五方面的第二十七由固态存储设备执行的方法,其中第一命名空间被绑定到一个或多个第一逻辑单元组;第二命名空间被绑定到一个或多个第二逻辑单元组;以及所述固态存储设备的多个命名空间的每个可从其被绑定到的一个或多个逻辑单元组获取空闲大块。根据本申请第五方面的第二十七由固态存储设备执行的方法,提供了根据本申请第五方面的第二十八由固态存储设备执行的方法,还包括:响应于改变第一命名空间的额外存储空间的请求,使第一命名空间被绑定到的逻辑单元组数量增加。根据本申请第五方面的第二十七由固态存储设备执行的方法,提供了根据本申请第五方面的第二十九由固态存储设备执行的方法,还包括:响应于改变第一命名空间的额外存储空间的请求,使第一命名空间被绑定到的逻辑单元组数量增加,以及使第二命名空间被绑定到的逻辑单元组数量相应地减少。根据本申请第五方面的第一至第二十四由固态存储设备执行的方法之一,提供了根据本申请第五方面的第三十由固态存储设备执行的方法,其中第一命名空间被绑定到一个或多个大块;第二命名空间被绑定到一个或多个大块;以及所述固态存储设备的多个命名空间的每个可从其被绑定到的一个或多个大块获取空闲大块。根据本申请第五方面的第三十由固态存储设备执行的方法,提供了根据本申请第五方面的第三十一由固态存储设备执行的方法,还包括:响应于改变第一命名空间的额外存储空间的请求,使第一命名空间被绑定到的大块数量增加。根据本申请第五方面的第三十由固态存储设备执行的方法,提供了根据本申请第五方面的第三十二由固态存储设备执行的方法,还包括:响应于改变第一命名空间的额外存储空间的请求,使第一命名空间被绑定到的大块数量增加,以及使第二命名空间被绑定到的大块数量相应地减少。根据本申请的第六方面,提供了根据本申请第六方面的第一固态存储设备,包括多个命名空间,其中第一命名空间具有第一额外存储空间OP,第二命名空间具有第二额外存储空间OP,第一额外存储空间不同于第二额外存储空间;所述固态存储设备还包括控制器,所述控制器根据第一命名空间的空闲大块数量确定在第一命名空间上启动垃圾回收操作;以及根据第二命名空间的空闲大块数量确定在第二命名空间上启动垃圾回收操作。根据本申请第六方面的第一固态存储设备,提供了根据本申请第六方面的第二固态存储设备,还包括空闲大块集合,所述多个命名空间可从所述空闲大块集合获取空闲大块。根据本申请第六方面的第一或第二固态存储设备,提供了根据本申请第六方面的第三固态存储设备,还包括空闲物理块集合,所述多个命名空间可从所述空闲物理块集合获取空闲物理块。根据本申请第六方面的第一至第三固态存储设备之一,提供了根据本申请第六方面的第四固态存储设备,所述控制器响应于改变第一命名空间的额外存储空间的请求,使第一命名空间的空闲大块数量增加。根据本申请第六方面的第一至第三固态存储设备之一,提供了根据本申请第六方面的第五固态存储设备,所述控制器响应于改变第一命名空间的额外存储空间的请求,使第一命名空间的空闲大块数量增加,以及使第二命名空间的空闲大块数量相应地减少。根据本申请第六方面的第一至第五固态存储设备之一,提供了根据本申请第六方面的第六固态存储设备,所述控制器为在第一命名空间上执行垃圾回收操作,从属于第一命名空间的脏大块集合获取第一大块,将第一大块的有效数据写入从空闲大块集合获取的第一空闲大块,擦除第一大块的物理块,并将第一大块添加到空闲大块集合。根据本申请第六方面的第一至第六固态存储设备之一,提供了根据本申请第六方面的第七固态存储设备,所述控制器为在第二命名空间上执行垃圾回收操作,从属于第二命名空间的脏大块集合获取第二大块,将第二大块的有效数据写入从空闲大块集合获取的第二空闲大块,擦除第二大块的物理块,并将第二大块添加到空闲大块集合。根据本申请第六方面的第一至第七固态存储设备之一,提供了根据本申请第六方面的第八固态存储设备,所述控制器为在第一命名空间上执行垃圾回收操作,从属于第一命名空间的脏大块集合获取第一大块,在确定不完整回收第一大块的情况下,保留第一大块的一个或多个第一物理块,而回收除所述一个或多个第一物理块之外的第一大块的一个或多个第二物理块。根据本申请第六方面的第八固态存储设备,提供了根据本申请第六方面的第九固态存储设备,所述控制器还将第二物理块的有效数据写入从空闲大块集合获取的第一空闲大块;擦除第二物理块;以及将擦除后的第二物理块添加到空闲物理块集合。根据本申请第六方面的第九固态存储设备,提供了根据本申请第六方面的第十固态存储设备,所述控制器还擦除第一大块中存储校验数据的物理块;以及将第一大块中存储校验数据的物理块添加到空闲物理块集合。根据本申请第六方面的第八至第十固态存储设备之一,提供了根据本申请第六方面的第十一固态存储设备,所述控制器还从空闲物理块集合获取一个或多个第三物理块;根据从第一大块的一个或多个第一物理块读出的数据生成新校验数据,将新校验数据写入所述一个或多个第三物理块;记录所述一个或多个第一物理块与所述一个或多个第三物理块属于第一大块。根据本申请的第七方面,提供了根据本申请第七方面的第一固态存储设备,包括控制器,所述控制器通过运行程序来使得所述固态存储设备执行根据本申请第五方面的由固态存储设备执行的方法。根据本申请的第八方面,提供了根据本申请第八方面的第一存储在可读介质上的程序,当被固态存储设备的控制器运行时,使得所述固态存储设备执行根据本申请第五方面的由固态存储设备执行的方法。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是相关技术中固态存储设备的框图;图2是相关技术中大块的示意图;图3A是根据本申请实施例的大块的数据组织的示意图;图3B是根据本申请的实施例的大块的元数据示意图;图4A是根据本申请一示例性实施例示出的脏大块集合的示意图;图4B是根据本申请一示例性实施例示出的空闲大块结合的示意图;图5是垃圾回收过程的示意图;图6是根据本申请实施例的垃圾回收方法的流程图;图7是根据本申请一实施例的垃圾回收过程的流程图;图8是根据本申请实施例的大块被不完整回收的示意图;图9是根据本申请一个实施例的命名空间表;图10是根据本申请又一实施例的命名空间表;图11是根据本申请又一实施例的命名空间的示意图;以及图12是根据本申请依然又一实施例的命名空间的示意图。具体实施方式下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图3A是根据本申请实施例的大块的数据组织的示意图。如图3A所示,固态存储设备的NVM芯片提供了N+1个LUN。将LUN的物理块组织为大块310、大块320与大块330。根据图3A的实施例中,大块310、大块320与大块330各自包括不同数量的物理块。相应地,大块310、大块320与大块330各自具有不同的RAID配置,例如,大块310是N+1RAID配置,其中,N个物理块存储数据,而一个物理块存储校验信息;大块320是N-1+1RAID配置,其中,N-1个物理块存储数据,而一个物理块存储校验信息;大块330是N+1RAID配置,其中,N个物理块存储数据,而一个物理块存储校验信息。大块310的包括N+1个物理块,图3A中的每个LUN为大块310提供一个物理块,以及每个物理块在各自的LUN内具有相同的块号。大块320包括N个物理块,图3A中,LUN0到LUNN-1的每个为大块320提供1个物理块,以及每个物理块在各自的LUN内具有相同的块号。大块330包括N+1个物理块,图3A中的每个LUN为大块310提供一个物理块,以及每个物理块在各自的LUN内具有不同的块号。图3B是根据本申请的实施例的大块的元数据示意图。如图3B所示,物理块B0-0、物理块B0-1、物理块B0-2、物理块B0-3、……物理块B0-N-1与物理块B0-N是构成大块310参见图3A的N+1个物理块。在构成大块310的每个物理块中,还在物理块内指定的存储空间记录用于大块310的元数据M0。元数据M0记录了构成大块310的所有物理块的地址包括物理块所处的LUN,以及LUN内的块号、大块的RAID配置与存储大块的RAID校验数据的物理块。可选地,元数据M0还可以记录大块310的擦除次数、大块被写入数据的时间与大块被创建的时间。在一种实施方式中,构成大块的所有物理块记录相同的元数据。在又一种实施方式中,构成大块的所有物理块记录不同的元数据例如,物理块所属大块的所有物理块地址、大块的RAID配置、存储大块的RAID校验数据的物理块、大块被创建的时间、物理块的擦除次数与物理块被写入数据的时间。在本申请的一个实施例中,固态存储设备初始化时,或者被格式化时,将LUN的物理块组织为相同规格的大块例如,具有相同数量的物理块,各个物理块具有相同的LUN内块号。随着大块被使用,部分大块被重构为具有不同规格的大块例如,具有不同数量的物理块,和或各个物理块具有不同的LUN内块号。在本实施例中,由于大块可以具有相同或不同数量的物理块,大块中的各个物理块可具有相同或不同的块号,使得大块的组织更加灵活。图4A展示了根据本申请实施例的脏大块集合。脏大块集合包括多个元素,每个元素记录了固态存储设备的脏大块之一。脏大块是已经被写入数据的大块。图4A的实施例中,脏大块集合元素410与脏大块集合元素412各自指示脏大块之一。元素410与元素412中,各自记录所指示的大块的所有物理块地址列表、大块的RAID配置信息可选地,包括校验数据的存储位置、大块被擦除的次数和或大块的每个物理块被擦除的次数、大块被创建时的时间戳等。固态存储设备工作时,脏大块集合被记录在DRAM110或控制部件104内部的存储器中参见图1。响应于固态存储设备停止工作例如,关机或断电,将脏大块集合存储到固态存储设备的NVM芯片中。通过脏大块集合的元素例如元素410的物理块地址列表,可访问构成该元素所指示大块的所有物理块。在通过大块进行数据重构时,需要使用构成大块的物理块地址,从大块的有效物理块中读取数据,以恢复出故障物理块存储的数据。其中,元素的RAID配置信息用于指示大块的容错能力,并识别出现部分物理块故障的大块是否有机会进行数据恢复。元素中的大块被擦除次数用于指示大块的寿命。在进行垃圾回收GC时,使用元素中的大块被擦除次数选择待回收的大块。元素的时戳指示大块被创建的先后顺序,还指示大块中的数据被保存的时间,并可用于垃圾回收GC过程。构成大块的多个物理块,可能具有不同数量的有效数据。回收有效数据量低的物理块是有利的,以少量的数据搬移为代价,获得了可用于写入数据的空闲物理块。回收有效数据量高的物理块是不利的,会导致垃圾回收过程中写入数据量的增加。图4B展示了根据本申请实施例的空闲大块集合。空闲大块集合包括多个元素,每个元素记录了固态存储设备的空闲大块之一。空闲大块是尚未被写入数据的大块。图4B的实施例中,空闲大块集合元素420与空闲大块集合元素422各自指示空闲大块之一。元素420与元素422中各自记录所指示大块的所有物理块的地址列表、大块的RAID配置信息可选地,包括校验数据的存储位置、大块被擦除的次数和或大块的每个物理块被擦除的次数以及大块被创建时的时间戳等。根据本申请的实施例,为向空闲大块集合中的空闲大块写入数据,从空闲大块集合中获取空闲大块例如,由元素420所指示,向获取到的空闲大块的物理块地址列表所指向的各个物理块写入数据,以及更新元素420的时戳,以记录大块被最早写入数据的时间。响应于从空闲大块集合中获取的空闲大块例如,由元素420所指示,将指示该空闲大块的元素420从空闲大块集合中移除。以及响应于元素420所指示的空闲大块被被写满数据,将元素420或根据元素420的内容生成的指示脏大块的元素添加到脏大块集合中。本申请的实施例还包括空闲物理块集合。作为举例,空闲物理块集合中记录可用于构成大块但尚未用于构成大块的固态存储设备的物理块。例如,空闲物理块集合包括多个子集合,每个子集合记录源于一个LUN的空闲物理块。可选地,子集合记录物理块的地址,或用位图描述LUN的物理块是否处于空闲状态。可选地或进一步地,空闲物理块集合或子集合中的空闲物理块按擦除次数排序,使得在从空闲物理块集合或子集合中获取空闲物理块时,可指定取出擦除次数最大、最小或具有平均擦除次数的物理块。可以理解地,平均擦除次数可以指擦除次数范围,例如,距离空闲物理块的擦除次数的平均值在指定阈值内的擦除次数范围。固态存储设备执行垃圾回收GC过程以回收无效数据。图5展示了垃圾回收过程的示意图。大块0与大块1被写入了数据。大块0的物理页510、512、514和516等由网格框所指示的物理页在FTL表中没有记录,其上的数据是脏数据。大块0的物理页530、532、534与536等由空白方框指示的物理页在FTL表中有记录,其上的数据是有效数据。大块1的物理页520、522、524与526等由网格框所指示的物理页上的数据是脏数据。大块1的物理页544、542、546与548等由空白框所指示的物理页上的数据是有效数据。图5中,用网格指示的物理页所容纳的数据是脏数据,而用空白方框指示的物理页所容纳的数据是有效数据。为进行垃圾回收,扫描脏大块例如,大块0与大块1,将其中的有效数据读出并写入空闲大块2,以及在FTL表中记录有效数据的物理页地址的变化。在所有的有效数据都搬移到大块2后,擦除被扫描的大块0与大块1,从而使大块0与大块1变为空闲大块。固态存储设备还进行磨损均衡过程,以使固态存储设备的多个NVM芯片的多个物理块经历大体上相同的擦除次数。为实施垃圾回收,“GC模块”例如,实现于控制部件120或其中的CPU或控制器从脏大块集合中获取脏大块之一,从空闲大块集合中获取空闲大块之一。扫描脏大块,将其中的有效数据写入空闲大块。将获取的脏大块擦除,并在空闲大块集合中记录擦除后的大块。图6展示了根据本申请实施例的垃圾回收方法的流程图,该方法用于固态存储设备的垃圾回收。如图6所示,该方法包括如下步骤:步骤601:获取待回收大块;步骤602:确定是否要完整回收大块;步骤603:在确定不完整回收大块的情况下,保留大块的一个或多个物理块,回收除一个或多个第一物理块之外的大块的一个或多个物理块。在一个示例性实施例中,步骤601中根据优先级从脏大块集合中选择待回收大块。作为举例,根据大块的有效数据量、大块的有效数据占比、大块的擦除次数、大块被记录到脏大块集合的顺序和或数据被记录到大块的时间中至少一项参数确定脏大块集合中的待回收大块的优先级。在步骤602中,依据垃圾回收的收益与代价确定是否要完整回收大块。垃圾回收的收益是被回收的物理块,而代价是垃圾回收过程中搬移有效数据带来的数据写入量。依据收益与代价的关系,从完整回收大块与不完整回收大块之中进行选择。例如,根据大块中有效数据量和或有效数据占比来判断是否完整回收大块,以确保回收有效数据量高的物理块,保留有效数据量低的物理块。保留的物理块可以是有效数据量高于阈值的物理块,或者是有效数据占比高于阈值的物理块;回收的物理块则可以是有效数据量不高于阈值的物理块或有效数据占比不高于阈值物理块。在一个例子中,在大块的物理块中的有效数据量低于阈值或大块的物理块中的有效数据占比低于阈值的情况下,确定完整回收大块。在大块的物理块中的有效数据量不低于阈值,大块的物理块中的有效数据占比不低于阈值的情况下,确定不完整回收大块。在又一个例子中,在大块的每个物理块中的有效数据量都低于阈值或大块的每个物理块中的有效数据占比都低于阈值的情况下,确定完整回收大块。在另一个例子中,在大块的有效数据量高于阈值的物理块的数量低于阈值或大块的有效数据占比高于阈值的物理块数量高于阈值的情况下,确定完整回收大块。在大块的物理块中的有效数据占比低于阈值的物理块的数量占大块物理块总数量的比值低于阈值的情况下,确定不完整回收大块。或者,在大块的物理块中有效数据量低于阈值的物理块的数量占大块物理块总数量的比值低于阈值的情况下,确定不完整回收大块。在依然又一个例子中,在大块的待回收数据量大于阈值的情况下,确定不完整回收大块。需要说明的是,在与设定阈值进行比较时,比较对象不同,设定阈值也不同,阈值可以根据实际需求进行设置。进一步地,在确定不完整回收大块的情况下,将回收的物理块的有效数据写入空闲大块;擦除被回收的物理块;将擦除后的物理块添加到空闲物理块集合。进一步地,响应于大块被不完整回收,还更新脏大块集合中指示被不完整回收的大块的元素,例如,从元素中删除被回收的一个或多个物理块的地址,以及在元素中记录更新后的存储校验数据的物理块的地址。进一步地,由于大块的部分物理块被回收,大块原有的存储校验数据的物理块失效,擦除该物理块。可选地,还将被擦除的物理块添加到空闲物理块集合。空闲物理块集合中的物理块被用于构建大块。根据本申请的实施例还提供了构建大块的操作例如,由get_xblock所指示。通过构建大块的操作,从空闲物理块集合中获取指定数量的物理块以构建大块,生成大块的元数据。元数据中指示大块的RAID配置包括校验数据的存储位置、记录各物理块的地址、记录各物理块的擦除次数或记录大块的擦除次数。可选地,还根据大块的元数据,生成空闲大块集合的元素,并将元素添加到空闲大块集合中。依然可选地,根据大块的元数据,向大块写入数据,在大块被写满后,生成脏大块集合的元素,并将元素添加到脏大块集合中。依然可选地,为构建大块,从指定数量的空闲物理块的子集合的每个中获取物理块,用获取的物理块构建大块。进一步地,执行构建大块的操作时,指定所创建大块的寿命或擦除次数,作为响应,从空闲物理块集合中获取具有所指定的寿命或擦除次数或擦除次数范围的物理块构建大块。根据本申请的实施例,还提供向空闲物理块集合释放大块的操作。通过释放大块的操作,将指定大块的所有物理块添加到空闲物理块集合。可选地,释放大块的操作还擦除所释放的物理块。可选地,指定的大块是来自脏大块集合或空闲大块集合的大块。根据本申请的实施例,提供向空闲物理块集合释放物理块的操作。通过释放物理块的操作,将指定物理块添加到空闲物理块集合。可选地,释放物理块的操作还包括擦除所释放的物理块。根据本申请的实施例,还提供重构大块的操作例如,由rebuild_xblock所指示。为实施重构大块的操作,需指示待重构的大块。作为举例,待重构的大块中,部分物理块因发生故障或被执行垃圾回收操作而不再属于待重构的大块。在这种情况下,在重构大块的操作中,识别属于大块的物理块和或不再属于大块的物理块。在一个例子中,大块X1的存储校验数据的m个m是正整数物理块不再属于大块X1。从空闲物理块集合中获取m个空闲物理块,从大块X1的其他物理块中读出数据,按大块X1的RAID配置生成校验数据,并写入所获取的m个空闲物理块,以及更新在脏大块集合中的指示大块X1的元素,在该元素中记录属于大块X1的所有物理块用获取的m个物理块的地址替换不再属于大块X1的m个物理块的地址,以及更新存储校验数据的物理块的地址。可选地,还更新大块X1的擦除次数和或大块创建时间。在另一个例子中,大块X2的存储用户数据的n个n是正整数物理块不再属于大块X2。为实施重构大块的操作,从空闲物理块集合中获取n+mm是正整数个空闲物理块,大块X2中的m个物理块存储校验数据。由于n个物理块不再数据大块X2,也需更新大块X2的校验数据。从大块X2的除了n个不再属于大块X2的物理块中读取数据,利用RAID技术恢复n个物理块的数据,将恢复得到的数据写入获取的n个物理块。以及将大块X2的存储校验数据的物理块读取校验数据,并写入获取的m个物理块。以及更新在脏大块集合的指示大块X2的元素,在该元素中记录属于大块X2的所有物理块用获取的n+m个物理块的地址替换不再属于大块X2的n个物理块的地址与大块X2原来的m个存储校验数据的物理块的地址,以及更新的存储校验数据的物理块的地址。可选地,还更新大块X2的擦除次数和或大块创建时间。根据本申请的实施例,还提供删除物理块的操作。为实施删除物理块的操作,需指示待删除的物理块,并响应于删除物理块的操作的执行,从空闲物理块集合中移除待删除的物理块。作为举例,在识别出物理块故障时,从空闲物理块集合中删除故障的物理块。图7是根据本申请又一实施例的垃圾回收过程的流程图,以下结合该流程图对垃圾回收过程中所涉及到的操作进行描述。步骤710:为进行垃圾回收,从脏大块集合中选择待回收的大块。脏大块集合中的大块在垃圾回收过程中具有不同的优先级。例如,根据大块的有效数据量、有效数据占比、擦除次数和或数据被记录的时间等确定优先级。并根据优先级从脏大块集合中选择待回收的大块。步骤720:扫描大块,确定是否要完整回收大块。作为举例,扫描大块的各个物理块的有效数据量,回收有效数据占比低于阈值的物理块。作为一个例子,若大块中的所有物理块的有效数据量或有效数据占比均低于阈值,则完整回收该大块;若大块中的部分物理块的有效数据量或有效数据占比不低于阈值,则保留这部分有效数据量大或有效数据占比较高的物理块,而不完整回收大块。作为又一个例子,由于部分回收不完整回收大块时,要重新生成校验数据,因而,仅在大块中有效数据量小或有效数据占比较低的物理块的数量占大块的物理块的总数的比例较低时例如,小于10%,或者,对于N+1的RAID配置,小于1-1N*p,其中p是大块的有效数据占比或平均有效数据占比,才不完整回收大块;若大块中有效数据量小或有效数据占比较低的物理块的数量占大块的物理块的总数的比例较高,则即使存在若干有效数据量大或有效数据占比较高的物理块,也依然完整回收该大块。需要指出的,大块中的记录校验数据的物理块无须被回收,也不利用记录校验数据的物理块识别是否需要完整回收大块。步骤730:若判断要完整回收大块,扫描待回收的大块,将待回收大块的有效数据写入空闲大块,以及将待回收大块的有效数据都写入空闲大块;以及步骤735:擦除待回收大块的所有物理块,并将擦除后的大块记录在空闲大块集合中。步骤740:若判断要不完整回收大块,获取待回收大块中待回收的一个或多个物理块。例如,获取待回收大块中,有效数据量或有效数据占低于阈值的物理块。步骤742:将待回收物理块中的有效数据写入空闲大块;步骤744:擦除待回收的物理块,并将擦除的物理块记录在空闲物理块集合中。由于大块中的部分物理块被擦除,破坏了大块的RAID配置,需要为大块重新生成校验数据。步骤746:从待回收大块的剩余物理块未在步骤644被擦除的物理块包括大块的用于记录校验数据的物理块中读出数据,根据RAID配置对应的校验数据生成规则例如,计算异或,重新生成校验数据,并将校验数据写入从空闲物理块集合获取的空闲物理块。步骤748:以及更新待回收大块在脏大块集合中的对应元素,将获取的被写入了校验数据的物理块的地址记录在该对应元素中,从而该物理块称为待回收大块的组成部分。以及还擦除待回收大块原来的用于记录校验数据的物理块,将擦除后的物理块添加到空闲物理块集合。更新后的脏大块集合元素指示待回收的大块包括的物理块为,待回收大块的剩余物理块,去除待回收大块的原来用于记录校验数据的物理块,添加了用于记录重新生成的校验数据的物理块。可选地,在用于记录重新生成的校验数据的物理块中记录更新后的大块元数据例如,该物理块所属大块的所有物理块地址、大块的RAID配置、存储大块的RAID校验数据的物理块、大块被创建的时间、物理块的擦除次数与物理块被写入数据的时间。图8是根据本申请实施例的大块被不完整回收的示意图。根据图8的实施例,大块包括物理块B0-0、B0-1、B0-2、……B0-N-1与B0-N,这些物理块的每个中记录相同的大块元数据M0。大块的RAID配置为N+1。在垃圾回收过程中,仅物理块B0-2的有效数据量少于阈值,物理块B0-2被回收。由于物理块B0-2被回收,记录大块的校验数据的物理块B0-N失效,从大块的除被回收的物理块B0-2之外的其他所有物理块包括物理块B0-N读出数据,利用读出的数据根据大块的RAID配置生成校验数据,并写入新获取的空闲物理块B0-N’。以及生成大块的新校验数据M0’,将校验数据M0’写入新获取的空闲物理块B0-N’。可以理解地,大块中记录元数据M0以及更新元数据,不是必须的。在元数据M0’中记录大块包括物理块B0-0、B0-1、……B0-N-1与B0-N’,大块的RAID配置为N-1+1。可选地,元数据M0’中保留元数据M0的大块擦除次数与大块创建时间或被写入数据的时间。依然可选地,元数据M0’中记录大块的每个物理块的擦除次数与被写入数据的时间。进一步地,在元数据M0’中还记录时间戳,以指示M0’被写入物理块的时间。以及在元数据M0中也记录有指示其被写入物理块时间的时间戳。可选地,采用单调递增的值替代时间戳。依然可选地,在元数据M0’中记录序号,并使得元数据M0’的序号大于物理块B0-0、B0-1……B0-N-1的任务一个的元数据M0中的序号。以及也更新脏大块集合中同该大块对应的元素。在本申请的实施例中,脏大块表被记录在NVM芯片中。固态存储设备上电或启动时,读出脏大块表,依据表中的元素,获得同元素对应的大块所包括的所有物理块。在一些情况下,NVM芯片中记录的脏大块表不完整或被破坏,需要扫描NVM芯片的物理块以重构脏大块表。在一个实施例中,为重构脏大块表,对于被扫描的一个物理块B,依据其中记录的元数据例如M0,获得同物理块B属于相同大块的所有物理块例如,B1、B2、……BN,元数据M0记录了序号S0。从物理块B1、B2、……BN的每一个的元数据中获取序号,若获取的任何序号都不大于S0,则物理块B的元数据M0有最新的有效元数据,依据M0创建脏大块表的元素。若从物理块B1、B2、……BN获取的任何序号大于S0,则提取物理块B1、B2、……BN的每一个的元数据中值最大的序号例如,Si,用序号Si所在的元数据Mi中记录的所有物理块构建大块,并更新脏大块表的元素。进一步地,寻找值最大的序号的过程可以是递归的。例如从元数据Mi中记录的所有物理块中再次寻找值最大的序号例如,Sj,用序号Sj所在的元数据Mi中记录的所有物理块构建大块,并更新脏大块表的元素。进一步地,若元数据Mi或Mj中记录的部分物理块已损坏,则从扫描的物理块中提取值次大的序号例如,Si-1或Sj-1,用序号Si-1所在的元数据Mi-1或序号Sj-1所在的元数据Mj-1中记录的所有物理块构建大块,并更新脏大块表的元素。根据本申请的实施例还提供了一种固态存储设备,该设备包括控制器与非易失存储器芯片,其中,控制器执行本申请实施例提供的任意一种垃圾回收方法。根据本申请的实施例还提供了一种存储在可读介质上的程序,当被固态存储设备的控制器运行时,使得固态存储设备执行根据本申请实施例提供的任意一种垃圾回收方法。NVMe协议中还定义了命名空间namespace,NS。大小为n的命名空间是具有从0到n-1的逻辑块地址的逻辑块集合。通过命名空间IDNamespaceID,NSID能够唯一标识命名空间。命名空间可以在主机NVMe控制器之间共享。主机通过单一NVMe控制器能够访问不同命名空间。不同主机也可通过多个NVMe控制器访问相同的命名空间。逻辑块可以被寻址和访问。作为举例,逻辑块的大小为4KB。图9是根据本申请一个实施例的命名空间表。图9的实施例中,固态存储设备提供4个命名空间,其NSID分别为0、1、2与3。将固态存储设备的逻辑单元LUN组绑定到命名空间。图9中,逻辑单元组0与1被分配给NSID为0的命名空间,逻辑单元组2与3被分配给NSID为1的命名空间。逻辑单元组与命名空间的绑定关系,作为举例,在命名空间被创建时指定。可选地,命名空间创建时,选择命名空间的服务质量等级,依据命名空间的用户空间范围与所选择的服务质量等级,确定逻辑单元组数量。例如,创建命名空间0时,要求的用户存储空间大小为N,以及服务质量等级为L,根据服务质量等级确定为用户提供的额外存储空间OP,Over-Provisioning,进而确定满足要求的用户存储空间N以及额外存储空间OP所需的物理存储空间T,进而再确定提供这些物理存储空间所需的逻辑单元组数量。其中,作为举例,额外存储空间OP=T-NN。作为举例,固态存储设备的逻辑单元组,最多被绑定到一个命名空间,而多个命名空间不会共享逻辑单元组。可选地,固态存储设备维护未被使用的逻辑单元组集合。在创建命名空间时,从未被使用的逻辑单元组集合中为新创建的命名空间分配逻辑单元组。在命名空间被销毁时,将被销毁的命名空间的逻辑单元组归还给未被使用的逻辑单元组集合。根据图9的实施例,固态存储设备的各个命名空间,可具有不同的额外存储空间OP。各个命名空间具有不同的逻辑地址范围,因而可使用相同的FTL表。可选地,为每个命名空间提供属于各自的FTL表。为向命名空间写入数据,从绑定到命名空间的逻辑单元组中为写入数据分配空闲大块。以及可选地,为每个命名空间记录脏大块集合参看图4A、空闲大块集合参看图4B和或空闲物理块集合。脏大块集合中仅记录属于其所对应命名空间的脏大块。空闲大块集合中仅记录属于其所对应命名空间的空闲大块。脏物理块集合中仅记录属于其所对应命名空间的脏物理块。为进行垃圾回收,对于例如NSID为1的命名空间,将从其脏大块回收的有效数据写入绑定到命名空间NSID1的逻辑单元组2或3中的大块。可选地,将回收的大块,归还给对应于命名空间NSID1的空闲大块集合。以及命名空间的每个可具有不同的用于垃圾回收的参数。例如,发起垃圾回收的控制大块阈值。例如,对于命名空间NSID2,在属于该命名空间的空闲大块小于15个时,发起垃圾回收操作;而对于NSID3,在属于该命名空间的空闲大块小于10个时,发起垃圾回收操作。命名空间的每个还可具有不同的垃圾回收策略。例如,对于命名空间NSID0,垃圾回收操作优先于读操作写操作,而对于命名空间NSID0,读操作写操作操作优先于垃圾回收操作。依然可选地,在指定条件下,改变固态存储设备的命名空间与逻辑单元组的绑定关系。例如,固态存储设备工作一段时间后,由于各个命名空间的使用情况不同,命名空间NSID1承载了过多的写入操作,而命名空间NSID0承载的写操作较少,导致逻辑单元组2与3的预期寿命明显短于逻辑单元0与1的预期寿命。改变命名空间与逻辑单元组的绑定关系,例如,将逻辑单元组0与1绑定到命名空间NSID1,以及将逻辑单元组2与3绑定到命名空间NSID0。并通过垃圾回收操作,将逻辑单元组0与1的原属于命名空间NSID0的有效数据搬移到逻辑单元组2与3,以及将逻辑单元组2与3的原属于命名空间NSID1的有效数据搬移到逻辑单元组0与1。改变固态存储设备的命名空间与逻辑单元组的绑定关系的指定条件,包括,例如,用户发出了指定命令,固态存储设备工作了指定时间,各命名空间的数据写入量的差异超过阈值,或者命名空间的逻辑单元组的预期寿命将尽。图10是根据本申请又一实施例的命名空间表。同图9的实施例相比,图10的实施例提供命名空间与物理存储空间的细粒度绑定关系。图10的实施例中,固态存储设备提供4个命名空间,其NSID分别为0、1、2与3。将固态存储设备的逻辑单元LUN组绑定到大块。图10中,大块0-100被分配给NSID为0的命名空间,大块101-200以及大块300-400被分配给NSID为1的命名空间。大块与命名空间的绑定关系,作为举例,在命名空间被创建时指定。可选地,命名空间创建时,选择命名空间的服务质量等级,依据命名空间的用户空间范围与所选择的服务质量等级,确定大块数量。作为举例,固态存储设备的大块,最多被绑定到一个命名空间,而多个命名空间不会共享大块。可选地,固态存储设备维护未被绑定到命名空间的大块集合。在创建命名空间时,从未被绑定到命名空间的大块集合中为新创建的命名空间分配大块。在命名空间被销毁时,将被销毁的命名空间的大块归还给未被绑定到命名空间的大块集合。根据图10的实施例,固态存储设备的各个命名空间,可具有不同的额外存储空间OP。可选地,为每个命名空间记录脏大块集合参看图4A、空闲大块集合参看图4B和或空闲物理块集合。脏大块集合中仅记录属于其所对应命名空间的脏大块。空闲大块集合中仅记录属于其所对应命名空间的空闲大块。脏物理块集合中仅记录属于其所对应命名空间的脏物理块。为进行垃圾回收,对于例如NSID为1的命名空间,将从其脏大块集合回收的有效数据写入绑定到命名空间NSID1的空闲大块。可选地,将回收的大块,归还给对应于命名空间NSID1的空闲大块集合。以及命名空间的每个可具有不同的用于垃圾回收的参数,与不同的垃圾回收策略。依然可选地,在指定条件下,改变固态存储设备的命名空间与大块的绑定关系。图11是根据本申请又一实施例的命名空间的示意图。根据本申请图11的实施例,固态存储设备为每个命名空间提供空闲大块集合参看图4A、脏大块集合参看图4B与空闲物理块集合。作为举例,命名空间NSID0具有空闲大块集合FXS0、脏大块集合DXS0与空闲物理块集合FBS0,命名空间NSID1具有空闲大块集合FXS1、脏大块集合DXS1与空闲物理块集合FBS1。一个大块或物理块在同一时刻,最多属于一个命名空间;多个命名空间不会共享大块或物理块。但属于一个命名空间的大块,可被解除同该命名空间的绑定关系,并绑定到另一个命名空间。属于同一命名空间的多个大块,可来自不同的逻辑单元组。空闲物理块集合中记录可用于构成大块但尚未用于构成大块的属于某一命名空间的物理块。例如,空闲物理块集合FBS0记录了多个空闲物理块FB0-0、FB0-1等,空闲物理块集合FBS1记录了多个空闲物理块FB1-0、FB1-1等。可选地,空闲物理块集合包括多个子集合,每个子集合记录属于某一命名空间且源于一个LUN的空闲物理块。根据本申请的实施例,提供从空闲物理块集合构建大块的操作例如,由get_xblock所指示。通过构建大块的操作,从属于某一命名空间的空闲物理块集合中获取指定数量的物理块以构建属于该命名空间的大块,生成大块元数据。可选地,根据大块的元数据,生成属于该命名空间的空闲大块集合的元素,并将元素添加到属于该命名空间的空闲大块集合中。依然可选地,根据大块的元数据,向大块写入数据,在大块被写满后,生成属于该命名空间的脏大块集合的元素,并将元素添加到该脏大块集合中。依然可选地,为构建属于某一命名空间的大块,从属于该命名空间的空闲物理块集合的指定数量的子集合的每个中获取物理块,用获取的物理块构建大块。从而大块可具有不同数量的物理块。根据本申请的实施例,提供向属于某一命名空间的空闲物理块集合释放大块的操作。通过释放大块的操作,将指定大块的所有物理块添加到属于该命名空间空闲物理块集合。根据本申请的实施例,提供向属于某一命名空间的空闲物理块集合释放物理块的操作。通过释放物理块的操作,将指定物理块添加到属于该命名空间的空闲物理块集合。根据本申请的实施例,还提供重构属于某一命名空间的大块的操作例如,由rebuild_xblock所指示。为实施重构大块的操作,需指示待重构的大块。在重构大块的操作中,识别属于大块的物理块和或不再属于大块的物理块,其中该大块属于例如命名空间NSID0。在一个例子中,大块X3的存储用户数据的n个n是正整数物理块不再属于大块X2。为实施重构大块的操作,从属于命名空间NSID0的空闲物理块集合中获取n+m个空闲物理块,其中m是正整数,并且大块X2中的m个物理块存储校验数据。由于n个物理块不再数据大块X2,也需要更新大块X2的校验数据。从大块X2的除外了n个不再属于大块X2的物理块中读取数据,利用RAID技术恢复n个物理块的数据,将恢复得到的数据写入从空闲物理块集合中获取的n个物理块。以及从大块X2的存储校验数据的物理块读取校验数据,并写入从属于命名空间NSID0的空闲物理块集合中获取的m个物理块。以及更新在脏大块集合的指示大块X2的元素,在元素中记录属于大块X2的所有物理块用获取的n+m个物理块的地址替换不再属于大块X2的n个物理块的地址与大块X2的原来的m个存储校验数据的物理块的地址。在命名空间内进行垃圾回收操作。为进行垃圾回收,对于例如命名空间NSID0,将从其脏大块集合DXS0回收的有效数据写入从空闲大块集合FXS0获取的空闲大块。可选地,将回收的大块,归还给对应于命名空间NSID0的空闲大块集合。例如,根据本申请图6与图7的实施例,在命名空间内进行垃圾回收操作。以及命名空间的每个可具有不同的用于垃圾回收的参数,与不同的垃圾回收策略。根据本申请的实施例,还提供从属于某一命名空间的空闲物理块集合删除物理块的操作。为实施删除物理块的操作,需指示待删除的物理块,并响应于删除物理块的操作的执行,从属于某命名空间空闲物理块集合中移除待删除的物理块。通过从属于某一命名空间的空间物理块集合删除物理块,减小了属于该命名空间的额外存储空间OP。根据本申请的实施例,还提供向属于某一命名空间的空间物理块集合追加物理块的操作。为实施追加物理块的操作,需指示待追加的物理块。被追加的物理块应当是空闲物理块,或者未被固态存储设备的任何命名空间使用的物理块。响应于追加物理块的操作的执行,将被追加的物理块记录到属于该命名空间的空闲物理块集合中。通过向属于某一命名空间的空间物理块集合追加物理块,增大了属于该命名空间的额外存储空间OP。从而,根据本申请的实施例,可以物理块为粒度在各个命名空间之间调节其额外存储空间OP。例如,通过将空闲物理块从空闲物理块集合FBS0搬移到空闲物理块集合FBS1,来减少空闲物理块集合FBS0的空闲物理块数量,而相应地增大空闲物理块集合FBS1的空闲物理块数量,进而条件各个命名空间的额外存储空间OP。而额外存储空间的数量,会影响垃圾回收操作的发起时机和或频率,进而影响命名空间的性能。一般地,具有较大额外存储空间OP的命名空间具有较好的性能,而具有较小额外存储空间OP的命名空间具有相对较差的性能。图12是根据本申请依然又一实施例的命名空间的示意图。根据本申请图12的实施例,固态存储设备提供多个命名空间,例如NSID分别为0、1、2与3的命名空间。每个命名空间包括属于自身的脏大块集合与空闲大块计数。例如,图12中,脏大块集合DXS0是命名空间NSID0的脏大块集合,而脏大块集合DXS1是命名空间NSID的脏大块集合。空闲大块计数FBC0记录了属于命名空间NSID0的空闲大块的数量,空闲大块计数FBC1记录了属于命名空间NSID的空闲大块的数量。各个命名空间具有不同的逻辑地址范围,因而可使用相同的FTL表。可选地,为每个命名空间提供属于各自的FTL表。固态存储设备还维护全局的空闲大块集合FXS,用于为固态存储设备的多个命名空间提供大块。固态存储设备的各个命名空间的空闲大块计数例如,FBC0、FBC1、FBC2与FBC3的和小于或等于空闲大块集合FXS中的空闲大块的数量。当命名空间需要空闲大块时,从空闲大块集合FXS获取空闲大块,并且响应于获取到空闲大块,使自身的空闲大块计数递减,从而维护自身可用的空闲大块数量。在命名空间被创建、初始化或格式化时,根据命名空间的容量与性能需求,为命名空间指定空闲大块计数FBC即该命名空间可使用的空闲大块总数。可选地,确保新创建的命名空间的空闲大块计数FBC与已经存在的命名空间的空闲大块计数的和,不超过空闲大块集合FXS的空闲大块数量。当命名空间被删除时,将命名空间所使用的大块该命名空间的脏大块集合中记录的大块释放给空闲大块集合。根据图12的实施例中,响应于用户的指示或指定条件的满足,更改命名空间的空闲大块计数,从而实现调整命名空间的额外存储空间OP的目的。例如,用户希望为命名空间NSID0提供更好的性能和或更长的寿命,而增加命名空间NSID0的额外存储空间OP而不增加命名空间NSID的用户可使用存储空间,作为响应,固态存储设备使空闲大块计数FBC0增加,以指示命名空间NSID0可使用更多的空闲大块。固态存储设备还保证空闲大块计数FBC0增加后,固态存储设备的多个命名空间的空闲大块计数的和不超过空闲大块集合FXS的空闲大块数量。例如,通过使命名空间NSID1的空闲大块计数FBC减少来满足固态存储设备的多个命名空间的空闲大块计数的和不超过空闲大块集合FXS的空闲大块数量的要求。或者,在固态存储设备的多个命名空间的空闲大块计数的和小于空闲大块集合FXS的空闲大块数量的情况下,可增加空闲大块计数FBC0,而无须减小其他空闲大块计数。在一个可选的实施例中,允许临时地固态存储设备的各个命名空间的空闲大块计数例如,FBC0、FBC1、FBC2与FBC3的和大于空闲大块集合FXS中的空闲大块的数量。例如,当预测命名空间NSID1的近期无须使用空闲大块,而命名空间NSID0对空闲大块有较大需求,在不改变脏大块计数FBC1的情况下,调高脏大块计数FBC0,使得的各个命名空间的空闲大块计数暂时超过空闲大块FXS中的空闲大块数量,以换取命名空间NSID0的暂时的高性能。以及在命名空间NSID1需要空闲大块或将需要空闲大块时,从空闲大块集合FXS获取空闲大块。若空闲大块集合FXS的空闲大块数据不足,通过在命名空间NSID0或其他命名空间上的垃圾回收操作,来补充空闲大块集合FXS的空闲大块,以及适时地调低脏大块计数FBC0,使得的各个命名空间的空闲大块计数不超过空闲大块FXS中的空闲大块数量。一个大块或物理块在同一时刻,最多属于一个命名空间;多个命名空间不会共享大块或物理块。为每个命名空间进行垃圾回收。可选地,为一个命名空间进行的垃圾回收,不影响或低影响其他命名空间的读写请求处理。由于每个命名空间由属于自身的脏大块集合以及空闲大块计数,为各个命名空间独立地确定垃圾回收操作的启动时机。例如,响应于命名空间NSID0的空闲大块计数较大,可推迟或暂不在命名空间NSID0上进行垃圾回收操作。而响应于命名空间NSID1的空闲大块计数较小,可立即发起在命名空间NSID1上的垃圾回收操作。通过为各个命名空间提供空闲大块计数,使得各命名空间拥有各自的额外存储空间OP,并进而影响各命名空间的性能。例如,拥有较大额外存储空间OP的命名空间,具有较高的寿命,较少的垃圾回收操作、较低的写入数据量、较低的写放大WA,WriteAmplification和或较好的性能。从而同一固态存储设备的各个命名空间可具有不同的性能和或服务质量,用于可通过选择所使用的命名空间来获得差异化的容量、性能和或服务质量。并且,根据本申请的实施例,用户可在固态存储设备使用过程中,更改命名空间的空闲大块计数或额外存储空间OP,以实现对固态存储设备的按需使用。作为举例,对命名空间NSID2进行垃圾回收操作。从脏大块集合DXS2中获取待回收的脏大块。将脏大块中的有效数据写入属于命名空间NSID的空闲大块,并将待回收的脏大块擦除,将被擦除的脏大块归还给空闲物理块集合FBS,以及使空闲大块计数FBC2相应递减。依据命名空间当前的使用情况例如,用户写入数据带宽、用户写入数据量、,决定是否在该命名空间上启动垃圾回收。例如,在命名空间NSID0上的用户写入数据量较低时,在命名空间NSID0上执行垃圾回收,从脏大块集合DXS0获取待回收的脏大块。作为另一个例子,每个命名空间具有写入数据带宽的配额,确保在指定命名空间上,用户写入的数据与垃圾回收要写入的数据的总和不超过该命名空间的配额。例如,依据命名空间的写入数据带宽配额与用户写入数据带宽的差,确定是否有可用的写入数据带宽提供给在该命名空间用于垃圾回收。通过为各个命名空间执行垃圾回收,避免了一个命名空间中的垃圾回收操作对其他命名空间的用户体验的影响,有利于保证服务质量。可选地,对各个命名空间上的垃圾回收操作进行调度,以平衡各命名空间的性能、性能波动、服务质量和或可用存储空间大小。可选地,垃圾回收过程,以大块为单位进行。根据本申请图12的进一步的实施例,固态存储设备还维护空闲物理块集合FBS。固态存储设备的各个命名空间都可从空闲物理块集合FBS获取空闲物理块,并将物理块归还给空闲物理块集合。固态存储设备的一个或多个命名空间,使用具有可变物理块数量的大块,例如,本申请图3A的实施例所展示的大块。在为命名空间例如,命名空间NSID3进行垃圾回收时,参看本申请图7,从例如脏大块集合DXS3选择待回收的大块,确定待回收的大块应当被不完整回收720,获取待回收大块中待回收的一个或多个物理块740。将待回收物理块中的有效数据写入属于命名空间NSID3的空闲大块742,以及擦除待回收的物理块,并将擦除的物理块记录在空闲物理块集合FBS中744。由于待回收的大块被不完整回收,无须更改空闲大块计数FBC的值。以及还从空闲物理块集合FBS获取空闲物理块,用于承载待回收大块的校验数据,并更新脏大块集合DXS3中指示待回收大块的元素,以指示该待回收大块中包括了新获取的空闲物理块,而不再包括被擦除的物理块。可选地,从空闲物理块集合FBS中获取多个空闲物理块以构建空闲大块,将获取的多个空闲物理块从空闲物理块集合FBS删除,并将构建的空闲大块添加到空闲大块集合FXS。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

权利要求:1.一种由固态存储设备执行的方法,其中所述固态存储设备包括多个命名空间,其中第一命名空间具有第一额外存储空间OP,第二命名空间具有第二额外存储空间OP,第一额外存储空间不同于第二额外存储空间;所述方法包括:根据第一命名空间的空闲大块数量确定在第一命名空间上启动垃圾回收操作;以及根据第二命名空间的空闲大块数量确定在第二命名空间上启动垃圾回收操作。2.根据权利要求1所述的方法,还包括:响应于改变第一命名空间的额外存储空间的请求,使第一命名空间的空闲大块数量增加。3.根据权利要求1或2所述的方法,还包括:为在第一命名空间上执行垃圾回收操作,从属于第一命名空间的脏大块集合获取第一大块,将第一大块的有效数据写入从空闲大块集合获取的第一空闲大块,擦除第一大块的物理块,并将第一大块添加到空闲大块集合。4.根据权利要求1-3之一所述的方法,还包括:为在第二命名空间上执行垃圾回收操作,从属于第二命名空间的脏大块集合获取第二大块,将第二大块的有效数据写入从空闲大块集合获取的第二空闲大块,擦除第二大块的物理块,并将第二大块添加到空闲大块集合。5.根据权利要求4的所述方法,还包括:响应于从空闲大块集合获取了第二空闲大块,使第二命名空间的空闲大块数量递减;以及响应于将第二大块添加到空闲大块集合,使第二命名空间的空闲大块数量递增。6.一种由固态存储设备,包括多个命名空间,其中第一命名空间具有第一额外存储空间OP,第二命名空间具有第二额外存储空间OP,第一额外存储空间不同于第二额外存储空间;所述固态存储设备还包括控制器,所述控制器根据第一命名空间的空闲大块数量确定在第一命名空间上启动垃圾回收操作;以及根据第二命名空间的空闲大块数量确定在第二命名空间上启动垃圾回收操作。7.根据权利要求6所述的固态存储设备,还包括空闲大块集合,所述多个命名空间可从所述空闲大块集合获取空闲大块。8.根据权利要求6或7所述的固态存储设备,所述控制器为在第一命名空间上执行垃圾回收操作,从属于第一命名空间的脏大块集合获取第一大块,在确定不完整回收第一大块的情况下,保留第一大块的一个或多个第一物理块,而回收除所述一个或多个第一物理块之外的第一大块的一个或多个第二物理块。9.根据权利要求8所述的固态存储设备,所述控制器还将第二物理块的有效数据写入从空闲大块集合获取的第一空闲大块;擦除第二物理块;以及将擦除后的第二物理块添加到空闲物理块集合。10.一种固态存储设备,包括控制器,所述控制器通过运行程序来使得所述固态存储设备执行根据权利要求1-5任一项所述的由固态存储设备执行的方法。

百度查询: 北京忆恒创源科技股份有限公司 具有可变额外存储空间的固态存储设备命名空间

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。