用于闪速存储器器件的连续自适应校准的制作方法

文档序号:14912908发布日期:2018-07-10 23:54

本公开涉及闪速存储系统,并且更具体地,涉及用于闪速存储系统的闪速存储器器件的操作参数的连续自适应校准。



背景技术:

闪速存储系统,诸如固态驱动器(solid-state drive,SSD),使用闪速存储器作为非易失性存储介质。闪速存储系统可以包括多个闪速存储器器件。基于操作参数,当数据被存储时闪速存储器器件被编程(例如,被写入),并且当在闪速存储器器件上的空间被释放时被擦除。随着闪速存储器器件老化,闪速存储器器件的性能特征变化,其可以要求操作参数的重新校准。重新校准可以涉及以预定周期间隔的特殊操作。



技术实现要素:

本主题技术通过保持用于闪速存储系统的每个闪速存储器器件完成数据操作的运行平均时间,来重新校准闪速存储系统的操作参数。当运行平均时间满足阈值时间时,操作参数被调整。

根据本主题技术的一些方面,提供了用于管理闪速存储系统的方法。方法包括测量在闪速存储系统的闪速存储器器件的闪速存储器块上完成数据操作的操作时间。方法包括基于所测量的操作时间来更新用于闪速存储器器件完成数据操作的运行平均时间。方法包括将更新后的运行平均时间与阈值时间进行比较。方法包括基于比较来调整用于闪速存储器器件执行数据操作的操作参数。

根据本主题技术的其它方面,提供了闪速存储系统。闪速存储系统包括用于测量在闪速存储系统的闪速存储器器件的闪速存储器块上完成数据操作的操作时间的装置。闪速存储系统包括用于基于所测量的操作时间来更新用于闪速存储器器件完成数据操作的运行平均时间的装置。闪速存储系统包括用于将更新后的运行平均时间与阈值时间进行比较的装置。闪速存储系统包括用于基于比较来调整用于闪速存储器器件执行数据操作的操作参数的装置。

根据本主题技术的其它方面,提供了闪速存储系统。闪速存储系统包括多个闪速存储器器件、和控制器。控制器被配置为测量在闪速存储系统的闪速存储器器件的闪速存储器块上完成数据操作的操作时间。控制器被配置为基于所测量的操作时间来更新用于闪速存储器器件完成数据操作的运行平均时间。控制器被配置为将更新后的运行平均时间与阈值时间进行比较。控制器被配置为基于比较来调整用于闪速存储器器件执行数据操作的操作参数。

要理解的是,从以下详细描述,本主题技术的其它配置对于本领域技术人员将变得显而易见,其中本主题技术的各种配置通过例示的方式被示出和描述。正如将认识到的,本主题技术能够有其它的和不同的配置,并且它的各个细节能够在各种其它方面进行修改,而全都不脱离本主题技术的范围。因此,附图和详细描述在本质上被认为是例示性的而不是限制性的。

附图说明

图1是示出根据本主题技术的一些方面的闪速存储系统的组件的框图;

图2是示出根据本主题技术的一些方面的用于连续自适应校准的方法的流程图;

图3是示出根据本主题技术的一些方面的由闪速存储系统管理的校准数据的表。

具体实施方式

以下阐述的详细描述意图作为本主题技术的各种配置的描述,并不意图表示可以实践本主题技术的仅有配置。附图被并入本文,并构成详细描述的一部分。详细描述包括特定细节,目的是提供对本主题技术的全面理解。然而,可以在没有这些特定细节的情况下实践本主题技术。在某些情况下,结构和组件以框图形式被示出,为了避免模糊本主题技术的概念。

