执行存储器子系统的按需刷新操作的制作方法

文档序号:26009772发布日期:2021-07-23 21:29阅读:89来源:国知局
执行存储器子系统的按需刷新操作的制作方法

本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及存储器子系统的按需刷新操作。



背景技术:

存储器子系统可以是存储系统,例如固态驱动器(ssd)或硬盘驱动器(hdd)。存储器子系统可以是存储器模块,例如双列直插式存储器模块(dimm)、小型dimm(so-dimm)或非易失性双列直插式存储器模块(nvdimm)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以例如是非易失性存储器组件和易失性存储器组件。通常,主机系统可以利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。

附图说明

根据下文给出的详细描述和本公开的各种实施例的附图将更加充分地理解本公开。

图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。

图2为根据本公开的一些实施例的基于用户数据的时间属性而执行存储器子系统的刷新操作的实例方法的流程图。

图3为根据本公开的一些实施例的基于刷新操作与先前执行的刷新操作之间的时间差而执行存储器子系统的刷新操作的实例方法的流程图。

图4为根据本公开的一些实施例的使用修改后的转换映射来执行刷新操作的实例方法的流程图。

图5说明根据本公开的一些实施例修改转换映射的实例。

图6为根据本公开的一些实施例的基于设置优化类型而执行存储器子系统的刷新操作的实例方法的流程图。

图7为本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的各方面涉及执行存储器子系统的刷新操作。存储器子系统在下文也称为“存储器装置”。存储器子系统的实例是经由外围互连件(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(cpu)的存储装置。存储装置的实例包含固态驱动器(ssd)、闪存驱动器、通用串行总线(usb)闪存驱动器和硬盘驱动器(hdd)。存储器子系统的另一实例是经由存储器总线耦合到cpu的存储器模块。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)、非易失性双列直插式存储器模块(nvdimm)等。在一些实施例中,存储器子系统可以是混合式存储器/存储子系统。通常,主机系统可以利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储在存储器子系统处,且可请求从存储器子系统检索数据。

存储器子系统可包含可存储来自主机系统的数据的多个存储器组件。存储器组件可包含用于存储数据的存储器单元。每一存储器单元可存储作为所述特定存储器单元的阈值电压的数据值。每一不同阈值电压范围表示存储在存储器单元处的数据的预定值。常规存储器子系统可通过将数据位序列映射到存储器单元的不同阈值电压范围来在单个存储器单元中存储多个数据位。可通过使用将一系列编程脉冲施加到存储器单元的编程操作而将数据存储到存储器单元中。所述一系列编程脉冲可施加到存储器单元直到在存储器单元处达到对应阈值电压范围内的电压电平为止。在已对存储器单元进行编程之后,可通过在对应阈值电压范围下将读取阈值电压施加到存储器单元且将存储器单元处所观测到的电压电平转换成一系列一或多个二进制值而从存储器单元读取数据。

在常规存储器子系统中,一旦数据已经被编程(例如写入)到单元,数据的老化度(age)就开始增加。经过的时间越久,一些条件(例如,电荷损失等)可能引起经施加以对数据进行编程的阈值电压与经施加以读取数据的阈值电压之间的差异的概率就更高。阈值电压的变化可能会使正确读取数据很困难,或有时无法正确读取数据。由于所要数据的恢复变得困难,存储器子系统可尝试使用错误处理流程来恢复数据。

当在错误处理流程中时,常规存储器子系统可针对存储在存储器子系统的存储器组件处和/或从存储器子系统的存储器组件检索的数据实施错误检测和校正(即,错误控制)操作。可基于错误校正/处理操作而检测和校正错误。错误校正/处理操作可包含使用不同参数(例如,电压阈值的变化)进行的一或多个读取重试作为对存储器单元执行的初始读取操作。错误校正/处理操作还可以使用对应于位值(例如,0或1)的从存储器单元读取的硬信息,以及软信息,所述软信息对应于从存储器单元读取的硬信息是准确的以校正存储在存储器单元处的位值的概率。

