<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=FMA_x86</id>
	<title>FMA x86 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=FMA_x86"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=FMA_x86&amp;action=history"/>
	<updated>2026-06-04T08:56:58Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=FMA_x86&amp;diff=2539295&amp;oldid=prev</id>
		<title>imported&gt;Crazy1880: linkfix</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=FMA_x86&amp;diff=2539295&amp;oldid=prev"/>
		<updated>2025-03-11T08:08:53Z</updated>

		<summary type="html">&lt;p&gt;linkfix&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Belege fehlen}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;FMA x86&amp;#039;&amp;#039;&amp;#039; ist eine [[Befehlssatz]]erweiterung für [[Mikroprozessor]]en von [[Intel]] und [[AMD]] zur Unterstützung der [[Fused multiply-add|Fused-Multiply-Add]]-Technik (FMA). Von AMD erfolgte hierzu erstmals eine Umsetzung in den [[AMD Bulldozer|„Bulldozer“-CPUs]]. Intel setzte dies erst in den [[Intel-Haswell-Mikroarchitektur|Haswell]]-Prozessoren ein.&lt;br /&gt;
&lt;br /&gt;
Es gibt zwei nicht miteinander kompatible Ausführungen, FMA4 und FMA3:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;FMA4&amp;#039;&amp;#039;&amp;#039; ist die vollwertige Version, die eine Operation der Form &amp;lt;math&amp;gt;d=a+b\cdot c&amp;lt;/math&amp;gt; erlaubt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;FMA3&amp;#039;&amp;#039;&amp;#039; erfordert dagegen, dass das Zielregister eines der Operandenregister ist, und dieser dadurch überschrieben wird.&lt;br /&gt;
&lt;br /&gt;
== Neue Eigenschaften ==&lt;br /&gt;
FMA erweitert die Möglichkeiten zu Vektoroperationen und kann als Erweiterung der [[AVX]]-Befehle gesehen werden.&lt;br /&gt;
&lt;br /&gt;
== Neue Instruktionen ==&lt;br /&gt;
&lt;br /&gt;
=== CPUs mit FMA4 ===&lt;br /&gt;
* Intel hat FMA4 nicht implementiert.&lt;br /&gt;
* AMD hatte FMA4 implementiert:&lt;br /&gt;
** [[AMD Bulldozer|Bulldozer]]-basierte Prozessoren (AMD FX), Q4/2011&lt;br /&gt;
** Piledriver-basierte Prozessoren (AMD FX, Trinity und Richland APUs), Q2/2012&lt;br /&gt;
** Steamroller-basierte Prozessoren (4. Generation [[AMD Fusion|A-Serie-Prozessoren]], Kaveri-APUs) Q1/2014&lt;br /&gt;
** [[Zen (Mikroarchitektur)|Zen]]-Prozessoren (Q1/2017) haben zwar eine funktionierende Implementierung von FMA4, allerdings wird in der [[CPUID]] nicht angezeigt, dass die Instruktion zur Verfügung steht.&amp;lt;ref&amp;gt;{{Internetquelle |autor=btarunr |url=https://www.techpowerup.com/248560/amd-zen-does-support-fma4-just-not-exposed |titel=AMD „Zen“ Does Support FMA4, Just Not Exposed |werk=TechPowerUp |datum=2018-10-15 |sprache=en |abruf=2025-03-10}}&amp;lt;/ref&amp;gt; Die Implementierung vom FMA4 bei Zen ist demnach inoffiziell und ab der [[Zen 2|Zen2]]-Mikroarchitektur (Q3/2019) schließlich nicht mehr vorhanden&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mnemonic&lt;br /&gt;
! Operanden&lt;br /&gt;
! Operation&lt;br /&gt;
|-&lt;br /&gt;
|VFMADDPDx&lt;br /&gt;
|xmm, xmm, xmm/m128, xmm/m128&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;| a = b∙c + d&lt;br /&gt;
|-&lt;br /&gt;
|VFMADDPDy&lt;br /&gt;
|ymm, ymm, ymm/m256, ymm/m256&lt;br /&gt;
|-&lt;br /&gt;
|VFMADDPSx&lt;br /&gt;
|xmm, xmm, xmm/m128, xmm/m128&lt;br /&gt;
|-&lt;br /&gt;
|VFMADDPSy&lt;br /&gt;
|ymm, ymm, ymm/m256, ymm/m256&lt;br /&gt;
|-&lt;br /&gt;
|VFMADDSD&lt;br /&gt;
|xmm, xmm, xmm/m64, xmm/m64&lt;br /&gt;
|-&lt;br /&gt;
|VFMADDSS&lt;br /&gt;
|xmm, xmm, xmm/m32, xmm/m32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPUs mit FMA3 ===&lt;br /&gt;
* Intel&lt;br /&gt;
** Alle Intel-Core-i-Prozessoren ab der [[Intel-Haswell-Mikroarchitektur|Haswell]]-Mikroarchitektur (4. Generation Core i-Prozessoren)&lt;br /&gt;
* AMD&lt;br /&gt;
** [[AMD Bulldozer#Piledriver|Piledriver]]-basierte Prozessoren (2. Generation [[AMD FX|FX]] CPUs, [[AMD Fusion#Trinity|Trinity]] und Richland APUs), Q2/2012&lt;br /&gt;
** [[AMD Steamroller|Steamroller]]-basierte Prozessoren (4. Generation [[AMD Fusion|A-Serie-Prozessoren]], Kaveri-APUs) Q1/2014&lt;br /&gt;
** Alle Ryzen- und Epyc-Prozessoren (ab der 1. [[Zen (Mikroarchitektur)|Zen]]-Microarchitektur) Q1/2017&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Mnemonic&lt;br /&gt;
! Operanden&lt;br /&gt;
! Operation&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD132PDy&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|ymm, ymm, ymm/m256&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;|a = a∙c + b&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD132PSy&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD132PDx&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|xmm, xmm, xmm/m128&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD132PSx&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD132SD&lt;br /&gt;
|xmm, xmm, xmm/m64&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD132SS&lt;br /&gt;
|xmm, xmm, xmm/m32&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD213PDy&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|ymm, ymm, ymm/m256&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;|a = b∙a + c&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD213PSy&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD213PDx&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|xmm, xmm, xmm/m128&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD213PSx&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD213SD&lt;br /&gt;
|xmm, xmm, xmm/m64&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD213SS&lt;br /&gt;
|xmm, xmm, xmm/m32&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD231PDy&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|ymm, ymm, ymm/m256&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot;|a = b∙c + a&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD231PSy&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD231PDx&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;|xmm, xmm, xmm/m128&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD231PSx&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD231SD&lt;br /&gt;
|xmm, xmm, xmm/m64&lt;br /&gt;
|-&lt;br /&gt;
|VFMADD231SS&lt;br /&gt;
|xmm, xmm, xmm/m32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
* Nützlich für gleitkommaintensive Berechnung, vor allem im Multimedia-, wissenschaftlichen oder Finanzberechnungen. Ganzzahloperationen sollen später folgen.&lt;br /&gt;
* Erhöht Parallelität und Durchsatz von Gleitkomma-SIMD-Berechnungen&lt;br /&gt;
* Verringert die Registerlast durch nicht destruktive Vier-Operanden-Form (im Fall von FMA4)&lt;br /&gt;
* Erhöht die Präzision gegenüber der Realisierung als zwei verkettete Multiplikations- und Additionsvorgänge. So kann es dazu kommen, dass wenn der Compiler automatisch eine Verkettung von Multiplikation und Addition durch eine FMA-Operation realisiert, dass man ein anderes, nämlich präziseres, Rechenergebnis bekommt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Unterstützung in Compilern und Assemblern ==&lt;br /&gt;
zu ergänzen&lt;br /&gt;
&lt;br /&gt;
== Betriebssystemunterstützung ==&lt;br /&gt;
zu ergänzen&lt;br /&gt;
&lt;br /&gt;
Soll man auch auf die ausführliche Vorgeschichte und die Kompatibilitätsprobleme wie bei XOP (s. englische Seite) eingehen?&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste x86-Erweiterungen}}&lt;br /&gt;
&lt;br /&gt;
{{SORTIERUNG:Fma Instruction Set}}&lt;br /&gt;
[[Kategorie:Prozessorarchitektur nach Befehlssatz]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Crazy1880</name></author>
	</entry>
</feed>