控制对包括多级单元的闪存器件的回拷贝操作的方法

文档序号:6770236阅读:146来源:国知局

专利名称::控制对包括多级单元的闪存器件的回拷贝操作的方法
技术领域
:本发明涉及闪存器件,具体涉及控制闪存器件的回拷贝操作的方法。
背景技术
:一般地,闪存器件包括用于在短时间段内对大量的数据编程或读取的页面缓冲器。因此,闪存器件的编程或读操作通过页面缓冲器逐页地执行。最近,为进一步改善闪存器件的集成度,已开发了包括能够存储多位数据的多级单元(MLC)的闪存器件。一般地,由于2-位数据可编程到MLC中,因此一个MLC可以存储四个数据值即[ll]、[10]、和中的任何一个。MLC具有对应于所存储的数据([ll]、[10]、和中的一个)的阈电压(Vtl至Vt4中的一个)。能够存储单位数据的储存单元一般称为单级单元(SLC)。包括这些SLC的闪存器件基本支持回拷贝操作。回拷贝操作包括在页面缓冲器中存储数据,该数据存储在源页面(即一个地址)的储存单元中,并将存储的数据(改变或未改变)编程到目标页面(即另一地址)的储存单元中。然而,包括MLC的闪存器件不支持回拷贝操作。因此,在包括MLC的闪存器件中,将源页面的数据拷贝到所需目标页面的一种方法是从源页面读数据,将所读取的数据存储在闪存器芯片外部的存储单元中,然后将所存储的数据编程到目标页面中。另一方法是从源页面读数据,将所读取的数据存储在芯片内的存储空间中,然后在目标页面中对存储的数据进行编程。然而,这些方法的问题在于它们效率低,因为除了页面缓冲器之外还要求附加的存储空间并且目标页面的编程时间长。此外,如果附加的存储空间设置在闪存器件中,则会出现问题,因为闪存器件的尺寸增加。
发明内容本发明的实施例涉及一种控制对包括MLC的闪存器件的回拷贝操作的方法,其中即使没有附加的存储空间仍然可以执行回拷贝操作,由此减少了编程时间并且改善闪存器件的操作性能。根据本发明的实施例,提供一种控制对包括连接到位线和字线的多个MLC的闪存器件的回拷贝操作的方法,包括如下步骤响应于第一低读控制信号初始化低位寄存器;通过将第一和第二读电压依次地施加给多个MLC中的源MLC所连接到的字线,从源MLC依次地读第一和第二低位数据,并基于第一和第二低位数据将程序数据存储在低位寄存器中;确定是否将修改该程序数据;如果确定将不修改该程序数据,则第一响应于第一编程控制信号将该程序数据编程到多个MLC中的目标MLC中;如果确定将修改该程序数据,则将经修改的程序数据存储在低位寄存器中;以及响应于第一编程控制信号,第二将经修改的程序数据编程于目标MLC中。根据本发明的另一实施例,提供一种控制对包括连接到位线和字线的多个MLC的闪存器件的回拷贝操作的方法,包括如下步骤响应于复位控制信号初始化高位寄存器,并响应于第一低读控制信号初始化低位寄存器;通过将第一读电压施加给多个MLC中的源MLC所连接到的字线,从源MLC读高位数据,并基于所读的高位数据将第一高感测数据存储在高位寄存器中;通过将第二读电压施加给多个MLC中的目标MLC所连接到的字线,从目标MLC读低位数据,并基于所读的低位数据和第一高感测数据将第一低编程禁止数据存储在低位寄存器中;基于第一高感测数据和第一低编程禁止数据产生程序数据,并将该程序数据存储在高位寄存器中;确定是否将修改该程序数据;如果确定将不修改该程序数据,则基于该程序数据和第一低编程禁止数据产生第一最后程序数据,并第一将第一最后程序数据编程到目标MLC中;如果确定将修改该程序数据,则将第二低编程禁止数据存储在低位寄存器中,并将经修改的程序数据存储在高位寄存器中;以及基于经修改的程序数据和第二低编程禁止数据产生第二最后程序数据,第二,将第二最后程序数据编程到目标MLC中。结合附图参考下文的详细描述将会更好且更完整地理解本发明及其许多随之而来的优点,在附图中相似的标号表示相同或相似的部件,其中图1是用于说明根据本发明实施例控制闪存器件回拷贝操作的方法的储存单元阵列和页面缓冲器电路的电路图2是说明根据本发明实施例的闪存器件回拷贝操作的流程图3是详细说明根据本发明实施例图2中所示步骤402的流程图;图4是详细说明根据本发明实施例图2中所示步骤407的流程图;图5是说明根据本发明实施例依赖于闪存器件回拷贝操作的MLC阈电压分布变化的视图6是根据本发明实施例与图2所示闪存器件回拷贝操作相关的信号时序图7是说明根据本发明另一实施例的闪存器件回拷贝操作的流程图;图8是详细说明根据本发明实施例图7中所示步骤502的流程图;图9是详细说明根据本发明实施例图7中所示步骤503的流程图;图10是详细说明根据本发明实施例图7中所示步骤504的流程图;图11是详细说明根据本发明实施例图7中所示步骤506的流程图;图12是详细说明根据本发明实施例图7中所示步骤510的流程图;图13是详细说明根据本发明实施例图7中所示步骤511的流程以及图14是根据本发明实施例与图7所示闪存器件回拷贝操作相关的信号时序图。具体实施例方式在下文的详细描述中,仅通过说明的方式示出了本发明的某些示例性实施例。正如本领域普通技术人员将会认识到的,可以以各种方式修改所述实施例,所有这些修改都不脱离本发明的精神范围。因此,附图和说明书在本质上认为是说明性而非限制性的。相似的标号在全文中表示相似的元件。图1是用于说明根据本发明实施例控制闪存器件回拷贝操作的方法的储存单元阵列和页面缓冲器电路的电路图。参考图1,储存单元阵列100包括共享位线BLel至BLoK、BLol至BLoK(K是整数)和字线WL1至WLJ的MLC(Mell至MeJK),Moll至MoJK)(J,K是整数)。储存单元阵列100进一步包括连接到漏极选择线DSL的漏极选择晶体管DST和连接到源极选择线SSL的源极选择晶体管SST。在储存单元阵列100中,连接到相同字线例如WL1的MLC(Mell至MelK,Moll至MolK)形成一页PGl。多个页面缓冲器PB1至PBK(K是整数)中的每一个连接到位线对。例如,页面缓冲器PB1可以连接到位线BLel、BLol。页面缓冲器PB1至PBK具有基本相同的构造和操作。因此,下文仅将页面缓冲器PB1作为实例来描述。页面缓冲器PB1包括位线选择电路210、预充电电路220、高位寄存器230、低位寄存器240、比较电路250、数据输入电路260、第一开关270、第二开关280、数据输出电路290和检验电路301、302。位线选择电路210响应于位线选择信号SBLe,SBLo和放电信号DISCHe,DISCHo选择位线BLel、BLol中的一个,并将所选位线BLel或BLol连接到感测节点SO。位线选择电路210包括NMOS晶体管211至214。NMOS晶体管211至214的操作对于本领域普通技术人员来说是公知的。因此,省去对它们的描述。预充电电路220响应于预充电控制信号PRECHb以内部电压VDD对感测节点SO预充电。高位寄存器230包括感测电路231、锁存器电路232和锁存复位电路233。感测电路231包括NMOS晶体管234、235。感测电路231响应于高读控制信号MREAD对感测节点SO的电压进行感测,并产生高感测数据MSB给节点Qlb。锁存器电路232包括锁存器236和反相器237。锁存器236锁存在节点Qlb中产生的高感测数据MSB,并将反相的高感测数据MS输出给节点Q1。此外,锁存器236锁存输入数据D1B或D2并将反相的输入数据Dl或D2B输出给节点Ql或Qlb。反相器237通过节点Qlb从锁存器236接收高感测数据MSB或者输入数据D1B或D2B,使所接收的数据(MSB、D1B和D2B中的一个)反相,并将反相的数据输出给节点N1。锁存器复位电路233响应于复位控制信号MSBSET初始化锁存器电路232。低位寄存器240包括感测电路241和锁存器电路242。感测电路241包括NMOS晶体管243至245。感测电路241响应于第一或第二低读控制信号LREAD1或LREAD2对感测节点SO的电压进行感测,并产生低感测数据LS或LSB给节点Q2或Q2b。锁存器电路242包括锁存器246和反相器247。锁存器246锁存低感测数据LS或LSB,并将低感测数据LSB或LS输出给节点Q2b或Q2。反相器247通过节点Q2b从锁存器246接收反相的低感测数据LSB,使接收的数据LSB反相,并将所反相的数据输出给节点N2。比较电路250包括NMOS晶体管251至254。NMOS晶体管251、252串联连接在感测节点SO与节点Nl之间。NMOS晶体管253、254连接在感测节点SO与节点N2之间。NMOS晶体管251、253响应于编程控制信号MLCPROG来接通或关断。NMOS晶体管252根据从节点N2接收的低感测数据LS的逻辑电平来接通或关断。此外,NMOS晶体管254根据从节点Nl接收的数据(MS、Dl和D2中的一个)的逻辑电平来接通或关断。结果,比较电路250在编程控制信号MLCPROG被使能时比较通过节点Nl,N2接收的数据(MS、D1和D2中的一个)与低感测数据LS,并根据比较结果将所得的比较数据(CM、FPD1和FPD2中的一个)输出给感测节点SO。比较电路250的详细操作对于本领域普通技术人员是众所周知的。因此省去对其详细描述。数据输入电路260包括NMOS晶体管261、262。响应于数据输入信号D1,nDI,数据输入电路260通过节点Qlb或Ql将通过数据I/O节点Yl接收的输入数据D1B或D2输出给高位寄存器230的锁存器236。第一开关270和第二开关280中的每个都可以使用NMOS晶体管来实施。第一开关270响应于数据传递信号DTRANS来接通或关断。第二开关280响应于编程控制信号SLCPROG来接通或关断。数据输出电路290包括NMOS晶体管291、292。NMOS晶体管291响应于数据输出信号MPASS来接通或关断。NMOS晶体管291在接通时将从节点Ql接收的高感测数据MS输出给数据I/O节点Yl。NMOS晶体管292响应于数据输出信号LPASS来接通或关断。NMOS晶体管292在接通时将从节点Q2接收的低感测数据LS输出给数据I/O节点Yl。将参考图2至6详细描述根据本发明实施例以上构造的闪存器件的回拷贝操作。为了便于描述,在本实施例中,将描述如下实例页面PG1的MLC(Mell至MelK)(即源MLC)中存储的数据被回拷贝编程到页面PGJ的MLC(MeJl至MeJK)(g卩目标MLC)中。此外,仅以页面缓冲器PB1的操作作为实例进行描述。图2至4是说明根据本发明实施例的闪存器件回拷贝操作的流程图。图6是与图2中所示闪存器件回拷贝操作相关的信号时序图。参考图2和6,在时段Tl期间,响应于第一低读控制信号LREAD1初始化低位寄存器240(步骤401)。更详细地说,在时段T1期间,禁止预充电控制信号PRECHb。预充电电路220响应于预充电控制信号PRECHb以内部电压VDD对感测节点SO进行预充电。使能第一低读控制信号LREAD1预定的时间。结果,低位寄存器240的感测电路241响应于第一低读控制信号LREAD1对感测节点SO的电压VDD进行感测,并产生地电压VSS电平(即逻辑电平"0")的低感测数据LSB给节点Q2b。因此,低位寄存器240的锁存器电路246锁存逻辑电平"0"的低感测数据LSB,并由此被初始化。此后,在时段T2至T11期间,通过将读电压RV1,RV2(参考图5)依次地供给字线WL1,从源页面PG1的源MLC(Mell至MelK)依次地读第一和第二低位数据RLD1,RLD2(未示出)。基于第一和第二低位数据RLD1,RLD2,程序数据(未示出)存储在低位寄存器240中(步骤402)。下面参考图3更详细地描述步骤402。当读电压RV1施加给源MLC(Mell至MelK)所连接到的字线WL1时,从源MLC(Mell至MelK)读第一低位数据RLDl(步骤421)。在这种情况下,读电压RV1可以存在于所擦除的MLC(即其中存储数据"11"的MLC)的阈电压与其中存储数据"10"的MLC的阈电压之间,如图5所示。更详细地说,在时段T2期间,使能放电信号DISCHe,DISCHo并禁止预充电控制信号PRECHb。优选地,放电信号DISCHe,DISCHo可以变成电压Vcc电平。结果,预充电电路220以内部电压VDD对感测节点SO预充电。位线选择电路210以位线控制信号VIRPWR的电压(即地电压)电平对位线BLel至BLeK、BLol至BLoK放电。此后,在时段T3期间,使能位线选择信号SBLe,并禁止位线选择信号SBLo。此外,禁止放电信号DISCHe,并保持放电信号DISCHo禁止。位线选择电路210响应于位线选择信号SBLe,SBLo和放电信号DISCHe,DISCHo,将位线BLel连接到感测节点SO,并将位线BLol从感测节点SO分离。因此,借助于预充电的感测节点SO的电压VDD,将位线BLel预充电到电压Vl-Vthl(这里,Vthl是NMOS晶体管213的阈电压)电平。电压V1可以设置为低于电压VDD。同时,位线BLol保持放电(即地电压状态)。在时段T4期间,禁止位线选择信号SBLe,并使能预充电控制信号PRECHb。位线选择电路210使位线BLel从感测节点SO分离,并且预充电电路220停止感测节点SO的预充电操作。如果源MLC(Mell至MelK)已经编程(即数据值"10","00"和"01"已经存储在源MLC(Mell至MelK)中),则在时段T4期间,位线BLel保持在电压Vl-Vthl电平。另一方面,如果源MLC(Mell至MelK)还没有编程(即它们具有数据"11"的情况),则在时段T4期间,位线BLel的电压电平逐渐降低,然后变为地电压电平。在时段T5期间,使能位线选择信号SBLe并且使能第二低读控制信号LREAD2预定的时间。结果,位线BLel连接到感测节点SO,并且感测节点SO的电压根据位线BLel的电压电平(即第一低位数据RLD1的逻辑值)改变为地电压或保持在电压VDD电平。此外,低位寄存器240的感测电路241对感测节点SO的电压进行感测。第一低感测数据LSB1(即感测结果)存储在低位寄存器240中(步骤422)。例如,在数据值"ll"已经存储在源MLC(Mell)中的情况下,给低位寄存器240的节点Q2b产生逻辑电平"0"的第一低感测数据LSB1(即,第一低感测数据LSB1保持在初始化状态的数据值)。另一方面,在数据值"10"、"00"和"01"中的一个已经存储在源MLC(Mell)中的情况下,给低位寄存器240的节点Q2b产生逻辑电平"1"的第一低感测数据LSB1。在时段T9期间,在读电压RV3施加到源MLC(Mell至MelK)所连接到的字线WL1时,从源MLC(Mell至MelK)读第二低位数据RLD2(步骤423)。这时,读电压RV3可以存在于其中存储数据值"00"的MLC的阈电压与其中存储数据值"01"的MLC的阈电压之间,如图5所示。因此,读电压RV3高于读电压RV1。步骤423相似于步骤421。省去对其详细描述。在时段T10期间,位线选择电路210将位线BLel从感测节点SO分离,并且预充电电路220停止感测节点SO的预充电操作。如果数据"01"存储在源MLC(Mell至MelK)中,则在时段T10期间,位线BLel保持在电压V1-Vthl电平。另一方面,如果数据值"11"、"10"和"00"中的一个存储在源MLC(Mell至MelK)中,则在时段T10期间,位线BLel的电压电平逐渐降低,然后变为地电压电平。此后,在时段T11期间,使能位线选择信号SBLe并且使能第一低读控制信号LREAD1预定的时间。结果,感测电路241对感测节点SO的电压进行感测,并且第二低感测数据LSB2(即感测结果)作为程序数据存储在低位寄存器240中(步骤424)。为了进行回拷贝操作而两次读源MLC(Mell至MelK)中存储的低位数据的原因是准确地读取源MLC(Mell至MelK)中存储的低位数据。通过这样的两次读操作,可以知道在源MLC(Mell至MelK)中存储的数据是"11"和"01"中的一个还是"10"和"00"中的一个。例如,在数据"11"和"01"中的一个存储在源MLCMell中的情况下,在低位寄存器240的节点Q2b中产生逻辑电平"0"的第二低感测数据LSB2。在数据"10"和"00"中的一个存储在源MLC(Mell)中的情况下,在低位寄存器240的节点Q2b中产生逻辑电平"1"的第二低感测数据LSB2。回到图2,然后确定将是否改变程序数据(步骤403)。如果在步骤403中确定将不改变程序数据,则响应于第一编程控制信号SLCPROG,将程序数据即LS编程到目标MLC(MeJl)中(步骤404)。更详细地,如图6所示,在时段T14期间,使能放电信号DISCHe,DISCHo以变成电压Vcc+Vth2电平,并使能位线控制信号VIRPWR以变成电压Vcc电平。结果,位线选择电路210响应于放电信号DISCHe,DISCHo以位线控制信号VIRPWR的电压Vcc电平对位线BLel、BLol预充电。此后,在时段T15至T18期间,禁止放电信号DISCHe并且保持放电信号DISCHo使能。此外,目标MLC(MeJl)所连接到的字线WLJ提供有编程电压VPGM,并且使能位线选择信号SBLe和第一编程控制信号SLCPROG。结果,位线选择电路210将位线BLel连接到感测节点SO。第二开关280将从低位寄存器240接收的程序数据(即反相的第二低感测数据LS懒出到感测节点SO。这时,在反相的第二低感测数据LS具有逻辑电平"0"时(即在第二低感测数据LSB具有逻辑电平"1"时),向目标MLC(MeJl)中编程。同时,在反相的第二低感测数据LS具有逻辑电平"l"时(即在第二低感测数据LSB具有逻辑电平"O"时),禁止向目标MLC(MeJl)中编程。在这种情况下,在同时对连接到位线BLel至BLeK的目标MLC(MeJl至MeJK)编程时,通过页面缓冲器PB1至PBK中每一个的第一开关280和页面缓冲器PB1至PBK中每一个的反相器247从位线BLel至BLeK流到地的电流(峰值电流)突然上升。如上所述已经上升的电流在反相器247中产生电压降,并升高闪存器件的地电压电平。如果闪存器件的地电压如上所述上升,则因为闪存器件故障而出现问题。因此,为防止地电压上升,可以设置位线选择信号SBLe和第一编程控制信号SLCPROG,使得在时段T15至T18期间以低于电源电压Vcc的参考电压Vref电平来使能它们。因此,可以防止由第二开关280和NMOS晶体管213的降低电流驱动能力造成的电流突然上升。这时,可以使用具有串联连接在电源电压与地电压之间的PMOS晶体管和NMOS晶体管的CMOS反相器来实施反相器247。在时段T20期间,使能放电信号DISCHe,DISCHo以变成电压Vcc电平,并禁止位线控制信号VIRPWR以变成地电压电平。因此,位线选择电路210响应于放电信号DISCHe,DISCHo将位线BLel、BLol放电到位线控制信号VIRPWR的地电压电平。此后,虽然在图6中没有示出,但是通过将高于读电压RV1的检验电压PV1施加到目标MLC(MeJl至MeJK)所连接到的字线WLJ来确定是否已经完成向目标MLC中的编程(步骤405,406)。如果确定还没有完成向目标MLC(MeJl至MeJK)中的编程,则编程电压VPGM上升到阶跃电压(步骤407),然后过程返回到步骤404。阶跃电压一般设置到0.5V,更为优选的是0.3V或更小。此后,重复地执行步骤407、404至406直到完成向目标MLC(MeJl至MeJK)中的编程。在这种情况下,向目标MLC(MeJl至MeJK)中的编程是否已经完成则可以根据由页面缓冲器PB1至PBK中每一个的检验电路302所产生的低检验数据LVD1至LVDK值来确定。这种操作对于本领域普通技术人员是众所周知的。因此,省去对它们的描述。同时,如果在步骤403中确定将修改程序数据,则将修改的程序数据存储在低位寄存器240中(步骤408)。例如,可以考虑应修改一些页面缓冲器PB1至PBK中存储的程序数据的情况。下面将参考图4更详细地描述步骤408。响应于高读控制信号MREAD初始化高位寄存器230,并响应于第二低读控制信号LREAD2初始化低位寄存器240(步骤471)。响应于数据输入信号DI,nDI,输入数据D1B或D2存储在高位寄存器230中(步骤472)。第一开关270响应于数据传递信号DTRANS通过感测节点SO将输入数据Dl或D2传递给低位寄存器240(步骤473)。结果,低位寄存器240响应于第一低读控制信号LREAD1感测输入数据Dl或D2,并存储低感测数据LSB作为经修改的程序数据(未示出)(步骤474)。再次参考图2,响应于第一编程控制信号SLCPROG,修改的程序数据即LS被编程到目标MLC(MeJl)中(步骤409)。步骤409基本与步骤404相同。因此,省去对它们的描述。以与步骤405相同的方式,然后确定是否己经完成向目标MLC(MeJl至MeJK)中的编程。如果确定向目标MLC(MeJl至MeJK)中的编程还没有完成,则编程电压VPGM上升如阶跃电压那么多(步骤412),然后再次执行步骤409。这时,阶跃电压一般设置到0.5V,更为优选的是0.3V或更小。然后重复地执行歩骤412、409至411直到完成向目标MLC(MeJl至MeJK)中的编程。此外,在步骤406,411中,如果确定已经完成向目标MLC(MeJl至MeJK)中的编程,则停止回拷贝编程操作(步骤413)。将参考图1和5和图7至14更详细地描述根据本发明另一实施例的闪存器件回拷贝操作。为了描述的方便,在本实施例中,将如下情况作为实例来描述,其中将页面PG1的MLC(Mell至MelK)(即源MLC)中存储的数据回拷贝编程到页面PGJ的MLC(MeJl至MeJK)(S卩目标MLC)中。此外,仅将页面缓冲器PB1的操作作为实例来描述。参考图7,在步骤501中,响应于复位控制信号MSBSET初始化高位寄存器230,并响应于第一低读控制信号LREAD1初始化低位寄存器240。这将参考图14更加详细地描述。在时段P1期间,禁止预充电控制信号PRECHb,并使能复位控制信号MSBSET和第一低读控制信号LREAD1预定的时间。预充电电路220响应于预充电控制信号PRECHb以内部电压VDD对感测节点SO进行预充电。此外,高位寄存器230的锁存器复位电路233响应于复位控制信号MSBSET以地电压VSS对节点Q1放电。因此,初始化高位寄存器230的锁存器电路232。此外,低位寄存器240的感测电路241响应于第一低读控制信号LREAD1对感测节点SO的电压VDD进行感测,并在节点Q2b中产生地电压VSS电平(即逻辑电平"0"的低感测数据LSB)。因此,通过锁存逻辑电平"0"的低感测数据LSB初始化低位寄存器240的锁存器电路246。此后,在读电压RV2施加给源MLC(Mell至MelK)所连接到的字线WL1时,读在源MLC(Mell至MelK)中存储的高位数据RMDl至RMDK。基于读取的高位数据RMD1至RMDK,将第一高感测数据(未示出)存储在页面缓冲器PB1至PBK中每一个的高位寄存器230中(步骤502)。这将参考图8更详细地描述。在时段P2期间,以位线控制信号VIRPWR的地电压电平,对位线BLel、Blol放电。在时段P3和P4期间,字线WL1提供有读电压RV2。结果,读高位数据RMD1至RMDK(步骤521)。这时,如果数据值"00"或"01"已经存储在源MLC(Mell至MelK)中,则在时段P4期间,位线BLel保持在电压Vl-Vthl电平。另一方面,如果数据值"11"或"10"已经存储在源MLC(Mell至MelK)中,则在时段P4期间,位线BLel的电压电平逐渐降低,然后变成地电压。除了施加到字线WL1的读电压RV2之外,步骤521与步骤421相同。此外,在时段P5期间,低位寄存器240响应于第二低读控制信号LREAD2感测高位数据,并存储第一低感测数据LS(即感测结果)(步骤522)。例如,在数据值"00"或"01"存储在源MLC(Mell至MelK)中的情况下,在低位寄存器240的节点Q2b中产生逻辑电平"1"的第一低感测数据LSB1。另一方面,在数据值"11"或"10"存储在源MLC(Mell至MelK)中的情况下,在低位寄存器240的节点Q2b中产生逻辑电平"0"的第一低感测数据LSB1(即节点Q2b保持在初始化状态的数据{直)。步骤522相似于上述步骤422。此后,第二开关280响应于第一编程控制信号SLCPROG,将从低位寄存器240接收的经反相的第一低感测数据LS通过感测节点SO传递给高位寄存器230(步骤523)。此外,高位寄存器230响应于高读控制信号MREAD感测第一低感测数据LS,并存储所感测的第一低感测数据LSB作为第一高感测数据MSB1(未示出)(步骤524)。下面将更详细地描述步骤523,524。在时段P6期间,禁止预充电控制信号PRECHb。结果,以内部电压VDD对感测节点SO预充电。在时段P7期间,使能高读控制信号MREAD和第一编程控制信号SLCPROG中的每一个预定的时间。因此,第二开关280通过感测节点SO将反相的第一低感测数据LS传递给高位寄存器230。此外,高位寄存器230的感测电路231响应于高读控制信号MREAD感测第一低感测数据LS,并在节点Qlb中产生第一高感测数据MSB1。例如,在反相的第一低感测数据LS是逻辑电平"1"时(即在第一低感测数据LSB1是逻辑电平"0"时),感测电路231在节点Qlb中产生逻辑电平"0"的第一高感测数据MSB1。同时,在反相的第一低感测数据LS是逻辑电平"0"时(即在第一低感测数据LSB1是逻辑电平"1"时),在节点Qlb中产生逻辑电平"1"的第一高感测数据MSB1(即节点Qlb保持在初始化状态的数据值)。回到图7,当读电压RV1施加到目标MLC(MeJl至MeJK)所连接到的字线WLJ时,从目标MLC(MeJl至MeJK)读高位数据RMD1至RMDK。基于读取的高位数据RMD1至RMDK和第一高感测数据MSB1至MSBK,将第一低编程禁止数据(未示出)存储在页面缓冲器PB1至PBK中每一个的低位寄存器240中。下文将参考图9更详细地描述步骤503。在时段P7期间,在使能第二低读控制信号LREAD2预定的时间时,响应于第二低读控制信号LREAD2初始化低位寄存器240。在时段P8期间,以地电压电平对位线BLel、BLol放电。在时段P9期间,字线WLJ提供有读电压RV1。结果,从目标MLC(MeJl至MeJK)读低位数据RLD1至RLDK。在时段Pll期间,使能第一低读控制信号LREAD1预定的时间。页面缓冲器PB1至PBK的低位寄存器240响应于第一低读控制信号LREAD1分别感测低位数据RLD1至RLDK,并存储第一低感测数据LSB1(步骤533)。例如,在数据值"10"存储在目标MLC(MeJl至MeJK)中时,在低位寄存器240的节点Q2b中产生逻辑电平"0"的第一低感测数据LSB1。另一方面,在数据值"11"存储在目标MLC(MeJl至MeJK)中时,在低位寄存器240的节点Q2b中产生逻辑电平"1"的第一低感测数据LSB1(即节点Q2b保持在初始化状态的数据值)。此后,在时段P12期间,第一开关270响应于数据传递信号DTRANS,通过感测节点SO将存储在高位寄存器230中的第一高感测数据MS1传递给低位寄存器240(步骤534)。此外,在时段P12期间,低位寄存器240响应于第一低读控制信号LREAD1感测第一高感测数据MS1,并存储第二低感测数据LSB2(即感测结果)作为第一低编程禁止数据(步骤535)。例如,在第一高感测数据MS1是逻辑电平"1"时,在节点Q2b中产生逻辑电平"0"的第二低感测数据LSB2。另一方面,在第一高感测数据MS1是逻辑电平"0"时,在节点Q2b中产生逻辑电平"1"的第二低感测数据LSB2(即节点Q2b保持在初始化状态的数据值)。回到图7,基于第一高感测数据MS1和第一低编程禁止数据来产生程序数据(未示出),然后将其存储在高位寄存器230中。下文将参考图10更详细地描述步骤504。在时段P13期间,使能第二编程控制信号MLCPROG预定的时间。比较电路250响应于第二编程控制信号MLCPROG,比较通过节点Nl接收的第一高感测数据MS1与通过节点N2接收的第一低编程禁止数据,并产生所得的比较数据CM作为比较结果给感测节点SO(步骤541)。在这种情况下,依赖于于节点N1、N2逻辑电平的所得比较数据CM逻辑值可以表示在下表中。表1<table>tableseeoriginaldocumentpage20</column></row><table>此后,在时段P14期间,使能高读控制信号MREAD预定的时间。结果,高位寄存器230响应于高读控制信号MREAD感测所得的比较数据CM,并存储第二高感测数据MSB2作为程序数据(步骤542)。回到图7,确定将是否改变程序数据(步骤505)。如果确定将不改变程序数据,则基于该程序数据产生第一最后程序数据,并将第一低编程禁止数据和第一最后程序数据编程到目标MLC(MeJl至MeJK)中(步骤506)。下面将参考图11更详细地描述步骤506。在时段P15期间,以电压Vcc+Vth2电平和位线控制信号VIRPWR使能放电信号DISCHe,DISCHo,其结果为电压Vcc电平。结果,位线选择电路210响应于放电信号DISCHe,DISCHo,以位线控制信号VIRPWR的电压Vcc电平对位线BLel、BLol预充电。此后,在时段P16至T20期间,禁止放电信号DISCHe并保持放电信号DISCHo使能。此外,目标MLC(MeJl)所连接到的字线WLJ提供有编程电压VPGM,并使能位线选择信号SBLe和第二编程控制信号MLCPROG。结果,位线选择电路210响应于位线选择信号SBLe将位线BLel连接到感测节点SO。比较电路250响应于第二编程控制信号MLCPROG比较程序数据与第一低编程禁止数据,并根据比较结果在感测节点SO中产生第一最后程序数据FPD1(步骤551)。因此,第一最后程序数据FPD1被编程到目标MLC(MeJl)中(步骤552)。在这种情况下,根据节点Nl、N2逻辑电平的第一最后程序数据FPD1逻辑值和目标MLC(MeJl)编程状态(即程序数据的逻辑值和第一低编程禁止数据)可以表示在下表中。表2<table>tableseeoriginaldocumentpage21</column></row><table>在这种情况下,当连接到位线BLel至BLeK的目标MLC(MeJl至MeJK)同时被编程时,通过页面缓冲器PB1至PBK中每一个的比较电路250和页面缓冲器PB1至PBK中每一个的反相器237或247从位线BLel至BLeK流到地的电流(峰值电流)突然上升。如上所述已经上升的电流在反相器237或247中产生电压降,并升高闪存器件的地电压电平。如果闪存器件的地电压如上所述地上升,则会出现问题,因为闪存器件出现故障。因此,为防止地电压上升,可以设置位线选择信号SBLe和第二编程控制信号MLCPROG,以便在时段P16至P20期间以低于电源电压Vcc的参考电压Vref使能它们。因此,可以防止由NMOS晶体管213、251和253的降低电流驱动能力所造成的电流突然上升。这时,可以使用具有串联连接在电源电压与地电压之间的PMOS晶体管和NMOS晶体管的CMOS反相器来实施反相器237或247。回到图7,在时段P21期间,使能放电信号DISCHe,DISCHo以变成电压Vcc电平,并禁止位线控制信号VIRPWR以变成地电压电平。因此,位线选择电路210响应于放电信号DISCHe,DISCHo,将位线BLel、BLol放电至位线控制信号VIRPWR的地电压电平。此后,虽然在图14中没有示出,但是通过将高于读电压RV2的检验电压PV2(参考图5)施加到目标MLC(MeJl至MeJK)所连接到的字线WLJ来确定是否已经完成向目标MLC中的编程(步骤507,508)。如果确定还没有完成向目标MLC(MeJl至MeJK)中的编程,则编程电压VPGM上升到阶跃电压(步骤509),然后该过程返回到步骤506。阶跃电压一般可以设置到0.5V,更为优选的是0.3V或更小。此后,反复地执行步骤509、506至508直到完成向目标MLC(MeJl至MeJK)中的编程。在这种情况下,可以根据由页面缓冲器PB1至PBK中每一个的检验电路301所产生的高检验数据MVD1至MVDK值来确定是否已经完成向目标MLC(MeJl至MeJK)中的编程。这种操作对于本领域普通技术人员来说是众所周知的。因此,省去对它们的描述。同时,如果在步骤505中确定将修改程序数据,则将第二低编程禁止数据存储在低位寄存器240中,并将修改的程序数据存储在高位寄存器203中(步骤510)。例如,可以考虑应当修改页面缓冲器PB1至PBK的一些中存储的程序数据。下面将参考图12更详细地描述步骤510。响应于高读控制信号MREAD初始化高位寄存器230,而且响应于第二低读控制信号LREAD2初始化低位寄存器240(步骤561)。响应于数据输入信号DI,nDI,将输入数据D1B或D2存储在高位寄存器230中(步骤562)。此后,以与上述步骤(步骤532)相同的方式,在读电压RV1施加到字线WLJ时,从目标MLC(MeJl至MeJK)读低位数据RLD1至RLDK(步骤563)。此外,以与上述步骤533相同的方式,页面缓冲器PB1至PBK的低位寄存器240响应于第一低读控制信号LREAD1分别感测低位数据RLD1至RLDK,并存储第一低感测数据LSB1(步骤564)。此后,以与上述步骤534相同的方式,第一开关270响应于数据传递信号DTRANS,通过感测节点SO将存储在高位寄存器230中的输入数据D1B或D2传递给低位寄存器240(步骤565)。此外,以与上述步骤535相同的方式,低位寄存器240响应于第一低读控制信号LREAD1,感测输入数据D1B或D2,并将作为感测结果的第二低感测数据LSB2存储为第二低编程禁止数据(步骤566)。以与上述步骤541相同的方式,比较电路250响应于第二编程控制信号MLCPROG,比较通过节点Nl接收的输入数据D1B或D2与通过节点N2接收的第二低编程禁止数据,并产生所得的比较数据CM作为感测结果给感测节点SO(步骤567)。在这种情况下,根据节点N1、N2逻辑电平的所得比较数据CM逻辑值是相似于表l中的逻辑值。此后,以与上述步骤542相同的方式,高位寄存器230响应于高读控制信号MREAD感测所得的比较数据CM,并存储第二高感测数据MSB2作为经修改的程序数据(步骤568)。回到图7,以与步骤506相同的方式,基于经修改的程序数据和第二低编程禁止数据,产生第二最后程序数据FPD2。第二最后程序数据被编程到目标MLC(MeJl至MeJK)中(步骤511)。下面将参考图13更详细地描述步骤511。以与步骤551相同的方式,比较电路250响应于第二编程控制信号MLCPROG,比较经修改的程序数据与第二低编程禁止数据,并根据比较结果产生第二最后程序数据FPD2给感测节点SO(步骤571)。结果,第二最后程序数据FPD2被编程到目标MLC(MeJl)中(步骤572)。在这种情况下,依赖于节点Nl、N2逻辑电平的第二最后程序数据FPD2逻辑值和目标MLC(MeJl)编程状态(即修改的程序数据的逻辑值和第二低编程禁止数据)是相似于表2中的逻辑值和状态。此后,通过将高于读电压RV2的检验电压PV2施加到目标MLC(MeJl至MeJK)所连接到的字线WLJ来确定是否已经完成向目标MLC中的编程(步骤512,513)。如果确定还没有完成向目标MLC(MeJl至MeJK)中的编程,则编程电压VPGM上升如阶跃电压那么多(步骤514),然后执行步骤511。在这种情况下,阶梯电压可一般设置到0.5V,更为优选的是0.3V或更小。此后,重复地执行步骤514、511至513,直到完成向目标MLC(MeJl至MeJK)中的编程。此外,以与上述步骤551、552相同的方式,在步骤571、572中,可以以低于电源电压Vcc的参考电压Vref电平来设置位线选择信号SBLe和第二编程控制信号MLCPROG,以便防止地电压电平上升,该上升是由在编程操作期间流经比较电路250和反相器237或247的峰值电流的突然上升造成的。如上所述,根据本发明,在包括MLC的闪存器件中,即使在没有附加的存储空间时仍然可以执行回拷贝操作。此外,根据本发明,可以縮短编程时间并且可以改善闪存器件的操作性能。尽管结合当前视为实用示例性实施例的内容已经描述本发明,但是应该理解,本发明并不限于所公开的实施例,而且相反地,希望涵盖在所附权利要求的精神和范围内囊括的多种改型和等效布局。权利要求1.一种控制对包括连接到位线和字线的多个多级单元的闪存器件的回拷贝操作的方法,该方法包括如下步骤响应于复位控制信号初始化高位寄存器,并响应于第一低读控制信号初始化低位寄存器;通过将第一读电压施加给所述多个多级单元中的源多级单元所连接到的字线,从所述源多级单元读高位数据,并基于所读的高位数据将第一高感测数据存储在所述高位寄存器中;通过将第二读电压施加给所述多个多级单元中的目标多级单元所连接到的字线,从所述目标多级单元读低位数据,并基于所读的低位数据和所述第一高感测数据将第一低编程禁止数据存储在所述低位寄存器中;基于所述第一高感测数据和所述第一低编程禁止数据来产生程序数据,并将所述程序数据存储在所述高位寄存器中;确定是否将修改所述程序数据;如果确定将不修改所述程序数据,则基于所述程序数据和所述第一低编程禁止数据产生第一最后程序数据,并第一将所述第一最后程序数据编程到所述目标多级单元中;如果确定将修改所述程序数据,则将第二低编程禁止数据存储在所述低位寄存器中,并将经修改的程序数据存储在所述高位寄存器中;以及基于所述经修改的程序数据和所述第二低编程禁止数据来产生第二最后程序数据,并第二将所述第二最后程序数据编程于所述目标多级单元中。2.如权利要求1所述的方法,其中所述第一读电压高于所述第二读电压。3.如权利要求1所述的方法,进一步包括如下步骤在所述第一编程之后,通过将检验电压施加给所述目标多级单元所连接到的字线来确定是否己经完成向所述目标多级单元中的编程;以及重复地执行所述第一编程和所述施加检验电压直到完成向所述目标多级单元中的编程,其中在所述施加检验电压之后执行的所述第一编程中施加给所述目标多级单元所连接到的字线的编程电压与在所述施加检验电压之前执行的所述第一编程中施加给所述目标多级单元所连接到的字线的编程电压相比升高了阶跃电压。4.如权利要求3所述的方法,其中所述阶跃电压是0.3V或更小。5.如权利要求1所述的方法,进一步包括如下步骤在所述第二编程之后,通过将检验电压施加给所述目标多级单元所连接到的字线来确定是否已经完成向所述目标多级单元中的编程;以及重复地执行所述第二编程和所述施加检验电压直到完成向所述目标多级单元中的编程,其中在所述施加检验电压之后执行的所述第二编程中施加给所述目标多级单元所连接到的字线的编程电压与在所述施加检验电压之前执行的所述第二编程中施加给所述目标多级单元所连接到的字线的编程电压相比升高了阶跃电压。6.如权利要求5所述的方法,其中所述阶跃电压是0.3V或更小。7.如权利要求1所述的方法,其中将所述第一高感测数据存储在所述高位寄存器中的步骤包括如下步骤通过将所述第一读电压施加给所述源多级单元所连接到的字线,从所述源多级单元读所述高位数据;响应于所述第二低读控制信号感测所述高位数据,并将所述第一低感测数据存储在所述低位寄存器中;响应于第一编程控制信号通过感测节点将所述第一低感测数据传递给所述高位寄存器;以及响应于高读控制信号感测所述第一低感测数据,并将所感测的数据作为所述第一高感测数据存储在所述高位寄存器中。8.如权利要求1所述的方法,其中将所述第一低编程禁止数据存储在所述低位寄存器中的步骤包括如下步骤响应于第二低读控制信号初始化所述低位寄存器;通过将所述第二读电压施加给所述目标多级单元所连接到的字线,从所述目标多级单元读低位数据;响应于所述第一低读控制信号感测所述低位数据,并将第一低感测数据存储在所述低位寄存器中;响应于数据传递信号通过感测节点将所述第一高感测数据传递给所述低位寄存器;以及响应于所述第一低读控制信号感测所述第一高感测数据,并将第二低感测数据作为所述第一低编程禁止数据存储在所述低位寄存器中。9.如权利要求1所述的方法,其中将所述程序数据存储在所述高位寄存器中的步骤包括如下步骤响应于第二编程控制信号比较所述第一高感测数据与所述第一低编程禁止数据,并产生所得的比较数据作为比较结果给所述感测节点;以及响应于高读控制信号感测所得的比较数据,并将第二高感测数据作为所述程序数据存储在所述高位寄存器中。10.如权利要求1所述的方法,其中所述第一编程包括如下步骤响应于第二编程控制信号比较所述程序数据与所述第一低编程禁止数据,并根据所述比较结果产生所述第一最后程序数据;以及将所述第一最后程序数据编程到所述目标多级单元中。11.如权利要求10所述的方法,其中所述第二编程控制信号具有低于内部电压的参考电压电平。12.如权利要求1所述的方法,其中将所述第二低编程禁止数据存储在所述低位寄存器中和将所述经修改的程序数据存储在所述高位寄存器中的步骤包括如下步骤响应于高读控制信号初始化所述高位寄存器,并响应于第二低读控制信号初始化所述低位寄存器;响应于数据输入信号将输入数据存储在所述高位寄存器中;通过将所述第二读电压施加给所述目标多级单元所连接到的字线,从所述目标多级单元读取所述低位数据;响应于所述第一低读控制信号感测所述低位数据,并将第一低感测数据存储在所述低位寄存器中;响应于数据传递信号通过感测节点将所述输入数据传递给所述低位寄存器;响应于所述第一低读控制信号感测所述输入数据,并将第二低感测数据作为所述第二低编程禁止数据存储在所述低位寄存器中;响应于第二编程控制信号比较所述输入数据与所述第二低编程禁止数据,并产生所得的比较数据作为比较结果给所述感测节点;以及响应于所述高读控制信号感湖,得的比较数据,并将第二高感测数据作为所述经修改的程序数据存储在所述高位寄存器中。13.如权利要求1所述的方法,其中所述第二编程包括如下步骤响应于第二编程控制信号比较所述经修改的程序数据与所述第二低编程禁止数据,并根据所述比较结果产生所述第二最后程序数据给所述感测节点;以及将所述第二最后程序数据编程到所述目标多级单元中。14.如权利要求13所述的方法,其中所述第二编程控制信号具有低于内部电压的参考电压电平。全文摘要一种控制对包括多级单元的闪存器件的回拷贝操作的方法。在该方法中,即使没有附加的存储空间仍然可以执行回拷贝操作。因此,可以缩短编程时间并且可以改善闪存器件的操作性能。文档编号G11C16/34GK101373638SQ20081021201公开日2009年2月25日申请日期2006年5月29日优先权日2005年6月14日发明者元参规,成镇溶申请人:海力士半导体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1