VFP アーキテクチャは、単精度と倍精度の両方の演算をサポートします。多くの演算がスカラ形式とベクタ形式のいずれでも実行できます。このアーキテクチャの複数のバージョンがサポートされています。以下はそのサンプルです。
-
VFPv2 は以下で実装されています。
-
VFP10 リビジョン 1(ARM10200E プロセッサによって提供)。
-
VFP9-S(ARM926E、ARM946E、および ARM966E プロセッサの別ライセンスオプションとして入手可能)。
-
VFP11(ARM1136JF-S、ARM1176JZF-S、および ARM11 MPCore プロセッサに付属)。
-
VFPv3 は、Cortex-A8 プロセッサなど、ARM アーキテクチャバージョン 7 以降で実装されています。VFPv3 は、浮動小数点の例外をトラップできないことを除いては、VFPv2 と下位互換性があります。ソフトウェアサポートコードは一切不要です。VFPv3 には 32 本の倍精度レジスタが備わっています。
-
半精度拡張機能をサポートしている VFPv3_fp16、VFPv3。これらの拡張機能は半精度浮動小数点数と単精度浮動小数点数間の双方向の変換を行います。単精度浮動小数点数をサポートしているすべての Advanced SIMD および VFP で実装できます。
-
VFPv3-D16 は 16 倍精度レジスタを備えた VFPv3 の実装です。これは NEON テクノロジを使用せずに VFP をサポートしている ARM アーキテクチャ v7 プロセッサで実装されます。
-
VFPv3U は、浮動小数点例外のトラップが可能な VFPv3 の実装の 1 つです。ソフトウェアサポートコードが必要となります。
-
VFPv4 は、Cortex-A7 プロセッサなど、ARM アーキテクチャバージョン 7 以降で実装されています。VFPv4 には 32 本の倍精度レジスタが備わっています。VFPv4 では、VFPv3 の機能に半精度拡張機能と融合型積和演算命令とが追加されています。
-
VFPv4-D16 は 16 倍精度レジスタを備えた VFPv4 の実装です。これは NEON テクノロジを使用せずに VFP をサポートしている ARM アーキテクチャ v7 プロセッサで実装されます。
-
VFPv4U は、浮動小数点例外のトラップが可能な VFPv4 の実装の 1 つです。ソフトウェアサポートコードが必要となります。
注
VFP アーキテクチャの一部の実装では、実装に固有の追加機能が提供される場合があります。例えば、VFP コプロセッサハードウェアには、例外条件を記述するための追加のレジスタが含まれていることがあります。この追加機能は、サブアーキテクチャ機能と呼ばれます。