CN108052420B - 基于Zynq-7000的双核ARM处理器抗单粒子翻转防护方法 - Google Patents
基于Zynq-7000的双核ARM处理器抗单粒子翻转防护方法 Download PDFInfo
- Publication number
- CN108052420B CN108052420B CN201810015734.5A CN201810015734A CN108052420B CN 108052420 B CN108052420 B CN 108052420B CN 201810015734 A CN201810015734 A CN 201810015734A CN 108052420 B CN108052420 B CN 108052420B
- Authority
- CN
- China
- Prior art keywords
- cpu1
- cpu0
- executing
- dual
- executed
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Abstract
基于Zynq‑7000的双核ARM处理器抗单粒子翻转防护方法,属于处理器抗辐射加固领域。解决了双模冗余方法仅能实现故障检测,无法实现故障恢复,且现有的故障检测复杂的问题。本发明方法包括如下步骤:采用双核互检方法对双核所执行的程序进行错误检测,再对检测出的错误进行回卷恢复,实现错误的恢复。主要用于对双核所执行的程序进行错误检测及恢复。
Description
技术领域
本发明属于处理器抗辐射加固领域。
背景技术
采用商用货价(Commercial Off The Shelf,COTS)FPGA产品研制小卫星及微小卫星是卫星技术新的发展方向。其中,Xilinx Zynq-7000 SoC芯片作为异构多核SoC不断发展的产物,将双核ARM处理器、可编程逻辑和硬IP外设嵌入在同一芯片内,其灵活性与可配置性的完美结合受到小卫星领域的广泛关注,并逐渐应用于航天领域的工程实践中。
Zynq芯片PS(Process System)部分集成了双核Cortex-A9ARM处理器,可采用非对称多处理(Asymmetric Multi-core Processor,AMP)机制以并行或冗余的方式执行不同的任务,使系统性能实现最大化。但Zynq作为COTS器件其抗辐射能力较低,容易受到单粒子翻转的影响,发生瞬态且可恢复的软错误,体现在软件上会导致软件的运行发生控制流错误和数据流错误,使软件的运行轨迹发生混乱或产生错误的计算结果,影响软件的正确执行,从而导致软件错误。
在星载系统的设计中,不仅要满足星载系统基本的功能需求,更要考虑星载系统的高可靠性要求。Zynq-7000 SoC片内双核ARM处理器的天然冗余资源为星载软件的容错设计提供了新的解决思路。利用其异构双核ARM冗余处理器资源,可以采用经典的双模冗余的方法进行容错,但是仅能实现故障检测,而无法实现故障恢复。
发明内容
本发明是为了解决双模冗余方法仅能实现故障检测,无法实现故障恢复,且现有的故障检测复杂的问题。本发明提供了一种基于Zynq-7000的双核ARM处理器抗单粒子翻转防护方法。
基于Zynq-7000的双核ARM处理器抗单粒子翻转的防护方法,该方法包括如下步骤:
采用双核互检方法对双核所执行的程序进行错误检测,再对检测出的错误进行回卷恢复,实现错误的恢复。
所述采用双核互检方法对双核所执行的程序进行错误检测,再对检测出的错误进行回卷恢复,实现错误的恢复的具体过程为:
步骤一:双核分别定义为CPU0和CPU1,将CPU0的输入复制到CPU1中,确保二者具有相同的输入信息;所述CPU0和CPU1中执行相同的程序,该程序被分成的m-1段,每段的末尾为一个检查点,检查点的序号为i,i的初值为1,i为整数,m为大于3的整数;
步骤二:分别在CPU0和CPU1中,从当前程序执行的位置并行执行到第i个检查点;再将CPU0的执行结果复制给CPU1后,同时执行步骤三一和步骤四一;
步骤三一:CPU1的定时器开始计数,执行步骤三二;
步骤三二:将CPU1的执行结果与CPU0的执行结果进行比较,判断CPU1输出的比较结果是否相同,结果为是,执行步骤五,结果为否,执行步骤三三;
步骤三三:判断CPU1的定时器AWDT1是否超时,结果为是,CPU0和CPU1中的程序回卷至上一检查点,执行步骤二,结果为否,执行步骤三四;
步骤三四:判断CPU0的定时器AWDT0是否超时,结果为是,CPU0和CPU1中的程序卷回至上一检查点,执行步骤二,结果为否,执行步骤三二;
步骤四一:CPU0的定时器开始计数,执行步骤四二;
步骤四二:CPU0等待CPU1的比较结果,并判断CPU0是否接收到CPU1的比较结果,结果为是,执行步骤四三,结果为否,执行步骤四五;
步骤四三:判断CPU1输出的比较结果是否相同,结果为是,执行步骤五,结果为否,执行步骤四四;
步骤四四:CPU0和CPU1中的程序回卷至上一检查点,执行步骤二;
步骤四五:判断CPU0的定时器是否超时,结果为是,CPU0和CPU1中的程序回卷至上一检查点,执行步骤二,结果为否,执行步骤四二;
步骤五:令i=i+1,判断i是否大于m,结果为是,结束程序,结果为否,执行步骤二。
原理分析:本发明提供了一种基于Zynq-7000的ARM处理器抗单粒子翻转防护方法,采用双核互检技术和回卷恢复技术实现软错误的检测和错误恢复,保障星载软件的可靠运行。
本发明所述的基于Zynq-7000的双核ARM处理器抗单粒子翻转的防护方法包括双核互检技术和回卷恢复技术两部分。首先通过基于复算域的双核互检技术实现软错误的检测功能,再由基于检查点的回卷恢复技术来实现软错误的恢复功能。
本发明带来的有益效果是,
(1)该方法可利用Zynq-7000片内的双核处理器冗余资源,结合基于复算域的双核互检方法和基于检查点的回卷恢复方法,可在双核处理器核间实现软错误的检测和恢复,且双核互检流程简单,操作便捷。
(2)基于复算域的双核互检方法,能检测出由数据流错误引起的执行结果不一致,或由控制流错误引起的执行模块不一致的问题。
(3)基于检查点的回卷恢复方法,在检测到错误发生时,能有效的卷回至上一个检查点来恢复该检查点的有效信息并重新执行该段程序,从而避免程序从头开始执行,减小计算损失。
(4)该方法属于空间环境中CPU加固的软件处理手段,主要应用在CPU加固领域,解决了Zynq内CPU无法硬件容错的缺陷,在单粒子翻转引起星载软件的运行轨迹发生混乱或产生错误的计算结果时,能保证基于Zynq-7000的星载软件的可靠运行。
附图说明
图1为具体实施方式一所述的基于Zynq-7000的双核ARM处理器抗单粒子翻转的防护方法的流程图;
图2为具体实施方式二所述的基于Zynq-7000的双核ARM处理器抗单粒子翻转的防护方法的流程图。
具体实施方式
具体实施方式一:参见图1说明本实施方式,本实施方式所述的基于Zynq-7000的双核ARM处理器抗单粒子翻转的防护方法,该方法包括如下步骤:
采用双核互检方法对双核所执行的程序进行错误检测,再对检测出的错误进行回卷恢复,实现错误的恢复。
本实施方式中,双核所执行的程序为星载软件的应用程序。
具体实施方式二:参见图2说明本实施方式,本实施方式与具体实施方式一所述的基于Zynq-7000的双核ARM处理器抗单粒子翻转的防护方法的区别在于,所述采用双核互检方法对双核所执行的程序进行错误检测,再对检测出的错误进行回卷恢复,实现错误的恢复的具体过程为:
步骤一:双核分别定义为CPU0和CPU1,将CPU0的输入复制到CPU1中,确保二者具有相同的输入信息;所述CPU0和CPU1中执行相同的程序,该程序被分成的m-1段,每段的末尾为一个检查点,检查点的序号为i,i的初值为1,i为整数,m为大于3的整数;
步骤二:分别在CPU0和CPU1中,从当前程序执行的位置并行执行到第i个检查点;再将CPU0的执行结果复制给CPU1后,同时执行步骤三一和步骤四一;
步骤三一:CPU1的定时器开始计数,执行步骤三二;
步骤三二:将CPU1的执行结果与CPU0的执行结果进行比较,判断CPU1输出的比较结果是否相同,结果为是,执行步骤五,结果为否,执行步骤三三;
步骤三三:判断CPU1的定时器AWDT1是否超时,结果为是,CPU0和CPU1中的程序回卷至上一检查点,执行步骤二,结果为否,执行步骤三四;
步骤三四:判断CPU0的定时器AWDT0是否超时,结果为是,CPU0和CPU1中的程序卷回至上一检查点,执行步骤二,结果为否,执行步骤三二;
步骤四一:CPU0的定时器开始计数,执行步骤四二;
步骤四二:CPU0等待CPU1的比较结果,并判断CPU0是否接收到CPU1的比较结果,结果为是,执行步骤四三,结果为否,执行步骤四五;
步骤四三:判断CPU1输出的比较结果是否相同,结果为是,执行步骤五,结果为否,执行步骤四四;
步骤四四:CPU0和CPU1中的程序回卷至上一检查点,执行步骤二;
步骤四五:判断CPU0的定时器是否超时,结果为是,CPU0和CPU1中的程序回卷至上一检查点,执行步骤二,结果为否,执行步骤四二;
步骤五:令i=i+1,判断i是否大于m,结果为是,结束程序,结果为否,执行步骤二。
本实施方式中,针对CPU1双核互检的过程主要体现在,CPU1判断CPU0是否正常执行或CPU1和CPU0执行相同程序的结果是否一致,进行CPU0和CPU1的结果比对,并将比对结果通知CPU0。
针对CPU1双核互检的过程主要体现在,CPU0判断CPU1是否正常执行或者判断CPU1是否能够完成结果的检测,根据CPU1的比对结果来进行相应处理。
基于检查点的回卷恢复的设计,是在双核互检检测到故障后分别在CPU0和CPU1上实现的同步且独立的故障恢复设计。
本实施方式中,双核所执行的程序为星载软件的应用程序。对星载软件的应用程序采用静态存储的方式对检查点进行设置,规定检查点的数量为i,即对星载软件的应用程可以实现的最多回卷次数为i次(Times)。
基于检查点的回卷恢复容错设计,具体为:
(1)应用程序段的入口处,判断CPU1的执行结果与CPU0的执行结果是否相同,若不同则表示该程序段的执行由于回卷引起,则先恢复检查点的信息再执行该程序段,否则直接执行该程序段。
(2)应用程序段的出口处,对CPU1和CPU0的执行结果进行比对。若结果一致,保存该段检查点信息,继续执行下一段应用程序;否则确定回卷次数,回卷至相应检查点重新执行该程序段。
Claims (1)
1.基于Zynq-7000的双核ARM处理器抗单粒子翻转的防护方法,其特征在于,该方法包括如下步骤:
采用双核互检方法对双核所执行的程序进行错误检测,再对检测出的错误进行回卷恢复,实现错误的恢复;
所述采用双核互检方法对双核所执行的程序进行错误检测,再对检测出的错误进行回卷恢复,实现错误的恢复的具体过程为:
步骤一:双核分别定义为CPU0和CPU1,将CPU0的输入复制到CPU1中,确保二者具有相同的输入信息;所述CPU0和CPU1中执行相同的程序,该程序被分成的m-1段,每段的末尾为一个检查点,检查点的序号为i,i的初值为1,i为整数,m为大于3的整数;
步骤二:分别在CPU0和CPU1中,从当前程序执行的位置并行执行到第i个检查点;再将CPU0的执行结果复制给CPU1后,同时执行步骤三一和步骤四一;
步骤三一:CPU1的定时器开始计数,执行步骤三二;
步骤三二:将CPU1的执行结果与CPU0的执行结果进行比较,判断CPU1输出的比较结果是否相同,结果为是,执行步骤五,结果为否,执行步骤三三;
步骤三三:判断CPU1的定时器AWDT1是否超时,结果为是,CPU0和CPU1中的程序回卷至上一检查点,执行步骤二,结果为否,执行步骤三四;
步骤三四:判断CPU0的定时器AWDT0是否超时,结果为是,CPU0和CPU1中的程序卷回至上一检查点,执行步骤二,结果为否,执行步骤三二;
步骤四一:CPU0的定时器开始计数,执行步骤四二;
步骤四二:CPU0等待CPU1的比较结果,并判断CPU0是否接收到CPU1的比较结果,结果为是,执行步骤四三,结果为否,执行步骤四五;
步骤四三:判断CPU1输出的比较结果是否相同,结果为是,执行步骤五,结果为否,执行步骤四四;
步骤四四:CPU0和CPU1中的程序回卷至上一检查点,执行步骤二;
步骤四五:判断CPU0的定时器是否超时,结果为是,CPU0和CPU1中的程序回卷至上一检查点,执行步骤二,结果为否,执行步骤四二;
步骤五:令i=i+1,判断i是否大于m,结果为是,结束程序,结果为否,执行步骤二。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810015734.5A CN108052420B (zh) | 2018-01-08 | 2018-01-08 | 基于Zynq-7000的双核ARM处理器抗单粒子翻转防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810015734.5A CN108052420B (zh) | 2018-01-08 | 2018-01-08 | 基于Zynq-7000的双核ARM处理器抗单粒子翻转防护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108052420A CN108052420A (zh) | 2018-05-18 |
CN108052420B true CN108052420B (zh) | 2021-11-02 |
Family
ID=62126908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810015734.5A Active CN108052420B (zh) | 2018-01-08 | 2018-01-08 | 基于Zynq-7000的双核ARM处理器抗单粒子翻转防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108052420B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110667896A (zh) * | 2019-10-14 | 2020-01-10 | 深圳航天东方红海特卫星有限公司 | 一种微纳卫星综合电子系统 |
CN112596916A (zh) * | 2021-03-03 | 2021-04-02 | 上海励驰半导体有限公司 | 双核锁步错误恢复系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1760676A (zh) * | 2004-10-14 | 2006-04-19 | 中国科学院空间科学与应用研究中心 | 一种检测微处理器抗单粒子事件能力的探测器及方法 |
CN105320575A (zh) * | 2015-10-27 | 2016-02-10 | 首都师范大学 | 一种双模冗余流水线的自校验及恢复装置与方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886994B2 (en) * | 2009-12-07 | 2014-11-11 | Space Micro, Inc. | Radiation hard and fault tolerant multicore processor and method for ionizing radiation environment |
-
2018
- 2018-01-08 CN CN201810015734.5A patent/CN108052420B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1760676A (zh) * | 2004-10-14 | 2006-04-19 | 中国科学院空间科学与应用研究中心 | 一种检测微处理器抗单粒子事件能力的探测器及方法 |
CN105320575A (zh) * | 2015-10-27 | 2016-02-10 | 首都师范大学 | 一种双模冗余流水线的自校验及恢复装置与方法 |
Non-Patent Citations (3)
Title |
---|
星载并行计算机容错技术的研究与实现;张靓;《中国优秀博硕士学位论文全文数据库 (硕士)信息科技辑》;20061115;正文第13-32页 * |
片上存储器单粒子翻转效应诊断及修复;杨卫涛;《核电子学与探测技术》;20170228;全文 * |
面向空间应用的双核容错微处理器的研究与实现;彭和平等;《宇航学报》;20070131;正文第189-193页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108052420A (zh) | 2018-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9823983B2 (en) | Electronic fault detection unit | |
EP3493062B1 (en) | Data processing system having lockstep operation | |
US8635492B2 (en) | State recovery and lockstep execution restart in a system with multiprocessor pairing | |
US6938183B2 (en) | Fault tolerant processing architecture | |
US7987385B2 (en) | Method for high integrity and high availability computer processing | |
US9164854B2 (en) | Thread sparing between cores in a multi-threaded processor | |
US20110047364A1 (en) | Recovering from an Error in a Fault Tolerant Computer System | |
Hernandez et al. | Timely error detection for effective recovery in light-lockstep automotive systems | |
CN108052420B (zh) | 基于Zynq-7000的双核ARM处理器抗单粒子翻转防护方法 | |
CA2694198C (en) | High integrity and high availability computer processing module | |
Kanekawa et al. | Fault detection and recovery coverage improvement by clock synchronized duplicated systems with optimal time diversity | |
US8108721B2 (en) | Architecture and method for hardware-assisted processor checkpointing and rollback | |
Persya et al. | Fault tolerant real time systems | |
Thekkilakattil et al. | Mixed criticality systems: Beyond transient faults | |
US11392385B2 (en) | System and method for auto-recovery in lockstep processors | |
Ertugrul et al. | Fault tolerance in real-time systems: A review | |
Kang et al. | Optimal checkpoint selection with dual-modular redundancy hardening | |
Arm et al. | Increasing safety and reliability of roll-back and roll-forward lockstep technique for use in real-time systems | |
Sakata et al. | A cost-effective dependable microcontroller architecture with instruction-level rollback for soft error recovery | |
Axer et al. | Designing an analyzable and resilient embedded operating system | |
CN112559253B (zh) | 一种计算机系统数据备份与还原的方法及装置 | |
El Salloum et al. | Recovery mechanisms for dual core architectures | |
Schagaev et al. | Generalized Algorithm of Fault Tolerance (GAFT) | |
Jeitler et al. | Enhancing pipelined processor architectures with fast autonomous recovery of transient faults | |
CN114416436A (zh) | 基于SoC芯片面向单粒子翻转效应的可靠性方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |