固态驱动器的主动回收转让专利

申请号 : CN201310409598.5

文献号 : CN104424110B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许鹏马利昭

申请人 : LSI公司

摘要 :

本发明涉及固态驱动器的主动回收。公开了一种固态驱动器和固态驱动器的主动回收方法。固态驱动器包括多个块,所述多个块的每一个块包括多个页。该方法的步骤包括:接收来自一数据请求者的一读请求;识别包含所述读请求所请求的数据的至少一个页;确定是否所述至少一个页属于被识别为主动回收的块;当所述至少一个页属于被识别为主动回收的所述块时,将所述至少一个页写入一不同的块;以及响应所述读请求,将所述至少一个页发送至所述数据请求者。这种主动回收过程是在减少了有效页数量的源块上执行。因此,当源块需要被擦除时,垃圾回收过程并不需要读取和写入已经被写入目标块的页,从而减少总的处理时间。

权利要求 :

1.一种提供固态驱动器的主动回收的方法,所述固态驱动器包括多个块且所述多个块的每一个块包括多个页,所述方法包括:接收来自一数据请求者的一读请求;

识别包含所述读请求所请求的数据的至少一个页;

确定是否所述至少一个页属于被识别为主动回收的块;

当所述至少一个页属于被识别为主动回收的所述块时,将所述至少一个页写入一不同的块;以及响应所述读请求,将所述至少一个页发送至所述数据请求者。

2.根据权利要求1所述的方法,进一步包括:保持所述固态驱动器的所述多个块的每一个块的一有效页计数。

3.根据权利要求2所述的方法,进一步包括:基于所述多个块的每一个块的所示有效页计数,识别用于主动回收的一预定数量的块。

4.根据权利要求3所述的方法,其中,当一块在具有最少数量的有效页的所述预定数量的块中时,该块被识别为主动回收。

5.根据权利要求2所述的方法,其中,当一块的所述有效页计数低于一预定阈值时,该块被识别为主动回收。

6.根据权利要求1所述的方法,其中,所述至少一个页被写入的所述不同的块不被识别为主动回收。

7.根据权利要求1所述的方法,其中,所述至少一个页被写入的所述不同的块是一新的块。

8.一种固态驱动器,包括:

用于提供数据存储的多个块,其中,所述多个块的每一个块包括多个页;以及一控制器,其用于控制所述固态驱动器的操作,其中,一旦从数据请求者接收一读请求,所述控制器被构形用以:识别包含所述读请求所请求的数据的至少一个页;

确定是否所述至少一个页属于被识别为主动回收的块;

当所述至少一个页属于被识别为主动回收的所述块时,将所述至少一个页写入一不同的块;以及响应所述读请求,将所述至少一个页发送至所述数据请求者。

9.根据权利要求8所述的固态驱动器,进一步包括:一有效的页计数表,其用于保持所述固态驱动器的所述多个块中的每一个块的有效页计数。

10.根据权利要求8所述的固态驱动器,进一步包括:一主动回收表,其用于识别被考虑主动回收的所述多个块的一子集,其中,基于所述多个块的每一个块的有效页计数识别所述被考虑主动回收的所述块的所述子集。

11.根据权利要求10所述的固态驱动器,其中,当一块在具有最少数量的有效页的一预定数量的块中时,该块被识别为主动回收。

12.根据权利要求10所述的固态驱动器,其中,当一块的有效页计数低于一预定阈值时,该块被识别为主动回收。

13.根据权利要求8所述的固态驱动器,其中,所述至少一个页被写入的所述不同的块不被识别为主动回收。

14.根据权利要求8所述的固态驱动器,其中,所述至少一个页被写入的所述不同的块是一新的块。

15.根据权利要求8所述的固态驱动器,进一步包括:一记录机构,其用于跟踪所述至少一个页的状态,其中,当所述至少一个页被写入所述不同的块之后,所述至少一个页的所述状态指示在一垃圾回收过程中所述至少一个页要被跳过。

16.根据权利要求8所述的固态驱动器,进一步包括:一缓冲器,其用于缓冲包含所述读请求所请求的数据的所述至少一个页。

17.一种固态驱动器,包括:

用于提供数据存储的多个块,其中,所述多个块的每一个块包括多个页;

一有效页计数表,其用于保持所述固态驱动器的所述多个块的每一个块的一有效页计数;

一主动回收表,其用于识别被考虑主动回收的所述多个块的一子集,其中,基于所述多个块的每一个块的所述有效页计数识别所述被考虑主动回收的所述块的所述子集;以及一控制器,用于控制所述固态驱动器的操作,其中,一旦从数据请求者接收一读请求,所述控制器被构形用以:识别包含所述读请求所请求的数据的至少一个页;

确定是否所述至少一个页属于被识别为主动回收的块;

当所述至少一个页属于被识别为主动回收的所述块时,将所述至少一个页写入一不同的块;以及响应所述读请求,将所述至少一个页发送至所述数据请求者。

18.根据权利要求17所述的固态驱动器,其中,当一块在具有最少数量的有效页的一预定数量的块中时,该块被识别为主动回收。

19.根据权利要求17所述的固态驱动器,其中,当一块的所述有效页计数低于一预定阈值时,该块被识别为主动回收。

20.根据权利要求17所述的固态驱动器,进一步包括:一记录机构,其用于跟踪所述至少一个页的状态,其中,当所述至少一个页被写入所述不同的块之后,所述至少一个页的所述状态指示在一垃圾回收过程中所述至少一个页要被跳过。

说明书 :

固态驱动器的主动回收

技术领域

[0001] 本发明涉及数据存储领域,特别是固态存储设备。

背景技术

[0002] 固态驱动器(SSD)是一种数据存储设备,其使用集成电路组件作为存储器永久存储数据。与传统的机电式磁盘(如硬盘驱动器或软盘)的区别是,固态驱动器(SSD)没有运动机械部件。与机电磁盘相比,SSD通常不易受物理撞击,运行更安静,有较低的访问时间以及更短的延迟。

发明内容

[0003] 本公开的一个实施例涉及一种用于固态驱动器的主动回收的方法。所述固态驱动器包括的多个块(block),所述多个块中的每一个块包括多个页(page)。该方法的步骤包括:从数据请求者接收一读请求;识别包含所述读请求所请求的数据的至少一个页;确定是否所述至少一个页属于被识别为主动回收的块;当所述至少一个页属于被识别为主动回收的所述块时,将所述至少一个页写入一不同的块;以及响应所述读请求,将所述至少一个页发送至所述数据请求者。
[0004] 本发明的另一个实施例涉及一种固态驱动器。所述固态驱动器包括用于提供数据存储的多个块,其中,所述多个块中的每一个块包括多个页。所述固态驱动器还包括一控制器,用于控制所述固态驱动器的操作,其中,一旦从数据请求者接收一读请求,所述控制器被构形用以:识别包含所述读请求所请求的数据的至少一个页;确定是否所述至少一个页属于被识别为主动回收的块;当所述至少一个页属于被识别为主动回收的所述块时,将所述至少一个页写入一不同的块;以及响应所述读请求,将所述至少一个页发送至所述数据请求者。
[0005] 本公开的再一实施例涉及一种固态驱动器。所述固态驱动器包括用于提供数据存储的多个块,其中,所述多个块中的每一个块包括多个页。所述固态驱动器还包括一有效的页计数表,用于保持所述固态驱动器的所述多个块中的每一个块的有效页计数;一主动回收表,用于识别被考虑主动回收的所述多个块的一子集,其中,基于所述多个块的每一个块的所述有效页计数识别所述被考虑主动回收的所述块的所述子集;以及一控制器,用于控制所述固态驱动器的操作。一旦从数据请求者接收一读请求,所述控制器被构形用以:识别包含所述读请求所请求的数据的至少一个页;确定是否所述至少一个页属于被识别为主动回收的块;当所述至少一个页属于被识别为主动回收的所述块时,将所述至少一个页写入一不同的块;以及响应所述读请求,将所述至少一个页发送至所述数据请求者。
[0006] 应理解的是,前面的一般描述和下面的详细描述是示例性和说明性的不应限制本发明的权利。附图说明图被并入说明书中并构成本说明书的一部分,说明本发明的实施例,并与一般的描述一起用于解释本发明原理。

附图说明

[0007] 本发明的众多优点可以被本领域技术人员更好地理解,在本领域中,通过参考附图进一步详细说明:
[0008] 图1图示了固态驱动器的数据块和固态驱动器利用的地址映射;
[0009] 图2图示了固态驱动器的垃圾回收过程;
[0010] 图3是说明用于提供固态驱动器的主动回收的方法的流程图;以及
[0011] 图4是描绘了图3的固态驱动器的方框图。

具体实施方式

[0012] 参考下面进行详细说明,对本发明的优选实施例,其示例在附图中示出本发明。
[0013] 固态驱动器(SSD)使用集成电路组件作为存储器来存储永久数据。例如,闪存设备(例如,NAND型闪存等),可以作为存储介质。NAND闪存由浮栅晶体管将信息存储在存储单元阵列。在传统的单级单元(SLC)的装置中,每个单元只存储一个比特的信息。一些较新闪速存储器,被称为多级单元(MLC)的设备,包括三重级单元(TLC)的设备,通过在应用于其单元的浮栅的多能级电荷之间选择,可以每单元存储一个以上比特(bit)。
[0014] 典型的闪存由多个块(block)组成,每个块包含多个页(page)。基本的闪存存储器读/写单元是页,这通常是在一个示例性实施8KB。在常规实施中,数据在被写入到一特定的页之前,该页必须先被擦除,擦除过程是一次执行一个块。因此,当新的数据需要被改写到一个特定的页时,包含该特定的页的整个块必须首先被擦除。可以设想,上述提及的页可以使用上物理页地址方案或逻辑页地址(LPA)方案编址。
[0015] 图1描绘示出了发给闪速存储器的一系列写请求。例如,在实例102中LPA 0被写入页(Page)0。随后,LPA 4和LPA 10分别被写入到页1和页2。如果数据请求者(例如,主机)需要再次写入LPA 0,新的数据需要被写入到另一页。在这个例子中,新的数据被写入到页3,以104表示。这时,LPA 0被存储在页3,下一次,当主机读取LPA 0是从页2,而不是页2(即,第一个实例将不再有效)。在这种情况下,页0包含的数据被称为垃圾。
[0016] 值得注意的是,当主机继续将数据写入到SSD时,大量LPAs将被重写,每个重写的LPA的将被存储在不同的位置。SSD固件必须跟踪最新的LPAs的位置,才能正常工作。例如,在映射106可以被保持以记录LPAs与它们的物理地址之间的映射,如图1所示。还应该注意到,不再有效的存储数据实例的页不能使用,直到它们被释放/擦除。
[0017] 然而,当数据被写入闪速存储器中被称为页(由多个单元组成)的单位(unit),闪速存储器只能以被称为块(由多个页组成)的大单位被擦除。图2示出描述了这个过程。如202所示,四个页,A至D,被写入块(Block)X。只要有空闲的页,各页可以在任何时候被写入到相同的块。随后,如204所示,假设四个新的页,E至H,以及四个取代页,A'至D',被写入块X。原始页A至D现在是无效的(包含过期数据),但他们不能被重写,直到整个块被删除,使用如206示的被称为垃圾回收的过程。更具体地说,为了写入具有过期数据的页(例如,A到D),所有有效的页(例如E至H和A'至D')需要先被读取和写入到一个新的块(例如,块Y),然后块X可以被擦除。值得注意的是,需要从源块中读取所有页后将有效的页写入新的块浪费资源和时间。
[0018] 本公开的实施例,提供固态驱动器的主动回收的方法和系统。更具体地,数据被有条件地回收,作为响应于来自主机的读命令的一部分。如果被主机请求的当前的一个特定的页满足一定条件,则SSD可以读取所述特定的页的数据并将该页重入另一个块,提供主动的回收过程消耗更少的资源和处理时间。
[0019] 根据本公开的一个实施例,SSD固件保持SSD中每个块的有效页计数的记录。此记录可以保持在数据结构中,例如表或类似物,简称为有效页计数表(VPC)。每次接收特定的页的写入请求时,SSD固件/控制器将先确定该页是否已被之前写入。如果它已被之前写入,则SSD固件将找到包含该特定的页的块并在VPC表中减去该块的有效页计数1。然后,SSD固件将该页写入新的块,并在VPC表中创建一新的VPC条目,以跟踪该新块的有效页计数。
[0020] 总体上参看图3和图4。图3示出了用于提供SSD主动回收的方法300的流程图,以及图4示出根据本公开的一个实施例中的SSD 400的方框图。步骤302首先搜索VPC表402以找到一预定数量的块,其具有最少数量的有效页。随后,在步骤304,具有最少数量的有效页的所述块被添加到主动回收表404。在示例性实施例中,预定数量的块搜索是10个。然而,应当理解,不脱离本发明的精神和范围的情况下,这个数字可能会有所不同。可替换的,步骤302可以搜索VPC表402以找到具有有效页的数量低于某一阈值的块,并添加此块到主动回收表404。可以设想,在不脱离本发明的精神和范围的情况下,其他各种替代技术可被用来确定哪些块要添加到主动回收表。
[0021] 然后步骤306,等待来自数据请求者(例如,主机设备)406的读请求。一旦接收到读请求,步骤308查找包含主机所请求数据的SSD块,并在步骤310检索来自所述SSD块的所请求的数据。在将检索的数据返回主机之前,步骤312中检查是否是包含检索数据的块被列在主动回收表404中。如果包含检索数据的块不在所述主动回收表中,则步骤314将简单地把检索数据返回到主机。另一方面,如果包含检索数据的块在所述主动回收表中,则主动回收过程在步骤316中调用。
[0022] 根据本公开的一个实施例中的主动回收过程,通过作为响应读请求一部分,将包含检索数据的页写入到另一个块来实现。也就是说,检索数据不仅是发送回主机,也被写入到与源块是不同的另一个块(称为作为目的块)。以这种方式,SSD成功地处理主机的读命令,并同时回收源块中的一个页。值得注意的是,这种主动的回收过程是在减少了有效页数量(基于出现在主动回收表中的事实)的源块上执行。因此,当源块需要被擦除时,垃圾回收过程并不需要读取和写入已经被写入目标块的页,从而减少总的处理时间。
[0023] 可以设想,在记录机构408可以被用来提供逻辑地址方案与物理地址之间的映射以查找包含所请求的数据的SSD块。记录机构408也可以被用来跟踪每个页的状态(例如,空闲的,过期的或类似情况)。此外,一个新的状态可以用来识别源块中的页已经被重写入另一个目的块,当源块被释放/擦除时,使垃圾回收过程跳过此页。
[0024] 还可以设想,缓冲器410可以被用来缓冲检索数据,当步骤312,314和316实施时。随后,步骤314或316可以使用缓冲的数据,而不是必须再次访问数据块以检索数据。
[0025] 还可以预期,如在上述说明中引用的图和表的数据结构仅仅是示例性的。如列表等的各种数据结构,也可以利用不脱离本公开的精神和范围的情况下,用于实现记录和跟踪的目的。
[0026] 应当理解,上述公开的方法的步骤的特定顺序或层次是示例方法的例子。根据设计偏好,可以理解的是在该方法中的步骤的特定顺序或层次可以重新排列,而在本发明的范围之内保留。所附方法权利要求本样品中的顺序的各个步骤的元素,并不意味着被限制到具体顺序或层次。
[0027] 应当相信,由前面的描述中,将理解本发明和许多其伴随的优点。它也被认为,这将是明显可以做出各种改变,在其不脱离本发明的范围和精神的情况下,或不牺牲其所有材料优势的情况下的部件的形式,结构和布置的形式,在此之前描述的仅仅是实施例的说明,在下述权利要求的意图包含和包括此类更改。