您的位置 首页 编程

STM32L476 FPU 履行功率之比较浅析

1.前言本应用笔记基于STM32L476平台,通过实际测量来评定使能FPU时浮点运算效率的情况。2.测试工具STM32L476Nucleo,示波器3.测试方法MCU…

1.前语

本应用笔记依据STM32L4″>STM32L476渠道,经过实践丈量来评定使能FPU“>FPU时浮点运算功率的状况。
2.测验东西
STM32L476 Nucleo,示波器
3.测验办法
MCU 运转频率设置为16MHz,依据下面公式1 做N次浮点运算,分使能FPU和制止FPU两种状况,测验完结相同运算所需求的时刻。在例程中经过翻转IO PB13 来标定完结运算所需求的时刻。

3.1 测验代码
依据公式1,别离界说A、B、C 三个常量,如下:
/* Private constants———————————————————*/
#define A_CONSTANT(0.285f)
#define B_CONSTANT(0.443f)
#define C_CONSTANT(0.698f)
依据公式做对应的运算并经过GPIOC Pin0 输出,测定对应耗费时刻:
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13, GPIO_PIN_SET);
temp = A_CONSTANT*x*x +B_CONSTANT*x + C_CONSTANT;
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13, GPIO_PIN_RESET);
3.2 代码剖析
依据测验用的一元二次方程,经过IAR 编译后,汇编成果如下:
3.2.1 FPU 使能
从汇编代码能够看出,使能FPU 的状况下,完结一元二次方程的运算只需求7 条单周期指令,一共耗时为7 个Clock 周期。经过IAR 的政策形式运转,需求的CPU cycles 为7.

3.2.2 FPU 制止
从汇编代码能够看出,未使能FPU 的状况下,完结该一元二次方程的运算需求履行14 条指令,其间包含3 条两周期指令,6 条单周期指令,5 条程序跳转指令。经过IAR 的政策形式运转,需求的CPU cycles 为207.

4.测验数据及定论
IO完结两次翻转耗时6.48 uS;
使能FPU 时,除掉IO 翻转耗时,完结一次运算时刻为6.52 uS(13 uS -6.48 uS),
如下图示:

制止FPU 时,除掉IO 翻转耗时,完结一次运算时刻为87.4 uS(93.88 uS -6.48 uS),如下图示:

小结下,依据上面相关测验数据大致可得出如下定论:

• 完结相同的一元二次方程运算,制止FPU时所耗费的时刻约为使能FPU时耗费时刻的13.4 倍左右。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/266538.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部