„F16C“ – Versionsunterschied
[ungesichtete Version] | [gesichtete Version] |
→Weblinks: Übernahme |
→Technische Information: korrekter Artikel |
||
(21 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
⚫ | '''F16C''' (früher auch '''CVT16''') bezeichnet eine [[Befehlssatzerweiterung]] für [[Mikroprozessor]]en von [[Intel]] und [[AMD]] zur leichteren Umrechnung von [[Gleitkommazahl]]en unterschiedlicher [[Präzision]].<ref>{{Internetquelle|url=https://blogs.msdn.microsoft.com/chuckw/2012/09/11/directxmath-f16c-and-fma/|titel=DirectXMath: F16C and FMA|autor=Chuck Walbourn|werk=[[Microsoft Developer Network]]|datum=2012-09-11|zugriff=2017-01-11}}</ref> |
||
<noinclude> |
|||
{{Löschantragstext|tag=11|monat=Januar|jahr=2017|titel=F16C|text=''Kein artikel und keine erkennbare Relevanz'' [[Benutzer:Wassertraeger|<span style="font-family: Comic Sans; color:#1144BB;">Wassertraeger</span>]] (إنغو) [[Datei:Fish icon grey.svg |20px|verweis=Benutzer Diskussion:Wassertraeger]] 12:44, 11. Jan. 2017 (CET)}} |
|||
----</noinclude> |
|||
⚫ | '''F16C''' (früher auch '''CVT16''') bezeichnet eine [[Befehlssatzerweiterung]] für [[Mikroprozessor]]en von [[Intel]] und [[AMD]] zur leichteren Umrechnung von [[Gleitkommazahl |
||
== Geschichte == |
== Geschichte == |
||
Am 1. Mai 2009 wurde diese Befehlssatzerweiterung von AMD unter dem Namen CVT16 angekündigt. Sie stellt in |
Am 1. Mai 2009 wurde diese Befehlssatzerweiterung von AMD unter dem Namen CVT16 angekündigt. Sie stellt in überarbeiteter Form einige Befehle der [[SSE5]]-Erweiterung zur Verfügung und fungiert als Bindeglied zu Intels [[Advanced Vector Extensions|AVX]]-Erweiterung. Seit 2012 werden diese Befehle auch von Intel verwendet.<ref>{{Literatur|Autor=R. L. Uy|Titel=Beyond multi-core: A survey of architectural innovations on microprocessor|Sammelwerk=2014 International Conference on Humanoid, Nanotechnology, Information Technology, Communication and Control, Environment and Management (HNICEM)|Datum=2014-11-01|Seiten=1–6|DOI=10.1109/HNICEM.2014.7016212}}</ref> |
||
== Funktion == |
== Funktion == |
||
Die Befehlssatzerweiterung erleichtert das Konvertieren von |
Die Befehlssatzerweiterung erleichtert das Konvertieren von Gleitkommazahlen halber Genauigkeit (16 Bit) in Gleitkommazahlen einfacher Genauigkeit (32 Bit) und umgekehrt, womit auch eine Verlagerung von [[Streaming SIMD Extensions|XMM-Registern]] in YMM-Register verbunden ist.<ref>{{Literatur|Autor=Daniel Kusswurm|Titel=Modern X86 Assembly Language Programming|Verlag=[[Apress]]|Datum=2014|Seiten=342 ff.|ISBN=9781484200643|DOI=10.1007/978-1-4842-0064-3}}</ref> |
||
<!-- |
<!-- |
||
The CVT16 instruction set, announced by AMD on May 1, 2009, is an extension to the 128-bit SSE core instructions in the x86 and AMD64 instruction set. |
The CVT16 instruction set, announced by AMD on May 1, 2009, is an extension to the 128-bit SSE core instructions in the x86 and AMD64 instruction set. |
||
Zeile 18: | Zeile 14: | ||
--> |
--> |
||
== Technische Information== |
== Technische Information == |
||
Es gibt Varianten des Befehlssatzes, die vier Gleitkommawerte in ein XMM-Register oder acht Gleitkommawerte in ein XMM-Register |
Es gibt Varianten des Befehlssatzes, die vier Gleitkommawerte in ein XMM-Register oder acht Gleitkommawerte in ein XMM-Register und ein YMM-Register verschieben. |
||
Die Befehlsnamen VCVTPH2PS und |
Die Befehlsnamen VCVTPH2PS und VCVTPS2PH 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 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. |
||
Zeile 42: | Zeile 38: | ||
--> |
--> |
||
== Weblinks== |
== Weblinks == |
||
* |
* [http://developer.amd.com/wordpress/media/2012/10/New-Bulldozer-and-Piledriver-Instructions.pdf New Bulldozer and Piledriver Instructions] |
||
* |
* [http://blogs.msdn.com/b/chuckw/archive/2012/09/11/directxmath-f16c-and-fma.aspx DirectX math F16C and FMA] |
||
* |
* [http://developer.amd.com/wordpress/media/2012/10/24592_APM_v11.pdf AMD64 Architecture Programmer's Manual Volume 1] |
||
* |
* [http://developer.amd.com/wordpress/media/2012/10/24593_APM_v21.pdf AMD64 Architecture Programmer's Manual Volume 2] |
||
* |
* [http://developer.amd.com/wordpress/media/2008/10/24594_APM_v3.pdf AMD64 Architecture Programmer's Manual Volume 3] |
||
* |
* [http://developer.amd.com/wordpress/media/2012/10/26568_APM_v41.pdf AMD64 Architecture Programmer's Manual Volume 4] |
||
* |
* [http://developer.amd.com/wordpress/media/2012/10/26569_APM_v51.pdf AMD64 Architecture Programmer's Manual Volume 5] |
||
* |
* [http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf IA32 Architectures Software Developer Manual] |
||
== Einzelnachweise == |
== Einzelnachweise == |
Aktuelle Version vom 15. Oktober 2021, 13:33 Uhr
F16C (früher auch CVT16) bezeichnet eine Befehlssatzerweiterung für Mikroprozessoren von Intel und AMD zur leichteren Umrechnung von Gleitkommazahlen unterschiedlicher Präzision.[1]
Geschichte
Am 1. Mai 2009 wurde diese Befehlssatzerweiterung von AMD unter dem Namen CVT16 angekündigt. Sie stellt in überarbeiteter Form einige Befehle der SSE5-Erweiterung zur Verfügung und fungiert als Bindeglied zu Intels AVX-Erweiterung. Seit 2012 werden diese Befehle auch von Intel verwendet.[2]
Funktion
Die Befehlssatzerweiterung erleichtert das Konvertieren von Gleitkommazahlen halber Genauigkeit (16 Bit) in Gleitkommazahlen einfacher Genauigkeit (32 Bit) und umgekehrt, womit auch eine Verlagerung von XMM-Registern in YMM-Register verbunden ist.[3]
Technische Information
Es gibt Varianten des Befehlssatzes, die vier Gleitkommawerte in ein XMM-Register oder acht Gleitkommawerte in ein XMM-Register und ein YMM-Register verschieben. Die Befehlsnamen VCVTPH2PS und VCVTPS2PH 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.
Weblinks
- New Bulldozer and Piledriver Instructions
- DirectX math F16C and FMA
- AMD64 Architecture Programmer's Manual Volume 1
- AMD64 Architecture Programmer's Manual Volume 2
- AMD64 Architecture Programmer's Manual Volume 3
- AMD64 Architecture Programmer's Manual Volume 4
- AMD64 Architecture Programmer's Manual Volume 5
- IA32 Architectures Software Developer Manual
Einzelnachweise
- ↑ Chuck Walbourn: DirectXMath: F16C and FMA. In: Microsoft Developer Network. 11. September 2012, abgerufen am 11. Januar 2017.
- ↑ R. L. Uy: Beyond multi-core: A survey of architectural innovations on microprocessor. In: 2014 International Conference on Humanoid, Nanotechnology, Information Technology, Communication and Control, Environment and Management (HNICEM). 1. November 2014, S. 1–6, doi:10.1109/HNICEM.2014.7016212.
- ↑ Daniel Kusswurm: Modern X86 Assembly Language Programming. Apress, 2014, ISBN 978-1-4842-0064-3, S. 342 ff., doi:10.1007/978-1-4842-0064-3.