使用XCOPY和多逻辑条带的优化的基于主机的垃圾收集策略的高效实现方式制造技术

技术编号:18824772 阅读:29 留言:0更新日期:2018-09-01 13:41
系统、方法和/或装置,用于使用xcopy和闪存装置的阵列来高效实现优化的基于主机的垃圾收集策略。在一个方面中,管理具有一个或多个存储装置的存储系统的方法包括基于主机的垃圾收集操作,其包括根据存储在主机系统处的数据存储信息识别两个或更多个逻辑条带,并启用合并该两个或更多个逻辑条带中的有效数据的过程。另外,使用内部复制操作(例如xcopy)允许基本主机的垃圾收集操作在不将数据传回主机的情况下进行,从而使主机和存储装置之间的I/O操作的数量最小化。此外,使用基于主机的垃圾收集操作允许使用更复杂的垃圾收集算法(例如,匹配当前工作量),并确保多个逻辑条带可用于写入数据。

【技术实现步骤摘要】
【国外来华专利技术】使用XCOPY和多逻辑条带的优化的基于主机的垃圾收集策略的高效实现方式
所公开的实施例总体上涉及存储器系统,有时称为数据存储系统,并且具体地涉及使用闪速装置的阵列和主机确定的命令的优化的基于主机的垃圾收集策略的有效实现方式,以在内部将有效数据复制到存储系统。
技术介绍
包括闪速存储器的半导体存储器装置通常利用存储器单元将数据存储为电值,诸如电荷或电压。例如,闪速存储器单元包括具有浮置栅极的单个晶体管,该浮置栅极用于存储代表数据值的电荷。闪速存储器是可以电擦除和重新编程的非易失性数据存储装置。更一般地,与需要电力维持所存储的信息的易失性存储器相反,非易失性存储器(例如,闪速存储器,以及使用各种技术中的任一种实现的其他类型的非易失性存储器)即使在未供电时也保留所存储的信息。存储密度的增加已经以各种方式得到促进,包括通过制造开发增加使能的芯片上的存储器单元的密度,以及从单级闪速存储器单元转换到多级闪速存储器单元,使得两个或更多个位可以由每个闪速存储器单元存储。由于闪速存储器只能被编程和擦除有限的次数,所以优化存储器管理方案(例如垃圾收集、耗损均衡、高速缓存等)以提高存储器装置的性能和耐用性是很重要的。垃圾收集是存储器管理的过程,其回收存储器的不再含有有效数据的部分。使用闪速存储器作为示例,数据以称为页的单位写入闪速存储器,页由多个存储单元组成。然而,闪速存储器以称为块的较大单位被擦除,块由多个页组成。如果第一个块的一些页包含有效数据,则这些页不会被重写,直到含有这些页的整个块被擦除。垃圾收集的过程读取来自第一个块的有效数据并将其重新写入第二个块,然后擦除第一个块。在垃圾收集后,第二个块含有具有有效数据的页和可用于写入新数据的空闲页。由于闪速存储器只能进行有限次数的编程和擦除,因此利用最大化或改善基于闪速的存储系统的寿命的垃圾收集机制是重要的。
技术实现思路
在所附权利要求的范围内的系统、方法和装置的各种实施例均具有若干方面,其中没有任何单个的一个仅仅负责本文描述的属性。在不限制所附权利要求的范围的情况下,在考虑了本公开之后,并且特别是在考虑标题为“具体实施方式”的部分之后,将理解如何使用各种实施例的各方面来实现使用闪速装置的阵列和主机确定的命令(例如xcopy)来优化基于主机的垃圾收集策略的有效实现方式,以在内部将有效数据复制到存储系统。在一个方面,一种管理具有一个或多个存储装置的存储系统的方法包括基于主机的垃圾收集操作,该基于主机的垃圾收集操作包括:根据存储在主机系统处的数据存储信息,识别两个或更多个逻辑条带,以及使能在两个或多个逻辑条带中合并有效数据的过程。合并过程包括移动两个或更多个逻辑条带中的有效数据,并且将有效逻辑地址(即存储有效数据的逻辑地址)重新打包到两个或多个逻辑条带中的每一个的开始处。因此,基于主机的垃圾收集(例如,更好地匹配变化的工作量的垃圾收集)被用来完成存储系统所需的大部分垃圾收集,并且多个逻辑条带可用于分组写入数据(例如根据预期寿命分组的数据)。附图说明为了能够更详细地理解本公开,可以通过参考各种实施例的特征来进行更具体的描述,其中一些实施例的特征在附图中示出。然而,附图仅示出了本公开的相关特征,因此不被认为是限制性的,因为该描述可以承认其他有效特征。图1是示出了根据一些实施例的数据存储系统的实现方式的框图。图2A是示出了根据一些实施例的主机计算装置的框图。图2B是示出了根据一些实施例的非易失性存储器控制器的存储器管理模块的框图。图2C是示出了根据一些实施例的包含在图2A和图2B中的次级映射表的图。图3是根据一些实施例的分层式数据结构的概念图。图4是示出了根据一些实施例的内部复制操作(例如xcopy)的图。图5是根据一些实施例的基于主机的垃圾收集操作的概念流程图。图6A-6D图示了根据一些实施例的管理存储系统的方法的流程图表示。根据惯例,附图中图示的各种特征可能不是按比例绘制的。因此,为了清楚起见,各种特征的尺寸可以任意扩大或缩小。另外,一些附图可能没有描述给定系统、方法或装置的所有组件。最后,贯穿说明书和附图,相同的附图标记可以用来表示相同的特征。具体实施方式非易失性存储器系统通常用于存储信息的数据库,例如存储数据对象及其属性的数据库。通常将数据库组织并存储为分层式数据结构,例如具有其中存储有数据对象、指向数据对象的指针和属性(有时称为元数据)的节点的树数据结构(例如B树)。在写入对象时,一些映射算法(例如基于B树的映射算法)需要最少两个I/O操作:一个用于写入数据,另一个用于写入更新的元数据(例如,用于改变叶子B树节点)。对于这些映射算法,通过使用写入序列化来改善性能,其通过在写入存储之前将多个小写入序列化到整个条带中来避免额外的I/O操作。在下面描述的方法和系统的一些实施例中,为了有效地进行写入序列化,主机进行垃圾收集以回收目标条带内的自由空间的连续区域。本文描述的各种实施例包括系统、方法和/或装置,其用于使用闪存装置的阵列和用于在存储系统内复制有效数据的主机确定的内部复制操作(例如,xcopy)来实现优化的基于主机的垃圾收集策略的高效实现方式。一些实施例包括系统、方法和/或装置,以根据存储在主机系统处的数据存储信息识别两个或更多个逻辑条带,并启用合并两个或更多个逻辑条带中的有效数据的过程,该合并过程包括移动每个识别的逻辑条带中的有效数据,并将有效逻辑地址(即,存储有效数据的逻辑地址)重新打包到对应的逻辑条带的连续部分(例如,在目标逻辑条带的开始处),该目标逻辑条带包括相应的逻辑条带或不同于该相应的逻辑条带的另一逻辑条带。(A1)更具体地说,一些实施例包括管理具有多个存储装置的存储系统的方法。在一些实施例中,该方法包括,在不同于该多个存储装置的主机系统处进行基于主机的垃圾收集操作,包括:根据存储在该主机系统处的数据存储信息,识别两个或更多个逻辑条带,每个逻辑条带对应于该主机系统的逻辑地址空间中的逻辑地址的连续序列,其中每个逻辑条带的逻辑地址的相应的连续序列对应于该多个存储装置的物理地址空间中的物理地址的一个或多个连续序列。另外,该基于主机的垃圾收集操作包括合并该两个或更多个逻辑条带中的有效数据,其包括,对于该两个或更多个逻辑条带中的有效逻辑地址的每个连续序列:(1)从该主机系统向该多个存储装置中的一个或多个存储装置发送指令,以将对应于该有效逻辑地址的相应的连续序列的数据从该物理地址空间中的第一物理位置移动到该物理地址空间中的第二物理位置;以及(2)对于该两个或更多个逻辑条带的每个相应的逻辑条带,将该相应的逻辑条带中的有效逻辑地址重新打包到目标逻辑条带连续部分,该目标逻辑条带包括该相应的逻辑条带或不同于该相应的逻辑条带的另一逻辑条带。(A2)在A1的方法的一些实施例中,识别该两个或更多个逻辑条带包括确定该基于主机的垃圾收集操作需要多少个逻辑条带。(A3)在A1至A2中的任一个的方法的一些实施例中,识别该两个或更多个逻辑条带包括根据选择标准识别该两个或更多个逻辑条带。(A4)在A1至A3中的任一个的方法的一些实施例中,该方法还包括:将该多个存储装置分区为两个或更多个区域,其中该两个或更多个区域中的相应的区域对应于该两个或更多个逻辑条带中的相应的逻辑条带。(A5)在A4的本文档来自技高网
...

【技术保护点】
1.一种管理具有多个存储装置的存储系统的方法,所述方法包括:在与所述多个存储装置不同的主机系统处,进行基于主机的垃圾收集操作,包括:根据存储在所述主机系统处的数据存储信息,识别两个或更多个逻辑条带,每个逻辑条带对应于所述主机系统的逻辑地址空间中的逻辑地址的连续序列,其中每个逻辑条带的逻辑地址的相应的连续序列对应于所述多个存储装置的物理地址空间中的物理地址的一个或多个连续序列;以及合并所述两个或更多个逻辑条带中的有效数据,包括:对于所述两个或更多个逻辑条带中的有效逻辑地址的每个连续序列,从所述主机系统向所述多个存储装置中的一个或多个存储装置发送指令,以将对应于所述有效逻辑地址的相应的连续序列的数据从所述物理地址空间中的第一物理位置移动到所述物理地址空间中的第二物理位置;以及对于所述两个或更多个逻辑条带的每个相应的逻辑条带,将所述相应的逻辑条带中的有效逻辑地址重新打包到目标逻辑条带连续部分,所述目标逻辑条带包括所述相应的逻辑条带或不同于所述相应的逻辑条带的另一逻辑条带。

【技术特征摘要】
【国外来华专利技术】2016.02.23 US 62/298,939;2016.07.12 US 15/208,5401.一种管理具有多个存储装置的存储系统的方法,所述方法包括:在与所述多个存储装置不同的主机系统处,进行基于主机的垃圾收集操作,包括:根据存储在所述主机系统处的数据存储信息,识别两个或更多个逻辑条带,每个逻辑条带对应于所述主机系统的逻辑地址空间中的逻辑地址的连续序列,其中每个逻辑条带的逻辑地址的相应的连续序列对应于所述多个存储装置的物理地址空间中的物理地址的一个或多个连续序列;以及合并所述两个或更多个逻辑条带中的有效数据,包括:对于所述两个或更多个逻辑条带中的有效逻辑地址的每个连续序列,从所述主机系统向所述多个存储装置中的一个或多个存储装置发送指令,以将对应于所述有效逻辑地址的相应的连续序列的数据从所述物理地址空间中的第一物理位置移动到所述物理地址空间中的第二物理位置;以及对于所述两个或更多个逻辑条带的每个相应的逻辑条带,将所述相应的逻辑条带中的有效逻辑地址重新打包到目标逻辑条带连续部分,所述目标逻辑条带包括所述相应的逻辑条带或不同于所述相应的逻辑条带的另一逻辑条带。2.如权利要求1所述的方法,其中识别所述两个或更多个逻辑条带包括确定所述基于主机的垃圾收集操作需要多少个逻辑条带。3.如权利要求1-2中任一项所述的方法,其中识别所述两个或更多个逻辑条带包括根据选择标准识别所述两个或更多个逻辑条带。4.如权利要求1-3中任一项所述的方法,包括:将所述多个存储装置分区为两个或更多个区域,其中所述两个或更多个区域中的相应的区域对应于所述两个或更多个逻辑条带中的相应的逻辑条带。5.如权利要求4所述的方法,其中分区所述多个存储装置包括:确定所述基于主机的垃圾收集操作需要多少个区域;确定所述两个或更多个区域的大小;以及确定所述两个或更多个区域的超额配置量。6.如权利要求4所述的方法,其中分区所述多个存储装置包括,随着所述存储系统的工作量的变化,动态地调整所述两个或更多个区域。7.如权利要求1-6中任一项所述的方法,还包括:在合并所述两个或更多个逻辑条带中的有效数据之后,分类传入的写入请求;以及根据分类标准来选择逻辑条带,在所述逻辑条带中放置所述传入的写入请求。8.如权利要求1-7中任一项所述的方法,其中所述两个或更多个逻辑条带包括第一逻辑条带和第二逻辑条带,且其中所述第一逻辑条带用于具有第一组特性的数据,且所述第二逻辑条带用于具有不同于所述第一组特性的第二组特性的数据。9.如权利要求1-8中任一项所述的方法,其中合并所述两个或更多个逻辑条带中的有效数据包括:根据迁移标准在所述两个或更多个逻辑条带中的不同的逻辑条带之间迁移数据。10.如权利要求1-9中任一项所述的方法,其中从所述主机系统向所述一个或多个存储装置发送指令以移动对应于所述有效逻辑地址的相应的连续序列的数据包括,向所述一个或多个存储装置发布一个或多个xcopy命令。11.如权利要求1-10中任一项所述的方法,其中移动数据的所述指令包括复制指令,所述复制指令将对应于所述两个或更多个逻辑条带中的有效逻辑地址的数据从所述多个存储装置中的初始存储器部分复制到所述多个存储装置的对应于所述两个或更多个逻辑条带中的新的逻辑地址的不同的存储器部分。12.如权利要求1-11中任一项所述的方法,还包括:对于所述两个或更多个逻辑条带中的有效逻辑地址的每个连续序列,在发送所述指令后,使对应于所述物理地址空间中的第一物理位置处的所述有效逻辑地址的相应的连续序列的数据无效。13.如权利要求1-12中任一项所述的方法,还包括:根据满足所述存储系统的第一垃圾收集调度标准的确定,触发所述基于主机的垃圾收集操作的进行,其中所述存储系统的第一垃圾收集调度标准独立于第二垃圾收集调度标准,所述第二垃圾收集调度标准用于触发所述多个存储装置中的每个存储装置内的内部垃圾收集操作的进行。14.如权利要求13所述的方法,其中触发所述基于主机的垃圾收集操作的进行,以确保每个存储装置内的内部垃圾收集操作最小化。15.如权利要求13所述的方法,其中所述第一垃圾收集调度标准包括对应于所述存储系统的写入操作工作量的标准、对应于所述存储系统的预计工作量的标准、或对应于所述存储系统中的空逻辑条带的数量的标准。16.如权利要求1-15中任一项所述的方法,还包括:在一段时间内,重复地进行所述基于主机的垃圾收集操作,以确保由所述主机系统管理的至少最小数量的逻辑条带可用于在其中放置写入数据。17.如权利要求1-16中任一项所述的方法,其中所述方法由所述主机系统控制,所述主机系统包括客户端,代表所述客户端将数据存储在所述存储系统中。18.如权利要求1-17中任一项所述的方法,其中所述多个存储装置包括一个或多个闪速存储器装置。19.一种主机系统,包括:接口,用于可操作地耦接到具有多个存储装置的存储系统;一个或多个处理器;以及存储一个或多个程序的存储器,当由所述一个或多个处理器执行时,所述一个或多个程序使得不同于所述多个存储装置的主机系统进行基于主机的垃圾收集操作,其包括:根据存储在所述主机系统处的数据存储信息,识别两个或更多个逻辑条带,每个逻辑条带对应于所述主机系统的逻辑地址空间中的逻辑地址的连续序列,其中所述逻辑条带的逻辑地址的每个相应的连续序列对应于所述多个存储装置的物理地址空间中的物理地址的一个或多个连续序列;以及合并所述两个或更多个逻辑条带中的有效数据,包括:对于所述两个或更多个逻辑条带中的有效逻辑地址的每个连续序列,从所述主机系统向所述多个存储装置中的一个或多个存储装置发送指令,以将对应于所述有效逻辑地址的相应的连续序列的数据从所述物理地址空间中的第一物理位置移动到所述物理地址空间中的第二物理位置;以及对于所述两个或更多个逻辑条带的每个相应的逻辑条带,将所述相应的逻辑条带中的有效逻辑地址重新打包到目标逻辑条带连续部分,所述目标逻辑条带包括所述相应的逻辑条带或不同于所述相应的逻辑条带的另一逻辑条带。20.如权利要求19所述的主机系统,其中所述一个或多个程序包括:具有指令的压缩模块,所述指令用于将对应于所述有效逻辑地址的相应的连续序列的有效数据从所述物理地址空间中的第一物理位置移动到所述物理地址空间中的第二物理位置,且对于每个逻辑条带,将所述相应的逻辑条带中的有效逻辑地址重新打包到所述相应的逻辑条带的开始。21.如权利要求19或20所述的主机系统,还配置为根据权利要求2-18中任一项所述的方法来操作。22.一种计算机可读存储介质,存储配置为由主机系统的一个或多个处理器执行的一个或多个程序,所述主机系统不同于存储系统中的多个存储装置,所述一个或多个程序包括指令,当由所述一个或多个处理器执行时,所述指令使得所述主机系统进行基于主机的垃圾收集操作,其包括:根据存储在所述主机系统处的数据存储信息,识别两个或更多个逻辑条带,每个逻辑条带对应于所述主机系统的逻辑地址空间中的逻辑地址的连续序列,其中每个逻辑条带的逻辑地址的相应的连续序列对应于所述多个存储装置的物理地址空间中的物理地址的一个或多个连续序列;以及合并所述两个或更多个逻辑条带中的有效数据,包括:对于所述两个或更多个逻辑条带中的有效逻辑地址的每个连续序列,从所述主机系统向所述多个存储装置中的一个或多个存储装置发送指令,以将对应于所述有效逻辑地址的相应的连续序列的数据从所述物理地址空间中的第一物理位置移动到所述物理地址空间中的第二物理位置;以及对于所述两个或更多个逻辑条带的每个相应的逻辑条带,将所述相应的逻辑条带中的有效逻辑地址重新打包到目标逻辑条带连续部分,所述目标逻辑条带包括所述相应的逻辑条带或不同于所述相应的逻辑条带的另一逻辑条带。23.如权利要求22所述的计算机可读存储介质,其中所述一个或多个程序包括指令,当由所述一个或多个处理器执行时,所述指令使得所述主机系统根据权利要求2-18中任一项所述的方法来操作。24.一种存储系统,包括:多个存储装置;具有一个或多个处理器的一个或多个子系统;以及存储一个或多个程序的存储器,当由所述一个或多个处理器执行时,所述一个或多个程序使得所述一个或多个子系统进行操作,其包括:在与所述多个存储装置不同的主机系统处,进行基于主机的垃圾收集操作,包括:根据存储在所述主机系统处的数据存储信息,识别两个或更多个逻辑条带,每个逻辑条带对应于所述主机系统的逻辑地址空间中的逻辑地址的连续序列,其中每个逻辑条带的逻辑地址的相应的连续序列对应于所述多个存储装置的物理地址空间中的物理地址的一个或多个连续序列;以及合并所述两个或更多个逻辑条带中的有效数据,包括:对于所述两个或更多个逻辑条带中的有效逻辑地址的每个连续序列,...

【专利技术属性】
技术研发人员:BW奥克拉夫卡V博尔克霍维廷V希夫哈尔
申请(专利权)人:桑迪士克科技有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1