CN101436434A - 提供快速编程及读操作的非易失性存储设备、系统和方法 - Google Patents
提供快速编程及读操作的非易失性存储设备、系统和方法 Download PDFInfo
- Publication number
- CN101436434A CN101436434A CNA2008101887924A CN200810188792A CN101436434A CN 101436434 A CN101436434 A CN 101436434A CN A2008101887924 A CNA2008101887924 A CN A2008101887924A CN 200810188792 A CN200810188792 A CN 200810188792A CN 101436434 A CN101436434 A CN 101436434A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- ecc
- voltage
- cell array
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/356—Unequal error protection [UEP]
-
- 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/1072—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 multilevel memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output 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/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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6306—Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/098—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
揭示了一种用于非易失性存储系统的编程和读方法,包括确定以快速和正常模式之一编程第一数据;在快速模式中,将由多位ECC引擎产生的错误代码提供给第一数据,并且产生第二数据;通过具有比第一开始电平高的第二开始电平的编程电压在单元阵列中编程该第二数据;以及从该单元阵列中读该第二数据,该第二数据在由多位ECC引擎从该第二数据中检测和纠正一个错误处理后被输出。
Description
技术领域
本发明一般地涉及半导体存储设备,尤其涉及一种执行读和编程操作的非易失性存储设备、系统和方法。
背景技术
半导体存储设备在操作特性上可以被划分为易失性和非易失性。易失性半导体存储设备一般特征在于高速读和写操作,但是在没有外加电源时丢失所存储的数据。与此相反,非易失性半导体存储设备在没有外加电源时保持所存储的数据。因此,非易失性半导体存储设备被广泛用于不管电源供应状态如何都需要数据保持的应用中。有许多种非易失性半导体存储设备,包括,作为例子:掩模型只读存储器(MROM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电子可擦可编程ROM(EEPROM),等等。
然而,MROM、PROM和EPROM不允许准备更新存储的数据,因为这些存储类型不会轻易被擦除和写入。与此相反,数据可以很容易地从EEPROM中擦除和编程至EEPROM。因此,EEPROM被越来越多地用于辅助数据存储单元和/或系统编程工具,在其中经常需要更新稳定的(constant)数据。闪存是一种特定类型的EEPROM,其可以以比其它类型的EEPROM高得多的集成密度制造。这个特点使得闪存很理想地用于像高容量辅助数据存储单元的应用中。在闪存类型EEPROM的一般范畴中,NAND类闪存EEPROM(以下,被称作‘NAND闪存’)与其它类型的闪存EEPROM相比,其极高的集成密度是非常有利的。
像所有的半导体存储器一样,闪存是一种特殊形式的集成电路,能够接收和存储(编程)数字数据,并且之后存取和提供该存储的数据(读)。一个闪存设备包括多个存储单元的阵列,其中每个存储单元根据请求能够唯一地存储数据和提供所存储的数据。每个存储单元可以存储数据的一个单个位(1位)或数据的多个位(多位)。如有1位数据被存储在一个存储单元中,该存储单元的状态处于两个阈值电压分布中的一个,两个阈值电压分布中的一个分别对应于两个数据状态“1”和“0”中的一个。如有2位数据被存储在一个存储单元中,该存储单元的状态处于四个阈值电压分布中的一个,每个阈值电压分布对应于四个数据状态“11”、“10”、“01”和“00”中的一个。同样,如有3位数据被存储在一个存储单元中,该存储单元的状态处于八个阈值电压分布中的一个,每个阈值电压分布对应于八个数据状态“111”至“000”中的一个。近来,4位的闪存单元正在研究。
针对闪存单元的编程已经提出了各种编程方法。这些编程方法的速度(即,编程速率)和准确度对闪存设备的整体操作是非常重要的。因此,提高编程速率是进一步改进存储设备和存储系统性能的一个重要考虑。
相对于闪存设备,编程存储单元的所谓的增量步进脉冲编程(ISPP)模式已被使用,并具有良好的效果。该ISPP模式通过将逐渐增加的步进脉冲施加至一个相应的字线来操作以将闪存单元改变至一个目标阈值电压。因此,一个ISPP模式编程方法的编程速率部分地由所使用的步进数目决定。减少增加编程步进的数目将增加编程速率并且有助于防止闪存单元的过编程。
发明内容
因此,本发明的实施例享有提高的编程速率而同时防止了在非易失性存储设备和系统中的过编程引起的可靠性的退化。
在一个实施例中,本发明提供一种可在非易失性存储系统中操作的方法,其中非易失性存储系统包括存储单元阵列,该方法包括:接收包括编程数据的编程命令并且指示使用快速编程模式或正常编程模式执行该编程命令,如果指示为快速编程模式,激活多位错误检测和/或纠正(ECC)引擎以产生与编程数据相关的多位ECC码并且将编程数据和多位ECC数据存储在存储单元阵列中,以及如果指示为正常编程模式,激活一位ECC引擎以产生与编程数据相关的一位ECC码并且将该编程数据和一位ECC数据存储在存储单元阵列中。
在一个相关的方面,该方法可进一步包括:如果指示为正常编程模式,从第一开始电压开始产生编程电压并且使用该编程电压将编程数据和一位ECC数据存储在存储单元阵列中,以及如果指示为快速编程模式,从比第一开始电压高的第二开始电压开始产生编程电压并且使用该编程电压将编程数据和多位ECC数据存储在存储单元阵列中。
在另一个实施例中,本发明提供一种可在非易失性存储系统中操作的方法,其中非易失性存储系统包括存储单元阵列,该方法包括:接收读命令,该命令指示读存储在存储单元阵列中的数据以及进一步指示使用快速读模式或是正常读模式执行读命令,如果指示为快速读模式,激活多位错误检测和/或纠正(ECC)引擎以便使用存储在存储单元阵列中的多位ECC码检测/纠正在该读数据中的一个错误位,以及如果指示为正常读模式,激活一位ECC引擎以便使用存储在存储单元阵列中的一位ECC码检测/纠正在该读数据中的一个错误位。
在另一个实施例中,本发明提供一种系统,包括:主机,被配置以提供编程命令,其中编程命令包括编程数据并且指示以快速编程模式或是正常编程模式对与编程数据相关的编程操作的执行,以及闪存设备,闪存设备被配置为:通过产生与编程数据相关的一位错误检测和/或纠正(ECC)码在正常模式下执行编程操作,并且使用具有第一开始电压的第一编程电压在存储单元阵列中存储该编程数据和一位ECC数据,或者通过产生与编程数据相关的多位ECC码在快速模式下执行编程操作,并且使用具有第二开始电压的第二编程电压在存储单元阵列中存储该编程数据和多位ECC数据,其中该第二开始电压比该第一开始电压高。
在另一个实施例中,本发明提供一种闪存设备,包括:存储单元阵列,具有被划分成第一区域和第二区域的存储单元;地址比较器,产生标记信号,根据该标记信号确定与读操作相关的地址对应于第一区域;高电压产生器,在读操作过程中与该标记信号相关地提供减少的未选中读电压或增高的未选中读电压给存储单元阵列的未选中字线;页面缓冲器,在该读操作过程中使用第一位线感测时段或比第一位线感测时段长的第二位线感测时段来感测存储单元阵列的位线;ECC块,检测和/或纠正如由页面缓冲器所提供的读数据中的错误,以及如果在该错误中的错误位的数目超过了ECC块的纠正能力时产生读失败信号;以及状态机,响应于该标记信号和读失败信号,控制该高电压产生器和页面缓冲器。
附图说明
参照以下附图描述本发明的实施例,其中相似的附图标记表示相同或类似的元件。在图中:
图1是根据本发明一个实施例的编程开始电压的波形图;
图2是显示过编程的存储单元的阈值电压分布的图;
图3是表示根据本发明一个实施例的存储系统的功能结构的框图;
图4是表示图3中显示的ECC块的功能结构的框图;
图5是总结了用于图3中显示的存储系统的示例性编程方法的流程图;
图6是表示根据本发明另一个实施例的存储系统的功能结构的框图;
图7是总结了用于图6中显示的存储系统的编程方法的流程图;
图8是表示根据本发明另一个实施例的存储系统的功能结构的框图;
图9是总结了用于图8中显示的存储系统的读方法的流程图;
图10是显示由读电压导致产生的电压应力效应的图;
图11是进一步表示根据本发明一个实施例的存储单元的读方法的电路图;
图12是表示根据本发明一个实施例的可以减少由读电压引起的应力的闪存设备的功能结构的框图;
图13是总结了由图12中的闪存设备执行的读操作的本发明一个实施例的流程图;
图14是总结了由图12中的闪存设备执行的读操作的本发明另一个实施例的流程图;以及
图15是表示根据本发明一个实施例的计算逻辑系统的功能结构的框图。
具体实施方式
下面将以NAND类型的闪存设备为例描述本发明的实施例,说明本发明的结构和操作特征。
然而,本发明可以以多种不同的形式实现,并且不可解释为仅局限于这里所提出的实施例。相反,提供这些实施作为示例性例子。
图1是根据本发明一个实施例的编程开始电压的波形图。参见图1,在编程操作中,施加到存储单元的字线上的编程电压Vpgm在每一次增量编程循环(loop)中增加步进电压△V。该编程电压Vpgm逐渐增高直到最后编程电压Vpgm_last在最后一次编程循环中施加到该存储单元。
为了提高一个组成闪存设备的总体编程速率,必须减少编程循环的数目。因此,该最后编程电压Vpgm_last被设置在满足能够成功编程所选存储单元和正确操作存储单元的基本条件的最低电平。为了减少编程循环的数目,调整该编程开始电压Vstart的电平也是有利的。该编程开始电压Vstart可以被设置成第一或第二开始电压Vst1和Vst2其中之一。在图1所示实施例中,第一和第二开始电压Vst1和Vst2彼此不同,并且被与两个编程循环相关的电平分离。也就是,第二开始电压Vst2可以从脉冲电压Vpgm_1~Vpgm_x中选择,脉冲电压Vpgm_1~Vpgm_x在电压电平上和编程循环发生时彼此不同地被建立。例如,如果Vpgm_2的第二开始电压Vst2被选择作为该编程开始电压Vstart,存储单元被使用比最大编程循环数目少2的编程循环数目编程。在这种方式下,闪存设备的编程速率提高了。
图2是显示过编程的存储单元的阈值电压分布的图。参见图2,存储单元的初始阈值电压被假定在擦除状态10。根据所存储数据的编程结果,存储单元的阈值电压将存在于擦除状态10或编程状态20。在编程操作中,为了将阈值电压保持在擦除状态10,属于擦除状态10的存储单元被禁止编程(即,编程禁止操作被执行)。然而,阈值电压改变成对应于编程状态20的存储单元,从第一开始电压Vst1或第二开始电压Vst2开始使用ISPP模式被编程。如果存储单元是从该第二开始电压Vst2开始被编程,就能够加快该编程速率。但是,如果有一些存储单元比其它存储单元更快(即,更易于被编程),这些存储单元的编程电压分布可能被改变超过其预定的范围(即,该编程电压可能延伸向上)。这种结果被称作“过编程”或“过编程效应”。与过编程的存储单元相关的区域30在图2中示出。
由过编程所造成的麻烦在随后的读操作中尤其明显。在读操作中,读电压被施加到未选中的字线上,而0V被施加到选中的字线上。此时,在与未选中的字线相关的过编程存储单元中没有足够的导电存储单元。在这种情况下,所选中的存储单元(其是一个ON单元)将被错误地感测为OFF单元。在单元状态检测中这种故障的频繁发生可能会大大损害闪存设备的可靠性。
图3是表示根据本发明一个实施例的适合高频率(或快速)编程操作的存储系统200的框图。参见图3,存储系统200被配置为响应于来自主机100的命令存储已接收的数据,并且进一步被配置为提供由主机100请求的读数据。主机100传递清楚的编程命令,其指示将由存储系统200执行快速编程操作还是正常编程操作。存储系统200从主机100接收编程命令并且使用ISSP编程模式将所接收的数据编程至单元阵列210包含的存储单元中,其中该ISSP编程模式以设置在第一开始电压Vst1或第二开始电压Vst2的编程脉冲开始。
当需要写数据至存储系统200时,主机100参考编程数据的指示优先级确定编程模式(快速或正常)。在这种情境下,“优先级”可以基于与数据类型、数据的使用特性、可靠性要求等等相关的多个不同变量来确定。如果该编程数据必须相当可靠,主机100选择并且传递正常编程命令至存储系统200,并且对应的编程操作在第一开始电压Vst1处开始操作。在这种情况下,主机接口270传递一个内部正常编程命令(NPGM)至状态机250,以在正常编程模式下操作存储系统200。否则,如果该编程数据的优先级与快速编程相关,主机100提供快速编程命令并且对应的编程操作在第二开始电压Vst2处开始操作。在这种情况下,该主机接口270传递一个内部快速编程命令(FPGM)至状态机250,以在快速编程模式下操作存储系统200。(以类似方式,如果一个读命令被指示为内部快速读命令或内部正常读命令,其将被从主机接口270传递至状态机250)。
响应于接收自主机100的不同的编程命令(NPGM和FPGM),存储系统200使用互不相同的编程开始电压进行操作以编程数据。在快速和正常编程模式过程中,纠错功能也彼此不同并且根据不同的(快速/正常)编程模式被激活。
存储单元阵列210是由配置的多个闪存单元形成的,在操作特性上既可以是一位也可以是多位。在单元阵列210中,各个闪存单元并不是由快速和慢速编程模式物理区分的。即,相同的存储单元可以被使用快速或慢速编程模式编程。
页面缓冲器220根据所选的操作模式(编程或读)作为一个写驱动器或感测放大器运行。在编程操作过程中,页面缓冲器220从数据缓冲器230接收编程数据。页面缓冲器220接着经由相关的字线和位线将该编程数据写入存储单元阵列210的存储单元中,如同惯常所理解的。在读操作过程中,页面缓冲器220操作以感测并锁存存储在存储单元阵列210的所选存储单元中的数据,同样如惯常所理解的。
数据缓冲器230临时存储由存储系统200接收的编程数据和/或由存储系统200输出的读数据。在编程操作过程中,数据缓冲器230将编程数据和从该编程数据中产生的错误代码提供给页面缓冲器220。在读操作过程中,与该读数据相关的错误数据被临时存储在数据缓冲器230中,并且能通过例如与由错误检查和纠正(ECC)块240提供的错误代码PAR合并来修复该读数据。
响应于由状态机250提供的快速模式信号FST,ECC块240检测并纠正在该编程数据或该读数据中的错误。在所述实施例中,ECC块240可操作于两种(2)不同的ECC模式;即,ECC块240可以操作于能够修复1位错误的一位ECC模式和能够修复超过2位的多位错误的多位ECC模式。如果快速模式信号FST是激活的,在相应的编程或读操作中ECC块240在多位ECC模式中操作。相反,如果该快速模式信号FST是无效的,在相应的编程或读操作中ECC块240以一位ECC模式操作。
响应于由主机接口270响应于接收自主机100的外部命令而提供的内部操作命令iCMD,状态机250控制与编程、读以及擦除操作相关的整体的执行步骤序列。特别地,在编程操作过程中,状态机250响应于快速模式信号FST控制高电压产生器260和页面缓冲器220。在编程操作过程中,如果快速模式信号FST是激活的,状态机250促使高电压产生器260从第二开始电压Vst2开始产生ISPP编程电压Vpgm。状态机250也控制页面缓冲器220与该ISPP编程电压Vpgm同步地将编程数据写至存储单元。在读操作过程中,状态机250促使高电压产生器260和页面缓冲器220正确偏置与存储单元相关的字线,这些存储单元是由来自主机100的读命令所指示,以及预充电和感测相关的位线。
在状态机250的控制下,高电压产生器260将对应于当前操作(编程、擦除、读)的高电压提供给存储单元阵列210。当存储系统200操作于快速编程模式时,快速模式信号FST是激活的并且高电压产生器260从第二开始电压Vst2开始产生ISPP编程电压Vpgm。另一方面,当存储系统200操作于正常编程模式时,快速模式信号FST是无效的并且高电压产生器260从第一开始电压Vst1开始产生ISPP编程电压Vpgm。在任意一种情况下,该ISPP编程电压Vpgm被施加于与存储单元相关的存储单元阵列210的所选的字线,这些存储单元是由编程、读或擦除命令所指示。
主机接口270交互主机100和存储系统200之间的数据流。特别是,响应于接收自主机100的命令,主机接口270提供内部快速/正常编程/读命令FPGM和MPGM其中之一至状态机250。
将上述的存储系统200的结构作为例子,本发明的实施例能够减少惯常在快速编程模式过程中由过编程造成的数据错误。在这点上,ECC块240在本发明的某些实施例中的角色是重要的那个。
图4是表示图3中显示的ECC块240的示例性功能结构的框图。参见图4,ECC块240包括一个一位ECC引擎241和一个多位ECC引擎242。一位和多位ECC引擎241和242根据快速模式信号FST的激活/无效状态被交替选择。
在编程操作过程中,ECC块240按如下操作。如果快速模式信号FST是无效的,编程选择器244从主机接口270将编程数据D_IF传送至一位ECC引擎241。一位ECC引擎241产生一位奇偶码P_secc,其被用于检测和纠正在编程数据D_IF中的一位错误。在所述实施例中,该一位奇偶码P_secc被传送至多路器(MUX)243,并且多路器243将一位奇偶码P_secc传送至数据缓冲器230。在所述实施例中,奇偶位数据被用于阐述一个宽范围的可能错误检测和/或纠正数据。
然而,如果快速模式信号FST是激活的,编程选择器244将编程数据D_IF从主机接口270传送至多位ECC引擎242。多位ECC引擎242产生一个多位奇偶码P_mecc,其被用于检测和纠正在编程数据D_IF中的一个多位错误。该多位奇偶码P_mecc被传送至多路器(MUX)243,并且多路器243接着将该多位奇偶码P_mecc传送至数据缓冲器230。根据所指示的编程模式,该编程数据和对应的奇偶码(或错误代码)被共同编码至在存储单元阵列210中的存储单元。
在读操作过程中,ECC块240按如下操作。如果快速模式信号FST是无效的,读选择器245将读数据D_CORE从页面缓冲器220传送至一位ECC引擎241。一位ECC引擎241从读数据D_CORE中获得一位奇偶码P_secc并且检测/纠正在该读数据D_CORE中的一位错误。该一位奇偶码P_secc也可以被传送至多路器(MUX)243,并且从多路器243到数据缓冲器230与读数据D_CORE一起输出。
然而,如果快速模式信号FST是激活的,读选择器245将读数据D_CORE从页面缓冲器220传送至多位ECC引擎242。多位ECC引擎242获得多位奇偶码P_mecc并且使用该多位奇偶码P_mecc去检测/纠正在读数据D_CORE中的一个多位错误。多位ECC引擎242也可以产生该多位奇偶码P_mecc并且将其传送至多路器243并且接着传送到数据缓冲器230与读数据D_CORE一起输出。在本发明的一个实施例中,该被检测的错误可以通过将读数据与在数据缓冲器230中的相应奇偶码P_mecc(或P_secc)合并来修复。
如上所述,响应于快速模式信号FST的激活状态,一位ECC引擎241或多位ECC引擎242两者被交替选择。即,在快速编程模式过程中,选择多位ECC引擎242,而在正常编程模式过程中,选择一位ECC引擎241。这种操作性选择能够使存储系统200充分解决在编程或读数据中的一个错误,该错误可能是在快速编程模式过程中已经由过编程效应造成的。换句话说,提供与快速编程模式相关的更强大的ECC功能,识别出由过编程造成的数据错误的可能性就会增加。
图5是总结了用于图3中显示的存储系统的示例性编程方法的流程图。参见图5,根据接收自主机100的命令交替选择快速或正常编程模式。有关快速或正常编程模式的确定可以使用像操作系统(OS)的软件或驻留在主机100中的应用程序实现。
如在图5中所示,首先,响应于电源供电,通过初始化主机100和存储系统200的操作来执行系统引导步骤(S10)。在完成系统引导后,主机100询问请求操作的缓存或队列,其可包括指示指向将在存储系统200中存储的数据的编程操作的命令的命令(S20)。一旦暗示一种编程模式的命令被识别(S30=是),主机100确定快速编程模式是否是适当的(S40)。一旦确定是调用快速编程模式(S40=是),命令以及控制存储系统200执行如上所述的快速编程操作(S50)。存储系统200接着激活多位ECC引擎242以从编程数据中产生多位奇偶码P_mecc,其中该编程数据是与快速编程命令一起被提供的,并且使用从第二开始电压Vst2开始的ISPP编程电压Vpgm,该多位奇偶码P_mecc和该编程数据被编程至存储单元阵列210的存储单元中(S60)。
然而,一旦确定是调用正常编程模式(S40=否),命令以及控制存储系统200执行如上所述的正常编程操作(S70)。存储系统200激活一位ECC引擎241以从编程数据中产生一位奇偶码P_secc。使用从第一开始电压Vst1开始的ISPP编程电压Vpgm,该一位奇偶码P_secc和该编程数据被共同编程至存储单元阵列210的存储单元中(S80)。
根据前述的方法,用于存储系统200的当前编程开始电压和当前错误纠正机制取决于关于主机100对快速编程模式和正常编程模式的交替使用的确定。因此,该完整的体系享有编程的灵活性(即,潜在使用实际编程模式)而没有随之而来的损害数据的完整性,而损害数据的完整性正是传统使用快速编程模式增加存储系统编程速率的方法的特点。
图6是表示根据本发明另一个实施例的存储系统400的功能结构的框图。在这个实施例中,存储单元阵列410被划分为快速区域413和正常区域412。存储单元阵列410还包括一个地址区域411,用于存储定义正常和快速区域412和413的地址信息(例如,提供到各自数据存储区域的地址索引)。例如,该地址信息可以定义对应于快速区域413和/或正常区域412的行地址范围。该地址信息在系统引导时被提供给地址比较器480和主机300。
在一个例子中,通过参照存储在地址区域411中的地址信息,地址比较器480确定接收自主机300的作为编程命令一部分的输入地址是对应于快速区域413或是对应于正常区域412。当与该编程命令相关的所接收的地址是对应于快速模式413中的一个地址时,地址比较器480产生快速模式信号FST并且将该快速模式信号FST施加于状态机450和ECC块440。使用从第二开始电压Vst2开始的ISPP方法和相应的多位ECC引擎,状态机450和ECC块440进行操作以将数据编程至在快速区域413中的存储单元。
页面缓冲器420、数据缓冲器430、ECC块440、和高电压产生器460如同上述图4中介绍的类似元件具有基本上相同的配置和操作。因此,页面缓冲器420、数据缓冲器430、ECC块440、和高电压产生器460的操作将不再阐述。
由于存储单元阵列410被划分为正常和快速区域412和413,在编程操作过程中,包括在正常区域412中的存储单元将被使用相对较低的编程开始电压编程,(即,第一开始电压Vst1)。而同时,包括在快速区域413中的存储单元将被使用相对较高的编程开始电压编程,(即,第二开始电压Vst2)。与之前一样,较高的编程开始电压具有增加在存储系统400中存储设备编程速率的有益效果。
在本发明的一个实施例中,根据行地址的分割,存储单元阵列410被划分为正常和快速区域412和413。存储在地址区域411的地址信息被认为是具有较高的优先级并且因此通常被包括在正常区域412。附加的初始化信息也可以被存储在地址区域411,例如一次编程(OTP)数据、引导代码等等。与任意的附加初始化信息一起被存储在地址区域411的地址信息在系统引导(或加电)过程中可以被检索并且被提供给地址比较器480。
地址比较器480存储并保留在引导操作过程中从地址区域411读取的该地址信息(以及可选的初始化信息)。地址比较器480将该地址信息与一个由主机接口470提供的内部地址iADD进行比较,该内部地址iADD与接收自主机300的一个命令相关。如果该内部地址iADD对应于与快速区域413相关的地址,地址比较器480激活快速模式信号FST。该快速模式信号FST接着被施加于状态机450和ECC块440。
状态机450控制整体指令序列以及相关的控制信号,这些指令和控制信号是有效地进行由接收自主机300的命令所请求的编程、读、和擦除操作和有效定义由主机接口470提供的内部命令iCMD所必须的。特别是,在一个编程操作过程中,与快速模式信号FST的状态相关地,状态机450控制高电压产生器460和页面缓冲器420。在该编程操作过程中,如果快速模式信号FST是激活的,状态机450促使高电压产生器460从第二开始电压Vst2开始产生ISPP编程电压Vpgm。状态机450也控制页面缓冲器420将数据编程至存储单元,与该编程电压Vpgm同步。在一个读操作过程中,状态机450促使高电压产生器460和页面缓冲器420执行操作以偏置存储单元的字线、预充电位线、并感测来自存储单元的数据。
主机接口470控制主机300和存储系统400之间的数据流。主机300将命令和相关编程数据提供至存储系统400,或从存储系统400接收读数据。为了将数据编程至存储系统400的快速区域413中的存储单元,主机300能够通过数据地址控制存储系统400。相应地,在引导操作过程中,使用存储在存储系统400的地址区域411中的初始化信息,主机300可以将该地址信息存储至一个工作存储器(例如,一个R/W中间结果存储器)。
利用上述结构,根据本发明一个实施例的闪存系统能够检测并纠正可能由请求快速编程模式的过编程造成的数据错误。可以通过将一个ECC块结合一位和多位ECC的能力来灵活提供这种能力。在读操作过程中,如果与快速区域413相关的存储单元由相应的读命令识别,则多位ECC引擎被选择用于检测和纠正在读数据中的错误。
图7是总结了用于图6中显示的存储系统的示例性编程方法的流程图。在编程操作过程中,参照由主机300提供的地址选择快速编程模式或正常编程模式其中一个。但是在开始,主机300必须能够根据相对优先级确定编程数据是与快速区域413或是与正常区域412相关,如上所述。主机300接着向相应的地址传送编程命令并将数据编程至存储系统400。存储系统400将参照其地址接着将数据编程至存储单元的快速区域413或是正常区域412中。
也就是,一旦加电,存储系统400被引导(S110)。主机300接着发出一个或多个命令将存储在地址区域411中的地址信息(以及可选的初始化信息)复制至地址比较器480和主机300中的工作存储器(S120)。一旦随后接收到来自主机300的一个指示编程操作的编程命令时,地址比较器480确定由主机接口470提供的相应内部地址iADD是否对应于与快速区域413相关的地址(S130)。如果该内部地址iADD对应于快速区域413中的一个地址,地址比较器480产生一个激活的快速模式信号FST。
一旦确定该内部地址iADD对应于在快速区域413中的一个地址(S140=是,并且快速模式信号FST是激活的),状态机450控制多位ECC引擎242(参见图4)和高电压产生器460的操作。高电压产生器460产生一个从第二开始电压Vst2开始的ISPP编程电压Vpgm。该编程数据被提供给如上所述的多位ECC引擎242并且该ISPP编程电压Vpgm被用于将该数据编程至在快速区域413的存储单元中(S150)。
然而,一旦确定该内部地址iADD对应于在正常区域412中的一个地址(S140=否,并且快速模式信号FST是无效的),状态机450控制一位ECC引擎241(参见图4)和高电压产生器460的操作。高电压产生器460产生一个从第一开始电压Vst1开始的ISPP编程电压Vpgm。该编程数据被提供给如上所述的一位ECC引擎241并且该ISPP编程电压Vpgm被用于将该数据编程至在正常区域412的存储单元中(S160)。
图8是表示根据本发明另一个实施例的存储系统500的功能结构的框图。这个实施例强调从存储单元阵列的快速或正常区域中读数据的能力。参见图8,响应于接收自主机的读命令,存储系统500从存储单元阵列510中读数据。注意,即使一个读数据错误超过了ECC块540的能力(即,数据错误超过了ECC块540定义的可纠正范围),存储系统500仍然能够纠正在该读数据中的错误位。
存储单元阵列510、页面缓冲器520、数据缓冲器530、地址比较器580、和主机接口570与在图6中所示的实施例中相关地描述的类似元件具有相同的配置和操作。但是,存储系统500进一步包括读重试控制器590。
如果读命令指示读存储在快速区域513中的数据,存储系统500使用所提供的地址启动多位ECC引擎242(参见图4)并且从快速区域513中读该数据。在读数据操作过程中感测的读数据被锁存在页面缓冲器520中。该读数据接着被从页面缓冲器520传送至ECC块540。ECC块540检测在该读数据中的错误。如果由多位ECC引擎242检测的读数据中的错误位的数目大于可以由多位ECC引擎242纠正的位数目时,则ECC块540将一个纠正失败信号ECC_fail发送给读重试控制器590。
响应于该纠正失败信号ECC_fail,读重试控制器590将增加的读重试信号RRStep_0至n发送至状态机550,并且当前读操作在相同页面继续。响应于第一读重试信号RRStep_1,状态机550使用增加的位线感测时间从所指示的(以及读失败的)页面重读所读数据。如果在第一次读重试操作之后,在重读页面数据的错误位的数目仍然超过ECC块540的错误纠正能力,则ECC块540再次产生纠正失败信号ECC_fail,纠正失败信号ECC_fail被施加于读重试控制器590,而读重试控制器590依次产生第二读重试信号RRStep_2。响应于该第二读重试信号RRStep_2,状态机550控制高电压产生器560产生一个读电压Vread,其能补偿过编程存储单元的一个阈值电压增量。如果在这个使用加强的读电压的第二读重试操作之后,包括在读数据中的错误位的数目落在ECC块540的错误纠正能力范围内,则这些错误位被纠正而无需产生另一个纠正失败信号ECC_fail。
在使用前述方法从快速区域513读数据中,存储系统500能够执行多个读重试操作,个读重试操作具有(1)不同的感测时间和(2)增强的读电压Vread。
图9是总结了用于图8中显示的存储系统500的读方法的流程图,其中该读方法包括读重试功能。参见图9,通过在存储系统500中首先增加读数据感测时间,并且接着增强(增加)施加的读电压Vread的电平来执行该读重试操作。
在读操作一开始,状态机550控制页面缓冲器520和高电压产生器560去感测、放大以及提供所选页面的数据至ECC块540(S210)。从所选页面接收该读数据的ECC块540检测在读数据中的错误位(S215)。ECC块540接着确定所检测的错误位的数目是否落在与ECC块540错误纠正能力相关的预定范围内(S220)。如果检测的错误位的数目落在ECC块540的可纠正范围内(例如,组成多位ECC引擎242),则ECC块540执行错误纠正操作以修复在读数据中的错误位(S260)。
然而,如果检测的错误位的数目落在它的可纠正范围外,ECC块540产生纠正失败信号ECC_fail并且所述方法执行第一读重试操作(S225)。也就是,当产生第一纠正失败信号ECC_fail时,读重试控制器590产生第一读重试信号RRStep_1并且将其传输至状态机550。状态机550接着控制第一读重试操作的执行,其中一个增加的读数据感测时间被应用于读存储在存储单元阵列510中的所指示数据的操作中。第一重读页面数据被获得并且被传送至ECC块540以及与该第一重读页面数据相关的错误位也被再次检测。如果ECC块540确定所检测的错误位的数目落在可纠正范围内(S235=是),则第一重读页面数据的所检测的错误位在所应用的错误纠正操作过程中被ECC块540纠正(S260)。然而,如果错误位的数目仍然落在ECC块540的可纠正范围外(S235=否),则ECC块540传输第二纠正失败信号ECC_fail至读重试控制器590,并且读重试控制器590提供相应的第二读重试信号RRStep_2至状态机550。作为回应,状态机550促使高电压产生器560和页面缓冲器520使用增强的读电压Vread执行第二读重试操作,以响应于该第二读重试信号RRStep_2(S240)。所得的第二重读页面数据被页面缓冲器530锁存并且被传送至ECC块540,其中ECC块540再次检测在第二重读页面数据重读数据中的位(S245)。如果,此后,ECC块540确定在第二重读页面数据中的所检测的错误位落在可纠正范围内(S250=是),则这些错误位被纠正(S260)。然而,如果错误位的数目超过ECC块540的错误纠正能力,ECC块540确定在存储系统500中的读失败并且产生一个相应的读失败消息(S255)。
根据前述的读操作,本发明的实施例能够使用ECC块540的固定的错误纠正能力与增加的感测时间和增强的读电压相关地(潜在地,并且所需地)使用相对高的编程开始电压来读数据。
图10是显示由读电压导致产生的电压应力效应的图,并且进一步概略地描绘在读操作过程中被频繁访问的特定存储单元阵列区域中的存储单元的阈值电压分布,诸如那些存储地址信息和OTP相关数据的存储单元。参见图10,存储初始化信息例如引导码或OTP数据的频繁读区域,在第一次编程操作后在存储系统引导操作过程中被反复读取。与这种类型数据相一致,该频繁读区域在它们第一次编程操作后不(或非常少)被编程。因此,在多个读操作过程中在频繁读区域中的存储单元被反复暴露于施加至未选中字线的读电压Vread(此后,称为“未选中读电压Vread”)。
通常,未选中读电压Vread应当结合分布区域625来考虑哪个阈值电压状态620由于过编程在扩展。换句话说,为了中断过编程效应,其与编程和擦除操作的数目成正比,所建立的未选中读电压Vread应当有一个适当的裕量。即,在本发明的一个实施例中,在图10中未选中读电压被设置为一个增高的读电压Vread2。但是,如果该增高的读电压Vread2被重复的读操作反复施加于存储单元阵列的频繁读区域,则在频繁读区域中的存储单元可以柔和地编程。由于该原因,在读操作过程中受这个效应的影响,可能会出现错误,这样具有对应于擦除状态610的阈值电压的存储单元由增高的读电压Vread2弱编程,其中增高的读电压Vread2被反复施加于未选中的字线。这种现象一般被称为‘软编程’或‘软编程效应’。根据这种效应(即,存储单元假设是一个扩展的电压分布615),软编程效应造成将打算在擦除状态610被编程的存储单元的阈值电压轻微增加。这样的存储单元615可以包括已经被编程至阈值电压大于0V的存储单元。在这种情况下,在通过将0V施加至耦合软编程存储单元的字线时读数据时发生位错误。
本发明的特定实施例提供了一种读方法,能够在从存储单元阵列的频繁读区域读数据时,通过最小化软编程效应的产生来减少错误位。即,从这样的区域“频繁读数据”,被应用于未选中读电压的电压被设置成低于增高的读电压Vread2的、减少的未选中读电压Vread1。在这些条件下执行的读操作的结果中,如果出现错误位,可以在相同字线电压条件下使用扩展的位线感测时间来执行一个读重试操作。根据这种扩展的感测时间读操作,将赋予存储频繁读数据的存储单元最小的电压应力。结果,应用于存储频繁读数据的存储单元的读循环的数目显著增加。
图11是根据本发明一个实施例阐述应用于存储单元的读操作的特征的电路图。图11示意性示出如何使用图10的减少的未选中读电压Vread1和增高的未选中读电压Vread2从频繁读存储单元或存储块中读数据。参见图11,第一字线电压组630在第一读操作过程中被施加于选中块的字线。选择性的读电压Vrd被施加于选中块的选择字线WL<x>,而减少的未选中读电压Vread1被施加于未选中的字线。该减少的未选中读电压Vread1比被提供给正常字线的增高的未选中的读电压Vread(例如,4.5V)低。如果在从第一字线电压组630中所得的读数据中出现错误位,则执行使用扩展位线感测时间的第一读重试操作。在该第一读重试操作后,如果仍然存在一个或多个错误位,则使用增高的未选中读电压Vread2执行第二读重试操作。
在该第二读重试操作过程中,被施加于选中块的字线的电压是那些所示出的与第二字线电压组640相关的电压。如果在第二字线电压组640条件后在第二重读页面数据中仍然存在一个或多个错误位,则使用所示出的与第三字线电压组650相关的电压条件执行第三读重试操作。
在该第三字线电压组650中,一个增高的电压电平从被施加于选中字线的正常选择读电压Vrd开始调整上升。即,增高的选择读电压以Vrd+α电平被施加,其中α>0。根据每一个字线组630、640和650,可以允许对读数据进一步执行ECC操作。从错误检测的结果中,如果所检测的错误位落在所建立的可纠正范围外,该存储系统视需要可以通过改变所施加字线电压的属性来执行连续的读重试操作。使用扩展位线感测时间的读重试操作即使在读操作之间也能通过图10所示的字线偏置模式被执行。
图12是表示根据本发明一个实施例的可以减少由所施加的读电压引起的应力的闪存设备的功能结构的框图,其中以与图11相关的所述的方式对相关频繁读存储单元或频繁读存储块执行该读操作。参见图12,如果在指向一个频繁读存储块中的读操作过程中有一个读失败,状态机650通过改变选中块的字线电压来重复该读重试操作。页面缓冲器620、数据缓冲器630、ECC块640、读重试控制器690和主机接口670与在图8中类似元件具有相同的配置和操作。但是,地址比较器680存储地址信息,其包括在系统引导过程中按上述被存储的频繁的面向读的块(Read-Oriented-Block,ROB)信息611。
因此,存储单元阵列610包括ROB区域612和正常区域613,其在传统意义上是可编程和可擦除的。ROB区域612使用ROB范围信息被编程。ROB区域612一般被写入引导码、OTP数据、OS代码和应用代码。在ROB区域612中的这些数据可以由读操作存取,除非存在异常。如果未选中读电压Vread以高电平被连续施加于存储单元,则存储单元的阈值电压被提高以最终限制读循环的数目。
在一个读操作过程中,地址比较器680确定输入地址iADD是否对应于存储在ROB区域612中的地址信息。如果该输入地址iADD对应于ROB区域612信息,则地址比较器680激活并提供一个ROB标记信号至状态机650。状态机650控制高电压产生器660和页面缓冲器620在第一读操作过程中利用减少的未选中读电压Vread1来读页面数据。在该操作过程中,读数据被通过页面缓冲器620传送至ECC块640,并且ECC块640检测在该读数据中的错误位。这里,ECC块640可以被配置成仅执行一个错误检测功能,或一个错误检测和错误纠正功能。
ECC块640提供指示一个或多个错误位或一个不能被修复的错误位的第一纠正失败信号ECC_fail给读重试控制器690。读重试控制器690参照第一纠正失败信号ECC_fail,输出第一读重试信号RRStep_1至状态机650。响应于该第一读重试信号RRStep_1,状态机650促使高电压产生器660和页面缓冲器620使用扩展的位线感测时间执行第一读重试操作。如果该纠正失败信号ECC_fail被再次产生,读重试控制器690输出第二读重试信号RRStep_2。响应于该第二读重试信号RRStep_2,状态机650促使高电压产生器660和页面缓冲器620使用增高的未选中读电压Vread2读取同一页面。如果纠正失败信号ECC_fail仍然再次被产生,读重试控制器690提供第三读重试信号RRStep_3至状态机650。响应于该第三读重试信号RRStep_3,状态机650控制高电压产生器660和页面缓冲器620使用增高的未选中读电压Vread2和增高的选择读电压(Vrd+α)读取同一页面。
如上所述,通过在第一读操作过程中使用减少的未选中读电压Vread1,该存储系统能够大大减少读电压相关应力,其对在ROB区域612中所指示的存储单元阵列510的相关部分的存储单元尤其敏锐。这个方法允许选择增加读操作的最大数目,包括指向在ROB块612中所识别的存储单元的读重试操作。
图13是总结了由图12中相关的闪存设备执行的读操作的流程图。参见图13,在该读操作过程中,ECC块640被假定仅执行错误检测而没有错误纠正。
如果接收的作为部分主机命令的地址指示在ROB区域612中识别的存储单元,读操作开始至ROB区域612的选中页面。首先,至该选中页面的读操作是在状态机650的控制下执行的。该选中读电压Vrd被施加于选中块的选中字线,而减少的未选中读电压Vread1被施加于未选中的字线。在这些偏置条件下读的页面数据由页面缓冲器620感测和锁存并且被传送至ECC块640(S310)。ECC块640检测在该读页面数据中的错误位(S315)。ECC块640接着确定在该读页面数据中是否存在一个错误位(S320)。除非有一个错误位被检测出,否则该读页面数据被输出至该主机或某一其它外部电路(S375)。
然而如果该读数据包括一个错误位,ECC块640输出纠正失败信号ECC_fail并且执行第一读重试操作(S325)。当该第一纠正失败信号ECC_fail被产生,读重试控制器690输出第一读重试信号RRStep_1至状态机650。响应于该第一读重试信号RRStep_1,状态机650使用扩展的位线感测时间控制第一读重试操作的执行(S325)。第一重读页面数据作为结果被传送至ECC块640。接着,ECC块640检测在该第一重读页面数据中是否有一个错误位(S330)。
如果没有错误位被检测出,则该读数据被输出(S375)。然而,如果在该第一重读页面数据中出现一个错误位,状态机650调整该未选中读电压Vread的电平以产生增高的未选中读电压Vread2,并且使用这个电压执行第二读重试操作(S340)。也就是,响应于第二读重试信号RRStep_2,状态机650控制高电压产生器660和页面缓冲器620使用该增高的未选中读电压Vread2(大约4.5V)执行第二读重试操作(S340)。该第二重读页面数据接着被传送至ECC块640并且相关于该第二重读页面数据再次执行错误位检测(S345)。
如果ECC块640确定在该第二重读页面数据中没有出现错误位(S350=否),则接着该读数据被输出(S375)。然而,如果仍然从该第二重读页面数据中检测出错误位,则ECC块640再次将该纠正失败信号ECC_fail传输至读重试控制器690,并且读重试控制器690提供第三读重试信号RRStep_3至状态机650,表明第三次读失败。响应于该第三读重试信号RRStep_3,状态机650接着控制高电压产生器660和页面缓冲器620不仅使用增高的未选中读电压Vread2,而且使用增高的选中读电压Vrd+α,再次读所指示的页面数据(S355)。
第三重读页面数据作为结果被锁存在页面缓冲器620中并被传送至ECC块640。ECC块640检测在该第三重读页面数据中是否出现错误位(S360)。如果没有,该读数据被输出(S375)。然而,如果ECC块640确定一个错误位出现在该第三重读页面数据中(S365=是),则由存储系统600指示一个读失败结果(例如,由状态机640接收的第四读重试信号RRStep_4产生一个指示读失败状态的状态信号iStatus)(S370)。
结合图13如上所述,所述的方法实施例可以在一个存储系统中执行,该存储系统包括仅能执行错误检测而没有错误纠正的ECC电路。由于指向ROB区域612的读操作使用减少的未选中读电压Vread1而被执行,产生软编程效应的可能性就减少了。因此,使用变化的读条件(例如,偏置电压),与包括在ROB区域612中的存储单元相关地,读操作的数目(或在读操作中的读循环)可能被增加。
图14是总结了由图12中的闪存设备执行的读操作的另一个实施例的流程图,包括由ECC块640执行的与读数据相关的错误纠正功能。
响应于对应于ROB区域信息611的地址,开始对ROB区域612的所选页面的读操作。该读操作在状态机650的控制下进行至所选页面。在这个过程中,在选中的块中,选中读电压Vrd被施加于选中字线而未选中读电压Vread1被施加于未选中的字线。在这个偏置条件下,读出的页面数据由页面缓冲器620感测和锁存并且接着被传送至ECC块(S410)。该ECC块640从传输至其的页面数据中检测错误位(S415)。该ECC块640还确定该检测出的错误位的数目是否在可纠正范围内(S420)。如果错误位的数目在ECC块640的可纠正范围(或错误纠正能力)内,则该ECC块640利用所检测出的错误位执行错误纠正操作(S475)。相反,如果错误位的数目在ECC块640的可纠正范围外,该ECC块640输出纠正失败信号ECC_fail并且过程进入一个重读步骤S425。响应于纠正失败信号ECC_fail的第一次产生,读重试控制器690输出第一读重试信号RRStep_1至状态机650。响应于该第一读重试信号RRStep_1,状态机650使用长度扩展的位线感测时间使能该重读操作(S425)。重读页面数据被传送至ECC块640。该ECC块640从该重读页面数据中检测错误位(S430)。并且,该ECC块640确定所检测出的错误位的数目是否在可纠正范围(或错误纠正能力)内(S435)。如果在长度扩展的位线感测时间中重读的页面数据的错误被确定为可纠正的,该ECC块640开始错误纠正操作(S475)并且页面数据被没有错误地输出(S480)。
另一方面,如果包括在由第一重读操作读出的页面数据中的错误位的数目超过了ECC块640的错误纠正能力,该ECC块640输出纠正失败信号ECC_fail并且该读重试控制器690输出第二读重试信号RRStep_2至状态机650。响应于该第二读重试信号RRStep_2,状态机650通过未选中的读电压Vread2启动该重读操作(S440)。重读页面数据被传送至ECC块640。该ECC块640从该重读页面数据中检测错误位(S445)。该ECC块640确定所检测出的错误位的数目是否在其可纠正范围内(S450)。如果由未选中的读电压Vread2的增加电平重读出的页面数据中的所检测出的错误位被确定为可纠正的,该ECC块640开始错误纠正操作(S475)。但是如果错误位的数目仍然超过可纠正范围,该ECC块640传送纠正失败信号ECC_fail至读重试控制器690。该读重试控制器690在该第二读失败条件下,提供第三读重试信号RRStep_3至状态机650。响应于该第三读重试信号RRStep_3,状态机650控制高电压产生器660和页面缓冲器620利用增高的选中读电压Vrd+α继续该读操作(S455)。锁存在页面缓冲器620中的第三重读页面数据被传送至ECC块640。该ECC块640从该重读页面数据中检测错误位(S460)。并且,该ECC块640确定所检测出的错误位在错误纠正能力中是否是可纠正的(S465)。如果错误位的数目在可纠正范围内,过程进入到错误纠正步骤S475。但是如果错误位的数目超过错误纠正能力,ECC块640再次发出纠正失败信号ECC_fail至读重试控制器690。响应于该第四纠正失败信号ECC_fail,该读重试控制器690产生第四读重试信号RRStep_4。响应于该第四读重试信号RRStep_4,状态机产生读失败消息和将该读失败消息写入状态寄存器(未示出)。
根据在图14中前述的读方法,该过程通过首先引导对利用低未选中读电压Vread1从ROB区域读出的数据进行错误纠正操作来执行。如果有一个错误位不能由ECC块640修复,则在相同的字线偏置条件下利用长度扩展的位线感测时间来继续所述读操作。此后,如果错误位的数目仍然超过可纠正范围,该读操作进一步利用未选中的读电压Vread2和增加的选中电压Vrd+α继续。即使是在利用未选中的读电压Vread2和增加的选中电压Vrd+α重读页面的情况下,错误纠正步骤也被包括在其中。相应地,软编程效应可以从中被打断,由于对ROB区域612的读操作在第一时间被执行。结果,它大大增加了对ROB区域612的存储单元的读循环的可用数目。在此,重读操作的顺序可以不限制于前述的实施例。
图15是表示根据本发明一个实施例的计算逻辑平台700(例如,信息处理系统、移动电子设备、等等)的框图,计算逻辑平台700包括闪存设备或闪存系统710。参见图15,闪存系统710可以被嵌入在计算平台700中。本发明的这个特定实施例可以包括调制解调器720、显示器单元730、中央处理单元(CPU)740、随机存取存储器(RAM)750、和输入/输出单元760,所有这些都通过系统总线770电连接至闪存系统710。闪存系统710可以被配置成与前述的存储系统或闪存系统基本上相同。闪存系统710可以存储数据,所述数据通过输入/输出单元760被提供,或被处理或将由CPU 740处理。
闪存系统710甚至可以被配置成固态驱动器或磁盘(SSD)。在这种配置中,计算平台700能够使用高速数据存取操作将大量数据存储在闪存系统710中。因此这样能够从闪存系统710中提供高度可靠的数据给计算逻辑平台700。尽管未在图15中示出,计算逻辑平台700可以进一步包括应用专用芯片组、相机图像处理器(例如,互补金属氧化物半导体(CMOS)图像感测器;即,CIS)、用户接口等等。
闪存设备或系统710或该存储系统可以通过各种封装类型与计算逻辑平台700相结合安装在印刷电路板上。例如,闪存系统710或该存储系统可以通过任意封装类型安装在其上,例如,层叠封装(PoP)、球栅阵列(BGA)、芯片尺寸级封装(CSP)、塑胶引线载体封装(PLCC)、塑料双列直插封装(PDIP)、压模晶片封装、压模晶片形式、板上芯片(COB)、双列直插式陶瓷封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄四方扁平封装(TQFP)、小外形(SOIC)、收缩型小外形封装(SSOP)、薄小外形封装(TSOP)、薄四方扁平封装(TQFP)、系统级封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)、晶圆级处理堆叠封装(WSP)或晶圆级处理封装(WSP)。
上面披露的主题应当被理解成说明性的,而并非限制性的。并且所附权利要求是用来覆盖所有这些修改、增强、和其它实施例,其都落在本发明的范围内,如同由下列权利要求所定义的。因此,在法律所允许的最大限度内,本发明的范围由下列权利要求和它们的等同物最广泛可容许的阐述所确定。相关申请的交叉引用
本申请要求于2007年8月16日提交的韩国专利申请号10-2007-82330的优先权,其内容通过引用结合至此。
Claims (40)
1、一种可在非易失性存储系统中操作的方法,其中非易失性存储系统包括存储单元阵列,该方法包括:
接收编程命令,其中编程命令包括编程数据并且指示使用快速编程模式或正常编程模式执行编程命令;
如果指示为快速编程模式,激活多位错误检测和/或纠正(ECC)引擎以产生与编程数据相关的多位ECC码并且将该编程数据和多位ECC数据存储在存储单元阵列中;以及
如果指示为正常编程模式,激活一位ECC引擎以产生与编程数据相关的一位ECC码并且将该编程数据和一位ECC数据存储在存储单元阵列中。
2、根据权利要求1的方法,进一步包括:
如果指示为正常编程模式,从第一开始电压开始产生编程电压并且使用该编程电压将编程数据和一位ECC数据存储在存储单元阵列中;以及
如果指示为快速编程模式,从比第一开始电压高的第二开始电压开始产生编程电压并且使用该编程电压将编程数据和多位ECC数据存储在存储单元阵列中。
3、根据权利要求2的方法,其中接收包括编程数据并且指示使用快速编程模式或正常编程模式执行编程命令的编程命令步骤包括:
参照该编程命令产生与编程数据相关的内部地址;
将该内部地址与存储在存储单元阵列的地址区域的地址信息相比较;以及
参照该内部地址与地址信息的比较,确定指示的是快速编程模式还是正常编程模式。
4、根据权利要求3的方法,进一步包括:
对应于该编程命令,接收在非易失性系统外部产生的命令;以及
将内部地址与外部产生的命令划分开。
5、根据权利要求3的方法,其中该地址信息指示在存储单元阵列中的地址对应于正常区域和快速区域;
在快速编程模式下存储该编程数据和多位ECC码的步骤包括使用从第二开始电压开始的编程电压在快速区域至少存储该编程数据;以及
在正常编程模式下存储该编程数据和一位ECC码的步骤包括使用从第一开始电压开始的编程电压在正常区域至少存储该编程数据。
6、根据权利要求3的方法,进一步包括:
在对非易失性存储器的系统引导操作过程中将地址信息从存储单元阵列的地址区域复制至地址比较器。
7、根据权利要求6的方法,其中该地址区域进一步存储用于非易失性存储系统在系统引导操作过程中被存取的初始化信息。
8、一种可在非易失性存储系统中操作的方法,其中非易失性存储系统包括存储单元阵列,该方法包括:
接收读命令,该读命令指示读存储在存储单元阵列中的数据以及进一步指示使用快速读模式或是正常读模式执行读命令;
如果指示为快速读模式,激活多位错误检测和/或纠正(ECC)引擎以便使用存储在存储单元阵列中的多位ECC码检测/纠正在该读数据中的错误位;以及
如果指示为正常读模式,激活一位ECC引擎以便使用存储在存储单元阵列中的一位ECC码检测/纠正在该读数据中的错误位。
9、根据权利要求8的方法,其中接收进一步指示使用快速读模式或正常读模式执行读命令的读命令的步骤包括:
参照该读命令产生与读数据相关的内部地址;
将该内部地址与存储在存储单元阵列的地址区域的地址信息相比较;以及
参照该内部地址与地址信息的比较,确定指示的是快速读模式还是正常读模式。
10、根据权利要求9的方法,进一步包括:
对应于该读命令,接收在非易失性存储系统外部产生的命令;以及将内部地址与外部产生的命令划分开。
11、根据权利要求9的方法,其中该地址信息指示在存储单元阵列中的地址对应于正常区域和快速区域;
在快速读模式下读取该读数据和多位ECC码的步骤包括从快速区域至少读取该读数据;以及
在正常读模式下读取该读数据和一位ECC码的步骤包括从正常区域至少读取该读数据。
12、根据权利要求9的方法,进一步包括:
在对非易失性存储器的系统引导操作过程中将地址信息从存储单元阵列的地址区域复制至地址比较器。
13、根据权利要求12的方法,其中该地址区域进一步存储用于非易失性存储系统在系统引导操作过程中被存取的初始化信息。
14、根据权利要求9的方法,其中指示为快速读模式,并且该方法进一步包括:
从存储单元阵列读该读数据和多位ECC数据后,使用该多位ECC数据确定在该读数据中是否有错误;以及
如果该错误是使用该多位ECC数据可纠正的,则使用多位ECC数据执行错误纠正操作以纠正该错误;或
如果该错误是使用该多位ECC数据不可纠正的,则使用扩展的位线感测时间对存储在存储单元阵列中的该读数据执行第一读重试操作以提供第一重读数据。
15、根据权利要求14的方法,进一步包括:
使用多位ECC数据确定在第一重读数据中是否有错误;以及
如果该错误是使用该多位ECC数据可纠正的,则使用多位ECC数据执行错误纠正操作以纠正该错误;或
如果该错误是使用该多位ECC数据不可纠正的,则使用增高的读电压在存储在存储单元阵列中的该读数据上执行第二读重试操作,该增高的读电压能够补偿在存储单元阵列中的过编程的存储单元的阈值电压增量。
16、根据权利要求9的方法,其中指示为快速读模式,并且该方法进一步包括:
在使用减少的未选中读电压从存储单元阵列中读该读数据和多位ECC数据后,使用该多位ECC数据检测在该读数据中是否有错误;以及
如果检测到错误,则使用扩展的位线感测时间执行第一读重试操作以提供第一重读数据。
17、根据权利要求16的方法,进一步包括:
使用多位ECC数据确定在第一重读数据中是否有错误;以及
如果检测到错误,则使用增高的未选中读电压在存储在存储单元阵列中的该读数据上执行第二读重试操作以提供第二重读数据。
18、根据权利要求17的方法,进一步包括:
使用多位ECC数据确定在第二重读数据中是否有错误;以及
如果检测到错误,则使用增高的未选中读电压和增高的选中读电压一起在存储在存储单元阵列中的该读数据上执行第三读重试操作。
19、根据权利要求9的方法,其中指示为快速读模式,并且该方法进一步包括:
在使用减少的未选中读电压从存储单元阵列中读该读数据和多位ECC数据后,使用该多位ECC数据检测在该读数据中是否有错误;以及
如果检测到错误并且错误被确定为在非易失性存储系统的ECC能力内,则纠正该错误并且输出该读数据;
否则使用扩展的位线感测时间执行第一读重试操作以提供第一重读数据。
20、根据权利要求16的方法,进一步包括:
使用多位ECC数据确定在第一重读数据中是否有错误;以及
如果检测到错误并且错误被确定为在非易失性存储系统的ECC能力内,则纠正该错误并且输出第一重读数据;
否则使用增高的未选中读电压在存储在存储单元阵列中的该读数据上执行第二读重试操作以提供第二重读数据。
21、根据权利要求17的方法,进一步包括:
使用多位ECC数据确定在第二重读数据中是否有错误;以及
如果检测到错误并且错误被确定为在非易失性存储系统的ECC能力内,则纠正该错误并且输出该第二重读数据;
否则使用增高的未选中读电压和增高的选中读电压一起在存储在存储单元阵列中的该读数据上执行第三读重试操作。
22、一种系统,包括:
主机,被配置以提供编程命令,其中编程命令包括编程数据并且指示以快速编程模式或是正常编程模式执行与编程数据相关的编程操作;以及
闪存设备,被配置通过产生与编程数据相关的一位错误检测和/或纠正(ECC)码在正常模式下执行编程操作,并且使用具有第一开始电压的第一编程电压在存储单元阵列中存储该编程数据和一位ECC数据,或者通过产生与编程数据相关的多位ECC码在快速模式下执行编程操作,并且使用具有第二开始电压的第二编程电压在存储单元阵列中存储该编程数据和多位ECC数据,其中该第二开始电压比该第一开始电压高。
23、根据权利要求22的系统,其中该闪存设备包括:
存储单元阵列;
高电压产生器,施加第一编程电压或第二编程电压至存储单元阵列中的选中字线;
ECC块,产生一位ECC码或多位ECC码;以及
状态机,参照快速编程模式或正常编程模式控制该高电压产生器和ECC块。
24、根据权利要求23的系统,其中该ECC块包括:
一位ECC引擎,在正常编程模式过程中产生与编程数据相关的一位ECC码;以及
多位ECC引擎,在快速编程模式过程中产生与编程数据相关的多位ECC码。
25、根据权利要求24的系统,其中该ECC块进一步包括:
编程选择器,将编程数据提供给该一位ECC引擎或该多位ECC引擎其中之一;以及
多路器,选择一位ECC码或多位ECC码。
26、根据权利要求24的系统,其中该状态机被配置为在快速编程模式过程中控制该ECC块以激活该多位ECC引擎并且进一步被配置为在快速编程模式过程中控制该高电压产生器以产生具有第二开始电平的编程电压。
27、根据权利要求23的系统,其中该存储单元阵列被划分为在快速编程模式过程中存储编程数据的快速区域和在正常编程模式过程中存储编程数据的正常区域。
28、根据权利要求27的系统,其中基于与编程数据相关的地址和在存储单元阵列的快速区域和正常区域中的地址的比较,主机指示快速编程模式或是正常编程模式。
29、根据权利要求28的系统,其中该闪存设备进一步包括:
参照与编程数据相关的地址和在存储单元阵列的快速区域和正常区域中的地址的比较,地址比较器产生快速模式信号;
其中状态机、ECC块和高电压产生器响应于该快速模式信号的激活/无效,分别参照快速编程模式或是正常编程模式进行操作。
30、根据权利要求29的系统,其中存储单元阵列进一步包括地址区域,用于存储至少与快速区域和正常区域其中之一有关的地址信息。
31、根据权利要求30的系统,其中地址比较器存储基于系统引导操作的执行、从地址区域接收的地址信息。
32、一种闪存设备,包括:
存储单元阵列,具有被划分成第一区域和第二区域的存储单元;
地址比较器,产生标记信号,以基于此确定与读操作相关的地址对应于第一区域;
高电压产生器,在读操作过程中参照该标记信号提供减少的未选中读电压或增高的未选中读电压给存储单元阵列的未选中字线;
页面缓冲器,在该读操作过程中使用第一位线感测时段或比第一位线感测时段长的第二位线感测时段来感测存储单元阵列的位线;
ECC块,检测和/或纠正在读数据中的错误,如由页面缓冲器所提供的读数据,以及如果在该错误中的错误位的数目超过了ECC块的纠正能力时产生读失败信号;以及
状态机,响应于该标记信号和读失败信号,控制该高电压产生器和页面缓冲器。
33、根据权利要求32的闪存设备,其中第一区域与频繁读存储单元或频繁读存储块相关。
34、根据在权利要求33中提出的闪存设备,其中第一区域包括存储与第一区域相关的地址信息的存储单元阵列区域。
35、根据权利要求34的闪存设备,其中地址比较器被配置以存储该地址信息。
36、根据权利要求35的闪存设备,其中该地址信息在引导操作过程中从存储单元阵列中被读出以及被存储在地址比较器中。
37、根据权利要求32的闪存设备,进一步包括:
读重试控制器,计数由ECC块产生的读失败信号并且使状态机使用扩展的数据感测时段来重读该读数据。
38、根据权利要求37的闪存设备,其中读重试控制器进一步使状态机通过改变施加于选中和未选中字线的读电压来重读该读数据,以响应每一次读失败信号。
39、根据权利要求38的闪存设备,其中状态机使高电压产生器和页面缓冲器在第一读操作过程中施加减少的未选中读电压。
40、根据权利要求39的闪存设备,其中状态机使高电压产生器和页面缓冲器在第二和随后的读操作过程中施加增高的未选中读电压。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR82330/07 | 2007-08-16 | ||
KR1020070082330A KR101397549B1 (ko) | 2007-08-16 | 2007-08-16 | 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101436434A true CN101436434A (zh) | 2009-05-20 |
CN101436434B CN101436434B (zh) | 2012-09-19 |
Family
ID=40363956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101887924A Active CN101436434B (zh) | 2007-08-16 | 2008-08-18 | 提供快速编程及读操作的非易失性存储设备、系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8898543B2 (zh) |
JP (1) | JP5250337B2 (zh) |
KR (1) | KR101397549B1 (zh) |
CN (1) | CN101436434B (zh) |
TW (1) | TWI490872B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033785A (zh) * | 2009-10-01 | 2011-04-27 | 三星电子株式会社 | 检测不稳定存储单元的分布的存储系统和方法 |
CN102270506A (zh) * | 2011-06-28 | 2011-12-07 | 上海宏力半导体制造有限公司 | 一种闪存的编程/擦除方法 |
CN101964213B (zh) * | 2009-07-24 | 2013-01-02 | 中芯国际集成电路制造(上海)有限公司 | 存储单元失效分析的测试方法 |
CN103793335A (zh) * | 2012-10-29 | 2014-05-14 | 索尼公司 | 存储控制设备、存储设备、信息处理系统及存储控制方法 |
CN103928052A (zh) * | 2013-01-15 | 2014-07-16 | 三星电子株式会社 | 存储系统及其操作方法 |
CN106205733A (zh) * | 2016-07-12 | 2016-12-07 | 北京兆易创新科技股份有限公司 | 一种Multi‑plane结构非易失性存储器的块修复方法和装置 |
CN108121509A (zh) * | 2017-12-19 | 2018-06-05 | 深圳忆联信息系统有限公司 | 一种提高ssd读操作时raid效率的方法及ssd |
CN108717385A (zh) * | 2018-05-23 | 2018-10-30 | 中国科学院微电子研究所 | 一种用于闪存的数据恢复方法及系统 |
CN108932175A (zh) * | 2017-05-24 | 2018-12-04 | 光宝电子(广州)有限公司 | 固态储存装置的控制方法 |
CN109324832A (zh) * | 2018-09-06 | 2019-02-12 | 深圳忆联信息系统有限公司 | 一种固态硬盘处于低温情况下的启动方法及其系统 |
CN109844864A (zh) * | 2016-09-26 | 2019-06-04 | 英特尔公司 | 用于使用多单元存储单元组对非易失性存储器进行编程以提供保持差错的差错位置信息的方法和设备 |
CN109871594A (zh) * | 2019-01-28 | 2019-06-11 | 山东华芯半导体有限公司 | 一种NAND Flash特性模型建立方法 |
CN109949855A (zh) * | 2017-12-21 | 2019-06-28 | 爱思开海力士有限公司 | 测试控制电路、使用其的半导体存储装置和半导体系统 |
CN110223724A (zh) * | 2019-05-10 | 2019-09-10 | 北京兆易创新科技股份有限公司 | 一种nand flash的读操作方法和装置 |
CN110399092A (zh) * | 2018-04-24 | 2019-11-01 | 爱思开海力士有限公司 | 存储装置以及操作存储装置的方法 |
CN111081308A (zh) * | 2018-10-19 | 2020-04-28 | 奈奎斯特半导体有限公司 | 用于混合非易失性存储系统的系统和方法 |
CN111145818A (zh) * | 2018-11-06 | 2020-05-12 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8493783B2 (en) | 2008-03-18 | 2013-07-23 | Apple Inc. | Memory device readout using multiple sense times |
KR101537018B1 (ko) * | 2008-10-01 | 2015-07-17 | 삼성전자주식회사 | 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드 |
US7924614B2 (en) * | 2009-01-19 | 2011-04-12 | Macronix International Co., Ltd. | Memory and boundary searching method thereof |
US8175012B2 (en) * | 2009-03-26 | 2012-05-08 | Mediatek Inc. | Decoding/encoding method for booting from a NAND flash and system thereof |
US20100274933A1 (en) * | 2009-04-24 | 2010-10-28 | Mediatek Inc. | Method and apparatus for reducing memory size and bandwidth |
US8386885B1 (en) * | 2009-08-26 | 2013-02-26 | Cypress Semiconductor Corporation | Using ECC memory to store configuration information |
KR101678909B1 (ko) * | 2009-09-17 | 2016-11-23 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법 |
US8261011B2 (en) * | 2009-10-29 | 2012-09-04 | Freescale Semiconductor, Inc. | One-time programmable memory device and methods thereof |
JP5349256B2 (ja) | 2009-11-06 | 2013-11-20 | 株式会社東芝 | メモリシステム |
KR101636248B1 (ko) * | 2009-12-10 | 2016-07-06 | 삼성전자주식회사 | 플래시 메모리 장치, 이를 포함하는 플래시 메모리 시스템 및 이의 프로그램 방법 |
US8174895B2 (en) * | 2009-12-15 | 2012-05-08 | Sandisk Technologies Inc. | Programming non-volatile storage with fast bit detection and verify skip |
JP5550386B2 (ja) * | 2010-03-03 | 2014-07-16 | 株式会社東芝 | 不揮発性半導体記憶装置及びメモリシステム |
KR101541040B1 (ko) * | 2010-03-12 | 2015-08-03 | 엘에스아이 코포레이션 | 플래시 메모리들을 위한 ldpc 소거 디코딩 |
JP2011227976A (ja) | 2010-04-22 | 2011-11-10 | Elpida Memory Inc | 不揮発性半導体メモリ装置、及びそのメモリ装置を有するメモリシステム |
JP5651457B2 (ja) * | 2010-12-15 | 2015-01-14 | 株式会社東芝 | 半導体記憶装置 |
TWI479495B (zh) * | 2011-06-02 | 2015-04-01 | Phison Electronics Corp | 資料讀取方法、記憶體控制器及記憶體儲存裝置 |
TWI446160B (zh) | 2011-07-21 | 2014-07-21 | Silicon Motion Inc | 快閃記憶體控制器及資料讀取方法 |
KR101818176B1 (ko) | 2011-12-12 | 2018-01-15 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR101892038B1 (ko) | 2012-01-30 | 2018-08-27 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 독출 방법 |
KR101990971B1 (ko) | 2012-01-30 | 2019-06-19 | 삼성전자 주식회사 | 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법 |
JP2013164888A (ja) | 2012-02-10 | 2013-08-22 | Toshiba Corp | 半導体記憶装置 |
US8982602B2 (en) * | 2012-08-30 | 2015-03-17 | Adesto Technologies Corporation | Memory devices, circuits and, methods that apply different electrical conditions in access operations |
KR102016041B1 (ko) * | 2012-10-11 | 2019-08-30 | 삼성전자주식회사 | 비휘발성 메모리 장치의 프로그램 방법 |
KR102123946B1 (ko) | 2012-12-28 | 2020-06-17 | 삼성전자주식회사 | 멀티 레벨 셀 메모리 장치 및 그것의 동작방법 |
KR102053953B1 (ko) * | 2013-02-04 | 2019-12-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 |
JP2014175028A (ja) * | 2013-03-08 | 2014-09-22 | Toshiba Corp | 不揮発性半導体記憶装置 |
WO2015037159A1 (ja) | 2013-09-13 | 2015-03-19 | 株式会社 東芝 | 半導体記憶装置及びメモリシステム |
KR20150033859A (ko) | 2013-09-25 | 2015-04-02 | 삼성전자주식회사 | 반도체 메모리 장치 및 메모리 시스템 |
US9135113B2 (en) * | 2013-10-08 | 2015-09-15 | Apple Inc. | Recovery from programming failure in non-volatile memory |
US9323614B2 (en) * | 2013-11-06 | 2016-04-26 | Wisconsin Alumni Research Foundation | Dynamic error handling for on-chip memory structures |
KR20150113302A (ko) * | 2014-03-27 | 2015-10-08 | 에스케이하이닉스 주식회사 | 노이즈 검출 회로 및 이를 이용한 반도체 시스템 |
KR20160011939A (ko) * | 2014-07-23 | 2016-02-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102190241B1 (ko) * | 2014-07-31 | 2020-12-14 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템 |
KR102214556B1 (ko) * | 2014-08-19 | 2021-02-09 | 삼성전자주식회사 | 메모리 장치 및 모듈 |
KR20160058458A (ko) * | 2014-11-17 | 2016-05-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9524790B1 (en) * | 2015-08-02 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory cells wear reduction |
US20170161141A1 (en) * | 2015-12-02 | 2017-06-08 | Samsung Electronics Co., Ltd. | Method and apparatus for correcting data in multiple ecc blocks of raid memory |
SG11201806099WA (en) | 2016-02-19 | 2018-08-30 | Huawei Tech Co Ltd | Method and apparatus for accessing flash memory device |
JP6673021B2 (ja) * | 2016-05-31 | 2020-03-25 | 富士通株式会社 | メモリおよび情報処理装置 |
CN112863581A (zh) * | 2016-09-09 | 2021-05-28 | 硅存储技术公司 | 用于读取阵列中的闪存单元的带位线预充电电路的改进读出放大器 |
KR20180051272A (ko) * | 2016-11-08 | 2018-05-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10389379B2 (en) * | 2017-05-12 | 2019-08-20 | Qualcomm Incorporated | Error correcting code testing |
KR102384706B1 (ko) * | 2017-06-09 | 2022-04-08 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
US10381097B2 (en) * | 2017-10-31 | 2019-08-13 | Western Digital Technologies, Inc. | Read mode tuning |
TWI697986B (zh) * | 2018-08-15 | 2020-07-01 | 旺宏電子股份有限公司 | 記憶體元件及其製造方法 |
CN110908825B (zh) * | 2018-09-17 | 2024-03-01 | 兆易创新科技集团股份有限公司 | 一种数据读取方法、装置、存储设备及存储介质 |
TWI672702B (zh) * | 2018-09-28 | 2019-09-21 | 衡宇科技股份有限公司 | 訓練人工智慧估測儲存裝置的感測電壓的方法 |
KR20200066911A (ko) * | 2018-12-03 | 2020-06-11 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR102612749B1 (ko) * | 2018-12-19 | 2023-12-13 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11687407B2 (en) * | 2020-08-27 | 2023-06-27 | Micron Technologies, Inc. | Shared error correction code (ECC) circuitry |
TWI755830B (zh) * | 2020-08-28 | 2022-02-21 | 力晶積成電子製造股份有限公司 | 記憶體的讀取方法 |
US11625297B2 (en) | 2020-08-28 | 2023-04-11 | Samsung Electronics Co., Ltd. | Storage device and operating method thereof |
US11907544B2 (en) | 2020-08-31 | 2024-02-20 | Micron Technology, Inc. | Automated error correction with memory refresh |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0616906A (ja) | 1992-07-02 | 1994-01-25 | Matsushita Electric Works Ltd | 液状エポキシ樹脂成形材料 |
JPH06161906A (ja) * | 1992-11-19 | 1994-06-10 | Toshiba Corp | 半導体メモリー回路 |
JPH06187248A (ja) * | 1992-12-16 | 1994-07-08 | Nec Corp | データエラー検出訂正制御回路 |
US5909449A (en) | 1997-09-08 | 1999-06-01 | Invox Technology | Multibit-per-cell non-volatile memory with error detection and correction |
US8412879B2 (en) | 2002-10-28 | 2013-04-02 | Sandisk Technologies Inc. | Hybrid implementation for error correction codes within a non-volatile memory system |
US6944063B2 (en) * | 2003-01-28 | 2005-09-13 | Sandisk Corporation | Non-volatile semiconductor memory with large erase blocks storing cycle counts |
US6914823B2 (en) * | 2003-07-29 | 2005-07-05 | Sandisk Corporation | Detecting over programmed memory after further programming |
TWI267864B (en) | 2004-05-06 | 2006-12-01 | Samsung Electronics Co Ltd | Method and device for programming control information |
KR100632940B1 (ko) * | 2004-05-06 | 2006-10-12 | 삼성전자주식회사 | 프로그램 사이클 시간을 가변시킬 수 있는 불 휘발성반도체 메모리 장치 |
JP4554616B2 (ja) * | 2004-08-30 | 2010-09-29 | ルネサスエレクトロニクス株式会社 | 半導体集積回路 |
US7173859B2 (en) * | 2004-11-16 | 2007-02-06 | Sandisk Corporation | Faster programming of higher level states in multi-level cell flash memory |
JP4982110B2 (ja) | 2005-06-02 | 2012-07-25 | 株式会社東芝 | 半導体集積回路装置 |
KR100634457B1 (ko) * | 2005-07-04 | 2006-10-16 | 삼성전자주식회사 | 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치 |
KR100732628B1 (ko) | 2005-07-28 | 2007-06-27 | 삼성전자주식회사 | 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치 |
KR100666185B1 (ko) * | 2005-07-29 | 2007-01-09 | 삼성전자주식회사 | 3-레벨 불휘발성 반도체 메모리 장치 및 이에 대한구동방법 |
KR100729359B1 (ko) | 2005-09-23 | 2007-06-15 | 삼성전자주식회사 | 낸드 플래시 메모리 장치 및 그것의 프로그램 방법 |
JP4953648B2 (ja) | 2006-02-03 | 2012-06-13 | パナソニック株式会社 | 不揮発性記憶装置およびメモリコントローラ |
JP2007305267A (ja) | 2006-05-15 | 2007-11-22 | Toshiba Corp | 半導体記憶装置 |
KR100733952B1 (ko) * | 2006-06-12 | 2007-06-29 | 삼성전자주식회사 | 플래그 셀들 사이의 커플링을 최소화시킬 수 있는멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법 |
US7489549B2 (en) * | 2006-06-22 | 2009-02-10 | Sandisk Corporation | System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages |
KR100781984B1 (ko) * | 2006-11-03 | 2007-12-06 | 삼성전자주식회사 | 셀프 레퍼런스를 갖는 센스앰프 회로 및 그에 의한 센싱방법 |
US7900102B2 (en) * | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7814401B2 (en) * | 2006-12-21 | 2010-10-12 | Ramot At Tel Aviv University Ltd. | Soft decoding of hard and soft bits read from a flash memory |
KR100859258B1 (ko) * | 2007-09-10 | 2008-09-18 | 주식회사 하이닉스반도체 | 플래시 메모리 장치 및 동작 방법 |
US8085586B2 (en) * | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
-
2007
- 2007-08-16 KR KR1020070082330A patent/KR101397549B1/ko active IP Right Grant
-
2008
- 2008-08-13 US US12/190,855 patent/US8898543B2/en active Active
- 2008-08-13 TW TW097130863A patent/TWI490872B/zh active
- 2008-08-15 JP JP2008209285A patent/JP5250337B2/ja active Active
- 2008-08-18 CN CN2008101887924A patent/CN101436434B/zh active Active
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964213B (zh) * | 2009-07-24 | 2013-01-02 | 中芯国际集成电路制造(上海)有限公司 | 存储单元失效分析的测试方法 |
CN102033785A (zh) * | 2009-10-01 | 2011-04-27 | 三星电子株式会社 | 检测不稳定存储单元的分布的存储系统和方法 |
CN102033785B (zh) * | 2009-10-01 | 2016-05-25 | 三星电子株式会社 | 检测不稳定存储单元的分布的存储系统和方法 |
CN102270506B (zh) * | 2011-06-28 | 2016-12-28 | 上海华虹宏力半导体制造有限公司 | 一种闪存的编程/擦除方法 |
CN102270506A (zh) * | 2011-06-28 | 2011-12-07 | 上海宏力半导体制造有限公司 | 一种闪存的编程/擦除方法 |
CN103793335A (zh) * | 2012-10-29 | 2014-05-14 | 索尼公司 | 存储控制设备、存储设备、信息处理系统及存储控制方法 |
CN103793335B (zh) * | 2012-10-29 | 2017-10-31 | 索尼公司 | 存储控制设备、存储设备、信息处理系统及存储控制方法 |
CN103928052A (zh) * | 2013-01-15 | 2014-07-16 | 三星电子株式会社 | 存储系统及其操作方法 |
KR20140092027A (ko) * | 2013-01-15 | 2014-07-23 | 삼성전자주식회사 | 메모리 시스템의 동작 방법 및 메모리 시스템 |
KR102048765B1 (ko) | 2013-01-15 | 2020-01-22 | 삼성전자주식회사 | 메모리 시스템의 동작 방법 및 메모리 시스템 |
CN103928052B (zh) * | 2013-01-15 | 2019-08-20 | 三星电子株式会社 | 存储系统及其操作方法 |
CN106205733A (zh) * | 2016-07-12 | 2016-12-07 | 北京兆易创新科技股份有限公司 | 一种Multi‑plane结构非易失性存储器的块修复方法和装置 |
CN106205733B (zh) * | 2016-07-12 | 2019-09-06 | 北京兆易创新科技股份有限公司 | 一种Multi-plane结构非易失性存储器的块修复方法和装置 |
CN109844864B (zh) * | 2016-09-26 | 2023-09-26 | 英特尔公司 | 用于使用多单元存储单元组对非易失性存储器进行编程以提供保持差错的差错位置信息的方法和设备 |
CN109844864A (zh) * | 2016-09-26 | 2019-06-04 | 英特尔公司 | 用于使用多单元存储单元组对非易失性存储器进行编程以提供保持差错的差错位置信息的方法和设备 |
CN108932175A (zh) * | 2017-05-24 | 2018-12-04 | 光宝电子(广州)有限公司 | 固态储存装置的控制方法 |
CN108932175B (zh) * | 2017-05-24 | 2022-01-11 | 建兴储存科技(广州)有限公司 | 固态储存装置的控制方法 |
CN108121509A (zh) * | 2017-12-19 | 2018-06-05 | 深圳忆联信息系统有限公司 | 一种提高ssd读操作时raid效率的方法及ssd |
CN108121509B (zh) * | 2017-12-19 | 2020-10-16 | 深圳忆联信息系统有限公司 | 一种提高ssd读操作时raid效率的方法及ssd |
CN109949855A (zh) * | 2017-12-21 | 2019-06-28 | 爱思开海力士有限公司 | 测试控制电路、使用其的半导体存储装置和半导体系统 |
CN109949855B (zh) * | 2017-12-21 | 2023-07-11 | 爱思开海力士有限公司 | 测试控制电路、使用其的半导体存储装置和半导体系统 |
CN110399092B (zh) * | 2018-04-24 | 2023-10-31 | 爱思开海力士有限公司 | 存储装置以及操作存储装置的方法 |
CN110399092A (zh) * | 2018-04-24 | 2019-11-01 | 爱思开海力士有限公司 | 存储装置以及操作存储装置的方法 |
CN108717385A (zh) * | 2018-05-23 | 2018-10-30 | 中国科学院微电子研究所 | 一种用于闪存的数据恢复方法及系统 |
CN108717385B (zh) * | 2018-05-23 | 2020-09-29 | 中国科学院微电子研究所 | 一种用于闪存的数据恢复方法及系统 |
CN109324832A (zh) * | 2018-09-06 | 2019-02-12 | 深圳忆联信息系统有限公司 | 一种固态硬盘处于低温情况下的启动方法及其系统 |
CN111081308B (zh) * | 2018-10-19 | 2023-08-15 | 英韧科技(上海)有限公司 | 用于混合非易失性存储系统的系统和方法 |
CN111081308A (zh) * | 2018-10-19 | 2020-04-28 | 奈奎斯特半导体有限公司 | 用于混合非易失性存储系统的系统和方法 |
CN111145818A (zh) * | 2018-11-06 | 2020-05-12 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111145818B (zh) * | 2018-11-06 | 2023-10-03 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109871594B (zh) * | 2019-01-28 | 2023-02-03 | 山东华芯半导体有限公司 | 一种NAND Flash特性模型建立方法 |
CN109871594A (zh) * | 2019-01-28 | 2019-06-11 | 山东华芯半导体有限公司 | 一种NAND Flash特性模型建立方法 |
CN110223724A (zh) * | 2019-05-10 | 2019-09-10 | 北京兆易创新科技股份有限公司 | 一种nand flash的读操作方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI490872B (zh) | 2015-07-01 |
JP2009048758A (ja) | 2009-03-05 |
CN101436434B (zh) | 2012-09-19 |
TW200915328A (en) | 2009-04-01 |
KR20090017844A (ko) | 2009-02-19 |
JP5250337B2 (ja) | 2013-07-31 |
US8898543B2 (en) | 2014-11-25 |
US20090049364A1 (en) | 2009-02-19 |
KR101397549B1 (ko) | 2014-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101436434B (zh) | 提供快速编程及读操作的非易失性存储设备、系统和方法 | |
CN102132354B (zh) | 闪存中的数据的快速低功率读取 | |
KR101626548B1 (ko) | 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법 | |
KR100837282B1 (ko) | 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템,그것의 프로그램 방법 및 읽기 방법 | |
KR101617641B1 (ko) | 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법 | |
KR100926475B1 (ko) | 멀티 비트 플래시 메모리 장치 및 그것의 프로그램 방법 | |
US6772276B2 (en) | Flash memory command abstraction | |
CN101763904B (zh) | 非易失性存储装置及其操作方法 | |
US8050101B2 (en) | Nonvolatile memory devices having erased-state verify capability and methods of operating same | |
US8189393B2 (en) | Nonvolatile memory device with incremental step pulse programming | |
KR100836762B1 (ko) | 멀티 비트 플래시 메모리 장치 및 그것의 프로그램 방법 | |
KR102329174B1 (ko) | Nand형 플래시 메모리 및 그 독출 방법 | |
US10114693B2 (en) | Memory systems and electronic systems performing an adaptive error correction operation with pre-checked error rate, and methods of operating the memory systems | |
KR20110040472A (ko) | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 | |
KR20100034239A (ko) | 불휘발성 메모리 장치 및 그것의 페이지 버퍼 | |
US20090225593A1 (en) | Method of operating a flash memory device | |
KR20110045223A (ko) | 비휘발성 메모리 장치 및 그것의 바이어스 전압 인가 방법 | |
US20170220413A1 (en) | Memory system, semiconductor memory device and operating method thereof | |
US8953397B2 (en) | Semiconductor device and method of operating the same | |
US20080025095A1 (en) | Flash memory device and program method thereof | |
US8335871B2 (en) | Memory system and method of driving the same | |
US7310277B2 (en) | Non-volatile semiconductor storage device with specific command enable/disable control signal | |
JP2007104708A (ja) | データ処理方法 | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
JP5284737B2 (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 |