平衡块损耗均衡以实现最佳SSD耐久性的制作方法

文档序号:21681224发布日期:2020-07-31 21:53阅读:172来源:国知局
平衡块损耗均衡以实现最佳SSD耐久性的制作方法



背景技术:

半导体存储器设备或固态驱动器(ssd)(包括闪存存储器)通常利用存储器单元将数据存储为电值,诸如电荷或电压。例如,闪存存储器单元包括单个晶体管,该晶体管具有用于存储表示数据值的电荷的浮栅。闪存存储器是一种可电擦除和重新编程的非易失性数据存储设备。更一般地,即使在没有电源的情况下,非易失性存储器(例如,闪存存储器以及使用多种技术中的任一种实现的其他类型的非易失性存储器)也保留所存储的信息,与此不同的是,易失性存储器需要电源来保持所存储的信息。

半导体设备可被配置为包括单级单元(slc)非易失性存储器单元和/或非slc(nslc)(例如,多级、三级、四级或任何其他非单级单元)存储器单元组成的块或组。每个块可介于256kb和4mb之间。类似类型的块(例如,slc或nslc块)可分别组织成块的组或池(本文也称“块池”)。半导体设备可被配置为在每个块和/或块池上进行损耗均衡。损耗均衡是一种平衡闪存存储器块的使用(以编程擦除周期(pec)测量)以延长半导体存储器设备寿命的技术。pec可指数据被写入存储器的一部分-被擦除-被重写这一序列的数量。因为每个pec可对所存取的相应存储器造成少量物理损坏,所以pec可表示存储器的该部分的耐久性的量化指标。在一定数量的pec之后,单元可开始出现故障,使得存储在其中的数据不可靠。单元开始出现故障前可用的pec数量取决于单元的类型。例如,slc通常被配置为比nslc承受更多pec。传统的损耗均衡以不同方式处理slc块和nslc块,使得slc和nslc块在其池中被单独“均衡”。池中的所有块以大致相同的速率达到最大允许pec以实现目标最佳ssd性能和耐久性。

这样效率并不高,因为针对不同块池的主机工作负载可能不同。主机工作负载可指由主机系统实现的使用块池中的数据执行一个或多个个性化任务的过程。这些个性化任务可包括从块池读取数据或向块池写入数据,这导致了这些块池的额外损耗。因此,可出现这样的情况,即slc池的最佳性能和耐久性由其自身达到,而nslc池却几乎没有使用过,反之亦然。因此,总体而言,可能并未针对损耗均衡优化ssd。

因此,需要一种优化存储器中所有块的使用而不仅仅是单个块池的高效半导体器件及其控制器。



技术实现要素:

在不限制所附权利要求书的范围的情况下,在考虑了本公开之后,特别是在考虑了标题为“具体实施方式”的部分之后,将了解各种实施方案的方面是如何实现以及是如何用于运用改善的pec均衡在所有存储块类型中执行损耗均衡。

在一个实施方案中,提供一种在存储设备处实现平衡块损耗均衡的方法,该存储设备包括用于存储数据的在slc块池中的一个或多个单级单元(slc)块和在nslc块池中的一个或多个非单级单元(nslc)块以及用于对slc块和nslc块执行操作的存储器控制器,该方法包括:在存储器控制器处,接收对slc块池和nslc块池中的一个的相应块池执行损耗均衡操作的第一请求;确定相应块池中的一个或多个块是否满足块池转换标准;响应于确定相应块池中的一个或多个块满足块池转换标准,将相应块池中的一个或多个块重新分类为slc块池和nslc块池二者中的另一者;以及响应于确定相应块池中的一个或多个块不满足块池转换标准,避免将相应块池中的一个或多个块重新分类为slc块池和nslc块池二者中的另一者。

在一些实施方案中,相应块池是slc块池。

在一些实施方案中,块池转换标准包括当slc块池中的一个或多个slc块的编程擦除周期(pec)计数小于nslc损耗均衡阈值时满足的标准。

在一些实施方案中,nslc损耗均衡阈值是nslc块池中具有最大pec计数的nslc块和nslc块池中具有最小pec计数的nslc块之间的预定最大pec计数差值。

在一些实施方案中,块池转换标准包括当slc块池中的一个或多个slc块的(pec)计数小于nslc块池中一个或多个nslc块的平均pec计数与nslc损耗均衡阈值之和时满足的标准。

在一些实施方案中,块池转换标准包括,当slc块池中的一个或多个slc块的误码率(ber)小于berslc阈值时满足的标准。

在一些实施方案中,响应于确定相应块池中的一个或多个块满足块池转换标准,将nslc块池中的一个或多个nslc块重新分类为一个或多个slc块,其中,该一个或多个nslc块中的每一个nslc块的编程擦除周期计数大于nslc块池中其他nslc块的编程擦除周期计数。

在一些实施方案中,相应块池是nslc块池,其中,将nslc块池中的一个或多个nslc块重新分类为slc块池中的一个或多个slc块包括将该一个或多个nslc块中的每一个nslc块的对应pec计数乘以slc转换因子。

在一些实施方案中,相应块池是nslc块池,并且其中块池转换标准包括当nslc块池中的一个或多个nslc块的误码率(ber)小于bernslc阈值时满足的标准。

附图说明

当结合示例性实施方案的附图阅读时,将更好地理解上述发明内容以及所公开的发明的实施方案的以下具体实施方式。然而应当理解,本发明不限于所示的精确布置和工具。

在附图中:

图1是示出根据一些实施方案的数据存储系统的具体实施的框图;

图2是示出根据本发明的一个示例性实施方案的具有不同存储器类型(例如,slc或nslc)的块池的框图;

图3是示出根据本发明的一个示例性实施方案的在具有不同存储器类型(例如,slc或nslc)的块池中平衡块损耗均衡的框图;

图4是示出根据本发明的一个示例性实施方案的在具有不同存储器类型(例如,slc或nslc)的块池中平衡块损耗均衡的框图;并且

图5是示出根据本发明的一个示例性实施方案的平衡块损耗均衡的流程图。

具体实施方式

在一些实施方案中,可通过基于特定标准(例如,pec和/或损耗均衡满足来自slc池和非slc池两者的特定标准),动态地将slc块转换为nslc块(反之亦然)来提高在所有存储块类型中具有改善的pec均衡的ssd系统上的闪存存储器块耐久性,这样可平衡ssd系统上的闪存存储器块耐久性。

本文描述了许多细节,以便提供对附图中所示的示例性实施方案的深入理解。然而,可在没有许多明确细节的情况下实现一些实施方案,并且权利要求的范围仅受到权利要求中明确叙述的那些特征部和方面的限制。此外,并未详尽地描述众所周知的方法、部件和电路,以免不必要地模糊本文所述的实施方案的相关方面。

参见图1,示出了根据一些实施方案的数据存储系统100的具体实施的框图。虽然示出了一些示例性特征部,但是为了简洁起见且为了不模糊本文公开的示例性实施方案的相关方面,并未示出各种其他特征部。为此,作为非限制性示例,数据存储系统100包括存储设备120(有时也称为信息存储设备、数据存储设备或存储器设备),该存储设备包括存储控制器124和存储介质130,并且与计算机系统110(例如,主机系统或主机计算机)一起使用或包括该计算机系统。在一些实施方案中,存储介质130是单个闪存存储器设备,而在其他实施方案中,存储介质130包括多个闪存存储器设备。在一些实施方案中,存储介质130是nand型闪存存储器或nor型闪存存储器。在一些实施方案中,存储介质130包括一个或多个三维(3d)存储器设备。在一些实施方案中,存储介质130的存储器单元被配置为每个存储器单元存储两个或三个位。此外,在一些实施方案中,存储控制器124是固态驱动器(ssd)控制器。然而,根据各种各样的实施方案的方面,可包括其他类型的存储介质(例如,相变随机存取存储器(pcram)、电阻随机存取存储器(reram)、自旋转移力矩随机存取存储器(stt-ram)、磁阻随机存取存储器(mram)等)。在一些实施方案中,闪存存储器设备包括一个或多个闪存存储器管芯、一个或多个闪存存储器封装、一个或多个闪存存储器通道等。在一些实施方案中,数据存储系统100包括一个或多个存储设备120。

计算机系统110通过数据连接件101耦接到存储控制器124。然而,在一些实施方案中,计算机系统110包括存储控制器124或存储控制器124的一部分作为部件和/或作为子系统。例如,在一些实施方案中,通过在计算机系统110上执行的软件来实现存储控制器124的部分或全部功能。计算机系统110可以是任何合适的计算机设备,诸如计算机、膝上型计算机、平板设备、上网本、互联网信息亭、个人数字助理、移动电话、智能电话、游戏设备、计算机服务器或任何其他计算设备。有时将计算机系统110称为主机、主机系统、客户端或客户端系统。在一些实施方案中,计算机系统110是服务器系统,诸如数据中心中的服务器系统。在一些实施方案中,计算机系统110包括一个或多个处理器、一种或多种类型的存储器、显示器和/或其他用户界面部件,诸如键盘、触摸屏显示器、鼠标、触控板、数字相机和/或任何数量的向计算机系统110添加功能的补充i/o设备以。在一些实施方案中,计算机系统110不具有显示器和其他用户界面部件。

存储介质130通过连接件103耦接到存储控制器124。有时将连接件103称为数据连接件,但通常除了数据之外还传输命令,并且除了传输将被存储在存储介质130中的数据值和从存储介质130读取的数据值外,还可选地传输元数据、纠错信息和/或其他信息。然而,在一些实施方案中,存储控制器124和存储介质130作为同一设备(即,集成设备)的部件包括在该设备中。此外,在一些实施方案中,存储控制器124和存储介质130嵌入在主机设备(例如,计算机系统110)中,诸如移动设备、平板计算机、其他计算机或计算机控制的设备,并且本文所述的方法至少部分地由嵌入式存储控制器执行。存储介质130可包括任何数量(即,一个或多个)的存储器设备134-i,该设备包括但不限于持久性存储器或非易失性半导体存储器设备,诸如闪存存储器设备。例如,闪存存储器设备可被配置用于适用于诸如云计算的应用程序的企业存储装置、用于数据库应用、主存储装置和/或辅助存储装置,或者用于将已存储的(或将存储的)数据高速缓存到辅助存储装置(诸如硬盘驱动器)中。此外,和/或另选地,闪存存储器设备也可被配置用于相对较小规模的应用程序,诸如个人闪存驱动器,或用于个人膝上型计算机和平板计算机的硬盘替代品。在一些实施方案中,每个存储器设备134-i是单个3d持久性存储器或非易失性半导体存储器管芯,其包括多个擦除块(例如,阵列302,图3,有时简称为“块”),这些擦除块是这些存储器设备中尺寸最小的可擦除单元。在一些实施方案中,计算机系统110和/或存储控制器124可以将相应存储器设备134-i中的擦除块分配到一个或多个块池的组中。例如,在一些此类实施方案中,相应存储器设备134-i的每个块池包括n个块,其中n是大于1的整数且通常大于15、63或99。

存储介质130的存储器设备134-i可包括可寻址且可单独选择的块,诸如存储介质130的可选择部分131(在本文中也称为所选择部分131)。在一些实施方案中,可单独选择的块(有时称为擦除块)是闪存存储器设备中尺寸最小的可擦除单元。换句话讲,每个块包含可被同时擦除的最小数量的存储器单元。每个块通常进一步划分为多个页面和/或字线,其中每个页面或字线通常是块中最小的可单独存取(可读)部分的实例。然而,在一些实施方案(例如,使用某些类型的闪存存储器)中,数据集的最小可单独访问单元是扇区,扇区是页面的子单元。也就是说,一个块包括多个页面,每个页面包含多个扇区,并且每个扇区是用于向闪存存储器设备写入数据或从闪存存储器设备读取数据的最小数据单元。

在一些实施方案中,存储控制器124包括管理模块121-1、主机接口129、存储介质接口128和附加模块125。存储控制器124可包括为了简洁起见且为了不模糊本文公开的示例性实施方案的相关特征部而并未示出的各种附加特征部,并且特征部的不同布置可以是可能的。主机接口129通过数据连接件101向计算机系统110提供接口。主机接口129通常包括输入缓冲器和输出缓冲器(未示出)。类似地,存储介质接口128通过连接件103向将存储介质130提供接口。在一些实施方案中,存储介质接口128包括读取和写入电路,该电路包括能够向存储介质130提供读取信号的电路(例如,nand型闪存存储器的读取阈值电压)。

在一些实施方案中,管理模块121-1包括一个或多个处理单元122-1(有时本文称为cpu、处理器或硬件处理器,而且有时使用微处理器、微控制器等来实现),这些处理单元被配置为在一个或多个程序(例如,在管理模块121-1中)中执行指令。在一些实施方案中,一个或多个cpu122-1由在存储控制器124的功能内并在一些情况下超出其功能的一个或多个部件共享。管理模块121-1耦接到主机接口129、附加模块125和存储介质接口128以协调这些部件的操作。在一些实施方案中,管理模块121-1的一个或多个模块在计算机系统110的管理模块121-2中实现。在一些实施方案中,计算机系统110(未示出)的一个或多个处理器被配置为在一个或多个程序(例如,在管理模块121-2中)中执行指令。管理模块121-2耦接到存储设备120以管理存储设备120的操作。

在一些实施方案中,附加模块125包括错误控制模块,其被设置成限制写入存储器或从存储器读取期间无意引入数据中的不可校正错误的数量。在一些实施方案中,错误控制模块由管理模块121-1的一个或多个cpu122-1在软件中执行,并且在其他实施方案中,错误控制模块完全地或部分地使用专用电路来实现以执行数据编码和解码功能。为此,在一些实施方案中,错误控制模块包括编码器和解码器。编码器通过应用错误控制码产生随后将被存储于存储介质130中的码字,来对数据进行编码以。

当从存储介质130读取编码的数据(例如,一个或多个码字)时,解码器向编码的数据应用解码过程以恢复数据并在错误控制码的纠错能力内纠正恢复的数据中的错误。本领域的技术人员将理解,各种错误控制码具有不同的错误检测和纠正能力,并且出于超出本公开的范围的原因,针对各种应用选择特定代码。因此,本文中不提供对各种类型的错误控制码的详尽回顾。此外,本领域的技术人员将理解,每种类型或系列的错误控制码可具有特定于错误控制码的类型或系列的编码和解码算法。另一方面,一些算法可至少在某种程度上用于对许多不同类型或系列的错误控制码进行解码。因此,为了简洁起见,本文中未提供对本领域的技术人员一般可获得和知道的各种类型的编码和解码算法的详尽描述。

存储控制器124被配置为执行感测操作(例如,读取操作或本文也称为损耗均衡操作)。当计算机系统(主机)110向存储控制器124发送一个或多个主机读取命令(例如,经由数据连接件101)以从存储介质130的一个或多个块池请求数据时,发起读取操作。存储控制器124经由存储介质接口128向存储介质130发送一个或多个读取访问命令,以根据所述一个或多个主机读取命令指定的存储器位置(特定池中的地址)获得原始读取数据。存储介质接口128向解码器提供原始读取数据(例如,包括一个或多个码字)。如果解码成功,则将解码的数据提供给输出缓冲器,其中解码的数据可用于计算机系统110。在一些实施方案中,如果解码不成功,则存储控制器120可采取许多补救措施或提供不可解决的错误条件的指示。

参见图2,示出了框图200,其示出了根据一些实施方案的由存储控制器124(或另选地,计算机系统110)在图1的存储器134-i中分配的slc块池208和nslc块池220。虽然示出了一些示例性特征部,但是为了简洁起见且为了不模糊本文公开的示例性实施方案的相关方面,并未示出各种其他特征部。slc池和nslc池可由各个块组成。如本文所述,块可以是由主机系统110和/或存储控制器124分配的类似类型(例如,slc或nslc)的一组单元。如本文所述,池可以是由计算机系统110和/或存储控制器124分配的一组块。描述slc块和nslc块和/或块池的数据可存储在存储介质130中。例如,如图2所示,slc池可包括图3至4示出的并且在下文更详细说明的块202至206、210等。nslc池(在图2中示为tlc池)可包括图3至图4示出的并且在下文更详细说明的块212至218等。池208、220中的每个块202至206、210至218可具有表示在相应块上已经执行的编程擦除周期的数量的唯一pec值(例如,对于块210为x,或对于块214为y+100)。一个或多个pec值可存储在存储介质130中。为便于说明和参考,块被示出为从最高值到最低值进行垂直排序。

对于slc池中的一个块的最小pec值可在图中表示为“x”。对于slc池中的一个块的该最小pec值可由操作者选择,或者可使用其他各种用于计算最小pec值的技术来计算。在该示例性实施方案中,slc池中的最小pec值可以是介于零(0)和五万(50,000)之间的值。描述slc池中的块的最小pec值的数据可存储在存储介质130中。

slc池中的pec值之间的最大差值(本文也称为“slcpec跨度”)可在图中表示为“s”。在图2的示例性实施方案中,s为一千五百(1,500)。slc池中的pec值之间的最大差值可由操作者选择,或者可使用其他各种用于计算slc池中pec值之间的最大差值的技术来计算。描述slc池中的pec值之间的最大差值的数据可存储在存储介质130中。

对于nslc池中的一个块的最小pec值可在图中表示为“y”。在该示例性实施方案中,nslc池中的最小pec值可以是介于零(0)和一千五百(1,500)之间的值。对于nslc池中的一个块的最小pec值可由操作者选择,或者可使用其他各种用于计算nslc池中的块的最小pec值的技术来计算。描述nslc池中的块的最小pec值的数据可存储在存储介质130中。

nslc池中的pec值之间的最大差值(本文也称为“nslcpec跨度”)可在图中表示为“m”。在图2的示例性实施方案中,m为一百五十(150)。nslc池中的pec值之间的最大差值可由操作者选择,或者可使用其他各种用于计算pec值之间的最大差值的技术来计算。描述nslc池中的pec值之间的最大差值的数据可存储在存储介质130中。

参见图3,示出了框图300,其示出了根据一些实施方案在图2的池中平衡块损耗均衡。虽然示出了一些示例性特征部,但是为了简洁起见且为了不模糊本文公开的示例性实施方案的相关方面,并未示出各种其他特征部。在一些实施方案中,存储控制器124或计算机系统110可执行本文所述的功能。为便于说明,在本文所述的示例中,图1的存储控制器124已经接收到对slc池208执行损耗均衡操作的请求或生成了对该slc池执行损耗均衡操作的指令。

当在存储控制器124处接收到在对slc池208执行损耗均衡操作的请求之后,存储控制器124可确定slc池208中的一个或多个块是否满足池转换标准。例如,如图3所示,用于slc池208的池转换标准可包括当一个或多个slc块的pec值小于或等于nslcpec跨度时满足的标准。如图3所示,存储控制器124确定块308和块210满足池转换标准,因为每个块小于或等于150的nslcpec跨度。在图3中,nslcpec跨度为150,并且块308和210两者具有值150或“x”,当如图3所示从最高到最低垂直进行排序时,该值小于150。

响应于确定块308和块210满足池转换标准,存储控制器124将块308和块210重新分类(或“转换”)为nslc池中的nslc块。箭头310和箭头312分别表示将块308和块210从slc池208转换至nslc池220。现在块308和块210可用作用于数据存储的nslc块。通过执行转换,被重新分类至nslc池的利用率较低的块可降低nslc池中所有块的总体平均pec计数,从而延长半导体设备的寿命并改善其性能。如本文所用,重新分类可指由存储控制器124将各个块从slc池转换或重新分配至nslc池,或者反之亦然,使得可以以类似于相应块池中其他块的方式使用这些转换的或重新分配的块。例如,最初用作slc块的块308和块210现在可用作nslc块。关于重新分配的信息可存储在存储介质130中。

在一些实施方案中,响应于确定块308和块210满足池转换标准,存储控制器124将一个或多个nslc块重新分类至slc池。这些一个或多个nslc块通常在nslc池中具有最高的pec计数。例如,在图3中,块212具有最高的pec值“y+m”。因此,块212从nslc池重新分类至slc池。箭头314表示块212从slc池208转换至nslc池220。

在一些实施方案中,从nslc池转换至slc池的块的pec值乘以因子r,其中r是任何正整数值。执行该转换是为了将先前的nslc块正确地分配至slc块并分配适当的损耗均衡,因为slc块比nslc块使用得更频繁。因子r可基于nslc池中块的级别类型和slc池中块的单级别类型之间的关系。例如,如果nslc池是四级单元池,则因子r可为值4,该值对应于nslc块的级别类型(即,4)和slc块的级别类型(即,1)的比率。在其他实施方案中,如果nslc池是多级单元,则r可为值2,而如果nslc池是三级单元,则r可为值3。

在一些实施方案中,池转换标准可包括当slc块池208中的一个或多个slc块的ber小于berslc阈值(例如,约0.01%)时满足的另一个标准。根据确定slc池208中的一个或多个slc块(例如,slc块210)小于或等于nslcpec跨度并且该一个或多个slc块的ber小于berslc阈值,slc块210可如上所述被重新分类为nslc块。通过基于ber调节重新分类,可确认在使用新的nslc块时将先前的slc块用作新的nslc块不会造成ber问题增加。

在一些实施方案中,池转换标准可包括当nslc块池220的一个或多个nslc块的ber小于bernslc阈值(例如,约0.02%)时满足的标准。当从nslc转换为slc时,所得的slc可以是与任何固有的slc块一样的全功能slc,而不是限于状态的子集(例如,4个中的3个,或8个中的7个)。通过检查误码率来确认将先前的nslc块用作新的slc块,可避免ber问题增加。

参见图4,示出了框图400,其示出了根据一些实施方案在图2的池中平衡块损耗均衡。虽然示出了一些示例性特征部,但是为了简洁起见且为了不模糊本文公开的示例性实施方案的相关方面,并未示出各种其他特征部。在该示例中,图1的存储控制器124已经接收到对slc池208执行损耗均衡操作的请求。

当在存储控制器124处接收到在对slc池208执行损耗均衡操作的请求(或另选地,指令)之后,存储控制器124可确定slc池208中的一个或多个块是否满足池转换标准。例如,如图4所示,用于slc池208的池转换标准可包括当一个或多个slc块的pec值小于nslc池220的平均pec值与nslcpec跨度之和时满足的一标准。在图4中,nslc池220的pec值为“y”并且nslcpec跨度为“m”。因此,slc块210满足了标准,其中“x”小于nslc池220的pec值“y”与nslcpec跨度“m”之和。在该示例中,y可为零(0)并且m可为一百五十(150)。被指定为“x”的块210小于150,因为slc块是从最高值到最低值进行垂直排序的。如图4所示,存储控制器124确定块210的值小于150。

响应于确定块210满足池转换标准,存储控制器124可将块210重新分类(或“转换”)为nslc池中的nslc块。箭头410表示块210从slc池208转换至nslc池220。现在块210可用作用于数据存储的nslc块。通过执行转换,被重新分类至nslc池的利用率较低的块可降低nslc池中所有块的总体平均pec计数,从而延长半导体设备的寿命并改善其性能。

在一些实施方案中,响应于确定块210满足池转换标准,存储控制器124可将一个或多个nslc块重新分类至slc池。这些一个或多个nslc块通常在nslc池中具有最高的pec计数。例如,在图4中,块212具有最高的pec值“y+m”。因此,块212从nslc池重新分类至slc池。箭头414表示块212从slc池208转换至nslc池220。

在该实施方案中,如本文所述,从nslc池转换至slc池的块的pec值乘以因子r。

在一些实施方案中,池转换标准可包括当slc块池208中的一个或多个slc块的ber小于berslc阈值(例如,约0.01%)时满足的另一个标准。根据确定slc池208中的一个或多个slc块小于或等于nslcpec跨度并且该一个或多个slc块的ber小于berslc阈值,该一个或多个slc块可如上所述被重新分类为nslc块。在一个实施方案中,通过基于ber调节重新分类,可确认将先前的slc块用作新的nslc块不会造成ber问题增加。

现在参见图5,示出了流程图500,其示出了根据一些实施方案的平衡块损耗均衡的操作。虽然示出了一些示例性特征部,但是为了简洁起见且为了不模糊本文公开的示例性实施方案的相关方面,并未示出各种其他特征部。

在步骤502中,存储控制器124接收对第一级别类型块池和第二级别类型块池中的一者的相应块池执行损耗均衡操作的请求。在一些实施方案中,第一级别类型块池包括slc池208。在一些实施方案中,第二级别类型块池包括nslc池220。

在步骤504中,存储控制器124可检查一个或多个slc池(例如,slc池208)。该检查可包括确定是否将一个或多个slc块转换或重新分类为nslc块,如以下步骤所述。

在步骤506中,存储控制器124可确定slc池208中的一个或多个块是否满足池转换标准。在一些实施方案中,块池转换标准包括当slc块池中的一个或多个slc块的编程擦除周期(pec)计数小于nslc损耗均衡阈值时满足的标准。在一些实施方案中,nslc损耗均衡阈值是nslc块池中具有最大pec计数的nslc块和nslc块池中具有最小pec计数的nslc块之间的预定最大pec计数差值。例如,在图3中,nslc损耗均衡阈值(在本文中也称为“nslcpec跨度”)m为一百五十(150)。如上所述,块308和块210的值可小于150,这意味着块308、210满足池转换标准。

在步骤508中,如果存储控制器124确定slc池208中的一个或多个块(例如,块308和块210)满足步骤506的池转换标准,则存储控制器124可确定slc池208中的一个或多个块是否满足另一个池转换标准。在该实施方案中,池转换标准包括当slc块池208中的一个或多个slc块的ber小于berslc阈值(例如,约0.01%)时满足的另一个标准。

在步骤510中,如果存储控制器124确定slc池208中的一个或多个块(例如,块308和块210)满足506和508的池转换标准,则存储控制器124可将一个或多个slc块重新分类(或“转换”)为nslc池中的nslc块。例如,在图3中,箭头310和箭头312分别表示将块308和块210从slc池208转换至nslc池220,因为这些块满足池转换标准。现在块308和块210可用作用于数据存储的nslc块。

在步骤512中,如果存储控制器124确定slc池208中的一个或多个块(例如,块308和块210)不满足506或508的池转换标准,则存储控制器124可避免将该一个或多个slc块重新分类(或“转换”)为nslc池中的nslc块,因为这些slc块的ber可能太高并且不可以安全地用作nslc块。

作为步骤506的延续,在步骤514中,存储控制器124可继续检查一个或多个slc池(例如,slc池208)。

在步骤516中,存储控制器124可确定slc池208中的一个或多个块是否满足池转换标准。在一些实施方案中,池转换标准可包括当一个或多个slc块的pec值小于nslc池220的平均pec值与nslcpec跨度之和时满足的标准。例如,在图4中,nslc池pec值y可为零(0)并且nslcpec跨度m可为一百五十(150)。被指定为“x”的块210小于150,因为slc块是从最高值到最低值进行垂直排序的。如图4所示,存储控制器124确定块210的值小于150。

在步骤518中,如果存储控制器124确定slc池208中的一个或多个块(例如,块210)满足步骤516的池转换标准,则存储控制器124可确定slc池208中的一个或多个块是否满足另一个池转换标准。在该实施方案中,池转换标准包括当slc块池208中的一个或多个slc块的ber小于berslc阈值(例如,约0.01%)时满足的另一个标准。

如果存储控制器124确定slc池208中的一个或多个块不满足步骤516或步骤518的池转换标准,则方法500可前进至步骤512。

在步骤520中,如果存储控制器124确定slc池208中的一个或多个块(例如,块210)满足516和518的池转换标准,则存储控制器124可将一个或多个slc块重新分类(或“转换”)为nslc池中的nslc块。例如,在图4中,箭头410表示将块210从slc池208转换至nslc池220。现在块210可用作用于数据存储的nslc块。

在步骤522中,如果存储控制器124确定slc池208中的一个或多个块(例如,块210)不满足步骤516的池转换标准,则存储控制器124可避免将一个或多个slc块重新分类(或“转换”)为nslc池中的nslc块,因为这些slc块可能比nslc块损耗得更快。

作为步骤506的延续,在步骤524中,存储控制器124可检查一个或多个nslc池(例如,nslc池220)。该检查可包括确定是否将一个或多个nslc块转换或重新分类为slc块,如以下步骤所述。

