最終更新:2017-03-16 (木) 16:23:02 (2559d)
VFP
Top / VFP
Vector Floating Point
ARM浮動小数点アーキテクチャ
ARMアーキテクチャのコプロセッサ拡張。
半精度?(v3以降)・単精度?・倍精度?の浮動小数点演算?機能を提供
メモ
- http://www.oidon.net/linux/arm-floating-point
- ARMプロセッサコアは、浮動小数点演算のためのハードウェアを含んでいません。代わりに、浮動小数点演算は以下のいずれかの方法で実現されます。
Floating Point Accelerator (FPA?)
- ARM7500FEなどで使用されていたようです。現在は使われていません。
Vector Floating Point (VFP)
Floating Point Unit (FPU)
- VFPと互換性を持ちます。ARM Cortex-A9, ARM Cortex-R4Fに実装されます。
- FPUは、ARMv7浮動小数点アーキテクチャのVFPv3-D16実装です
その他
- 上記に挙げたもの以外に、チップメーカ独自の浮動小数点演算コプロセッサがある
バージョン
以前
- ARMv7より前のアーキテクチャでは、VFPはVector Floating-point Architectureを表し、ベクタ演算に使用されていました。
VFPv1?
- 廃止。 詳細については、ARMまでお問い合わせください。
VFPv2
- ARMv5TE、ARMv5TEJ?、ARMv6 で利用可能
- VFP9-S? - ARM926E?、ARM946E?、およびARM966E?プロセッサの別ライセンスオプションとして入手可能
- VFP10?
VFPv3
- VFPv3を実装するARMv7世代以降ではモダンなSIMD命令セットであるAdvanced SIMD拡張命令 (NEON) が導入されたため、現在ではベクタモードの利用は推奨されていない
- 現在のARMアーキテクチャにおけるVFPの位置づけはスカラ専用の浮動小数点演算コプロセッサであり、SIMD演算用途についてはNEONに道を譲っている。
- ARM Cortex-A8の実装はパイプライン化されておらず非常に低速 (VFP Lite?)。
VFPv3-D16
VFPv4
- ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A15 で利用可能。
- VFPv3の機能に半精度拡張機能と融合型積和算命令とが追加されています
VFPv4
- 無印は全機能実装。VFPv3-FP16相当のhalf型(FP16)機能も対応する
VFPv4-D16?
- half型に対応するが、NEONがなく、倍精度レジスターは半分の16本のみの廉価版。D16〜D31にアクセスすると未定義命令例外。
- ARM Cortex-A5などに存在する
NEON
- レジスタはVFPレジスタとして用意されている32本の64ビットレジスタを用いる