„F16C“ – Versionsunterschied

[ungesichtete Version][ungesichtete Version]
K 28 Versionen von en:F16C importiert: WP:IMP * Special:Diff/161525166 * user:Avernarius
(kein Unterschied)

Version vom 11. Januar 2017, 18:49 Uhr

Dieser Artikel wurde zur Löschung vorgeschlagen.

Falls du Autor des Artikels bist, lies dir bitte durch, was ein Löschantrag bedeutet, und entferne diesen Hinweis nicht.
Zur Löschdiskussion

Begründung: Kein artikel und keine erkennbare Relevanz Wassertraeger (‏إنغو‎) 12:44, 11. Jan. 2017 (CET)

F16C (früher auch CVT16) bezeichnet eine Befehlssatzerweiterung für Mikroprozessoren von Intel und AMD zur leichteren Umrechnung von Fließkommazahlen unterschiedlicher Präzision.[1]

Geschichte

Am 1. Mai 2009 wurde diese Befehlssatzerweiterung von AMD unter dem Namen CVT16 angekündigt. Sie stellt in überarbeiterter Form einige Befehle der SSE5-Erweiterung zur Verfügung und fungiert als Bindegleid zu Intels AVX-Erweiterung. Heute werden diese Befehle auch von Intel verwendet.

Funktion

Die Befehlssatzerweiterung erleichtert das Konvertieren von Fließkommazahlen halber Genauigkeit (64Bit) in Fließkommazahlen ganzer Genauigkeit (128Bit) und umgekehrt, womit auch eine Verlagerung von XMM-Registern in YMM-Register verbunden ist.


Technische Information

Es gibt Varianten des Befehlssatzes, die vier Gleitkommawerte in ein XMM-Register oder acht Gleitkommawerte in ein XMM-Register in ein YMM-Register verschieben. Die Befehlsnamen VCVTPH2PS und VCVTPH2PS sind Kürzel für "vector convert packed half to packed single", (Vektorumwandlung halb gepackt nach einfach gepackt) und umgekehrt.

  • VCVTPH2PS xmmreg,xmmrm64 wandelt vier Gleitkommawerte halber Genauigkeit im Speicher oder in der unteren Hälfte eines XMM-Registers in vier Gleitkommawerte einfacher Genauigkeit in einem XMM-Register.
  • VCVTPH2PS ymmreg,xmmrm128 wandelt acht Gleitkommawerte halber Genauigkeit im Speicher oder einem XMM-Registers (der unteren Hälfte eines YMM-Registers) in acht Gleitkommawerte einfacher Genauigkeit eines YMM-Registers.
  • VCVTPS2PH xmmrm64,xmmreg,imm8 wandelt vier Gleitkommawerte einfacher Genauigkeit in einem XMM-Register in Gleitkommawerte halber Genauigkeit im Speicher oder der unteren Hälfte eines XMM-Registers.
  • VCVTPS2PH xmmrm128,ymmreg,imm8 wandelt acht Gleitkommawerte einfacher Genauigkeit in einem YMM-Register in Gleitkommawerte halber Genauigkeit im Speicher oder der unteren Hälfte eines XMM-Registers.

Das unmittelbare 8-bit-Argument imm8 bei VCVTPS2PH gibt die Form der Abrundung vor. Die Werte '0' - '4' legen die Rundungform fest (Nächster Wert / abrunden / aufrunden / löschen). Dadurch wird auch der Modus für MXCSR.RC vorgegeben. Das Bit 29 des Registers ECX zeigt die Unterstützung für diese Befehle nach Abfrage durch CPUID mit EAX=1 an.


  • New Bulldozer and Piledriver Instructions [1]
  • DirectX math F16C and FMA [2]
  • AMD64 Architecture Programmer's Manual Volume 1 [3]
  • AMD64 Architecture Programmer's Manual Volume 2 [4]
  • AMD64 Architecture Programmer's Manual Volume 3 [5]
  • AMD64 Architecture Programmer's Manual Volume 4 [6]
  • AMD64 Architecture Programmer's Manual Volume 5 [7]
  • IA32 Architectures Software Developer Manual [8]

Einzelnachweise

  1. https://blogs.msdn.microsoft.com/chuckw/2012/09/11/directxmath-f16c-and-fma/