FPU开启和不开启计算浮点数速度差别

前言

stm32F407支持FPU,FPU开启前后计算浮点数速度差别有多大呢?本文将通过实际测试告诉你答案。

参与运算的部分

在这里插入图片描述
上图中的x *= y就是参与运算的2个浮点数,我们将count大小设置为100万次。

计算for循环耗时

首先注释掉for循环中的x *= y,计算for循环执行100万次耗时:
在这里插入图片描述
得出来的100万次for循环耗时为23.81ms。

计算开启FPU耗时

取消x *= y的注释,开启FPU,计算for循环执行100万次FPU浮点运算耗时:
在这里插入图片描述
包括for循环在内耗时为35715us,去掉for循环的23810us,耗时为11.905ms。

计算关闭FPU耗时

取消x *= y的注释,关闭FPU,计算for循环执行100万次FPU浮点运算耗时:
在这里插入图片描述
包括for循环在内耗时为547257us,去掉for循环的23810us,耗时为523.447ms。

总结

可以看到执行相同次数的浮点运算,开启FPU是关闭FPU的44倍(523.447/11.905≈44),如果用柱形图表示的话就是下面这个效果:
在这里插入图片描述

因此,如果MCU具有FPU功能,最好将其打开提高浮点运算速度。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光飞逝的日子

感谢您的支持,让我们一起进步!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值