CN102243892A - 数据存储方法和装置 - Google Patents

数据存储方法和装置 Download PDF

Info

Publication number
CN102243892A
CN102243892A CN2011100969346A CN201110096934A CN102243892A CN 102243892 A CN102243892 A CN 102243892A CN 2011100969346 A CN2011100969346 A CN 2011100969346A CN 201110096934 A CN201110096934 A CN 201110096934A CN 102243892 A CN102243892 A CN 102243892A
Authority
CN
China
Prior art keywords
valid data
additional
data
bit
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011100969346A
Other languages
English (en)
Other versions
CN102243892B (zh
Inventor
U·巴克豪森
M·格泽尔
T·柯恩
T·拉贝纳尔特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN102243892A publication Critical patent/CN102243892A/zh
Application granted granted Critical
Publication of CN102243892B publication Critical patent/CN102243892B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/155Shortening or extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明涉及用于对数据编码的方法和装置。在对有效数据进行编码时,可能期望的是将有效数据标记为无效的。这例如在应更新所存储的数据的应用中可能出现,因为更新的数据附加地被存储,并且旧的所存储的数据被标记为无效的。为了能够通过数据的值标记所存储的数据的无效性,并且可靠地使用识别或者纠正错误的编码,给有效数据扩展附加数据,并且将编码应用于扩展的有效数据。

Description

数据存储方法和装置
技术领域
本发明涉及用于存储数据的方法和装置。
背景技术
作为单个/独立芯片或者与逻辑电路一起集成的非易失性存储器(闪存)趋向于最高集成,如逻辑组件那样。随着更小的结构宽度,由于系统的日益复杂性和在闪存的情况下要存储的数据量的提高得出明显更大的存储需求以便能够合理地操作这些应用。与“传统的”EEPROM存储器相比,闪存的特色在于比较小的单元面积,使得闪存应用于大多数应用(尤其是还有数据存储器)。但所述闪存作为缺点具有较小的擦除粒度
Figure BSA00000476008800011
因此在大多数闪存的情况下最小可擦除单元是扇区(典型地大于1kB)。
由于日益的微型化可能的是,在相同的芯片面积时实现越来越多的存储单元,其中干扰影响增多,所述干扰影响可能在诸如编程、擦除和读的操作时影响存储单元的可靠性。但是这些不期望的效应中的很多通常仅以统计和/或者随机的方式出现。因为这个原因而应用错误纠正和识别的方法来保证在这些影响下存储器的有秩序的工作。在此所采用的方法在此遵循相应应用的质量标准(因此例如在应用于汽车时最高质量标准适用)以及干扰影响的作用或范围。
对于在这种情况下尤其所考虑的闪存而言,不限制一般性地考虑具有附加总奇偶校验的缩短的BCH码,其被设计用于1位和2位错误纠正以及3位错误识别,具有最小码距为6,并且具有64位的有效数据区。为考虑总奇偶校验,给BCH码扩展奇偶校验,如技术人员所已知的和例如在MacWilliams,F.和Sloan,A.的“The Theory ofError-Correcting Codes”(Amsterdam,1977,p.27ff)中所述的。在此,实际上感兴趣的是具有至少大约16个有效数据位的存储器,因为对于较少数量的有效数据位而言,所需要的校验位的数量比较大。通过具有附加总奇偶校验和码距6的BCH码对1位和2位错误的错误纠正以及对3位错误的错误识别对于技术人员而言是已知的和例如在US4030067中得以描述。为了也考虑总奇偶校验,给纠正1位和2位错误的BCH码的H矩阵添加另一个校验位,该校验位实现总奇偶校验。在此在US4030067中,给BCH码的H矩阵添加完全包含1的行。
对于作为示例所考虑的64位的有效数据区,于是得出总共15个校验位,其中14个校验位可被分配给原有的BCH码,第15位表明总奇偶校验。于是,整个码字具有长度64+15=79位,其被编程到存储器中。由于在闪存的情况下小的擦除深度,现在经常发生,在擦除过程发生以前,在不同时刻多次存放确定类型的数据,例如公里计数器的状态。这些数据于是多次与部分地已经比较旧的和已经不再是当前的值处于存储器中。使用所谓的无效化标记将不再有效的较旧的数据明确地标明为不相关的或无效的。在此可以如此选择这种标记,使得在本示例中对要标记为无效的数据的所有79个位(即数据的有效数据位和校验位)用1编程或者改写。得出的标记为无效的字因此在其所有位置上均具有1。
在此,不利地存在以下可能性,即改变的码字陷于与所使用的错误识别或错误纠正码冲突中,并且妨碍或使错误识别或错误纠正不可能。
发明内容
本发明所基于的任务在于,提供一种用于借助于错误识别码编码的方法和装置,利用其避免从现有技术中已知的缺点。
按照本发明,通过具有权利要求1或15的特征的方法以及具有权利要求10或18的特征的装置来解决这一任务。
从属权利要求描述以下发明的有利实施形式。
按照一种实施形式,如此扩展有效数据,使得在使用编码时具有用来标明为无效数据或者用来无效化的特定值的字根据所使用的编码是有效码字。因此可以实现,能够借助于码字的特定值使数据无效化,并且在读码字时所使用的编码接受码字。
因此能够在解码时或者由解码装置识别出有效字或者由此生成的码字是无效的。借助于扩展能够减少或避免以下情况,在所述情况中在预先给定的有效数据宽度、预先给定的编码方法以及预先给定的用来标明无效数据的特定值的情况下,特定值不是有效的码字,因此在解码时出现困难。
特定值原则上可以采取所有值,但对于非易失性存储器而言通常是全1矢量(All-1-Vektor),因为可借助于写过程将各个位从0编程为1,使得与值无关地借助于写操作将所写的数据总是转化为全1矢量。
可以以不同的方式实现无效化。一方面可以规定,在有效数据的值域内预留确定的值,并且将其用来标明无效的数据。只要数据有效,则必须注意预留值不出现。一旦应该使数据无效化,则用预留值对其改写。尤其可以如此选择有效数据或有效字的预留值,使得根据编码由此生成的码字是全1矢量。在这种情况下可以根据有效数据这样生成附加数据,使得在出现有效数据的预留值时如此生成附加数据,使得由有效数据和附加数据生成的码字采用所期望的特定值和尤其是全1矢量。可以借助于组合系统(Kombinatorik)或者逻辑连接电路来生成附加数据,所述附加数据也可以仅仅是单个位,其中所述组合系统或者所述逻辑连接电路能够使有效数据在逻辑上逻辑连接并且由此生成附加数据。
在此,可以如此生成附加数据,使得仅当对于生成码字的特定值需要时,所述附加数据才仅仅取决于有效数据或仅仅从有效数据生成。这例如当有效数据采用预留值时是这种情况。如果为此不需要附加数据,或者如果有效数据的值不采用预留值,则可以将附加数据用于其它目的。
在另一实施形式中,通过将码字直接设为特定值来导致无效化。例如通过编码装置例如根据无效化指令与所供应的有效数据无关地生成具有特定值的码字。除此之外,在由编码装置所生成的码字被写入存储器中之前,布置在编码装置之后的装置也可以如此改变所述码字,使得所述码字采用特定值。在这种情况下可以将有效数据的全值域用于有效值,因为不通过有效数据的值本身触发无效化。但是可能的是,即使并未打算无效化,在有效数据和附加数据的确定的组合时有秩序地
Figure BSA00000476008800031
生成的码字也采用特定值。为了避免这种情形,必须保证,在无有意的无效化的情况下,附加数据从不与有效数据一起产生特定值作为码字。为此可以规定,根据有效数据如此生成附加数据,使得编码装置的有效数据和附加数据只能够生成具有与该特定值或者所有特定值不同的值的码字。
在任何情况下就附加数据来说附加存储位置可供使用,所述附加存储位置可以被提供给用户或者可被用来存储系统数据。
按照一种实施形式,在使用错误识别码的情况下将包含有效数据位的有效数据编码成码字,其中根据有效数据和至少一个附加位生成码字。借助于组合函数根据有效数据和附加信息生成至少一个附加位。
在一种实施形式中涉及一种在使用具有所包括的总奇偶校验的缩短BCH码的情况下针对K个要检查的有效数据位u1,u2,...,uK(其中K≥16)和m个校验位c1,c2,...,cm(其中m≥13)用于编码和用于对1位和2位错误进行错误纠正以及用于对3位错误进行错误识别的电路装置,所述缩短BCH码具有长度K+m+1,其通过缩短利用(2n-1-m,2n-1)生成矩阵G和(m,2n-1)-H矩阵H从具有所包括的总奇偶校验的未缩短BCH码中确定并且具有码距6,其中所述未缩短BCH码具有长度2n-1,其中2n-1>K+m+1,其中K是整数和作为子电路的电路装置包含至少一个编码器和一个校正子发生器(Syndromgenerator),具有以下特征:
a)编码器具有K个第一输入端,在所述第一输入端处施加有效数据位u1,u2,...,uK的K个二进制值,和另一个1位宽的输入端,在该输入端处施加第(K+1)个附加位uK+1,其中如此确定该附加位uK+1的值,使得至少当u1=u2=...=uK=0时uK+1=0适用,并且至少当u1=u2=...=uK=1适用时uK+1=1适用,
b)如此实现编码器,使得缩短码的码字在功能上按照关系
v1,...,vK+m+1=(u1,...,uK,uK+1)·Gverk构成,式中Gverk是具有所包括的总奇偶校验的缩短BCH码的(K+1,K+1+m)G矩阵,
c)用于形成校正子的子电路实现缩短码的H矩阵Hverk=(h1,...,hK+m+1),该H矩阵是(m,K+1+m)矩阵,其中H矩阵Hverk的列h0,...,hK+1+m是未缩短码的H矩阵H的列的这样的子集,使得
Σ i = 1 K + m + 1 h i = 0
适用,并且其中以分量方式以2为模(modulo)实施列矢量hi的和。
在一种改进方案中,K=2k,其中k≥4。
在一种改进方案中,如此确定附加位uK+1,使得
Figure BSA00000476008800042
适用。
在一种改进方案中,使用用于编码和用于对1位和2位错误进行错误纠正和用于识别3位错误用以纠正错误和用于识别存储器中的错误的电路。
在一种改进方案中,存储器是闪存或闪速存储器(Flash-Memory)。
在一种改进方案中,如此确定附加位uK+1,使得
Figure BSA00000476008800051
适用。
在一种改进方案中,附加位uK+1=ui和i是值1,...,K中的一个。
在一种改进方案中,如果并非所有有效数据位u1,u2,...,uK均等于0或者所有有效数据位u1,u2,..,uK均等于1,则使用附加位uk+1的值来存储附加二进制信息、。
在一种改进方案中,使用附加位uk+1的值来显示是否已正确擦除或没有正确擦除存储器或存储区的块。
在一种改进方案中,使用附加位uk+1的值来显示是否正确写或没有正确写暂时处于擦除状态的存储器或存储区的块。
在一种改进方案中,使用附加位uk+1的值来存储计数器读数的分量的值。计数器读数可以说明闪存的擦除循环
Figure BSA00000476008800052
的数量。计数器读数可以说明闪存的写循环的数量。计数器读数也可以说明车辆的公里读数。
在一种改进方案中,使用附加位uk+1来存储闪存的状态信息。
此外附加位uk+1还可用来存储电压设置的分量、控制设置或者密钥的分量。
附加位uk+1的值对于测试目的可能是可逆的。
概念“错误识别”或“错误识别的”或者“错误纠正”或“错误纠正的”与错误识别和/或者错误纠正或识别错误的和/或者错误纠正的意义相同地被使用,因为错误纠正总是也包含错误识别。
如果通过错误纠正码防止存储器出错,则改变的字(其例如标记为无效的和在所有位置均具有1并且也被称作全1矢量)必须是有效的码字。
但是在码长n=79的情况下不可能的是,具有仅仅编程(为1)的位置的字是2位错误纠正和3位错误识别的BCH码的有效码字,这是不利的。将全1矢量重新编码成零也是不可能的,因为在闪存的情况下已经通过擦除后的状态占用了该码字。如果字的所有位置均为0,则也称作全零矢量。
因此全1和全零两种矢量必须是有效的码矢量。对技术人员已知的是,如果分配给矢量v的校正子
s=H·vT
等于Q,则v=vi,...,v,恰好是具有H矩阵H的线性码的码字。H矩阵也称作校验矩阵。在此,如果线性码具有m个校验位和长度m,则所述矩阵H
H=(h1,...,hn)
是由n个不同的m维列矢量h1,...,hn组成的(m,n)矩阵。表示m维列矢量,其分量全为0。校正子s是m维矢量,vT是行矢量v的转置矢量,也就是相应的列矢量。
线性码对技术人员是已知的。除此之外,例如在MacWilliams,F.和Sloan,N.的The Theory ofError-Correcting Codes(Amsterdam,1977)中给出介绍描述,其中尤其应该参阅第1章。可看出如果n是奇数,则n维矢量
Figure BSA00000476008800061
(也称作全1矢量)不可能是有效的码矢量,如对于n=79情况如此。如果将H矩阵乘以转置全1矢量,则可将校正子s确定为
s=H·(1,...,1)T=h1+h2+...+hn
                                   ,
其中“+”在这里表示伽罗瓦域(Galoisfeld)GF(2)中的分量加法,也就是m维列矢量h1,...,hn的以2为模的分量加法(komponentenweise Addition modulo 2)。由于H矩阵的对应于总奇偶校验的行包含n=79个1,因此校正子的对应于该行的分量等于1,因为n是奇数。因此校正子不等于0,并且对于n为奇的,全1矢量可能不是码矢量。
这要求给码扩展至少一个附加位,现在将对此进行描述。这里首先仅通过全1矢量和全零矢量均应该为码矢量的条件来确定该附加位的值。因此如果所有有效数据位均等于1,则附加位必须采用值1和如果所有有效数据位均等于0,则附加位必须采用值0。
如果全1矢量是所考虑的码的码矢量,则当有效数据位u1,...,u64和附加位u65分别等于1时,校验位c1,...,c15被确定为1,...,1,因为位u1,...,u64、u65的值和校验位c1,...,c15之间的分配是明确的。
在64个有效数据位时,对于这些位有264个用于这些位的不同的可能占用(Belegung)。如所述,首先仅针对所述占用中的两个确定附加位,否则可以自由选择。现在令人吃惊地,这尤其对于闪存能够实现对所述附加位的有利使用。
在闪存中,写单元和读单元通常有不同的大小,因为向闪存中的物理写通常比读需要更长的时间。如技术人员所知道的那样,首先将要写的数据在页面(Page)中集中,然后在编程步骤中写入存储器中。
在图11中概述页面111、也就是写单元的原理结构。写单元通常由多个块组成,在图11中由8个块Block1 1111,...,Block8 1118组成,所述块分别表示读单元。
在图11中每一个块Blocki均由64个有效数据位(ui,...,u64)i、一个附加位
Figure BSA00000476008800071
和15个校验位(c1,...,c15)i组成。在本示例中,页面由8个块组成,这总共导致每个块8个附加位,其中可向所述附加位写对应用相关的不同信息。
作为示例对下面的选项进行描述:
例如对于数据存储应用而言,经常值得期望的是,通过成功标记(Success-Marker)显示成功的编程(写)和/或者擦除。这特别是在这样的情况下是必要的:其中通过复位、例如作为电压供应扰动(Einbruch)的结果中断闪存上的编程过程。这可能导致存储单元内容仅不充分地被写或删除的状态。为了避免这一点,在成功完成编程过程或者擦除过程之后设置标记。如果缺少该标记,则从而向系统显示没有正确写或擦除属于该标记的存储内容。例如对于编程而言,可以将具有值1的这样的标记写入附加位中,使得例如全1矢量仍然是有效的码矢量。
附加位的另一有利应用是存储编程或擦除循环的数量。众所周知,由于单元的电应力(Stress),数据存储器不能任意地经常被重写,并且因此遭受最大数量的写/擦除循环(耐久性)。为了保证遵守该极限并且使其可检查,可以将写/擦除循环的数量存放在附加位的区域中。于是例如借助于该信息可以根据在附加位中所存储的计数器读数调整闪存中的内部电压和编程时间,以便例如补偿单元的老化效应。
对于安全临界的应用而言,经常要求将属于数据的地址(如字线地址)一起集成在要写的字中,以便能够检查地址的完整性。同样可以将属于数据的地址写入附加位中。于是在读时能够以简单的方式检查所施加的地址的正确性。另一安全临界的应用是存放用来对安全临界的数据进行加密(chiffrieren)和解密的密钥信息。
例如同样可以将诸如电压设置或者控制设置或者芯片温度之类的控制或状态寄存器内容存储在附加位中。
在此,只有在所有K个有效数据位均等于1时保证附加位uK+1等于1,并且在所有有效数据位均等于0时为0。这并不是上述功能的重要限制,因为例如很少出现将全1编程为1。当然所述应用示例不是决定性的,因为页面的块的附加位(例如如在图11所示,在8个块的情况下有8个附加位)实际上可以存储每一个有助于芯片运行或应用的信息。
上述应用因此有利地起作用,因为在闪存中对于每个编程脉冲总是编程完整页面,所述页面由Mx64个数据块组成或者如果包括2位错误的错误纠正以及3位错误的错误识别,则由Mx80个数据块组成。
尽管在所述示例中每80个位只存在一个附加位,但是可以在编程过程时附加地存储直达M个位。
附图说明
以下将借助于实施例对本发明进行阐述。在此
图1示出按照现有技术的用于错误纠正和错误识别的电路的方框图,
图2示出按照现有技术的线性码的编码器的方框图,
图3示出按照现有技术的线性码的校正子发生器的方框图,
图4示出具有64个有效数据位和第65个附加位的编码器的方框图,
图5示出校正子发生器的方框图,
图6示出用于使用附加位来存储附加信息的电路,
图7示出用于确定附加位的值的函数g的值表格,
图8示出图7的布尔函数g的可能实现,
图9示出用于将附加信息存储在闪存中的组合电路,
图10示出用于利用“无效”指令将附加信息存储在闪存中的逻辑电路,
图11示出具有8个块的闪存的页面,
图12示出附加信息在闪存的页面中的存储。
具体实施方式
由于技术人员熟悉错误纠正和错误识别BCH码的结构,其此外在诸如McWilliam,F.和Sloane,N.的“The Theory of Error Correcting Codes”(NorthHolland,Amsterdam,1977)的关于编码理论的教科书中被描述,这里仅简短概括对本发明重要的方面。为此应该对用来描述本发明的最重要的编码理论概念进行简短描述。因此,在本发明中使用具有所包括的总奇偶校验
Figure BSA00000476008800091
的二进制缩短BCH码以最小码距6用于1位和2位错误纠正和用于3位错误识别。在此涉及特殊线性码,其与每种线性码一样可以通过生成矩阵(Generatormatrix)G和H矩阵H来描述。
用n表示码的长度,用m表示校验位的数量,和k表示信息位或数据位的数量。在此k=n-m适用。G矩阵G于是是具有k行和n列的(k,n)矩阵,H矩阵H是具有m行和m列的(m,n)矩阵。
在其系统形式中,对于生成矩阵而言
G(Pk,m,IK,)            (1)
适用,其中IK是K维单位矩阵,(K,m)矩阵PK,m被称作奇偶校验矩阵。注意到,这里将校验位附在信息位左侧。同样也可以将校验位附在信息位右侧。(在这种情况下,G矩阵具有形式G=(IK,PK,m)。在其系统形式中,属于在方程式(1)中所示的G矩阵的H矩阵是
H = ( I m , P m , K T ) - - - ( 2 )
Figure BSA00000476008800093
是矩阵PK,m的转置矩阵,和Im是m维单位矩阵。G矩阵的K个行构成K维矢量空间的基础,其元素为所考虑的码的码字。根据码u=u1,..,uK的K个信息位可以将所属码字v=v1,..,vn的n个位确定为
v1...,vn:=(u1,...,uk)·G    (3)
H矩阵的行构成相应正交矢量空间的基础。除了矩阵G和H的系统形式之外,这些矩阵的非系统表示也是已知的,其例如在Lin,S,Costello、D.Error ControlCoding(Fundamentals and Applications,Prentice Hall,1987)和MacWilliams,F.和Sloan,A.的The Theory ofError Correcting Codes(Amsterdam,1977)中得以描述。矩阵H用于检查n维矢量r=r1,...,r1是否为所考虑的码的码矢量。适用的是
s=H·rT=r·HT,             (4)
其中s是m维矢量,其被称作r的校正子。如果r是码矢量,则校正子恰好等于0。如果r以错误矢量e不同于码矢量v,则
s=H·rT=H·(vT+eT)=H·eT。(5)
如果错误矢量等于0矢量,则r=v且存在码矢量。在i位错误的情况下,恰好错误矢量e的i个分量等于1,且所有其它分量等于0。
图1示出按照现有技术的用于错误纠正和错误识别的电路的方框图。在通过所考虑的码的G矩阵确定的编码器11中将所施加的K位宽的数据u编码成n位宽的码字v,并且以编码形式写入存储器(Memory)12中。如果数据被读出,则在通过所考虑的码的H矩阵确定的校正子发生器13中将编码数据处理成m位宽的校正子s。用v’表示读出的数据,以便表明在将数据存储到存储器中时或者在将其保存在存储器中时可能出现错误,因此v不必要等于v’。一般v’v+e适用,其中将n分量的矢量e=e1,...,en称作错误矢量。如果e=0,则不存在错误。
具有m位宽的错误校正子s的校正子发生器13的输出端同时与解码器14的m位宽的输入端和错误识别电路16的m位宽的输入端相连接。解码器14根据所施加的错误校正子s生成n位宽的错误矢量e,其在校正器15中以分量方式与从存储器12中读出的v’的分量XOR逻辑连接。以符号+”表示XOR逻辑连接。在图1中,错误识别电路16是组合电路,其根据错误校正子s确定是否存在1位、2位...错误。
在图2中说明,如何按照现有技术采用k个数据位u=u1,...,‘uK的编码。字宽度对应于具有64位有效宽度的信息字到具有79位的码字的编码,如在具有所包括的总奇偶校验和码距6的缩短BCH码时情况如此。承载要编码的字u=u1,...,u64的64位宽的输入线21连接到编码器22的64位宽的输入端,所述编码器的79输入线23承载所属的码字v=v1,...,v79。在使用XOR树的情况下,编码器实现方程式(3)。
图3按照现有技术示出实现方程式(4)的校正子发生器。同样也可以以技术人员已知的方式通过XOR树来实现所述校正子发生器。
承载79位宽的字r=v+e的n=79数据线31连接到校正子发生器32的输入端,所述校正子发生器形成15位宽的校正子s=H·rT并且向其15位宽的输出线33输出。
图3中的校正子发生器的H矩阵H15,79是缩短为79列的BCH码的11-矩阵,所述BCH码从长度127的具有附加总奇偶校验的未缩短BCH码获得。
如所述,长度79的仅由1组成的矢量不能通过校正子发生器映射到校正子0。因此该矢量不是码矢量,这是不利的。
现在应借助于具有61个有效数据位的示例对本发明进行更详细的阐述,其中本发明当然并不局限于64个有效数据位。
图4说明用于64个有效数据位的本发明编码器。如图4中所示,现在给K=64个有效数据位u1,...,u64添加另一第(K+1)个位,这里是第65个位u65。逻辑上通过组合系统42从64个有效数据位u1,...,u64推导出第65个位u65,所述组合系统实现具有
以及
Figure BSA00000476008800112
的布尔函数f。通过方程式(6)部分地确定布尔函数f。如果所有有效数据位均等于0,则第(K+1)个位(这里是位u65)被确定为0,和如果所有有效数据位均等于1,那么被确定为1。对于有效数据位的所有其它占用,不通过方程式(6)确定附加位和函数f的值,使得可以使用未确定的值用来优化函数f或者以有利的方式用来将其它信息存储在附加位中,如后面更精确阐述的那样。
如果并非所有有效数据位均等于0并且并非所有有效数据位均等于1,则尤其当使用附加位uK+1用来存储闪存中感兴趣的附加信息时得出本发明的有利扩展方案。承载有效数据u1,...,u64的64位宽的数据线41不仅引到编码器43的64个第一输入端中,而且也引到用来实现组合函数f42的组合系统的输入端中,所述组合系统在其输出端45处形成附加位65。组合系统42的引导第65个附加位的1位宽的输出端与编码器的第65个输入端相连接。编码器根据(65,80)G矩阵G65,80将在其输入端处所施加的数据u1,...,u65编码成80位宽的码字v1,...,v80,在其输出端44处将该码字输出。这里与图2中的G矩阵不同,可以以系统或非系统形式使用的G矩阵G65,80是原始长度127的具有总奇偶校验的缩短为80位的BCH码的G矩阵,对于所述BCH码而言,矢量
Figure BSA00000476008800113
也是码矢量。
可以按照常见的方法从缩短的H矩阵H15,80确定该G矩阵,其方式是,例如将H矩阵转化成其系统形式,然后从中直接看出相应的G矩阵,如技术人员已知的和如例如在书籍Lin,S.和Costello,J.的Error Control Coding(Fundamentals and Applications,Prentice Hall,1983)中所述的那样。
现在应更详细地阐述H矩阵的确定。在本发明当然不局限于的所示的示例中,此外认为,可对65个位进行编码,其包含64个有效位和第65个附加位。由于存在具有长度15、31、63、127,...、对于k1=4,5,6,...而言一般具有长度n=2k1-1的未缩短BCH码,因此这里需要未缩短BCH码的长度为127=27-1。通过缩短、也就是通过从未缩短码的H矩阵的127列中删除47列来从该码确定所期望的码。所考虑的BCH码的所属模块多项式(为了简化起见,但并非必要地,将其选择为本原多项式)在前面(vom)是次(Grad)k1=7。例如在书籍Peterson,W.和Weldon,E的Error Correcting Codes(1IT Press,2.版,1972)的附录C中找到具有本原根α=z的该7次本原多项式G1(z),其是伽罗瓦域GF(27)的模块多项式(Modularpolynom)。适用的是
G1(z)=z7+z3+1。
从相同的源得出根α3=z3的最小多项式G2(z)。同样具有次k2=7。适用的是
G2(z)=z7|z3|z2|z|1。
通过G1的次k1和G2的次k2以及通过用来检查总奇偶校验P的附加位将校验位的数量m确定为
m=ki+k2+1=7+7+1=15。
因此在所考虑的示例中通过15个校验位来确证从64位有效数据和第65个附加位得出的65个位。具有附加总奇偶校验的缩短BCH码的长度为80。可以将具有附加总奇偶校验的BCH码的H矩阵以分离形式表示为
H = H 1 H 3 P .
如技术人员已知的和如例如在US 4030067中所述的,给不考虑总奇偶校验的BCH码的H矩阵
H = H 1 H 3
添加仅由完全为一的唯一的行组成的矩阵P。在此是
H1-(α0α1,...,an-1),
H3=((α0)3,(α1)3,...(αn-1)3),
Figure BSA00000476008800131
由于这里k1=7适用,对于i=0,1,..,126的幂αi以常见的方式在伽罗瓦域GF (27)中被表示为c的7分量矢量表示。在所考虑的示例中,n=2k1-1=127,并且与之相应地可以以127为模考虑α=z的指数。为了将长度127的未缩短BCH码缩短为长度65+15=80,现在可以从未缩短码的H矩阵的127个列中删除47个列,使得80个剩余列的分量方式的XOR和得出0矢量。由于具有80个列的剩余列的数量为偶数,因此在缩短H矩阵的最后的行中总奇偶校验的奇偶校验位的XOR和始终等于0。最简单地利用计算机程序确定要删除的列,其方式是随机选择未缩短码的H矩阵的17个列,直至未选择的80个列的和得出0矢量。
通过从未缩短码的H矩阵中例如删除列16,21,23,24,33,34,35,36,39,40,42,43,44,46,49,50,51,53,55,56,58,67,70,74,78,79,80,84,87,90,91,92,93,94,95,97,99,103,106,109,110,114,119,121,122,123,125,获得具有80个列的H矩阵的示例,对于所述80个列,分量方式的XOR和得出0矢量,其中最简单地通过直接复算可以对此确信。删除的第i个矢量在矩阵H1中对应于采用值αi-1并因此在矩阵H3中采用值α3(i-1)的列。
图5示出用于长度80的具有64个有效数据位和第65个附加位以及15个校验位的码的校正子发生器。承载80位宽的值r=v+e的现在80位宽的输入线51引到校正子发生器52中,在其15位宽的输出端处输出校正子s。校正子发生器52根据H矩阵H15,80实现校正子形成,所述H矩阵是具有码距6的长度127的具有所包括的总奇偶校验的BCH码的缩短47个列为80个列的H矩阵,使得矢量
Figure BSA00000476008800132
被映射到校正子0,并且因此是码矢量。如在每一个线性码时那样,0矢量是码矢量。
现在应该根据图6借助于示例阐述,可以如何根据本发明使用附加位uK+1来存储附加信息。再次考虑64个有效数据位u1,...,u64和一个附加位u65。在图6中,通过组合函数g从64个有效数据位和另一个要存储的1位宽的值z确定附加位u65的占用。引导有效数据位u1,...,u64的64位宽的线路61引到组合系统63的第一64个输入端中,该组合系统实现65位布尔函数g,在其第二1位宽的输入端处施加线路62,该线路引导附加信息z,并且其1位宽的输出端61承载附加位u65的值。与图4中用来实现函数f的组合系统32不同地,在图6中用来实现(1函数g63的组合系统具有附加的1位宽的输入线62用来输入附加信息z。为了尽可能简化描述,用all-064=1(真)表明,所有有效数据位u1,...,u64均等于0,并且用all-064=0表明并非所有有效数据位均等于0。同样用all-164=1(真)表明所有有效数据位u1,...,u64均等于1,并且用all-164=0表明并非所有有效数据位均等于1。
在图7中示出了布尔函数g的值表。函数g的一种可能实现是
其在图8中被示出。引导信号all-164的1位宽的线路与OR门电路81的第一输入端相连接,在其第二输入端上连接承载信号z的线路。OR门电路81的输出端引到AND门电路82的第一输入端中,在其第二输入端处通过非门83施加承载all-164信号的线路。AND门电路82的输出端引导附加位uK+1的值,这里K+1=65。如果all-164=1,则all-064=0,并且附加位uK+1具有值1。如果all-064=1,则all-164=0,并且附加位uK+1具有值0。如果不仅all-164=0而且all-064=0,则附加位uK+1具有值z。该情况最最经常地、也即对于有效数据位u1,...,u64的总计264个占用中的264-2个占用出现。情况all-164=all-064=1情况不出现。
以下应该描述特别有利地在闪存的情况下可以如何使用附加位。这里令人吃惊地,特别有益和特别简单地使用附加位uK+1来存储附加信息,其现在应该被阐述。在各个存储单元中用值0(被擦除)改写值1(这里被编程)在闪存中是不可能的,其中逻辑分配也可以相反。如已经所述,为了在闪存中生成值0,通常以字线的方式或以扇区的方式(经由多个字线)擦除闪存,由此保证所寻址的块的所有单元均采用值0。由此在闪存中单独地通过擦除过程始终保证,如果u1=u2=...=uK=0,则在擦除之后所擦除的页面的每个块的附加存储单元uK+1采用值0。
为了在闪存中在附加位uK+1中存储附加信息z,只有当u1=u2=...=uK=1适用时,逻辑上才能保证用1写uK+1。于是代替在方程式(7)中所描述的函数g可以用
u65=gF1(all-1,z)=(all-1)∨z,(8)
实施比较简单的函数gF1,因为通常在闪存中已经通过擦除过程本身保证对于u1=...=u64=0而言uK+1-u64的值始终等于0的特性。例如在此可以在逻辑上从有效数据位的值将“all-1”的值确定为
(all-1)=u1∧u2∧...∧uK
                          。
图9示出相应的电路装置。引导值all-164的1位宽的线路引到OR门电路91的第一输入端中,在其第二输入端上连接承载信息z的1位宽的线路。OR门电路91的1位宽的输出线引导附加位u85的值。如果通过以下方式标记在地址A下写入存储器或Memory中的值的无效性,即用1改写在该地址下所存储的字的所有位,则对于该情况获得特别简单的解决方案。于是进一步简化是可能的。如果在预先规定的应用中作为值的“all-1”不被用作有效数据,并且“无效[A]”是在所选地址A下用1改写所有存储单元的值的指令的标志,则可以实施通过布尔函数9F2将附加存储单元uK+1的值确定为
uK+1=gF2(无效,z)=(无效)V z,
因为如果使用指令“无效[A]”,则对于地址A而言关系u1=u2=...=u64=1总是适用。也就是如果使用该指令,则始终用1写附加存储单元u65。图10示出相应的电路。引导值“无效”的1位宽的线路连接在OR门电路101的第一输入端上,在其第二输入端中连接承载信息z的1位宽的线路。OR门电路101的输出端引导附加位uK+1=u65的值,并且看出,当存在指令“无效”时附加位u65用1改写,否则承载信息z。
在写闪存中的存储单元时可能出现,在完全对属于字的所有存储单元进行写以前中断在地址A下的写过程。如果情况如此,则在地址A下有错误的信息被存储,因为并不是所有属于其的存储单元被写。为了表明这样的情形并且避免使用不完全被写的存储单元,可以使用二进制信号“写完成(Schreibkomplet)”,其值1表示,在地址下的写过程也实际上已结束,并且其值0意味着写过程不是有秩序地被结束,或者如果所有有效数据位具有值0则在擦除之后还没有数据被写入有效数据位中。在这样的情形下,由于闪存的特殊特性,令人吃惊地可以很简单地用信号“写完成”写附加位uK+1,使得
写完成=uK+1可以被设置。特殊地,在应用示例中K+1=65适用。如果u1=u2=...=uK=0适用,则由于闪存的特性,第(K+1)个附加位的值uK+1=0,因为如所述,当逐块擦除闪存时,包括存储值uK+1的块的存储单元在内的所有存储单元被置为0。如果包含位u1=u2=...=uK的字成功地被写,则用有效数据位的至少一个值等于1的值改写存储单元的全零占用。信号“写完成”等于1,并且uK+1=1适用,其中如所述,不可能存在全零占用。如果u1==...1成功地被写,则uK+1当然也等于1。因此也满足条件:对于u1=u2=...=uK=1,uK+1=1适用。于是将引导信号“写完成”的线路直接与存储单元uK+1的数据输入端相连接。
图11示出闪存的页面(page)111,其由8个块Block11111、Block21112、Block3 1113、Block4 1114、Block5 1115、Block6 1116、Block7 1117、Block8 1118组成。对于i=1,...,8,每个块Blocki 11li由64个有效数据位(u1,.,u64)i、一个附加位
Figure BSA00000476008800161
和由15个校验位(c1,...,c15)i组成。图12针对本发明的特殊扩展方案对于由M个块1221,..,122M组成的页面(Page)说明附加信息z1,..,zM到M个块1221,...,122M的第65个附加位1231,...,123M中的存储。对于i=1,..,M,每个块122i分别包含64个有效数据位(u1,..,u64)i、一个附加位和15个校验位(c1,...,c15)i。将M个二进制值z1,...,zM存储在所考虑的页面的附加位
Figure BSA00000476008800163
中。
对于i=1,...,M,值All-1(u1,...,u64)i施加在OR门电路121i的第一输入端处,其第二输入端引导要附加存储在位
Figure BSA00000476008800164
中的二进制信号zi。在此,对于All-1(u1,...,u64)i≠1,将值zi存储在位
Figure BSA00000476008800165
中并且对于All-1(u1,...,u64)i=1,值1。例如值z1,...,zM可以是页面的字线地址的位、例如对闪存的写和/或者擦除循环的数量进行计数的计数器的分量、车辆中公里计数器的读数、控制或状态寄存器内容、对于编程有效的电压设置、控制设置以及其它的值。

Claims (18)

1.用于对包含有效字的有效数据进行处理的方法,在所述方法中,编码装置按照错误识别码根据有效数据生成码字,存储器存储码字,并且解码装置根据码字生成有效数据,其特征在于,所述编码装置根据有效数据和附加数据生成码字,并且解码装置根据码字生成有效数据和附加数据。
2.根据权利要求1所述的方法,其特征在于,所述解码装置在码字时识别特定值的出现并且在该情况下输出信号,该信号表明该码字和/或者根据该码字生成的有效数据无效。
3.根据权利要求2所述的方法,其特征在于,所述装置借助于无效化指令的调用改变存储于存储器中的码字,使得所述码字采用特定值。
4.根据权利要求2至3之一所述的方法,其特征在于,所述特定值是所有位均为一的值。
5.根据权利要求1至4之一所述的方法,其特征在于,所述错误识别码被设立用来纠正有效字之内的至少两个位。
6.根据权利要求1至5之一所述的方法,其特征在于,借助于组合函数根据有效数据生成附加数据。
7.根据权利要求6所述的方法,其特征在于,借助于组合函数根据有效数据和附加有效数据生成附加数据。
8.根据权利要求7所述的方法,其特征在于,生成附加数据,使得当有效数据具有确定的值时,附加数据采取预先确定的值,并且否则附加数据采用附加有效数据的值。
9.根据权利要求6至8之一所述的方法,其特征在于,生成附加数据,使得当有效数据的所有位均为一时,附加数据的所有位均为一。
10.用于对包含有效字的有效数据进行处理的装置,具有用于按照错误识别码根据有效数据生成码字的编码装置、用于存储码字的存储器和用于根据码字生成有效数据的解码装置,其特征在于,设立编码装置,使得所述编码装置根据有效数据和附加数据生成码字,并且设立解码装置,使得所述解码装置根据码字生成有效数据和附加数据。
11.根据权利要求10所述的装置,其特征在于,所述存储器是非易失性存储器。
12.根据权利要求10至11之一所述的装置,其特征在于,所述装置是微控制器。
13.根据权利要求10至12之一所述的装置,其特征在于,所述装置具有用于对具有处理位宽度的有效数据进行处理的程控装置,所述处理位宽度等于有效数据的位宽度。
14.根据权利要求10至13之一所述的装置,其特征在于,所述装置被设立用于执行根据权利要求1至9之一所述的方法。
15.用于在使用错误识别码的情况下对包含有效数据位(u1,u2,..,uK)的有效数据进行编码的方法,在所述方法中根据有效数据(u1,u2,..,uK)和至少一个附加位生成码字(v1,...,vK+m+1),并且借助于组合函数根据有效数据和附加信息生成至少一个附加位。
16.根据权利要求15所述的方法,其特征在于,当有效数据采取至少一个确定的值时,至少一个附加位获得给有效数据的相应的确定的值分别分配的值,并且当有效数据不采取预先确定的值之一时,仅根据附加信息生成至少一个附加位。
17.根据权利要求16所述的方法,其特征在于,使用附加信息用于存储系统信息。
18.用于在使用错误识别码的情况下对有效数据进行编码的装置,具有用于生成码字的编码装置和用于生成至少一个附加位的组合系统装置,其中设立所述编码装置用于根据有效数据和至少一个附加位生成码字,并且设立所述组合系统装置用于根据有效数据和附加信息生成至少一个附加位。
CN201110096934.6A 2010-02-04 2011-02-01 数据存储方法和装置 Active CN102243892B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102010006876A DE102010006876B4 (de) 2010-02-04 2010-02-04 Verfahren und Vorrichtung zur Kodierung von Daten
DE102010006876.4 2010-02-04

Publications (2)

Publication Number Publication Date
CN102243892A true CN102243892A (zh) 2011-11-16
CN102243892B CN102243892B (zh) 2015-08-19

Family

ID=44316137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110096934.6A Active CN102243892B (zh) 2010-02-04 2011-02-01 数据存储方法和装置

Country Status (3)

Country Link
US (1) US8533566B2 (zh)
CN (1) CN102243892B (zh)
DE (1) DE102010006876B4 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109920462B (zh) * 2019-03-01 2021-01-22 中国科学院微电子研究所 一种数据写入控制电路和控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1647392A (zh) * 2002-04-05 2005-07-27 皇家飞利浦电子股份有限公司 用于将附加纠错层嵌入到纠错码中的方法和设备
CN101449464A (zh) * 2006-05-18 2009-06-03 摩托罗拉公司 无线通信网络中代码字上的信息编码
CN101534167A (zh) * 2008-03-13 2009-09-16 财团法人工业技术研究院 前置编码与解码的装置及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4030067A (en) 1975-12-29 1977-06-14 Honeywell Information Systems, Inc. Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes
JP3392946B2 (ja) * 1993-07-15 2003-03-31 ペンタックス株式会社 電子スチルカメラ及び画像再生装置
US7362864B2 (en) * 2003-09-11 2008-04-22 Xilinx, Inc. Framing of transmit encoded data and linear feedback shifting
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US8495454B2 (en) * 2008-07-14 2013-07-23 Marvell World Trade Ltd. Methods, apparatuses, systems, and architectures for quickly and reliably encoding and/or decoding system data
US8301979B2 (en) * 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1647392A (zh) * 2002-04-05 2005-07-27 皇家飞利浦电子股份有限公司 用于将附加纠错层嵌入到纠错码中的方法和设备
CN101449464A (zh) * 2006-05-18 2009-06-03 摩托罗拉公司 无线通信网络中代码字上的信息编码
CN101534167A (zh) * 2008-03-13 2009-09-16 财团法人工业技术研究院 前置编码与解码的装置及方法

Also Published As

Publication number Publication date
DE102010006876B4 (de) 2012-10-31
US8533566B2 (en) 2013-09-10
DE102010006876A1 (de) 2011-08-04
US20110191658A1 (en) 2011-08-04
CN102243892B (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
CN107045463B (zh) 具有纠错码的存储器架构以及其操作方法
CN101573694B (zh) 用于小数据结构的ecc保护的方法、系统和装置
US9582354B2 (en) Apparatus and method for improving data storage by data inversion
CN106469099B (zh) 在应用wom码的情况下的错误纠正
US8977929B2 (en) Rearranging write data to avoid hard errors
CN101950586A (zh) 存储控制器及控制数据读取的方法
US9535785B2 (en) ECC method for flash memory
US8990667B2 (en) Error check and correction circuit, method, and memory device
CN104393878A (zh) 用于纠正在编码比特序列中的至少单比特错误的设备和方法
US10191801B2 (en) Error correction code management of write-once memory codes
CN105191146A (zh) 用于解码涡轮乘积码的校验子表
KR20100031403A (ko) 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법
CN111638994B (zh) 一种闪存存储器及其错误比特计数检测方法和系统
US20200233743A1 (en) Error correction code memory device and codeword accessing method thereof
US9836350B2 (en) Joint decoding of rewriting NVM error sectors
CN109840162A (zh) 存储器件及其操作方法
CN102243892B (zh) 数据存储方法和装置
KR20140018095A (ko) 에러 검출 정정 회로 및 메모리 장치
CN105679365A (zh) 半导体存储器操作方法
CN104681095A (zh) 储存装置及其操作方法
CN104637542A (zh) 储存对应于数据的错误更正码的存储器装置及其操作方法
JP2012068814A (ja) 半導体記憶装置およびメモリ制御装置
CN112786099B (zh) 存储装置和其多个实体单元纠错方法
Gregori et al. Construction of polyvalent error control codes for multilevel memories
KR20090048142A (ko) 불휘발성 메모리 장치의 ecc 처리부

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