存储器设备和操作存储器设备的方法

文档序号:96747 发布日期:2021-10-12 浏览:24次 >En<

阅读说明:本技术 存储器设备和操作存储器设备的方法 (Memory device and method of operating memory device ) 是由 周炳仁 于 2020-10-14 设计创作,主要内容包括:本公开的实施例涉及一种存储器设备和操作存储器设备的方法本文可以提供一种存储器设备和操作所述存储器设备的方法。存储器设备包括:操作代码生成器,被配置为响应于编程控制代码生成编程代码和验证代码,并且使用编程代码和验证代码来输出操作代码;验证计数器,被配置为存储通过对根据该验证代码而执行的验证操作的数目进行计数而获取的计数值;验证确定器,被配置为根据验证操作的结果将计数值与参考值进行比较,并且根据比较结果生成编程控制代码以改变用于升高编程电压的阶跃电压;以及电压生成器,被配置为根据操作代码生成编程电压和验证电压。(Embodiments of the present disclosure relate to a memory device and a method of operating the same. The memory device includes: an operation code generator configured to generate a program code and a verification code in response to the program control code and output the operation code using the program code and the verification code; a verification counter configured to store a count value obtained by counting the number of verification operations performed according to the verification code; a verification determiner configured to compare the count value with a reference value according to a result of the verification operation and generate a program control code to change a step voltage for raising the program voltage according to a comparison result; and a voltage generator configured to generate a program voltage and a verify voltage according to the operation code.)

存储器设备和操作存储器设备的方法

相关申请的交叉引用

本申请要求于2020年4月8日在韩国知识产权局提交的韩国专利申请号10-2020-0042843的优先权,其全部公开内容通过引用并入本文。

技术领域

本公开的各种实施例大体上涉及一种存储器设备和操作存储器设备的方法,更特别地涉及一种能够执行编程操作的存储器设备和操作存储器设备的方法。

背景技术

存储器设备可以包括易失性存储器设备和非易失性存储器设备,当电力供应中断时,在易失性存储器设备中所存储的数据会丢失,而即使在电力供应中断时,在非易失性存储器设备中所存储的数据也会被保留。

易失性存储器设备可以包括动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。非易失性存储器设备可以包括只读存储器(ROM)、可编程只读存储器(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、NAND闪存等。

存储器设备可以包括存储器单元阵列、外围电路和逻辑电路。

存储器单元阵列包括多个存储器单元,并且多个存储器单元可以存储数据。将一位数据存储在单个存储器单元中的方法被称为单级单元(SLC)方法,并且将两位或多位数据存储在单个存储器单元中的方法被称为多级单元(MLC)方法。根据存储在存储器单元中的位数,MLC方法可以被分类为三级单元(TLC)方法或四级单元(QLC)方法。在TLC方法中,三位数据可以被存储在单个存储器单元中,并且在QLC方法中,四位数据可以被存储在单个存储器单元中。

由于随着存储在存储器单元中的位数增加,与不同编程状态相对应的阈值电压分布之间的间隔变窄,因此有必要管理存储器单元的阈值电压,以便在MLC方法中彼此不会重叠。

由于各种原因,存储器单元可以具有略微不同的电特性。因此,包括多个存储器单元的存储器单元阵列可以包括:慢速单元,在编程操作期间相对较慢地升高其阈值电压;以及快速单元,在编程操作期间相对较快地升高其阈值电压。即,随着具有不同电特性的存储器单元的数目增加,编程操作时间可能会增加,或者存储器单元的阈值电压分布之间的间隔可能会减小。

发明内容

本公开的实施例可以提供一种存储器设备。存储器设备可以包括:操作代码生成器,被配置为响应于编程控制代码生成编程代码和验证代码,并且使用编程代码和验证代码来输出操作代码;验证计数器,该验证计数器被配置为存储通过对根据验证代码而执行的验证操作的数目进行计数而获取的计数值;验证确定器,被配置为根据验证操作的结果将计数值与参考值进行比较,并且根据比较结果生成编程控制代码,从而改变用于升高编程电压的阶跃电压;以及电压生成器,被配置为根据操作代码生成编程电压和验证电压。

本公开的实施例可以提供一种操作存储器设备的方法。该方法可以包括:通过将第一编程电压施加到所选字线来升高存储器单元的阈值电压;执行验证操作用于确定存储器单元的阈值电压等于或是大于目标电压;通过对执行验证操作的次数进行计数而存储计数值;当验证操作失败时,将计数值与参考值进行比较;根据计数值与参考值的比较结果来设置阶跃电压;以及生成第二编程电压,该第二编程电压比第一编程电压高出阶跃电压,并且使用第二编程电压对存储器单元进行编程。

附图说明

图1是图示根据本公开的实施例的存储器系统的图。

图2是图示根据本公开的实施例的存储器设备的图。

图3是图示存储器块的图。

图4是图示存储器单元的阈值电压分布的图。

图5是图示根据本公开的实施例的控制逻辑电路的图。

图6是图示根据本公开的实施例的操作代码生成器、验证确定器和验证计数器的图。

图7是图示增量阶跃脉冲编程(ISPP)方法的编程操作的图。

图8是图示慢速单元和快速单元的图。

图9是图示根据本公开的第一实施例的编程操作的流程图。

图10是图示当在第一实施例中计数值大于参考值时的编程操作的图。

图11是图示当在第一实施例中计数值小于参考值时的编程操作的图。

图12是图示根据本公开的第二实施例的编程操作的流程图。

图13是图示当在第二实施例中计数值等于参考值时的编程操作的图。

图14是图示当在第二实施例中计数值大于参考值时的编程操作的图。

图15是图示当在第二实施例中计数值小于参考值时的编程操作的图。

图16是图示根据本公开的第三实施例的编程操作的流程图。

图17是详细图示第三实施例所描述的编程操作的图。

图18是图示根据本公开的第四实施例的编程操作的流程图。

图19是图示根据在第四实施例中的计数值的编程操作的图。

图20是图示根据本公开的实施例的存储器系统的操作的图。

具体实施方式

在本说明书或本申请中引入的本公开的实施例中的具体结构或功能描述仅是为了描述本公开的实施例。该描述不应该被解释为限于本说明书或申请所描述的实施例。

本公开的各种实施例涉及一种存储器设备和操作存储器设备的方法,该存储器设备能够通过考虑慢速单元和快速单元的特性而调整编程操作来提高存储器设备的可靠性。

图1是图示根据本公开的实施例的存储器系统的图。

参照图1,存储器系统1000可以包括存储数据的存储器设备1100以及被配置为在存储器设备1100与主机2000之间通信的控制器1200。

存储器系统1000可以包括多个存储器设备1100,并且存储器设备1100可以通过至少一个信道耦合至控制器1200。例如,多个存储器设备1100可以耦合至单个信道,并且即使在多个信道耦合至控制器1200时,多个存储器设备1100也可以耦合至多个信道中的每个信道。

控制器1200可以将命令传输到多个存储器设备1100。控制器1200可以响应于来自主机2000的请求控制存储器设备1100,并且即使没有从主机2000接收到请求,也可以执行用于提高存储器系统1000的性能的后台操作。主机2000可以生成针对各种操作的请求,并且可以将所生成的请求输出到存储器系统1000。例如,主机2000可以生成用于请求编程操作的编程请求、用于请求读取操作的读取请求、用于请求擦除操作的擦除请求等。

主机2000可以通过各种接口中的任何一种与存储器系统1000通信,诸如,高速外围组件互连(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、串行附接SCSI(SAS)、高速非易失性存储器(NVMw)、通用串行总线(USB)、多媒体卡(MMC)、增强型小磁盘接口(ESDI)、集成驱动电子设备(IDE)等。

下面将具体描述根据本实施例的存储器设备1100。

图2是图示根据本公开的实施例的存储器设备的图。

参照图2,存储器设备1100可以包括存储数据的存储器单元阵列100、被配置为执行编程操作、读取操作或擦除操作的外围电路110至160,以及被配置为控制外围电路110至160的控制逻辑电路170。

存储器单元阵列100可以包括存储数据的多个存储器块MB1至MBk(k是正整数)。每个存储器块MB1至MBk包括多个存储器单元,并且可以以将存储器单元设置为与衬底平行的2D结构、或者沿着垂直于衬底的方向堆叠存储器单元的3D结构来实现存储器单元。

外围电路110至160可以包括电压生成器VGEN 110、行解码器RDEC 120、感测电路SC 130、页面缓冲器组PBG 140、列解码器CDEC 150和输入/输出电路IOC 160。

电压生成器110可以响应于操作代码OPc来生成并输出各种操作所需的操作电压Vop。例如,电压生成器110可以生成并输出编程电压、验证电压、读取电压、通过电压、擦除电压等。在编程操作期间,根据本实施例的电压生成器110可以根据操作代码OPc来调整编程电压和验证电压的水平。

行解码器120可以根据行地址RADD在存储器单元阵列100中所包括的存储器块之中选择一个存储器块,并且可以将操作电压Vop传输到所选存储器块。

感测电路SC 130可以在验证操作期间根据从页面缓冲器组140输出的感测数据SDT来输出感测结果信号SRS。例如,感测电路130可以根据感测数据SDT输出与通过信号相对应的感测结果信号SRS、或者与失败信号相对应的感测结果信号SRS。

页面缓冲器组140可以通过位线耦合至存储器单元阵列100。例如,页面缓冲器组140可以包括分别耦合至位线的页面缓冲器。页面缓冲器可以响应于页面缓冲器控制信号PBSIG同时操作,并且可以在编程操作或读取操作期间暂时地存储数据。为此,每个页面缓冲器可以包括用于暂时地存储数据的多个锁存器。锁存器的数目可以根据编程方法而变化。例如,页面缓冲器可以根据在单个存储器单元中可以被存储的位数而以不同方式设计,或者可以根据在验证操作中使用的验证电压的数目而以不同方式设计。而且,可以使用验证电压,以便确定待被编程至相同目标电压的存储器单元的各种阈值电压。

列解码器150可以根据列地址CADD在输入/输出电路160和页面缓冲器组140之间按顺序传输数据DATA。

输入/输出电路160可以通过输入/输出线IO耦合至控制器1200。输入/输出电路160可以通过输入/输出线IO输入或输出命令CMD、地址ADD和数据DATA。例如,输入/输出电路160可以将通过输入/输出线IO接收的命令CMD和地址ADD传输到控制逻辑电路170,并且可以将通过输入/输出线IO接收的数据传输到页面缓冲器组140。输入/输出电路160可以通过输入/输出线IO将从页面缓冲器组140接收的数据输出到控制器1200。

控制逻辑电路170可以响应于命令CMD和地址ADD,输出操作代码OPc、行地址RADD、页面缓冲器控制信号PBSIG和列地址CADD。例如,控制逻辑电路170可以包括软件,诸如,按照命令CMD执行的算法,并且可以包括用于根据算法输出各种代码和信号的硬件。

控制逻辑电路170可以包括处理器PRC 70、地址解码器ADEC 71、信号生成器SIGGEN 72、操作代码生成器OPCGEN 73、验证确定器VFDET 74和验证计数器75。控制逻辑电路170的组件可以被实现为包括晶体管、运算放大器和电源中的至少一个的电路。

处理器70可以存储软件,该软件能够响应于命令CMD执行编程操作、读取操作或擦除操作的算法。在本实施例中,编程操作可以使用增量阶跃脉冲编程(ISPP)方法执行,在该方法中逐渐升高编程电压,直到所选存储器单元的阈值电压达到目标电压。ISPP方法的编程操作可以包括用于升高所选存储器单元的阈值电压的编程电压施加操作,以及用于确定所选存储器单元的阈值电压是否达到目标电压的验证操作。编程电压施加操作和验证操作可以形成单个编程循环,并且编程操作可以包括多个编程循环。

地址解码器71可以通过对接收到的地址ADD进行解码来输出行地址RADD和列地址CADD。信号生成器72可以在处理器70的控制下输出页面缓冲器控制信号PBSIG。

操作代码生成器73可以在处理器70或验证确定器74的控制下输出操作代码OPc。例如,操作代码生成器73可以在处理器70的控制下输出用于执行第一编程循环的操作代码OPc,并且可以在验证确定器74的控制下从第二编程循环输出操作代码OPc。

验证确定器74可以根据感测结果信号SRS从验证计数器75接收计数值,并且可以通过比较接收到的计数值来输出编程控制代码。编程控制代码可以被输入到操作代码生成器73。验证计数器75可以根据从操作代码生成器73输出的验证代码,来对验证操作的数目或验证电压的数目进行计数,并且可以在特定时间处重置计数值。

图3是图示存储器块的图。

参照图3,第k个存储器块MBk可以包括在源极线SL与第一至第n位线BL1至BLn(n是正整数)之间耦合的多个字符串ST。每个字符串ST可以包括在源极线SL与第一至第n位线BL1至BLn之间串联耦合的源极选择晶体管SST、第一至第八存储器单元C1至C8和漏极选择晶体管DST。即,单个字符串ST可以在单个位线(例如,BL1)与源极线SL之间耦合,并且字符串ST可以包括彼此串联耦合的源极选择晶体管SST、第一至第八存储器单元C1至C8和漏极选择晶体管DST。

由于图3所图示的第k存储器块MBk是图示存储器块的配置的示例,因此源极选择晶体管SST的数目、第一至第八存储器单元C1至C8的数目和漏极选择晶体管DST的数目并不限于图3所图示的数目。

耦合至不同字符串ST的源极选择晶体管SST的栅极可以耦合至源极选择线SSL,第一至第八存储器单元C1至C8的栅极可以分别耦合至第一至第八字线WL1至WL8,并且漏极选择晶体管DST的栅极可以耦合至漏极选择线DSL。

耦合至同一字线并且被包括在不同字符串ST中的存储器单元可以形成单个页面PG。存储器单元可以以页面PG为单位来编程或读取。配置有存储器单元的页面PG是物理页面,并且存储在物理页面中的数据可以是逻辑页面数据。即,多个逻辑页面的数据可以被存储在单个页面中,并且存储器单元的编程状态可以根据逻辑页面数据而变化。

第一至第n位线BL1至BLn可以分别耦合至被包括在页面缓冲器组140中的第一至第n页面缓冲器PB1至PBn。

第一至第n页面缓冲器PB1至PBn可以响应于页面缓冲器控制信号PBSIG同时操作。在编程操作期间,第一至第n页面缓冲器PB1至PBn可以响应于页面缓冲器控制信号PBSIG,将各种电压施加到第一至第n位线BL1至BLn中的相对应的位线。例如,在编程操作期间,第一至第n页面缓冲器PB1至PBn可以存储从控制器输入的数据,并且根据所存储的数据将编程许可电压或编程禁止电压施加到第一至第n页面缓冲器PB1至PBn。编程许可电压可以是0V,并且编程禁止电压可以是电源电压VCC。附加地,第一至第n页面缓冲器PB1至PBn可以响应于页面缓冲器控制信号PBSIG,将在编程许可电压与编程禁止电压之间的编程抑制电压施加到所选位线。

在编程验证操作期间,第一至第n页面缓冲器PB1至PBn可以存储根据第一至第n位线BL1至BLn的电压或电流而感测到的感测数据SDT,并且可以在每当验证操作响应于页面缓冲器控制信号PBSIG而被执行时,输出感测数据SDT。

图4是图示存储器单元的阈值电压分布的图。

参照图4,编程操作可以根据被存储在存储器单元中的位数而被分类为各种方法。例如,将3位数据存储在单个存储器单元中的方法被称为TLC方法,并且将4位数据存储在单个存储器单元中的方法被称为QLC方法。

在TLC方法中,存储器单元的状态可以被分类为擦除状态ER或者七种编程状态P1至P7中的任何一种。在QLC方法中,存储器单元的状态可以被分类为擦除状态ER或者15种编程状态P1至P15中的任何一种。

在单个存储器单元中可以被存储的位数可以是五位或更多位,并且本实施例不受被存储在存储器单元中的位数的限制。

由于存储器单元的阈值电压在有限的电压范围内变化,因此随着阈值电压分布的数目增加,与不同状态相对应的阈值电压分布之间的间隔可能会减小。随着阈值电压分布之间的间隔变窄,在读取操作期间检测到的误差位数可能会增加。

在本实施例中,将描述能够抑制存储器单元的阈值电压分布的扩展,并且能够提高编程操作速度的存储器设备以及操作存储器设备的方法。

图5是图示根据本公开的实施例的控制逻辑电路的图。

参照图5,控制逻辑电路170可以包括处理器70、信号生成器72、操作代码生成器73、验证确定器74和验证计数器75。

处理器70可以响应于接收到的命令CMD,控制信号生成器72和操作代码生成器73。例如,当针对编程操作的命令CMD被输入时,处理器70可以生成第一编程控制代码PCON1并将其输出到操作代码生成器73,并且可以生成信号控制信号SCON并将其输出到信号生成器72。第一编程控制代码PCON1可以是用于执行第一编程循环的信号,并且信号控制信号SCON可以是用于操作信号生成器72的信号。

信号生成器72可以响应于信号控制信号SCON来输出页面缓冲器控制信号PBSIG。页面缓冲器控制信号PBSIG可以包括用于控制页面缓冲器中所包括的多个开关的多个信号。

操作代码生成器73可以响应于第一编程控制代码PCON1或第二编程控制代码PCON2,输出操作代码OPc。例如,操作代码生成器73可以响应于第一编程控制代码PCON1,输出用于生成第一编程循环所需电压的操作代码OPc。根据操作代码OPc,电压生成器(图2中的110)可以生成编程电压和验证电压,并且在设定时间处输出所生成的电压。通过第二编程循环,操作代码生成器73可以响应于从验证确定器74输出的第二编程控制代码PCON2,输出操作代码OPc。操作代码生成器73可以将在它生成操作代码OPc时所生成的验证代码VC输出到验证计数器75。验证代码VC可以是用于生成验证电压的代码。当用于不同验证操作的验证电压被生成时,不同的验证代码VC可以被生成。

验证确定器74可以响应于感测结果信号SRS来输出输出信号SIGo,并且可以通过将从验证计数器75接收到的计数值CV与参考值REFV进行比较,来输出第二编程控制代码PCON2。

每当验证计数器75从操作代码生成器73接收到验证代码VC时,验证计数器75就对验证操作数目或验证电压数目进行计数,从而存储所累积的计数值CV。而且,验证计数器75可以存储在存储器设备的制造阶段被预设的参考值REFV。验证计数器75可以响应于输出信号SIGo,输出计数值CV和参考值REFV,并且可以根据实施例将所累积的计数值CV重置为初始值(例如,0)。

在上述设备之间,下面将描述本实施例的主要设备50。

图6是图示根据本公开实施例的操作代码生成器、验证确定器和验证计数器的图。

参照图6,操作代码生成器73可以包括编程操作控制器POC和验证操作控制器VOC。编程操作控制器POC可以响应于第一或第二编程控制代码PCON1或PCON2,输出编程代码PC,并且验证操作控制器VOC可以响应于第一或第二编程控制代码PCON1或PCON2,输出验证代码VC。操作代码生成器73可以使用编程代码PC和验证代码VC来输出操作代码OPc。例如,编程代码PC可以包括关于以下各项的信息:根据第一或第二编程控制代码PCON1或PCON2而变化的编程电压的水平、阶跃电压的水平,以及从电压生成器输出编程电压的时间。验证代码VC可以包括关于根据第一或第二编程控制代码PCON1或PCON2变化的验证电压的水平以及从电压生成器输出验证电压的时间的信息。因此,电压生成器(图2中的110)可以生成编程电压和验证电压作为操作电压Vop,编程电压和验证电压具有根据操作代码OPc而被设置的水平,并且可以在根据操作代码OPc所设置的时间处,选择性地输出编程电压或验证电压。

当验证操作控制器VOC输出验证代码VC以便生成操作代码OPc时,验证操作控制器VOC可以将验证代码VC输出到验证计数器75。

验证确定器74可以包括第一确定器1DET和第二确定器2DET。第一确定器1DET可以响应于感测结果信号SRS来输出输出信号SIGo和编程处理代码PPC。例如,当与通过信号相对应的感测结果信号SRS被输入时,第一确定器1DET可以输出用于输出计数值CV的输出信号SIGo以及用于编程终止的编程处理代码PPC,并且当与失败信号相对应的感测结果信号SRS被输入时,可以输出用于输出计数值CV的输出信号以及用于下一编程循环的编程处理代码PPC。

第二确定器2DET可以将计数值CV和参考值REFV彼此进行比较,并且根据比较结果输出验证处理代码VPC。计数值CV可以是在所选存储器块或所选页面中被执行的验证操作数目、或者是在所选存储器块或所选页面中使用的验证电压数目。参考值REFV可以是正常存储器单元的验证操作通过的平均次数,并且可以通过存储器设备的测试操作来获取。参考值REFV可以在存储器设备的制造阶段预先被存储在验证确定器74中,并且可以根据存储器设备而变化。

第二确定器2DET可以包括用于存储参考值REFV的存储装置,但是用于存储参考值REFV的存储装置可以单独设置在第二确定器2DET的外部。当存储参考值REFV的存储装置设置在第二确定器2DET的外部时,存储装置可以在计数值CV被输入到第二确定器2DET时,将参考值REFV输出到第二确定器2DET。第二确定器2DET可以针对以下各项的相应情况输出不同的验证处理代码VPC:计数值CV小于参考值REFV、计数值CV大于参考值REFV,以及计数值CV等于参考值REFV。

验证确定器74可以使用编程处理代码PPC和验证处理代码VPC,来输出第二编程控制代码PCON2。

验证计数器75可以包括计数器控制器CT_CON和计数器CT。计数器控制器CT_CON可以响应于输出信号SIGo输出计数器代码CTC。例如,响应于输出信号SIGo,计数器控制器CT_CON可以输出用于输出计数器CT中所存储的计数值CV的计数器代码CTC,或者输出用于重置计数器CT的计数器代码CTC。

计数器CT可以通过对根据验证代码VC而被执行的验证操作的次数或验证电压的数目进行计数来存储计数值CV。计数器CT可以响应于计数器代码CTC,将计数值CV重置为0,或者可以将所存储的计数值CV输出到第二确定器2DET。

图7是图示ISPP方法的编程操作的图。

参照图7,ISPP方法的编程操作可以包括多个编程循环1PL、2PL、3PL、…。单个编程循环可以包括编程电压施加操作和一个或多个验证操作。例如,可以在第一编程循环1PL中执行使用第一编程电压1Vpgm的编程电压施加操作、使用第一验证电压1Vf的第一验证操作,以及使用第二验证电压2Vf的第二验证操作。

当在第一编程循环1PL中被执行的第一和第二验证操作中的至少一个失败时,第二编程循环2PL可以被执行。如果第一编程循环1PL的第一和第二验证操作中的所有验证操作都失败,则第一和第二验证操作也在第二编程循环2PL中被执行。

在第二编程循环2PL中,可以使用第二编程电压2Vpgm,该第二编程电压2Vpgm比第一编程电压1Vpgm高出阶跃电压Vst,并且可以添加使用第三验证电压3Vf的第三验证操作。当在第二编程循环2PL中被执行的第一至第三验证操作中的至少一个失败时,第三编程循环3PL可以被执行。如果在第二编程循环2PL中被执行的第一验证操作通过,但是在其中被执行的第二和第三验证操作失败,则第一验证操作在第三编程循环3PL中不被执行。

在第三编程循环3PL中,可以执行使用第三编程电压3Vpgm的编程电压施加操作,该第三编程电压3Vpgm比第二编程电压2Vpgm高出阶跃电压Vst,并且使用第二至第四验证电压2Vf至4Vf的第二至第四验证操作可以顺序地被执行。

由于图7所图示的ISPP方法的编程操作是图示正常编程操作的示例,因此编程电压施加操作的数目和验证操作的数目并不限于附图所图示的数目。如图7所图示的,每当执行编程循环时,就将编程电压升高具有预定水平的阶跃电压Vst。然而,由于被执行了编程操作的存储器单元可以具有不同的电特性,因此编程速度在每个存储器单元中也可以不同。例如,可能存在相对较快地将其阈值电压升高第一编程电压1Vpgm的存储器单元,以及相对较慢地将其阈值电压升高第一编程电压1Vpgm的存储器单元。在这种情况下,在编程操作时间和存储器单元的阈值电压分布方面可能存在差异。本文关于参数所使用的词语“预定”(诸如,预定水平、预定时段和预定时段),意味着该参数的值在参数被用于过程或算法之前被确定。针对一些实施例,参数的值在过程或算法开始之前被确定。在其他实施例中,该参数的值在过程或算法期间被确定,但这在参数被用于该过程或算法之前。

这将参照以下附图进行描述。

图8是图示慢速单元和快速单元的图。

参照图8,快速地将其阈值电压升高相同的编程电压的存储器单元被定义为快速单元Cf,并且缓慢地将其阈值电压升高相同的编程电压的存储器单元被定义为慢速单元Cs。在慢速单元Cs和快速单元Cf具有相同的阈值电压的状态81下,当编程电压被施加到所选字线时,阈值电压分布82可以具有第一宽度1Wt,因为慢速单元Cs的阈值电压缓慢地升高。然而,由于快速单元Cf的阈值电压快速地升高,因此阈值电压分布83可以具有大于第一宽度1Wt的第二宽度2Wt。即,由于与慢速单元Cs的阈值电压相比,快速单元Cf的阈值电压更快地升高相同的编程电压,因此快速单元Cf的编程操作速度可以高于慢速单元Cs的编程操作速度。然而,由于快速单元Cf的阈值电压分布83的宽度2Wt被形成为大于慢速单元Cs的阈值电压分布82的宽度1Wt,因此极有可能的是与不同状态相对应的阈值电压分布可能会彼此重叠。

在本实施例中,编程操作根据在编程操作中被执行的验证操作的数目或验证电压的数目来调整,由此可以提高编程操作速度和阈值电压分布。

图9是图示根据本公开的第一实施例的编程操作的流程图。

参照图9,在第一实施例中,针对编程电压的阶跃电压可以根据在每个编程循环或在预定时段内的编程循环中被执行的验证操作的数目或验证电压的数目而被改变。

当验证操作的计数值大于参考值时,即使编程循环的数目增加,这也指示了存在其阈值电压未达到目标电压的大量存储器单元,并且指示了慢速单元被包括在所选存储器块或所选页面中。当编程循环的数目增加时,如果验证操作的计数值小于参考值,则这指示了存在其阈值电压达到目标电压的大量存储器单元,并且指示了许多快速单元被包括在所选存储器块或所选页面中。当编程循环的数目增加时,如果验证操作的计数值等于参考值,则这指示快速单元或慢速单元未被包括在所选存储器块或所选页面中并且在其中包括正常单元。

由于存储器单元的制造过程的特性,包括在相同存储器块或相同页面中的存储器单元可以具有类似的电特性。在这种情况下,在所选存储器块或所选页面中所包括的所有存储器单元可以具有慢速单元的特性、快速单元的特性或者正常单元的特性。

基于上述原理,下面将描述根据本公开的第一实施例的编程操作。

当编程操作开始时,在步骤S91中,计数值CV可以被设置为0作为初始值,并且阶跃电压Vst可以被设置为第一阶跃电压1Vst。计数值CV可以是所使用的验证操作的数目或验证电压的数目,并且可以在编程操作开始之前或者当编程操作开始时,被设置为初始值。第一阶跃电压1Vst是默认设置的电压,并且可以是在ISPP方法的编程操作中逐渐升高的编程电压之间的电压差。

随后,可以执行第一编程循环。在第一编程循环中,操作代码生成器(图5中的73)可以根据从处理器(图5中的70)输出的第一编程控制代码PCON1,生成操作代码OPc,并且电压生成器(图2中的110)可以响应于操作代码OPc生成编程电压Vpgm。

可以在步骤S92中执行编程电压施加操作,该编程电压施加操作被配置为将由电压生成器110生成的编程电压Vpgm施加到所选字线。编程电压Vpgm可以被施加到所选字线,并且通过电压可以被施加到剩余的未被选择的字线。编程电压Vpgm可以是用于升高存储器单元的阈值电压的电压,并且通过电压可以是用于通过导通存储器单元在字符串中形成信道的电压。

在编程电压Vpgm被施加到所选字线达预定时段之后,可以在步骤S93中执行耦合至所选字线的存储器单元的验证操作,即,所选页面的验证操作。在验证操作期间,验证电压可以被施加到所选字线,并且通过电压可以被施加到未被选择的字线。当验证操作被执行一次时,计数值CV可以增大1。因此,计数值CV可以是1。

验证确定器(图6中的74)可以确定验证操作的结果是通过或是失败。例如,当感测结果信号(图6中的SRS)是对应于通过的信号时,所选页面的编程操作可以被终止。然而,当感测结果信号SRS是对应于失败的信号时,验证确定器74可以将计数值CV与参考值REFV进行比较。

例如,验证确定器74可以在步骤S95中确定计数值CV是否等于参考值REFV。当计数值CV等于参考值REFV(步骤S95中的是)时,在步骤S96中将阶跃电压Vst维持在第一阶跃电压1Vst,并且可以在步骤S100中将计数值CV重置为0。

当计数值CV与参考值REFV不同(步骤S95中的否)时,验证确定器74可以在步骤S97中确定计数值CV是否大于参考值REFV。当计数值CV大于参考值REFV时(是),可以在步骤S98中将阶跃电压Vst设置为高于第一阶跃电压1Vst的第二阶跃电压2Vst。即,当计数值CV大于参考值REFV时,这指示了所选页面包括其阈值电压未达到目标电压的慢速单元。因此,阶跃电压Vst可以被设置为更高的第二阶跃电压2Vst,以便快速地升高慢速单元的阈值电压。

当计数值CV不大于参考值REFV(步骤S97中的否)时,阶跃电压Vst可以在步骤S99中被设置为低于第一阶跃电压1Vst的第三阶跃电压3Vst。即,当计数值CV小于参考值REFV时,这指示了在所选页面中所包括的存储器单元包括快速单元。因此,为了缓慢地升高快速单元的阈值电压,阶跃电压Vst可以被设置为更低的第三阶跃电压3Vst。此处,第一至第三阶跃电压1Vst至3Vst中的所有阶跃电压都是高于0V的正电压。

当阶跃电压Vst在步骤S98或S99中被设置时,计数值CV可以在步骤S100中被重置为0。

当计数值CV在步骤S100中被重置时,可以编程电压Vpgm在步骤S101中被设置为比先前的编程电压Vpgm高出阶跃电压Vst的电压。此处,阶跃电压Vst可以是在步骤S96、S98或S99中bei设置的电压。通过第二编程循环,编程电压Vpgm根据先前的编程循环的验证操作的结果而改变。因此,操作代码生成器(图6中的73)可以根据从验证确定器(图6中的74)输出的第二编程控制代码PCON2来生成操作代码OPc。

随后,可以使用在步骤S101中被设置的编程电压Vpgm,在步骤S92中执行编程电压施加操作。

根据上述过程,可以重复地执行步骤S92至S101,直到在步骤S94中验证操作通过。

当根据第一实施例执行编程操作时,下面将描述正常单元被包括在所选页面中的情况、慢速单元被包括在所选页面中的情况,以及快速单元被包括在所选页面中的情况。

图10是图示当在第一实施例中计数值大于参考值时的编程操作的图。

参照图10,多个编程循环可以被分组为在本实施例中具有预设数目的编程循环的多个集合。计数值CV可以在每当编程循环被改变时被重置,如参照图9描述的,或者可以在每当集合被改变时被重置。编程循环被改变的含义可以是被用于编程电压施加操作的编程电压被改变。在图10中,在实施例中,计数值CV在每当集合被改变时被重置。例如,第一集合SET1可以包括第一和第二编程循环,并且第二集合SET2可以包括第三和第四编程循环。在图10中,图示了两个编程循环被包括在单个集合中的示例,但是这仅是用于帮助理解描述的实施例。因此,在单个集合中所包括的编程循环的数目可以根据存储器设备来改变。

当第一编程循环开始时,第一编程电压1Vpgm可以被施加到所选字线。由于验证操作尚未被执行,因此计数值CV是0。

可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。然后,可以执行使用第二验证电压2Vf的第二验证操作。当第二验证操作被执行时,计数值CV变为2。

当确定第一和第二验证操作中的所有验证操作都失败时,可以执行针对下一编程操作的第二编程循环。

在第二编程循环中使用的第二编程电压2Vpgm可以是比第一编程电压1Vpgm高出第一阶跃电压1Vst的电压。第一阶跃电压1Vst可以是默认设置的阶跃电压。由于计数值CV针对图10中的每个集合而被确定,因此在第一编程循环被终止之后,计数值CV未被确定。因此,比第一编程电压1Vpgm高出第一阶跃电压1Vst的第二编程电压2Vpgm可以被用于第二编程循环中。当执行使用第二编程电压2Vpgm的编程操作时,计数值被维持在2。

在第二编程循环中,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为3。然后,可以执行使用第二验证电压2Vf的第二验证操作。当第二验证操作被执行时,计数值CV变为4。然后,可以执行使用第三验证电压3Vf的第三验证操作。当第三验证操作被执行时,计数值CV变为5。当第二编程循环被设置以执行到第三验证操作时,计数值CV可以在第三验证操作被执行之后与参考值REFV进行比较。当参考值REFV被设置为5时并且当计数值CV为5时,由于计数值CV等于参考值REFV,因此可以第一阶跃电压1Vst可以被维持(①)。这指示慢速单元或快速单元的特性未出现在所选页面中,直到第一集合SET1为止。

当第二集合SET2的第三编程循环开始时,计数值CV被重置为0,并且比第二编程电压2Vpgm高出第一阶跃电压1Vst的第三编程电压3Vpgm可以被施加到所选字线。

在第三编程循环中,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。然后,当使用第二验证电压2Vf的第二验证操作被执行时,计数值CV变为2。当分别使用第三和第四验证电压3Vf和4Vf的第三和第四验证操作被顺序地执行时,计数值CV变为4。

当第三编程循环被设置以便执行到第四验证操作时,可以在执行第四验证操作之后确定第一至第四验证操作中的所有验证操作是否都通过。当第一验证操作通过时并且当第二至第四验证操作被确定失败时,可以执行第四编程循环。

当设置了被用于第四编程循环中的第四编程电压4Vpgm时,由于第一阶跃电压1Vst被维持,因此可以将第四编程电压4Vpgm设置为比第三编程电压3Vpgm高出第一阶跃电压1Vst的电压。

在第四编程电压4Vpgm被施加到所选字线达预定时段之后,分别使用第二至第四验证电压2Vf至4Vf的第二至第四验证操作可以被顺序地执行。由于第一验证操作在第三编程循环中通过,因此在第四编程循环中不执行第一验证操作。

当第二至第四验证操作在第四编程循环中被执行时,计数值CV变为7。

在第四验证操作被执行之后,计数值CV可以与参考值REFV进行比较。由于计数值CV在第四编程循环中为7,因此计数值CV大于参考值REFV。因此,阶跃电压Vst可以被设置为更高的第二阶跃电压2Vst(②)。

这指示慢速单元的特性出现在第二集合SET2中的所选页面中。因此,可以通过第三集合SET3使用比第四编程电压4Vpgm高出第二阶跃电压2Vst的第五编程电压5Vpgm。

图11是图示根据第一实施例的当计数值小于参考值时的编程操作的图。

参照图11,多个编程循环可以被分组为在本实施例中具有预设数目的编程循环的多个集合。计数值CV可以在每当编程循环被改变时,被重置,如参照图9所描述的,或者可以在每当集合被改变时被重置。在图11中,图示了计数值CV在每当集合被改变时被重置的实施例。例如,第一集合SET1可以包括第一和第二编程循环,并且第二集合SET2可以包括第三和第四编程循环。在图11中,图示了两个编程循环被包括在单个集合中的示例,但这仅是用于帮助理解描述的实施例。因此,可以根据存储器设备来改变在单个集合中所包括的编程循环的数目。

当第一编程循环开始时,第一编程电压1Vpgm可以被施加到所选字线。由于验证操作尚未被执行,因此计数值CV是0。

可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。然后,可以执行使用第二验证电压2Vf的第二验证操作。当第二验证操作被执行时,计数值CV变为2。

当确定第一和第二验证操作中的所有验证操作都失败时,可以执行下一编程操作的第二编程循环。

在第二编程循环中使用的第二编程电压2Vpgm可以是比第一编程电压1Vpgm高出第一阶跃电压1Vst的电压。第一阶跃电压1Vst可以是默认设置的阶跃电压。由于计数值CV针对图11中的每个集合而被确定,因此在第一编程循环被终止之后不确定计数值CV。因此,在第二编程循环中可以使用比第一编程电压1Vpgm高出第一阶跃电压1Vst的第二编程电压2Vpgm。当执行使用第二编程电压2Vpgm的编程操作时,计数值被维持在2。

在第二编程循环中,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为3。然后,可以执行使用第二验证电压2Vf的第二验证操作。当第二验证操作被执行时,计数值CV变为4。然后,可以执行使用第三验证电压3Vf的第三验证操作。当第三验证操作被执行时,计数值CV变为5。当第二编程循环被设置以执行到第三验证操作时,计数值CV可以在第三验证操作被执行之后,与参考值REFV进行比较。当参考值REFV被设置为5时并且当计数值CV为5时,由于计数值CV等于参考值REFV,因此第一阶跃电压1Vst可以被维持(③)。这指示慢速单元或快速单元的特性未出现在所选页面中,直到第一集合SET1为止。

当第二集合SET2的第三编程循环开始时,计数值CV被重置为0,并且比第二编程电压2Vpgm高出第一阶跃电压1Vst的第三编程电压3Vpgm可以被施加到所选字线。

当在第二编程循环中执行的第一和第二验证操作通过时,分别使用第三和第四验证操作3Vf和4Vf的第三和第四验证操作可以在第三编程循环中被顺序地执行,并且由于两个验证操作被执行,因此计数值CV变为2。

当第三编程循环被设置以执行到第四验证操作时,可以在第四验证操作被执行之后确定第三和第四验证操作中的所有验证操作是否都通过。当确定第三和第四验证操作中的所有验证操作都失败时,可以执行第四编程循环。

当设置被用于第四编程循环中的第四编程电压4Vpgm时,由于第一阶跃电压1Vst被维持,因此可以将第四编程电压4Vpgm设置为比第三编程电压3Vpgm高出第一阶跃电压1Vst的电压。

在第四编程电压4Vpgm被施加到所选字线达预定时段之后,分别使用第三和第四验证电压3Vf和4Vf的第三和第四验证操作可以被顺序地执行。

当在第四编程循环中执行第三和第四验证操作时,计数值CV变为4。

计数值CV可以在第四验证操作被执行之后,与参考值REFV进行比较。由于计数值CV在第四编程循环中为4,因此确定计数值CV小于参考值REFV,并且阶跃电压Vst可以被设置为低于第一阶跃电压1Vst的第三阶跃电压3Vst(④)。

由于这指示了快速单元的特性在第一和第二集合SET1和SET2期间出现在所选页面中,因此可以通过第三集合SET3使用第五编程电压5Vpgm,该第五编程电压5Vpgm比第四编程电压4Vpgm高出第三阶跃电压3Vst,以便防止阈值电压分布之间的间隔增大。

图12是图示根据本公开第二实施例的编程操作的流程图。

参照图12,在第二实施例中,计数值CV可以连续地增大,直到所选页面的编程操作完成为止。例如,第一实施例被配置为使得计数值CV在每当特定编程循环或集合开始时被重置,但是第二实施例被配置为使得计数值C V直到所选页面的编程操作完成后才被重置。在第二实施例中,计数值CV在所选页面的编程操作被终止时与参考值进行比较,并且下一所选页面的阶跃电压Vst可以根据比较结果而被设置。

下面将描述根据本公开的第二实施例的编程操作。

在步骤S121中,计数值CV可以在编程操作开始时,被设置为0作为初始值。可以将阶跃电压Vst维持在先前页面中设置的电压,并且当第一页面是所选页面时,可以将阶跃电压Vst设置为第一阶跃电压1Vst,该第一阶跃电压1Vst是默认电压。

计数值CV可以是所使用的验证操作数目或验证电压数目,并且可以在编程操作开始之前或者在编程操作开始时,被设置为初始值。

随后,第一编程循环可以被执行。在第一编程循环中,操作代码生成器(图5中的73)可以根据从处理器(图5中的70)输出的第一编程控制代码PCON1生成操作代码OPc,并且电压生成器(图2中的110)可以响应于操作代码OPc,生成编程电压Vpgm。

可以在步骤S122中执行编程电压施加操作,该编程电压施加操作被配置为由电压生成器110生成的编程电压Vpgm被施加到所选字线。编程电压Vpgm可以被施加到所选字线,并且通过电压可以被施加到剩余的未被选择的字线。编程电压Vpgm可以是用于升高存储器单元的阈值电压的电压,并且通过电压可以是用于通过导通存储器单元在字符串中形成信道的电压。

在编程电压Vpgm被施加到所选字线达预定时段之后,可以在步骤S123中执行耦合至所选字线的存储器单元的验证操作,即,所选页面的验证操作。在验证操作期间,验证电压可以被施加到所选字线,并且通过电压可以被施加到未被选择的字线。当验证操作被执行一次时,计数值CV可以增大1。因此,计数值CV可以变为1。当在步骤S123中多个验证操作被执行时,可以将计数值CV增大所执行的验证操作的数目。

随后,可以在步骤S124中执行确定在步骤S123中执行的验证操作或全部多个验证操作是否都通过。当在步骤S124中确定至少一个验证操作失败时,编程电压Vpgm可以在步骤S125中被设置为升高阶跃电压Vst,以便执行下一编程循环。

在第二实施例中,由于在所选页面的编程操作期间未改变阶跃电压Vst,因此初始设置的阶跃电压Vst可以被连续地使用。当编程电压Vpgm在步骤S125中被最新设置为升高阶跃电压Vst时,可以使用最新设置的编程电压Vpgm在步骤S122中执行下一编程循环。通过这种方式,步骤S122至S125可以被重复地执行,直到在步骤S124中确定结果为通过为止。

当在步骤S124中确定所选页面的验证操作或全部多个验证操作通过时,验证确定器(图6中的74)可以将计数值CV与参考值REFV进行比较。

验证确定器74可以在步骤S126中确定计数值CV是否等于参考值REFV。当计数值CV等于参考值REFV(是)时,可以在步骤S127中将阶跃电压Vst维持在第一阶跃电压1Vst。

当计数值CV与参考值REFV不同(步骤S126中的否)时,验证确定器74可以在步骤S128中确定计数值CV是否大于参考值REFV。当计数值CV大于参考值REFV(是)时,阶跃电压Vst可以在步骤S129中被设置为高于第一阶跃电压1Vst的第二阶跃电压2Vst。即,当计数值CV大于参考值REFV时,这指示所选页面中包括其阈值电压未达到目标电压的慢速单元。因此,阶跃电压Vst可以被设置为更高的第二阶跃电压2Vst,以便快速地升高慢速单元的阈值电压。

当计数值CV不大于参考值REFV(步骤S128中的否)时,阶跃电压Vst可以在步骤S130中被设置为低于第一阶跃电压1Vst的第三阶跃电压3Vst。由于仅当在步骤S126中确定计数值CV不等于参考值REFV时执行步骤S128,因此当在步骤S128中确定计数值CV不大于参考值REFV时,从该情况中排除计数值CV等于参考值REFV的情况。

当计数值CV小于参考值REFV时,这指示了在所选页面中所包括的存储器单元包括快速单元。因此,阶跃电压Vs t可以被设置为低于第一阶跃电压1Vst的第三阶跃电压3Vst,以便缓慢地升高快速单元的阈值电压。此处,第一至第三阶跃电压1Vst至3Vst中的所有阶跃电压都是高于0V的正电压。

当阶跃电压Vst在步骤S127、S129或S130中被设置时,所选页面的编程操作被终止,并且在步骤S127、S129或S130中设置的阶跃电压Vst可以在下一页面的编程操作中被设置为默认阶跃电压。

当执行根据第二实施例的编程操作时,下面将描述以下各种相应情况:正常单元被包括在所选页面中、慢速单元被包括在其中,以及快速单元被包括在其中。

图13是图示当在第二实施例中计数值等于参考值时的编程操作的图。

参照图13,第一编程循环可以在第一阶跃电压1Vst被设置为默认电压,并且计数值CV被重置为0的状态下被执行。

当第一编程循环开始时,第一编程电压1Vpgm可以被施加到所选字线。此处,由于验证操作尚未被执行,因此计数值CV是0。

在第一编程电压1Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。然后,可以执行使用第二验证电压2Vf的第二验证操作。当第二验证操作被执行时,计数值CV变为2。

当确定第一和第二验证操作中的所有验证操作都失败时,可以执行下一编程操作的第二编程循环。

在第二编程循环中使用的第二编程电压2Vpgm可以是比第一编程电压1Vpgm高出第一阶跃电压1Vst的电压。当第二编程电压2Vpgm被施加到所选字线时,可以将计数值CV维持在作为先前值的2。

在第二编程电压2Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为3。通过这种方式,分别使用第二和第三验证电压2Vf和3Vf的第二和第三验证操作可以被顺序地执行。由于在第二编程循环中两个验证操作(第二和第三验证操作)在第一验证操作之后被执行,因此计数值CV变为5。

当在第二编程循环中被执行的第一至第三验证操作中的至少一个失败时,第三编程循环可以被执行。例如,当在第二编程循环中执行的第一至第三验证操作之中的、第一验证操作通过并且第二和第三验证操作失败时,第三编程循环可以被执行,并且第一验证操作不从第三编程循环中被执行。

当第三编程循环开始时,第三编程电压3Vpgm可以被施加到所选字线,该第三编程电压3Vpgm比第二编程电压2Vpgm高出第一阶跃电压1Vst。然后,使用第二至第四验证电压2Vf至4Vf的第二至第四验证操作可以被顺序地执行。由于在第三编程循环中三个验证操作(第二至第四验证操作)被执行,因此计数值CV变为8。

当在第三编程循环中执行的第二至第四验证操作中的至少一个失败时,第四编程循环可以被执行。例如,当在第三编程循环中被执行的第二至第四验证操作中的所有验证操作都失败时,第四编程循环可以被执行。

当第四编程循环开始时,第四编程电压4Vpgm可以被施加到所选字线,该第四编程电压4Vpgm比第三编程电压3Vpgm高出第一阶跃电压1Vst。然后,使用第二至第四验证电压2Vf至4Vf的第二至第四验证操作可以被顺序地执行。由于在第四编程循环中三个验证操作(第二至第四验证操作)被执行,因此计数值CV变为11。

当在第四编程循环中执行的第二至第四验证操作中的所有验证操作都通过时,所选页面的编程操作可以被终止。此处,可以将计数值CV与参考值REFV进行比较。当计数值CV等于参考值REFV(图12中的S127)时,第一阶跃电压1Vst被维持,并且所维持的第一阶跃电压1Vst可以被用作下一页面的编程操作中的阶跃电压Vst。

即,当计数值CV等于参考值REFV时,这指示在所选页面中所包括的存储器单元是正常单元。因此,阶跃电压Vst可以被维持在作为默认电压的第一阶跃电压1Vst。

图14是图示当在第二实施例中计数值大于参考值时的编程操作的图。

参照图14,第一编程循环可以在第一阶跃电压1Vst被设置为默认电压,并且计数值CV被重置为0的状态下被执行。

当第一编程循环开始时,第一编程电压1Vpgm可以被施加到所选字线。此处,由于验证操作尚未被执行,因此计数值CV是0。

在第一编程电压1Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。然后,可以执行使用第二验证电压2Vf的第二验证操作。当第二验证操作被执行时,计数值CV变为2。

当确定第一和第二验证操作中的所有验证操作都失败时,可以执行下一编程操作的第二编程循环。

在第二编程循环中使用的第二编程电压2Vpgm可以是比第一编程电压1Vpgm高出第一阶跃电压1Vst的电压。当第二编程电压2Vpgm被施加到所选字线时,计数值CV可被将维持在作为先前值的2。

在第二编程电压2Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为3。通过这种方式,分别使用第二和第三验证电压2Vf和3Vf的第二和第三验证操作可以被顺序地执行。由于两个验证操作(第二和第三验证操作)在第二编程循环中的第一验证操作之后被执行,因此计数值CV变为5。

当在第二编程循环中执行的第一至第三验证操作中的至少一个失败时,第三编程循环可以被执行。例如,当在第二编程循环中执行的第一至第三验证操作之中的第一验证操作通过并且第二和第三验证操作失败时,第三编程循环可以被执行,并且第一验证操作不从第三编程循环中被执行。

当第三编程循环开始时,第三编程电压3Vpgm可以被施加到所选字线,该第三编程电压3Vpgm比第二编程电压2Vpgm高出第一阶跃电压1Vst。然后,使用第二至第四验证电压2Vf至4Vf的第二至第四验证操作可以被顺序地执行。由于三个验证操作(第二至第四验证操作)在第三编程循环中被执行,因此计数值CV变为8。

当在第三编程循环中执行的第二至第四验证操作中的至少一个失败时,第四编程循环可以被执行。例如,当在第三编程循环中被执行的第二至第四验证操作中的所有验证操作都失败时,第四编程循环可以被执行。

当第四编程循环开始时,第四编程电压4Vpgm可以被施加到所选字线,该第四编程电压4Vpgm比第三编程电压3Vpgm高出第一阶跃电压1Vst。然后,使用第二至第四验证电压2Vf至4Vf的第二至第四验证操作可以被顺序地执行。由于三个验证操作(第二至第四验证操作)在第四编程循环中被执行,因此计数值CV变为11。

当在第四编程循环中被执行的第二至第四验证操作中的至少一个失败时,第五编程循环可以被执行。例如,当在第四编程循环中被执行的第二至第四验证操作之中的第二验证操作通过并且第三和第四验证操作失败时,第五编程循环可以被执行,并且第二验证操作不从第五编程循环中被执行。

当第五编程循环开始时,第五编程电压5Vpgm可以被施加到所选字线,该第五编程电压5Vpgm比第四编程电压4Vpgm高出第一阶跃电压1Vst。然后,使用第三和第四验证电压3Vf和4Vf的第三和第四验证操作可以被顺序地执行。由于两个验证操作(第三和第四验证操作)在第五编程循环中被执行,因此计数值CV变为13。

当在第五编程循环中被执行的第三和第四验证操作中的所有验证操作都通过时,所选页面的编程操作可以被终止。

计数值CV可以在所选页面的编程操作被终止时,与参考值REFV进行比较。当作为比较结果计数值CV大于参考值REFV(图12中的S129)时,阶跃电压Vst被改变为高于第一阶跃电压1Vst的第二阶跃电压2Vst,并且第二阶跃电压2Vst可以被用作下一页面的编程操作中的阶跃电压Vst。

即,当计数值CV大于参考值REFV时,这指示包括在所选页面中的存储器单元包括慢速单元。因此,编程操作速度可以通过升高阶跃电压Vst来提高。

图15是图示当在第二实施例中计数值小于参考值时的编程操作的图。

参照图15,第一编程循环可以在第一阶跃电压1Vst被设置为默认电压,并且计数值CV被重置为0的状态下执行。

当第一编程循环开始时,第一编程电压1Vpgm可以被施加到所选字线。此处,由于验证操作尚未被执行,因此计数值CV是0。

在第一编程电压1Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。然后,使用第二验证电压2Vf的第二验证操作可以被执行。当第二验证操作被执行时,计数值CV变为2。

当确定第一和第二验证操作中的所有验证操作都失败时,可以执行下一编程操作的第二编程循环。

在第二编程循环中所使用的第二编程电压2Vpgm可以是比第一编程电压1Vpgm高出第一阶跃电压1Vst的电压。当第二编程电压2Vpgm被施加到所选字线时,计数值CV可以被维持在作为先前值的2。

在第二编程电压2Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为3。通过这种方式,分别使用第二和第三验证电压2Vf和3Vf的第二和第三验证操作可以被顺序地执行。由于两个验证操作(第二和第三验证操作)在第二编程循环中的第一验证操作之后被执行,因此计数值CV变为5。

当在第二编程循环中被执行的第一至第三验证操作中的至少一个失败时,第三编程循环可以被执行。例如,当在第二编程循环中执行的第一至第三验证操作之中的第一验证操作通过并且第二和第三验证操作失败时,第三编程循环可以被执行,并且第一验证操作不从第三编程循环中被执行。

当第三编程循环开始时,第三编程电压3Vpgm可以被施加到所选字线,该第三编程电压3Vpgm比第二编程电压2Vpgm高出第一阶跃电压1Vst。然后,使用第二至第四验证电压2Vf至4Vf的第二至第四验证操作可以被顺序地执行。由于三个验证操作(第二至第四验证操作)在第三编程循环中被执行,因此计数值CV变为8。

当在第三编程循环中被执行的第二至第四验证操作中的所有验证操作都通过时,所选页面的编程操作可以被终止。

当所选页面的编程操作被终止时,可以将计数值CV与参考值REFV进行比较。当作为比较结果计数值CV小于参考值REFV(图12中的S130)时,阶跃电压Vst被改变为低于第一阶跃电压1Vst的第三阶跃电压3Vst,并且第三阶跃电压3Vst可以被用作下一页面的编程操作中的阶跃电压Vst。

即,当计数值CV小于参考值REFV时,这指示了所选页面不包括慢速单元但包括快速单元。因此,降低阶跃电压Vst,由此可以防止存储器单元的阈值电压分布之间的间隔增大。

图16是图示根据本公开的第三实施例的编程操作的流程图。

参照图16,在第三实施例中,可以根据在编程操作中执行的验证操作数目,将所选存储器块处理为坏块。下面将描述根据第三实施例的编程操作。

当编程操作开始时,在步骤S161中,计数值CV可以被设置为0作为初始值,并且阶跃电压Vst可以被设置为第一阶跃电压1Vst。计数值CV可以是在验证操作中所使用的验证操作的数目或验证电压的数目,并且计数值CV可以在编程操作开始之前或者在编程操作开始时被设置为初始值。第一阶跃电压1Vst是默认设置的电压,并且可以是在ISPP方法的编程操作中逐渐升高的编程电压之间的电压差。

当计数值CV和阶跃电压Vst被设置时,编程电压Vpgm可以在步骤S162中被施加到所选字线。例如,编程电压Vpgm可以被施加到所选字线,并且通过电压可以被施加到未被选择的字线。编程电压Vpgm可以是用于升高存储器单元的阈值电压的电压,并且通过电压可以是用于通过导通存储器单元在字符串中形成信道的电压。

在编程电压Vpgm被施加到所选字线达预定时段之后,可以在步骤S163中执行耦合至所选字线的存储器单元的验证操作,即,所选页面的验证操作。在验证操作期间,验证电压可被将施加到所选字线,并且通过电压可以被施加到未被选择的字线。当验证操作被执行一次时,计数值CV可以增大1。因此,当多个验证操作在单个编程循环中被执行时,可以将计数值CV增大所执行的验证操作的数目。

当所选页面的验证操作在步骤S163中被终止时,可以在步骤S164中执行以下用于确定计数值CV是否大于参考值REFV的操作。

当确定计数值CV等于或小于参考值REFV(否)时,可以在步骤S166中执行以下操作:确定在步骤S163中被执行的验证操作的结果。

当在步骤S166中确定所有验证操作都通过时,所选页面的编程操作可以被终止。当在步骤S166中确定在验证操作之中存在失败的验证操作时,计数值CV在步骤S167中被重置,并且编程电压Vpgm可以在步骤S168中被最新设置为升高了第一阶跃电压1Vst的电压。可以使用被最新设置的编程电压Vpgm来执行步骤S162。

步骤S162至S168可以被重复地执行,直到在步骤S166中所有验证操作都通过。

然而,当在步骤S164中确定计数值CV大于参考值REFV(是)时,所选存储器块的编程操作被终止,并且在步骤S165中所选存储器块可以被处理为坏块。当计数值CV大于参考值REFV时,这指示慢速单元被包括在所选页面中。这些慢速单元可以是其电特性相对来说极有可能退化的单元,与其他存储器单元相比,当重复所选存储器块的编程和擦除操作时,并且在所选存储器块中当其电特性降低的存储器单元的数目增加时,所选存储器块变为坏块的可能性增加。因此,为了防止出现以下情况:存储有效数据的存储器块突然变为坏块并且无法重新存储数据,使用计数值CV将极有可能是坏块的存储器块预先处理为坏块,由此可以提高存储器设备的可靠性。

被处理为坏块的存储器块可以被处理使得在以下编程操作中禁止对其进行访问。例如,控制器(图1中的1200)可以存储被指定为坏块的存储器块的地址,并且在执行编程操作时,可以通过引用被指定为坏块的存储器块的地址,仅分配正常存储器块作为用于存储数据的块。

图17是图示第三实施例所描述的编程操作的图。

参照图17,第一编程循环可以在第一阶跃电压1Vst被设置为默认电压并且计数值CV被重置为0的状态下执行。

当第一编程循环开始时,第一编程电压1Vpgm可以被施加到所选字线。此处,由于验证操作尚未被执行,因此计数值CV是0。

在第一编程电压1Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。然后,可以执行使用第二验证电压2Vf的第二验证操作。当第二验证操作被执行时,计数值CV变为2。

当执行在第一编程循环中所设置的所有验证操作(第一和第二验证操作)时,可以执行将计数值CV与参考值REFV进行比较的操作。当参考值REFV被假设设置为3时,由于在第一编程循环被终止之后计数值CV是2,因此确定计数值CV小于参考值REFV。因此,编程操作可以被连续地执行。

当确定在第一编程循环中执行的第一和第二验证操作中的所有验证操作都失败时,计数值CV被重置为0,并且可以执行第二编程循环。

在第二编程循环中所使用的第二编程电压2Vpgm可以是比第一编程电压1Vpgm高出第一阶跃电压1Vst的电压。当第二编程电压2Vpgm被施加到所选字线时,计数值CV不被计数,从而被维持在0。

在第二编程电压2Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。通过这种方式,分别使用第二和第三验证电压2Vf和3Vf的第二和第三验证操作可以被顺序地执行。由于两个验证操作(第二和第三验证操作)在第二编程循环中的第一验证操作之后被执行,因此计数值CV变为3。

当执行在第二编程循环中所设置的所有验证操作(第一至第三验证操作)时,可以执行将计数值CV与参考值REFV进行比较的操作。由于在第二编程循环被终止之后计数值CV是3,因此确定计数值CV等于参考值REFV。因此,编程操作可以连续地被执行。

当确定在第二编程循环中被执行的第一至第三验证操作中的所有验证操作都失败时,计数值CV被重置为0,并且第三编程循环可以被执行。

在第三编程循环中所使用的第三编程电压3Vpgm可以是比第二编程电压2Vpgm高出第一阶跃电压1Vst的电压。当第三编程电压3Vpgm被施加到所选字线时,由于计数值CV不被计数,因此计数值CV被维持在0。

在第三编程电压3Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。通过这种方式,分别使用第二至第四验证电压2Vf至4Vf的第二至第四验证操作可以被顺序地执行。由于三个验证操作(第二至第四验证操作)在第三编程循环中的第一验证操作之后被执行,因此计数值CV变为4。

当执行在第三编程循环中所设置的所有验证操作(第一至第四验证操作)时,可以执行将计数值CV与参考值REFV进行比较的操作。由于在第三编程循环被终止之后计数值CV是4,因此确定计数值CV大于参考值REFV。因此,编程操作被终止,并且所选存储器块被确定为潜在坏块,从而在步骤S165中被处理为坏块。

图18是图示根据本公开的第四实施例的编程操作的流程图。

参照图18,根据第四实施例的编程操作可以以与根据第三实施例的编程操作类似地执行,并且在第三实施例中对所选存储器块作为坏块的处理可以部分地改变。

例如,可以以第四实施例中的相同方式来执行第三实施例中的步骤S161至S168(不包括步骤S165)。因此,将省略在第三实施例中重复的步骤S161至S168的描述。

在第四实施例中的步骤S164中,当确定计数值CV大于参考值REFV(是)时,所选存储器块的地址在步骤S181中被记录在存储器设备(图1中的1100)或控制器(图1中的1200)中,并且所选存储器块的编程操作可以被连续地执行。

当所选存储器块的地址在步骤S181中被记录在存储器设备或控制器中时,可以在步骤S182中执行以下操作:确定在步骤S163中被执行的验证操作的结果。

当在步骤S182中确定所有验证操作都通过时,所选页面的编程操作可以被终止。当在步骤S182中确定在验证操作之中存在失败的验证操作时,计数值CV在步骤S183中被重置,并且阶跃电压Vst可以在步骤S184中被设置为高于第一阶跃电压1Vst的第二阶跃电压2Vst。即,当计数值CV大于参考值REFV时,这指示少量验证操作通过并且慢速单元被包括在所选页面中。因此,阶跃电压Vst可以被设置为高于第一阶跃电压1Vst的第二阶跃电压2Vst,以便在步骤S184中快速地升高慢速单元的阈值电压。

随后,在步骤S185中,编程电压Vpgm可以被升高在步骤S184中所设置的阶跃电压Vst。例如,编程电压Vpgm可以被设置为比先前的编程电压Vpgm高出第二阶跃电压2Vst的电压。可以使用在步骤S185中设置的编程电压Vpgm在步骤S162中执行编程电压施加操作。

通过这种方式,可以重复地执行步骤S162至S164和S181至S185,直到所选页面的所有验证操作都通过。

当由于所选页面的所有验证操作都通过而终止编程操作时,基于在步骤S181中所记录的所选存储器块的地址,所选存储器块可以被管理为极有可能是坏块的块,而不是正常块。例如,可以执行将在所选存储器块中所存储的数据复制到正常存储器块中的操作,或者可以执行减少访问所选存储器块的尝试次数的操作。附加地,可以执行用于管理极有可能是坏块的存储器块的方法,但由于存在用于管理坏块的各种方法,在第四实施例中将省略与其相关的特定描述。

图19是详细图示在第四实施例中根据计数值的编程操作的图。

参照图19,第一编程循环可以在第一阶跃电压1Vst被设置为默认电压并且计数值CV被重置为0的状态下被执行。

当第一编程循环开始时,第一编程电压1Vpgm可以被施加到所选字线。此处,由于验证操作尚未被执行,因此计数值CV是0。

在第一编程电压1Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。然后,可以执行使用第二验证电压2Vf的第二验证操作。当第二验证操作被执行时,计数值CV变为2。

当执行在第一编程循环中所设置的所有验证操作(第一和第二验证操作)时,可以执行将计数值CV与参考值REFV进行比较的操作。当参考值REFV被假设设置为3时,由于在第一编程循环被终止之后计数值CV是2,因此确定计数值CV小于参考值REFV。因此,可以连续地执行编程操作。

当确定在第一编程循环中被执行的第一和第二验证操作中的所有验证操作都失败时,计数值CV被重置为0,并且可以执行第二编程循环。

在第二编程循环中所使用的第二编程电压2Vpgm可以是比第一编程电压1Vpgm高出第一阶跃电压1Vst的电压。当第二编程电压2Vpgm被施加到所选字线时,计数值CV不被计数,从而被维持在0。

在第二编程电压2Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。通过这种方式,分别使用第二和第三验证电压2Vf和3Vf的第二和第三验证操作可以被顺序地执行。由于两个验证操作(第二和第三验证操作)在第二编程循环中的第一验证操作之后被执行,因此计数值CV变为3。

当执行在第二编程循环中所设置的所有验证操作(第一至第三验证操作)时,可以执行将计数值CV与参考值REFV进行比较的操作。由于在第二编程循环被终止之后计数值CV是3,因此确定计数值CV等于参考值REFV。因此,可以连续地执行编程操作。

当确定在第二编程循环中被执行的第一至第三验证操作中的所有验证操作都失败时,计数值CV被重置为0,并且可以执行第三编程循环。

在第三编程循环中所使用的第三编程电压3Vpgm可以是比第二编程电压2Vpgm高出第一阶跃电压1Vst的电压。当第三编程电压3Vpgm被施加到所选字线时,计数值CV不被计数,从而被维持在0。

在第三编程电压3Vpgm被施加到所选字线达预定时段之后,可以执行使用第一验证电压1Vf的第一验证操作。当第一验证操作被执行时,计数值CV变为1。通过这种方式,分别使用第二至第四验证电压2Vf至4Vf的第二至第四验证操作可以被顺序地执行。由于三个验证操作(第二至第四验证操作)在第三编程循环中的第一验证操作之后被执行,因此计数值CV变为4。

当执行在第三编程循环中设置的所有验证操作(第一至第四验证操作)时,可以执行将计数值CV与参考值REFV进行比较的操作。由于在第三编程循环被终止之后计数值CV是4,因此确定计数值CV大于参考值REFV。

如上所述,当确定计数值CV大于参考值REFV时,所选存储器块的地址被记录为待在步骤S181中被管理的地址,并且可以连续地执行所选存储器块的编程操作。

当在第三编程循环中被执行的第一至第四验证操作中的至少一个失败时,计数值CV被重置为0,并且可以执行第四编程循环。

在第四编程循环中所使用的第四编程电压4Vpgm可以比第三编程电压3Vpgm高出第二阶跃电压2Vst。即,由于在第三编程循环被终止时计数值CV大于参考值REFV,因此阶跃电压Vst被设置为高于第一阶跃电压1Vst的第二阶跃电压2Vst,并且第二阶跃电压2Vst可以从第四编程循环中被施加。

图20是图示根据本公开的实施例的存储器系统的操作的图。

参照图20,当阶跃电压在上述的第一至第四实施例中被改变时,与编程操作相关的参数可以被改变,使得在下一编程操作中施加所改变的阶跃电压。例如,当所选存储器块的编程操作被终止时,控制器1200可以向存储器设备1100输出第一命令1CMD用于请求关于验证操作的信息(①)。

响应于第一命令1CMD,存储器设备1100可以将验证信息VIF传输到控制器1200,该验证信息VIF包括关于以下各项的信息:在所选存储器块的编程操作中所计数的验证操作的数目或者关于验证电压的数目(②)。

控制器1200可以向存储器设备1100传输可以改变set_para的第二命令2CMD(③),以便根据验证信息VIF改变阶跃电压。响应于第二命令2CMD,存储器设备1100可以改变set_para。此处,set_para指示作为由存储器设备1100执行的各种操作的设定值的参数。例如,set_para可以是各种操作的设定值,诸如,编程开始电压的水平、阶跃电压的水平、编程电压被施加到所选字线的时间等。

本公开可以通过考虑慢速单元和快速单元的特性调整编程操作,来提高存储器设备的可靠性。

41页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:读出电路

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!