在步骤526中,存储控制器124可确定nslc池220中的一个或多个块是否满足池转换标准。在一些实施方案中,池转换标准可包括当nslc块池220的一个或多个nslc块的ber小于bernslc阈值(例如,约0.02%)时满足的标准。

在步骤528中,如果存储控制器124确定nslc池220中的一个或多个块满足池转换标准,则存储控制器124可将一个或多个nslc块重新分类(或“转换”)为slc池中的slc块。在一些实施方案中,如本文所述,从nslc池转换至slc池的块的pec值乘以因子r。

在步骤530中,如果存储控制器124确定nslc池220中的一个或多个块(例如,块210)不满足步骤516的池转换标准,则存储控制器124可避免将一个或多个nslc块重新分类(或“转换”)为slc池中的slc块,因为这些nslc块可能比slc块损耗得更快。

在至少一个实施方案中,包括具有一个或多个处理器以及存储器(例如,一个或多个非易失性存储设备)的一个或多个计算机。在一些实施方案中,存储器或存储器的计算机可读存储介质存储程序、模块和数据结构或其子集以便于处理器控制和运行本文所公开的各种系统和方法。在一个实施方案中,一种非暂态计算机可读存储介质上存储有计算机可执行指令,这些指令在由处理器执行时,执行本文所公开的一种或多种方法。

本领域的技术人员应当理解,在不脱离上文示出和描述的示例性实施方案的广泛的发明构思的情况下,可对这些实施方案作出改变。因此,应当理解,本发明不限于示出和描述的示例性实施方案,而是旨在涵盖如权利要求书所限定的本发明的精神和范围内的修改。例如,示例性实施方案的特定特征部可以是也可不是受权利要求书保护的发明的一部分,与那些具体提及的部件完全不同的不同部件可执行本文所述的至少一些特征部,并且可结合所公开的实施方案的特征部。如本文所用,术语“约”和“近似”可指引用的值±10%。例如,“约9”被理解为包括8.2和9.9。

应当理解,已简化了本发明的至少一些图和描述以集中于与清楚理解本发明相关的元件,同时为了清楚起见而省略的本领域普通技术人员应当理解的其他元件也可构成本发明的一部分。然而,因为此类元件在本领域中是众所周知的,并且因为它们不一定有利于更好地理解本发明,所以本文未提供此类元件的描述。

应当理解,尽管本文有时使用术语“第一”、“第二”等来描述各种元件,但这些元件不应受到这些术语的限制。这些术语仅用于区分一个元件和另一个元件。例如,第一元件可被称为第二元件,并且类似地,第二元件可被称为第一元件,而不改变描述的含义,只要将“第一元件”的所有出现一致地重命名并且将“第二元件”的所有出现一致地重命名。第一元件和第二元件都是元件,但它们不是同一元件。

本文所用的术语仅出于描述特定具体实施的目的,并不旨在限制权利要求。如在对具体实施的描述和所附权利要求中所用,除非上下文另有明确指示,否则单数形式“一个”、“一种”和“所述”也旨在包括复数形式。还应当理解,本文使用的术语“和/或”是指且包括一个或多个相关的所列项目的任何和所有可能的组合。还应当理解,术语“包括”和/或“包含”在本说明书中使用时,指定了所述特征部、整数、操作、元件和/或部件的存在,但不排除一个或多个其他特征部、整数、操作、元件、部件和/或其组的存在或添加。

如本文所用,术语“如果”可被理解为意指“当(所述先决条件是真实的)”或“一旦(所述先决条件是真实的)”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件是真实的,具体取决于上下文。类似地,短语“如果确定(所述先决条件是真实的)”或“如果(所述先决条件是真实的)”或“当(所述先决条件是真实的)”可被理解为意指“一旦确定”或“响应于确定”或“根据确定”或“一旦检测到”或“响应于检测”所述先决条件是真实的,具体取决于上下文。

此外,在该方法不依赖于本文所述步骤的具体顺序的情况下,步骤的具体顺序不应理解为对权利要求的限制。针对本发明的方法的权利要求不应限于按照所写顺序执行其步骤,并且本领域的技术人员可容易地理解,这些步骤可以改变并且仍然保持在本发明的精神和范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1