错误判断电路和共享的存储器系统的制作方法

文档序号:6781414阅读:153来源:国知局
专利名称:错误判断电路和共享的存储器系统的制作方法
技术领域
本发明涉及一种错误判断电路和共享的存储器系统。
背景技术
作为用于在多处理器系统或共享的存储器系统中保持高速缓冲一致性的方法,存 在SMP(对称多处理)系统和ccNUMA(高速缓冲一致性非均匀存储器访问)系统。
在ccNUMA系统中,通常使用完全目录系统,其中把主存储器分割用于具有大小的 每个块,和针对各个块把称之为目录的、用于保持高速缓冲一致性的信息存储在主存储器 中。在许多情况下,块大小等于高速缓冲存储器的高速缓冲线大小。 存在用于保证用来存储目录的区域不同于主存储器的区域的方法。然而,当提供 不同于主存储器的存储器以便存储目录时,尽管可以确保被用作主存储器的区域,不过却 增加了系统的成本。 另一方面,通常被特别用作服务器的系统的主存储器是DI匪(双列直插存储器模 块),其在例如比率8 : l的l的部分存储奇偶信息或错误校正码的校验位。还存在一种方
法,其中比率为8:i的i的部分被用作用于存储目录而不是奇偶信息的区域。然而,对于
被用作服务器的系统的主存储器(即DI匪)来说,重要的是保证所存储数据的可靠性(即 在数据中没有错误)。 在除ccNUMA系统之外的系统中,即在SMP系统等中,其中在主存储器中存储除 数据之外的东西并不重要,通过在一个字节的部分中存储SEC-DED ECC(单错误校正,双 重错误检测,错误检验和校正)或者通过以每多次读取为单位检查数据,来使用S8EC-D8ED ECC(单8位组错误校正,双8位组错误检测,错误检验和校正)系统。特别地是,在后一种 情况下,即便在可买到的由例如18个芯片构成的DI匪中一个芯片故障,也可以借助数据校 正来运用DI匪。 据此,当使用其中被用作服务器的系统是完全目录系统的ccNUMA系统时,希望确 保用于目录的区域,同时提供数据完整性或数据保证,借此能够像SMP系统一样忍受DI匪 的一个芯片故障。 另一方面,已经提出诸如主机之类的体系结构,其中主存储器被划分为单元,每个 单元被称为页面,并且对于每个页面来说存储被称为存储键的信息。通过在主存储器的区 域内存储例如4位的键信息,可以提供只有当包括相同的键信息时才允许访问的存储器保 护功能。然而,在近来的多处理器系统中,已经增大了主存储器的容量。据此,已经与主存 储器容量的增大成比例地增加了页面数目,并且还增大了键信息的总量。对于主存储器来 说通常使用便宜且被标准化的DI匪。据此,很难以适度的价格单独构成用于存储键信息的 区域。 从而,由DI匪所构成的主存储器的一部分区域被转用作键信息的存储区域。从 而,通常被用作主存储器区域的区域被用于存储键信息,使得难以改进主存储器的利用效率。
4
[专利文献1]日本已公开第11-232129号专利公报
[专利文献2]日本已公开第9-120671号专利公报
[专利文献3]日本已公开第2006-252545号专利公报
[专利文献4]日本已公开第54-57848号专利公报 在常规的多处理器系统或共享的存储器系统中,主存储器的一部分区域被用于存 储用于保持高速缓冲一致性的信息、用于数据保证的信息、用于保护存储器的信息等,从而 存在一个问题难于执行数据保证,同时改进主存储器区域的利用效率,而不会提高系统的 成本。

发明内容
据此,本发明一方面的目的是提供一种错误判断电路。所述错误判断电路包括第 一 E0R电路树,用于在使用里德_索罗蒙代码的SmEC-DmED中,通过在伽罗瓦扩展域GF(2m) 中相加,针对m位块单元数据,由与作为受保护以免于错误的原代码的多项式表达相关的 多项式余项计算来生成校正码的校验位;第二E0R电路树,用于当要被检测错误并且可能 混有错误的代码的多项式表达为Y(x)时,相对于代码C(x),根据Sn = Y(an)生成检验子, 其中把校验位添加到原代码;和错误检测电路部件,用于根据是否满足检验子方程式= S。S2来检测是否存在一个块错误、两个块错误或没有错误。 借助于特别是在权利要求中所指出的元素和组合,将实现并获得实施例的目的和 优点。 应当理解,以上概括描述以及以下详细描述均是示例性的和解释性的,而并非是 限制所要求的实施例。


