CN1409492A - 纠错码电路 - Google Patents

纠错码电路 Download PDF

Info

Publication number
CN1409492A
CN1409492A CN 02104497 CN02104497A CN1409492A CN 1409492 A CN1409492 A CN 1409492A CN 02104497 CN02104497 CN 02104497 CN 02104497 A CN02104497 A CN 02104497A CN 1409492 A CN1409492 A CN 1409492A
Authority
CN
China
Prior art keywords
mentioned
memory cell
error
data
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 02104497
Other languages
English (en)
Inventor
萧正杰
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CN1409492A publication Critical patent/CN1409492A/zh
Pending legal-status Critical Current

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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

本发明公开了一种方法,用于改变纠错码(ECC)逻辑电路的配置以对数据宽度不断变化的数据进行错误检验。该方法包括如下步骤:A)顺序地互连一组N1个相同的错误检验块,其中N1是第一个正整数。并且,该方法还包括一个步骤:B)通过将纠错码逻辑电路改变为一组由N2个相同的错误检验块顺序互连组成的电路来对纠错码逻辑电路进行重新配置,其中N2为第二个正整数。在优先权利要求当中,顺序地互连一组N1个相同的错误检验块这一步指的是互连只介于顺序相邻两个用于传输只介于相邻两个错误检验块之间信号的块之间的N1个错误检验块。另外,通过将纠错码逻辑电路改变为一组由N2个相同的错误检验块顺序互连组成的电路来对纠错码逻辑电路进行重新配置这一步指的是互连只介于顺序相邻两个用于传输只介于相邻两个错误检验块之间信号的块之间的N2个错误检验块。

Description

