首页> 中国专利> 通过追踪和利用二级映射索引重复利用固态驱动器块

通过追踪和利用二级映射索引重复利用固态驱动器块

摘要

本发明涉及一种固态驱动器的重复利用的方法。该方法包括为重复利用选择逻辑快,所述逻辑块包括多个跨越多个闪存裸片的页面。该方法还包括检索与为重复利用选择的逻辑快相关联的地址映射索引记录。对每个储存在地址映射索引记录中的地址映射索引,该重复利用的方法检索具体的地址映射索引引用的一组地址映射条目,确定是否逻辑块内的任何页面被该组地址映射条目引用,如果逻辑块内至少一个页面被该组地址映射条目引用,该方法将这至少一个页面写入一不同的逻辑块。该方法进一步包括清除逻辑块内的所述多个页面。

著录项

  • 公开/公告号CN104598386A

    专利类型发明专利

  • 公开/公告日2015-05-06

    原文格式PDF

  • 申请/专利权人 LSI公司;

    申请/专利号CN201310529526.4

  • 申请日2013-10-31

  • 分类号G06F12/02;

  • 代理机构北京律盟知识产权代理有限责任公司;

  • 代理人王田

  • 地址 美国加利福尼亚州米尔皮塔斯市

  • 入库时间 2023-12-18 08:40:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-27

    授权

    授权

  • 2017-01-18

    实质审查的生效 IPC(主分类):G06F12/02 申请日:20131031

    实质审查的生效

  • 2015-05-06

    公开

    公开

说明书

技术领域

本发明涉及数据存储领域,尤其涉及固态存储设备。

背景技术

固态驱动器(SSD)是利用集成电路组件作为存储器来持久储存数据的数据存储设备。SSD没有活动的机械组件,使它与传统的机电磁盘,如硬盘驱动器或是软盘,区分开来。与机电磁盘相比,SSDs典型地不易受物理震动的影响,运行更平稳,存取时间和等待时间更短。

发明内容

相应的,本公开的一个实施例是固态驱动器的重复利用方法。该方法包括为重复利用选择一个逻辑块,其中,该逻辑块包括多个跨越多个闪存裸片(die)的页面。该方法还包括检索与为重复利用而选择的逻辑块相关联的地址映射索引记录。对存储在地址映射索引记录的每个具体的地址映射索引,该重复利用方法检索一组引用该具体地址映射索引的地址映射条目,决定是否在逻辑块中的每个页面被该组地址映射条目引用,并且如果至少一个在逻辑块中的页面被该组地址映射条目引用,则该方法将该至少一个页面写入一个不同的逻辑块。该方法进一步包括清除逻辑块内的多个页面。

该公开的另一个实施例是利用二级映射追踪逻辑地址到物理地址映射的固态驱动器的重复利用方法。该方法包括为重复利用选择一个逻辑块,该逻辑块包括多个跨越多个闪存裸片的页面。该方法还包括检索与为重复利用而选择的逻辑块相关联的二级映射(SLM)索引记录。对每个具体的存储在SLM索引记录中的SLM索引,重复利用方法检索一个被该具体SLM索引引用的SLM页面,确定是否在该逻辑块内的每个页面都被SLM页面内的映射条目引用,并且如果在该逻辑块内的至少一个页面被SLM页面中的映射条目引用,则该方法写入该至少一个页面到另一个不同的逻辑块中。该方法进一步包括清除逻辑块内的所述多个页面。

该公开的另一个实施例是一个固态驱动器。该固态驱动器包括多个闪存裸片。该多个闪存裸片的每个闪存裸片包括多个块,并且该多个块的每个块进一步包括多个提供数据存储的多个页面。该固态驱动器还包括用于管理固态驱动器的回收利用操作的控制器。该重复利用操作以逻辑块为单位执行,并且该控制器依照前边所述的重复利用方法执行该重复利用过程。

上述的概括说明和以下的详细说明都应该被理解为是该发明的典型例子和起解释作用的例子,并不能限制本发明。包含在说明书内并组成说明书的一部分的图示,阐述了该发明的具体实施例,并和概括说明共同解释该发明的原料。

附图简要说明

通过参考下列附图,本领域技术人员可更好地理解本发明多个特点:

图1是本实施例所述的固态驱动器的数据块的示意图;

图2是本实施例所述的管理的逻辑块和/或逻辑文件段的多个闪存裸片(dies)/闪存芯片的块和页面的示意图(参考R-块);

图3是本实施例所述的物理地址映射的二级逻辑地址;

图4是本实施例所述的管理R块的多个闪存裸片/闪存芯片的块和页面以及储存二级映射(SLM)索引记录的指定储存区域的示意图;

图5是本实施例所述的R-块以及R-块的SLM索引记录和SLM页面的关系示意图;

图6是本实施例所述的基于R-块的重复利用程序的SLM索引记录的流程示意图。

具体实施方式

现在根据附图对所公开的实施例进行详细说明。

固态驱动器(SSD)利用集成电路组件作为存储器来持久储存数据。比如,闪存设备(例如,NAND型闪存以及类似设备)可以作为储存媒介。NAND型闪存将信息存储在由浮栅晶体管制备的阵列存储单元内。传统的单级单元(SLC)设备中每个单元仅存储一比特信息。一些新的闪存,比如多级单元(MLC)设备,包括三级单元(TLC)设备,通过选择多能级电荷应用到单元浮栅中可以使每个单元储存更多的信息。

一个典型的闪存包括多个块,而且每个块包括多个页面。基本的闪存读/写单元是在典型的实现中有8KB的页面。在传统的实现中,在数据被写入一个具体的页面之前,该页面应首先被清除,并且一次一块执行清除程序。因此,当新数据需要被重新写入一个具体页面时,包括该具体页面的整个块必须首先被清除。可以预期上述引用的页面可以使用物理页面地址方案或是逻辑页面地址(LPA)方案而得到解决。

图1是一组发给闪存的写请求的示意图。比如,在102情况下,逻辑页面地址0被写入页面0。随后,逻辑页面地址4和逻辑页面地址10被分别写入页面1和页面2。如果数据请求者(比如,主机)需要再次写入逻辑页面地址0,新的数据需要被写入另一个页面。在该实例中,新的数据被写入如图所示的104所引用的页面3。此时,逻辑页面地址0存储在页面3中,当下次主机读取逻辑页面地址0时,SSD的固件知道应该从页面3而不是页面0中读取(也就是,第一种情况不再有效)。在这种情况下,包含在页面0中的数据被称为垃圾。

值得注意的是,储存不再有效的数据实例的页面在被释放/清除之前是不可用的。然而,当数据以页面(由多个单元组成)为单位写入SSD时,只能以被称为块(由多个页面组成)的大单位来清除SSD。此外,在某些实施例中,如图2,在逻辑片和/或逻辑段中管理位于跨越不同闪裸片/闪存晶芯片的块中的多个页面。在本公开中,这些逻辑片和/或逻辑段被称为R-块(或逻辑块)。如图2所示,R块作为贯穿一个闪存200的所有芯片的逻辑片或是逻辑段。比如,在一个有R闪存裸片的SSD中,每个闪存裸片有N个块,来自每个闪存裸片的每个R-块作为第i个块聚集在一起,作为一个总数为N的R-块。再比如,在一个有R闪存裸片的SSD中,每个R闪存裸片都有N个块,每个R-块作为来自于每个闪存裸片第i个和i+1个块,作为一个总数为N/2的R-块。上述的R-块是为了说明问题是可以预期的。在不脱离本公开的思想和范围情况下,在逻辑片或是逻辑块中,可以通过其他各式各样的方式安排和管理贯穿至少两个闪存裸片的块。

当主机(数据请求者)连续向SSD中写入数据时,大量逻辑页面地址(LPAs)会被重写,并且每个重写的逻辑页面地址会被存储在不同的位置。为了正常运行,SSD固件/控制器(以下被称为控制器)必须追踪逻辑页面地址的最新的位置。在某些实施例中,地址映射被维护以记录逻辑页面地址和它们的物理地址之间的映射。

用上述R-块安排和管理SSD,逻辑页面地址和它们的物理地址之间的映射通过二级(或多级)映射维护是可预想到的。比如,如图3所示,第一层映射(FLM)302可以被用于存储多个第二级映射(SLM)页面304的物理地址,每一个SLM页面304均可以被用于存储一组逻辑到物理地址映射条目。以这种方式,为一个具体的LPA获取物理地址信息,较小FLM页面可以被快速访问以定位一个具体的包含该具体的LPA物理地址信息的SLM页面。然后该具体的SLM页面可以被访问以获取相应的物理地址信息。

可以注意到,为了清晰,在本公开中用于存储一组逻辑到物理地址映射条目的SLM页面被称为“SLM页面”,以区别于在SSD中的页面(如,图1和2所示)在SSD中的页面被称为“存储页面”,“主机页面”,或“页面”。

还可以注意到,SSD控制器需要时常执行被称为重复利用或垃圾回收的程序以重复利用可用空间。在实施过程中,用R-块安排和管理SSD以重复利用一个具体的原始R-块,SSD控制器需要从原始R-块中找到所有有效的页面并且将它们转移到一个不同的R-块,然后,该原始R-块可以作为一个自由的R-块被清除和重新利用。然而,在给定R-块中的有效页面和它们的位置不容易被确定,尤其当使用一个多级映射时。

本公开的实施例都是关于重复利用固态驱动器中R-块的方法和系统,在一个实施例中,一个与每个R-块相关联的SLM索引记录被用于协助识别在每个具体R-块中的有效主机页面。通过追踪和利用SLM目录,重复利用程序中的识别有效主机页面过程被简化,因此提高了重复利用程序的整体效率。

与本公开的实施例相一致,当一个新的R-块被写入时,SLM索引记录生成。也就是说,当R-块被写入时,包括在R-块中涉及主机页面的地址映射条目的任何一个SLM页面都应该被记录。更具体的,SLM页面的SLM目录应该被插入到该R-块的SLM索引记录。应该注意到, 术语“索引”涉及能够用于识别、参考或是指向一个具体SLM页面的任何标识符。在一实施例中,SSD中的每个R-块均与它自己的SLM索引记录单独关联,并且不同R-块的SLM索引记录分开管理。这就允许SSD控制器在需要时能够为任意一个已知R-块在任何时间快速访问任意一个具体的SLM索引记录。

SLM索引记录可以被储存在SSD控制器拥有的任意存储媒介中是可以被预期的。在一实施例中,如图4所示,SLM索引记录被存储在一个或多个位于闪存裸片400的一个或多个指定块402中的保留页面中。然而,不脱离本公开的思想和范围情况下,SLM索引记录可以被保存在闪存裸片400之外的不同的存储媒介中,只要该存储媒介属于SSD控制器404。

只要映射信息随着被写入到R-块的新数据改变,已知R-块的SLM索引记录也需要维护/更新。在一实施例中,这些SLM索引记录随着一后台进程被更新。比如,如果系统闲置或主机主要发布读命令,重复利用程序不太可能被发起,并且SSD控制器可以不失时机的开始更新SLM索引记录。

还应该注意的是,因为SSD中有多个R-块,而且每个R-块都有自己的SLM索引记录,可以建立一个控制SLM索引记录更新序列的命令。在本公开的某些实施例的实施过程中,最有可能被先重复利用的R-块的SLM索引记录被更新。

更具体的,SSD控制器为每个R-块维持一个有效页面数的记录。以表格或类似表格的数据机构维持该记录,被称为有效页面数(VPC)表。每当收到一个具体页面的写请求时,SSD控制器会首先决定是否该页面之前被写过。如果它之前被写过,SSD控制器会找出包含该具体页面的R-块并用1减去VPC表中该块的有效页面数。然后SSD控制器将该页面写入一个新的R-块,并且在该VPC表中生成一个新的VPC条目以追踪该新的R-块的有效页面数。

通常,SSD重复利用程序优先重复利用一个低VPC的R-块,因为需要被转移到新的R-块中的有效页面数比较低。因此,SSD控制器可以挑选几个候选的基于最新的VPC有可能被重复利用的R-块,并且按该顺序更新它们的SLM索引记录。此外/可选择的,SSD控制器根据记录在每个SLM索引记录中的有效SLM目录数可以创建排序。比如,在一实施例中,R-块的原始VPC被记录在它的SLM索引记录中。如果SLM索引记录(原始VPC)中记录的VPC减去R-块中现在的超出极限值,那就意味着在该R-块中的很多页面现在是无效的,并且更新该具体SLM索引记录将会转移很多原来记录在该SLM索引记录中的SLM目录,但将不再有效。

一旦SSD控制器挑选一个具体的SLM索引记录更新,更新该SLM索引记录的程序可以以下述方法实施。参考图5,将挑选的SLM索引记录更新为“记录R”。更具体的,对于被SLM索引1引用的SLM页面,如果没有一个存储在该映射任何属于“块B”的物理地址的SLM页面中的映射条目,这就意味着存储在该SLM页面中的地址映射条目不需要存储在“块B”中的数据,并且涉及到该SLM页面的SLM索引1应该从“记录R”中移除。否则,如果存储在该SLM页面中的一些映射条目依然映射一个或多个属于“块B”的物理地址,SLM索引1可以照常位于“记录R”中。该程序为存储在“记录R”中的所有SLM目录继续。

当该更新程序完成后,不涉及存储在“块B”中的数据的SLM页面不再被任何存储在“记录R”中的SLM目录一样。换句话说,依照本公开的实施例重复利用一个具体的R-块,只有被存储在该具体R-块的SLM索引记录引用的SLM页面需要考虑。图6详细图解了基于R-块重复利用程序的SLM索引记录。

如下图所示,在重复利用的步骤602中选择一个候选R-块,并且在一实施例中,该候选R-块根据上述的有效页数被选择。一旦该R-块被选择,该R-块的SLM索引记录在步骤604中被检索,并且存储在SLM索引记录中的第一个SLM索引记录随后在步骤606中被检索。被检索的SLM索引引用的SLM页面接着在步骤608中被存取,并且在步骤610中,在该SLM页面中的每个映射条目与R-块做对比以决定是否该映射条目参考了属于为重复利用而选择的R-块的位置。如果存储在该SLM页面的一个或多个映射条目参考一个或多个属于该R-块的位置,这些地址的物理地址在步骤612中被获取,并且存储在这些位置中的数据被转移到另外一个R-块614中。在步骤616中,该重复利用程序继续检索存储在该SLM索引记录中的下一个SLM索引,并且从步骤608开始重复该过程直到所有存储在该SLM索引记录中的SLM目录都被处理完。该重复利用程序在步骤608中结束,并且在此时,为重复利用选择的R-块可以被清除。

很容易想到,决定存储在一个SLM页面中的一个或多个映射条目是否参考一个或多个属于一个具体的R-块的一个或多个位置可以通过多种方式实现。比如,在系统中的每个R-块可以得到一个唯一的标识符,并且在该SLM页面中的每个映射条目可以记录属于该R-块的标识符。这使得匹配的R-块标识符很快的被识别。可选择的,可以知道属于一个R-块的物理地址,并且可以通过记录在映射条目中的物理地址与已知属于R-块的物理地址之间的对比确定是否在SLM页面中的映射条目映射该R-块。在不脱离本公开的思想和范围的情况下,可以利用其他的技术决定存储在一个SLM页面中的一个或多个映射是否映射一个或多个属于一个具体R-块的物理地址。

可以注意到,根据本公开实施例的R-块重复利用程序的SLM索引记录不要求SSD控制器扫描整个的R-块以确定有效页面。SSD控制器也不需要读取与被重复利用的R-块的所有逻辑地址有关的所有SLM页面,只需要与R-块相关联的以及没有被上述更新程序无效的页面。

很容易想到,已知R-块的SLM索引记录内的索引数据会不断增加。比如,如果主机在相同的R-块中写入到了不同的页面,比如一个随机书写,需要被记录在该R-块内SLM索引记录中的索引数据的总量会相应的增长。在一些事实例中,一但存储在已知R-块的SLM索引记录中的索引数据总量超过已确定的极限值,该具体R-块的SLM索引记录可以被忽视并且储存该具体R-块的SLM索引记录的指定存储媒介可以有条件的被认为无效。应该注意到,因为SSD中的每个R-块管理自己的SLM索引记录,也可以单独做出比如是否忽视R-块的SLM索引记录的决定。以这种方式,当其他R-块可以根据上述重复利用程序利用SLM索引记录时,有有条件的被认为无效的SLM索引记录的R-块可以根据重复利用程序忽视该SLM索引记录。

还可以容易想到,当在上述一个实例中描述一个二级映射(SLM)时,这样说明就具有解释性。上述的一个SLM页面包括一组地址映射条目,并且在不脱离本公开的思想和范围情况下,各种其他关系可以被应用以适用于一组地址条目。相似的,SLM索引通常可以被称为地址映射索引,并且SLM索引记录通常可以被称为地址映射索引记录。

进一步,还可以容易想到,说明书中诸如映射和表治疗的数据结构仅仅具有解释作用。在不脱离本公开的思想和范围情况下,比如列表和列表之类的各种数据结构也可以被用作记录和追踪目的。

前边公开的方法中具体的命令或步骤的层级是典型处理方法的例子。根据设计偏好,当保持在本发明的范围内,方法中具体的命令或步骤的层级可以被重排。附加的方法权利要求在一个样本命令中给出了各种步骤的原理,并不意味着限制在具体的命令或是层级中。

相信通过上述说明已了解本发明以及伴随的多个特点。而且很明显的,在不脱离本发明的思想以及范围,或不牺牲所有材料优势的情况下,部件的形式、结构和安排可以有各种改变。上述形式仅仅是它的一个解释性的实施例,权利要求的目的是围绕或包含这些变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号