浮点运算单元(FPU)简介

Float Point Unit,浮点运算单元是专用于浮点运算的协处理器,在计算领域,例如三角函数以及时域频域变换通常会用到浮点运算。当CPU执行一个需要浮点数运算的程序时,有三种方式可以执行:软件仿真器(浮点运算函数库)、附加浮点运算器和集成浮点运算单元。 区别于以往的ARM9处理器,目前基于ContexTM构架的ARM处理均集成了浮点运算单元。如下图Toradex ARM核心板产品所示,Nvidia TegraTM 2, TegraTM 3和 NXP/Freescale i.MX 6集成了VFPv3浮点运算单元。NXP/Freescale i.MX 7 集成了VFPv4浮点运算单元。ARM 浮点架构 (VFP) 为半精度、单精度和双精度浮点运算中的浮点操作提供硬件支持。它完全符合 IEEE 754 标准,并提供完全软件库支持,与 NEONTM 多媒体处理功能结合使用时,可增强图像应用程序的性能(如缩放、2D 和 3D 转换、字体生成和数字过滤)。

Colibri T20 核心板带有一个 VFPv3-D16 浮点运算单元(不带 NEON) ,而 Colibri T30 和Apalis T30 带有一个VFPv3-D32 (含有 NEON),通过以下的配置,将能够有效的提高浮点运输的效率,运算量愈大愈明显。

./ Windows CE 编译器的浮点优化

在 Visual Studio 2008环境中,你可以直接为上述核心板生成含有浮点处理器加速的代码,请在您的工程中按照以下步骤进行:

对于 WinCE 6:

打开 "Project" 菜单并选择 "Properties".

选择 "Configuration Properties : C/C++ : Advanced".

改变 "Enable floating point emulation" 为 "No".

改变 "Compile for architecture"为 "ARM5T /QRarch5t".

选择 "Configuration Properties : C/C++ : Command Line : Additional Options".

添加 "/QRfpe-"to the set of options.

关闭对话框并选择"OK".

对于 WinCE 7:

打开"Project"菜单并选择"Properties".

选择 "Configuration Properties : C/C++ : Command Line : Additional Options".

添加 "/QRfpe-" to the set of options.

关闭对话框并选择"OK".

请注意,这些功能在Visual Studio 2005 不能被实现。

./ 性能比较举例

通过Mark Riordan benchmark program我们做了一个简单c代码的性能比较程序。我们计算了这个循环所需要的时间如下,时间越短性能越好:

Module

Time

Compile Settings

Colibri PXA320 806MHz

about 3400 ms

VS08 WinCE 6 Release 默认配置.

Colibri T20 1.0GHz

about 545 ms

VS08 WinCE 6 Debug默认配置.

Colibri T20 1.0GHz

about 315 ms

VS08 WinCE 6 Release默认配置.

Colibri T20 1.0GHz

about 80 ms

VS08 WinCE 6/7 Release settings编译器的浮点优化打开

Colibri T20 1.0GHz

about 80 ms

Linux optimized GCC settings编译器的浮点优化.

Colibri T30 1.3GHz

about 60 ms

VS08 WinCE 6/7 Release settings编译器的浮点优化打开

linux arm fpu初始化,ARM处理器的浮点运算单元(FPU)相关推荐

  1. arm linux fpu,ARM处理器的浮点运算单元(FPU)

    浮点运算单元(FPU)简介 Float Point Unit,浮点运算单元是专用于浮点运算的协处理器,在计算领域,例如三角函数以及时域频域变换通常会用到浮点运算.当CPU执行一个需要浮点数运算的程序时 ...

  2. 浮点运算单元FPU能给电机控制带来什么?

    编者按:在计算领域,例如三角函数以及时域频域变换通常会用到浮点运算.当CPU执行一个需要浮点数运算的程序时,有三种方式可以执行:软件仿真器(浮点运算函数库).附加浮点运算器和集成浮点运算单元.在控制应 ...

  3. fpu测试_浮点运算单元FPU能给电机控制带来什么?

    编者按:在计算领域,例如三角函数以及时域频域变换通常会用到浮点运算.当CPU执行一个需要浮点数运算的程序时,有三种方式可以执行:软件仿真器(浮点运算函数库).附加浮点运算器和集成浮点运算单元.在控制应 ...

  4. STM32浮点运算单元(FPU)和DSP库使用

    文章目录 1. 浮点运算单元(FPU) 1.1 所用硬件 1.2 配置FPU 2. CMSIS-DSP 2.1 添加DSP库 2.2 测试 ====>>> 文章汇总(有代码汇总) & ...

  5. 关于STM32浮点运算单元FPU的小话题

    有人利用STM32芯片做些DSP处理,在启用FPU单元进行调试.验证过程中可能会遇到些小问题.小困惑,这里通过STM32F4芯片一个具体的应用示例简单分享下,希望顺便能给同仁提供些帮助或提醒. 我这里 ...

  6. STM32开启浮点运算单元FPU与DSP运算库,附性能测试

    STM32F4xx属于Cortex M4F架构,自带FPU硬件,可以加速float类型数据的加减乘除运算. 观察启动文件,发现,要启用FPU,需要启动满足两个宏:(__FPU_PRESENT == 1 ...

  7. Linux 中断管理之ARM GIC V3 初始化

    1.ARM GIC V3中断控制器介绍 GIC(Generic Interrupt Controller)是一个通用的中断控制器,用来接收硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理.G ...

  8. ARM Cortex M4使用浮点运算单元(FPU)

    1.ARM Cortex M4   ARM Cortex-M4处理器是由ARM专门开发的最新嵌入式处理器,在M3的基础上强化了运算能力,新加了浮点.DSP.并行计算等.Cortex-M4处理器的最大亮 ...

  9. 【linux系统如何安装arm交叉编译工具链】

    文章目录 前言 一.arm交叉编译器介绍 命名规则 具体编译器 二.Arm GNU Toolchain安装 总结 前言 本文简要介绍arm交叉编译器及工具链的安装方法 一.arm交叉编译器介绍 命名规 ...

最新文章

  1. java自定义注解解析及自定义注解
  2. python读取pcd点云/转numpy(python2+python3,非ROS环境)
  3. 数据库的关系运算和完整性约束
  4. 浏览器显示linux桌面,如何从Web浏览器远程监视Linux服务器和桌面
  5. 如何解决JDK的安装路径中有空格的情况
  6. 面向服务架构(SOA)和企业服务总线(ESB)
  7. MSRCRGIMP(基于GIMP版本的多尺度Retinex)
  8. C语言图书查询号系统,C语言图书查询系统.doc
  9. 洛谷oj---P3205 [HNOI2010]合唱队
  10. 「无捆绑不锁页」极度纯净win10 32位专业版下载地址
  11. 关于短信猫死机的问题程序要如何解决
  12. Windchill二次开发-自定义文件编号(1)
  13. CAShapeLayer把图片做成圆形效果
  14. centos7上装qt5.15.2
  15. 漫漫人生录 | 小圈子 | 别让自己“墙”了自己
  16. put短语(put短语归纳)
  17. 什么是MT4?(2022MT4简介)
  18. 家用计算机的普及英语作文,优秀高二英语作文:计算机
  19. 城市垃圾渗滤液除氨氮的技术分享
  20. pyecharts 标准线_pyecharts

热门文章

  1. 杭电1874————单源最短路径(dijkstra)
  2. IOS创建静态库Cocoa Touch Static Library
  3. 不支持对系统目录进行即席更新
  4. TD8.0管理员工具
  5. C语言指针的高级操作
  6. MVC基础知识2——过滤器的使用(Filter)
  7. Android开发技术周报 Issue#102
  8. 定制属于自己的自动化安装的linux系统镜像
  9. 修改ORACLE RAC的字符集(记录一下)
  10. 1.4 多项式拟合实例