CN1256005A - 编码方法和存储装置 - Google Patents
编码方法和存储装置 Download PDFInfo
- Publication number
- CN1256005A CN1256005A CN99800053A CN99800053A CN1256005A CN 1256005 A CN1256005 A CN 1256005A CN 99800053 A CN99800053 A CN 99800053A CN 99800053 A CN99800053 A CN 99800053A CN 1256005 A CN1256005 A CN 1256005A
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- reed
- cell array
- bit data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- 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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- 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/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及适于多值记录快擦写存储器等的存储装置等。设计快擦写存储器10用于16值(4位)记录。对于写入操作,编码器(12)把输入数据Din转换成缩短Reed-Solomon码以提供写数据WD。变换器(13)把写数据WD转换成4位并行数据。将经转换数据馈送并写入到连续构成单元阵列(11)的每个存储单元。对于读取操作,变换器(14)把读取数据RD从所述单元阵列(11)转换成1字节(8位)并行数据,而且向解码器(15)提供经转换的数据以字节为单位进行纠错处理,从而获得输出数据Dout。由于采用Reed-Solomon,所以对于少量差错需要校正时可以获得良好性能。
Description
技术领域
本发明涉及可用于多值记录快擦写存储器、运用该快擦写存储器的存储卡,等等的编码方法和存储装置。
背景技术
今年来,作为存储装置,以广泛使用诸如快擦写存储器的半导体存储器。在快擦写存储器中,通过使用包括大量存储单元(一般,数量大约为65,000,000)的单元阵列记录数据,其中所述存储单元包含以分层的形式排列在半导体衬底上的浮栅(电荷存储层)和控制栅(见图16)。在这种情况下,每个单元阵列保留数据作为存储在浮栅中的电荷量。
图17A和17B示出用于快擦写存储器中的存储单元100的结构。即,如此构成存储单元100从而将电荷存储层(浮栅)102和控制栅103堆迭在半导体衬底101上。当将数据项写在存储单元100上时,控制在浮栅102上保留的电荷量,从而根据记录的数据(“0”或“1”),它到达如图18所示的两个门限电压之一。另一方面,当从存储单元100读取数据项时,通过运用在两个门限电压之间设定参考电压,确定根据存储单元100的门限电压是高于还是低于参考电压来判断在存储单元100中的数据项是“0”或“1”。
对于半导体存储器而言,防止由高集成、高密度电路实施的各种影响引起可靠性下降是十分关键的。作为保留存储装置可靠性的一部分努力,通常将基于纠错码(诸如,Hamming码)的纠错电路加入半导体存储器,以抵御诸如故障单元特别是因不断增加写入和擦除操作的数量导致的老化引起的故障。
纠错码是一种冗余码,要求把校验数据附在信息数据上,而且将两个数据用于校正整个代码中的差错。例如,将如图19所示的10位校验数据加入对于512位块的信息的缩短(abbreviated)Hamming码,从而即使在522位码中发生一个差错,也可以校正该差错。
图20示出其中加入了基于Hamming码的纠错电路的快擦写存储器110的结构。快擦写存储器110包括具有多个存储单元的单元阵列111、将输入数据Din转换成缩短Hamming码以提供写数据WD从而写入单元阵列111的编码器112以及通过对从单元阵列111检索的读取数据RD进行纠错处理,提供输出数据Dout的Hamming码解码器113。在这种情况下,编码器112和Hamming码解码器113构成纠错电路。编码器112把10位校验数据加到每个512位块的输入数据Din,而且产生对于512位信息数据的缩短Hamming码。
在如图20所示的快擦写存储器110中,如下发生数据写入操作。即,首先把输入数据Din输入到编码器112。于是,编码器112把输入数据Din转换成具有512位信息数据的缩短Hamming码,从而产生写数据WD。把从编码器112输出的写数据WD馈送和写入到单元阵列111。
换句话说,如下执行数据读取操作。把从单元阵列111检索的读取数RD输入到Hamming码解码器113。如果读取数据RD的一个代码不包含任何差错,那么Hamming码解码器113输出无改变的信息数据作为输出数据Dout。如果读取数据RD的一个代码具有一个差错位,那么在纠错之后,Hamming码解码器113输出信息数据作为输出数据Dout。
接着,描述将缩短的BCH码(Bose-Chaudhuri-Hocquenghem码)用作能够校正在一个代码中的两个差错的纠错码的例子。由Hideki Imai在“代码原理”(日本的电子、信息和通信工程委员会)中举例说明了BCH码和代码缩短技术。例如,将20位校验数据加到对于512位信息数据的经缩短BCH码(如图21所示),从而能够校正在532位代码中的两个差错。
图22示出根据BCH码加入纠错电路的快擦写存储器120的结构。快擦写存储器120包括具有多个存储单元的单元阵列121、用于将输入数据Din转换成缩短BCH码以提供写数据WD,从而写入到单元阵列121的编码器122和用于对从单元阵列121检索到读取数据RD进行纠错处理以提供输出数据Dout。在这种情况下,编码器122和BCH码解码123构成纠错电路。编码器122把20位检测数据加到每512位块输入数据Din,从而产生能够纠正关于512位信息数据的两个差错的缩短BCH码。
在如图22所示的快擦写存储器中,如下发生数据写入操作。即,首先将输入数据Din输入到编码器122。于是,编码器122把输入数据Din转换成具有512位信息数据的缩短BCH码,从而产生写数据WD。把从编码器122输出的写数据WD馈送和写入到单元阵列121。
另一方面,如下执行数据读取操作。把从单元阵列121检索到的读取数据RD输入到BCH码解码器123。如果读取数据RD的一个码不包含任何差错,那么BCH码解码器123输出无改变的信息数据作为输出数据Dout。如果读取数据RD的一个代码具有一个或两个差错位,那么在纠错之后输出信息数据作为输出数据Dout。
如图20和22所示,加入快擦写存储器110或120的纠错电路可以抑制写数据的差错,而与由于老化引起的一定数量的故障单元无关。然而,一般在纠错代码中,需要相对大量校验数据,它们是冗余校验数据,来纠正大量的差错,于是,增加了要使用的存储单元数据,以及扩大了要加入的纠错电路的规模。
接着,描述由大量快擦写存储器(快擦写存储芯片)构成的存储卡。作为存储不能由单个芯片快擦写存储器处理的大量数据的存储装置,存储卡包括多个快擦写存储器和控制器。
图23示出带有具有基于BCH码的纠错电路的控制器的存储卡130的结构。存储卡130包括两个快擦写存储器131和132以及用于将数据写入这些快擦写存储器131和132并从中读取数据的控制器133。
控制器133包括将数据与在卡外侧的设备交换的卡接口134、用于将输入数据Din转换成经缩短的BCH码以提供写数据WD,从而写入快擦写存储器131和132的编码器135、用于对来自快擦写存储器131和132的读取数据RD进行纠错处理以提供输出数据Dout的BCH码解码器136和用于控制将数据写入快擦写存储器131和132并从中读取数据的快擦写接口137。
在上述结构中,解码器135和BCH码解码器136构成纠错电路。解码器136把20位校验数据加入每512位块的输入数据Din,从而产生能够纠正关于512位信息数据的两个差错的缩短BCH码。
在如图23所示的存储器卡130中,如下发生数据写入操作。即,首先由卡接口134将输入数据Din放入卡,而且向编码器135提供。于是,编码器135把输入数据Din转换成具有512位信息数据的缩短BCH码,从而产生写数据WD。在快擦写接口137的控制下,将从编码器135输出的写数据WD写入快擦写存储器131和132。
换句话说,如下执行数据读取操作。在快擦写接口137的控制下,将从快擦写存储器131或132检索的读取数据RD输入到BCH码解码器136。如果读取数据RD的一个代码不包含任何差错,那么BCH码解码器136输出无改变的信息数据作为输出数据Dout。如果读取数据RD的一个代码具有一个或两个差错位,那么在纠错之后,BCH码解码器136输出信息数据作为输出数据Dout。通过这种方法,将通过卡接口134,输出数据Dout从BCH码解码器136输出到卡外侧的设备。
如上所述,还将纠错码用在由多个快擦写存储器构成的存储卡中。如果将一个控制器用于纠错,那么可以具有获得大于加入快擦写存储器中的纠错电路的纠错电路,从而可以检测大量差错。
接着,描述快擦写存储器的多值记录。今年来,提议将快擦写存储器用于每单元的多位记录,以增加快擦写存储器的存储能力。例如,如图24A至24D所示,控制累积在用于四值记录的快擦写存储器的存储单元100中的浮栅102中的电荷量,从而它可以达到表示要存储的数据项的四个门限电压(如图25所示)中的一个(“11”、“10”、“01”或“00”)。当读取数据时,运用在各个邻近门限值之间建立的三个参考电压。通过将在存储单元100中的门限值与每个参考电压相比较,检索来自存储单元100的数据。这种安排允许每个存储单元100存储两位信息。
如它们对应的二进制记录那样,多值记录快擦写存储器可以利用纠错电路。图26示出用于加入基于BCH码的纠错电路的16值(4位)记录的快擦写存储器140的结构。快擦写存储器140包括具有多个存储单元的单元阵列141、用于把输入数据Din转换成缩短BCH码的编码器142以提供写数据WD,从而写入单元阵列141和用于把从编码器142输出的写数据WD从串行数据格式转换成4位并行数据格式,并向单元阵列141提供经转换的数据的1位/4位变换器143。
快擦写存储器140还包括用于把从单元阵列141检索到的读取数据RD从4位并行数据格式转换成串行数据格式的4位/1位变换器144,和用于通过对由4位/1位变换器144转换成串行数据的读取数据RD进行纠错处理,提供读取数据Dout。在这种情况下,编码器142和BCH码解码器145构成纠错电路。编码器142把20位检测数据加入每512位块的输入数据Din,从而产生能够纠正关于512位信息数据的两个差错的缩短BCH码。
在如图26所示的快擦写存储器140中,如下发生数据写入操作。即,首先,把输入数据Din输入到编码器142。于是,编码器142把输入数据Din转换成具有512位信息数据的缩短BCH码,从而产生写数据WD。由1位/4位变换器143将从编码器142输出的写数据WD从串行数据格式转换成4位并行数据格式(4位数据用于存储在存储单元中),从而向单元阵列141提供写数据WD,而且将数据WD连续写入构成单元阵列141的每个存储单元。
换句话说,如下执行数据读取操作。由4位/1位变换器144将从单元阵列141检索的读取数据RD从4位并行数据格式转换成串行数据格式。向BCH码解码器145提供经转换的串行数据。如果读取数据RD的一个代码不包含任何差错,那么BCH码解码器145输出无改变的信息数据作为输出数据Dout。如果读取数据RD的一个代码具有一个或两个差错位,在纠错之后,BCH码解码器145输出信息数据作为输出数据Dout。
多值记录快擦写存储器(诸如,如图26所示的快擦写存储器140)具有这样的特征,即,单个故障单元导致多差错位。由于传统的快擦写存储器每存储单元存储一位,所以这些存储器原则上将用于位纠错的代码系统,作为它们的纠错码。然而,如果单个故障存储单元导致多个差错位,那么用于逐位纠错的纠错码是不够的。
例如,在其中每个存储器存储4位数据的快擦写存储器中,如果发现单个存储器单元是不可访问的,那么必须用4个纠错码来校正这个差错。如上所述,如果用上述纠错码来校正多个这样的差错,那么需要大量纠错电路,从而这导致扩大纠错电路的规模的不利之处。由于需要加入数量增加的冗余数据来纠正多个差错,所以需要许多存储器单元,它形成另一个缺点。
因此,本发明的目的在于提供具有小规模纠错电路的存储装置和有限数量的存储单元,其中它通过少量的纠错可以保持充分的性能。本发明的另一个目的在于提供编码方法和运用该方法的存储装置,从而扩展代码长度,同时仍然例如以字节为单位执行与外侧实体的数据交换。
发明概述
在执行本发明的过程中,根据本发明的一个方面,提供一种存储装置,它包括:单元阵列,它具有多个存储单元,其中每个所述存储单元存储多位数据;编码器,用于把输入数据转换成Reed-Solomon码以提供写数据,从而写入到所述单元阵列;和Reed-Solomon码解码器,用于对从所述单元阵列检索到的读取数据进行纠错处理以提供输出数据。
根据本发明的另一个方面,提供一种存储装置,它包括:存储部分,具有由存储多位数据的多个存储单元构成的单元阵列;和控制器,用于把数据写入所述存储部分并从中读取数据;其中,所述控制器包括:编码器,用于把输入数据转换成Reed-Solomon码以提供写数据,从而写入到所述存储部分;和Reed-Solomon码解码器,用于对从所述存储部分检索的读取数据进行纠错处理以提供输出数据。
通过本发明,单元阵列中的每个存储单元存储多位数据。对于写入操作,编码器把输入数据转换成Reed-Solomon码作为写入到单元阵列的写数据。Reed-Solomon码把多个位看作一个字节,而且是纠错码,用作以字节为单位纠错。对于读取操作,从单元阵列中的每个存储单元读取多位数据,而且由Reed-Solomon码解码器对读取数据进行纠错处理,从而提供输出数据。
通过这种方法,把用于以字节为单位的纠错的Reed-Solomon码用作对于由存储单元构成的存储装置的纠错码,,其中每个存储单元存储多值数据,从而可以提供包含少量纠错的良好性能。这可以比以前使用的更少量的存储单元来减小纠错电路的规模。
此外,根据本发明的另一个方面,提供一种编码方法,其特征在于,包括下列步骤:用m位数据补充(n-m)位数据以转换成n位数据,n是大于m的整数;运用将n位看作一个码元的Reed-Solomon码编码所述n位数据;以及在补充所述(n-m)位数据之前输出m位数据作为信息数据,同时在经历了n位/m位变换之后输出m位数据作为校验数据。
此外,根据本发明的又一个方面,提供一种存储装置,包括:单元阵列,具有多个存储单元;编码器,用于将输入数据转换成纠错码以提供写数据,从而写入到所述单元阵列;和解码器,用于对从所述单元阵列检索到的读取数据进行纠错处理以提供输出数据;其特征在于,所述编码器用m位输入数据补充(n-m)位数据以转换成n位数据,n是大于m的整数,运用将n位看作一个码元的Reed-Solomon码编码所述n位数据,而且在补充所述(n-m)位数据之前输出所述m位数据作为信息数据,同时在经历n位/m位变换之后输出所述m位数据作为校验数据;和所述解码器用从所述单元阵列检索到的所述m位读取数据补充关于信息数据的所述(n-m)位数据,以转换成n位数据,使校验数据部分进行m位/n位转换成n位数据,之后对所述经转换n位数据进行纠错处理,提供在所述经纠正的n位信息数据中的m位数据部分作为所述输出数据。
此外,根据本发明的又一个方面,提供一种存储装置,它包括由多个存储单元构成的单元阵列的存储部分、用于将数据写入所述存储部分和从中读取数据的控制器,其特征在于:所述控制器包括编码器,它用于将输入数据转换成纠错码以提供写数据,从而写入到所述存储部分;和解码器,用于对从所述存储部分检索到的读取数据进行纠错处理以提供输出数据;其中所述编码器用m位输入数据补充(n-m)位数据以转换成n位数据,n是大于m的整数、运用将n位看作是一个码元的Reed-Solomon码编码所述n位数据和在补充所述(n-m)位数据之前输出所述m位数据作为信息数据,同时在经历n位/m位变换之后输出所述m位数据作为校验数据;和其中,所述解码器用从所述单元阵列检索到的m位读取数据补充所述n-m位数据以转换成与其信息数据部分相关的n位数据、对所述m位读取数据的纠验数据部分进行m位/n位变换成n位数据,之后对所述经变换n位数据进行纠错处理并提供在所述经纠正的n位信息数据中的m位数据部分作为所述输出数据。
运用本发明,单元阵列的每个存储单元存储一位或多位数据。对于写入操作,把m位输入数据输入到编码器。例如,用m位输入数据补充0的(n-m)位数据(n>m),以转换成n位数据。例如,用2位零补充8位输入数据,以转换成10位数据。于是,把n位数据转换成把n位看作是一个码元的Reed-Solomon码。在补充(n-m)位数据之前,输出m位数据作为信息数据,同时在经历n位/m位变换之后输出m位数据作为校验数据。于是,将从编码器输出的m位数据连续馈送和写入到单元阵列中的单元。
Reed-Solomon码是把多个位看作一个码元的纠错码,以码元为单位纠错。对于读取操作,把从单元阵列检索的m位数据输入到解码器。于是,用对于其信息数据部分的m位数据补充(n-m)位数据,以转换成n位数据,而且对其校验数据部分进行m位/n位转换成n位数据,从而重现构成把n位看作是1个码元的Reed-Solomon码。接着,对重现构成的Reed-Solomon码进行纠错处理。于是,输出校正的n位信息数据的m位部分作为输出数据。
如上所述,输入和输出数据都是m位数据,从而编码器将n位(n>m)看作一个码元的Reed-Solomon码用于它的编码操作。因此,能够扩展代码长度,同时保持将数据与外部实体以m位为单位进行交换。出于这个原因,不需要为了编码的目的,将预定长度的信息数据分成段。这可以减小校验数据(冗余数据),同时保存解码数据的连续性。
附图说明
图1是作为本发明的第一实施例实施的快擦写存储器的方框图;
图2是典型的缩短Reed-Solomon码的示意图;
图3是示出如何发生位转换的解释图;
图4是作为本发明的第二实施例实施的存储卡的方框图;
图5是示出如何从单元阵列中读取数据的解释图;
图6是允许在512字节信息数据中纠正一个差错的4个缩短Reed-Solomon码的示意图;
图7是示出连续解码数据的解释图;
图8是作为本发明的第三实施例实施的快擦写存储器的结构的方框图;
图9是在快擦写存储器中的编码器的结构的方框图;
图10是示出在编码和解码时,对信息数据部分进行8位/10位转换操作的解释图;
图11是示出在编码和解码时对校验数据部分进行8位/10位转换操作的解释图;
图12是示出在快擦写存储器中的解码器的结构的方框图;
图13是示出在解码时进行10位/8位转换操作的解释图;
图14是示出连续解码数据的解释图;
图15是示出作为本发明的第四实施例实施的存储卡的结构的方框图。
图16是示出单元阵列的结构的示意图;
图17A和17B是示出存储单元的结构的方框图;
图18是示出在存储单元中的电压分布的图解表示;
图19是典型的缩短Hamming码的示意图;
图20是示出加入基于缩短的Hamming码的纠错电路的快擦写存储器的结构的方框图;
图21是典型的缩短BCH码的示意图;
图22是示出加入基于BCH码的纠错电路的快擦写存储器的结构的方框图;
图23是示出存储卡的结构的方框图,其中上述存储卡带有加入基于缩短BCH码的纠错电路的控制器;
图24A至24D是示出如何充电存储单元以进行多值记录的示意图;
图25是示出用于多值记录的在存储单元中的电压分布的图解表示;和
图26是示出加入基于缩短BCH码的纠错电路的多值记录快擦写存储器的结构的方框图。
本发明的较佳实施方式
图1示出实现本发明第一实施例的快擦写存储器10的结构。设计用于16值(4位)记录的快擦写存储器10包括能进行纠双错的基于缩短Reed-Solomon码的纠错电路。Reed-Solomon码和缩短Reed-Solomon码中的每一个把多位看作一个字节,以字节为单位进行纠错。其中,在上述出版物Hideki Imai的“CodeTheories”(Institute of Electronics,Information and Communication Engineers ofJapan)中示意地描述了Reed-Solomon码的细节。
现在,考虑把8位看作一个字节以对128字节的信息数据进行纠正两个差错的缩短Reed-Solomon码。在此情况下,如图2所示,校验数据由四个字节构成,代码总长度为132字节(=1056位)。
在图1中,快擦写存储器10包括具有多个存储单元的单元阵列11,编码器12,用于把8位并行输入数据Din转换成缩短Reed-Solomon码以提供待写入单元阵列11的写数据WD;以及8位/4位转换器13,用于把编码器12输出的1字节(8位)并行写数据WD转换成如图3所示被馈送到单元阵列11的4位并行数据(待存入存储单元的4位数据)。
快擦写存储器10还包括4位/8位转换器14,用于把从单元阵列11检索到的4位并行读数据RD转换成图3所示的字节(8位)并行数据;以及Reed-Solomon码解码器15,用于使在4位/8位转换器14中被转换成1字节并行数据的读数据RD经过纠错过程来提供输出数据Dout。在此结构中,编码器12和Reed-Solomon码解码器15构成纠错电路。然后,编码器12给128字节块的输入数据Din补充4字节的校验数据,以产生用于在128字节块的信息数据中进行纠正两个差错的缩短Reed-Solomon码。
在图1所示的快擦写存储器10中,如下实行数据写操作。即,把8位并行输入数据Din输入到编码器12。然后,编码器12把输入数据Din转换成用于128字节的信息数据的缩短Reed-Solomon码,以提供写数据WD。由8位/4位转换器13把编码器12输出的1字节(8位)并行写数据WD转换成待馈送到单元阵列11的4位并行数据,从而把经转换的数据连续写到构成单元阵列11的存储单元。
另一方面,如下发生数据读操作。由4位/8位转换器14把从单元阵列11检索到的4位并行读数据RD转换成1字节(8位)并行数据,将把此数据提供给Reed-Solomon码解码器15。如果读数据RD的代码都没有差错,则Reed-Solomon码解码器15以字节为单位输出无变化的信息数据作为输出数据Dout。如果读数据RD的一个代码有一个或两个差错字节,则Reed-Solomon码解码器15在纠错后以字节为单位输出信息数据作为输出数据Dout。
如果输入数据Din或输出数据Dout不是8位并行数据,则还可在编码器12的上游设置位转换器,以把输入数据Din转换成8位并行数据,或者可在Reed-Solomon码解码器15的下游安装位转换器,以把8位并行数据转换成代表输出数据Dout的并行或串行数据。
在第一实施例中,把Reed-Solomon码用作一种在存储单元(每个存储4位数据)构成的单元阵列11中以字节为单位进行纠错的纠错码,则可以对有限数目的纠错而获得充分的性能。因此,这使得减小纠错电路的规模并使所使用存储单元的数目变小成为可能。
以下示出第一实施例的效果。为了说明,假设65,536个信息数据单元构成一个块,1,024个块构成一个单元阵列,且以块为单位把数据写入存储器和从中读取数据。还假设在一百万次写/擦操作后正常制造的单元出错的几率为0.001%,此外,根据这些假设比较一百万次写/擦操作后块出错的几率。
在使用缩短BCH码来纠正128字节(即,1,024位)信息数据中高达八个差错位时,需要88位的校验数据。由于一个有缺陷的单元需要4位纠错,所以这种用于纠正八个差错的纠错码可对两个出错单元进行纠错。由于把1,112位存储在278个单元中,且一个块包含256个代码,所以通过以下公式(1)计算得到块出错的几率为大约0.000091%。
接着,在把缩短Reed-Solomon码用于纠双错时获得出一块出错的几率。在此情况下,可纠正高达两个字节的差错。这里,考虑到单个单元的差错不影响依据4位/8位转换的多个字节,所以由以下公式(2)来定义字节差错率,把两个单元信息的8位看作一个字节。因而,从接着的公式(3),可估计块产生缺陷的几率为大约0.000077%。
1-(1-1.0×10-5)2≈2.0×10-5 …(2)
因此,可理解,用于纠正八个差错的缩短BCH码和用于纠正两个差错的缩短Reed-Solomon码具有近似相同的纠错能力。然而,由于相对于BCH码的纠正八个差错,Reed-Solomon码的纠正两个差错要小得多,所以使用Reed-Solomon码允许所构成的纠错电路的规模远小于BHC码所构成的纠错电路的规模。此外,由于与BCH码的88位冗余数据相比,Reed-Solomon码的32位冗余数据小得多,所以Reed-Solomon码可使用更少量的存储单元。
接着,现在将描述本发明的第二实施例。图4示出实现本发明第二实施例的存储卡20的结构。存储卡20包括两个用于16值(4位)记录的快擦写存储器以及包含基于纠双错的缩短Reed-Solomon码的纠错电路的控制器。
如图4所示,存储卡20包括两个快擦写存储器21和22以及用于来往于快擦写存储器21和22的读写数据的控制器23。
此外,控制器23具有卡片接口24,用于与卡片外的设备交换数据;编码器25,用于把8位并行输入数据Din转换成缩短Reed-Solomon码以提供待写入快擦写存储器21和22的写数据WD;以及8位/4位转换器26,用于把编码器25输出的1字节(8位)并行写数据WD转换成如图3所示的4位并行数据(待存入存储单元的4位数据)。
快擦写存储器10还包括4位/8位转换器27,用于把从快擦写存储器21或22检索到的4位并行读数据RD转换成图3所示的1字节(8位)并行数据;Reed-Solomon码解码器28,用于使在4位/8位转换器27中被转换成1字节并行数据的读数据RD经过纠错过程来提供输出数据Dout;以及快擦写接口29,用于控制来往于快擦写存储器21和22的数据读写。
在以上结构中,编码器25和Reed-Solomon码解码器28构成纠错电路。然后,编码器25给128字节块的输入数据Din补充4字节的校验数据,以产生用于在128字节块的信息数据中进行纠正两个错的缩短Reed-Solomon码。
在图4所示的存储卡20中,如下实行数据写操作。即,输入数据Din通过卡片接口24取入卡片并发送到编码器25。编码器25把输入数据Din转换成用于128字节的信息数据的缩短Reed-Solomon码,以提供写数据WD。然后,由8位/4位转换器26把编码器25输出的1字节(8位)并行写数据WD转换成4位并行数据。在快擦写接口29的控制下,把经转换的4位并行数据写到快擦写存储器21或快擦写存储器22。
另一方面,如下发生数据读操作。由4位/8位转换器27把在快擦写接口29的控制下从快擦写存储器21或快擦写存储器22检索到的4位并行读数据RD转换成1字节(8位)并行数据,把经转换的1字节并行数据提供给Reed-Solomon码解码器28。如果读数据RD的代码都没有差错,则Reed-Solomon码解码器28以字节为单位输出元变化的信息数据作为输出数据Dout。如果读数据RD的一个代码有一个或两个差错字节,则Reed-Solomon码解码器28在纠错后以字节为单位输出信息数据作为输出数据Dout。这样,通过卡片接口24把Reed-Solomon码解码器28输出的输出数据Dout发送到卡片外。
如果输入数据Din或输出数据Dout不是8位并行数据,则还可在编码器25的上游设置位转换器,以把输入数据Din转换成8位并行数据,或者可在Reed-Solomon码解码器28的下游安装位转换器,以把8位并行数据转换成代表输出数据Dout的并行或串行数据。
如上所述,在第二实施例中,把Reed-Solomon码用作一种在快擦写存储器21和22中以字节为单位进行纠错的纠错码,这两个快擦写存储器构成包括存储单元(每个存储4位数据)的单元阵列形成的存储器部分。与第一实施例相同,第二实施例以有限数目的纠错而获得充分的性能。相应地,第二实施例也使得减小纠错电路的规模并使所使用存储单元的数目变小成为可能。此外,由于控制器23来纠错,所以允许纠错电路的规模比在把纠错电路安装在快擦写存储器21或22中时大。因此,即使多值记录中有大量差错,也可得到纠正。
这里,在以下重述从快擦写存储器读取数据的过程。不是以单元为单位,而是以所谓的页(例如,每页代表1,024个单元)为单位从单元阵列中同时读取数据。从输出缓冲器(见图5)中连续输出所读取的数据。因此,例如从16值记录快擦写存储器(其中,一页代表1,024单元的信息),检索4,096位(512字节)的信息作为一个单位。由于主要以字节(8位)为单位与存储器外的设备交换数据,所以Reed-Solomon码的码元长度最好为8位,从而保证一致性。
然而,把8位看作一个码元的Reed-Solomon码的代码长度为255个字节,这使得在编码时必须把512字节的数据分割成三或四段,给每一段补充校验数据(冗余数据)。图6示出以四个缩短Reed-Solomon码对512字节的数据进行示意编码的编码情况,每个Reed-Solomon码能纠正128字节的信息数据中的一个差错。
作为纠错码的普遍特性,如果补充相同数目的校验数据,则与在编码前对相同的信息数据进行分段时相比,当把信息数据作为整体进行编码时性能更好。在同时读取512字节的信息数据时,如果把全部512字节的信息数据作为整体进行编码,则效率较高。
此外,如果在编码时把一页数据分割成段,则输出的解码数据具有在解码时插入的间隔(见图7)。从系统性能的观点,应尽可能不间断地输出一页解码数据。因此,在这方面,最好把一页数据作为一个块进行编码。
接着,将描述本发明的第三实施例。图8示出实现本发明第三实施例的快擦写存储器30的结构。快擦写存储器30允许以字节(8位)为单位与外部设备交换数据。这种用于16值(4位)记录的快擦写存储器30包含基于能进行纠双错的缩短Reed-Solomon码的纠错电路。
在此情况下,由于把每页中的信息数据(例如,512字节)作为一个块进行编码,所以使用把10位看作一个码元的缩短Reed-Solomon码来缩短编码。这里,如果一页的信息数据由512字节构成,则用于纠双错的校验数据(冗余数据)包括需要516字节的代码长度的四个码元。由于把10位看作一个码元的Reed-Solomon码为1,023字节长,所以使得516字节长的代码可通过缩短来获得。此外,包括四个码元的校验数据总计为代表五个字节的40位。
如图8所示,快擦写存储器30包括具有多个存储单元的单元阵列31,编码器32,用于把8位并行输入数据Din转换成缩短Reed-Solomon码以提供待写入单元阵列31的写数据WD;以及8位/4位转换器33,用于把编码器32输出的8位写数据WD转换成如图3所示被馈送到单元阵列31的4位数据(待存入存储单元的4位数据)。
此外,快擦写存储器30包括4位/8位转换器34,用于把从单元阵列31检索到的4位读数据RD转换成图3所示的8位数据;以及Reed-Solomon码解码器35,用于使在4位/8位转换器34中被转换的8位读数据RD经过纠错过程来提供输出数据Dout。在此结构中,编码器32和Reed-Solomon码解码器35构成纠错电路。
图9示出编码器32结构。编码器32包括8位/10位转换器32a,通过给作为输入数据Din的8位数据补充2位零来把他们转换成10位数据;以及Reed-Solomon编码器32b,利用把10位看作一个码元的Reed-Solomon码对转换器32a输出的10位数据进行编码。Reed-Solomon编码器32b给10位数据的每个512码元的块补充四码元的校验数据(冗余数据),以产生能纠正512个码元中的两个差错的缩短Reed-Solomon码。
此外,编码器32包括10位/8位转换器32c,用于从10位数据中除去2位从而转换成8位数据;10位/8位转换器32d,用于改变10位数据的位结构从而转换成图11所示的8位数据;换向开关32e,用于给转换器32c和32d选择性地提供构成Reed-Solomon编码器32b输出的每个Reed-Solomon码的512码元的信息数据和四码元的校验数据;以及换向开关32f,用于选择性地输出相应于来自转换器32c的512码元信息数据的8位数据和相应于来自转换器32d的四码元校验数据的8位数据作为写数据WD。在被提供512码元的信息数据时,转换器32c输出构成信息数据部分的512字节的数据。另一方面,在被提供四码元校验数据时,转换器32d输出形成校验数据部分的5字节的数据。
将描述上述结构的编码器32的操作。把8位数据的8位输入数据Din馈送到8位/10位转换器32a,其中给此8位数据补充2位零从而转换成10位数据。然后,把此10位数据提供给Reed-Solomon编码器32b,并转换成缩短Reed-Solomon码用以纠正512码元的信息数据中的两个差错。
在来自Reed-Solomon编码器32b的每个516码元的Reed-Solomon码中,通过换向开关32e把512码元的信息数据发送到10位/8位转换器32c,在其中从所提供的10位数据中除去由上述8位/10位转换器32a所加的2位零而转换成8位数据(见图10)。然后,经由换向开关32f输出获得的8位数据作为写数据WD。
另一方面,在Reed-Solomon编码器32b输出的每个516码元的Reed-Solomon码中,通过换向开关32f把4码元的校验数据发送到10位/8位转换器32d,在其中改变校验数据的位结构而转换成8位数据(见图11)。然后,经由换向开关32f输出经转换的8位数据作为写数据WD。
图12示出解码器35的结构。解码器35包括8位/10位转换器35a,通过给作为8位数据补充2位零来把他们转换成图10所示的10位数据;8位/10位转换器35b,用于改变8位数据的位结构而转换成图11所示的10位数据;换向开关35c,用于把从4位/8位转换器34(图8)输出的8位读数据RD的每个512字节的信息数据部分和每个5字节的校验数据部分选择性地提供给转换器35a和35b;以及换向开关35d,用于选择性地提取相应于转换器35a输出的512字节的信息数据部分的10位数据以及相应于转换器35b输出的5字节的校验数据部分的10位数据,从而重新构成能纠正512码元的信息数据中的两个差错的缩短Reed-Solomon码。
此外,解码器35包括Reed-Solomon码解码器35e,用于使换向开关35d输出的Reed-Solomon码经过纠错过程;以及10位/8位转换器35f,用于从经过解码器35e的纠错的10位信息数据中除去2位从而转换成8位数据来提供图13所示的输出数据Dout。
将描述上述结构的解码器35的操作。在作为读数据RD提供的8位数据中,把每个512字节的信息数据部分提供给8位/10位转换器35a,在其中把2位零加到所提供的数据中而转换成10位数据(见图10)。另一方面,在作为读数据RD提供的8位数据中,把每个5字节的校验数据部分提供给8位/10位转换器35b,在其中改变所提供数据的位结构而转换成10位数据(见图11)。
然后,换向开关35d选择性地提取相应于转换器35a输出的512字节的信息数据部分的10位数据以及相应于转换器35b输出的5字节的校验数据部分的10位数据,从而可重新构成能纠正512码元的信息数据中的两个差错的缩短Reed-Solomon码。
此外,把换向开关35d输出的Reed-Solomon码提供给Reed-Solomon码解码器35e。如果一个代码包含一个或两个差错码元,则Reed-Solomon码解码器35e进行纠错。在解码器35e纠错后,把10位数据作为信息数据提供给10位/8位转换器35f,在其中所提供的数据中除去2位从而转换成8位数据(见图13)来提供输出数据Dout。
在图8所示的快擦写存储器30中,如下实行数据写操作。即,把1字节(8位)输入数据Din馈送到编码器32。然后,编码器32把2位零加到输入数据Din以转换成10位数据。把此10位数据转换成能纠正512码元的信息数据中的两个差错的Reed-Solomon码。输出补0前的8位数据作为信息数据,而输出位结构改变后的8位数据作为校验数据。然后,由8位/4位转换器33把编码器32输出的8位写数据WD转换成4位数据并馈送到单元阵列31。把所提供的数据连续写到构成单元阵列31的存储单元。
另一方面,如下发生数据读操作。由4位/8位转换器34把从单元阵列31检索到的4位读数据RD转换成馈送到解码器35的8位数据。在被提供此8位数据后,解码器35把2位零加到每个512字节的信息数据部分以转换成10位数据;每个5字节校验数据部分的位结构被改变以从8位转换成10位数据。这样重新构成了能纠正512码元的信息数据中的两个差错的Reed-Solomon码。此外,解码器35使重新构成的Reed-Solomon码经过纠错过程。从经纠正的信息数据中除去2位而转换成8位数据,以字节为单位输出此8位数据作为输出数据Dout。
如上所述,在第三实施例中,输入数据Din和输出数据Dout为8位数据,编码器32使用把10位看作一个码元的Reed-Solomon码进行其编码操作,因而使得延长代码长度同时保持以一个字节(8位)为单位与外部设备交换数据成为可能。相应地,不需要为了进行编码而例如把构成每页的512字节的信息数据分割成段。此方案使得减少校验数据(冗余数据)同时保持图14所示512字节解码数据构成的每页的连续性成为可能。
以下示出第三实施例的效果。假设65,536个信息数据单元构成一个块,1,024个块构成一个单元阵列,假设一个块中的甚至一个差错也将阻止对被认为有缺陷的该块的访问。现在,假设在一百万次写/擦操作后正常制造的单元出错(不可访问)的几率为0.001%。根据这些假设比较一百万次写/擦操作后正常制造的的单元出错的几率。
在使用缩短的Reed-Solomon码在512字节的信息数据(有5字节的校验数据(冗余数据)加到第三实施例的数据部分)中进行纠双错时,获得实际的出错块的几率。在此情况下,一个缩短Reed-Solomon码可纠正高达两个码元。如果把相应于两个单元的8位信息作为一个码元,则由以下公式(4)给出码元差错率。如此所提供的码元差错率是信息数据的码元差错率。校验数据(冗余数据)的码元差错率为单元出错率的大约2.5倍,即2.5×110-5。
1-(1-1.0×10-5)2≈2.0×10-5 …(4)
此外,码元的总数为516,一个块包含64个代码。由于校验数据的码元差错率高于信息数据的码元差错率,所以使用与校验数据有关的码元差错率来估计块发生缺陷的几率。相应地,从公式(5)来估计块实际出错的几率,估计得到近似于0.0023%或更少。
另一方面,在使用缩短Reed-Solomon码来纠正128字节的信息数据部分(有两字节的校验数据(冗余数据)加到数据部分)中的一个差错(1码元=8位)时,获得出错块的几率。由于每个代码的码元总数为130且一个块包含256个代码,所以通过以下公式(6)估计得到的几率在大约0.086%。
因此,把第三实施例的编码方法与使用缩短Reed-Solomon码来纠正补充了两字节的校验数据(冗余数据)的128字节的信息数据中的一个差错的编码方法相比,以上实施例的编码方法可提供比另一方法更高的纠错能力;然而,每页的校验数据中的字节计数从8减少到5。
接着,将描述本发明的第四实施例。图15示出实现本发明第四实施例的存储卡40的结构。存储卡40使用两个用于16值(4位)记录的快擦写存储器,且具有一控制器,该控制器包含基于把10位看作一个码元的用于纠双错的缩短Reed-Solomon码的纠错电路。
此外,控制器43包含卡片接口44,用于与卡片外的设备交换数据;编码器45,用于把8位并行输入数据Din转换成缩短Reed-Solomon码以提供待写入快擦写存储器41和42的写数据WD;以及8位/4位转换器46,用于把编码器45输出的8位写数据WD转换成如图3所示的4位数据(待存入存储单元的4位数据)。编码器45具有与图8中的快擦写存储器30的编码器32(见图9)相同的结构,从而省略对编码器45的详细描述。
此外,控制器43包括4位/8位转换器47,用于把从快擦写存储器41或42检索到的4位读数据RD转换成图3所示的8位数据;解码器48,用于使在4位/8位转换器47中被转换的8位读数据RD经过纠错过程来提供输出数据Dout;以及快擦写接口49,用于控制来往于快擦写存储器41和42的数据读写。解码器48具有与图8中快擦写存储器30的解码器(见图12)相同的结构,从而省略对解码器48的描述。
在图15所示的存储卡40中,如下实行数据写操作。即,输入数据Din通过卡片接口44取入卡片并馈送到编码器45。然后,编码器45把给输入数据Din补充2位零以转换成10位数据,继而把该10位数据转换成用于纠正512码元的信息数据中的两个差错的缩短Reed-Solomon码,输出补0前的8位数据作为信息数据,而输出位结构改变后的8位数据作为校验数据。然后,由8位/4位转换器46把编码器45输出的8位写数据WD转换成4位数据,在快擦写接口49的控制下,把此4位数据写到快擦写存储器41或42。
另一方面,如下发生数据读操作。由4位/8位转换器47把在快擦写接口49的控制下从快擦写存储器41或42检索到的4位读数据RD转换成被馈送到解码器48的8位数据。解码器48给每个512字节的信息数据部分补充2位零以把8位数据转换成10位数据,对每个5字节的校验数据进行位结构改变以从8位数据转换成10位数据,从而重新构成能纠正512码元的信息数据中的两个差错的Reed-Solomon码。此外,解码器48使重新构成的Reed-Solomon码经过纠错过程,并从经纠错的信息数据中除去2位以转换成8位数据,以字节为单位输出此8位数据作为输出数据Dout。这样,通过卡片接口44把解码器48输出的输出数据Dout发送到卡片外。
如上所述,在第四实施例中,输入数据Din或输出数据Dout也是8位数据,编码器45使用把10位看作一个码元的Reed-Solomon码来进行其编码操作,从而使代码长度延长同时保持以一个字节(8位)为单位与外部设备交换数据成为可能。相应地,不需要为了进行编码而例如把构成每页的512字节的信息数据分割成段,从而使得减少校验数据(冗余数据)同时保持图14所示512字节解码数据构成的每页的连续性成为可能。
此外,虽然以上示出第三和第四实施例在编码时给8位数据补充2位零来转换成10位数据,但使用其它的2位数据也可实现转换成10位数据。在这些情况下,应在解码时把相同的2位数据加到每个信息数据部分以转换成10位数据。
此外,虽然在以上第一到第四实施例中把两单元的数据作为一个字节,但作为一个字节的单元数不限于这两单元的数据,从而可考虑其它选择,即把一单元数据作为一个字节或把三个或具有其它适当数目的单元的数据作为一个字节。
此外,以上示出的第一到第四实施例把快擦写存储器配置用作其存储系统,但本发明不限于快擦写存储器,而可应用于诸如半导体存储器等其它不同的存储系统。
如上所述,依据本发明,把以字节为单位进行纠错的Reed-Solomon码用作应用于存储单元(每个存储多位数据)过程的存储器装置的纠错码,从而对有限数目的纠错提供了充分的性能,与以前相比,减小了纠错电路的规模,并减少了所包含的存储单元的数目。
此外,依据本发明,由于输入和输出数据为m位数据且编码器使用把n位(n>m)看作一个码元的Reed-Solomon码,所以可延长代码长度同时保持以m位为单位与外部设备交换数据。因此,不需要为了编码而把预定长度的每个信息数据部分分割成段,从而减少了校验数据(冗余数据)的量同时保持了解码数据的连续性。
工业应用性
如上所述,依据本发明的编码方法和存储设备适用于多值记录快擦写存储器和使用这种存储器的存储卡。
Claims (11)
1.一种存储装置,其特征在于,包括:
单元阵列,它具有多个存储单元,其中每个所述存储单元存储多位数据;
编码器,用于把输入数据转换成Reed-Solomon码以提供写数据,从而写入到所述单元阵列;和
Reed-Solomon码解码器,用于对从所述单元阵列检索到的读取数据进行纠错处理以提供输出数据。
2.如权利要求1所述的存储装置,其特征在于,所述输入数据和所述输出数据是预定数量位的并行或串行数据,所述存储装置还包括:
设在所述编码器的上游的第一位变换器以将所述输入数据转换成1字节并行数据;和
设在所述Reed-Solomon码解码器下游的第二位变换器,以把由所述Reed-Solomon码解码器输出的1字节并行数据转换成所述预定数量位的并行或串行数据。
3.如权利要求1所述的存储装置,其特征在于,构成单元阵列的所述多个存储单元中的每一个存储m位数据,m为至少2的整数,所述存储装置还包括:
插入所述编码器和所述单元阵列之间的第三位变换器,以把由所述编码器输出的1字节并行数据转换成m位并行数据;和
插入所述单元阵列和所述Reed-Solomon码解码器之间的第4位变换器,以把由所述单元阵列输出的m位并行数据转换成1字节并行数据。
4.如权利要求1所述的存储装置,其特征在于,构成所述Reed-Solomon码,从而将存储在所述单元阵列中的至少一个存储单元中的多个位看成是一个字节。
5.一种存储装置,其特征在于,包括:
存储部分,具有由存储多位数据的多个存储单元构成的单元阵列;和
控制器,用于把数据写入所述存储部分并从中读取数据;
其中,所述控制器包括:
编码器,用于把输入数据转换成Reed-Solomon码以提供写数据,从而写入到所述存储部分;和
Reed-Solomon码解码器,用于对从所述存储部分检索的读取数据进行纠错处理以提供输出数据。
6.如权利要求5所述的存储装置,其特征在于,由至少一个快擦写存储器构成所述存储部分。
7.一种编码方法,其特征在于,包括下列步骤:
用m位数据补充(n-m)位数据以转换成n位数据,n是大于m的整数;
运用将n位看作一个码元的Reed-Solomon码编码所述n位数据;和
在补充所述(n-m)位数据之前输出m位数据作为信息数据,同时在经历了n位/m位变换之后输出m位数据作为校验数据。
8.一种存储装置,包括:
单元阵列,具有多个存储单元;
编码器,用于将输入数据转换成纠错码以提供写数据,从而写入到所述单元阵列;和
解码器,用于对从所述单元阵列检索到的读取数据进行纠错处理以提供输出数据;
其特征在于,
所述编码器用m位输入数据补充(n-m)位数据以转换成n位数据,n是大于m的整数,运用将n位看作一个码元的Reed-Solomon码编码所述n位数据,而且在补充所述(n-m)位数据之前输出所述m位数据作为信息数据,同时在经历n位/m位变换之后输出所述m位数据作为校验数据;和
所述解码器用从所述单元阵列检索到的所述m位读取数据补充关于信息数据的所述(n-m)位数据,以转换成n位数据,使校验数据部分进行m位/n位变换而转换成n位数据,之后对所述经转换的n位数据进行纠错处理,提供在所述经纠正的n位信息数据中的m位数据部分作为所述输出数据。
9.如权利要求8所述的存储装置,其特征在于,构成所述单元阵列的所述多个存储单元中的每个存储q位数据,q是至少为1的整数,所述存储装置还包括:
插入所述编码器和所述单元阵列之间的m位/q位变换器,以将由所述编码器输出的m位数据转换成q位数据;和
插入所述单元阵列和所述解码器之间的q位/m位变换器以将由所述单元阵列输出的q位数据转换成m位数据。
10.一种存储装置,它包括由多个存储单元构成的单元阵列的存储部分、用于将数据写入所述存储部分和从中读取数据的控制器,其特征在于:
所述控制器包括编码器,它用于将输入数据转换成纠错码以提供写数据,从而写入到所述存储部分;和
解码器,用于对从所述存储部分检索到的读取数据进行纠错处理以提供输出数据;
其中所述解码器用m位输入数据补充(n-m)位数据以转换成n位数据,n是大于m的整数、运用将n位看作是一个码元的Reed-Solomon码编码所述n位数据和在补充所述(n-m)位数据之前输出所述m位数据作为信息数据,同时在经历n位/m位变换之后输出所述m位数据作为校验数据;和
其中,所述解码器用从所述单元阵列检索到的m位读取数据补充所述n-m位数据以转换成与其信息数据部分相关的n位数据、对所述m位读取数据的校验数据部分进行m位/n位变换成n位数据,之后对所述经变换的n位数据进行纠错处理并提供在所述经校正的n位信息数据中的m位数据部分作为所述输出数据。
11.如权利要求10所述的存储装置,其特征在于,由至少一个快擦写存储器构成所述存储部分。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP995898A JPH11212876A (ja) | 1998-01-21 | 1998-01-21 | 符号化方法およびそれを利用したメモリ装置 |
JP00995798A JP4099844B2 (ja) | 1998-01-21 | 1998-01-21 | メモリ装置 |
JP9957/1998 | 1998-01-21 | ||
JP9958/1998 | 1998-01-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1256005A true CN1256005A (zh) | 2000-06-07 |
Family
ID=26344787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99800053A Pending CN1256005A (zh) | 1998-01-21 | 1999-01-21 | 编码方法和存储装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6732322B1 (zh) |
EP (2) | EP0969480A4 (zh) |
KR (1) | KR100535291B1 (zh) |
CN (1) | CN1256005A (zh) |
DE (1) | DE69932962T2 (zh) |
WO (1) | WO1999038170A1 (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101536109A (zh) * | 2005-10-13 | 2009-09-16 | 特拉维夫大学拉莫特有限公司 | Mbc闪存中的错误校正的方法 |
CN1716443B (zh) * | 2004-06-18 | 2010-06-09 | 尔必达存储器股份有限公司 | 半导体存储装置及其误码修正方法 |
CN101192924B (zh) * | 2006-11-24 | 2011-01-26 | 北京大学 | 基于Reed-Solomon码的P2P存储系统编码方法 |
CN101395583B (zh) * | 2006-03-07 | 2011-03-23 | Nxp股份有限公司 | 具有存储着包含附加数据在内的页面的存储矩阵的电子电路 |
CN101067972B (zh) * | 2007-04-23 | 2012-04-25 | 北京兆易创新科技有限公司 | 一种存储器检错纠错编码电路及利用其读写数据的方法 |
CN101533671B (zh) * | 2008-03-10 | 2013-03-13 | 海力士半导体有限公司 | 非易失性存储装置及其操作方法 |
CN103117090A (zh) * | 2011-11-16 | 2013-05-22 | 三星电子株式会社 | 具有非易失性存储器件的多值逻辑器件 |
CN104011660A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 用于处理比特流的基于处理器的装置和方法 |
CN108694963A (zh) * | 2017-04-04 | 2018-10-23 | 爱思开海力士有限公司 | 数据转换设备及方法 |
TWI643201B (zh) * | 2017-11-27 | 2018-12-01 | 慧榮科技股份有限公司 | 編碼器及相關的編碼方法與快閃記憶體控制器 |
TWI665678B (zh) * | 2017-11-27 | 2019-07-11 | 慧榮科技股份有限公司 | 編碼器及相關的編碼方法與快閃記憶體控制器 |
CN110147872A (zh) * | 2018-05-18 | 2019-08-20 | 北京中科寒武纪科技有限公司 | 编码存储装置及方法、处理器及训练方法 |
CN114490167A (zh) * | 2022-01-25 | 2022-05-13 | 京东方科技集团股份有限公司 | 显示终端的验证方法及装置、存储介质、电子设备 |
US11995556B2 (en) | 2018-05-18 | 2024-05-28 | Cambricon Technologies Corporation Limited | Video retrieval method, and method and apparatus for generating video retrieval mapping relationship |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4074029B2 (ja) * | 1999-06-28 | 2008-04-09 | 株式会社東芝 | フラッシュメモリ |
EP1399819A2 (en) * | 2001-04-24 | 2004-03-24 | Koninklijke Philips Electronics N.V. | Improved error correction scheme for use in flash memory allowing bit alterability |
DE60229137D1 (de) | 2001-07-25 | 2008-11-13 | Sony Corp | Schnittstellenvorrichtung |
US6981196B2 (en) * | 2001-07-25 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Data storage method for use in a magnetoresistive solid-state storage device |
JP4112849B2 (ja) * | 2001-11-21 | 2008-07-02 | 株式会社東芝 | 半導体記憶装置 |
US6904492B2 (en) | 2001-12-19 | 2005-06-07 | Hewlett-Packard Development Company, L.P. | Write-once memory device including non-volatile memory for temporary storage |
GB2428496A (en) * | 2005-07-15 | 2007-01-31 | Global Silicon Ltd | Error correction for flash memory |
US7978541B2 (en) | 2007-01-02 | 2011-07-12 | Marvell World Trade Ltd. | High speed interface for multi-level memory |
KR100845529B1 (ko) | 2007-01-03 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 |
US8051358B2 (en) * | 2007-07-06 | 2011-11-01 | Micron Technology, Inc. | Error recovery storage along a nand-flash string |
US8065583B2 (en) * | 2007-07-06 | 2011-11-22 | Micron Technology, Inc. | Data storage with an outer block code and a stream-based inner code |
JP5127350B2 (ja) * | 2007-07-31 | 2013-01-23 | 株式会社東芝 | 半導体記憶装置 |
US8046542B2 (en) | 2007-11-21 | 2011-10-25 | Micron Technology, Inc. | Fault-tolerant non-volatile integrated circuit memory |
US8499229B2 (en) | 2007-11-21 | 2013-07-30 | Micro Technology, Inc. | Method and apparatus for reading data from flash memory |
KR101466695B1 (ko) * | 2008-04-30 | 2014-12-01 | 삼성전자주식회사 | 멀티 비트 레벨 데이터의 부호화 및 복호화 방법 |
WO2009136357A1 (en) * | 2008-05-09 | 2009-11-12 | Koninklijke Philips Electronics N.V. | Homework motivation system |
CN102823141B (zh) * | 2010-03-30 | 2015-09-16 | 国际商业机器公司 | 用于固态存储器件的两级bch码 |
US8386895B2 (en) | 2010-05-19 | 2013-02-26 | Micron Technology, Inc. | Enhanced multilevel memory |
US8972821B2 (en) * | 2010-12-23 | 2015-03-03 | Texas Instruments Incorporated | Encode and multiplex, register, and decode and error correction circuitry |
KR101736337B1 (ko) | 2011-02-28 | 2017-05-30 | 삼성전자주식회사 | 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법 |
US8782494B2 (en) * | 2011-10-04 | 2014-07-15 | Cleversafe, Inc. | Reproducing data utilizing a zero information gain function |
WO2013093669A1 (en) * | 2011-12-21 | 2013-06-27 | International Business Machines Corporation | Read/write operations in solid-state storage devices |
US9047214B1 (en) | 2012-05-22 | 2015-06-02 | Pmc-Sierra, Inc. | System and method for tolerating a failed page in a flash device |
US9183085B1 (en) | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
US8788910B1 (en) | 2012-05-22 | 2014-07-22 | Pmc-Sierra, Inc. | Systems and methods for low latency, high reliability error correction in a flash drive |
US9176812B1 (en) | 2012-05-22 | 2015-11-03 | Pmc-Sierra, Inc. | Systems and methods for storing data in page stripes of a flash drive |
US9021337B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive |
US8996957B1 (en) | 2012-05-22 | 2015-03-31 | Pmc-Sierra, Inc. | Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes |
US8793556B1 (en) | 2012-05-22 | 2014-07-29 | Pmc-Sierra, Inc. | Systems and methods for reclaiming flash blocks of a flash drive |
US8972824B1 (en) | 2012-05-22 | 2015-03-03 | Pmc-Sierra, Inc. | Systems and methods for transparently varying error correction code strength in a flash drive |
US9021333B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for recovering data from failed portions of a flash drive |
US9021336B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages |
US9577673B2 (en) | 2012-11-08 | 2017-02-21 | Micron Technology, Inc. | Error correction methods and apparatuses using first and second decoders |
US9026867B1 (en) | 2013-03-15 | 2015-05-05 | Pmc-Sierra, Inc. | Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory |
US9208018B1 (en) | 2013-03-15 | 2015-12-08 | Pmc-Sierra, Inc. | Systems and methods for reclaiming memory for solid-state memory |
US9009565B1 (en) | 2013-03-15 | 2015-04-14 | Pmc-Sierra, Inc. | Systems and methods for mapping for solid-state memory |
US9081701B1 (en) | 2013-03-15 | 2015-07-14 | Pmc-Sierra, Inc. | Systems and methods for decoding data for solid-state memory |
US9053012B1 (en) | 2013-03-15 | 2015-06-09 | Pmc-Sierra, Inc. | Systems and methods for storing data for solid-state memory |
KR102711422B1 (ko) * | 2020-04-21 | 2024-09-27 | 삼성전자주식회사 | 채널들에 신호들을 송신하는 송신기, 채널들로부터 신호들을 수신하는 수신기, 및 이들을 포함하는 반도체 시스템 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6167322A (ja) * | 1984-09-11 | 1986-04-07 | Nec Home Electronics Ltd | リ−ドソロモン符号・復号方式の訂正用メモリ制御回路 |
JPH0387000A (ja) * | 1989-08-30 | 1991-04-11 | Mitsubishi Electric Corp | 半導体記憶装置 |
US5226043A (en) * | 1990-12-27 | 1993-07-06 | Raytheon Company | Apparatus and method for data error detection and correction and address error detection in a memory system |
US5218569A (en) * | 1991-02-08 | 1993-06-08 | Banks Gerald J | Electrically alterable non-volatile memory with n-bits per memory cell |
US5459742A (en) * | 1992-06-11 | 1995-10-17 | Quantum Corporation | Solid state disk memory using storage devices with defects |
JPH06195896A (ja) * | 1992-12-28 | 1994-07-15 | Canon Inc | 記録再生装置、記録装置及び再生装置 |
KR950001695A (ko) * | 1993-06-18 | 1995-01-03 | 오오가 노리오 | 디스크 재생장치 |
US5475716A (en) * | 1994-01-18 | 1995-12-12 | Gi Corporation | Method for communicating block coded digital data with associated synchronization/control data |
US5450363A (en) * | 1994-06-02 | 1995-09-12 | Intel Corporation | Gray coding for a multilevel cell memory system |
JP3560074B2 (ja) * | 1994-07-29 | 2004-09-02 | ソニー株式会社 | 記録再生装置、及びメモリ制御装置 |
JP3153730B2 (ja) * | 1995-05-16 | 2001-04-09 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US5719884A (en) * | 1995-07-27 | 1998-02-17 | Hewlett-Packard Company | Error correction method and apparatus based on two-dimensional code array with reduced redundancy |
JPH09134313A (ja) * | 1995-11-10 | 1997-05-20 | Sony Corp | メモリ装置 |
JP3275697B2 (ja) * | 1996-04-05 | 2002-04-15 | 株式会社日立製作所 | 記録再生装置 |
JPH09288895A (ja) * | 1996-04-19 | 1997-11-04 | Toshiba Corp | 3値記憶半導体記憶システム |
US5864569A (en) * | 1996-10-18 | 1999-01-26 | Micron Technology, Inc. | Method and apparatus for performing error correction on data read from a multistate memory |
-
1999
- 1999-01-21 DE DE69932962T patent/DE69932962T2/de not_active Expired - Lifetime
- 1999-01-21 CN CN99800053A patent/CN1256005A/zh active Pending
- 1999-01-21 EP EP99901130A patent/EP0969480A4/en not_active Ceased
- 1999-01-21 WO PCT/JP1999/000217 patent/WO1999038170A1/ja active IP Right Grant
- 1999-01-21 US US09/381,661 patent/US6732322B1/en not_active Expired - Lifetime
- 1999-01-21 EP EP04023697A patent/EP1496519B1/en not_active Expired - Lifetime
- 1999-01-21 KR KR10-1999-7008621A patent/KR100535291B1/ko not_active IP Right Cessation
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716443B (zh) * | 2004-06-18 | 2010-06-09 | 尔必达存储器股份有限公司 | 半导体存储装置及其误码修正方法 |
CN101536109A (zh) * | 2005-10-13 | 2009-09-16 | 特拉维夫大学拉莫特有限公司 | Mbc闪存中的错误校正的方法 |
CN101395583B (zh) * | 2006-03-07 | 2011-03-23 | Nxp股份有限公司 | 具有存储着包含附加数据在内的页面的存储矩阵的电子电路 |
CN101192924B (zh) * | 2006-11-24 | 2011-01-26 | 北京大学 | 基于Reed-Solomon码的P2P存储系统编码方法 |
CN101067972B (zh) * | 2007-04-23 | 2012-04-25 | 北京兆易创新科技有限公司 | 一种存储器检错纠错编码电路及利用其读写数据的方法 |
CN101533671B (zh) * | 2008-03-10 | 2013-03-13 | 海力士半导体有限公司 | 非易失性存储装置及其操作方法 |
CN103117090A (zh) * | 2011-11-16 | 2013-05-22 | 三星电子株式会社 | 具有非易失性存储器件的多值逻辑器件 |
CN103117090B (zh) * | 2011-11-16 | 2018-04-20 | 三星电子株式会社 | 具有非易失性存储器件的多值逻辑器件 |
CN104011660A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 用于处理比特流的基于处理器的装置和方法 |
US9740484B2 (en) | 2011-12-22 | 2017-08-22 | Intel Corporation | Processor-based apparatus and method for processing bit streams using bit-oriented instructions through byte-oriented storage |
CN108694963A (zh) * | 2017-04-04 | 2018-10-23 | 爱思开海力士有限公司 | 数据转换设备及方法 |
CN108694963B (zh) * | 2017-04-04 | 2022-04-12 | 爱思开海力士有限公司 | 数据转换设备及方法 |
TWI643201B (zh) * | 2017-11-27 | 2018-12-01 | 慧榮科技股份有限公司 | 編碼器及相關的編碼方法與快閃記憶體控制器 |
TWI665678B (zh) * | 2017-11-27 | 2019-07-11 | 慧榮科技股份有限公司 | 編碼器及相關的編碼方法與快閃記憶體控制器 |
US10523243B2 (en) | 2017-11-27 | 2019-12-31 | Silicon Motion, Inc. | Encoder, associated encoding method, and flash memory controller utilizing divided partial parity blocks for circulant convolution calculations |
US10958292B2 (en) | 2017-11-27 | 2021-03-23 | Silicon Motion, Inc. | Encoder, associated encoding method and flash memory controller utilizing divided partial parity blocks for circulant convolution calculations |
CN110147872A (zh) * | 2018-05-18 | 2019-08-20 | 北京中科寒武纪科技有限公司 | 编码存储装置及方法、处理器及训练方法 |
CN110147872B (zh) * | 2018-05-18 | 2020-07-17 | 中科寒武纪科技股份有限公司 | 编码存储装置及方法、处理器及训练方法 |
US11995556B2 (en) | 2018-05-18 | 2024-05-28 | Cambricon Technologies Corporation Limited | Video retrieval method, and method and apparatus for generating video retrieval mapping relationship |
CN114490167A (zh) * | 2022-01-25 | 2022-05-13 | 京东方科技集团股份有限公司 | 显示终端的验证方法及装置、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP0969480A4 (en) | 2000-11-22 |
EP0969480A1 (en) | 2000-01-05 |
EP1496519A2 (en) | 2005-01-12 |
WO1999038170A1 (fr) | 1999-07-29 |
US6732322B1 (en) | 2004-05-04 |
DE69932962D1 (de) | 2006-10-05 |
DE69932962T2 (de) | 2007-02-01 |
KR100535291B1 (ko) | 2005-12-09 |
EP1496519A3 (en) | 2005-02-09 |
KR20010005558A (ko) | 2001-01-15 |
EP1496519B1 (en) | 2006-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1256005A (zh) | 编码方法和存储装置 | |
CN1113294C (zh) | 利用错误定位码校正一个多级单元存储器的方法和装置 | |
TWI533304B (zh) | 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置 | |
CN109979506B (zh) | 非易失性存储器及控制方法 | |
US8327230B2 (en) | Data structure for flash memory and data reading/writing method thereof | |
US9424178B2 (en) | Optimized flash memory without dedicated parity area and with reduced array size | |
US20030023911A1 (en) | Method for error correction decoding in an MRAM device (historical erasures) | |
KR20090101887A (ko) | 치환 변환을 사용하여 플래시 메모리 내의 에러를 피하는 방법 | |
CN1235691A (zh) | 应用交叉存取法校正多级单元存储器的方法和装置 | |
WO2010067361A1 (en) | Method and device of managing a reduced wear memory | |
EP2447842A1 (en) | Method and system for error correction in a memory array | |
US20140053043A1 (en) | Interference-Aware Assignment of Programming Levels in Analog Memory Cells | |
US20130242656A1 (en) | Host equipment, memory controler, and memory device | |
US8463982B2 (en) | Method of storing and accessing error correcting code in NAND flash | |
CN109872764B (zh) | 一种多级存储单元闪存的ecc多码率编解码系统及方法 | |
US20160179616A1 (en) | Operating method of flash memory system | |
JP4099844B2 (ja) | メモリ装置 | |
JPH11212876A (ja) | 符号化方法およびそれを利用したメモリ装置 | |
JPH11213693A (ja) | メモリ装置 | |
CN114968650B (zh) | 数据巡检方法及装置、介质、ssd设备 | |
KR20140066498A (ko) | 멀티 레벨 셀 플래시 메모리의 페이지 단위 클러스터링 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C01 | Deemed withdrawal of patent application (patent law 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |