首页> 中国专利> 用于具有较细粒度的并行多租户SSD中的数据恢复的系统和方法

用于具有较细粒度的并行多租户SSD中的数据恢复的系统和方法

摘要

公开了用于促进数据恢复的系统和方法。系统接收将第一页的数据写到非易失性存储器的请求(702)。系统将第一页写到非易失性存储器的第一块组中的第一块,其中,相应组中的块的数量小于超级块中的块的数量(706)。系统由控制器基于第一页生成第一增量奇偶校验页(708)。系统将第一增量奇偶校验页写到第一组的第二块,其中,第二块是下一依次可用的块。系统由控制器将第一增量奇偶校验页存储在控制器的易失性存储器缓冲部中(712),从而基于具有比超级块的尺寸小的块组尺寸的减小的粒度来增强垃圾收集处理(714)。

著录项

  • 公开/公告号CN112823331A

    专利类型发明专利

  • 公开/公告日2021-05-18

    原文格式PDF

  • 申请/专利权人 阿里巴巴集团控股有限公司;

    申请/专利号CN201880098408.3

  • 发明设计人 李舒;周平;杜宇;

    申请日2018-10-10

  • 分类号G06F3/06(20060101);G06F12/02(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人王小东;黄纶伟

  • 地址 英属开曼群岛大开曼

  • 入库时间 2023-06-19 11:00:24

说明书

发明人:李舒、周平、杜宇

背景

技术领域

本公开总体涉及数据存储领域。具体地,本公开涉及用于具有较细粒度的并行多租户SSD中的数据恢复的系统和方法。

背景技术

因特网和电子商务的激增继续产生大量的数字内容。已经创建了各种存储系统和服务器来访问和存储这种数字内容。存储系统或服务器可以包括易失性存储器(例如,动态随机存取存储器(DRAM))和多个驱动器(例如固态驱动器(SSD))。驱动器可以包括用于持久存储的非易失性存储器(例如,NAND闪存)。服务器中的存储器在存储系统的性能和容量中起关键作用。

在常规SSD中,系统对数据的寿命没有可见性,也没有对哪些数据被更新和以什么频率更新。结果,从主机接收的数据被认为是相等的,在“热”和“冷”数据之间没有区别(即,分别是频繁存取的数据和不频繁存取的数据)。因为热和冷数据可以在读和写操作中混合在一起,所以可能出现垃圾收集的开销。当第一NAND块在垃圾收集期间被回收利用时,系统将有效页从第一NAND块复制到新块中。第一块只有在第一块中的所有有效数据被复制到新块之后才被“擦除”。然而,因为数据以超级块(例如一组128个块)的粒度回收利用块,所以超级块的大的尺寸会导致垃圾收集及NAND闪存的整体组织的效率降低。这会导致高的写放大,由此复制数据消耗的NAND带宽会导致服务质量(QoS)降低和等待时间增加。

一种解决方案是通过数据的存取频率分离数据,并基于存取频率创建分离的流,例如用于热数据和冷数据的分离的流,或在SSD中的分离的多流区域。在垃圾收集期间,第一流中的热页已到期,因为已被写了较新版本,但第二流中的冷页仍有效。因此,此解决方案仍然导致高的写放大,从而为了在垃圾收集期间回收利用超级块,仍然必须拷贝冷有效数据。

此外,此解决方案会导致过度设计,其将影响存储系统的整体性能。例如,如果系统为将来可能的新流保留大量块,则空闲块池变得有限。随后,如果系统经历强烈的随机写操作,则存储系统的性能会遭受效率降低(例如,次优性能)。

因此,尽管SSD中的多流区域可以提供一些益处,但仍存在一些问题,包括写放大高、等待时间增加和效率降低。

发明内容

一个实施方式促进数据恢复。在操作期间,系统接收将第一页的数据写到非易失性存储器的请求。系统将第一页写到所述非易失性存储器的第一块组中的第一块,其中,相应组中的块的数量小于超级块中的块的数量,其中,从相应组的起始块到相应组的最后块每次一页地按照条带来写数据,其中,条带包括物理页,各个物理页对应于非易失性存储器的依次排序的晶片,并且其中,第一块是第一块组中的下一依次可用的块。系统由控制器基于至少第一页生成第一增量奇偶校验页。系统将第一增量奇偶校验页写到第一块组中的第二块,其中,第二块是第一块组中下一依次可用的块。系统由控制器将第一增量奇偶校验页存储在控制器的易失性存储器缓冲部中,从而基于具有比超级块的尺寸小的块组尺寸的减小的粒度来增强垃圾收集处理。

在一些实施方式中,系统接收将第二页的数据写到非易失性存储器的请求。系统确定第一块组已满。系统将第二页写到第二块组中的第三块。响应于确定第二页被写到与第一增量奇偶校验页相关联的位置,系统基于第二页更新第一增量奇偶校验页。系统由控制器将更新后的第一增量奇偶校验页存储在控制器的易失性存储器中。

在一些实施方式中,响应于检测到触发回收利用第一块的条件,系统:将第一页写到新块;基于至少第一页更新第一增量奇偶校验页,以从第一增量奇偶校验页中的奇偶校验计算中去除第一页;将更新后的第一增量奇偶校验页存储在控制器的易失性存储器中;以及将第一块释放到空闲块池。

在一些实施方式中,响应于检测到触发回收利用第一块的条件,系统:将第一块中的有效页写到一个或更多个新块,其中,有效页不包括增量奇偶校验页;更新与第一块中的有效页相关联的一组增量奇偶校验页,以从所述一组增量奇偶校验页中的相应奇偶校验计算中去除有效页;将更新后的所述一组增量奇偶校验页存储在控制器的易失性存储器中;由闪存转换层组件将第一块中的任何增量奇偶校验页映射到新的物理块地址;以及将第一块释放到空闲块池。

在一些实施方式中,响应于检测到触发回收利用第二块的条件,系统由闪存转换层组件将所述第一增量奇偶校验页映射到新的物理块地址。

在一些实施方式中,响应于检测到掉电或响应于确定控制器的易失性存储器中的数据不能承受掉电,系统执行以下操作中的一个或更多个操作:将至少第一增量奇偶校验页从控制器的易失性存储器转储(flush)到非易失性存储器;以及将全部增量奇偶校验页从控制器的易失性存储器转储到非易失性存储器。

在一些实施方式中,在接收写第一页的请求之前,系统:接收将第一数量的页写到非易失性存储器的请求,其中,第一数量的页包括第一页;以及由主机向第一数量的页和第三数量的奇偶校验页指派第二数量的物理块地址,其中,第二数量是第一数量和第三数量之和,并且其中,第三数量的奇偶校验页包括第一增量奇偶校验页。

在一些实施方式中,第一组或相应组中的块的数量基于以下各项中的一项或更多项:用于数据恢复的预定最佳块尺寸;由控制器配置的尺寸;由主机配置的尺寸;以及由存储服务器的用户确定的尺寸。

附图说明

图1A例示了根据本申请的实施方式的促进数据恢复的示例性环境。

图1B例示了根据本申请的实施方式的促进数据恢复的示例性存储装置。

图2例示了根据现有技术的使用基于存取频率的多个流的示例性存储装置。

图3例示了根据现有技术的基于多个流的在NAND中的物理空间的示例性组织。

图4例示了根据本申请的实施方式的促进数据恢复的在NAND中的物理空间的示例性组织,其中包括增量奇偶校验页。

图5例示了根据本申请的实施方式的具有用于将奇偶校验页从DRAM转储到NAND的掉电保护的示例性存储装置。

图6A例示了根据本申请的实施方式的促进数据恢复的在NAND中的物理空间的示例性组织,其中包括更新增量奇偶校验页和在垃圾收集处理中回收利用块。

图6B例示了根据本申请的实施方式的促进数据恢复的示例性环境,其中包括在垃圾收集处理中回收利用块。

图7A呈现了例示根据本申请的实施方式的用于促进数据恢复的方法的流程图。

图7B呈现了例示根据本申请的实施方式的用于促进数据恢复的方法的流程图,其中包括更新增量奇偶校验页。

图7C呈现了例示根据本申请的实施方式的用于促进数据恢复的方法的流程图,其中包括回收利用块。

图7D呈现了例示根据本申请的实施方式的用于促进数据恢复的方法的流程图,其中包括基于掉电来转储奇偶校验页。

图8例示了根据本申请的实施方式的促进数据恢复的示例性计算机系统。

图9例示了根据本申请的实施方式的促进数据恢复的示例性设备。

在附图中,类似的附图标记表示类似的附图要素。

具体实施方式

呈现以下描述以使所属领域的技术人员能够制作和使用所述实施方式,且在特定应用及其要求的上下文中提供所述描述。所属领域的技术人员将容易明白对所揭示实施方式的各种修改,且本文所界定的一般原理可在不脱离本公开的精神和范围的情况下应用于其它实施方式和应用。因此,本文描述的实施方式不限于所示的实施方式,而是与符合本文公开的原理和特征的最宽范围一致。

本文所描述的实施方式提供了一种系统,其通过为粒度小于超级块的块组提供增量奇偶校验生成来解决多流SSD中固有的低效率问题。

在常规多流SSD中,可以基于存取频率将数据设置在“流”(例如,非易失性存储器中的物理空间的专用独立区域)中,诸如“热页”或“冷页”。然而,虽然流中的热页可能由于写到新流的较新版本而到期,但具有有效数据的冷页仍然保留在其相应流中。在垃圾收集期间,为了回收利用与流相关联的块,仍然必须复制出具有有效数据的冷页。这导致高的写放大,并且还可会导致过度设计,其影响存储系统的整体性能。例如,如果系统为将来可能的新流保留大量块,则空闲块池变得有限。随后,如果系统经历强烈的随机写操作,则存储系统的性能会遭受效率降低(例如,次优性能)。

本文描述的实施方式通过提供支持具有独立和隔离的物理区域的“多租户”的系统来解决这些问题。多租户可以是指通过将数据编程到NAND闪存中同时执行多个独立的写操作。系统可将数据水平地按照“条带”设置成尺寸比超级块尺寸小的块组。即,从组的起始块到该组的最后块每次一页地按照条带(水平地)写数据,并且如果在组中剩余空间并且在到达最后块时在起始块的下一可用页处重复。条带包括物理页,各个物理页对应于非易失性存储器(例如,NAND)的依次排序的晶片。系统可基于系统的吞吐量要求来确定块组尺寸。该系统还可以基于该组的块中的页生成增量奇偶校验页,并且可以在将新页写到条带或写到不在该块组中的其它块时,更新增量奇偶校验页。下面结合图4描述设置数据和更新增量奇偶校验页。

本文描述的系统的实施方式还通过在存储装置的控制器的易失性存储器缓冲部中存储(和更新)增量奇偶校验页(例如,在SSD控制器的内部DRAM中)来为增量奇偶校验页提供掉电保护,如下面关于图5所描述的。此外,系统可以通过以下处理有效地执行垃圾收集并且回收利用块A:1)将有效页从块A拷贝到新块;2)重新计算相关联的奇偶(例如,通过从相关联的增量奇偶校验页中的奇偶校验计算中去除相应的有效页,针对来自块A的相应的有效页更新相关联的增量奇偶校验页);以及3)将块A中的任何增量奇偶校验页映射到新的物理位置。下面结合图6A和图6B描述垃圾收集和回收利用块。

因此,通过将用于更新增量奇偶校验的块组的粒度设置为小于超级块的尺寸,本文描述的实施方式可以避免常规SSD中的多流区域所涉及的高的写放大。也就是说,系统不需要为将来的新流保留大量块,这得以消除了对空闲块池的限制。这又允许系统执行密集写操作而不会遭受降低的效率。此外,所描述的系统不需要使用作为跨越超级块中的所有块的条带的数据恢复组,这得以消除了包括超级块中未使用和浪费的空间在内的块的开放部分。

因此,本文描述的实施方式提供了改进和提高了存储系统的效率和性能的系统。该系统可以显著地减少超级块中保留的开放块的数量和块的未使用部分两者。通过实现尺寸小于超级块的块组,系统可以以水平条带方式设置数据,并且还可以在较小的组内生成和更新增量奇偶校验页。这可以得到改进的效率,例如通过基于具有比超级块的尺寸小的块组尺寸的减小的粒度来增强垃圾收集处理。

如上文和本文所述,常规的多流SSD会使超级块的许多部分块开放,这会导致大量未使用和浪费的空间,并且还会导致针对以超级块的粒度进行垃圾收集的高的写放大。在本文所描述的实施方式中,系统通过允许高效的多流SSD来改进常规SSD,所述多流SSD可以高效地使用非易失性存储器存储和以较精细的粒度即在单个块级在并行多租户SSD中执行数据恢复两者。因此,系统为软件领域中的技术问题(例如,增加的写放大、浪费的空间、低效的垃圾收集和降低的存储系统的整体效率)提供了技术方案(例如,基于较精细的粒度增强多流SSD中的垃圾收集和数据恢复)。

图1A例示了根据本申请的实施方式的促进数据恢复的示例性环境100。环境100可以包括计算装置102和相关联的用户104。计算装置102可以经由网络110与存储服务器112、114和116通信,存储服务器112、114和116可以是分布式存储系统的一部分并且经由客户端服务器(未示出)来存取。存储服务器可以包括多个存储驱动器,并且各个驱动器可以包括控制器和用于数据存储的多个物理介质。例如,服务器116可以包括网络接口卡(NIC)122、CPU 124、DRAM双列直插存储器模块(DIMM)126,以及分别具有控制器134、138、142和146的SSD 132、136、140和144。

控制器可以包括到主机和到非易失性存储器的接口。控制器可以还包括缓冲部以及固件,固件包括用于执行本文描述的方法的指令和/或代码。例如,SSD 140可以包括SSD控制器142。SSD控制器142可以包括:主机接口150;嵌入式处理器152,其包括缓冲部154和固件156;以及通道管理158。SSD控制器142可以与主机通信(例如,经由主机接口150和从/到主机的通信149)。SSD控制器142可以还与非易失性存储器通信(经由通道管理158)。可以通过多个通道存取非易失性存储器。例如,可以经由通道160存取NAND晶片162、164和166,并且可以经由通道170存取NAND晶片172、174和176。

在操作期间,在本文所描述的实施方式中,固件156可包含指令和/或代码,其允许来自主机的传入写数据从块组的起始块到该块组的最后块每次一页地以“水平”方式在块组中的多个块上写在页条带的物理页中,如下文关于图4所描述。

图1B例示了根据本申请的实施方式的促进数据恢复的示例性存储装置(例如,SSD)140。在操作期间,SSD 140可以从主机接收数据180(经由通信149)。数据180可以包括k页数据,例如,页_1、页_2、页_3、页_21、页_22、页_23、页_31、页_32、页_33、…、页_4、页_5、页_6、…和页_k。主机可以管理非易失性存储器中的数据设置和物理地址。也就是说,主机可以定义N个物理地址,其中,N包括k个页(或部分)数据和N-k个奇偶校验页(或部分)。

例如,主机接口150可以接收数据180和主机定义的N个物理地址184。主机接口150可以将数据180发送到数据恢复引擎157,数据恢复引擎157可以对数据进行编码和解码。数据恢复引擎157可以被包括在例如图1A的固件156和/或嵌入式处理器152中。数据恢复引擎157可以生成经处理的数据182,该经处理的数据182可以包括N个页,例如,页_1、页_2、…、页_6、…、页_k、奇偶_k+1,奇偶_k+2,…和奇偶_n)。数据恢复引擎157可以向通道管理158发送经处理的数据182。主机接口150还可以向通道管理158发送由主机定义的N个物理地址184。随后,SSD控制器142可以经由通道管理158将经处理的数据182写到对应于由主机定义的N个物理地址184的位置(例如,分别经由通道160和170写到NAND晶片162-166和172-176中的一个或更多个)。

图2例示了根据现有技术的使用基于存取频率的多个流的示例性存储装置202。SSD 202可以包括多个流,其中,基于数据的存取频率(热或冷)用数据填充相应的流。例如,在时间t1处的多流SSD 202中:流210可以包括热数据212、214、216和218;流220可以包括冷数据222、224、226和228;并且流230可以被保留用于输入热或冷数据。在时间t1之后的时间t2处的多流202中,因为流210频繁更新,所以原始热数据212-218可能已经“过期”,并且新的热数据可以作为热_新数据212.1-218.1被写到流230。通过以这种方式基于多流SSD的存取频率保留多个独立的物理区域,系统可以擦除整个单元并复制较少的有效页,因为频繁存取的页过期。

当常规SSD保留多个独立物理区域(因此尝试用作通用驱动器)时,常规SSD可以尝试基于例如数据量、数据可靠性和驱动器容量来提供最佳数量的流。然而,这会导致过度设计,其影响存储系统的整体性能。例如,如果系统为将来可能的新流保留大量块,则空闲块池变得有限。随后,如果系统经历强烈的随机写操作,则存储系统的性能会遭受效率降低(例如,次优性能)。

图3例示了根据现有技术的基于多个流的在NAND中的物理空间300的示例性组织。物理空间300可以包括流310(其对应于超级块312)和流330(其对应于超级块332)。流310可以包括多个块,包括:块1 321、块2 322、块3 323、块n-2 324、块n-1 325;以及块n 326。注意,在常规SSD中,数据恢复组包括“超级页条带”,其为SSD上的所有晶片的页条带,即,包括来自SSD上的各个晶片的一个物理页,或超极块中的所有块上的一个物理页。例如,在流310中,数据恢复组314包括分别在块1 321到块n 326上的页_1、页_2、页_3…、页_n-2、页_n-1和页_n。数据恢复组316包括分别在块1 321到块n 326上的页_n+1、页_n+2、页_n+3…、页_2n-2、页_2n-1和页_2n。类似地,在流330中,数据恢复组334包括分别在块1 341到块n 346上的页_1、页_2、页_3…、页_n-2、页_n-1和页_n。数据恢复组336包括分别在块1 341到块n346上的页_n+1、页_n+2、页_n+3…、页_2n-2、页_2n-1和页_2n。

因此,各个数据恢复组在NAND超级块上被条带化,并且各个数据恢复条带必须具有n个部分,其中n对应于超级块中的块的数量,诸如128个块。超级块必须保持开放,直到所有数据恢复组被写。此外,为了擦除超级块,必须一起擦除具有n个块的整个超级块,这会显著影响垃圾收集处理。例如,为了擦除整个超级块,在将超级块的块释放到空闲块池之前,系统必须从各个数据恢复组(超级块的所有块上)复制出所有有效数据。

此外,流310和流330中的每一者在相应块中包括大量开放空间,例如流310中的开放空间318和流330中的开放空间338。依赖于写操作,该开放空间在等待发生垃圾收集时可能未使用或被浪费。常规多流SSD中的这些挑战会导致效率降低,包括等待时间增加和写放大高,这会导致低效的存储系统。

图4例示了根据本申请的实施方式的促进数据恢复的在NAND中的物理空间400的示例性组织,其中包括增量奇偶校验页。物理空间400可以包括块1-7(例如,块1 421到块7427)。系统可以将并行块(例如,非易失性存储器的依次排序的晶片)的数量定义为块组的最佳尺寸。该数量可以基于系统的吞吐量要求。通常,在本文描述的实施方式中,系统不将水平方向上的所有块(例如,作为超级块)开放为原始数据恢复组。例如,在物理空间400中,第一块组402包括4个块:块1 421;块2 422;块3 423;以及块4 424。系统可以在块1 421中设置页_1,在块2 422中设置页_2,在块3 423中设置页_3。系统可以随后基于这三个页来生成增量奇偶校验页。也就是说,系统可以通过将来自这三个页的数据作为输入(经由通信404)来执行函数406以产生奇偶_1页。系统然后可以将所生成的奇偶_1写到块4 424(经由通信408)。系统可将所生成的奇偶_1存储在易失性存储器中,例如存储在SSD的内部DRAM缓冲部中,如图5中所描绘的DRAM 540中。

随后,当系统接收到要写的下一页(例如,页_21)时,系统可以将页_21的数据设置在第一块组402的块1 421的第二行中,并且基于至少页_21(例如,奇偶_2)生成相关联的增量奇偶校验页。注意,系统可以确定在特定块组内的何处和何时生成增量奇偶校验页。这与常规SSD相反,常规SSD会在将页_3设置于块3 423之后立即将页_21设置于块4 424中(例如,在超级块的所有块上的相同页条带中)。

当第一块组402已满时,系统可以将传入数据写到下一块组。例如,系统可以在块5425中设置页_4,在块6 426中设置页_5,以及在块7 427中设置页_6。系统随后可以基于这三个页更新增量奇偶校验页。具体地,系统可以通过将来自这三个页的数据(经由通信410)和奇偶_1的当前值(经由通信412)作为输入来执行函数406,以更新奇偶_1页。系统然后可以通过更新SSD的易失性存储器中的相应值来将更新后的奇偶_1“写”到块4 424(经由通信414)。因为除非擦除整个块,否则NAND闪存的块中的数据无法被写,所以系统可以更新SSD的内部DRAM中的先前存储的奇偶_1。

因此,物理空间400描述了一种系统,该系统使用小的块组(即,小于超级块)来将数据设置在水平页条带中,并插入增量奇偶校验页,该增量奇偶校验页考虑了同一块组或另一块中的数据。该系统可以为第一组页生成该增量奇偶校验,并且随后更新该增量奇偶校验以:1)考虑被写到同一或另一块的附加有效页,该附加有效页被写到与该增量奇偶校验页相关联的位置;以及2)考虑要从在垃圾收集处理期间要被回收利用的页拷贝出的有效页。系统可以将所生成和更新后的增量奇偶校验页存储在控制器的易失性存储器缓冲部(例如,DRAM)中,所述易失性存储器缓冲部可以在检测到掉电或易失性存储器中的数据无法承受掉电时转储到非易失性NAND存储器(例如,NAND)。

通过利用增量奇偶校验生成和更新以渐进方式扩展数据恢复组,系统可以在减小的粒度上执行垃圾收集,即,每次基于单个块,而不是如常规SSD中那样每次整个超级块。此外,基于主机的管理可以在将数据编程到NAND中之前配置物理NAND空间。通过将编码引擎分流到专用集成电路(ASIC)上,本文所描述的系统可以加速整个写处理并且进一步改进存储系统的效率。

图5例示了根据本申请的实施方式的具有用于将奇偶校验页从DRAM转储到NAND的掉电保护的示例性存储装置500。SSD 500可以包括SSD控制器502,SSD控制器502可以包括:主机接口504、缓冲部506、以及通道管理508。SSD 500可以还包括掉电保护模块530,其可以包括多个电容器。SSD 500可以还包括对应于缓冲部506的DRAM 540。系统可以在DRAM 540中存储增量奇偶校验页(例如,来自图4的奇偶_1和奇偶_2)。

响应于检测到掉电552(经由从/到主机的通信550),系统可将增量奇偶校验页从DRAM 540转储到NAND(例如,NAND晶片512-516和522-526中的一者,分别经由通道510和520)。系统还可以响应于确定控制器的易失性存储器中(例如,DRAM中)的数据不能承受掉电而转储增量奇偶校验页。

图6A例示了根据本申请的实施方式的促进数据恢复的在NAND中的物理空间600的示例性组织,其中包括更新增量奇偶校验页和在垃圾收集处理中回收利用块。物理空间600可以包括类似于图4的物理空间400的块和块的页中的数据。在操作期间,系统可在垃圾收集处理期间确定回收利用块1 421(例如,待回收利用的块602)。系统可以将块1 421的有效页写到新块。系统可以更新与块1 421的有效页相关联的一组增量奇偶校验页,以从所述一组增量奇偶校验页中的奇偶校验计算中去除有效页。例如,系统可将页_1(有效数据)写到新块(未示出),即,将有效数据复制到新块。系统可以通过基于页_1(经由通信604)和奇偶_1的当前值(经由通信606)执行函数608来更新与页_1相关联的奇偶_1。函数608得到值奇偶_1新610,其基本上从奇偶校验计算中去除了来自页_1的数据。

系统还可以确定块1 421中的有效页是增量奇偶校验页。对于这些有效奇偶校验页,系统不需要将有效增量奇偶校验页写到新块。相反,系统经由闪存转换层(FTL)组件仅需要将有效增量奇偶校验页映射到新的物理块地址。例如,FTL组件可以将奇偶_4映射到新的物理块地址。在处理了数据的有效页(通过将相应的有效页写到新块,并且基于相应有效页重新计算相关联的增量奇偶校验页)并且将任何有效增量奇偶校验页重新映射到新的物理地址之后,系统可以擦除要被回收利用的块。具体地,系统可以通过将块1 421释放到空闲块池来擦除块1 421,如下面关于图6B所示。

图6B例示了根据本申请的实施方式的促进数据恢复的示例性环境640,其中包括包含在垃圾收集处理中回收利用块。环境640可以包括多个流,诸如流_h 642、流_i 644和流_n 648。流可以包括多个块,并且“当前流”可以是尺寸比超级块尺寸小的块组。例如,流_i 644可以包括多个块(例如,块1 421、块2 422、块3 423、块4 424、块5 425…、块7 427),并且当前流_i 646可以包括4个块(块1 421到块4 424)。

在操作期间,系统可以确定回收利用块1 421,并且执行以上关于图6A所描述的操作。系统可以指派新块652,块1 421的有效页可以被复制到所述新块652,并且通过将块1421释放回到空闲块池660来执行擦除662功能。环境640还描绘了被指派或分配给流_i 644的其它新块(例如,新块654和656),以回收利用该流的块(例如,块5 425和块7 427)。此外,系统可以指派新块664来处理其它操作,例如数据刷新670、坏块管理672和突发写674。

图7A呈现了例示根据本申请的实施方式的用于促进数据恢复的方法的流程图700。在操作期间,系统接收将第一数量的页的数据写到非易失性存储器的请求(操作702)。系统由主机向第一数量的页和第三数量的奇偶校验页分配第二数量的物理块地址,其中,第二数量是第一数量和第三数量的和,其中,第一数量的页包括第一页,并且其中,第三数量的奇偶校验页包括第一增量奇偶校验页(操作704)。主机定义的物理地址在图1B中描述。

系统将第一页写到非易失性存储器的第一块组中的第一块,其中,相应组中的块的数量小于超级块中的块的数量,其中,从相应组的起始块到相应组的最后块每次一页地按照条带来写数据,其中,条带包括各自对应于非易失性存储器的依次排序的晶片的物理页,并且其中,第一块是第一块组中的下一依次可用的块(操作706)。也就是说,数据以水平方式从块组的起始块写到最后块,并且如果块组具有足够空间,则通过在起始块的下一可用页处开始而重复(例如,在的小水平页条带中)。第一块组或相应块组中的块的数量可限定数据恢复组,如上文关于图4所描述,并且可以基于系统的处理量要求,例如作为用于数据恢复的预定最佳块尺寸。控制器、主机或存储服务器的用户也可以配置块的数量。

系统由控制器基于至少第一页生成第一增量奇偶校验页(操作708)。系统将第一增量奇偶校验页写到第一块组中的第二块,其中,第二块是第一块组中的下一依次可用的块(操作710)。系统由控制器将第一增量奇偶校验页存储在控制器的易失性存储器缓冲部中(操作712)。该系统基于具有比超级块的尺寸小的块组尺寸的减小的粒度来增强垃圾收集处理(操作714)。该操作随后可以继续,如图7B、图7C和图7D中的标记A、B和C中的任一个所示。

图7B呈现了例示根据本申请的实施方式的用于促进数据恢复的方法的流程图720,包括更新增量奇偶校验页。在操作期间,系统接收将第二页的数据写到非易失性存储器的请求(操作722)。如果第一块组未满(判断724),则操作如上文在图7A的操作706处描述而继续,其中,将第二页写到第一块组中的下一依次排序晶片的下一可用的页。如果第一块组已满(决策724),则系统将第二页写到第二块组中的第三块(操作726),如上文关于图4所描述。如果第二页没有被写到与第一增量奇偶校验页相关联的位置(判断728),则系统基于第二页更新与第二页的位置相关联的第二增量奇偶校验页(操作730),并且操作在操作734处继续。如果第二页被写到与第一增量奇偶校验页相关联的位置(判断728),则系统基于第二页更新第一增量奇偶校验页(操作732),如以上关于图4所描述。系统由控制器将更新后的第一(或第二)增量奇偶校验页存储在控制器的易失性存储器中(操作734),并且操作返回。

图7C呈现了例示根据本申请的实施方式的用于促进数据恢复的方法的流程图740,其中包括回收利用块。在操作期间,如果系统没有检测到触发回收利用第一块的条件(判断742),则操作返回。如果系统确实检测到触发回收利用第一块的条件(判断742),则系统将第一块中的第一页和有效页写到一个或更多个新块(操作744)。系统基于至少第一页更新第一增量奇偶校验页,以从第一增量奇偶校验页中的奇偶校验计算中去除第一页(操作746)。系统还更新与第一块中的有效页相关联的一组增量奇偶校验页,以从所述一组增量奇偶校验页中的相应奇偶校验计算中去除有效页(操作748)。系统将更新后的第一增量奇偶校验页和更新后的增量奇偶校验页组存储在控制器的易失性存储器中(操作750)。系统由闪存转换层组件将第一块中的任何增量奇偶校验页映射到新的物理地址(操作752)。系统将第一块释放到空闲块池(操作754),并且操作返回。

图7D呈现了例示根据本申请的实施方式的用于促进数据恢复的方法的流程图760,其中包括基于掉电来转储奇偶校验页。在操作期间,系统检测掉电或确定控制器的易失性存储器中的数据不能承受掉电(操作762)。系统将至少第一增量奇偶校验页从控制器的易失性存储器转储到非易失性存储器(操作764)。系统将全部增量奇偶校验页从控制器的易失性存储器转储到非易失性存储器(操作766)。

图8例示了根据本申请的实施方式的促进数据恢复的示例性计算机系统。计算机系统800包括处理器802、存储器804和存储装置/固件808。计算机系统800可以是计算装置或存储装置。易失性存储器804可以包括用作受管理的存储器的存储器(例如,RAM),并且可以用于存储一个或更多个存储器池。非易失性存储器806可以包括用于持久存储的存储器(例如,NAND闪存)。此外,计算机系统800可以联接到显示装置810、键盘812和指点装置814。存储装置/固件808可以存储操作系统816、内容处理系统818和数据832。请注意,固件808可以另选地位于或被包括在计算机系统800的其它组件中。

内容处理系统818可以包含指令,所述指令在由计算机系统800执行时可以使得计算机系统800执行本公开中所描述的方法和/或处理。例如,内容处理系统818可以包含用于接收和发送数据分组的指令,所述数据分组包括写或读数据的请求;待编码、解码、存储、删除或存取的数据;或数据块或页数据。

内容处理系统818可以还包括用于接收将数据的第一页写到非易失性存储器的请求的指令(通信模块820)。内容处理系统818可以包含用于将第一页写到非易失性存储器的第一块组中的第一块的指令,其中,相应组中的块的数量小于超级块中的块的数量,其中,从所述相应组的起始块到所述相应组的最后块每次一页地按照条带来写数据。其中,条带包括各自对应于非易失性存储器的依次排序晶片的物理页,并且其中,第一块是第一块组中的下一依次可用的块(块写模块822)。内容处理系统818可以包括用于由控制器基于至少第一页生成第一增量奇偶校验页的指令(增量奇偶校验管理模块824)。内容处理系统818可以包括用于将第一增量奇偶校验页写到第一块组中的第二块的指令(块写模块822),其中,第二块是第一块组中的下一依次可用的块。内容处理系统818可以包括用于由控制器将第一增量奇偶校验页存储在控制器的易失性存储器缓冲部中的指令(缓冲管理模块826)。内容处理系统818可以包括用于基于具有比超级块的尺寸小的块组尺寸的减小的粒度来增强垃圾收集处理的指令(垃圾收集处理模块832)。

内容处理系统818还可以包括用于接收将第二页的数据写到非易失性存储器的请求的指令(通信模块820)。内容处理系统818可以包括用于确定第一块组已满的指令(块写模块822)。内容处理系统818可以包括用于将第二页写到第二块组中的第三块的指令(块写模块822)。内容处理系统818可以包括用于响应于确定第二页被写到与第一增量奇偶校验页相关联的位置(增量奇偶校验管理模块824),基于第二页更新第一增量奇偶校验页(增量奇偶校验管理模块824)的指令。内容处理系统818可以包括用于由控制器将更新后的第一增量奇偶校验页存储在控制器的易失性存储器中的指令(缓冲管理模块826)。

内容处理系统818可以包括用于响应于检测到触发回收利用第一块或第二块的条件而进行操作的指令(垃圾收集处理模块830)。内容处理系统818可以包括用于响应于检测到掉电或确定控制器的易失性存储器中的数据不能承受掉电而进行操作的指令(掉电保护模块828)。

数据832可以包括作为输入所需的或通过本公开中描述的方法和/或处理作为输出而生成的任何数据。具体地,数据832可以至少存储:待存储、写、读、加载、移动、检索、删除或复制的数据;逻辑单位的数据;物理单位的数据的、物理页的数据;逻辑页的数据;数据块;数据条带,数据在块组中的块上以水平方式每次一页地写到条带;尺寸小于超级块的块组;非易失性存储器的依次排序的晶片的指示符;多个流;增量奇偶校验页;通过从增量奇偶校验计算中去除页的数据或在增量奇偶校验计算中包括页的数据来生成增量奇偶校验页的操作;新块;块将被回收利用以用于垃圾收集的指示;释放的块;与页的数据或增量奇偶校验页相关联的位置;奇偶校验计算;重新映射的增量奇偶校验页;用于重新映射的增量奇偶校验页的新的物理地址;掉电指示器;易失性存储器中的数据不能承受掉电的指示符;将数据从控制器的易失性存储器转储到非易失性存储器的指令;分配给多个页的多个物理块地址和多个奇偶校验页;用于数据恢复的预定最佳块尺寸;由所述控制器或主机配置的尺寸;以及由存储服务器的用户确定的尺寸。

图9例示了根据本申请的实施方式的促进数据恢复的示例性设备。设备900可以包括可以经由有线、无线、量子光或电通信通道彼此通信的多个单元或装置。设备900可以使用一个或更多个集成电路来实现,并且可以包括比图9所示的单元或装置少或多的单元或装置。此外,设备900可以集成在计算机系统中,或者实现为能够与其它计算机系统和/或设备通信的单独设备。具体地,设备900可以包括执行与图8的计算机系统800的模块820-830类似的功能或操作的单元902-912,包括:通信单元902、块写单元904、增量奇偶校验管理单元906、缓冲管理单元908、电力损失保护装置910、以及垃圾收集处理单元912。

在本具体实施方式中描述的数据结构和代码通常存储在计算机可读存储介质上,该计算机可读存储介质可以是能够存储供计算机系统使用的代码和/或数据的任何装置或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储装置,诸如磁盘驱动器、磁带、CD(光盘)、DVD(数字通用盘或数字视频盘),或能够存储现在已知或以后开发的计算机可读介质的其它介质。

在具体实施方式部分中描述的方法和处理可以实现为代码和/或数据,其可以存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储在计算机可读存储介质内的方法和处理。

此外,上述方法和处理可以包括在硬件模块中。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)和现在已知或以后开发的其它可编程逻辑器件。当硬件模块被激活时,硬件模块执行包括在硬件模块内的方法和处理。

仅出于说明和描述的目的而呈现了本文中所描述的前述实施方式。它们不旨在是穷尽的或将本文描述的实施方式限制为所公开的形式。因此,许多修改和变化对于本领域技术人员来说是明显的。此外,上述公开内容并非旨在限制本文所述的实施方式。本文描述的实施方式的范围由所附的权利要求来限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号