使用环境参数来进行编程脉冲控制

文档序号:600269 发布日期:2021-05-04 浏览:2次 >En<

阅读说明:本技术 使用环境参数来进行编程脉冲控制 (Programming pulse control using environmental parameters ) 是由 C·J·比布 P·卡莱 于 2020-10-29 设计创作,主要内容包括:本申请案涉及使用环境参数来进行编程脉冲控制。一种方法包括:在存储器子系统处从主机系统接收与所述存储器子系统的使用相关联的配置参数;监视所述存储器子系统的环境参数,其中所述环境参数包括所述存储器子系统的特性和所述存储器子系统的环境,以及基于所述配置参数和环境参数为所述存储器子系统的编程脉冲特性选择值,所述编程脉冲特性至少包括编程脉冲电压。(The present application relates to using environmental parameters for program pulse control. One method comprises the following steps: receiving, at a memory subsystem, configuration parameters associated with use of the memory subsystem from a host system; monitoring an environmental parameter of the memory subsystem, wherein the environmental parameter includes a characteristic of the memory subsystem and an environment of the memory subsystem, and selecting a value for a programming pulse characteristic of the memory subsystem based on the configuration parameter and the environmental parameter, the programming pulse characteristic including at least a programming pulse voltage.)

使用环境参数来进行编程脉冲控制

技术领域

本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及使用环境参数来进行编程脉冲控制。

背景技术

存储器子系统可为存储装置、存储器模块,以及存储装置和存储器模块的混合。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统来在存储器组件处存储数据且从存储器组件检索数据。

发明内容

在一方面,本公开是针对一种方法,其包括:在存储器子系统处从主机系统接收与所述存储器子系统的使用相关联的配置参数;监视所述存储器子系统的环境参数,其中所述环境参数包括所述存储器子系统的特性和所述存储器子系统的环境;以及基于所述配置参数和环境参数,为所述存储器子系统的编程脉冲特性选择值,所述编程脉冲特性至少包括编程脉冲电压。

在另一方面,本公开是针对一种系统,其包括:存储器子系统;以及处理装置,其以操作方式与所述存储器子系统耦合以进行以下操作:在所述存储器子系统处从主机系统接收与所述存储器子系统的预期使用环境相关联的配置参数;基于所述配置参数来选择编程脉冲电压的值;监视所述存储器子系统的环境参数,其中所述环境参数包括所述存储器子系统的特性和所述存储器子系统周围的环境;以及基于所述环境参数和所述配置参数来调整所述存储器子系统的所述编程脉冲电压。

在另一方面,本公开是针对一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时,致使处理装置进行以下操作:在存储器子系统处从主机系统接收与所述存储器子系统的预期使用相关联的配置参数,其中所述预期使用包括以下各项中的至少一者:所述存储器子系统在其中使用的预期环境、所述存储器子系统在其中使用的预期位置,或所述存储器子系统的预期使用类型;监视所述存储器子系统的环境参数,其中所述环境参数包括所述存储器子系统的使用特性、所述存储器子系统的错误率,以及所述存储器子系统的温度;以及基于所述配置参数和环境参数为所述存储器子系统的编程脉冲特性选择值,所述编程脉冲特性至少包括编程脉冲电压和编程脉冲持续时间,其中先前所记录的环境参数数据的权重随时间减小。

附图说明

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

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

图2是根据本公开的一些实施例的鉴于环境参数来控制编程脉冲特性的实例方法的流程图。

图3是根据本公开的一些实施例的鉴于使用和环境因素来调整编程脉冲特性的实例方法的流程图。

图4说明根据本公开的一些实施例的实例编程脉冲控制组件。

图5是根据本公开的一些实施例的基于环境参数来控制编程脉冲特性的实例方法的流程图。

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

具体实施方式

本公开的方面是针对鉴于使用参数和环境参数来控制和调整编程脉冲特性。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件(下文还被称为“存储器装置”)的存储器子系统。主机系统可提供数据以存储在存储器子系统处,并且可请求从存储器子系统检索数据。

为了将数据编程到存储器子系统,存储器控制器可在NAND装置的栅极上施加电压,以诱捕NAND的浮动栅极中的电荷(例如电子)。存储器控制器可以脉冲形式(被称为编程脉冲)施加电压。电压的量和脉冲的宽度可决定将存储在NAND装置处的电荷的量,且又对NAND的状态进行编程。在一些例子中,存储器控制器可施加编程脉冲,检验NAND的状态,且接着如果需要的话,施加另一编程脉冲。此脉冲-检验-脉冲序列可确保NAND被正确地编程,而不施加可能导致对NAND的较多损坏的较大电压。