图1是用于图示在本发明一个实施例中的共享的存储器系统的框图;
图2是用于图示DI匪的结构的图; 图3是用于图示通过使用两个DI匪来提供16字节数据宽度的错误检测和校正处 理的情况的图; 图4是用于图示通过使用两个DI匪来执行错误检测和校正处理的情况的图,其中
借助两次交织的两次读取被认为是一个单位; 图5是用于图示生成矩阵的例子的图; 图6是用于图示生成矩阵的例子的图; 图7是用于图示编码电路的框图; 图8是用于图示编码电路的E0R电路树的结构的电路图; 图9是用于图示解码电路的框图; 图10是用于图示用于获得检验子的矩阵的例子的图; 图11是用于图示用于获得检验子的矩阵的例子的图; 图12是用于图示错误检测电路部件的电路图; 图13是用于图示对数变换的例子的图;禾口 图14是用于图示错误校正电路部件的电路图。
具体实施例方式
依照所公开的错误判断电路和存储器共享系统,使用第一EOR电路树、第二E0R电 路树和错误检测电路部件。第一EOR电路树用于在使用(k, k-3)里德-索罗蒙代码(k是 不超过2m的自然数)的SmEC-DmED中,当P (x)是伽罗瓦域GF (2)中的m阶(m是不小于8的 自然数)本原多项式、伽罗瓦扩展域GF(2"1)中的本原元素是a并且P(x) =0的根是ai(i =0, . . . , m-l)时,通过在伽罗瓦扩展域GF(2"1)中相加,针对m位块单元数据,由与作为被 保护以避免错误的对象的原代码的多项式表达I(x)有关的多项式余项计算C(x) =x2I(x) modP(x)来生成校正码的校验位。第二EOR电路树用于当作为被检测的对象并且可能混有 错误的代码的多项式表达为Y(x)时,相对于代码C(x),根据Sn = Y( a n) (n = 0, 1,2)来生 成检验子S。、 Sp S^其中把校验位添加到原代码。错误检测电路部件根据是否满足= S。S2来检测存在一个块错误、两个块错误或没有错误,并且根据在伽罗瓦扩展域GF(2m)中 的S。 a p = Si检测块错误的位置p。 通过如上所述的使用里德_索罗蒙码对在主存储器中存储并从其中读取的数据 执行编码和解码处理,可以生成主存储器的空白区域。通过把所生成的区域转用于另一应 用并且通过保持错误校正强度为与常规程度相同的程度,可以在改进主存储器区域的利用 效率的同时执行数据保证。 以下,将参考附图描述本发明的错误判断电路和共享的存储器系统的各实施例。
图1是用于图示依照本发明一个实施例的共享的存储器系统的框图。图1中所示 的共享的存储器系统是ccNUMA系统的多处理器系统。共享的存储器系统具有这样的结构, 其中多个节点l通过公知的连接装置2连接。这里为便于描述,只图示了一个节点1。节 点1包括诸如CPU(中央处理器)之类的处理器11、目录控制器(DC) 12、主存储器13和高 速缓冲存储器14。由于使用ccNUMA系统,所以除数据之外,用于保持在高速缓冲存储器14 中存储的数据的一致性的目录信息也被存储在主存储器13中。 如下所述,编码电路包括第一 EOR电路树,第一 EOR电路树用于在使用(k, k_3)里 德_索罗蒙代码(k是不超过2m的自然数)的SmEC-DmED中,当P(x)是在伽罗瓦域GF(2) 中的m阶(m是不小于8的自然数)本原多项式、伽罗瓦扩展域GF(2"1)中的本原元素是a 并且P(x) = 0的根是ai(i = 0, ... , m-1)时,通过在伽罗瓦扩展域GF(2"1)中相加,针对 m位块单元数据,由与作为受保护以免于错误的对象的原代码的多项式表达I(x)有关的多 项式余项计算C(x) =x2I(X)modP(X)来生成校正码的校验位。另一方面,解码电路包括第 二EOR电路树,第二EOR电路树用于当作为要检测的对象并且可能混有错误的代码的多项 式表达为Y(x)时,相对于代码C(x),根据Sn = Y(a n) (n = 0, 1,2)来生成检验子S。、Sp&, 其中把校验位添加到原代码;并且解码电路还包括错误检测电路部件,错误检测电路部件 用于根据是否满足= S。S2来检测存在一个块错误、两个块错误还是没有错误,并且用于 根据在伽罗瓦扩展域GF(2"1)中的S。aP二S工来检测块错误的位置p。如下所述,错误判断 电路包括第一 EOR电路树、第二 EOR电路树和错误检测电路部件。 注意在实施例中,为了描述,k = 36。在这种情况下,(k, k-3)里德-索罗蒙代码 是(36,33)里德-索罗蒙代码。 此外,当m是小于8的自然数时,(k, k-3)里德-索罗蒙代码无解,从而重要的是m为不小于8的自然数。在实施例中,为了描述,m二 8。然而显然可以例如m = 16等。
主存储器13包括多个DI匪130。如图2中所示,每个DI匪130包括18个存储器 芯片131-1到131-18。每个存储器芯片131-1到131-18具有4位的数据宽度。图2是用 于图示DI匪130的结构的图,并且省略了除数据线之外的地址线等。 使用了通过使用ECC而能够校正数据的DI匪130的主存储器13具有例如8字节 +1字节(72位)的数据宽度。在这种情况下,假定DI匪130可以忍受一个芯片故障是用于 保证数据可靠性的条件,执行S4EC-D4ED是充分的。例如,已经知道可以通过相对于16字节 的数据提供16位的校验位来提供S4EC-D4ED。由于在这种情况下数据和校验位的比率是 8 : 1,如图3中所图示,因此在DI匪130中不存在用于存储额外数据的位。图3是用于图 示通过使用两个DI匪来提供16字节的数据宽度的检测和校正处理的情况的图。
在该实施例中,通过把借助2次交织的两次读取作为一个单位,在S8EC_D8ED代码 的情况下,即便在一个芯片故障的情况下,它仍然被视为8位块的单个错误。由此,可以保 证8位(l字节)的区域用于存储额外的数据,并且当在另一芯片中没有错误时可以校正数 据。图4是用于图示通过使用两个DI匪130来执行其中借助两次交织的两次读取被认为 是一个单位的错误检测和校正处理的情况的图。 在该实施例中,构造能够进行高速处理的编码电路和解码电路,其使用伽罗 瓦扩展域GF(28)中的(36,33)里德_索罗蒙代码作为S8EC_D8ED代码。例如,P(x)= x8+x、x^^+l用于在伽罗瓦域GF(2)中的第8阶本原多项式P(x)。假定伽罗瓦扩展域 GF(28)的本原元素(也是伽罗瓦域GF(2)的本原元素)为a ,由于本原多项式P(x)是第8 阶多项式,所以对于P(x) =0来说存在8个根,并且该些根变为ai(i =0,...,7)。
〈编码电路〉 S8EC_D8ED是能够校正1字节错误并且检测2字节错误的代码。当在代码之间的 距离为3时,其中数据和错误校正码总共为36个字节的里德-索罗蒙代码变为(36,33)里 德-索罗蒙代码,其数据部分为33字节并且错误校正码为3字节。(36,33)里德-索罗蒙 代码的生成多项式G(x)可以由以下表达式来表示。
G (x) = (x+ a 0) (x+ a " (x+ a 2) 在这种情况下,假定作为被保护以免于错误的对象(即,错误保护对象)的原代码 的多项式为I(x),错误校正码的多项式C(x)由多项式余项计算C(x) = x2I(X)modP(X)来 表示,并且保护的代码F(x)由F(x) =x2I(X)+C(x)来表示。 当由高速硬件电路提供编码处理时的问题为上述多项式余项计算的一部分。如果 多项式余项计算可以由与现有SEC-DED ECC类似的生成矩阵形式来表示,那么在硬件上设 置编码处理变得容易。 原代码的33字节的数据位串D = {d263, d262, . . . , d。}由以下多项式来表示。在下 面的多项式中,i表明33字节的块的字节位置(字节0到32),并且j表明字节块中的位位 置(位0至lj7),并且每个d为0或l。
方程式1
32 7<formula>formula see original document page 7</formula>
这里,当其中只有单个位为1的数据位串D被定义为A = {其中只有第(263-i)位为1并且其它位为0的位串}时,并且假定Ii(x)是对应于各数据位串Di的多项式,原代 码的多项式I(x)按照线性由对应于其中A = 1的数据位的多项式Ii(x)的线性和来表示。 在Di、Ii(x)、di中,i是从0到263的自然数。从而,错误校正码的多项式C(x)由Ci(x)= X2工i(x)modP(x)的线性和、即由C(x) =E Ci(x)来表示。据此,预先获得与数据位串Di相关 的错误校正码的多项式& (x),并且可以根据错误校正码的多项式& (x)来构成生成矩阵。
根据本原多项式P (x)的P ( a ) = 0的属性,在该实施例中,通过重复地使用a 8 = aVa、a、l,把a的阶设置为不超过7。由此,如下表示错误校正码的多项式& (x)。
方程式2<formula>formula see original document page 8</formula>
在错误校正码的多项式Ci(x)中,K = 0、1、2,Ciw(在上述多项式中n为8k+j)的 "i"是"C"的指数,"[n]"表明"i"的指数,每个Ci[n]是0或1,并且i是0到263。 {Ci[n]} (n = 23. . . 0)的线性组合变为校验位串{Cn} (n = 23. . . 0)。
方程式3
<formula>formula see original document page 8</formula>
由于上述方程式是在伽罗瓦扩展域GF(28)中相加,所以方程式实质上是EOR。
图5和图6是用于图示如上所述获得的生成矩阵的例子的图。在图5和图6中, 对于为每个字节划分的块编号Block35到Block3,图示了生成矩阵c23到c。。对于块编号 的使用方法本身来说,下面将随同解码电路的操作进行描述。注意,为24位的错误校正码 分配块编号Block2到Block0。 注意,为了改进对其中数据位变为全O的数据破坏的检测的耐受属性,可以进行 保护动作。例如,Cn的一些被反转并存储在DI匪130中。注意,这种保护动作本身是公知 的,因此将省略与之相关的描述。 图7是用于图示编码电路的框图,并且图8是用于图示编码电路的E0R电路树的
结构的电路图。在节点1中的处理器11之内或处理器11之外提供编码电路。 如图7中所示,在E0R电路树21中输入33字节的数据,并且从中输出24位的校
验位。E0R电路树21包括如图8中所示连接的E0R电路211,并且输出关于数据[262]到
数据[5]的校验位CheckBit[23] 。 E0R电路树21对于在图6和7中图示的生成矩阵中的
全部"1"位求E0R。 数据和错误校正码的校验位被存储在主存储器13 (DI匪130)中,如图4所示。
〈解码电路〉 图9是用于图示解码电路的框图。解码电路包括E0R电路树31、错误检测电路部 件32和错误校正电路部件33,它们如图9中所示连接。在节点1中的处理器11之内或处 理器ll之外提供解码电路。 E0R电路树31具有与在图8中所示的E0R树21相同的结构,因此省略了图示和描述。EOR电路树31根据所编码的数据ReadData[263:0]和校验位ReadCheckBit [23:0]生 成下述检验子syndromeO [7:0]、 syndrome 1 [7:0]、 syndrome2 [7:0]。 在该实施例中,对于S8EC-DsED生成三种类型的8位检验子。在形式上,这实际上 与生成24位的检验子相同。然而,为了简单描述错误检测和校正处理,检验子由S。、 Sp S2 表示。假定从主存储器13(DI匪130)读取的代码由用于数据和校验位两者的36字节的多 项式表达Y(x)来表示,那么检验子S。、 Sp S2由检验子生成矩阵的抽象表达式Sn = Y( a n) (n = 0,l,2)来表示。S卩,Y(x)是作为检测错误的对象(即,错误检测对象)的代码的多项 式表达。这里,所读取的数据串D'由D' = d' 263,... ,d'。,c'23,... ,c'。来表示。由于数 据在被存储到DI匪130中期间可能会被破坏或者混有错误,所以当把符号"'"附加到读取 后的数据以便与存储之前的数据相区分时,所读取的代码由以下多项式表达Y(x)来表示。
方程式4
32 7 2 7 二 S(2^'(8'力.)";)X!+2 "勺乂 这里,与生成上述生成矩阵时的情况类似,检验子S。、S^S2也由其中在由读取数据 和校验位所形成的位串中只有一个位是l的线性组合来表示。在这种情况下,也与编码情 况类似,通过使用a8= a、a3+a2+l降低阶次来获得用于求得检验子S。、SpS2的生成矩 阵。尽管涉及校验位,不过获得用来求得检验子S。、 Sp S2的矩阵的方法类似于编码时所使 用的方法,因此将省略该描述。 在下面的矩阵表示中,S。 =E S0iCi i, S! =E S"a i, S2 = E S2^ 、并且各SO" Sli、S2i为值0或1。 图10和图ll是用于图示用于求得检验子的矩阵的例子的图。图10和图11图示 了对于块编号Block35到Block0来说,检验子S。的生成矩阵元素S07到S0。、检验子Si的 生成矩阵元素Sl7到Sl。和检验子S2的生成矩阵元素S27到S2。。 图12是用于图示错误检测电路部件32的电路图。错误检测电路部件32包括解 码/编码电路41 、附带指数部分mod255的加法器电路42、错误判断电路43、反相电路44和 重排电路45。 当如上所述获得的三个检验子S。、 Sp S2的全部值都为零时,不存在任何错误。当 至少一个检验子不为零时,存在某种类型的错误。当至少一个检验子不为零时,如果在伽罗 瓦扩展域(28)中满足方程式S/二S。;那么存在可以恢复的一个块错误。作为里德-索 罗蒙代码,当不满足方程式相等时,存在两个块错误。然而,绝不会出现满足方程式相等并 且S。 = 0,即至少存在三个块错误。当不满足方程式相等时,至少存在两个块错误,并且由 于这超出了SsED的性能,所以无法校正(恢复)数据。然而,可以借助DsED的性能来检测 数据。依照这种方式,当无法校正数据时,重要的是由系统通知错误,或者执行适当的处理, 诸如错误标记处理。此外,这里考虑a 255 = 1也是很重要的。 如上所述,由于检验子S。、S^S2由S。 =E S0iCi i、Si =E Sl丄a 、S2 = E S2丄a 1的 7次以下的a项之和来表示,所以在这种情况下不容易评估方程式S/二S。S2。从而,图13 中所示的对数变换由解码/编码电路41针对评估和下述的错误校正处理两者来执行。图 13是用于图示对数变换的例子的图,并且图示了对数变换图表的内容。当按照对数变换图 表同时把Sn7、 Sn6、 Sn5、 Sn4、 Sn3、 Sn2、 S&、 Sn。(n = 0, 1,2)认为是一个十六进制数两位数字(二进制数八位数字)的数值时,交点表示ak的幂指数k。当存在位错误时使用对数变换 图表,使得检验子S。和检验子S工都不为零。据此,对数变换图表的定义域不小于l。注意, 对数变换图表的内容由十六进制数来图示。通过针对每个an(n = 0,...,254)按照a8 = a 4+ a 3+ a 2+l降低阶次来获得对数变换图表。 依照这种方式,根据从E0R电路树31所输出的syndromeO [7:0]、 syndrome 1 [7:0]、 Syndrome2[7:0],三个解码/编码电路41在对数变换之后输出检验子Alog_ SyndromeO [7:0]、 Alog_Syndromel [7:0]、 Alog_Syndrome2 [7:0],并且输出用于表明一个土央 错误的SingleBlockErrorDate[7:0]。 加法器电路42包括累加器421、AND电路422、0R电路423和递增电路424。在OR 电路423中输入累加器421的进位。忽略递增电路424的进位。加法器电路42执行包括 mod255操作的余项计算,以便计算块错误的判断和所述块错误的位置。
在图12中,在上侧的加法器电路42中经由反相电路44输入从在最上侧的解 码/编码电路41输出的检验子AlOg_SyndrOme0[7:0],并且在上侧的加法器电路42中 输入从顶部起的第二个解码/编码电路41输出的检验子Alog—Syndrome 1 [7:0]。上 侧的加法器电路42输出用于表明一个块错误的位置(S卩,要校正的字节的位置)p的 SingleBlockErrorPos[7:0]。 此外,在图12中,在下侧的加法器电路42中输入从在最上侧的解码/编码电路41 输出的检验子Alog—Syndrome0[7:0],并且在下侧的加法器电路42中输入从在最下侧的解 码/编码电路41输出的检验子Alog—Syndrome2 [7:0]。通过幂指数部分的相加提供在对数 变换之后的检验子S。和检验子S2的积,使得在下侧的加法器电路42输出Alog_Syn2_PL_ Syn0jiiod[7:0],其是幂指数部分的相加结果。依照这种方式,提供考虑a 255 = 1 ( = a Q) 的幂指数部分的相加。 错误判断电路43包括累加器431、匹配检测电路432、反相电路433、 AND电 路434和NOR电路435。在累加器431中输入从E0R树31输出的SyndromeO [7:0]、 Syndrome 1 [7:0] 、Syndrome2 [7:0]。从累加器431输出用于表明不存在错误的位No_Error 。 如图12中所示,在匹配检测电路432中输入从重排电路45输出的Alog_Syndromel [6: 7, 0] 和在下侧的加法器电路42的AlOg_Syn2_PL_Syn0_mod[7:0],所述重排电路45执行从顶部 起的第二个解码/编码电路41输出的检验子Alog—Syndromel[7:0]的位的重新排列。从 AND电路434输出用于表明一个块错误的位SingleBlockError。从NOR电路435输出用于 表明两个块错误的位DoubleBlockError。依照这种方式,如果考虑a 255 = 1 ( = a。),那么 通过重排指数部分的位来实现S/,并且通过执行检验子S。、 S2的匹配检测来获得分类。
图14是用于图示错误校正电路部件33的电路图。错误校正电路部件33包括 解码电路51、36个AND电路52和36个E0R电路53,它们如图14中所示连接。在解码 电路51中输入从在图12中上侧的加法器电路42输出的用于表明一个块错误的位置p 的SingleBlockErrorPos [7:0]。在相应的AND电路52中输入解码电路51的36位的 输出。此外,解码电路51输出用于表明不少于一个块错误的位置的值BlockPosError。 在每个AND电路52中还输入从解码/编码电路41输出的用于表明一个块错误的 SingleBlockErrorData[7:0]。在上侧的33个E0R电路53中输入相应AND电路52的输 出和数据ReadData[253:255]到ReadData[7:0],并且在上侧的33个E0R电路53输出校
10正数据CorrectData [263:255]到CorrectData [7:0]。此外,在下侧的三个E0R电路53 中输入相应AND电路52的输出和校验位ReadCheckBit[23:16]、 ReadCheckBit[15:8]、 ReadCheckBit[7:0],并且在下侧的三个E0R电路53输出校正校验位CorrectCB [23:16]、 CorrectCB[15:8]、 CorrectCB[7:0]。即,从错误校正电路部件33输出用于表明不少于 一个块错误的位置的值BlockPosError 、校正数据CorrectData [263:0]和校正校验位 CorrectCB[23:0]。 由于从错误校正电路部件33输出的校正数据CorrectData [263:0]变为经 过错误校正处理(即,校正之后)的校正数据,所以在不是两个块错误的情况下可 以使用校正数据。此外,当在处理之后没有使用从错误校正电路部件33输出的校 正校验位CorrectCB[23:0]时,可以省略在错误校正电路部件33当中用于生成校 正校验位CorrectCB [23:0]的电路部分。此外,当用于表明 一 个块错误的位置p的 SignalBlockErrorData[7:0]的值不在0到35的范围时,即不小于36,则判断为大量块错 误,并且与两个块错误类似地处理。 如果满足方程式= S。&,那么检验子S。表明校正数据,并且通过在伽罗瓦扩展 域GF (28)中的S。 a p = S工来获得要校正的字节位置p。据此,通过利用关于在读取数据的块 位置P处存在的8位数据的检验子S。来运算E0R而校正错误,并且可以保证S8EC的性能。
注意,由于满足a 255 = 1 (=,),当在幂指数相加时构成用于在伽罗瓦扩展域 GF(28)中方程式S^ = S。S2的等号形成检测或错误位置检测的电路时,显然重要的是考虑存 在幂指数的相加结果可能不仅是0而且是255的情况。 接下来,将描述上述实施例的编码电路和解码电路的电路规模和等待时间。
根据生成矩阵的大小应当理解,编码电路的电路规模是大约140位的24个E0R电 路。由于使用E0R电路树,所以编码电路的等待时间大约为2位的E0R电路的9个步骤。
在解码电路中,用于生成检验子(由于稀疏矩阵的缘故,检验子S。略小于其它检 验子)的电路的规模是大约140位的24个E0R电路。由于类似于编码电路使用E0R电路 树,所以用于生成检验子的电路的等待时间大约为2位的E0R电路的9个步骤。错误检测 电路部件和错误校正电路部件要求至少三个用于从8位到8位的对数变换的电路,以便根 据生成的检验子执行错误校正处理,还要求用于错误判断的一个8位累加器和匹配检测电 路以及一个用于校正单个块的电路(对应于264位的AND-E0R电路)。通过AND-0R电路构 成作为对数变换电路起作用的8位解码/编码电路。据此,重要的是错误检测电路部件和 错误校正电路部件的等待时间略长于用于生成检验子的电路的等待时间。
即使当在DI匪130当中的一个芯片被破坏时,如在上述实施例中简化的ECC的校 验位也可以校正数据。在上述例子的情况下,在36个字节当中的33个字节变为数据区域 (32个字节是原数据,一个字节是新规确保用于额外数据的空白区域),如图4中所示。通 常,在上述情况中,如图3中所示,主存储器13把校验位存储在例如比率8 : l的l的部分 (2个字节)。然而在该实施例中,即使如图4中所示当校验位被存储在比率11 : l的l的 部分(3个字节)中时,也可以保证与过去相同的数据可靠性。 依照这种方式,在上述实施例的情况下,相对于32字节数据,在维持与过去相同 的错误校正和检测性能的同时,通过减少所要求的校验位的数目,可以在主存储器13中确 保能够存储一个字节的额外数据(或信息)的空白区域。通过使用一个字节的空白区域,可以存储ccNUMA的目录信息、主机的键信息等。S卩,主存储器13的一部分区域可以用于用 来保持高速缓冲一致性的串信息、用来保证数据的信息、用来保护存储器的信息等,同时保 持与过去相同的错误校正和检测性能。据此,可以在不提高系统成本的情况下改进主存储 器13的区域的利用效率,以便保证数据。 本文所记载的所有例子和条件语言出于教导目的,以帮助读者理解发明人为改进 现有技术所贡献的发明和原理,并且将被解释为不限于这些具体记载的例子和条件,在说 明书中这些例子的结构也不涉及对本发明的优劣的描述。尽管已经详细描述了本发明的实 施例,不过应当理解,在不脱离本发明的精神和范围的情况下,可以对其进行各种改变、替 换和修改。
权利要求
一种错误判断电路,包括第一异或(EOR)电路树,用于在使用(k,k-3)里德-索罗蒙代码的SmEC-DmED中,当P(x)是在伽罗瓦域GF(2)中的m阶本原多项式、伽罗瓦扩展域GF(2m)中的本原元素是α并且P(x)=0的根是αi时,相对于m位块单元数据,通过在伽罗瓦扩展域GF(2m)中相加,通过与受保护以避免错误的原代码的多项式表达I(x)相关的多项式余项计算C(x)=x2I(x)modP(x)来生成校正码的校验位,其中k是不超过2m的自然数,m是不小于8的自然数且i=0,…,m-1;第二EOR电路树,用于当要被检测错误并且可能混有错误的代码的多项式表达为Y(x)时,相对于原代码C(x),根据Sn=Y(αn)生成检验子S0、S1、S2,其中把校验位添加到原代码,其中n=0,1,2;以及错误检测电路部件,用于根据是否满足检验子的方程式S12=S0S2来检测存在一个块错误、两个块错误还是没有错误,并且用于根据在伽罗瓦扩展域GF(2m)中的检验子的方程式S0αp=S1来检测块错误的位置p。
2. 如权利要求1所述的错误判断电路,其中所述错误检测电路部件包括通过指数部分 的相加来获得检验子的积S。S2的对数变换电路。
3. 如权利要求l所述的错误判断电路,进一步包括错误校正电路部件,用于根据从错误检测电路部件输出的两个块错误的位置和一个块 错误的位置来检测不少于一个块错误的位置,并且当满足检验子的方程式= S。S2时根据 检验子S。输出校正数据。
4. 如权利要求2所述的错误判断电路,进一步包括错误校正电路部件,用于根据从错误检测电路部件输出的两个块错误的位置和一个块 错误的位置来检测不少于一个块错误的位置,并且当满足检验子的方程式= S。S2时根据 检验子S。输出校正数据。
5. 如权利要求3所述的错误判断电路,其中所述错误校正电路部件输出其中针对一个 块错误校正错误的校正数据。
6. 如权利要求1所述的错误判断电路,其中m等于8。
7. 如权利要求6所述的错误判断电路,其中在第二 EOR电路树中输入的数据和校验位 被包括在通过相对于两个9字节存储器模块执行借助两次交织的两次读取作为一个单位 所获得的32字节的数据、3字节的校验位和1字节的额外数据中。
8. 如权利要求1所述的错误判断电路,其中k等于36。
9. 一种共享的存储器系统,其中连接多个节点,每个节点具有处理器、主存储器和高速 缓冲存储器,其中每个节点包括第一 EOR电路树,用于在使用(k, k-3)里德-索罗蒙代码的SmEC-DmED中,当P (x)是在 伽罗瓦域GF(2)中的m阶本原多项式、伽罗瓦扩展域GF(2"1)中的本原元素是a并且P(x) =0的根是a 1时,相对于m位块单元数据,通过在伽罗瓦扩展域GF(2m)中相加,由与受保 护以避免错误的原代码的多项式表达I(x)相关的多项式余项计算C(x) =x2I(X)modP(X) 来生成校正码的校验位,其中k是不超过2m的自然数,m是不小于8的自然数且i = O,..., m-l ;第二E0R电路树,用于当作为被检测错误的对象并且可能混有错误的代码的多项式表达为Y(x)时,相对于代码C(x),根据Sn = Y(0生成检验子S。、SpS2,其中把校验位添力口到原代码,其中n二0,l,2;以及错误检测电路部件,用于根据是否满足检验子的方程式S/ = S。&来检测存在一个块错误、两个块错误还是没有错误,并且用于根据在伽罗瓦扩展域GF(2m)中的检验子的方程式S。 a p = S工来检测块错误的位置p。
10. 如权利要求9所述的共享的存储器系统,其中所述错误检测电路部件包括用于通过指数部分的相加来获得检验子的积S。S2的对数变换电路。
11. 如权利要求9所述的共享的存储器系统,进一步包括错误校正电路部件,用于根据从错误检测电路部件输出的两个块错误的位置和一个块错误的位置来检测不少于一个块错误的位置,并且当满足检验子的方程式= S。S2时根据检验子S。输出校正数据。
12. 如权利要求10所述的共享的存储器系统,进一步包括错误校正电路部件,用于根据从错误检测电路部件输出的两个块错误的位置和一个块错误的位置来检测不少于一个块错误的位置,并且当满足检验子的方程式= S。S2时根据检验子S。输出校正数据。
13. 如权利要求11所述的共享的存储器系统,其中所述错误校正电路部件输出其中针对一个块错误校正错误的校正数据。
14. 如权利要求9所述的共享的存储器系统,其中m等于8。
15. 如权利要求14所述的共享的存储器系统,其中在第二 EOR电路树中输入的数据和校验位被包括在通过相对于主存储器中的多个9字节存储器模块当中的两个存储器模块执行借助两次交织的两次读取作为一个单位所获得的32字节的数据、3字节的校验位和1字节的额外数据中。
16. 如权利要求15所述的共享的存储器系统,其中1字节的额外数据是用于保持在每个节点的高速缓冲存储器中存储的数据的高速缓冲一致性的信息、用于数据保证的信息、用于保护存储器的信息中的任何一个。
17. 如权利要求15所述的共享的存储器系统,其中l字节的额外数据是在ccNUMA系统中所使用的目录信息。
18. 如权利要求9所述的共享的存储器系统,其中k等于36。
全文摘要
一种错误判断电路,包括第一EOR电路树,用于在使用里德-索罗蒙代码的SmEC-DmED中通过在伽罗瓦扩展域GF(2m)中相加,相对于m位块单元数据,通过与受保护以避免错误的原代码的多项式表达相关的多项式余项计算来生成校正码的校验位;第二EOR电路树,用于当要被检测错误并且可能混有错误的代码的多项式表达为Y(x)时,相对于代码C(x),根据Sn=Y(αn)生成检验子,其中把校验位添加到原代码;和错误检测电路部件,用于根据是否满足检验子方程式S12=S0S2来检测存在一个块错误、两个块错误还是没有错误。
文档编号G11C29/42GK101740135SQ20091021229
公开日2010年6月16日 申请日期2009年11月16日 优先权日2008年11月18日
发明者鹈饲昌树 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1