错误处理操作可能很费时并且影响存储器子系统的性能。错误处理操作可能会使读取时间增加和/或使性能降级,如主机系统所观察到。触发错误处理操作的频率越频繁,存储器系统的性能就越慢,这是因为可执行的读取操作和写入操作更少。并且,阻止进入错误处理流程的存储器子系统的特定位置从主机取得其它命令,从而使存储器子系统的可用性降低。用户或主机系统有时可明显地观察到先前由于错误处理操作增加而被写入或随着存储在存储器单元处的数据的老化度增加而阻止的数据的读取性能显著降低。

在常规存储器子系统中,可周期性地执行背景扫描以允许存储器子系统执行存储器子系统的背景刷新。在背景刷新中,数据可在存储器子系统上重新编程以便改进存储器子系统的性能。举例来说,存储在一或多个存储器单元处的数据可重新编程到另外的一或多个存储器单元。然而,用户无法灵活地控制背景刷新。用户无法根据用户需要对背景刷新进行自定义,控制刷新操作的任何设置,或控制背景刷新的时序(例如,何时执行刷新操作)。此外,在背景刷新期间,存储器子系统仍尝试在执行背景刷新时维持良好性能(例如,某些读取和/或写入时延)。因此,可在背景刷新中使用有限类型的算法,以免在正执行背景刷新时引入额外的性能降级。在一些常规存储器子系统中,备份技术可请求主机系统将待重写的用户数据发送到存储器组件。然而,要求主机系统发送数据很繁琐、不方便、会中断并且不可行。

本公开的方面通过具有存储器子系统来解决以上和其它缺陷,所述存储器子系统能够按需提供由主机系统或主机系统的用户驱动的刷新操作。在一些实施方案中,可识别存储在存储器组件中的用户数据的时间属性(例如,老化度)。存储器子系统可确定时间属性满足时间条件(例如,用户数据的老化度高于阈值老化度)。可提供指示用户数据的刷新操作是否改进了存储器组件的性能的指示。基于所述指示,用户可选择提供指示执行存储器组件的刷新操作的用户输入。在接收到用户输入后,可执行刷新操作。

在一些实施方案中,可采用一机构来防止主机系统过于频繁地发起刷新。举例来说,存储器子系统可确定刷新操作与先前执行的刷新操作之间的时间不超过阈值时间。在此情境下,存储器子系统可确定不执行刷新操作。

在一些实施方案中,一旦用户已提供执行刷新操作的用户输入,存储器子系统就可通过采用各种技术来优化用于刷新操作的用户数据。在按需刷新操作中,更理想的算法或数据对准是可能的。在背景刷新操作中,由于约束,例如用于重新组织数据的可用存储器有限,可重新组织数据的小子集。使用本公开,存储器子系统可将初始转换映射(例如,逻辑到物理块地址转换映射)发送到主机系统。主机系统可使用其存储器和计算资源来存储和指示待在按需刷新操作期间使用的块地址的最优模式。因此,存储器子系统可从主机系统接收修改后的转换映射(例如,重新组织的逻辑到物理块地址转换映射)且使用修改后的转换映射来执行刷新操作。

在一些实施方案中,存储器子系统可识别用于执行刷新操作的设置优化类型。举例来说,设置优化类型可包含性能优化、数据保持优化、耐久性优化、读取密集优化、写入密集优化等。存储器子系统可随后基于确定的设置优化类型而确定刷新操作参数,例如待使用的特定设置(例如,电压、电流电平、强度、持续时间、待施加的脉冲数目等)。存储器子系统可使用特定设置来执行刷新操作。

本公开提供了一种机构,其供系统管理员和其它用户发起用于存储器子系统的按需刷新的刷新操作以使存储器子系统达到其原始或改进的性能层级。本公开的优点包含但不限于在执行错误校正操作时,由于可更高效地且最优地执行操作而提高了存储器子系统的性能,从而使时延最小化而不浪费计算资源。因此,可降低或消除存储器子系统中的错误率。本文中所提供的按需刷新机构允许优化刷新操作以及对优化属性进行自定义。因此,存储器子系统总体性能可得以改进并且解决主机系统的需要。

图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112a到112n。存储器组件112a到112n可为易失性存储器组件、非易失性存储器组件或此类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是ssd。在一些实施例中,存储器子系统110是混合式存储器/存储子系统。通常,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110以及从存储器子系统110读取数据。

主机系统120可以是计算装置,例如台式计算机、笔记本计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等连接。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取存储器组件112a到112n。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。

存储器组件112a到112n可以包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)类型闪存存储器。存储器组件112a到112n中的每一个可包含一或多个存储器单元阵列,所述存储器单元例如单电平单元(slc)或多电平单元(mlc)(例如,三电平单元(tlc)或四电平单元(qlc))。在一些实施例中,特定存储器组件可以包含存储器单元的slc部分和mlc部分两者。存储器单元中的每一个可存储由主机系统120使用的一或多个数据位(例如,数据块)。虽然描述了例如nand类型闪存存储器等非易失性存储器组件,但存储器组件112a到112n可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112a到112n可以是但不限于随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁随机存取存储器(mram)、或非(nor)闪存存储器、电可擦除可编程只读存储器(eeprom)以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的变化来执行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112a到112n的存储器单元可以分组为存储器页或数据块,所述存储器页或数据块可以指用于存储数据的存储器组件的单元。

存储器系统控制器115(下文称为“控制器”)可与存储器组件112a到112n通信以执行操作,例如在存储器组件112a到112n处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明的实例中,控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,且可替代地依赖于(例如由外部主机或由与存储器子系统分开的处理器或控制器提供的)外部控制。

一般来说,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当的命令,以实现对存储器组件112a到112n的所要存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作以及在与存储器组件112a到112n相关联的逻辑块地址与物理块地址之间的地址转换。控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器组件112a到112n,以及将与存储器组件112a到112n相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从控制器115接收地址且对地址进行解码以存取存储器组件112a到112n。

存储器子系统110包含可用于执行存储器子系统的按需刷新操作的存储器刷新组件113。在一些实施例中,控制器115包含存储器刷新组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,存储器刷新组件113是主机系统120、应用程序或操作系统的部分。

存储器刷新组件113可识别存储在存储器组件中的用户数据的时间属性。存储器刷新组件113可确定时间属性满足时间条件。存储器刷新组件113可提供用户数据的刷新操作是否改进了存储器组件的性能的指示。存储器刷新组件113可接收指示执行存储器组件的刷新操作的用户输入。存储器刷新组件113可执行存储器组件的刷新操作。

图2为根据本公开的一些实施例的基于用户数据的时间属性而执行存储器子系统的刷新操作的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的存储器刷新组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。

在操作202处,处理装置识别存储在存储器组件中的用户数据的时间属性。在实例中,时间属性可为用户数据的老化度。在一些实施例中,用户数据的老化度可为自从用户数据最后写入到存储器组件以来已经过的时间量。在一些实施例中,时间属性可为存储器子系统已通电的时间量(即,通电小时数)或耐久特性,例如已经由存储器子系统执行或已经针对存储器组件执行的程序擦除循环的平均数。时间属性可作为元数据与用户数据一起存储且通过处理装置获得。

在操作204处,处理装置确定所识别的时间属性满足时间条件。随着用户数据的老化度增加,主机系统可观察到写入到存储器组件的存储器单元的用户数据的读取性能显著降低。在数据被写入到存储器单元之后经过一定量的时间后,可看到性能明显降低。可指定时间条件以评定读取操作的性能是否已显著降级。处理装置可确定时间属性是否满足指定时间条件。在一些实例中,存储器子系统可设置时间属性的阈值以便评定是否满足时间条件。在一些实例中,处理装置可确定所识别的时间属性高于阈值时间属性。可基于先前的实验、所使用的存储器组件类型等而设置(例如,预定义)阈值时间属性。阈值时间属性可以是数据读取性能降级通常很明显时的点。

在操作206处,处理装置提供用户数据的刷新操作是否改进了存储器组件的性能的指示。在一些实例中,所述指示可基于时间属性符合时间条件。举例来说,处理装置可使用利用用户数据的老化度的算法来确定按需刷新操作的益处。此算法可基于用户数据的多个读取操作。举例来说,存储器子系统可对用户数据的数据块执行多个读取操作。读取操作中的每一个可基于施加到用户数据的数据块的不同读取阈值电压。举例来说,读取阈值电压中的每一个可从先前的读取阈值电压递增。在用户数据中产生的错误最少的读取阈值电压可被视为最优读取阈值电压。此外,原始读取阈值电压与最优读取阈值电压之间的差可指示用户数据的老化(aging)量。在一些实施例中,如果原始读取阈值电压与最优读取阈值电压之间的差超过阈值电压,那么存储器子系统可确定刷新操作可改进存储器组件的性能。处理装置可提供以下两个指示中的至少一个:识别用户数据的刷新操作改进了存储器组件的性能的指示,或识别用户数据的刷新操作并未改进存储器组件的性能的指示。在一些实例中,处理装置提供用户数据的刷新操作成功以改进存储器组件的性能的概率。在一些实例中,处理装置向耦合到存储器组件的主机装置提供用户数据的刷新操作是否改进了存储器组件的性能的指示。在一些实施方案中,指示可由处理装置主动地提供,而无需用户询问按需刷新操作的益处。在一些实施方案中,用户可发起接收用户数据的刷新操作是否改进了存储器组件的性能的指示的命令。处理装置可基于接收指示的用户命令而提供指示。

在操作208处,处理装置接收指示执行存储器组件的刷新操作的用户输入。在一些实例中,可从例如系统管理员或主机系统用户等人类用户接收用户输入。在一些实例中,可从系统用户接收用户输入。系统用户的实例包含但不限于在重复发生时间执行的主机系统、连续价值流系统、连续集成系统或连续部署系统的自动过程。在一些实施例中,系统用户可以是由监测存储器子系统的健康监测系统发起的过程。在一些实例中,用户输入可以是用户可执行的命令。在一些实例中,用户输入可包含由用户指定的参数和参数值。举例来说,用户可指示使用读取密集或写入密集刷新操作。在读取密集刷新操作中,以使得可不太频繁和/或缓慢地写入并且更频繁和/或快速地读取用户数据的方式写入用户数据。在写入密集刷新操作中,以使得可更频繁和/或快速地写入并且不太频繁和/或缓慢地读取用户数据的方式写入用户数据。在其它实例中,用户可指示通过针对性能、数据保持和/或耐久性进行优化来执行刷新操作。性能为读取数据的速度的度量。举例来说,当针对性能进行优化时,读取操作的性能提高,也就是说,可更快和/或更频繁地执行读取操作。数据保持为数据可保持在存储器子系统中的时间的度量。举例来说,当针对数据保持进行优化时,用户数据可保持在存储器子系统中达较长时间段。耐久性为在存储器子系统被用坏之前所述存储器子系统的持续时间的度量。举例来说,当针对耐久性进行优化时,在存储器子系统被用坏之前所述存储器子系统可持续较长时间。在一些实例中,可向用户提供目前是否支持按需刷新操作和/或是否允许刷新操作的指示。在一些实例中,用户可发起接收目前是否支持或允许按需刷新的指示的命令。

在一些实施方案中,处理装置确定刷新操作与先前执行的刷新操作之间的时间是否超过阈值时间。确定当前刷新操作与先前的刷新操作之间的时间可用于防止过于频繁地执行按需刷新操作以及过早地使存储器子系统降级。如果处理装置确定所述时间超过阈值时间,那么处理装置执行刷新操作。如果处理装置确定所述时间不超过阈值时间,那么处理装置确定不执行刷新操作。处理装置可提供自从先前的刷新操作后执行另一刷新操作为时过早的指示。处理装置可在可执行另一刷新操作之前提供等待时间。在一些实例中,处理装置可提供包含自从执行或尝试先前的刷新操作以来的时间长度的指示。在一些实例中,用户可发起接收包含自从执行或尝试先前的刷新操作以来的时间长度的指示的命令。

在操作210处,处理装置执行存储器组件的刷新操作。为了执行存储器组件的刷新操作,处理装置可从存储器组件的第一位置擦除用户数据且使用用户数据在存储器组件的第二位置上执行写入操作。在一些实例中,第一位置和第二位置为不同位置。在一些实例中,第一位置与第二位置相同。

此外,处理装置可提供与刷新操作相关联的额外信息。额外信息可包含以下各项中的一个或组合:由存储器子系统尝试的全部刷新操作的数目、由存储器子系统尝试的成功刷新操作的数目、由存储器子系统尝试的不成功刷新操作的数目、完成由存储器子系统尝试的刷新操作的平均时间、完成由存储器子系统尝试的刷新操作的时间的标准差、刷新操作的第一状态,或由存储器子系统尝试的先前的刷新操作的第二状态。在一些实例中,先前的刷新操作的状态可包含以下各项中的一或多个:先前的刷新操作仍在进行中、成功完成、未能完成等。如果先前的刷新操作仍在进行中,那么指示可包含先前的刷新操作的运行时间、完成的百分比等。如果先前的刷新操作已完成,那么指示可包含先前的刷新操作是成功还是失败。如果先前的操作失败,那么指示可包含失败的细节,包含失败的原因、失败的特定块等。

在一些实例中,处理装置可提供确认刷新操作是否已开始的指示。可提供以下一或多个指示:刷新操作已开始、刷新操作在进行中、自从刷新操作已在进行中以来的时间、完成刷新操作尚须的时间、完成的百分比、刷新成功完成、刷新操作已中止、刷新操作未成功、此时不允许刷新操作等。在失败的情况下,可提供对发生失败的原因的描述。所述描述可包含例如装置忙碌、不支持刷新操作的命令、此时不支持刷新操作的命令、自从先前执行刷新操作后为时过早等信息。

在一些实例中,当正在执行刷新操作时,存储器子系统的性能可暂时降级。暂时性能降级可允许更长期地改进性能,例如在重新布置数据、使用优选的优化设置类型优化刷新方面的灵活性、在刷新操作期间使用的算法方面的更多灵活性等。因此,当用户在预期发生暂时降级的情况下在方便时有意地发起刷新操作时,暂时性能降级可为可接受的。当用户可预期引起暂时性能降级的刷新操作时,用户可避免使用存储器子系统发起其它任务。因此,刷新操作的一个优点是用户可控制刷新操作的时序且相应地控制规划。

图3为根据本公开的一些实施例的基于刷新操作与先前执行的刷新操作之间的时间差而执行存储器子系统的刷新操作的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的存储器刷新组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。

在操作302处,处理装置识别存储在存储器组件中的用户数据的时间属性。在实例中,时间属性可为用户数据的老化度、通电小时数或耐久特性。时间属性可作为元数据与用户数据一起存储且通过处理装置获得。操作302与操作202相当。在操作304处,处理装置确定所识别的时间属性满足时间条件。操作304与操作204相当。在操作306处,处理装置提供用户数据的刷新操作是否改进了存储器组件的性能的指示。操作306与操作206相当。在操作308处,处理装置接收指示执行存储器组件的刷新操作的用户输入。操作308与操作208相当。

在操作310处,处理装置确定刷新操作与先前执行的刷新操作之间的时间不超过阈值时间。确定当前刷新与先前刷新之间的时间可用于防止过于频繁地执行按需刷新操作以及过早地使存储器子系统降级。因而,可设置阈值时间以使得超过阈值时间可指示未过于频繁地执行刷新操作。如果确定所述时间不超过阈值时间,那么处理装置确定正在过于频繁地执行刷新操作。处理装置可提供自从先前的刷新操作后执行另一刷新操作为时过早的指示。处理装置可在可执行另一刷新操作之前提供等待时间。在一些实例中,处理装置可提供包含自从执行或尝试先前的刷新操作以来的时间长度的指示。在一些实例中,用户可发起接收包含自从执行或尝试先前的刷新操作以来的时间长度的指示的命令。

在操作312处,处理装置确定不执行存储器组件的刷新操作。不执行刷新操作的确定可基于刷新操作与先前执行的刷新操作之间的时间不超过阈值时间。在此情境中,即使用户输入指示执行刷新操作,处理装置也不执行刷新操作。

图4为根据本公开的一些实施例的使用修改后的转换映射来执行刷新操作的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的存储器刷新组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。

在操作402处,处理装置从用户接收执行存储器组件的刷新操作的用户输入。在一些实例中,可从例如系统管理员或主机系统用户等人类用户接收用户输入。在一些实例中,可从系统用户接收用户输入。在一些实例中,用户输入可以是用户可执行的命令。在一些实例中,用户输入可包含由用户指定的参数和参数值。举例来说,用户输入可指示重新组织用户数据以优化用户数据,从而按顺序存取用户数据。

在操作404处,处理装置将初始转换映射发送到耦合到存储器组件的主机系统。在一些实例中,初始转换映射经配置以使用第一次序将数个逻辑块地址(lba)映射到数个物理块地址。在一些实例中,在初始转换映射中将lba映射到物理块地址的第一次序可呈非顺序次序。举例来说,lba可映射到非顺序物理块地址。初始转换映射被发送到主机系统,因为主机系统可能具有更多存储器容量以处理转换映射的重新组织。在背景刷新操作中,例如,由于存储器子系统的存储器容量约束,无法针对转换映射的大部分执行重新组织。存储器子系统通常可在背景刷新操作期间重新组织数据的小部分,这并未显著改进在使用转换映射时读取的用户数据的性能。能够存取较大量的高速缓冲存储器的主机系统可接收初始转换映射的大部分,或甚至整个初始转换映射。主机系统可根据顺序逻辑块次序重新组织整个初始转换映射。在按顺序存取用户数据比随机存取更快的情况下,重新组织转换映射以使得数据可按顺序逻辑块次序写回到存储器组件可显著改进性能。在主机系统重新组织初始转换映射之后,主机系统可将重新组织后的转换映射发送回存储器子系统。

在操作406处,处理装置从主机系统接收修改后的转换映射。在一些实例中,修改后的转换映射经配置以使用不同于第一次序的第二次序将数个lba映射到数个物理块地址。在一些实例中,修改后的转换映射为由主机系统重新组织的重新组织后的初始转换映射。在一些实例中,主机系统可基于全局或超级块优化而建议待使用的块的新的、更理想的模式。举例来说,块的最优模式可基于字线组、平面选择、不同类型的存储器单元(例如,单电平单元(slc)、多电平单元(mlc)、三电平单元(tlc)和四电平单元(qlc))的可用性。修改后的转换映射可呈顺序逻辑块次序。

在操作408处,处理装置使用修改后的转换映射来执行存储器组件的刷新操作。在一些实例中,处理装置以第二次序使用物理块地址来执行存储器组件的刷新操作。在一些实例中,为了执行刷新操作,处理装置从存储器组件的第一位置擦除用户数据,且使用用户数据在存储器组件的第二位置上执行写入操作。在一些实例中,第一位置和第二位置是相同的位置,而在其它实例中,第一位置和第二位置是不同的位置。可使用由修改后的转换映射指示的第二次序来执行写入操作。

在一些实例中,为了在第二位置上执行写入操作,处理装置将用户数据提供到主机系统以用于存储用户数据。举例来说,存储器子系统可具有有限的高速缓冲存储器容量,从而防止接收待以第二次序写入的用户数据的整个超级块。主机系统可用于暂时存储超级块的内容。在暂时存储的过程期间,超级块的内容直到完成对整个超级块的刷新操作才有效。处理装置在数个阶段中渐进地在存储器组件的第二位置上执行写入操作。用户数据的一部分在所述数个阶段中的每一阶段中写入到第二位置。在完成使用数个阶段来执行写入操作之后,处理装置向主机系统指示从主机系统擦除用户数据。

图5说明根据本公开的一些实施例修改转换映射的实例。图5中展示了初始转换映射510,其将数个lba512映射到数个物理块地址514。初始转换映射对物理块地址使用第一次序516。lba512包含按顺序次序呈现的逻辑块地址。第一次序516中的对应物理块地址514被描绘为呈非顺序次序。

图5还描绘了用于在背景刷新操作中使用的优化工作的修改后的转换映射520。修改后的转换映射520使用与在初始转换映射510中使用的第一次序516不同的次序将数个lba512映射到数个物理块地址514。在背景刷新操作期间个别地重新组织转换映射520的小子集。如图所示,在转换映射的子集525内,物理块地址514被描绘为按顺序次序526重新组织。也就是说,对于子集525,具有值1、2、3和4的lba在初始转换映射510中分别具有对应的物理块地址值11、12、3和4。由于背景刷新操作可使用小子集来重新组织数据,因此对于子集525,具有值1、2、3和4的lba在修改后的转换映射520中按顺序次序526在子集525内分别映射到对应物理块地址值3、4、11和12。对于物理块地址,子集527具有顺序次序528且子集529具有顺序次序530。然而,整个修改后的转换映射对于物理块地址514不具有顺序次序。因此,未针对顺序读取完全优化用户数据,且性能改进并不显著。

图5描绘了使用按需刷新操作的修改后的转换映射540。将整个初始转换映射510发送到主机系统以用于重新组织。已使用涵盖所有物理块地址的第二次序546将整个修改后的转换映射的物理块地址514重新映射到lba512。第二次序546不同于第一次序516。整个第二次序546呈物理块地址的顺序次序。修改后的转换映射540可发送到存储器子系统,以在使用修改后的转换映射540的顺序次序重写用于刷新操作的数据时使用。由于整个转换映射是按顺序排序的,因此数据完全针对顺序读取优化,且性能改进最大化。

图6为根据本公开的一些实施例的基于设置优化类型而执行存储器子系统的刷新操作的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的存储器刷新组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。

在操作602处,处理装置确定用于执行存储器组件的刷新操作的设置优化类型。设置优化类型可包含以下各项中的一个或组合:性能优化、数据保持优化、耐久性优化、读取密集优化或写入密集优化。

在一些实施方案中,处理装置识别由存储器组件执行的工作负荷且基于所识别的工作负荷而确定设置优化类型。在一些实例中,所识别的工作负荷指示工作负荷模式。工作负荷模式可被识别为写入密集工作负荷模式,或读取密集工作负荷模式。举例来说,处理装置可识别存储器子系统已在经过的一段时间内执行读取密集工作负荷。因此,处理装置可确定切换到写入密集工作负荷以进行下一刷新操作。在一些实施方案中,处理装置接收指示设置优化类型的用户输入。处理装置接着基于用户输入而确定设置优化类型。

举例来说,如果用户预期以频繁间隔(例如,每两周)发起刷新操作,那么用户可取消优化的数据保持方面的优先顺序,因为数据不需要保持较长的时段。因而,用户可优先考虑数据的性能且指示在刷新操作期间针对数据读取的性能优化数据的写入。用户可提供将设置优化类型指示为性能优化的用户输入。在另一实例中,数据库系统的用户可将数据库系统的工作负荷预期为读取密集的。用户可提供将设置优化类型指示为读取密集优化的用户输入。

在操作604处,处理装置基于确定的设置优化类型而确定待使用的刷新操作参数。在一些实例中,刷新操作参数可以是特定设置。特定设置可以是存储器子系统的“trim”设置。trim设置为存储器子系统中的寄存器的值,这使得存储器子系统以不同方式表现。举例来说,trim设置可包含待在标准写入操作中使用的字线电流的默认量。在另一实例中,在trim设置中指定用于读取操作的默认阈值电压。在一些实例中,特定设置可包含以下各项中的一个或组合:待用于刷新操作的阈值电压、待用于刷新操作的指定电流电平、待用于刷新操作的指定强度等级(例如,特定电压电平)、待用于刷新操作的持续时间,或用于刷新操作的写入操作的脉冲数目。存储器子系统可修改可实现确定的设置优化类型的特定设置的值。基于所使用的特定设置,存储器子系统以不同方式表现(例如,更快写入、更慢写入等)。

在其它实例中,特定设置还可以识别数据在何处写入。通常,将数据写入到具有更少的位的单元会更快。具有更少的位的单元具有更多裕度以供读回数据且因此实现更好的数据保持。如果每单元存在更多的位,那么写入性能通常更慢,这是因为写入数据可能要花费更长的时间量,且在数据老化时成功读回数据的概率降低。因而,例如,在仅性能优化中,可将频繁存取的数据写入到经配置以用于每单元具有更少的位的单元,而可将不太频繁存取的数据写入到每单元具有更高的位的位置。在仅保持优化中,一些单元可经重新配置以针对一些块减少每单元的位数,且允许在读取单元时具有更多裕度,同时仍维持装置的容量。

如之前所论述,在经过一段时间的情况下,经施加以读取数据的阈值电压可基于例如存储器组件的特定类型、是否已发生电荷损失条件等各种因素而自然地移位。trim值可设置读取阈值电压以在读取操作期间使用。在实例中,如果设置优化类型被确定为性能优化,那么读取阈值电压可设置为在第一指定范围内,使得可实现成功读取操作且可避免错误处理流程。在另一实例中,如果设置优化类型被确定为耐久性优化,那么读取阈值电压可设置为在第二指定范围内以实现所要耐久性。

举例来说,如果设置优化类型被确定为写入密集优化,那么待用于写入操作、用于刷新操作的指定电流电平或阈值电压可选择为处于比将用于读取密集优化的阈值电压高的电平下。更高的电流电平或阈值电压可使写入操作更快。

在另一实例中,如果设置优化类型被确定为读取密集优化,那么可使用更慢的写入来执行写入操作,使得第一次成功读取数据的概率提高且因此总读取速度提高。通常,当执行写入操作时,使用多个遍次来完成写入操作。在这样做时,写入操作的质量与写入操作的性能达到平衡。质量指示数据的准确程度,且性能指示执行操作的速度。质量与性能之间通常存在折衷,使得如果质量提高,那么性能可降低。在正常操作条件下,需要快速操作,同时保持最小电荷量以提供良好的数据质量。在按需刷新情境中,可允许性能(例如,速度)降低,因为暂时性能降级可为可接受的。可更准确地且以缓慢方式执行写入操作,使得必要量的电荷可进入每一存储器单元。因此,由于在写入操作期间实现的准确性,读取性能得以改进。还可通过允许更多遍次以完成写入操作来实现更好的写入准确性。另外,可使用更少的电流,这可增加执行写入操作的时间。

在操作606处,处理装置使用刷新操作参数(例如,特定设置)来执行存储器组件的刷新操作。在一些实例中,处理装置可从存储器组件的第一位置擦除用户数据,且使用用户数据在存储器组件的第二位置上执行写入操作。在一些实例中,第一位置和第二位置为彼此不同的位置。在一些实例中,第一位置与第二位置相同。

图7说明计算机系统700的实例机器,在所述计算机系统内可执行用于使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的存储器刷新组件113的操作)。在替代性实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。

机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(按顺序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但术语“机器”还应被认为包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以执行本文中所论述的方法中的任何一或多种。

实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(rom)、闪存存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambusdram(rdram)等)、静态存储器706(例如,闪存存储器、静态随机存取存储器(sram)等),以及数据存储系统718,其经由总线730彼此通信。

处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更特定来说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等等。处理装置702经配置以执行用于执行本文中所论述的操作和步骤的指令726。计算机系统700可进一步包含网络接口装置708以经由网络720通信。

数据存储系统718可以包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有一或多组指令726或体现本文中所描述的方法或功能中的任何一或多种的软件。指令726还可在其由计算机系统700执行期间完全或至少部分地驻留在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。

在一个实施例中,指令726包含用于实施对应于存储器刷新组件(例如,图1的存储器刷新组件113)的功能性的指令。尽管在实例实施例中机器可读存储媒体724展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。

已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常但未必,这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。

然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可涉及将计算机系统的寄存器及存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。

本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于任何类型的盘,包含软盘、光盘、cd-rom以及磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。

在前述说明书中,本公开的实施例已经参考其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。

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