一种安全浮点运算方法和系统技术方案

技术编号:31317609 阅读:21 留言:0更新日期:2021-12-12 23:57
一种安全浮点运算方法,采用硬浮点计算方法和定点计算方法两种相异的计算方法进行运算,对硬浮点计算结果和定点计算结果进行差异比较,以保证浮点计算功能安全性。本发明专利技术确保系统浮点运算安全,对运算资源消耗少,效率高。效率高。效率高。

【技术实现步骤摘要】
一种安全浮点运算方法和系统


[0001]本专利技术涉及一种安全浮点运算方法和系统。

技术介绍

[0002]目前,在安全平台上,浮点运算功能在功能安全设计上分为两种实现方法,一种是把该功能不作为安全功能来考虑,另一种是采用软浮点方式,浮点参数的传递也是通过寄存器或者堆栈完成,通常采用整形数模拟浮点通用函数调用和库函数调用方式来实现。
[0003]这二类方式都有相应缺点。第一种实现方式会大大限制安全平台的使用场景,使得平台应用范围受限。第二种实现方式在运算时,需要消耗大量的运算资源,效率低,实时性差,参数传入传出没有经过验证,其功能安全存在一定的缺陷。

技术实现思路

[0004]本专利技术的目的在于提供一种安全浮点运算方法和系统,确保系统浮点运算安全,对运算资源消耗少,效率高。
[0005]为了达到上述目的,本专利技术提供一种安全浮点运算方法,采用硬浮点计算方法和定点计算方法两种相异的计算方法进行运算,对硬浮点计算结果和定点计算结果进行差异比较,以保证浮点计算功能安全性。
[0006]所述硬浮点计算方法包含:调用标准的浮点算术运算函数对浮点数进行计算,得到浮点数直接计算结果。
[0007]所述定点计算方法包含:将浮点数转换为定点数,调用定点运算函数对生成的定点数进行计算,得到定点数计算结果。
[0008]将浮点数转换为定点数时,对数据进行校验,校验通过后才能进行定点数计算。
[0009]所述校验方法包含:将转换得到的定点数逆变转换成浮点数,将该浮点数与初始浮点数进行比较,如果误差在允许的阈值范围内,则认为转换是正确的,校验通过。
[0010]将定点数计算结果转换成浮点数,得到浮点数间接计算结果。
[0011]所述差异比较方法包含:将浮点数直接计算结果与浮点数间接计算结果进行比较,如果误差在允许的阈值范围内,则判定结果正确。
[0012]差异比较后,输出浮点数直接计算结果或定点数计算结果。
[0013]本专利技术还提供一种安全浮点运算系统,包含:
[0014]硬浮点计算模块,用于执行硬浮点计算;
[0015]定点计算模块,用于执行定点计算;
[0016]差异比较模块,用于比较硬浮点计算结果和定点计算结果。
[0017]所述安全浮点运算系统还包含:转换模块,用于实现浮点数和定点数的相互转换。
[0018]所述硬浮点计算模块内置在处理器中。
[0019]所述定点计算模块、差异比较模块和转换模块是处理器中的软件逻辑操作模块。
[0020]本专利技术采用硬浮点计算方法和定点计算方法两种相异的计算方法进行运算,对硬
浮点计算结果和定点计算结果进行差异比较,以保证浮点计算功能安全性,对运算资源消耗少,效率高。
附图说明
[0021]图1是本专利技术一个实施例中浮点运算方法的流程图。
具体实施方式
[0022]以下根据图1具体说明本专利技术的较佳实施例。
[0023]本专利技术提供一种浮点运算方法,包含以下步骤:
[0024]步骤S1、采用通用计算CPU内置的标准的硬浮点计算单元(FPU)对传入的浮点数(x1,x2

)进行计算,获得浮点数计算结果(Y)。仅有硬浮点计算,不能实现浮点安全计算。
[0025]步骤S2、将传入的浮点数(x1,x2

)转换为定点数(x_1,x_2),对定点数(x_1,x_2)进行计算,获得定点数计算结果(Z),将定点数计算结果(Z)转换为浮点数(Z1)。
[0026]步骤S3、将浮点数(Z1)与先前计算结果(Y)进行比较,来检查是否存在计算错误(即,浮点数(Z1)与先前计算结果(Y)之间的差值是否超过允许的最大误差)。
[0027]本专利技术采用了相异的浮点计算方法(浮点计算和定点计算),对两种迥然不同的方法的计算结果进行比较,来获得浮点计算功能安全性。
[0028]在本专利技术的一个实施例中,输入浮点数,标准浮点运算模块1调用标准的浮点算术运算函数对浮点数进行计算,得到浮点数直接计算结果。转换模块3将输入的浮点数转换成定点数,在转换过程中,还需要对数据进行校验,校验的步骤包含:转换模块3将转换得到的定点数逆变转换成浮点数,将该浮点数与初始输入的浮点数进行比较,如果精度误差在允许的阈值范围内,则认为转换是正确的,可以进行后续步骤,从而保证了后续定点浮点转换的正确性,如果精度误差超出了阈值范围,则认为转换失败,停止后续操作,进入错误处理,输出错误码,返回浮点无效值(NAN)。定点运算模块2调用定点运算函数对生成的定点数进行计算,得到定点计算结果。转换模块3将定点计算结果转换成浮点数,得到浮点数间接计算结果。所述转换模块3的精度与需要转换的浮点数和定点数的精度相匹配。差异比较模块4将浮点数直接计算结果与浮点数间接计算结果进行比较,如果精度误差在允许的阈值范围内(即,|浮点数直接计算结果

浮点数间接计算结果|≤阈值E),则判定结果正确,输出浮点数直接计算结果,否则就判定运算失败,输出错误码,返回浮点无效值(NAN)。本专利技术采用了安全系统设计中的多样性(相异性)计算方法,对浮点进行了两次差异的计算法,对计算结果进行比较,如结果在允许误差范围内,就可输出。
[0029]与现有技术相比,本专利技术具有以下创新点及有益效果:
[0030]1、硬浮点计算单元对浮点数没有范围限制,可以是单精度或者双精度浮点数。
[0031]2、在将浮点数转换成定点数时进行了校验,确保不存在错误转换。
[0032]3、定点数运算不依赖于任何硬件,基本上不消耗运算资源(内存、堆栈),采用基本的逻辑操作就可完成运算,运算资源少,对运算周期时间影响极小,耗时短,不影响系统实时性能,对硬件要求不高,通过相异性比较实现了在单处理器下实现浮点运算的软件功能安全,解决了以往存在的安全缺陷。
[0033]4、计算结果也可以采用定点数编码,直接输出定点数计算结果用于后期报文传
输。
[0034]需要说明的是,在本专利技术的实施例中,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述实施例,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0035]尽管本专利技术的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本专利技术的限制。在本领域技术人员阅读了上述内容后,对于本专利技术的多种修改和替代都将是显而易见的。因此,本专利技术的保护范围应由所附的权利要求来限定。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种安全浮点运算方法,其特征在于,采用硬浮点计算方法和定点计算方法两种相异的计算方法进行运算,对硬浮点计算结果和定点计算结果进行差异比较,以保证浮点计算功能安全性。2.如权利要求1所述的安全浮点运算方法,其特征在于,所述硬浮点计算方法包含:调用标准的浮点算术运算函数对浮点数进行计算,得到浮点数直接计算结果。3.如权利要求1所述的安全浮点运算方法,其特征在于,所述定点计算方法包含:将浮点数转换为定点数,调用定点运算函数对生成的定点数进行计算,得到定点数计算结果。4.如权利要求3所述的安全浮点运算方法,其特征在于,将浮点数转换为定点数时,对数据进行校验,校验通过后才能进行定点数计算。5.如权利要求4所述的安全浮点运算方法,其特征在于,所述校验方法包含:将转换得到的定点数逆变转换成浮点数,将该浮点数与初始浮点数进行比较,如果误差在允许的阈值范围内,则认为转换是正确的,校验通过。6.如权利要求3所述的安全浮点运算方法,其特征在于,将定点数计算结果转换成浮点数,得到浮点数间接...

【专利技术属性】
技术研发人员:王澜张立鹏周庭梁
申请(专利权)人:卡斯柯信号有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1