存储器子系统中的使用提前高速缓存寄存器释放的快速编程的制作方法

阅读: 评论:0



1.本公开的实施例大体上涉及存储器子系统,且更明确来说,涉及存储器子系统中的使用提前高速缓存寄存器释放的快速编程。


背景技术:



2.存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统将数据存储在存储器装置处及从所述存储器装置检索数据。


技术实现要素:



3.根据本公开的方面,提供一种存储器装置。所述存储器装置包括:存储器阵列,其包括经配置为多电平单元(mlc)存储器的一组存储器单元;及控制逻辑,其与所述存储器阵列可操作地耦合,所述控制逻辑用以执行包括以下的操作:启动快速编程操作来将所述一组存储器单元编程到一组编程电平中的目标编程电平;将与所述快速编程操作相关联的一组数据存储于高速缓存寄存器中;在所述快速编程操作的执行期间的第一时间,执行预测操作以确定对应于所述一组存储器单元的编程状态的预测结果;比较所述预测结果与阈值电平以确定是否满足一条件;以及响应于满足所述条件而致使从所述高速缓存寄存器释放与所述快速编程操作相关联的所述一组数据。
4.根据本公开的另一方面,提供一种方法。所述方法包括:启动第一快速编程操作来将存储器装置的存储器阵列的一组存储器单元编程到一组编程电平中的目标编程电平;将与所述第一快速编程操作相关联的第一组数据存储于高速缓存寄存器中;在所述第一快速编程操作的执行期间的一或多个检查点,由处理装置执行预测操作以确定对应于所述一组存储器单元的编程状态的预测结果;比较所述预测结果与阈值电平以确定是否满足一条件;响应于满足所述条件而致使从所述高速缓存寄存器释放与所述第一快速编程操作相关联的所述第一组数据;以及将与将施加到所述存储器阵列的第二快速编程操作相关联的第二组数据加载到所述高速缓存寄存器中。
5.根据本公开的又一方面,提供一种存储器装置。所述存储器装置包括:存储器阵列,其包括一组存储器单元;及控制逻辑,其与所述存储器阵列可操作地耦合,所述控制逻辑用以执行包括以下的操作:启动第一快速编程操作来将所述一组存储器单元编程到一组编程电平中的目标编程电平;将与所述第一快速编程操作相关联的第一组数据存储于高速缓存寄存器中;在所述第一快速编程操作的执行期间的一或多个检查点,执行预测操作以确定对应于所述一组存储器单元的编程状态的预测结果;比较所述预测结果与阈值电平以确定是否满足一条件;响应于满足所述条件而致使从所述高速缓存寄存器释放与所述第一快速编程操作相关联的所述第一组数据;以及将与将施加到所述存储器阵列的第二快速编程操作相关联的第二组数据加载到所述高速缓存寄存器中。
附图说明
6.从下文给出的详细描述及从本公开的各种实施例的附图将更加完全地理解本公开。
7.图1a说明根据一些实施例的包含存储器子系统的实例计算系统。
8.图1b是根据本公开的一或多个实施例的与存储器子系统的存储器子系统控制器通信的存储器装置的框图。
9.图2a到2c是根据本公开的一或多个实施例的如可用于参考图1b描述的类型的存储器中的存储器单元阵列的部分的示意图。
10.图3是根据本公开的一或多个实施例的如可用于参考图1b描述的类型的存储器中的存储器单元阵列的部分的框示意图。
11.图4说明根据本公开的一或多个实施例的第一实例时间线与第二实例时间线的比较,所述第一实例时间线对应于表示与用于对存储器装置的一组存储器单元进行编程的典型编程操作的执行相关联的高速缓存寄存器的状态的就绪/忙碌信号,且所述第二实例时间线对应于表示与快速编程操作的执行相关联的高速缓存寄存器的状态的就绪/忙碌信号。
12.图5说明根据本公开的一或多个实施例的与提前高速缓存寄存器释放操作相关联的实例快速编程操作及多个时间线。
13.图6是根据本公开的一或多个实施例的使用提前高速缓存寄存器释放的实例快速编程操作的流程图。
14.图7是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
15.本公开的方面涉及使用提前高速缓存寄存器释放操作以减少的编程时间对存储器子系统中的存储器装置的存储器阵列的存储器单元进行快速编程。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1a描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含例如存储数据的存储器装置的一或多个组件的存储器子系统。主机系统可提供将存储在存储器子系统处的数据且可请求将从存储器子系统检索的数据。
16.存储器子系统可包含高密度非易失性存储器装置,其中希望在没有电力供应到存储器装置时保留数据。非易失性存储器装置的一个实例是“与非”(nand)存储器装置。下文结合图1a描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如nand装置),每一平面由一组物理块组成。每一块由一组页面组成。每一页面由一组存储器单元(“单元”)组成。单元是存储信息的电子电路。取决于单元类型,单元可存储一或多个二进制信息位,且具有与被存储的位的数目相关的各种逻辑状态。所述逻辑状态可由例如“0”及“1”的二进制值或此类值的组合的表示。
17.存储器单元在硅晶片上被蚀刻成列(下文也称为“位线”)及行(下文也称为“字线”)的阵列。字线可指代与一或多个位线一起使用以产生存储器单元中的每一者的地址的存储器装置的存储器单元的一或多个行。位线与字线的相交点构成存储器单元的地址。
18.块在下文指代用于存储数据的存储器装置的单位且可包含一组存储器单元、字线组、字线或个别存储器单元。每一块可包含数个子块,其中每一子块由从共享位线延伸的相关联支柱(例如垂直导电迹线)界定。存储器页面(在本文中也称为“页面”)存储对应于从主机系统接收的数据的一或多个二进制数据位。为了实现高密度,非易失性存储器装置中的存储器单元串可经构造以包含至少部分包围多晶硅通道材料(即通道区)的支柱的数个存储器单元。存储器单元可耦合到通常与存储器单元共同制造的存取线(即字线),以便在存储器块(例如,存储器阵列)中形成串阵列。例如3d快闪nand存储器的某些非易失性存储器装置的紧凑性质意味着字线是存储器块内的许多存储器单元所共有的。一些存储器装置使用在每一存储器单元中存储三个数据位的某些类型的存储器单元,例如三电平单元(tlc)存储器单元,这使得将更多应用程序从旧有硬盘驱动器移动到更新的存储器子系统(例如nand固态驱动器(ssd))变得可负担得起。
19.存储器存取操作(例如编程操作、擦除操作等)可通过将字线偏置电压施加到所选择的页面的存储器单元所连接到的字线来关于存储器单元执行。举例来说,在编程操作期间,一或多个所选择的存储器单元可通过将编程电压施加到所选择的字线来进行编程。在一种方法中,递增步进脉冲编程(ispp)过程或方案可用于维持紧密单元阈值电压分布以实现更高数据可靠性。在ispp中,具有增加的量值的电压电平的一系列高振幅脉冲(例如,按预定义脉冲步长高度增加的连续脉冲)被施加到一或多个存储器单元连接到其的字线,以逐步将存储器单元的电压电平提高到高于对应于存储器存取操作的字线电压电平(例如目标编程电平)。由存储器装置的字线驱动器施加均匀增加的脉冲使所选择的字线能够斜升或增加到对应于存储器存取操作的字线电压电平(v
wl
)。类似地,在擦除操作的执行期间,可将具有均匀增加的电压电平的一系列电压脉冲施加到字线以使字线斜升到对应字线电压电平。
20.将一系列递增电压编程脉冲施加到所选择的字线以增加连接到那个字线的某些存储器单元的电荷电平,且借此增加所述存储器单元的阈值电压。在每一编程脉冲之后或在数个编程脉冲之后,执行编程验证操作以确定一或多个存储器单元的阈值电压是否已增加到所期望编程电平。举例来说,编程脉冲的值可递增地增加(例如,按步长电压值,例如0.33v)以增加存储于对应于每一脉冲的电荷存储结构上的电荷。存储器装置可通过递增地存储或增加对应于编程步长电压的电荷量来达到特定编程电平的目标编程电平电压。
21.根据此方法,施加一系列编程脉冲及编程验证操作来按序对每一编程电平(例如,针对tlc存储器单元,编程电平l1到l7)进行编程。举例来说,此方法通过施加第一组脉冲以将电平l1单元编程到第一目标电压电平,接着施加第二组脉冲以将电平l2单元编程到第二目标电压电平,以此类推直到全部电平处的单元都经编程来循序地对存储器单元的电平(例如,l1到l7)进行编程。
22.在此方法中,每一电平可能需要多个编程脉冲及编程验证操作来达到与相应编程电平相关联的目标编程电压。因此,这导致与一或多个存储器单元相关联的编程时间(例如,从初始编程脉冲到达到编程验证阈值电压的时间,也称为“tprog”)很长。举例来说,一次一个地对tlc存储器单元的每一电平(例如编程电平l1到l7)进行编程需要大量总编程脉冲(例如,大约24个脉冲)及大量相关联编程验证操作(例如,大约42个编程验证操作)。在此实例中,如果与每一脉冲相关联的时间是37.5μs,那么用于一组脉冲(即24个脉冲)的总时
间可为大约900μs。另外,与执行编程验证操作相关联的时间可添加额外900μs,从而导致例如1800μs的总编程时间(tprog)。
23.在编程算法的执行期间,系统控制器通过监测状态寄存器的就绪/忙碌(rb)引脚以检测表示存储器装置的页面缓冲器中的高速缓存寄存器的就绪/忙碌状态的就绪/忙碌信号(也称为“rb信号”)来检测编程循环的完成。就绪/忙碌信号可具有表示鉴于进行中或当前存储器存取操作而指示高速缓存寄存器忙碌且无法接受新数据的忙碌状态的第一值(例如“0”)。当高速缓存寄存器具有忙碌状态时,与下一存储器存取操作(例如下一编程操作)相关联的新数据必须等待且无法被加载到高速缓存寄存器中。在编程算法完成后,高速缓存寄存器被释放使得存储于高速缓存寄存器中的数据被释放(即移除或删除)且就绪/忙碌信号被更新到表示指示高速缓存寄存器准备好接受新数据(例如,与下一存储器存取操作相关联的数据)的就绪状态的第二值(例如“1”)。
24.通常,高速缓存寄存器在包含最终编程脉冲(也称为“编程脉冲n”,其中n是编程操作中的编程脉冲的总数)的编程阶段(即,所有编程循环的施加)及其中内部电压被释放的电压释放阶段两者完成之后释放。因此,就绪/忙碌信号维持忙碌状态直到整个编程算法完成,借此防止与下一存储器存取操作相关联的新数据被加载到高速缓存寄存器中。
25.一些系统采用高速缓存编程操作来改进总线效率。高速缓存编程操作使用页面大小经设定的高速缓存寄存器来对块内的数据页面进行编程。高速缓存编程操作允许与编程操作相关联的数据(即,将编程到存储器装置的页面的数据)被插入到高速缓存寄存器中,同时数据寄存器被复制到存储器阵列中。高速缓存编程操作包含数据可在其处被输入到存储器页面的多个数据输入断点。使用高速缓存编程操作,最初,数据被复制到高速缓存寄存器中。在检查点,数据被传送到数据寄存器。接着,当rb输出返回到就绪(高)状态时,将页面数据从数据寄存器编程到存储器阵列。当rb输出返回到就绪状态时,可发出另一命令以将新数据写入到高速缓存寄存器。然而,在这样做时,新数据在已知或确立先前数据集的编程状态(例如验证状态)之前被提交到存储器阵列。因此,当发生关于后一存储器页面的编程的故障时,对应于先前页面的数据已被提交,且先前数据在高速缓存寄存器中已被盖写,从而导致数据恢复问题及性能降级。
26.根据典型的编程算法,在编程操作完成之前(例如50μs到100μs)的某个时间,存储器单元在目标编程分布内基本上已达到最终位置,且确立了编程操作的状态(例如,已知或确立存储器单元是否已通过编程或未通过编程,如由编程验证操作确定)。在此之后,施加包含最终编程脉冲(ppn)的一或多个另外编程脉冲,且执行电压释放阶段以释放所有内部电压来准备下一存储器存取操作。然而,即使编程的状态在编程循环完成之前基本上已知或经确立,高速缓存寄存器也不被释放直到包含最终编程脉冲(也称为“编程脉冲n”,其中n是编程循环中编程脉冲的总数)及电压释放阶段的所有编程循环都完成之后。因此,与当前编程操作结果相关联的更长编程时间及高速缓存寄存器在整个当前编程操作完成之后的释放防止与下一编程操作相关联的新数据被存储于高速缓存寄存器中。
27.本公开的方面涉及编程操作,包含响应于满足与和当前或进行中编程操作相关联的预测操作相关联的条件(也称为“预测条件”)高速缓存寄存器的提前或提早释放(也称为“快速编程操作”)。在实施例中,执行预测操作(例如预测性计数失败字节(cfbyte)操作)以产生指示当前编程操作的经预测状态(例如,与被编程的相应存储器单元相关联的通过或
未通过状态)的预测结果。在实施例中,如果与当前编程操作相关联的预测电平达到或超过阈值电平,那么满足预测条件。在实施例中,预测电平或预测结果表示在当前编程循环(例如编程脉冲及一或多个编程验证操作)中将通过或无法通过编程验证的存储器单元的经预测电平或量。在实施例中,在满足预测条件(即,通过当前编程操作编程的存储器单元的量的经预测状态高于阈值电平)后,执行提前高速缓存寄存器释放。在实施例中,提前高速缓存寄存器释放包含与当前编程操作相关联的一组数据从高速缓存寄存器的释放或移除及就绪/忙碌信号从忙碌信号值(即,忙碌状态)到就绪信号值(即,就绪状态)的更新,且相关联高速缓存寄存器经释放,使得与下一存储器存取命令相关联的新数据可被存储于高速缓存寄存器中。
28.有利地,本公开的快速编程操作包含使用预测条件以致使高速缓存寄存器在当前或进行中编程操作完成之前释放。高速缓存寄存器的提前释放(即,在一或多个最后编程脉冲及电压释放阶段完成之前)实现编程时间相较于典型的编程算法的减少。另外,在高速缓存寄存器提前释放之后,对应于下一编程操作的新数据可存储于高速缓存寄存器中,使得下一编程操作可在先前编程操作完成时启动及执行。下一编程操作可在高速缓存寄存器提前释放后与进行中编程操作并行地启动及执行。因此,改进总线效率,这是由于能够发出与下一编程操作相关联的新命令,且新数据可与先前编程操作的剩余编程及电压释放阶段的完成并行地存储于高速缓存寄存器中。
29.图1a说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如存储器装置140)、一或多个非易失性存储器装置(例如存储器装置130)或此类事物的组合。
30.存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字器(sd)及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)及各种类型的非易失性双列直插式存储器模块(nvdimm)。
31.计算系统100可为例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如飞机、无人机、汽车或其它运输工具)、物联网(iot)启用装置、嵌入式计算机(例如,包含于运载工具、工业设备或联网商用装置中的嵌入式计算机)或包含存储器及处理装置的此计算装置的计算装置。
32.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1a说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中使用,“耦合到”或“与

耦合”一般指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线还是无线的,包含例如电连接、光学连接、磁性连接等的连接。
33.主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如nvdimm控制器)及存储协议控制器(例如pcie控制器、sata控制器)。主机系统120使用存储器子系统110(例如)将数据写入到存储器子系统110及从存储器子系统110读取数据。
34.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例
包含(但不限于)串行高级技术附件(sata)接口、外围组件互连快速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)、双倍数据速率(ddr)存储器总线、小计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双倍数据率(ddr)的dimm插槽接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如pcie总线)与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口存取组件(例如存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1a将存储器子系统110说明为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。
35.存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如存储器装置140)可为(但不限于)随机存取存储器(ram),例如动态随机存取存储器(dram)及同步动态随机存取存储器(sdram)。
36.非易失性存储器装置(例如存储器装置130)的一些实例包含“与非”(nand)型快闪存储器及原位写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可基于体电阻变化结合可堆叠交叉栅格式数据存取阵列执行位存储。因此,与许多基于快闪的存储器形成对照,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器单元可在无需先前擦除非易失性存储器单元的情况下被编程。nand型快闪存储器包含例如二维nand(2dnand)及三维nand(3d nand)。
37.存储器装置130中的每一者可包含一或多个存储器单元阵列。例如单电平单元(slc)的一种类型的存储器单元每单元可存储一个位。例如多电平单元(mlc)、三电平单元(tlc)及四电平单元(qlc)及五电平单元(plc)的其它类型的存储器单元每单元可存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或此类的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分及mlc部分、tlc部分、qlc部分或plc部分。存储器装置130的存储器单元可经分组为页面,其可指代用于存储数据的存储器装置的逻辑单位。对于一些类型的存储器(例如nand),页面可经分组以形成块。在一个实施例中,术语“mlc存储器”可用于表示每单元存储多于一个位(例如,每单元存储2个位、3个位、4个位或5个位)的任何类型的存储器单元。
38.尽管描述了例如非易失性存储器单元的3d交叉点阵列及nand型快闪存储器(例如2d nand、3d nand)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻随机存取存储器(rram)、氧化物基rram(oxram)、“或非”(nor)快闪存储器及电可擦除可编程只读存储器(eeprom)。
39.存储器子系统控制器115(或为了简化起见,控制器115)可与存储器装置130通信以执行操作,操作例如在存储器装置130处读取数据、写入数据或擦除数据及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲器存储器或其组合。硬件可包含具有用于执行本文中描述的操作的专用(即,硬编码)逻辑的数
字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
40.存储器子系统控制器115可为经配置以执行存储于本地存储器119中的指令的处理装置,其包含一或多个处理器(例如,处理器117)。在说明的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流及例程的指令的嵌入式存储器,所述操作包含处置存储器子系统110与主机系统120之间的通信。
41.在一些实施例中,本地存储器119可包含存储存储器指针、经提取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(rom)。虽然已将图1a中的实例存储器子系统110说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可代替地依赖于外部控制(例如,由外部主机提供或由与存储器子系统分离的处理器或控制器提供)。
42.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所期望存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、废料收集操作、错误检测及错误校正代码(ecc)操作、加密操作、高速缓存操作及与存储器装置130相关联的逻辑块地址(例如逻辑块地址(lba)、命名空间)与物理地址(例如物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含用以经由物理主机接口与主机系统120通信的主机接口电路系统。所述主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130,且还将与存储器装置130相关联的响应转换成用于主机系统120的信息。
43.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如dram)及地址电路系统(例如行解码器及列解码器),其可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。
44.在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是受管理的存储器装置,其包含具有在裸片上的控制逻辑(例如本地媒体控制器135)及用于相同存储器装置封装内的媒体管理的控制器(例如存储器子系统控制器115)的原始存储器装置130。受管理的存储器装置的实例是受管理的nand(mnand)装置。
45.在一个实施例中,存储器子系统110包含存储器接口组件113。存储器接口组件113负责处理存储器子系统控制器115与存储器子系统110的存储器装置(例如存储器装置130)的交互。举例来说,存储器接口组件113可向存储器装置130发送对应于从主机系统120接收的请求的存储器存取命令,例如编程命令、读取命令或其它命令。另外,存储器接口组件113可从存储器装置130接收数据,例如响应于读取命令而检索的数据或编程命令被成功地执行的确认。举例来说,存储器子系统控制器115可包含经配置以执行存储于本地存储器119中的指令以执行本文中描述的操作的处理器117(处理装置)。
46.在一个实施例中,存储器装置130包含经配置以响应于从存储器接口113接收存储器存取命令而实施对应存储器存取操作的编程管理器134。在一些实施例中,本地媒体控制
器135包含编程管理器134的至少一部分且经配置以执行本文中描述的功能性。在一些实施例中,编程管理器134使用固件、硬件组件或上述的组合实施于存储器装置130上。在一个实施例中,编程管理器134从请求器(例如存储器接口113)接收将数据编程到存储器装置130的存储器阵列的请求。存储器阵列可包含形成于字线与位线的相交点处的存储器单元阵列。在一个实施例中,例如,存储器单元被分组成块,块进一步分成子块,其中跨数个子块共享给定字线。在一个实施例中,每一子块对应于存储器阵列中的单独平面。与子块内的字线相关联的一组存储器单元称为物理页面。在一个实施例中,可存在存储器阵列的多个部分,例如其中子块被配置为slc存储器的第一部分及其中子块被配置为多电平单元(mlc)存储器(即,包含每单元可存储两个或更多个信息位的存储器单元)的第二部分。举例来说,存储器阵列的第二部分可被配置为tlc存储器。tlc存储器中的存储器单元的电压电平形成表示存储于每一存储器单元中的三个位的8种不同组合的一组8个编程分布。取决于它们如何配置,子块中的一者中的每一物理页面可包含多个页面类型。举例来说,由单电平单元(slc)形成的物理页面具有称为下逻辑页面(lp)的单个页面类型。多电平单元(mlc)物理页面类型可包含lp及上逻辑页面(up),tlc物理页面类型是lp、up及额外逻辑页面(xp),且qlc物理页面类型是lp、up、xp及顶部逻辑页面(tp)。举例来说,由qlc存储器类型的存储器单元形成的物理页面可具有总共四个逻辑页面,其中每一逻辑页面可存储与存储于与那个物理页面相关联的其它逻辑页面中的数据相异的数据。
47.在一个实施例中,编程管理器134可接收将编程到存储器装置130(例如tlc存储器装置)的数据及将数据存储于高速缓存寄存器(例如,图1b中所说明的高速缓存寄存器118)中。因此,编程管理器134可执行快速编程操作以对存储器装置130、140的存储器单元阵列150的一组存储器单元进行编程,其中高速缓存寄存器响应于满足与预测操作相关联的条件而被释放(即,高速缓存寄存器被清空且能够接收及存储与下一编程操作相关联的新数据且就绪/忙碌信号被更新到就绪信号值)。在进行中或当前编程操作期间的一或多个检查点处,执行预测操作以产生表示基于与先前编程循环相关联的信息预测在下一或当前编程循环中通过或无法通过编程验证的一组存储器单元的电平(例如数目、数量、百分比等)的预测结果。编程管理器134进行检查以通过比较预测结果与阈值电平确定是否满足条件。在实施例中,当预测结果(例如,预测在下一编程循环中通过或无法通过验证的存储器单元的电平)大于或等于阈值电平时,满足条件。在实施例中,可确立阈值电平以实现满足目标或所期望位错误率(ber)或其它可靠性度量的编程预测。在实施例中,编程管理器134可调谐或调整阈值电平以具有对应于第一ber电平的第一电平(例如阈值电平x)。在此实施例中,编程管理器134可大约在最后或最终编程验证操作完成后但在最终编程脉冲及电压释放阶段之前的某一时间(例如,在编程操作完成之前的大约50μs)确定满足了使用第一电平的预测条件。有利地,使用包含响应于使用第一阈值电平的预测条件而进行的高速缓存寄存器的提前或提早释放的快速编程操作可导致编程时间减少大约50μs。
48.在实施例中,编程管理器134可调谐阈值电平以具有对应于第二ber电平的不同阈值电平(例如阈值电平y)。在此实施例中,编程管理器134可大约在具有总共n个编程循环的编程操作的编程循环n-1完成之后的某一时间确定满足使用第二电平的预测条件。在此实施例中,高速缓存寄存器的提早释放(例如,在基于阈值电平y满足预测条件后)导致对应于最终编程循环(例如编程脉冲及编程验证操作)、最终编程脉冲及电压释放时间的编程时间
近似地减少(例如,编程时间大约减少100μs)。
49.有利地,在进行中编程操作完成之前将信号更新到就绪信号值实现加载新数据以进行下一编程操作。因此,重叠编程操作可在高速缓存寄存器的提早释放之后执行。下文描述关于编程管理器134的操作的进一步细节。
50.图1b是根据实施例的与呈存储器子系统(例如图1a的存储器子系统110)的存储器子系统控制器115形式的第二设备通信的呈存储器装置130形式的第一设备的简化框图。电子系统的一些实例包含个人计算机、个人数字助理(pda)、数码相机、数字媒体播放器、数字记录器、游戏机、家用电器、运载工具、无线装置、移动电话及类似物。存储器子系统控制器115(例如存储器装置130外部的控制器)可为存储器控制器或其它外部主机装置。
51.存储器装置130包含在逻辑上布置成行及列的存储器单元阵列150。逻辑行的存储器单元通常连接到同一存取线(例如字线),而逻辑列的存储器单元通常被选择性地连接到同一数据线(例如位线)。单个存取线可与多于一个逻辑行的存储器单元相关联,且单个数据线可与多于一个逻辑列相关联。存储器单元阵列150的至少一部分的存储器单元(图1b中未展示)能够被编程到至少两种目标数据状态中的一者。
52.行解码电路系统108及列解码电路系统110经提供以解码地址信号。地址信号经接收及解码以存取存储器单元阵列150。存储器装置130还包含用以管理命令、地址及数据到存储器装置130的输入以及数据及状态信息从存储器装置130输出的输入/输出(i/o)控制电路系统112。地址寄存器114与i/o控制电路系统112及行解码电路系统108及列解码电路系统110通信以在解码之前锁存地址信号。命令寄存器124与i/o控制电路系统112及本地媒体控制器135通信以锁存传入命令。
53.控制器(例如存储器装置130内部的本地媒体控制器135)响应于命令而控制对存储器单元阵列150的存取且产生用于外部存储器子系统控制器115的状态信息,即,本地媒体控制器135经配置以对存储器单元阵列150执行存取操作(例如读取操作、编程操作及/或擦除操作)。本地媒体控制器135与行解码电路系统108及列解码电路系统110通信以响应于地址而控制行解码电路系统108及列解码电路系统110。在一个实施例中,本地媒体控制器135包含编程管理器134,其可实施存储器装置130的全电平编程,如本文中描述。
54.本地媒体控制器135还与高速缓存寄存器118通信。高速缓存寄存器118在存储器单元阵列150忙于分别地写入或读取其它数据时根据本地媒体控制器135的引导锁存传入或传出数据以临时存储数据。在编程操作(例如写入操作)期间,数据可从高速缓存寄存器118传递到数据寄存器120以传送到存储器单元阵列150;接着,新数据可从i/o控制电路系统112锁存于高速缓存寄存器118中。在读取操作期间,数据可从高速缓存寄存器118传递到i/o控制电路系统112以输出到存储器子系统控制器115;接着,新数据可从数据寄存器120传递到高速缓存寄存器118。高速缓存寄存器118及/或数据寄存器120可形成存储器装置130的页面缓冲器(例如,可形成所述页面缓冲器的一部分)。页面缓冲器可进一步包含用以例如通过感测连接到存储器单元阵列150中的存储器单元的数据线的状态来感测所述存储器单元的数据状态的感测装置(图1b中未展示)。状态寄存器122可与i/o控制电路系统112及本地媒体控制器135通信以锁存状态信息以输出到存储器子系统控制器115。
55.存储器装置130经由控制链路132从本地媒体控制器135接收存储器子系统控制器115处的控制信号。举例来说,所述控制信号可包含芯片启用信号ce#、命令锁存启用信号
cle、地址锁存启用信号ale、写入启用信号we#、读取启用信号re#及写入保护信号wp#。可取决于存储器装置130的性质,经由控制链路132进一步接收额外或替代控制信号(未展示)。在一个实施例中,存储器装置130经由多路复用输入/输出(i/o)总线134从存储器子系统控制器115接收命令信号(其表示命令)、地址信号(其表示地址)及数据信号(其表示数据)且经由i/o总线134将数据输出到存储器子系统控制器115。
56.举例来说,命令可经由i/o总线134的输入/输出(i/o)引脚[7:0]在i/o控制电路系统112处接收,且接着,可被写入到命令寄存器124中。地址可经由i/o总线134的输入/输出(i/o)引脚[7:0]在i/o控制电路系统112处接收,且接着,可被写入到地址寄存器114中。数据可经由用于8位装置的输入/输出(i/o)引脚[7:0]或用于16位装置的输入/输出(i/o)引脚[15:0]在i/o控制电路系统112处接收,且接着,可被写入到高速缓存寄存器118中。数据随后可被写入到数据寄存器120中以对存储器单元阵列150进行编程。
[0057]
在实施例中,可省略高速缓存寄存器118,且数据可被直接写入到数据寄存器120中。数据还可经由用于8位装置的输入/输出(i/o)引脚[7:0]或用于16位装置的输入/输出(i/o)引脚[15:0]输出。尽管可参考i/o引脚,但其可包含通过外部装置(例如存储器子系统控制器115)提供到存储器装置130的电连接的任何导电节点,例如通常所使用的导电垫或导电凸块。
[0058]
所属领域的技术人员应了解,可提供额外电路系统及信号,且已经简化了图1b的存储器装置130。应认识到,参考图1b描述的各种块组件的功能性可不必被分隔到集成电路装置的相异组件或组件部分。举例来说,集成电路装置的单个组件或组件部分可经调适以执行图1b的多于一个块组件的功能性。替代地,集成电路装置的一或多个组件或组件部分可经组合以执行图1b的单个块组件的功能性。另外,虽然根据用于接收及输出各种信号的流行惯例描述特定i/o引脚,但应注意,在各种实施例中可使用其它组合或数目的i/o引脚(或其它i/o节点结构)。
[0059]
编程管理器134与高速缓存寄存器118通信。高速缓存寄存器118在存储器单元阵列150忙于分别地写入或读取其它数据时根据编程管理器134的引导锁存传入或传出数据以临时存储数据。在编程操作期间,数据从高速缓存寄存器118传递到数据寄存器120以传送到存储器单元阵列150;接着,新数据从i/o控制电路系统112锁存于高速缓存寄存器118中。状态寄存器122与i/o控制电路系统112及编程管理器134通信以锁存状态信息以输出到处理器130。
[0060]
状态寄存器122包含就绪/忙碌(r/b)寄存器。举例来说,1位寄存器可用于指示存储器装置100是忙碌(例如,存储器装置130正执行存储器存取操作)还是就绪(例如,存储器装置130已完成执行存储器存取操作或不在执行存储器存取操作)。状态寄存器122可进一步包含高速缓存就绪/忙碌寄存器。举例来说,1位寄存器可用于指示高速缓存寄存器118是否准备好接受新数据(例如,数据已被传递到数据寄存器120以写入到存储器单元阵列150或i/o控制电路系统112)。因此,例如由控制器(例如本地媒体控制器135)读取状态寄存器122可用于确定存储器装置100在存取操作中是否被涉及到,例如,确定存储器装置是否准备好启动存取操作或高速缓存寄存器118是否准备好接受数据输入。控制器可为外部控制器(例如存储器子系统控制器115)或内部控制器(例如包含编程管理器134的本地媒体控制器135)。
[0061]
在实施例中,本地媒体控制器135的编程管理器134可提供r/b信号以向外部控制器及/或主机系统提供存储器装置100在存取操作中是否被涉及到或忙于其它的指示。举例来说,存储器装置通常提供引脚(例如,控制链路132的引脚),例如,所述引脚当装置在存取操作中被涉及到时被断言到逻辑低,且当装置再次可用(例如,在存取操作中未被涉及到)时被上拉到逻辑高。就绪/忙碌信号的指示可取决于由存储器装置130执行的存取操作。
[0062]
图2a到2c是根据实施例的如可用于参考图1b描述的类型的存储器中的存储器单元阵列200a(例如nand存储器阵列)的一部分(例如,作为存储器单元阵列150的一部分)的示意图。存储器阵列200a包含存取线(例如字线2020到202n)及数据线(例如位线2040到204m)。字线202可以多对一关系连接到图2a中未展示的全局存取线(例如全局字线)。对于一些实施例,存储器阵列200a可经形成在半导体上,例如,可经导电掺杂以具有某一导电性类型(例如,例如用于形成p阱的p型导电性,或例如用于形成n阱的n型导电性)。
[0063]
存储器阵列200a可经布置成行(各自对应于字线202)及列(各自对应于位线204)。每一列可包含串联连接的存储器单元(例如非易失性存储器单元)串,例如nand串2060到206m中的一者。每一nand串206可经连接(例如选择性地连接)到共同源极(src)216且可包含存储器单元2080到208n。存储器单元208可表示用于数据存储的非易失性存储器单元。每一nand串206的存储器单元208可串联连接于选择门210(例如场效应晶体管)(例如选择门2100到210m中的一者(例如,其可为源极选择晶体管,通常称为选择门源极))与选择门212(例如场效应晶体管)(例如选择门2120到212m中的一者(例如,其可为漏极选择晶体管,通常称为选择门漏极))之间。选择门2100到210m可共同连接到选择线214(例如源极选择线(sgs)),且选择门2120到212m可共同连接到选择线215(例如漏极选择线(sgd))。尽管描绘为传统场效应晶体管,但选择门210及212可利用与存储器单元208类似(例如相同)的结构。选择门210及212可表示串联连接的数个选择门,其中串联的每一选择门经配置以接收相同或独立的控制信号。
[0064]
每一选择门210的源极可连接到共同源极216。每一选择门210的漏极可连接到对应nand串206的存储器单元2080。举例来说,选择门2100的漏极可连接到对应nand串2060的存储器单元2080。因此,每一选择门210可经配置以选择性地将对应nand串206连接到共同源极216。每一选择门210的控制栅极可连接到选择线214。
[0065]
每一选择门212的漏极可连接到对应nand串206的位线204。举例来说,选择门2120的漏极可连接到对应nand串2060的位线2040。每一选择门212的源极可连接到对应nand串206的存储器单元208n。举例来说,选择门2120的源极可连接到对应nand串2060的存储器单元208n。因此,每一选择门212可经配置以选择性地将对应nand串206连接到对应位线204。每一选择门212的控制栅极可连接到选择线215。
[0066]
图2a中的存储器阵列200a可为准二维存储器阵列且可具有大体上平面结构,例如其中共同源极216、nand串206及位线204在基本上平行平面中延伸。替代地,图2a中的存储器阵列200a可为三维存储器阵列,例如其中nand串206可基本上垂直于含有共同源极216的平面及可基本上平行于含有共同源极216的平面的含有位线204的平面延伸。
[0067]
存储器单元208的典型构造包含可确定存储器单元的数据状态(例如,通过阈值电压的变化)的数据存储结构234(例如浮动栅极、电荷陷阱及类似物),及控制栅极236,如图2a中展示。数据存储结构234可包含导电结构及介电结构两者,而控制栅极236通常由一或
多种导电材料形成。在一些情况中,存储器单元208可进一步具有经定义源极/漏极(例如源极)230及经定义源极/漏极(例如漏极)232。存储器单元208使其控制栅极236连接到(且在一些情况中形成)字线202。
[0068]
存储器单元208的列可为选择性地连接到给定位线204的nand串206或数个nand串206。存储器单元208的行可为共同连接到给定字线202的存储器单元208。一行存储器单元208可(但无需)包含共同连接到给定字线202的所有存储器单元208。数行存储器单元208通常可被划分成存储器单元208的一或多个组的物理页面,且存储器单元208的物理页面通常包含共同连接到给定字线202的每隔一个的存储器单元208。举例来说,共同连接到字线202n且选择性地连接到偶数位线204(例如位线2040、2042、2044等)的存储器单元208可为一个物理页面的存储器单元208(例如偶数存储器单元),而共同连接到字线202n且选择性地连接到奇数位线204(例如位线2041、2043、2045等)的存储器单元208可为另一物理页面的存储器单元208(例如奇数存储器单元)。
[0069]
尽管在图2a中未明确描绘位线2043到2045,但从图中显而易见,存储器单元阵列200a的位线204可从位线2040到位线204m连续编号。共同连接到给定字线202的其它分组的存储器单元208也可定义存储器单元208的物理页面。针对特定存储器装置,共同连接到给定字线的所有存储器单元可被视为存储器单元的物理页面。在单个读取操作期间读取或在单个编程操作期间编程的存储器单元的物理页面的部分(在一些实施例中,其可仍为整行)(例如,存储器单元的上页面或下页面)可被视为存储器单元的逻辑页面。存储器单元块可包含经配置以被一起擦除的那些存储器单元,例如连接到字线2020到202n的所有存储器单元(例如共享共同字线202的所有nand串206)。除非明确区分,否则在本文中对存储器单元页面的参考是指存储器单元的逻辑页面的存储器单元。尽管图2a的实例是结合nand快闪论述的,但本文中描述的实施例及概念不限于特定阵列架构或结构,且可包含其它结构(例如sonos、相变、铁电等)及其它架构(例如and阵列、nor阵列等)。
[0070]
图2b是如可用于参考图1b描述的类型的存储器中的存储器单元阵列200b的一部分(例如,作为存储器单元阵列150的一部分)的另一示意图。图2b中相似编号的元件对应于关于图2a所提供的描述。图2b提供三维nand存储器阵列结构的一个实例的额外细节。三维nand存储器阵列200b可并入可包含半导体支柱的垂直结构,其中支柱的一部分可用作nand串206的存储器单元的通道区。nand串206每一者可通过选择晶体管212(例如,其可为漏极选择晶体管,通常称为选择门漏极)被选择性地连接到位线2040到204m且通过选择晶体管210(例如,其可为源极选择晶体管,通常称为选择门源极)被选择性地连接到共同源极216。多个nand串206可被选择性地连接到同一位线204。nand串206的子集可通过加偏压于选择线2150到215k以选择性地激活处于nand串206与位线204之间的每一特定选择晶体管212来连接到其相应位线204。选择晶体管210可通过加偏压于选择线214来激活。每一字线202可连接到存储器阵列200b的多行存储器单元。通过特定字线202共同连接到彼此的数行存储器单元可统称为层面。
[0071]
图2c是如可用于参考图1b描述的类型的存储器中的存储器单元阵列200c的一部分(例如,作为存储器单元阵列150的一部分)的另一示意图。图2c中相似编号的元件对应于关于图2a所提供的描述。存储器单元阵列200c可包含串联连接的存储器单元串(例如nand串)206、存取(例如字)线202、数据(例如位)线204、选择线214(例如源极选择线)、选择线
215(例如漏极选择线)及源极216,如图2a中描绘。举例来说,存储器单元阵列200a的部分可为存储器单元阵列200c的部分。
[0072]
图2c描绘nand串206到存储器单元块250的分组,例如存储器单元块2500到250
l
。存储器单元块250可为可在单个擦除操作中一起被擦除的存储器单元208的分组,有时称为擦除块。存储器单元250的每一块可表示通常与单个选择线215(例如选择线2150)相关联的那些nand串206。用于存储器单元块2500的源极216可为与用于存储器单元块250
l
的源极216相同的源极。举例来说,每一存储器单元块2500到250
l
通常可选择性地连接到源极216。一个存储器单元块250的存取线202及选择线214及215可能没有分别直接到存储器单元块2500到250
l
的任何其它存储器单元块的存取线202及选择线214及215的连接。
[0073]
位线2040到204m可连接(例如,选择性地连接)到缓冲器部分240,其可为存储器装置130的页面缓冲器152的部分。缓冲器部分240可对应于存储器平面(例如一组存储器单元块2500到250
l
)。缓冲器部分240可包含感测电路(其可包含感测放大器)以感测在相应位线204上指示的数据值。
[0074]
图3是如可用于参考图1b描述的类型的存储器中的存储器单元阵列300的一部分的框示意图。存储器单元阵列300被描绘为具有四个存储器平面350(例如存储器平面3500到3503),其各自与可共同形成页面缓冲器352的相应缓冲器部分240通信。虽然描绘了四个存储器平面350,但其它数目个存储器平面350可共同与页面缓冲器352通信。每一存储器平面350经描绘为包含l+1个存储器单元块250(例如存储器单元块2500到250
l
)。
[0075]
图4说明根据本公开的一或多个实施例的第一实例时间线410与第二实例时间线420的比较,所述第一实例时间线410对应于表示与用于对存储器装置的一组存储器单元进行编程的典型编程操作的执行相关联的高速缓存寄存器的状态的就绪/忙碌信号,且所述第二实例时间线420对应于表示与快速编程操作的执行相关联的高速缓存寄存器的状态的就绪/忙碌信号。如图4中展示,如在与典型编程操作相关联的时间线410中展示,高速缓存寄存器释放412在最后编程脉冲(ppn)完成及电压释放阶段完成(例如,在tdischarge_complete处)之后发生。如时间线410中展示,编程时间(tprog_a)从编程操作启动延伸到对应于编程操作完成(例如,编程阶段及释放阶段的完成)的高速缓存寄存器释放412的时间。
[0076]
在实施例中,作为比较,如在与本公开的快速编程操作相关联的时间线420中展示,提前高速缓存寄存器释放422在至少最后编程脉冲(ppn)完成及电压释放阶段完成(例如,在tdischarge_complete处)之前的某一时间发生。在另一实施例中,提前高速缓存寄存器释放422在最后编程循环(即,编程脉冲及编程验证操作)完成、最后编程脉冲(即,遵循最后编程循环的ppn)完成及电压释放阶段完成之前的某一时间发生。如时间线420中展示,快速编程操作的提前高速缓存寄存器释放422相较于时间线410的tprog_a实现编程时间(tprog_express)减少。在实施例中,tprog_b的编程时间减少约等于从提前高速缓存寄存器释放422(即tadvanced_release)到tdischarge_complete的持续时间。在实施例中,tprog_express(即,使用快速编程操作的编程时间)可通过以下表达式呈现:tprog_express=tprog_a

tprog_b;
[0077]
其中tprog_a是从快速编程操作启动到电压释放完成(即,tdischarge_complete)时的第一持续时间,且其中tprog_b是从提前高速缓存寄存器释放422到tdischarge_complete的第二持续时间。
[0078]
在实施例中,提前高速缓存寄存器释放422响应于确定满足预测条件而被触发(在tadvanced_release处),如图5中更详细描述。
[0079]
图5说明与提前高速缓存寄存器释放操作相关联的实例快速编程操作及多个时间线。如图5中展示,启动快速编程操作505。如说明,快速编程操作505包含一系列编程循环(例如编程循环1到编程循环n)。如图5中展示,每一编程循环可包含编程验证操作(pv),其包含一梯形或一系列多个验证电压(例如,编程循环1的pv1的pv
1a
及pv
1b
)。在实施例中,在快速编程操作505启动后,就绪位从指示高速缓存寄存器准备好存储与编程操作相关联的新数据的第一位值(例如“1”)更新到指示数据已经存储于高速缓存寄存器中且高速缓存寄存器在当前时间正忙且无法存储新数据的第二位值(例如“0”)。在实施例中,一系列编程循环作为快速编程操作的部分被执行以将一组存储器单元编程到一组编程电平中的目标编程电平。
[0080]
在实施例中,预测操作在快速编程操作期间的一或多个检查点处执行。在实施例中,预测操作包含表示其编程验证状态(例如,通过或无法通过验证)是已知(即,已确立)的存储器单元的经预测电平的预测结果的确定。在实施例中,比较具有已知验证状态的存储器单元的预测电平与阈值电平以确定是否满足条件。在实施例中,如果对应于存储器单元的经预测编程状态的预测结果大于或等于阈值电平,那么满足条件。在实施例中,如果预测结果满足条件,那么快速编程操作确定已经实现关于存储器单元的已知或经确立编程状态的足够的可靠性水平。
[0081]
在实施例中,响应于确定条件被满足,执行高速缓存寄存器的提前释放(即,高速缓存寄存器在快速编程操作的所有编程脉冲及电压释放阶段540完成之前提早或提前释放)。如图5中展示,展示第一实例时间线520,其中预测操作施加第一阈值电平以确定预测条件是否满足预测操作检查点。
[0082]
图5说明其中预测操作施加第二阈值电平的第二实例时间线530。举例来说,第二阈值电平可为表示被留下以进行编程的单元的数目的度量。应注意,阈值电平可鉴于所期望或目标ber电平(或其它可靠性度量)来确立,且其可具有任何所期望值。在实施例中,如果关于预测操作需要更高可靠性水平,那么第一阈值电平可用于确定是否满足条件1。在另一实例中,如果关于预测操作需要相对更低可靠性水平(即,相较于使用条件1的预测操作来说),那么第二阈值电平可用于确定是否满足条件2。
[0083]
在实施例中,预测操作可在对应于快速编程操作的任何数目个检查点处执行。举例来说,预测操作的第一检查点可在编程循环n-5(其中n等于用于完成编程操作的编程循环的经预测或平均数目)之后确立,预测操作的第二检查点可在编程循环n-4之后确立,以此类推。在实施例中,在一或多个检查点中的每一者处,执行预测操作且作出预测结果是否满足条件(即,预测结果是否超过可适用的阈值电平)的确定。
[0084]
在实施例中,预测结果表示基于预测将在当前编程循环中通过或无法通过编程验证的存储器单元的数目、数量、百分比、量等。响应于确定预测结果满足条件(例如,与时间线520的阈值电平1相关联的条件1或与时间线530的阈值电平2相关联的条件2),高速缓存寄存器被释放且可将新数据加载到高速缓存寄存器中(例如,实例时间线520的提前高速缓存寄存器释放522或实例时间线530的提前高速缓存寄存器释放532)。
[0085]
在实施例中,预测操作可包含预测性计数失败字节(cfbyte)操作。在实施例中,预
测性cfbyte操作确定在当前编程循环中将通过或无法通过验证的存储器单元的数目。在此实施例中,预测操作可至少部分基于来自先前编程循环的信息确定存储器单元的数目。先前编程循环在当前编程循环之前执行。在实施例中,预测性cfbyte操作确定超过阈值电压值的存储器单元的预期数目的计数(例如预测结果)及比较那个预测结果与可适用的阈值电平(例如,图5中展示的第一实例中的阈值电平1或图5中展示的第二实例中的阈值电平2)。根据实施例,可执行其它预测操作以产生预测结果来确定是否满足条件使得可启动高速缓存寄存器的提前释放。
[0086]
图5说明在预测操作期间施加不同阈值电平以确定是否满足对应条件的两个实例(例如时间线520中的第一实例及时间线530中的第二实例)。在时间线520中展示的实施例中,用于预测操作的阈值电平经调谐到对应于第一目标或所期望可靠性水平(例如,对应于第一所期望或目标ber的可靠性水平)的阈值电平1。在时间线530中展示的实施例中,用于预测操作的阈值电平经调谐到对应于第二目标或所期望可靠性水平(例如,对应于不同于第一目标ber的第二所期望或目标ber的可靠性水平)的阈值电平2。在实施例中,快速编程操作可包含鉴于与先前执行的一或多个快速编程操作相关联的ber测量进行预测操作的阈值电平的调谐或调整(例如,从阈值电平1调整到阈值电平2或反之亦然)。举例来说,如果使用阈值电平2的第一快速编程操作导致被视作太高(例如,基于目标或阈值ber电平)的第一ber电平,那么处理逻辑可在后续快速编程操作执行期间动态地调整或改变成阈值电平1。
[0087]
有利地,如图5中展示,在时间线520中展示的实例中,响应于由于预测操作而满足条件1,提前高速缓存寄存器释放522在最终编程脉冲(例如pp
final
)及电压释放阶段540之前被触发。提前高速缓存寄存器释放522在所有编程脉冲及电压释放阶段540完成之前的触发导致编程时间相较于典型编程操作减少,所述典型编程操作仅在所有编程脉冲及释放阶段之后才释放高速缓存寄存器。
[0088]
此外,如图5中展示,在时间线530中展示的实例中,响应于由于预测操作而满足条件2,提前高速缓存寄存器释放532在最终编程循环(例如编程循环n)、最终编程脉冲(例如pp
final
)两者及电压释放阶段540完成之前的某一时间被触发。在实施例中,高速缓存寄存器的释放及与下一快速编程操作相关联的新数据的存储与当前或进行中快速编程操作的至少一部分重叠。因此,提前高速缓存寄存器释放532的触发导致编程时间相较于典型编程操作来说减少且使新数据(例如,与下一快速编程操作相关联的数据)能够在进行中快速编程操作505完成时在tadvanced_release2处存储于高速缓存寄存器中。
[0089]
图6是根据本公开的一些实施例的用于对存储器子系统中的存储器装置的一组存储器单元进行编程的快速编程操作的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,运行或执行于处理装置上的指令)或其组合。在一些实施例中,方法600由图1a及图1b的编程管理器134执行。尽管以特定顺序或次序展示,但除非另外指定,否则过程的次序是可修改的。因此,说明的实施例应被理解为仅作为实例,且说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中,可省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。
[0090]
在操作610,启动操作。举例来说,处理逻辑(例如编程管理器134)可启动快速编程操作来将存储器装置的一组存储器单元编程到一组编程电平中的目标编程电平。在一个实
施例中,快速编程操作包含用于将一组存储器单元编程到目标编程电平(例如,针对tlc存储器装置的l1、l2、

、l7;其中l0是擦除状态)的一组编程循环(例如,递增地增加编程脉冲及编程验证操作的迭代,例如图5的编程循环1到编程循环n)、最终或最后编程脉冲(例如图5的pp
final
)及电压释放阶段(例如图5的释放阶段540)。在实施例中,快速编程操作是针对一或多个特定存储器单元地址。在一个实施例中,处理逻辑可识别一组存储器单元(例如,图1b的存储器阵列150的存储器单元的子集,例如与存储器阵列150的特定字线或多个字线相关联的那些存储器单元)。在一个实施例中,一组存储器单元被配置为mlc存储器(例如,每单元存储多于一个位(包含每单元2个位、3个位、4个位或更多个位)的任何类型的存储器单元)。在实施例中,用于启动快速编程操作的命令与对应于将被编程的一组存储器单元的一组物理或逻辑地址相关联。在实施例中,处理逻辑基于作为命令的部分提供的一组地址识别所述一组存储器单元。
[0091]
在操作620,存储数据。举例来说,处理逻辑可将与编程操作相关联的一组数据存储于高速缓存寄存器中。在实施例中,高速缓存寄存器存储所述数据及表示高速缓存寄存器的状态被设置为“忙碌”位值的高速缓存寄存器的就绪位(例如rb引脚)(例如,所述位被设置为“0”,如图4的时间线420及图5的时间线520及530中展示)。在实施例中,当高速缓存寄存器被设置为忙碌位值时,高速缓存寄存器正用于存储与进行中编程操作(即,在操作610中启动的快速编程操作)相关联的数据。
[0092]
在操作630,确定结果。举例来说,处理逻辑可在快速编程操作的执行期间的第一时间执行预测操作以确定对应于一组存储器单元的编程状态的预测结果。在实施例中,预测结果表示其编程状态(例如通过验证状态或未通过验证状态)将在当前编程循环期间知晓或确立的一组存储器单元的电平(例如量、百分比、比率等)。在实施例中,预测操作可在快速编程操作期间的一或多个检查点处执行(例如,在编程循环x-1之后、在编程循环x之后、在编程循环x+1之后等,其中x是任何非零整数)。举例来说,预测操作可在编程循环x-1之后执行,使得预测结果提供将在编程循环x完成时具有已知或经确立编程状态(例如通过或未通过状态)的一组存储器单元的经预测电平。在此实例中,表示当前编程循环(例如编程循环x)的已知编程状态的电平的预测结果至少部分基于关于一或多个先前编程循环(例如编程循环x-1)识别的编程状态。在实施例中,预测操作可为预测性cfbyte操作。在实施例中,例如,预测操作可通过测量与编程验证操作相关联的预充电电流来实施,使得如果编程验证操作期间的预充电电流减少,那么可作出编程即将完成的预测。
[0093]
在操作640,进行比较。举例来说,处理逻辑可比较预测结果与阈值电平以确定是否满足一条件。在实施例中,阈值电平可表示经预测状态的可接受电平使得当预测结果大于或等于阈值电平时满足条件。举例来说,阈值电平可为其经预测编程状态是已知的一组存储器单元的百分比。举例来说,比较预测结果(例如,关于基于预测操作已知的目标编程电平具有经预测编程状态的一组存储器单元的第一百分比)与阈值电平的第二百分比(例如y百分比),其中如果第一百分比大于或等于第二百分比,那么满足条件。在实施例中,预测结果可基于具有未经编程状态的存储器单元的数目的确定及识别针对每个编程脉冲都通过的存储器单元的平均数目的信息。在实施例中,测量将进行编程的单元的数目(例如未经编程单元的数目)且将其与阈值数目进行比较以确定是否满足条件。在实施例中,当未经编程单元的数目小于最大可接受值时,满足条件。
[0094]
在实施例中,阈值电平可至少部分基于所期望或目标ber电平或其它可靠性度量确立。在实施例中,阈值电平可鉴于与存储器子系统相关联的可靠性度量(例如ber)来确立或动态地进行调谐。举例来说,ber电平可基于第一快速编程操作的执行来确定,且那个ber电平可用于调整或调谐与下一或第二快速编程操作的预测操作相关联的阈值电平。
[0095]
在操作650,释放高速缓存寄存器。举例来说,处理逻辑可响应于满足条件而引起高速缓存寄存器的释放。在实施例中,当满足条件时,处理逻辑可释放高速缓存寄存器(即,提前高速缓存寄存器释放)以使与新或下一快速编程操作相关联的新数据能够被存储。在实施例中,响应于条件的满足,可将就绪位值设置为“就绪”状态电平(例如“1”,如在图5中分别结合时间线520及530的提前高速缓存寄存器释放522及532所展示)。在实施例中,就绪位值“1”发信号向外部控制器及/或主机系统通知新数据可结合新或下一快速编程操作的执行被加载到高速缓存寄存器中。有利地,操作650的提前高速缓存寄存器释放可在当前或进行中快速编程操作完成之前的某一时间执行。在实施例中,操作650的提前高速缓存寄存器释放可在最终编程脉冲(例如图5的pp
final
)及电压释放阶段540两者之前发生。在实施例中,操作650的提前高速缓存寄存器释放可在最终编程循环(例如图5的编程循环n)、最终编程脉冲(例如图5的pp
final
)及电压释放阶段(例如图5的电压释放阶段540)之前发生。在实施例中,响应于与预测操作相关联的条件的满足而进行的提前高速缓存寄存器释放可在当前快速编程操作完成之前的约50μs到100μs的时间发生。
[0096]
图7说明计算机系统700的实例机器,在所述计算机系统内执行用于致使所述机器执行本文中论述的方法论中的任一或多者的一组指令。在一些实施例中,计算机系统700可对应于主机系统(例如图1a的主机系统120),其包含、经耦合到或利用存储器子系统(例如图1a的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1a的编程管理器134的操作)。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云端计算基础设施或环境中作为服务器或客户端机器操作。
[0097]
机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够(循序或以其它方式)执行指定由所述机器所采取的动作的一组指令的任何机器。此外,虽然说明了单个机器,但术语“机器”还应被视为包含个别地或联合地执行一(或多组)指令以执行本文中论述的方法论中的任一或多者的机器的任何集合。
[0098]
实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram)(例如同步dram(sdram)或rambus dram(rdram))、静态存储器706(例如,快闪存储器、静态随机存取存储器(sram))等)及数据存储系统718,其经由总线730彼此通信。
[0099]
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的一处理器或实施指令集组合的多个处理器。处理装置702也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似物。处理装置702经配置以执
行用于执行本文中论述的操作及步骤的指令726。计算机系统700可进一步包含网络接口装置708以通过网络720通信。
[0100]
数据存储系统718可包含其上存储体现本文中描述的方法论或功能中的任一或多者的一或多组指令726或软件的机器可读存储媒体724(也称为计算机可读媒体,例如非暂时性计算机可读媒体)。指令726也可在其由计算机系统700执行期间完全或至少部分驻留于主存储器704内及/或处理装置702内,主存储器704及处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718及/或主存储器704可对应于图1a的存储器子系统110。
[0101]
在一个实施例中,指令726包含实施对应于图1a的编程管理器134的功能性的指令。虽然在实例实施例中将机器可读存储媒体724展示为单个媒体,但术语“机器可读存储媒体”应理解为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码一组指令以供机器执行并且致使机器执行本公开的方法中的任一者或多者的任何媒体。术语“机器可读存储媒体”应相应地理解为包含(但不限于)固态存储器、光学媒体及磁性媒体。
[0102]
已依据对计算机存储器内的数据位的操作的算法及符号表示呈现前述详细描述的一些部分。这些算法描述及表示是由数据处理领域的技术人员用以向所属领域的其它技术人员最有效地表达其工作实质的方式。算法在本文且通常被设想为导致所期望结果的自相一致的操作序列。操作是需要物理操纵物理量的操作。通常,尽管不是必须的,这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。已被证明是方便的是,有时出于习惯用法的原因,原则上将这些信号指代为位、值、元素、符号、字符、项、数字或类似物。
[0103]
然而,应记住,全部这些及类似术语与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,其将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵或变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
[0104]
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的经专门构造,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、cd-rom及磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
[0105]
本文呈现的算法及显示器并不固有地与任何特定计算机或其它设备相关。各种通用系统可结合根据本文的教示的程序使用,或可证明为方便的是构造更专门设备来执行方法。多种这些系统的结构将如下文描述中陈述那样出现。另外,本公开并非是参考任何特定编程语言来描述。应了解,多种编程语言可用于实施本文中所描述的本公开的教示。
[0106]
本公开可经提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于存储呈可由机器(例如计算机)读取的形式的信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存
储器组件等。
[0107]
在前述说明书中,已参考本公开的特定实例实施例描述了其实施例。将明白,可在不背离所附权利要求书中所陈述的本公开的实施例的更宽精神及范围的情况下对本公开做出各种修改。因此,说明书及图式应以说明性意义而非限制性意义来看待。

技术特征:


1.一种存储器装置,其包括:存储器阵列,其包括经配置为多电平单元mlc存储器的一组存储器单元;及控制逻辑,其与所述存储器阵列可操作地耦合,所述控制逻辑用以执行包括以下的操作:启动快速编程操作来将所述一组存储器单元编程到一组编程电平中的目标编程电平;将与所述快速编程操作相关联的一组数据存储于高速缓存寄存器中;在所述快速编程操作的执行期间的第一时间,执行预测操作以确定对应于所述一组存储器单元的编程状态的预测结果;比较所述预测结果与阈值电平以确定是否满足一条件;以及响应于满足所述条件而致使从所述高速缓存寄存器释放与所述快速编程操作相关联的所述一组数据。2.根据权利要求1所述的存储器装置,其中所述预测结果表示与经确立编程状态相关联的所述一组存储器单元的经预测数量。3.根据权利要求2所述的存储器装置,其中如果所述预测结果的所述经预测数量大于或等于所述阈值电平,那么满足所述条件。4.根据权利要求1所述的存储器装置,所述操作进一步包括响应于满足所述条件而将与所述高速缓存寄存器相关联的信号从忙碌状态更新到就绪状态。5.根据权利要求1所述的存储器装置,所述操作进一步包括鉴于所述就绪状态,将与施加到所述存储器阵列的下一快速编程操作相关联的下一组数据加载到所述高速缓存寄存器中。6.根据权利要求1所述的存储器装置,其中所述一组数据在所述快速编程操作完成之前的某一时间从所述高速缓存寄存器释放。7.根据权利要求1所述的存储器装置,其中所述一组数据在与施加到所述存储器阵列的所述快速编程操作相关联的一或多个编程脉冲及电压释放阶段之前的某一时间从所述高速缓存寄存器释放。8.根据权利要求1所述的存储器装置,其中所述一组数据在与所述快速编程操作相关联的一或多个编程循环、最终编程脉冲及电压释放阶段之前的某一时间从所述高速缓存寄存器释放。9.根据权利要求8所述的存储器装置,所述操作进一步包括在所述快速编程操作完成之前基于存储于所述高速缓存寄存器中的所述下一组数据启动所述下一快速编程操作的执行。10.一种方法,其包括:启动第一快速编程操作来将存储器装置的存储器阵列的一组存储器单元编程到一组编程电平中的目标编程电平;将与所述第一快速编程操作相关联的第一组数据存储于高速缓存寄存器中;在所述第一快速编程操作的执行期间的一或多个检查点,由处理装置执行预测操作以确定对应于所述一组存储器单元的编程状态的预测结果;比较所述预测结果与阈值电平以确定是否满足一条件;响应于满足所述条件而致使从所述高速缓存寄存器释放与所述第一快速编程操作相
关联的所述第一组数据;以及将与将施加到所述存储器阵列的第二快速编程操作相关联的第二组数据加载到所述高速缓存寄存器中。11.根据权利要求10所述的方法,其进一步包括响应于满足所述条件而将与所述高速缓存寄存器相关联的信号从忙碌状态更新到就绪状态。12.根据权利要求10所述的方法,其中所述第二组数据在所述第一快速编程操作完成之前加载到所述高速缓存寄存器中。13.根据权利要求10所述的方法,其中所述第一组数据在所述第一快速编程操作完成之前从所述高速缓存寄存器释放。14.根据权利要求10所述的方法,其中与所述预测操作的所述执行相关联的所述一或多个检查点在所述第一快速编程操作的一或多个编程循环之后确立,其中所述一或多个编程循环中的每一者包括编程脉冲的施加及编程验证操作的执行。15.根据权利要求10所述的方法,其中所述预测操作在编程循环之后执行,且其中所述预测结果包括其所述编程状态在下一编程循环之后是已知的所述一组存储器单元的经预测数量。16.一种存储器装置,其包括:存储器阵列,其包括一组存储器单元;及控制逻辑,其与所述存储器阵列可操作地耦合,所述控制逻辑用以执行包括以下的操作:启动第一快速编程操作来将所述一组存储器单元编程到一组编程电平中的目标编程电平;将与所述第一快速编程操作相关联的第一组数据存储于高速缓存寄存器中;在所述第一快速编程操作的执行期间的一或多个检查点,执行预测操作以确定对应于所述一组存储器单元的编程状态的预测结果;比较所述预测结果与阈值电平以确定是否满足一条件;响应于满足所述条件而致使从所述高速缓存寄存器释放与所述第一快速编程操作相关联的所述第一组数据;以及将与将施加到所述存储器阵列的第二快速编程操作相关联的第二组数据加载到所述高速缓存寄存器中。17.根据权利要求16所述的存储器装置,其中所述第二组数据在所述第一快速编程操作完成之前加载到所述高速缓存寄存器中。18.根据权利要求16所述的存储器装置,其中在所述第一快速编程操作完成之前引起所述高速缓存寄存器的所述释放。19.根据权利要求16所述的存储器装置,其中与所述预测操作的所述执行相关联的所述一或多个检查点在所述第一快速编程操作的一或多个编程循环之后确立,其中所述一或多个编程循环中的每一者包括编程脉冲的施加及编程验证操作的执行。20.根据权利要求16所述的存储器装置,其中所述预测操作在编程循环之后执行,且其中所述预测结果包括其所述编程状态在下一编程循环之后是已知的所述一组存储器单元的经预测数量。

技术总结


本申请案涉及存储器子系统中的使用提前高速缓存寄存器释放的快速编程。存储器装置中的控制逻辑启动快速编程操作来将一组存储器单元编程到一组编程电平中的目标编程电平。与所述快速编程操作相关联的一组数据存储于高速缓存寄存器中。在所述快速编程操作的执行期间的第一时间,执行预测操作以确定对应于所述一组存储器单元的编程状态的预测结果。比较所述预测结果与阈值电平以确定是否满足一条件。响应于满足所述条件而致使从所述高速缓存寄存器释放所述一组数据。存器释放所述一组数据。存器释放所述一组数据。


技术研发人员:

W

受保护的技术使用者:

美光科技公司

技术研发日:

2022.08.31

技术公布日:

2023/3/3

本文发布于:2023-03-04 23:02:21,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/64672.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:存储器   操作   单元   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图