存储器系统中的错误识别的制作方法

文档序号:6413039阅读:141来源:国知局
专利名称:存储器系统中的错误识别的制作方法
存储器系统的内容常常以这种方式保证,即在一个数据字的地址下另外存储一些冗余位。这些位称为控制位、K位或者ECC位,其通过对该数据字的规定部分建立奇偶和而建立,通常称为EDC编码(“EDC”是错误检测码的简写)。在读出存储器字时重新建立部分奇偶位,并与同样读出的所属K位比较。如果对于所有K位都相等,则认为读出的数据字没有错误。在不相等时,则从不一致的模式,即所谓的表征位模式(Syndrommuster)确定错误种类。
在上述比较中不一致的K位的位置称为表征位,一定的表征位模式被解码,检测数据字中可能失真的位位置,并通过反演改正。
K位的建立(EDC编码)、K位的比较、表征位的解码,以及改正和可能的上位控制的警告,现在通常借助于专门的控制器组件实现,该控制器组件在下面也表示为EDC控制器。
现在,当在存储器中存在有不可改正的错误时,亦即发生多位错误时(例如控制错误,或者存储位置失真错误,或者存储器组件错误)时,则这些错误虽然可以通过错误监视系统以高准确率获知,但是只能在读出这些错误数据之后才能实现。这在某些场合可能在错误出现后很晚。在这样晚的时刻,该错误的负面效应可能已十分明显。
本发明的任务在于克服上述问题。
该任务通过本发明的权利要求1的特征解决。
本发明的一个实施例通过权利要求2给出。根据该实施例,特别避免了数据字由于整个存储器字遇到的控制错误(例如寻址错误)写入一个非规定的地址和覆盖在该存储单元存储的数据字。要写入的数据可以在第二次尝试中存储到另一个无错误的写地址而不致丢失。
本发明的另一个实施例由权利要求3给出。根据该实施例,特别避免了数据字的一部分由于在包含该数据字部分的存储单元部分遇到的控制错误(例如寻址错误)写入一个非规定地址,而覆盖在该存储单元存储的数据字部分。此外,该要写入的数据可以在第二次尝试中存储在另一个无错误的写地址而不被丢失。
下面是本发明的实施例。


图1根据所谓的EDC代码表表示,通过哪些位位置建立一个EDC控制器中的K位。
图1中符号“X”表示所属数据位N(00=<N=<31)包含在校验位C(C0=<C=<C7)的奇偶组成中。在下面存储字半字的行旁边的符号“0”表示,当在整个有效位部分包括“1”的非奇偶组成的数目为奇数时,所属C位等于1。在下面存储字半字的行旁边的符号“E”表示,当在整个有效位部分在奇偶组成中包括的“1”的数为奇数时,所属C位等于0。亦即上述两个命题涉及存储字的两半。
图1中假定数据字包括32位数据位。对于这些数据位,分配8个控制位C0、C1、C2…、C7,它们各自通过奇偶组成关于一个数据字的一定的位位置建立。整个存储器字,亦即有效字(地址或者数据)加上控制字包括40位。它们在DRAM存储组件中以4位行宽组织。
根据按照EDC代码表建立的控制位,可以准确检测一位错误,并导致奇数表征位模式。另外,可以执行一位错误的改正,因为在一个有效字内部的每一个错误位位置固定分配一个确定的表征位模式。这些表征位模式可以解码,因此可为改正错误而被考虑。
最后可以检测多位错误。例如双位错误总是导致一种不等于0的偶数表征位模式,因而被确定检测为多位错误。其它的偶数多位错误同样总是引向一种偶数表征位模式,此时以1/128的概率产生零表征位,因为由该ECC宽度(K位的数目)给出总共128个偶数表征位模式。因此这一错误立即以99.2%的概率导致多位错误警告。
奇数多位错误导致奇数表征位模式,此时也可以出现一位错误表征位模式。因此,该错误立即以68.75%的概率检测为多位错误。该数字按下述产生在8位ECC宽度时可产生总共128个表征位模式。在该128个模式中有40个为一位错误预留。亦即剩余128-40=88个模式用于奇数多位错误。因此,该模式在任意奇数多位错误下出现的概率为88/128=68.75%。
总起来得到,任意多位错误立即以215/256=84%的概率作为多位错误警告。这里也考虑以1/128的比率产生零表征位的偶数多位错误,该数再次按照下述产生8位ECC宽度时总共有256个表征位模式。在该256个模式中有40个为一位错误预留,而一个模式是零表征位模式。亦即剩余256-40-1=215个模式用于多位错误。因此,该模式在一个任意多位错误时出现的概率为215/256=84%。
现在当在对存储器系统的公共的、亦即被并行控制的存储单元(例如存储器组件)一次存取范围内的控制中出现一个错误时,可以产生伪装为一个可改正的一位错误表征位模式,并因此不作为控制错误检测。还考虑另外的错误,例如完全不能由EDC控制器识别的写脉冲的丢失。
当给在读操作时全体被激活的存储器组件供给多个从独立控制单元产生的同种类的控制信号时,上述问题可以大大减少。在该种情况下人们只用一个这种信号的丢失计算(亦即一个控制单元的丢失),因此,例如可以在读出操作时把不同存储器字的数据和控制位彼此混合。尽管采取了这一措施(其在下面简称为措施A),但还以小的概率伪装一位错误甚至无错误。
然而最后提到的问题可以通过在存储器字单元上合适分配数据和控制位,结合相应选择EDC代码(见图1)而避免。从图1可以获知,不与存在一位失真的一段数据字一起存储的一段控制字(例如具有控制字段KWT1的数据字段DWT1),每次仅有一个偶数计入表征位模式。另一方面,与一段控制字一起存储的一段数据字(例如具有KWT2的DWT1段)只有一个奇数计入表征位模式。但是后一情况不能在由错误控制(寻址)一个存储器单元而产生的错误时出现。因此在错误控制时只出现偶数表征位模式。
在存储器单元上合适分配数据和控制位,结合相应选择EDC代码的方法下面简称为措施B。
在多于两种存储介质单元上用于上述分配的一般建立规则已在德国专利申请P3528902.3-31(SAG内部GR84P1995)中仔细说明。
根据上述在存储器介质单元上对存储器字的分配以及为此相应选择BDC代码,可以在一个控制单元的数据和控制位错误选择的场合只产生偶数袁征位模式。因为可改正一位错误只产生奇数表征位模式,所以以这种方式取消了一位错误与所述控制错误混淆的危险。
可惜的是在存储器字半字(数据的一半加所属c位的一半)中的“全0”或者“全1”错误可以不管措施B而总导致奇数袁征位模式,从而伪装为可改正错误。
为避免这一点,另外如此选择EDC代码,即不与另一段数据字一起存储的一段数据字(例如图1中DWT1或者DWT2段)参与建立各次有偶数位数的一个K位,只要它是涉及不与该K位一起存储的一段数据字,以及参与建立一个奇数位数的K位,只要它是涉及与该K位一起存储的一段数据字的话。
通过上述EDC代码的选择(下面简称为措施1),可以使在一个存储器字半字(数据位的一半+所属ECC位的一半)中的“全0”或者“全1”错误总是导致偶数表征位模式。由此,该种错误作为多重错误警告。因为两个半字通过分开的控制而控制,以及具有上述作用(全0或者全1)的多种控制错误因此极大改善把这种错误与一位错误区分的能力。
图3表示一个按照本发明的存储器系统CMY,它由一个双重(存储器)控制系统CMYC,一个具有两个存储器单元亦即两半(存储器)介质的(存储器)介质系统CMYM(简称为“存储器”),以及一个双重总线接口部分BCMY组成,总线接口部分的作用是建立与一个计算机系统的总线系统的连接。
该存储器系统包括一个错误监视部分,它借助于EDC控制器根据机器周期(读或写周期)准备不同的控制点。
CMY中的所有数据路径,即在BCMY和CMYM之间的路径,都是双路,并在每一数据路径上在相应EDC控制器的控制点为进行错误监视彼此独立地加入数据字的全宽(32位)。
图3中特别表示出数据路径的配置和为一个写周期的该存储器系统的控制点。
在写周期中,写数据和所属K位从BCMY首先通过写路径WDPI到达控制点A1。在该控制点A1执行上述错误监视,检测位错误(一位或者多位错误),以及改正一位错误。
接着,写数据变为双份(但是控制位不变),引向存储器CMYM。
在控制点B,亦即紧接写数据写入存储器之前,在写数据的分两半部分传输的每一部分中再次生成一个控制字并比较两个控制字的ECC。仅当迄今为止数据在两半部分中无错误处理,两控制字才相等,否则出现多位错误、亦即一个不可改正错误的警告。通过比较ECC,发现通常由于在A1和B之间错误传输的错误或者由于错误的ECC网络在控制点A1或者B引起的错误。
控制点A1的控制位对控制点B来说不需要,因为它通常在控制点B,亦即紧接写数据写入介质系统之前,由写数据产生,以及它对在A1和B之间的错误监视不需要。在A1和B之间的错误监视已经通过比较在控制点B建立的两个控制字而保证。
在A1和B之间的数据传输线段部分交叉。如果在传输的半部分之中存在选择错误(控制错误)的话,那么在控制点B出现不一致。这将引起一种多重错误警告。
如果在控制点B的比较不产生不一致,那么数据连同控制字一起写入介质系统。具体说此时数据位0…15(DWT1)与K位4…7(KWT2)一起写入介质系统的半部分,数据位16…32(DWT2)与K位0…3(KWT1)写入另一半介质系统中。
通过交换两个控制之间的存储器字半字而对上述控制错误iVm在数据路径上的分段监视,可以从结合对不同EDC组件的警告的观察得出错误产生地点。
为避免在分段4亦即直接写阶段一种可能的错误写过程,代替纯写周期执行一个读/写周期,这样在一个正确可控的存储器行被一个错误写过程的错误控制覆盖之前执行读数据的一个EDC检验,从而执行对一个存储器行的控制检验。此时读过程保留在内部,亦即BCMY不接收读数据,使其输出到总线。写数据直到读检验结束前在CMYM中暂存。由于这种措施,控制错误的系统作用保持在很小程度,以便(控制)错误更好区别和更快查明。
结合上述措施A和B,这一措施的特殊作用是,在选择一个存储器字半字时的错误(例如由寻址错误所产生的)在读出该错误的存储器字之前已经被识别为一个多位错误。与措施C结合,它同样适用于整个存储器字的寻址错误。在由一个存储器组件内部错误引起的多位错误时适用同样的优点。
由于数据字的显而易见,迄今为止EDC编码的应用仅就数据字说明。然而事实上不仅是数据字,而且数据字的存储地址也能一起包括在EDC编码,亦即奇偶性组成中(见图2)。此时EDC代码关于地址字如此选择,即在地址字一位错误时只能产生一个偶数表征位模式。但是这意味着对一个多位错误同样只能产生一个偶数表征位模式。这样在一个寻址错误时总产生多重错误警告,即一个不可改正错误警告。地址包括在EDC编码中这种设计在公开说明书DE3319710A1(SAG内部83P1382DE)中详细说明,在下面简称为措施C。
为使用于措施C必需的地址-奇偶位的生成的开销最小,需要另外使用数据EDC组件来生成地址-奇偶位。这一点通过地址和数据的时间多路转换以及按照图2亦即图1的EDC编码的部分建立地址-奇偶位而可能。因此每一地址位要遵守为措施C必需的偶数条件。为此,使用为措施B需要的一定代码段为偶数的条件。
图4表示存储器系统为一个读周期的数据路径和控制点。
在读周期期间,数据字和所属控制字首先读出,并到达控制点C,在该点执行错误检测,可能的话错误改正。接着该数据字和控制字被继续引导到总线接口BCMY,此时在控制点A2再次执行一次错误检测。在错误情况下这种错误识别使总线接口BCMY阻止数据字和控制字在总线上的继续交付。此外,在这种情况下故障半存储器系统(CMY0或者CMY1)从总线接口BCMY断开。
图5表示图3和4的iVm,在这些控制点(检验点Y)识别出现在存储器系统的规定部分(部分X)的数据错误。
下面举出为特定错误以及通过错误监视系统对其处理的例子。
例1使用EDC保护识别控制错误错误情况错误选择一半存储器字识别手段措施A和B位位置的分配X=由控制0控制,Y=由控制1控制粗体字=错误信息部分3116 15 00C7 C4 C3 C0YYYYYYYYYYYYYYYY︱XXXXXXXXXXXXXXXXXXXX︱YYYY在地址1下一致的存储器字3116 15 00C7 C4 C3 C00000000000000000︱00000000000000000000︱1100在地址2下一致的存储器字3116 15 00C7 C4 C3 C01111111111111111︱11111111111111101101︱1111
由控制0在读地址2时错误地读出地址1下的内容。这将导致下面的读信息。
3116 15 00C7 C4 C3 C01111111111111111︱00000000000000000000︱1111由读出的数据建立的ECC位为0000︱0011C7 C4 C3 C0由读出的与新建立的ECC位XOR操作产生的偶数表征位模式为0000︱1100S7 S4 S3 S0这将导致产生一个多重错误警告!例2使用EDC保护识别控制错误错误情况一个存储器字半字保持高阻识别手段措施1位位置分配X=由控制0控制,Y=由控制1控制粗体字=错误信息部分3116 15 00C7 C4 C3 C0YYYYYYYYYYYYYYYY︱XXXXXXXXXXXXXXXXXXXX︱YYYY在地址1下一致的存储器字3116 15 00C7 C4 C3 C01010101010100010︱10101010101010100000︱0111由控制1在读地址1时错误地未将所属数据和ECC输出接入低阻。这将导致下面的读信息。
3116 15 00 C7 C4 C3 C01111111111111111︱1010101010101010 0000︱1111由读出的数据建立的ECC位为 0011︱0011- C7 C4 C3 C0由读出的与新建立的ECC位XOR操作产生的偶数表征位模式为0011︱1100S7 S4 S3 S0这将导致产生一个多重错误警告!例3识别存储器字-寻址错误错误情况寻址具有同样数据内容的存储器行的错误(简单错误)识别手段措施C,亦即物理地址在建立ECC位时一道包括(见图2)在地址B’111010101010101000下的一致存储器字ECC位,单独由数据产生的 1111︱0011奇偶位,由地址产生的 0110︱0101由XOR操作建立的结果ECC1001︱0110总存储器字1010101010101010︱10101010101010101001︱01103116 1500 C7 C4 C3 C0在地址B’101010101010101000下的一致存储器字ECC位,单独由数据产生的 1111︱0011奇偶位,由地址产生的 1010︱0101由XOR操作建立的结果ECC0101︱0110总存储器字1010101010101010︱10101010101010100101︱01103116 15 00C7 C4 C3 C0在试图读取地址B’111010101010101000时错误地读出地址B’101010101010101000的内容。
这导致下面的读信息3116 15 00 C7 C4 C3 C01010101010101010︱1010101010101010 0101︱0110新生成的ECC位C7 C4 C3 C0ECC位,单独由数据产生的 1111︱0011奇偶位,由应读地址产生的0110︱0101由XOR操作建立的结果ECC 1001︱0110由读出的与新建立的ECC位XOR操作产生的偶数表征位模式为1100︱0000S7 S4 S3 S0这将导致产生一个多重错误警告!
例4识别存储器字-寻址错误错误情况寻址具有不同数据内容的存储器行的错误(多重错误)识别手段措施C,亦即物理地址在建立ECC位时一道包括(见图2)在地址B’111010101010101000下的一致存储器字ECC位,单独由数据产生的 1111︱0011奇偶位,由地址产生的 0110︱0101由XOR操作建立的结果ECC1001︱0110总存储器字1010101010101010︱1010101010101010 1001︱01103116 15 00 C7 C4 C3 C0在地址B’111011101110001000下的一致存储器字ECC位,单独由数据产生的 0000︱0011奇偶位,由地址产生的 0110︱1001由XOR操作建立的结果ECC0110︱1010总存储器字1111111111111111︱0000000000000000 0110︱10103116 15 00 C7 C4 C3 C0在读取地址B’111010101010101000时错误地读出地址B’111011101110001000的内容。
这导致下面的读信息1111111111111111︱0000000000000000 0110︱10103116 15 00 C7 C4 C3 C0新生成的ECC位C7 C4 C3 C0ECC位,单独由数据产生的 0000︱0011奇偶位,由应读地址产生的 0110︱0101由XOR操作建立的结果ECC0110︱0110C7 C4 C3 C0由读出的与新建立的ECC位XOR操作产生的偶数表征位模式为
0000︱1100S7 S4 S3 S0这将导致产生一个多重错误警告!
权利要求
1.具有错误监视系统的存储器系统,其中与一个数据字一起每次存储一个控制字,它a)在控制字与要写入的数据字在要写入的地址处一起存储之前,根据一个规定的建立规则,即所谓的EDC代码,从要写入的数据字和写地址产生所述控制字,b)根据一个从该存储系统要读出的数据字按照EDC代码重新产生一个控制字,比较该控制字的位(K位)与在数据字存储的K位,在不相等时,从相等和不相等的K位的模式,即所谓的表征位模式得出错误种类,其特征在于,在写地址下存储一个要写入的数据字之前执行一次内部读过程,此时错误监视系统根据特征b)执行错误检验。
2.根据权利要求1的存储器系统,其特征在于,错误监视系统在EDC编码中、亦即在控制字的组成中共同包括地址。
3.根据权利要求1或者2的存储器系统,其特征在于,它至少包括两个独立的被控制的存储器单元,并且在每一存储器单元中每次把数据字的一段与控制字的一段共同存储,并且其EDC代码如此选择,使得在一位错误时上述比较产生奇数的不相等K位,在此,从在不与有一位失真的一段数据字一起存储的一段控制字产生的奇数中每次计入不相等的K位的一个偶数。
全文摘要
存储器系统的数据内容大多通过一个EDC系统保证。现在在存储器系统中存在一个错误时,该错误仅在读出错误数据后才可以通过EDC系统识别。本发明解决了这一问题。
文档编号G06F11/20GK1228855SQ97197564
公开日1999年9月15日 申请日期1997年8月6日 优先权日1996年8月30日
发明者H·W·克内菲尔 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1