[发明专利]基于任务等级的动态自适应SOPC容错方法有效
申请号: | 202011237763.X | 申请日: | 2020-11-09 |
公开(公告)号: | CN112328396B | 公开(公告)日: | 2022-10-21 |
发明(设计)人: | 王泉;杨鹏飞;李泽宇;梁金鹏;高歌;王振翼;林成民 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F11/07;G06F15/78 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 陈宏社;王品华 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 任务 等级 动态 自适应 sopc 容错 方法 | ||
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个数据和并对每次读取的数据和进行异或操作,得到校验码集合和再对和中的每个bit进行异或操作,得到校验码集合J={J1,J2,...,Ji,...,Jn},其中和分别表示两个时间段读取的包含z个字节的第i个数据,Ji表示包含Z个bit的第i个校验码,n≥1,z≥256,Z≥22;
(4b)每个ECC BRAM故障刷新器判断Ji=0是否成立,若是,则未发生故障,执行步骤(4f),否则,则发生故障,执行步骤(4c);
(4c)每个ECC BRAM故障刷新器判断Ji中是否存在值为1的11个bit,若是,则发生单粒子翻转SEU,执行步骤(4d),否则,发生多粒子翻转,执行步骤(4e);
(4d)每个ECC BRAM故障刷新器产生单粒子翻转信号sbit_err,并将sbit_err发送至累加器,同时寻找中发生单粒子翻转SEU的bit,并对发生单粒子翻转SEU的bit的值进行翻转,实现对的修复,再将修复后的存储至块存储器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:
其中,Nexecu表示PL端中除用户任务A外其他用户任务的可重构模块的总数量,Tconf表示可重构模块平均重置时间,表示向上取整;
(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依据使能信号和写指令,通过读取的部分比特流对发生故障的可重构模块原有的部分比特流进行覆盖,实现本次对发生故障的可重构模块的修复。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011237763.X/1.html,转载请声明来源钻瓜专利网。