随着存储器子系统老化,存储器单元的NAND状态的电压(Vt)分布趋向于变宽,且因此朝着存储器子系统的寿命终点,可需要较高的编程脉冲来确保数据可被恰当地读取。因此,常规存储器系统中的存储器控制器使用考虑寿命终点条件的编程脉冲(即,以较大的编程脉冲电压和/或宽度开始)。然而,在存储器子系统的寿命的开头使用较大的编程脉冲可能减少存储器组件的寿命期,因为与改为使用较低编程脉冲的情况相比,较大的编程脉冲可不必要地导致对NAND组件的较多损坏。

另外,趋向于经历导致数据降级的极端温度、温度的较大偏移或其它环境因素的嵌入式系统中所使用的一些存储器子系统可需要较大的编程脉冲来确保在最坏情况场景中不丢失数据。按照惯例,在存储器子系统的寿命期间,始终使用较大的编程脉冲。然而,存储器子系统可能不总是在最坏情况场景中使用,且因此即使可能不必要,也使用较大编程脉冲。因此,归因于较大编程脉冲的不必要使用,存储器子系统的寿命可显著减少。

本公开的方面通过提供使用环境参数来控制编程脉冲特性的能力来解决以上和其它不足。存储器子系统可接收来自用户的配置参数,其识别存储器子系统中的存储器装置的既定使用。基于所述既定使用,存储器子系统中的存储器控制器可确定初始编程脉冲,以及与存储器装置的寿命期中早期所识别的环境参数/统计相关联的权重。存储器控制器可监视来自传感器的环境参数,其识别存储器子系统周围的环境的条件(例如温度)。因此,存储器控制器可监视实际条件,其中存储器子系统实时安置,且确定适当的编程脉冲来减少装置上的损耗量,但仍确保数据不会归因于改变的条件而丢失。

因此,基于使用和环境来控制编程脉冲特性的能力可实质上增加存储器子系统的寿命。所述优点在其中存储器子系统的更换可能较困难或不可能的嵌入式存储器系统中特别有用。

图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或其组合。

存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储装置(UFS)驱动器以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。

计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用例如存储器子系统110将数据写入到存储器子系统110并从存储器子系统110读取数据。如本文中所使用,“耦合到”通常指代组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。

主机系统120可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的这种计算装置。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(serial advancedtechnology attachment;SATA)接口、外围组件互连高速(peripheral componentinterconnect express;PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接的SCSI(Serial Attached SCSI;SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM快速(NVMe)接口来存取存储器组件(例如存储器装置130)。物理主机接口可提供接口以用于在存储器子系统110与主机系统120之间传递控制、地址、数据以及其它信号。

存储器装置可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储装置140)可以是(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的实例包含“与非”(NAND)类型快闪存储器。存储器装置130中的每一者可包含存储器单元的一或多个阵列,所述存储器单元例如单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器单元中的每一者可存储供主机系统120使用的一或多个数据位。此外,存储器装置130的存储器单元可被分组为存储器页或存储器块,其可指用于存储数据的存储器组件的单元。

虽然描述了例如NAND类型快闪存储器的非易失性存储器组件,但是存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、磁性随机存取存储器(MRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM),以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列,基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下,对非易失性存储器单元进行编程。

存储器子系统控制器115可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,以及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。

存储器子系统控制器115可包含处理器(处理装置)117,其经配置以执行存储在本地存储器119中的指令。在所示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。

在一些实施例中,本地存储器119可包含存储存储器指针、所获取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然在图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110可不包含存储器子系统控制器115,且可改为依靠外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。

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

存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址,且对地址进行解码以存取存储器装置130。

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。

存储器子系统110包含编程脉冲控制组件113,其可用以基于环境参数来控制编程脉冲特性。在一些实施例中,存储器子系统控制器115包含编程脉冲控制组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,编程脉冲控制组件113是主机系统110、应用程序或操作系统的一部分。

编程脉冲控制组件113可基于环境参数来选择编程脉冲特性。编程脉冲控制组件113可监视存储器子系统110和存储器装置130的环境,以确定要选择的编程脉冲特性。编程脉冲控制组件113可从主机系统120接收配置参数。编程脉冲控制组件113可使用这些配置参数来为编程脉冲特性建立基线,并将权重施加到环境因素。编程脉冲控制组件113可使用所述权重来进一步确定要选择的编程脉冲特性。下文描述关于编程脉冲控制组件113的操作的进一步细节。

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

在操作210处,存储器子系统的处理逻辑从主机系统接收与存储器子系统的预期使用相关联的配置参数。配置参数可由主机系统自动提供,或由主机系统的用户提供。所述参数可包含存储器子系统将暴露于和用于的预期环境和位置。另外,配置参数可包含存储器子系统的预期使用类型。举例来说,主机可指示存储器子系统位于机动车、蜂窝式装置、膝上型计算机或任何其它嵌入式系统中。因此,使用配置参数,处理逻辑可为存储器子系统确定预期环境和使用特性。从预期环境和使用,处理逻辑可为用以将数据写入到存储器子系统的存储器装置的编程脉冲确定初始值。

在操作220处,处理逻辑监视环境参数,包含存储器子系统的特性和存储器子系统周围的环境。所述环境参数可为温度波动、使用统计、装置的使用期,以及可能影响存储器子系统的存储器装置中的数据稳定性(即,在数据被编程之后多久,所述数据保持有效)的任何其它内部或外部参数。举例来说,编程操作与读取操作之间的大温度波动可增加读取所述数据时的位错误率。归因于导致较大错误率的温度波动,存储器装置的存储器单元的Vt分布可移位。另外,处理逻辑可监视存储器子系统的使用统计,并将所述使用统计存储在存储器子系统处。举例来说,大量的编程和擦除(P/E)循环可意味着读取数据时较大的位错误率,因为随着P/E循环的数目增加,Vt分布趋向于变宽且重叠。并且,如果使用指示存储器子系统断开较长的时间周期,那么有可能位错误率可归因于下电期间电荷从存储器单元丢失而增加。极端温度也可指示将存在较多的位错误。除使用统计之外,处理逻辑可监视存储器子系统的存储器装置的实际位错误率和刷新速率。

在操作230处,处理逻辑基于配置参数和环境参数,为存储器子系统的编程脉冲特性选择值,其中所述编程脉冲特性包含至少一编程脉冲电压。可调整编程脉冲的特性中的每一者。编程脉冲的特性可包含电压、脉冲的宽度(即,施加脉冲多长时间)以及脉冲的电流。施加较大电压可较快地编程存储器单元,但可导致较多损耗。较低电压和较宽(较长)脉冲可导致较少损耗,但可增加程序等待时间。因此,调整哪一特性以及调整多少可取决于用户的需要。

如上文相对于操作220所描述,环境因素可导致较高的位错误率和/或刷新速率。因此,可使用位错误率和刷新速率的监视来调整编程脉冲电压,且相应地调整Vt分布。如果检测到通常导致较高位错误率的环境因素(例如较大的温度波动),那么处理逻辑可增加编程脉冲电压。另外,如果位错误率增加,或刷新速率增加,那么处理逻辑可增加编程电压以调整Vt分布且降低位错误率。高刷新速率可指示位错误率增加得比其应增加的速率快,例如归因于环境参数。

图3是根据本公开的一些实施例的基于环境参数来控制编程脉冲特性的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的编程脉冲控制组件113执行。虽然以特定顺序或次序来示出,但除非另有指定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例来理解,且所说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流也是可能的。

在操作310处,存储器组件的处理逻辑从主机系统接收与存储器子系统的预期使用相关联的配置参数。存储器子系统的预期使用可包含将使用存储器子系统的地理位置、使用类型、存储器子系统将安置在其中的环境等。举例来说,预期使用可指示存储器子系统将在室内还是室外使用,其将是静止的还是移动的,等等。预期使用可指示存储器子系统的预期最坏情况条件。

在操作320处,处理逻辑基于配置参数来选择编程脉冲电压的值。可使用从配置参数识别的预期使用来确定存储器子系统预期的最坏情况条件。举例来说,配置参数可指示平均温度将是什么、环境中的温度波动将是什么等。基于存储器子系统的配置参数和预期使用,处理逻辑可为编程脉冲电压选择值,使得所存储的数据可足够稳定来满足那些条件下存储器子系统的性能规范(例如在所识别的条件下,数据可维持6个月)。

在操作330处,处理逻辑监视存储器子系统的环境参数,其中所述环境参数包含存储器子系统的特性以及存储器子系统周围的即时环境。环境参数可为温度波动、使用统计、装置的使用期以及可能影响数据稳定性/有效性的任何其它内部或外部参数。举例来说,编程操作与读取操作之间的大温度波动可增加读取所述数据时的位错误率。归因于导致较大错误率的温度波动,存储器子系统的存储器组件的存储器单元的Vt分布可移位。另外,处理逻辑可监视存储器子系统的使用统计,其也可由存储器子系统存储。举例来说,当归因于随着装置上的损耗从P/E循环出现,Vt分布加宽而读取数据时,大量的P/E循环可导致较大的位错误率。另外,如果使用指示装置断开较长的时间周期,那么有可能位错误率将归因于下电期间电荷从存储器单元丢失而增加。极端温度也可指示将存在较多的位错误。处理逻辑还可监视存储器子系统的位错误率和刷新速率。

在操作340处,处理逻辑基于环境参数和配置参数来调整存储器组件的编程脉冲电压。处理逻辑可调整编程脉冲的特性中的每一者。编程脉冲的特性可包含电压、脉冲的长度(即,施加脉冲多长时间)以及脉冲的电流。施加较大电压可较快地编程存储器单元,但可导致较多的损耗,而较低的电压可导致较少的损耗,但可增加编程存储器单元所需的时间。因此,对编程脉冲进行哪种调整可取决于用户的需要。

此外,随着存储器子系统老化,可根据从主机系统接收到的配置参数,在权重方面减少与先前已收集到的环境参数相关联的统计数据。当使用存储器子系统的环境非常平稳时,环境统计较可能较少地变化。当环境是高度不稳定的时,那么早期统计可能实质上与较当前的环境统计不同。因此,处理逻辑可基于配置参数所识别的预期环境和使用,改变处理逻辑放在先前(早期寿命)环境参数上的权重。举例来说,如果配置参数指示满足条件(即,环境/使用在指定时间周期内改变超过阈值量),那么当确定要选择的编程脉冲电压时,先前收集到的统计的权重可减小。另一方面,如果不满足条件(即,环境/使用在指定时间周期内不改变超过阈值量),那么放在较早收集到的环境统计上的权重可保持平稳,或可减小小于满足条件的情况下的量。

如上文相对于操作330所描述,环境因素可导致较高的位错误率,且因此对那些因素的监视可由处理逻辑用来调整编程脉冲电压且因此相应地调整Vt分布。如果检测到通常导致较高位错误率的环境因素(例如较大的温度波动),那么可增加编程脉冲电压。另外,如果位错误率增加,或刷新速率增加,那么编程电压可增加以调整Vt分布且降低位错误率。高刷新速率可指示位错误率增加得比其应增加的速率快,例如归因于环境参数。

图4描绘根据本公开的一些实施例的编程脉冲控制组件113。编程脉冲控制组件113可最初从主机系统接收配置参数425。编程脉冲控制组件113可使用配置参数425来识别初始编程脉冲430以用于编程操作。配置参数425可识别存储器组件预期将用于的环境和预期使用。因此,编程脉冲控制组件113可选择编程脉冲430来确保存储在存储器组件中的数据鉴于预期环境和使用在最小时间周期内保持有效。如果配置参数指示环境和使用将相对稳定,那么编程脉冲控制组件113可选择相对较低的编程脉冲430电压或宽度,以减少存储器组件上归因于编程操作的损耗。编程脉冲控制组件113还可从传感器或其它组件接收存储器组件的一或多个环境参数和/或使用统计。

在一个实例中,编程脉冲控制组件113可接收编程温度402、读取温度404、位错误率406、刷新速率408和P/E循环的数目410。编程温度402可为当将数据写入到存储器组件时所记录的温度。编程温度402可存储为与数据或存储器的其中存储数据的部分相关联。类似地,读取温度404可为当从存储器组件读取先前写入的数据时存储器组件的温度。因此,使用编程温度402和读取温度404,不仅可确定存储器组件的平均温度,并且可确定读取或写入数据的温度范围。因为温度的大变化可导致数据降级(例如数据在低温写入,但在高温读取)且增加位错误率,所以可将编程脉冲430调整到较高电压或较大宽度(即较长脉冲)。较大的编程脉冲430可帮助确保数据可保持有效且可存取,而不管与最初从配置参数425预期的相比,温度有较大的变化。

还可使用位错误率406和刷新速率408来调整编程脉冲430。举例来说,如果位错误率406在一时间周期内变得较大,那么编程脉冲控制组件113可增加编程脉冲430的电压或宽度,以增加Vt状态之间的差,且降低位错误率406。高刷新速率408可指示位错误率406一致地增加,且数据在当前条件下相对不稳定。因此,如果刷新速率408较高,那么编程脉冲控制组件113可增加编程脉冲的电压或宽度。相对于编程/擦除(P/E)循环410,存在的P/E循环410越多,通常Vt状态变得越分散,且因此可致使增加的读取错误。因此,随着P/E循环410增加,编程脉冲控制组件113可增加编程脉冲430的电压或宽度。另外,如果环境参数中的任一者指示环境比预期的稳定(例如低温度变化、低位错误率、低刷新速率等),那么编程脉冲控制组件113可减小编程脉冲430的电压和/或宽度。还应注意,编程脉冲控制组件113可使用任何数目的环境参数和/或使用统计来调整编程脉冲430。

图5是根据本公开的一些实施例的基于环境参数来控制编程脉冲特性的实例方法500的流程图。可通过处理逻辑来执行方法500,所述处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500由图1的编程脉冲控制组件113执行。虽然以特定顺序或次序来示出,但除非另有指定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例来理解,且所说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流也是可能的。

在操作510处,处理逻辑从主机系统接收配置数据。所述配置数据可指示存储器子系统预期将在其中使用的环境。在操作520处,处理逻辑基于从主机系统接收到的配置数据来确定编程脉冲特性的值。编程脉冲特性可包含编程脉冲的电压、电流和宽度。处理逻辑可基于从主机系统接收到的配置数据来选择编程脉冲特性的值。在一个实例中,配置数据指示存储器子系统的预期环境。如果环境预期为不稳定的或极端的,那么处理逻辑可将编程脉冲电压选择为较高,且如果环境是稳定且适中的,那么处理逻辑可将编程脉冲电压选择为较低。因此,可基于配置数据来选择基线编程脉冲。

在操作530处,处理逻辑监视可影响写入在存储器子系统中的数据的有效性和稳定性的环境因素。环境因素可包含与子系统中的数据的编程和读取相关联的温度、位错误率、刷新事件的频率以及P/E循环的数目。处理逻辑还可监视任何其它环境因素、使用统计或其它参数。处理逻辑可使用主机系统和/或存储器子系统的内部或外部传感器来监视环境因素。可贯穿以下操作540、550和560不断地监视所述因素。

在操作540处,如果环境因素指示环境比预期的不稳定,那么处理逻辑增加编程脉冲电压。如果环境因素指示环境比预期的稳定,那么处理逻辑可减小编程脉冲电压、电流或宽度。在操作550处,如果刷新事件的频率比先前所记录的刷新事件的频率增加,那么处理逻辑增加编程脉冲电压。或者,如果刷新事件的频率减小或极低,那么处理逻辑可减小编程脉冲电压。在操作560处,随着P/E循环的数目增加,处理逻辑增加编程脉冲电压。

在操作570处,当调整编程脉冲电压时,处理逻辑基于配置参数来减小环境因素的先前统计的权重。当配置参数指示存储器子系统的环境或使用将非常稳定时,环境统计较可能变化较少。类似地,如果配置参数指示存储器子系统的环境或使用高度不稳定,那么早期统计可能实质上与较当前的环境统计不同。因此,处理逻辑放在先前(早期寿命)环境参数上的权重可基于配置参数所识别的预期环境和使用而改变。举例来说,如果配置参数指示满足条件(即,环境/使用是不稳定的),那么当确定要选择的编程脉冲电压时,与不满足条件的情况相比,处理逻辑可以较高的速率减小先前收集到的统计的权重。另一方面,如果不满足条件(即,环境是稳定的),那么处理逻辑可使放在较早收集到的环境统计上的权重保持稳定,或与满足条件的情况相比,以较慢的速率减小权重。

在操作560完成之后,处理逻辑返回到操作530以继续监视环境因素。尽管描绘为在返回到操作530之前执行操作540、550、560和570,但应注意,处理逻辑可在所述操作中的任一者的执行之后返回到操作530。操作530也可贯穿操作540、550、560和570的执行继续执行。另外,处理逻辑可使用任何其它数目的操作和参数来调整编程脉冲。上文的描述涉及调整存储器子系统的编程脉冲电压,然而应注意,可类似地调整任何编程脉冲特性。

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

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

实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统618,它们经由总线630彼此通信。

处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更明确地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602经配置以执行用于实施本文中所论述的操作和步骤的指令626。计算机系统600可进一步包含网络接口装置608以经由网络620通信。

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

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

已关于对计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是导致期望的结果的操作的自洽序列。操作是要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。

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

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

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

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

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

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种EFUSE阵列结构及其编程方法和读方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!