通过追踪和利用二级映射索引重复利用固态驱动器块的制作方法
【技术领域】
[0001]本发明涉及数据存储领域,尤其涉及固态存储设备。
【背景技术】
[0002]固态驱动器(SSD)是利用集成电路组件作为存储器来持久储存数据的数据存储设备。SSD没有活动的机械组件,使它与传统的机电磁盘,如硬盘驱动器或是软盘,区分开来。与机电磁盘相比,SSDs典型地不易受物理震动的影响,运行更平稳,存取时间和等待时间更短。
【发明内容】
[0003]相应的,本公开的一个实施例是固态驱动器的重复利用方法。该方法包括为重复利用选择一个逻辑块,其中,该逻辑块包括多个跨越多个闪存裸片(die)的页面。该方法还包括检索与为重复利用而选择的逻辑块相关联的地址映射索引记录。对存储在地址映射索引记录的每个具体的地址映射索引,该重复利用方法检索一组引用该具体地址映射索引的地址映射条目,决定是否在逻辑块中的每个页面被该组地址映射条目引用,并且如果至少一个在逻辑块中的页面被该组地址映射条目引用,则该方法将该至少一个页面写入一个不同的逻辑块。该方法进一步包括清除逻辑块内的多个页面。
[0004]该公开的另一个实施例是利用二级映射追踪逻辑地址到物理地址映射的固态驱动器的重复利用方法。该方法包括为重复利用选择一个逻辑块,该逻辑块包括多个跨越多个闪存裸片的页面。该方法还包括检索与为重复利用而选择的逻辑块相关联的二级映射(SLM)索引记录。对每个具体的存储在SLM索引记录中的SLM索引,重复利用方法检索一个被该具体SLM索引引用的SLM页面,确定是否在该逻辑块内的每个页面都被SLM页面内的映射条目引用,并且如果在该逻辑块内的至少一个页面被SLM页面中的映射条目引用,则该方法写入该至少一个页面到另一个不同的逻辑块中。该方法进一步包括清除逻辑块内的所述多个页面。
[0005]该公开的另一个实施例是一个固态驱动器。该固态驱动器包括多个闪存裸片。该多个闪存裸片的每个闪存裸片包括多个块,并且该多个块的每个块进一步包括多个提供数据存储的多个页面。该固态驱动器还包括用于管理固态驱动器的回收利用操作的控制器。该重复利用操作以逻辑块为单位执行,并且该控制器依照前边所述的重复利用方法执行该重复利用过程。
[0006]上述的概括说明和以下的详细说明都应该被理解为是该发明的典型例子和起解释作用的例子,并不能限制本发明。包含在说明书内并组成说明书的一部分的图示,阐述了该发明的具体实施例,并和概括说明共同解释该发明的原料。
[0007]附图简要说明
通过参考下列附图,本领域技术人员可更好地理解本发明多个特点:
图1是本实施例所述的固态驱动器的数据块的示意图; 图2是本实施例所述的管理的逻辑块和/或逻辑文件段的多个闪存裸片(dies)/闪存芯片的块和页面的示意图(参考R-块);
图3是本实施例所述的物理地址映射的二级逻辑地址;
图4是本实施例所述的管理R块的多个闪存裸片/闪存芯片的块和页面以及储存二级映射(SLM)索引记录的指定储存区域的示意图;
图5是本实施例所述的R-块以及R-块的SLM索引记录和SLM页面的关系示意图;
图6是本实施例所述的基于R-块的重复利用程序的SLM索引记录的流程示意图。
【具体实施方式】
[0008]现在根据附图对所公开的实施例进行详细说明。
[0009]固态驱动器(SSD)利用集成电路组件作为存储器来持久储存数据。比如,闪存设备(例如,NAND型闪存以及类似设备)可以作为储存媒介。NAND型闪存将信息存储在由浮栅晶体管制备的阵列存储单元内。传统的单级单元(SLC)设备中每个单元仅存储一比特信息。一些新的闪存,比如多级单元(MLC)设备,包括三级单元(TLC)设备,通过选择多能级电荷应用到单元浮栅中可以使每个单元储存更多的信息。
[0010]一个典型的闪存包括多个块,而且每个块包括多个页面。基本的闪存读/写单元是在典型的实现中有8KB的页面。在传统的实现中,在数据被写入一个具体的页面之前,该页面应首先被清除,并且一次一块执行清除程序。因此,当新数据需要被重新写入一个具体页面时,包括该具体页面的整个块必须首先被清除。可以预期上述引用的页面可以使用物理页面地址方案或是逻辑页面地址(LPA)方案而得到解决。
[0011]图1是一组发给闪存的写请求的示意图。比如,在102情况下,逻辑页面地址O被写入页面O。随后,逻辑页面地址4和逻辑页面地址10被分别写入页面I和页面2。如果数据请求者(比如,主机)需要再次写入逻辑页面地址0,新的数据需要被写入另一个页面。在该实例中,新的数据被写入如图所示的104所引用的页面3。此时,逻辑页面地址O存储在页面3中,当下次主机读取逻辑页面地址O时,SSD的固件知道应该从页面3而不是页面O中读取(也就是,第一种情况不再有效)。在这种情况下,包含在页面O中的数据被称为垃圾。
[0012]值得注意的是,储存不再有效的数据实例的页面在被释放/清除之前是不可用的。然而,当数据以页面(由多个单元组成)为单位写入SSD时,只能以被称为块(由多个页面组成)的大单位来清除SSD。此外,在某些实施例中,如图2,在逻辑片和/或逻辑段中管理位于跨越不同闪裸片/闪存晶芯片的块中的多个页面。在本公开中,这些逻辑片和/或逻辑段被称为R-块(或逻辑块)。如图2所示,R块作为贯穿一个闪存200的所有芯片的逻辑片或是逻辑段。比如,在一个有R闪存裸片的SSD中,每个闪存裸片有N个块,来自每个闪存裸片的每个R-块作为第i个块聚集在一起,作为一个总数为N的R-块。再比如,在一个有R闪存裸片的SSD中,每个R闪存裸片都有N个块,每个R-块作为来自于每个闪存裸片第i个和i+Ι个块,作为一个总数为N/2的R-块。上述的R-块是为了说明问题是可以预期的。在不脱离本公开的思想和范围情况下,在逻辑片或是逻辑块中,可以通过其他各式各样的方式安排和管理贯穿至少两个闪存裸片的块。
[0013]当主机(数据请求者)连续向SSD中写入数据时,大量逻辑页面地址(LPAs)会被重写,并且每个重写的逻辑页面地址会被存储在不同的位置。为了正常运行,SSD固件/控制器(以下被称为控制器)必须追踪逻辑页面地址的最新的位置。在某些实施例中,地址映射被维护以记录逻辑页面地址和它们的物理地址之间的映射。
[0014]用上述R-块安排和管理SSD,逻辑页面地址和它们的物理地址之间的映射通过二级(或多级)映射维护是可预想到的。比如,如图3所示,第一层映射(FLM) 302可以被用于存储多个第二级映射(SLM)页面304的物理地址,每一个SLM页面304均可以被用于存储一组逻辑到物理地址映射条目。以这种方式,为一个具体的LPA获取物理地址信息,较小FLM页面可以被快速访问以定位一个具体的包含该具体的LPA物理地址信息的SLM页面。然后该具体的SLM页面可以被访问以获取相应的物理地址信息。
[0015]可以注意到,为了清晰,在本公开中用于存储一组逻辑到物理地址映射条目的SLM页面被称为“SLM页面”,以区别于在SSD中的页面(如,图1和2所示)在SSD中的页面被称为“存储页面”,“主机页面”,或“页面”。
[0016]还可以注意到,SSD控制器需要时常执行被称为重复利用或垃圾回收的程序以重复利用可用空间。在实施过程中,用R-块安排和管理SSD以重复利用一个具体的原始R-块,SSD控制器需要从原始R-块中找到所有有效的页面并且将它们转移到一个不同的R-块,然后,该原始R-块可以作为一个自由的R-块被清除和重新利用。然而,在给定R-块中的有效页面和它们的位置不容易被确定,尤其当使用一个多级映射时。
[0017]本公开的实施例都是关于重复利用固态驱动器中R-块的方法和系统,在一个实施例中,一个与每个R-块相关联的SLM索引记录被用于协助识别在每个具体R-块中的有效主机页面。通过追踪和利用SLM目录,重复利用程序中的识别有效主机页面过程被简化,因此提高了重复