CN101246738B - 具有备份电路的存储系统及编程方法 - Google Patents
具有备份电路的存储系统及编程方法 Download PDFInfo
- Publication number
- CN101246738B CN101246738B CN2008100856740A CN200810085674A CN101246738B CN 101246738 B CN101246738 B CN 101246738B CN 2008100856740 A CN2008100856740 A CN 2008100856740A CN 200810085674 A CN200810085674 A CN 200810085674A CN 101246738 B CN101246738 B CN 101246738B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- flash memory
- storage
- backup
- 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
- 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
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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
- 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
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
提供了一种存储系统和编程方法。该存储系统包括闪存和存储器控制器。闪存在多级存储单元中存储第一位数据,然后存储第二位数据。存储器控制器包括临时存储第一位数据和第二位数据的缓冲存储器,以及在闪存存储第二位数据时存储第一位数据的备份存储器。当检测到与存储第二位数据相关联的编程故障时,备份存储器将第一位数据重新编程到闪存中。
Description
相关申请的交叉引用
本专利申请要求于2007年1月3日提交的韩国专利申请No.10-2007-0000737的优先权,特此通过引用将其主题并入。
技术领域
本发明涉及存储系统,并且具体来说,涉及一种能够编程多位数据的存储系统。本发明还涉及用于这种存储系统的编程方法。
背景技术
越来越多的消费性产品使用非易失性存储器来存储数据。具有非易失性存储器的现有消费性产品的例子包括MP3播放器、数码相机、移动电话、摄像机、闪存卡以及固态硬盘(SSD)。
随着这些消费性产品的种类和复杂性的增加,期望非易失性存储器存储越来越大的数据量且以更快的速度存取数据。一种用于提高非易失性存储器的总数据存储容量的方法是使用多级单元(MLC)。与传统的单级单元(SLC)相比,多级单元能够每一个单元存储多于一个数据。
图1是传统存储系统的总体框图。该传统存储系统100包括主处理器(即,CPU)110、存储器控制器120和闪存130。
存储器控制器120包括缓冲存储器121。闪存130包括单元阵列131和页缓冲器132。尽管图1中没有示出,但闪存130还包括解码器、数据缓冲器和控制单元。
存储器控制器120从主机110接收数据和相应的写命令并控制闪存130,以使将数据写入单元阵列131中。可替换地,存储器控制器120从主机110接收读命令并控制闪存130,以使从单元阵列131中读取由读命令所指示的数据。
缓冲存储器121用于存储器控制器120内,以临时存储将要写到闪存130的“写数据”或从闪存130检索到的“读数据”。在存储器控制器120的控 制下,缓冲存储器121把该临时存储的读/写数据传输给主机110或闪存130。
闪存130的单元阵列131包括以阵列排列的多个存储单元。这些存储单元是非易失性的,因此即使在没有施加电源的情况下也能保留存储的数据。页缓冲器132存储将要写到单元阵列131中的选定页中的写数据或从选定页检索到的读数据。
构成闪存130的存储单元可以为单级单元或多级单元。首先基于使用单级单元的假设来描述闪存130的一个例子。
SLC具有两个取决于阈值电压的分布的可能数据状态(1或0)。存储逻辑值“1”的SLC处于擦除状态。存储逻辑值“0”的SLC处于编程状态。擦除状态的存储单元被称为ON单元,而编程状态的存储单元被称为OFF单元。
闪存130基于逐页的方式执行编程操作。在编程操作期间,存储器控制器120通过缓冲存储器121,基于逐页的方式向闪存130传输写数据。
页缓冲器132临时存储从缓冲存储器121接收到的写数据,接着把所载入的写数据编程到选定的存储页中。当完成编程操作时,执行编程验证操作来验证数据已被正确编程。
如果出现编程故障,则在增大了用于对所选定的页进行编程的电压后,再次执行编程操作和相应的编程验证操作。通过这样的方式,可以成功地完成对给定的写数据页进行编程的操作。其后,接收下一批写数据,并且重复编程操作。
基于使用多级单元的假设,现在将给出闪存130的操作的第二个描述。图2是示出了对2位MLC的最低有效位(LSB)和最高有效位(MSB)进行编程的过程的电压阈值图。下面的描述中使用两位的多级存储单元,但本发明不限于仅2位的存储单元。在本上下文中,LSB和MSB的意义是清楚的。但是,可替换地,除过在2位存储单元中明显的MSB和LSB的关系之外的任何“第一位”和“第二位”的排列均可以使用。
参考图2,可以根据MLC的阈值电压分布将其编程为具有11、01、10和00四种状态中的一种。以类似于SLC的过程对LSB进行编程。根据其LSB数据将具有状态11的存储单元编程为具有状态A(以虚线表示)。
之后,存储器控制器120把一页写数据从缓冲存储器121传输到闪存130,以便对MSB进行编程。参考图2,根据其MSB数据将具有状态A的 MLC编程为具有状态00或状态10。另一方面,根据其MSB数据将具有状态11的存储单元编程为要么保持在状态11、要么具有状态01。
这样,MLC的编程操作在两个不同的阶段进行。也就是说,首先在MLC中编程LSB,接着编程MSB。
但是,独立于先前所执行的LSB编程操作,在MSB编程过程中可能出现编程故障。幸好,由于“当前的”MSB数据保留在缓冲存储器121中直到完成相应的编程验证操作,因而可以修复损坏的MSB数据。
不幸地是,经验表明,MSB编程错误经常改变先前所编程的LSB数据。然而,由于(早期阶段)LSB数据不再存储于缓冲存储器121中,因而损坏的LSB数据不能像损坏的MSB数据那样被简单地修复。因此,传统的结合了多级单元的闪存系统易于丢失LSB数据。
发明内容
本发明的实施例提供了一种存储系统,该存储系统能够防止在多位数据编程操作过程中丢失LSB数据。本发明的实施例还提供了一种用于结合了多级单元的存储系统的编程方法,该存储系统能够防止LSB丢失数据。
在一个实施例中,本发明提供了一种存储系统,其包括:闪存,其顺序存储第一位数据和第二位数据;和存储器控制器,该存储器控制器包括临时存储第一位数据和第二位数据的缓冲存储器,和在与存储第二位数据相关联的操作过程中存储第一位数据的备份存储器,其中,在检测与存储第二位数据相关联的操作故障时,该备份存储器把第一位数据重新编程到闪存中,其中,闪存包括临时存储从缓冲存储器载入的数据的页缓冲器,并且备份存储器与页缓冲器相关联。
在另一个实施例中,本发明提供了一种存储系统,其包括:主机,其通信发送原始数据和命令;闪存,其包括页缓冲存储器,并且该闪存适用于把与原始数据相关联的第一位数据和第二位数据顺序存储到多级存储单元的阵列中;和存储器控制器,其响应于所述命令存储器控制器,该存储器控制器包括:缓冲存储区,其用于临时存储第一位数据和第二位数据,并且把第一位数据和第二位数据传输到页缓冲器和传输来自于页缓冲器的第一位数据和第二位数据;比较器,跟在与存储第二位数据相关联的编程之后,该比较器比较实际存储在闪存中的第二位数据与存储在缓冲存储器中的第二位 数据,并且产生比较结果;故障位置检测器,其响应于该比较结果,并且产生故障位置信息;ECC电路,其在执行与存储第二位数据相关联的操作之后,对错误的第一位数据执行一次修复;修复电路,其对关于故障位置信息的错误的第一位数据执行二次修复;和备份存储器,其在与存储第二位数据相关联的操作过程中存储第一位数据。
在另一个实施例中,本发明提供了一种用于存储系统的编程方法,所述存储系统包括存储原始数据的闪存和相关联的存储器控制器,该方法包括:向存储器控制器中的缓冲存储器传输与原始数据相关联的第一位和第二位数据,对闪存中的第一位数据进行编程,当对闪存中的第二位数据进行编程时,把第一位数据存储到备份存储器中,并且在检测到与对第二位数据进行编程相关联的故障时,通过从备份存储器中读取所存储的第一位数据来对闪存中的第一位数据重新编程,其中,所述闪存包括临时存储从所述缓冲存储器载入的数据的页缓冲器,并且所述备份存储器与所述闪存中的页缓冲器相关联。
在另一个实施例中,本发明提供了一种用于存储系统的编程方法,所述存储系统包括存储原始数据的闪存和相关联的存储器控制器,该方法包括:向存储器控制器中的缓冲存储器传输与原始数据相关联的第一位数据和第二位数据,对闪存中的第一位数据进行编程,当对闪存中的第二位数据进行编程时,把第一位数据存储到备份存储器中,在检测与对闪存中第二位数据的编程相关联的故障之后,使用误差校正编码方案来校正存储在闪存中的第一位数据,比较实际存储的第二位数据和与原始数据相关联的第二位数据,且响应于该比较来修复第一位数据。
附图说明
图1是传统存储系统的框图;
图2是说明在存储单元中对多位数据进行编程的过程的图;
图3是根据本发明的第一实施例的存储系统的框图;
图4是根据本发明的第二实施例的存储系统的框图;
图5是根据本发明的第三实施例的存储系统的框图;
图6是说明图5中所示的存储系统的多位编程操作的图;
图7是说明图5中所示的存储系统的错误位置检测操作和LSB修复操 作的示意图;
图8是根据本发明的第四实施例的存储系统的框图;
图9是根据本发明的第五实施例的存储系统的框图;
图10是根据本发明的第六实施例的存储系统的框图;
图11是图10中所示的页缓冲器的示意框图。
具体实施方式
将参考附图描述本发明的实施例。然而,本发明可以多种不同形式实施,而不应当仅仅局限于所示出的实施例来构造。此外,这些实施例作为教导性例子给出。整个说明书中,应当注意,术语“写”和“编程”实质上具有相同的含义。
图3是根据本发明的一个实施例的存储系统的框图。
参考图3,存储系统200包括主机(或各种诸如CPU之类的主机元件)210、存储器控制器220及闪存230。闪存230包括适用于存储多位数据的多级单元。在图示的例子中,假定存储系统200编程数据的最低有效位(LSB),该LSB后面跟有数据的最高有效位(MSB)。
除了图3中所示的简单例示,存储器控制器220和闪存230可以多种形式来实现。例如,这些元件通常可以被提供在诸如多媒体卡(MMC)、SD卡、XD卡、CF卡及SIM卡之类的存储卡上。如在存储卡上实现的那样,利用传统接口硬件和协议,存储器控制器220和闪存230可以连接到主机210(例如,数码相机、便携式电话、MP3播放器或PMP)上。
不管采用何种物理实现,存储器控制器220从主机210接收一个或多个命令,并且响应于这些命令来控制闪存230的全部操作(包括写和读操作)。存储器控制器220包括缓冲存储器221和LSB备份存储器222。
缓冲存储器221用于临时存储要写入闪存230的“写数据”和从闪存230检索到的“读数据”。在存储器控制器220的控制下,存储在缓冲存储器221中的读/写数据被传输到闪存230或主机210中。可以使用诸如静态RAM(SRAM)和动态RAM(DRAM)之类的随机存取存储器(RAM)来实现缓冲存储器221。
结合把多位写数据编程到闪存230中来使用存储器控制器220中的LSB备份存储器222。
在本例中,假定通过首先对LSB进行编程、接着对MSB进行编程来把多级数据编程到闪存230中。如上所述,这种编程多级数据的方法使得在对闪存230中的MSB进行编程的过程中可能损坏先前编程的LSB(即,改变它的阈值电压)。也就是说,当出现MSB编程故障时,可能丢失先前编程的 LSB。为了避免这种问题,在对MSB的编程之前,使用LSB备份存储器222把LSB数据备份到闪存230。
与缓冲存储器221类似,可以使用RAM来实现LSB备份存储器222。尽管图示的缓冲存储器221和LSB备份存储器222是独立地实现的,但是它们通常可以在单个存储器中提供。也就是说,可以使用单个RAM(例如,划分其存取和存储功能)来实现既能临时存储读/写数据、又能备份当前的LSB数据的缓冲区。
闪存230包括单元阵列231、解码器232、页缓冲器233、位线选择电路234、数据缓冲器235以及控制单元236。在图3中,在该例子中假定使用NAND闪存。
单元阵列231包括多个存储块(未示出)。每个存储块都包括多个页(例如,32页或64页),并且每个页包括共享一条字线WL的多个存储单元(例如,512字节、2K字节)。在采用NAND闪存的情况下,基于逐块的方式执行擦除操作,而基于逐页的方式执行读/写操作。
假定所举例子中的每个存储单元存储多位数据(例如,2位)。这样,依照所定义的阈值电压的分布,每个存储单元可以被编程为四种可能的状态之一。参考图2,在完成一个编程操作之后,每个存储单元可具有11、01、10和00中的一种状态。在这种情况下,LSB和MSB分别为(1,1,0,0)和(1,0,1,0)。
解码器232通过字线WL0~WLn连接到单元阵列231,并且由控制单元236控制。解码器232从存储器控制器220接收地址ADDR,并且产生用于选择字线(例如,WL0)或位线BL的选择信号Yi。页缓冲器233通过位线BL0~BLm连接到单元阵列231。
在写操作期间,页缓冲器233存储从缓冲存储器221加载的写数据。在每个写操作时一页写数据被载入页缓冲器233中。在编程操作期间,所载入的写数据可以被集体编程到选定的页(例如,图示例子中的页0)中。
在读操作期间,页缓冲器233从选定的页接收读数据,并且临时存储该读数据。响应于读使能信号nRE(未示出),存储在页缓冲器233中的读数据被传输到缓冲存储器221或LSB备份存储器222。
位线选择电路234用于响应于选择信号Yi来选择位线。数据缓冲器235是用于在存储器控制器220和闪存230之间传输数据的I/O缓冲器。控制单 元236从存储器控制器220接收控制信号,并且响应于该信号来控制闪存230的内部操作。
在诸如图3所示的本发明的实施例中,存储系统包括存储器控制器内的LSB备份存储器。因此,优选的是,本发明的实施例在对与所存储的LSB数据相应的MSB数据进行编程之前把LSB数据存储到LSB备份存储器222中。之后,对MSB数据进行编程。如果成功地(例如,正确地)将MSB编程到单元阵列231中,则可以擦除存储在LSB备份存储器222中的LSB数据。
另一方面,如果没有成功地将MSB数据编程到单元阵列231中并且在此过程中先前存储在单元阵列231中的LSB数据被损坏,则随后将包括与编程故障相关联的存储单元的存储块作为一个坏块来对待。之后,把存储在LSB备份存储器222中的LSB数据编程到另一个存储块中,然后对存储在缓冲存储器221中的相应MSB进行编程。从而,可以避免在多级数据编程操作期间丢失LSB数据的可能。
图4是根据本发明另一个实施例的存储系统的框图。
参考图4,存储系统300包括主机310、存储器控制器320、第一闪存330和第二闪存340。与图3中的闪存230类似,第一闪存330和第二闪存340可以在一个存储单元中存储多位数据。此外,存储器控制器320、第一闪存330和第二闪存340可以集成到一个存储卡中。
存储器控制器320从主机310接收一个或多个命令,并且根据所接收到的(多个)命令来控制第一闪存330和第二闪存340的全部操作。存储器控制器320产生第一芯片选择信号CS1和第二芯片选择信号CS2。第一芯片选择信号CS1用于选择第一闪存330,第二芯片选择信号CS2用于选择第二闪存340。
存储器控制器320包括第一缓冲存储器321、第二缓冲存储器323、第一LSB备份存储器322和第二LSB备份存储器324。第一缓冲存储器321和第一LSB备份存储器322用于与第一闪存330相关联的写/读操作。同样地,第二缓冲存储器323和第二LSB备份存储器324用于与第二闪存340相关联的写/读操作。
分别由第一芯片选择信号CS1和第二芯片选择信号CS2来选择第一闪存330和第二闪存340。第一闪存330包括单元阵列331和页缓冲器332。 同样地,第二闪存340包括单元阵列341和页缓冲器342。第一和第二闪存330和340的内部结构和操作与上面关于图3的那些描述相同。
下面将给出旨在对第一和第二闪存330和340的单元阵列331和341中的多位数据进行编程的写操作的描述。为了说明的目的,下面的描述假定在与第一闪存330相关联的编程操作之后执行与第二闪存340相关联的编程操作。
首先,第一闪存330通过第一芯片选择信号CS1被使能。LSB数据写到第一闪存330的选定页(以下文中称为页2)中。在向第一闪存330写MSB数据之前,存储器控制器320从页2读取LSB数据,并且将其存储在第一LSB备份存储器322中。之后,利用页缓冲器332,存储器控制器320把第一缓冲存储器321中的MSB数据编程到页2中。
之后,存储器控制器320验证MSB数据已被成功地编程到页2中。如果出现编程故障,也就是说,如果MSB数据没有被成功地编程,则根据需要使用增大的编程电压来重复MSB编程操作(及其相应的编程验证操作)。一旦页2的写数据已被成功地编程(和验证),则存储器控制器320擦除存储在第一LSB备份存储器322中的LSB数据。
另一方面,如果对写数据进行编程的重复尝试失败,则存储器控制器320将包括与编程故障相关联的存储单元的当前存储块确认为一个坏块。之后,存储器控制器320把存储在第一LSB备份存储器322中的LSB数据编程到另一个存储块中的选定页(以下称为页3)中。之后,存储器控制器320把存储在第一缓冲存储器321中的MSB数据编程到页3。
当产生第二芯片选择信号CS2时,第二闪存340被使能。此时,多位数据被编程到第二闪存340中。第二闪存340的编程操作类似于第一闪存330的编程操作。
第二缓冲存储器323和第二LSB备份存储器324用于将多位数据编程到第二闪存340。第二缓冲存储器323执行与第一缓冲存储器321相同的功能,并且在这点上,第二LSB备份存储器324执行与第一LSB备份存储器322相同的功能。
除了图4的构思性图示之外,可使用常规存储器或存储器子系统实现第一缓冲存储器321、第二缓冲存储器323、第一LSB备份存储器322和第二备份存储器324。例如,前述存储器(从321到324)可使用单个的RAM来 实现,该单个RAM被分区并被控制实施为四(4)个独立的存储区域。
由于在MSB编程操作之前必须读取和备份LSB,因此图3和图4的存储系统200和300需要相当长的编程时间以便对多位数据进行编程。对于某些应用来说,这种延长的编程时间可能降低存储系统的整体性能。
此外,存储系统200和300的存储器控制器220和320必须包括一个或多个LSB备份存储器。具体来说,当使用一个单个的存储器控制器来控制多个闪存时,存储器控制器必须包括并说明多个备份存储器,每个备份存储器为各自的闪存备份LSB数据。例如,存储系统300的存储器控制器320具有的LSB备份存储器是存储系统200的存储器控制器220的数量的2倍。
根据本发明下面的附加实施例的存储系统,解决了总体编程速度和扩展LSB备份存储器这些问题。
例如,图5是根据本发明另一个实施例的存储系统的框图。
参照图5,存储系统400包括主机410、存储器控制器420和闪存430。如前面那样,存储器控制器420和闪存430可在存储卡上实现。
存储器控制器420从主机410接收一个或多个命令,并且响应于这些命令来控制闪存430的全部操作(包括写/读操作)。存储器控制器420包括缓冲存储器421、备份存储器422、误差校正码(ECC)电路423、比较器424、故障位置检测器425和修复电路426。
缓冲存储器421用于临时存储将写入闪存430的写数据和从闪存430检索到的读数据。在存储器控制器420的控制下,把存储在缓冲存储器421的数据传输到闪存430或主机410。
当出现MSB编程故障时,使用备份存储器422来存储LSB数据。如前所述,当跟在对相应的LSB数据进行编程之后向闪存430写入MSB数据时,LSB数据可能被损坏。然而,存储系统400可以修复丢失的LSB数据,并且备份存储器422被用于存储修复后的LSB数据。
再次地,这里,缓冲存储器421和备份存储器422可以在单个的存储器或存储器子系统中实现。例如,缓冲存储器421和备份存储器422可以集成到一个RAM中。
ECC电路423用于(一次)校正一个预定位错误。例如,一个4位/512字节ECC电路可以校正每512字节数据中的4位错误。在这种情况下,当在512字节中的4个或更少位中出现错误时,可以校正损坏的数据。
当出现MSB编程故障时,ECC电路423可以用于校正损坏的LSB数据。然而,根据前述对于ECC能力的假设,在多于四位的LSB数据中出现的错误无法由ECC电路423校正。然而,这些尚未校正的LSB数据还可能由本发明的实施例(二次)修复,诸如图5示出的存储器400。
当出现MSB编程故障时,比较器424用于比较“MSB读数据”(即,跟在MSB编程操作之后从闪存430读取的MSB数据)与MSB缓冲数据(即,存储在缓冲存储器421中的MSB数据)。比较器424比较MSB读数据和MSB缓冲数据,并且向故障位置检测器425提供比较结果。
故障位置检测器425从比较器424接收比较结果,并且检测所检测到的位错误的位的位置,以便产生故障位置信息。故障位置检测器425将存储单元的地址存储到与故障位置信息相关联的闪存430中,并且向修复电路426提供故障位置信息。
修复电路426修复相应于故障位置信息的LSB数据。在MSB编程故障期间损坏的LSB数据存储在备份存储器422中。在图示中的这点上,假设损坏的LSB数据包括不能由ECC电路423校正的数据。参考图6和7,将更加详细地描述比较器424、故障位置检测器425和修复电路426之间的操作关系。
但是,返回图5,闪存430包括单元阵列431、解码器432、页缓冲器433、位线选择电路434、数据缓冲器435和控制单元436。闪存430的结构和操作与图3所示的闪存230类似。
图5中,用短线表示共享字线WL0的页0。页0的预定单元(用黑色表示)表示标识单元。标识单元用于指示页0的LSB和/或MSB是否已被编程。
当出现MSB编程故障时,存储系统400比较MSB读数据和MSB缓冲数据,以便确定故障位置,并且修复与故障位置相关联的LSB数据。仅当出现MSB编程故障时,存储系统400才备份LSB数据并修复损坏的LSB数据。这样,存储系统400不必总是在MSB编程操作之前备份LSB数据。与诸如在存储系统200和300中所示的实施例相比,对于前述实施例的这种适应性调整,显著地减少了总的编程时间。此外,通过由ECC电路提供的功能和MSB比较操作功能的结合使用,存储系统400可完全修复损坏的LSB数据。该能力改善了存储在闪存430中的数据的可靠性。
将确认为包括与编程故障相关联的存储单元的存储块作为坏块来对待,并且把存储在备份存储器422中的LSB数据编程到另一存储块中。之后,把存储在缓冲存储器421中的相应的MSB数据编程到另一存储块。这种对LSB和MSB元件中的写数据重新编程的方法与图3和4所示的实施例有关重新编程操作的描述类似。
图6是电压分布图,它进一步说明了图5中所示的存储系统的多位编程操作。图6(a)说明了LSB编程操作,而图6(b)说明了MSB编程操作。关于图6(a)和6(b),示出了与LSB/MSB编程操作相关联的标识单元的状态。在图6中,横坐标轴代表存储单元的阈值电压,而纵坐标轴代表存储单元的分布。附图标记VR1、VR2和VR3代表用于确定各个存储单元的电压电平的区别电压。
参考图6(a),阈值电压低于VR1的存储单元存储LSB“1”,而阈值电压高于VR1的存储单元存储LSB“0”。LSB“1”指示擦除状态,而LSB“0”指示编程状态。
指示LSB编程状态的信息存储在图5所示的标识单元中。当标识单元存储“1”时,如图6(a)所示,指示对页0的LSB的编程。另一方面,当标识单元存储“0”时,如图6(b)所示,指示对页0的LSB和MSB二者的编程。
当正常执行MSB编程操作时,具有值为“1”的LSB的存储单元根据它的MSB将被存储为“11”或“01”。具有值为“0”的LSB的存储单元根据它的MSB将被存储为“10”或“00”。但是,在图6所示的编程方法中,在MSB编程故障期间可能出现LSB发生变化的情况。
下面将描述这样一种情况,其中,把值为“0”的MSB编程到先前已编程了值为“1”的LSB的存储单元。首先假设成功地执行了MSB编程操作,并且之后,MLC存储了值为“01”的2位数据。但是,接着,假设出现MSB编程故障,并且之后,MLC存储了值为“11”的数据,而不是期望值“01”。在第二种假设的情况下,由于MSB编程故障造成的结果,LSB没有改变。
接着,将描述这样的情况,其中,把值为“1”或“0”的MSB编程到先前已编程了值为“0”的LSB的存储单元中。图6(a)中示出了该存储单元状态的阈值电压分布,其对应于图6(b)中的具有状态“01”或“10”的存储单元的阈值电压分布。
例如,图6(a)中具有阈值电压A的存储单元对应于图6(b)中具有阈值电压A’的存储单元。具有阈值电压A’的存储单元存储数据“01”。同样地,图6(a)中具有阈值电压B的存储单元对应于图6(b)中具有阈值电压B’的存储单元。具有阈值电压B’的存储单元存储数据“10”。
当值为“1”的MSB被成功地编程到具有值为“0”的LSB的存储单元时,存储单元存储数据“10”。同样地,当值为“0”的MSB被成功地编程到具有值为“0”的LSB的存储单元时,存储单元存储数据“00”。
当对值为“1”的MSB进行编程时,也就是说,当对数据“10”进行编程时,具有值为“0”的LSB的存储单元的阈值电压仅需要稍微向上移动。然而,在把MSB编程为值“1”的过程中可能出现编程故障。这些错误可能有许多原因,诸如有缺陷的存储单元等。
在这种情况下,具有阈值电压A的存储单元没有被编程为状态“10”,而是保持在其状态“01”上。在这种情况下,LSB的值由“0”变为“1”。也就是说,在MSB编程操作过程中,先前被编程为值为“0”的LSB变为值“1”。
当出现编程错误时,具有阈值电压B的存储单元没有被编程为状态“00”,而是保持状态“10”。在这种情况下,LSB值保持为“0”。也就是说,即使当出现MSB编程错误时,具有阈值电压B的存储单元也没有丢失其正确的LSB值。
如上所述,存储系统400中的LSB可能由于MSB的编程故障而被改变。也就是说,由于MSB的编程故障,图6中的具有阈值电压A的存储单元可以移至阈值电压A’。在这种情况下,LSB由“0”变为“1”。在其它情况下,即使出现MSB编程故障时,LSB也不会改变。下面将描述考虑前述内容的存储系统的编程方法。
图7是示出了图5中所示的存储系统的错误位置检测操作和LSB修复操作的构思图。图7(a)示出了要被编程的原始数据,而图7(b)示出了编程到选定页(即,页0)的实际(错误)数据。
图7(b)中,A1、A2、...是指示在选定页中的各个存储单元的地址位置的地址值。如图7(a)和7(b)所示,假定具有地址值A2和An的存储单元中出现编程故障。也就是说,通过A2和An确认故障位置。由于这种编程故障,2位数据“01”被编程到这些存储单元,而不是预期的数据值“10”。
图7(c)和7(d)进一步说明了比较器424和故障位置检测器425的操作。图7(c)示出了来自闪存430的MSB读数据,而图7(d)示出了存储在缓冲存储器421中的MSB缓冲数据。比较器424基于逐位的方式比较MSB读数据和MSB缓冲数据。故障位置检测器425检测与比较结果有关的故障位置(例如,A2和An)。
图7(e)示出了存储在备份存储器422中的LSB备份数据,而图7(f)示出了修复后的LSB数据。修复电路426从故障位置检测器425接收故障位置A2和An,并且把在故障位置A2和An的LSB数据从“1”变为“0”。结果,修复了损坏的LSB数据。此外,因为MSB数据存储在缓冲存储器421中,因而与编程故障相关联的所有多位数据都可以被修复。
再参考图5,仅当出现MSB编程故障时,存储系统400才备份LSB数据和修复损坏的LSB数据。因此,在相应的MSB编程操作之前,存储系统400不需要总是备份LSB数据。这样,用于编程操作的总时间可以大大缩短。此外,通过使用结合ECC电路和MSB比较操作的功能,存储系统400可以完全修复损坏的LSB数据,从而提供改善的数据可靠性。
图8是根据本发明另一个实施例的存储系统的框图。在图8中,存储系统500包括主机510、存储器控制器520、第一闪存530和第二闪存540。
存储器控制器520从主机510接收一个和多个命令,并且响应于这些命令来控制第一和第二闪存530和540的全部操作。存储器控制器520包括缓冲存储器521、备份存储器522、ECC电路523、比较器524、故障位置检测器525和修复电路526。缓冲存储器521包括第一缓冲存储器52a和第二缓冲存储器52b。第一缓冲存储器52a用于与第一闪存530相关联的写/读操作。第二缓冲存储器52b用于与第二闪存540相关联的写/读操作。
当在把MSB数据编程到先前已编程LSB数据的第一和第二闪存530和540的过程中出现故障时,用备份存储器522来备份LSB数据。图4的存储系统300包括两个备份存储器(即,第一和第二LSB备份存储器322和324),而图8的存储系统500仅包括一个备份存储器(即,备份存储器522)。
图4的存储系统300总是在每个MSB编程操作之前备份LSB数据,因此,需要与每个闪存相关联的LSB备份存储器。然而,图8的存储系统500仅当出现MSB编程故障时才备份LSB数据,并且由于第一和第二闪存530和540同时发生编程故障的可能性很低,因而仅需要一个备份存储器。
根据图8中的存储系统500,可以减少备份存储器的数目,同时还完全修复在其它系统中可能由于编程故障而造成丢失的LSB数据。
如前所述,根据本发明的实施例的存储系统包括与存储器控制器相关联的备份存储器,从而可以避免在相应的(以及随后的)MSB编程操作过程中丢失LSB数据。然而,可替换地或额外地,存储LSB数据的备份存储器可以与闪存相关联。下面将描述一种包括在闪存中备份LSB数据的存储器的存储系统。
图9是根据本发明另一个实施例的存储系统的框图。
参考图9,存储系统600包括主机610、存储器控制器620和闪存630。如前所述,存储器控制器620和闪存630可以被包含在存储卡上。
存储器控制器620从主机610接收数据和写命令,并且控制闪存630把数据写入单元阵列631。进而,响应于所接收到的写命令,存储器控制器620控制闪存630,以便读取存储在单元阵列631中的数据。
缓冲存储器621临时存储读和写数据。在存储器控制器620的控制下,缓冲存储器621向主机610或闪存630传输临时存储的数据。
闪存630包括单元阵列631、解码器632、页缓冲器633、位线选择电路634、数据缓冲器635、控制单元636和LSB备份电路637。除了LSB备份电路637以外,闪存630的结构和操作与关于图3的存储系统200的描述相同。
然而,与图3的存储系统200不同的是,存储系统600包括与闪存630相关联的LSB备份电路637。LSB备份电路637用于把多位数据编程到闪存630。在图示的例子中,LSB备份电路637连接到页缓冲器633。LSB备份电路637通过页缓冲器633接收LSB数据且存储接收到的LSB数据。
如前所述,在写MSB数据之前,首先将LSB数据写入闪存630,而这样可能损坏LSB数据。为了防止丢失LSB数据,LSB备份电路637被用于在MSB写操作之前备份写入闪存630的LSB数据。在一个实施例中,LSB备份电路637存储一页LSB数据。
图10是根据本发明另一个实施例的存储系统的框图。参考图10,存储系统700包括主机710、存储器控制器720和闪存730。存储器控制器720和闪存730可在存储卡上实现。
除了页缓冲器733的配置之外,存储系统700的结构和操作与图9显示 的存储系统600类似。
页缓冲器733存储从缓冲存储器721载入的数据。可把一页数据载入页缓冲器733中,然后载入的数据可在编程操作过程中集中编程到选定页中。在读操作中,页缓冲器733从选定页读取数据并且临时存储作为结果的读数据。响应于读使能信号nRE(未示出),将存储在页缓冲器733中的数据传输到缓冲存储器721。
页缓冲器733包括适用于备份LSB数据的过程的LSB备份电路737。为了防止在MSB编程操作过程中丢失LSB数据,LSB备份电路737被用于在MSB写操作之前备份LSB数据。
图11是图10中所示的页缓冲器737一种可能的实施方式的框图。
参考图11,页缓冲器737包括位线选择器810、感测单元820、锁存器830和LSB备份电路737。
在读/写操作过程中,位线选择器810根据位线选择电路734的输出,选择连接到预定位线BL的单元(参见图10)。传感单元820用于读取存储在由位线选择器810选取的单元中的数据。
锁存器830存储通过数据线DL载入到数据缓冲器735中的数据(参见图10)。之后,在编程操作过程中,存储在锁存器830中的数据被编程到通过位线选择的存储单元中。如果锁存的数据为“1”,则禁止编程操作,但是如果锁存的数据为“0”,则将其编程到存储单元。
在读操作中,锁存器830临时存储由传感单元820从通过位线选择器810选择的存储单元中感测到的数据。响应于读使能信号,锁存器830向数据缓冲器735传输所存储的数据。
在MSB写操作前,LSB备份电路737备份先前写入存储单元阵列731的LSB数据(参见图10)。在编程验证操作期间改变存储在锁存器830中的数据。然而,在编程验证操作期间不会改变存储在LSB备份电路737中的LSB数据。
下面将基于假定LSB数据已经被写到单元阵列731来描述页缓冲器733的操作。
在MSB写操作前,位线选择器810用于选择MSB数据将被写入的存储单元。传感单元820从选定的存储单元中读取LSB并且把所读取的LSB数据存储到LSB备份电路737中。
之后,从数据缓冲器735载入的MSB被存储在锁存器830中。存储在锁存器839中的MSB被编程到选定的存储单元中。如果MSB被正常地编程,则擦除存储在LSB备份电路737中的LSB数据。然而,如果出现MSB编程故障,则把存储在LSB备份电路737中的LSB数据写入另一个存储单元中,然后写入存储在锁存器830中的MSB。
如上所述,根据本发明实施例的各种存储系统包括一个或多个与闪存相关联的LSB备份存储器。这些配置避免了由于随后的MSB编程故障而造成的LSB数据丢失。
上面所公开的主题应被视为是说明性的,而不是限制性的,并且,所附权利要求用于涵盖所有落入由随后的权利要求所定义的本发明的范围内的修改、改进和其它实施例。
Claims (15)
1.一种存储系统,包括:
闪存,其顺序存储第一位数据和第二位数据;以及
存储器控制器,其包括临时存储第一位数据和第二位数据的缓冲存储器,以及在与存储第二位数据相关联的操作期间存储第一位数据的备份存储器,
其中,当检测到与存储第二位数据相关联的操作故障时,所述备份存储器将第一位数据重新编程到所述闪存中,
其中,所述闪存包括临时存储从所述缓冲存储器载入的数据的页缓冲器,并且所述备份存储器与所述页缓冲器相关联。
2.如权利要求1所述的存储系统,其中,在开始与存储第二位数据相关联的操作之前,将第一位数据存储在所述备份存储器中。
3.如权利要求1所述的存储系统,其中,所述备份存储器包括锁存器或RAM。
4.如权利要求2所述的存储系统,其中,所述存储器控制器将存储在所述备份存储器中的第一位数据重新编程到所述闪存内的与先前存储第一位数据的存储块不同的另一个存储块中。
5.如权利要求1所述的存储系统,其中,所述备份存储器被独立地提供并且连接到所述页缓冲器。
6.一种存储系统,包括:
主机,其通信发送原始数据和命令;
闪存,其包括页缓冲器,并且适用于把与原始数据相关联的第一位数据和第二位数据顺序存储到多级存储单元的阵列中;以及
存储器控制器,其响应所述命令并且包括:
缓冲存储器,其临时存储第一位数据和第二位数据,并且将第一位数据和第二位数据传输到所述页缓冲器以及传输来自所述页缓冲器的第一位数据和第二位数据;
比较器,跟在与存储第二位数据相关联的编程之后,该比较器比较实际存储在所述闪存中的第二位数据与存储在所述缓冲存储器中的第二位数据,并且产生比较结果;
故障位置检测器,其响应于所述比较结果而产生故障位置信息;
ECC电路,其在执行与存储第二位数据相关联的操作之后,对错误的第一位数据执行一次修复;
修复电路,对所述故障位置信息相关的错误的第一位数据执行二次修复;以及
备份存储器,在与存储第二位数据相关联的操作期间存储第一位数据。
7.如权利要求6所述的存储系统,其中,所述存储器控制器中,所述备份存储器与缓冲存储器相关联。
8.如权利要求7所述的存储系统,其中,所述备份存储器和所述缓冲存储器在单个RAM中实现。
9.如权利要求6所述的存储系统,其中,所述备份存储器与所述闪存中的页缓冲器相关联。
10.如权利要求9所述的存储系统,其中,所述备份存储器与所述页缓冲器独立地提供并且所述备份存储器连接到所述页缓冲器。
11.一种用于包括存储原始数据的闪存和相关联的存储器控制器的存储系统的编程方法,该方法包括:
将与原始数据相关联的第一和第二位数据传输到所述存储器控制器中的缓冲存储器;
对所述闪存中的第一位数据进行编程;
在对所述闪存中的第二位数据进行编程时,将第一位数据存储在备份存储器中;以及
当检测到与对第二位数据进行编程相关联的故障时,通过从所述备份存储器中读取所存储的第一位数据来对所述闪存中的第一位数据重新编程,
其中,所述闪存包括临时存储从所述缓冲存储器载入的数据的页缓冲器,并且所述备份存储器与所述闪存中的页缓冲器相关联。
12.如权利要求11所述的编程方法,其中,所述备份存储器与所述存储器控制器中的缓冲存储器相关联。
13.一种用于包括存储原始数据的闪存和相关联的存储器控制器的存储系统的编程方法,该方法包括:
将与原始数据相关联的第一和第二位数据传输到所述存储器控制器中的缓冲存储器;
对所述闪存中的第一位数据进行编程;
在对所述闪存中的第二位数据进行编程时,将第一位数据存储到备份存储器中;
检测与对所述闪存中的第二位数据进行编程相关联的故障;
使用误差校正码方案对存储在所述闪存中的第一位数据进行校正;
比较实际存储的第二位数据和与原始数据相关联的第二位数据,并且响应于该比较,修复第一位数据。
14.如权利要求13所述的编程方法,其中,所述备份存储器与所述存储器控制器中的缓冲存储器相关联。
15.如权利要求13所述的编程方法,其中,所述闪存包括临时存储从所述缓冲存储器载入的数据的页缓冲器,并且所述备份存储器与所述闪存中的页缓冲器相关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR737/07 | 2007-01-03 | ||
KR1020070000737A KR100799688B1 (ko) | 2007-01-03 | 2007-01-03 | 백업 회로를 갖는 메모리 시스템 및 그것의 프로그램 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101246738A CN101246738A (zh) | 2008-08-20 |
CN101246738B true CN101246738B (zh) | 2013-05-22 |
Family
ID=39341953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100856740A Active CN101246738B (zh) | 2007-01-03 | 2008-01-03 | 具有备份电路的存储系统及编程方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7594157B2 (zh) |
KR (1) | KR100799688B1 (zh) |
CN (1) | CN101246738B (zh) |
DE (1) | DE102008003944B4 (zh) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027194B2 (en) | 1988-06-13 | 2011-09-27 | Samsung Electronics Co., Ltd. | Memory system and method of accessing a semiconductor memory device |
KR101495795B1 (ko) | 2008-06-13 | 2015-02-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US7675149B1 (en) * | 2006-09-12 | 2010-03-09 | Maxim Integrated Products, Inc. | Check valve package for Pb-free, single piece electronic modules |
KR100769770B1 (ko) * | 2006-09-29 | 2007-10-23 | 주식회사 하이닉스반도체 | 메모리 장치의 페이지 버퍼 회로 및 프로그램 방법 |
KR100877609B1 (ko) * | 2007-01-29 | 2009-01-09 | 삼성전자주식회사 | 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법 |
KR100871700B1 (ko) * | 2007-02-13 | 2008-12-08 | 삼성전자주식회사 | 불휘발성 메모리 장치에서 전하 손실에 기인한 오류 데이터정정 방법 |
KR100823175B1 (ko) * | 2007-02-27 | 2008-04-18 | 삼성전자주식회사 | 프로그램 성능을 향상시킬 수 있는 플래시 메모리 장치 및그것을 포함한 메모리 시스템 |
KR100889781B1 (ko) | 2007-04-30 | 2009-03-20 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 |
KR100873825B1 (ko) * | 2007-05-02 | 2008-12-15 | 삼성전자주식회사 | 비휘발성 메모리의 멀티 비트 프로그래밍 장치 및 방법 |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US9152496B2 (en) * | 2007-12-21 | 2015-10-06 | Cypress Semiconductor Corporation | High performance flash channel interface |
KR100933852B1 (ko) * | 2007-12-28 | 2009-12-24 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자 및 그 동작 방법 |
TWI404076B (zh) * | 2008-01-07 | 2013-08-01 | Powerchip Technology Corp | 記憶體裝置以及資料讀取方法 |
KR101432108B1 (ko) * | 2008-06-03 | 2014-08-21 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그것의 구동 방법 |
KR101541736B1 (ko) | 2008-09-22 | 2015-08-04 | 삼성전자주식회사 | 멀티-레벨 셀 플래시 메모리 장치에서의 lsb 페이지 복구 방법 |
CN101833995B (zh) * | 2009-03-11 | 2017-06-20 | 深圳市朗科科技股份有限公司 | 闪存介质的编程方法 |
KR20100107609A (ko) * | 2009-03-26 | 2010-10-06 | 삼성전자주식회사 | 저항성 메모리 장치, 이를 포함하는 메모리 시스템 및 저항성 메모리 장치의 기입 방법 |
US8151139B1 (en) * | 2009-03-27 | 2012-04-03 | Symantec Corporation | Preventing data loss from restore overwrites |
US8832353B2 (en) * | 2009-04-07 | 2014-09-09 | Sandisk Technologies Inc. | Host stop-transmission handling |
CN101872644A (zh) * | 2009-04-24 | 2010-10-27 | 威刚科技(苏州)有限公司 | 电子存储装置及其存储方法 |
CN101908368A (zh) * | 2009-06-04 | 2010-12-08 | 威刚科技(苏州)有限公司 | 电子存储装置及其操作方法 |
US8307241B2 (en) * | 2009-06-16 | 2012-11-06 | Sandisk Technologies Inc. | Data recovery in multi-level cell nonvolatile memory |
JP2011048725A (ja) * | 2009-08-28 | 2011-03-10 | Panasonic Corp | 不揮発性記憶装置および不揮発性メモリコントローラ |
JP5556189B2 (ja) * | 2010-01-20 | 2014-07-23 | ソニー株式会社 | 記憶装置およびデータの書込み方法 |
KR20110099570A (ko) * | 2010-03-02 | 2011-09-08 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템 |
KR101085724B1 (ko) * | 2010-05-10 | 2011-11-21 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 그 동작 방법 |
US8880778B2 (en) * | 2010-05-13 | 2014-11-04 | Micron Technology, Inc. | Memory buffer having accessible information after a program-fail |
KR101205628B1 (ko) * | 2010-08-04 | 2012-11-27 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이의 독출 방법 |
JP2012069180A (ja) * | 2010-09-21 | 2012-04-05 | Toshiba Corp | 半導体記憶装置 |
US8738844B2 (en) * | 2011-04-14 | 2014-05-27 | Macronix International Co., Ltd. | Program method, data recovery method, and flash memory using the same |
KR101903091B1 (ko) * | 2011-10-05 | 2018-10-02 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법 |
US20130205066A1 (en) * | 2012-02-03 | 2013-08-08 | Sandisk Technologies Inc. | Enhanced write abort management in flash memory |
KR101917192B1 (ko) | 2012-03-12 | 2018-11-12 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 읽기 방법 |
US20140219021A1 (en) * | 2013-02-07 | 2014-08-07 | Seagate Technology Llc | Data protection for unexpected power loss |
US9177638B2 (en) | 2012-11-13 | 2015-11-03 | Western Digital Technologies, Inc. | Methods and devices for avoiding lower page corruption in data storage devices |
KR101994672B1 (ko) | 2012-12-04 | 2019-07-01 | 삼성전자 주식회사 | 저장 장치 및 저장 장치의 동작 방법 |
KR102002826B1 (ko) * | 2012-12-04 | 2019-07-23 | 삼성전자 주식회사 | 저장 장치, 플래시 메모리 및 저장 장치의 동작 방법 |
US9032271B2 (en) | 2012-12-07 | 2015-05-12 | Western Digital Technologies, Inc. | System and method for lower page data recovery in a solid state drive |
KR102002901B1 (ko) * | 2013-01-28 | 2019-07-23 | 삼성전자 주식회사 | 메모리 장치, 메모리 시스템 및 이의 제어 방법 |
US9037902B2 (en) * | 2013-03-15 | 2015-05-19 | Sandisk Technologies Inc. | Flash memory techniques for recovering from write interrupt resulting from voltage fault |
KR102094334B1 (ko) * | 2013-03-15 | 2020-03-27 | 삼성전자주식회사 | 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법 |
KR102102171B1 (ko) * | 2013-04-05 | 2020-05-29 | 삼성전자 주식회사 | 멀티 레벨 셀 메모리 시스템 |
KR101862379B1 (ko) * | 2013-04-19 | 2018-07-05 | 삼성전자주식회사 | Ecc 동작과 리던던시 리페어 동작을 공유하는 메모리 장치 |
CN104217762B (zh) * | 2013-05-31 | 2017-11-24 | 慧荣科技股份有限公司 | 数据储存装置及其错误校正方法以及数据读取方法 |
JP2015022516A (ja) * | 2013-07-19 | 2015-02-02 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
KR102088403B1 (ko) * | 2013-08-08 | 2020-03-13 | 삼성전자 주식회사 | 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법 |
US9342401B2 (en) * | 2013-09-16 | 2016-05-17 | Sandisk Technologies Inc. | Selective in-situ retouching of data in nonvolatile memory |
US9135113B2 (en) * | 2013-10-08 | 2015-09-15 | Apple Inc. | Recovery from programming failure in non-volatile memory |
US9043537B1 (en) | 2013-11-21 | 2015-05-26 | Sandisk Technologies Inc. | Update block programming order |
US9477423B2 (en) | 2013-11-26 | 2016-10-25 | Seagate Technology Llc | Eliminating or reducing programming errors when programming flash memory cells |
US9244631B2 (en) | 2013-12-06 | 2016-01-26 | Sandisk Technologies Inc. | Lower page only host burst writes |
KR102226367B1 (ko) * | 2014-01-02 | 2021-03-12 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것을 포함하는 불휘발성 메모리 시스템 |
US8902652B1 (en) * | 2014-05-13 | 2014-12-02 | Sandisk Technologies Inc. | Systems and methods for lower page writes |
KR102293169B1 (ko) * | 2014-06-25 | 2021-08-26 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
US10388396B2 (en) * | 2014-08-25 | 2019-08-20 | Rambus Inc. | Buffer circuit with adaptive repair capability |
KR102238706B1 (ko) * | 2014-11-28 | 2021-04-09 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
JP2016143085A (ja) * | 2015-01-29 | 2016-08-08 | 株式会社東芝 | 装置及び方法 |
KR20160133283A (ko) | 2015-05-12 | 2016-11-22 | 삼성전자주식회사 | 비휘발성 메모리 저장장치를 운영하는 방법 및 이를 구현한 전자장치 |
KR102319402B1 (ko) * | 2015-06-30 | 2021-11-01 | 에스케이하이닉스 주식회사 | 복수의 채널들을 통해 반도체 메모리 장치들을 제어하는 메모리 시스템 |
CN105304144B (zh) * | 2015-10-30 | 2018-05-15 | 中国科学院微电子研究所 | 存储器错误检测方法及装置 |
KR102405054B1 (ko) * | 2015-11-27 | 2022-06-08 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
CN105719702A (zh) * | 2016-01-26 | 2016-06-29 | 中国科学院微电子研究所 | 改进型存储器错误检测方法及装置 |
CN108154900B (zh) * | 2017-11-29 | 2020-12-18 | 深圳忆联信息系统有限公司 | 一种缓解mlc闪存写干扰问题的方法 |
CN108109665A (zh) * | 2018-01-12 | 2018-06-01 | 成都信息工程大学 | 一种存储器操作方法 |
EP3909048A4 (en) * | 2019-05-17 | 2022-08-17 | Yangtze Memory Technologies Co., Ltd. | PROGRAM CACHE OPERATION OF A THREE-DIMENSIONAL STORAGE DEVICE WITH STATIC RANDOM ACCESS MEMORY |
EP3909075A4 (en) | 2019-05-17 | 2022-09-07 | Yangtze Memory Technologies Co., Ltd. | THREE-DIMENSIONAL STATIC RAM MEMORY DEVICE |
CN112667446B (zh) * | 2021-01-13 | 2022-11-08 | 珠海妙存科技有限公司 | Mlc nand的数据备份方法、装置及闪存系统 |
CN113692623A (zh) * | 2021-06-30 | 2021-11-23 | 长江存储科技有限责任公司 | 用于三维nand存储器的数据保护 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6937510B2 (en) * | 2000-03-08 | 2005-08-30 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0617363B1 (en) | 1989-04-13 | 2000-01-26 | SanDisk Corporation | Defective cell substitution in EEprom array |
US5663901A (en) | 1991-04-11 | 1997-09-02 | Sandisk Corporation | Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems |
TW261687B (zh) | 1991-11-26 | 1995-11-01 | Hitachi Seisakusyo Kk | |
US6347051B2 (en) | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
KR100308173B1 (ko) | 1996-02-29 | 2001-11-02 | 가나이 쓰도무 | 부분불량메모리를탑재한반도체기억장치 |
US6076137A (en) * | 1997-12-11 | 2000-06-13 | Lexar Media, Inc. | Method and apparatus for storing location identification information within non-volatile memory devices |
JP3883687B2 (ja) | 1998-02-16 | 2007-02-21 | 株式会社ルネサステクノロジ | 半導体装置、メモリカード及びデータ処理システム |
JP2000298992A (ja) | 1999-04-13 | 2000-10-24 | Hitachi Ltd | 多値記憶不揮発性半導体メモリの制御装置 |
JP4282197B2 (ja) | 2000-01-24 | 2009-06-17 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
JP4323707B2 (ja) * | 2000-10-25 | 2009-09-02 | 富士通マイクロエレクトロニクス株式会社 | フラッシュメモリの欠陥管理方法 |
JP4437519B2 (ja) * | 2001-08-23 | 2010-03-24 | スパンション エルエルシー | 多値セルメモリ用のメモリコントローラ |
KR100466980B1 (ko) | 2002-01-15 | 2005-01-24 | 삼성전자주식회사 | 낸드 플래시 메모리 장치 |
EP1355234B1 (en) | 2002-04-15 | 2016-06-29 | Micron Technology, Inc. | Use of an error correction circuit in program and erase verify procedures |
ITMI20022669A1 (it) * | 2002-12-18 | 2004-06-19 | Simicroelectronics S R L | Struttura e metodo di rilevamento errori in un dispositivo |
KR100526186B1 (ko) * | 2003-04-04 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 오류블록 관리방법 및 장치 |
KR100546348B1 (ko) * | 2003-07-23 | 2006-01-26 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 데이터 저장 방법 |
KR100630535B1 (ko) | 2004-03-23 | 2006-09-29 | 에스티마이크로일렉트로닉스 엔.브이. | 멀티 레벨 낸드 플래시 메모리 셀의 독출 방법 및 회로 |
-
2007
- 2007-01-03 KR KR1020070000737A patent/KR100799688B1/ko active IP Right Grant
- 2007-03-15 US US11/724,266 patent/US7594157B2/en active Active
-
2008
- 2008-01-03 DE DE102008003944.6A patent/DE102008003944B4/de active Active
- 2008-01-03 CN CN2008100856740A patent/CN101246738B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6937510B2 (en) * | 2000-03-08 | 2005-08-30 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory |
Also Published As
Publication number | Publication date |
---|---|
CN101246738A (zh) | 2008-08-20 |
DE102008003944A1 (de) | 2008-07-24 |
DE102008003944B4 (de) | 2022-06-23 |
KR100799688B1 (ko) | 2008-02-01 |
US7594157B2 (en) | 2009-09-22 |
US20080162789A1 (en) | 2008-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101246738B (zh) | 具有备份电路的存储系统及编程方法 | |
US11150808B2 (en) | Flash memory system | |
US9159441B2 (en) | Method of operating memory device assuring reliability and memory system | |
KR100850515B1 (ko) | 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법 | |
CN103853582B (zh) | 闪存更新方法 | |
CN101202109B (zh) | 非易失性存储系统和相关编程方法 | |
JP6312698B2 (ja) | ソリッドステートドライブ内の下位ページデータ復旧を行うシステム及び方法 | |
US7554859B2 (en) | Nonvolatile memory system and associated programming methods | |
CN100437827C (zh) | 每单元使用多个状态位以处理写操作期间的电源故障 | |
CN102132354B (zh) | 闪存中的数据的快速低功率读取 | |
KR100823170B1 (ko) | 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 | |
CN102403039A (zh) | 半导体存储器件及其操作方法 | |
US20100241929A1 (en) | Semiconductor Memory Device for Performing Additional ECC Correction According to Cell Pattern and Electronic System Including the Same | |
US7543104B2 (en) | Non-volatile semiconductor device for use in memory card and memory system | |
CN103971724A (zh) | 存储器、存储控制器、存储系统、及其操作方法 | |
US8270219B2 (en) | Method of operating nonvolatile memory device capable of reading two planes | |
US9507710B2 (en) | Command execution using existing address information | |
CN110083305A (zh) | 存储器系统及其操作方法 | |
US20110238889A1 (en) | Semiconductor memory device from which data can be read at low power | |
US12073904B2 (en) | Storage controller including parity management module, storage device including the same, and operating method of storage device | |
US20120159280A1 (en) | Method for controlling nonvolatile memory apparatus | |
CN106098096A (zh) | 数据储存设备及其操作方法 | |
US12062394B2 (en) | Performing data integrity checks to identify defective wordlines | |
US10186324B2 (en) | Nonvolatile memory device, memory system including thereof and operating method thereof |
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 |