诸如固态驱动器(SSD)的闪速存储系统包括一个或多个闪速存储器器件或裸芯。每个闪速存储器器件包括闪速存储器单元的阵列。每个存储器单元包括被用来存储一个或多个比特的数据的浮栅晶体管。闪速存储器单元可以被组织成块,每个物理块包括若干页面。数据以页面为写入单位被写入到闪速存储器。数据以块为擦除单位从闪速存储器中被擦除。每个编程-擦除(program-erase,P/E)周期可以物理地退化或损耗块的闪速存储器单元,使得在所述损耗劣化块中数据存储的完整性和可靠性之前,每个块具有有限数量的P/E周期。

随着闪速存储器器件物理地退化,闪速存储器器件的性能退化。例如,完成写入操作的时间可能会增加。因此,诸如写入操作参数、擦除操作参数和读取操作参数的操作参数可能需要随时间被重新校准。用于闪速存储器器件的控制器可以周期性地执行重新校准操作,例如,以每2000或5000个周期为间隔。重新校准操作可以涉及对闪速存储器块的所选择的集合的特殊操作以确定定时特征。特殊操作可以涉及若干测试写入和擦除操作、确定平均写入和擦除时间、以及基于平均写入和擦除时间来调整相应的操作参数。然而,重新校准操作会干扰其它闪速存储系统操作。虽然为了提高数据操作性能,更高的校准频率可能是被期望的,但校准操作的开销将负面地影响性能,并缩短闪速存储系统的寿命。另外,重新校准操作可以跨所有闪速存储器器件应用操作参数的相同重新校准。因此,虽然重新校准可以对于所有闪速存储器器件将更好的性能平均,但是对于某些闪速存储器器件,重新校准可能不是最佳的。此外,所述间隔可能是通过实验室结果按经验确定的,因此对于给定的闪速存储系统可能不是最佳的。

根据本主题技术的一些方面,校准可以连续地发生,而不是使用特定操作以指定的间隔发生。闪速存储系统的控制器执行连续自适应校准。控制器可以测量在闪速存储系统的闪速存储器器件上完成一个或多个数据操作的操作时间。数据操作可以包括读取操作、写入操作和擦除操作。控制器可以保持用于闪速存储器器件完成数据操作的运行平均时间,所述运行平均时间可以在闪速存储器器件上的每个数据操作之后被更新。如果运行平均时间满足阈值时间,则控制器可以重新校准闪速存储器器件的操作参数。

图1是示出根据本主题技术的一些方面的闪速存储系统110的组件的框图。如图1中所示,闪速存储系统110包括接口115、控制器120、闪速存储器器件130和存储器125。接口115便于闪速存储系统110和主机150之间的数据、命令和/或控制信号的通信。控制器120根据从主机150接收的命令来控制闪速存储系统110存储和检索闪速存储器器件130中的数据的操作。控制器120可以包括处理器。可以是随机存取存储器(random access memory,RAM)的存储器125为控制器120提供处理命令和在主机150与闪速存储器件130之间传递数据的临时存储空间。这些组件中的每一个的操作在以下被更详细的描述。

接口115提供了主机150和闪速存储系统110之间的物理的和电气的连接。接口115被配置为便于经由物理的和电气的连接在主机150与闪速存储系统110之间的数据、命令、和/或控制信号的通信。与接口115的连接和通信可以基于诸如通用串行总线(Universal Serial Bus,USB)、小型计算机系统接口(Small Computer System Interface,SCSI)、串行高级技术附件(Serial Advanced Technology Attachment,SATA)等的标准接口。或者,虽然本主题技术不限于任何特定类型的接口,但是连接和/或通信可以基于专用接口。

主机150可以是诸如计算机/服务器、智能电话、或从闪速存储系统110读取数据和向闪速存储系统110写入数据的任何其它电子设备的计算设备。主机150可以具有向闪速存储系统110发出读取和写入命令的操作系统或其它软件。闪速存储系统110可以与主机150集成,或者可以在主机150的外部。闪速存储系统110可以被无线地连接到主机150,或者可以被物理地连接到主机150。

图1示出了两个闪速存储器器件130。然而,闪速存储系统110可以包括两个以上的闪速存储器器件130,并且不限于两个闪速存储器器件130。闪速存储器器件130可以各自是单一闪速存储器芯片或裸芯。闪速存储器器件130可以被控制器120组织在多个通道当中,或被耦合到单一通道,其中数据通过所述多个通道从闪速存储器器件130读取和写入到闪速存储器器件130。另外,每个通道可以具有它自己的控制器或微控制器,所述控制器或微控制器可以与控制器120集成或分开。闪速存储器器件130可以使用NAND闪速存储器来实施。闪速存储器器件130可以各自包括寄存器135,所述寄存器135可以是用于存储诸如各个闪速存储器器件130的操作参数的数据的一个或多个寄存器。操作参数可以包括以下各项:诸如初始脉冲值、增量脉冲值和脉冲宽度的写入操作参数;诸如初始脉冲值、增量脉冲值和脉冲宽度的擦除操作参数;以及诸如读取电平电压的读取操作参数。

闪速存储器器件130包括被分布到诸如闪速存储器块140的存储块中的多个存储器单元。虽然图1示出了各自具有两个闪速存储器块140的闪速存储器器件130,但是闪速存储器器件130可以具有更多或更少的闪速存储器块140,并且闪速存储器器件130可以各自具有相同或不同数量的闪速存储器块140。闪速存储器块140可以被称为数据块或存储器块,并且是控制器120使用物理块地址可寻址的。闪速存储器块140中的每一个还被划分为多个数据段或页面,所述多个数据段或页面是控制器120使用物理页面地址或从包含参考页面的存储块的物理块地址的偏移量(offset)可寻址的。页面可以存储扇区或其它主机数据单元。闪速存储器块140表示单一擦除操作中在闪速存储器器件130内被擦除的数据的单位。页面表示读取或写入操作中从闪速存储器器件130读取或写入到闪速存储器器件130的数据的单位。虽然按照块和页面来描述闪速存储器器件130,但是可以使用其它术语来指代闪速存储设备内的这些数据单位。

本主题技术不限于闪速存储器的任何特定容量。例如,存储块可以各自包括32页面、64页面、128页面或512页面,或任何其它数量的页面。另外,例如,页面可以包括512字节、2KB、4KB或32KB。扇区可以各自包括,例如,512字节、4KB或其它大小。每页面可以有一个或多个扇区。

在图1中,存储器125表示被耦合到控制器120并在闪速存储系统110的操作期间被控制器120使用的易失性存储器。控制器120可以在存储器125中缓冲命令和/或数据。控制器120还可以使用存储器125来存储地址映射表或查找表,所述地址映射表或查找表被用来将主机150所使用的逻辑数据地址转换为与闪速存储器器件130的多部分相对应的虚拟和/或物理地址。被用来管理闪速存储器器件130的其它类型的表、数据、状态指示符、运行平均时间、阈值等,也可以由控制器120存储在存储器125中。例如,闪速存储器器件130的特征包括用于损耗均衡的数据,诸如对每个闪速存储器块140的P/E周期计数、对每个闪速存储器块140的误差计数、以及对每个闪速存储器块140的保留时间(retention time)。存储器125可以使用动态随机存取存储器(dynamic random access memory,DRAM)、静态随机存取存储器(static random access memory,SRAM)或其它类型的易失性随机存取存储器来实施,而不脱离本主题技术的范围。控制器120可以周期性地将存储器125的内容存储到一个或多个指定的闪速存储器块140中,诸如在闪速存储系统110断电之前。

控制器120管理主机150和闪速存储器器件130之间的数据的流。控制器120被配置为经由接口115从主机150接收命令和数据。例如,控制器120可以从主机150接收数据和写入命令以将数据写入闪速存储器器件130。控制器120还被配置为经由接口115向主机150发送数据。例如,控制器120可以响应于读取命令从闪速存储器器件130读取数据、并且将数据发送到主机150。控制器120还被配置为基于内部控制算法或可以从主机150接收到的其它类型的命令,来管理存储在闪速存储器器件130和存储器125中的数据。例如,控制器120被配置为执行诸如垃圾收集(garbage collection,GC)、纠错、和损耗均衡的操作。本领域技术人员将熟悉由闪速存储器件中的控制器执行的其它操作,本文将不对其进行详细描述。

控制器120可以用通用处理器、微控制器、数字信号处理器(digital signal processor,DSP)、片上系统(system-on-a-chip,SoC)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件、或被设计和被配置为执行本文所述的操作和功能的上述各项的任何组合。控制器120可以通过执行存储在机器/计算机可读介质上的一个或多个指令序列来执行本文描述的操作和功能。机器/计算机可读介质可以是闪速存储器器件130、存储器125、或控制器120可以从其读取指令或代码的其它类型的介质。例如,闪速存储系统110可以包括用固件/软件编码的只读存储器(read only memory,ROM),诸如EPROM或EEPROM,所述固件/软件包括在闪速存储系统110的操作期间由控制器120读取和执行的一个或多个指令序列。

图2示出了根据本主题技术的一些方面的用于连续自适应校准的流程图200。图2中的过程可以由,例如,闪速存储系统110的控制器120来执行。关于闪速存储器器件130,闪速存储器器件130的寄存器135可以存储用于闪速存储器器件130的操作参数。操作参数可以被应用于对闪速存储器器件130的所有闪速存储器块140执行的操作。在某些实施方式中,可以有多于一个集合的操作参数。例如,不同的闪速存储器块140可以使用不同集合的操作参数。每个单独的闪速存储器块140可以具有其自己的一集合的操作参数。或者,可以通过闪速存储器器件130上的地址或物理位置来标识的多组闪速存储器块140可以具有它们自己的多个集合的操作参数。

在210处,控制器120测量在闪速存储器器件130的闪速存储器块140上完成数据操作的操作时间。数据操作可以是读取操作、写入操作或擦除操作。控制器120可以通过扫描操作来测量数据操作,其中扫描操作涉及将信标发送到闪速存储器器件130。

图3示出了可以由控制器管理的校准数据的示例性表300。该表是概念性的,因为校准数据可以被存储在分开的寄存器135或存储器125中,并且可以不被存储为表。校准数据可以以其它格式存储。例如,值可以以不同的单位来存储,或者可以被存储为标志。表300对应于单一闪速存储器器件,其可以由诸如地址的标识符来标识。控制器120可以管理用于所有闪速存储器器件130的数据,使得可以存在用于每个闪速存储器器件130的表。在某些实施方式中,控制器120可以管理用于一个或多个闪速存储器块140的校准数据。另外,虽然表300示出了两个数据操作,写入和擦除,但是控制器120可以管理用于诸如读取操作的其它操作的数据。

返回到210,控制器120向闪速存储器器件130发出数据操作。然后,控制器120通过将信标计数器设置为零来开始扫描操作。信标可以以信标频率、以周期性间隔被发送。信标频率可以被存储在存储器125或寄存器135中,并且可以对应于时间,诸如1μs。每次信标被发送时,控制器120增加信标计数器。当完成数据操作时,闪速存储器器件130响应于信标来返回指示。例如,图3示出了对于写入操作,在写入操作完成之前发送了2000个信标。图3示出了另一示例,擦除操作,其中在擦除操作完成之前发送了7000个信标。

基于在指示之前发送的信标的数量、以及信标频率,可以确定操作时间,而不需要用于定时数据操作的额外的硬件。在图3中,使用1μs的信标频率,写入操作耗时2000μs(2ms)完成,并且擦除操作耗时7000μs(7ms)完成。

或者,控制器120可以以信标频率在闪速存储器器件130的寄存器135中检查在数据操作完成时由闪速存储器器件130设置的完成标志,而不是发送信标并接收响应。在其它替换方案中,闪速存储系统110可以包括用于定时数据操作的定时硬件,例如,通过跟踪数据操作的开始和结束时间。定时硬件可以在寄存器135中检查完成标志,或者当数据操作完成时,闪速存储器器件130可以向定时硬件发送指示。

在220处,控制器120基于所测量的操作时间来更新闪速存储器器件130完成数据操作的运行平均时间。控制器120可以检索闪速存储器器件130的运行平均时间,用操作时间更新运行平均时间,并且存储更新后的运行平均时间。例如,在图3中,用于写入操作的更新后的运行平均时间为2.1毫秒,并且用于擦除操作的更新后的运行平均时间为5.0毫秒。

运行平均时间可以限于最后n个周期,诸如,100,的窗口,使得运行平均时间是最后n个操作时间的平均。可以有用于每个类型的操作的运行平均时间,诸如用于写入操作的平均运行时间、用于擦除操作的运行平均时间以及用于读取操作的平均运行时间。或者,可以有用于所有数据操作的平均运行时间。运行平均时间可以跟踪用于闪速存储器器件130的所有闪速存储器块140的数据操作。或者,可以有用于每个闪速存储器块140或用于闪速存储器块140的多组的运行平均时间。例如,可以在闪速存储器器件130上通过地址或诸如边缘的物理位置对闪速存储器块140分组。例如,前x个闪速存储器块可以被分组在一起,紧接在后的y个闪速存储器块可以被分组在一起等。

在某些实施方式中,用于每个闪速存储器器件130的每个通道的微控制器可以保持运行平均时间,并且还可以更新运行平均时间。在替换的实施方式中,闪速存储系统110可以包括用于更新和保持闪速存储器器件130的运行平均时间的专用硬件。

在230处,控制器120将更新后的运行平均时间与阈值时间进行比较。例如,控制器120可以确定运行平均时间与阈值时间之间的差异。阈值时间可以是对应于期望的性能时间,诸如对于写入操作是2.2ms或者对于擦除操作是5.1ms,如图3可见。阈值时间在闪速存储系统110的整个寿命期间可以是静态的,或者可以随着寿命而变化。可以有对于闪速存储器器件130中每一个的阈值时间。或者,可以有对于闪速存储器块140的阈值时间。

控制器120可以将差异与误差阈值进行比较,误差阈值可以是,例如,对于写入操作是0.1ms(100μs)并且对于擦除操作是0.2ms(200μs),如图3中可见。误差阈值可以是恒定值,或者可以随闪速存储系统110的寿命而变化。例如,误差阈值可以基于对于闪速存储器器件130的P/E周期计数而变化,和/或从误差阈值的表中查找。可以有用于闪速存储系统110的单一误差阈值,和/或用于每个闪速存储器器件130的误差阈值,和/或用于一个或多个闪速存储器块140的误差阈值。另外,可以有用于每种类型的数据操作的误差阈值,如图3中可见。

如果差异满足误差阈值,则过程返回到210以测量下一数据操作。例如,对于图3中的擦除操作,平均运行时间5.0ms与阈值时间相差0.1ms,0.1ms小于误差阈值0.2ms。擦除操作参数可以不需要重新校准。因此,重新校准可以不发生在每次数据操作之后。如果差异不满足误差阈值,则控制器120可以通过调整相关联的操作参数来重新校准闪速存储器器件130。例如,对于图3中的写入操作,平均运行时间2.4ms与阈值时间相差0.2ms,0.2ms大于误差阈值0.1ms。写操作参数可以需要重新校准。

在240处,控制器120基于比较来调整用于闪速存储器器件130执行数据操作的一个或多个操作参数。可以调整操作参数,使得操作时间在阈值时间的误差阈值内。例如,如果数据操作是写入操作,则控制器120可以调整初始脉冲值、增量脉冲值、和脉冲宽度中的一个或多个。初始脉冲值和增量脉冲值的幅度(magnitude)可以被增大以减少操作时间、以及被减小以增加操作时间。脉冲宽度的幅度可以被增大以增加操作时间、以及被减小以减少操作时间。可以对擦除操作进行类似的调整。控制器120可以按预设量来调整操作参数,其中预设量可以在表中查找,或者可以与差异成比例地进行调整,其中差异可以在表中查找或基于公式确定。

因为在每个数据操作完成之后运行平均时间被更新,并且当运行平均时间不满足误差阈值时可以调整操作参数,所以重新校准是连续的。换句话说,重新校准可以不需要等待控制器120执行特定操作。因此,本主题技术的一些方面提供连续的、自适应校准,而不注入干扰其它操作的特殊操作。

此外,闪速存储器器件130可以不同地执行,并且各自可以要求不同的校准。另外,给定的闪速存储器器件130的闪速存储器块140可以各自要求不同的校准。通过保持越来越颗粒化的运行平均时间,控制器120可以应用越来越颗粒化的校准,而不是跨所有闪速存储器块140应用单一校准。

本文描述的各种例示性的块、模块、元件、组件、方法、和算法可以被实施为电子硬件、计算机软件、或两者的组合。为了例示硬件和软件的这种可互换性,以上已经在它们的功能方面一般地描述了各种例示性的块、模块、元件、组件、方法、和算法。这样的功能是被实施为硬件还是软件取决于具体应用和施加在整个系统上的设计约束。所描述的功能可以针对每个具体应用以不同的方式来实施。各种组件和块可以不同地布置(例如,以不同的顺序布置,或以不同的方式分区),而全部不脱离本主题技术的范围。

应该理解的是,所公开的过程中的步骤的特定顺序或层次是示例性方法的例示。基于设计偏好,应该理解的是,可以重新排列过程中的步骤的特定顺序或层次。步骤中的一些可以同时执行。所附的方法权利要求以样本顺序呈现各种步骤的元素,并不意味着限于所呈现的特定顺序或层次。

提供先前的描述以使本领域任何技术人员能够实践本文所述的各个方面。对这些方面的各种修改对于本领域技术人员将是显而易见的,并且本文定义的一般原则可以被应用于其它方面。因此,权利要求并非意图被限于本文所示的方面,而是符合与语言权利要求一致的全部范围,其中对单数形式的元素的引用除非特别说明并不意图意指“一个和仅一个”,而是意指“一个或多个”。除非另有特别说明,术语“一些”是指一个或多个。男性中的代词(例如,他的)包括女性和中性性别(例如,她的和它的),反之亦然。标题和副标题,如果有的话,仅用于方便,而不限制本发明。

诸如“方面”的短语并不暗示这种方面对于本主题技术是必需的,或者这种方面适用于本主题技术的所有配置。与一个方面相关的公开可以适用于所有配置、或者一个或多个配置。诸如方面的短语可以指一个或多个方面,反之亦然。诸如“配置”的短语并不暗示这样的配置对于本主题技术是必需的,或者这种配置适用于本主题技术的所有配置。与配置相关的公开可以应用于所有配置、或者一个或多个配置。诸如这样的配置的短语可以指代一个或多个配置,反之亦然。

词语“示例性”在本文中用于意指“充当示例或例示”。本文中描述为“示例性”的任何方面或设计不一定被解释为比其它方面或设计优选或有益。

本领域普通技术人员熟知或后来变得熟知的贯穿本公开所描述的各个方面的元件的所有结构上和功能上的等同物通过引用明确地并入本文,并且意图被权利要求包含。此外,本文中公开的任何内容都不贡献给公众,无论这些公开内容是否在权利要求中被明确地叙述。不得根据美国法典第35条第112款(35U.S.C.§112)第六段的规定解释任何权利要求元素,除非使用短语“用于……的装置”明确叙述了该元素,或者在方法权利要求的情况下,使用短语“用于……的步骤”来叙述该元素。此外,在术语“包括”、“具有”等被用在说明书或权利要求书中时,这样的术语意图以类似于术语“包含”的方式被包括,如当“包含”在权利要求中作为过渡词被采用时解释“包含”的方式那样。

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