Zum Inhalt springen

Streaming SIMD Extensions

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 12. Mai 2012 um 14:20 Uhr durch Shaddim (Diskussion | Beiträge) (restrukturierung). Sie kann sich erheblich von der aktuellen Version unterscheiden.
SSE-Instruktionsfamilie mit den Erweiterungen: AMD (links) und Intel (rechts), überlapp zeigt die Unterstützung der jeweilgen Erweiterung bzw. Instruktion. Nach SSE3 begannen die beiden Hersteller nicht mehr vollständig kompatibel zu sein, dies setzt sich mit AVX fort. (Stand 2009)

Die Streaming SIMD Extensions (SSE), früher auch Internet Streaming Extensions (ISSE) ist eine von Intel entwickelte Befehlssatzerweiterung der X86er-Architektur, welche mit der Einführung des Pentium-III-(Katmai)-Prozessors vorgestellt wurde und deshalb anfangs den Namen Katmai New Instructions (KNI) trug. Zweck ist es Programme durch Parallelisierung auf Instruktionslevel zu beschleunigen, genannt SIMD.

Konzept

Im Kontrast zu der vorher veröffentlichten MMX-Befehlssatzerweiterung wurde SSE speziell für Gleitkommazahl-Datentypen entwickelt, ausserdem wurden eigene und doppelt so breite 128 Bit-Register spendiert, häufig bemängelte Schwächen beim MMX-Instruktionssatz. Intel entschied sich auch den SSE-Instruktionssatz völlig neuzuentwickeln und nicht kompatibel zu dem bereits vorher von Konkurrent AMD veröffentlichten 3DNow-Instruktionen zu machen, welche einen vergleichbaren Zweck erfüllten. Dieser Schritt war langfristig erfolgreich, SSE setzte sich gegenüber 3DNow durch und AMD unterstützt später ebenfalls nur noch SSE und liess die 3DNow-Unterstützung auslaufen.

Obwohl anfänglich im Namen (ISSE) ausdrücklich erwähnt, hat diese Technik direkt nichts mit dem Internet zu tun; vielmehr diente der Verweis der besseren Vermarktung (Intel warb bei Einführung des Pentium III u. a. damit, dass das Internetsurfen schneller bzw. generell aufregender werden würde). Nach kurzer Zeit ließ auch Intel das „I“ wegfallen, so dass man heutzutage nur noch von SSE spricht.

SSE-Weiterentwicklung

Der seit geraumer Zeit existierende Wettkampf zwischen AMD und Intel über die Definitionshoheit bei der Weiterentwicklung der x86-Architektur, führte seit ca. SSE3 zu inkompatiblen Erweiterungen von SSE.[1]

SSE2, SSE3, SSSE3, SSE4, SSE4a und SSE5 sind jüngere Erweiterungen bzw. Erweiterungsvorschläge von SSE sowohl von AMD als auch Intel. Inzwischen existiert mit den Advanced Vector Extensions ein weiterer Entwicklungszweig.

Technischer Aufbau

Die SSE-Befehlssatzerweiterung umfasst 70 Instruktionen.

Wie AMDs 3DNow!-Erweiterungen ist auch SSE primär für Gleitkommaoperationen ausgelegt. Intel führte allerdings mit dem Pentium III neue 128 Bit breite Register ein, so dass mit SSE-Befehlen doppelt so viele Daten auf einmal parallel verarbeitet werden können wie mit dem auf 64-Bit-Registern basierenden 3DNow!. Dies geht bei den damaligen Prozessoren jedoch nicht mit höherem Berechnungsdurchsatz einher, da die 128-Bit-SSE-Befehle intern in je zwei 64-Bit-SSE-Micro-Ops zerlegt werden, weil die internen Execution Units und ihre Datenpfade nur 64 Bit breit sind.[2] Bei aktuellen Prozessoren wie denen, die auf der Core-Mikroarchitektur basieren, werden die 128 Bit breiten SSE-Register tatsächlich in einem Schritt verarbeitet.

Unterstützung in den CPUs

Da SSE eine der ersten SIMD-Erweiterungen der x86-Architektur ist und bereits im Jahr 1999 auf den Markt kam, besitzen eigentlich alle x86-CPUs der letzten Jahre SSE. Eine vollständige Liste aller CPUs mit SSE wäre also sehr unübersichtlich. An dieser Stelle sei daher auf die Liste von Mikroprozessoren verwiesen.

Bespielsweise AMD unterstützte ab dem Athlon einen Teil der im SSE-Befehlssatz enthaltenen Befehle (unter anderem die, die mit 64-Bit-Registern arbeiten). Hierbei spricht man auch von einer Erweiterung von MMX. Seit dem Athlon-XP-Prozessor wird SSE vollständig unterstützt, inzwischen soweitgehend das sogar die eigene Erweiterung 3Dnow aufgegeben wurde.

Nachfolgend eine Übersicht, ab welcher CPU-Familie die jeweiligen Hersteller SSE integriert haben:

Einzelnachweise

  1. Agner Fog: Stop the instruction set war. agner.org, 5. Dezember 2009, abgerufen am 12. Mai 2012 (englisch).
  2. Jon Stokes: Into the Core: Intel's next-generation microarchitecture. arstechnica.com, 5. April 2006, archiviert vom Original am 1. April 2007; abgerufen am 12. Mai 2012 (englisch).