CN101763904B - 非易失性存储装置及其操作方法 - Google Patents
非易失性存储装置及其操作方法 Download PDFInfo
- Publication number
- CN101763904B CN101763904B CN200910262084.5A CN200910262084A CN101763904B CN 101763904 B CN101763904 B CN 101763904B CN 200910262084 A CN200910262084 A CN 200910262084A CN 101763904 B CN101763904 B CN 101763904B
- Authority
- CN
- China
- Prior art keywords
- memory cell
- data
- cell block
- error
- stored
- 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
Classifications
-
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
一种非易失性存储装置的操作方法,包括:执行读取操作来读取存储在包括第一单位组的第一存储单元块中的数据;从第一单位组中检测第二单位组,该第二单位组具有的在读取数据中包括的错误位的数量比设定位数多,且等于或少于可以通过错误检测和校正(ECC)处理校正的最大允许位数;以及在检测第二单位组之后,执行回写操作来将存储在第一存储单元块中的数据移动到第二存储单元块。本发明还公开了一种非易失性存储装置。
Description
相关申请的交叉引用
本申请要求于2008年12月24日提交的韩国专利申请第10-2008-0133166号及于2009年6月17日提交的韩国专利申请第10-2009-0053838号的优先权,通过引用将各申请的公开内容结合于此。
技术领域
本发明涉及一种非易失性存储装置及其操作方法,更具体地,涉及一种非易失性存储装置及其操作方法,其中,在读取操作中执行了错误检验和校正(errorcheckingandcorrection,ECC)处理。
背景技术
非易失性存储装置具有即使停止供电也保持存储在该装置中的数据的特性。NAND闪存装置是典型的非易失性存储装置之一。
非易失性存储装置包括存储数据的存储单元。如果非易失性存储装置的集成度增加,那么由于存储单元的尺寸减小,非易失性存储装置的电性能将恶化。例如,具有工艺中问题所导致的劣质特性的存储单元可能无法在编程操作中适当地存储数据,或者存储在该存储单元中的数据在擦除操作中可能无法适当地擦除。在这种情况下,执行防止使用包括无效存储单元的存储单元块的无效块处理。
另一个示例,由于例如泄露电流,存储在具有劣质特性的存储单元中的数据被改变。此外,当在数据被存储在存储单元中之后重复执行读取操作时,存储单元的阈值电压可能通过在读取操作期间施加至存储单元的通过电压(passvoltage)被改变,从而改变存储在存储单元中的数据。如果数据保持特性如上所述地下降,那么装置的可靠性受到损害,并且可能无法正确读取存储在该装置中的数据。
发明内容
一个或多个实施例涉及非易失性存储装置及其操作方法,在于读取操作期间执行ECC处理的结果是产生的错误位的数量与通过ECC处理可以校正的最大错误位数量相同、或者比最大位数少但比设定位数多的情况下,能够通过将存储在存储单元块中的数据移动至具有更加稳定性能的存储单元块来提高数据保持特性。
根据本公开的一个方面,提供了一种操作非易失性存储装置的方法,包括:执行读取操作以读取存储在包括第一单位组的第一存储单元块中的数据;从第一单位组中检测第二单位组,第二单位组具有的在读取数据中包括的错误位的数量比设定位数多,并且等于或少于通过ECC处理可以校正的最大允许位数;以及在检测到第二单位组之后,执行回写操作,以便将存储在第一存储单元块中的数据移动到第二存储单元块。
包括在第一存储单元块中的单位页是第一单位组。
把包括在第一存储单元块中的单位页分成2至8个部分的扇区是第一单位组。
第一单位组存储512位或512字节数据,1024位或1024字节数据,或2048位或2048字节数据。
检测第二单位组包括:执行ECC处理以根据ECC代码来校正包括在读取数据中的错误位,计数读取数据中包括的错误位的数量,以及根据错误位的数量来存储是否已经检测到第二单位组。
从第一单位组中,将具有的错误位的数量与最大允许位数相同或者比最大允许位数的50%多的第一单位组检测为第二单位组。
从第一单位组中,将具有的错误位的数量与最大允许位数相同或者比最大允许位数的70%多的第一单位组检测为第二单位组。
执行回写操作包括:通过在包括在第一存储单元块中的第一字线上执行读取操作来读取数据,执行ECC处理来校正包括在读取的数据中的错误位,通过在与第一存储单元块的第一字线相对应的第二存储单元块的第一字线上执行编程操作来存储经错误校正的数据,以及重复执行读取操作、ECC处理以及编程操作,直到所有存储在第一存储单元块中的数据被存储在第二存储单元块中为止。
当经错误校正的数据存储在第二存储单元块中时,也存储了经错误校正的数据的ECC代码。
该方法进一步包括在执行回写操作之后,执行防止使用第一存储单元块的无效块处理。
第一存储单元块的地址存储在非易失性存储装置中。
根据本公开的另一方面,提供了一种非易失性存储装置,包括:存储单元阵列,其包括多个存储单元块;ECC处理部件,配置为通过ECC处理来校正从存储单元块的第一存储单元块读取的数据中包括的错误位;无效块处理部件,配置为如果读取数据中包括的错误位的数量比设定位数多并且等于或少于可以通过ECC处理来校正的最大允许位数,则执行无效块处理,以防止使用第一存储块;以及控制部件,配置为控制回写操作,以便将存储在第一存储单元块中的数据存储到第二存储单元块。
将ECC处理部件配置为针对每一单位数据计数读取数据的错误位的数量,以及检测具有的错误位的数量比设定位数多并且等于或少于最大允许位数的单位数据。
将ECC处理部件配置为检测具有的错误位的数量与最大允许位数相同或比最大允许位数的50%多的单位数据。
将ECC处理部件配置为检测具有的错误位的数量与最大允许位数相同或者比最大允许位数的70%多的单位数据。
将ECC处理部件配置为将以页为基础存储在第一存储单元块中的数据设置为单位数据,或将针对把页单位分为2至8个部分的每个扇区而存储的数据设置为单位数据。
将ECC处理部件配置为将单位数据设置为:512位或512字节,1024位或1024字节,或2048位或2048字节。
将ECC处理部件配置为当执行回写操作时,产生将要存储在第二存储单元块中的ECC代码。
将无效块处理部件配置为控制将第一存储单元块的地址存储在非易失性存储装置中的操作。
将控制部件配置为控制回写操作,以便在存储于第一存储单元块中的数据在ECC处理部件中被校正之后,将数据存储在第二存储单元块中。
附图说明
图1A是根据实施例的非易失性存储装置的框图;
图1B是图1A中所示的存储单元块的电路图;
图2是示出根据实施例的非易失性存储装置的操作方法的流程图;以及
图3是示出根据本公开的实施例1和2的块以及根据对照例1和2的块的芯片故障率和原始位错误率(BER)的图表。
具体实施方式
下文中,将参照附图详细描述本发明的一个或多个实施例。提供了附图标记,以使本领域技术人员理解本发明实施例的范围。
图1A是根据实施例的非易失性存储装置的框图,以及图1B是图1A中所示的存储单元块的电路图。
参照图1A和图1B,根据本实施例的非易失性存储装置包括存储单元阵列110、页缓冲器部件120、Y解码器130、X解码器140、高压生成部件150和控制部件160。
存储单元阵列110包括若干存储单元块115。每个存储单元块115包括若干串ST。每个串ST包括漏极选择晶体管DST、单元串和源极选择晶体管SST。串ST耦合在位线BL和公共源极线CSL之间。各串ST耦合至不同的位线BL,并且并联耦合至公共源极线CSL。单元串包括相互串联耦合的若干存储单元C0到Cn。包括在不同串ST中的漏极选择晶体管DST的栅极相互耦合,从而形成漏极选择线DSL。包括在不同串ST中的源极选择晶体管SST的栅极相互耦合,从而形成源极选择线SSL。包括在不同串ST中的存储单元的控制栅极相互耦合,从而形成字线WL。将耦合至一条字线WL的一组存储单元称为页PAGE。此外,将耦合至一条字线WL的一组偶数编号的存储单元称为偶数页,以及将耦合至一条字线WL的一组奇数编号的存储单元称之为奇数页。
漏极选择晶体管DST根据施加至漏极选择线DSL的电压将单元串电耦合至位线BL。源极选择晶体管SST根据施加至源极选择线SSL的电压将单元串电耦合至公共源极线CSL。
在该非易失性存储装置中,根据施加至漏极选择线DSL、字线WL和源极选择线SSL的电压执行擦除操作、编程操作和读取操作。在每个存储单元块上执行擦除操作,和在页基础上执行编程操作或读取操作。
同时,存储单元阵列110包括主单元阵列115M和备用单元阵列115S。主单元阵列115M包括存储数据的主存储单元。备用单元阵列115S包括存储关于主存储单元的信息的备用存储单元。每个存储单元块中都包括主存储单元和备用存储单元。主存储单元和备用存储单元的构造相同。特别地,在执行编程操作以将数据存储到主存储单元中期间,根据存储的数据生成的ECC代码被存储到备用存储单元中。然而,ECC代码可以存储到其它非易失性存储装置中,而不存储在备用存储单元中。例如,可以将ECC代码存储到存储单元块中或者存储到用来存储存储单元的状态而非存储数据的CAM单元中。下面将详细描述。
存储单元阵列110中包括的一些存储单元块115可以用来存储关于存储单元块的状态的信息。例如,关于存储单元块中不能存储数据的无效存储单元块的地址信息可以被存储在最后的存储单元块中。
将控制部件160配置为响应外部命令信号CMD而输出编程命令信号、读取命令信号或擦除命令信号。将控制部件160配置为响应地址信号ADD而生成内部地址信号。此外,将控制部件160配置为输出控制信号,以在读取操作或编程操作期间控制页缓冲器部件120的操作。特别地,控制部件160包括ECC处理部件161和无效块处理部件162。
将ECC处理部件161配置为当执行编程操作时根据存储在主存储单元中的数据生成ECC代码。在执行编程操作以将数据存储在主存储单元期间,ECC代码被发送到页缓冲器部件120并被存储在备用存储单元中。此外,将ECC处理部件161配置为比较在读取操作中从主存储单元读取的数据与从备用存储单元读取的ECC代码,以及校正在读取操作期间读取的数据中与编程操作期间所存储的数据不匹配的错误位。这称为ECC处理过程。在ECC处理过程期间,可以计数包括在数据中的错误位的数量。至于ECC处理过程,ECC处理部件161中可以包括存储部件,或者控制部件160可以包括和ECC处理部件161分离的存储部件163。可以使用高速缓冲存储器、寄存器等实现存储部件163。
无效块处理部件162根据数据中包括的错误位的数量来执行无效块处理功能,防止使用已经执行了读取操作的存储单元块。随后将描述与ECC处理相关的ECC处理部件161和无效块处理部件162的详细操作。
将高压生成部件150配置为响应由控制部件160生成的编程命令信号、读取命令信号或擦除命令信号而生成用于编程操作、读取操作或擦除操作的操作电压。
将X解码器140配置为将高压生成部件150所生成的操作电压传送至根据由控制部件160生成的内部地址从存储单元阵列110中包括的若干存储单元块115中选择的存储单元块。
页缓冲器部件120包括耦合至位线BL的页缓冲器。页缓冲器可以耦合至一条位线BL或耦合至包括偶数位线BLe和奇数位线BLo的一对位线BL。将页缓冲器部件120配置为响应由控制部件160生成的控制信号而将读取操作期间从存储单元读取的数据输出至外部,或在编程操作期间将外部输入数据传送至存储单元阵列110。由于存储单元阵列110被分为主存储单元阵列115M和备用存储单元阵列115S,所以页缓冲器部件120中包括的页缓冲器可以分为用于主存储单元阵列115M的页缓冲器和用于备用存储单元阵列115S的页缓冲器。
将Y解码器130配置为顺序地将从主存储单元读取并存储在页缓冲器部件120中的数据输出至外部,或将外部输入数据传送至页缓冲器部件120。另一个例子是,在通过控制部件160将数据从外部传送至芯片的情况下,Y解码器130起到顺序地将从主存储单元读取并存储在页缓冲器部件120中的数据输出至控制部件160以及将从控制部件160接收到的数据输出至页缓冲器部件120的作用。可以根据列地址操作Y解码器130,并且列地址可以由控制部件160生成。
下面将描述如上配置的非易失性存储装置的操作方法。
图2是示出根据实施例的非易失性存储装置的操作方法的流程图。
参照图1A、1B和图2,在步骤S200中响应地址信号在从存储单元块中选择的存储单元块(下文中称为“第一存储单元块”)上执行读取操作。更具体地,在耦合至从第一存储单元块中包括的若干字线WL选择的字线WL的存储单元上执行读取操作。假设2048个存储单元耦合至所选择的字线WL,则该2048个存储单元可以形成一页。此外,1024个偶数存储单元可以形成偶数页,以及1024个奇数存储单元可以形成奇数页。在页基础上执行读取操作。作为一个示例,将描述2048个存储单元形成一页的情况。将从选择的页的存储单元读取的数据存储在页缓冲器部件120中。这时,不仅从主存储单元读取的数据被存储在页缓冲器部件120中,而且从备用存储部件读取的ECC代码也被存储在页缓冲器部件120中。
在步骤S210中执行针对读取数据的ECC处理。将存储在页缓冲器部件120的数据和ECC代码发送至在控制部件160的ECC处理部件161中所包括的高速缓冲存储器。ECC处理部件161基于ECC代码,检验从主存储单元读取的数据是否与执行之前的编程操作时存储在主存储单元中的实际数据相同。如果检验结果是读取数据中存在部分错误位,则ECC处理部件161校正这些错误位。
此外,ECC处理部件161计数错误位的数量。计数错误位数量的操作和ECC处理可以分开执行。这里,在不要求计数错误位数量的操作的情况下,可以提高ECC处理操作的速度。此外,在ECC处理操作期间,可以同时执行错误位数量的计数和错误位的校正。这种情况下,由于不需要单独执行计数错误位数量的操作,所以可以提高在执行计数操作的情况下的操作速度。
针对每一单位数据限制可以通过ECC处理校正的错误位的数量。例如,可以针对第一存储单元块内的每一单位组(页,或将页分为2至8个部分的扇区)限制可校正错误位的数量。更具体地,针对每4096位(或4096字节)数据可以校正128、64或32个错误位,针对每2048位(或2048字节)数据可以校正32个错误位,针对每1024位(或1024字节)数据可以校正16个错误位,或针对每512位(或512字节)数据可以校正8个错误位。该设置可以根据设计的不同而不同。作为一个示例,下面将描述每512位数据可以校正8个错误位的情况。
假设一页中包括2048个主存储单元,2048位数据通过一次读取操作读取并且被传送至ECC处理部件161。2048位数据分为4个扇区(每一扇区512位),并且存储在ECC处理部件161的高速缓冲存储器中。通过ECC处理操作为每个扇区(512位)校正和计数错误位。在存储于高速缓冲存储器中的数据中,其错误位已经校正了的数据再次被发送至页缓冲器部件120。
尽管附图中没有示出,但是如果四个扇区中的任何一个扇区中出现的错误位的数量多于通过ECC处理所能校正的错误位的数量,则将相应存储单元块视为无效。
在步骤S220中通过Y解码器130输出通过ECC处理的经错误校正的数据。
然后在步骤S230中确定是否已在第一存储单元块中包含的所有页上执行了读取操作。如果确定结果是未在所有页上执行读取操作,那么根据如上描述的操作(步骤S200、S210和S220)在下页上执行读取操作。
如果在ECC处理操作期间检测到错误位(步骤S210),那么在步骤S240中确定错误位的数量是否落在设定范围内。例如,确定已经执行了读取操作的存储单元块的页是否包括这样的扇区,该扇区具有的错误位的数量与可以校正的最大错误位数量相同,或比可以校正的最大错误位数量少但是比设定的错误位数量多。更详细地,确定512位扇区中是否存在这样一个扇区,其中该扇区具有的错误位数量与可以校正的错误位的数量相同(即,8),或者多于或等于4但是少于可以校正的错误位的数量(即,8)。如果在读取操作期间存在满足如上条件的扇区,那么ECC处理部件161在ECC处理期间将确定结果存储在高速缓冲存储器中。
可以如上所述确定每个扇区产生的错误位的数量是否为4至8位。或者,可以确定是否存在这样一个扇区,该扇区具有的错误位的数量比错误位的最大允许数量的50%或70%多。该设置范围可根据设计的不同而不同。
作为步骤S240的确定结果,如果确定存在具有落在设定范围内的错误位数量的扇区,则在步骤S300中在包括相应扇区的存储单元块上执行回写操作。下面将详细描述该过程。
在第一存储单元块上的读取操作终止或者在所有的存储单元块上的读取操作终止之后,在步骤S250、S260、S270、S280和S290中执行回写操作,以便将存储在第一存储单元块中的数据移动到没有存储数据的另一个存储单元块中(下文中称为“第二存储单元块”)。例如,在步骤S250中可以选择第一字线,以及在步骤S260中,可以在选择的字线上执行读取操作。在读取操作期间,以同样的方式执行如上所述的ECC处理,从而校正错误位。将通过ECC处理校正了错误的数据存储在页缓冲器部件120中。在此,ECC处理部件161根据在页缓冲器部件120中存储的经错误校正的数据而产生ECC代码,并将该ECC代码和该经错误校正的数据一起发送到页缓冲器部件120。在这种情况下,该ECC代码不是此时新生成的,而是可以使用存储在第一存储单元块的备用单元中的ECC代码。
在步骤S270中,通过编程操作将页缓冲器部件120中存储的经错误校正的数据和ECC代码存储在第二存储单元块的字线(第一字线)的主存储单元和备用存储单元中,其中第二存储单元块的字线与在其上执行了读取操作的第一存储单元块的字线相对应。在此,存储ECC代码是为了校正在第二存储单元块的后续读取操作过程中出现的错误位,其中在第二存储单元块中通过回写操作存储了数据。
然后在步骤S280中确定在其上执行了读取操作的字线是否是第一存储单元块的最后字线。作为确定结果,如果确定该字线不是第一存储单元块的最后字线,那么在步骤S290中,增加在其上已经执行了读取操作的字线的地址,以便选择下一字线。根据增加的字线地址在选择的字线上执行读取操作(S260)和编程操作(S270),直到选择最后字线为止。
在最后字线的读取操作和回写的编程操作完成之后,在步骤S295中执行将已经执行了读取操作的第一存储单元块视为无效块的操作。无效块处理操作(S295)是可选的,在确定可靠性受到损害使得错误位的数量急剧增加的情况下,可以根据设计选择性地执行该操作。
控制部件160控制存储第一存储单元块的地址的操作。例如,当无效块处理部件162产生用于第一存储单元块的无效块处理的信号时,控制部件160将第一存储单元块的地址存储在非易失性存储装置中,例如,存储在CAM单元中。在另一个例子中,控制部件160可以控制高压生成部件150、X解码器140和页缓冲器部件120,以便将第一存储单元块的地址存储在存储单元阵列110的存储单元块115中的、用于存储状态信息的存储单元块(例如,最后存储单元块)中。由于如上所述在非易失性存储装置中存储块地址,所以相应的存储单元块不用于后续的数据存储目的。
上文中,即使出现的错误位的数量比可以校正的最大错误位数量少,存储在相应存储单元块中的数据也通过回写操作被存储到另一存储单元块中,然后相应存储单元块被设置成无效块,下面将描述其原因。如果出现的错误位的数量比可以校正的错误位的数量少,则可以通过ECC处理执行正常的读取操作。然而,如果出现的错误位的数量几乎和可以校正的最大错误位数量相同,且因泄露电流导致的数据保持特性的降低而额外产生错误位,那么将不可能通过ECC处理来校正错误位。因此,在该问题发生之前,当通过ECC处理可以校正错误位时,将数据移动到具有更稳定性能的存储单元块中,并执行相应存储单元块的无效块处理。下面将描述通过该操作获得的可靠性特性。
图3是示出根据本公开的实施例1和2的块以及根据对照例1和2的块的芯片故障率和原始位错误率(BER)的图表。在此,原始BER是指当未执行ECC方法时实际生成的BER。
参照图3,本公开的实施例1中,使用ECC方法执行错误校正,以及如果512字节的单位数据中含有4位错误位,那么根据本公开的非易失性存储装置的操作方法将存储在相应块中的数据编程到另一个块中,且该相应块被视为无效。此外,在本公开的实施例2中,通过ECC方法执行错误校正,以及如果在512字节的单位数据中包括8位错误位,那么根据本公开的非易失性存储装置的操作方法将存储在相应块中的数据编程到另一个块中,且该相应块被视为无效。此外,在本公开的对照例1中,采用ECC方法执行错误校正,但是相应块不被视为无效。同样,在本公开的对照例2中,通过ECC方法执行错误校正,但是相应块不被视为无效。
从图3可以看出,在本公开的实施例中,可允许的原始BER和对照例相比几乎增加了十倍。此外,在未执行无效块处理的3.2E-5BER情况下(即,芯片故障率为70%),如果执行无效块处理,则芯片故障率可以降低到1E-6或者更少。
根据本公开,在读取操作期间执行ECC处理之后,当执行回写操作和无效块处理时,可以获得如下优势。
在编程操作中,在一页(或者一页中包括的扇区之一)内的不能存储数据的无效存储单元的数量不大的情况下,假定通过读取操作中的ECC处理会校正错误位,从而终止该编程操作。因此,可以提高编程操作的速度。此外,即使在编程操作中无效存储单元的数量大,存储在相应存储单元块中的数据也只必须被存储在另一存储单元块中。因此,数据没有丢失。
然而,在编程操作之后重复执行读取操作,数据保持特性可能由于施加至存储单元的应力而降低,并且存储单元中存储的数据可能改变,从而导致出现额外的错误位。在这种情况下,存储的数据可能由于丢失而无法恢复。
因此,在本公开中,在读取操作期间,在存储单元块中的每一单位组(页或页中的扇区)产生的错误位的数量与可以通过ECC处理校正的最大错误位数量相同或比最大位数少但比设定位数多的情况下,执行回写操作,以便将存储在相应存储单元块中的数据移动到另一个存储单元块中,然后执行防止该相应存储单元块被使用的无效块处理。在产生的错误位的数量落在可以通过ECC处理校正的错误位数量的范围内之后,如果产生额外的错误位,则ECC处理可能变得不可行。因此,在ECC处理不可行之前,将数据移动到具有更加稳定特性的存储单元块。
因此,可以防止出现这样的问题:数据保持特性的降低造成错误位增加,因此ECC处理不可能进行,从而导致数据丢失。
此外,在本公开中,选择性地执行通常在读取操作中不执行的无效块处理。因此,可以降低数据丢失率,且可以提高装置可靠性。
Claims (18)
1.一种非易失性存储装置的操作方法,该方法包括:
执行读取操作,以读取存储在具有多个页且包括第一单位组的第一存储单元块中的数据;
在进行了所述第一存储单元块中包括的多个页的所有页的读取操作之后,从第一单位组中检测在数据中包括有多个错误位的第二单位组,其中所述错误位的数量比设定位数多,且等于或少于通过错误检验和校正处理可校正的最大允许位数;以及
在检测到具有多个错误位的第二单位组之后执行回写操作,以便将存储在所述第一存储单元块中的数据移动到第二存储单元块,
其中,从所述第一单位组当中将与最大允许位数相等或比最大允许位数的50%多的错误位的数量检测为所述第二单位组,
其中执行所述回写操作包括:
通过在所述第一存储单元块中包括的第一字线上执行读取操作来读取数据;
执行错误检验和校正处理来校正读取数据中包括的错误位;
通过在与所述第一存储单元块的所述第一字线相对应的所述第二存储单元块的第一字线上执行编程操作来存储经错误校正的数据;以及
重复执行所述读取操作、所述错误检验和校正处理和所述编程操作,直到存储在所述第一存储单元块中的所有数据被存储到所述第二存储单元块中为止。
2.根据权利要求1所述的方法,其中,所述第一存储单元块中包括的单位页是所述第一单位组。
3.根据权利要求1所述的方法,其中,将包括在第一存储单元块中的单位页分为2至8个部分的扇区是第一单位组。
4.根据权利要求1所述的方法,其中,所述第一单位组存储512位或512字节数据、1024位或1024字节数据或者2048位或2048字节数据。
5.根据权利要求1所述的方法,其中,检测第二单位组的步骤包括:
执行错误检验和校正处理,以根据错误检验和校正代码校正读取数据中包括的错误位;
计数读取数据中包括的错误位的数量;以及
根据错误位的数量存储检测第二单位组的结果。
6.根据权利要求1所述的方法,其中,从第一单位组当中将与最大允许位数相等或比最大允许位数的70%多的错误位的数量检测为所述第二单位组。
7.根据权利要求1所述的方法,其中,当经错误校正的数据被存储在所述第二存储单元块中时,也存储所述经错误校正的数据的错误检验和校正代码。
8.根据权利要求1所述的方法,进一步包括:
在执行所述回写操作之后执行防止所述第一存储单元块被使用的无效块处理。
9.根据权利要求8所述的方法,其中,在所述非易失性存储装置中存储所述第一存储单元块的地址。
10.一种非易失性存储装置,包括:
存储单元阵列,包括多个具有多个页的存储单元块;
错误检验和校正处理部件,其被配置为通过错误检验和校正处理来校正包括在从所述存储单元块的第一存储单元块读取的数据中的错误位;
无效块处理部件,其被配置为在进行了所述第一存储单元块中包括的多个页的所有页的读取操作之后,如果数据中包括的错误位的数量多于设定位数且等于或少于通过所述错误检验和校正处理可校正的最大允许位数时,则执行防止所述第一存储单元块被使用的无效块处理;以及
控制部件,其被配置为如果数据中包括的错误位的数量多于设定位数且等于或少于所述最大允许位数时、控制把存储在所述第一存储单元块中的数据存储到第二存储单元块的回写操作,
其中,所述设定位数比最大允许位数的50%多,
其中,所述控制部件被配置成通过如下方式来控制回写操作:通过在所述第一存储单元块中包括的第一字线上执行读取操作来读取数据;执行错误检验和校正处理来校正读取数据中包括的错误位;通过在与所述第一存储单元块的所述第一字线相对应的所述第二存储单元块的第一字线上执行编程操作来存储经错误校正的数据;以及重复执行所述读取操作、所述错误检验和校正处理和所述编程操作,直到存储在所述第一存储单元块中的所有数据被存储到所述第二存储单元块中为止。
11.根据权利要求10所述的非易失性存储装置,其中,将所述错误检验和校正处理部件配置为针对每一单位数据计数数据的错误位数量,以及检测具有的错误位的数量多于设定位数且等于或少于最大允许位数的单位数据。
12.根据权利要求11所述的非易失性存储装置,其中,将所述错误检验和校正处理部件配置为检测具有的错误位的数量等于最大允许位数或比最大允许位数的50%多的单位数据。
13.根据权利要求11所述的非易失性存储装置,其中,将所述错误检验和校正处理部件配置为检测具有的错误位的数量等于最大允许位数或比最大允许位数的70%多的单位数据。
14.根据权利要求11所述的非易失性存储装置,其中,将所述错误检验和校正处理部件配置为将以页为基础而存储在所述第一存储单元块中的数据设置为所述单位数据,或将针对把页单位分成2至8个部分的每个扇区而存储的数据设置为所述单位数据。
15.根据权利要求11所述的非易失性存储装置,其中,将所述错误检验和校正处理部件配置为将所述单位数据设置为512位或512字节、1024位或1024字节或者2048位或2048字节。
16.根据权利要求10所述的非易失性存储装置,其中,将错误检验和校正处理部件配置为当执行所述回写操作时,产生要存储在所述第二存储单元块中的错误检验和校正代码。
17.根据权利要求10所述的非易失性存储装置,其中,将所述无效块处理部件配置为控制把所述第一存储单元块的地址存储在非易失性存储装置中的操作。
18.根据权利要求10所述的非易失性存储装置,其中,将所述控制部件配置为控制所述回写操作,以便在存储于第一存储单元块中的数据在所述错误检验和校正处理部件中被校正之后将数据存储在第二存储单元块中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2008-0133166 | 2008-12-24 | ||
KR20080133166 | 2008-12-24 | ||
KR10-2009-0053838 | 2009-06-17 | ||
KR1020090053838A KR101001446B1 (ko) | 2008-12-24 | 2009-06-17 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101763904A CN101763904A (zh) | 2010-06-30 |
CN101763904B true CN101763904B (zh) | 2016-06-15 |
Family
ID=42267895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910262084.5A Active CN101763904B (zh) | 2008-12-24 | 2009-12-23 | 非易失性存储装置及其操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8595593B2 (zh) |
CN (1) | CN101763904B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI389122B (zh) * | 2008-10-30 | 2013-03-11 | Silicon Motion Inc | 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器 |
KR101187641B1 (ko) * | 2011-03-04 | 2012-10-08 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치, 그 제조 방법, 및 그 동작 방법 |
CN103197984B (zh) * | 2012-01-10 | 2016-03-09 | 炬芯(珠海)科技有限公司 | 一种对数据进行查错的方法和装置 |
KR101959567B1 (ko) * | 2012-05-14 | 2019-03-18 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법 |
CN102981780B (zh) * | 2012-11-21 | 2015-05-06 | 杭州华澜微科技有限公司 | 与非闪存单元的数据处理方法 |
US20140258808A1 (en) * | 2013-03-11 | 2014-09-11 | Kabushiki Kaisha Toshiba | Memory device and memory controller |
JP6102515B2 (ja) * | 2013-05-24 | 2017-03-29 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、および制御方法 |
US9177670B1 (en) * | 2013-09-30 | 2015-11-03 | Emc Corporation | Method and apparatus for flash cache management |
CN103745753A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 基于闪存的纠错方法与系统 |
CN103761988B (zh) | 2013-12-27 | 2018-01-16 | 华为技术有限公司 | 固态硬盘及数据移动方法 |
US9411668B2 (en) * | 2014-01-14 | 2016-08-09 | Nvidia Corporation | Approach to predictive verification of write integrity in a memory driver |
JP6131207B2 (ja) * | 2014-03-14 | 2017-05-17 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
CN104167224B (zh) * | 2014-06-12 | 2018-06-29 | 上海新储集成电路有限公司 | 降低dram软错误的方法 |
US9959059B2 (en) * | 2014-10-20 | 2018-05-01 | Sandisk Technologies Llc | Storage error management |
KR102413755B1 (ko) * | 2015-11-20 | 2022-06-28 | 삼성전자주식회사 | 리텐션 특성에 의한 성능 저하를 복구하는 저장 장치의 동작 방법 및 이를 포함하는 데이터 처리 시스템의 동작 방법 |
CN105609141B (zh) * | 2015-12-18 | 2018-08-10 | 中国科学院计算技术研究所 | 一种用于自动校正访问存储装置数据的装置及方法 |
CN107305786B (zh) * | 2016-04-18 | 2020-06-09 | 华邦电子股份有限公司 | 非易失性半导体存储装置 |
KR20180035981A (ko) * | 2016-09-29 | 2018-04-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10340947B2 (en) * | 2016-10-12 | 2019-07-02 | Samsung Electronics Co., Ltd. | Methods of controlling reclaim of nonvolatile memory devices, methods of operating storage devices, and storage devices |
KR102634421B1 (ko) * | 2016-11-21 | 2024-02-06 | 에스케이하이닉스 주식회사 | 페일 비트 카운터 및 이를 포함하는 반도체 메모리 장치 |
KR102457662B1 (ko) | 2017-10-31 | 2022-10-25 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법 |
US10831596B2 (en) * | 2018-01-22 | 2020-11-10 | Micron Technology, Inc. | Enhanced error correcting code capability using variable logical to physical associations of a data block |
CN109388343B (zh) * | 2018-09-26 | 2020-08-28 | 深圳市德明利技术股份有限公司 | 一种数据存储方法及存储器 |
JP2020149123A (ja) * | 2019-03-11 | 2020-09-17 | キオクシア株式会社 | メモリシステム、及びメモリシステムの制御方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517947A (zh) * | 2003-01-28 | 2004-08-04 | 株式会社瑞萨科技 | 非易失性存储器 |
CN1571069A (zh) * | 2003-02-07 | 2005-01-26 | 株式会社瑞萨科技 | 非易失性存储系统 |
CN1821971A (zh) * | 2005-01-07 | 2006-08-23 | 恩益禧电子股份有限公司 | 半导体存储设备和伪sram |
TW200828330A (en) * | 2006-08-31 | 2008-07-01 | Intel Corp | Allowable bit errors per sector in memory devices |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4261462B2 (ja) * | 2004-11-05 | 2009-04-30 | 株式会社東芝 | 不揮発性メモリシステム |
JP4700562B2 (ja) * | 2006-05-18 | 2011-06-15 | 株式会社バッファロー | データ記憶装置およびデータ記憶方法 |
KR20080114208A (ko) | 2007-06-27 | 2008-12-31 | 주식회사 하이닉스반도체 | 에러 정정 기능을 갖는 불휘발성 메모리 장치의 카피투프로그램방법 |
US7864578B2 (en) * | 2008-06-30 | 2011-01-04 | Kabushiki Kaisha Toshiba | Semiconductor memory repairing a defective bit and semiconductor memory system |
TWI389122B (zh) * | 2008-10-30 | 2013-03-11 | Silicon Motion Inc | 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器 |
-
2009
- 2009-10-27 US US12/606,713 patent/US8595593B2/en active Active
- 2009-12-23 CN CN200910262084.5A patent/CN101763904B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517947A (zh) * | 2003-01-28 | 2004-08-04 | 株式会社瑞萨科技 | 非易失性存储器 |
CN1571069A (zh) * | 2003-02-07 | 2005-01-26 | 株式会社瑞萨科技 | 非易失性存储系统 |
CN1821971A (zh) * | 2005-01-07 | 2006-08-23 | 恩益禧电子股份有限公司 | 半导体存储设备和伪sram |
TW200828330A (en) * | 2006-08-31 | 2008-07-01 | Intel Corp | Allowable bit errors per sector in memory devices |
Also Published As
Publication number | Publication date |
---|---|
US8595593B2 (en) | 2013-11-26 |
US20100162081A1 (en) | 2010-06-24 |
CN101763904A (zh) | 2010-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101763904B (zh) | 非易失性存储装置及其操作方法 | |
US8599613B2 (en) | Nonvolatile semiconductor memory | |
US8286055B2 (en) | Nonvolatile memory device and method of operating the same | |
US7813186B2 (en) | Flash memory device and programming method thereof | |
CN107146639B (zh) | 半导体存储装置及存储器系统 | |
US9037929B2 (en) | Semiconductor memory device and method of operating the same | |
KR102514521B1 (ko) | 페이지 버퍼를 포함하는 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법 | |
US20130080858A1 (en) | Method of reading data from a non-volatile memory and devices and systems to implement same | |
US20100208519A1 (en) | Semiconductor memory device and method of reading the same | |
JP5657079B1 (ja) | 半導体記憶装置 | |
US10395753B2 (en) | Semiconductor memory device and programming method thereof | |
KR20150029404A (ko) | 반도체 장치, 메모리 시스템 및 이의 동작 방법 | |
KR101731576B1 (ko) | 반도체 기억장치 및 nand 플래시 메모리의 프로그램 방법 | |
US7543104B2 (en) | Non-volatile semiconductor device for use in memory card and memory system | |
JP2011044200A (ja) | 不揮発性半導体記憶装置 | |
CN108806758B (zh) | 存储器装置及验证数据路径完整性的方法 | |
US9177672B2 (en) | Methods of operating memory involving identifiers indicating repair of a memory cell | |
US11183256B2 (en) | Semiconductor memory device and memory state detecting method | |
KR101001446B1 (ko) | 불휘발성 메모리 장치 및 그것의 동작 방법 | |
US20140289569A1 (en) | Semiconductor storage device, controller, and memory system | |
CN113345511A (zh) | 存储器件及其测试方法 | |
JP2009170026A (ja) | 不揮発性半導体記憶装置及びそのテスト方法 | |
JP5710815B1 (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |