![](https://seccdn.libravatar.org/avatar/019c0e87661129361c579923d67b7332.jpg?s=120&d=mm&r=g)
On 19.11.2003 18:33 Stefan Schlörholz wrote:
Manfred Tremmel schrieb am Mittwoch, 19. November 2003 20:56:
Na freilich doch und SSE und SSE2.
Kann mir jemand erklüären, was das alles ist ist und wozu man das braucht?
Das sind Erweiterungen der Prozessorarchitektur, die unter dem Namen SIMD (Single Instruction Multiple Data) zusammengefasst werden -- Du kannst also einen Befehl auf mehrere Daten gelichzeitig anwenden. Das ist natürlich praktisch bei Multimedia Anwendungen, wenn Du viele Bildpunkte parallel berechnen musst. SSE ist von Intel entwickelt worden, während AMD etwas ähnliches mit 3DNow! entwickelt hat. Bei diesen Erweiterungen geht es also darum, bestimmte Abläufe zu optimieren, wie beispielsweise 3D-Rendering, Multimedia oder schlichtweg und allgemein Fließkomma Berechnungen. Es werden den Entwicklern dadurch neue Möglichkeiten eröffnet, ihre Programme für diese Architektur zu optimieren. Besitzt Du ein solches Programm im Quelltext, kannst Du es mit entsprechenden Anweisungen (Compiler Flags) beim Übersetzen dahingehend verbessern. Konkret heisst das bei der SSE Technologie, dass man den Befehlssatz der CISC Maschine erweitert hat um MMX (MultiMedia Extensions) Befehle und um Befehle, die einen schnelleren Datentransfer zwischen Prozessor (Registern) und Cache/Hauptspeicher ermöglichen. Ferner hat Intel den Entwicklern einige Extra-Register spendiert, mit denen man auf 128 Bit Breite MMXen kann. Ich glaube ab Pentium III war SSE verfügbar. MMX kam schon mit dem Pentium. Die Erweiterung von SSE wurde SSE2 genannt und -- wie man sich nun schon vorstellen kann -- optimiert seinerseits die SSE Technologie weiter. Es werden seitdem 64 Bit Fließkomma Datentypen unterstützt und Integer Befehle für XMM Register. Also im wesentlichen nochmal mehr Assembler Befehle, die dazugekommen sind. Nun kannst Du Dir einen reim darauf machen, warum das gut ist. Man kann dadurch eben enorme Geschwindigkeitsvorteile erzielen, wenn denn die Software dazu in der Lage ist. Ausserdem müssen auch die Compiler dazu in der Lage sein, was meines Wissens noch nicht wirklich gut umgesetzt ist. Wir hatten aber mal ein Projekt an der Uni Karlsruhe, in dem am xvid Codec in IA64 Assembler programmiert wurde (also für den IA64) -- in solch einem Fall (wenn man nur für eine Architektur programmiert), sollte man natürlich die Vorteile aus der Prozessorarchtiektur ziehen. Hoffe, das hat Dir ein wenig Einblick gegeben in die Materie. Martin