CN111383697B - 用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器 - Google Patents
用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器 Download PDFInfo
- Publication number
- CN111383697B CN111383697B CN201811644301.2A CN201811644301A CN111383697B CN 111383697 B CN111383697 B CN 111383697B CN 201811644301 A CN201811644301 A CN 201811644301A CN 111383697 B CN111383697 B CN 111383697B
- Authority
- CN
- China
- Prior art keywords
- bit
- memory cells
- partial page
- memory
- buffer
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/24—Bit-line control 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/08—Address circuits; Decoders; Word-line control circuits
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种用于部分页编程的位扫描方法,一种部分页编程方法和非易失性存储器。所述非易失性存储器包括:存储单元页,第一缓冲器,第二缓冲器,感测电路,和控制器。所述存储单元页包括n位的数据区域和纠错码区域。所述控制器设置为:将m位目标数据存储到第二缓冲器,在数据区域中选择m个存储单元作为选择区域,以及根据目标数据在选择区域进行部分页编程。所述感测电路设置为执行编程验证将验证结果存储到所述第一缓冲器。所述控制器还设置为判断选择区域中编程失败的存储单元的数量是否超过标准值。相比于现有技术,本发明只对进行了部分页编程操作的存储单元进行位扫描,减少了位扫描花费的时间,提高了部分页编程的效率。
Description
技术领域
本发明涉及半导体存储器技术领域,尤其涉及一种用于部分页编程的位扫描方法,一种部分页编程方法和非易失性存储器。
背景技术
非易失性存储器(Nonvolatile memory)已经广泛应用于各种数据存储应用。在现代电子***中,例如个人计算机,移动电话,数码相机,汽车***,MP3播放器等,非易失性存储器已经成为必不可少的部件。存储在非易失性存储器中的数据在断电后不会丢失。
闪存(Flash memory)是一种代表性的非易失性存储器件。根据存储单元的组织方式,闪存可被分为NOR闪存和NAND闪存。在NOR闪存中,每个存储单元独立地连接到位线和字线,因此NOR闪存具有优异的随机存取性能。在NAND闪存中,存储单元串联连接,一个存储单元串和位线仅需要一个接触孔,因此NAND闪存具有优异的集成特性。NAND闪存通常用于高密度存储,例如MP3播放器和固态硬盘(Solid State Disk)。
闪存的操作通常包括编程(program,也称为写),擦除(erase)和读(read)。对于NAND闪存,编程操作的基本单位通常是存储单元页。通常在编程操作之后进行验证(verification)操作和位扫描(bit scan)操作,以验证编程操作是否成功。在过去的几十年中,随着先进技术的采用和存储单元尺寸的缩小,闪存的存储容量和存储密度数千倍地增长。当前的NAND闪存,存储单元页的大小可能大于16K字节,每个字节(byte)包括8个位(bit),每个位对应一个存储单元。位扫描操作的时间消耗和电路功耗越来越大。
发明内容
有鉴于此,本发明提供一种用于部分页编程的位扫描方法,一种部分页编程方法和非易失性存储器。
根据本发明的一个方面,提供一种部分页编程的位扫描方法。部分页编程根据目标数据在非易失性存储器的存储单元页的选择区域执行。该位扫描方法包括:判断所述选择区域中编程失败的存储单元的数量是否超过标准值。编程失败的存储单元是指阈值电压没有达到预定范围的存储单元。
在一个或多个实施例中,判断所述选择区域中编程失败的存储单元的数量是否超过标准值包括:逐位比较所述部分页编程的验证数据和目标数据。
在一个或多个实施例中,当编程失败的存储单元的计数已经超过标准值时,停止比较所述部分页编程的验证数据和目标数据。
在一个或多个实施例中,所述标准值为0。
在一个或多个实施例中,所述存储单元页包括数据区域,纠错码区域,所述选择区域是所述存储单元页的数据区域的一部分,所述标准值大于等于0小于等于纠错码的最大纠正能力。
根据本发明的另一方面,提供一种部分页编程方法。所述部分页编程方法包括上述的位扫描方法。
根据本发明的又一方面,提供一种非易失性存储器。所述非易失性存储器包括:存储单元页,第一缓冲器,第二缓冲器,感测电路,和控制器。所述存储单元页包括n位的数据区域和纠错码区域。所述控制器设置为:将m位目标数据存储到第二缓冲器,在数据区域中选择m个存储单元作为选择区域,以及根据目标数据在选择区域进行部分页编程,其中m和n都是整数,m小于n。所述感测电路设置为执行编程验证并将验证结果存储到所述第一缓冲器,所述控制器还设置为判断所述选择区域中编程失败的存储单元的数量是否超过标准值。
在一个或多个实施例中,所述控制器还设置为逐位比较所述目标数据和对应的验证结果。
在一个或多个实施例中,当编程失败的存储单元的计数已经超过标准值时,所述控制器停止比较所述目标数据和对应的验证结果。
在一个或多个实施例中,所述标准值为0。
在一个或多个实施例中,所述非易失性存储器是SLC NAND闪存,所述控制器将所述第二缓冲器中对应编程成功的存储单元的位修改为第一值,所述控制器设置为判断第二缓冲器中取值为第二值的位的数量是否超过标准值。
在一个或多个实施例中,所述控制器设置:逐位判断第二缓冲器的位是否是第二值;对第二缓冲器中取值为第二值的位进行计数;当计数值超过标准值时,所述控制器停止对第二缓冲器中取值为第二值的位进行计数。
在一个或多个实施例中,所述标准值为0。
在一个或多个实施例中,所述控制器对目标数据和对应的验证结果执行XOR操作。
根据本发明的用于部分页编程的位扫描方法,部分页编程方法和非易失性存储器,在部分页编程后只对进行了编程操作的存储区域进行位扫描,减少了位扫描花费的时间,提高了部分页编程的效率。
附图说明
附图用于提供对本公开的进一步理解,并构成本说明书的一部分。图中的元件和/或组件不一定按比例绘制。
图1是本发明实施例提供的一种NAND闪存的示意性框图。
图2是本发明实施例提供的存储单元块(block)的示意结构图。
图3示出了存储单元页(page)的一种示意性设置。
图4示出了位扫描操作的一个示例。
图5示出了位扫描操作的另一个示例。
图6示出了存储单元页中用于执行部分页编程的选择区域的一个示例。
图7是本发明实施例提供的一种NAND闪存的操作方法的流程图。
图8示出了部分页编程中施加在字线和位线上的电压。
图9是本发明实施例提供的部分页编程方法的流程图。
图10是本发明实施例提供的另一种NAND闪存的示意性框图。
图11是图10中的闪存的部分页编程方法的流程图。
图12示出了保存在第二缓冲器中的目标数据。
图13示出了根据验证结果更改第二缓冲器保存的数据。
具体实施方式
下面结合本发明的实施例的附图更全面地描述本发明。本发明可以以多种不同的形式实施。本发明不应该被解释为限于这里所阐述的实施例。提供这些实施例是为了使本公开彻底和完整,以及将本发明的范围完全传达给本领域技术人员。在附图中,为了清楚起见,可以理想化或放大元件的尺寸或配置。
应当理解,当一个元件被称为“连接到”或“耦接到”另一个元件时,它可以直接连接或耦接到另一个元件,也可以存在中间元件。相反,当元件被称为“直接连接到”或“直接耦接到”另一元件时,这两个元件之间不存在中间元件。相同的数字始终指代相同的元素。
应当理解,尽管这里可以使用术语第一,第二,第三等来描述各种元件,部件和/或部分,但是这些元件,部件和/或部分不应受这些术语的限制。这些术语仅用于将一个元件,部件或部分与另一个元件,部件或部分区分开。因此,在不脱离本发明的教导的情况下,下面讨论的第一元件,部件或部分可以被称为第二元件,部件或部分。
在本申请和所附权利要求书中所使用的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。术语“包括”和/或“包含”指定所述特征,整数,步骤,操作,元件和/或组件的存在,但不排除存在或者添加一个或多个其他特征,整数,步骤,操作,元素,组件和/或其组。
除非另外定义,否则本文使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解,诸如在常用词典中定义的那些术语应被解释为具有与其在相关领域和本说明书的上下文中的含义一致的含义,并且将不被解释为理想化的或除非在此明确定义,否则过于正式的意义。
本发明的实施例公开了一种非易失性存储器。该非易失性存储器优选为NAND闪存。NAND闪存例如是SLC(single-level cell)NAND闪存。SLC NAND闪存的每个存储单元具有两种状态:编程状态(programmed state)和擦除状态(erased state)。SLC NAND闪存的每个存储单元存储一个二进制位(binary bit)。
下面结合图1至图3描述NAND闪存的示例结构。图1是本发明实施例提供的一种NAND闪存的示意性框图。如图1所示,该NAND闪存10包括:存储单元阵列100,控制器200,行译码器300,感测缓冲器(sensing buffer)400,位扫描电路500,以及感测电路(sensingcircuit)600。存储单元阵列100包括多个存储单元106,这些存储单元106通过字线(wordline)104和位线(bit line)102寻址。控制器200可以连接到主机(host)。主机例如是电脑,数码相机等。
存储单元106可以由具有控制栅(control gate)和电荷俘获层的场效应晶体管实现。电荷俘获层和沟道区通过隧道电介质层隔离。控制栅和电荷俘获层由另一介电层隔离。电荷俘获层可以是多晶硅或氮化硅。场效应晶体管的控制栅连接对应的字线104。
NAND闪存10的存储单元阵列100包括多个存储单元块(block)。图2示出了存储单元块110的一个结构示例。如图2所示,多个存储单元106按行和列排列。列方向上的存器单元106串联连接构成存储单元串(string)108。具体地,在同一串108中,相邻存储单元106的源极和漏极相互连接。每个存储单元串108通过第一选择开关118连接到位线102。存储单元106所存储的信息可以通过位线102读取。第一选择开关118控制串108和位线102之间的连接和断开。第一选择开关118由第一控制信号线114控制。同一个存储单元块110的多个存储单元串108的多个第一选择开关118的栅极连接到同一条第一控制信号线114。每个存储单元串108还通过第二选择开关120连接到公共源极线112。第二选择开关120由第二控制信号线116控制。同样,同一个存储单元块101的多个存储单元串108的多个第二选择开关120的栅极连接到同一条第二控制信号线116。在行方向上,同一行的多个存储单元106共用一条字线104,这些存储单元106构成一个存储单元页(Page)124。同一页(Page)中的多个存储单元106被同一字线104控制。同一页(Page)中的多个存储单元106的控制栅连接到同一个字线104。作为更好理解的示例,一个2G容量的NAND闪存可以包括2048个块,每个块包括64页。
图3示出了存储单元页(page)的一种设置示例。图3中的每个方框代表一个存储单元106。如图3所示,页124包括数据区域(又称为主区域),纠错码(error correcting code,ECC)区域和备存区域(spare region)。数据区域用于存储终端用户使用的数据。数据区域的每个存储单元106代表存储的数据的一个位。纠错码区域存储有纠错码,纠错码用于校正数据区域存储的数据中的错误位(error bit)。备存区域用于存储固件元数据(firmwaremeta data)。NAND闪存还包括纠错码电路(未示出)。纠错码数据由纠错码电路生成,并和用户数据一起存储在存储单元页中。
继续参考图1,行译码器300连接到字线104。行解码器300可以与电压产生电路结合使用。电压产生电路可以由电荷泵(charge pump)实现。电压产生电路可以产生读电压(read voltage),导通电压(pass voltage),编程电压(program voltage),擦除验证电压(erase verification voltage),以及编程验证电压(program verification voltage)等。行译码器300对从控制器200接收的地址信号进行解码,从而选择一个或多个字线,并将上述电压中的一个或多个发送到所选的一个或多个字线(word line)。感测电路600连接到位线102。感测电路600用于感测存储单元106是处于编程状态还是擦除状态,从而将存储在存储单元106的数据读出。感测电路600读出的数据存储在感测缓冲器400。感测缓冲器400例如是静态随机存储器(SRAM)。位扫描电路500用于在擦除操作或者编程操作后的失败位(error bit)的数量。失败位是指没有处于目标状态的存储单元。例如,在向存储单元的控制删施加编程电压后,存储单元的阈值电压仍然低于预定值,这样的存储单元没有达到擦除状态。
闪存的操作通常包括编程,擦除和读。简而言之,编程操作是将电子添加到电荷俘获层中的操作,而擦除操作是将电子从电荷俘获层移到沟道区的操作。通过编程操作,存储单元106的阈值电压增加,存储单元106处于编程状态并被视为存储信息“0”。通过擦除操作,存储单元106的阈值电压降低(对于SLC NAND闪存,降低到0V以下),存储单元106处于擦除状态,存储单元106被视为存储信息“1”。在读操作中,在存储单元106的控制删施加读电压,感测电路600比较流过存储单元106的电流和参考电流的大小,判断存储单元106是处于导通状态还是非导通状态,从而判断存储单元106是处于擦除状态还是编程状态。
结合图2,在NAND闪存的编程操作中,将编程电压(例如,20V)施加到目标页124连接的字线104,将导通电压(例如,9V)施加到该块中的其他字线104。位线102上的电压根据目标数据中对应的位的值来确定。例如,如果位线102对应的位的值是0,向该位线102施加大约0V的电压;如果位线102对应的位的值是1,向该位线102施加编程抑制电压(programinhibit voltage)。编程抑制电压例如为2.5V。
可以理解,目标页124中的存储单元106并不一定都能够到达目标状态。例如,编程操作后,一个或多个需要编程的存储单元106的阈值电压仍然小于编程状态对应的阈值电压范围。因此,编程操作之后还包括验证操作和位扫描操作。验证操作用来验证编程操作后存储单元106的实际状态。在验证操作中,编程验证电压(大于读操作中使用的读电压)施加到目标页124连接的字线104,感测电路600感测目标页124的存储单元存储的状态,并将验证数据作为验证结果存储在感测缓冲器400。位扫描电路500用于根据存储在感测缓冲器的验证数据确定失败位的数量(即没有处于目标状态的存储单元的数量)。如果失败位的数量在纠错码的校正能力之外,需要继续执行编程操作。这样编程操作可以包括多个循环(loop),每个循环包括编程阶段,验证阶段,位扫描阶段。可选地,位扫描电路500集成在控制器200中。
在一个实施例中,NAND闪存10还包括存储有目标数据的寄存器(register)。位扫描电路500逐位地(bit by bit)比较存储在感测缓冲器400中的验证数据和存储在寄存器中的目标数据,从而确定失败位的数量(即没有处于目标状态的存储单元的数量)。
在一个实施例中,位扫描电路500包括计数器。位扫描电路500逐位地比较验证数据和目标数据,每发现一个失败位,计数器的值加1。
在另一个实施例中,位扫描电路500为一个异或(XOR)电路。例如,位扫描电路500对目标数据和验证数据逐位进行异或操作,输出一个二进制数。在这个二进制数中,值为“1”的位对应一个失败位,即对应一个没有处于目标状态的存储单元。位扫描电路500通过统计值为“1”的位的数量来确定失败位的数量。当然,也可以使用相反的逻辑实现,用值为“0”对应失败位,本领域技术人员可以调整电路结构来适应这种逻辑实现。
在又一个实施例中,位扫描电路500逐位地比较存储在感测缓冲器400中的验证数据和存储在寄存器中的目标数据。在比较过程中,某个存储单元在目标数据中对应的位是0,如果在验证数据中对应的位是1,说明编程失败,保持寄存器中对应的位的值0;如果在验证数据中对应的位是0,说明编程成功,将寄存器中对应的位的值改为1。比较完成后,寄存器中0的数量即为失败位的数量。
纠错码能够纠正有限数量的失败位。纠错码所能纠正的失败位的最大数量称为纠错码的最大纠正能力(ECC tolerable number)。纠错码的最大纠正能力通常决定于纠错码的位数,即纠错码区域的存储单元数量。
本发明的NAND闪存10支持全页编程(full page program)和部分页编程(partialpage program)。全页编程是指编程操作是在整个存储单元页124上进行。由于一个存储单元页124的容量越来越大,目标数据很可能小于一个存储单元页124的数据区域的大小。在部分页编程方案中,根据目标数据在存储单元页124的数据区域选择一个区域来存储目标数据。例如,存储单元页124的数据区域包括n个存储单元106,目标数据有m位,在部分页编程中,控制器200在数据区域选择m个存储单元106来存储该目标数据。m和n都是整数,m小于n。
对于全页编程,位扫描操作也是在整个页124上执行。例如,存储单元页124的数据区域包括n个存储单元106,那么需要在这n个存储单元106上执行位扫描操作。
对于部分页编程,位扫描操作只是在所选择的m个存储单元106执行。例如,位扫描电路500只是逐位地比较m位的目标数据和对应的验证数据。这样时间消耗和电路功耗都会减小,提高了闪存的性能。通过比较m个存储单元106中的失败位数量是否小于等于预设的标准值来判断本次部分页编程是否成功。如果m个存储单元106中的失败位数量小于等于预设的标准值,则判断本次部分页编程成功。在一个优选实施例中,该预设的标准值例如为0。在另一个实施例中,该预设的标准值为大于0,小于或等于纠错码的最大纠正能力的整数。
在一个实施例中,如图4所示,位扫描电路500对m位的目标数据和感应缓冲器400中的对应验证数据逐位地进行异或操作,得到m位的二进制数据。这个m位的二进制数据中的“1”的个数即为失败位的数量。
在另一个实施例中,位扫描电路500逐位地比较对m位的目标数据和感应缓冲器400中的对应验证数据,并对失败位计数。比较操作起始于选择区域(所选择的m个存储单元106)的起始位,通过比较起始位在感应缓冲器400中对应的验证数据的位和m位的目标数据的首位来判断选择区域的起始位是不是失败位。这样,通过逐位比较,位扫描电路500就能确定选择区域中的失败位数量是否大于标准值。根据一些实施例,在位扫描操作中,位扫描电路500执行完m次比较,确定选择区域中的失败位的总数量,从而确定失败位数量是否大于标准值。根据另一些实施例,当检测到的失败位数量已经大于标准值时,位扫描操作停止。即,对于失败位的数量较多的情况,位扫描电路500不需要执行完m次比较,只要检测到的失败位数量已经大于标准值,就停止逐位比较,从而节省时间。
图5示出了这种位扫描方案的一个例子。在图5所示的实施例中,失败位数量的标准值是0。在第一个编程循环中,首先根据目标数据进行部分页编程,之后执行验证操作将验证数据存储在感应缓存器。之后,位扫描操作从起始位开始,在检测到失败位时,位扫描操作停止,进入第二个编程循环。例如,检测到第三个存储单元是失败位。在第二个编程循环的编程操作中,在已经编程成功的存储单元所连接的位线上施加编程抑制电压。第二编程循环的位扫描操作可以从起始位开始(如图5所示),也可以从第三个存储单元开始。例如,在第二个编程循环的位扫描操作中,检测到选择区域中的第五个存储单元是失败位,位扫描操作停止,不去检测第六个存储单元。以此类推,直到第N个编程循环的位扫描操作发现选择区域中没有失败位,说明部分页编程成功。
对于NAND闪存,在编程操作之前需要通过擦除操作使存储单元106处于擦除状态。即,对于待编程的页124,首先需要通过擦除操作,使待编程的页124中的数据变为111…11,之后通过编程操作使需要编程的存储单元106变为0。在擦除操作后所允许的部分页编程的次数(NOP)通常是预先规定的。
在一个实施例中,在本次部分页编程操作之前,在同一页上还执行过部分页编程,即本次部分页编程不是擦除之后的第一次部分页编程操作。如图6所示,在数据区域中的区域1已经执行过部分页编程操作。区域1中的失败位的数量为a,存储在纠错码区的纠错码的最大纠正能力为p,那么用于确定本次部分页编程操作是否成功的标准值大于等于0,小于等于p-a。
本公开还提供一种用于NAND闪存的部分页编程的位扫描方法。部分页编程根据目标数据在NAND闪存的目标页的选择区域执行。该位扫描方法包括:对所述选择区域中的编程失败的存储单元进行计数,从而确定编程失败的存储单元的数量是否超过标准值。
本发明还提供一种用于NAND闪存的操作方法。如图7所示,该操作方法包括步骤S701至S703。
在步骤S701,接收目标数据,并为目标数据在目标页的数据区域中选择存储区域。
在步骤S702,根据目标数据在选择区域执行部分页编程操作。图8示出了在部分页编程操作中施加在字线和位线上的电压。在目标页的字线104上施加编程电压Vpgm,在其他字线上施加导通电压(图8中未示出)。选择区域外的位线102上施加编程抑制电压V2(大约2.5V)。对于和选择区域中的存储单元对应的位线102,如果存储单元对应的目标数据位是0,施加大约0V的电压V1,如果对应的是1,施加编程抑制电压V2。
在步骤S703,执行编程验证操作,感测电路将验证结果存储在感测寄存器。
在步骤S704,判断编程失败的存储单元的数量是否超过标准值。如果编程失败的存储单元的数量小于等于标准值,本次部分页编程成功。如果编程失败的存储单元的数量大于标准值,本次部分页编程失败,需要重复步骤S702至S704。在重复步骤S702至S704时,选择区域中已经编程成功的存储单元对应的位线102上施加编程抑制电压V2。
图9是本发明实施例提供的一种部分页编程方法的流程图。在本实施例中,部分页编程编程使用增量步进脉冲编程(Incremental Step Pulse Program,ISPP)方法。如图9所示,部分页编程方法包括步骤S901至S909。
在步骤S901,控制器200接收目标数据,目标数据的大小小于目标页的数据区域的大小。
在步骤S902,控制器200在目标页的数据区域为目标数据选择存储区。控制器200将选择的区域的起始位和结束位发送给位扫描电路和列译码器。
在步骤S903开始执行ISPP方法。编程循环计数i初始化为1。
在步骤S904,编程电压脉冲Vpgm(i)施加到目标页的字线,导通电压施加到其他的字线。
在步骤S905,在目标页的位线施加编程验证电压,感测电路读出验证结果并存储在感测缓冲器。
在步骤S906,在选择区域执行位扫描操作,对失败位进行计数。例如,位扫描电路500从选择的区域的起始位开始依次判断每个存储单元是否处于目标状态。扫描电路500通过比较存储单元在验证结果和目标数据的对应位是否相同来判断存储单元是否处于目标状态。
在步骤S907,判断选择区域中失败位的数量是否小于或等于标准值。如果失败位的数量小于或等于标准值,则部分页编程成功。如果失败位的数量大于标准值,则执行步骤S908。
在步骤S908,判断当前的编程循环计数i是否小于最大允许值imax。如果判断当前的编程循环计数i已经是最大允许值,此次部分页编程失败。如果当前的编程循环计数i小于最大允许值,将编程循环计数i加1,使用更大的编程电压脉冲Vpgm(i+1)重复步骤S904至S908。
图10是本发明实施例提供的另一种NAND闪存的示意性框图。在图1和图10中相同的附图标记代表相同的元件。如图10所示,NAND闪存20包括:存储单元阵列100,控制器200,行译码器300,感测电路600,位扫描电路500,第一缓冲器410和第二缓冲器420。通过在字线上施加验证电压,感测电路600能够感测目标页的存储器单元的状态,并将验证结果存储在第一缓冲器410。图11是NAND闪存20的一种部分页编程方法的流程图。如图11所示,部分页编程方法包括步骤S1101至S1108。
在步骤S1101,控制器200将接收到的目标数据保存到第二缓冲器420,并且从目标页中选择存储单元用来存储目标数据。图12示出了保存在第二缓冲器420中的目标数据。作为示例的目标数据为10101010,保存在第二缓冲器420的前8位,第二缓冲器420的其他位设置为1。目标页的数据区域的前8个存储单元用来存储目标数据。
在步骤S1102,编程循环计数i初始化为1。
在步骤S1103,编程电压脉冲Vpgm(i)施加到目标页的字线,导通电压施加到其他的字线。根据第二缓冲器420保存的数据将编程促进电压或者编程抑制电压施加到对应的位线。具体地,目标页中的存储单元在第二缓冲器420中对应的位如果是1,则施加编程抑制电压到对应的位线;如果是0,则施加编程促进电压到对应的位线。在图12所示的例子中,第2,4,6,8存储单元需要通过编程操作由擦除状态变为编程状态。
在步骤S1104,执行编程验证操作。具体地,在目标页的字线上施加编程验证电压,感测电路600将验证结果保存到第一缓冲器410。
在步骤S1105,对于已经编程成功的存储单元,将其在第二缓冲器420中的对应位的值由0翻转(flip)为1。如图13所示,验证结果显示第2个和第4个存储单元依然处于擦除状态,没有编程成功;第6个和第8个存储单元编程成功。那么将第二缓冲器420的第6位和第8位的值由0翻转为1。
在步骤S1106,执行位扫描操作,判断部分页编程操作执行的区域中失败位的数量是否小于等于标准值。具体地,位扫描电路500检测第二缓冲器420的前8位中值为0的位的数量。位扫描电路500可以从第1位开始逐位地检测该位是否是0,确定出前8位中值为0的位的总数,进而判断失败位的数量是否小于等于标准值。或者,位扫描电路500从第1位开始逐位地检测该位是否是0,并对值为0的位计数,当已经检测到的值为0的位的数量已经超过标准值的时候,位扫描电路500终止操作,并向控制器200发送信号。
如果部分页编程操作执行的区域中失败位的数量是否小于等于标准值,本次部分页编程操作成功,方法结束。如果部分页编程操作执行的区域中失败位的数量超过标准值,本次部分页编程操作失败,执行步骤S1107。
在步骤S1107,判断当前的编程循环计数i是否小于最大允许值imax。如果判断当前的编程循环计数i已经是最大允许值,此次部分页编程失败。如果当前的编程循环计数i小于最大允许值,将编程循环计数i加1,使用更大的编程电压脉冲Vpgm(i+1)重复步骤S1103至S1107。
根据本发明的实施例,部分页编程的位扫描操作只是在实施部分页编程的存储单元区进行,即在位扫描操作中只需要判断实施部分页编程的存储单元区中的失败位的数量是否超过对应的标准值。在现有技术中,部分页编程的位扫描操作是在整个目标页执行,判断的是整个目标页中失败位的数量。相比于现有技术,本发明的位扫描方法,部分页编程方法和NAND闪存降低了时间消耗和电路功耗。
此外,本发明提供了一种计算***。该计算***包括在任何上述实施例中所公开的非易失性存储器。
在上述各种实施例中,本发明的非易失性存储器是多媒体卡(Multimedia Card,MMC),安全数字(Secure Digital,SD)卡,微型SD卡,记忆棒,ID卡,PCMCIA卡,芯片卡,USB卡,智能卡和紧凑型闪存(Compact Flash,CF)卡中的至少一种。
本发明的非易失性存储器可以使用以下方式封装:层叠封装(PoP)、球栅阵列(BGA)、芯片尺寸封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、晶片组件中的裸芯片、晶片形式的裸芯片、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料方型扁平式封装(MQFP)、薄方型扁平式封装(TQFP)、小外形集成芯片(SOIC)、缩小外形封装(SSOP)、薄小外形封装(TSOP)、薄方型扁平式封装(TQFP)、***级封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)或晶圆级堆叠封装(WSP)。
虽然以上描述了示例性实施例,但并不意味着这些实施例描述了权利要求所包含的所有可能形式。说明书中使用的词语是描述性词语而不是限制性词语,并且应当理解,在不脱离本公开和权利要求的精神和范围的情况下,可以进行各种改变。如前所述,各种实施例中的特征可以组合以形成本文没有明确描述或明确说明的本发明的其他实施例。虽然各种实施例可能已经被描述为相对于一个或多个期望特性提供优于或优于其他实施例或现有技术实现,但是本领域普通技术人员认识到可能损害一个或多个特征或特性以实现期望的。整体***属性,取决于具体的应用程序和实现。这些属性可包括但不限于:成本,强度,耐久性,生命周期成本,可销售性,外观,包装,尺寸,适用性,重量,可制造性,易于组装等。因此,描述为不太理想的实施例。关于一个或多个特性的其他实施例或现有技术实现不在本公开的范围之外,并且对于特定应用可能是期望的。
Claims (15)
1.一种非易失性存储器的部分页编程方法,所述非易失性存储器包括多个存储单元块,每个存储单元块包括多个存储单元页,每个存储单元页包括数据区域和纠错码区域,所述数据区域包括n个存储单元,所述部分页编程方法包括:
接收m位的目标数据,其中,m小于n;
在目标页的数据区域中确定用于存储目标数据的选择区域,所述选择区域包括m个存储单元;
根据所述目标数据在所述选择区域执行部分页编程操作;
获取所述部分页编程操作的验证数据;以及
只在所述选择区域判断编程失败的存储单元的数量是否超过标准值;
当选择区域中的编程失败的存储单元的数量小于等于标准值,则判断本次部分页编程成功。
2.根据权利要求1所述的部分页编程方法,其中,所述只在所述选择区域判断编程失败的存储单元的数量是否超过标准值包括:逐位比较所述部分页编程操作的验证数据和目标数据。
3.根据权利要求2所述的部分页编程方法,其中,当编程失败的存储单元的计数已经超过标准值时,停止比较所述编程操作的验证数据和目标数据。
4.根据权利要求1所述的部分页编程方法,其中,所述标准值为0。
5.根据权利要求1所述的部分页编程方法,其中,所述标准值大于等于0小于等于纠错码的最大纠正能力。
6.根据权利要求1所述的部分页编程方法,其中,所述非易失性存储器是SLC NAND闪存。
7.根据权利要求1所述的部分页编程方法,其中,所述只在所述选择区域判断编程失败的存储单元的数量是否超过标准值包括:只在所述选择区域计算编程失败的存储单元的数量。
8.一种非易失性存储器,其特征在于,包括:
存储单元页,所述存储单元页包括n位的数据区域和纠错码区域;
第一缓冲器;
第二缓冲器;
感测电路;和
控制器,
其中,所述控制器设置为:将m位目标数据存储到第二缓冲器,在数据区域中选择m个存储单元作为选择区域,以及根据目标数据在选择区域进行部分页编程,其中m和n都是整数,m小于n;
所述感测电路设置为执行编程验证并将验证结果存储到所述第一缓冲器;
所述控制器还设置为只在所述选择区域中判断编程失败的存储单元的数量是否超过标准值;其中,当选择区域中的编程失败的存储单元的数量小于等于标准值,则判断本次部分页编程成功。
9.根据权利要求8所述的非易失性存储器,其中,所述控制器还设置为逐位比较所述目标数据和对应的验证结果。
10.根据权利要求9所述的非易失性存储器,其中,当编程失败的存储单元的计数已经超过标准值时,所述控制器停止比较所述目标数据和对应的验证结果。
11.根据权利要求8所述的非易失性存储器,其中,所述标准值为0。
12.根据权利要求8所述的非易失性存储器,其中,所述非易失性存储器是SLC NAND闪存,所述控制器将所述第二缓冲器中对应编程成功的存储单元的位修改为第一值,所述控制器设置为判断第二缓冲器中取值为第二值的位的数量是否超过标准值。
13.根据权利要求12所述的非易失性存储器,其中,所述控制器设置:逐位判断第二缓冲器的位是否是第二值;对第二缓冲器中取值为第二值的位进行计数;当计数值超过标准值时,所述控制器停止对第二缓冲器中取值为第二值的位进行计数。
14.根据权利要求8所述的非易失性存储器,其中,所述控制器对目标数据和对应的验证结果执行XOR操作。
15.根据权利要求8所述的非易失性存储器,其中,所述只在所述选择区域中判断编程失败的存储单元的数量是否超过标准值包括:只在所述选择区域计算编程失败的存储单元的数量。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811644301.2A CN111383697B (zh) | 2018-12-30 | 2018-12-30 | 用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器 |
US16/279,072 US20200211670A1 (en) | 2018-12-30 | 2019-02-19 | Bit scan method for partial page program and nonvolatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811644301.2A CN111383697B (zh) | 2018-12-30 | 2018-12-30 | 用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111383697A CN111383697A (zh) | 2020-07-07 |
CN111383697B true CN111383697B (zh) | 2022-09-06 |
Family
ID=71124413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811644301.2A Active CN111383697B (zh) | 2018-12-30 | 2018-12-30 | 用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200211670A1 (zh) |
CN (1) | CN111383697B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114582402A (zh) * | 2022-02-28 | 2022-06-03 | 东芯半导体股份有限公司 | 非易失性存储器及其编程方法、计算机*** |
CN115831203A (zh) * | 2022-12-29 | 2023-03-21 | 东芯半导体股份有限公司 | Nand闪存设备中减少空间的编程方法、装置、存储器及*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7304893B1 (en) * | 2006-06-30 | 2007-12-04 | Sandisk Corporation | Method of partial page fail bit detection in flash memory devices |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7057939B2 (en) * | 2004-04-23 | 2006-06-06 | Sandisk Corporation | Non-volatile memory and control with improved partial page program capability |
US7545681B2 (en) * | 2006-11-27 | 2009-06-09 | Sandisk Corporation | Segmented bitscan for verification of programming |
KR100884234B1 (ko) * | 2007-05-25 | 2009-02-18 | 삼성전자주식회사 | 프로그램 성능을 향상시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법 |
KR101015655B1 (ko) * | 2009-05-29 | 2011-02-22 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 구동 방법 |
KR101022882B1 (ko) * | 2009-06-12 | 2011-03-16 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 동작 방법 |
KR101617641B1 (ko) * | 2009-08-27 | 2016-05-03 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법 |
US8493792B2 (en) * | 2010-12-02 | 2013-07-23 | Hynix Semiconductor Inc. | Programming method of non-volatile memory device |
KR101222063B1 (ko) * | 2011-02-28 | 2013-01-15 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치 및 그 동작방법 |
KR101996004B1 (ko) * | 2012-05-29 | 2019-07-03 | 삼성전자주식회사 | 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템 |
KR102320955B1 (ko) * | 2015-02-02 | 2021-11-05 | 삼성전자주식회사 | 불 휘발성 메모리 장치 및 그것의 읽기 방법 |
KR102461738B1 (ko) * | 2016-08-16 | 2022-11-02 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
US10482969B2 (en) * | 2017-12-21 | 2019-11-19 | Western Digital Technologies, Inc. | Programming to a correctable amount of errors |
KR102468751B1 (ko) * | 2018-05-09 | 2022-11-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2018
- 2018-12-30 CN CN201811644301.2A patent/CN111383697B/zh active Active
-
2019
- 2019-02-19 US US16/279,072 patent/US20200211670A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7304893B1 (en) * | 2006-06-30 | 2007-12-04 | Sandisk Corporation | Method of partial page fail bit detection in flash memory devices |
Also Published As
Publication number | Publication date |
---|---|
CN111383697A (zh) | 2020-07-07 |
US20200211670A1 (en) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11568940B2 (en) | Apparatus for determining data states of memory cells | |
US10714170B2 (en) | Semiconductor memory device and memory system | |
US9779790B2 (en) | Nonvolatile memory device and method of driving word line of the nonvolatile memory | |
EP2154687B1 (en) | Erased sector detection mechanisms | |
US8830743B2 (en) | Method of operating memory controller, memory controller, memory device and memory system | |
US8644066B2 (en) | Multi-level non-volatile memory device, system and method with state-converted data | |
US9286972B2 (en) | Method, memory controller and system for reading data stored in flash memory | |
US9093154B2 (en) | Method, memory controller and system for reading data stored in flash memory | |
KR101807346B1 (ko) | 비휘발성 메모리에 비트 스캔 회로 및 방법 | |
CN110795270A (zh) | 固态储存装置及其读取重试方法 | |
CN111341371A (zh) | 用于响应于存储器单元年限的指示而对存储器单元进行编程的设备及方法 | |
CN111383697B (zh) | 用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器 | |
US8040730B2 (en) | Nonvolatile memory device | |
CN111951873B (zh) | 用于校准存储器单元数据状态的感测的设备及方法 | |
CN111290876B (zh) | 存储器***及其操作方法 | |
US10916311B2 (en) | Flash memory and operation method thereof | |
CN111383703B (zh) | 非易失性存储器及其操作方法 | |
EP1324342B1 (en) | Programming method for a multilevel memory cell |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |