CN114416436A - 基于SoC芯片面向单粒子翻转效应的可靠性方法 - Google Patents
基于SoC芯片面向单粒子翻转效应的可靠性方法 Download PDFInfo
- Publication number
- CN114416436A CN114416436A CN202111411909.2A CN202111411909A CN114416436A CN 114416436 A CN114416436 A CN 114416436A CN 202111411909 A CN202111411909 A CN 202111411909A CN 114416436 A CN114416436 A CN 114416436A
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- rpu
- apu
- core
- fault
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000000694 effects Effects 0.000 title claims abstract description 20
- 230000007246 mechanism Effects 0.000 claims abstract description 97
- 238000011084 recovery Methods 0.000 claims abstract description 39
- 238000001514 detection method Methods 0.000 claims abstract description 31
- 238000005516 engineering process Methods 0.000 claims abstract description 19
- 230000003014 reinforcing effect Effects 0.000 claims abstract description 3
- 238000012544 monitoring process Methods 0.000 claims description 44
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 230000036541 health Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000005855 radiation Effects 0.000 description 3
- 230000002787 reinforcement Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 102100026278 Cysteine sulfinic acid decarboxylase Human genes 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 108010064775 protein C activator peptide Proteins 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/181—Eliminating the failing redundant component
-
- 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/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/187—Voting techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及一种基于SoC芯片面向单粒子翻转效应的可靠性方法,属于芯片电路中可靠性工作的一种方法,其主要技术要点是其可靠性方法包括PL、APU、RPU三个应用单元。所述PL用于执行检测PL内发生软错误的任务;所述APU包含四个处理器内核,采用APU检错机制和APU恢复机制,用于执行PL内发生的软错误识别任务;所述RPU包含两个处理器内核,采用RPU检错机制和RPU恢复机制,用于执行针对识别到软错误生成PL防护加固技术的任务。主要用于在单粒子翻转效应发生的时候防护SoC芯片,减少因软错误的发生,而造成SoC芯片系统中断或运行结果错误,保证SoC芯片能够以更高的安全等级执行给定的任务。
Description
技术领域
本发明属于嵌入式电路高可靠性领域,具体涉及一种基于SoC芯片面向单粒子翻转效应的可靠性方法,它是基于SoC芯片在空间辐射环境下的可靠性架构的一种方法,属于电子芯片在电路中可靠性工作的一种方法。
背景技术
SoC芯片是指在单个芯片上集成FPGA和多个处理器内核。SoC芯片允许用户自定义逻辑功能电路,内部的异构多核处理器能在较低的主频下提供更高的处理器性能、更有效的电源利用率,并且占用更小的物理空间,因此广泛地应用于各个领域。
SoC芯片生产工艺的提升必然造成SoC在空间辐射环境下,单粒子效应更加显著。现有的单粒子防护方案通常是针对于FPGA,即FPGA布设容错功能电路,通过容错功能电路减少软错误对系统的影响。常见的容错功能电路有三模冗余电路。SoC中内含多个处理器(PS)和FPGA(PL),在SoC架构下,由常见的FPGA容错电路,转变为FPGA中布设软错误检测电路,PS端负责识别软错误识别,并生成相应的软错误防护策略。防护方法的转变释放了FPGA中的逻辑资源,并利用处理器处理复杂任务的优势,充分发挥SoC器件资源的优势,达到预期效能。RFSoC器件中共有六个Arm核和FPGA,六个Arm核又分别组成了APU(ApplicationProcessing Unit)和RPU(Real-time Processing Unit),尽管处理器的优势很明显,但是处理器仍然可能发生软错误,从而导致应用程序用户功能不可靠;此外,数量堆加的处理器内核数量,缺少统一防护软错误的可靠性软件开发框架,系统维护成本较高。
发明内容
本发明的目的是为了解决现有软错误防护技术面向对象单一和SoC体系下缺少软错误防护技术的不足,从而提供一种基于SoC芯片面向单粒子翻转效应的可靠性方法框架。
为达到上述目的,本发明通过以下技术方案来实现:
本发明实施例提供一种基于SoC芯片面向单粒子翻转效应的可靠性方法,所述软件可靠性框架包括:PL、APU、RPU三个应用单元。
所述PL,用于执行检测PL内发生软错误的任务;
所述APU包含四个处理器内核,采用APU检错机制和APU恢复机制,用于执行PL内发生的软错误识别任务;
所述RPU包含两个处理器内核,采用RPU检错机制和RPU恢复机制,用于执行针对识别到软错误生成PL防护加固技术的任务。
上述方案中,所述软件可靠性框架还包括:APU检错机制、APU恢复机制、RPU检错机制和RPU恢复机制;
所述APU检错机制,用于检测APU内发生的软错误,包含运行结果的软错误和运行时发生的软错误;
所述APU恢复机制,用于恢复APU内软错误造成的系统故障;
所述RPU检错机制,用于检测RPU内发生的软错误,即锁步机制;
所述RPU恢复机制,用于恢复RPU内软错误造成的系统故障,即二级回卷恢复机制和系统重置。
上述方案中,所述的APU检错机制还包括:心跳监测规则、心跳监测模块、运行结果发送模块、心跳判断器模块;
所述心跳监测规则用于划分心跳监测模块;
所述心跳监测模块用于监测三模冗余执行核的健康状态,生成APU中三模冗余执行核的心跳信息;
所述运行结果发送模块用于将APU内执行三模冗余执行核的运算结果和心跳信息发送给RPU内的心跳判断器模块;
所述心跳判断器模块用于以三选二机制比对心跳信息或运行结果,得到正确的心跳信息或运行结果。
上述方案中,所述心跳监测规则包含有基本块划分规则、心跳监测点设置规则、心跳信息选取规则;
所述基本块划分规则,用于划分单粒子效应最小监测单元;
所述心跳信息选取规则,用于选取变量等信息,组成心跳信息;
所述心跳监测点设置规则,用于设置弹出心跳信息的位置。
上述方案中,所述心跳监测模块包含有基本块、心跳监测点和心跳信息;
上述方案中,所述心跳判断器模块包含有模式选择功能、数据比对功能、记录器功能和故障与方案匹配功能;
所述模式选择功能,用于调整心跳判断器的工作模式,比对运算结果或心跳信号;
所述数据比对功能,用于以三选二的机制比对接收到的运算结果和心跳信号,选取正确结果,描述故障模型;
所述记录器功能,用于记录工作内核的编号、APU每个内核参与工作的次数和工作异常的次数,计算内核故障频率fFault;
所述故障与方案匹配功能,用于根据故障模型匹配故障恢复方案。
上述方案中,所述模式选择功能还包括三模冗余工作模式下,心跳判断器比对运算结果,选取正确的结果指向RPU;在心跳监测工作模式下,心跳判断器比对心跳信号,记录故障内核,心跳判断器的输出由RPU发回APU。
上述方案中,所述的APU恢复机制,包含三个三模冗余执行核和一个备份核;
所述三模冗余执行核,用于执行三模冗余机制的工作内核;
所述备份核,用于三模冗余执行核出现故障,备份核接替故障核工作,同时备份核转为三模冗余执行核,故障核恢复之后转为备份核。
上述方案中,所述可靠性方法还包括:RPU检错机制触发RPU恢复机制信号;
所述RPU检错机制触发RPU恢复机制信号,用于软错误触发RPU检错机制后,发出启用RPU恢复机制的信号。
本发明与现有技术相比所具有的优点是:防护技术由单一对象转变为多元对象,在SoC体系结构下,提供了一种可靠性纠错方法,以便更好的防护因单粒子翻转效应造成的软错误。
附图说明
图1是根据本发明一种实施例的用于SoC软硬件协同设计的数据流水线示意图;
图2是根据本发明一种实施例的用于SoC面向单粒子翻转效应的软硬件协同设计可靠性开发框架图;
图3是根据本发明一种实施例的用于SoC的可靠性加固方法的流程图;
图4是根据本发明一种实施例的APU防护示意图;
图5是根据本发明一种实施例的APU心跳监测点基本块划分示意图;
图6是根据本发明一种实施例的APU心跳心跳判断器示意图;
图7是根据本发明一种实施例的锁步机制与回卷恢复示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图以心跳监测具体实施对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
已有的SoC芯片通常将FPGA与多核处理器结合,利用FPGA的并行处理能力和自定义逻辑功能的优势和多核处理器控制能力的优势,达到降低功耗、提升计算能力的效果,如赛灵思厂商的SoC芯片,内含FPGA模块、四核Cortex-A53模块和双核Cortex-R5模块。近些年,随着芯片生产制造工艺的提升,芯片在空间辐射环境下的多粒子翻转效应也逐渐显现。目前,相关技术人员提出了多种针对FPGA单粒子翻转效应的防护手段,而SoC芯片正呈现异构多核处理器的趋势,由于处理器自身单粒子翻转效应的存在,SoC架构下PS端决策可靠性被提出质疑。目前仍缺少针对SoC架构下的可靠性防护技术以及SoC架构下核自检技术。
本发明提出了一种基于SoC芯片面向单粒子翻转效应的可靠性方法。
本发明将基于FPGA、四核Cortex-A53处理器和双核Cortex-R5处理器设计可靠性方法框架,本发明要求PL端具有软错误检测能力,需在PS端进行软错误识别和防护加固策略生成。本发明提出PS端动态三模冗余机制,利用四核Cortex-A53组成三模冗余和备份核机制,保证APU处理单元的可靠性。本发明提出心跳检错技术,将APU和RPU组合,保证APU内处理内核的可靠性。
本发明的PS端内核恢复技术,APU的故障核采用热启动,RPU的锁步机制恢复是采用二级回卷恢复技术。本发明APU内核间通过核间通信服务进行通信,RPU与APU采用处理器间通信服务进行通信,PL与PS之间采用AXI总线进行通信。其中,共享内存、核间中断、处理器间中断和热启动的具体实现方法对本领域技术人员是已知的,在本说明书中不作限制。
图1是SoC软硬件协同设计的数据流水线示意图。如图1所示,在一个任务周期内,PL中将数据传递给APU进行错误识别,APU将错误识别结果传递给RPU。为了降低数据在PS流转对PL逻辑功能的影响,在PS对PL数据处理的过程中,PL会继续执行下一周期任务,减少系统的中断等待时间。
图2是根据本发明实施例基于SoC芯片面向单粒子翻转效应的软硬件可靠性方法框架,用于协同设计可靠性开发框架图。如图2所示,四个A53内核组成动态三模冗余机制(Dynamic TMR),两个R5内核组成锁步机制(Lock-Step)。锁步机制需要处理器内核的底层硬件支持,而动态三模冗余机制采用软件处理数据流的方式进行内核集合约束。四个内核组成的动态三模冗余机制,采用“3+1”模式,三个内核负责组成正常的三模冗余机制,一个内核以热备份的形式,及时顶替三模冗余机制中的故障核,故该内核也被称为“备份核”。通过三模冗余机制保证通过该部分处理器内核的数据结果正常。由两个内核组成锁步机制,锁步机制需要硬件支持,当可靠性方法程序用户功能每运行到一个节点,便进行数据比对,当且仅当双核比对结果相同,程序用户功能运行下一步。
继续参考图2,软件可靠性框架的数据走向为,PL检测到存在软错误后,通过SoC芯片中的AXI_ACP接口传递给APU的L2 cache,并通过中断通知APU处理数据。该L2 cache具有ECC功能,具有一定的软错误防护能力。APU内三模冗余的计算结果依次以处理器间中断的形式发送给RPU,处理单元间消息缓冲区作为计算结果的暂时存放位置。RPU接收到结果后,首先计算三模冗余的结果是否一致,如果不满足三选二的条件,RPU则通知APU对该周期的数据重新计算;如果满足三选二的条件,RPU在锁步机制下计算防护策略,并通过PACP口对PL进行重配置。
继续参考图2,软件可靠性方法框架下的PS检错机制为,APU的心跳监测技术和RPU的锁步机制。APU中的心跳监测技术是通过在用户功能中插入心跳监测点,当方法程序用户功能运行到心跳监测点时,主动向外输出信号,心跳信号的内容包括运行位置和当前位置的数据信息,通过IPI方式发送给RPU,利用位于RPU锁步机制下的心跳判断器,判断三模冗余心跳信号是否满足条件,如果满足条件,APU继续执行任务,如果判断此时a53内核出现问题,则执行相应的防护手段。RPU的锁步机制是在硬件支持下完成的,通过每步都进行比较比对运算结果,来保证运算结果的正确,因此,其既是数据计算结果可靠性的支撑技术,也是处理器内核检错技术。与传统的锁步机制不同的是,当锁步机制出现问题时,先行触发回卷恢复信号,而非重置信号。RPU同时支持看门狗,保证RPU的可靠性。
继续参考图2,软件可靠性框架下的PS恢复机制为,APU的动态三模冗余技术和RPU的二级回卷恢复技术。动态三模冗余恢复技术是指心跳心跳判断器判断内核处于故障状态时,备份核接替故障核,保证三模冗余不中断的技术。二级回卷恢复技术是指在回卷数据备份区保存该节点之前的两次锁步比对的正确数据,当该节点比对结果出错时,允许RPU回卷到前两次的数据状态。当位于RPU的心跳判断器判断三模冗余心跳信号出现问题,要进行故障内核切换时,故障内核则失去主动发送心跳信号的能力,执行等待下一周期任务、热启动等防护手段。由于备份核是热备份机制,故使能此时备份核的心跳信号,判断备份核的心跳是否与其他两个内核一致,如果一致,则组成动态三模冗余机制,如果不一致,则该周期的任务重新计算。RPU的锁步机制在每一个检查点都会执行冗余备份,存储在OCM内的锁步冗余备份区。当RPU需要回卷恢复时,从锁步冗余备份区获取备份数据,当两次回卷均失效时,触发RPU重置信号。QSPI存储了R5内核的启动文件和A53内核的启动文件,OCM划分了锁步冗余备份区和RPU、APU对应的软件功能区。APU与RPU除上述恢复技术之外,都支持功能重置的兜底措施。
图3是根据本发明实施例基于SoC芯片面向单粒子翻转效应的软硬件可靠性方法框架中可靠性加固方法的流程图。如图3所示,本发明中PL检测到错误后,把数据发送给APU,供APU识别错误。APU在识别错误的过程中,会不间断的进行心跳监测,确认APU是否发生软错误,如果APU发生了软错误,则APU自身有对应的恢复技术,保证APU自身正常运行。在心跳监测无问题的前提下,APU生成正确的PL错误识别结果,并发送给RPU的防护加固策略单元。在RPU计算加固策略的过程中,RPU锁步机制会同时进行RPU自身软错误检测,确保每步数据结果一致。如果锁步比对结果出错,会执行相应的措施恢复RPU状态。心跳监测和锁步机制保证PS会最终生成正确的PL防护策略,保证整个系统的可靠性。
图4是根据本发明实施例中的APU防护示意图。如图4所示,数据通过S_AXI_ACP_FPD发送到APU的L2 cache中,在APU中,四个核心共享L2 cache,四个核心依次顺序读取存储在L2 cache中的数据。尽管四个核心都获取了数据,但是在取运算结果时,仍然只取三个运算结果,其中一个核心作为热备份核。图4中,APU的CPU0、CPU1、CPU2组成三模冗余机制,CPU3作为热备份核。
动态三模冗余机制的数据处理结果采用处理器间中断的机制向RPU发送。每个APU的核心对RPU的核心依次发起inter-processor interrupt(IPI),APU的内核在消息缓冲区写入32B的请求消息,在中断触发寄存器中目标处理器的bit位写入1,通过读取观察寄存器(observer register)来验证中断是否发布。轮询观察寄存器,直到状态位被清除,表明接收方已处理中断。处于三模冗余机制的三个核依次向目标处理器发送IPI中断请求。
RPU此时位于锁步状态。当RPU中主要负责表出的处理器接收到来自APU的IPI中断后。RPU轮询状态寄存器接受来自APU的中断处理请求。当接收到中断时,将来自APU的32B数据写入三选二表决器中的一个变量variable x,通过清除状态寄存器,向发送方发出信号,表明中断已处理完成。
RPU的锁步状态来自于硬件的支持,其中R5_0处理器是锁步机制下的主要处理器,R5_1处理器是锁步机制的比较核。锁步机制是该领域技术人员所熟悉的操作。RPU生成的数据结果可通过AXI总线发送给PL,也可以通过PCAP对PL进行重配置,包含部分重配置和动态重配置。
继续参考图4,心跳监测使用运算数据相同的数据通道传递给RPU中的表决器。三模冗余心跳监测算法是采用用户功能中插入心跳监测点,当用户功能运行到心跳监测点时,处理器内核通过核间中断的方式主动向锁步内核发送心跳信号,心跳信号包括运行位置和当前位置的数据变量。由于是在运行阶段内弹出心跳信号,所以可以有效避免、提早发现内核崩溃跑飞等情况。
在心跳触发前,询问布尔变量working的值,working=1表明内核处于三模冗余机制内,应当触发心跳发送给RPU;working=0表明内核处于备份核状态,不触发心跳发送给RPU。布尔变量working初始设定好后,由RPU根据心跳信息,动态调整内核的工作状态。
心跳信号的判断是当收到三个内核的信号后,利用三选二机制表决出正确的运行结果。心跳信号故障模型分为故障核位置正确数据错误、故障核位置错误和未在规定时间收到故障核的心跳信号。当出现故障核位置正确,但数据错误时,表明故障核出现了数据流错误;当出现故障核位置错误和故障核不弹出心跳信号时,表明故障核出现了控制流错误。
心跳基本块,依据以下规则设立。
规则1当跳转语句、分支语句和调用语句均不在循环语句内部时,用户代码以跳转语句、分支语句和调用语句为界限划分为方法控制流基本块。
规则2当全局变量和用户定义关键变量不在循环语句内部时,在控制流基本块的基础上,以全局变量和用户定义关键变量为界限,细化出数据流基本块。
规则3循环语句,应在循环语句结束之后划分基本块,并忽视跳转、分支、调用语句和关键变量划分基本块的规则,即规则1和规则2在循环语句中失效。内嵌循环的循环语句,以最外层的循环语句的“}”为基准划分基本块。
规则4根据循环语句基本块中是否包含跳转语句,可分为具有分支功能的基本块和不具有分支功能的基本块。其中,不具有分支功能的基本块,仅需要将循环语句划分为基本块,具有分支功能的基本块,在循环语句基本块的基础上,再次划分为bij,其中i表示为循环语句基本块号,j表示为该基本块的不同分支。
规则5除包含循环语句的基本块外,其余基本块除最后一条指令外不能包含跳转语句、分支语句和调用语句。
规则6除循环语句基本块外,其余基本块除第一条指令外都不能作为目标指令。
图5是根据本发明实施例的心跳监测点APU示意图。如图5所示,代码被划分为3个基本块b0、b1、b2,根据中间变量的变化,b1基本块会展示出不同的标签,标定为不同的基本块b11、b12、b13。
心跳监测点设置规则:标签被设置为与当前基本块对应的唯一值,其位置应放置于基本块的末尾,跳转语句之前。对于循环语句分支基本块,根据其最终的导向,决定其标签。标签之后应设置心跳监测点。
当基本块内包含带有跳转语句和分支语句的循环语句时,循环语句具有分支功能,选取能够表征分支结果的变量作为变量信息,或者在最外层循环语句的”}”前添加flag++语句,表明循环完整执行的次数,以flag信号作为关键信号。flag信号在计算循环语句基本块时,应当参与计算。
心跳信息选取规则:心跳由基本块标签和基本块内的关键变量组成,其基本组成形式为内核编号Core,基本块标签Signature和关键变量keyWords。数据基本块选取关键变量组成心跳信号。当控制基本块不包含关键变量时,选取或设置标志变量作为变量信息与标签组成心跳信号。
心跳心跳判断器接收到三个处理内核发出的心跳信号之后,按照三选二模式比对三个内核心跳信息中的心跳判断三个内核的基本块标签Signature和关键变量keyWords,选择两个相同及以上的数据为结果输出,根据内核编号Core,记录错误内核。
图6是根据本发明实施例的APU心跳心跳判断器示意图。如图6所示,心跳心跳判断器有三个输入通道,分别是HBA,HBB,HBC,负责接收来自三模冗余工作核的心跳信息和最后的运算结果。
心跳心跳判断器共有心跳模式和运算结果表决模式。心跳模式是指,三选二表决器对基本块标签Signature和关键变量keyWords进行表决,记录错误内核,并反馈给APU。运算结果表决模式是指,三选二表决器对关键变量keyWords进行表决,记录错误内核,计算每个内核故障发生率,将错误反馈给APU。三选二表决器实现了心跳心跳判断器的数据比对功能。
输入通道mode_judgement为心跳心跳判断器模式判断信号,实现心跳心跳判断器的模式选择功能。
心跳心跳判断器还有四个输出,分别是正确结果true_result,故障模式fault_mode,故障内核fault_core,故障频率fault_frequency。正确结果true_result即表决器表决出的正确结果;故障模式fault_mode分析出故障内核的故障原因;故障内核fault_core即出现故障的内核,故障频率fault_frequency是在运算结果表决模式下需要输出的结果,指四个内核分别对应的故障发生率。在PS中的OCM片上存储区记录每个任务周期的心跳判断器的输出,实现心跳心跳判断器的记录器功能。
心跳与故障模型的对应表
上表是根据本发明实施例的心跳与故障模型的对应图。发生的内核自身故障与应对情况一一对应,即心跳心跳判断器的故障与方案匹配功能。
与此同时故障发生率fFault也将作为评价故障的标准,规定n为内核数据或结果错误次数,N为内核参与三模冗余机制次数。
当故障发生率大于50%时,表明该内核的初始数据存储区已经存在单粒子翻转,需要执行热启动。
故障恢复是保证动态三模冗余机制正常运行的关键技术。APU的三模冗余工作核不断的向位于RPU的心跳心跳判断器弹出心跳信号。继续参考上表,当心跳心跳判断器fault_mode变量表示出现故障一,且fault_core变量指出出现故障的内核,切换系统备份内核,切换故障核和备份核的心跳信号开关。当fault_mode变量表示出现故障三,且fault_core变量指出出现故障的内核,切换系统备份内核,切换故障核和备份核的心跳信号开关,并进行A53错误内核热启动。当fault_mode表现为出现故障二和四时,重新计算该周期的任务。当fault_mode出现故障五时,APU需要执行重启。
APU重新计算该周期的任务,是在RPU发出指令,APU由当前指令跳转回PC寄存器为0时的状态。
热启动的核在启动完成后,进入等待状态,当收到RPU收到该周期运算结果,给出反馈信号时,开始并入动态三模冗余机制中。
图7是根据本发明实施例的锁步机制与回卷恢复示意图。如图7所示,R5_0和R5_1执行锁步机制,输入信号以IPI的方式传递,当锁步检查点没出现错误时,在OCM检查点备份存储该阶段的数据。当出现锁步检查点出现错误时,回卷操作可以使得CPU0和CPU1恢复到上一锁步检查点,保证作为更高层级的处理器内核自身的高可靠性。看门狗定时器是RPU在锁步机制下的补充检错措施。当回卷失效和看门狗报错时,触发系统软重启。RPU生成的正确防护加固策略通过AXI总线发送到PCAP。
回卷恢复设计是在锁步检测到故障后,在R5_0和R5_1上实现的同步故障恢复设计。备份数据的存放采用先进先出的循环队列,队列为2,即共存储两份正确的备份顺序。回卷恢复时,从队尾读取且不删除数据,读取两份备份数据,仍失效时,触发系统重置。
每次的锁步检查点进行比较,如果锁步比较的结果相同,则向回卷存储区存储该检查点的数据信息和状态信息。回卷存储区存储两份锁步检查点信息,实现二级回卷。当二级回卷失效时,RPU触发重启机制。在RPU期间,若此时APU对RPU发起了IPI中断通信,APU需等待RPU重启成功,RPU重启成功后,给APU发送信号,通知APU再次发送中断通信。
使用看门狗定时器填补RPU缺少用户代码跑飞、死锁等情形下的检测措施。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (9)
1.一种基于SoC芯片面向单粒子翻转效应的可靠性方法,其特征在于:所述可靠性方法包括:PL、APU、RPU三个应用单元;
所述PL,即FPGA,用于执行检测PL内发生软错误的任务;
所述APU包含四个处理器内核,采用APU检错机制和APU恢复机制,用于执行PL内发生的软错误识别任务;
所述RPU包含两个处理器内核,采用RPU检错机制和RPU恢复机制,用于执行针对识别到软错误生成PL防护加固技术的任务。
2.根据权利要求1所述的基于SoC芯片面向单粒子翻转效应的可靠性方法,其特征在于:所述可靠性方法包括:APU检错机制、APU恢复机制、RPU检错机制和RPU恢复机制;
所述APU检错机制,用于检测APU内发生的软错误,包含运行结果的软错误和运行时发生的软错误;
所述APU恢复机制,用于恢复APU内软错误造成的系统故障;
所述RPU检错机制,用于检测RPU内发生的软错误,即锁步机制;
所述RPU恢复机制,用于恢复RPU内软错误造成的系统故障,即二级回卷恢复机制和系统重置。
3.根据权利要求1或2所述的基于SoC芯片面向单粒子翻转效应的可靠性方法,其特征在于:所述的APU检错机制还包括:心跳监测规则、心跳监测模块、运行结果发送模块、心跳心跳判断器模块;
所述心跳监测规则用于划分心跳监测模块;
所述心跳监测模块用于监测三模冗余执行核的健康状态,生成APU中三模冗余执行核的心跳信息;
所述运行结果发送模块用于将APU内执行三模冗余执行核的运算结果和心跳信息发送给RPU内的心跳心跳判断器模块;
所述心跳心跳判断器模块用于以三选二机制比对心跳信息或运行结果,得到正确的心跳信息或运行结果。
4.根据权利要求3所述的基于SoC芯片面向单粒子翻转效应的可靠性方法,其特征在于:所述心跳监测规则包含有基本块划分规则、心跳监测点设置规则、心跳信息选取规则;
所述基本块划分规则,用于划分单粒子效应最小监测单元;
所述心跳信息选取规则,用于选取变量等信息,组成心跳信息;
所述心跳监测点设置规则,用于设置弹出心跳信息的位置。
5.根据权利要求3所述的基于SoC芯片面向单粒子翻转效应的可靠性方法,其特征在于,所述心跳监测模块包含有基本块、心跳监测点和心跳信息。
6.根据权利要求3所述的基于SoC芯片面向单粒子翻转效应的可靠性方法,其特征在于:所述心跳判断器模块包含有模式选择功能、数据比对功能、记录器功能和故障与方案匹配功能;
所述模式选择功能,用于调整心跳判断器的工作模式,比对运算结果或心跳信号;
所述数据比对功能,用于以三选二的机制比对接收到的运算结果和心跳信号,选取正确结果,描述故障模型;
所述记录器功能,用于记录工作内核的编号、APU每个内核参与工作的次数和工作异常的次数,计算内核故障频率fFault;
所述故障与方案匹配功能,用于根据故障模型匹配故障恢复方案。
7.根据权利要求6所述的基于SoC芯片面向单粒子翻转效应的可靠性方法,其特征在于:所述模式选择功能还包括三模冗余工作模式下,心跳判断器比对运算结果,选取正确的结果指向RPU;在心跳监测工作模式下,心跳判断器比对心跳信号,记录故障内核,心跳判断器的输出由RPU发回APU。
8.根据权利要求2所述的基于SoC芯片面向单粒子翻转效应的可靠性方法,其特征在于:所述的APU恢复机制,包含三个三模冗余执行核和一个备份核;
所述三模冗余执行核,用于执行三模冗余机制的工作内核;
所述备份核,用于三模冗余执行核出现故障,备份核接替故障核工作,同时备份核转为三模冗余执行核,故障核恢复之后转为备份核。
9.根据权利要求1所述的基于SoC芯片面向单粒子翻转效应的可靠性方法,其特征在于:所述可靠性方法框架还包括:RPU检错机制触发RPU恢复机制信号;
所述RPU检错机制触发RPU恢复机制信号,用于软错误触发RPU检错机制后,发出启用RPU恢复机制的信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111411909.2A CN114416436A (zh) | 2021-11-25 | 2021-11-25 | 基于SoC芯片面向单粒子翻转效应的可靠性方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111411909.2A CN114416436A (zh) | 2021-11-25 | 2021-11-25 | 基于SoC芯片面向单粒子翻转效应的可靠性方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114416436A true CN114416436A (zh) | 2022-04-29 |
Family
ID=81265783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111411909.2A Pending CN114416436A (zh) | 2021-11-25 | 2021-11-25 | 基于SoC芯片面向单粒子翻转效应的可靠性方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416436A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283314A1 (en) * | 2015-03-24 | 2016-09-29 | Freescale Semiconductor, Inc. | Multi-Channel Network-on-a-Chip |
CN111858192A (zh) * | 2020-07-22 | 2020-10-30 | 北京神舟航天软件技术有限公司 | 一种空间单粒子翻转自主容错方法 |
CN112053737A (zh) * | 2020-08-21 | 2020-12-08 | 国电南瑞科技股份有限公司 | 一种在线并行处理的软错误实时检错与恢复方法及系统 |
CN113608720A (zh) * | 2021-07-23 | 2021-11-05 | 中国电子科技集团公司第三十研究所 | 一种抗单粒子翻转的星载数据处理系统及方法 |
-
2021
- 2021-11-25 CN CN202111411909.2A patent/CN114416436A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283314A1 (en) * | 2015-03-24 | 2016-09-29 | Freescale Semiconductor, Inc. | Multi-Channel Network-on-a-Chip |
CN111858192A (zh) * | 2020-07-22 | 2020-10-30 | 北京神舟航天软件技术有限公司 | 一种空间单粒子翻转自主容错方法 |
CN112053737A (zh) * | 2020-08-21 | 2020-12-08 | 国电南瑞科技股份有限公司 | 一种在线并行处理的软错误实时检错与恢复方法及系统 |
CN113608720A (zh) * | 2021-07-23 | 2021-11-05 | 中国电子科技集团公司第三十研究所 | 一种抗单粒子翻转的星载数据处理系统及方法 |
Non-Patent Citations (1)
Title |
---|
陆正毅;丁勇;瞿仙淼;尚云海;: "一种软硬件结合的容错技术研究", 小型微型计算机系统, no. 01, 15 January 2017 (2017-01-15), pages 186 - 190186 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6938183B2 (en) | Fault tolerant processing architecture | |
US8635492B2 (en) | State recovery and lockstep execution restart in a system with multiprocessor pairing | |
Bernick et al. | NonStop/spl reg/advanced architecture | |
EP1380953B1 (en) | Fault-tolerant computer system, re-synchronization method thereof and re-synchronization program thereof | |
US7627781B2 (en) | System and method for establishing a spare processor for recovering from loss of lockstep in a boot processor | |
US8930752B2 (en) | Scheduler for multiprocessor system switch with selective pairing | |
CN112667450B (zh) | 一种可动态配置的多核处理器容错系统 | |
EP0433979A2 (en) | Fault-tolerant computer system with/config filesystem | |
JP2500038B2 (ja) | マルチプロセッサ・コンピュ―タ・システム、フォ―ルト・トレラント処理方法及びデ―タ処理システム | |
WO2020239060A1 (zh) | 错误恢复的方法和装置 | |
US8671311B2 (en) | Multiprocessor switch with selective pairing | |
US7814374B2 (en) | System and method for the capture and preservation of intermediate error state data | |
US10817369B2 (en) | Apparatus and method for increasing resilience to faults | |
US7366948B2 (en) | System and method for maintaining in a multi-processor system a spare processor that is in lockstep for use in recovering from loss of lockstep for another processor | |
EP0683456B1 (en) | Fault-tolerant computer system with online reintegration and shutdown/restart | |
US20060184840A1 (en) | Using timebase register for system checkstop in clock running environment in a distributed nodal environment | |
US8060778B2 (en) | Processor controller, processor control method, storage medium, and external controller | |
US7516359B2 (en) | System and method for using information relating to a detected loss of lockstep for determining a responsive action | |
CN108052420B (zh) | 基于Zynq-7000的双核ARM处理器抗单粒子翻转防护方法 | |
CN114416436A (zh) | 基于SoC芯片面向单粒子翻转效应的可靠性方法 | |
US10289332B2 (en) | Apparatus and method for increasing resilience to faults | |
US20060195849A1 (en) | Method for synchronizing events, particularly for processors of fault-tolerant systems | |
US7356733B2 (en) | System and method for system firmware causing an operating system to idle a processor | |
US20060107116A1 (en) | System and method for reestablishing lockstep for a processor module for which loss of lockstep is detected | |
US20070038849A1 (en) | Computing system and method |
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 |