FMA x86

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

FMA x86 bezeichnet eine Befehlssatzerweiterung für Mikroprozessoren von Intel und AMD zur Unterstützung der Fused Multiply-Add-Technik (FMA). Von AMD erfolgte hierzu erstmals eine Umsetzung in den "Bulldozer"-CPUs. Intel kündigte eine Umsetzung in künftigen Prozessoren an.

Es gibt zwei nicht miteinander kompatible Ausführungen, FMA4 und FMA3:

  • FMA4 ist die vollwertige Version, die eine Operation der Form d=a+b\times c erlaubt;
  • FMA3 erfordert dagegen, dass das Zielregister eines der Operandenregister ist, und dieser dadurch überschrieben wird.

Neue Eigenschaften[Bearbeiten]

FMA erweitert die Möglichkeiten zu Vektoroperationen und kann als Erweiterung der AVX-Befehle gesehen werden.

Neue Instruktionen[Bearbeiten]

CPUs mit FMA4[Bearbeiten]

  • Intel
    • Z. Z. ist noch unklar, ob Intel sich an FMA4 anschließt oder bei FMA3 bleiben wird.
  • AMD
    • Bulldozer-basierte Prozessoren (AMD FX), Q4/2011
    • AMD Piledriver-basierte Prozessoren (AMD FX, Trinity und Richland APUs), Q2/2012
    • AMD Steamroller-basierte Prozessoren (4. Generation A-Serie-Prozessoren, Kaveri-APUs) Q1/2014
Mnemonic Operanden Operation
VFMADDPDx xmm, xmm, xmm/m128, xmm/m128 $0 = $1×$2 + $3
VFMADDPDy ymm, ymm, ymm/m256, ymm/m256
VFMADDPSx xmm, xmm, xmm/m128, xmm/m128
VFMADDPSy ymm, ymm, ymm/m256, ymm/m256
VFMADDSD xmm, xmm, xmm/m64, xmm/m64
VFMADDSS xmm, xmm, xmm/m32, xmm/m32

CPUs mit FMA3[Bearbeiten]

Mnemonic Operanden Operation
VFMADD132PDy ymm, ymm, ymm/m256 $0 = $0×$2 + $1
VFMADD132PSy
VFMADD132PDx xmm, xmm, xmm/m128
VFMADD132PSx
VFMADD132SD xmm, xmm, xmm/m64
VFMADD132SS xmm, xmm, xmm/m32
VFMADD213PDy ymm, ymm, ymm/m256 $0 = $1×$0 + $2
VFMADD213PSy
VFMADD213PDx xmm, xmm, xmm/m128
VFMADD213PSx
VFMADD213SD xmm, xmm, xmm/m64
VFMADD213SS xmm, xmm, xmm/m32
VFMADD231PDy ymm, ymm, ymm/m256 $0 = $1×$2 + $0
VFMADD231PSy
VFMADD231PDx xmm, xmm, xmm/m128
VFMADD231PSx
VFMADD231SD xmm, xmm, xmm/m64
VFMADD231SS xmm, xmm, xmm/m32

Anwendung[Bearbeiten]

  • Nützlich für gleitkommaintensive Berechnung, vor allem im Multimedia-, wissenschaftlichen oder Finanzberechnungen. Ganzzahloperationen sollen später folgen.
  • Erhöht Parallelität und Durchsatz von Gleitkomma-SIMD-Berechnungen
  • Verringert die Registerlast durch nicht destruktive Vier-Operanden-Form (im Fall von FMA4)