存储器单粒子多位翻转容错方法及电路与流程

文档序号:12609760阅读:722来源:国知局
存储器单粒子多位翻转容错方法及电路与流程

本发明属于集成电路抗辐照设计加固领域,尤其涉及一种存储器单粒子多位翻转容错方法及电路。



背景技术:

单粒子效应是指高能带电粒子在穿过微电子器件的灵敏区时,沉积能量,产生足够数量的电荷,这些电荷被器件电极收集后,造成器件逻辑状态的非正常改变或器件损坏,它是一种随机效应。除了空间高能粒子以外,各种核辐射、电磁辐射环境也是产生单粒子效应的主要原因。单粒子翻转是辐照环境下集成电路最常见的一种单粒子效应,它会导致存储数据的错误。

空间辐射环境中的高能粒子在芯片中引起的单粒子翻转事件严重威胁到空间飞行器电子系统的可靠性。特别是随着单位面积上器件的集成度不断提高,特征尺寸及工作电压不断降低,导致单粒子翻转事件所需的临界电荷越来越小,导致单粒子翻转事件发生的概率也越来越高。存储器作为指令和数据保存的核心器件,广泛应用于各类卫星,空间飞行器与探测器的电子系统中。处于空间环境的存储器件容易被太空环境中的各种射线或高能粒子击中,一旦存储器中发生单粒子翻转导致数据信息存储错误,可能会引起空间电子设备失效,甚至系统崩溃,造成空间任务失败。因此,提高存储器的抗单粒子翻转能力,对空间电子设备的生存能力至关重要。目前存储器的加固方法主要有两种:

工艺加固技术:工艺加固是指使用特殊的工艺流程和不同的工艺参数从而使器件具有良好的抗辐射特性,例如通过采用SOI(Silicon on Insulator)工艺,使用全介质隔离技术,可以有效减小重离子轨迹上的电荷收集量,从而达到提高抗单粒子翻转性能的目的。但抗辐照加固工艺成本高,可选择的工艺线少,集成度通常落后于商用工艺。

设计加固技术:相对于工艺加固,设计加固可以使用较先进的商用工艺生产线,从而使电子器件的成本更低、集成度更高、速度更快、功耗更低。目前纠错编码是一种不但可以检测错误而且还可以定位错误位置并进而纠正错误的一类编码,是半导体存储器的一种重要容错技术。汉明码是常用的纠错码,由于其简单,易于实现等特点在存储器中得到广泛使用。

目前的抗辐照存储器加固常用方案中,工艺加固可以有效减小单粒子轨迹上的电荷收集,但造价昂贵,可选择的工艺线少,集成度通常比商用工艺落后三代左右;纠错编码设计加固方案中,目前常用于存储器的扩展汉明码纠错能力较弱,难以满足深亚微米工艺存储器的可靠性需求。



技术实现要素:

(一)要解决的技术问题

本发明的目的在于提供一种存储器单粒子多位翻转容错方法及电路,提高了存储器抗单粒子翻转能力。

(二)技术方案

本发明提供一种存储器单粒子多位翻转容错方法,包括:

S1,向存储器写入数据时,将16位的输入数据A<15:0>进行编码,生成6位的校验位P<5:0>,并将所述校验位P<5:0>及对应的输入数据A<15:0>输入到所述存储器;

S2,从所述存储器读出数据时,分别读出与所述输入数据A<15:0>对应的16位存储数据A'<15:0>及与所述校验位P<5:0>对应的6位检验位P'<5:0>,将该存储数据A'<15:0>及该检验位P'<5:0>进行解码,生成6位纠错码S<5:0>,根据所述纠错码S<5:0>对所述存储数据A'<15:0>进行纠错,得到最终数据D<15:0>。

(三)有益效果

本发明提供的存储器单粒子多位翻转的容错方法,能对任意相邻两位错误数据纠正,与传统的扩展汉明码相比,在不增加校验位的条件下,将存储器抗单粒子翻转能力提高近一倍。

附图说明

图1是本发明提供的存储器单粒子多位翻转的容错方法的流程图。

图2是本发明提供的存储器单粒子多位翻转容错电路的结构示意图。

图3是本发明提供的存储器单粒子多位翻转容错电路中生成校验位P0的电路示意图。

图4是本发明提供的存储器单粒子多位翻转容错电路中生成纠错码S0的电路示意图。

图5是本发明提供的存储器单粒子多位翻转容错电路中存储数据位A'0与A'1的纠错电路示意图。

图6是本发明提供的存储器单粒子多位翻转容错电路中生成错误标志Error_flag的电路示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

本发明提供一种存储器单粒子多位翻转的容错方法,在数据写入时,通过编码器生成校验位,并将校验位存入存储器,在数据读出时,解码器根据校验位生成纠错码,通过此纠错码对读出的数据进行纠错,保证读出数据的正确性,提高了存储器抗单粒子翻转能力。

如图1所示,图1是本发明提供的存储器单粒子多位翻转的容错方法的流程图,该方法包括:

S1,写入数据时,将输入数据A<15:0>输入到编码器,编码器通过编码方程组对输入数据A<15:0>进行编码,生成校验位P<5:0>,

A<m:n>表示m-n+1位的二进制数据A,第一位到最后一位分别是An、An+1…Am。

其中,编码方程组为:

<mrow> <mi>P</mi> <mn>0</mn> <mo>=</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>10</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> <mo>;</mo> </mrow>

<mrow> <mi>P</mi> <mn>1</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>8</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>11</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>;</mo> </mrow>

<mrow> <mi>P</mi> <mn>2</mn> <mo>=</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>11</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> <mo>;</mo> </mrow>

<mrow> <mi>P</mi> <mn>3</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>;</mo> </mrow>

<mrow> <mi>P</mi> <mn>4</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>8</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>10</mn> <mo>;</mo> </mrow>

<mrow> <mi>P</mi> <mn>5</mn> <mo>=</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> <mo>;</mo> </mrow>其中,表示异或运算,再将校验位P<5:0>及对应的输入数据A<15:0>输入到存储器。

S2,读出数据时,存储器分别读出与所述输入数据A<15:0>对应的存储数据A'<15:0>及与所述校验位P<5:0>对应的检验位P'<5:0>,将读出的存储数据A'<15:0>及其对应的检验位P'<5:0>输入到解码器,解码器根据存储数据A'<15:0>及编码方程组计算出校验位P”<5:0>,再将计算出的校验位P”<5:0>与存储器中读出的校验位P'<5:0>作异或运算,得到所述纠错码S<5:0>,可以用如下方程式表示:

<mrow> <mi>S</mi> <mn>0</mn> <mo>=</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>10</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>0</mn> </mrow>

<mrow> <mi>S</mi> <mn>1</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>8</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>11</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>1</mn> </mrow>

<mrow> <mi>S</mi> <mn>2</mn> <mo>=</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>11</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>2</mn> </mrow>

<mrow> <mi>S</mi> <mn>3</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>3</mn> </mrow>

<mrow> <mi>S</mi> <mn>4</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>8</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>10</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>4</mn> </mrow>

<mrow> <mi>S</mi> <mn>5</mn> <mo>=</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>5</mn> </mrow>

将存储数据A'<15:0>及对应的纠错码S<5:0>输入到纠错电路;

纠错电路根据纠错码S<5:0>判断出存储数据A'<15:0>中的错误数据位,其中,错误数据位为一位数据位或两位相邻的数据位,对错误数据位进行取反操作,从而对存储数据A'<15:0>进行纠错,输出最终数据D<15:0>,本方法能对任意相邻两位错误数据纠正,与传统的扩展汉明码相比,在不增加校验位的条件下,将存储器抗单粒子翻转能力提高近一倍;另外,纠错电路还输出错误标志Error_flag,其中,错误标志Error_flag是二进制一位数据,S<5:0>等于0时,错误标志Error_flag为0,表示没有错误数据位,S<5:0>不等于0时,错误标志Error_flag为1,表示有错误数据位。

如图2所示,图2是本发明提供的存储器单粒子多位翻转容错电路的结构示意图,存储器单粒子多位翻转容错电路包括编码器、解码器及纠错电路,其中:

编码器通过编码方程组对输入数据A<15:0>进行编码,生成校验位 P<5:0>,其中,结合图3所示生成校验位中P0的逻辑门电路,编码方程组为:

<mrow> <mi>P</mi> <mn>0</mn> <mo>=</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>10</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> </mrow>

<mrow> <mi>P</mi> <mn>1</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>8</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>11</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> </mrow>

<mrow> <mi>P</mi> <mn>2</mn> <mo>=</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>11</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> </mrow>

<mrow> <mi>P</mi> <mn>3</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> </mrow>

<mrow> <mi>P</mi> <mn>4</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>8</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>10</mn> </mrow>

<mrow> <mi>P</mi> <mn>5</mn> <mo>=</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> </mrow>

再将校验位P<5:0>及对应的输入数据A<15:0>输入到存储器;

结合图4所示生成纠错码S0的逻辑门电路,解码器分别读出存储数据A'<15:0>及其对应的检验位P'<5:0>,根据存储数据A'<15:0>及编码方程组计算出校验位P”<5:0>,再将计算出的校验位P”<5:0>与存储器中读出的校验位P'<5:0>作异或运算,得到所述纠错码S<5:0>,可以用如下方程式表示:

<mrow> <mi>S</mi> <mn>0</mn> <mo>=</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>10</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>0</mn> </mrow>

<mrow> <mi>S</mi> <mn>1</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>8</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>11</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>1</mn> </mrow>

<mrow> <mi>S</mi> <mn>2</mn> <mo>=</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>11</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>2</mn> </mrow>

<mrow> <mi>S</mi> <mn>3</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>7</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>3</mn> </mrow>

<mrow> <mi>S</mi> <mn>4</mn> <mo>=</mo> <mi>A</mi> <mn>0</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>6</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>8</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>10</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>4</mn> </mrow>

<mrow> <mi>S</mi> <mn>5</mn> <mo>=</mo> <mi>A</mi> <mn>1</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>2</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>3</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>4</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>5</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>9</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>12</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>13</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>14</mn> <mo>&CirclePlus;</mo> <mi>A</mi> <mn>15</mn> <mo>&CirclePlus;</mo> <msup> <mi>P</mi> <mo>&prime;</mo> </msup> <mn>5</mn> </mrow>

将存储数据A'<15:0>及对应的纠错码S<5:0>输入到纠错电路;

结合图5所示对存储数据位A'0与A'1的进行纠错的逻辑门电路,纠错电路根据纠错码S<5:0>判断出存储数据A'<15:0>中的错误数据位,其中,错误数据位为一位数据位或两位相邻的数据位,对错误数据位进行取反操作,从而对存储数据A'<15:0>进行纠错,输出最终数据D<15:0>,本方法能对任意相邻两位错误数据纠正,与传统的扩展汉明码相比,在不增加校验位的条件下,将存储器抗单粒子翻转能力提高近一倍。

结合图6所示生成错误标志Error_flag的逻辑门电路,纠错电路还输 出错误标志Error_flag,其中,S<5:0>等于0时,错误标志Error_flag为0,表示没有错误数据位,S<5:0>不等于0时,错误标志Error_flag为1,表示有错误数据位。

值得注意的是,由于将校验位P<5:0>也作为数据输入到存储器,读出校验位时也可能出现数据位错误,故纠错码S<5:0>不仅可以对存储数据A'<15:0>进行纠错,还可以对读出的校验位P'<5:0>进行纠错,同样,也能对任意相邻两位错误数据纠正。如表格1和表格2所示,表格1是纠错码与一位错误位置的对应关系,表格2是纠错码与一位错误位置的对应关系:

表1 纠错码与一位错误位置的对应关系

表2 纠错码与两位相邻错误位置的对应关系

根据纠错码与错误位置对应关系表可以设计出纠错电路,例如,当数据位A'<0>出现错误时,生成的纠错码S<5:0>=011010,此时纠错电路将 数据位A'0取反,其它数据位保持不变,输出正确数据,如果数据位A'0与A'1同时出现错误,则生成的纠错码为S<5:0>=111001,此时纠错电路将数据位A'0与A'1取反,其它数据位保持不变,输出正确数据,其它数据位类似,这里就不在赘述。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1