本公开涉及闪速存储系统,并且更具体地涉及闪速存储器设备的优化磨损均衡。
背景技术:
闪速存储系统(比如固态驱动器(SSDs))使用闪速存储器作为非易失性存储介质。闪速存储系统可以包括多个闪速存储器设备。在存储数据时,编程(例如,写入)闪速存储器设备,并且当该闪速存储器设备上的空间被释放时,该闪速存储器设备被擦除。闪速存储器设备具有在变得不可用之前该闪速存储器设备可以经受的数量有限的编程/擦除(P/E)循环,。
技术实现要素:
本主题技术在闪速存储器设备的预计寿命值的基础上,通过为数据操作选择闪速存储器设备来优化闪速存储系统中的数据磨损均衡。该预计寿命值可以通过测试该闪速存储器设备来确定。
根据本主题技术的各方面,提供了用于管理闪速存储系统的机器实施的方法。该方法包括接收用于数据操作的命令。该方法还包括为闪速存储系统中的多个闪速存储器设备中的每个闪速存储器设备确定预计寿命值,其中,该多个闪速存储器设备中的至少一个闪速存储器设备的预计寿命值比该多个闪速存储器设备中的至少另一个闪速存储器设备的预计寿命值高。该方法还包括,基于该多个闪速存储器设备各自的预计寿命值,选择该多个闪速存储器设备中的一个闪速存储器设备上的闪速存储器块用于数据操作。
根据本主题技术的其他方面,提供了闪速存储系统。该闪速存储系统包括多个闪速存储器设备和一个控制器。该多个闪速存储器设备中的每个闪速存储器设备具有预计寿命值,其中,该多个闪速存储器设备中的至少一个闪速存储器设备的预计寿命值比该多个闪速存储器设备中的至少另一个闪速存储器设备的预计寿命值高。该控制器被配置成接收用于数据操作的命令,并且基于包括多个闪速存储器块的该多个闪速存储器设备各自的预计寿命值,选择该多个闪速存储器设备中的一个闪速存储器设备上的闪速存储器块用于数据操作。
根据本主题技术的其他方面,机器可读介质随可执行指令被编码,当被处理器执行时,这些可执行指令引起处理器进行操作。这些操作包括,在闪速存储系统中的多个闪速存储器设备中的每个闪速存储器设备的预计寿命值的基础上确定多个闪速存储器设备的顺序,其中,该多个闪速存储器设备中的至少一个闪速存储器设备的预计寿命值比该多个闪速存储器设备中的至少另一个闪速存储器设备的预计寿命值高。这些操作还包括接收用于数据操作的命令。这些操作还包括,在该多个闪速存储器设备的顺序的基础上,选择该多个闪速存储器设备中的一个闪速存储器设备。这些操作还包括选择该多个闪速存储器设备中的一个选择的闪速存储器设备上的闪速存储器块用于数据操作。
应理解的是,根据下面的具体实施方式,其中通过举例说明示出并描述了本技术的各种配置,本技术的其他配置将变得对本领域技术人员易于显而易见。如将认识到的,本技术能够有其他且不同的配置,并且其若干细节能够在各种其他方面被修改,所有均不会背离本技术的范围。因此,附图和详细描述应被视为是说明性的而不是限制性的。
附图说明
图1是示出根据本主题技术的各方面的闪速存储系统的部件的框图。
图2是示出根据本主题技术的各方面的用于管理闪速存储系统的方法的流程图。
图3A是示出根据本主题技术的各方面的均匀磨损均衡方案中的P/E循环的表格。
图3B是示出根据本主题技术的各方面的优化磨损均衡方案中的P/E循环的表格。
图4是示出根据本主题技术的各方面的用于管理闪速存储系统的方法的流程图。
具体实施方式
在下面阐述的具体实施方式意在作为本技术的各种配置的描述,并且并不意在表示可以实践本技术的唯一配置。附图结合在此并且构成具体实施方式的一部分。出于提供对本技术的全面理解的目的,具体实施方式包括具体细节。然而,本主题技术可以在没有这些具体细节的情况下被实践。在一些实例中,以框图形式示出了结构和部件,以避免使本技术的概念模糊不清。
闪速存储系统(比如固态驱动器(SSD))包括一个或多个闪速存储器设备,每个闪速存储器设备包括一个或多个裸片。每个闪速存储器设备或裸片包括一组闪速存储器单元。每个存储器单元包括用于存储一个或多个数据比特的浮栅晶体管。该存储器单元可以被组织成块,每个物理块包括多个页。数据被写入到页的写单元中的闪速存储器中。数据从块的擦除单元中的闪速存储器中被擦除。每个P/E循环可以物理地退化或磨损块的闪速存储器单元,从而使得在该磨损恶化块中的数据存储的完整性和可靠性之前,每个块具有有限数量的P/E循环。
在预期寿命的基础上,对应于闪速存储系统中的块的P/E循环限制,闪速存储系统可以是额定的或分层的。为了构建具有一定预期寿命的闪速存储系统,为闪速存储系统选择具有相似的预期寿命的闪速存储器设备。闪速存储器设备的制造商可以从一批裸片中选择裸片的小样本来测试,并且在该测试的基础上指定该批中的具有制造商寿命值的每个裸片。该制造商寿命值可以相当于该批中的裸片的最低预期寿命值(例如,P/E循环的数量)。换言之,该制造商寿命值可以相当于P/E循环的数量,这些P/E循环中的至少最小数量的块被期望(高度确定比如90%或99%)来提供P/E循环的数量的性能。裸片中的每个块、或裸片中的最小数量的块、或裸片中的穿过这些块的平均块被期望持续到至少和指定的制造商寿命值一样长。例如,制造商可以额定该测试批次为30,000个P/E循环。该测试批次中的闪速存储器设备中的每个块通常被期望持续到至少30,000个P/E循环。例如,特定的块可以持续多于30,000个P/E循环,并且特定的其他块可以持续少于30,000个P/E循环,但是这些块平均可以持续30,000个P/E循环。
闪速存储系统可以在制造商寿命值的基础上利用闪速存储器设备。然而,闪速存储系统中的每个闪速存储器设备可以具有不同于制造商寿命值的实际的寿命值。每个闪速存储器设备的预计寿命值可以是通过个别的设备测试确定的实际寿命值的估计值,可以是比制造商寿命值更精确的实际寿命值的表示。闪速存储系统可以在预计寿命值的基础上有区别的利用闪速存储器设备。
在制造商寿命值的基础上,常规的磨损均衡方案可以运行于闪速存储系统中的所有闪速存储器设备具有相同的预期寿命的假设。如果闪速存储器设备的相同的块比闪速存储系统中的其他块更频繁的被选择来进行数据操作(例如,被编程/擦除),该选择的块将比其他块更快速地发生故障。如果闪速存储器设备中的足够数量的块发生故障,可以导致闪速存储器设备不可用。为了更好的分散磨损,在为数据操作选择闪速存储器设备的块时,闪速存储系统使用磨损均衡方案,并且防止一个或多个块和/或闪速存储器设备比闪速存储系统中的其他块和/或闪速存储器设备显著地更快速的发生故障。块和/或闪速存储器设备的故障危害闪速存储系统的性能。
磨损均衡方案可以分散磨损以使得所有闪速存储器设备差不多同时发生故障,该磨损均衡方案按照惯例地相当于制造商寿命值。然而,由于制造商寿命值可以是表示最低期望寿命值的保守的最低值,每个闪速存储器设备的实际寿命值可以不同于制造商寿命值。当一个或多个闪速存储器设备的实际寿命值大于制造商寿命值时,附加寿命(例如,P/E循环超过制造商寿命值)可能未使用。为了利用闪速存储器设备的不同实际寿命值,在预计寿命值的基础上,磨损均衡方案可以通过闪速存储器设备区别的被利用。
图1是示出根据本主题技术的各方面的闪速存储系统110的部件的框图。如图1所描绘的,闪速存储系统110包括接口115、控制器120、闪速存储器设备130A和闪速存储器设备130B(共同地闪速存储器设备130)以及存储器125。接口115方便闪速存储系统110与主机150之间的数据、命令和/或控制信号的通信。控制器120控制闪速存储系统110的操作以存储并且检索闪速存储器设备130中的数据,根据从主机150中接收的命令。控制器120可以包括处理器。可以是随机存取存储器(RAM)的存储器125为控制器120提供临时的存储空间以处理命令并且传输主机150与闪速存储器设备130之间的数据。下面更详细地描述这些部件中的每一个部件的操作。
接口115提供主机150与闪速存储系统110之间的物理和电连接。借助于物理和电连接,接口115被适配成用于方便主机150与闪速存储系统110之间的数据、命令和/或控制信号的通信。与接口115的连接和通信可以基于标准接口(比如通用串行总线(USB)、小型计算机系统接口(SCSI)、串行高级技术附件(SATA)等)。可替代地,连接和/或通信可以基于专用接口,尽管本主题技术并不限于任何特定的接口类型。
主机150可以是计算设备,比如计算机/服务器、智能手机或从闪速存储系统110读取数据和写入数据至该闪速存储系统的任何其他电子设备。主机150可以有运作系统或向闪速存储系统110下发读取和写入命令的其他软件。闪速存储系统110可以与主机150相集成或在主机150外部。闪速存储系统110可以无线地连接至主机150,或可以物理地连接至主机150。
图1示出了两个闪速存储器设备130(闪速存储器设备130A和闪速存储器设备130B)。但是,闪速存储器系统110可以包括两个以上闪速存储器设备130并且不限于两个闪速存储器设备130。闪速存储器设备130可以各自包括个单独的闪速存储器芯片或裸片。闪速存储器设备130可以被组织在多个通道中,通过这些通道,数据从中读取并且被控制器120写入闪速存储器设备130,或者被耦合至单个通道。闪速存储器设备130可以使用NAND闪速存储器来实现。该闪速存储器设备130可以各自包括寄存器135,该寄存器可以是用于存储数据(比如各自闪速存储器设备130的运行参数)的一个或多个寄存器。运行参数可以包括:写入操作参数(比如初始脉冲值、增量脉冲值以及脉冲宽度);擦除操作参数(比如如初始脉冲值、增量脉冲值以及脉冲宽度);以及读取操作参数(比如读取电平电压)。
闪速存储器设备130包括分布于存储器块(比如闪速存储器块140)的多个存储器单元。尽管图1示出了各自有两个闪速存储器块140的闪速存储器设备130,但是闪速存储器设备130可以有更多或更少个闪速存储器块140,并且闪速存储器设备130可以各自有相同或不同数量的闪速存储器块140。闪速存储器块140可以被称为数据块或存储器块并且由控制器120使用物理块地址来寻址。闪速存储器块140中的每一个闪速存储器块进一步被划分成使用物理页面地址或者与包含标引的页面的存储块的物理块地址偏移由控制器120寻址的多个数据分段或页面。这些页面可以存储扇区或者其他主机数据单元。闪速存储器块140表示在单个擦除操作中的闪速存储器设备130内被擦除的数据的单元。这些页面表示在读取或写操作中从闪速存储器设备130中读取或写入闪速存储器设备130的数据的单元。尽管闪速存储器设备130在块和页面方面被描述,但是其他术语可以用于指代闪速存储设备内的这些数据单元。
本主题技术不限于闪速存储器的任何特定容量。例如,存储块可以各自包括32个、64个、128个或512个页面,或者其他数量的页面。另外地,例如,页面可以各自包括512个字节、2,000个字节、4,000个字节或32,000个字节。扇区可以各自包括,例如,512个字节、4,000个字节或者其他大小。每个页面可以有一个或多个扇区。
在图1中,存储器125表示耦合至并且由控制器120使用的易失性存储器,在闪速存储系统110的操作期间。控制器120可以缓冲缓存器125中的命令和/或数据。控制器120也可以使用存储器125存储地址映射表或查询表用于将主机150使用的逻辑数据地址转换至与闪速存储器设备130的部分对应的虚拟和/或物理地址。用于管理闪速存储器设备130的其他类型的表、数据、状态指示器等也可以被控制器120存储在存储器125中。例如,闪速存储器设备130的特性包括用于磨损均衡(比如针对每个闪速存储器块140的P/E循环数目、针对每个闪速存储器块140的错误数目以及针对每个闪速存储器块140的保持时间)的数据。存储器125可以被实现使用动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)或不背离本主题技术的范围的其他类型的易失性随机存取存储器。控制器120可以将存储器125的内容循环性地存储到一个或多个指定的闪速存储器块140,比如在闪速存储系统110断电之前。
控制器120管理主机150与闪速存储器设备130之间的数据的流动。控制器120被适配成用于借助于接口115接收来自主机150的命令和数据。例如,控制器120可以接收来自主机150的数据和写命令以写闪速存储器设备130中的数据。控制器120进一步被适配成用于借助于接口115发送数据至主机150。例如,控制器120可以读取来自闪速存储器设备130的数据并且发送数据至主机150响应于读取命令。控制器120被进一步适配成用于管理存储在闪速存储器设备130和基于内部控制算法或者可以从主机150接收到的其他类型的命令的存储器125中的数据。例如,控制器120被适配成用于执行操作(比如垃圾收集(GC)、错误校正和磨损均衡)。本领域技术人员会熟悉在闪速存储设备中由控制器执行的其他操作,在此将不进行详细描述闪速存储设备。
处理器120可以用通用处理器、微控制器、数字信号处理器(DSP)、片上系统(SoC)、专用集成电路(ASIC)、场可编程门阵列(FPGA)或其他可编程逻辑设备、离散门或晶体管逻辑设备、离散硬件部件或被设计和适配成用于执行此处描述的操作和功能的其任意组合来实现。控制器120可以通过执行存储在机器/计算机可读介质上的一个或多个指令序列执行此处描述的操作和功能。机器/计算机可读介质可以是闪速存储器设备130、存储器125或其他类型的介质,控制器120可以从中读取指令或代码。例如,闪速存储系统110可以包括用包括在闪速存储系统110的操作期间由控制器120读取和执行的一个或多个指令序列的固件/软件进行编码的只读存储器(ROM)(比如EPROM或EEPROM)。
在闲置时间期间(比如来自主机150的命令之间),控制器120可以对闪速存储器设备130执行维护操作。例如,控制器120可以确定GC有必要释放闪速存储器块140中的一个针对数据操作。闪速存储器块140可以被选择用于基于磨损均衡方案的GC。由于块的受限的P/E循环,更经常地使用比其他块具体的块可能引起那个具体的块在其他块之前失败。如果块产生不可恢复的读取错误,则可以确定失败。
为了磨损均衡的目的,控制器120可以记录每个闪速存储器块140的P/E循环数目。在均匀磨损均衡方案中,具有有最小P/E循环数目的闪速存储器块140的闪速存储器设备130可以被选择用于数据操作,以均匀地分布来自P/E循环的磨损。均匀磨损均衡方案可以不考虑闪速存储器设备的实际或预计寿命值,并且进行操作,假定闪速存储系统110总体上包括不考虑可能的变化而有相似寿命预期的闪速存储器设备。
但是,每个单独的闪速存储器设备130可以有高于或低于制造商寿命值的实际寿命值。因此,均匀磨损均衡方案可能导致达不到最优性能。例如,如果一个或多个闪速存储器设备130有低于制造商寿命值的实际寿命值,闪速存储系统110可能早于预期失败。如果一个或多个闪速存储器设备130有高于制造商寿命值的实际寿命值,超过制造商寿命值的额外P/E循环可能不会被利用。最优磨损均衡方案可以基于与闪速存储器设备的实际寿命值相似的预计寿命值以利用超过制造商寿命值的额外循环。
另外,闪速存储系统可以基于闪速存储系统的寿命预期来额定或分类。有高P/E循环预期的闪速存储器设备可以预期有在企业存储系统中长使用寿命,或可以用于牺牲了更快的编程/擦除速度的长寿命的高性能系统。有低P/E循环预期的闪速存储器设备可以被用于更低寿命预期或更慢速度的低性能系统。
预计寿命值可以对应于许多P/E循环,这些P/E循环预期在闪速存储器块失败之前在闪速存储器设备的闪速存储器块上执行。每个闪速存储器设备的单独测试可以确定预计寿命值,这可以是与制造商寿命值相比对实际寿命值的更加精确的估计。
在批测试期间由制造商使用的传统测试方法对于单独地测试每个闪速存储器设备可能是不切实际的或不可行的。传统测试方法可以基于应用基于传统参数的传统写入或擦除电压。在闪速存储器设备上可用的传统参数可以允许对闪速存储器设备的组件的测试。高电压可以是大于传统写入电压和传统擦除电压中的一个或两个的电压,例如,在闪速存储器设备上可用的最大电压。
高电压测试可以比传统测试更快,并且因此可以更加可行的用于在每个单独的闪速存储器设备上导电。高电压测试可以包括应用长持续时间(例如,比传统脉冲持续时间更长的持续时间)的高电压和/或多个脉冲,为了加速在块的存储器单元中的电荷捕捉并且达到电荷捕捉的饱和点。另外,并非等待脉冲之间的冷却期,而是脉冲可以被连续应用,这可以进一步地加速时间以达到饱和点。电压参数(比如在高电压处的脉冲的数量)可以被测量和用于确定比制造商寿命值更加接近实际寿命值的预计寿命值。例如,经验数据可以从将饱和点和寿命预期相关联的仿真或实验室数据得到,可以从执行各个闪速存储器设备上的高电压测试收集以关联电压参数、到达饱和点的时间以及预期的P/E循环数目的其他特性。预计寿命值对应于预期P/E循环数目。
高电压测试可以运行直到测试的块的寿命的结束为止,这使得测试的块不可用。但是,闪速存储器设备可以用额外的块来制造以考虑块失败或在维护操作中使用。为了减少块内的位置变化的影响,可以测试在每个闪速存储器设备上的相同位置上的相同块。
使用预计寿命值,闪速存储器设备可以更好地匹配闪速存储系统中的组件。可替代地,闪速存储系统可以被组装在一起,在每个闪速存储器设备的预计寿命值被测试之前。预计寿命值可以更好地确定闪速存储系统的性能层。例如,如果闪速存储系统的闪速存储器设备的预计寿命值总体上都高于或都低于基于制造商寿命值(这已被用于闪速存储系统的初始组件)的预期,闪速存储系统可以相应地被额定为更高层或更低层。如果预计寿命值是混合的,这样使得一些预计寿命值高于制造商寿命值,并且一些预计寿命值低于制造商寿命值,有高于制造商寿命值的预计寿命值的闪速存储器设备的更高的性能可以偏移有低于制造商寿命值的预计寿命值的闪速存储器设备的更低的性能,并且闪速存储系统可以相应地基于平均的性能被额定。
最优磨损均衡方案可以使超过制造商寿命值的可用P/E循环的使用最优化。图2示出了根据本主题技术的方面的磨损均衡方案的流程图200。图2中的过程可以例如由闪速存储系统110的控制器120执行。闪速存储系统110与有相同的或相似的制造商寿命值的多个闪速存储器设备130组装在一起。每个闪速存储器设备130单独地用高电压测试进行测试以确定各自的预计寿命值,这被存储在存储器125中,并且被存储在与存储器125相关联的指定闪速存储器块140中。预计寿命值可以相对于每个闪速存储器设备130而存储(这样使得预计寿命值传播或以其他方式与各自的闪速存储器块140相关联)或相对于基于相应的闪速存储器设备130的每个闪速存储器块140而存储。这些预计寿命值中的至少一个预计寿命值不同于制造商寿命值。例如,闪速存储器设备130A的预计寿命值高于制造商寿命值。
在210处,接收到数据操作的命令。控制器120可以从主机150接收读取、写入或擦除命令,比如将来自主机150的主机数据写入闪速存储器块140的写入操作。可替代地,并非接收来自主机的命令,而是命令可以是为了由控制器120执行的维护操作,比如回收闪速存储器块140中的无效存储器位置的GC过程。
在220处,针对闪速存储系统中的多个闪速存储器设备中的每一个闪速存储器设备确定预计寿命值,其中,多个闪速存储器设备中的至少一个闪速存储器设备的预计寿命值高于多个闪速存储器设备中的至少另一个预计寿命值。尽管闪速存储器设备可以已被初始地选择用于内含于基于相似的制造商寿命值的闪速存储系统,但是单独的裸片测试可以针对每个闪速存储器设备显示预计寿命值中的变化。单独的裸片测试可以显示预计寿命值不同于制造商寿命值,并且在闪速存储器设备中也可以不同。
在之前可能已经通过高压测试来计算预计寿命值,并且将其存储在闪速存储系统中的存储器中。可以通过读取存储在如与控制器相关联的存储器——在对应的闪速存储器设备上的指定的块等存储器中,或者存储在闪速存储系统中的另一个存储器上的值来确定预计寿命值。可替代地,可以间接地确定预计寿命值。例如,控制器可以通过数据结构来与闪速存储器设备保持联系。控制器可以基于预计寿命值在链表中将闪速存储器设备进行排序。闪速存储器设备在链表中的位置可以对应于相应的闪速存储器设备的预计寿命值,以使得具有更多剩余循环的闪速存储器设备可以被定位于链表起点的附近。在每一个数据操作之后,可以更新链表,以使得在数据操作之后,可以在链表中将被选择用于数据操作的闪速存储器设备进行重新定位。重新定位可以基于更新的剩余循环值。
在闪速存储系统110中,控制器120通过读取闪速存储器设备130的存储在存储器125中的预计寿命值来确定闪速存储器设备130的预计寿命值。在之前可能已经将预计寿命值存储在指定的闪速存储器块140上,随后可以将预计寿命值读取到存储器125中。闪速存储器设备130的预计寿命值与在对应的闪速存储器设备130上的每一个闪速存储器块140相关联。预计寿命值可以对应于许多预期在相应的闪速存储器设备130中的闪速存储器块140发生故障之前在相应的闪速存储器设备130中的闪速存储器块140上执行的P/E循环。在图1中,闪速存储器设备130A的预计寿命值高于闪速存储设备130B的预计寿命值。
在230处,基于多个闪速存储器设备的对应的预计寿命值选择在多个闪速存储器设备之一上的闪速存储器块用于数据操作。可以选择闪速存储器块,以使得所有块的已使用寿命的百分比(例如,在预计寿命值之外的已使用循环数目)保持在范围内,例如,5%或者10%。例如,如果块已经使用其预计寿命的25%(例如,已使用循环数目等于预计寿命值的25%),那么可以选择所选择的块,以使得在执行数据操作之后,所有块的已使用寿命的百分比在20%至30%内。因为这些块中的至少两个块具由不同的预计寿命值,所以这些块可以具有不同的已使用循环数目,但是仍然在已使用寿命的百分比的范围内。可替代地,可以选择具由最高的剩余寿命百分比(例如,在预计寿命值之外剩余循环数目)的块,以使得在执行数据操作之后,所有块的剩余寿命百分比在范围内,比如5%或者10%。
可以基于在与闪速存储器块140相关联的预计寿命值和P/E循环数目的基础上确定的剩余P/E循环数目来选择闪速存储器块140。例如,可以从在每一个闪速存储器块140的预计寿命值与P/E循环数目之间的差异来确定剩余P/E循环数目。在实现方式中,之后可以选择具有最高的剩余P/E循环数目的闪速存储器块140。在使用链表的实现方式中,可以选择在链表起点的附近的闪速存储器设备的闪速存储器块。例如,可以选择在链表起点的附近的闪速存储器设备,并且可以选择所选择的存储器设备的闪速存储器块。可以在对应的数据结构(比如,链表)中对闪速存储器块进行排序。可以采用与闪速存储器设备相似的方式与闪速存储器块保持联系,以使得在每一个数据操作之后可以更新链表。
当一个闪速存储器设备130的预计寿命值比另一个闪速存储器设备130的预计寿命值更高时,相比具有更低的预计寿命值的闪速存储器设备130的闪速存储器块140,可以更频繁地选择具有更高的预计寿命值的闪速存储器设备130的闪速存储器块140用于数据操作。例如,在图1中,相比选择在闪速存储器130B上的闪速存储器块140的频率,选择在闪速存储器设备130A上的闪速存储器块140的频率可以对应于闪速存储器设备130A的预计寿命值与闪速存储器设备130B的预计寿命值之比。
如果闪速存储器设备130A的预计寿命值为36,000个循环,并且闪速存储器设备130B的预计寿命值为24,000个循环,那么该比率可以是3:2。每选择闪速存储器设备130B的闪速存储器块140两次,可以选择闪速存储器设备130A的闪速存储器块140三次。例如,闪速存储器设备130A和130B中的每一个闪速存储器可以与随着选择每一个闪速存储器设备而增大的数目相关联。在使用链表的实现方式中,闪速存储器设备在链表中的位置可以基于该比率,以使得相比具有更低的预计寿命值的闪速存储器设备,通常更加频繁地(根据该比率)将具有更高的预计寿命值的闪速存储器设备放置在链表起点的附近。可替代地,针对每一个闪速存储器设备,可以基于该比率使用多个条目来填充链表,比如3个条目(针对闪速存储器设备130A)和2个条目(针对闪速存储器设备130B)。
尽管由于可能优先于磨损均衡的其他考虑的原因,实际选择可能并不严格遵循比率3:2,但是控制器120通常可以遵循比率3:2。即使基于预计寿命值,闪速存储器设备130是选择的候选者,但是数据操作可能要求选择另一个闪速存储器设备130。例如,在GC操作中,如果闪速存储器设备130B相比闪速存储器130A包含更高的无效存储器位置百分比,那么可以选择闪速存储器设备130B(具有更低的预计寿命值),而非闪速存储器设备130A(具有更高的预计寿命值)。
在控制器120选择闪速存储器块140之后,控制器120可以在闪速存储器块140上执行数据操作。数据操作可以是GC过程、写入操作、或者其他维护操作。可以更新闪速存储器设备130的对应于所选择的闪速存储器块140的特性和/或参数。例如,可以更新P/E循环数目或者剩余循环数目。可替代地,可以基于该比率调整闪速存储器设备130在链表中的位置。
图3A示出了在均匀磨损均衡方案的简单示例中的来自于不同闪速存储设备的两个块的P/E循环的表310。块1的预计寿命值为24,000,并且块2的预计寿命为36,000。然而,每一个块的制造商寿命值为30,000个循环,以使得设备预期的总用量为60,000个循环。在已经过去了0个P/E循环的开始处,块1具有24,000个剩余循环以及0个已使用循环。可以通过从预计寿命值中减去已使用循环来计算剩余循环。块2具有36,000个剩余循环以及0个已使用循环。在已经过去24,000个循环之后,已经将24,000个循环均匀地分布在块1与块2之间,以使得每一个块具有12,000个已使用循环。在24,000多个循环之后(在48,000个循环处),已经再次将这些循环均匀地分布,以使得每一个块具有24,000个已使用循环。然而,块1具有0个剩余循环。因为块1不再是可用的,所以将对下一24,000个循环的执行二等分。换言之,完全执行只可以用于第一48,000个循环。可替代地,如果制造商寿命值为24,000个循环(设备的总用量为48,000个循环),那么在48,000个循环之后,块2的超过24,000个循环的循环将保持为未使用的。
图3B示出了根据主题技术的最优磨损均衡方案的简单示例中的图3A中的两个块的60,000个P/E循环的表320。在已经过去了0个P/E循环的开始处,块1具有24,000个剩余循环以及0个已使用循环。块2具有36,000个剩余循环以及0个已使用循环。在已经过去20,000个循环之后,已经基于对应的预计寿命值将20,000个循环分布在块1与块2之间,以使得块1具有8,000个已使用循环并且块2具有12,000个已使用循环。8,000与12,000之比(2:3)对应于预计寿命值24,000:36,000(2:3)。在20,000多个循环之后(在40,000个循环处),预计寿命值已经再次将这些循环均匀地分布,以使得块1具有16,000个已使用循环,并且块2具有24,000个已使用循环。用量16:24对应于比率2:3。在另一20,000个循环之后(在60,000个循环处),两个块都具有0个剩余循环。换言之,完全执行可用于闪速存储系统的整个60,000个循环寿命。因此,与均匀磨损均衡方案不同,最优磨损均衡方案使用预计寿命值来利用来自于块的更多的循环。
图4示出了根据主题技术的方面的针对磨损均衡方案的流程图400。可以由例如闪速存储系统110的控制器120执行图4中的过程。闪速存储系统110由多个具有相同或者相似的制造商寿命值的闪速存储器设备130装配而成。利用高压测试来单独地测试每一个闪速存储器设备130,以确定对应的预计寿命值,这些预计寿命值存储在存储器125中,并且可以存储在与存储器125相关联的指定的闪速存储器块140中。可以基于对应的闪速存储器设备130相对于每一个闪速存储器设备130存储预计寿命值(以使得对预计寿命值进行传播或者以其他方式将其与相应的闪速存储器块140相关联)或者相对于每一个闪速存储器块140对其进行存储。预计寿命值中的至少一个预计寿命值不同于制造商寿命值。例如,闪速存储器设备130A的预计寿命值高于制造商寿命值。
在410处,根据每一个闪速存储器设备的对应的预计寿命值确定在闪速存储系统中的闪速存储器设备的顺序。闪速存储器设备中的至少一个闪速存储器设备的预计寿命值高于多个闪速存储器设备中的至少另一个闪速存储器的预计寿命值。控制器120可以基于预计寿命值维护闪速存储器设备130的排序列表。闪速存储器设备130在排序列表中的位置可以基于预计寿命值,以使得具有更多剩余寿命循环的闪速存储器设备可以被定位在链表起点的附近并且更可能被选择用于数据操作。
在420处,接收针对数据操作的命令。例如,控制器120可以接收写入或者擦除命令。在430处,基于闪速存储器设备的顺序选择闪速存储器设备之一。例如,控制器120可以在链表中选择第一闪速存储器设备130。在440处,选择在所选择的闪速存储器设备上的闪速存储器块用于数据操作。例如,控制器120可以维护每一个闪速存储器设备130的闪速存储器块140的链表,可以基于与闪速存储器设备的链表相似的预计寿命值将闪速存储器块进行排序。在执行数据操作的过程中或者之后,可以更新闪速存储器设备的顺序。例如,控制器120可以基于相比其他闪速存储器块的剩余循环的剩余循环,将所选择的闪速存储器块130移动靠近链表的一端。控制器120也可以类似地更新闪速存储器块的链表。
可以将在本文中所描述的各种说明性的块、模块、元件、部件、方法和算法实现为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,在上文中已经将各种说明性的块、模块、元件、见、方法以及算法一般性地按照它们的功能进行了描述。这种功能是被实现为硬件还是软件取决于具体的应用和施加于整个系统上的设计约束。针对每一个具体的应用,可以采用不同的方式来实现所描述的功能。各个部件和块可以被不同地安排(例如,以不同顺序安排、或者以不同方式分割),而全都不背离本主题技术的范围。
应理解,所公开的过程中的步骤的具体顺序或层次是对示例性方法的说明。应理解,基于设计偏好,可以重新安排这些过程中各步骤的具体顺序或层次。可以同时执行部分步骤。所附的方法权利要求以示例顺序呈现了各步骤的要素,但是并不意味着受所呈现的具体顺序或层次的限制。
提供了前述描述,以使本领域技术人员能够实践在本文中所描述的各种方面。对这些方面的各种修改对本领域技术人员而言将是明显的,并且在本文中所定义的一般原理也可以应用于其他方面。因此,权利要求并不旨在受限于在本文中所示出的方面,而是要符合与语言上的权利要求相一致的全部范围,其中,除非特别声明,否则以单数形式对要素的引用并非旨在表示“有且仅有一个”,而是“一个或多个”。除非特别另外声明,否则术语“一些”指的是一个或多个。男性代词(例如他的)包括女性和中性(例如,她的或它的),反之亦然。标题和小标题(如果有的话)仅为了方便而使用并且并不限制本发明。
如“方面”等短语并不暗示这样的方面对本主题技术是必要的或这样的方面适用于本主题技术的所有配置。与方面有关的公开可以适用于所有配置、或一个或多个配置。如方面等短语可以是指一个或多个方面,反之亦然。如“配置”等短语并不暗示这样的配置对本主题技术是必要的或这样的配置适用于本主题技术的所有配置。与配置有关的公开可以适用于所有配置、或一个或多个配置。如配置等短语可以是指一个或多个配置,反之亦然。
词语“示例性”在本文中用来表示“用作为示例或说明”的意思。在本文中被描述为“示例性”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。
本领域技术人员已知或之后知道的贯穿本公开所描述的各个方面的元素的所有结构和功能等效物都通过引用明确地结合在本文中,并且旨在被权利要求书包含。并且,本文中所公开的任何内容都并非旨在贡献给公众,无论是否在权利要求书中明确地叙述这样的公开。不应按照35U.S.C.§112第六段的规定来理解权利要求元素,除非使用短语“用于…的装置”来明确叙述元素、或者在方法权利要求的情况下使用短语“用于…的方法”来叙述元素。另外,对于在说明书或者权利要求书中使用了术语“包括”、“具有”等而言,这种术语旨在以与术语“包括”相似的方式是开放式的,这是由于“包括”当被使用时被解释成权利要求项中的过渡词。