公开/公告号CN106469099A
专利类型发明专利
公开/公告日2017-03-01
原文格式PDF
申请/专利权人 英飞凌科技股份有限公司;
申请/专利号CN201610658775.7
申请日2016-08-12
分类号G06F11/10;H03M13/03;H03M13/13;H03M13/15;H03M13/19;
代理机构中国专利代理(香港)有限公司;
代理人卢江
地址 德国瑙伊比贝尔格市坎芘昂1-12号
入库时间 2023-06-19 01:42:42
法律状态公告日
法律状态信息
法律状态
2020-06-09
授权
授权
2017-03-29
实质审查的生效 IPC(主分类):G06F11/10 申请日:20160812
实质审查的生效
2017-03-01
公开
公开
技术领域
在此描述的方案尤其涉及数据在可寻址的存储器中的存储。
背景技术
例如以两个彼此相继的写过程将数据在一个地址下写入到所述存储器中,而当在跟随第一写过程的第二写过程中将数据写入到存储器中时不需要擦除在第一写过程中写入到存储器中并作为状态存储到存储器的存储单元中的数据。
在此尤其考虑这样的存储器,所述存储器具有可以采用至少一个第一值和至少一个第二值作为状态的存储单元,其中所述第一值不同于所述第二值。第一值在此示例性地以0表示并且第二值示例性地以1表示。
下面示例性地从以下出发,即当存储单元具有值0时存储单元具有状态0,并且当存储单元具有值1时存储单元具有状态1。该分配是示例性的并且也可以相反地定义。
当存储单元一开始在状态0中时,当写值0时,所述存储单元可以接着保留在该状态0中。相应地,当写值1时,所述存储单元可以从状态0变换到状态1中。
如果存储单元位于状态1中,则在该示例中不可能的是,该存储单元借助于写过程获得值0并且变换到状态0中。只要存储单元位于状态1中,仅可以写值1,结果是,存储单元保留在状态1中。
在此应注意,存储单元的写相应于存储单元的或者存储器的(所述存储器包括存储单元)的编程。
此外,在所考虑的存储器中已知存储区域的存储单元的共同擦除。在此,使存储区域的存储单元转变到状态0中。
在此处理的存储器的示例是所谓的闪存。
对于多个不同类型的存储器可能的是,
- 在到已擦除的存储区域(即以下存储区域中,在所述存储区域中所有存储单元具有状态0)上的第一写过程中以值0或值1写任意的存储单元,使得所述存储单元成功地变换到相应于该值的状态0或1中,以及
- 在接着的第二写过程中以值0或值1写以下存储单元:所述存储单元在所述第一写过程之后还是在状态0中。
然而,在第一写过程中已写入值1的存储单元在第二写过程中仅仅还可以以值1写上。只要所述存储单元在此期间没有被擦除,所述存储单元就不能够从状态1通过写值0来变换到状态0中。
为了有效地以多个(t,其中t≥2)彼此相继的写过程成功地写这样的存储器的存储单元而在其间不必擦除所述存储单元,使用所谓的WOM码(WOM:Write Once Memory,一次写入存储器)。这样的WOM码例如由[Rivest,R.;Shamir,A.所著的“How to Reuse a Write-Once-Memory”,信息和控制,第55卷,第1-3号,第1至19页,1982年]或者由US 4, 691, 299已知。
可以通过以下参数描述WOM码:
其中
Nw表示块的Wit的数目(也称作有用数据Wit),
nw表示块的数据比特(也称作有用数据比特或者比特)的数目,所述数据比特被编码为Nw个Wit的块,并且
t表示写过程的数目,其中可以将nw个数据比特经编码为Nw个Wit地写入到存储器中。
WOM码可以用于转换或者编码数据,使得可以以彼此相继的写过程将所述数据写入到存储器中或者被覆盖,而不必擦除先前存储在存储器中的数据。
示例性地(首先)从以下出发:不出现错误。
将待存储的数据比特划分成各nw个比特的块。如果例如nw=11,则第一块从第一比特延伸至第十一比特(包括第十一比特在内),第二块包括比特12至22,等等。
替代地,第一块可以包含例如比特1至5和12至17。第二块在该示例中可以包含比特6至11和18至22。
就此而言不需要的是,nw=11个比特相互(逻辑上或者物理上)相邻地布置。因此,各n=11个比特的任意比特组合可以构成一个块。仅仅需要,不同块不具有共同的比特。
如果例如nw=2,则第1比特和第2比特可以构成第一块,第3比特和第4比特构成第二块,第5比特和第6比特构成第三块,第7比特和第8比特构成第四块,等等。也可能的是,第1比特和第3比特构成第一块,第2比特和第4比特构成第二块,第5比特和第7比特构成第三块,第6比特和第8比特构成第四块,等等。其他比特组合也可以用于块构成。
下面借助概略图示例性地假设,对于n=2,第1比特和第2比特构成第一块,第3比特和第4比特构成第二块,第5比特和第6比特构成第三块,等等。
如果所述比特的数目是奇数,则例如可以添加一个具有恒定值的附加比特。
在nW个有用数据比特的块被写入到存储器中之前,该块通过WOM码转换成NW个有用数据Wit的块。在读取时将NW个有用数据Wit的块转换回nW个有用数据比特。在此适用NW﹥nW。
如果应以两个彼此相继的写过程在存储器中存储例如nW个有用数据比特的第一块的有用数据比特的两个nW-元组
并且
NW个有用数据Wit的组元
在使用WOM码的情况下,有用数据Wit的组元被称作Wit代替比特。所述Wit涉及二进制值,其可以以彼此相继的写过程写入到存储单元中并且可以被覆盖。
也可能的是,在多级存储单元——所述存储单元的状态可以采用多于两个值——的情况下,所述Wit可以具有多于两个的值。在这样的情况下,所述Wit因此是多级值,而非二进制值。
如果在第一写过程中和在第二写过程中nW个有用数据比特的所考虑的块(在此第一块)的待存储的nW个有用数据比特x1和x2一致,则所述有用数据比特借助相同的函数
如果在第一写过程中和在第二写过程中nW个有用数据比特的所考虑的块(在此第一块)的待存储的nW个有用数据比特x1和x2不一致,则根据关系
定义函数
其中
由方程(3)可以看出,仅仅当在第一写过程中
如果未知或者不确定是否
其中对于
下面示例性地阐述具有
有用数据比特的元组
在第一写过程中,根据函数f1,将第一块的两个第一有用数据比特
在相继的第二写过程中,将第一块的两个第二有用数据比特
如果
如果
如果
如果例如应该在第一写过程中存储有用数据比特
在第二写过程中应示例性地存储有用数据比特
在另一示例中应在第一写过程中存储有用数据比特
如果应在第二写过程中存储有用数据比特
如果在第二写过程中应存储有用数据比特
此外可以将由在存储单元中存储的状态计算的数据比特
在所描述的示例中,可以两次地以彼此相继的写过程存储经各2比特编码成的3Wit。在无这样的转换的情况下对此需要4比特的存储空间。
比特到Wit的转换和Wit到比特的转换可以如下表示:
除了在上述表格中示例性地示出的WOM码之外已知其他WOM码。例如可以借助WOM码将11个数据比特转换成23个数据Wit,使得可以三次将11比特编码为23Wit并且写到存储器中,而不必擦除存储器。
在此描述的方案尤其可以应用于任意WOM码。
在存储器中出现永久的和/或瞬时的错误,所述错误可能改变存储单元的状态的值。有利的是,识别和/或纠正这样的错误。
在闪存中例如出现以下效应,即随着存储器的增加的年限,在擦除存储块时不再将各个比特擦除到0上,而是尽管擦除过程仍保留在状态1中。
例如由US 2013/0091402A1已知识别错误的或者纠正错误的WOM码。在此,不仅待存储的有用数据比特而且对于错误识别所需的冗余信息被表示为经WOM编码的Wit。
此外,在已知的识别错误或者纠正错误的WOM码中不利的是,在地址错误的情况下代替所希望的字由存储器中读取另外的字,然而所述另外的字不能够被识别为有错误的,因为所述另外的字是在另外的(在此错误地确定的)地址下存储的有效码字。
发明内容
因此,一个任务在于,克服先前所述的缺点。尤其可以借助在此描述的解决方案改善错误识别和/或错误纠正。例如,可以改善存储器错误的错误识别和/或错误纠正,其中在存储器中存储的数据至少部分地借助WOM码编码。
所述任务根据独立权利要求的特征解决。优选的实施方式尤其可以由从属权利要求得出。
为了解决所述任务,提出一种用于在存储器的存储单元中存储比特的方法,
- 其中以两个彼此相继的写过程将第一和第二Wit在相同地址下写入到相同的存储单元中,而在第一写过程之后不擦除所述存储单元;
- 其中将第一校验比特存储到另外的第一存储单元中并且将第二校验比特存储到另外的第二存储单元中。
一种扩展方案在于,
- 根据所述第一Wit和所述第一校验比特确定第一错误码的第一码字;
- 根据所述第二Wit和所述第二校验比特确定第二错误码的第二码字。
所述方法的在此阐述的步骤尤其可以由电子装置实施。所述电子装置可以是存储装置、尤其是这样的包括至少一个存储器的存储装置。电子装置可以具有处理单元,例如处理器或者(微)控制器。所述电子装置可以是存储器管理装置或者包括这样的存储器管理装置。电子装置可以是至少部分地应用WOM码的装置。
在此应注意,存储器涉及可寻址的存储器。例如,可以通过地址选择存储器的包括预给定数目的比特的部分区域。在该地址下(或者在该地址上)可以存储并读取多个比特。
在此提及的存储器可以包括一个单独的物理存储器或者多个物理存储器。存储器尤其可以具有不同类型的物理存储器。一个选择是,可以通过(必要时共同的)存储器管理装置对存储器寻址,而不重要的是位于所述存储器下的物理结构。根据该选择,所述存储器管理装置可以提供存储器管理的服务,其中可以由存储器管理装置利用不同的物理存储器(相同的或者不同的类型)。
此外应注意,表述“其中以两个彼此相继的写过程将第一和第二Wit在相同地址下写入到相同的存储单元中,而在第一写过程之后不擦除所述存储单元”合乎于WOM码(WOM代表“一次写入存储器”,德语上的意义是:存储器的写入仅仅沿一个方向是可以的)的特性,因此能够实现信息多次(至少两次)写到先前被擦除的存储区域中,而不必在多次写过程之间擦除存储器。在此,所基于的假设是,比特从“被擦除的”(例如值0)到“所写的”(例如值1)的状态变换是可以的,然而相反的路径仅仅能够通过擦除过程实现。
Wit是经变换的(有用数据)比特。真正的有用数据(也称作数据、比特、有效载荷)根据WOM码转换成Wit(也称作数据Wit或者有用数据Wit)。所述Wit以(至少两个)彼此相继的写过程存储到共同的存储单元上或者以一个写过程存储到以二进制值事先占用(vorbelegt)的存储器中,在所述存储器中例如在擦除之后并非所有存储单元具有值0(因此,就此而言不能够对于所有存储单元成功地实施所述擦除过程)。
因此,在此提出的方案允许有用数据的存储,其中例如根据WOM码将第一数据比特的第一序列编码成第一数据Wit并且根据WOM码将数据比特的第二序列编码成第二数据Wit,其中可以在第一写过程中将第一数据Wit的非空的子集并且在第二写过程中将第二数据Wit的非空的子集写入到用于数据Wit存储的相同存储单元中,而在写入第一数据Wit之后不必擦除所述相同的数据单元。在使用第一数据Wit的情况下构成第一错误码C1的第一校验比特,所述第一校验比特被写入到另外的第一存储单元中。在使用第二数据Wit的情况下构成第二错误码C2的第二校验比特,所述第二校验比特被写入到另外的第二存储单元中。当所述第一校验比特的比特位置具有第一值并且第二校验比特的相同比特位置具有不同于第一值的第二值并且在所述第一值不在先前被擦除的情况下所述第一值不能够被所述第二值覆盖时或者当所述第二校验比特的数目大于所述第一校验比特的数目时,另外的第一存储单元和另外的第二存储单元可选地(至少部分地)彼此不同。
因此也提出一种用于在(可寻址的存储器的)存储单元中存储经编码的有用数据比特的方法,所述存储器的存储单元可以采用至少两个以0和1表示的值作为状态。存储单元在无错误的或者成功的擦除过程之后具有状态0。
如果存储单元是在状态0中,则值0的写入导致存储单元保持在状态0中并且值1的写入导致存储单元变换到状态1中。
如果存储单元是在状态1中,则值0的写入导致存储单元保持在状态1中并且值1的写入导致存储单元保持在状态1中。因此,在不事先擦除的情况下不能够实现存储单元从1到0的状态变换。
在写过程中,存在有用数据比特的至少两个块,所述有用数据比特在存储之前优选逐块地在使用至少一个WOM码的情况下转换成Wit块,更确切地说根据存储单元在写过程之前所具有的状态。例如基于(有用数据比特的块)确定至少6个Wit。
例如以两个彼此相继的写过程在第一写过程中将N个第一Wit的第一块在地址α下写入到存储器中,然后在第一写过程中构成m1个第一校验比特
第一校验比特中的至少一个可以取决于第一Wit的第一块的一个Wit以及取决于第一Wit的第二块的一个Wit。
在第二写过程中在相同地址α下将N个第二Wit的第二块写入到存储器中,然后在第二写过程中构成m2个第二校验比特
优选地,第二校验比特中的至少一个取决于第二Wit的第一块的一个Wit以及取决于第二Wit的第二块的一个Wit。
如果不仅第一写过程而且第二写过程在相同的地址α下进行,则在第一写过程中在地址α下写入到存储器中的N个第一Wit和在第二写过程中在相同地址α下写入到该存储器中的N个第二Wit存储到该存储器的相同的存储单元中作为状态,而不必为此在第一写过程之后擦除具有地址α的存储单元。
如果不仅第一写过程而且第二写过程在相同的地址α下进行,其中在第一写过程之后不擦除具有地址α的存储单元,则将m1个第一校验比特c1在第一写过程中在地址α下写入到m1个另外的用于存储校验比特c1的第一存储单元中并且将m2个第二校验比特c2在地址α下写入到m2个另外的用于存储校验比特c2的第二存储单元中。
所述另外的第二存储单元可以至少部分地不同于所述另外的第一存储单元。这例如当m2>m1适用时或者当第二校验比特的采用值0的位置(组元)——而第一校验比特的相应位置(组元)采用值1——的数目大于阈值S1时适用,其中S1≥0适用。
对于i=1, 2,码Ci例如具有码距di≥2,当di=2适用时,码Ci可以用于由存储器读取的Wit的错误的错误识别,并且当di>2时,码Ci可以用于由存储器读取的Wit中的错误的错误识别或错误纠正。尤其可以的是,当码Ci用于错误纠正时有错误的Wit被纠正。在这种情况下,可以将Wit在错误纠正之后根据所使用的WOM码转换回相应的有用数据比特。
另一种扩展方案是,第一校验比特的数目小于第一Wit的数目。
以下也是一种构型,即基于有用数据比特借助至少一个WOM码确定所述第一Wit和所述第二Wit。
此外以下是一种构型,即将至少一个取反比特添加至所述有用数据比特,其中给所述至少一个取反比特分配有用数据比特的子集。
另一种构型在于,当给所述取反比特分配的有用数据比特不取反时,所述至少一个取反比特采用第一值,并且当给所述取反比特分配的有用数据比特取反时,所述取反比特采用与所述第一值不同的第二值。
还有一种构型是,在使用所述有用数据比特和所述取反比特的情况下构成相应Wit,其中当所述取反比特具有所述第一值时不将分配给所述至少一个取反比特的有用数据比特取反,并且其中当所述取反比特具有所述第二值时将分配给所述至少一个取反比特的有用数据比特取反。
因此,尤其Wit块的Wit对于至少一个取反比特的不同值是不同的。
一种扩展方案是,在所述第一写过程中确定所述第一校验比特,使得由所述有用数据比特和所述至少一个取反比特确定的第一Wit和所述第一校验比特是所述第一码字的比特,并且其中在所述第二写过程中在相同的地址下确定所述第二校验比特,使得由所述有用数据比特和所述至少一个取反比特确定的第二Wit和所述第二校验比特是所述第二码字的比特。
在此,至少一个取反比特的值在第一写过程中被列入第一Wit的构成和第一校验比特的构成中并且因此被列入在使用第一错误码的情况下在读取所存储的值时的错误识别或错误纠正中。相应地,至少一个取反比特的值在第二写过程中被列入第二Wit的构成和第二校验比特的构成中并且因此被列入在使用第二错误码的情况下在由存储器读取所述值时的错误识别或者错误纠正中。
通过对至少一个取反比特连同有用数据比特进行WOM编码的方式,所述至少一个取反比特也变成错误纠正的一部分。
一种选择在于,当与在使用未经取反的有用数据比特和所属的校验比特的情况下相比能够以较少的错误将在使用经取反的有用数据比特的情况下构成的Wit和所属的校验比特写到相应的存储单元中时,在构成相应的Wit之前将有用数据比特取反。
另一种扩展方案是,给所述至少一个取反比特分配的有用数据比特是所有有用数据比特。
还有一种扩展方案在于,
- 在所述写过程之前读取存储到待寻址的存储单元中那里的数据;
- 将所读取的数据与待存储的数据进行比较;
- 如果不能够将待存储的数据无错误地写到所述存储器中,则将所述待存储的数据取反;
- 所述第一Wit或者所述第二Wit基于经取反的数据借助所述至少一个WOM码来确定并且被存储在所述存储单元中。
一种附加的扩展方案是,借助所述至少一个WOM码编码的第一Wit不同于借助所述至少一个WOM码编码的第二Wit。
此外,一种构型是,在所述第一写之前未完全擦除所述存储器的至少一个存储单元,其中基于所述至少一个未完全擦除的存储单元借助所述至少一个WOM码对所述第一Wit和所述第二Wit编码。
因此,可以将WOM码用于将数据比特编码为Wit,尽管各个存储单元由于有错误的或者不完全的擦除过程已经具有值1而非值0。
另一种扩展方案在于,所述第一Wit和所述第二Wit分别被组织为块,其中所述第一Wit块之一的比特的通过所述至少一个WOM码的每种占用分配有两种不同的编码。
因此,至少一个校验比特可以不仅取决于第一块的一个Wit和第二块的一个Wit。第一块在此可以是第一Wit的子集并且第二块可以是第二Wit的子集。
相应的校验比特可以可选地不是仅由唯一的块的Wit来确定,而是校验比特可以由多个块导出。
在这种情况下,可以将第一Wit划分为块并且基于(第一Wit的)多个块的比特确定第一校验比特。相应的适用于第二Wit并且适用于第二校验比特,所述第二Wit可以划分为块,所述第二校验比特基于(第二Wit的)多个块的比特来确定。
有用数据比特转换为有用数据Wit。一种选择是,在转换时考虑或者不考虑相应的校验比特。
校验比特c1和c2通常以两个彼此相继的写过程存储在不同的存储单元中。然而,如果例如c1=0适用,则可以将校验比特c2存储在与校验比特c1相同的存储单元中。
一种选择在于,也将校验比特(至少部分地)转换成Wit。在这种情况下,然后可以将校验Wit首先转换回到校验比特并且借助如此得到的校验比特纠正数据Wit。接着可以将经纠正的数据Wit转换回到有用数据比特。
以下也是一种扩展方案,即所述第二校验比特的数目小于所述第二Wit的数目。
此外,以下是一种扩展方案,即所述第一错误码是识别错误的码和/或纠正错误的码,并且其中所述第二错误码是识别错误的码和/或纠正错误的码。
一种选择在于,第一错误码和第二错误码是相同的码。第一错误码和第二错误码也可以是不同的码。
另一种构型是,第一错误码是具有大于等于3的码距的码。
还有另一种构型在于,所述第二错误码是具有大于等于3的码距的码。
以下也是一种扩展方案,即所述另外的第一存储单元和所述另外的第二存储单元彼此不同。
因此,可以将m1个在地址α下写入到存储器中的第一校验比特写入到另外的第一存储单元中并且可以将m2个在第二写过程中在相同地址α下写入到存储器中的第二校验比特写入到另外的第二存储单元中,其中所述另外的第一存储单元和所述另外的第二存储单元可以彼此不同。
所述第一校验比特的数目尤其可以等于第二校验比特的数目,也即m1=m2。
另一种扩展方案还在于,当不出现错误时,所述第一Wit和所述第一校验比特是所述第一码字的比特的真子集或者所述第二Wit和所述第二校验比特是所述第二码字的比特的真子集或者不仅所述第一Wit和所述第一校验比特是所述第一码字的比特的真子集而且所述第二Wit和所述第二校验比特是所述第二码字的比特的真子集。
第一错误码和第二错误码尤其分别是系统码。
还有一种扩展方案是,所述第一错误码的长度大于所述第一Wit的和所述第一校验比特的数目,并且所述第二错误码的长度大于所述第二Wit的和所述第二校验比特的数目。
一种附加的扩展方案是,根据所述第一Wit、所述第一校验比特和第一附加比特确定所述第一错误码的第一码字,并且其中根据所述第二Wit、所述第二校验比特和第二附加比特确定所述第二错误码的第二码字。
第一附加比特基于另外的第一信息并且第二附加比特基于另外的第二信息。另外的信息例如可以包括:指示符信息、取反信息、密码信息、地址信息或者导出的地址信息。
另一种构型在于,在写到所述存储器中的时候和/或在从所述存储器中读取的时候,所述第一Wit、所述第一校验比特和所述第一附加比特构成所述第一码字并且所述第二Wit、所述第二校验比特和所述第二附加比特构成所述第二码字。
当不出现错误时,尤其构成码字。
还有另一种构型是,所述第一附加比特和/或所述第二附加比特分别至少基于以下信息之一:
-地址信息、
-涉及写地址或读地址的地址信息、
-由地址信息导出的信息、
-标识符信息、
-密码信息、
-取反信息。
一种扩展方案是,识别和/或纠正所述第一附加比特中的错误,和/或,识别和/或纠正所述第二附加比特中的错误。
一种选择尤其是,能够(仅仅)识别但不纠正第一附加比特中的错误。如果识别错误(所述错误不可纠正或者不被纠正),则可以采取预给定的操作。例如可以输出(错误)告警。
因此,如果在读取访问时已经使用错误的地址并且接着的纠正在不重新对正确的地址进行读取访问的情况下可能是无意义,则可以停止地址错误的纠正。
根据另一个示例,可以识别并且不纠正地址信息中的错误,例如地址比特中的或者由地址比特导出的比特中的错误。
在另一个示例中,可以识别并且不纠正标识符信息中的错误,例如标识符比特中的错误。
以下也是一种选择,即可以识别并且不纠正由地址信息和标识符信息构成的组合中的错误。
另一种选择在于,在写过程之后读取存储单元的状态,在所述写过程中将Wit块和校验比特写到存储单元中。如果在所读取的数据中的错误的数目超过通过所应用的错误码不可纠正的值,则可以实施预给定的操作。例如在这种情况下可以擦除在存储单元中存储的值或者使用另一个地址。
一种扩展方案在于,只要将所述第二校验比特存储在所述另外的第二存储单元中,就在所述另外的第一存储单元中存储一个标记。
如果将在第二写过程中构成的m2个第二校验比特写到m2个另外的第二存储单元中,所述m2个另外的第二存储单元例如不同于另外的先前被写入了m1个第一校验比特的第一存储单元,则将所述m1个第一存储单元在第二写过程中(或者先前或者之后)用m1位标记来覆盖,其中m1位标记不是错误码C1的码字的第一校验比特的有效序列。
一种构型在于,所述标记是一个比特序列,所述比特序列不是所述第一校验比特的有效比特序列。
以下也是一种构型,即当在所述写过程之后在dN位置上的待存储的第一或者第二Wit不具有所期望的状态时和/或当在所述写过程之后在dP位置上的第一校验比特或者第二校验比特不具有所期望的状态时,擦除所述可寻址的存储器的包括以下地址的部分区域:写过程被应用到所述地址上。
还有一种构型是,当在到第一部分区域上的所述写过程之后在dN位置上的待存储的第一或者第二Wit不具有所期望的状态时和/或当在所述写过程之后在dP位置上的第一校验比特或者第二校验比特不具有所期望的状态时,利用所述可寻址的存储器的第二部分区域。
另一种构型是,当以下方程适用时擦除所述部分区域或者利用所述第二部分区域而非所述第一部分区域,
其中S2是阈值,对于该阈值S2≥0适用。
一种扩展方案在于,当所述第一校验比特不能够被所述第二校验比特覆盖而不出现预给定数目的有错误的存储单元时,所述另外的第一存储单元和所述另外的第二存储单元彼此不同。
一种构型是,有错误的存储单元的所述预给定的数目大于等于0。
另一种构型是,所述第一校验比特的数目大于1,并且其中所述第二校验比特的数目大于1。
还有一种构型是,所述可寻址的存储器包括以下存储器类型中的至少一个:
-易失性存储器;
-非易失性存储器。
此外,为了解决上述任务,说明一种用于在存储器的存储单元中存储比特的设备,所述设备具有处理单元,所述处理单元被设置成,
-使得以两个彼此相继的写过程将第一和第二Wit在相同地址下写入到相同的存储单元中,而在第一写过程之后不擦除所述存储单元;
-其中第一校验比特被存储到另外的第一存储单元中并且第二校验比特被存储到另外的第二存储单元中。
在此提及的处理单元尤其可以被实施为处理器单元和/或至少部分地固定布线的或者逻辑的电路装置,所述电路装置例如被设置成,使得所述方法可以如在此所述的那样实施。所述处理单元可以是任何类型的处理器或者具有相应地必要的外围设备(存储器、输入/输出接口、输入/输出装置,等等)的运算器或者计算机或者可以包括上述。
以上涉及所述方法的阐述相应地适用于所述设备。所述设备可以在一个部件中或者分布在多个部件中地实施。
一种扩展方案是,处理单元被设置成,使得
-根据所述第一Wit和所述第一校验比特确定第一错误码的第一码字;
-根据所述第二Wit和所述第二校验比特确定第二错误码的第二码字。
一种构型在于,所述设备包括以下存储器,所述存储器包括所述另外的第一存储单元和所述另外的第二存储单元。
以下也是一种构型,即所述存储器包括非易失性存储器和/或易失性存储器。
此外,上述任务借助包括在此描述的设备中的至少一个设备的系统来解决。
以下尤其是在此描述的方案的一个优点,即可以有效地将可分离的识别错误的码和/或可分离的纠正错误的码用于错误纠正和/或错误识别。
另一个优点在于,除了经WOM编码的Wit之外也可以将未经WOM编码的其他信息(也称作附加比特)列入所应用的识别错误的码和/或纠正错误的码中。用于这样的信息的示例是读地址的比特或者由读地址的比特导出的比特,例如访问权限、密码等等。在此不必要(然而可以可选的是),将所述其他信息保存在所监视的存储器的存储单元中。
附加比特例如构成读地址的和/或写地址的比特或者读地址的和/或写地址的导出的比特。此外,附加比特可以被确定为密码的比特或者访问权限的比特。相应地,能够实现用于应用附加比特的其他示例。
也有利的是,改善用于以下存储器的识别错误的和/或纠正错误的码的可应用性:所述存储器的块未完全被擦除。
附图说明
以下与实施例的示意性描述相关联地描述本发明的上述特性、特征和优点以及其如何实现的方式和方法,所述实施例与附图相关联地被详细阐述。在此为清楚起见,相同的或者起相同作用的元件可以配备有相同的附图标记。
其中:
图1a示出地址10011上的完全被擦除的存储单元;
图1b示出图1a中的存储单元在使用WOM码的情况下在第一写过程之后的占用;
图1c示出图1a中的存储单元在使用与图1b中相同的WOM码的情况下在第二写过程之后的占用;
图2示出存储单元,其具有6个用于存储Wit的存储单元、具有用于在第一写过程中存储第一码C1的7个校验比特的7个存储单元并且具有用于在第二写过程中存储第二码C2的6个校验比特的6个存储单元;
图3示出具有地址1010和1011的存储单元的占用,其中地址比特被列入校验比特的构成中;
图4示出在第一写过程之后具有地址1010的存储单元的占用,其中地址比特的奇偶校验比特进入校验比特的构成中,
图5a示出在不完全的擦除过程之后存储单元的占用;
图5b示出在第一写过程之后图5a中的存储单元的占用,其中在构成Wit之前将有用数据比特和取反比特取反;
图6示出用于编码的示例性电路装置;
图7示出用于解码的示例性电路装置;
图8示出一种示例性电路装置,其中根据第一校验比特的标记信号实现多路复用器的控制。
具体实施方式
识别错误的、纠正错误的码
识别错误的和/或纠正错误的码在次也称作错误码。
长度n的具有k个信息比特的错误码C可以通过其生成矩阵G或者其H矩阵H来描述。在此,生成矩阵是(k,n)矩阵并且H矩阵是(n-k,n)矩阵。可以根据以下来确定码字
如果生成矩阵和H矩阵是以系统形式,则以下有效:
其中m=n-k。在此,
Ik是k维的单元矩阵,
Im是m维的单元矩阵,
Pk,m是(k,m)奇偶校验矩阵,以及
在系统码的情况下,直接由G矩阵产生可能的H矩阵。此外,以下适用于系统码:
其中
将以下校验比特
当
如果矩阵、在此矩阵H从左与向量、在此向量v相乘,则向量v是行向量。如果矩阵、在此矩阵H从右与向量vT相乘,则向量vT是列向量,其中向量vT是行向量v的转置的列向量。
如果
如果
如果错误向量e具有多个等于1的q组元,则存在q-比特错误。
错误故障位(Fehlersyndrom)
如果码C是识别τ-比特错误的码,则对于所有
如果码C是纠正t-比特错误的码,则对于所有不同的
汉明距离
其中
码的码距dmin等于码C的两个不同码字之间的最小汉明距离。如果码C是线性码,则以下适用:
其中
表示v的汉明权重,即v的1的数目。
如果码C是具有最小码距dmin的纠正t-比特错误的码,则t根据以下来确定:
因此,例如具有最小码距dmin=3的码是纠正1-比特错误的码,因为
作为码,已知线性码以及非线性码。作为非线性码的示例,在此应提及Berger码(参考例如
在Berger码中,由k个信息比特
使得信息比特的值0的数目的和的二进制表示确定校验比特。Berger-码识别所有单向错误,即仅仅将0失真成1或者仅仅将1失真成0的错误。
实施例:(3,2,2)-WOM码
考虑以下情况,即将由各2个有用数据比特组成的3个块作为由各3个有用数据Wit组成的3个块在具有字宽19的存储器中存储在字宽5的地址
有用数据比特x1,>2构成第一有用数据比特的第一块并且在使用在表格中描述的WOM码的情况下转换成第一块有用数据Wit>1,y2,y3。
该WOM码是
NW表示(有用数据)Wit(即经转换的比特)的数目;
nW表示比特(也称为数据比特或者有用数据比特)的数目;
t表示写过程的数目,在所述写过程中,可以将nW个比特经编码为NW个Wit地在地址α上写到存储器中,而在此期间不必擦除存储器。
有用数据比特x3,>4构成第一有用数据比特的第二块并且在使用在表格中描述的WOM码的情况下转换成第二块有用数据wit>4,y5,y6。相应地,有用数据比特x5,>6构成第一有用数据比特的第三块并且在使用在表格中描述的WOM码的情况下转换成第三块有用数据Wit>7,y8,y9。
作为示例,将以下比特序列考虑为第一有用数据比特:
图1a示出存储区域101,在所述存储区域中应在地址
存储区域101具有19比特的字宽。存储区域101的存储单元在图1a中以
存储单元
示例性地考虑以下情况,即存储区域101在写之前被完全(并且无错误地)擦除。因此,存储单元Zi(
根据上面示例性地说明的有用数据比特的比特序列对于各两个有用数据比特的块产生以下关系:
有用数据比特的这些块根据如下表格被编码成有用数据Wit:
在所考虑的实施例中应在使用(14, 9)-码C的情况下构成校验比特,其中码C是具有H矩阵和G矩阵的缩短的汉明码:
其中
适用并且
是矩阵P9,5的转置矩阵。
在本例中,根据以下关系确定5个第一校验比特
因此,在第一写过程中,在地址
图1b相应地示出在第一写过程之后具有地址10011的存储区域101的内容或者状态。第一校验比特11110在此由第一有用数据Wit构成并且不被转换成Wit。校验比特对于9个第一有用数据Wit(即第一有用数据Wit的所述三个块)共同地构成。这具有以下优点:与为每个单个的Wit块构成校验比特的情况相比需要较少的校验比特。
在第二写过程中,以下6个第二有用数据比特的块现在应被编码为有用数据Wit并且被存储:
在3个第一存储单元
并且被写到存储单元
在3个第二存储单元
并且被写到存储单元
在3个第三存储单元
并且被写到存储单元
在此应注意,可选地也可以省去相同值的覆盖。在前述示例中这意味着,当第一有用数据Wit 010通过第二有用数据Wit 010覆盖时,可以省去实际的写过程。
总之,因此根据在此存在的示例产生以下编码序列:
5个第二校验比特
9个第二有用数据Wit 101 100 010在第二写过程中被写入到存储单元
第二校验比特
图1c示出在第二写过程之后存储单元
在第一写过程之后,在存储单元
11110 100 000 010。
在第二写过程之后,在存储单元
01001 101 100 010。
有利的是,存储第一校验比特103和第二校验比特104,而不将它们转换成Wit。在这种情况下,Wit和校验比特的组合不被“WOM-编码”。就此而言可以将例如已知的纠正错误的码应用到数据Wit上。此外,校验比特借助WOM码编码成校验Wit可能导致,通过在所存储的校验Wit中的错误出现在校验比特中的附加的错误,所述校验比特对于数据Wit的纠正而言是必需的。
如果例如将比特10经编码成Wit
WOM编码:
Wit中的1-比特错误:
WOM解码:
因此,在编码为Wit的校验比特中的相当频繁出现的1-比特错误可能导致转换回的比特中的2-比特错误。如果校验比特也经WOM编码地被存储,则校验Wit中的错误可以相应地影响校验比特中的错误的数目,这将提高错误纠正的花费并且需要更复杂的码。
具有k个信息位的纠正错误的普通线性码——例如汉明码的、Hsiao码的或者BCH码——的校验比特的数目与log2(k)成比例地增加,其中log2表示以2为底的对数,使得所述校验比特的数目与信息位相比尤其对于大的值k而言是小的。
通过将WOM码用于将相对大数目的有用数据比特转换为有用数据wit,显著减小了用于存储有用数据所需的存储单元的数目。然而,用于存储校验比特的存储单元的相对小的数目例如被增倍了。在这里阐述的示例中,可以使用具有相对小的码距的错误码C,其仅仅需要少的校验比特。这允许快速的错误纠正并且需要小的芯片面积用于实现解码电路和/或编码电路。
在本示例中,在第一写过程中将第一校验比特存储到存储单元
在从存储区域102中读取数据时已知,存储器是在第一次时还是在第二次时被写入或者属于所读取的数据Wit的校验比特是第一校验比特103还是第二校验比特104(或者已知,相应的校验比特存储在哪里)。
例如在第一写过程中可以将第一校验比特存储在第一校验比特的存储区域中。相应地可以将第二校验比特在第二写过程中存储在第二校验比特的存储区域中。用于第一和第二校验比特的两个存储区域例如可以彼此不同,即例如物理上相互分离地实施。在相应的写过程之后读取时,然后对分别合适的物理存储器进行寻址以便访问相应的校验比特。
选择:不同存储区域中的数据Wit和所属的校验比特
也可以的是,将数据Wit和所属的校验比特写到不同的存储区域中和/或不同的存储器中。
如果例如在第一存储器中存储数据Wit,在该第一存储器中第一二进制值(例如1)不能通过第二二进制值(例如0)覆盖(在没有事先擦除相应的存储区域的情况下),则也可以将校验比特写到第二存储器中,在第二存储器中,所存储的比特可以任意被覆盖。由此,待存储的值的字宽变得更小,因为于是仅仅存储或者第一校验比特或者第二校验比特。
用于存储数据Wit的存储器例如可以是闪存,用于存储校验比特的存储器例如可以是SRAM。SRAM例如可以在初始化时以相应的校验比特加载。
此外,一种选择是,将另外的非易失性存储器用于校验比特,例如MRAM或者RRAM。为此必要时也可以利用或者同时利用已经在系统中存在的(非易失性)存储区域。
第一校验比特的解释:记号
下面作为另外的实施例阐述如何根据用于存储校验比特的第一存储单元的状态确定属于所读取的数据Wit的校验比特是否已经存储在用于存储校验比特的第一存储单元中或者用于存储校验比特的第二存储单元中。
如先前示例性示出的那样,将由第一数据比特的块和第二数据比特的块构成的数据Wit在地址α处写入到相同存储单元中。
码C1的码字的第一校验比特
也可以的是,将第二校验比特写到用于存储校验比特的第一存储单元中,当这无错误并且在无附加的擦除过程的情况下可以时,即使所述存储单元先前已经在第一写过程中被写入。
当在第一写过程之后没有这样的存储单元——在第二写过程中应将校验比特0(即状态0)写到所述存储单元中——是在状态1中时,可以将第二校验比特写到用于存储校验比特的第一存储单元中。换言之(在无事先擦除的情况下,如已经实施的那样)能够实现从0到1的状态变换,但不能相反地从1到0。也可以的是,在无事先擦除的情况下存储单元保留在其状态0或1中。
如果不出现错误,则可以将第二校验比特在第二写过程中尤其写到与第一校验比特相同的存储单元中,只要
否则可以将第二校验比特写到用于存储校验比特的第二存储单元中,其中在这种情况下,用于存储校验比特的第一存储单元可选地获得标记
这样的操作在以下情况下尤其可以是有利的,即例如应在地址
在读取用于存储第一校验比特的存储单元时,当所述比特不等于所述记号时,将所述比特用作第一校验比特。否则,即当在用于存储第一校验比特的存储单元中读取的比特等于所述记号时,将用于存储第二校验比特的存储单元用作校验比特。
当由第一校验比特的存储单元读取的比特等于所述记号并且由第二校验比特的存储单元读取的比特作为校验比特与所读取的Wit一起不构成有效的码字时或者当由第一校验比特的存储单元读取的比特不等于所述记号并且所述比特作为校验比特与所读取的Wit一起不构成有效的码字时,因此可以识别错误。
码扩展
下面描述一个实施例,根据所述实施例由给定的码——在所述码中比特1,…,1是码字的校验比特——可以确定经修改的码,在所述经修改的码中,比特1,…,1不是有效码字的校验比特。
如果所述给定的码具有m个校验比特
因此例如可以的是,根据
相应地,可以提供
也可以的是,添加多个附加的校验比特以便由给定的码导出经修改的码,所述经修改的码包含比特序列
例如应给定具有6个数据比特和6个校验比特的码C2,其中H-矩阵
并且G-矩阵
其中
并且
向量
由码C2导出码C1,其方式是,添加附加的校验比特
使得
对于码C1的G矩阵G1适用:
其中
当
图2示出6个存储单元201
在第一写过程中根据WOM码(见以上的表格)在考虑存储单元
第一数据Wit
因为对于第一校验比特适用
在第二写过程中可以的是,由第二数据比特的两个待写的块
在此,
第二校验比特
来构成并且写到存储单元203中。现在值
在第一写过程中,根据码C1构成7个第一校验比特
因此,得出:
- 如果值1111111已经存储在存储单元202中,则相应于所存储的数据Wit的校验比特位于存储单元203、即用于存储第二校验比特的存储单元中,
- 与此相反,如果存储在用于存储第一校验比特的存储单元202中的值不等于1111111,则在用于存储第一校验比特的存储单元202中可找到相应于所存储的数据Wit的校验比特。
图2示出在存储器的地址204处的相应存储单元201、202和203。地址204示例性地具有值101。在该地址处存储19个比特:6个数据Wit、7个第一校验比特和6个第二校验比特。在第一写过程中将第一校验比特根据码C1存储在7个存储单元202中。在第二写过程中将第二校验比特根据码C2存储在6个存储单元203中,其中存储单元202的7个第一校验比特在这种情况下用值1111111覆盖。该值1111111也称作标记。该标记因此允许确定,决定性的校验比特是否是第一校验比特或第二校验比特或者是否在存储区域202中或在存储区域203中可找到恰恰重要的校验比特。
示例:存储单元是部分地在状态1中
示例性地阐述一种情况,在所述情况中存储单元的一部分在其被写之前是在状态1中。当由于老化的存储器不是所有存储单元在事先的擦除过程中被成功擦除时,例如才可能出现这样的情况。
例如,两个数据比特的块
可以的是,将所述Wit
适用。
此外可以的是,将所述Wit
适用。
如果
对于确定的值
适用。
如果三个状态
适用。
如果状态
也可以的是,用于存储校验比特的存储单元
因此可以的是,当
适用时,将校验比特
相应地可以的是,当
适用时,将校验比特
如果可以将第一校验比特
可选地在这种情况下可以将所述标记、即值1111111写到存储单元202中。在此应假设,所述标记不是第一码C1的有效码字,即
如果不能将经编码为Wit的数据比特无错误地写到相应的存储单元中或者不能将所述校验比特无错误地写到所设置的存储单元中,则一种选择是,擦除所述存储区域并且之后重新写所述区域或者可以利用另外的存储区域。这尤其当原始存储区域具有缺陷时能够是有利的。
另一种选择在于,确定每个存储区域的可能被有错误地写入的存储单元的数目,并且将该数目与预给定的阈值进行比较。在达到和/或超出该阈值的情况下所述存储区域可以被擦除,以便之后可以重新被写入。替代地,取代该存储区域可以使用另外的存储区域。
也可以的是,确定通过数据Wit有错误地写入的存储单元的数目
被有错误地写的存储单元的数目例如可以通过将待写的数据与在所述写之后读取的数据进行比较来确定。
当存储单元在写之前是在状态1中并且值0被写到该存储单元中,其中该单元的状态不发生改变,使得该单元在写之后有错误地具有值1时,存储单元是在有错误的状态中。
可以的是,当存储区域的存储单元的状态在写之后是有错误时擦除所述存储区域。
例如也可以的是,当存在多个通过码不可纠正的比特错误时,在使用纠正错误和/或识别错误的码的情况下擦除存储区域。此外一种选择是,当存在确定数目的比特错误时已经擦除所述区域,即使所述数目通过码不可纠正。
示例:在出现比特错误时存储有用数据Wit
下面要描述一个示例,根据所述示例,当出现至少一个错误时,将编码为有用数据Wit的k个块的
xi表示有用数据比特的第i个块的有用数据比特并且yi表示有用数据Wit的第i个块[yi]的有用数据Wit,其中
例如可以实施以下步骤:
1. 根据WOM码根据以下关系将有用数据比特块的比特xi编码成有用数据Wit块的Wit,总共成为一定数量的N个有用数据Wit:
其中对于
2. 确定m个校验比特
3. 如果存储单元的、等于1的并且在其中应被写入值0的状态的数目达到或者超过预给定的阈值S1,其中S1≥0,也即如果满足以下条件:
4. 确定用于存储校验比特的第一存储单元的数目
5. 如果数目
则确定用于存储校验比特的第二存储单元的数目
- 如果数目
- 如果数目
6. 如果满足条件
先前的步骤因此检查,对于有用数据Wit和/或(第一和/或第二)校验比特是否(分别)存在已经具有状态1的多个存储单元,所述多个存储单元应用值0来写上并且所述多个存储单元因此在不事先擦除的情况下不能够再转变到状态0中。如果是这种情况并且相应的数目或者数目的组合超过(至少)一个阈值,则擦除所述存储区域。在此有利的是,有用数据Wit与校验比特组合可以是识别错误和/或纠正错误的码的码字,使得可以纠正有错误的比特(即具有值1而非值0的这样的比特)的确定的量。
如果例如为了由第一数据Wit的k个块确定第一校验比特c1并且为了由第二数据Wit的块确定第二校验比特c2使用纠正t-比特错误的码,则可以纠正存储单元的所有有错误的值,所述有错误的值在值0写入到以下存储单元中产生,所述存储单元当S4≤t适用时并且当在存储器中不出现其他错误时是在状态1中。
如果
示例:地址错误的识别
下面说明一个实施例,根据所述实施例可以识别地址中的错误。
地址比特在此可以理解为附加比特。这样的附加比特尤其是除了数据Wit之外用于构成校验比特的比特。此外一种选择是,设置至少一个取反比特,所述至少一个取反比特被添加到数据比特中,以便描述数据比特(或者数据比特组)是否或者哪些数据比特(或者数据比特组)已经被取反。附加比特也可以包括至少一个指示符比特(密码)。
示例性地说明具有码距3、H矩阵
和G矩阵
的码C,其中
H矩阵的所有列具有奇数个1,使得所述码是缩短的Hsiao码。该缩短的Hsiao码允许1-比特错误的纠正和2-比特错误的识别。
示例性地将两个数据比特块
图3象征性地示出包括地址α的存储区域,其中在每个地址α上可以存储18比特。这18比特相应于18个存储单元
地址α划分为4比特,使得适用:
存储单元301用于存储数据Wit块
在考虑地址
其中函数
在此所描述的示例中,应在第一写过程中将块
数据比特块
并且数据比特块
因为数据Wit
数据Wit
数据比特块
并且数据比特块
因为数据Wit
数据Wit
如果在意图要存取在地址1010下存储的数据的时候出现地址错误,其方式是,例如由于在存储器内的错误将地址1010失真成1011,则读取在地址1011下存储的数据,尽管本应读取在地址1010下存储的数据。在这种情况下因此读取校验比特
该码字由于以下关系而不是所考虑的码C的码字:
在这里所示的示例中,码字具有16比特的长度。6个校验比特(参考存储单元302)和6个数据Wit(参考存储单元301)构成该码字的16比特的子集。
一个集合的子集可以是一个集合的真实子集或者所述集合自身。
在此时考虑的示例中,6个第一校验比特
在地址没有被同时考虑到编码中的情况下,校验比特和数据Wit的全部构成码字的所有比特,所述比特的子集等于所述码字的所有比特的集合。
示例:考虑由地址比特导出的比特
阐述,如何例如可以替代地址比特
例如可以根据以下来确定由地址比特
其中
因此可以根据一个具有
其中
因此,地址比特
在另一个实施例中,可以是l=3并且所导出的比特
使得地址比特
替代地可以如下确定所导出的比特:
在该示例中,布尔函数
示例:将由地址比特导出的比特考虑到校验比特的构成中
下面阐述,如何可以将由地址比特导出的比特
在下面的示例中,
两个有用数据比特块
图4说明一个存储区域,所述存储区域具有:示例性地具有值1010的地址404以及6个用于数据Wit的存储单元401(存储单元
两个数据Wit块
在考虑所导出的地址比特、在此地址比特
适用,其中函数
作为线性码C的示例,使用具有G矩阵的码:
其中,
如果例如全部存储单元
在一个示例中,应在第一写过程中将块
又应假设,所有存储单元在第一写过程之前是在状态0中。
数据比特块
并且数据比特块
因为数据Wit
示例:指示符比特的考虑
以下也是一种选择,即在校验比特的构成中考虑指示符比特
指示符比特在此例如可以构成密码,所述密码可以由用户在存取数据时说明。如果所说明的密码是有错误的,则可以显示错误。所述错误尤其可以锁止数据的输出。另一种选择是,将数据从存储器通过数据总线提供给不同的用户,其中每个用户仅仅可以处理相应于其自身的指示符比特或者借助所述指示符比特过滤的数据。
示例性地应给出码C,所述码具有码距3和根据方程(25)的H矩阵
H矩阵的所有列具有奇数个1,使得所述码是缩短的Hsiao码。该Hsiao码允许纠正所有1-比特错误并且识别所有2-比特错误。
示例性地将两个数据比特块
在考虑指示符比特
其中上述实施相应地适用于函数
根据一个示例,应在第一写过程中将块
数据比特块
并且数据比特块
因为数据Wit
如果应读取在地址1000上的数据并且由用户错误地输入指示符比特1001(即错误的密码)而非指示符比特1010,则由在地址1000上读取的数据Wit 100 010、校验比特001100和错误的指示符比特1001不产生码C的有效码字。在这种情况下可以防止、例如锁止数据Wit的输出。
示例:数据比特的取反
以下也是一种选择,即在将数据比特编码为数据Wit之前将数据比特取反。在此,将至少一个取反比特添加至数据比特,其中例如将数据比特和所述至少一个取反比特共同编码成数据Wit。
也可以的是,给至少一个取反比特分配有用数据比特的子集,其中所述有用数据比特的子集的分配给所述至少一个取反比特的有用数据比特当所述取反比特采用第一值时不被取反,当所述取反比特采用不同于第一值的第二值时被取反。
以下也是一种选择,即设置并且接受(aufnehmen)多个取反比特。在这种情况下,可以给不同的取反比特分配有用数据比特的不同子集。
此外,一种可能性是,给多个取反比特分配有用数据比特的相同子集。
为了进行阐述,在下面的示例中添加一个取反比特,给所述取反比特分配所有有用数据比特作为有用数据比特的子集。
图5a示出一个存储区域,在所述存储区域中(例如在擦除过程之后)在地址
示出一个具有地址504的存储区域,所述地址示例性地具有值10011。根据该地址10011对19个存储单元
在不完全的(或者有错误的)擦除过程之后,存储单元Z1、Z9和Z14分别是在状态1中,其他存储单元是在状态0中。
应将5个数据比特
数据比特
• 如果数据比特不被取反,则
• 如果数据比特被取反,则
如果
编码成数据Wit,并且将数据Wit写到存储器中。如果
编码为数据Wit并且将数据Wit写到存储器中。
如果
按照根据上述表格的WOM码编码成9个Wit:
如下:
其中,
如果
按照根据上述表格的WOM码编码成9个Wit:
如下:
其中,
作为示例考虑以下数据比特:
首先将取反比特
适用并且存储单元Z1在图5a中已经具有状态1并且不可以用值
如果将取反比特
地编码为数据Wit
地编码并且将经取反的比特
地编码并且写到存储单元
在图5b中示出,Wit 100,000和001存储在存储单元501中。
通过在对数据比特取反之后将所有经取反的数据比特和取反比特借助函数
因为在该示例中在第一写过程中仅仅使用函数
如果使用至少一个取反比特,则由以下得出用于所考虑的码C的校验比特:
- 有用数据比特、
- 至少一个取反比特、
- 被编码为Wit的比特被写入其中的存储单元的(已经存在的)占用和
- 必要时其他的比特,例如
• 至少一个地址比特和/或
• 至少一个标识符比特。
下面为清楚起见,示例性地从单个的取反比特出发。然而,在此提出的方案也可以相应地用于多个取反比特。
如果取反比特等于0,则将有用数据比特和取反比特
如果取反比特等于1,则将取反的有用数据比特和取反比特
也可以的是,将地址比特或者将由地址比特导出的比特或者指示符比特考虑用于校验比特的构成。如果在校验比特的确定中使用地址比特、由地址比特导出的比特和/或指示符比特,则当取反信号等于1时不需要将地址比特、由地址比特导出的比特和/或指示符比特取反。一种选择是,当取反比特表明发生了数据比特的取反时,在校验比特的确定中将地址比特、由地址比特导出的比特和/或指示符比特取反。
在下面的示例中,为了更清楚起见,在校验比特的确定中不考虑地址比特、由地址比特导出的比特或者指示符比特。
作为码C应示例性地使用线性码,所述线性码的H矩阵通过方程(6)说明、所述线性码的G矩阵通过方程(7)说明并且所述线性码的奇偶校验矩阵通过方程(8)说明。
在该示例中,如先前描述的那样,将取反比特
得出校验比特
所述校验比特可以被写到存储单元
数据比特100 000 001和校验比特11101构成具有根据方程(6)的H矩阵的码C的码字11101 100 000 001。如果例如在第7数据wit
所述错误故障位等于根据方程(6)的H矩阵的第12列。
首先有错误的Wit和校验比特11101 100 000 101基于根据方程(6)的H矩阵的第12列中的错误故障位
尤其有利的是,取反比特通过数据Wit的错误纠正被列入错误纠正中并且防止错误,所述取反比特与数据比特一起被转换成数据Wit。
可以的是,使用多个取反比特
- 当不进行有用数据比特的取反时,
- 并且当进行有用数据比特的取反时,在由有用数据比特和取反比特确定Wit之前,
q个取反比特可以被列入到Wit的构成中,使得在存储Wit之后、在Wit的读取之后、在Wit的错误纠正之后并且在转换回有用数据比特和取反比特之后可以检查,所述取反比特是否相互相同。
如果例如取反比特的数目是
也可以的是,对于有用数据比特的每个子集使用至少一个取反比特。根据所述至少一个取反比特可以确定,有用数据比特的相应子集是否被取反。因此,例如有用数据比特
在此,取反比特
另一种选择在于,除了取反比特之外使用地址比特或者由地址比特导出的比特用于确定相应的校验比特。同样可以的是,除了取反比特之外也使用标识符比特用于构成校验比特。
此外,一种变型方案是,除了取反比特之外不仅将地址比特或者由地址比特导出的比特而且将标识符比特用于构成校验比特。
此外,可以替代线性码地使用非线性码。例如可以的是,由Wit和附加的比特借助Berger码确定校验比特。
示例性的电路装置
图6示出示例性的电路装置,其包括WOM编码单元601、错误编码单元602(包括错误识别单元和/或错误纠正单元)、多路复用器603和可寻址的存储器604。
存储器604具有N个存储单元605,所述N个存储单元用于以两个彼此相继的写过程在地址α下存储N个Wit,而不必在第一写过程之后擦除存储器内容。此外,存储器604具有m个用于在第一写过程中存储m个第一校验比特的存储单元606和m个用于在第二写过程中存储m个第二校验比特的存储单元607。在地址输入端608处存在当前地址的值α。
在WOM编码单元601的
WOM编码单元601将各
错误编码单元602由在其输入端611上存在的N个Wit y根据所使用的码
因此,由错误编码单元602生成的用于第一写过程的第一校验比特以
对于第一写过程,多路复用器603通过输入端615获得控制信号s=1并且将数据输入端612与数据输出端613连接,使得第一校验比特
对于第二写过程,多路复用器603通过输入端615获得控制信号s=2并且将数据输入端612与数据输出端614连接,使得第二校验比特
Wit通过WOM编码单元601的构成不仅根据通过输入端609提供的数据比特的待编码为Wit的块而且根据存储单元605的状态的值来实现;后者的相关性通过存储单元605和WOM编码单元的输入端616之间的连接来示出。
在根据图6的该示例中,将校验比特直接地并且不编码为Wit地写到存储器604中。
可选地,用于寻址存储器604的地址α也可以提供给错误编码单元602的输入端621。该实施方式在图6中作为连接620示出。因此,校验比特可以根据N个Wit y并且根据当前地址α、借助错误编码单元602来构成。根据在此示出的例子,错误编码单元602可以创建校验比特
是码Ci的码字,其中
另一个选择在于,校验比特
在这样的情况下,错误编码单元602例如具有至少一个另外的用于输入由地址比特导出的比特和/或用于输入标识符比特的输入端(未在图6中示出)。也可以设置以下输入端:通过所述输入端例如可以由用户或者程序提供当前待输入的和待检验的标识符比特,使得能够实现预给定的标识符比特与当前输入的或者获得的标识符比特的比较。标识符比特是否是正确的比较通过检查是否存在码字来实现。
图7示出用于纠正所存储的并且在从存储器读取时可能错误地获得的Wit的电路装置的图示。
从存储器604在地址α下读取N个来自N个存储单元605的Wit
Wit以及校验比特可以包含有错误的比特。第一校验比特
分配器701通过输入端706获得控制信号
分配器701的输出端705与纠正单元702的输入端707连接。
纠正单元702在输出端708上提供N组元的纠正向量
用于纠正可能有错误的Wit
异或电路710具有两个N-比特宽的输入端712和713以及一个N-比特宽的输出端714。输入端712与存储单元605连接并且输入端713与纠正单元702的输出端708连接。通过输出端714将可能有错误的Wit
使得适用:
经纠正的Wit
对于
在图8中示出图7中的电路装置的一种可选的扩展,其中可以使用记号(例如以m个具有值1的彼此相继的比特形式)用于在读取Wit和校验比特时选择校验比特。
第一校验比特从读取单元606中被读取并且施加在与门801的m-比特宽的输入端上。因此,当在与门801的输入端上的所有m个比特也具有值1时,即当第一校验比特等于所述记号时,在与门801的1-比特宽的输出端上提供值1。
与门801的输出端与或门802的第一输入端连接,在该或门的第二输入端上施加值0。或门802的输出端与分配器701的输入端706连接。
如果第一校验比特不等于所述记号,即
则在分配器701的输入端706上存在控制值0。如果与此相反第一校验比特相应于所述记号,即
当存在控制值0时,分配器701将输入端703与输出端705连接,并且当存在控制值1时,分配器701将输入端704与输出端705连接。
因此,当存储单元606不被所述记号占用时,由分配器701在输出端705上输出可能有错误的第一校验比特
例如可以设置一种存储器装置,所述存储器装置具有用于存储第一和第二数据Wit
易失性存储器可以包括例如SRAM或者DRAM。非易失性存储器可以例如实施为EEPROM。
机译: 错误纠正码解码装置,错误纠正码解码方法和错误纠正码解码程序
机译: 错误纠正码解码装置,错误纠正码解码方法和错误纠正码解码程序
机译: 同时应用错误纠正/错误检测/错误纠正的里德所罗门码解码系统