管理固态存储器中垃圾收集的系统和方法技术方案

技术编号:6845679 阅读:276 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例涉及选择存储器块以便垃圾收集以使垃圾收集操作释放的存储器的量最大化。此处公开的系统和方法提供有效选择最优或者接近最优的垃圾收集候选块,最优选择定义为最无效页面的块。在一个实施例中,控制器将存储器块按照每个块包含的无效页面的量分类到各个无效块池。当进行垃圾收集时,控制器从具有最大的无效页面最小量的块的非空池选择块。池以高效方式帮助垃圾收集候选的最优或者接近最优选择并且池的数据结构能够用在存储器中占用最小空间的位掩码实现。

【技术实现步骤摘要】

技术介绍
固态存储器子系统在其正常操作中执行多个命令。例如,对可能包含有效和无效数据的存储器块频繁执行垃圾收集。当这种存储器块被选择进行垃圾收集时,垃圾收集操作将存储器块内的有效数据复制到存储器中的新位置接着擦除整个存储器块,使整个块可用于将来的数据写入。因此,通过垃圾收集处理释放的存储器的量取决于被选择进行垃圾收集的存储器块内的无效页面的量。附图说明下面将参照附图描述体现本专利技术的各个特征的系统和方法,其中图1是例示根据一个实施例的固态存储子系统的框图。图2是例示根据一个实施例的维护固态存储子系统内的存储器块上的无效页面信息的方法的流程图。图3是例示根据一个实施例的选择存储器块进行垃圾收集的方法的流程图。图4例示根据一个实施例的使用无效块和自由块池以跟踪进行垃圾收集的存储器块的示例。具体实施例方式尽管描述了本专利技术的特定实施例,这些实施例仅仅通过示例呈现,而不意在限制本专利技术的范围。实际上,此处描述的新颖方法和系统可以以各种其它形式实现。此外,可以对此处描述的方法和系统的形式进行各种省略、替换和改变而不背离本专利技术的精神。所附的权利要求和其等效体意在覆盖将落入本专利技术的精神和范围内的这类形式或者修改。fiM本专利技术的实施例涉及优化进行垃圾收集的存储器块的选择以使垃圾收集操作释放的存储器的量最大化。此处公开的系统和方法提供最优或者接近最优垃圾收集候选块的高效率选择,最优选择定义为具有最多无效页面的块。在一个实施例中,控制器按照每个块包含的无效页面的量将存储器块分类到各个无效块池。当进行垃圾收集时,控制器从具有最大的无效页面最小量的块的非空池里选择块。这些池有助于以有效的方式最优或者接近最优选择垃圾收集候选块,并且池的数据结构能够用位掩码实现,其在存储器中占用最小空间。尽管本公开描述了可应用于块的各个实施例,但实施例不被限制并且可应用于存储器的其它单元,诸如超块。系统概括图1是例示存储子系统实施例的框图。如图所示,存储子系统140包括控制器150, 所述控制器继而包括主机命令队列142、垃圾收集命令队列144以及垃圾收集模块148。在一个实施例中,主机命令队列142从驻留在主机系统130中的驱动器132接收存储器命令, 并且垃圾收集命令队列144从管理垃圾收集的垃圾收集模块148接收命令。在其它实施例中,来自驱动器132和垃圾收集模块148的命令被接收到单个队列以便执行。来自驱动器132的存储器命令可以包括由主机系统130发出的写入和读出命令,而来自垃圾收集模块 148的存储器命令可以包括用于垃圾收集的命令。如图1进一步示出,在一个实施例中,控制器150对一个或多个非易失性固态存储器阵列160执行主机命令队列142和垃圾收集命令队列144中的命令。控制器150还维护若干数据结构,在一个实施例中,所述数据结构包括无效页面表152和映射表154。在一个实施例中,无效页面表152保持跟踪整个非易失性固态存储器阵列160中位于物理页面地址处的数据的有效性,而映射表巧4保持跟踪非易失性存储器阵列160中的逻辑块地址(LBA)和物理页面地址之间的对应关系。在一个实施例中,其他数据结构包括无效页面计数器156、无效块池162和自由池164。在一个实施例中,针对存储器阵列160中的至少一些存储器块维护无效页面计数器156。在一个实施例中,针对每个块维护无效页面计数器156并且该无效页面计数器跟踪关联的块内的无效页面的数量。在一个实施例中,无效页面计数器156和/或无效页面表152被存储在动态随机存取存储器 (DRAM)中。在一个实施例中块被分配到各个无效块池162。例如,使用中的块可以被分类到具有至少25%无效页面的块的池、具有至少50%无效页面的块的池、具有至少75%无效页面的块的池、或者具有100%无效页面的块的池。可用于新写入的块被分类到自由池164。 在一个实施例中,涉及池分配的数据结构被存储在静态随机存取存储器(SRAM)中。下面将进一步描述这些用于垃圾收集的数据结构的使用和维护。维护存储器块的无效页面数据图2是例示根据一个实施例的用于维护存储器块上的无效页面信息的方法200的流程图。在框202,控制器150开始接收写入命令(操作)以便执行。写入操作可以由主机系统130发出。在框204,控制器更新映射表IM作为执行写入操作的一部分。在一个实施例中,控制器通过以下来更新映射表,首先在映射表中定位写入命令中的LBA的条目以确定对应于LBA的物理页面地址,接着用新数据被写入的新物理页面地址更新定位的条目。例如,写入可以指向LBA 10,其在写入操作之前被映射到块5,页面2。在实际写入到存储器以前,控制器更新映射表使LBA 10的条目对应于数据将被写入的新位置(例如块12, 页面4)。替换地,控制器可以在向存储器实际写入之后更新映射表。在框206,控制器确定是否需要对无效页面表更新。在大多数情形下这是需要的,除非与写入操作关联的特定LBA 条目先前没有被分配到任何物理地址。在以上示例中,由于块5,页面2现在是无效的,无效页面表1 覆盖块5的部分需要被更新。如果需要更新,则方法进行到框208,其中控制器使针对有改变的块的无效页面计数器156递增。接着在框210中,无效页面表152被更新。在框212,控制器进行另一检查以确定针对有改变的块的页面计数器是否跨过无效页面阈值。如果已经跨过阈值,则在框214,块被重分配到新的池。遵循以上示例,如果无效页面计数器指示块5中的无效页面的数量已经在总共2048中增加到1024,则块5从25% 无效池被重分配到50%无效池。在一个实施例中,处理来自主机的写入操作的控制器处理在进行以上更新任务的同时获得无效页面计数器、无效页面表和无效块池数据结构或者这些数据结构的子集的锁定(lock)。由于垃圾收集处理在操作中参照一些相同数据结构,因此锁定这些数据结构防止垃圾收集处理和其它内部系统处理读取过期的数据和执行命令, 其将造成数据一致性问题。例如,在一个实施例中,当使用无效页面表来阻止即将发生的垃圾收集命令在被指示为包含无效信息的物理页面地址上执行时,在进行更新时将表锁定确保正确地阻止尝试写入无效数据的垃圾收集命令根据更新信息执行。在其它实施例中,各个更新步骤可以不同于图2所示的顺序执行。使用无效页面数据来诜择讲行垃圾收集的存储器块图3是例示根据一个实施例的选择进行垃圾收集的存储器块的方法的流程图。在一个实施例中,方法300由控制器150执行以选择最优或者接近最优的候选块以便垃圾收集。如以上讨论的,最优选择包括选择具有最大数目的无效页面的块以使由垃圾收集操作释放的存储器的量最大化。在图3中,与各个池关联的阈值百分比仅仅作为示例提供并且可以使用其它百分比。另外,在一个实施例中,根据非易失性存储器阵列中提供的过度供给 (over-povisioning)(超过声明容量的额外存储)设定最低阈值百分比。例如,最低阈值百分比可以等于或者大于过度供给量,因为过度供给量与当自由块被耗尽时块中的无效页面的最小量相关。在例示的示例中,25%无效页面的最低阈值对应于示例存储子系统中提供的25%过度供给。在其它实施例中,池的数目可以被设定为其它数目,并且最低阈值百分比可以高于或者低于过度供给百分比。在一个实施例中本文档来自技高网...

【技术保护点】
1.一种存储子系统,包括:非易失性固态存储器阵列;以及控制器,其包括垃圾收集模块,所述控制器被配置为接收和执行来自主机系统和所述垃圾收集模块的存储器命令,所述控制器还被配置为:针对所述存储器阵列中的第一存储器块,维护无效页面计数器,所述无效页面计数器用于存储与所述第一存储器块内的无效页面的数目有关的数据,所述第一存储器块按照无效页面的数目被分配到第一池,其中所述垃圾收集模块被配置为基于无效页面的数目从多个池中选择存储器块;在执行来自所述主机系统的、引起所述第一存储器块内的页面的有效性改变的存储器命令之后,更新与所述第一存储器块关联的无效页面计数器;以及当更新后的无效页面计数器超过阈值时,将所述第一存储器块重分配到第二池。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:HF·康A·C·坎
申请(专利权)人:西部数据技术公司
类型:发明
国别省市:US

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

1