Charakteristisch für die Intel-Befehlssatzerweiterungen sind SIMD-Befehle. SIMD steht für Single-Instruction-Multiple-Data. Mit einem einzigen CPU-Befehl wird dieser auf mehrere gleiche Datenstrukturen angewendet. Intels erste derartige Erweiterung war MMX. Mittels MMX konnten mehrere Integer-Berechnungen gleichzeitig durchgeführt werden. Als hauptsächlicher Einsatz waren 2D-Grafik-Effekte gedacht. Jeder Pixel besteht aus drei 8-Bit-Werten für die Anteile an Rot, Grün und Blau (RGB-Farbe). Will man beispielsweise einen „Fade-Out-Effekt“ realisieren, muss man jeweils gleichzeitig alle Werte für Rot, Grün und Blau reduzieren.
Da in ein MMX-Register acht 8-Bit-Werte passen, können zwei Pixel mit einem einzigen CPU-Befehl berechnet werden. Dies sah man damals in der Theorie als großartigen Fortschritt an. In der Praxis gab es allerdings Probleme: Reduziert man die Farbwerte durch Subtraktion, ergibt sich eine Farbverschiebung beim Fade-Out-Effekt. Um das Verhältnis zu bewahren, müssen die Werte durch Division verringert werden. Bei Integer-Arithmetik kann man aber nur durch ganze Zahlen teilen, was zu dazu führt, dass maximal acht Abstufungen von hell nach dunkel erzielbar sind.
Zunächst reagierte AMD mit 3D Now. 3D Now erlaubt die Verwendung von Single-Precision-Arithmetik mit den MMX-Registern. Da Single-Precision-Arithmetik schnell ist und ihre Genauigkeit für Imaging ausreicht, ist sie auch ideal für 3D-Anwendungen wie Ray-Tracing. Intel wiederum reagierte mit SSE, welches ebenfalls Single-Precision-Arithmetik beherrscht, jedoch acht neue 128-Bit-Register (XMM0 bis XMM7) einführt. Damit können mit einem einzigen CPU-Befehl vier Single-Precision-Werte gleichzeitig bearbeitet werden.
Im Bereich der 3D-Grafik wurden SSE und 3D Now allerdings schnell obsolet, da der Siegeszug der 3D-Grafikkarten begann. Deren GPUs können ein Vielfaches an Single-Precision-Operationen gleichzeitig ausführen. Hinzu kam, dass AMD und Intel zunächst getrennte Wege gingen. Erst im Jahre 2001 konnte AMD SSE von Intel lizensieren. Im wissenschaftlichen Rechnen und im Engineering wird allerdings meist Double-Precision benötigt, so dass SSE in diesen Bereichen keine Verwendung fand. Stattdesseen wurde weiterhin meist Code mit 80×87-Befehlen benutzt.
Neueste Kommentare
Noch keine Kommentare zu SSE4: Wann bringt es wirklich mehr Speed?
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.