CN103700396B - 一种面向sram的抗seu错误累积的控制器及方法 - Google Patents

一种面向sram的抗seu错误累积的控制器及方法 Download PDF

Info

Publication number
CN103700396B
CN103700396B CN201310648233.8A CN201310648233A CN103700396B CN 103700396 B CN103700396 B CN 103700396B CN 201310648233 A CN201310648233 A CN 201310648233A CN 103700396 B CN103700396 B CN 103700396B
Authority
CN
China
Prior art keywords
circleplus
memory access
sram
treater
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310648233.8A
Other languages
English (en)
Other versions
CN103700396A (zh
Inventor
陈庆宇
艾刁
王雯
唐威
吴龙胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
771 Research Institute of 9th Academy of CASC
Original Assignee
771 Research Institute of 9th Academy of CASC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 771 Research Institute of 9th Academy of CASC filed Critical 771 Research Institute of 9th Academy of CASC
Priority to CN201310648233.8A priority Critical patent/CN103700396B/zh
Publication of CN103700396A publication Critical patent/CN103700396A/zh
Application granted granted Critical
Publication of CN103700396B publication Critical patent/CN103700396B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种面向SRAM的抗SEU错误累积的控制器及方法,包括:寄存器组、访存信息生成电路、访存状态转移控制电路、校验码解码模块、rdata寄存器、多路选择器、EDAC编码模块、pdata寄存器、wdata寄存器。当处理器进行访问主存之外的其它操作时,由处理器的存储器控制器自主的对所有的存储单元进行遍历式的读→校验→回写操作,遍历式刷新操作以最基本的SRAM存储单元为单位,每当完成一个存储单元的刷新操作,刷新地址递增,控制状态机回到空闲态,重新检测处理器是否存在访存操作。本发明充分利用系统的空闲时间,在不影响处理器性能的基础上,避免了SRAM存储单元的SEU错误累积。

Description

一种面向SRAM的抗SEU错误累积的控制器及方法
技术领域
本发明专利属于容错技术领域,涉及一种面向SRAM的抗SEU错误累积的控制器及方法。
背景技术
SRAM(StaticRandomAccessMemory),即静态随机访问存储器,其主要优点如下:(1)不需要刷新就可以保持数据;(2)读写访问周期短。在相同的条件下,SRAM比DRAM具有更高的性能和可靠性,在航天、航空等实时性要求较高的电子系统中应用广泛。
随着SRAM制造工艺的进步、核心电压的降低,SRAM在恶劣环境下发生单粒子翻转(Single-eventUpset,SEU)的可能性迅速提高。目前的工程实践证明,SEU是空间环境中发生概率最高的一类软错误,且SEU在SRAM中只引起一个Bit位的翻转。
为了保证SRAM使用过程中的可靠性,系统设计人员多采用基于汉明码的纠一检二码(single-errorcorrectionanddouble-errordetection,SEC-DEC)对SRAM中出现的SEU错误进行纠正。然而,纠错码的纠检错操作并不是实时进行的,因此当SRAM存储体中由SEU引起的错误Bit位出现累积,且超过SEC-DEC的纠检错能力时,将无法保证SRAM中指令或者数据的正确性,最终导致数字系统的故障、甚至瘫痪。
目前,主要采用两种刷新(scrubbing)技术避免SEU效应引起的错误在SRAM中的累积,这里刷新的定义为对存储单元进行读→校验→回写的过程。这两种技术为定时刷新(deterministicscrubbing)和概率刷新(probabilisticscrubbing),(1)定时刷新:每经过一定的刷新间隔,处理器对SRAM的所有存储单元进行一次刷新操作。(2)概率刷新:处理器对SRAM某存储单元进行读操作时,会进行校验,如果发生可纠正的错误,则进行回写操作。
定时刷新技术中,如果两次刷新操作之间的时间间隔过大,则无法有效避免SEU错误积累,如果时间间隔较小,则严重降低了系统性能,该技术已经不能满足当前电子系统的实时性应用要求。概率刷新技术已经取得工程应用,在一定程度上解决了SEU积累的问题,如空间计算机抗单粒子翻转的存储器纠检错自动回写方法(ZL200510041617.9)、一种存储器抗单粒子翻转的纠错检错方法(ZL200810112421.8)。然而,概率刷新技术只能针对发生读操作的存储单元进行刷新操作,对于长时间不进行读操作的SRAM存储单元无法进行刷新,因此无法避免部分SRAM存储单元(不进行读操作的SRAM存储单元)的SEU错误不断累积。
发明内容
本发明解决的技术问题在于提供一种面向SRAM的抗SEU错误累积的控制器及方法,充分利用系统的空闲时间,在不影响处理器性能的基础上,避免了SRAM存储单元的SEU错误累积。
本发明专利是通过以下技术方案来实现:
一种面向SRAM的抗SEU错误累积的控制器,在片内总线和外部总线之间设置存储器控制器,该存储器控制器包括:
寄存器组,为存储器控制器的控制寄存器,处理器通过片内总线对其进行读写操作,寄存器组生成访存控制信息并输出连接至访存信息生成电路;
访存信息生成电路,其输入来自片内总线和寄存器组,输出访存操作信号组合并连接至访存状态转移控制电路;访存操作信号组合包括处理器的读标志信号、写标志信号和数据纠检错使能信号,当处理器进行读操作时,读标志信号有效,当处理器进行写操作时,写标志信号有效;当处理器未进行读写操作时,读标志信号、写标志信号均无效,若寄存器组中的EDAC使能,则数据纠检错使能信号有效,否则无效;
访存状态转移控制电路,其输入来自访存信息生成电路和校验码解码模块,输出与外部总线、校验码解码模块及多路选择器的控制端连接;当寄存器组中的EDAC使能时,访存状态转移控制电路输出给校验码解码模块的检验使能信号有效,校验码解码模块进行数据校验,并将校验结果输出至访存状态转移控制电路,当出现可纠正错误时,访存状态转移控制电路的输出单错标志信号有效(高电平),单错标志信号连接至多路选择器的控制端;当访存状态转移控制电路在读状态或写状态时,输出SRAM的片选信号、读写信号及地址信息至外部总线;
校验码解码模块,将取自外部总线的数据及其校验位进行校验,并将数据输出至rdata寄存器,将校验结果输出至访存状态转移控制电路;
rdata寄存器,其输出连接至多路选择器的输入端和片内总线;
多路选择器,输入分别来自片内总线和rdata寄存器,输出至wdata寄存器和EDAC编码模块;当来自访存状态转移控制电路的单错标志信号有效时,选择rdata寄存器的数据输出,否则输出内部总线的数据;
EDAC编码模块,将来自多路选择器的数据按规则编码,并将七位校验码输出至pdata寄存器;
wdata寄存器,将多路选择器输出的数据经过寄存后,输出至外部总线;
pdata寄存器,将EDAC编码模块的数据经过寄存器后,输出至外部总线。
当处理器对主存进行读操作时,由存储器控制器自主的对读操作的存储单元进行读→校验→回写的刷新操作;当处理器进行访主存以外的其它操作时,由存储器控制器自主的对所有的存储单元进行遍历式的读→校验→回写的刷新操作。
一种基于所述面向SRAM的抗SEU错误累积的控制器的控制方法,包括以下操作:
Step1:当访存状态转移控制电路在空闲时,存储器控制器检测处理器是否存在针对SRAM的读写访存操作;
Step2:检测是否存在处理器读操作,如果没有读操作,执行Step3;否则转向Step10;
Step3:检测是否存在处理器写操作,如果没有写操作,执行Step4;否则转向Step15;
Step4:访存状态转移控制电路进入SRAM遍历刷新读操作状态,进行遍历刷新的读操作,根据刷新地址读取SRAM对应地址的数据D和校验位B,并将其发送到校验码解码模块;
Step5:校验码解码模块根据Step4读出的数据D,按校验码生成方程组计算其校验位B1,对比B和B1,得出校验结果U并发送给访存状态转移控制电路,U=U0∪U1∪U2,U0表示无错,U1表示可纠正的单错,U2表示不可纠正的多位错误;
Step6:访存状态转移控制电路判断Step5的校验结果U是否属于U0,若U∈U0,则刷新地址加0x4,执行Step7,否则执行Step8;
Step7:访存状态转移控制电路跳转回空闲状态,结束;
Step8:判断U是否属于U1,若U∈U1,执行Step9,否则刷新地址加0x4,转向执行Step7;
Step9:刷新地址不变,访存状态转移控制电路进入SRAM刷新写操作状态,进行遍历刷新的写操作,根据刷新地址将校验码解码模块校验后的数据和校验位写入对应存储单元,写入完成后,访存状态转移控制电路刷新地址加0x4,通过计数器对时间倒计,计数器倒计为0后,转向执行Step7;
Step10:访存状态转移控制电路进入SRAM读操作状态,进行处理器的读操作,并根据处理器访存地址读取对应地址的数据D和校验位B;
Step11:根据Step10读出的数据D,按校验码生成方程组计算其校验位B1,对比B和B1,得出校验结果U,U=U0∪U1∪U2,U0表示无错,U1表示可纠正的单错,U2表示不可纠正的多位错误;
Step12:判断Step11的校验结果U是否属于U0,若U∈U0,则访存状态转移控制电路返回空闲状态,结束访问,否则执行Step13;
Step13:判断Step11的校验结果U是否属于U1,若U∈U1,则状态机进入SRAM读操作状态,执行概率刷新的写入操作,将校验后的数据和校验位根据处理器访问地址写入特定的SRAM的存储单元,否则执行Step14;
Step14:访存状态转移控制电路进入ERROR状态,向处理器返回错误信息;错误处理完毕,访存状态转移控制电路返回空闲状态,结束;
Step15:访存状态转移控制电路转入SRAM读操作状态,根据处理器的访问地址,将数据和校验位写入到指定的SRAM存储单元,完成SRAM的写操作;SRAM的写操作完成后,状态机返回IDLE状态,结束。
所述的访存操作信号组合包括处理器的读标志信号、写标志信号和数据纠检错使能信号,当处理器进行读操作时,读标志信号有效,当处理器进行写操作时,写标志信号有效;当处理器未进行读写操作时,读标志信号、写标志信号均无效,若寄存器组中的EDAC使能,则数据纠检错使能信号有效,否则无效。
遍历式刷新操作以最基本的SRAM存储单元为单位,每当完成一个存储单元的刷新操作,刷新地址递增,存储器控制器回到空闲态,重新检测处理器是否存在访存操作;当遍历式刷新操作被处理器的访存操作打断时,由硬件保证刷新地址不变,再次进行遍历式刷新操作时,需从上次被打断的刷新地址开始。
所述的校验码生成方程组是根据32位数据C,生成7位校验位B,其中,C={c1c2…c32},B={b1b2…b7},具有纠一检二的校验能力,具体如下:
b 1 = c 1 ⊕ c 2 ⊕ c 3 ⊕ c 4 ⊕ c 5 ⊕ c 6 ⊕ c 7 ⊕ c 8 ⊕ 9 ⊕ c 19 ⊕ c 20 ⊕ c 21 ⊕ c 22 ⊕ c 23 ⊕ c 24 b 2 = c 1 ⊕ c 2 ⊕ c 3 ⊕ c 4 ⊕ c 5 ⊕ c 10 ⊕ c 13 ⊕ c 14 ⊕ c 16 ⊕ c 17 ⊕ c 18 ⊕ c 25 ⊕ c 26 ⊕ c 27 b 3 = c 1 ⊕ c 6 ⊕ c 10 ⊕ c 11 ⊕ c 16 ⊕ c 17 ⊕ c 18 ⊕ c 19 ⊕ c 20 ⊕ c 21 ⊕ c 28 ⊕ c 29 b 4 = c 2 ⊕ c 6 ⊕ c 7 ⊕ c 10 ⊕ c 11 ⊕ c 12 ⊕ c 13 ⊕ c 22 ⊕ c 23 ⊕ c 25 ⊕ c 26 ⊕ c 30 ⊕ c 31 b 5 = c 3 ⊕ c 7 ⊕ c 8 ⊕ c 11 ⊕ c 12 ⊕ c 13 ⊕ c 14 ⊕ c 16 ⊕ c 19 ⊕ c 24 ⊕ c 27 ⊕ c 28 ⊕ c 30 ⊕ c 32 b 6 = c 4 ⊕ c 8 ⊕ c 9 ⊕ c 12 ⊕ c 14 ⊕ c 15 ⊕ c 17 ⊕ c 20 ⊕ c 22 ⊕ c 25 ⊕ c 28 ⊕ c 29 ⊕ c 31 ⊕ c 32 b 7 = c 5 ⊕ c 9 ⊕ c 15 ⊕ c 18 ⊕ c 21 ⊕ c 23 ⊕ c 24 ⊕ c 26 ⊕ c 27 ⊕ c 29 ⊕ c 30 ⊕ c 31 ⊕ c 32
所述的对比校验码B和B1是按位进行异或运算。
校验码解码模块将校验后的数据和校验位写入rdata寄存器,并发送给多路选择器;访存状态转移控制电路发送高电平的单错标志信号给多路选择器,多路选择器选择rdata寄存器发送的信号给EDAC编码模块和wdata寄存器,然后将校验码解码模块校验后的数据和校验位写入刷新地址对应的存储单元。
与现有技术相比,本发明具有以下有益的技术效果:
本发明提供的面向SRAM的抗SEU错误累积的控制器及方法,在处理器进行读主存操作(即处理器对外部SRAM进行读操作)时,由存储器控制器自主的(即不需处理器干预)对SRAM进行概率刷新(probabilisticscrubbing),当处理器进行其它操作(处理器执行除访存操作之外的其它指令)时,由储器控制器自主的对SRAM的所有存储器单元进行遍历式刷新操作。本发明提供了一种遍历式刷新机制,该机制为某些SRAM存储单元(处理器长时间未对其进行读操作的存储单元)提供了刷新机会,提高了SRAM整体的抗SEU错误累积的能力。而现有的概率刷新(probabilisticscrubbing)技术只能刷新进行读操作的SRAM单元。
本发明提供的面向SRAM的抗SEU错误累积的控制器及方法,所采用的遍历式刷新机制充分考虑了计算机的局部性原理提出的处理器访存不均匀的特点,利用处理器进行其它操作的时间(即存储器控制器的空闲时间),插入针对所有SRAM单元的刷新操作,在基本不会降低处理器的性能的前提下,为长时间不被访问的SRAM单元提供了避免SEU累积的刷新机制。现有的定时刷新(deterministicscrubbing)技术会打断处理器正常执行、占用处理器执行时间,才可以对SRAM的全部存储单元进行刷新。
本发明提供的面向SRAM的抗SEU错误累积的控制器及方法,在基本不增加硬件成本、不降低整体系统性能的基础上,提供了一种有效的抗SEU错误累积的方法,提高了存储系统的可靠性。
附图说明
图1为本发明的存储器控制器电路示意图;
图2为本发明的面向SRAM的抗SEU错误累积方法的控制流程图;
图3为访存状态转移电路的状态转换图;
图4为存储器空闲状态下的遍历式刷新结果图。
具体实施方式
下面结合附图对本发明专利做进一步详细描述,所述是对本发明的解释而不是限定。
如图1所示,一种面向SRAM的抗SEU错误累积的控制器,在片内总线和外部总线之间设置自动执行刷新动作的存储器控制器,当处理器对主存进行读操作时,由微处理器的存储器控制器自主的(即不需处理器干预)对读操作的存储单元进行读→校验→回写的刷新操作;当处理器进行访主存之外的其它操作时,由微处理器的存储器控制器自主的(即不需处理器干预)对所有的存储单元进行遍历式的读→校验→回写操作,这种方法充分利用系统的空闲时间,在不影响处理器性能的基础上,避免了SRAM存储单元的SEU错误累积。
该存储器控制器包括:寄存器组、访存信息生成电路、访存状态转移控制电路、校验码解码模块、rdata寄存器、多路选择器、EDAC编码模块、pdata寄存器、wdata寄存器。
所述寄存器组,为存储器控制器的控制寄存器,处理器通过片内总线发出处理器读写信号100对其进行读写操作,寄存器组生成访存控制信息102并输出连接至访存信息生成电路;
所述访存信息生成电路,其输入来自片内总线(处理器读写信号100)和寄存器组,输出通过访存操作信号组合109连接至访存状态转移控制电路。
访存操作信号组合109包含处理器的读标志信号、写标志信号、数据纠检错使能信号。当处理器进行读操作时,读标志信号有效;当处理器进行写操作时,写标志信号有效;当处理器未进行读写操作时,读写标志信号均无效,若寄存器组中的EDAC使能,那么数据纠检错使能信号有效,否则无效。
所述访存状态转移控制电路,其输入来自校验码解码模块和访存信息生成电路,输出与外部总线、校验码解码模块及多路选择器的控制端连接。
当寄存器组中的EDAC使能时(有效),访存状态转移控制电路的输出检验使能信号105有效,校验码解码模块进行数据校验,并将校验结果输出至访存状态转移控制电路,当出现可纠正错误时,访存状态转移控制电路连接至多路选择器控制端输出单错标志信号110有效,连接至路选择器的控制端。当访存状态转移控制电路在读写状态时,将输出SRAM片选信号106、读写信号107及地址信号111(在不同的时刻分别对应刷新地址或访存地址)至外部总线。
所述校验码解码模块,将取自外部总线的数据及其校验位进行校验,并将数据输出至rdata寄存器,将校验结果108输出至访存状态转移控制电路。
所述rdata寄存器,其输出连接至多路选择器的输入端和内部总线。
所述多路选择器,输入分别来自内部总线和rdata寄存器,输出至wdata寄存器和EDAC编码模块。
当访存状态转移控制电路的输出单错标志信号110为高电平时,选择rdata寄存器的数据输出;否则输出内部总线的数据。
所述EDAC编码模块,将来自多路选择器的数据按一定规则编码,然后将七位校验码输出至pdata寄存器。
所述wdata寄存器,将多路选择器输出的数据经过寄存后,输出至外部总线。
所述pdata寄存器,将EDAC编码模块的数据经过寄存器后,输出至外部总线。
图1所示的存储器控制器电路中EDAC编码模块和校验位解码模块采用基于萧码的编码规则对数据进行校验。该编码规则对32位数据产生7位校验位,且可以保证可靠的数据的纠一检二,不会在数据的纠一检二过程中出现类似于汉明码的误纠现象。设C(c1,c2,…,c32)为32位信息码,B(b1,b2,…,b7)为7位校验码,校验码生成方程组如下所示:
b 1 = c 1 ⊕ c 2 ⊕ c 3 ⊕ c 4 ⊕ c 5 ⊕ c 6 ⊕ c 7 ⊕ c 8 ⊕ 9 ⊕ c 19 ⊕ c 20 ⊕ c 21 ⊕ c 22 ⊕ c 23 ⊕ c 24 b 2 = c 1 ⊕ c 2 ⊕ c 3 ⊕ c 4 ⊕ c 5 ⊕ c 10 ⊕ c 13 ⊕ c 14 ⊕ c 16 ⊕ c 17 ⊕ c 18 ⊕ c 25 ⊕ c 26 ⊕ c 27 b 3 = c 1 ⊕ c 6 ⊕ c 10 ⊕ c 11 ⊕ c 16 ⊕ c 17 ⊕ c 18 ⊕ c 19 ⊕ c 20 ⊕ c 21 ⊕ c 28 ⊕ c 29 b 4 = c 2 ⊕ c 6 ⊕ c 7 ⊕ c 10 ⊕ c 11 ⊕ c 12 ⊕ c 13 ⊕ c 22 ⊕ c 23 ⊕ c 25 ⊕ c 26 ⊕ c 30 ⊕ c 31 b 5 = c 3 ⊕ c 7 ⊕ c 8 ⊕ c 11 ⊕ c 12 ⊕ c 13 ⊕ c 14 ⊕ c 16 ⊕ c 19 ⊕ c 24 ⊕ c 27 ⊕ c 28 ⊕ c 30 ⊕ c 32 b 6 = c 4 ⊕ c 8 ⊕ c 9 ⊕ c 12 ⊕ c 14 ⊕ c 15 ⊕ c 17 ⊕ c 20 ⊕ c 22 ⊕ c 25 ⊕ c 28 ⊕ c 29 ⊕ c 31 ⊕ c 32 b 7 = c 5 ⊕ c 9 ⊕ c 15 ⊕ c 18 ⊕ c 21 ⊕ c 23 ⊕ c 24 ⊕ c 26 ⊕ c 27 ⊕ c 29 ⊕ c 30 ⊕ c 31 ⊕ c 32
如图2所示,一种面向SRAM的抗SEU错误累积方法的控制方法,包括以下操作:
Step1:当访存状态转移控制电路在IDLE态(空闲)时,存储器控制器检测处理器是否存在针对SRAM的读写访存操作,具体由根据访存信息生成电路发来的访存操作信号组合109来判断;
访存操作信号组合109包含处理器的读标志信号、写标志信号、数据纠检错使能信号。当处理器进行读操作时,读标志信号有效;当处理器进行写操作时,写标志信号有效;当处理器未进行读写操作时,读写标志信号均无效,若寄存器组中的EDAC使能,那么数据纠检错使能信号有效,否则无效
Step2:检测是否存在处理器读操作,如果没有读操作,执行Step3;否则转向Step10;
Step3:检测是否存在处理器写操作,如果没有写操作,执行Step4;否则转向Step15;
Step4:访存状态转移控制电路的状态机进入SRAM遍历刷新读操作状态(scurd),进行遍历刷新的读操作,根据刷新地址读取SRAM对应地址的数据D和校验位B,并将其发送到校验码解码模块;
Step5:校验码解码模块根据Step4读出的数据D,按校验码生成方程组计算其校验位B1,对比B和B1,得出校验结果U(U=U0∪U1∪U2,U0表示无错,U1表示可纠正的单错,U2表示不可纠正的多位错误)并发送给访存状态转移控制电路;
Step6:访存状态转移控制电路判断Step5的校验结果U是否属于U0,若U∈U0,那么刷新地址加0x4,执行Step7,否则执行Step8;
Step7:访存状态转移控制电路的状态机跳转回IDLE状态,结束;
Step8:判断U是否属于U1,若U∈U1,执行Step9,否则刷新地址加0x4,转向执行Step7;
Step9:刷新地址不变,访存状态转移控制电路状态机进入SRAM刷新写操作状态(scuwr),进行遍历刷新的写操作,根据刷新地址将校验码解码模块校验后的数据和校验位写入对应存储单元,写入完成后,访存状态转移控制电路刷新地址加0x4通过计数器对时间倒计,计数器倒计为0后,转向执行Step7;
校验码解码模块将校验后的数据和校验位写入rdata寄存器,并发送给多路选择器;
访存状态转移控制电路发送信号给多路选择器,多路选择器选择rdata寄存器发送的信号给EDAC编码模块和wdata寄存器,然后将校验码解码模块校验后的数据和校验位写入对应存储单元;
Step10:状态机进入SRAM读操作状态(b32rd),进行处理器的读操作,根据处理器访存地址读取对应地址的数据D和校验位B;
Step11:根据Step10读出的数据D,按校验码生成方程组计算其校验位B1,对比B和B1,得出校验结果U(U=U0∪U1∪U2,U0表示无错,U1表示可纠正的单错,U2表示不可纠正的多位错误);
Step12:判断Step11的校验结果U是否属于U0,若U∈U0,则状态电路返回IDLE状态,结束访问,否则执行Step13;
Step13:判断Step11的校验结果U是否属于U1,若U∈U1,则状态机进入SRAM读操作状态(b32wr),执行概率刷新的写入操作,将校验后的数据和校验码根据处理器访问地址写入特定的SRAM的存储单元,否则执行Step14;
Step14:状态机进入ERROR状态,向处理器返回错误信息;错误处理完毕,返回IDLE状态,结束;
Step15:状态机转入b32wr状态,根据处理器的访问地址,将数据和校验码写入到指定的SRAM存储单元,完成SRAM的写操作;SRAM的写操作完成后,状态机返回IDLE状态,结束。
根据上述控制流程设计的访存状态转移控制电路的状态机转换如图3所示,状态机共包括空闲(IDLE)、SRAM刷新写操作(scuwr)、SRAM刷新读操作(scurd)、错误(ERROR)、SRAM读操作(b32rd)和SRAM写操作(b32wr)六个状态,复位情况下状态机处于IDLE态,其中转换条件200为写操作完成信号;201为处理器写操作标志信号;202为处理器读操作标志信号;203为无错情况下,读操作完成信号;204为读操作过程中多错标志;205为处理器访问错误地址;206为错误处理完成;207为遍历刷新中写操作完成信号;208为遍历刷新中读操作单错信号;209为遍历刷新中读操作完成标志;210为201和202同时无效时的标志信号。
在处理器进行读主存操作(即处理器对外部SRAM进行读操作)时,由存储器控制器自主的(即不需处理器干预)对SRAM进行概率刷新(probabilisticscrubbing),当处理器进行其它操作(处理器执行除访存操作之外的其它指令)时,由储器控制器自主的对SRAM的所有存储器单元进行遍历式刷新操作。本发明提供了一种遍历式刷新机制,该机制为某些SRAM存储单元(处理器长时间未对其进行读操作的存储单元)提供了刷新机会,提高了SRAM整体的抗SEU错误累积的能力。图4所示为存储器空闲状态下的遍历式刷新,ahbsi.htrans为0,说明处理器未进行访存操作,遍历刷新对0x724进行读操作,得到数据0x000003C9,校验过程中发现单错,之后将校验后的数据0x000001C9写回到0x724,遍历刷新可以有效避免长时间未进行读操作的存储单元的SEU错误累积。

Claims (7)

1.一种面向SRAM的抗单粒子翻转错误累积的控制器,其特征在于,在片内总线和外部总线之间设置自动执行刷新动作的存储器控制器,该存储器控制器包括:
寄存器组,为存储器控制器的控制寄存器,处理器通过片内总线对其进行读写操作,寄存器组生成访存控制信息并输出连接至访存信息生成电路;
访存信息生成电路,其输入来自片内总线和寄存器组,输出访存操作信号组合并连接至访存状态转移控制电路;访存操作信号组合包括处理器的读标志信号、写标志信号和数据纠检错使能信号,当处理器进行读操作时,读标志信号有效,当处理器进行写操作时,写标志信号有效;当处理器未进行读写操作时,读标志信号、写标志信号均无效,若寄存器组中的EDAC使能,则数据纠检错使能信号有效,否则无效;
访存状态转移控制电路,其输入来自访存信息生成电路和校验码解码模块,输出与外部总线、校验码解码模块及多路选择器的控制端连接;当寄存器组中的EDAC使能时,访存状态转移控制电路输出给校验码解码模块的检验使能信号有效,校验码解码模块进行数据校验,并将校验结果输出至访存状态转移控制电路,当出现可纠正错误时,访存状态转移控制电路的输出单错标志信号有效,单错标志信号连接至多路选择器的控制端;当访存状态转移控制电路在读状态或写状态时,输出SRAM片选信号、读写信号及地址信息至外部总线;
校验码解码模块,将取自外部总线的数据及其校验位进行校验,并将数据输出至rdata寄存器,将校验结果输出至访存状态转移控制电路;
rdata寄存器,其输出连接至多路选择器的输入端和片内总线;
多路选择器,输入分别来自片内总线和rdata寄存器,输出至wdata寄存器和EDAC编码模块;当来自访存状态转移控制电路的单错标志信号有效时,选择rdata寄存器的数据输出,否则输出内部总线的数据;
EDAC编码模块,将来自多路选择器的数据按规则编码,并将七位校验码输出至pdata寄存器;
wdata寄存器,将多路选择器输出的数据经过寄存后,输出至外部总线;
pdata寄存器,将EDAC编码模块的数据经过寄存器后,输出至外部总线。
2.如权利要求1所述的面向SRAM的抗单粒子翻转错误累积的控制器,其特征在于,当处理器对主存进行读操作时,由存储器控制器自主的对读操作的存储单元进行读→校验→回写的刷新操作;当处理器进行访主存以外的其它操作时,由存储器控制器自主的对所有的存储单元进行遍历式的读→校验→回写的刷新操作。
3.一种基于权利要求1所述面向SRAM的抗单粒子翻转错误累积的控制器的控制方法,其特征在于,包括以下操作:
Step1:当访存状态转移控制电路在空闲时,存储器控制器检测处理器是否存在针对SRAM的读写访存操作;
Step2:检测是否存在处理器读操作,如果没有读操作,执行Step3;否则转向Step10;
Step3:检测是否存在处理器写操作,如果没有写操作,执行Step4;否则转向Step15;
Step4:访存状态转移控制电路进入SRAM遍历刷新读操作状态,进行遍历刷新的读操作,根据刷新地址读取SRAM对应地址的数据D和校验位B,并将其发送到校验码解码模块;
Step5:校验码解码模块根据Step4读出的数据D,按校验码生成方程组计算其校验位B1,对比校验位B和校验位B1,得出校验结果U并发送给访存状态转移控制电路,U=U0∪U1∪U2,U0表示无错,U1表示可纠正的单错,U2表示不可纠正的多位错误;
Step6:访存状态转移控制电路判断Step5的校验结果U是否属于U0,若U∈U0,则刷新地址加0x4,执行Step7,否则执行Step8;
Step7:访存状态转移控制电路跳转回空闲状态,结束;
Step8:判断U是否属于U1,若U∈U1,执行Step9,否则刷新地址加0x4,转向执行Step7;
Step9:刷新地址不变,访存状态转移控制电路进入SRAM刷新写操作状态,进行遍历刷新的写操作,根据刷新地址将校验码解码模块校验后的数据和校验位写入对应存储单元,写入完成后,访存状态转移控制电路刷新地址加0x4,通过计数器对时间倒计,计数器倒计为0后,转向执行Step7;
校验码解码模块将校验后的数据和校验位写入rdata寄存器,并发送给多路选择器;
访存状态转移控制电路发送信号给多路选择器,多路选择器选择rdata寄存器发送的信号给EDAC编码模块和wdata寄存器,然后将校验码解码模块校验后的数据和校验位写入对应存储单元;
Step10:访存状态转移控制电路进入SRAM读操作状态,进行处理器的读操作,并根据处理器访存地址读取对应地址的数据D和校验位B;
Step11:根据Step10读出的数据D,按校验码生成方程组计算其校验位B1,对比校验位B和校验位B1,得出校验结果U,U=U0∪U1∪U2,U0表示无错,U1表示可纠正的单错,U2表示不可纠正的多位错误;
Step12:判断Step11的校验结果U是否属于U0,若U∈U0,则访存状态转移控制电路返回空闲状态,结束访问,否则执行Step13;
Step13:判断Step11的校验结果U是否属于U1,若U∈U1,则状态机进入SRAM读操作状态,执行概率刷新的写入操作,将校验后的数据和校验位根据处理器访问地址写入特定的SRAM的存储单元,否则执行Step14;
Step14:访存状态转移控制电路进入ERROR状态,向处理器返回错误信息;错误处理完毕,访存状态转移控制电路返回空闲状态,结束;
Step15:访存状态转移控制电路转入SRAM读操作状态,根据处理器的访问地址,将数据和校验位写入到指定的SRAM存储单元,完成SRAM的写操作;SRAM的写操作完成后,状态机返回IDLE状态,结束。
4.如权利要求3所述的控制方法,其特征在于,遍历式刷新操作以最基本的SRAM存储单元为单位,每当完成一个存储单元的刷新操作,刷新地址递增,存储器控制器回到空闲态,重新检测处理器是否存在访存操作;当遍历式刷新操作被处理器的访存操作打断时,由硬件保证刷新地址不变,再次进行遍历式刷新操作时,需从上次被打断的刷新地址开始。
5.如权利要求3所述的控制方法,其特征在于,所述的校验码生成方程组是根据32位数据C,生成7位校验位B,其中,C={c1c2…c32},B={b1b2…b7}具体如下:
b 1 = c 1 ⊕ c 2 ⊕ c 3 ⊕ c 4 ⊕ c 5 ⊕ c 6 ⊕ c 7 ⊕ c 8 ⊕ c 9 ⊕ c 19 ⊕ c 20 ⊕ c 21 ⊕ c 22 ⊕ c 23 ⊕ c 24 b 2 = c 1 ⊕ c 2 ⊕ c 3 ⊕ c 4 ⊕ c 5 ⊕ c 10 ⊕ c 13 ⊕ c 14 ⊕ c 15 ⊕ c 16 ⊕ c 17 ⊕ c 18 ⊕ c 25 ⊕ c 26 ⊕ c 27 b 3 = c 1 ⊕ c 6 ⊕ c 10 ⊕ c 11 ⊕ c 16 ⊕ c 17 ⊕ c 18 ⊕ c 19 ⊕ c 20 ⊕ c 21 ⊕ c 28 ⊕ c 29 b 4 = c 2 ⊕ c 6 ⊕ c 7 ⊕ c 10 ⊕ c 11 ⊕ c 12 ⊕ c 13 ⊕ c 22 ⊕ c 23 ⊕ c 25 ⊕ c 26 ⊕ c 30 ⊕ c 31 b 5 = c 3 ⊕ c 7 ⊕ c 8 ⊕ c 11 ⊕ c 12 ⊕ c 13 ⊕ c 14 ⊕ c 16 ⊕ c 19 ⊕ c 24 ⊕ c 27 ⊕ c 28 ⊕ c 30 ⊕ c 32 b 6 = c 4 ⊕ c 8 ⊕ c 9 ⊕ c 12 ⊕ c 14 ⊕ c 15 ⊕ c 17 ⊕ c 20 ⊕ c 22 ⊕ c 25 ⊕ c 28 ⊕ c 29 ⊕ c 31 ⊕ c 32 b 7 = c 5 ⊕ c 9 ⊕ c 15 ⊕ c 18 ⊕ c 21 ⊕ c 23 ⊕ c 24 ⊕ c 26 ⊕ c 27 ⊕ c 29 ⊕ c 30 ⊕ c 31 ⊕ c 32 .
6.如权利要求3所述的控制方法,其特征在于,所述的对比校验位B和校验位B1是按位进行异或运算。
7.如权利要求3所述的控制方法,其特征在于,访存状态转移控制电路发送高电平的单错标志信号给多路选择器,多路选择器选择rdata寄存器发送的信号给EDAC编码模块和wdata寄存器,然后将校验码解码模块校验后的数据和校验位写入刷新地址对应的存储单元。
CN201310648233.8A 2013-12-03 2013-12-03 一种面向sram的抗seu错误累积的控制器及方法 Active CN103700396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310648233.8A CN103700396B (zh) 2013-12-03 2013-12-03 一种面向sram的抗seu错误累积的控制器及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310648233.8A CN103700396B (zh) 2013-12-03 2013-12-03 一种面向sram的抗seu错误累积的控制器及方法

Publications (2)

Publication Number Publication Date
CN103700396A CN103700396A (zh) 2014-04-02
CN103700396B true CN103700396B (zh) 2016-06-01

Family

ID=50361896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310648233.8A Active CN103700396B (zh) 2013-12-03 2013-12-03 一种面向sram的抗seu错误累积的控制器及方法

Country Status (1)

Country Link
CN (1) CN103700396B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984630B (zh) * 2014-05-27 2017-02-01 中国科学院空间科学与应用研究中心 一种基于at697处理器的单粒子翻转故障处理方法
JP6368588B2 (ja) * 2014-08-27 2018-08-01 日立オートモティブシステムズ株式会社 フィードバック制御装置、電動パワーステアリング装置
CN108491296B (zh) * 2018-03-09 2019-04-05 中国人民解放军国防科技大学 微处理器单粒子翻转截面的测试方法
CN110910938A (zh) * 2018-09-17 2020-03-24 北京兆易创新科技股份有限公司 一种数据纠正方法、装置、存储设备及存储介质
CN110309014B (zh) * 2019-07-05 2023-06-20 西安微电子技术研究所 一种全行编解码sram编码器数据读写结构及数据读写方法
CN110322979B (zh) * 2019-07-25 2024-01-30 美核电气(济南)股份有限公司 基于fpga的核电站数字控制计算机系统核心处理单元
CN116700795B (zh) * 2023-08-01 2023-12-01 广州中基国威电子科技有限公司 一种位操作控制系统及控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102097123A (zh) * 2010-12-21 2011-06-15 中国科学院半导体研究所 一种抗单粒子效应的静态随机存储器单元
CN102945682A (zh) * 2012-11-05 2013-02-27 上海集成电路研发中心有限公司 一种抗单粒子翻转的静态随机存储单元

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0668561B1 (en) * 1994-02-22 2002-04-10 Siemens Aktiengesellschaft A flexible ECC/parity bit architecture
JP4877894B2 (ja) * 2001-07-04 2012-02-15 ルネサスエレクトロニクス株式会社 半導体装置
JP4627411B2 (ja) * 2003-05-20 2011-02-09 ルネサスエレクトロニクス株式会社 メモリ装置及びメモリのエラー訂正方法
EP2418648B1 (en) * 2010-07-29 2013-03-06 STMicroelectronics (Grenoble 2) SAS RAM memory device selectively protectable with ECC

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102097123A (zh) * 2010-12-21 2011-06-15 中国科学院半导体研究所 一种抗单粒子效应的静态随机存储器单元
CN102945682A (zh) * 2012-11-05 2013-02-27 上海集成电路研发中心有限公司 一种抗单粒子翻转的静态随机存储单元

Also Published As

Publication number Publication date
CN103700396A (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
CN103700396B (zh) 一种面向sram的抗seu错误累积的控制器及方法
CN105589762B (zh) 存储器装置、存储器模块和用于纠错的方法
CN104572517B (zh) 提供被请求数据的方法、控制器以及计算机系统
CN103109278B (zh) 一种存储器件、存储系统以及用于促进存储器事务的方法、装置
CN104541253B (zh) 与保护写入到非易失性存储器的系统关键数据相关联的技术
TWI546814B (zh) 具有錯誤校正邏輯之記憶體裝置
US9274882B2 (en) Page retirement in a NAND flash memory system
CN102216904B (zh) 用于数据处理系统中的高速缓存的可编程错误动作
US20210407616A1 (en) Apparatus, system and method to log memory commands and associated addresses of a memory array
CN103955430A (zh) 一种闪存存储设备中数据管理的方法及装置
CN103793182A (zh) 可扩展存储保护
EP3739456A1 (en) Technologies for providing multiple tier memory media management
US10248497B2 (en) Error detection and correction utilizing locally stored parity information
CN101354906B (zh) 应用于固态硬盘的闪存控制器
CN109584920A (zh) 用于基于循环计数度量调节分界电压的方法和装置
CN103218271B (zh) 一种数据纠错方法及装置
CN109582493A (zh) 用于减少非易失性存储器系统中的静默数据错误的方法和装置
CN106445843A (zh) 使物理页面地址相关用于软判决解码
CN110473582A (zh) 存储器系统及其操作方法
CN103988182A (zh) 使用奇偶校验和冗余行的动态错误处理
CN204423920U (zh) 一种高可利用率抗辐射的sram自刷新电路
CN105022675A (zh) 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法
CN204833244U (zh) 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置
CN105005513A (zh) 高速缓存多位数据翻转错误的检测及容错装置与方法
CN100449498C (zh) 数据储存装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant