在线刊号(2278-8875)印刷版(2320-3765)
G.Boopathi拉贾1, Dr.M.Madheswaran2 |
有关文章载于Pubmed,谷歌学者 |
更多相关文章请访问国际电气、电子和仪器工程高级研究杂志
存储器负责任何数字电路,用于存储和检索特定时间所需的任何数据。编码和解码是负责读写的两个基本操作。如今,单事件干扰(seu)改变数字电路正成为存储应用中更大的问题。多数逻辑可解码码由于其纠正大量错误的能力而适用于存储器应用。然而,它们需要很长的解码时间,这会影响内存性能。本文提出的故障检测方法采用差分集循环码代替BCH码、汉明码、RS码等分组码。当数据读取没有错误时,这种方法可以显著减少内存访问时间。该技术利用多数逻辑解码器本身来检测故障,使面积开销最小化,并保持低的额外功耗。所提出的方法检测从存储器系统获得的接收码字中单错误、双错误、三重错误的发生。本文提出的故障检测方法使用了一类特殊的低密度奇偶校验码(LDPC),特别是差集循环码(DSCC),在读取数据没有错误的情况下,极大地减少了内存访问时间。
关键字 |
差集循环码(DSCC)、纠错码(ECC)、故障安全检测器(FSD)、低密度奇偶校验码(LDPC)、多数逻辑解码(MLD) |
介绍 |
使用ecc保护内存系统免受数据位的瞬态扰动。高速缓存是采用静态随机存取存储器(SRAM)设计的,因为它具有较高的存取速度。缓存访问周期非常快,延时很小。主存采用动态RAM (DRAM)设计,以实现更高的密度、更低的成本和更低的每比特功耗,如[1]。汉明码在当今的记忆系统中经常用于纠正单个错误和检测任何记忆词中的双重错误。在这些内存架构中,只有内存字中的错误是可以容忍的,而支持逻辑(即编码器和校正器)[2]中没有容忍错误的准备。 |
然而,组合逻辑已经开始表现出对软错误的敏感性,因此编码器和解码器(校正器)单元将不再免受瞬态故障的影响。此外,采用纳米技术设计的存储系统预计将经历更高的瞬态故障率;因此,保护使用纳米技术器件实现的存储系统支持逻辑就显得尤为重要。 |
在这里,我们提出了一个容错存储系统,通过使用特殊的代码,在每个存储码字中容忍多个错误,以及在编码器和校正器单元中容忍多个错误。 |
2ldpc (Low density parity check)码 |
在大型存储器阵列中,错误检测和修正码被广泛使用,以减少系统中噪声以及阿尔法粒子和宇宙射线扰动对比特翻转的影响。这个概念使用校验位和数据位来创建校验字。错误检测最简单的形式是使用奇偶校验位。一个额外的位被添加到数据中,表示单词中所有位的和(偶数或奇数奇偶校验)。如果任何位翻转,奇偶校验位将不再与数据匹配,并检测到错误。然而,不知道哪个位被翻转了,所以这个词无法更正。通过在单词中添加更多的检查位,可以创建更强大的检测和纠正代码。所需的校验位数是要保护的数据大小的函数。单错纠正/双错检测(SEC-DED)码是由汉明发明的。甚至实现了更强大的代码。 |
LDPC码有几个优点,这使得它们在许多通信应用[3],[4]中很受欢迎: |
(1)编码矩阵密度低, |
(2)易于迭代解码, |
(3)生成接近香农编码极限的大码字。 |
LDPC码定义为奇偶校验矩阵H的零空间,具有以下属性: |
1.每一行的ρ值都是1。 |
2.每一列都有γ个1。 |
3.任意两列(λ)之间共有的1的数量不大于1,即λ = 0或1。 |
4.相对于代码的长度和H中的行数,ρ和γ都很小。 |
由于ρ和γ与编码长度和矩阵H中的行数相比都非常小,H具有1的低密度。因此,H被称为低密度奇偶校验矩阵,由H定义的代码被称为低密度奇偶校验代码,[5],[6]。H (r)的密度被定义为H中1的总数与H中条目总数的比率——在这种情况下r = ρ/n = γ/J,其中J是H中的行数。这种LDPC码被称为(γ, ρ)-规则LDPC码。如果H中所有列或行的权值不相同,则称为不规则LDPC码。 |
3差分集循环代码 |
存在能够纠正大量随机错误的代码。然而,在实际的数据传输系统中很少使用这种代码,因为实现其功能(即实际纠正错误)所必需的设备通常非常复杂和昂贵。寻找简单实现的译码算法,或者说,可以用现有方法简单解码的代码,可能是当今编码理论中尚未解决的突出问题。dscc是一种具有较高纠错能力的单步ML解码码,是线性循环分组码[7]、[8]和[9]。 |
![]() |
由上述数学关系,可得以下结果: |
![]() |
IV.EXISTING方法 |
MLD基于许多彼此正交的奇偶校验方程,因此,在每次迭代中,每个码字位只参与一个奇偶校验方程,除了对所有方程有贡献的第一个比特。因此,这些奇偶校验方程的大部分结果决定了当前解码位[7]、[10]和[11]的正确性 |
图1描述了用于ML解码器的内存系统的通用原理图。最初,数据字被编码,然后存储在内存中。当读取内存时,码字然后通过ML解码器,然后发送到输出进行进一步处理。在这个解码过程中,数据字从存储在内存中可能遭受的所有位翻转中被纠正。 |
![]() |
实现这种解码器有两种方法。第一种被称为Type-I ML解码器,它根据综合症的异或组合确定需要更正的比特。第二种是Type-II ML解码器,它直接从码字位中计算出当前解码位的正确性信息。两者都非常相似,但当涉及到实施时,ii型使用更少的面积,因为它不计算综合征作为中间步骤。 |
A.普通ML解码器 |
ML解码器是一种简单而强大的解码器,能够根据奇偶校验方程的数量纠正多个随机位翻转。 |
它由四个部分组成: |
1)循环移位寄存器; |
2)异或矩阵; |
3)多数门;而且 |
4)用于校正解码中的码字位的异或,如图2所示。 |
![]() |
输入信号最初存储在循环移位寄存器中,并通过所有抽头进行移位。然后,每个敲击中的中间值用于从异或矩阵计算校验和方程的结果。在循环中,结果达到最后的敲击,产生输出信号(这是输入的解码版本)。如前所述,输入可能对应于由软错误损坏的错误数据。为了处理这种情况,解码器的行为如下。在将码字装入循环移位寄存器的初始步骤之后,通过计算异或矩阵中硬连接的奇偶校验方程开始解码。结果的总和然后被转发到多数门,以评估其正确性。如果接收到的1的数量大于0的数量,这将意味着正在解码的当前位是错误的,并且将触发一个纠正它的信号。否则,正在解码的位将是正确的,并且不需要对其进行额外的操作。 |
在下一步中,将旋转寄存器的内容,并重复上述过程,直到处理完所有码字位。最后,如果码字已正确解码,奇偶校验和应为零。 |
B.多数逻辑解码器/检测器(MLDD) |
另一种现有的方法是基于差分集循环码(DSCCs)。该代码是LDPC代码的一部分,根据它们的属性,它们具有以下属性: |
ï §纠正大量错误的能力; |
ï §稀疏编码、解码和检查电路可合成成简单的硬件; |
ï §模块化编码器和解码器块,允许有效的硬件实现; |
ï §系统的代码结构,用于内存中信息和代码位的干净分区。 |
关于DSCC的一个重要的事情是,它的系统分布允许ML解码器以一种简单的方式执行错误检测,使用奇偶校验和。然而,当多个错误在一个单词中累积时,该机制可能会出错,如下所述。 |
一般情况下,译码算法仍然与普通ML译码器版本中的译码算法相同。不同之处在于,所提出的方法不是在周期内处理ML解码来解码所有码字位,而是在第三个周期中间停止 |
如果在解码过程的前三个循环中,对所有{Bj}的XOR矩阵求值为â ' Â} 0,â ' Â,则确定码字是无错误的,并直接转发到输出。如果{Bj}在三个循环中包含至少一个âÂ′ 1,âÂ′Â,则现有方法将继续整个解码过程以消除错误。 |
![]() |
执行错误检测的附加硬件如上图所示: |
I)在第三个循环后未检测到错误时触发完成标志的控制单元 |
Ii)输出三态缓冲区。 |
输出三态缓冲器总是在高阻抗,除非控制单元发送完成信号,以便移位寄存器的电流值被转发到输出。控制单元管理检测进程。它使用一个计数最多为三的计数器,区分ML解码的前三次迭代。在前三个迭代中,控制单元通过将它们与OR1函数组合来计算。这个值被输入到一个三级移位寄存器中,该寄存器保存了最后三个周期的结果。在第三个周期中,OR2门评估检测寄存器的内容。当结果为Ã①Â′ 0时,Ã①Â′ FSM发出finish信号,表示所处理的字是无错误的。在另一种情况下,如果结果是âÂ′ 1,âÂ′Â, ML解码过程一直运行到结束。 |
V.PROPOSED方法 |
目前现有系统中存在的缺点是,它需要花费更多的周期来检测故障的存在,而且,如果接收到的码字是无错误的,那么输出码字必须进一步进行整个周期(即),因为一个码字包含N位,那么码字必须进行整个N周期才能获得输出。 |
![]() |
为了克服这些缺点,强烈建议使用检测逻辑,这是一种用于检测接收码字中是否存在错误的附加单元。检测逻辑单元在允许检测器/校正电路之前直接检测从存储器接收的码字。如果检测逻辑接收到的码字是无错误的,如果它被识别,那么码字直接进入输出端口。否则,如果是错误码字,则允许码字校正电路,并在第n个周期结束时获得校正输出。 |
例如,73位输入码字直接从内存单元应用到检测逻辑(DL)。DL检测从内存接收到的码字是否无错误。DL需要3个周期来检测错误的存在。如果检测到接收的码字是无错误的,那么该码字将直接应用到解码器单元,而不是MLDD单元。因此,对于接收73位正确的输入码字,Modified MLDD单元仅消耗3个周期的检测过程,在第三个周期结束时,解码器获得输出码字。如果检测到接收到的码字是错误的,则直接将码字发送到MLDD单元。MLDD单元需要73个周期来纠正错误的存在。因此,改进的MLDD单元减少了获得输出码字所需的循环次数。改进后的MLDD单元具有四比特翻转或更少的所有情况的能力。因为有五次比特翻转不是问题(因为奇数个错误总是可以纠正的)。 For the 73-bit codeword, it is capable of correcting up to four errors. For 273-bit and 1057-bit input codeword, the codes can correct up to 8 and 16 errors respectively. |
VI.SIMULATION结果 |
利用ModelSim SE 6.2b仿真工具对不同长度的码字进行仿真。多数逻辑检测器检测码字中出现的任何位翻转,对接收到的有N位的码字进行N步处理后。现有的多数逻辑检测器允许检测单个位翻转,两个位翻转和三个位翻转的数量。 |
存在的任何一点翻转发生在接收到的码字是有效地检测到年底只有一个¯害怕一个½¯害怕一个½¯害怕一个½¯害怕一个½¢周期。因此,即使是单个位翻转的检测,也有必要对N位码字继续进行N步。输入码字为73位的MLD单元、MLDD单元和改进后MLDD单元的仿真波形如下图所示: |
![]() |
![]() |
![]() |
结论 |
基于汉明码、RS码、EG码等有效的误码检测技术,在实际应用中采用了多种误码检测和纠错技术,但差分集循环码兼有线性分组码和循环码的特点,最适合应用于存储领域。这些编码不仅限于存储应用,还适用于其他一些领域,如数据存储、卫星广播、互联网、深空通信等。 |
参考文献 |
|