CN118280417A - 存储器装置的动态编程时间 - Google Patents
存储器装置的动态编程时间 Download PDFInfo
- Publication number
- CN118280417A CN118280417A CN202211708950.0A CN202211708950A CN118280417A CN 118280417 A CN118280417 A CN 118280417A CN 202211708950 A CN202211708950 A CN 202211708950A CN 118280417 A CN118280417 A CN 118280417A
- Authority
- CN
- China
- Prior art keywords
- memory device
- programming time
- time
- data
- programming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 193
- 238000000034 method Methods 0.000 claims description 83
- 238000004519 manufacturing process Methods 0.000 claims description 16
- 238000013461 design Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 description 30
- 238000007667 floating Methods 0.000 description 20
- 238000011084 recovery Methods 0.000 description 18
- 238000003860 storage Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000014759 maintenance of location Effects 0.000 description 17
- 230000015556 catabolic process Effects 0.000 description 15
- 238000006731 degradation reaction Methods 0.000 description 15
- 230000000694 effects Effects 0.000 description 12
- 238000001514 detection method Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 239000000758 substrate Substances 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 230000002411 adverse Effects 0.000 description 5
- 210000000746 body region Anatomy 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000005641 tunneling Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002277 temperature effect Effects 0.000 description 3
- 230000005689 Fowler Nordheim tunneling Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 230000035882 stress Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004242 micellar liquid chromatography Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1096—Write circuits, e.g. I/O line write drivers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本公开涉及存储器装置的动态编程时间。在一些实施方案中,存储器装置可接收指示待编程的数据的写入命令。所述存储器装置可从第一编程时间和第二编程时间确定待用于对所述数据进行编程的编程时间,其中所述编程时间指示待与对所述数据进行编程相关联的时间量,且其中所述第一编程时间与第一时间量相关联,且所述第二编程时间与第二时间量相关联。所述存储器装置可使用所述编程时间将所述数据编程到所述存储器装置的存储器。
Description
技术领域
本公开大体上涉及存储器装置、存储器装置操作,且例如,涉及存储器装置的动态编程时间。
背景技术
即使在未供应电源时,例如NAND存储器装置的非易失性存储器装置也可使用电路系统来实现数据的电编程、擦除和存储。非易失性存储器装置可用于各种类型的电子装置中,例如计算机、移动电话或汽车计算系统,以及其它实例。
非易失性存储器装置可包含存储器单元阵列、页缓冲器和列解码器。另外,非易失性存储器装置可包含控制逻辑单元(例如,控制器)、行解码器或地址缓冲器,以及其它实例。存储器单元阵列可包含在列方向上延伸的连接到位线的存储器单元串。
可称为非易失性存储器装置的“单元”或“数据单元”的存储器单元可包含形成在半导体衬底上的源极与漏极之间的电流路径。存储器单元可进一步包含形成在半导体衬底上的绝缘层之间的浮动栅极和控制栅极。存储器单元的编程操作(有时称为写入操作)一般通过以下方式实现:将存储器单元的源极和漏极区域以及体区的半导体衬底接地;和将可称为“编程电压”、“编程电源电压”或“VPP”的高正电压施加到控制栅极,以在浮动栅极与半导体衬底之间产生佛勒-诺特海姆隧穿(称为“F-N隧穿”)。当发生F-N隧穿时,体区的电子通过施加到控制栅极的VPP的电场累积在浮动栅极上,以增加存储器单元的阈值电压。
通过将可称为“擦除电压”或“Vera”的高负电压施加到控制栅极且将所配置电压施加到体区以产生F-N隧穿,同时在共享体区的区段的单元(称为“块”)中执行存储器单元的擦除操作。在此情况下,将累积在浮动栅极上的电子放电到源极区域中,使得存储器单元具有擦除阈值电压分布。
每一存储器单元串可具有彼此串联连接的多个浮动栅极类型存储器单元。存取线(有时称为“字线”)在行方向上延伸,且每一存储器单元的控制栅极连接到对应存取线。非易失性存储器装置可包含连接在位线与列解码器之间的多个页缓冲器。列解码器连接在页缓冲器与数据线之间。
发明内容
本公开的一方面针对一种存储器装置,其包括:一或多个组件,其配置成:使用第一编程时间执行第一一或多个写入操作,其中第一编程时间与第一时间量相关联;检测到与改变由存储器装置使用的编程时间相关联的触发事件;基于检测到触发事件,将编程时间从所述第一编程时间切换到第二编程时间,其中第二编程时间与第二时间量相关联;及使用第二编程时间执行第二一或多个写入操作。
本公开的另一方面针对一种方法,其包括:由存储器装置接收指示待进行编程的数据的写入命令;由存储器装置从第一编程时间和第二编程时间确定待用于对数据进行编程的编程时间,其中编程时间指示待与对数据进行编程相关联的时间量,且其中第一编程时间与第一时间量相关联,且第二编程时间与第二时间量相关联;及由存储器装置使用编程时间将数据编程到存储器装置的存储器。
本公开的又另一方面针对一种设备,其包括:用于使用编程时间的第一时间量执行第一一或多个写入操作的构件,其中编程时间指示与执行来自第一一或多个写入操作的写入操作相关联的时间量;用于检测到与改变与编程时间相关联的时间量相关联的触发事件的构件;及用于基于检测到触发事件而使用编程时间的第二时间量执行第二一或多个写入操作的构件。
附图说明
图1为示出能够使用存储器装置的动态编程时间的实例系统的图。
图2为包含在存储器装置中的实例组件的图。
图3为示出单层级单元(SLC)、多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)非易失性存储器的实例的图。
图4为示出可在MLC非易失性存储器装置中发生的读取错误的实例的图。
图5A和5B为存储器装置的动态编程时间的实例的图。
图6为与存储器装置的动态编程时间相关联的时间线的实例的图。
图7为存储器装置的动态编程时间的实例的图。
图8为存储器装置的动态编程时间的实例的图。
图9为与存储器装置的动态编程时间相关联的实例方法的流程图。
图10为与存储器装置的动态编程时间相关联的实例方法的流程图。
图11为与存储器装置的动态编程时间相关联的实例方法的流程图。
具体实施方式
非易失性存储器单元可编程到所要状态,例如编程到多个状态中的一者。在一些情况下,例如NAND装置的非易失性存储器装置可通过对存储器单元充电或不充电来存储数据位,即使当没有电压施加到单元时,存储器单元仍可能够保持电荷(例如,电子)。举例来说,非易失性固态存储器装置(例如,快闪存储器装置)可包含配置成存储电荷的浮动栅极晶体管。浮动栅极晶体管中电荷的缺乏、浮动栅极晶体管中电荷的存在和/或浮动栅极晶体管中电荷的电平指示由存储器单元或浮动栅极晶体管存储的数据状态。编程为单层级单元(SLC)的存储器单元可存储两个二进制状态(例如,1或0)中的一者。编程为多层级单元(MLC)的存储器单元可存储多于两个二进制状态。举例来说,可编程四层级单元(QLC)以存储16个状态中的一者,例如1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110和1110。状态可对应于通过阈值电压(Vth)裕度(例如,感测(例如,读取)裕度)彼此分离的不同Vth分布。举例来说,可使用可选择处于Vth裕度内的感测电压来感测(例如,读取)状态。
可由非易失性存储器装置执行数据操作。举例来说,非易失性存储器装置可接收存取请求(例如,写入命令或读取命令),以便将数据存储在非易失性存储器装置处的存储器上和/或从非易失性存储器装置上的存储器读取数据。存储器装置可随时间(例如,随存储器装置的寿命)保持所存储数据。
然而,数据保持退化(例如,减少单元电容以保持所存储数据)可影响非易失性存储器装置的可靠性和/或功能性。数据保持退化可能与延长的存储周期(例如,未供电存储)相关联。举例来说,基于非易失性存储器装置经历的温度和/或与未供电存储相关联的时间量,单元的电荷水平可能波动。电荷水平的波动可能导致电荷电平随时间从一个二进制状态改变为另一二进制状态。举例来说,可对单元充电以对应于与第一二进制状态相关联的第一电压分布,但随时间推移,电荷电平可改变为与第二二进制状态相关联的第二电压分布。这可能导致与读取由单元存储的数据相关联的错误。
在一些情况下,由于延长的存储周期而导致的数据保持退化可不利地影响数据完整性。因此,未能缓解数据保持退化可能导致对非易失性存储器装置的可靠性和/或功能性的不利影响。与数据保持相关联的问题可能取决于上文所描述的Vth裕度和/或Vth分布的漂移。举例来说,数据的完整性可随着Vth裕度变小而退化。因此,随着每单元的位数目增加,数据可能更快地退化,因为Vth裕度更小。举例来说,QLC非易失性存储器可能与不同二进制状态的Vth阈值之间的相对较小差异相关联。因此,QLC非易失性存储器可经历由与未供电存储和/或温度效应相关联的数据保持退化引起的较高水平的位错误。这可能不利地影响QLC非易失性存储器装置的数据完整性、可靠性和/或功能性。
在一些情况下,存储器装置可能够执行错误校正,例如通过使用错误校正码(ECC),以及其它实例。然而,如果错误的数目变得过大,那么存储器装置可能经历不可校正的ECC(UECC)错误且可能丢失数据。在一些情况下,可将QLC非易失性存储器装置的数据写入为SLC以提高数据完整性和/或缓解数据保持退化的效应(例如,因为SLC非易失性存储器与较大Vth裕度相关联)。然而,这可能减小QLC非易失性存储器的数据容量(例如,因为SLC存储器仅能够存储每单元1位,而非每单元4位)。另外,这可能不利地影响QLC非易失性存储器的性能,因为存储在SLC存储器中的数据可能需要在未来被读取和重写(例如,折叠)到QLC存储器。
存储器装置(例如,非易失性存储器装置)可使用编程时间写入数据或对数据进行编程。“编程时间”可指与存储器装置将数据写入到单元或页相关联的时间量。编程时间也可称为程序时间、写入时间和/或tProg,以及其它实例。在一些情况下,增加编程时间可提高数据完整性和/或可缓解数据保持退化的效应,因为存储器装置被使能以较大精确度增加和/或减小单元的电荷电平(例如,由此减小电荷电平靠近Vth阈值的可能性,这可能减小电荷电平的波动导致错误的可能性)。然而,增加编程时间可不利地影响存储器装置的性能,因为写入操作可能花费更多时间,由此增加与执行写入操作相关联的延迟或等待时间。
本文中所描述的一些实施方案实现存储器装置的动态编程时间。举例来说,存储器装置可在第一时间处使用第一编程时间(例如,与第一时间量相关联)写入数据或对数据进行编程,且可在第二时间处使用第二编程时间(例如,与第二时间量相关联)写入数据或对数据进行编程。举例来说,存储器装置可在不同编程时间之间动态地切换以用于将数据写入或编程到存储器单元。
举例来说,存储器装置可使用第一编程时间执行第一一或多个写入操作。存储器装置可检测到与改变由存储器装置使用的编程时间相关联的触发事件。举例来说,触发事件可基于由存储器装置(例如,从主机装置)接收到的命令、已擦除存储器块的次数和/或与存储器块相关联的编程擦除循环的量,以及其它实例。存储器装置可基于检测到触发事件而将编程时间从第一编程时间切换到第二编程时间。存储器装置可使用第二编程时间执行一或多个写入操作。
在一些实施方案中,由存储器装置使用的编程时间可基于存储器装置的操作阶段。举例来说,存储器装置可配置成将第一编程时间用于制造和/或初始化阶段(例如,与将数据存储在存储器装置的存储器中的原始装备制造商(OEM)或原始设计制造商(ODM)相关联)。存储器装置可配置成将第二编程时间用于终端用户阶段(例如,与终端用户对存储器装置和/或与存储器装置相关联的主机装置的使用相关联)。举例来说,在典型情况下,在制造和/或初始化阶段之后,存储器装置可在未供电状态下被运送和/或存储较长时间周期。因此,提高数据完整性和/或缓解数据保持退化的效应对于在制造和/或初始化阶段期间写入的数据可能是重要的。因此,存储器装置可配置成在制造和/或初始化阶段期间使用第一编程时间(例如,较长编程时间)来写入数据或对数据进行编程。在终端用户阶段中,存储器装置可处于供电状态,且可能够通过执行刷新操作来校正所存储数据中的错误,如本文中其它地方更详细地描述。因此,存储器装置可配置成在终端用户阶段期间使用第二编程时间(例如,较短编程时间)来写入数据或对数据进行编程,以改进存储器装置的性能。
因此,通过动态地改变由存储器装置使用的编程时间,存储器装置被使能以通过在一些情况下使用较长编程时间写入数据来提高数据完整性和/或缓解数据保持退化的效应,同时还通过在其他情况下使用较短编程时间写入数据来改进存储器装置的性能。举例来说,存储器装置被使能以基于操作阶段和/或由存储器装置存储的数据类型而在提高数据完整性与存储器装置性能之间进行平衡。这使得存储器装置能够提高数据完整性和/或缓解数据保持退化的效应(例如,与未供电存储和/或传输的周期相关联),而不降低存储器装置的性能(例如,对于终端用户)。
图1为示出能够使用存储器装置的动态编程时间的实例系统100的图。系统100可包含用于执行本文中所描述的操作的一或多个装置、设备和/或组件。举例来说,系统100可包含主机装置110和存储器装置120。存储器装置120可包含控制器130和存储器140。主机装置110可经由主机接口150与存储器装置120(例如,存储器装置120的控制器130)通信。控制器130和存储器140可经由存储器接口160通信。
系统100可为配置成将数据存储在存储器中的任何电子装置。举例来说,系统100可为计算机、移动电话、有线或无线通信装置、网络装置、服务器、数据中心中的装置、云计算环境中的装置、交通工具(例如,汽车或飞机)和/或物联网(IoT)装置。主机装置110可包含配置成执行指令且将数据存储在存储器140中的一或多个处理器。举例来说,主机装置110可包含中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/或另一类型的处理组件。
存储器装置120可为配置成将数据存储在存储器中的任何电子装置或设备。在一些实施方案中,存储器装置120可为配置成将数据持久地存储在非易失性存储器中的电子装置。举例来说,存储器装置120可为硬式磁盘机、固态硬盘(SSD)、快闪存储器装置(例如,NAND快闪存储器装置或NOR快闪存储器装置)、通用串行总线(USB)随身盘、存储卡(例如,安全数字(SD)卡)、次级存储装置、非易失性存储器高速(NVMe)装置和/或嵌入式多媒体卡(eMMC)装置。在此情况下,存储器140可包含配置成在存储器装置120断电之后维持所存储数据的非易失性存储器。举例来说,存储器140可包含NAND存储器或NOR存储器。在一些实施方案中,存储器140可包含需要电力来维持所存储数据且在存储器装置120断电之后丢失所存储数据的易失性存储器,例如一或多个锁存器和/或随机存取存储器(RAM),例如动态RAM(DRAM)和/或静态RAM(SRAM)。举例来说,易失性存储器可高速缓存从非易失性存储器读取或写入到非易失性存储器的数据,和/或可高速缓存待由控制器130执行的指令。
控制器130可为配置成与主机装置(例如,经由主机接口150)和存储器140(例如,经由存储器接口160)通信的任何装置。另外或替代地,控制器130可配置成控制存储器装置120和/或存储器140的操作。举例来说,控制器130可包含存储器控制器、系统控制器、ASIC、FPGA、处理器、微控制器和/或一或多个处理组件。在一些实施方案中,控制器130可为高级控制器,其可直接与主机装置110通信且可指示关于待结合存储器140执行的存储器操作的一或多个低级控制器。在一些实施方案中,控制器130可为低级控制器,其可从直接与主机装置110介接的高级控制器接收关于存储器操作的指令。作为实例,高级控制器可为SSD控制器,且低级控制器可为非易失性存储器控制器(例如,NAND控制器)或易失性存储器控制器(例如,DRAM控制器)。在一些实施方案中,本文中描述为由控制器130执行的操作集合可由单个控制器执行(例如,整个操作集合可由单个高级控制器或单个低级控制器执行)。替代地,本文中描述为由控制器130执行的操作集合可由多于一个控制器执行(例如,操作的第一子集可由高级控制器执行,且操作的第二子集可由低级控制器执行)。
主机接口150实现主机装置110与存储器装置120之间的通信。主机接口150可包含例如小型计算机系统接口(SCSI)、串行附接的SCSI(SAS)、串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、NVMe接口、USB接口、通用快闪存储(UFS)接口和/或嵌入式多媒体卡(eMMC)接口。
存储器接口160实现存储器装置120与存储器140之间的通信。存储器接口160可包含非易失性存储器接口(例如,用于与非易失性存储器通信),例如NAND接口或NOR接口。另外或替代地,存储器接口160可包含易失性存储器接口(例如,用于与易失性存储器通信),例如双倍数据速率(DDR)接口。
在一些实施方案中,存储器装置120和/或控制器130可配置成:使用第一编程时间执行第一一或多个写入操作,其中第一编程时间与第一时间量相关联;检测到与改变由存储器装置使用的编程时间相关联的触发事件;基于检测到触发事件,将编程时间从第一编程时间切换到第二编程时间,其中第二编程时间与第二时间量相关联;及使用第二编程时间执行第二一或多个写入操作。
在一些实施方案中,存储器装置120和/或控制器130可配置成:接收指示待进行编程的数据的写入命令;从第一编程时间和第二编程时间确定待用于对数据进行编程的编程时间,其中编程时间指示待与对数据进行编程相关联的时间量,且其中第一编程时间与第一时间量相关联,且第二编程时间与第二时间量相关联;及使用编程时间将数据编程到存储器装置的存储器。
在一些实施方案中,存储器装置120和/或控制器130可配置成:使用编程时间的第一时间量执行第一一或多个写入操作,其中编程时间指示与执行来自第一一或多个写入操作的写入操作相关联的时间量;检测到与改变与编程时间相关联的时间量相关联的触发事件;及基于检测到触发事件而使用编程时间的第二时间量执行第二一或多个写入操作。
如上文所指出,图1提供为实例。其它实例可与关于图1所描述的实例不同。
图2为包含在存储器装置120中的实例组件的图。如上文结合图1所描述,存储器装置120可包含控制器130和存储器140。如图2中所展示,存储器140可包含一或多个非易失性存储器阵列205,例如一或多个NAND存储器阵列和/或一或多个NOR存储器阵列。另外或替代地,存储器140可包含一或多个易失性存储器阵列210,例如一或多个SRAM阵列和/或一或多个DRAM阵列。控制器130可使用非易失性存储器接口215将信号传输到非易失性存储器阵列205且从非易失性存储器阵列205接收信号。控制器130可使用易失性存储器接口220将信号传输到易失性存储器阵列210且从易失性存储器阵列210接收信号。
控制器130可例如通过执行一或多个指令来控制存储器140的操作。举例来说,存储器装置120可将一或多个指令作为固件存储在存储器140中,且控制器130可执行那些一或多个指令。另外或替代地,控制器130可经由主机接口150从主机装置110接收一或多个指令,且可执行那些一或多个指令。在一些实施方案中,非暂时性计算机可读介质(例如,易失性存储器和/或非易失性存储器)可存储指令集(例如,一或多个指令或代码)以供控制器130执行。控制器130可执行指令集以执行本文中所描述的一或多个操作或方法。在一些实施方案中,由控制器130执行指令集使控制器130和/或存储器装置120执行本文中所描述的一或多个操作或方法。在一些实施方案中,硬连线电路系统可代替或结合一或多个指令使用以执行本文中所描述的一或多个操作或方法。另外或替代地,控制器130和/或存储器装置120的一或多个组件可配置成执行本文中所描述的一或多个操作或方法。指令有时称为“命令”。
举例来说,控制器130可基于一或多个指令将信号传输到存储器140和/或从存储器140接收信号,例如将数据传送(例如,写入或编程)到存储器140,从存储器140传送(例如,读取)数据,和/或擦除存储器140的全部或一部分(例如,存储器140的一或多个存储器单元、页、子块、块或平面)。另外或替代地,控制器130可配置成控制对存储器140的存取和/或提供主机装置110与存储器140之间的转换层(例如,用于将逻辑地址映射到存储器阵列的物理地址)。在一些实施方案中,控制器130可将主机接口命令(例如,从主机装置110接收到的命令)转换成存储器接口命令(例如,用于对存储器阵列执行操作的命令)。
如图2中所展示,控制器130可包含存储器管理组件225、编程时间管理组件230、事件检测组件235和/或读取恢复组件240,以及其它实例。在一些实施方案中,这些组件中的一或多者实施为由控制器130执行的一或多个指令(例如,固件)。替代地,这些组件中的一或多者可实施为不同于控制器130的专用集成电路。
存储器管理组件225可配置成管理存储器装置120的性能。举例来说,存储器管理组件225可执行耗损均衡、不良块管理、块引退、读取干扰管理和/或其它存储器管理操作。在一些实施方案中,存储器装置120可存储(例如,在存储器140中)一或多个存储器管理表。存储器管理表可存储可由存储器管理组件225使用或更新的信息,例如关于存储器块老化、存储器块擦除计数(其也可称为“块擦除计数”)和/或与存储器分区(例如,存储器单元、存储器行、存储器块等)相关联的错误信息的信息。
编程时间管理组件230可配置成管理由存储器装置120和/或控制器130使用以将数据编程或写入到存储器单元的编程时间。举例来说,编程时间管理组件230可配置成存储活动(或当前使用的)编程时间。编程时间管理组件230可配置成基于检测到的触发事件、存储器装置120的操作阶段和/或由存储器装置120从主机装置110接收到的命令以及其它实例而切换或改变与编程时间相关联的时间量。
事件检测组件235可配置成检测到与动态地切换由存储器装置120和/或控制器130使用以将数据编程或写入到存储器单元的编程时间相关联的一或多个触发事件。举例来说,事件检测组件235可配置成检测到已接收到(例如,从主机装置110)指示将改变或切换编程时间的命令(例如,供应商命令或供应商特定(VS)命令)。另外或替代地,事件检测组件235可配置成基于检测到块擦除计数满足擦除计数阈值而检测到触发事件。另外或替代地,事件检测组件235可配置成基于检测到与存储器块相关联的编程擦除循环的量满足编程擦除阈值而检测到触发事件。
读取恢复组件240可配置成执行读取恢复程序以从读取页失败和其它读取失败恢复。在一些实施方案中,读取恢复组件240可配置成执行刷新操作和/或读取巡逻操作,如本文中其它地方更详细地描述。举例来说,读取恢复组件240可执行一或多个读取恢复操作,例如调整用于读取存储器单元的读取参考电压,和/或执行一或多个额外错误校正算法(例如,ECC)或程序,例如独立NAND冗余阵列(RAIN)恢复程序、独立磁盘冗余阵列(RAID)恢复程序、第二同步字节模式(SB2)解码程序、硬或软低密度奇偶校验(LDPC)恢复程序、校正读取(CR)程序和/或自动校准恢复(ACR)程序,以及其它实例。
图2中所展示的一或多个装置或组件可配置成执行本文中所描述的操作,例如结合图5A、5B和6至11所描述的一或多个操作和/或方法。举例来说,控制器130、存储器管理组件225、编程时间管理组件230、事件检测组件235和/或读取恢复组件240可配置成执行用于存储器装置120的一或多个操作和/或方法。
图2中所展示的组件的数目和布置提供为实例。实际上,可存在与图2中所展示的那些组件相比额外的组件、更少的组件、不同的组件,或不同地布置的组件。此外,图2中所展示的两个或更多个组件可在单个组件内实施,或图2中所展示的单个组件可实施为多个分布式组件。另外或替代地,图2中所展示的组件集合(例如,一或多个组件)可执行被描述为由图2中所展示的另一组件集合执行的一或多个操作。
图3为示出单层级单元(SLC)、多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)非易失性存储器的实例300的图。这些存储器类型中的一或多者可由本文中所描述的存储器装置120使用。
在一些情况下,例如NAND装置的非易失性存储器装置可通过对存储器单元充电或不充电来存储数据位,即使当没有电压施加到单元时,存储器单元仍可能够保持电荷(例如,电子)。举例来说,非易失性固态存储器装置(例如,快闪存储器装置)可包含配置成存储电荷的浮动栅极晶体管。浮动栅极晶体管可通过绝缘氧化物层在上方和下方隔离。浮动栅极晶体管可通过将高电压施加到接近于第一(或顶部)绝缘层(有时称为栅极氧化物)的控制栅极来充电,其使得来自接近于第二(或底部)绝缘层(有时称为隧道氧化物)的衬底的电子隧道穿过第二绝缘层且到达浮动栅极,这有时称为隧穿或佛勒-诺特海姆隧穿。相反地,浮动栅极晶体管可通过将高电压施加到衬底来擦除,其使得来自浮动栅极晶体管的电子隧道穿过第二绝缘层且到达衬底。浮动栅极晶体管中电荷的缺乏、浮动栅极晶体管中电荷的存在和/或浮动栅极晶体管中电荷的电平指示由存储器单元或浮动栅极晶体管存储的数据状态。
更特别地,例如NAND单元的非易失性存储器单元可分类为SLC、MLC、TLC或QLC,以及其它实例。如由附图标记305所展示,SLC每存储器单元存储单个二进制位,且因此可存储二进制1或二进制0。在SLC中,所存储位有时称为存储器单元的页数据。当写入到SLC时,当存储器单元将存储二进制1时,单元可被充电到落在用页数据“1”标记的曲线的分布内的阈值电压(Vth)(或另外,当存储器单元将存储二进制1时,可不包含电荷),且当存储器单元将存储二进制0时,单元可被充电到落在用页数据“0”标记的曲线的分布内的阈值电压。
不同于仅存储单个位的SLC,MLC、TLC和QLC可每存储器单元存储多个位。更特别地,如由附图标记310所展示,MLC每存储器单元存储两个二进制位,且因此能够根据存储在MLC中的电荷的电平而存储二进制11、二进制01、二进制00或二进制10。在MLC中,第一所存储位有时称为单元的上部页数据,且第二所存储位有时称为单元的下部页数据。当写入到MLC时,当存储器单元将存储二进制11时,单元可被充电到落在用页数据“11”标记的曲线的分布内的阈值电压,当存储器单元将存储二进制01时,单元可被充电到落在用页数据“01”标记的曲线的分布内的阈值电压,当存储器单元将存储二进制00时,单元可被充电到落在用页数据“00”标记的曲线的分布内的阈值电压,且当存储器单元将存储二进制10时,单元可被充电到落在用页数据“10”标记的曲线的分布内的阈值电压。在一些实施方案中,当MLC的电荷为大约25%满时,MLC存储二进制11,当MLC的电荷为大约50%满时,MLC存储二进制01,当MLC的电荷为大约75%时,MLC存储二进制00,且当MLC的电荷为大约100%满时,MLC存储二进制10。
以类似方式,且如由附图标记315所展示,TLC每存储器单元存储三个二进制位,且因此TLC能够存储二进制111、二进制011、二进制001、二进制101、二进制100、二进制000、二进制010或二进制110。对于TLC,第一所存储位、第二所存储位和第三所存储位有时分别称为单元的“额外页数据”、单元的“上部页数据”和单元的“下部页数据”。此外,如由附图标记320所展示,QLC每存储器单元存储四个二进制位,且因此能够存储二进制1111、二进制0111、二进制0011、二进制1011、二进制1001、二进制0001、二进制0101、二进制1101、二进制1100、二进制0100、二进制0000、二进制1000、二进制1010、二进制0010、二进制0110或二进制1110。对于QLC,第一位、第二位、第三位和第四位有时分别称为单元的“顶部页数据”、单元的“额外页数据”、单元的“上部页数据”和单元的“下部页数据”。更广泛地,对于n位存储器单元,单元的阈值电压可编程到2n个单独状态,其中每一状态对应于非重叠阈值分布,如针对图3中的各种存储器单元所展示。
为了读取存储在存储器单元(例如SLC、MLC、TLC、QLC或另一类型的存储器单元)中的数据,存储器装置(或其组件)可感测与存储器单元上的所存储电荷相关联的电压(例如,可感测与所述单元相关联的Vth)且确定与所述电压相关联的对应二进制数。
在一些实例中,存储器装置120可在编程时间(例如,tProg)内对单元充电。举例来说,存储器装置120可通过在编程时间内增量地增加或减小电荷的电压而对单元充电。通过增加编程时间,可使存储器装置120增加或减小电压的增量更小。这可使得存储器装置120能够更准确地将存储器单元充电到与所要二进制位值相关联的电压电平。举例来说,使用较小增量,存储器装置120可能被使能以将存储器单元充电到更靠近所要二进制位值的电压分布(例如,图3中所展示的曲线中的一者)的峰值或中心的电压。
在一些情况下,与存储器单元上的所存储电荷相关联的电压可能由于未供电存储和/或温度效应而随时间波动,如本文中其它地方所描述。能够将更多二进制位存储在每一单元(例如MDC、TLC和/或QLC)中的存储器单元可经历由与给定存储器单元上的所存储电荷相关联的电压波动引起的更多错误,因为与不同二进制值相关联的阈值电压之间的差异可能更小(例如,与能够将更少二进制位存储在每一存储器单元中的单元相比)。举例来说,与SLC、MLC和/或TLC相比,QLC可能经历由数据保持效应(例如,与未供电存储和/或温度效应的周期相关联)引起的更多错误。
如上文所指出,图3提供为实例。其它实例可与关于图3所描述的实例不同。
图4为示出可在MLC非易失性存储器装置中发生的读取错误的实例400的图。尽管在MLC的上下文中描述结合图4所描述的读取错误,但所描述概念也应用于其它类型的存储器单元,例如SLC、TLC、QLC和其它类型的存储器单元。
一些存储器装置可能够每存储器单元存储多个位。举例来说,MLC非易失性存储器装置(例如,MLC快闪装置)可能够在四个状态中的一者下每存储器单元存储两个信息位(例如,可取决于施加到存储器单元的电荷而存储二进制11、二进制01、二进制00或二进制10)。为了读取例如图4中所展示的MLC的存储器单元的数据,存储器装置(或其组件)可将读取参考电压施加到所述单元以致力于在存储器单元中感应电流,且存储器装置(或其组件)可确定与感应(或另外不感应)电流的电压相关联的对应位串。换句话说,存储器装置可施加各种读取参考电压以感测与存储在单元中的数据相关联的阈值电压(Vth)。
更特别地,对于MLC,存储器装置可执行下部页(也展示为LP)读取和上部页(也展示为UP)读取。如由附图标记405所展示,对于下部页读取,存储器装置可施加展示为VB的读取参考电压。VB可表示与前两个状态相关联的阈值电压分布(例如,与二进制11和01相关联的阈值电压分布)和与第二两个状态相关联的阈值电压分布(例如,与二进制00和10相关联的阈值电压分布)之间的电压。如果当VB施加到存储器单元时电流流动,那么阈值电压可被认为小于VB,因此对应于二进制11或二进制01中的一者(意味着下部页数据表示“1”)。如果当VB施加到存储器单元时电流不流动,那么阈值电压可被认为大于VB,因此对应于二进制00或二进制10中的一者(意味着下部页数据表示“0”)。
如由附图标记410所展示,可以类似方式执行上部页读取。更特别地,当检测到的下部页数据为“1”时,VA的读取参考电压可施加到存储器单元以此后确定上部页数据。VA可表示与第一状态相关联的阈值电压分布(例如,与二进制11相关联的阈值电压分布)和与第二状态相关联的阈值电压分布(例如,与二进制01相关联的阈值电压分布)之间的电压。如果当VA施加到存储器单元时电流流动,那么阈值电压可被认为小于VA,因此对应于二进制11(意味着上部页数据表示“1”)。如果当VA施加到存储器单元时电流不流动,那么阈值电压可被认为大于VA但小于VB(如在下部页读取期间确定),因此对应于二进制01(意味着上部页数据表示“0”)。
类似地,当检测到的下部页数据为“0”时,VC的读取参考电压可施加到存储器单元以此后确定上部页数据。VC可表示与第三状态相关联的阈值电压分布(例如,与二进制00相关联的阈值电压分布)和与第四状态相关联的阈值电压分布(例如,与二进制10相关联的阈值电压分布)之间的电压。如果当VC施加到存储器单元时电流流动,那么阈值电压可被认为小于VC但大于VB(如在下部页读取期间确定),因此对应于二进制00(意味着上部页数据表示“0”)。如果当VC施加到存储器单元时电流不流动,那么阈值电压可被认为大于VC,因此对应于二进制10(意味着上部页数据表示“1”)。
在一些情况下,图4中所展示的阈值电压分布可能由于噪声等而加宽,这可能导致存储器装置处的读取错误。存储器单元中的噪声可由各种来源引起,例如编程擦除(P/E)循环应力、随时间的电荷泄漏、读取干扰(例如,当正在读取页面上的其它单元时,由于将高电压施加到未被读取的页面的存储器单元以取消选择所述单元而引起的干扰)、编程错误、单元与单元干扰(例如,当相邻单元被读取、写入或擦除时无意的电干扰和/或存储器单元的干扰)等。如图4中所展示,加宽的电压阈值分布可导致读取错误,例如下部页读取错误和/或上部页读取错误。
首先,如由附图标记415所展示,下部页读取错误可能由靠近VB和/或与VB重叠的电压分布的加宽引起。在图4中所展示的实例中,与二进制01和二进制00相关联的阈值电压分布已被加宽以与读取参考电压VB重叠。这可能导致下部页读取错误,因为用二进制01编程的单元可以与用二进制00编程的单元类似的方式起作用(例如,响应于所施加电压)。更特别地,如果VB施加到存储二进制01但与用附图标记420标记的区域中的阈值电压相关联的存储器单元,那么将没有电流流动,从而错误地指示下部页数据表示“0”而非“1”。另一方面,如果VB施加到存储二进制00但与用附图标记425标记的区域中的阈值电压相关联的存储器单元,那么电流将流动,从而错误地指示下部页数据表示“1”而非“0”。
类似地,如由附图标记430所展示,当执行上部页读取时,上部页读取错误可能由靠近VA和/或VC和/或与VA和/或VC重叠的电压分布的加宽引起。举例来说,存储二进制11且与由435标记的区域中的阈值电压相关联的存储器单元可能错误地读取为存储“0”的上部页数据,存储二进制01且与由440标记的区域中的阈值电压相关联的存储器单元可能错误地读取为存储“1”的上部页数据,存储二进制00且与由445标记的区域中的阈值电压相关联的存储器单元可能错误地读取为存储“1”的上部页数据,且存储二进制10且与由450标记的区域中的阈值电压相关联的存储器单元可能错误地读取为存储“0”的上部页数据。
在一些情况下,存储器装置120可响应于上文所描述的读取错误中的一或多者(例如,响应于存储一个逻辑值或二进制数的单元被误读为存储不同逻辑值或二进制数)而尝试调整一或多个读取参考电压。在一些情况下,这可称为读取重试或读取恢复程序。在读取恢复程序中,可动态地调整一或多个读取参考电压(例如,结合MLC所描述的VA、VB或VC)以跟踪阈值电压分布的变化。更特别地,一旦读取程序在存储器的特定页上失败,存储器装置120(且更尤其,其控制器130和/或读取恢复组件240)可尝试使用各种读取恢复步骤来恢复所述页,所述读取恢复步骤使用来自基本读取参考电压的电压偏移。换句话说,存储器装置120可用调整的读取参考电压重试单元的读取,使得减少或消除读取错误。
返回到图4中所展示的实例,如果下部页错误导致存储二进制00的单元被读取为二进制01,那么可减小(例如,在由附图标记415所展示的图中向左移位)读取参考电压(VB)以致力于消除下部页读取错误。相反地,如果下部页错误导致存储二进制01的单元被读取为二进制00,那么可增加(例如,在由附图标记415所展示的图中向右移位)读取参考电压(VB)。类似地,可左或右移位(例如,减小或增加)读取参考电压VA和VC以致力于减少或消除上部页读取错误。在一些情况下,如果数据位的错误的量变得过大,那么存储器装置120可能不能够校正错误。这可能导致数据丢失。
如上文所指出,图4提供为实例。其它实例可与关于图4所描述的实例不同。
图5A和5B为存储器装置的动态编程时间的实例500的图。结合图5A和5B所描述的操作可由存储器装置120和/或存储器装置120的一或多个组件(例如,控制器130和/或控制器130的一或多个组件)执行。
在一些实施方案中,存储器装置120和/或控制器130可用多个编程时间(例如,可用于编程时间的多个时间量)配置。举例来说,存储器装置120和/或控制器130可存储多个编程时间。本文中描述与第一编程时间(例如,与第一时间量相关联)和第二编程时间(例如,与第二时间量相关联)相关联的一些实例。然而,存储器装置120和/或控制器130可以如本文中所描述的类似方式存储和/或使用多于两个编程时间。
在一些实施方案中,存储器装置120和/或控制器130可用默认编程时间配置。默认编程时间可为待由存储器装置120和/或控制器130使用直到检测到触发事件(例如,与切换编程时间相关联)的编程时间,如本文中其它地方更详细地描述。举例来说,存储器装置120和/或控制器130可配置成使用默认编程时间(例如,第一编程时间),除非由存储器装置120和/或控制器130检测到触发事件。
在一些实施方案中,存储器装置120和/或控制器130可配置成检测到一或多个触发事件。举例来说,触发事件可包含使得存储器装置120和/或控制器130切换用于写入数据或对数据进行编程的编程时间(例如,切换或改变与用于写入数据或对数据进行编程的编程时间相关联的时间量)的事件。举例来说,触发事件可包含从主机装置110接收指示将切换编程时间、块擦除计数满足擦除计数阈值和/或编程擦除循环量满足编程擦除阈值以及其它实例的命令(例如,供应商命令或VS命令)。
如图5A中且由附图标记505所展示,主机装置110可传输写入命令,且存储器装置120和/或控制器130可接收写入命令。写入命令可指示待由存储器装置120和/或控制器130执行的一或多个写入操作。举例来说,写入命令可指示待写入到存储器140或在存储器140中进行编程的数据。
如由附图标记510所展示,存储器装置120和/或控制器130可确定用于写入由写入命令指示的数据的编程时间。举例来说,存储器装置120和/或控制器130可确定与编程时间相关联的时间量。在一些实施方案中,存储器装置120和/或控制器130可基于是否已检测到触发事件而确定编程时间。举例来说,如果存储器装置120和/或控制器130已检测到触发事件,那么存储器装置120和/或控制器130可确定编程时间为第一编程时间。如果存储器装置120和/或控制器130尚未检测到触发事件,那么存储器装置120和/或控制器130可确定编程时间为第二编程时间。
在一些实施方案中,存储器装置120和/或控制器130可存储当前编程时间的指示。举例来说,存储器装置120和/或控制器130可配置成使用默认(例如,第一)编程时间,直到检测到触发事件。在检测到触发事件之后,存储器装置120和/或控制器130可改变与编程时间相关联的时间量(例如,可将当前编程时间改变为第二编程时间)。
在一些实施方案中,存储器装置120和/或控制器130可基于与存储器装置120相关联的操作阶段而确定编程时间。举例来说,第一编程时间可与第一操作阶段(例如,制造阶段或初始化阶段)相关联,且第二编程时间可与第二操作阶段(例如,终端用户阶段)相关联。因此,存储器装置120和/或控制器130可确定存储器装置120的当前操作阶段。存储器装置120和/或控制器130可基于当前操作阶段而确定编程时间。
在一些实施方案中,存储器装置120和/或控制器130可基于与由写入命令指示的数据相关联的数据类型而确定编程时间。举例来说,第一编程时间可与第一数据类型(例如,OEM数据、ODM数据、初始化数据或操作系统(OS)数据)相关联,且第二编程时间可与第二数据类型(例如,用户数据)相关联。存储器装置120和/或控制器130可确定与由写入命令指示的数据相关联的数据类型。存储器装置120可基于数据类型而确定或选择编程时间。
在一些实施方案中,存储器装置120和/或控制器130可基于与存储器块相关联的块擦除计数(例如,待与由写入命令指示的数据相关联)而确定编程时间。举例来说,存储器装置120和/或控制器130可确定块擦除计数。块擦除计数可为与存储器装置120相关联的总块擦除计数(例如,指示已擦除的块的量),和/或可为与待写入或进行编程的存储器块相关联的块擦除计数。存储器装置120和/或控制器130可确定块擦除计数是否满足阈值(例如,擦除计数阈值)。存储器装置120和/或控制器130可基于块擦除计数是否满足阈值而确定编程时间。举例来说,如果块擦除计数不满足阈值,那么存储器装置120和/或控制器130可确定编程时间为第一编程时间。如果块擦除计数满足阈值,那么存储器装置120和/或控制器130可确定编程时间为第二编程时间。
另外或替代地,存储器装置120和/或控制器130可基于编程擦除循环的量而确定编程时间。举例来说,存储器装置120和/或控制器130可确定由存储器装置120(例如,对于整个存储器装置120和/或对于待写入的存储器块)执行的编程擦除循环的量。存储器装置120和/或控制器130可确定编程擦除循环的量是否满足阈值(例如,编程擦除阈值)。存储器装置120和/或控制器130可基于编程擦除循环的量是否满足阈值而确定编程时间。举例来说,如果编程擦除循环的量不满足阈值,那么存储器装置120和/或控制器130可确定编程时间为第一编程时间。如果编程擦除循环的量满足阈值,那么存储器装置120和/或控制器130可确定编程时间为第二编程时间。
举例来说,需要由存储器装置120在较长时间周期内(例如,关于未供电存储)维持的数据可由存储器装置120在存储器装置寿命的早期写入和/或进行编程。举例来说,在存储器装置120和/或主机装置110被运送到商家和/或终端用户之前,数据可在工厂中写入或进行编程(例如,其中在工厂设置之后的运送和存储与较长周期的未供电存储和/或高温应力相关联)。在此类情境中,块擦除计数和/或编程擦除循环的数量可能较低。因此,存储器装置120和/或控制器130可基于块擦除计数和/或编程擦除循环的量而确定编程时间,以使得存储器装置120和/或控制器130能够将第一编程时间(例如,较长编程时间)用于在工厂设置中对数据进行编程且将第二编程时间(例如,较短编程时间)用于终端用户操作。这可使得存储器装置120和/或控制器130能够动态地切换编程时间而不依赖于主机装置命令或来自存储器装置120外部的其它输入。
如由附图标记515所展示,存储器装置120和/或控制器130可使用第一编程时间写入数据或对数据进行编程(例如,到存储器140)。举例来说,存储器装置120和/或控制器130可使用第一编程时间执行一或多个写入操作。举例来说,存储器装置120和/或控制器130可使用第一编程时间(例如,较长编程时间)写入数据或对数据进行编程(例如,到存储器140)以提高数据的完整性和/或缓解数据保持退化的效应,如本文中其它地方更详细地描述。举例来说,使用第一编程时间(例如,较长编程时间)写入或进行编程的数据可与写入OEM数据、ODM数据、初始化数据和/或OS数据以及其它实例相关联。举例来说,使用第一编程时间(例如,较长编程时间)写入或进行编程的数据可与在制造商和/或工厂设置中写入或进行编程的数据相关联。换句话说,使用第一编程时间(例如,较长编程时间)写入或进行编程的数据可与存储器装置120的第一操作阶段(例如,制造阶段、初始化阶段或工厂阶段)相关联。存储器装置120和/或控制器130可继续使用第一编程时间写入数据和/或对数据进行编程,直到检测到触发事件。
举例来说,如由附图标记520所展示,存储器装置120和/或控制器130可检测到与改变由存储器装置120和/或控制器130使用的编程时间相关联的触发事件。在一些实施方案中,存储器装置120和/或控制器130可基于从主机装置110接收到的命令而检测到触发事件。举例来说,主机装置110可传输指示编程时间将从第一编程时间切换到第二编程时间的命令,且存储器装置120和/或控制器130可接收所述命令。命令可为供应商命令或供应商特定命令。举例来说,可界定(例如,在由存储器装置120和/或控制器130存储的命令表中)与使得存储器装置120和/或控制器130将编程时间从第一编程时间切换到第二编程时间相关联的命令。主机装置110可传输使得存储器装置110和/或控制器130将编程时间切换到第二(例如,较短)编程时间的命令。
另外或替代地,存储器装置120和/或控制器130可基于与存储器装置120相关联的块擦除计数和/或编程擦除循环的量而检测到触发事件。举例来说,存储器装置120和/或控制器130可检测到块擦除计数满足阈值(例如,擦除计数阈值)。存储器装置120和/或控制器130可基于检测到块擦除计数满足擦除计数阈值而将编程时间切换到第二编程时间。在一些实施方案中,擦除计数阈值的值可基于待使用第一编程时间写入的数据的数据写入大小。举例来说,存储器装置120和/或控制器130可配置成使用第一编程时间制造商数据写入或对制造商数据进行编程,例如OEM或ODM数据(例如,OS)。擦除计数阈值的值可基于待进行编程的制造商数据的大小而定义,使得在对制造商数据进行编程之后,可触发存储器装置120和/或控制器130以将编程时间切换到用于未来写入操作(例如,用于用户数据)的第二(例如,较短)编程时间。换句话说,可根据来自存储器装置120和/或主机装置110的ODM的数据写入大小来设计擦除计数阈值的值。
如图5B中且由附图标记525所展示,存储器装置120和/或控制器130可基于检测到触发事件而将编程时间从第一编程时间切换到第二编程时间(例如,其中第二编程时间与第二时间量相关联)。在一些实施方案中,第一时间量(例如,与第一编程时间相关联)可大于第二时间量(例如,与第二编程时间相关联)。举例来说,在检测到触发事件之后,存储器装置120和/或控制器130可使用较短编程时间来改进存储器装置120的性能(例如,以减少与写入操作相关联的时间量)。举例来说,存储器装置120和/或控制器130可基于检测到触发事件而改变与编程时间相关联的时间量(例如,从第一时间量到第二时间量)。
如由附图标记530所展示,主机装置110可传输写入命令,且存储器装置120和/或控制器130可接收写入命令。写入命令可指示待由存储器装置120和/或控制器130执行的一或多个写入操作。举例来说,写入命令可指示待写入到存储器140或在存储器140中进行编程的数据。
如由附图标记535所展示,存储器装置120和/或控制器130可确定用于写入由写入命令指示的数据的编程时间。举例来说,存储器装置120和/或控制器130可确定与编程时间相关联的时间量。在一些实施方案中,存储器装置120和/或控制器130可基于是否已检测到触发事件而确定编程时间。举例来说,如果存储器装置120和/或控制器130检测到触发事件,那么存储器装置120和/或控制器130可使用第二编程时间。在一些实施方案中,存储器装置120和/或控制器130可存储当前编程时间的指示。在检测到触发事件之后,存储器装置120和/或控制器130可改变与编程时间相关联的时间量(例如,可将当前编程时间改变为第二编程时间),如上文所描述。
在一些实施方案中,存储器装置120和/或控制器130可基于与存储器装置120相关联的操作阶段而确定编程时间。举例来说,第一编程时间可与第一操作阶段(例如,制造阶段或初始化阶段)相关联,且第二编程时间可与第二操作阶段(例如,终端用户阶段)相关联。因此,存储器装置120和/或控制器130可确定存储器装置120的当前操作阶段。存储器装置120和/或控制器130可基于当前操作阶段而确定编程时间。举例来说,存储器装置120和/或控制器130可确定当前操作阶段为终端用户阶段。终端用户阶段可与终端用户对存储器装置120和/或控制器130的使用相关联。存储器装置120和/或控制器130可基于确定当前操作阶段为终端用户阶段而确定编程时间为第二编程时间。在一些实施方案中,存储器装置120和/或控制器130可基于与由写入命令指示的数据相关联的数据类型而确定编程时间(例如,如果数据为用户数据,那么存储器装置120和/或控制器130可使用第二编程时间)。
在一些实施方案中,存储器装置120和/或控制器130可基于块擦除计数而确定编程时间。举例来说,存储器装置120和/或控制器130可确定块擦除计数。存储器装置120和/或控制器130可确定块擦除计数是否满足阈值(例如,擦除计数阈值)。存储器装置120和/或控制器130可基于块擦除计数是否满足阈值而确定编程时间。如果块擦除计数满足阈值,那么存储器装置120和/或控制器130可确定编程时间为第二编程时间。另外或替代地,存储器装置120和/或控制器130可基于编程擦除循环的量而确定编程时间,如本文中其它地方更详细地描述。
如由附图标记540所展示,存储器装置120和/或控制器130可使用第二编程时间写入数据或对数据进行编程(例如,到存储器140)。举例来说,存储器装置120和/或控制器130可使用第二编程时间执行一或多个写入操作。举例来说,存储器装置120和/或控制器130可使用第二编程时间(例如,较短编程时间)写入数据或对数据进行编程(例如,到存储器140)以改进终端用户的存储器装置120的性能,如本文中其它地方更详细地描述。举例来说,使用第二编程时间(例如,较短编程时间)写入或进行编程的数据可与写入用户数据以及其它实例相关联。举例来说,使用第二编程时间(例如,较短编程时间)写入或进行编程的数据可与终端用户相关联。换句话说,使用第二编程时间(例如,较短编程时间)写入或进行编程的数据可与存储器装置120的第二操作阶段(例如,终端用户阶段)相关联。存储器装置120和/或控制器130可继续使用第二编程时间写入数据和/或对数据进行编程,直到检测到另一触发事件,和/或可在检测到触发事件之后始终使用第二编程时间。
因此,通过动态地改变由存储器装置120和/或控制器130使用的编程时间,存储器装置120被使能以通过在一些情况下使用较长编程时间写入数据来提高数据完整性和/或缓解数据保持退化的效应,同时还通过在其他情况下使用较短编程时间写入数据来改进存储器装置120的性能。举例来说,存储器装置120被使能以基于操作阶段和/或由存储器装置120存储的数据类型而在提高数据完整性与存储器装置120的性能之间进行平衡。这使得存储器装置120能够提高数据完整性和/或缓解数据保持退化的效应(例如,与未供电存储和/或传输的周期相关联),而不降低存储器装置120的性能(例如,对于终端用户)。
如上文所指出,图5A和5B提供为实例。其它实例可与关于图5A和5B所描述的实例不同。
图6为与存储器装置的动态编程时间相关联的时间线的实例600的图。结合图6所描述的操作可由存储器装置120和/或存储器装置120的一或多个组件(例如,控制器130和/或控制器130的一或多个组件)执行。
如图6中所展示,在第一操作阶段(例如,制造阶段605)期间,存储器装置120和/或控制器130可使用第一编程时间来写入数据或对数据进行编程。举例来说,在制造阶段605期间,ODM、OEM和/或OS数据可由存储器装置120和/或控制器130写入或进行编程(例如,使用第一编程时间)。举例来说,在制造阶段605期间写入或进行编程的数据可为将由存储器装置120在断电存储周期期间(例如,如由附图标记610所展示)维持的数据。举例来说,在存储器装置120和/或主机装置110离开供应商设施(例如,工厂)之后,存储器装置120和/或主机装置110可在未供电状态下运送和/或存储。另外,在运送和/或存储期间,存储器装置120可经历极端温度条件。这些条件(例如,延长的未供电存储和/或极端温度条件)可导致数据保持退化的效应被放大。因此,为了缓解数据保持退化的效应且为了提高在制造阶段605期间写入的数据的完整性,第一编程时间可为较长编程时间。举例来说,如本文中其它地方所描述,较长编程时间可使得存储器装置120和/或控制器130能够以提高的准确性对存储器单元的电压电平充电,由此减小与由存储器单元存储的位相关联的读取错误的可能性。
如图6中所展示,在存储器装置120断电的时间期间,一些数据位可经历错误。然而,由于由存储器装置120在制造阶段605期间使用的较长编程时间,可减小位经历错误的速率(例如,与将使用较短编程时间对数据进行编程的情况相比)。存储器装置120和/或主机装置110可递送到终端用户,且存储器装置120可转变到终端用户阶段615。举例来说,存储器装置120和/或主机装置110可在未供电状态下被运送和/或存储之后通电。在通电之后,存储器装置120和/或控制器130可能被使能以对在制造阶段605期间写入或进行编程的数据执行读取恢复操作。如图6中所展示,由于可减小位经历错误的速率,因此与位相关联的错误的量可不达到UECC阈值(例如,UECC阈值可指示数据可不再由存储器装置120恢复的错误位的量)。换句话说,通过减小位经历错误的速率(例如,通过使用较长编程时间),提高存储器装置120能够恢复在存储器装置断电的时间期间经历错误的数据位的可能性。
如图6中所展示,在终端用户阶段615期间,存储器装置120和/或控制器130可使用第二编程时间来写入数据或对数据进行编程。举例来说,存储器装置120和/或控制器130可切换到较短编程时间。较短编程时间改进存储器装置120的性能,因为与写入操作相关联的时间量减少。如图6中所展示,使用较短编程时间可导致增加位经历错误速率(例如,与使用第一(较长)编程时间进行编程的数据的速率相比)。然而,由于存储器装置120通常或频繁地在终端用户阶段615期间通电(例如,与由附图标记610所展示的时间相反),因此存储器装置120和/或控制器130可能被使能以执行读取恢复操作和/或刷新操作以确保数据不会丢失。举例来说,当与数据相关联的错误的量满足刷新阈值时,存储器装置120和/或控制器130可读取数据,校正数据中的错误,且重写数据以确保数据不会丢失。作为另一实例,存储器装置120和/或控制器130可周期性地、随机地和/或根据命令(例如,基于从主机装置110接收命令)执行读取操作以用于检查存储在存储器140中的信息是否具有错误(例如,其可称为“巡逻”读取)。因此,由于存储器装置120在终端用户阶段615期间频繁地通电,因此存储器装置120可能被使能以校正可能由使用较短编程时间而导致的错误。
结果,存储器装置120被使能以使得在第一阶段(例如,制造阶段605)期间写入的数据在较长时间周期内具有提高的完整性(例如,通过使用较长编程时间)且通过使用较短编程时间在第二阶段(例如,终端用户阶段)期间改进存储器装置120的性能。存储器装置120可基于检测到触发事件而在第一编程时间与第二编程时间之间切换,如本文中其它地方更详细地描述。
如上文所指出,图6提供为实例。其它实例可与关于图6所描述的实例不同。
图7为存储器装置的动态编程时间的实例700的图。结合图7所描述的操作可由存储器装置120和/或存储器装置120的一或多个组件(例如,控制器130和/或控制器130的一或多个组件)执行。
存储器装置120和/或控制器130可使用第一编程时间写入数据(例如,与写入操作相关联)(框710)。举例来说,存储器装置120和/或控制器130可配置成使用第一编程时间来写入数据或对数据进行编程。举例来说,存储器装置120和/或控制器130可从主机装置110接收一或多个写入命令。
存储器装置120和/或控制器130可确定是否已检测到触发事件(框720)。如本文中其它地方更详细地描述,触发事件可包含从主机装置110接收命令(例如,供应商特定命令)、块擦除计数满足擦除计数阈值和/或编程擦除循环的量满足编程擦除阈值,以及其它实例。如果存储器装置120和/或控制器130确定尚未检测到触发事件(框720-否),那么存储器装置120和/或控制器130可继续使用第一编程时间写入数据或对数据进行编程。
如果存储器装置120和/或控制器130确定已检测到触发事件(框720-是),那么存储器装置120和/或控制器130可将编程切换到第二编程时间(框730)。举例来说,存储器装置120和/或控制器130可基于检测到触发事件而将用于将数据编程到存储器单元的时间量从第一编程时间编程改变到第二编程时间。在一些实施方案中,第一编程时间可与比与第二编程时间相关联的时间量更大的时间量相关联。换句话说,基于检测到触发事件,存储器装置120和/或控制器130可减少由存储器装置120和/或控制器130使用的编程时间。举例来说,如果存储器装置120和/或控制器130尚未检测到触发事件,那么存储器装置120和/或控制器130可选择第一编程时间用于写入数据。如果存储器装置120和/或控制器130已检测到触发事件,那么存储器装置120和/或控制器130可选择第二编程时间用于写入数据。
存储器装置120和/或控制器130可使用第二编程时间写入数据(框740)。举例来说,存储器装置120和/或控制器130可配置成在检测到触发事件之后将第二编程时间用于写入操作。
如上文所指出,图7提供为实例。其它实例可与关于图7所描述的实例不同。
图8为存储器装置的动态编程时间的实例800的图。结合图8所描述的操作可由存储器装置120和/或存储器装置120的一或多个组件(例如,控制器130和/或控制器130的一或多个组件)执行。
存储器装置120和/或控制器130可开始写入操作(框810)。举例来说,存储器装置120和/或控制器130可从主机装置110接收写入命令。存储器装置120和/或控制器130可确定块擦除计数是否满足阈值(框820)。块擦除计数可为已由存储器装置120擦除的块的量。在一些实施方案中,阈值的值可基于待使用第一编程时间写入或进行编程的数据的大小。举例来说,阈值的值可基于待与将使用第一编程时间写入或进行编程的数据相关联的编程擦除循环的预期量。
如果存储器装置120和/或控制器130确定块擦除计数不满足阈值(框820-否),那么存储器装置120和/或控制器130可选择第一编程时间用于写入由写入命令指示的数据或对所述数据进行编程(框830)。如果存储器装置120和/或控制器130确定块擦除计数满足阈值(框820-是),那么存储器装置120和/或控制器130可选择第二编程时间用于写入由写入命令指示的数据或对所述数据进行编程(框840)。
存储器装置120和/或控制器130可使用选定编程时间写入数据或对数据进行编程(框850)。举例来说,如果块擦除计数不满足阈值,那么存储器装置120和/或控制器130可使用第一编程时间写入数据或对数据进行编程。如果块擦除计数满足阈值,那么存储器装置120和/或控制器130可使用第二编程时间写入数据或对数据进行编程。
如上文所指出,图8提供为实例。其它实例可与关于图8所描述的实例不同。
图9为与存储器装置的动态编程时间相关联的实例方法900的流程图。在一些实施方案中,存储器装置(例如,存储器装置120)可执行或可配置成执行方法900。在一些实施方案中,与存储器装置(例如,系统100)分离或包含存储器装置(例如,系统100)的另一装置或装置群组可执行或可配置成执行方法900。另外或替代地,存储器装置的一或多个组件(例如,控制器130、存储器管理组件225、编程时间管理组件230、事件检测组件235和/或读取恢复组件240)可执行或可配置成执行方法900。因此,用于执行方法900的构件可包含存储器装置和/或存储器装置的一或多个组件。另外或替代地,非暂时性计算机可读媒体可存储一或多个指令,所述一或多个指令在由存储器装置(例如,存储器装置120的控制器130)执行时使得存储器装置执行方法900。
如图9中所展示,方法900可包含使用第一编程时间执行第一一或多个写入操作,其中第一编程时间与第一时间量相关联(框910)。如图9中进一步所展示,方法900可包含检测到与改变由存储器装置使用的编程时间相关联的触发事件(框920)。如图9中进一步所展示,方法900可包含基于检测到触发事件而将编程时间从第一编程时间切换到第二编程时间,其中第二编程时间与第二时间量相关联(框930)。如图9中进一步所展示,方法900可包含使用第二编程时间执行第二一或多个写入操作(框940)。
方法900可包含额外方面,例如下文描述和/或结合本文中其它地方描述的一或多个其它方法或操作描述的任何单个方面或方面的任何组合。
在第一方面中,由存储器装置使用的编程时间指示与存储器装置执行写入操作相关联的时间量。
在第二方面中,单独地或与第一方面组合,第一一或多个写入操作与存储器装置的第一操作阶段相关联,且第二一或多个写入操作与存储器装置的第二操作阶段相关联。
在第三方面中,单独地或与第一方面和第二方面中的一或多者组合,第一一或多个写入操作与写入原始装备制造商数据或原始设计制造商数据相关联,且第二一或多个写入操作与写入用户数据相关联。
在第四方面中,单独地或与第一方面到第三方面中的一或多者组合,第一时间量大于第二时间量。
在第五方面中,单独地或与第一方面到第四方面中的一或多者组合,方法900包含从主机装置接收指示编程时间将从第一编程时间切换到第二编程时间的命令。
在第六方面中,单独地或与第一方面到第五方面中的一或多者组合,命令为供应商特定命令。
在第七方面中,单独地或与第一方面到第六方面中的一或多者组合,方法900包含检测到与待写入的存储器块相关联的块擦除计数满足阈值。
在第八方面中,单独地或与第一方面到第七方面中的一或多者组合,阈值的值是基于与第一一或多个写入操作相关联的数据的数据写入大小。
尽管图9展示方法900的实例框,但在一些实施方案中,方法900可包含与图9中所描绘的那些框相比额外的框、更少的框、不同的框、或不同地布置的框。另外或替代地,可并行地执行方法900的两个或更多个框。方法900为可由本文中所描述的一或多个装置执行的一种方法的实例。这些一或多个装置可基于本文中所描述的操作而执行或可配置成执行一或多种其它方法。
图10为与存储器装置的动态编程时间相关联的实例方法1000的流程图。在一些实施方案中,存储器装置(例如,存储器装置120)可执行或可配置成执行方法1000。在一些实施方案中,与存储器装置(例如,系统100)分离或包含存储器装置(例如,系统100)的另一装置或装置群组可执行或可配置成执行方法1000。另外或替代地,存储器装置的一或多个组件(例如,控制器130、存储器管理组件225、编程时间管理组件230、事件检测组件235和/或读取恢复组件240)可执行或可配置成执行方法1000。因此,用于执行方法1000的构件可包含存储器装置和/或存储器装置的一或多个组件。另外或替代地,非暂时性计算机可读媒体可存储一或多个指令,所述一或多个指令在由存储器装置(例如,存储器装置120的控制器130)执行时使得存储器装置执行方法1000。
如图10中所展示,方法1000可包含接收指示待进行编程的数据的写入命令(框1010)。如图10中进一步所展示,方法1000可包含从第一编程时间和第二编程时间确定待用于对数据进行编程的编程时间,其中编程时间指示待与对数据进行编程相关联的时间量,且其中第一编程时间与第一时间量相关联,且第二编程时间与第二时间量相关联(框1020)。如图10中进一步所展示,方法1000可包含使用编程时间将数据编程到存储器装置的存储器(框1030)。
方法1000可包含额外方面,例如下文描述和/或结合本文中其它地方描述的一或多个其它方法或操作描述的任何单个方面或方面的任何组合。
在第一方面中,确定编程时间是基于与数据相关联的数据类型,其中数据类型包含制造商数据或用户数据中的至少一者。
在第二方面中,单独地或与第一方面组合,第一编程时间为默认编程时间,且方法1000包含从主机装置接收指示编程时间将从第一编程时间切换到第二编程时间的命令。
在第三方面中,单独地或与第一方面和第二方面中的一或多者组合,确定编程时间包括基于接收命令而确定编程时间为第二编程时间。
在第四方面中,单独地或与第一方面到第三方面中的一或多者组合,确定编程时间包括:确定块擦除计数;确定块擦除计数是否满足阈值;及基于块擦除计数是否满足阈值而确定编程时间。
在第五方面中,单独地或与第一方面到第四方面中的一或多者组合,确定编程时间包括:如果块擦除计数不满足阈值,那么确定编程时间为第一编程时间;或如果块擦除计数满足阈值,那么确定编程时间为第二编程时间。
在第六方面中,单独地或与第一方面到第五方面中的一或多者组合,确定编程时间包括:确定与存储器装置相关联的操作阶段,其中操作阶段包含制造阶段或终端用户阶段;及基于与存储器装置相关联的操作阶段而确定编程时间。
尽管图10展示方法1000的实例框,但在一些实施方案中,方法1000可包含与图10中所描绘的那些框相比额外的框、更少的框、不同的框、或不同地布置的框。另外或替代地,可并行地执行方法1000的两个或更多个框。方法1000为可由本文中所描述的一或多个装置执行的一种方法的实例。这些一或多个装置可基于本文中所描述的操作而执行或可配置成执行一或多种其它方法。
图11为与存储器装置的动态编程时间相关联的实例方法1100的流程图。在一些实施方案中,存储器装置(例如,存储器装置120)可执行或可配置成执行方法1100。在一些实施方案中,与存储器装置(例如,系统100)分离或包含存储器装置(例如,系统100)的另一装置或装置群组可执行或可配置成执行方法1100。另外或替代地,存储器装置的一或多个组件(例如,控制器130、存储器管理组件225、编程时间管理组件230、事件检测组件235和/或读取恢复组件240)可执行或可配置成执行方法1100。因此,用于执行方法1100的构件可包含存储器装置和/或存储器装置的一或多个组件。另外或替代地,非暂时性计算机可读媒体可存储一或多个指令,所述一或多个指令在由存储器装置(例如,存储器装置120的控制器130)执行时使得存储器装置执行方法1100。
如图11中所展示,方法1100可包含使用编程时间的第一时间量执行第一一或多个写入操作,其中编程时间指示与执行来自第一一或多个写入操作的写入操作相关联的时间量(框1110)。如图11中进一步所展示,方法1100可包含检测到与改变与编程时间相关联的时间量相关联的触发事件(框1120)。如图11中进一步所展示,方法1100可包含基于检测到触发事件而使用编程时间的第二时间量执行第二一或多个写入操作(框1130)。
方法1100可包含额外方面,例如下文描述和/或结合本文中其它地方描述的一或多个其它方法或操作描述的任何单个方面或方面的任何组合。
在第一方面中,第一一或多个写入操作与初始化数据相关联,第二一或多个写入操作与用户数据相关联,且第一时间量大于第二时间量。
在第二方面中,单独地或与第一方面组合,检测到触发事件包含从主机装置接收指示编程时间将从第一时间量切换到第二时间量的命令。
在第三方面中,单独地或与第一方面和第二方面中的一或多者组合,检测到触发事件包含检测到块擦除计数满足阈值。
尽管图11展示方法1100的实例框,但在一些实施方案中,方法1100可包含与图11中所描绘的那些框相比额外的框、更少的框、不同的框、或不同地布置的框。另外或替代地,可并行地执行方法1100的两个或更多个框。方法1100为可由本文中所描述的一或多个装置执行的一种方法的实例。这些一或多个装置可基于本文中所描述的操作而执行或可配置成执行一或多种其它方法。
在一些实施方案中,一种存储器装置包含一或多个组件,所述一或多个组件配置成:使用第一编程时间执行第一一或多个写入操作,其中第一编程时间与第一时间量相关联;检测到与改变由存储器装置使用的编程时间相关联的触发事件;基于检测到触发事件,将编程时间从第一编程时间切换到第二编程时间,其中第二编程时间与第二时间量相关联;及使用第二编程时间执行第二一或多个写入操作。
在一些实施方案中,一种方法包含:由存储器装置接收指示待进行编程的数据的写入命令;由存储器装置从第一编程时间和第二编程时间确定待用于对数据进行编程的编程时间,其中编程时间指示待与对数据进行编程相关联的时间量,且其中第一编程时间与第一时间量相关联,且第二编程时间与第二时间量相关联;及由存储器装置使用编程时间将数据编程到存储器装置的存储器。
在一些实施方案中,一种设备包含:用于使用编程时间的第一时间量执行第一一或多个写入操作的构件,其中编程时间指示与执行来自第一一或多个写入操作的写入操作相关联的时间量;用于检测到与改变与编程时间相关联的时间量相关联的触发事件的构件;及用于基于检测到触发事件而使用编程时间的第二时间量执行第二一或多个写入操作的构件。
前述公开内容提供说明及描述,但并不旨在为穷尽性的或将实施方案限于所公开的精确形式。可根据以上公开内容进行修改和变化,或可从本文中所描述的实施方案的实践中获得修改和变化。
如本文中所使用,“满足阈值”可根据上下文指代某一值大于阈值、大于或等于阈值、小于阈值、小于或等于阈值、等于阈值、不等于阈值等。
尽管在权利要求书中陈述和/或在本说明书中公开特征的特定组合,但这些组合并不旨在限制本文中所描述的实施方案的公开内容。这些特征中的许多特征可以权利要求书中未具体陈述和/或本说明书中未公开的方式组合。举例来说,本公开包含权利要求集中的每一从属权利要求以及所述权利要求集中的每个其它单独权利要求和所述权利要求集中的多个权利要求的每个组合。如本文中所使用,涉及项目列表“中的至少一者”的短语指代那些项目的任何组合,包含单个成员。作为实例,“以下各者中的至少一者:a、b或c”旨在涵盖a、b、c、a+b、a+c、b+c和a+b+c,以及与多个相同元素的任何组合(例如,a+a、a+a+a、a+a+b、a+a+c、a+b+b、a+c+c、b+b、b+b+b、b+b+c、c+c和c+c+c,或a、b和c的任何其它顺序)。
除非明确地如此描述,否则本文中所使用的元件、动作或指令不应理解为是关键的或必需的。此外,如本文中所使用,冠词“一(a)”和“一(an)”旨在包含一或多个项目,且可与“一或多个”互换使用。此外,如本文中所使用,冠词“所述(the)”旨在包含结合冠词“所述”提及的一或多个项目,且可与“一或多个”互换使用。在仅既定一个项目的情况下,使用短语“仅一个”、“单个”或类似语言。此外,如本文中所使用,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在为开放式术语,其并不限制其修饰的元件(例如,“具有”A的元件也可具有B)。此外,除非另外明确地陈述,否则短语“基于”旨在意味着“至少部分地基于”。如本文中所使用,术语“多个(multiple)”可用“多个(a plurality of)”替换,且反之亦然。此外,如本文中所使用,除非另外明确地陈述,否则术语“或”旨在当串联使用时具有包容性,且可与“和/或”互换使用(例如,如果结合“任一个”或“中的仅一者”使用)。
Claims (20)
1.一种存储器装置,其包括:
一或多个组件,其配置成:
使用第一编程时间执行第一一或多个写入操作,
其中所述第一编程时间与第一时间量相关联;
检测到与改变由所述存储器装置使用的编程时间相关联的触发事件;
基于检测到所述触发事件,将所述编程时间从所述第一编程时间切换到第二编程时间,
其中所述第二编程时间与第二时间量相关联;及
使用所述第二编程时间执行第二一或多个写入操作。
2.根据权利要求1所述的存储器装置,其中由所述存储器装置使用的所述编程时间指示与所述存储器装置执行写入操作相关联的时间量。
3.根据权利要求1所述的存储器装置,其中所述第一一或多个写入操作与所述存储器装置的第一操作阶段相关联,且所述第二一或多个写入操作与所述存储器装置的第二操作阶段相关联。
4.根据权利要求1所述的存储器装置,其中所述第一一或多个写入操作与写入原始装备制造商数据或原始设计制造商数据相关联,且
其中所述第二一或多个写入操作与写入用户数据相关联。
5.根据权利要求4所述的存储器装置,其中所述第一时间量大于所述第二时间量。
6.根据权利要求1所述的存储器装置,其中为了检测到所述触发事件,所述一或多个组件配置成:
从主机装置接收指示所述编程时间将从所述第一编程时间切换到所述第二编程时间的命令。
7.根据权利要求6所述的存储器装置,其中所述命令为供应商特定命令。
8.根据权利要求1所述的存储器装置,其中为了检测到所述触发事件,所述一或多个组件配置成:
检测到与待写入的存储器块相关联的块擦除计数满足阈值。
9.根据权利要求8所述的存储器装置,其中所述阈值的值是基于与所述第一一或多个写入操作相关联的数据的数据写入大小。
10.一种方法,其包括:
由存储器装置接收指示待进行编程的数据的写入命令;
由所述存储器装置从第一编程时间和第二编程时间确定待用于对所述数据进行编程的编程时间,
其中所述编程时间指示待与对所述数据进行编程相关联的时间量,且
其中所述第一编程时间与第一时间量相关联,且所述第二编程时间与第二时间量相关联;及
由所述存储器装置使用所述编程时间将所述数据编程到所述存储器装置的存储器。
11.根据权利要求10所述的方法,其中确定所述编程时间是基于与所述数据相关联的数据类型,
其中所述数据类型包含以下各者中的至少一者:
制造商数据,或
用户数据。
12.根据权利要求10所述的方法,其中所述第一编程时间为默认编程时间,且所述方法进一步包括:
从主机装置接收指示所述编程时间将从所述第一编程时间切换到所述第二编程时间的命令。
13.根据权利要求12所述的方法,其中确定所述编程时间包括:
基于接收所述命令而确定所述编程时间为所述第二编程时间。
14.根据权利要求10所述的方法,其中确定所述编程时间包括:
确定块擦除计数;
确定所述块擦除计数是否满足阈值;及
基于所述块擦除计数是否满足所述阈值而确定所述编程时间。
15.根据权利要求14所述的方法,其中确定所述编程时间包括:
确定所述编程时间为:
如果所述块擦除计数不满足所述阈值,那么为所述第一编程时间,或
如果所述块擦除计数满足所述阈值,那么为所述第二编程时间。
16.根据权利要求10所述的方法,其中确定所述编程时间包括:
确定与所述存储器装置相关联的操作阶段,
其中所述操作阶段包含制造阶段或终端用户阶段;及
基于与所述存储器装置相关联的所述操作阶段而确定所述编程时间。
17.一种设备,其包括:
用于使用编程时间的第一时间量执行第一一或多个写入操作的构件,
其中所述编程时间指示与执行来自所述第一一或多个写入操作的写入操作相关联的时间量;
用于检测到与改变与所述编程时间相关联的所述时间量相关联的触发事件的构件;及
用于基于检测到所述触发事件而使用所述编程时间的第二时间量执行第二一或多个写入操作的构件。
18.根据权利要求17所述的设备,其中所述第一一或多个写入操作与初始化数据相关联,
其中所述第二一或多个写入操作与用户数据相关联,且
其中所述第一时间量大于所述第二时间量。
19.根据权利要求17所述的设备,其中所述用于检测到所述触发事件的构件包括:
用于从主机装置接收指示所述编程时间将从所述第一时间量切换到所述第二时间量的命令的构件。
20.根据权利要求17所述的设备,其中所述用于检测到所述触发事件的构件包括:
用于检测到块擦除计数满足阈值的构件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211708950.0A CN118280417A (zh) | 2022-12-29 | 2022-12-29 | 存储器装置的动态编程时间 |
US18/538,652 US20240221804A1 (en) | 2022-12-29 | 2023-12-13 | Dynamic programming time for a memory device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211708950.0A CN118280417A (zh) | 2022-12-29 | 2022-12-29 | 存储器装置的动态编程时间 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118280417A true CN118280417A (zh) | 2024-07-02 |
Family
ID=91642354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211708950.0A Pending CN118280417A (zh) | 2022-12-29 | 2022-12-29 | 存储器装置的动态编程时间 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240221804A1 (zh) |
CN (1) | CN118280417A (zh) |
-
2022
- 2022-12-29 CN CN202211708950.0A patent/CN118280417A/zh active Pending
-
2023
- 2023-12-13 US US18/538,652 patent/US20240221804A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240221804A1 (en) | 2024-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9715939B2 (en) | Low read data storage management | |
US10102059B2 (en) | Data storage device capable of preventing a data retention fail of a nonvolatile memory device and operating method thereof | |
US9627085B2 (en) | Refresh method for flash memory and related memory controller thereof | |
US20160118132A1 (en) | Low Impact Read Disturb Handling | |
US8122295B2 (en) | Memory systems and methods of detecting distribution of unstable memory cells | |
US11042438B2 (en) | Copy-back operations in a memory device | |
US9330787B2 (en) | Memory system and memory controller | |
CN111538617A (zh) | 用于存储器装置的系统和方法 | |
US20230069159A1 (en) | Memory sub-system using partial superblocks | |
US11894090B2 (en) | Selective power-on scrub of memory units | |
CN112053733A (zh) | 故障敏感存储器页面的选择性加速取样 | |
US10249371B2 (en) | Control circuit, semiconductor storage device, and method of controlling semiconductor storage device | |
US11216208B1 (en) | Memory system, memory controller, and operation method of memory system | |
CN117636980A (zh) | 部分块读取电压偏移 | |
CN113936721A (zh) | 存储器系统、存储器装置和操作存储器装置的方法 | |
CN115145754A (zh) | 存储器装置中的错误处置流管理 | |
CN105761754B (zh) | 存储单元编程方法、存储器控制电路单元与存储装置 | |
US20240221804A1 (en) | Dynamic programming time for a memory device | |
CN114097035A (zh) | 在存储器子系统通电阶段期间执行完全存储器刷新的决策 | |
US11953973B2 (en) | Prioritization of successful read recovery operations for a memory device | |
US11837307B2 (en) | Managing error-handling flows in memory devices | |
US20240248612A1 (en) | Program pulse modification | |
US20240046990A1 (en) | Memory device with fast write mode to mitigate power loss | |
US20240302973A1 (en) | Protected virtual partitions in non-volatile memory storage devices with host-configurable endurance | |
US20240264746A1 (en) | Thermal duplication of data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |