ユーザ用ツール

サイト用ツール


opengl:movilecpu

文書の過去の版を表示しています。


ARM vfp

  • vfpv2 : ARMv6 時代の FPU 。vector mode が特徴だったが、次の ARMv7 で廃止予定。
  • vfpv3 : Double は 32 個まで持てる。特に NEON とセットならば 32個必須。
  • vfpv3-fp16 : half 型 (16bit float) 変換拡張命令に対応している。
  • vfpv3-d16 : 一見拡張機能のように見えるが逆。本来 32個持てる double レジスタが半分の 16個しかないという意味。つまり VFPv2 相当。
  • vfpv4 : half が標準搭載となった。IEEE754 対応の FMA も追加されている。
  • vfpv4-d16 : double が半分のバージョン。おそらく NEON 無しのもの。組み込み向けの Cortex-A5 等に搭載されている。half/double は対応している。
  • fpv4-sp-d16 : vector 廃止(?) の sclar fpu。doulbe は 16個。Cortex-M4 専用? vfpv4-d16 との違いがわからない。
  • RB[3:0] = D32 (1=D16, 2=D32)
  • SP[7:4] = Single precision supported in VFP
  • DP[11:8] = Double precision supported in VFP
  • TE[15:12] = Trap
  • D[19:16] = VFP hardware divide supported
  • SR[23:20] = VFP hardware square root supported
  • SV[27:24] = VFP short vector supported
  • RM[31:28] = All VFP rounding modes supported
  • FZ[0:3] = Full denormal arithmetic supported for VFP
  • DN[7:4] = Propagation of NaN values supported for VFP
  • NLS[11:8] = Load/store instructions supported for NEON
  • NI[15:12] = Integer instructions supported for NEON
  • NSP[19:16] = Single precision floating-point instructions supported for NEON
  • NHP[23:20] = NEON half-precision operations supported
  • VHP[27:24] = VFP half-precision operations supported
  • FMA[31:28] = Fused Multiply Accumulate suported
MVFR0 MVFR1
VFP NEON VFP
D32 VSP VDP TE DIV SQR SV RM FZ NaN NLS NI NSP NHP VHP FMA
ARM1176JZF-S vfpv2 -
Cortex-A8 vfpv3+NEON - - - -
Cortex-A9 vfpv3-D16 - - - - - - -
Cortex-A9 vfpv3+NEON - - -
Cortex-A5 vfpv4-D16 - - - - - - -
Cortex-A5 vfpv4+NEON - -

MVFR0, MVFR1

SV 未対応の場合 FPSCR Len に設定すると例外が発生する。

FPSCR はユーザーモードでもアクセスできる。

opengl/movilecpu.1310108838.txt.gz · 最終更新: 2011/07/08 16:07 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki