【技术实现步骤摘要】
一种基于SIMD向量化的数据流软错误检测方法
[0001]本专利技术属于软件可靠性和可信软件领域,特别是一种基于SIMD向量化的数据流软错误检测方法。
技术介绍
[0002]宇宙高能粒子辐射引起的计算机硬件的瞬时故障会导致软错误。如α粒子和高能中子,这种粒子的撞击持续时间很短,但会造成P
‑
N结翻转,从而引起存储元件的位翻转或中断组合逻辑电路的异常,这种现象称为单粒子翻转(Single Event Upset,SEU)。这可能会影响应用程序的输出,甚至使计算机系统崩溃。工作在辐射环境中的SRAM单元很容易发生软错误。目前已有通过冗余电路设计和错误检查码(Error Correcting Code,ECC)等技术来提高其可靠性。随着集成度的提高,处理器尺寸的减小和电源电压的降低,技术的发展为处理器提供了更好的性能和能效,但是这又使得计算机系统更容易受到软错误的影响,对可靠性提出了重大挑战。
[0003]目前已有不少针对软错误的硬件和软件检测方法。例如高速缓存,大型SRAM阵列等技术均有较高的软错误率(Soft Error Rate,SER),这已经通过电路技术和使用校验验码来解决。已有的研究表明,SRAM的软错误率(Soft Error Rate,SER)在几代技术中大致保持不变,一般为10
‑4FIT/bit。组合逻辑电路更能抵抗由于错误掩蔽而引起的瞬时故障,即使存在软错误,逻辑电路的输出值也可能不会改变,在结果被锁定之前,电路也可以自己从错误中“恢复”。基于硬件的解决方案在性能方面 ...
【技术保护点】
【技术特征摘要】
1.一种基于SIMD向量化的数据流软错误检测方法,其特征在于,包括以下步骤:步骤1,给定一个源程序,由编译器将其编译成中间代码,并构建控制流图和分析数据流指令依赖关系,得到指令依顺序;步骤2,根据加固策略,针对程序中的重要变量,判断变量数据的类型,并对这些数据应用相应的数据向量化方法,得到向量数据;步骤3,根据步骤1中得到的指令依赖关系顺序依次处理每条指令,对其应用相应的指令向量化方法,得到向量指令;步骤4,根据加固策略中的检查点应用相应的检查点规则,生成错误检测代码,将存在于向量中的原数据和冗余数据做比较从而实现错误检测。2.根据权利要求1所述的基于SIMD向量化的数据流软错误检测方法,其特征在于,步骤2中所述数据向量化方法,具体包括:数据在程序中分为四类,包括标量类型,向量类型,数组类型和结构体类型:a)标量类型数据D
b
:<value,type>,表示数据类型为type,数据的值是value,基本标量数据类型有byte,char,short,int,long,float,double;b)向量类型数据VD:<(value1,value2,
…
,value
M
),type>,表示包含M个类型为type的元素;c)数组D
arr
:表示n个元素D
b
的集合,其中的类型type都相同,1≤i≤n;d)结构体D
st
:表示由D
b
和D
arr
组成的复合数据;所述标量类型,向量类型归属为基本类型;(1)基本类型数据向量化转换方法VEC_D_B(D
b
,K),该方法定义为:对于任意D
b
=<value,type>,有:VEC_D_B(D
b
,K):VD
b
=<(value1,
…
,value
K
),type>式中,D
b
为应用该方法的数据,value
i
=value,1≤i≤K,K为转换后向量的长度,VD
b
为D
b
向量化后的数据;(2)数组向量化转换方法VEC_D_ARR(D
arr
,K),该方法定义为:对于任意有:VEC_D_ARR(D
arr
,K):式中,D
arr
为应用该方法的数组,VD
arr
为D
arr
向量化后的数组;(3)结构体数据向量化转化方法VEC_D_ST(D
st
,K),该方法定义为:对于任意有:VEC_D_ST(D
st
,K):
式中,D
st
为应用该方法的结构体,VD
st
为D
st
向量化后的结构体。3.根据权利要求1或2所述的基于SIMD向量化的数据流软错误检测方法,其特征在于,步骤3中所述指令向量化方法,具体包括:指令I分成如下五种类型:a)运算指令I
arith
:<op,od1,od2,dest>,语义为dest=od
1 op od2,其中od1,od2为指令I
arith
的操作数,dest为结果操作数;b)加载指令I
ld
:<load,addr,val>,语义为将内存地址为addr处的值存放到变量val中,其中load为加载指令的符号;c)存储指令I
st
:<store,val,addr>,语义为将val的值存储到地址为addr内存处,其中store为加载指令的符号;d)跳转指令I
jmp
:<jmp,cond,tgt>,语义为当cond条件为真时,程序跳转到tgt处执行,其中jmp为跳转指令的符号;e)其他指令I
ot
:<op,od1,
…
,od
n
>,op为操作数,od
i
为指令的操作数;(1)运算指令向量化方法VEC_I_ARITH(I
arith
,K),该方法定义为:对于任意I
...
【专利技术属性】
技术研发人员:庄毅,张磊,顾晶晶,郭黎烨,曹子宁,
申请(专利权)人:南京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。