CN112328396B - 基于任务等级的动态自适应sopc容错方法 - Google Patents

基于任务等级的动态自适应sopc容错方法 Download PDF

Info

Publication number
CN112328396B
CN112328396B CN202011237763.XA CN202011237763A CN112328396B CN 112328396 B CN112328396 B CN 112328396B CN 202011237763 A CN202011237763 A CN 202011237763A CN 112328396 B CN112328396 B CN 112328396B
Authority
CN
China
Prior art keywords
fault
task
reconfigurable
user task
icap
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
CN202011237763.XA
Other languages
English (en)
Other versions
CN112328396A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202011237763.XA priority Critical patent/CN112328396B/zh
Publication of CN112328396A publication Critical patent/CN112328396A/zh
Application granted granted Critical
Publication of CN112328396B publication Critical patent/CN112328396B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Logic Circuits (AREA)

Abstract

本发明提出了一种基于任务等级的动态自适应SOPC容错方法,用于解决现有技术中存在的用户可用度和资源利用率较低的技术问题,实现步骤为:构建动态自适应可编程片上系统;内部配置访问端口ICAP向FPGA加载任务的全局比特流;FPGA进行区域划分;静态区域获取粒子翻转信号数量;PS端评估任务等级;PS端向ICAP发送配置信息;ICAP向动态可重构区域加载部分比特流;可重构模块执行任务;PS端判断可重构模块是否发生故障;ICAP向故障可重构模块加载部分比特流。本发明将任务执行时间、任务执行截止时间以及故障修复时间作为任务等级划分依据,具有较高的用户可用度以及资源利用率。

Description

基于任务等级的动态自适应SOPC容错方法
技术领域
本发明属于智能容错系统技术领域,涉及一种动态自适应SOPC容错方法,具体涉及一种动态自适应可编程片上系统SOPC容错方法,可应用于空间高辐射和星载环境关键片上系统容错设计。
背景技术
片上系统(SOC,System On Chip)是由单个芯片完成主要逻辑功能的嵌入式系统,可编程片上系统SOPC System On Programmable Chip是一种基于SOC同时具备现场可编程门阵列(FPGA,Field Programmable Gate Array)的特殊嵌入式系统,具有灵活的设计方式。由于SOPC具备软硬件协同系统编程的能力,因此被广泛应用于空间、星载高性能,高可靠计算系统上。
SOPC中包括以FPGA实现的可编程逻辑PL端Programmable Logic及以ARM可编程系统实现的处理器系统PS端Processor System。PS端通过嵌入式软件编程实现控制PL端,PL端负责用户任务的执行。PL端的FPGA芯片采用CMOS工艺技术制备,FPGA芯片内部包含有大量的可编程逻辑资源,控制这些编程逻辑资源的配置存储器CRAM以及存储数据的块存储器BRAM非常容易受到粒子翻转效应的影响从而产生软故障和硬故障,硬故障主要指器件在太空高辐射环境下,被太空高能粒子轰击而产生的硬件损坏故障,由于硬件结构被损坏,所以硬故障无法恢复。软故障则指同样在太空高能粒子的轰击下,并没有对器件的硬件内部结构造成物理损坏,而是导致器件的内部电路逻辑状态发生翻转以及存储器存储的数据发生随机改变,这类错误一般为随机瞬时可恢复性错误。
为了提升FPGA的可靠性和容错能力,针对粒子翻转产生的故障,国内外提出了一系列的容错方法,根据目标环境、可靠性需求、配置技术类型可以分为基于芯片制造工艺的硬件加固技术和基于系统设计改进的容错技术。
基于芯片制造工艺的硬件加固技术主要是从工艺设计方面来提高器件的容错性能。一般多为对产品的封装材料或单元结构进行抗辐射设计,增强器件对辐射的屏蔽功能。这种容错方法对工艺制造技术要求高,代价高昂,而且随着集成电路尺寸越来越小,工艺加固一旦失效就会导致整个电路的逻辑功能失效,且无法自动修复,严重时会造成系统瘫痪。
基于系统设计改进的容错技术主要从门级、系统级容错、器件级、纠检验设计入手,研究如何在发生粒子翻转的情况下使得系统能够不受影响,正常工作。包括冗余容错技术、纠检错码技术、可重构容错技术等。可重构容错技术主要采用刷新的方式对FPGA中的逻辑资源进行重配置,可以分为局部重构和全局重构。局部重构是将FPGA的逻辑资源划分为静态区域以及动态可重构区域,静态区域主要放置一些辅助用户任务执行的模块,动态可重构区域中的可重构模块执行用户任务,得到用户任务的执行结果,然后对可重构模块的执行结果进行投票,判断是否存在可重构模块发生故障,若是,则对故障可重构模块进行局部重构,实现对可重构模块的修复,否则,可重构模块将继续执行用户任务。
例如,申请公布号CN 111338833 A,名称为“一种基于BRAM检测的动态自适应SRAM型FPGA系统容错方法”,公开了一种基于BRAM检测的动态自适应SRAM型FPGA系统容错方法,该方法能够依据辐射环境的情况,计算单粒子翻转率调节系统的不同冗余结构,提高用户任务的可靠性,但其存在的不足之处在于仅依赖外部坏境辐射调节冗余结构,没有考虑用户任务执行时间、故障修复时间以及任务执行截止时间,导致用户可用度和资源的利用率较低。
发明内容
本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于任务等级的动态自适应SOPC容错方法,旨在保持较高任务可靠性的同时,提高用户可用度和资源利用率。
为实现上述目的,本发明采取的技术方案包括如下步骤:
(1)构建动态自适应可编程片上系统SOPC:
构建包括通过AXI总线连接的PS端和PL端的动态自适应可编程片上系统SOPC;所述PS端包括通过ARM可编程系统实现的控制模块;所述PL端包括存储器DDR和内部配置访问端口ICAP,以及通过FPGA实现的H个ECC BRAM故障刷新器、累加器和N个可重构模块,N≥1,H≥1;
(2)内部配置访问端口ICAP向FPGA加载用户任务A的全局比特流:
内部配置访问端口ICAP根据PS端发送的使能信号和写指令,将PS端发送的用户任务A的全局比特流加载至FPGA中;
(3)FPGA进行区域划分:
FPGA依据用户任务A的全局比特流,将所有ECC BRAM故障刷新器和累加器划分为静态区域,将N个可重构模块划分为动态可重构区域;
(4)静态区域获取粒子翻转信号数量:
(4a)静态区域中的每个ECC BRAM故障刷新器在两个时间段分别连续读取FPGA包含的块存储器BRAM中存储的n个数据
Figure BDA0002767322630000031
Figure BDA0002767322630000032
并对每次读取的数据Di 1和Di 2进行异或操作,得到校验码集合
Figure BDA0002767322630000033
Figure BDA0002767322630000034
再对
Figure BDA0002767322630000035
Figure BDA0002767322630000036
中的每个bit进行异或操作,得到校验码集合J={J1,J2,...,Ji,...,Jn},其中
Figure BDA0002767322630000037
Figure BDA0002767322630000038
分别表示两个时间段读取的包含z个字节的第i个数据,Ji表示包含Z个bit的第i个校验码,n≥1,z≥256,Z≥22;
(4b)每个ECC BRAM故障刷新器判断Ji=0是否成立,若是,则
Figure BDA0002767322630000039
未发生故障,执行步骤(4f),否则,则
Figure BDA00027673226300000310
发生故障,执行步骤(4c);
(4c)每个ECC BRAM故障刷新器判断Ji中是否存在值为1的11个bit,若是,则
Figure BDA00027673226300000311
发生单粒子翻转SEU,执行步骤(4d),否则,
Figure BDA00027673226300000312
发生多粒子翻转,执行步骤(4e);
(4d)每个ECC BRAM故障刷新器产生单粒子翻转信号sbit_err,并将sbit_err发送至累加器,同时寻找
Figure BDA00027673226300000313
中发生单粒子翻转SEU的bit,并对发生单粒子翻转SEU的bit的值进行翻转,实现对
Figure BDA00027673226300000314
的修复,再将修复后的
Figure BDA00027673226300000315
存储至块存储器BRAM中后,执行步骤(4f);
(4e)ECC BRAM故障刷新器产生多粒子翻转信号dbit_err,并将dbit_err发送至累加器;
(4f)累加器在时钟周期TSEU内对静态区域中所有ECC BRAM故障刷新器产生sbit_err的数量BSEU,以及产生sbit_err和dbit_err的总数BALL进行累计,并将BSEU和BALL通过AXI总线发送至PS端;
(5)PS端对用户任务A的任务等级进行评估:
(5a)控制模块根据BSEU和BALL计算块存储器BRAM中产生sbit_err的概率PSEU,并根据PSEU计算用户任务A从发生故障到修复故障所需的时间间隔Twait
Figure BDA0002767322630000041
其中,Nexecu表示PL端中除用户任务A外其他用户任务的可重构模块的总数量,Tconf表示可重构模块平均重置时间,
Figure BDA0002767322630000042
表示向上取整;
(5b)控制模块计算可重构模块发生故障的累计时间Tfailure和用户任务A执行完成所剩余的时间Tslack
Tfailure=TF+Twait
Tslack=Tdeadline-TA-Tfailure
其中,TF表示用户任务A中可重构模块故障后必要的容错时间,Tdeadline和TA分别表示用户任务A执行截止时间和正常运行时间;
(5c)控制模块判断TA+Trec+Trs+Twait≤Tdeadline-Tslack是否成立,若是,则将用户任务A的任务等级划分为三等,否则,执行步骤(5d),其中,Trec表示PS端加载部分比特流所需的时间,Trs表示用户任务A发生故障的可重构模块复位后执行到发生故障前相同位置所需要的时间;
(5d)控制模块判断TA+Tl≤Tdeadline-Tslack是否成立,若是,则将用户任务A的任务等级划分为二等,否则,将用户任务A的任务等级划分为一等,其中,Tl表示在用户任务A的比特流中定位故障的时间,0≤Tl≤Trec
(6)PS端向内部配置访问端口ICAP发送配置信息:
控制模块依据用户任务A的任务等级选取用户任务A的M个部分比特流,并按照从1到M的顺序对M个部分比特流进行标记,然后将M个部分比特流以及使能信号和写指令作为配置信息,通过AXI总线发送至内部配置访问端口ICAP,1≤M≤N;
(7)内部配置访问端口ICAP向动态可重构区域加载部分比特流:
内部配置访问端口ICAP依据使能信号以及写指令,将M个部分比特流加载至动态可重构区域中的M个可重构模块中,得到用户任务A的M模冗余结构;
(8)每个加载部分比特流的可重构模块执行用户任务A:
用户任务A的M模冗余结构中的每个可重构模块根据自身加载的部分比特流对用户任务A进行逻辑计算,得到用户任务A的M个执行结果,并将M个执行结果通过AXI总线发送至PS端;
(9)PS端判断每个可重构模块是否发生故障:
控制模块对每个执行结果进行投票,并通过AXI总线将得票最多的执行结果发送至用户,同时判断每个加载有部分比特流的可重构模块对应的执行结果的得票数量是否最多,若是,则该可重构模块未发生故障,并执行步骤(8),否则,依据该可重构模块的序号从存储器DDR中读取部分比特流,并通过AXI总线将读取的部分比特流,以及使能信号和写指令发送至内部配置访问端口ICAP;
(10)内部配置访问端口ICAP向发生故障的可重构模块加载部分比特流:
内部配置访问端口ICAP依据使能信号和写指令,通过读取的部分比特流对发生故障的可重构模块原有的部分比特流进行覆盖,实现本次对发生故障的可重构模块的修复。
本发明与现有技术相比,具有如下优点:
本发明的PS端通过计算用户任务A的执行时间,任务执行截止时间以及故障修复时间,对用户任务A的任务等级进行划分,控制模块依据任务等级选取用户任务A的M个部分比特流,动态调整用户任务M模冗余结构,能够在保持较高任务可靠性的同时,将剩余的资源提供给其他用户任务,克服了现有技术仅依赖SEU率划分三个等级,且在相同SEU率下,所有的用户任务均只采用一种冗余结构的灵活性较低的缺陷,有效提升用户可用度和资源利用率。
附图说明
图1是本发明的实现流程图。
图2是本发明构建的动态自适应可编程片上系统SOPC及FPGA区域划分的结构示意图。
图3是本实施例的静态区域获取粒子翻转信号数量示意图。
图4是本实施例内部配置访问端口ICAP向动态可重构区域加载部分比特流示意图。
图5是本实施例中动态调整用户任务冗余结构示意图。
具体实施方式
以下结合附图和具体实施例,对本发明作进一步详细描述。
参照图1,本发明包括如下步骤:
步骤1)构建动态自适应可编程片上系统SOPC,其结构如图2所示:
构建包括通过AXI总线连接的PS端和PL端的动态自适应可编程片上系统SOPC;所述PS端包括通过ARM可编程系统实现的控制模块;所述PL端包括存储器DDR和内部配置访问端口ICAP,以及通过FPGA实现的30个ECC BRAM故障刷新器、累加器和20个可重构模块。
步骤2)内部配置访问端口ICAP向FPGA加载用户任务A的全局比特流:
采用Vivado 2019.1开发软件通过可重构容错技术设计的用户任务A产生全局比特流以及部分比特流,其中全局比特流主要包括静态区域设计以及初始化动态可重构区域,部分比特流主要是执行用户任务A。其中本实施例中用户任务A是加法器,在一定时间间隔内读取加法器中寄存器的数值作为可重构模块的执行结果。用户需要提前将用户任务A及其他用户任务的全局比特流以及部分比特流存放至存储器DDR中,在本实施例中,PS端从存储器DDR中读取用户任务A的全局比特流,并将全局比特流通过AXI总线发送至内部配置访问端口ICAP,然后将使能信号和写指令通过AXI总线发送内部配置访问端口,内部配置访问端口ICAP依据PS端发送的使能信号及写指令,将用户任务A的全局比特流加载至FPGA中。
步骤3)FPGA进行区域划分,划分结果如图2所示:
本发明采用的是Xilinx公司的ZYNQ ZYNQ7000开发平台,该平台是基于XC7Z010-1CLG400C核心处理器的片上系统,该SOPC系统包括PS端以及PL端,PL端包括存储器DDR,内部配置访问端口ICAP及FPGA,FPGA依据步骤2)中的用户任务A的全局比特流,将30个ECCBRAM故障刷新器和1个累加器划分为静态区域,将20个可重构模块划分为动态可重构区域,累加器在用户设定的时钟周期TSEU内对静态区域中所有ECC BRAM故障刷新器检测到的粒子翻转信号进行累计,并将累计结果发送至PS端;每个可重构模块用户执行用户任务A的部分比特流。
步骤4)静态区域获取粒子翻转信号数量:
步骤4a)静态区域中的每个ECC BRAM故障刷新器在两个时间段分别连续读取FPGA包含的块存储器BRAM中存储的n=64个数据
Figure BDA0002767322630000071
Figure BDA0002767322630000072
并对读取的数据
Figure BDA0002767322630000073
Figure BDA0002767322630000074
按公式进行异或操作,得到校验码集合
Figure BDA0002767322630000075
Figure BDA0002767322630000076
其中
Figure BDA0002767322630000077
Figure BDA0002767322630000078
分别表示两个时间段读取的包含z=256个字节的第i个数据,
Figure BDA0002767322630000079
Figure BDA00027673226300000710
分别包含Z=24个bit,其中包括6个bit的列校验和16bit的行校验,剩余2bit置1。
对每次读取的数据
Figure BDA00027673226300000711
Figure BDA00027673226300000712
进行异或操作得到行校验位的计算公式为:
Figure BDA00027673226300000713
行校验位的异或规则是:s=x/2,当x%2=0时,则从Di,0开始连续对2s个字节进行异或操作,再跳过2s个字节,往复循环直至对Di中所有字节进行异或操作;否则,从
Figure BDA0002767322630000081
开始连续对2s个字节进行异或操作,再跳过2s个字节,往复循环直至对Di中所有字节进行异或操作。
其中,Ji,x表示校验码Ji中的第x个校验位,‘/’表示整除,‘%’表示取余,‘*’表示1或者2,
Figure BDA0002767322630000082
表示异或操作,0≤x≤15。
对每次读取的数据
Figure BDA0002767322630000083
Figure BDA0002767322630000084
进行异或操作得到列校验位的计算公式为:
Figure BDA0002767322630000085
Figure BDA0002767322630000086
Figure BDA0002767322630000087
Figure BDA0002767322630000088
Figure BDA0002767322630000089
Figure BDA00027673226300000810
其中,
Figure BDA00027673226300000811
表示数据
Figure BDA00027673226300000812
中第j个字节
Figure BDA00027673226300000813
的第y个bit,0≤j≤255,0≤y≤7;
再对
Figure BDA00027673226300000814
Figure BDA00027673226300000815
中的每个bit按公式进行异或操作,得到校验码集合J={J1,J2,...,Ji,...,J64}。
Figure BDA00027673226300000816
1≤k≤24
其中,
Figure BDA00027673226300000817
表示
Figure BDA00027673226300000818
的第k个校验位。
步骤4b)每个ECC BRAM故障刷新器判断Ji=0是否成立,若是,则
Figure BDA00027673226300000819
未发生故障,执行步骤4f),否则,则
Figure BDA00027673226300000820
发生故障,执行步骤4c)。
步骤4c)每个ECC BRAM故障刷新器判断Ji中是否存在值为1的11个bit,若是,则
Figure BDA0002767322630000091
发生单粒子翻转SEU,执行步骤4d),否则,
Figure BDA0002767322630000092
发生多粒子翻转DEU,执行步骤4e)。
步骤4d)每个ECC BRAM故障刷新器产生单粒子翻转信号sbit_err,并将sbit_err发送至累加器,同时将Ji中的Ji,15,Ji,13,Ji,11,Ji,9,Ji,7,Ji,5,Ji,3,Ji,1作为
Figure BDA0002767322630000093
的行地址,将0及Ji中的Ji,21,Ji,19,Ji,17的组合0,Ji,21,Ji,19,Ji,17作为
Figure BDA0002767322630000094
的列地址,寻找
Figure BDA0002767322630000095
中发生单粒子翻转SEU的bit,并对发生单粒子翻转SEU的bit的值进行翻转,实现对
Figure BDA0002767322630000096
的修复,再将修复后的
Figure BDA0002767322630000097
存储至块存储器BRAM中后,执行步骤4f)。
步骤4e)ECC BRAM故障刷新器产生多粒子翻转信号dbit_err,并将dbit_err发送至累加器。
步骤4f)累加器在时钟周期TSEU内对静态区域中所有ECC BRAM故障刷新器产生sbit_err的数量BSEU,以及产生sbit_err和dbit_err的总数BALL进行累计,并将BSEU和BALL通过AXI总线发送至PS端,如图3所示。
步骤5)PS端对用户任务A的任务等级进行评估:
步骤5a)控制模块根据BSEU和BALL计算块存储器BRAM中产生sbit_err的概率PSEU,并根据PSEU计算用户任务A从发生故障到开始被处理所需的时间间隔Twait:
Figure BDA0002767322630000098
Figure BDA0002767322630000099
其中,Nexecu表示PL端中除用户任务A外其他用户任务的可重构模块的总数量,Tconf表示可重构模块平均重置时间,
Figure BDA00027673226300000910
表示向上取整。
Twait与当时的故障可重构模块数量相关,如果有大量的故障可重构模块被需要处理,用户任务A就会等待较长时间,如果用户任务A被处理之前没有待处理的其他用户任务的故障可重构模块,用户任务A就可以被及时处理。
本实施例中由于环境中的辐射导致FPGA发生粒子翻转的概率较低,故PSEU=0,因此Twait=0。
步骤5b)控制模块计算可重构模块发生故障的累计时间Tfailure和用户任务A执行完成所剩余的时间Tslack,当有故障出现时,Tslack会因为处理故障而减小,当Tslack不足以支持任务故障后处理时间时就会超过任务的截止时间,这对于某些任务来说将造成严重的后果。
Tfailure=TF+Twait
Tslack=Tdeadline-TA-Tfailure
其中,TF表示用户任务A中可重构模块故障后必要的容错时间,Tdeadline和TA分别表示用户任务A执行截止时间和正常运行时间。
TF表示故障后必要的容错时间,根据不同的容错策略存在较大的差异:
对于三模冗余的容错策略来说,一次故障后用户任务不间断,TF=0,由于可以不立即对故障进行修复,此处Twait=0。
对于双模热备份,则要考虑故障模块定位花费的时间,此时TF=Tl,由于也可以不立即对故障进行修复,此处Twait=0。
当采用单模执行加冷备份容错策略时,TF=Trec+Trs,由于任务需要重配置后才能继续执行,其中,Trec表示PS端加载部分比特流所需的时间,Trs表示用户任务A发生故障的可重构模块复位后执行到发生故障前相同位置所需要的时间。
本实施例中,Tdeadline=20s,Tl=5s,Trec=5s,Trs=3,TA=18s,TF=0s故Tslack=Tdeadline-TA-TF=20s-18s=2s。
步骤5c)控制模块判断TA+Trec+Trs+Twait≤Tdeadline-Tslack是否成立,若是,则将用户任务A的任务等级划分为三等,否则,执行步骤(5d)。
步骤5d)控制模块判断TA+Tl≤Tdeadline-Tslack是否成立,若是,则将用户任务A的任务等级划分为二等,否则,将用户任务A的任务等级划分为一等。
本实施例中Tdeadline-Tslack=20s-2s=18s,任务等级划分为三等的计算公式得:TA+Trec+Trs=18s+5s+3s=26s≤Tdeadline-Tslack=18s不成立,故进行下一个任务等级判断。任务等级划分为二等的计算公式:TA+Tl=18s+5s=23s≤TA=18s不成立,故用户任务A的任务可靠性划分为一等。
其中,当用户任务A的任务等级被评定为一等时,采用的容错策略是经典的三模冗余策略,属于主动冗余,PS端将用户任务A的三个部分比特流通过内部配置访问端口ICAP加载至可重构模块中实现,旨在检测和屏蔽故障,并保证任务在故障发生时不间断执行,实现强实时性容错,对应于实时可靠性级别任务。
当用户任务A的任务等级被评定为二等时,采用的容错策略时双模冗余策略,属于半主动冗余,PS端将用户任务A的两个部分比特流通过内部配置访问端口ICAP加载至可重构模块中实现,相比于三模冗余,它无法做到故障屏蔽和故障状态下任务完全的不间断执行,但能以尽快的速度让伴随副本接管任务执行,对应于低延时容错级别任务。
当用户任务A的任务等级被评定为三等时,采用的策略是单模无冗余策略,属于被动冗余,PS端将用户任务A的一个部分比特流通过内部配置访问端口ICAP加载至可重构模块中实现,由于单模无冗余策略只有一个可重构模块在执行用户任务A,该策略的具有较低额实时性及可靠性,故障发生后需要一定地时间重启伴随副本执行,适用于高延迟容错级别的任务。
步骤6)PS端向内部配置访问端口ICAP发送配置信息:
控制模块依据用户任务A的任务等级从存储器DDR中读取用户任务A的3个部分比特流,并以序号1,2,3对三个部分比特流进行标记,并将3个部分比特流以及使能信号和写指令作为配置信息,通过AXI总线发送至内部配置访问端口ICAP,其中使能信号和写指令与上文一致。
步骤7)内部配置访问端口ICAP向动态可重构区域加载部分比特流:
内部配置访问端口ICAP依据使能信号以及写指令,将3个部分比特流加载至动态可重构区域中的3个可重构模块中,且每一个部分比特流只能加载到一个可重构模块中,以此得到用户任务A的三模冗余结构,如图4所示。
步骤8)每个加载部分比特流的可重构模块执行用户任务A:
用户任务A的三模冗余结构中的每个可重构模块根据自身加载的部分比特流对用户任务A进行逻辑计算,得到用户任务A的3个执行结果,并将3个执行结果通过AXI总线发送至PS端;
步骤9)PS端判断每个可重构模块是否发生故障:
控制模块对每个执行结果进行投票,并通过AXI总线将得票最多的执行结果发送至用户,同时判断每个加载有部分比特流的可重构模块对应的执行结果的得票数量是否最多,若是,则该可重构模块未发生故障,并执行步骤8),否则,依据该可重构模块的序号从存储器DDR中读取部分比特流,并通过AXI总线将读取的部分比特流,以及使能信号和写指令发送至内部配置访问端口ICAP,其中使能信号及写指令与上述一致。
步骤10)内部配置访问端口ICAP向发生故障的可重构模块加载部分比特流:
内部配置访问端口ICAP依据使能信号和写指令,通过读取的部分比特流对发生故障的可重构模块原有的部分比特流进行覆盖,实现本次对发生故障的可重构模块的修复。
FPGA片上软故障主要是位翻转故障,根据翻转出现的位置可以分为三类:第一是逻辑功能配置位(LUT、MUX、PIP)翻转故障,是主要的故障类型,占所有敏感位故障80%以上;第二是块存储器单元位(BRAM、FF、LUT用作分布式RAM时)翻转故障,也较为常见,但通常发生在非敏感位,仅有极低的概率导致功能的失效,通常不需要特定缓解;第三是架构位(ICAP、JTAG、复位和时钟线)翻转故障,发生概率极小但通常会导致整个片上系统功能失效。上述翻转故障多是暂时的,使用SEM IP核可以修复的概率大于99.7%。
SEM IP核不仅能对配置存储器CRAM进行检测及修复,同时可以向配置存储器CRAM中注入故障,模拟辐射环境中的粒子翻转。
SEM IP核处于观察模式下,能够对配置存储器CRAM进行检测及修复,SEM IP核可以同时检测发生在配置存储器CRAM中的单粒子翻转核多粒子翻转,但仅能对单粒子翻转进行修复。向SEM IP核中输入指令O将SEM IP核的模式设置为观察模式,在该模式下,SEM IP核实时对配置存储器CRAM中的数据进行检测,SEM IP核对单粒子翻转的检测原理与ECCBRAM故障刷新器类似,也是通过ECC校验和循环冗余校验得到两个校验码,然后对两个校验码进行异或操作得到结果校验码,通过判断结果校验码的状态,进行对单粒子翻转及多粒子翻转的检测。当出现单粒子翻转时,SEM IP核能够自行检测及修复,当发生多粒子翻转时,SEM IP核仅能进行检测,不能修正。
SEM IP核处于暂态模式下,不能对配置存储器CRAM中的数据进行检测,但是却能对指定的地址的数据进行翻转,实现软故障注入。向SEM IP核中加载故障注入指令I以及故障注入地址,SEM IP核依据故障注入指令,对故障注入地址中的内容进行翻转,完成SEM IP核对系统的软故障注入。
本实施例中用SEM IP核向FPGA中的配置存储器CRAM注入故障,模拟配置存储器CRAM中发生粒子翻转。假设用户任务B初次任务等级评定为二等时,采用双模冗余结构,此处使用SEM IP核模拟故障注入,则在步骤10)之后,用户任务B需要再次进行任务等级评估,则由于Tdeadline保持不变,但Tslack减少,故用户任务B在第二轮任务等级评估时,从二等转换为一等,故需要将用户任务B从双模冗余结构转换为三模冗余,故PS端将关闭信号发送至动态可重构区域中的空闲模块或任务等级较低的可重构模块,关闭可重构模块中的用户任务,同时从存储器DDR中读取用户任务B的部分比特流,并将该部分比特流、使能信号以及写指令通过AXI总线发送至内部配置访问端口ICAP,ICAP将用户任务B的部分比特流加载至可重构模块中,实现用户任务B的三模冗余结构,如图5所示。优势分析:
相关研究指出,在SOPC中PL端使用Xilinx公司的SEM IP核可以检测并修复99.7%的软错误,其中仅有0.3%的软错误发生在不常用位置而未被检出,这些软错误中仅有1%~5%的概率会造成故障发生,这些故障可以通过三模冗余或双模备份进行检出。本实施例在PL端采用SEM IP核并结合不同的冗余容错方式对软错误进行检测和修复,针对SEM IP核无法检测出0.3%的软错误所造成的故障也可以通过冗余容错方式检出,并且所有检出的软错误可以100%修复。综上所述,本发明设计的容错方法针对软故障的检出率大于99.7%,故障修复率达到100%,平均可用性在99.985%到99.997%之间,因此在可靠性方面,本实施例与现有技术相比进一步提升,同时在用户可用度及资源利用率上有较高的提升。
本实施例中主要基于任务的时效要求匹配相应的冗余策略,比所有用户任务采用一种冗余策略的方法平衡了系统可靠性和性能。在同等资源条件下,随着辐射强度的增加,满足任务的可靠性要求前提下调度性能会明显提升;在同等可靠性条件下,随着辐射强度的增加,资源利用率明显提升。不失一般性,采用以下例子进一步说明:在辐射强度最坏条件下,采用全三模冗余策略的方法会消耗大量的资源,采用本实施例中的方法可以在达到同等可靠性条件下降低资源用量,增加系统性能。同理,在辐射强度正常和较坏情况下,也体现出相同的优势。综上所述,无论在正常辐射环境,较坏辐射环境或者最坏辐射环境下,用户任务的可靠性可以得到最大保证,系统性能和可调度性进一步提升。

Claims (5)

1.一种基于任务等级的动态自适应SOPC容错方法,其特征在于,包括如下步骤:
(1)构建动态自适应可编程片上系统SOPC:
构建包括通过AXI总线连接的PS端和PL端的动态自适应可编程片上系统SOPC;所述PS端包括通过ARM可编程系统实现的控制模块;所述PL端包括存储器DDR和内部配置访问端口ICAP,以及通过FPGA实现的H个ECC BRAM故障刷新器、累加器和N个可重构模块,N≥1,H≥1;
(2)内部配置访问端口ICAP向FPGA加载用户任务A的全局比特流:
内部配置访问端口ICAP根据PS端发送的使能信号和写指令,将PS端发送的用户任务A的全局比特流加载至FPGA中;
(3)FPGA进行区域划分:
FPGA依据用户任务A的全局比特流,将所有ECC BRAM故障刷新器和累加器划分为静态区域,将N个可重构模块划分为动态可重构区域;
(4)静态区域获取粒子翻转信号数量:
(4a)静态区域中的每个ECC BRAM故障刷新器在两个时间段分别连续读取FPGA包含的块存储器BRAM中存储的n个数据
Figure FDA0002767322620000011
Figure FDA0002767322620000012
并对每次读取的数据
Figure FDA0002767322620000013
Figure FDA0002767322620000014
进行异或操作,得到校验码集合
Figure FDA0002767322620000015
Figure FDA0002767322620000016
再对
Figure FDA0002767322620000017
Figure FDA0002767322620000018
中的每个bit进行异或操作,得到校验码集合J={J1,J2,...,Ji,...,Jn},其中
Figure FDA0002767322620000019
Figure FDA00027673226200000110
分别表示两个时间段读取的包含z个字节的第i个数据,Ji表示包含Z个bit的第i个校验码,n≥1,z≥256,Z≥22;
(4b)每个ECC BRAM故障刷新器判断Ji=0是否成立,若是,则
Figure FDA00027673226200000111
未发生故障,执行步骤(4f),否则,则
Figure FDA00027673226200000112
发生故障,执行步骤(4c);
(4c)每个ECC BRAM故障刷新器判断Ji中是否存在值为1的11个bit,若是,则
Figure FDA0002767322620000021
发生单粒子翻转SEU,执行步骤(4d),否则,
Figure FDA0002767322620000022
发生多粒子翻转,执行步骤(4e);
(4d)每个ECC BRAM故障刷新器产生单粒子翻转信号sbit_err,并将sbit_err发送至累加器,同时寻找
Figure FDA0002767322620000023
中发生单粒子翻转SEU的bit,并对发生单粒子翻转SEU的bit的值进行翻转,实现对
Figure FDA0002767322620000024
的修复,再将修复后的
Figure FDA0002767322620000025
存储至块存储器BRAM中后,执行步骤(4f);
(4e)ECC BRAM故障刷新器产生多粒子翻转信号dbit_err,并将dbit_err发送至累加器;
(4f)累加器在时钟周期TSEU内对静态区域中所有ECC BRAM故障刷新器产生sbit_err的数量BSEU,以及产生sbit_err和dbit_err的总数BALL进行累计,并将BSEU和BALL通过AXI总线发送至PS端;
(5)PS端对用户任务A的任务等级进行评估:
(5a)控制模块根据BSEU和BALL计算块存储器BRAM中产生sbit_err的概率PSEU,并根据PSEU计算用户任务A从发生故障到修复故障所需的时间间隔Twait
Figure FDA0002767322620000026
其中,Nexecu表示PL端中除用户任务A外其他用户任务的可重构模块的总数量,Tconf表示可重构模块平均重置时间,
Figure FDA0002767322620000027
表示向上取整;
(5b)控制模块计算可重构模块发生故障的累计时间Tfailure和用户任务A执行完成所剩余的时间Tslack
Tfailure=TF+Twait
Tslack=Tdeadline-TA-Tfailure
其中,TF表示用户任务A中可重构模块故障后必要的容错时间,Tdeadline和TA分别表示用户任务A执行截止时间和正常运行时间;
(5c)控制模块判断TA+Trec+Trs+Twait≤Tdeadline-Tslack是否成立,若是,则将用户任务A的任务等级划分为三等,否则,执行步骤(5d),其中,Trec表示PS端加载部分比特流所需的时间,Trs表示用户任务A发生故障的可重构模块复位后执行到发生故障前相同位置所需要的时间;
(5d)控制模块判断TA+Tl≤Tdeadline-Tslack是否成立,若是,则将用户任务A的任务等级划分为二等,否则,将用户任务A的任务等级划分为一等,其中,Tl表示在用户任务A的比特流中定位故障的时间,0≤Tl≤Trec
(6)PS端向内部配置访问端口ICAP发送配置信息:
控制模块依据用户任务A的任务等级选取用户任务A的M个部分比特流,并按照从1到M的顺序对M个部分比特流进行标记,然后将M个部分比特流以及使能信号和写指令作为配置信息,通过AXI总线发送至内部配置访问端口ICAP,1≤M≤N;
(7)内部配置访问端口ICAP向动态可重构区域加载部分比特流:
内部配置访问端口ICAP依据使能信号以及写指令,将M个部分比特流加载至动态可重构区域中的M个可重构模块中,得到用户任务A的M模冗余结构;
(8)每个加载部分比特流的可重构模块执行用户任务A:
用户任务A的M模冗余结构中的每个可重构模块根据自身加载的部分比特流对用户任务A进行逻辑计算,得到用户任务A的M个执行结果,并将M个执行结果通过AXI总线发送至PS端;
(9)PS端判断每个可重构模块是否发生故障:
控制模块对每个执行结果进行投票,并通过AXI总线将得票最多的执行结果发送至用户,同时判断每个加载有部分比特流的可重构模块对应的执行结果的得票数量是否最多,若是,则该可重构模块未发生故障,并执行步骤(8),否则,依据该可重构模块的序号从存储器DDR中读取部分比特流,并通过AXI总线将读取的部分比特流,以及使能信号和写指令发送至内部配置访问端口ICAP;
(10)内部配置访问端口ICAP向发生故障的可重构模块加载部分比特流:
内部配置访问端口ICAP依据使能信号和写指令,通过读取的部分比特流对发生故障的可重构模块原有的部分比特流进行覆盖,实现本次对发生故障的可重构模块的修复。
2.根据权利要求1所述的基于任务等级的动态自适应SOPC容错方法,其特征在于,步骤(4a)中所述的并对每次读取的数据
Figure FDA0002767322620000041
Figure FDA0002767322620000042
进行异或操作,以及对
Figure FDA0002767322620000043
Figure FDA0002767322620000044
中的每个bit进行异或操作,其中:
对每次读取的数据
Figure FDA0002767322620000045
Figure FDA0002767322620000046
进行异或操作得到行校验位的计算公式为:
Figure FDA0002767322620000047
行校验位的异或规则是:s=x/2,若是x%2=0,从Di,0开始连续对2s个字节进行异或操作,再跳过2s个字节,往复循环直至对Di中所有字节进行异或操作;否则从
Figure FDA0002767322620000048
开始连续对2s个字节进行异或操作,再跳过2s个字节,往复循环直至对Di中所有字节进行异或操作;
其中,Ji,x表示校验码Ji中的第x个校验位,‘/’表示整除,‘%’表示取余,‘*’表示1或者2,Di,j表示Di中的第j个字节,
Figure FDA0002767322620000049
表示异或操作,0≤x≤Z-6;
对每次读取的数据
Figure FDA00027673226200000410
Figure FDA00027673226200000411
进行异或操作得到列校验位的计算公式为:
Figure FDA00027673226200000412
Figure FDA00027673226200000413
Figure FDA0002767322620000051
Figure FDA0002767322620000052
Figure FDA0002767322620000053
Figure FDA0002767322620000054
其中,
Figure FDA0002767322620000055
表示数据
Figure FDA0002767322620000056
中第j个字节
Figure FDA0002767322620000057
的第y个bit,1≤j≤z,0≤y≤7;
Figure FDA0002767322620000058
Figure FDA0002767322620000059
中的每个bit进行异或操作的计算公式为:
Figure FDA00027673226200000510
1≤i≤n,1≤k≤Z
其中,
Figure FDA00027673226200000511
表示
Figure FDA00027673226200000512
的第k个校验位。
3.根据权利要求1所述的基于任务等级的动态自适应SOPC容错方法,其特征在于,步骤(4d)中所述的寻找
Figure FDA00027673226200000513
中发生单粒子翻转SEU的bit,实现过程为:ECC BRAM故障刷新器将Ji中的Ji,Z-7,Ji,Z-9,...,Ji,Z-a,...,Ji,1作为
Figure FDA00027673226200000514
的行地址,将0及Ji中的Ji,Z-1,Ji,Z-3,Ji,Z-5的组合0,Ji,Z-1,Ji,Z-3,Ji,Z-5作为
Figure FDA00027673226200000515
的列地址,寻找
Figure FDA00027673226200000516
中发生单粒子翻转SEU的bit,其中7≤a≤Z-1,且a为奇数。
4.根据权利要求1所述的基于任务等级的动态自适应SOPC容错方法,其特征在于,步骤(5a)中所述的计算块存储器BRAM中产生sbit_err的概率PSEU,计算公式为:
Figure FDA00027673226200000517
5.根据权利要求1所述的基于任务等级的动态自适应SOPC容错方法,其特征在于,步骤(6)中所述的控制模块依据用户任务A的可靠性级别选取用户任务A的M个部分比特流,选取方法为:
当用户任务A的任务等级为三等时,选取用户任务A的一个部分比特流;
当用户任务A的任务等级为二等时,选取用户任务A的两个部分比特流;
当用户任务A的任务等级为一等时,选取用户任务A的三个部分比特流。
CN202011237763.XA 2020-11-09 2020-11-09 基于任务等级的动态自适应sopc容错方法 Active CN112328396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011237763.XA CN112328396B (zh) 2020-11-09 2020-11-09 基于任务等级的动态自适应sopc容错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011237763.XA CN112328396B (zh) 2020-11-09 2020-11-09 基于任务等级的动态自适应sopc容错方法

Publications (2)

Publication Number Publication Date
CN112328396A CN112328396A (zh) 2021-02-05
CN112328396B true CN112328396B (zh) 2022-10-21

Family

ID=74316905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011237763.XA Active CN112328396B (zh) 2020-11-09 2020-11-09 基于任务等级的动态自适应sopc容错方法

Country Status (1)

Country Link
CN (1) CN112328396B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527362A (zh) * 2021-02-08 2021-03-19 鹏城实验室 Fpga测试程序更新方法、装置、电子设备及存储介质
CN113018698B (zh) * 2021-02-26 2023-03-28 上海联影医疗科技股份有限公司 单粒子翻转修复方法、装置、放疗系统、电子设备及介质
CN115629916B (zh) * 2022-12-23 2023-03-14 湖南博匠信息科技有限公司 一种基于Zynq的业务程序故障恢复方法
CN116483586B (zh) * 2023-06-21 2023-09-26 广东广宇科技发展有限公司 一种基于动态数组的数据高效处理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763519B1 (en) * 1999-05-05 2004-07-13 Sychron Inc. Multiprogrammed multiprocessor system with lobally controlled communication and signature controlled scheduling
EP2257876A1 (fr) * 2008-02-08 2010-12-08 Commissariat à l'Énergie Atomique et aux Énergies Alternatives Methode de prechargement dans une hierarchie de memoires des configurations d'un systeme heterogene reconfigurable de traitement de l'information
CN102521062A (zh) * 2011-11-29 2012-06-27 西安空间无线电技术研究所 可全面在线自检测单粒子翻转的软件容错方法
CN107817439A (zh) * 2016-09-13 2018-03-20 北京航空航天大学 一种基于sram型fpga敏感因子的功能失效时间评估方法
EP3609108A1 (en) * 2018-08-09 2020-02-12 Tata Consultancy Services Limited Method and system for message based communication and failure recovery for fpga middleware framework
CN111338833A (zh) * 2020-02-19 2020-06-26 北京航空航天大学 一种基于bram检测的动态自适应sram型fpga系统容错方法
CN111694789A (zh) * 2020-04-22 2020-09-22 西安电子科技大学 嵌入式可重构异构测定方法、系统、存储介质、处理器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763519B1 (en) * 1999-05-05 2004-07-13 Sychron Inc. Multiprogrammed multiprocessor system with lobally controlled communication and signature controlled scheduling
EP2257876A1 (fr) * 2008-02-08 2010-12-08 Commissariat à l'Énergie Atomique et aux Énergies Alternatives Methode de prechargement dans une hierarchie de memoires des configurations d'un systeme heterogene reconfigurable de traitement de l'information
CN102521062A (zh) * 2011-11-29 2012-06-27 西安空间无线电技术研究所 可全面在线自检测单粒子翻转的软件容错方法
CN107817439A (zh) * 2016-09-13 2018-03-20 北京航空航天大学 一种基于sram型fpga敏感因子的功能失效时间评估方法
EP3609108A1 (en) * 2018-08-09 2020-02-12 Tata Consultancy Services Limited Method and system for message based communication and failure recovery for fpga middleware framework
CN111338833A (zh) * 2020-02-19 2020-06-26 北京航空航天大学 一种基于bram检测的动态自适应sram型fpga系统容错方法
CN111694789A (zh) * 2020-04-22 2020-09-22 西安电子科技大学 嵌入式可重构异构测定方法、系统、存储介质、处理器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Self-Adaptive SEU Mitigation System for FPGAs;Robért Glein,Bernhard Schmidt,Florian Rittner,Jürgen Teich;《IEEE XPlore》;20140724;全文 *
SRAM型FPGA空间应用的可靠性设计方法;周凯等;《南通大学学报(自然科学版)》;20160920;第15卷(第03期);全文 *

Also Published As

Publication number Publication date
CN112328396A (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
CN112328396B (zh) 基于任务等级的动态自适应sopc容错方法
US7328377B1 (en) Error correction for programmable logic integrated circuits
US7539926B1 (en) Method of correcting errors stored in a memory array
US7334159B1 (en) Self-testing RAM system and method
US9092349B2 (en) Storage of codeword portions
WO2021208341A1 (zh) 一种电力二次设备内存位翻转的检测恢复方法及系统
CN108062259B (zh) Mcu内部数据存储ecc处理系统及其处理方法
EP2770507B1 (en) Memory circuits, method for accessing a memory and method for repairing a memory
US7302619B1 (en) Error correction in a cache memory
CN106708655B (zh) 基于二维纠错码的内存加固方法及电路
WO2017131700A1 (en) Row repair of corrected memory address
US10489244B2 (en) Systems and methods for detecting and correcting memory corruptions in software
CN113608720B (zh) 一种抗单粒子翻转的星载数据处理系统及方法
US8707133B2 (en) Method and apparatus to reduce a quantity of error detection/correction bits in memory coupled to a data-protected processor port
CN111338833A (zh) 一种基于bram检测的动态自适应sram型fpga系统容错方法
JP5486139B2 (ja) ソフトエラーのクリティカリティの分類およびクリティカリティに基づくソフトエラーの緩和
US7240272B2 (en) Method and system for correcting errors in a memory device
Jin et al. TMR group coding method for optimized SEU and MBU tolerant memory design
RU2327236C2 (ru) Оперативное запоминающее устройство с высокой степенью отказоустойчивости
CN109947608B (zh) 一种fpga加法树单粒子翻转故障检测方法及装置
TWI509622B (zh) 具分散錯誤功能的記憶體及其分散錯誤位元的方法
Kajmakovic et al. Challenges in Mitigating Errors in 1oo2D Safety Architecture with COTS Micro-controllers
US10122384B2 (en) Logical interleaver
US10673464B1 (en) Encoding and decoding information for detecting and correcting bit errors
CN115878365A (zh) 内存纠错方法、装置及相关设备

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