存储系统中垃圾收集的方法和系统的制作方法_2

文档序号:9631493阅读:来源:国知局
0A、110B、110N)内的位置对应。在本发明的一个或多个实施方式中,如果在存储设备102中存在数据的多个副本,那么存储器内数据结构可将单个散列值映射到多个物理地址。
[0027]在本发明的一个或多个实施方式中,固态存储器模块(例如,110A、110B、110N)与使用固态存储器以存储持久数据的任何数据存储设备对应。在本发明的一个或多个实施方式中,固态存储器可包括但不限于NAND快擦写存储器、NOR快擦写存储器、磁性RAM存储器(M-RAM)、旋转扭矩磁性RAM存储器(ST-MRAM)、相变存储器(PCM)或定义为非暂时性存储类存储器(SCM)的任何其它存储器。
[0028]本领域技术人员可以理解,本发明不限于图1所示的构成。
[0029]以下的讨论描述使用固态存储器设备实现的本发明的实施方式。翻到图2A,图2A示出根据本发明的一个或多个实施方式的数据存储设备(未示出)的固态存储器模块。数据存储设备(未示出)可包括多个固态存储器模块。固态存储器模块200包括一个或多个块。在本发明的一个或多个实施方式中,块是固态存储器模块200内的最小的可擦除存储单元。
[0030]图2B示出根据本发明的一个或多个实施方式的块。具体而言,各块202包括一个或多个页。在本发明的一个或多个实施方式中,页是固态存储器模块中的用于读取和编写操作(包含对于页的初始写入)的最小的可寻址单元。在本发明的一个或多个实施方式中,块内的各页要么为碎片页(参见图2C)要么为TOC页(参见图2D)。
[0031]在本发明的一个或多个实施方式中,在块内重写页需要重写整个块。块具有有限数量的编写(例如,写入)/擦除循环,这里,编写/擦除循环包括将一个或多个页写入到块然后擦除整个块。块中的页可移动到另一块,以跨过块保持类似数量的编写/擦除循环,这称为“耗损均衡”。
[0032]在本发明的一个或多个实施方式中,长寿命块是存储持久数据的块,这里,持久数据是寿命比至少一个垃圾收集循环长的数据。换句话说,如果数据与活动页相关联,那么数据被确定为持久数据(也被称为“长寿命数据”)(参见图4,414)。在本发明的一个或多个实施方式中,垃圾收集循环与通过块迭代以对存储设备中的各块执行改进的垃圾收集操作(参见图4)对应。在本发明的一个或多个实施方式中,短寿命块是存储短寿命数据或存储具有未知寿命的数据的块。根据本发明的一个或多个实施方式,具有未知寿命的数据被假定为是短寿命的。在本发明的一个或多个实施方式中,短寿命块中的短寿命数据与长寿命块中的持久数据分开地存储。在本发明的一个或多个实施方式中,短寿命块可能在垃圾收集循环结束之前过期或者过时(即,不再使用)。换句话说,短寿命数据是不大可能在改进的垃圾收集操作中移动的数据(参见图4),原因是该数据是死的(例如,过期、过时等)。作为替代方案,虽然具有未知寿命的数据被假定为是短寿命的,但数据也可能是长寿命数据(例如,具有未知寿命的数据如果在垃圾收集过程中位于活动页内则会被视为长寿命数据,例如,参见图4,步骤414)。
[0033]图2C示出根据本发明的一个或多个实施方式的碎片页。在本发明的一个或多个实施方式中,碎片页204包含一个或更多个碎片。在本发明的一个或多个实施方式中,碎片与有限量的用户数据(例如,由客户机提供的用于存储在存储设备中的数据)对应。此外,给定页内的碎片可具有均匀的尺寸或不均匀的尺寸。此外,给定块内的碎片可具有均匀的尺寸或不均匀的尺寸。在本发明的一个或多个实施方式中,给定的碎片可小于页的尺寸,可以刚好为页的尺寸,或者可以为在一个或多个页上延伸。在本发明的一个或多个实施方式中,碎片页仅包含碎片。在本发明的一个或多个实施方式中,各碎片包含用户数据。
[0034]图2D示出根据本发明的一个或多个实施方式的TOC页。在本发明的一个或多个实施方式中,TOC页206包括一个或多个TOC条目,这里,每一个TOC条目包括给定碎片的元数据。另外,TOC页206可包括对块202中的另一 TOC页的引用。在本发明的一个或多个实施方式中,TOC页仅包括TOC条目(以及,可选地,对块中的另一 TOC页的引用),但不包括任何碎片。在本发明的一个或多个实施方式中,各TOC条目与块202中的碎片(参见图2C)对应。TOC条目仅与块内的碎片对应。换句话说,TOC页与块相关联,并且,仅包括用于该块中的碎片的TOC条目。在本发明的一个或多个实施方式中,每一个固态存储器模块中的各块中的没有缺陷的最后的页是TOC页。
[0035]图2E示出根据本发明的一个或多个实施方式的块的例子。具体而言,图2E示出包括TOC页210、212、214和碎片页216、218、220、222、224、226的块208。在本发明的一个或多个实施方式中,块208在概念上从“底部”到“顶部”被填充。并且,一旦碎片页中的用于碎片的TOC条目的累积尺寸等于页的尺寸,就产生和存储TOC页。翻到图2E,例如,碎片页0216和碎片页1218被存储于块208中。用于碎片页0216和碎片页1218中的碎片(未示出)的相应的TOC条目(未示出)具有等于块中的页的尺寸的总累积尺寸。因此,产生(使用与块中的碎片对应的TOC条目)并且存储TOC页214于块208中。碎片页2220随后被写入到块208。由于与碎片页2220中的碎片(未示出)对应的TOC条目具有等于块中的页的尺寸的总累积尺寸,因此,在块208中创建并存储TOC页212。并且,由于在块208中已存在TOC页,因此,TOC页212也包括对TOC页214的引用。
[0036]重复该处理直到在块208中仅存在一个要填充的页。此时,创建并存储TOC页210于块208的最后的页中。本领域技术人员可以理解,TOC页210中的TOC条目的总累积尺寸可小于页的尺寸。在这些情况下,TOC页可包括填充(padding)以解决TOC条目的累积尺寸与页尺寸之间的差。最后,由于在块208中存在其它的TOC页,因此,TOC页210包括对一个其它的TOC页212的引用。
[0037]如图2E所示,将TOC页从块的“顶部”链接到页的“底部”,使得可通过追随来自“高于”该TOC页的TOC页的引用,获得该TOC页。例如,可使用TOC页210中的引用访问TOC页 212。
[0038]本领域技术人员可以理解,虽然块208仅包含碎片页和TOC页,但是,在不背离本发明的情况下,块208可包含碎片页和TOC页以外的页(例如,包含奇偶数据的页)。这种其它的页可位于块内,并且,根据其实施,在TOC页与碎片页之间交错。
[0039]图2F示出根据本发明的一个或多个实施方式的TOC条目。在本发明的一个或多个实施方式中,各TOC条目230包含用于碎片的元数据,并且,可包含以下栏(field)中的一个或多个:(i)对象ID 232,其识别正在被存储的对象;(ii)出生时间234,其指定与TOC条目对应的碎片被写入到固态存储器模块的时间(例如,控制模块中的处理器的处理器时钟值);(iii)偏移ID 236,其识别相对于对象(由对象ID识别)的开始的对象中的点;(iv)碎片尺寸238,其指定碎片的尺寸;(V)页ID 240,其识别存储碎片的块中的页;和(vi)字节242,其识别页(由页ID识别)中的碎片的开始位置。在不背离本发明的情况下,TOC条目230可包含其它的栏(由其它248表示)。
[0040]本领域技术人员可以想到,在不背离本发明的情况下,TOC条目可包含比图2F所示的栏多或少的栏。并且,在不背离本发明的情况下,可通过不同的次序配置和/或组合TOC条目中的栏。另外,虽然图2F所示的TOC条目中的栏表现为均具有相同的尺寸,但TOC条目中的各种栏的尺寸可以是不均匀的,使得任何给定栏的尺寸基于TOC条目的实施改变。
[0041]翻到流程图,虽然以依次的方式给出和描述流程图中的各步骤,但本领域技术人员可以理解,可以按不同的次序执行、可以组合或者省略步骤中的一些或全部,并且,可以并行执行步骤中的一些或全部。在本发明的一个或多个实施方式中,图3和图4所示的一个或多个步骤可以与图3和图4所示的其它步骤中的一个或多个并行地执行。具体而言,在图3中接收的写入请求和图4中的改进的垃圾收集操作可并行发生。因此,根据本发明的一个或多个实施方式,基于数据的寿命在存储设备内将数据分类可导致来自写入请求的潜在合并数据(如果已知为持久数据)和来自改进的垃圾收集操作的移动数据。
[0042]翻到图3,图3示出根据本发明的一个或多个实施方式的接收写入请求的流程图。
[0043]在步骤302中,从客户机接收将数据写入到存储设备的写入请求。该请求可包含将被存储的数据或者可包含将被存储的数据
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1