CN1161791C - 应用交叉存取法校正多级单元存储器的方法和装置 - Google Patents
应用交叉存取法校正多级单元存储器的方法和装置 Download PDFInfo
- Publication number
- CN1161791C CN1161791C CNB97199384XA CN97199384A CN1161791C CN 1161791 C CN1161791 C CN 1161791C CN B97199384X A CNB97199384X A CN B97199384XA CN 97199384 A CN97199384 A CN 97199384A CN 1161791 C CN1161791 C CN 1161791C
- Authority
- CN
- China
- Prior art keywords
- data
- error
- data word
- access device
- error correction
- 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.)
- Expired - Fee Related
Links
Images
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/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
-
- 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
-
- 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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1042—Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
-
- 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 Hardware Design (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)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
这里描述了用于校正多级单元存储阵列(250)中的误差的方法和装置。多级单元存储阵列(250)由多个多级单元组成,每个多级单元能够存储两位或更多位数据。由一个多级单元存储器件(204)接收多个数据位(332)。将多个位(332)分类成两个或多个数据字(334、336)(330)。为两个或多个数据字(334、336)中的每一个产生误差校正代码(364、366)。形成一个存储单元位模式(390),由来自两个或多个数据字(334、336)中的每一个的一位组成。将一个与存储单元位模式相关联的电荷状态存储在一个多级单元中。
Description
发明领域
本发明涉及存储器件领域。更特别地,本发明涉及校正在多级单元存储器件中的误差。
发明背景
多级单元存储器由多级单元组成,每一单元能够存储多个电荷状态、或级。每一电荷状态与一个存储单元的位模式相联系。
图1显示了可以被存储在一个现有技术的多级单元中的电荷状态的表示形式。图1显示了一个能够存储四个电荷状态的一多级单元:级3-0的多级单元。电荷状态按从级3向级0所存储的电荷量递减。
在一个多级单元存储阵列中,保持一给定电荷状态的多级单元将具有在一个与该电荷状态相联系的电压范围内的电压级的分布。多个电压区间将电荷状态彼此分开。电压区间V23将级2与级3分开。电压区间V12将级1与级2分开,而电压区间V01将级0与级1分开。
在确定存储在多级单元中的电荷量的过程中,将多级单元中保持的电压与多个参考电压进行比较。Vref2落入电压区间V23内,用于将级3与级2分开。因此,例如,如果一个多级单元将电压保持在Vref2之上,则它处于级3的电荷状态。Vref1落入电压区间V12内,用于将级2与级1分开。如果多级单元将电压级保持为高于Vref1但低于Vref2,则多级单元保持在级2的电荷状态。Vref0落入电压区间V01内,用于将级1与级0分开。
每个电荷状态具有一个相关的存储单元位模式。对于一种实施形式,存储单元位模式“00”与级3相关,存储单元位模式“10”与级2相关,存储单元位模式“01”与级1相关,存储单元位模式“11”与级0相关。
多级单元存储器能够存储两位或更多位数据,这取决于它能存储的电荷状态的数目。例如,一个能存储四个电荷状态的多级单元存储器能存储两位数据;一个能存储八个电荷状态的多级单元存储器能存储三位数据;一个能存储十六个电荷状态的多级单元存储器能存储四位数据。对于每个n位多级单元存储器,可以应用各种存储单元位模式与每个不同的电荷状态相联系。
在美国专利No.5,450,363中描述了多级单元存储器的一个例子,该专利的题目为“多级单元存储器系统的灰度编码”,是由Christopherson等申请的,该专利已授权给本申请的共同受让人。该专利描述了多级单元存储器的一种实施形式。多级单元存储器可以用在动态随机存取存储器(DRAM)和各种类型的只读存储器(ROM)中,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、和闪速可擦除可编程只读存储器(闪速EPROM)
图2显示了现有技术中的处理器100和多级单元存储器件104。处理器100与总线102和存储器件104相连。存储器件104包含一个接口控制器105和一个多级单元存储阵列150。处理器100通过总线102与接口控制器105相连。处理器100还通过总线102与多级单元存储器阵列150相连。接口控制器105提供必需的操作来控制多级单元存储阵列150。对于一个实施例,接口控制器105和多级单元存储阵列150位于一单个集成电路模片上。
误差校正代码
在现有技术中,通过一个编码器来处理存储在存储阵列中的数据字,以产生误差校正代码。将误差校正代码进行存储,以便可以将它们与其相联数据字一起检索出来。当从存储阵列检索出数据字时,随着数据字从存储阵列的读出,误差解码电路应用先前保存的与该数据字相联的误差校正代码来定位、检测和/或校正在数据字中发现的误差,这在现有技术中是公知的。
存在着不同类型的误差校正代码。一种常用的误差校正代码是汉明码。汉明码对于校正数据字中的单个位误差是很有用的。汉明码还可以检测数据字中的双位误差,但它不能校正双位误差。
一些误差校正代码能够确定数据字的哪一位是不正确的。一些误差校正代码能够校正多位误差。另一方面,检测代码检测是否出现误差,但不能校正误差。一般来说,定位、检测和校正误差的要求越严格,需要误差校正代码的位越多。但是,误差校正代码的每一位都增加了存储阵列的尺寸,从而增加了成本。因此,希望能使用于校正存储器件中的误差的误差校正代码的位数变为最小。
发明概述
这里描述了一种用于校正多级单元存储器中的误差的方法和装置。多级单元存储器由多级单元组成,每个单元能够存储两位或更多位数据。由多级单元存储器接收多个数据位。将该多个数据位存储成两个或多个数据字。为这两个或多个数据字中的每一个产生误差校正代码。形成一个存储单元位模式,由来自这两个或多个数据字中的每一个的一位组成。将与该存储单元位模式相联的电荷状态存储在一个多级单元中。
本发明的其他特征和优点从附图和后面的详细说明中将变得明显。
附图简要说明
图1显示了可以被存储在一个现有技术的多级单元中的电荷状态的例子。
图2显示了现有技术中的处理器和多级单元存储器件。
图3显示了一个处理器和一个多级单元存储器件。
图4显示了一个2-位多级单元结构的误差编码电路。
图5显示了3-位多级单元结构的误差校正电路的误差编码电路和相应的存储阵列。
图6是显示在将数据位写入多级单元存储器时所采取步骤的流程图。
图7显示了用于从2-位多级单元存储阵列读回数据的误差校正电路中的代表性的解码电路。
图8显示了采用单个数据缓冲器的误差校正电路260的解码电路的一个实施例。
图9显示了在对从N位多级单元存储器读出的数据的解码中所采取的步骤的流程图。
图10显示了共用用于对误差校正代码既进行编码又进行解码的电路的误差校正电路260的一个实施例。
图11-13显示了不使用数据缓冲器的误差校正电路260的多个实施例。图11显示了编码电路。图12显示了解码电路。图13显示了既用于编码又用于解码的电路。
详细说明
下面说明用于校正在多级单元存储器中的误差的方法和装置。
在应用中已经观察到,在多级单元存储阵列中,一个多级单元出现两位或更多位错误的情况比两个多级单元中每个单元都出现一位错误的情况更容易出现。为了利用这种观察结果,采用一个交叉存取控制器将与每个多级单元相联的存储单元位模式分成多个数据字。每个数据字只包括来自与一给定多级单元相联的存储单元位模式的一位,并且每个数据字具有它自己的与其相联的误差校正代码。以这种方式,将单个多级单元中的多位误差变换成多个数据字中的多个单-位误差,其中每个单-位误差可以用与多个数据字相联的误差校正代码校正。
图3显示了一个处理器200和多级单元存储器件204。处理器200与总线202相连。多级单元存储器件204包括一个接口控制器205,一个多级单元存储阵列250和误差校正电路260。将接口控制器205连接为提供必需的操作来控制多级单元存储阵列250和误差校正电路260。接口控制器205和误差校正电路260都与总线202相连。多级单元存储阵列250与误差校正电路260相连。处理器200向存储器件204写数据,并从存储器件204读数据。
图4显示了2-位多级单元结构的误差编码电路。误差校正电路260包括误差编码器310和312、交叉存取控制器(或交叉存取器)315、数据缓冲器320和322、输入多路复用器(mux)330、以及误差代码缓冲器340和342。
输入多路复用器330通过总线332与总线202相连。输入多路复用器330通过总线334和336与每个数据缓冲器320和322相连。数据缓冲器320和322连接以便通过总线350和352向误差编码器310和312提供数据。数据缓冲器320和322连接以便通过总线360和362向交叉存取控制器315提供数据。误差编码器310和312通过总线364和366与误差代码缓冲器340和342相连。误差代码缓冲器340和342通过总线370和372与交叉存取控制器315相连。交叉存取控制器315通过总线390与存储阵列250相连。
交叉存取控制器315和输入多路复用器330接收从接口控制器205发出的控制信号380和382。控制信号382控制是否连接总线202以便向数据缓冲器320或向数据缓冲器322提供数据。控制信号380控制从数据缓冲器320和322和误差代码缓冲器340和342到存储阵列250的数据位的选定路线。
显示的存储阵列250具有典型的2-位多级单元,从数据缓冲器320和322交叉存取数据。例如,第一多级单元保持与一个由来自数据缓冲器320和322的位0和0’组成的存储单元位模式相联的电压。下一个多级单元保持与一个由来自数据缓冲器320和322的位1和1’组成的存储单元位模式相联的电压,等等。
对于一个实施例,误差校正代码也是交叉存取的,从而一个多级单元保持与由ECC0和ECC0’组成的存储单元位模式相联的电压。另一个多级单元保持与由ECC1和ECC1’组成的存储单元位模式相联的电压,等等。
在另一个实施例中,将误差校正代码存储在一个与数据存储阵列分开的单独的存储阵列中,可以进行也可以不进行交叉存取。
图6是显示在将数据位写入多级单元存储器时所采取的步骤的流程图。流程图开始于方框500,操作从这里进行到方框502。在方框502,由多级单元存储器通过总线332和输入多路复用器330接收数据位。在方框504,将数据位分成两个或多个数据字。对于图4中的2-位多级单元,将数据位分成两个数据字,将将每个数据字存储进数据缓冲器320和322中的一个。但在另一个实施例中,可以应用组合逻辑来动态地产生误差代码,以便可以去除数据缓冲器,这将参看图11-13进行说明。
操作进行到方框506,为两个或多个数据字中的每一个产生误差校正代码。可以将误差校正代码直接提供给交叉存取控制器315,或将它们临时保存在误差代码缓冲器、例如340和342中,如图4所示。虽然误差校正代码的位数随不同的实施形式而变化,对于一个实施例,数据缓冲器320包括64位数据(0,1,2,…,63),误差代码缓冲器340包括8位误差校正代码(ECC0,ECC1,…,ECC7)。对于这个实施例,数据缓冲器322也包括64位数据(0’,1’,2’,…,63’),误差代码缓冲器342包括8位误差校正代码(ECC0’,ECC1’,…,ECC7’)。
在方框508,将来自两个或更多个数据字的数据位和来自误差代码缓冲器的误差校正代码提供给一个交叉存取控制器,该控制器形成多个存储单元位模式,每个存储单元位模式由来自两个或更多个数据字中的每一个的一位组成。在方框510,对于每个存储单元位模式,将一个与该存储单元位模式相联的电荷状态存储进一个多级单元。流程图在方框512结束。
图5显示了一个3-位多级单元结构的误差校正电路260和误差编码电路和对应的存储阵列250。误差校正电路包括误差编码器410、交叉存取控制器415、输入多路复用器(mux)418、数据缓冲器420、422和424、以及误差代码缓冲器430、432和434。
误差校正电路的运行与图4中的电路大致相同。第三个数据缓冲器424和第三个误差代码缓冲器434用于保存被用作为保存到多级单元存储阵列250的3-位存储单元位模式中的一位的第三组数据。交叉存取控制器415对来自数据缓冲器420、422和424和误差代码缓冲器430、432和434的输入进行交叉存取,以便向存储阵列250提供数据。
图5显示了一个典型的交叉存取来自数据缓冲器420、422和424的数据的3-位多级单元存储阵列250。例如,第一多级单元存储一个处于与由分别来自数据缓冲器420、422和424的位0、0’和0”组成的存储单元位模式相联的电荷状态的电压。下一个多级单元存储一个处于与由分别来自数据缓冲器420、422和424的位1、1’和1”组成的存储单元位模式相联的电荷状态的电压,等等。
对于一个实施例,对误差校正代码也进行交叉存取,这样则一个多级单元存储一个处于与由ECC0、ECC0’和ECC0”组成的存储单元位模式相联的电荷状态的电压。另一个多级单元存储一个处于与由ECC1、ECC1’和ECC1”组成的存储单元位模式相联的电荷状态的电压。
图5显示出可以由全部三个数据缓冲器420、422和424使用一个误差编码器410来为每个数据缓冲器产生误差校正位。也可以需要另外的多路复用器(未显示)。或者,可以采用与每个数据缓冲器420、422和424相联的分开的误差编码器。
图7显示了误差校正电路260内的用于从2-位多级单元存储阵列读回数据的解码电路。交叉存取控制器(交叉存取器)610通过总线612从存储阵列250接收2-位存储单元位模式。将交叉存取控制器610连接为向数据缓冲器620提供每个存储单元位模式的第一位。将交叉存取控制器610连接为向数据缓冲器622提供每个存储单元位模式的第二位。
同样,将交叉存取控制器610连接为向误差代码缓冲器630提供每个误差代码存储单元位模式的第一位,并将交叉存取控制器610连接为向误差代码缓冲器632提供每个误差代码存储单元位模式的第二位。
将数据缓冲器620和误差代码缓冲器630连接为向误差编码器和解码器(EED)640提供一个输入。将数据缓冲器622和误差代码缓冲器632连接为向误差编码器和解码器(EED)641提供一个输入。EED640被连接,以便向数据缓冲器620和误差代码缓冲器630提供信号642。信号642用于修改存储在数据缓冲器620中的数据。可以采用组合逻辑、例如XOR门来实现这一功能。同样,EED641被连接,以便向数据缓冲器622和误差代码缓冲器632提供信号644。信号644用于修改存储在数据缓冲器622中的数据。对于一个实施例,信号642另外还能够修改、或校正存储在误差代码缓冲器630中的数据,信号644能够修改存储在误差代码缓冲器632中的数据。
数据缓冲器620和622被连接,以便通过总线652和654向一个输出多路复用器(mux)650提供数据。输出多路复用器650通过总线660向总线202提供数据。
接口控制器205分别向交叉存取控制器610和输出多路复用器650提供信号670和672。控制信号670和672用于对存储阵列的读进行同步。到交叉存取控制器610的信号670控制从交叉存取控制器610到数据缓冲器620和622和误差代码缓冲器630和632的数据位的选定路线。控制信号672控制数据缓冲器620或数据缓冲器622是否通过总线660连到总线202。
图8显示了应用单个数据缓冲器的误差校正电路260的解码电路的一个实施例。在这种情况下,数据来自2-位多级单元存储阵列。来自接口控制器205的控制信号770控制交叉存取控制器710向缓冲器720提供数据。控制信号770通知交叉存取控制器在一点及时返回一组数据(0,1,2,…,ECC0,ECC1,…,)。接着,控制信号770通知交叉存取控制器710提供第二组数据(0’,1’,2’,…,ECC0’,ECC1’,…)。因此,图8的实施例采用了临时交叉存取,这样就只需要一个数据缓冲器。在另一个实施例中,可以将交叉存取控制器710扩展为交叉存取一个N-位多级单元,其中N是大于1的整数。另外,图8显示出可以采用一个缓冲器720既保存数据位又保存误差校正代码位;而不需要采用一个单独的误差代码缓冲器。
一个误差编码器和解码器740被连接,以便从缓冲器720接收数据位和误差校正位。误差编码器和解码器740向缓冲器720提供信号732,用于校正缓冲器720中的各位。缓冲器720通过总线750提供到总线202。
图9是显示对从N-位多级单元存储器读出的数据进行解码所采取的步骤的流程图。该流程开始于方框900,操作从这里进行到方框901。在方框901,从多级单元存储阵列250提取出存储单元位模式。该存储单元位模式对应于存储在多级单元存储阵列250中的电荷状态。
操作继续进行到方框902,在这里将存储单元位模式分类成N个数据字。这N个数据字中的每一个包含来自多级单元存储阵列250的每个存储单元位模式的一位。
在方框903,检索出与每个数据字相关联的误差校正代码。对于一个实施例,将误差校正代码也存储在多级单元存储阵列250中。由交叉存取器对误差校正代码进行存储,以产生N组误差校正代码。在另一个实施例中,将误差校正代码存储在一个不同的存储阵列中,可以交叉存取也可以不交叉存取在多级单元存储阵列中。
操作继续进行到方框904,在这里将误差校正代码用于定位、检测和/或校正在其相关联数据字中的误差。在方框905,在多级单元存储器的输出提供校正的数据字。如果不能进行校正,则进行适当的误差标记过程。
图10显示了共用用于对误差校正代码进行编码和解码的电路的误差校正电路260的一个实施例。图10显示的2-位多级单元存储器的一个例子。
一个输入/输出多路复用器(I/O多路复用器)930控制数据缓冲器920或数据缓冲器922是否通过总线932从总线202接收一个数据输入。I/O多路复用器930还控制数据缓冲器920或数据缓冲器922是否通过总线932向总线202提供数据。
数据缓冲器920和922通过总线924和926分别与误差编码器和解码器(EED)910和912相连。数据缓冲器920和922用于临时存储来自I/O多路复用器mux930的输入,以便可以由EED910和912产生误差校正代码。EED910和912通过总线964和966与误差代码缓冲器940和942相连。EED910和912向误差代码缓冲器940和942提供误差校正代码。
数据缓冲器920和922通过总线960和962与交叉存取控制器915相连。误差代码缓冲器940和942通过总线970和972与交叉存取控制器915相连。交叉存取控制器915还通过总线968与存储阵列250相连。
控制信号980和982用于对存储阵列的编程和读进行同步。对于一个实施例,来自接口控制器205的控制信号980控制存储阵列250是向数据缓冲器920和误差代码缓冲器940提供数据还是向数据缓冲器922和误差代码缓冲器942提供数据。控制信号980还控制是数据缓冲器920和误差代码缓冲器940还是数据缓冲器922和误差代码缓冲器942向存储阵列250提供数据。
对于前面描述的实施例,在将数据从存储器件提供到总线202之前对其进行校正。然而,存储在存储阵列250中的原始数据并未被校正。对于多级单元存储器的另一个实施例,用校正的数据更新一个有错误的多级单元(或多个单元)。然而,在一些存储器件中的额外的复杂性使得校正是不可能的。例如,对于一个闪速存储器的实施例,一般来说,为了向一个已经预先被写入数据的多级单元重写数据,必须擦除整个块。
在上述实施例的一个变化中,在一个数据缓冲器中的误差概率可以被减少至不检验该数据缓冲器的误差的程度。在该变化的一个实施例中,与2-位多级单元相关联的存储单元位模式如图1和下面的表1所示。该存储单元位模式由第一位,位0和第二位,位0’组成。在读取保持在2-位多级单元中的电荷状态中,将存储在多级单元中的电压与Vref1进行比较。这确定了位0’是‘0’还是‘1’。接着,为了确定位0是‘0’还是‘1’,将存储在多级单元中的电压与Vref2或Vref0进行比较(取决于位0’的输出)。
表1
位0 | 位0’ | |
级3 | 0 | 0 |
级2 | 1 | 0 |
级1 | 0 | 1 |
级0 | 1 | 1 |
对于该实施例,使得2-位多级单元从级2向级1转换失败的概率与从级3向级2和从级1到级0的转换的概率相比非常小。例如,如果与V23和V01相比使V12变得较大,则产生该结果。
在这种情况下,位0’失败的概率与位0失败的概率相比是非常小的。同样,在另一个多级单元中,位1’失败的概率与位1失败的概率相比是非常小的。
再参看图7,对于该实施例,从数据缓冲器622检索出的数据字由每个多级单元的第二位组成。因为每个多级单元的第二位具有一个较低的失败概率,则对于存储在数据缓冲器622中的数据字的误差检测可以被去除。因此,在图7中,误差编码器和解码器641可以被去除。另外,误差代码缓冲器632可以被去除。数据字的误差校正代码由甚至无需在该实施例中产生的第二位组成。
通过减少在电荷状态之间的特定转换的概率,这个用于减少特定数据字中的误差的变化可以被扩展到其他N-位多级单元。
图11-13显示了不使用数据缓冲器的误差校正电路260的几个实施例。图11显示了用于对存储在存储阵列250中的数据进行编码的电路。图12显示了用于对从存储阵列250检索出的数据进行解码的电路。图13显示了用于对出入存储阵列250的数据既进行编码又进行解码的电路。
参看图11,来自总线202的信号线802a-z向交叉存取控制器800提供数据。信号线802a-z还连接到编码器806,编码器806将信号线804a-m上的误差校正代码提供给交叉存取控制器800。交叉存取控制器800在向存储阵列250提供交叉存取的数据之前可以等待接收一个或多个数据字输入。对于一个实施例,将数据字输入及时地顺序提供。或者,对于另一个实施例,在一个或多个编码器向交叉存取控制器提供相应的误差校正代码的情况下,可以将多个数据字同时写入交叉存取控制器。
图12显示了用于对从存储阵列250检索出的数据进行解码的电路。与图8中的电路相似,交叉存取控制器810暂时对来自存储阵列250的数据位和误差校正代码进行交叉存取,以便同时提供一组数据位和误差代码位。在图12中没有数据缓冲器。将数据位提供在信号线812a-z上。将误差代码位提供在信号线814a-m上。将信号线812a-z提供给编码器816,该编码器816再次对数据位进行编码,以产生误差校正代码。例如应用XOR功能将新的误差校正代码与信号线814a-m进行比较,以便向解码器820提供一个输入。解码器820确定是否有任一数据位被不正确地从多级单元存储阵列读出。如果要进行任何校正,解码器认定该合适的信号,并将这些信号提供到信号线822a-z上。将信号822a-z与原始信号812a-z进行XOR操作,以便向总线202提供输出信号824。
图13显示了用于对出入存储阵列250的数据既进行编码又进行解码的电路。信号线828将误差校正电路260连接到总线202。信号线832a-z将数据提供给交叉存取控制器830和编码器836。在程序操作期间,数据被存储在存储阵列250中,编码器836通过信号线834a-m向交叉存取控制器830提供误差校正代码。交叉存取控制器830向存储阵列250提供数据,并从存储阵列250接收数据。
一旦从存储阵列250读出数据,信号线832a-z从交叉存取控制器830向编码器836提供数据,其中在编码器836数据被再次编码。应用例如XOR功能将再次编码的误差校正代码与从交叉存取控制器830提供在信号线834a-m上的保存的误差校正代码进行比较。将比较输出提供给解码器840。解码器840例如通过一个XOR功能校正其通过认定该合适的信号线842a-z而检测到的误差,以便通过信号线828向总线202提供数据,该信号线842a-z修改信号线832a-z。
在上述的说明中,已经参考特定实施例对本发明进行了描述。但应该说明的是,在不偏离由附带的权利要求所限定的本发明的精神和范围的情况下,可以对其作出各种修改和变化。因此,说明书和附图只是例示性的,而非出于限定的目的。
Claims (23)
1.一种在多级单元存储器中存储数据位的方法,所述多级单元存储器由多个多级单元组成,每个多级单元能够存储两位或更多位数据,所述方法包括下列步骤:
(a)接收多个数据位;
(b)将所述多个数据位分类成两个或多个数据字;
(c)为两个或多个数据字中的每一个产生一个误差校正代码;
(d)形成一个由来自两个或多个数据字中的每一个的一位组成的存储单元位模式;
(e)将一个与所述存储单元位模式相关联的电荷状态存储在多个多级单元中的一个中。
2.如权利要求1所述的方法,还包括步骤:
(f)对于所述两个或多个数据字的多个数据位中的每一位重复步骤(d)和(e)。
3.如权利要求2所述的方法,还包括步骤:
(g)存储与所述两个或多个数据字相联的误差校正代码。
4.如权利要求3所述的方法,还包括步骤:
(h)从所述多级单元存储器中检索出所述两个或多个数据字;
(i)检索出与所述两个或多个数据字相关联的误差校正代码;
(j)应用所述误差校正代码检验在所述两个或多个数据字中的误差。
5.如权利要求4所述的方法,还包括步骤:
(k)应用所述误差校正代码校正在步骤(j)中发现的误差。
6.一种从由多个多级单元组成的存储器读取数据的方法,其中每个多级单元存储至少两位数据,所述方法包括下列步骤:
(a)确定与一特定多级单元相关联的存储单元位模式,所述存储单元位模式由N个数据位组成;
(b)将N个数据位中的每一个存储成N个分开的数据字;
(c)对于后续的多级单元重复步骤(a)和(b),直到N个分开的数据字的每一个由一预定数目的位组成;
(d)检索出N个误差校正代码,每个误差校正代码与N个分开的数据字中的一个相关联;以及
(e)应用N个误差校正代码中的每一个来校正在其相关联的N个分开的数据字中的误差。
7.一种用于检查存储器中的误差的方法,所述存储器包括由存储单元组成的存储阵列,每个存储单元能够存储2N个电荷状态,每个电荷状态具有一个相关联的N位宽的存储单元位模式,其中,N是大于1的整数,所述方法包括下列步骤:
(a)检索出与多个存储单元相关联的多个存储单元位模式;
(b)将多个存储单元位模式分类成N个数据字,N个数据字中的每一个只包括多个存储单元位模式中的每一个的小于全部的一部分,其中,N个数据字中的第一数据字具有一个与其相关联的误差校正代码;
(c)检索出与第一数据字相关联的误差校正代码;
(d)应用所述误差校正代码来检验在第一数据字中的误差。
8.如权利要求7所述的方法,其中,N个数据字包括第二数据字,并且第二数据字是在存储器的一个输出提供的,而不检验第二数据字中的误差。
9.一个电路包括:
a)多个多级单元,每个单元能够存储至少两位数据;
b)一个交叉存取器,具有一个被连接为接收数据的交叉存取器输入和一个被连接为提供第一数据字和第二数据字的交叉存取器输出,第一数据字由数据的第一部分组成,第二数据字由数据的第二部分组成,数据的第一部分由来自一组多级单元的每一个的至少一位组成,数据的第二部分由来自一组多级单元的每一个的至少一位组成,数据的第一部分与数据的第二部分互不相容;以及
(c)一个与所述交叉存取器的输出相连的误差电路以接收第二数据字,所述误差电路解码第二数据字以检测第一数据字是否正确。
10.如权利要求9所述的电路,其中,所述误差代码输出连到一个能够存储第一数据字的缓冲器。
11.如权利要求10所述的电路,其中,所述误差代码输出连到一个缓冲器,以改变存储在所述缓冲器中的各个位。
12.如权利要求9所述的电路,其中,所述交叉存取器输出由第一交叉存取器输出和第二交叉存取器输出组成。
13.如权利要求12所述的电路,其中,所述第一交叉存取器输出和第二交叉存取器输出被存储在数据缓冲器中,所述数据缓冲器被连接到一个向系统总线提供输出的输出多路复用器的输入。
14.如权利要求9所述的电路,其中,第一数据字和第二数据字以不同的时间被提供到交叉存取器的输出。
15.如权利要求9所述的电路,其中,对所述误差代码输出和一个与第一数据字相联的误差校正代码进行XOR操作,以便向一个解码器提供一个输入,所述解码器具有一个连接回第一数据字的输出。
16.一个电路,包括:
a)一个交叉存取器,具有一个接收第一数据字和第二数据字的交叉存取器输入,第一数据字由第一组位组成,第二数据字由第二组位组成,所述交叉存取器提供一个交叉存取器输出;
b)一个由多个多级单元组成的存储阵列,每个多级单元能够存储至少两位数据,其中,存储阵列被连接,以便接收交叉存取器的输出,其中多个多级单元中的每一个存储第一组位中的一位和第二组位中的一位;以及
c)一个误差电路,用于接收第一数据字,所述误差电路将第一数据字编码成误差代码输出用于校验第一数据字的正确性。
17.如权利要求16所述的电路,其中,所述误差代码输出被连到交叉存取器的第二交叉存取器输入。
18.如权利要求17所述的电路,其中,所述误差电路接收第二数据字,并且所述误差电路提供第二误差代码输出。
19.如权利要求18所述的电路,其中,第二多个多级单元中的每一个存储来自误差代码输出的一位和来自第二误差代码输出的一位。
20.如权利要求16所述的电路,其中,所述交叉存取器在第一时间在交叉存取器输入接收第一数据字,所述交叉存取器在第二时间在交叉存取器输入接收第二数据字。
21.一种多级单元存储器,包括:
一个多级单元存储阵列;
连接的误差校正电路用于接收向多级单元存储器的输入数据,所述该被连接的误差校正电路向多级单元存储阵列提供输入数据,所述误差校正电路包括:
一个与多级单元存储阵列相连的交叉存取器,
连接的一个编码器用于对输入数据编码,并向交叉存取器提供误差校正代码,以及
一个与交叉存取器相连的解码器,用于校正从多级单元存储阵列读出的误差。
22.如权利要求21所述的多级单元存储器,其中,误差校正电路还包括:
一个数据缓冲器,所述数据缓冲器被连接用于保存输入数据并被连接向交叉存取器提供输入数据。
23.如权利要求21所述的多级单元存储器,其中,误差校正电路还包括:
一个误差代码缓冲器,所述误差代码缓冲器被连接用于保存误差校正代码并被连接向交叉存取器提供误差校正代码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/708,212 | 1996-09-06 | ||
US08/708,212 US5754566A (en) | 1996-09-06 | 1996-09-06 | Method and apparatus for correcting a multilevel cell memory by using interleaving |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1235691A CN1235691A (zh) | 1999-11-17 |
CN1161791C true CN1161791C (zh) | 2004-08-11 |
Family
ID=24844844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB97199384XA Expired - Fee Related CN1161791C (zh) | 1996-09-06 | 1997-09-05 | 应用交叉存取法校正多级单元存储器的方法和装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US5754566A (zh) |
EP (1) | EP1019821B1 (zh) |
KR (1) | KR100327883B1 (zh) |
CN (1) | CN1161791C (zh) |
AU (1) | AU4251697A (zh) |
DE (1) | DE69721076T2 (zh) |
HK (1) | HK1030998A1 (zh) |
TW (1) | TW364111B (zh) |
WO (1) | WO1998010425A1 (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6002614A (en) | 1991-02-08 | 1999-12-14 | Btg International Inc. | Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell |
US6353554B1 (en) * | 1995-02-27 | 2002-03-05 | Btg International Inc. | Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell |
US5787484A (en) | 1996-08-08 | 1998-07-28 | Micron Technology, Inc. | System and method which compares data preread from memory cells to data to be written to the cells |
US6857099B1 (en) * | 1996-09-18 | 2005-02-15 | Nippon Steel Corporation | Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program |
US5754567A (en) * | 1996-10-15 | 1998-05-19 | Micron Quantum Devices, Inc. | Write reduction in flash memory systems through ECC usage |
US6604144B1 (en) | 1997-06-30 | 2003-08-05 | Microsoft Corporation | Data format for multimedia object storage, retrieval and transfer |
US6269403B1 (en) * | 1997-06-30 | 2001-07-31 | Microsoft Corporation | Browser and publisher for multimedia object storage, retrieval and transfer |
JP3165101B2 (ja) * | 1998-03-05 | 2001-05-14 | 日本電気アイシーマイコンシステム株式会社 | 多値式半導体メモリ装置およびその不良救済方法 |
DE69907622T2 (de) | 1999-02-10 | 2004-03-25 | Stmicroelectronics S.R.L., Agrate Brianza | Verfahren zur Fehlerkorrektur in einem in einer Mehrpegelspeicherzelle gespeicherten Binärwort, mit einer Minimumanzahl von Korrekturbits |
JP4074029B2 (ja) | 1999-06-28 | 2008-04-09 | 株式会社東芝 | フラッシュメモリ |
US6487685B1 (en) * | 1999-09-30 | 2002-11-26 | Silicon Graphics, Inc. | System and method for minimizing error correction code bits in variable sized data formats |
IT1321049B1 (it) * | 2000-11-07 | 2003-12-30 | St Microelectronics Srl | Metodo di costruzione di un codice a controllo dell'errore polivalenteper celle di memoria multilivello funzionanti a un numero variabile di |
ITTO20010529A1 (it) * | 2001-06-01 | 2002-12-01 | St Microelectronics Srl | Metodo di controllo dell'errore in celle di memoria multilivello con numero di bit memorizzati configurabile. |
US6483743B1 (en) * | 2001-06-18 | 2002-11-19 | Intel Corporation | Multilevel cell memory architecture |
JP4437519B2 (ja) * | 2001-08-23 | 2010-03-24 | スパンション エルエルシー | 多値セルメモリ用のメモリコントローラ |
WO2003032159A2 (en) * | 2001-10-11 | 2003-04-17 | Altera Corporation | Error detection on programmable logic resources |
ITMI20022634A1 (it) * | 2002-12-13 | 2004-06-14 | St Microelectronics Srl | Dispositivo elettronico integrato e metodo |
ITMI20022669A1 (it) * | 2002-12-18 | 2004-06-19 | Simicroelectronics S R L | Struttura e metodo di rilevamento errori in un dispositivo |
TWI309776B (en) * | 2003-10-24 | 2009-05-11 | Hon Hai Prec Ind Co Ltd | Secure storage system and method for solid memory |
CN100468367C (zh) * | 2003-10-29 | 2009-03-11 | 鸿富锦精密工业(深圳)有限公司 | 固态存储器的安全存储系统及方法 |
US7328377B1 (en) | 2004-01-27 | 2008-02-05 | Altera Corporation | Error correction for programmable logic integrated circuits |
US7409623B2 (en) * | 2004-11-04 | 2008-08-05 | Sigmatel, Inc. | System and method of reading non-volatile computer memory |
US7447948B2 (en) * | 2005-11-21 | 2008-11-04 | Intel Corporation | ECC coding for high speed implementation |
US7639542B2 (en) | 2006-05-15 | 2009-12-29 | Apple Inc. | Maintenance operations for multi-level data storage cells |
US7639531B2 (en) | 2006-05-15 | 2009-12-29 | Apple Inc. | Dynamic cell bit resolution |
US8000134B2 (en) | 2006-05-15 | 2011-08-16 | Apple Inc. | Off-die charge pump that supplies multiple flash devices |
US7852690B2 (en) | 2006-05-15 | 2010-12-14 | Apple Inc. | Multi-chip package for a flash memory |
US7511646B2 (en) | 2006-05-15 | 2009-03-31 | Apple Inc. | Use of 8-bit or higher A/D for NAND cell value |
US7701797B2 (en) | 2006-05-15 | 2010-04-20 | Apple Inc. | Two levels of voltage regulation supplied for logic and data programming voltage of a memory device |
US7551486B2 (en) | 2006-05-15 | 2009-06-23 | Apple Inc. | Iterative memory cell charging based on reference cell value |
US7613043B2 (en) | 2006-05-15 | 2009-11-03 | Apple Inc. | Shifting reference values to account for voltage sag |
US7568135B2 (en) | 2006-05-15 | 2009-07-28 | Apple Inc. | Use of alternative value in cell detection |
KR100845529B1 (ko) | 2007-01-03 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 |
US7492287B2 (en) * | 2007-05-23 | 2009-02-17 | Micron Technology, Inc. | Two-bit tri-level forced transition encoding |
KR101506655B1 (ko) * | 2008-05-15 | 2015-03-30 | 삼성전자주식회사 | 메모리 장치 및 메모리 데이터 오류 관리 방법 |
KR101403314B1 (ko) | 2008-05-23 | 2014-06-05 | 삼성전자주식회사 | 메모리 장치 및 데이터 비트 저장 방법 |
US8583986B2 (en) * | 2008-12-17 | 2013-11-12 | Seagate Technology Llc | Solid-state memory with error correction coding |
KR101616100B1 (ko) * | 2009-09-25 | 2016-04-28 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR101623730B1 (ko) * | 2009-11-23 | 2016-05-25 | 삼성전자주식회사 | 인터리버 장치 |
US9195540B2 (en) * | 2010-10-06 | 2015-11-24 | HGST, Inc. | Multiple sector parallel access memory array with error correction |
US8972821B2 (en) * | 2010-12-23 | 2015-03-03 | Texas Instruments Incorporated | Encode and multiplex, register, and decode and error correction circuitry |
US11150839B2 (en) | 2019-12-19 | 2021-10-19 | Western Digital Technologies, Inc. | Host and method for interleaving data in a storage system for enhanced quality of service |
US11221950B2 (en) | 2019-12-19 | 2022-01-11 | Western Digital Technologies, Inc. | Storage system and method for interleaving data for enhanced quality of service |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0148488B1 (en) * | 1983-12-23 | 1992-03-18 | Hitachi, Ltd. | Semiconductor memory having multiple level storage structure |
US5095344A (en) * | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
CA2019351A1 (en) * | 1989-07-06 | 1991-01-06 | Francis H. Reiff | Fault tolerant memory |
US5450363A (en) * | 1994-06-02 | 1995-09-12 | Intel Corporation | Gray coding for a multilevel cell memory system |
US5475693A (en) * | 1994-12-27 | 1995-12-12 | Intel Corporation | Error management processes for flash EEPROM memory arrays |
-
1996
- 1996-09-06 US US08/708,212 patent/US5754566A/en not_active Expired - Fee Related
-
1997
- 1997-09-05 AU AU42516/97A patent/AU4251697A/en not_active Abandoned
- 1997-09-05 DE DE69721076T patent/DE69721076T2/de not_active Expired - Lifetime
- 1997-09-05 WO PCT/US1997/015607 patent/WO1998010425A1/en active IP Right Grant
- 1997-09-05 EP EP97940827A patent/EP1019821B1/en not_active Expired - Lifetime
- 1997-09-05 CN CNB97199384XA patent/CN1161791C/zh not_active Expired - Fee Related
- 1997-09-05 KR KR1019997001918A patent/KR100327883B1/ko not_active IP Right Cessation
- 1997-09-06 TW TW086112987A patent/TW364111B/zh not_active IP Right Cessation
-
2001
- 2001-01-12 HK HK01100356A patent/HK1030998A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100327883B1 (ko) | 2002-05-22 |
HK1030998A1 (en) | 2001-05-25 |
EP1019821A4 (en) | 2000-07-19 |
DE69721076T2 (de) | 2003-11-06 |
TW364111B (en) | 1999-07-11 |
WO1998010425A1 (en) | 1998-03-12 |
EP1019821A1 (en) | 2000-07-19 |
AU4251697A (en) | 1998-03-26 |
CN1235691A (zh) | 1999-11-17 |
DE69721076D1 (de) | 2003-05-22 |
KR20000068504A (ko) | 2000-11-25 |
US5754566A (en) | 1998-05-19 |
EP1019821B1 (en) | 2003-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1161791C (zh) | 应用交叉存取法校正多级单元存储器的方法和装置 | |
US10771091B2 (en) | Flash memory apparatus and storage management method for flash memory | |
US9910772B2 (en) | Flash memory apparatus and storage management method for flash memory | |
JP5944941B2 (ja) | クロス・ページ・セクタ、マルチ・ページ符号化およびパー・ページ符号化を使用して多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法および装置 | |
CN1113294C (zh) | 利用错误定位码校正一个多级单元存储器的方法和装置 | |
US8065583B2 (en) | Data storage with an outer block code and a stream-based inner code | |
US20070180346A1 (en) | Method Of Arranging Data In A Multi-Level Cell Memory Device | |
US7096406B2 (en) | Memory controller for multilevel cell memory | |
US8635508B2 (en) | Systems and methods for performing concatenated error correction | |
US9015554B2 (en) | Management of non-valid decision patterns of a soft read retry operation | |
CN1012400B (zh) | 错误校正电路 | |
US8699269B1 (en) | Systems and methods for improving error distributions in multi-level cell memory systems | |
JPH05108495A (ja) | データ用誤り訂正検出方法及びコンピユータ・メモリ用 誤り検出回路 | |
CN109785895B (zh) | 纠正NAND Flash中多比特错误的ECC装置和方法 | |
US20150149872A1 (en) | Data encoding in solid-state storage apparatus | |
CN116705135A (zh) | 一种低成本可纠错存储方法、系统、芯片及存储介质 | |
US11323133B2 (en) | Flash memory apparatus and storage management method for flash memory | |
US20180102168A1 (en) | Mapping bits to memory cells using sector spreading | |
CN1091535A (zh) | 用于纠错码数据传输的方法和设备 | |
KR101419335B1 (ko) | 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법 | |
CN116615718A (zh) | 可编程纠错码编码和解码逻辑 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040811 Termination date: 20100905 |