SSE5 - SSE5

Der SSE5 (kurz für Streaming SIMD Extensions Version 5 ) war eine SIMD- Befehlssatzerweiterung, die von AMD am 30. August 2007 als Ergänzung zu den 128-Bit- SSE- Kernbefehlen in der AMD64- Architektur vorgeschlagen wurde.

AMD entschied sich dafür, SSE5 nicht wie ursprünglich vorgeschlagen zu implementieren. Im Mai 2009 ersetzte AMD SSE5 durch drei kleinere Befehlssatzerweiterungen mit den Namen XOP , FMA4 und F16C , die die vorgeschlagene Funktionalität von SSE5 beibehalten, die Befehle jedoch zur besseren Kompatibilität mit dem von Intel vorgeschlagenen AVX- Befehlssatz unterschiedlich codieren .

Die drei von SSE5 abgeleiteten Befehlssätze wurden in den Bulldozer- Prozessorkern eingeführt, der im Oktober 2011 in einem 32-nm- Prozess veröffentlicht wurde.

Kompatibilität

AMDs SSE5 Erweiterung Bundle beinhaltet nicht den vollen Satz von Intel ‚s SSE4 Instruktionen, es ist ein Konkurrent zu SSE4 eher als ein Nachfolger zu machen.

Dies erschwert die Softwareentwicklung. Es wird empfohlen, dass ein Programm anhand des CPUID-Befehls prüft, ob Befehlssatzerweiterungen vorhanden sind, bevor ein Codepfad eingegeben wird, dessen ordnungsgemäße Funktion von diesen Befehlen abhängt. Für maximale Portabilität benötigt eine optimierte Anwendung drei Codepfade: einen Basiscodepfad für die Kompatibilität mit älteren Prozessoren (von beiden Anbietern), einen separat optimierten Intel-Codepfad, der SSE4 oder AVX ausnutzt, und einen separat optimierten AMD-Codepfad, der SSE5 ausnutzt.

Aufgrund dieser Verbreitung spiegeln Benchmarks zwischen Intel- und AMD-Prozessoren zunehmend die Klugheit oder Implementierungsqualität der unterschiedlichen Codepfade wider und nicht die Stärke der zugrunde liegenden Plattform.

SSE5-Verbesserungen

Der vorgeschlagene SSE5-Befehlssatz bestand aus 170 Befehlen (einschließlich 46 Basisbefehlen), von denen viele zur Verbesserung der Single-Threaded-Leistung entwickelt wurden. Einige SSE5-Befehle sind Befehle mit drei Operanden , deren Verwendung die durchschnittliche Anzahl von Befehlen pro Zyklus erhöht, die mit x86- Code erreichbar sind . Ausgewählte neue Anweisungen umfassen:

AMD behauptet, dass SSE5 dramatische Leistungsverbesserungen bieten wird, insbesondere bei HPC- ( High Performance Computing ), Multimedia- und Computersicherheitsanwendungen , einschließlich eines 5-fachen Leistungsgewinns für die AES-Verschlüsselung ( Advanced Encryption Standard ) und eines 30% igen Leistungsgewinns für die diskrete Cosinustransformation ( DCT) zur Verarbeitung von Videostreams.

Weitere Informationen finden Sie in den nachfolgend unterteilten Befehlssätzen.

Revision 2009

Die SSE5-Spezifikation enthielt eine vorgeschlagene Erweiterung des allgemeinen Codierungsschemas von x86- Befehlen, damit Befehle mehr als zwei Operanden haben können. Im Jahr 2008 kündigte Intel den geplanten AVX- Befehlssatz an, der eine andere Art der Codierung von Befehlen mit mehr als zwei Operanden vorschlug. Die beiden vorgeschlagenen Codierungsschemata SSE5 und AVX sind nicht miteinander kompatibel, obwohl das AVX-Schema gegenüber dem SSE5-Schema bestimmte Vorteile bietet: Vor allem bietet AVX viel Platz für zukünftige Erweiterungen, einschließlich größerer Vektorgrößen.

Im Mai 2009 veröffentlichte AMD eine überarbeitete Spezifikation für die geplanten zukünftigen Anweisungen. Diese Überarbeitung ändert das Codierungsschema, um es mit dem AVX-Schema kompatibel zu machen, jedoch mit einem unterschiedlichen Präfixbyte, um Überschneidungen zwischen den von AMD eingeführten Anweisungen und den von Intel eingeführten Anweisungen zu vermeiden.

Der überarbeitete Befehlssatz trägt nicht mehr den Namen SSE5, der als irreführend kritisiert wurde, aber die meisten Anweisungen in der neuen Revision sind funktional identisch mit der ursprünglichen SSE5-Spezifikation - nur die Art und Weise, wie die Befehle codiert sind, unterscheidet sich. Die geplanten Ergänzungen zum AMD-Befehlssatz bestehen aus drei Teilmengen:

  1. XOP : Befehle zum Multiplizieren und Akkumulieren von Ganzzahlvektoren, horizontale Addition von Ganzzahlvektoren, Anweisungen zum Vergleichen, Verschieben und Drehen von Ganzzahlvektoren, Anweisungen zur Bytepermutation und zur bedingten Verschiebung, Extraktion von Gleitkommafraktionen.
  2. FMA4 : Gleitkomma-Vektor multiplizieren - akkumulieren .
  3. F16C : Gleitkommakonvertierung mit halber Genauigkeit .

Diese neuen Befehlssätze unterstützen zukünftige Erweiterungen für die Vektorgröße von 128 Bit auf 256 Bit. Aus diesen vorläufigen Spezifikationen ist nicht ersichtlich, ob der Bulldozer- Prozessor 256-Bit-Vektorregister (YMM-Register) unterstützt.

Siehe auch

Verweise

Externe Links