空间计算机抗单粒子翻转的存储器纠检错与自动回写方法

文档序号:6532842阅读:203来源:国知局
专利名称:空间计算机抗单粒子翻转的存储器纠检错与自动回写方法
技术领域
本发明属于计算机技术领域,涉及一种SPARC V8兼容型空间计算机微处理器中存储器控制器的设计和制造,特别涉及一种空间计算机抗单粒子翻转的存储器纠检错与自动回写方法。
背景技术
空间计算机受辐射影响,可能导致半导体电路出现错误的逻辑状态,甚至导致半导体材料永久损害。尤其是太空中的各种高能粒子(包括高能质子、中子、α粒子等)会导致存储内容在‘0’、‘1’之间突变,影响半导体器件的功能,通常称之为单粒子翻转(SEU)。对于空间计算机而言,最危险的SEU发生在中央处理器和存储器中。SPARC V8兼容型空间计算机微处理器支持8位、16位和32位三种格式,由SEU引起的错误可能是单位错、双位错或是多位错。为了解决空间计算机抗辐射问题需要采取综合措施,包括整体防护、设计冗余等,而对具体的存储器则通常采用备份、编码等方法利用信息冗余应对SEU现象。
以往为解决SEU问题所采用的备份方法主要有三模冗余(TMR)方法,包括模块级冗余(Module redundancy)、设备级冗余(Device redundancy)和门级冗余(Gate-level redundancy)三种形式。该方法具有控制简单、易实现的特点,但也存在着以下缺点(1)冗余直接带来电路规模的巨大增加,从而增加了系统设计的开销,也增大了出错的概率。
(2)为支持冗余需要设计专门的表决电路控制数据输出,增加了设计复杂性。
(3)TMR方法在每次发现错误后都需要重新刷新存储器单元,浪费了大量的系统时间。
(4)由于TMR方法采用三个值中两个一致的值作为真值,故当SEU现象严重时,可能导致错误无法发现。
编码是在数据存储领域广泛使用的检错/纠错方法。差错控制编码的基本原理是将经过信源编码后的信息码元序列附加上监督(冗余)码元后进行存储,这些监督码元与信息码元存在某种确定的相互关联。读取方可以通过比较监督码元与信息码元之间的关联是否与编码时一致来判断存储/读取数据过程中是否出错。在发现错误的码元之后,还可根据编码算法将其纠正。常用的纠检错码有奇偶校验码、海明码、R-S码等。海明码中的扩展海明码和最佳奇权码都能检测两位错,并能纠正单位错,简称纠一检二码(SEC-DED)。在微处理器的存储器中采用纠错编码的方法来实现错误的自动检测和纠正,可在不增加额外抗辐射加固处理的情况下实现计算机系统可靠性的明显提升。目前,主要的实现方式是在处理器外部对数据进行编码后写入存储器,在读出数据时根据编码算法进行数据的检错和纠错。在检测到错误时产生陷阱,由陷阱处理软件修正数据,并将数据重新写入存储器。该方法的主要缺点如下(1)无论是数据或是校验码发生错误,都需更新存储器内容,占用CPU资源较多,降低处理器工作速度。
(2)由陷阱处理软件纠正数据错误,大大增加了系统设计难度和时间开销。
利用现有的备份和编码方法可基本解决存储器的SEU问题,但无法根本满足空间计算机对于微处理器的工作速度、芯片面积等性能要求。为此,需要针对处理器结构将存储器系统级的纠错编码技术引入到存储器芯片内部,来提高存储器的抗单粒子翻转能力。

发明内容
针对上述现有技术存在的缺陷与不足,本发明的目的在于提供一种适用于SPARC V8兼容型空间计算机微处理器的、在存储器芯片内部实现的、高速有效的空间计算机抗单粒子翻转的存储器纠检错与自动回写方法。
实现上述发明目的技术方案是这样的空间计算机抗单粒子翻转的存储器纠检错与自动回写方法,其特征在于,在整个纠检错过程中,在无处理器直接干预的情况下,由微处理器中的存储器控制器支持对于32位数据的纠一检二,当发生一位错时,由存储器控制电路实现数据的自动纠正和直接回写,具体包括下列步骤1)在内总线和外总线之间设置纠检错与自动回写的存储器控制电路,该电路包括纠检错电路、状态转移控制电路、2个数据寄存器、多路选择电路、编码电路;纠错电路模块分别与外总线、状态转移控制电路和一个数据寄存器连通,由该数据寄存器将数据传给内总线,状态转移控制电路与多路选择电路相连,并将写信号、使能信号和片选信号分别送至外总线,多路选择电路还和与内总线连接的另一个数据寄存器连接,输出的数据通过编码电路送回外总线;2)在微处理器中,由存储器控制器按照海明码格式对要写入存储器的32位数据进行编码,生成8位校验码,并将校验码连同原始数据一同写入指定的存储器单元中,完成数据的写入操作;3)在数据读出过程中,由存储器控制器对数据和校验码进行校验,完成纠检错编码、校验和自动回写。
数据和校验码进行校验按下列步骤进行①当发现数据位单位错时,先将错误位取反纠正,然后直接回写到存储单元,并交给微处理器进行处理;②当发现校验位单位错时,不用纠正,由原始数据重新生成校验位,然后写入存储器单元,同时将数据送往微处理器;③当发现错误位超过两位时,按当前的纠检错编码方法已无法确定出错的位置,故产生多位错陷阱,由微处理器中产生的相应陷阱软件进行处理。
该空间计算机抗单粒子翻转的存储器纠检错与自动回写方法,由SPARC V8兼容型微处理器中的存储器控制器实现,支持对于32位数据的纠一检二;当发生一位错时,可由存储器控制电路实现数据的自动纠正和直接回写。
本发明的空间计算机抗单粒子翻转的存储器纠检错与自动回写方法,具有以下优点(1)该方法所采用的海明码纠检错编码技术可以检查出单位和多位错误,并准确确定单位错的位置,对于数据单位错采用直接回写的方法实现校正,降低了单位错误在系统中的累积,从而大大提高了单位错的处理效率。
(2)该方法将错误分为数据位单位错、校验位单位错和多位错三种情况进行分别处理,由存储器控制器直接处理单位错,从而减少了处理器因为修复数据而产生的时间开销,并且有效的降低了系统软件设计的复杂度。
(3)该方法采用总线监控的方式来刷新存储器内容,当存储器控制器完成数据自动回写之后,再将数据送往总线,实现数据的读出操作,从而使得总线控制简单,容易实现。
(4)该方法所针对的微处理器兼容SPARC V8体系结构,其中所采用的AMBA片内总线标准应用广泛,使得该方法具有极强的通用性,采用该方法设计的存储器控制器电路模块也可在多种处理器中进行直接复用。
(5)该方法针对一种空间计算机微处理器而设计,实现对单位错的纠正,并能检测2到8位错,满足了空间计算机对于抗单粒子能力的要求,并在执行速度和芯片面积两方面大大提升了该处理器的性能。


图1是纠检错与自动回写算法流程图;图2是本发明在微处理器中的存储器控制器中实现的读写操作状态转移图;图中的转移条件1为CPU发出读操作请求,转移条件为正确完成读操作/出现单位读错误;转移条件3为CPU发出写操作请求/单位读错时回写;转移条件4为正确完成写操作/完成单位错回写;转移条件5为读操作出现多位错;转移条件6为读写操作地址错误;转移条件7为错误处理完成后返回。
图3是正常读出数据操作的波形图;图4是读出数据发生单位错时的波形图。
图5是一种实现纠检错与自动回写方法的电路图。
具体实施例方式
为了更清楚的理解本发明,以下结合附图对本发明作进一步的详细描述。
在SPARC V8兼容型微处理器的存储器控制器中采用海明码进行纠检错编码、校验和自动回写。该微处理器支持32位数据格式,要能检测与自动校正一位2r-1≥k+r错,并能发现两位错,就要求校验位的位数r和数据位的位数k满足关系,故r至少为7,此算法中设置8位校验位。参见图1对其算法进行说明。
假设海明码的生成矩阵为A,数据为D,校验码C,其中A=0000111101100011010110001100011111111000110011111000100010000110100001101011010001101111011000010110111100101010000101100001110111001000110010001111011110010001100001000100110111000101011111100101001100010011101100111101100011110001001110001000111100110010]]>从总线取得数据D送入寄存器Ri。根据校验码生成公式C=A·D,由寄存器中的数据D生成校验码C,将数据D和校验码C一同写入存储器单元L中,完成数据写入操作。数据读出操作中的纠检错与自动回写算法如下①从存储器单元L中读出数据D’和校验码C’,根据公式C=A·D由D’生成校验位C”,由校验码C’和校验位C”异或生成S(s=S0∪S1∪S2,其中S0表示无错情况,S1表示单位错情况,S2表示多位错情况)。
②若 则出现数据错误,转至③;若s∈s0,则无数据错误,将数据D’写入寄存器Ro中,转至⑥;③若s∈s1,则为单位错,转至④;若s∈s2,则为多位错,转至⑦;④根据S确定单位错的位置,若为数据位错误,将出错的数据位的值取反修正后送入寄存器Ri和Ro中;若为校验位错误,将数据D’直接写入寄存器Ri和Ro中;⑤将寄存器Ri中的数据及生成校验码写入存储器单元L中,完成数据的回写;⑥将寄存器Ro中的数据输出到总线,完成数据读出操作,结束;⑦产生多位错陷阱,由系统进行处理,结束。
在SPARC V8兼容型微处理器的存储器控制器中支持单位数据的纠检错,并可检查出2到8位的数据错误,产生相应的软件处理陷阱。存储器控制器中所实现的读写操作的控制状态如图2所示,包括空闲状态(IDLE)、读状态(READ)、写状态(WRITE)和错误状态(ERROR)。系统复位后进入IDLE状态,并保持该状态,直到该微处理器有数据传输请求。当该微处理器要求写入数据操作时,进入WRITE状态;要求读出数据操作时,进入READ状态。正确完成写入/读出数据操作后,直接进入IDLE状态;否则进入ERROR状态,进行相应的错误处理后进入IDLE状态。状态转移的过程可分为以下几种情况①微处理器向存储器写入数据时,状态转移过程为IDLE→WRITE→IDLE;②微处理器从存储器中正确读出数据时,状态转移过程为IDLE→READ→IDLE,从图3中可见,数据通过总线被直接传送到了LSFT32微处理器;③微处理器读/写操作的地址范围出现错误时,状态转移过程为IDLE→ERROR→IDLE;
④当读出数据出现单位错时,状态转移过程为IDLE→READ→IDLE→WRITE→IDLE,从图4中可见,数据中的错误位被取反纠正后重新写入到了存储器的同一地址单元,然后通过总线传送到了微处理器中;⑤当读出数据出现多位错时,状态转移过程为IDLE→READ→ERROR→IDLE。
图5是一种实现纠检错与自动回写方法的电路图,它包括纠检错电路、状态转移控制电路、2个数据寄存器、多路选择电路、编码电路;纠错电路模块分别与外总线、状态转移控制电路和数据寄存器1连通,状态转移控制电路与多路选择电路相连,并将写信号、使能信号和片选信号分别送至外总线,多路选择电路还和数据寄存器2连接,输出的数据通过编码电路送回外总线。
该电路的工作过程是,纠错电路将外总线的40位数据转换为32位数据,传输给状态转移控制电路并送给一个寄存器保存,该寄存器同时将数据送至内总线和多路选择电路,多路选择电路同时接收由内总线通过寄存器2送来的32位数据和由状态转移控制电路送来的数据,然后由多路选择电路的输出通过编码电路转换为40位数据送回外总线。其中由状态转移控制电路控制存储器控制器中读写操作的控制状态,如图2所示,包括空闲状态(IDLE)、读状态(READ)、写状态(WRITE)和错误状态(ERROR)。
权利要求
1.空间计算机抗单粒子翻转的存储器纠检错与自动回写方法,其特征在于,在整个纠检错过程中,在无处理器直接干预的情况下,由微处理器中的存储器控制器支持对于32位数据的纠一检二,当发生一位错时,由存储器控制电路实现数据的自动纠正和直接回写,具体包括下列步骤1)在内总线和外总线之间设置纠检错与自动回写的存储器控制电路,该电路包括纠检错电路、状态转移控制电路、2个数据寄存器、多路选择电路、编码电路;纠错电路模块分别与外总线、状态转移控制电路和一个数据寄存器连通,由该数据寄存器将数据传给内总线,状态转移控制电路与多路选择电路相连,并将写信号、使能信号和片选信号分别送至外总线,多路选择电路还和与内总线连接的另一个数据寄存器连接,输出的数据通过编码电路送回外总线;2)在微处理器中,由存储器控制器按照海明码格式对要写入存储器的32位数据进行编码,生成8位校验码,并将校验码连同原始数据一同写入指定的存储器单元中,完成数据的写入操作;3)在数据读出过程中,由存储器控制器对数据和校验码进行校验,完成纠检错编码、校验和自动回写。
2.如权利要求1所述的方法,其特征在于,对数据和校验码进行校验按下列步骤进行1)若没有错误时,将数据输出,完成数据读出操作;2)若出现错误,则按下列不同情况进行纠检错编码、校验和自动回写;①当发现数据位单位错时,先将错误位取反纠正,然后直接回写到存储单元,并交给微处理器进行处理;②当发现校验位单位错时,不用纠正,由原始数据重新生成校验位,然后写入存储器单元,同时将数据送往微处理器;③当发现错误位超过两位时,按当前的纠检错编码方法已无法确定出错的位置,故产生多位错陷阱,由微处理器中产生的相应陷阱软件进行处理。
全文摘要
本发明涉及空间计算机抗单粒子翻转的存储器纠检错与自动回写方法,在整个纠检错过程中,在无处理器直接干预的情况下,由存储器控制器按照改进型海明码格式对要写入存储器的32位数据进行编码,并将校验码连同原始数据一同写入指定的存储器单元中。在数据读出过程中,由存储器控制器对数据和校验码进行校验。当发现数据位单位错时,先将错误位取反纠正,然后直接回写到存储单元,并交给微处理器核进行处理;当发现校验位单位错时,不用纠正,由原始数据重新生成校验位,然后写入存储器单元,同时将数据送往微处理器核;当发现错误位超过两位时,按当前的纠检错编码方法已无法确定出错的位置,故产生多位错陷阱,由处理器相应的陷阱软件进行处理。
文档编号G06F11/10GK1632757SQ20051004161
公开日2005年6月29日 申请日期2005年1月10日 优先权日2005年1月10日
发明者辛明瑞, 时晨, 张伟功, 于伦正 申请人:中国航天时代电子公司第七七一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1