纠错码电路
发明背景
所属技术领域
本发明涉及纠错码(ECC),尤其是涉及用于数据宽度不断变化数据纠错的纠错码电路设备及应用程序。
已有技术说明
应用纠错电路(ECC)进行数据校正是一种十分有效的用于提高数据完整性的方法。这种方法广泛应用于通信系统以及数据存贮设备的应用程序当中。图1示出的是一种纠错码计算器的系统方框图,通过它可以说明纠错码的运算原理。这种纠错码计算器以预先确定的具有固定位数的数据包(在本示例当中为64位)为工作对象。来自原始数据包的被选位被发送到多个奇偶检验树(本示例当中为8个)。用于计算不同数据子集的奇偶性。每个数据子集大约由数据包数据位的一半组成。而且每个子集当中的数据都与其它子集当中的数据存在部分重叠。最后得出来的奇偶检验位(也称为纠错码位)将与原始数据一起被传输或者存储。由于采用这样的构形来选择数据子集,因而,当在数据传输过程中有错误被引入到原始数据中时。可以通过比较由同样奇偶计算方法计算得到的奇偶检验位与初始纠错码位来识别错误位。
尽管已有的纠错码机制能够为数据完整性提供优良的保护,但是它同时也带来了许多技术难题。纠错码计算器把大量数据送入大量奇偶检验树,而每个奇偶检验树对不同的数据子集执行不同的奇偶计算。由于这样的奇偶计算需要复杂的布线,从而导致纠错码电路不仅速度慢而且十分复杂。纠错码计算造成的性能下降通常会限制纠错码的应用。在已有的纠错码机制当中,每种纠错码机理只适用于某种特定的数据量。如果数据包的大小发生了改变,就需要重新设计纠错码机制。测试是另外一个问题。在已有技术当中,纠错码计算器的速度强烈地依赖于输入数据的格式;当数据包的大小增加时,纠错码计算器的速度往往会产生明显下降。在已有技术当中,如果纠错电路使用的复杂布线中有某一条布线存在制造缺陷的话,要探测出该问题将会十分困难,因为要获得完整的故障覆盖范围需要大量的测试向量(在图1的示例当中为272×272)。
因此,急需开发出一种不仅结构简单而且便于支持不同数据宽度的高性能纠错码机制。
本发明的目的
本发明的主要目的在于提供一种具有简化结构的纠错码计算器。这种简化的纠错码计算器能够用相同的电路以相同的速度来支持几乎任意大小的数据包。本发明的另一个目的在于提高纠错电路的速度。本发明的另一个主要目的在于为使用本发明提出的新颖纠错电路的实用产品提供新颖的应用程序。按照本发明提供的纠错码计算公式中的旋转关系即可达到上述目的与其它一些目的。最终的纠错电路可以通过相同的电路块进行构建,而且数据宽度能够自由扩展。按照本发明提供的简化电路结构即可获得纠错电路的优良性能。
虽然本发明的一些新的技术特征是在本发明的几个从属权利要求中限定的,但是通过结合附图阅读本发明的目的、特征以及下文的详细描述,本发明的结构和内容均不难理解。
附图简要说明
图1为已有技术的纠错电路的方框图;
图2(a)为本发明提出的纠错电路块间旋转关系的示意图;
图2(b)为图2(a)中纠错电路块的示意图;
图2(c)示出的是本发明提出的纠错码译码器的结构;
图2(d)为图2(c)中纠错码译码器块的示意图;
图3(a)示出的是本发明提出的一种宽度可变的纠错码计算器;
图3(b)示出的是一种允许处理具有不同数据宽度的连续引入数据流的宽度可变的纠错码计算器;
图4示出的是已有技术的浮动栅设备的结构;
图5为本发明提出的纠错码自修复过程的流程图;
图6(a-d示出的是以一个模拟信号来代表多位数字数据的几种不同方法;
图6(e)为电路根据图6(b)中的表格来执行模数数据转换的方框图;
图7(a-c)示出的是已有技术的按内容寻址存储器以及与之相关联的存储单元的结构;以及
图8(a-d)示出的是采用纠错码对按内容寻址的存储器设备进行保护的示例。
本发明的详细说明
由于纠错机制的复杂性,本发明的说明将在以下的讨论当中采用C编程语言中使用的向量符号来对该机制进行描述。例如,D[3:2][4:1]表示一组8个符号,即D34、D33、D32、D31、D24、D23、D22和D21。符号“mod”表示取模运算,运算结果为除法运算的余数。例如,当k=7时,[(k+3)mod8]等于2,当k=1时,[(k-3)mod8]等于6。“mod”功能由实际电路输入连接中的旋转关系来执行。
在编号为6,216,246的美国专利中,本发明的同一发明人公开了一种纠错码计算器,示于图2(a)中。该示例中的纠错码计算器采用64个输入数据(D[7:0][7:0])。该纠错码计算器由8个相同的奇偶检验电路块(P7-P0)组成。奇偶检验电路块的示意图如图2(b)所示。每个奇偶检验电路块(P7-P0)都是由19个异或门、一个异非门以及一个变换器所组成。奇偶检验电路块P[k]把数据D[k][7:0]以及储存的纠错码位Ck作为输入,其中k为介于0和7之间的整数。它把四个输出(N11、N22、N33和N41)传送到位于其上的奇偶检验电路,并从位于其下的奇偶检验电路接收相应的输出(N11B、N22B、N33B和N41B)。同时,它还把三个输出,也就是N24、N32和N42传送到位于其下的奇偶检验电路,并从位于其上的奇偶检验电路接收相应的输出,也就是N24T、N32T和N42T。另外,它还输出校正因子Fk。第k个奇偶检验电路(P[k])输出的逻辑函数可以写成如下形式:
N11=Parity{Ck,Dk0}                               (1a),
N23=Parity{Dk3,Dk4,Dk7}                         (1b),
N33=Parity{N23B,Dk2,Dk5,Dk6}                       (1c),
N41=Parity{N33B,N24T,Dk1,Dk4,Dk5}                 (1d),
N24=Parity{Dk4,Dk5,Dk6,Dk7}                        (1e),
N32=Parity{Dk0,Dk1,Dk2,Dk3,Dk4,Dk5,Dk6,Dk7}    (1f),
N42=Parity{N32T,N11B,Dk0,Dk1,Dk2,Dk3,Dk4,Dk5}  (1g),以及
Fk=Parity{N42T,N41B}                                 (1h),其中,“Parity{}”表示大括号“{}”中包含的全部输入的奇偶检验值。根据所有奇偶检验电路都相同这一事实,可以确定出由附近奇偶检验电路所提供的输入(N11B、N22B、N33B、N41B、N24T、N32T和N42T)。例如,根据方程(1a),可以建立如下的函数关系式:
N11B=Parity{C[(k+1)mod8],D[(k+1)mod8]0}               (2)其中,C[(k+1)mod8]是储存的纠错码位,D[(k+1)mod8]0是第一个连接到位于其下的奇偶检验电路的数据。以同样的方式可以确定出所有其它输入(N22B、N33B、N41B、N24T、N32T和N42T)。根据图2(b)中的连接关系以及方程(1a-1h),可以得出以下关系:Fk=Parity{Ck,D[(k-2)mod8][7:0],D[(k-1)mod8][5:0],
           D[k][7:4,0],D[(k+1)mod8][5,4,1],
           D[(k+2)mod8][6,5,2],D[(k+3)mod8][7,4,3]}
          (3)其中k=(0,1,2,3,4,5,6,7)。
如果输入数据当中没有错误的话,所有信号(Fk)将会全部为零。如果输入数据D[7:0][7:0]当中有一个错误的话,那么通过利用图2(c)中示出的纠错码译码器来检查校正因子(F0-Fk)就可以识别出错误位。图2(c)中示出的纠错码译码器由8个纠错码译码块(CB0-CB7)组成。这8个纠错码译码块具有相同的逻辑功能,其示意图如图2(d)所示。它们之间唯一的差别就在于与Fk信号的连接不同。这里,在与Fk的连接当中,再次出现了旋转关系。例如,CB1的F1等于CB0的F0,而且CB2的F2也等于F0,如此等等。这些纠错码译码块(CB0-CB7)的输出(CR[7:0][7:0]#)指明了错误位的位置。如果CRij#较低,这就意味着应当跟Dkj的值进行交换,其中k=(0,1,2,3,4,5,6,7)、j=(0,1,2,3,4,5,6,7)。
在图2(a)中示出的电路也可以用来计算一组原始数据的纠错码位,指定所有Ck输入都为零,通过下式所得到的Fk就是纠错码位:
ECC(k)=Parity{D[(k-2)mod8][7:0],D[(k-1)mod8][5:0],
               D[k][7:4,0],D[(k+1)mod8][5,4,1],
               D[(k+2)mod8][6,5,2],D[(k+3)mod8][7,4,3]}
              (4)其中,ECC(k)就是纠错码位的值,而且k=(0,1,2,3,4,5,6,7)。
图2(a-d)中示出的纠错码机制由于奇偶检验计算中的旋转关系而具有新颖性。C[k+1]的奇偶检验计算就是C[k]简单旋转的结果。这种旋转关系在纠错码校正电路中也有应用。在本发明当中,这种纠错码电路也称为“旋转纠错码计算器(REC)”。旋转纠错码计算器电路与其它已有技术的纠错电路相比,存在以下几个方面的不同:(1)已有技术的纠错电路使用不同的纠错码树来计算不同的纠错码位,导致复杂的电路上连接有复杂的布线。而旋转关系允许旋转纠错码计算器支持所有使用相同标准部件进行的逻辑计算。因此,旋转纠错码计算器的设计复杂程度得到极为明显的简化。(2)在已有技术的纠错电路当中,每个输入数据都需要经过长距离旅行才能到达多个奇偶检验树。而对旋转纠错码计算器而言,每个输入数据只需要抵达一个奇偶检验电路块即可。这种简化显著降低了输入信号布线的复杂程度,并明显提高了运算速度。(3)就旋转纠错码计算器电路而言,中间逻辑信号(N11、N22、N33、N41、N24、N32和N42)只需要传送到邻近的奇偶检验电路块即可,在整个旋转纠错码计算器电路的任何部分都不存在长的信号线或者复杂的布线。这也正是旋转纠错码计算器速度总是要比其它已有技术的纠错码计算器速度快得多的主要原因。(4)由于旋转对称,旋转纠错码计算器电路的速度几乎与输入数据的格式毫不相关,从而为其测试、调试以及优化过程提供了明显的改进。
旋转纠错码计算器的一个重要特点就是它能够以相同的重复电路来支持不同大小的输入数据。图3示出了一种旋转纠错码计算器电路,该电路采用与图2(a)中所示电路块相同的电路块来支持长度不断变化的输入数据。本示例中的纠错码计算器取走输入数据(D[(N-1):0][7:0])中的N个字节,其中N为任意整数。该纠错码计算器由N个相同的奇偶检验电路块(PN-1-P0)组成,这些电路块以图3(a)示出的旋转关系进行连接。这些奇偶检验电路块(PN-1-P0)的逻辑功与图2(b)中电路块的逻辑功能相同。对这些奇偶检验电路块(PN-1-P0)而言,方程(1a-h)仍然成立,只是k可以为介于0和N-1之间的任意整数。方程(2-4)需要改写为如下形式:
N11B=Parity{C[(k+1)modN],D[(k+1)modN]0}                     (5)
Fk=Parity{Ck,D[(k-2)modN][7:0],D[(k-1)modN][5:0],
               D[k][7:4,0],D[(k+1)modN][5,4,1],
               D[(k+2)modN][6,5,2],D[(k+3)modN][7,4,3]}  (6)
ECC(k)=Parity{D[(k-2)modN][7:0],D[(k-1)modN][5:0],
               D[k][7:4,0],D[(k+1)modN][5,4,1],
               D[(k+2)modN][6,5,2],D[(k+3)modN][7,4,3]}  (7)其中,ECC(k)是纠错码位的值,而且k=(0,1,…,N-1)。
需要指出,图2(a-d)中示出的旋转纠错码计算器电路只是N=8时的一种特殊情况。旋转纠错码计算器能够采用与图3(a)示出的宽度可变的纠错码计算器相同的多个旋转纠错码计算器标准部件进行扩展以支持任意数量的输入数据集。无论输入数据集的宽度为多少,最终得到的电路都将具有相同的速度和相同的电路连接。不再需要对纠错码计算器进行重新设计以支持不同的数据宽度。针对不同的应用场合,还可以象图3(b)示出的那样通过断开闭环构型来扩展本发明的应用范围。图3(b)示出了本发明的一种替代发明,该发明可以应用于数据通信系统经常碰到的以预先确定的数据(例如标题记录)作为起始和结束的一长条输入数据被连续接收的情况。如同图3(b)所示,为了确保数据传输的准确性,采用了一个串联的旋转纠错电路而不是上面所说的闭环旋转纠错计算器电路来接收和处理数据流。图3(b)中采用了一个人工环绕式逻辑电路(AWALC),其中,错码计算是通过把简化位组合格式(比如全1或者全0)供给开头和结尾的纠错码计算器块来进行的。错码计算也可以采用与具有固定位组合格式输入的闭环旋转纠错计算器相似的方式来进行。通过首先传送数据记录的长度然后再应用相应数量的纠错码计算器块进行错码计算,可以方便地对开环环绕式纠错码计算器进行控制或者重新配置以处理不同长度的数据流。
虽然文中用文字和附图的形式给出了本发明的若干具体实施例,但是应当认识到本发明不仅仅局限于这些具体实施例,它在实际当中还会有所更改和修正。例如,在保持旋转关系不变的条件下,方程(1-7)还可以改写成其它不同的形式。奇偶检验块可以访问不同数量的输入,而不仅仅是8个,而且可以输出不同数量的纠错码位和中间信号。本发明的校正机制的新颖之处在于在纠错码机制的奇偶检验计算中实行了旋转关系。基于旋转关系,可以使用重复电路设计来简化设计工作。另外,通过最大限度地降低布线的复杂程度也可以获得更高的性能。
根据以上的说明,本发明公开了一种方法,用于改变纠错码逻辑电路的配置以进行数据宽度不断变化的数据的错误检验。该方法包括如下步骤:A)顺序地互连一组N1个相同的错误检验块,其中N1是第一个正整数。并且,该方法还包括一个步骤:B)通过将纠错码逻辑电路改变为一组由N2个相同的错误检验块顺序互连组成的电路来对纠错码逻辑电路进行重新配置,其中N2为第二个正整数。在优先权利要求当中,顺序地互连一组N1个相同的错误检验块这一步指的是互连只介于顺序相邻两个用于传输只介于相邻两个错误检验块之间信号的块之间的N1个错误检验块。另外,通过将纠错码逻辑电路改变为一组由N2个相同的错误检验块顺序互连组成的电路来对纠错码逻辑电路进行重新配置这一步指的是互连只介于顺序相邻两个用于传输只介于相邻两个错误检验块之间信号的块之间的N2个错误检验块。
配备了以上纠错码保护机制的系统将需要另外的逻辑电路和更多的数据存储资源。这些对额外资源的要求看起来似乎会增加系统的成本,但是,实际上,以上纠错码保护机制通常有利于降低实际产品的总成本。在下面的讨论中将给出两个实际的例子以更好地说明这几点。
第一个例子是纠错码保护机制在浮动栅设备中的应用。图4示出的是一个浮动栅晶体管的符号结构。这个晶体管和普通晶体管一样由源(S)、漏(D)以及栅(G)组成。这个晶体管和普通晶体管的差别在于它在栅和通道区之间还有一个浮动栅(FG)。在大多数工作条件下浮动栅是绝缘的,然而,在执行程序运算或者执行清除操作的过程当中,通过热载流子机理或者隧道效应机理可以把电荷注入到浮动栅上或者从浮动栅上清除电荷。浮动栅设备的传导性是浮动栅捕获电荷量的函数。因此,可以通过改变浮动栅所捕获的电荷量来把数据存储到浮动栅设备上。许多商业产品,比如EPROM、EEPROM以及FLASH等,都是建立在浮动栅设备之上的。浮动栅设备最难解决的可靠性问题是电荷损失(QL)问题以及程序运算-清除(PE)循环导致的故障。电荷损失问题通常是由浮动栅周围的绝缘体的制造缺陷导致的。制造缺陷会让浮动栅产生缓慢的泄露,从而导致该设备由于捕获电荷的损失而无法保持存储数据。电荷损失问题通常并不会造成浮动栅设备的永久性损坏,如果向出现过该问题的设备当中重新写入数据的话,这些设备仍然能够在一定时期内起作用,直到浮动栅捕获的电荷渐渐泄露完为止。程序运算-清除循环导致的故障往往是永久性的。当用户执行程序运算并多次对浮动栅设备进行清除时,高能电荷穿过浮动栅会对浮动栅周围的材料产生破坏,因此经过一定的程序运算-清除循环之后,设备可能会遭到损坏。通常的浮动栅设备往往对电荷损失问题和程序运算-清除循环要求具有优良的耐受性,因而浮动栅设备的故障通常是由于制造缺陷引起的。在目前的技术条件下,尽管浮动栅产品是由上百万的存储单元所组成的,但是它们对电荷损失和程序运算-清除循环的耐受性却是由这些上百万存储单元当中质量最差的数位所决定的。因此,使用纠错码来保护浮动栅产品可能会给这些产品的可靠性带来重大的改进。受到纠错码保护的设备的可靠性特性将不再由设备中质量最差的数位来决定。取而代之的是,设备的可靠性将由设备的固有特性来决定。这样得到的产品通常情况下要可靠得多。采用纠错码电路以后,即使部分存储数据出现错误的话,也可以知道正确的数据。因此,这样以来,就可以从源头解决问题,而不再仅仅只是对输出进行校正。图5示出的是纠错码自修复过程的流程图。这种自修复过程可以依靠外部系统(比如计算机软件)来启动,也可以在外部用户不知情的情况下自行启动。例如,在加电初始化过程中可以激活自修复过程的执行,或者利用定时器信号来触发自修复过程。假定纠错码位已经与原始数据一起被写入存储设备当中,那么,在自修复过程启动后,会从存储设备中读出一个数据集以及相关联的纠错码位。接着使用纠错电路来检查原始数据当中是否存在错误。如果原始数据当中没有错误,错误检验操作将进入到下一个数据集,直到整个过程完成时为止。如果在原始数据当中发现错误而且纠错电路无法进行校正的话,设备将会向系统发出告警信号。如果纠错电路能够校正所发现的错误,那么经过校正的数据位将被写回到存储设备当中。如果问题是由软错误(比如浮动栅设备的电荷损失问题)引起的或者是由阿尔法(alpha)粒子引起的话,把正确数据重新写回到存储设备当中就有可能解决这些问题。重新写入数据之后,纠错电路会再次读入并检验出错的数据。如果问题已经得到解决的话,错误码检验操作就可以转而对下一个数据集进行处理。如果重新写入数据并没有使问题得到解决,那么可以利用一个可编程的冗余电路来解决由于存储单元出现故障而引起的问题。如果冗余电路能够解决问题的话,错误检验操作将继续处理下一个数据集。即使冗余电路仍然不能解决问题,产品还是能够起作用,因为在进行纠错电路校正后用户能够得到正确的数据。然而,如果有太多的故障需要纠错电路进行校正的话,表明设备故障已经具有毁灭性。在纠错电路中,可以使用计数器来对所校正的故障数目进行计数。如果计数数目超过某一预先确定的数值,将会产生告警信号以通知系统用户。本发明提出的旋转纠错码计算器电路同样适用于以上的自修复过程。而且,与已有的纠错电路相比,本发明提出的旋转纠错码计算器不仅能够明显减少由于增加纠错电路所需要的设备面积而且能够提高错误码检验操作的速度。
根据上面的描述,本发明还公开了一种用于处理由大量存储单元构成的存储设备的方法。该方法包括步骤A)对上述的存储单元进行错误检验,以及步骤B)对存储有错误数据位的故障存储单元进行修复。在优先权利要求当中,修复故障存储单元这一步还应当包括向故障存储单元写入正确数据位来自动修复故障存储单元这一步。
虽然文中用文字和附图的形式给出了本发明的若干具体实施例,但是应当认识到本发明不仅仅局限于这些具体实施例,它在实际当中还会有所更改和修正。在不同的应用场合下,自修复过程的细节可以进行相应改动。例如,有人可能不想利用重新写入数据的方式来解决问题,也有人可能没有冗余电路来解决问题。此外,还可能引入其它类型的问题解决方式,比如定时调整等。另外一个可能性就是在应激状态下进行自修复过程,以便探测并解决潜在的故障,从而防止这些潜在故障在今后的正常工作条件下带来问题。例如,可以在低电压或者高温下进行自修复过程。上面的方法可以应用于任何存储设备或者系统。它的应用不仅仅局限于浮动栅设备。
进行纠错码保护或者自修复过程将需要额外的资源,但是,由于这样以来具有更好的产出以及/或者更好的可靠性,最终得到的产品可能具有更高的成本效率。此外,由于可靠性的改进,还有可能利用同一设备来传送更多的数据。例如,我们定义了四个模拟水平来表示浮动栅捕获的电荷量,从而使得一个存储单元现在能够用来存储两位二进制数据而不是一位二进制数据。图2(a)给出了这种多水平数字数据(MLDD)表示法的一个示例。当浮动栅设备所捕获的电荷量(Q)超过某一预先确定的值(Q3),也就是Q>Q3时,将会把两位二进制数据(1,1)存储起来;当Q3>Q>Q2时,将会把二进制数据(1,0)存储起来;当Q2>Q>Q1时,将会把二进制数据(0,1)存储起来;当Q<Q1时,将会把二进制数据(0,0)存储起来。其中,Q3、Q2和Q1是预先确定的与读出电路触发电平相关的几个值,并且有Q3>Q2>Q1。与常规存储单元相比,利用这种方法可以存储两倍数量的数据,与此同时,出错容限提高了四倍。由于纠错码保护机制能够修正故障,所以这种方法有可能十分实用。本发明提出的用于解决故障的自修复机制将会使这种方法更加可靠。图2(a)中的多水平数字数据表示法存在一个问题。如果初始存储数据为(1,0),并且有Q3>Q>Q2的话,那么当设备损失一些电荷达到Q2>Q>Q1时,数据将变为(0,1)。这样以来,由于少量的电荷损失就导致两个二进制数位发生改变。因此,需要纠错码保护能够校正两个数位,否则的话,就需要两个独立的纠错电路来分别保护这两个数位。这两种方法都将需要更多的资源。如果象图2(b)中示出的那样对两位多水平数字数据表示法重新进行定义的话,所需要的资源将会减少。对每一个高水平Q而言,二进制数据的变化永远不会超过一位。因此,解决少量电荷损失问题所需的资源将会减少。同样的方法可以适用于图6(c)中8水平3位的例子以及图6(d)中16水平4位的例子。
图6(e)为电路根据图6(b)中的表格来执行模数数据转换的方框图。模拟信号(Q)通过比较器(651)与三个预先确定的值(Q3、Q2和Q1)进行比较。例如,当Q>Q1时第一个比较器(CP1)的输出为1,而当Q<Q1时第一个比较器(CP1)的输出为0;当Q>Q2时第二个比较器(CP2)的输出为1,而当Q<Q2时第二个比较器(CP2)的输出为0;当Q>Q3时第三个比较器(CP3)的输出为1,而当Q<Q3时第三个比较器(CP3)的输出为0。这些比较器的输出(CP3、CP2和CP1)被传送到编码器(652)电路。译码器(652)将提供两个数字输出位(D1,D0)。当CP3=CP2=CP1=1时(D1,D0)的值为(1,0);当CP3=0而CP2=CP1=1时(D1,D0)的值为(1,1);当CP3=CP2=0而CP1=1时(D1,D0)的值为(0,1);当CP3=CP2=CP1=0时(D1,D0)的值为(0,0)。图6(c,d)中示出的表格也能在相似电路中得到执行。
根据以上描述,本发明进一步公开了一种存储设备,该存储设备包括大量的存储单元,而每个存储单元具有一个浮动栅,用来在里面存储大量的电荷。该存储设备还包括一个错误检验逻辑电路,该错误检验逻辑电路包括一组同样的顺序互连的错误检验块,用于检验存储在各个存储单元中的数据是否有错。在一项优先权利要求当中,该存储设备还进一步包括一个多级电压装置,用于给浮动栅供应至少两个电荷水平以代表至少两个存储在存储单元中的数据位。在一项优先权利要求当中,该存储设备还进一步包括一个多级电荷读出装置,用于读出至少两个存储在浮动栅中的电荷水平以检测至少两个存储在存储单元中的二进制位。在另外一项优先权利要求当中,多级电荷读出装置还进一步包括一个位组合格式装置,其用途是根据多级电荷读出装置读出的电荷水平来形成位组合格式。在另外一项优先权利要求当中,位组合格式装置还进一步被用来依据电荷水平而形成一列位组合格式,其中,依据第一级电荷水平形成的位组合格式与依据跟第一级电荷水平顺序相邻的第二级电荷水平形成的位组合格式只有一个数据位不同。
虽然文中用文字和附图的形式给出了本发明的若干具体实施例,但是应当认识到本发明不仅仅局限于这些具体实施例,它在实际当中还会有所更改和修正。上面的方法还可以应用于使用其它类型参数的其它类型的设备。例如,Q可以为任意的模拟参数(比如电压或者电流等),不一定就是捕获的电荷。而且设备也不一定就是浮动栅设备。
另外一个实施例是应用纠错码来保护按内容寻址的存储器(CAM)。图7(a)示出的是已有技术的按内容寻址的存储器设备的基本结构。在一个按内容寻址的存储器设备当中存储有两种类型的数据,一种是存储在典型随机存取存储器(RAM)阵列(703)当中的普通数字数据,另外一种是存储在按内容寻址存储器阵列(701)当中的寻址数据(在IC行业称为“TAG”)。图7(b)为随机存取存储器(RAM)阵列(703)中典型存储单元的示意图。这个存储单元使用四个晶体管(Mp0、Mp1、Mn0和Mn1)来形成双稳锁存器以存储数据,另外还使用两个晶体管(Mw和Mw#)以便于根据字线(WL)来选择该存储单元。图7(c)为按内容寻址存储器阵列(701)中典型存储单元的示意图。这个存储单元与随机存取存储器阵列的存储单元基本相似,差别仅在于本存储单元有四个晶体管(Mc0、Mc1、Mc0#和Mc1#)形成一个XOR门以把置于位线(BL,BL#)上的新的寻址数据与存储数据(CC,CC#)进行比较。如果存储数据与位线值有差别的话,那么遗漏线(MISS#)将会被下拉。按内容寻址存储器阵列(701)的每一行都是由大量的按内容寻址存储器单元所组成,而且这些按内容寻址存储器单元的MISS#线都相互连接在一起。当一行存储起来的寻址数据当中有任意一位与被查阅的寻址数据存在差别时,MISS#线就会降低。每个寻址数据行的MISS#线(705)都是用来控制与之相应的随机存取存储器行的字线(WL)。只有当存储有与查阅寻址数据相同的寻址地址的行被选择时,才能从随机存取存储器阵列中读出存储数据。在同时查阅大量存储地址并同时利用正确地址读出所需数据的场合,图7(a)示出的这种按内容寻址的存储器设备十分有效。在进行这种并行查阅操作时,已有技术的按内容寻址的存储器都不具有纠错码保护。为了确保寻址地址查阅结果的准确性,有必要保证在整个查阅过程中所有寻址地址阵列都不会出现错误位。这样将要求按内容寻址存储器阵列的每一行都要有一个纠错码计算器,而这样做将十分昂贵,并将导致纠错码保护不会得到实际使用。因此,已有技术的按内容寻址的存储器产品经常会由于可靠性问题(比如阿尔法粒子引起的软错误等)而造成失败。
然而,为了使纠错码保护在按内容寻址存储器的查询操作中得到实际应用,我们认识到,同时对随机存取存储器阵列的每一行进行纠错码保护是不必要的。取而代之的是,因为在后续操作中只用得上相匹配的数据位流,因此在随机存取存储器查询过程中只需要对相匹配的行进行保护即可。图8(a)为采用纠错码对随机存取存储器进行保护的方框图。该随机存取存储器设备仍然具有同样的用于寻址地址查询的按内容寻址存储器阵列(801)以及同样的用于存储数据的随机存取存储器阵列(803)。按内容寻址存储器阵列(801)以及随机存取存储器阵列(803)所使用的存储单元及其结构与图7(a-c)中示出的相同。对每一组寻址数据而言,通过纠错码电路计算得到的纠错码位也被存储到一个按内容寻址存储器阵列(807)当中。这个用于存储纠错码位的按内容寻址存储器阵列(807)与用于存储寻址数据的按内容寻址存储器阵列(801)既可以相互分离也可以合并在一起。图8(b)为图8(a)中示出的按内容寻址存储器的查询过程的流程图。在查询过程中,无论是寻址数据还是其纠错码位都要进行比较。如果寻址数据及其纠错码位与比较数据均不匹配,那么系统照例进行通告操作。如果寻址数据及其纠错码位与比较数据均匹配,那么照例进行匹配数据的数据传输。如果寻址数据与比较数据匹配而其纠错码位与比较数据不匹配,那么就意味着这是一个错误匹配,需要把这个错误匹配通知系统并把它当作匹配不当进行处理。此时,通过尝试把纠错电路确定的正确值重新写回到按内容寻址存储器阵列当中就有可能解决这个问题。如果在寻址数据数组中有多个寻址数据与比较数据相匹配的话,那么具有匹配纠错码位的那个寻址数据才是真正的匹配数据。只有正确的数据位流才会被传输,此外,进行修复错误寻址数据的操作也会向系统发送有关这个数据错误以及校正情况的通告。为了保护随机存取存储器数据,随机存取存储器阵列也可以具有自己的纠错码位。图8(c)示出的是另外一个例子,在这个例子当中,纠错码位是存储在一个随机存取存储器阵列当中,而不是存储在一个按内容寻址存储器阵列当中。查询过程示于图8(d)中。在寻址数据查询过程中,只对寻址数据进行比较。如果寻址数据与比较数据不匹配的话,那么系统照例进行发现不匹配时的通告操作。如果寻址数据与比较数据匹配的话,那么会从随机存取存储器阵列中读出寻址数据以及纠错码位。这个纠错码位可以只用于保护寻址数据。此外,还可以在纠错码计算当中既包含数据本身也包含其寻址数据,从而对二者都进行保护。在纠错码计算之后,如果没有检测到错误,那么系统照例进行数据传输并声称命中寻址数据。如果纠错电路检测到错误,那么需要把这个错误匹配通知系统并把它当作匹配不当进行处理。此时,通过尝试把纠错电路确定的正确值重新写回到按内容寻址存储器阵列以及随机存取存储器阵列当中就有可能解决这个问题。图8(c)中示出的例子所使用的资源要比图8(a)中示出的例子少。当在寻址数据数组中发现多个与比较数据匹配的寻址数据时,图8(c)中示出的结构不能区分出哪个寻址数据才是真正的匹配数据。
根据上面的描述,本发明进一步公开了一种按内容寻址的存储器(CAM)设备。该CAM设备包括大量存储单元阵列,用于存储阵列内容,在查询内容与阵列内容相匹配的基础上,阵列内容可以用来对某个阵列进行数据存取。该CAM设备进一步还包括一个错误检验逻辑电路,用于检验每个存储单元阵列的数据存取是否有错。在一项优先权利要求当中,该CAM设备进一步还包括一个错码存储装置,用于存储由用于检验各个存储单元阵列的数据存取是否有错的错误检验逻辑电路所使用的各个存储单元阵列的错码检验位。在另外一项优先权利要求中,每个存储单元阵列还进一步存储了一个由用于检验各个存储单元阵列的数据存取是否有错的错误检验逻辑电路所生成的错码检验位。在另外一项优先权利要求中,错码存储装置是一种随机存取存储器(RAM)设备,用于存储由用于检验各个存储单元阵列的数据存取是否有错的错误检验逻辑电路所使用的各个存储单元阵列的错码检验位。
虽然文中用文字和附图的形式给出了本发明的若干具体实施例,但是应当认识到本发明不仅仅局限于这些具体实施例,它在实际当中还会有所更改和修正。因此,可将本申请案的权利要求解释成涵盖在本发明原始精神与领域下的所有更改与修正。

Claims (16)

1.一种用于改变纠错码(ECC)逻辑电路配置的方法,以便于对数据宽度不断变化的数据进行错误检验,该方法包含:
顺序互连一组N1个相同的错误检验块,其中N1是第一个正整数;并且
通过将上述的纠错码逻辑电路改变为一组由N2个上述的相同的错误检验块顺序互连组成的电路来对上述的纠错码逻辑电路进行重新配置,其中N2为第二个正整数。
2.在权利要求1所述的方法当中:
上述的顺序地互连一组N1个相同的错误检验块这一步指的是互连上述的只介于顺序相邻两个用于传输只介于相邻两个错误检验块之间信号的块之间的N1个错误检验块;另外
上述的通过将上述的纠错码逻辑电路改变为一组由N2个错误检验块顺序互连组成的电路来对上述的纠错码逻辑电路进行重新配置这一步指的是互连上述的只介于顺序相邻两个用于传输只介于相邻两个错误检验块之间信号的块之间的N2个错误检验块。
3.一种对由大量存储单元所组成的存储设备进行操作的方法,该方法包含:
对上述的存储单元进行错误检验;以及
对存储有错误数据位的存储单元进行修复。
4.在权利要求3所述的方法当中:
上述的对出错存储单元进行修复这一步进一步包含通过把正确数据位写入到上述的出错存储单元中来自动对上述的出错存储单元进行修复这一步。
5.一种由大量存储单元组成的存储设备,每个存储单元有一个浮动栅,用于在里面存储大量的电荷,所述存储设备进一步包含:
一个由一组相同错误检验块顺序互连组成的用于检验上述存储单元数据存储是否有错的错误检验逻辑电路。
6.如权利要求5所述的存储设备,进一步包含:
一个多级电压装置,用于给上述的浮动栅供应至少两个电荷水平以代表至少两个存储在上述的存储单元中的数据位。
7.如权利要求6所述的存储设备,进一步包含:
一个多级电荷读出装置,用于读出至少两个存储在上述的浮动栅中的电荷水平以检测至少两个存储在上述的存储单元中的二进制位。
8.在权利要求7所述的存储设备中:
上述的多级电荷读出装置还进一步包括一个位组合格式装置,其用途是根据上述的多级电荷读出装置读出的电荷水平来形成位组合格式。
9.在权利要求7所述的存储设备中:
上述的位组合格式装置还进一步被用来依据上述的电荷水平而形成一列位组合格式,其中,依据第一级电荷水平形成的位组合格式与依据跟第一级电荷水平顺序相邻的第二级电荷水平形成的位组合格式只有一个数据位不同。
10.一种由大量存储单元所组成的存储设备,每个存储单元具有至少两种存储单元特征状态,每种存储单元特征状态代表一种存储于其中的位组合格式,上述的存储设备还进一步包含:
一个由一组相同错误检验块顺序互连组成的用于检验上述存储单元数据存储是否有错的错误检验逻辑电路。
11.一种按内容寻址的存储器(CAM)设备,该CAM设备包含大量存储单元阵列,用于存储阵列内容,在查询内容与阵列内容相匹配的基础上,阵列内容可以用来对某个阵列进行数据存取。上述的CAM设备进一步还包含:
一个错误检验逻辑电路,用于检验上述的每个存储单元阵列的数据存取是否有错。
12.如权利要求11所述的按内容寻址的存储器(CAM)设备,进一步还包含:
一个错码存储装置,用于存储由上述的用于检验上述的各个存储单元阵列的数据存取是否有错的错误检验逻辑电路所使用的上述的各个存储单元阵列的错码检验位。
13.在权利要求11所述的按内容寻址的存储器(CAM)设备当中:
上述的每个存储单元阵列还进一步存储了一个由上述的用于检验上述的各个存储单元阵列的数据存取是否有错的错误检验逻辑电路所生成的错码检验位。
14.在权利要求11所述的按内容寻址的存储器(CAM)设备当中:
上述的错码存储装置是一种随机存取存储器(RAM)设备,用于存储由上述的用于检验上述的各个存储单元阵列的数据存取是否有错的错误检验逻辑电路所使用的上述的各个存储单元阵列的错码检验位。
15.一种由大量存储单元组成的存储设备,每个存储单元有一个浮动栅,用于在里面存储大量的电荷,所述存储设备进一步包含:
一个多级电荷读出装置,用于读出至少两个存储在上述的浮动栅中的电荷水平作为一列电荷水平,以检测至少两个存储在上述的存储单元中的用于记录大量位组合格式的二进制位。
上述的多级电荷读出装置还进一步包括一个位组合格式装置,其用途是根据上述的一列电荷水平来形成一列位组合格式。其中,依据第一级电荷水平形成的位组合格式与依据跟第一级电荷水平顺序相邻的第二级电荷水平形成的位组合格式只有一个数据位不同。
16.一种模拟信号读出设备,包含:
一个模拟信号读出装置,用于读出一列模拟信号水平以形成一列与上述模拟信号水平相对应的位组合格式,其中,上述的每一个信号水平均代表一种位组合格式,和另外一个代表相邻信号水平的位组合格式相比较而言,二者只有一个数据位不同。
CN 02104497 2001-09-07 2002-03-25 纠错码电路 Pending CN1409492A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31787301P 2001-09-07 2001-09-07
US60/317,873 2001-09-07

Publications (1)

Publication Number Publication Date
CN1409492A true CN1409492A (zh) 2003-04-09

Family

ID=23235622

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 02104497 Pending CN1409492A (zh) 2001-09-07 2002-03-25 纠错码电路

Country Status (2)

Country Link
CN (1) CN1409492A (zh)
WO (1) WO2003023770A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377504A (zh) * 2010-08-05 2012-03-14 联咏科技股份有限公司 数据传输检测装置、数据传输检测方法及其电子装置
US8972838B2 (en) 2010-07-27 2015-03-03 Novatek Microelectronics Corp. Data transmission detecting device, data transmission detecting method and electronic device thereof
CN105281873A (zh) * 2015-11-09 2016-01-27 天津七一二通信广播有限公司 一种基于信道质量评估的位纠错方法
CN109643262A (zh) * 2016-08-23 2019-04-16 德克萨斯仪器股份有限公司 具有故障检测的纠错硬件

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112016000146T5 (de) 2015-10-23 2017-07-06 Semiconductor Energy Laboratory Co., Ltd. Halbleitervorrichtung und elektronische Vorrichtung

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729511A (en) * 1991-02-15 1998-03-17 Discovision Associates Optical disc system having servo motor and servo error detection assembly operated relative to monitored quad sum signal

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972838B2 (en) 2010-07-27 2015-03-03 Novatek Microelectronics Corp. Data transmission detecting device, data transmission detecting method and electronic device thereof
CN102377504A (zh) * 2010-08-05 2012-03-14 联咏科技股份有限公司 数据传输检测装置、数据传输检测方法及其电子装置
CN102377504B (zh) * 2010-08-05 2014-07-16 联咏科技股份有限公司 数据传输检测装置、数据传输检测方法及其电子装置
CN105281873A (zh) * 2015-11-09 2016-01-27 天津七一二通信广播有限公司 一种基于信道质量评估的位纠错方法
CN105281873B (zh) * 2015-11-09 2018-06-15 天津七一二通信广播股份有限公司 一种基于信道质量评估的位纠错方法
CN109643262A (zh) * 2016-08-23 2019-04-16 德克萨斯仪器股份有限公司 具有故障检测的纠错硬件
CN109643262B (zh) * 2016-08-23 2023-08-08 德克萨斯仪器股份有限公司 具有故障检测的纠错硬件

Also Published As

Publication number Publication date
WO2003023770A1 (en) 2003-03-20

Similar Documents

Publication Publication Date Title
US8599613B2 (en) Nonvolatile semiconductor memory
US7992071B2 (en) Method for implementing error-correction codes in non-volatile memory
US5719888A (en) Memory system
CN101763904B (zh) 非易失性存储装置及其操作方法
US9348694B1 (en) Detecting and managing bad columns
US8635508B2 (en) Systems and methods for performing concatenated error correction
CN104969193A (zh) 减少的不可校正的存储器错误
US9454427B2 (en) Shifting read data
KR102507342B1 (ko) 페이지 버퍼를 포함하는 메모리 장치 및 페이지 버퍼 배치 방법
CN104900271A (zh) 用于通过数据反演来提高数据存储的设备和方法
US10741212B2 (en) Error correction code (ECC) encoders, ECC encoding methods capable of encoding for one clock cycle, and memory controllers including the ECC encoders
CN103339679A (zh) 向非易失性存储器映射数据
KR20050096947A (ko) 비휘발성 메모리의 내구 한계 카운팅 방법
US6438726B1 (en) Method of dual use of non-volatile memory for error correction
CN111538621B (zh) 针对位线故障的软芯片猎杀恢复
US10353769B2 (en) Recovering from addressing fault in a non-volatile memory
US11537754B1 (en) Pseudo physically unclonable functions (PUFS) using one or more addressable arrays of elements having random/pseudo-random values
TW201320090A (zh) 基於匹配位元型樣之資料修正
US9177672B2 (en) Methods of operating memory involving identifiers indicating repair of a memory cell
CN1409492A (zh) 纠错码电路
US9786388B1 (en) Detecting and managing bad columns
CN111831486B (zh) 半导体装置和包括该半导体装置的半导体系统
US6360347B1 (en) Error correction method for a memory device
CN105679365A (zh) 半导体存储器操作方法
US11264098B2 (en) Memory controller

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication