本发明专利技术公开了一种基于汉明码对静态随机存储器多位翻转进行容错的方法,该方法包括:在静态随机存储器上采用汉明码进行编解码;采用两块完全相同的带汉明码编解码的静态随机存储器实现并行输入输出;以及在该两块静态随机存储器的输出端连接一个双模输出选择电路。本发明专利技术对于高能粒子造成的SRAM多比特位翻转具有一定的容忍性,且由于无需刷新或更新,大大提高了系统的速度。
【技术实现步骤摘要】
本专利技术涉及对静态随机存储器(SRAM)容错
,尤其涉及一种基于汉明码对SRAM多位翻转进行容错的方法。
技术介绍
静态随机存储器(SRAM)是航天器电子学系统重要的组成部分,对SRAM受空间高能粒子影响的研究是充分认识粒子效应机制和开展对其他类型器件研究的基础。通过研究 SRAM的粒子效应,为航天器电子学系统的运行寿命评估及加固设计提供重要参考依据。SRAM的核心部分是存储单元阵列,里面存储的往往是数据或指令。由于受到空间高能粒子的影响,存储单元里面的内容将会发生翻转,导致SRAM输出的数据或指令错误, 致使系统采集到错误的数据或指令,轻则导致系统功能中断,重则会导致系统烧毁。因此有必要加强SRAM抗干扰的容错能力,尤其是抗多位翻转的能力。目前,已有许多编解码技术应用到SRAM容错技术上,比如CRC码、汉明码和RS码等,其中汉明码的应用比较普遍。但汉明码存在的问题是只能实现一个字节中单位错误的检测和纠正以及双位错误的检测,对于双位及以上的多位错误时,无法纠正错误,系统是通过刷新或内建自更新措施来纠正多位错误的。而且,由于汉明码并不直接纠正SRAM内部保存的错误内容,因此错误还会出现累积。实际中,对SRAM来说,在空间中由于高能粒子引起SRAM的位翻转绝大多数情况下是发生单错和双错,三错及以上错误的概率很小。如果每次都采用系统刷新或自更新的方法会给系统带来很大的延时,并占用系统的时序资源,降低系统速度。
技术实现思路
(一)要解决的技术问题有鉴于此,为了有效解决SRAM多位翻转的问题,同时兼顾系统的速度,本专利技术提出了一种基于汉明码对SRAM多位翻转进行容错的方法。( 二 )技术方案为了达到上述目的,本专利技术提供了一种,该方法包括在静态随机存储器上采用汉明码进行编解码;采用两块完全相同的带汉明码编解码的静态随机存储器实现并行输入输出;以及在该两块静态随机存储器的输出端连接一个双模输出选择电路。上述方案中,所述在静态随机存储器上采用汉明码进行编解码,具体包括在写入数据时,所有的数据位先进入编码器进行编码,然后把原始数据位和编码位都写入存储单元;在读出数据时,把原始数据和编码位同时输入到解码器,最终输出数据,并在输出端设置单位错误和双位错误的标志信号。上述方案中,所述编码满足公式2k彡m+k+1,其中m+k是码字中的全部位数,m是原码字的位数,k是码字中检测位的位数;编码块计算位于码字中第1,2,4,…,2(H)位置的校验位。对于8位数据,需要4位校验位(cl,c2,c3,c4),这样汉明码才能检测和纠正一个比特的错误;如果要检测两个比特的错误,则还要增加一位校验位c5。对于13位的编码码字,m = 8,k = 5,校验位cl,c2,c3,c4分别位于1,2,4和8的位置,校验位c5放置在最后,即第13的位置上;校验位用于提供出现错误的位置信息。所述校验位cl由位组{1,3, 5,7,9,11}异或生成,校验位c2由位组{2,3,6,7,10,11}异或生成,校验位c3由位组{4, 5,6,7,12}异或生成,校验位c4由位组{8,9. 10,11,12}异或生成,校验位c5由位组{1,2, 3,4,5,6,7,8,9,10,11,12}异或生成。上述方案中,所述解码过程中,检验位el是由位组{cl,l,3,5,7,9,ll}异或来获得,检验位e2是由位组{c2,2,3,6,7,10,ll}异或来获得,检验位e3是由位组{c3,4,5,6, 7,12}异或来获得,检验位e4是由位组{c4,8,9. 10,11,12}异或来获得,检验位e5是由位组{c5,l,2,3,4,5,6,7,8,9,10,ll,12}异或来获得。上述方案中,所述采用两块完全相同的带汉明码编解码的静态随机存储器实现并行输入输出,是采用双模备份的方式。上述方案中,所述在该两块静态随机存储器的输出端连接一个双模输出选择电路,该双模输出选择电路输入端分别连接两块带汉明码编解码的SRAM的输出端,该双模输出选择电路输出端作为最终的输出。所述双模输出选择电路是根据每个模块输出的标志位来判断,当其中一个模块直接发生双错或单错积累时,而另一个模块只出现一位错误或无错误时,输出选择器选择错误较少的模块来保证功能的正确性;当选择器检测到两个模块都存在双位错误时,在输出端给出双模双错的标志信号,这种情况下再由系统进行刷新。(三)有益效果从上述技术方案可以看出,本专利技术具有以下有益结果本专利技术提供的,通过把两种加固方法结合的方式,先在SRAM上采用汉明码编解码保护,然后再在这个基础上采用双模保护来解决受高能粒子影响的问题。相对于传统的加固方式,由于采用双模的方式,避免了系统的刷新或自更新,有效的提高了系统的速度。同时对于多比特位的翻转具有一定的容忍性。附图说明图1是依照本专利技术实施例在基于U8X36bit的SRAM上采用汉明码编解码的示意图。图2是依照本专利技术实施例在基于U8X36bit的SRAM采用汉明码编解码方法的基础上再采用双模备份的示意图。图3是依照本专利技术实施例在基于1 X 36bit的SRAM上采用汉明码编解码和双模备份两种抗单粒子多位翻转方法的示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术进一步详细说明。本专利技术提供的,该方法首先在SRAM上采用汉明码进行编解码,其次采用两块完全相同的带汉明码编解码的SRAM实现并行输入输出,以及在该两块SRAM的输出端连接一个双模输出选择电路。在SRAM上采用汉明码进行编解码来抵抗高能粒子造成的单比特位翻转。由于高能粒子引起的位翻转存在积累效应,如果每次都采用系统刷新或自更新的方法会给系统带来很大的延时。为了解决这一问题,在上述方法的基础上再采用双模备份的方案,即采用两块完全相同的带汉明码编解码的SRAM实现并行输入输出,当其中一个模块发生错误积累, 而另一个模块只出现一位错误或无错误时,SRAM在输出端选择错误较少的模块来保证功能的正确性。进一步地,在该两块SRAM的输出端连接一个双模输出选择电路,该电路输入端分别连接两块带汉明码编解码的SRAM的输出端,其输出端则是SRAM最终的输出。其中,所述在SRAM上采用汉明码进行编解码,具体包括在写入数据时,所有的数据位先进入编码器进行编码,然后把原始数据位和编码位都写入存储单元;在读出数据时, 把原始数据和编码位同时输入到解码器,最终输出数据,并在输出端设置单位错误和双位错误的标志信号。编码的原理如下编码要满足公式2k彡m+k+1,其中m+k是码字中的全部位数,m 是原码字的位数,k是码字中检测位的位数。编码块计算位于码字中第1,2,4,…,20^位置的校验位。例如,对于8位数据,需要4位校验位(cl,c2, c3, c4),这样汉明码才能检测和纠正一个比特的错误。如果要检测两个比特的错误,则还要增加一位校验位c5。对于13 位的编码码字(m = 8,k = 5),校验位cl,c2,c3,c4分别位于1,2,4和8的位置,c5放置在最后,即第13的位置上。校验位可以提供出现错误的位置信息。编码位cl由位组{1,3, 5,7,9,11}异或生成,编码位c2由位组{2,3,6,7,10,11}异或生成本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:杨献,王雷,刘海南,蒋见花,黑勇,周玉梅,
申请(专利权)人:中国科学院微电子研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。