CN101937375B - 皮卫星中央处理器的代码、数据实时纠检错方法及装置 - Google Patents
皮卫星中央处理器的代码、数据实时纠检错方法及装置 Download PDFInfo
- Publication number
- CN101937375B CN101937375B CN 201010264090 CN201010264090A CN101937375B CN 101937375 B CN101937375 B CN 101937375B CN 201010264090 CN201010264090 CN 201010264090 CN 201010264090 A CN201010264090 A CN 201010264090A CN 101937375 B CN101937375 B CN 101937375B
- Authority
- CN
- China
- Prior art keywords
- data
- fpga
- static memory
- processing unit
- central processing
- 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
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种皮卫星中央处理器的代码、数据实时纠检错方法,通过中央处理器向FPGA发送要求获取一定长度代码或数据的信号,FPGA响应该信号,从代码和数据存储器中取出信息并通过纠错检错方法处理取得的数据之后存入到临时静态存储器中;FPGA向中央处理器发出中断,使中央处理器执行该存储器中代码或处理数据,并将要存放的数据传递给FPGA进行更新。本发明还公开了实施上述方法的装置。本发明方法可以对中央处理器执行的代码和数据实时进行纠检错,大大提高了对程序代码和数据纠检错的覆盖率,降低了代码编写的难度,同时很好的适应了其重量轻、体积小、成本低、研制周期短的重要特性。
Description
技术领域
本发明涉及皮卫星星载计算机技术领域,尤其涉及皮卫星星载计算机的代码和数据可靠性改进。
背景技术
空间单粒子效应对星载计算机系统的影响是不可忽视的,即使一个微小的逻辑错误都有可能使星载计算机瘫痪并造成卫星失控。一般情况下可以通过避错设计和容错设计提高计算机系统的可靠性。对于公斤级的皮卫星来说,其特点是重量轻、体积小、成本低、研制周期短。而且航天级电子器件的需求量相对较小,使抗辐射器件的成本很高,价格非常昂贵,在实际开发过程中大量采用市场上容易取得的商业级电子器件。这些器件通常没有经过严格的抗辐射测试,也没有采用完善的抗辐射工艺。因而对于星载计算机可靠性设计主要是通过容错设计实现的。容错设计是利用外加资源的冗余技术屏蔽故障的影响,使局部的故障不会扩散到全局。
现有技术在对程序的实时保护上存在较大的困难。因此,在程序执行过程中出现代码“翻转”的错误是致命的,将引起程序出现跑飞、异常等情况。另一方面,在程序设计上采用各种可靠性方法,如程序路径、关键数据和变量冗余备份等方法仅能对程序少部分的代码和数据进行可靠性处理。因此,如何采用较为简捷方便的方法对代码进行实时的监控和降低程序编写得难度是一个较为迫切的问题。
本发明人的申请号为200910101155.3,名称为“皮卫星基于FPGA的存储模块的容错方法”的专利申请公开了一种皮卫星基于FPGA的存储模块的容错方法,数据总线将需要写入的数据分为高位数据和低位数据两部分,分别传送到两个完全相同的汉明编码模块对高位数据和低位数据处理对应生成冗余数据;将数据和对应的冗余数据分别存入静态存储器中的三个扇区,读数据时将同一静态存储器中不同扇区的数据读出,按位做“三取二”的比较操作,得到读出数据传送至对应的汉明编码模块;两个汉明编码模块分别对数据进行比较和校正后总线输出到中央处理器。该发明方法可以使存储模块做到“纠1检2”,并保证校验码的正确存储,同时很好的适应了其重量轻、体积小、成本低、研制周期短的重要特性,但依然没有解决程序数据实时纠检错的目标。
发明内容
本发明提供一种中央处理器代码纠检错、动态外部程序相结合的方法,对于皮卫星这种超微小型卫星的星载计算机的代码和数据进行了可靠性方面的实时纠检错设计。
一种皮卫星中央处理器的代码、数据实时纠检错方法,包括中央处理器与现场可编程门阵列(FPGA)之间的信号交互以及FPGA对静态存储器的数据读、写操作,所述的静态存储器包括静态存储器SRAM1和临时静态存储器SRAM2;
(1)中央处理器向FPGA要求获取一定长度的代码和数据时,通过向FPGA发送上升沿触发信号,以触发FPGA纠检错功能模块;
(2)FPGA在响应中央处理器的要求,向静态存储器SRAM1进行读操作时:将同一静态存储器中不同扇区的数据读出,按位做“三取二”的比较操作,得到读出的数据、冗余数据k,并将读出的数据、冗余数据k传送至对应的汉明编解码模块;汉明编解码模块分别对数据及该数据对应的冗余数据进行比较并将错误信息反馈给FPGA,利用冗余数据校正对应的数据得到校正后的数据通过总线输出到临时静态存储器SRAM2;
(3)FPGA在完成数据读取并存储到临时静态存储器后,向中央处理器发出中断信号,触发中央处理器的中断处理函数;
(4)中央处理器响应中断信号,并将临时静态存储器中的内容进行处理或者执行,当有数据需要更新,中央处理器向FPGA传递,FPGA对存储器进行写操作时:数据总线根据需要写入的数据位数,将数据传送到汉明编解码模块;汉明编解码模块对数据处理对应生成汉明纠错码所需的冗余数据k,将数据和冗余数据k分别存入静态存储器SRAM1中的不同扇区;
(5)当处理器完成临时静态存储器中代码执行和数据处理后,向FPGA发出下一个取代码和数据信号。
所述的用于代码和数据的静态存储器SRAM1与用于存储临时信息的存储器SRAM2是各自独立的两个静态存储器。
临时静态存储器SRAM2实现对纠错检错后的信息进行临时存储,可采取三模冗余方法也可以直接存储,这根据FPGA资源多少进行合理设计。
本发明还提供了实施上述实时纠检错方法的装置,包括:中央处理器、FPGA和静态存储器;
所述的中央处理器,用于向FPGA要求获取一定长度的代码和数据、响应FPGA的中断信号,并将临时静态存储器中的内容进行处理或者执行;当处理器完成临时静态存储器中代码执行和数据处理后,向FPGA发出下一个取代码和数据信号。
FPGA中包括三模存储及三模表决模块、汉明编解码器和中断产生模块,所述的三模存储及三模表决模块用于将SRAM1中不同扇区分别存储三份的代码或数据读出,按位做“三取二”的比较操作,得到读出的数据、冗余数据k,并将读出的数据、冗余数据k传送至对应的汉明编解码模块。
所述的汉明编解码器用于在读数据时,对数据及该数据对应的冗余数据进行比较并将错误信息反馈给FPGA,利用冗余数据校正对应的数据得到校正后的数据通过总线输出到临时静态存储器;在写数据时,对数据处理对应生成汉明纠错码所需的冗余数据k,将数据和冗余数据k分别存入静态存储器SRAM1中的不同扇区。
所述的中断产生模块是在纠检错编码处理结束后对中央处理器产生中断,令其将纠检错的代码或数据段读回。
静态存储器包括静态存储器SRAM1和临时静态存储器SRAM2,所述的静态存储器SRAM1用于将中央处理器运行过程中产生的代码或数据分别在不同的三个扇区中各存储一份。
所述的静态存储器SRAM2用于FPGA纠检错模块恢复后的临时数据存储在其中,当中断模块给中央处理器中断时再将临时数据发送给中央处理器。
本发明方法可以做到对代码进行实时纠错检错,并能大大降低代码设计难度,同时很好的适应了其重量轻、体积小、成本低、研制周期短的重要特性。
本发明方法针对空间环境中高能粒子对星载计算机存储模块造成的单粒子翻转影响,并充分考虑皮卫星对重量、体积、功耗等因素的限制,通过FPGA完成对代码和数据的实时纠错检错,其优势在于对代码和数据全面的纠错检错,兼容性强,代码设计难度低,同时很好的适应了其重量轻、体积小、成本低、研制周期短的重要特性,并且使星载计算机的可靠性得到显著提升。
附图说明
图1为实现本发明实时纠检错方法的结构功能示意图。
图2为本发明实时纠检错实施的逻辑流程示意图。
具体实施方式
在中央处理器中需要编写对FPGA发送取信息的触发信号以及中断处理程序。在该中断处理函数中将临时静态存储器SRAM2种的内容导入到中央处理器内存中进行执行或处理,完成后发送下一组取信息的起始地址及长度。
在FPGA设计和汉明编解码实现过程中,汉明纠错码码字长度的选择需要考虑几个方面的因素,满足FPGA对存储器访问速度的要求与满足存储器编码效率的要求之间是矛盾的。码字长度较短时,纠错速度快但是需要较多的冗余存储空间;码字较长时,可以降低冗余存储空间的使用,但是检错纠错速度会降低。由于皮卫星所需处理的事务相对于传统卫星较少,对内存的访问速度没有非常严格的要求;从冗余度、编解码速度及汉明编解码模块兼容性几个方面考虑,(22、6)汉明纠错码方案是一个较为合适的选择。
本发明纠检错方法的结构功能示意图如图1所示,本发明的纠检错处理功能块包括:中央处理器、FPGA和静态存储器;FPGA中包括三模存储及三模表决模块、汉明编解码器、还包括将代码和数据作为指令返回的中断产生模块。静态存储器包括静态存储器SRAM1和临时静态存储器SRAM2。
中央处理器,用于向FPGA要求获取一定长度的代码和数据、响应FPGA的中断信号,并将临时静态存储器中的内容进行处理或者执行;当处理器完成临时静态存储器中代码执行和数据处理后,向FPGA发出下一个取代码和数据信号。
FPGA中包括三模存储及三模表决模块、汉明编解码器和将代码和数据作为指令返回的中断产生模块,所述的三模存储及三模表决模块用于将SRAM1中不同扇区分别存储三份的代码或数据读出,按位做“三取二”的比较操作,得到读出的数据、冗余数据k,并将读出的数据、冗余数据k传送至对应的汉明编解码模块。
汉明编解码器用于在读数据时,对数据及该数据对应的冗余数据进行比较并将错误信息反馈给FPGA,利用冗余数据校正对应的数据得到校正后的数据通过总线输出到临时静态存储器;在写数据时,对数据处理对应生成汉明纠错码所需的冗余数据k,将数据和冗余数据k分别存入静态存储器SRAM1中的不同扇区。
将代码和数据作为指令返回的中断产生模块是在纠检错编码处理结束后对中央处理器产生中断,令其将纠检错的代码或数据段读回。
静态存储器包括静态存储器SRAM1和临时静态存储器SRAM2,所述的静态存储器SRAM1用于将中央处理器运行过程中产生的代码或数据分别在不同的三个扇区中各存储一份。
静态存储器SRAM2用于FPGA纠检错模块恢复后的临时数据存储在其中,当中断模块给中央处理器中断时再将临时数据发送给中央处理器。
在图2中描述了完成本发明纠检错实施的逻辑流程示意图。详细描述该纠检错方法实施过程如下:
(1)中央处理器向FPGA要求获取一定长度的代码和数据时,通过向FPGA发送上升沿触发信号,以触发FPGA纠检错功能模块;
(2)FPGA在响应中央处理器的要求,向静态存储器进行读操作。FPGA向静态存储器进行读数据操作时:
三模存储及三模表决模块将静态存储器中不同扇区的数据读出,按位做“三取二”的比较操作(由于同一数据分别在同一静态存储器的三个扇区存储三遍,那么如果其中有一个扇区上的数据的某一位发生了改变,而另两个扇区上的数据的没有变化,那么这两个数据的没有变化的扇区会将那个数据改变的扇区上的数据掩蔽,只读取表达正确的数据),得到读出的数据、冗余数据;
汉明编解码模块中的译码器对读出的数据、冗余数据k进行比较并将错误信息反馈给FPGA。
FPGA根据得到的错误信息,通过汉明编解码模块中的校正器利用冗余数据k校正数据,得到正确的数据并将数据输出到数据总线上。
(3)FPGA在完成数据读取并存储到临时静态存储器后,向中央处理器发出中断信号;
(4)中央处理器响应中断信号,并将临时静态存储器中的内容进行处理或者执行。当有数据需要更新时,中央处理器向FPGA传递,FPGA对存储器进行写操作。FPGA利用三模存储及三模表决模块,将数据和冗余数据k存入静态存储器中的三个扇区。
(5)当处理器完成临时静态存储器中代码执行和数据处理后,向FPGA发出下一个取代码和数据信号。
递归测试
测试小组使用模拟地面站和综合测试软件接收星载计算机在下发的星上数据,并且在测试过程中将星载计算机置于不同的外部环境中长时间运行,仍然能够保证正常工作。
在此测试过程中,人为制造如下故障对星载计算机的容错能力进行测试:(1)在遥控指令测试环节中将错误指令进行上传,星载计算机能够正确识别问题指令,在接收后不作执行,这些执行状态可以从实时下发的引导帧中读出;(2)进行误码率测试其中N为欲测波道数,M为测量的总帧数。实时遥测格式下N=70,M=5000。星上遥测为实时遥测下传格式,同时加调遥控负载波,重复以上步骤3次为一组,测得平均误码率为8.92*10-6。
经过多次递归测试,星载计算机连续运行1104小时无故障,累计无故障运行时间超过4320小时。
环境试验
为了进一步验证星载计算机的可靠性,系统被放置于辐照剂量2rad/s,总剂量达到10Krad(si)的钴60辐照环境中,星载计算机维持正常工作。
在真空度低于10-3Pa、背景温度低于96K、温度范围从-20℃至50℃之间,连续运行16个以上循环,星载计算机正常工作。
通过递归测试和各项环境试验表明,星载计算机的各项可靠性措施是切实有效的,既保证可靠性,也满足星上系统的实时性要求。目前,应用该创新技术的某型号皮卫星,已通过验收,预计于2010年搭载发射。该卫星,将成为我国目前重量最小的在轨运行卫星。
Claims (2)
1.一种皮卫星中央处理器的代码、数据实时纠检错方法,包括中央处理器与FPGA之间的信号交互以及FPGA对静态存储器的数据读、写操作,其特征在于:
(1)中央处理器向FPGA要求获取一定长度的代码和数据时,通过向FPGA发送上升沿触发信号,以触发FPGA纠检错功能模块;
(2)FPGA在响应中央处理器的要求,向静态存储器进行读操作时:
将同一静态存储器中不同扇区的数据读出,按位做“三取二”的比较操作,得到读出的数据、冗余数据k,并将读出的数据、冗余数据k传送至对应的汉明编解码模块;汉明编解码模块分别对数据及该数据对应的冗余数据进行比较并将错误信息反馈给FPGA,利用冗余数据校正对应的数据得到校正后的数据通过总线输出到临时静态存储器SRAM2;
所述的按位做“三取二”的比较操作为:同一数据分别在同一静态存储器的三个扇区存储三遍,比较从同一静态存储器不同扇区读出的数据,将其中任意两个相同的数据确定为正确的数据;
(3)FPGA在完成数据读取并存储到临时静态存储器SRAM2后,向中央处理器发出中断信号,触发中央处理器的中断处理函数;
(4)中央处理器响应中断信号,并将临时静态存储器SRAM2中的内容进行处理或者执行,当有数据需要更新,中央处理器向FPGA传递,FPGA对存储器进行写操作时:数据总线根据需要写入的数据位数,将数据传送到汉明编解码模块;汉明编解码模块对数据处理对应生成汉明纠错码所需的冗余数据k,将数据和冗余数据k分别存入静态存储器SRAM1中的不同扇区;
(5)当处理器完成临时静态存储器SRAM2中代码执行和数据处理后,向FPGA发出下一个取代码和数据信号;
用于代码和数据的静态存储器与用于存储临时信息的存储器是各自独立的两个静态存储器;
所述的临时静态存储器SRAM2实现对纠错检错后的信息进行临时存储,采取三模冗余方法存储。
2.一种实现如权利要求1所述方法的系统,包括:中央处理器、FPGA和静态存储器,其特征在于:
所述的中央处理器,用于向FPGA要求获取一定长度的代码和数据、响应FPGA的中断信号,并将临时静态存储器SRAM2中的内容进行处理或者执行;当处理器完成临时静态存储器SRAM2中代码执行和数据处理后,向FPGA发出下一个取代码和数据信号;
所述的FPGA中包括三模存储及三模表决模块、汉明编解码器和中断产生模块,所述的三模存储及三模表决模块用于将SRAM1中不同扇区分别存储三份的代码或数据读出,按位做“三取二”的比较操作,得到读出的数据、冗余数据k,并将读出的数据、冗余数据k传送至对应的汉明编解码模块;
所述的汉明编解码器用于在读数据时,对数据及该数据对应的冗余数据进行比较并将错误信息反馈给FPGA,利用冗余数据校正对应的数据得到校正后的数据通过总线输出到临时静态存储器SRAM2;在写数据时,对数据处理对应生成汉明纠错码所需的冗余数据k,将数据和冗余数据k分别存入静态存储器SRAM1中的不同扇区;
所述的中断产生模块是在纠检错编码处理结束后对中央处理器产生中断,令其将纠检错的代码或数据段读回;
所述的静态存储器包括静态存储器SRAM1和临时静态存储器SRAM2,所述的静态存储器SRAM1用于将中央处理器运行过程中产生的代码或数据分别在不同的三个扇区中各存储一份;
所述的临时静态存储器SRAM2用于FPGA纠检错模块恢复后的临时数据存储在其中,当中断模块给中央处理器中断时再将临时数据发送给中央处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010264090 CN101937375B (zh) | 2010-08-27 | 2010-08-27 | 皮卫星中央处理器的代码、数据实时纠检错方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010264090 CN101937375B (zh) | 2010-08-27 | 2010-08-27 | 皮卫星中央处理器的代码、数据实时纠检错方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101937375A CN101937375A (zh) | 2011-01-05 |
CN101937375B true CN101937375B (zh) | 2013-07-31 |
Family
ID=43390717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010264090 Active CN101937375B (zh) | 2010-08-27 | 2010-08-27 | 皮卫星中央处理器的代码、数据实时纠检错方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101937375B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710396B (zh) * | 2012-04-20 | 2015-03-04 | 上海卫星工程研究所 | 一种卫星载荷数据重传设计方法 |
CN106021002B (zh) * | 2016-04-29 | 2020-11-06 | 上海庆科信息技术有限公司 | 一种嵌入式设备数据读写方法及装置 |
CN106776089A (zh) * | 2016-11-28 | 2017-05-31 | 北京遥测技术研究所 | 一种星载嵌入式软件代码自校验纠错方法 |
CN107491358B (zh) * | 2017-09-04 | 2020-05-15 | 上海航天控制技术研究所 | 基于运载火箭地测微机大数据量的快速容错处理方法 |
CN110109619B (zh) * | 2019-04-25 | 2022-07-29 | 北京遥测技术研究所 | 一种闭环多级抗单粒子翻转效应的存储系统及实现方法 |
CN112053737B (zh) * | 2020-08-21 | 2022-08-26 | 国电南瑞科技股份有限公司 | 一种在线并行处理的软错误实时检错与恢复方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582294A (zh) * | 2009-06-19 | 2009-11-18 | 上海微小卫星工程中心 | 一种解决sram模块闩锁问题与增强sram模块可靠性的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009266176A (ja) * | 2008-04-30 | 2009-11-12 | Digital Electronics Corp | メモリ制御システム |
-
2010
- 2010-08-27 CN CN 201010264090 patent/CN101937375B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582294A (zh) * | 2009-06-19 | 2009-11-18 | 上海微小卫星工程中心 | 一种解决sram模块闩锁问题与增强sram模块可靠性的方法 |
Non-Patent Citations (1)
Title |
---|
JP特开2009-266176A 2009.11.12 |
Also Published As
Publication number | Publication date |
---|---|
CN101937375A (zh) | 2011-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101937375B (zh) | 皮卫星中央处理器的代码、数据实时纠检错方法及装置 | |
CN109710451B (zh) | 基于nand的存储装置的固件事件跟踪及其执行方法和指令集 | |
US8484509B2 (en) | Radiation-hardened processing system | |
CN100570572C (zh) | 微小卫星星载计算机数据存储用的差错检测和纠错系统 | |
US11532372B2 (en) | Remote SSD debug via host/serial interface and method of executing the same | |
CN101615147A (zh) | 皮卫星基于fpga的存储模块的容错方法 | |
CN105706059B (zh) | 非易失性存储器中的错误校正 | |
CN103984630B (zh) | 一种基于at697处理器的单粒子翻转故障处理方法 | |
KR102658847B1 (ko) | 고 데이터 무결성 처리 시스템 | |
CN102279776B (zh) | 一种错误检查与纠正能力的测试方法及装置 | |
CN105446847A (zh) | 一种arinc659总线的自动化测试系统及其方法 | |
CN103164242A (zh) | 卫星星务软件上注方法 | |
CN103778030A (zh) | 日志子系统写入方法、错误追踪方法及处理器 | |
CN105005453A (zh) | 星载nand flash固存坏区管理系统 | |
CN105138495A (zh) | 内嵌微控制器的arinc659总线控制器 | |
CN105093244A (zh) | 一种gnss实时定轨系统和定轨方法 | |
CN113312305B (zh) | 一种基于fpga的宇航电子系统在轨重构方法及系统 | |
US10289328B2 (en) | Memory controller and method for handling host request based on data character | |
Gong et al. | DRAM scaling error evaluation model using various retention time | |
CN107807902B (zh) | 一种抗单粒子效应的fpga动态重构控制器 | |
CN106919474A (zh) | 一种缓存数据保护方法和装置 | |
CN202677396U (zh) | 一种基于空间搜索技术的异构容错电路设计系统 | |
US10579470B1 (en) | Address failure detection for memory devices having inline storage configurations | |
CN113010114A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN103631669A (zh) | 一种纠错sram的回写方法 |
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 |