ARM的Float 浮点技术

ARM 172浏览

 Come From:

http://www.arm.com/zh/products/processors/technologies/vector-floating-point.php

浮点

ARM 浮点体系结构 (VFP) 为半精度、单精度和双精度浮点运算中的浮点操作提供硬件支持。它完全符合 IEEE 754 标准,并提供完全软件库支持。 

ARM VFP 的浮点功能为汽车动力系统、车身控制应用和图像应用(如打印中的缩放、转换和字体生成以及图形中的 3D 转换、FFT 和过滤)中使用的浮点运算提供增强的性能。下一代消费类产品(如 Internet 设备、机顶盒家庭网关)可直接从
ARM VFP 受益。

VFP 应用

  • 汽车控制应用
    • 动力系统
    • ABS、牵引控制和主动悬架
  • 3D 图形
    • 数字消费类产品
    • 机顶盒、游戏
  • 图像
  • 工业控制系统
    • 运动控制

工业和汽车领域中的许多实时控制应用都得益于 ARM VFP 提供的浮点的动态范围和准确性。汽车动力系统、防抱死制动系统、牵引控制和主动悬架系统都是关键业务应用,它们对准确性和可预测性的要求必不可少。

VFP 体系结构版本

在 ARMv7 体系结构之前,VFP 代表矢量浮点体系结构,并曾用于矢量运算。

对于许多应用来说,设置硬件浮点至关重要,并且硬件浮点可用作使用高级设计工具(如 MatLab、MATRIXx 和 LabVIEW)直接对系统建模和派生应用程序代码的片上系统 (SoC) 设计流程的一部分。在与

NEON™
多媒体处理功能结合使用时,硬件浮点可用于增强图像应用程序的性能(如缩放、2D 和 3D 转换、字体生成和数字过滤)。

迄今为止,VFP 主要有三个版本:

<ol>
VFPv1 已废弃。要获取详细信息,可向 ARM 发送相关请求。 VFPv2 是对 ARMv5TE、ARMv5TEJ 和 ARMv6 体系结构中 ARM 指令集的可选扩展。
VFPv3 是对 ARMv7-A 和 ARMv7-R 配置文件中 ARM、Thumb&reg; 和 ThumbEE 指令集的可选扩展。可使用 32 个或 16 个双字长寄存器实现 VFPv3。术语 VFPv3-D32 和 VFPv3-D16
用于区别这两个实现选项。可通过半精度扩展对 VFPv3 进行扩展,这些扩展可在半精度浮点和单精度浮点之间提供双向转换功能。</ol>

 
 

VFP9-S

ARM VFP9-S 可合成矢量浮点 (VFP) 协处理器与所有
ARM9
E™ 系列处理器内核兼容。它支持单精度和双精度浮点;使 ARM 支持软件完全符合 IEEE754,或仅使硬件大致符合 IEEE754。支持代码包含两个组件:例行程序库和一组异常处理程序,前者执行未实现函数(如超越函数)和一些支持的函数(如除法),后者用于处理异常情况。

VFP9-S 功能

  • ARM VFPv2 ISA
  • 16 个双精度或 32 个单精度寄存器
  • 使 ARM 支持代码完全符合 IEEE754
  • 大致符合 IEEE754 的快速运行模式(仅硬件)
  • 与 VFP10 和 VFP11 保持二进制兼容
  • 可使用支持工具和单元库移植到任何工艺
  • 100 - 130K 门
  • 1.3Mflops/MHz
  • 面积 <1.0mm2 TSMC 0.13µm G
  • 180 - 210MHz(最坏情况)TSMC 0.13µm G
  • <0.4mW/MHz(典型情况)功耗 TSMC 0.13µm G

VFP9-S 优点

ARM VFP9-S 的矢量处理功能对汽车动力系统、车身控制应用和图像应用(如打印中的缩放、转换和字体生成以及图形中的 3D 转换、FFT 和过滤)中使用的浮点体系结构提供增强的性能。下一代消费类产品(如 Internet 设备、机顶盒和家庭网关)可直接从 ARM VFP9 受益。

VFP9-S 应用

  • 汽车控制应用:
    • 动力系统
    • ABS、牵引控制和主动悬架
  • 3D 图形
  • 数字消费类产品
    • 机顶盒、游戏机
  • 图像
    • 激光打印机、静态数码相机、数码摄像机
  • 工业控制系统
    • 运动控制

工业和汽车领域中的许多实时控制应用都得益于 ARM VFP9-S 提供的浮点的动态范围和准确性。汽车动力系统、防抱死制动系统、牵引控制和主动悬架系统都是关键业务应用,它们对准确性和可预测性的要求必不可少。

将 VFP9-S 整合到 SoC 设计中后,可使开发速度更快、性能更可靠,因为技术计算工具(MatLab、MATRIxx 等)可用于直接对系统建模和派生应用程序代码,从而确保系统设计行为更准确、可靠和可预测。