CN106469099A - 在应用wom码的情况下的错误纠正 - Google Patents
在应用wom码的情况下的错误纠正 Download PDFInfo
- Publication number
- CN106469099A CN106469099A CN201610658775.7A CN201610658775A CN106469099A CN 106469099 A CN106469099 A CN 106469099A CN 201610658775 A CN201610658775 A CN 201610658775A CN 106469099 A CN106469099 A CN 106469099A
- Authority
- CN
- China
- Prior art keywords
- bits
- wit
- bit
- memory
- code
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 436
- 238000000034 method Methods 0.000 claims abstract description 191
- 230000008569 process Effects 0.000 claims abstract description 101
- 238000012545 processing Methods 0.000 claims description 8
- 210000004027 cell Anatomy 0.000 description 204
- 239000011159 matrix material Substances 0.000 description 38
- 230000006870 function Effects 0.000 description 29
- 238000012937 correction Methods 0.000 description 28
- 239000013598 vector Substances 0.000 description 18
- 238000006243 chemical reaction Methods 0.000 description 10
- 230000015572 biosynthetic process Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 239000002904 solvent Substances 0.000 description 4
- 230000009897 systematic effect Effects 0.000 description 4
- 101100460704 Aspergillus sp. (strain MF297-2) notI gene Proteins 0.000 description 3
- 241000271935 Bitis Species 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 241000764238 Isis Species 0.000 description 1
- 241000695274 Processa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—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 with specific ECC/EDC distribution
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/146—Write once memory, i.e. allowing changing of memory content by writing additional bits
-
- 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/033—Theoretical methods to calculate these checking codes
-
- 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
-
- 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
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- 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
- G11C2029/0411—Online error correction
-
- 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
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
提出一种用于在存储器的存储单元中存储比特的方法,其中以两个彼此相继的写过程将第一和第二Wit在相同地址下写入到相同的存储单元中,而在第一写过程之后不擦除所述存储单元,其中将第一校验比特存储到另外的第一存储单元中并且将第二校验比特存储到另外的第二存储单元中。此外说明一种相应的设备。
Description
技术领域
在此描述的方案尤其涉及数据在可寻址的存储器中的存储。
背景技术
例如以两个彼此相继的写过程将数据在一个地址下写入到所述存储器中,而当在跟随第一写过程的第二写过程中将数据写入到存储器中时不需要擦除在第一写过程中写入到存储器中并作为状态存储到存储器的存储单元中的数据。
在此尤其考虑这样的存储器,所述存储器具有可以采用至少一个第一值和至少一个第二值作为状态的存储单元,其中所述第一值不同于所述第二值。第一值在此示例性地以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个第一有用数据比特x1根据所使用的WOM码被转换成NW个第一有用数据Wit ,而且第二有用数据比特x2转换成第二有用数据Wit ,其中以下适用:
(1)
并且
NW个有用数据Wit的组元和如nW个有用数据比特的组元和那样在此采用二进制值。
在使用WOM码的情况下,有用数据Wit的组元被称作Wit代替比特。所述Wit涉及二进制值,其可以以彼此相继的写过程写入到存储单元中并且可以被覆盖。
也可能的是,在多级存储单元——所述存储单元的状态可以采用多于两个值——的情况下,所述Wit可以具有多于两个的值。在这样的情况下,所述Wit因此是多级值,而非二进制值。
如果在第一写过程中和在第二写过程中nW个有用数据比特的所考虑的块(在此第一块)的待存储的nW个有用数据比特x1和x2一致,则所述有用数据比特借助相同的函数转换成分别相同的个有用数据Wit。所述有用数据Wit存储在个存储单元中。
如果在第一写过程中和在第二写过程中nW个有用数据比特的所考虑的块(在此第一块)的待存储的nW个有用数据比特x1和x2不一致,则根据关系由nW个第一有用数据比特x1构成待在第一写过程中写到存储器中的个有用数据Wit y1,而根据关系确定待在第二写过程中写的个有用数据Wit y2,其中适用。
定义函数和,使得以下适用:
,
其中是逻辑或,具有。
由方程(3)可以看出,仅仅当在第一写过程中也等于0时,在第二写过程中有用数据Wit 才可以等于0。
如果未知或者不确定是否或者,则可以定义:
(4)
其中对于或者对于,则,并且对于,其中,则。
下面示例性地阐述具有比特并且Wit的WOM码。
有用数据比特的元组可以通过函数f1和f2转换成有用数据Wit的三元组
和,根据以下表格:
。
在第一写过程中,根据函数f1,将第一块的两个第一有用数据比特转换成由三个第一有用数据Wit组成的块。这三个有用数据Wit在地址α下存储到三个存储单元中。
在相继的第二写过程中,将第一块的两个第二有用数据比特转换成三个第二有用数据Wit并且将所形成的三个有用数据Wit在相同的地址α下存储在三个存储单元中,在所述三个存储单元中已经存储了所述三个第一有用数据Wit,而不必在先擦除所述存储单元。
如果适用,则在使用函数f1的情况下不仅形成所述三个第一有用数据Wit而且形成所述三个第二有用数据Wit,并且在第一写过程中写入到所述三个存储单元中的三个有用数据Wit用相同值来覆盖。三个存储单元因此保持不变。
如果适用,则在使用函数f1的情况下不仅形成所述三个第一有用数据Wit而且形成所述三个第二有用数据Wit,因为并且值0,0,0可以由任意值无错误地覆盖。原则上也可能的是,将值0,0,0用覆盖;然而优选地,可以应用函数,以便将整体上较少的1值写到存储器中。
如果适用,则借助函数f1由构成三个所述第一有用数据Wit,而借助函数f2由构成三个第二有用数据Wit。将在第一写过程中构成的有用数据Wit写入到三个存储单元中,并且在第二写过程中将三个第二有用数据Wit写到三个相同的存储单元中。通过根据在先前的表格中所示的WOM码将有用数据比特编码成有用数据Wit来确保,仅仅当在第一写过程中值0已经被写入到存储单元中时才可以在第二写过程中将值0写到该存储单元中。
如果例如应该在第一写过程中存储有用数据比特=0,1,则将所述有用数据比特根据上述表格通过函数f1转换成并且将有用数据Wit 0,0,1在地址α下作为状态存储到三个存储单元中。
在第二写过程中应示例性地存储有用数据比特。因为适用,并且所述第一写过程的有用数据比特不同于在第二写过程中待存储的有用数据比特,所以将有用数据比特1,0通过函数f2转换成有用数据Wit并且作为状态存储到所述存储单元中。这是毫无问题地可以的,因为在第二写过程中不必以值0覆盖具有值1的存储单元。换言之,以下适用:
。
在另一示例中应在第一写过程中存储有用数据比特。根据所述表格借助函数f1实施到的变换。
如果应在第二写过程中存储有用数据比特,所述有用数据比特与在第一写过程中保存的有用数据比特相同,则在第二写过程中也将有用数据比特通过函数转换成并且写到存储单元中。状态保持不变。
如果在第二写过程中应存储有用数据比特,则根据存储单元的状态可以确定,在第一写过程中存储的数据比特是否等于。在第一写过程之后,相应的有用数据Wit作为状态来存储并且以下适用:
并且。 (5)。
此外可以将由在存储单元中存储的状态计算的数据比特与在第二写过程中待存储的数据比特进行比较。如果该比较得出应在第一写过程中存储的数据比特等于应在第二写过程中存储的数据比特,则将数据比特借助函数f1转换成有用数据Wit并且作为有用数据Wit存储。相反,如果该比较得出应在第一写过程中存储的数据比特不等于应在第二写过程中存储的数据比特,则将数据比特借助函数f2转换成有用数据Wit并且作为有用数据Wit存储。
在所描述的示例中,可以两次地以彼此相继的写过程存储经各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个第一校验比特,使得N个第一Wit和所述m1个所构成的第一校验比特c1是至少长度N+m1的第一错误码C1的码字的比特,其中尤其N>m1适用。
第一校验比特中的至少一个可以取决于第一Wit的第一块的一个Wit以及取决于第一Wit的第二块的一个Wit。
在第二写过程中在相同地址α下将N个第二Wit的第二块写入到存储器中,然后在第二写过程中构成m2个第二校验比特,使得N个第二Wit和m2个第二校验比特c2是至少长度N+m2的第二错误码C2的码字的比特,其中尤其N>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)矩阵。可以根据以下来确定码字的n个比特中的k个信息比特:
。
如果生成矩阵和H矩阵是以系统形式,则以下有效:
以及,
其中m=n-k。在此,
Ik是k维的单元矩阵,
Im是m维的单元矩阵,
Pk,m是(k,m)奇偶校验矩阵,以及
是转置的奇偶校验矩阵,其通过奇偶校验矩阵Pk,m中的行和列的交换来获得。
在系统码的情况下,直接由G矩阵产生可能的H矩阵。此外,以下适用于系统码:
其中
并且。
将以下校验比特添加至信息比特:
。
当或者适用时,字是码C的码字,其中在此表示m维的列向量。
如果矩阵、在此矩阵H从左与向量、在此向量v相乘,则向量v是行向量。如果矩阵、在此矩阵H从右与向量vT相乘,则向量vT是列向量,其中向量vT是行向量v的转置的列向量。
如果是一个字,所述字由码字通过错误得出,则称作错误向量。
如果适用于,则,并且第i个组元是有错误的。如果适用于,则,并且第i个组元是正确的。
如果错误向量e具有多个等于1的q组元,则存在q-比特错误。
错误故障位(Fehlersyndrom)通过来确定,并且当字v是码字时,等于。
如果码C是识别τ-比特错误的码,则对于所有-比特错误。
如果码C是纠正t-比特错误的码,则对于所有不同的-比特错误,不同。
汉明距离(其中,并且)等于以下比特的数目:在所述比特中v1和v2不同,使得适用,
其中是逐个组元的异或连接。
码的码距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的地址下。这3个有用数据比特的块构成6个第一有用数据比特并且分配给它们的3个有用数据Wit块构成9个第一有用数据Wit。
有用数据比特x1, x2构成第一有用数据比特的第一块并且在使用在表格中描述的WOM码的情况下转换成第一块有用数据Wit y1,y2,y3。
该WOM码是码。如先前已经阐述的那样,在此,
NW表示(有用数据)Wit(即经转换的比特)的数目;
nW表示比特(也称为数据比特或者有用数据比特)的数目;
t表示写过程的数目,在所述写过程中,可以将nW个比特经编码为NW个Wit地在地址α上写到存储器中,而在此期间不必擦除存储器。
有用数据比特x3, x4构成第一有用数据比特的第二块并且在使用在表格中描述的WOM码的情况下转换成第二块有用数据wit y4,y5,y6。相应地,有用数据比特x5, x6构成第一有用数据比特的第三块并且在使用在表格中描述的WOM码的情况下转换成第三块有用数据Wit y7,y8,y9。
作为示例,将以下比特序列考虑为第一有用数据比特:
。
图1a示出存储区域101,在所述存储区域中应在地址上存储第一有用数据Wit的三个块、和,在使用WOM码的情况下根据上述表格将第一有用数据比特的三个块、和编码成第一有用数据Wit的三个块。所述地址例如是:。
存储区域101具有19比特的字宽。存储区域101的存储单元在图1a中以表示。所述19比特划分为9个第一(有用数据)Wit 102、5个第一校验比特103和5个第二校验比特104。
存储单元用于存储数据Wit,存储单元用于存储校验比特。
示例性地考虑以下情况,即存储区域101在写之前被完全(并且无错误地)擦除。因此,存储单元Zi()在其被写之前是在状态中。
根据上面示例性地说明的有用数据比特的比特序列对于各两个有用数据比特的块产生以下关系:
,
,
。
有用数据比特的这些块根据如下表格被编码成有用数据Wit:
,
,
。
在所考虑的实施例中应在使用(14, 9)-码C的情况下构成校验比特,其中码C是具有H矩阵和G矩阵的缩短的汉明码:
其中
适用并且
是矩阵P9,5的转置矩阵。
在本例中,根据以下关系确定5个第一校验比特:
因此,在第一写过程中,在地址下将第一数据Wit 100000010写到存储单元中并且将第一校验比特11110写到存储单元中。
图1b相应地示出在第一写过程之后具有地址10011的存储区域101的内容或者状态。第一校验比特11110在此由第一有用数据Wit构成并且不被转换成Wit。校验比特对于9个第一有用数据Wit(即第一有用数据Wit的所述三个块)共同地构成。这具有以下优点:与为每个单个的Wit块构成校验比特的情况相比需要较少的校验比特。
在第二写过程中,以下6个第二有用数据比特的块现在应被编码为有用数据Wit并且被存储:
,
,
。
在3个第一存储单元中,Wit 100在第一写过程之后被存储。第二有用数据比特的第一块被编码成第二有用数据Wit
并且被写到存储单元中,所述存储单元在第二写过程之前被100占据。第一有用数据Wit 100用第二有用数据Wit 101覆盖。
在3个第二存储单元中,Wit 000在第一写过程之后被存储。第二有用数据比特的第二块被编码成第二有用数据Wit
并且被写到存储单元中,所述存储单元在第二写过程之前被000占据。第一有用数据Wit 000用第二有用数据Wit 100覆盖。
在3个第三存储单元中,Wit 010在第一写过程之后被存储。第二有用数据比特的第三块被编码成第二有用数据Wit
并且被写到存储单元中。第一有用数据Wit 010用具有相同值的第二有用数据Wit 010覆盖。
在此应注意,可选地也可以省去相同值的覆盖。在前述示例中这意味着,当第一有用数据Wit 010通过第二有用数据Wit 010覆盖时,可以省去实际的写过程。
总之,因此根据在此存在的示例产生以下编码序列:
5个第二校验比特根据以下关系来构成:
9个第二有用数据Wit 101 100 010在第二写过程中被写入到存储单元中。存储单元在第一写过程之后具有状态。第二写过程可应用到所述状态上,因为没有任何状态经历从1到0的过渡。
第二校验比特在第二写过程中被写入到存储单元中。
图1c示出在第二写过程之后存储单元的内容或者状态。
在第一写过程之后,在存储单元中存储9个第一有用数据Wit 100 000010并且在存储单元中存储第一校验比特11110。产生所考虑的码C(在此:汉明码)的码字:
11110 100 000 010。
在第二写过程之后,在存储单元中存储9个第二有用数据Wit 101100 010并且在存储单元中存储第二校验比特01001。产生所考虑的码C的码字:
01001 101 100 010。
有利的是,存储第一校验比特103和第二校验比特104,而不将它们转换成Wit。在这种情况下,Wit和校验比特的组合不被“WOM-编码”。就此而言可以将例如已知的纠正错误的码应用到数据Wit上。此外,校验比特借助WOM码编码成校验Wit可能导致,通过在所存储的校验Wit中的错误出现在校验比特中的附加的错误,所述校验比特对于数据Wit的纠正而言是必需的。
如果例如将比特10经编码成Wit地写到存储器中并且例如在所述Wit的第二位置处出现1-比特错误,使得将1,0,0失真成1,1,0,则由所述表格得出,Wit1,1,0相应于比特0,1:
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的码字的第一校验比特作为第一校验比特写到用于存储第一校验比特的第一存储单元中。如果码C2的码字的第二校验比特作为第二校验比特写到用于存储第二校验比特的第二存储单元中,所述第二存储单元不同于用于存储第一校验比特的第一存储单元,则用于存储第一校验比特的第一存储单元可以用记号(也称作标签或者标记)、例如用记号覆盖,当所述记号自身不是所使用的码C1的码字的允许的校验比特组合时。
也可以的是,将第二校验比特写到用于存储校验比特的第一存储单元中,当这无错误并且在无附加的擦除过程的情况下可以时,即使所述存储单元先前已经在第一写过程中被写入。
当在第一写过程之后没有这样的存储单元——在第二写过程中应将校验比特0(即状态0)写到所述存储单元中——是在状态1中时,可以将第二校验比特写到用于存储校验比特的第一存储单元中。换言之(在无事先擦除的情况下,如已经实施的那样)能够实现从0到1的状态变换,但不能相反地从1到0。也可以的是,在无事先擦除的情况下存储单元保留在其状态0或1中。
如果不出现错误,则可以将第二校验比特在第二写过程中尤其写到与第一校验比特相同的存储单元中,只要适用,即应使用相同数目的存储单元用于校验比特,并且只要适用。
否则可以将第二校验比特写到用于存储校验比特的第二存储单元中,其中在这种情况下,用于存储校验比特的第一存储单元可选地获得标记,即相应地被覆盖。
这样的操作在以下情况下尤其可以是有利的,即例如应在地址下存储Wit ,所述Wit分配有校验比特,所述校验比特可以被任意值无错误地覆盖。作为记号例如可以选择值。这是可以的,只要所述记号自身不是码字的有效校验比特组合。可选地,也可以使用其他记号,只要它们不对(有效的)码字作出贡献。
在读取用于存储第一校验比特的存储单元时,当所述比特不等于所述记号时,将所述比特用作第一校验比特。否则,即当在用于存储第一校验比特的存储单元中读取的比特等于所述记号时,将用于存储第二校验比特的存储单元用作校验比特。
当由第一校验比特的存储单元读取的比特等于所述记号并且由第二校验比特的存储单元读取的比特作为校验比特与所读取的Wit一起不构成有效的码字时或者当由第一校验比特的存储单元读取的比特不等于所述记号并且所述比特作为校验比特与所读取的Wit一起不构成有效的码字时,因此可以识别错误。
码扩展
下面描述一个实施例,根据所述实施例由给定的码——在所述码中比特1,…,1是码字的校验比特——可以确定经修改的码,在所述经修改的码中,比特1,…,1不是有效码字的校验比特。
如果所述给定的码具有m个校验比特,则可以的是,添加另外的校验比特,使得是所给定的码的偶数个校验比特的XOR连接(XOR:异或)。
因此例如可以的是,根据由两个第一校验比特和确定另外的校验比特。如果,则并且不是经修改的码的码字的校验比特。
相应地,可以提供个存储单元用于存储m+1个第一校验比特和仅仅m个存储单元用于存储m个第二校验比特。于是不需要将由m个第一校验比特导出的第(m+1)个校验比特在写过程中存储到用于存储第二校验比特的存储单元中,因为所述记号仅仅被记录到用于存储校验比特的个第一存储单元中。
也可以的是,添加多个附加的校验比特以便由给定的码导出经修改的码,所述经修改的码包含比特序列,该比特序列不是有效码字的比特序列。
例如应给定具有6个数据比特和6个校验比特的码C2,其中H-矩阵
并且G-矩阵
其中
并且
向量是码向量,因为H矩阵的每行包含偶数个1并且是码字的部分字。在此,表示由纯粹的1组成的向量(在所述情况下由12个1组成)。
由码C2导出码C1,其方式是,添加附加的校验比特,
使得不是码字的部分字。
对于码C1的G矩阵G1适用:
其中
当适用时,则并且不是码C1的有效码字的校验比特。
图2示出6个存储单元201 、7个存储单元202 和6个存储单元203 。在所述19个存储单元201至203中可以在地址下存储二进制值,所述地址在此示例性地以101说明。
在第一写过程中根据WOM码(见以上的表格)在考虑存储单元和的状态和的情况下由第一数据比特的两个块确定第一数据Wit和的两个块。如果存储单元201完全地并且无错误地被擦除并且分别位于状态0中,则
以及适用。
第一数据Wit被写在存储单元201中,所述存储单元在写过程之后具有状态。在第一写过程中,根据码C1根据以下关系确定第一校验比特并且将所述第一校验比特写到存储单元202中:
因为对于第一校验比特适用,所以存储单元202在第一写之后不被7个彼此相继的二进制1-值1111111占用。
在第二写过程中可以的是,由第二数据比特的两个待写的块并且根据存储单元的状态根据以及确定第二数据Wit块。
在此,表示比特的待在第二写过程中使用的到Wit的转换,所述转换取决于,在存储单元201中的在第一写过程中所写的数据Wit具有哪个值。
第二校验比特根据码C2根据关系
来构成并且写到存储单元203中。现在值被写到存储单元202中。
在第一写过程中,根据码C1构成7个第一校验比特。在第二写过程中,根据码C2确定6个第二校验比特。示例性地,C1和C2是不同的码。
因此,得出:
- 如果值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中。当由于老化的存储器不是所有存储单元在事先的擦除过程中被成功擦除时,例如才可能出现这样的情况。
例如,两个数据比特的块应在使用WOM码的情况下根据上述表格转换成三个数据Wit的块,以便将所述数据Wit写到具有状态的存储单元中。
可以的是,将所述Wit 无错误地写到存储单元中,如果
或者 (20)
适用。
此外可以的是,将所述Wit 无错误地写到存储单元中,如果
或者 (21)
适用。
如果,则对于的每种占用可能的是,不仅将而且将作为3个Wit的块写到存储单元中。
对于确定的值可能的是,将2个数据比特的块作为3个数据Wit的块(其中)无错误地写到存储单元中,所述存储单元位于状态中,当存在具有的i时,使得
适用。
如果三个状态中的仅仅一个单个的状态采用值1,则可能的是,将两个比特的每种占用经编码为3个Wit地无错误地写到相应的存储单元中,因为对于以及,根据上述WOM码表格,
适用。
如果状态中的仅仅一个、例如等于1,则或者或者。
也可以的是,用于存储校验比特的存储单元或者的状态或者状态在校验比特被写到这些存储单元中之前等于1。
因此可以的是,当
适用时,将校验比特无错误地写到存储单元中。
相应地可以的是,当
适用时,将校验比特无错误地写到存储单元中,所述存储单元具有状态。在此,C1表示第一码并且C2表示第二码。
如果可以将第一校验比特无错误地写到存储单元202中,则将第一校验比特也存储在存储单元202中。如果与此相反不能将第一校验比特无错误地写到存储单元202中,则将所述第一校验比特——如果这是可能的——写到存储单元203中。
可选地在这种情况下可以将所述标记、即值1111111写到存储单元202中。在此应假设,所述标记不是第一码C1的有效码字,即适用。
如果不能将经编码为Wit的数据比特无错误地写到相应的存储单元中或者不能将所述校验比特无错误地写到所设置的存储单元中,则一种选择是,擦除所述存储区域并且之后重新写所述区域或者可以利用另外的存储区域。这尤其当原始存储区域具有缺陷时能够是有利的。
另一种选择在于,确定每个存储区域的可能被有错误地写入的存储单元的数目,并且将该数目与预给定的阈值进行比较。在达到和/或超出该阈值的情况下所述存储区域可以被擦除,以便之后可以重新被写入。替代地,取代该存储区域可以使用另外的存储区域。
也可以的是,确定通过数据Wit有错误地写入的存储单元的数目并且确定通过校验比特有错误地写入的存储单元的数目并且根据所述值和擦除确定的存储区域或者使用另外的存储区域。
被有错误地写的存储单元的数目例如可以通过将待写的数据与在所述写之后读取的数据进行比较来确定。
当存储单元在写之前是在状态1中并且值0被写到该存储单元中,其中该单元的状态不发生改变,使得该单元在写之后有错误地具有值1时,存储单元是在有错误的状态中。
可以的是,当存储区域的存储单元的状态在写之后是有错误时擦除所述存储区域。
例如也可以的是,当存在多个通过码不可纠正的比特错误时,在使用纠正错误和/或识别错误的码的情况下擦除存储区域。此外一种选择是,当存在确定数目的比特错误时已经擦除所述区域,即使所述数目通过码不可纠正。
示例:在出现比特错误时存储有用数据Wit
下面要描述一个示例,根据所述示例,当出现至少一个错误时,将编码为有用数据Wit的k个块的的有用数据比特的k个块在地址α下存储在存储器中。
xi表示有用数据比特的第i个块的有用数据比特并且yi表示有用数据Wit的第i个块[yi]的有用数据Wit,其中。
例如可以实施以下步骤:
1. 根据WOM码根据以下关系将有用数据比特块的比特xi编码成有用数据Wit块的Wit,总共成为一定数量的N个有用数据Wit:
其中对于根据在其中写入块yj的Wit的存储单元的状态并且根据xj由WOM码的可能的编码函数选择所应用的WOM码的编码函数,使得所述存储单元的、等于1的并且具有值0的Wit写到其中的状态的数目为最小;
2. 确定m个校验比特,使得产生至少长度的识别错误的和/或纠正错误的码C的码字的个比特,其中适用m≥1;
3. 如果存储单元的、等于1的并且在其中应被写入值0的状态的数目达到或者超过预给定的阈值S1,其中S1≥0,也即如果满足以下条件:,则擦除通过地址α寻址的存储区域;
4. 确定用于存储校验比特的第一存储单元的数目,所述第一存储单元是在状态1中并且应在地址α下将校验比特c的具有值0的校验比特写入到所述第一存储单元中;
5. 如果数目达到或者超过阈值S2,其中S2≥0,即满足以下条件:
则确定用于存储校验比特的第二存储单元的数目,所述第二存储单元是在状态1中并且应在地址α下将校验比特c的具有值0的校验比特写入到所述第二存储单元中;
- 如果数目,则将校验比特c写到第二校验比特的存储单元203中,其中S3≥0是预给定的阈值;
- 如果数目,则擦除包含地址α的存储区域,其中S3≥0是预给定的阈值;
6. 如果满足条件和/或条件,其中S4≥0是预给定的阈值,则擦除包含地址α的存储区域。
先前的步骤因此检查,对于有用数据Wit和/或(第一和/或第二)校验比特是否(分别)存在已经具有状态1的多个存储单元,所述多个存储单元应用值0来写上并且所述多个存储单元因此在不事先擦除的情况下不能够再转变到状态0中。如果是这种情况并且相应的数目或者数目的组合超过(至少)一个阈值,则擦除所述存储区域。在此有利的是,有用数据Wit与校验比特组合可以是识别错误和/或纠正错误的码的码字,使得可以纠正有错误的比特(即具有值1而非值0的这样的比特)的确定的量。
如果例如为了由第一数据Wit的k个块确定第一校验比特c1并且为了由第二数据Wit的块确定第二校验比特c2使用纠正t-比特错误的码,则可以纠正存储单元的所有有错误的值,所述有错误的值在值0写入到以下存储单元中产生,所述存储单元当S4≤t适用时并且当在存储器中不出现其他错误时是在状态1中。
如果适用,则可以对于有错误的值附加地还纠正其他δ存储器错误,所述有错误的值在值0写入到处于状态1中的存储单元中产生。
示例:地址错误的识别
下面说明一个实施例,根据所述实施例可以识别地址中的错误。
地址比特在此可以理解为附加比特。这样的附加比特尤其是除了数据Wit之外用于构成校验比特的比特。此外一种选择是,设置至少一个取反比特,所述至少一个取反比特被添加到数据比特中,以便描述数据比特(或者数据比特组)是否或者哪些数据比特(或者数据比特组)已经被取反。附加比特也可以包括至少一个指示符比特(密码)。
示例性地说明具有码距3、H矩阵
和G矩阵
的码C,其中
。 (27)。
H矩阵的所有列具有奇数个1,使得所述码是缩短的Hsiao码。该缩短的Hsiao码允许1-比特错误的纠正和2-比特错误的识别。
示例性地将两个数据比特块和根据在此讨论的WOM码(见上面的表格)编码成两个数据Wit块和。
图3象征性地示出包括地址α的存储区域,其中在每个地址α上可以存储18比特。这18比特相应于18个存储单元并且划分为用于数据Wit的存储单元301(存储单元)、用于第一校验比特 的存储单元302(存储单元)和用于第二校验比特的存储单元303(存储单元)。
地址α划分为4比特,使得适用:。
存储单元301用于存储数据Wit块的数据Wit。
在考虑地址的情况下确定校验比特,使得适用:
其中函数是将块根据WOM码根据上述表格根据存储单元301的占用来转换成相应的数据Wit块的函数。如果例如全部存储单元在第一写过程之前是在状态0中,则适用:。
在此所描述的示例中,应在第一写过程中将块和在地址1010下并且将块 和在地址1011下经编码为数据Wit地存储。其出发点是,所有存储单元301在第一写过程之前具有值0。
数据比特块被转换成数据Wit块
并且数据比特块被转换成数据Wit块。
因为数据Wit 应存储在地址1010下,所以得出校验比特为:
。
数据Wit 在地址1010下存储在存储单元301中。校验比特在地址1010下存储在存储单元302中,在地址1010处的存储单元303保留在状态0中。
数据比特块被转换成数据Wit块
并且数据比特块被转换成数据Wit块。
因为数据Wit应被存储在地址1011下,所以得出校验比特为:。
数据Wit 在地址1011下被存储在存储单元301中。校验比特在地址1011下被存储在存储单元302中,在地址1011处的存储单元303保留在状态0中。
如果在意图要存取在地址1010下存储的数据的时候出现地址错误,其方式是,例如由于在存储器内的错误将地址1010失真成1011,则读取在地址1011下存储的数据,尽管本应读取在地址1010下存储的数据。在这种情况下因此读取校验比特和数据Wit 。所述校验比特和所述数据Wit以以下地址的地址比特1010来补充:在存储器中应该无错误地存取所述地址。因此产生以下码字:
。
该码字由于以下关系而不是所考虑的码C的码字:
。向量等于H矩阵的第16列,该列显示未被纠正的地址错误。
在这里所示的示例中,码字具有16比特的长度。6个校验比特(参考存储单元302)和6个数据Wit(参考存储单元301)构成该码字的16比特的子集。
一个集合的子集可以是一个集合的真实子集或者所述集合自身。
在此时考虑的示例中,6个第一校验比特、6个数据Wit 和4个地址比特只要没有错误出现就构成长度16的所使用的码的码字。6个第一校验比特和6个数据Wit 构成码字的所有比特的集合的16比特的真子集。
在地址没有被同时考虑到编码中的情况下,校验比特和数据Wit的全部构成码字的所有比特,所述比特的子集等于所述码字的所有比特的集合。
示例:考虑由地址比特导出的比特
阐述,如何例如可以替代地址比特地将由地址比特导出的比特考虑到校验比特的构成中。
例如可以根据以下来确定由地址比特导出的比特:
其中是m位的布尔函数。下面示例性地考虑以下情况,即适用;但也可能的是,适用。
因此可以根据一个具有以及的实施例来使用以下布尔函数:
其中表示异或函数。在该示例中,表示地址比特的奇偶校验比特。例如对于m=4,得出。
因此,地址比特中的每个1-比特错误导致所导出的比特中的一个错误。
在另一个实施例中,可以是l=3并且所导出的比特可以如下被确定:
使得地址比特中的每个2-比特错误导致所导出的地址比特中的另一个值。布尔函数在此示例性地是线性的。
替代地可以如下确定所导出的比特:
在该示例中,布尔函数和是非线性的并且布尔函数是线性的。
示例:将由地址比特导出的比特考虑到校验比特的构成中
下面阐述,如何可以将由地址比特导出的比特考虑到校验比特的构成中。
在下面的示例中,适用并且所导出的地址比特是地址比特的奇偶校验比特。
两个有用数据比特块根据在写之前包含在相应的存储单元中的状态根据先前表格的WOM码被转换成两个有用数据Wit块。
图4说明一个存储区域,所述存储区域具有:示例性地具有值1010的地址404以及6个用于数据Wit的存储单元401(存储单元)、6个用于第一校验比特的存储单元402(存储单元)和6个用于第二校验比特的存储单元403(存储单元)。
两个数据Wit块和可以被存储在地址α 404下。
在考虑所导出的地址比特、在此地址比特的奇偶校验比特的情况下确定第一校验比特,使得
适用,其中函数和是根据WOM码根据存储单元和的占用来将块的有用数据比特转换成相应的数据Wit块的函数。
作为线性码C的示例,使用具有G矩阵的码:
其中,
。
如果例如全部存储单元在第一写过程之前是在状态0中,则适用。
在一个示例中,应在第一写过程中将块和在地址1010下经编码为数据Wit地存储。由地址比特得出奇偶校验比特为:
。
又应假设,所有存储单元在第一写过程之前是在状态0中。
数据比特块被转换成数据Wit块
并且数据比特块被转换成数据Wit块
。
因为数据Wit 应被存储在具有奇偶校验比特的地址1010下,所以得出校验比特为
。
示例:指示符比特的考虑
以下也是一种选择,即在校验比特的构成中考虑指示符比特,其中L>0。
指示符比特在此例如可以构成密码,所述密码可以由用户在存取数据时说明。如果所说明的密码是有错误的,则可以显示错误。所述错误尤其可以锁止数据的输出。另一种选择是,将数据从存储器通过数据总线提供给不同的用户,其中每个用户仅仅可以处理相应于其自身的指示符比特或者借助所述指示符比特过滤的数据。
示例性地应给出码C,所述码具有码距3和根据方程(25)的H矩阵、根据方程(26)的G矩阵和根据方程(27)的奇偶校验矩阵。
H矩阵的所有列具有奇数个1,使得所述码是缩短的Hsiao码。该Hsiao码允许纠正所有1-比特错误并且识别所有2-比特错误。
示例性地将两个数据比特块和根据在此示例性地说明的WOM码编码成两个数据Wit块和。
在考虑指示符比特的情况下如下确定校验比特
其中上述实施相应地适用于函数。
根据一个示例,应在第一写过程中将块 和在地址1000下并且将块和在地址1001下经编码为数据Wit地存储。又应假设,所有存储单元在第一写过程之前是在状态0中。
数据比特块被转换成数据Wit块
并且数据比特块被转换成数据Wit块
。
因为数据Wit 应在使用指示符比特1010的情况下被存储,所以得出校验比特为
。
如果应读取在地址1000上的数据并且由用户错误地输入指示符比特1001(即错误的密码)而非指示符比特1010,则由在地址1000上读取的数据Wit 100 010、校验比特001100和错误的指示符比特1001不产生码C的有效码字。在这种情况下可以防止、例如锁止数据Wit的输出。
示例:数据比特的取反
以下也是一种选择,即在将数据比特编码为数据Wit之前将数据比特取反。在此,将至少一个取反比特添加至数据比特,其中例如将数据比特和所述至少一个取反比特共同编码成数据Wit。
也可以的是,给至少一个取反比特分配有用数据比特的子集,其中所述有用数据比特的子集的分配给所述至少一个取反比特的有用数据比特当所述取反比特采用第一值时不被取反,当所述取反比特采用不同于第一值的第二值时被取反。
以下也是一种选择,即设置并且接受(aufnehmen)多个取反比特。在这种情况下,可以给不同的取反比特分配有用数据比特的不同子集。
此外,一种可能性是,给多个取反比特分配有用数据比特的相同子集。
为了进行阐述,在下面的示例中添加一个取反比特,给所述取反比特分配所有有用数据比特作为有用数据比特的子集。
图5a示出一个存储区域,在所述存储区域中(例如在擦除过程之后)在地址下的并非所有存储单元被成功擦除。
示出一个具有地址504的存储区域,所述地址示例性地具有值10011。根据该地址10011对19个存储单元进行寻址,所述19个存储单元包括9个用于用户数据Wit的存储单元501(存储单元)、5个用于第一校验比特的存储单元502(存储单元)和5个用于第二校验比特的存储单元503(存储单元)。
在不完全的(或者有错误的)擦除过程之后,存储单元Z1、Z9和Z14分别是在状态1中,其他存储单元是在状态0中。
应将5个数据比特直接地、也即未经取反地或者取反为地写到存储器中。
数据比特在该示例中以取反比特来补充,所述取反比特的值说明,数据比特是直接地还是经取反地编码成数据Wit并且写到存储器中。在此,将数据比特直接地或者经取反地与至少一个取反比特一起转换成数据Wit。以下尤其是一种选择,添加多个取反比特。
• 如果数据比特不被取反,则应适用;
• 如果数据比特被取反,则应适用。
如果,则将数据比特
编码成数据Wit,并且将数据Wit写到存储器中。如果,则将
编码为数据Wit并且将数据Wit写到存储器中。
如果,则将数据比特和取反比特作为3个块
按照根据上述表格的WOM码编码成9个Wit:
如下:
其中,。
如果,则将数据比特和取反比特作为3个块
按照根据上述表格的WOM码编码成9个Wit:
如下:
其中,。
作为示例考虑以下数据比特:
。
首先将取反比特设置为等于0。然而,在这种情况下不可能的是,将所有块通过函数 转换成数据Wit,因为例如
适用并且存储单元Z1在图5a中已经具有状态1并且不可以用值来写上。
如果将取反比特设置为等于1,则可以将经取反的数据比特转换成数据Wit并且写到存储器中,而不必将已经在存储器中存在的状态1用值0来覆盖:因此可以的是,将经取反的数据比特借助函数
作为
地编码为数据Wit并且存储到存储单元中。同样可以的是,将经取反的数据比特借助函数
作为
地编码并且将经取反的比特和取反比特借助函数
作为
地编码并且写到存储单元中。
在图5b中示出,Wit 100,000和001存储在存储单元501中。
通过在对数据比特取反之后将所有经取反的数据比特和取反比特借助函数转换成数据Wit的方式,数据Wit中的1的数目比当至少一次使用函数的时候更少。
因为在该示例中在第一写过程中仅仅使用函数(而非函数)用于将比特转换为Wit,所以尽管所述存储器在第一写过程之前不是无错误地被擦除,但在第二写过程中还可以的是,在第二写过程中存储任意的比特值。这当对于第一写过程(基于存在的擦除错误)已经需要WOM码的函数的时候是不可以的。
如果使用至少一个取反比特,则由以下得出用于所考虑的码C的校验比特:
- 有用数据比特、
- 至少一个取反比特、
- 被编码为Wit的比特被写入其中的存储单元的(已经存在的)占用和
- 必要时其他的比特,例如
• 至少一个地址比特和/或
• 至少一个标识符比特。
下面为清楚起见,示例性地从单个的取反比特出发。然而,在此提出的方案也可以相应地用于多个取反比特。
如果取反比特等于0,则将有用数据比特和取反比特根据所使用的WOM码根据相应存储单元的状态逐块地转换成数据Wit块。确定校验比特,使得数据Wit和校验比特构成码C的部分字。
如果取反比特等于1,则将取反的有用数据比特和取反比特根据所使用的WOM码根据相应存储单元的状态逐块地转换成数据Wit块。确定校验比特,使得数据Wit和校验比特构成码C的部分字。
也可以的是,将地址比特或者将由地址比特导出的比特或者指示符比特考虑用于校验比特的构成。如果在校验比特的确定中使用地址比特、由地址比特导出的比特和/或指示符比特,则当取反信号等于1时不需要将地址比特、由地址比特导出的比特和/或指示符比特取反。一种选择是,当取反比特表明发生了数据比特的取反时,在校验比特的确定中将地址比特、由地址比特导出的比特和/或指示符比特取反。
在下面的示例中,为了更清楚起见,在校验比特的确定中不考虑地址比特、由地址比特导出的比特或者指示符比特。
作为码C应示例性地使用线性码,所述线性码的H矩阵通过方程(6)说明、所述线性码的G矩阵通过方程(7)说明并且所述线性码的奇偶校验矩阵通过方程(8)说明。
在该示例中,如先前描述的那样,将取反比特和经取反的数据比特和取反比特10 00 01 转换成数据Wit 100 000 001。
得出校验比特为:
。
所述校验比特可以被写到存储单元中,存储单元Z14的错误地预设为1的值在此不导致冲突(参考图5b)。
数据比特100 000 001和校验比特11101构成具有根据方程(6)的H矩阵的码C的码字11101 100 000 001。如果例如在第7数据wit 中出现错误,所述第7数据wit将值失真成,则得出错误故障位
所述错误故障位等于根据方程(6)的H矩阵的第12列。
首先有错误的Wit和校验比特11101 100 000 101基于根据方程(6)的H矩阵的第12列中的错误故障位被改进为正确的值11101 100 000 001,所述正确的值根据WOM码转换成有用数据比特10 00 01。因为取反比特、在此第6比特等于1,所以将有用数据比特取反为01 11 10,其应被存储。
尤其有利的是,取反比特通过数据Wit的错误纠正被列入错误纠正中并且防止错误,所述取反比特与数据比特一起被转换成数据Wit。
可以的是,使用多个取反比特,其中q>1。例如可以定义:
- 当不进行有用数据比特的取反时,;
- 并且当进行有用数据比特的取反时,在由有用数据比特和取反比特确定Wit之前,。
q个取反比特可以被列入到Wit的构成中,使得在存储Wit之后、在Wit的读取之后、在Wit的错误纠正之后并且在转换回有用数据比特和取反比特之后可以检查,所述取反比特是否相互相同。
如果例如取反比特的数目是,则在并非所有3个取反比特相互相同的情况下可以借助具有3个输入和一个输出的判决器(判决组件)以高的错误公差确定取反比特的值。
也可以的是,对于有用数据比特的每个子集使用至少一个取反比特。根据所述至少一个取反比特可以确定,有用数据比特的相应子集是否被取反。因此,例如有用数据比特可以通过4个取反比特来如下补充:
。
在此,取反比特被列入到数据Wit的构成中并且因此被列入到通过所使用的码C的错误纠正中。
另一种选择在于,除了取反比特之外使用地址比特或者由地址比特导出的比特用于确定相应的校验比特。同样可以的是,除了取反比特之外也使用标识符比特用于构成校验比特。
此外,一种变型方案是,除了取反比特之外不仅将地址比特或者由地址比特导出的比特而且将标识符比特用于构成校验比特。
此外,可以替代线性码地使用非线性码。例如可以的是,由Wit和附加的比特借助Berger码确定校验比特。
示例性的电路装置
图6示出示例性的电路装置,其包括WOM编码单元601、错误编码单元602(包括错误识别单元和/或错误纠正单元)、多路复用器603和可寻址的存储器604。
存储器604具有N个存储单元605,所述N个存储单元用于以两个彼此相继的写过程在地址α下存储N个Wit,而不必在第一写过程之后擦除存储器内容。此外,存储器604具有m个用于在第一写过程中存储m个第一校验比特的存储单元606和m个用于在第二写过程中存储m个第二校验比特的存储单元607。在地址输入端608处存在当前地址的值α。
在WOM编码单元601的-比特宽的第一输入端609处存在在此各个比特的K个块,其中并且。因此,在输入端609处总共存在个比特。
WOM编码单元601将各个有用数据比特的K个块转换成在此各个有用数据Wit的K个块,即总共个Wit y。这些Wit施加在存储器604的输入端610上并且在地址α下存储在N个存储单元605中。此外,N个Wit由WOM编码单元601置于错误编码单元602的N个比特宽的输入端611上。
错误编码单元602由在其输入端611上存在的N个Wit y根据所使用的码构成多种m个校验比特,所述m个校验比特在多路复用器603的m-比特宽的数据输入端612上被输出。多路复用器603具有两个m-比特宽的输出端,以便将由错误编码单元602提供的校验比特或者作为第一校验比特存储在存储单元606中或者作为第二校验比特存储在存储单元607中。在此,代表第一校验比特的第一写过程,并且代表第二校验比特的第二写过程。
因此,由错误编码单元602生成的用于第一写过程的第一校验比特以表示并且用于第二写过程的第二校验比特以表示。
对于第一写过程,多路复用器603通过输入端615获得控制信号s=1并且将数据输入端612与数据输出端613连接,使得第一校验比特施加在地址α下的m个存储单元606的m个数据输入端上并且可以被存储在所述存储单元中。
对于第二写过程,多路复用器603通过输入端615获得控制信号s=2并且将数据输入端612与数据输出端614连接,使得第二校验比特施加在地址α下的m个存储单元607的m个数据输入端上并且可以被存储在所述存储单元中。
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 并且在第一读过程中从m个存储单元606读取m个第一校验比特并且在第二读过程中从m个存储单元607读取m个第二校验比特。
Wit以及校验比特可以包含有错误的比特。第一校验比特施加在分配器701的m-比特宽的数据输入端703上并且第二校验比特施加在分配器701的m-比特宽的数据输入端704上。
分配器701通过输入端706获得控制信号。如果,则输入端703与分配器701的输出端705连接,如果,则输入端704与输出端705连接。
分配器701的输出端705与纠正单元702的输入端707连接。
纠正单元702在输出端708上提供N组元的纠正向量
用于纠正可能有错误的Wit。纠正单元702还具有输入端709,该输入端与存储单元605连接并且通过该连接获得所述N个Wit。
异或电路710具有两个N-比特宽的输入端712和713以及一个N-比特宽的输出端714。输入端712与存储单元605连接并且输入端713与纠正单元702的输出端708连接。通过输出端714将可能有错误的Wit与纠正向量逐组元地异或连接成经纠正的Wit
,
使得适用:
。
经纠正的Wit 通过Wit解码单元711的输出端714提供。该Wit解码单元由经纠正的Wit 逐块地构成经纠正的比特。
对于,当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。如果与此相反第一校验比特相应于所述记号,即,则在所述输入端706上存在控制值1。
当存在控制值0时,分配器701将输入端703与输出端705连接,并且当存在控制值1时,分配器701将输入端704与输出端705连接。
因此,当存储单元606不被所述记号占用时,由分配器701在输出端705上输出可能有错误的第一校验比特。与此相反,当存储单元606被所述记号占用时,在输出端705上输出可能有错误的第二校验比特。
例如可以设置一种存储器装置,所述存储器装置具有用于存储第一和第二数据Wit 和以及用于存储相应的第一和第二校验比特和的非易失性存储器。存储器装置也可以例如附加地具有用于存储第一和第二校验比特和或者用于临时存储第一和第二校验比特和的备份的易失性存储器。在这种情况下可以的是,在系统集成测试范围内有针对性地在易失性存储器中存储的校验比特上实施比特操作,而不必改变在非易失性存储器中存储的校验比特。
易失性存储器可以包括例如SRAM或者DRAM。非易失性存储器可以例如实施为EEPROM。
Claims (37)
1.用于在存储器的存储单元中存储比特的方法,
其中以两个彼此相继的写过程将第一和第二Wit在相同地址下写入到相同的存储单元中,而在第一写过程之后不擦除所述存储单元;
其中将第一校验比特存储到另外的第一存储单元中并且将第二校验比特存储到另外的第二存储单元中。
2.根据权利要求1所述的方法,
其中根据所述第一Wit和所述第一校验比特确定第一错误码的第一码字;
其中根据所述第二Wit和所述第二校验比特确定第二错误码的第二码字。
3.根据以上权利要求中任一项所述的方法,其中所述第一校验比特的数目小于所述第一Wit的数目。
4.根据以上权利要求中任一项所述的方法,其中基于有用数据比特借助至少一个WOM码确定所述第一Wit和所述第二Wit。
5.根据权利要求4所述的方法,其中将至少一个取反比特添加至所述有用数据比特,其中给所述至少一个取反比特分配有用数据比特的子集。
6.根据权利要求5所述的方法,其中当给所述取反比特分配的有用数据比特不取反时,所述至少一个取反比特采用第一值,并且当给所述取反比特分配的有用数据比特取反时,所述取反比特采用与所述第一值不同的第二值。
7.根据权利要求6所述的方法,其中在使用所述有用数据比特和所述取反比特的情况下构成相应Wit,其中当所述取反比特具有所述第一值时不将分配给所述至少一个取反比特的有用数据比特取反,并且当所述取反比特具有所述第二值时将分配给所述至少一个取反比特的有用数据比特取反。
8.根据权利要求5至7中任一项所述的方法,其中在所述第一写过程中确定所述第一校验比特,使得由所述有用数据比特和所述至少一个取反比特确定的第一Wit和所述第一校验比特是所述第一码字的比特,并且其中在相同的地址下的第二写过程中确定所述第二校验比特,使得由所述有用数据比特和所述至少一个取反比特确定的第二Wit和所述第二校验比特是所述第二码字的比特。
9.根据权利要求5至8中任一项所述的方法,其中给所述至少一个取反比特分配的有用数据比特是所有有用数据比特。
10.根据权利要求4至9中任一项所述的方法,
其中在所述写过程之前读取存储到待寻址的存储单元中那里的数据;
其中将所读取的数据与待存储的数据进行比较;
其中如果不能够将待存储的数据无错误地写到所述存储器中,则将所述待存储的数据取反;
其中基于经取反的数据借助所述至少一个WOM码确定所述第一Wit或者所述第二Wit并且将其存储在所述存储单元中。
11.根据权利要求4至10中任一项所述的方法,其中借助所述至少一个WOM码编码的第一Wit不同于借助所述至少一个WOM码编码的第二Wit。
12.根据权利要求4至11中任一项所述的方法,其中在所述第一写之前不完全擦除所述存储器的至少一个存储单元,其中基于所述至少一个不完全擦除的存储单元借助所述至少一个WOM码对所述第一Wit和所述第二Wit编码。
13.根据权利要求4至12中任一项所述的方法,其中所述第一Wit和所述第二Wit分别组织为块,其中所述第一Wit的块之一的比特的通过所述至少一个WOM码的每种占用被分配两种不同的编码。
14.根据以上权利要求中任一项所述的方法,其中所述第二校验比特的数目小于所述第二Wit的数目。
15.根据以上权利要求中任一项所述的方法,其中所述第一错误码是识别错误的码和/或纠正错误的码,并且其中所述第二错误码是识别错误的码和/或纠正错误的码。
16.根据以上权利要求中任一项所述的方法,其中所述第一错误码是具有大于等于3的码距的码。
17.根据以上权利要求中任一项所述的方法,其中所述第二错误码是具有大于等于3的码距的码。
18.根据以上权利要求中任一项所述的方法,其中所述另外的第一存储单元和所述另外的第二存储单元彼此不同。
19.根据以上权利要求中任一项所述的方法,其中当不出现错误时,所述第一Wit和所述第一校验比特是所述第一码字的比特的真子集或者所述第二Wit和所述第二校验比特是所述第二码字的比特的真子集或者不仅所述第一Wit和所述第一校验比特是所述第一码字的比特的真子集而且所述第二Wit和所述第二校验比特是所述第二码字的比特的真子集。
20.根据以上权利要求中任一项所述的方法,其中所述第一错误码的长度大于所述第一Wit的和所述第一校验比特的数目,并且其中所述第二错误码的长度大于所述第二Wit的和所述第二校验比特的数目。
21.根据以上权利要求中任一项所述的方法,其中根据所述第一Wit、所述第一校验比特和第一附加比特确定所述第一错误码的第一码字,并且其中根据所述第二Wit、所述第二校验比特和第二附加比特确定所述第二错误码的第二码字。
22.根据权利要求21所述的方法,其中在写到所述存储器中的时候和/或在从所述存储器中读取的时候,所述第一Wit、所述第一校验比特和所述第一附加比特构成所述第一码字并且所述第二Wit、所述第二校验比特和所述第二附加比特构成所述第二码字。
23. 根据权利要求21或22所述的方法,其中所述第一附加比特和/或所述第二附加比特分别至少基于以下信息之一:
地址信息、
涉及写地址或读地址的地址信息、
由地址信息导出的信息、
标识符信息、
密码信息、
取反信息。
24.根据权利要求21至23中任一项所述的方法,其中识别和/或纠正所述第一附加比特中的错误,和/或其中识别和/或纠正所述第二附加比特中的错误。
25.根据以上权利要求中任一项所述的方法,其中只要将所述第二校验比特存储在所述另外的第二存储单元中,就在所述另外的第一存储单元中存储一个标记。
26.根据权利要求25所述的方法,其中所述标记是一个比特序列,所述比特序列不是所述第一校验比特的有效比特序列。
27.根据以上权利要求中任一项所述的方法,其中当在所述写过程之后在dN位置上的待存储的第一或者第二Wit不具有所期望的状态时和/或当在所述写过程之后在所述dP位置上的第一校验比特或者第二校验比特不具有所期望的状态时,擦除可寻址的存储器的包括以下地址的部分区域:写过程被应用到所述地址上。
28.根据权利要求1至26中任一项所述的方法,其中当在到第一部分区域上的写过程之后在dN位置上的待存储的第一或者第二Wit不具有所期望的状态时和/或当在所述写过程之后在所述dP位置上的第一校验比特或者第二校验比特不具有所期望的状态时,利用所述可寻址的存储器的第二部分区域。
29.根据权利要求27或28所述的方法,其中当以下适用时擦除所述部分区域或者利用所述第二部分区域而非所述第一部分区域,
,
其中S2是阈值,对于所述阈值S2≥0适用。
30.根据以上权利要求中任一项所述的方法,其中当所述第一校验比特不能被所述第二校验比特覆盖而不出现预给定数目的有错误的存储单元时,所述另外的第一存储单元和所述另外的第二存储单元彼此不同。
31.根据权利要求30所述的方法,其中有错误的存储单元的所述预给定的数目大于等于0。
32.根据以上权利要求中任一项所述的方法,其中所述第一校验比特的数目大于1,并且其中所述第二校验比特的数目大于1。
33.根据以上权利要求中任一项所述的方法,其中所述可寻址的存储器包括以下类型的存储器中的至少一个类型:
易失性存储器;
非易失性存储器。
34.用于在存储器的存储单元中存储比特的设备,所述设备具有处理单元,所述处理单元被设置成,
使得以两个彼此相继的写过程将第一和第二Wit在相同地址下写入到相同的存储单元中,而在第一写过程之后不擦除所述存储单元;
其中第一校验比特被存储到另外的第一存储单元中并且第二校验比特被存储到另外的第二存储单元中。
35.根据权利要求34所述的设备,其中所述处理单元被设置成,使得
根据所述第一Wit和所述第一校验比特确定第一错误码的第一码字;
根据所述第二Wit和所述第二校验比特确定第二错误码的第二码字。
36.根据权利要求34或35所述的设备,其中所述设备包括以下存储器,所述存储器包括所述另外的第一存储单元和所述另外的第二存储单元。
37.根据权利要求34至36中任一项所述的设备,其中所述存储器包括非易失性存储器和/或易失性存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102015113414.4A DE102015113414B4 (de) | 2015-08-14 | 2015-08-14 | Fehlerkorrektur unter Verwendung von WOM-Codes |
DE102015113414.4 | 2015-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106469099A true CN106469099A (zh) | 2017-03-01 |
CN106469099B CN106469099B (zh) | 2020-06-09 |
Family
ID=57908101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610658775.7A Active CN106469099B (zh) | 2015-08-14 | 2016-08-12 | 在应用wom码的情况下的错误纠正 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10133626B2 (zh) |
CN (1) | CN106469099B (zh) |
DE (1) | DE102015113414B4 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213433A (zh) * | 2017-07-07 | 2019-01-15 | 华为技术有限公司 | 闪存设备中数据写入的方法及设备 |
CN109491597A (zh) * | 2018-10-11 | 2019-03-19 | 中国科学院微电子研究所 | 一种存储器的联想方法及存储器 |
CN112134663A (zh) * | 2019-06-25 | 2020-12-25 | 大唐移动通信设备有限公司 | 一种资源复用装置 |
CN112416665A (zh) * | 2019-08-20 | 2021-02-26 | 北京地平线机器人技术研发有限公司 | 检测处理器运行状态的装置和方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108292260B (zh) * | 2016-08-25 | 2021-01-05 | 华为技术有限公司 | 用于软件自测试的装置和方法 |
US10802909B2 (en) * | 2018-08-17 | 2020-10-13 | Micron Technology, Inc. | Enhanced bit flipping scheme |
EP3633857B1 (en) * | 2018-10-03 | 2022-01-26 | BlackBerry Limited | Methods and devices for on-the-fly coder mapping updates in point cloud coding |
CN111352754B (zh) * | 2018-12-21 | 2023-09-15 | 中国石油天然气集团有限公司 | 一种数据存储检错纠错方法及数据存储装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4691299A (en) * | 1982-04-30 | 1987-09-01 | Massachusetts Institute Of Technology | Method and apparatus for reusing non-erasable memory media |
US20130091402A1 (en) * | 2010-06-10 | 2013-04-11 | The Regents Of The University Of California | Strong single and multiple error correcting wom codes, coding methods and devices |
CN103150261A (zh) * | 2013-03-11 | 2013-06-12 | 北京忆恒创源科技有限公司 | 用于同时访问多个固态盘的方法与装置 |
CN103218270A (zh) * | 2013-03-11 | 2013-07-24 | 北京忆恒创源科技有限公司 | 具有多个固态盘的计算机 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9607690B2 (en) * | 2015-01-19 | 2017-03-28 | Queen's University At Kingston | High sum-rate write-once memory |
WO2016123590A1 (en) * | 2015-01-30 | 2016-08-04 | California Institute Of Technology | Rewriting flash memories by message passing |
US9772899B2 (en) * | 2015-05-04 | 2017-09-26 | Texas Instruments Incorporated | Error correction code management of write-once memory codes |
-
2015
- 2015-08-14 DE DE102015113414.4A patent/DE102015113414B4/de active Active
-
2016
- 2016-08-09 US US15/232,323 patent/US10133626B2/en active Active
- 2016-08-12 CN CN201610658775.7A patent/CN106469099B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4691299A (en) * | 1982-04-30 | 1987-09-01 | Massachusetts Institute Of Technology | Method and apparatus for reusing non-erasable memory media |
US20130091402A1 (en) * | 2010-06-10 | 2013-04-11 | The Regents Of The University Of California | Strong single and multiple error correcting wom codes, coding methods and devices |
CN103150261A (zh) * | 2013-03-11 | 2013-06-12 | 北京忆恒创源科技有限公司 | 用于同时访问多个固态盘的方法与装置 |
CN103218270A (zh) * | 2013-03-11 | 2013-07-24 | 北京忆恒创源科技有限公司 | 具有多个固态盘的计算机 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213433A (zh) * | 2017-07-07 | 2019-01-15 | 华为技术有限公司 | 闪存设备中数据写入的方法及设备 |
CN109491597A (zh) * | 2018-10-11 | 2019-03-19 | 中国科学院微电子研究所 | 一种存储器的联想方法及存储器 |
CN109491597B (zh) * | 2018-10-11 | 2022-04-01 | 中国科学院微电子研究所 | 一种存储器的联想方法及存储器 |
CN112134663A (zh) * | 2019-06-25 | 2020-12-25 | 大唐移动通信设备有限公司 | 一种资源复用装置 |
CN112134663B (zh) * | 2019-06-25 | 2021-10-29 | 大唐移动通信设备有限公司 | 一种资源复用装置 |
CN112416665A (zh) * | 2019-08-20 | 2021-02-26 | 北京地平线机器人技术研发有限公司 | 检测处理器运行状态的装置和方法 |
CN112416665B (zh) * | 2019-08-20 | 2024-05-03 | 北京地平线机器人技术研发有限公司 | 检测处理器运行状态的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170046222A1 (en) | 2017-02-16 |
DE102015113414B4 (de) | 2023-02-23 |
DE102015113414A1 (de) | 2017-02-16 |
CN106469099B (zh) | 2020-06-09 |
US10133626B2 (en) | 2018-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106469099B (zh) | 在应用wom码的情况下的错误纠正 | |
US8145977B2 (en) | Methods and apparatus for providing error correction to unwritten pages and for identifying unwritten pages in flash memory | |
JP3982639B2 (ja) | マルチレベルセルを有するメモリからデータを読み取る方法 | |
KR100632952B1 (ko) | 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치 | |
US8635508B2 (en) | Systems and methods for performing concatenated error correction | |
US10795763B2 (en) | Memory system and error correcting method thereof | |
US10191801B2 (en) | Error correction code management of write-once memory codes | |
CN111489783B (zh) | 具有阶层式错误校正码层的存储器装置 | |
US10956259B2 (en) | Error correction code memory device and codeword accessing method thereof | |
US10514980B2 (en) | Encoding method and memory storage apparatus using the same | |
JP2020135391A (ja) | メモリシステム | |
CN112017724B (zh) | 存储系统和在存储系统中纠正错误的方法 | |
US20200089418A1 (en) | Memory having different reliabilities | |
US10216573B2 (en) | Method of operating a memory device | |
US20190294497A1 (en) | Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same | |
JP2021033530A (ja) | メモリシステム | |
US8533566B2 (en) | Method and apparatus for storing data | |
CN112786099B (zh) | 存储装置和其多个实体单元纠错方法 | |
TWI789823B (zh) | 記憶體存取方法和裝置 | |
KR20090048142A (ko) | 불휘발성 메모리 장치의 ecc 처리부 | |
Gregori et al. | Construction of polyvalent error control codes for multilevel memories | |
JP2006127441A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2007179480A (ja) | メモリコントローラおよびフラッシュメモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |