| SSE | |||||
|
Streaming SIMD Extensions (SIMD: Single Instruction Multiple Data). SSE ist eine Befehlssatzerweiterung der x86-Architektur von Intel, die die Ausführung von Tasks auf einem Prozessor durch Parallelisierung beschleunigen soll. SSE zielt vor allem auf die Gleitkommaoperationen ab. Mit der Entwicklung des Pentium 3 Prozessors wurden gleichzeitig 128-Bit-Register eingeführt. Damit können mit SSE mehr Daten auf einmal parallel verarbeitet werden. SSE arbeitet beispielsweise beim Pentium 3 auch mit SIMDFP (SIMD Floating Point bzw. SIMD Single Precision Floating Point). Datenregister Innerhalb der SSE-Erweiterung gibt es 8 weitere 128-Bit Datenregister (XMM-Register: XMM0 bis XMM7), sowie einen weiteren gepackten Datentyp (zu 128-Bit): es handelt sich um 4 gepackte Gleitkommazahlen (je 32-Bit gross): SIMDFP (SIMD Single Precision Floating Point). Der SIMD Befehlssatz arbeitet mit 32-Bit Gleitkommazahlen (Floating-Point Number) in den XMM Registern. Durch den SSE2 Befehlssatz können in den XMM-Registern auch SIMD-Operationen mit Double-Precision (64-Bit Gleitkommazahlen) durchgeführt werden (oder 16 BYTE Integers (Quad-Precision) oder 8 WORD Integers oder 4 DWORD Integers oder 2 QWORD Integers). WORD, DWORD, QWORD Ein WORD ist in der EDV die kleinste adressierbare Einheit. Der doppelte Wert eines WORD ist ein DWORD (Double-WORD), der vierfache Wert eines WORD ist ein QWORD (Quadruple-WORD). Bei der Intel i386 Prozessorfamilie (IA-32 x86-Architektur) ist ein WORD = 16-Bit oder 2 Byte (z. B. AX Register), ein DWORD 32-Bit oder 4 Byte und ein Quadruple WORD (QWORD) 64-Bit oder 8 Byte, z. B. das Register MM0. Transportbefehl für Daten: MOVAPS Der SSE Befehlssatz bei Intel enthält auch zusätzliche Befehle zum Transport der Daten zwischen den XMM Registern oder zwischen einem XMM Register und dem Hauptspeicher: Move Aligned Packed Single-Precision Floating-Point Values (MOVAPS): MOVAPS überträgt einen Double QWORD Operanden mit 4 Gleitkommawerten zu je 32-Bit aus dem Arbeitsspeicher in ein 128-Bit XMM Register und vice versa. Denselben Vorgang kann MOVAPS auch zwischen 2 XMM Registern durchführen. Die Speicheradresse muss durch 16 teilbar sein (Speicheradresse modulo 16 = 0 bzw. 16 Byte aligned). Transportbefehl für Daten: MOVUPS Move Unaligned Packed Single-Precision Floating-Point Values (MOVUPS): führt dieselben Operationen aus wie MOVAPS, akzeptiert jedoch auch Adressen, die nicht durch 16 teilbar sind (unaligned). Weitere Befehle Weiterhin gibt es noch: MOVLP (Move Low Packed Single-Precision Floating-Point Value) und MOVHPS (Move High Packed Single-Precision Floating-Point Values). Bei MOVLP werden 2 gepackte Gleitkommazahlen zu je 32-Bit in die zwei unteren Bereiche eines XMM Registers übertragen, wobei die 2 oberen Bereiche nicht verändert werden. Der MOVHPS Befehl arbeitet ähnlich, nur dass die beiden 32-Bit Floating Point Numbers in die beiden oberen Bereiche des XMM Registers kopiert werden und die beiden unteren Bereiche des XMM Registers nicht verändert werden. MOVLHPS (Move Packed Single-Precision Floating-Point Values Low to High), MOVHLPS (Move Packed Single-Precision Floating-Point Values High to Low), MOVMSKPS (Move Packed Single-Precision Floating-Point Sign Mask) und MOVSS (Move Scalar Single-Precision Floating-Point Values) sind weitere SSE Datentransportbefehle. Gruppen von Befehlssatzerweiterungen Weitere Befehlssatzerweiterungen (gepackte und skalare Gleitkommabefehle) von SSE sind folgende Gruppen: Logische Befehle, Vergleichsbefehle, Arithmetische Befehle, Konvertierungsbefehle und Tauschbefehle. Ein Beispiel für einen arithmetischen SSE Befehl ist Add Scalar Single-Precision Floating-Point Value bzw. Substract Scalar Single-Precision Floating-Point Value (ADDSS bzw. SUBSS): Subtraktion bzw. Addition der beiden untersten Gleitkommazahlen des Operanden und Abspeichern des Ergebniswertes im entsprechenden Zielregister. Die oberen 3 Bereiche des Zielregisters werden nicht verändert. |
|||||
| Siehe auch: SSE2 SSE3 EM64T Gleitkommazahl SIMD Single-Instruction-Single-Data Task Thread Core-2-Duo Register | |||||
| SSE2 | |||||
|
Streaming SIMD Extensions 2 (SIMD: Single Instruction Multiple Data). SSE2 verarbeitet Gleitkommazahlen mit höherer Genauigkeit als SSE, nämlich mit 64-Bit Präzision (Double-Precision) anstatt 32-Bit (Single-Precision). Diese Befehlssatzerweiterung für den x86-Befehlssatz wurde mit dem Pentium 4 von Intel eingeführt. Dabei können die mit SSE vorgestellten 128 Bit Register bei SSE2 auch mit MMX Befehlen verwendet werden. Verbesserungen lassen sich durch SSE2 gegenüber SSE vor allem im Bereich der Videoverarbeitung und Bildwiedergabe erzielen. |
|||||
| Siehe auch: SSE Intel-Core CPU Intel Gleitkommazahl SIMD SSE3 Parallele-Datenverarbeitung Register | |||||
| Core-2-Duo | |||||
|
Der Intel Prozessor Core 2 Duo ist der Nachfolger des Zweikernprozessors Pentium D. Er hat auch 2 Kerne und verbraucht weniger Strom bei mehr Rechenleistung. Er schlägt in fast allen Benchmark-Tests sowohl den Pentium D als auch den Athlon 64 X2 und verbraucht dabei deutlich weniger Strom. Ursprung bei Mobilprozessoren und Stromsparer Der Ursprung des Core 2 Duo liegt bei den Mobilprozessoren. Daher entstand auch die niedrigere Leistungsaufnahme. Der Core 2 Duo läuft bei relativ geringen Taktraten von beispielsweise 2x1,86 bis 2x2,67 Gigahertz bzw. 2x2,93 Gigahertz für die Core 2 Extreme Edition und verfügt über einen 4 MB L2 Cache sowie einen 1066 MHz schnellen Front Side Bus (FSB). Weitere Merkmale sind: Wide Dynamic Execution und "Spaghetti-Code-Optimierer": Der Intel Core 2 Duo ist ein "Spaghetti-Code-Optimierer": die Assembler Befehle werden nicht linear abgearbeitet, sondern die Befehle (Macro-Ops) werden in kleinere Einheiten (Micro-Ops) übersetzt, welche in einer anderen Reihenfolge abgearbeitet werden. Diese Reihenfolge wird optimiert nach spekulativen Kriterien. Stellt sich die Vorausberechnung als falsch heraus wird neu gerechnet. Der Core 2 Duo kann 4 dieser Assembler Befehle gleichzeitig verarbeiten: vierfach-skalar, im Gegensatz zum Pentium 4, der dreifach-skalar ist. Die Pipeline wurde von 31 auf 14 Stufen verkürzt. Die lange Pipeline war beim Pentium 4 der Grund, weshalb die erhöhte Taktzahl kaum Leistungsgewinn erbrachte. Micro- und Macro-Ops Fusion Weitere Neuerungen sind: Micro-Ops-Fusion (häufige Folgen von Micro-Ops werden in einem Micro-Op zusammengefasst), Macro-Ops-Fusion (Folgen von Assembler Befehlen werden in einer Micro-Op zusammengefasst). Advanced Digital Media Boost und SSE 128-Bit Streaming-SIMD-Extensions (SSE) Befehle: die 128-Bit breiten SSE-Befehle können in einem einzigen Takt bewältigt werden, was auch die Load Pipelines entlastet. Es gibt 16 neue SSE(4)-Befehle. Smart Memory Access Es wird am Konzept des FSB festgehalten, der Speichercontroller ist über einen bis zu 1333 MHz schnellen Bus verbunden. Memory Disambiguation und neue Preftech Einheiten Die Speicheroperationen werden schneller ausführbar durch "Memory Disambiguation": Neben der bisherigen Prefetching-Struktur (die CPU lädt antizipierte Daten in den L2-Cache) gibt es neue Prefetch-Einheiten (2 dynamische L2-Cache-Prefetcher je Kern sowie zwei Daten- und ein Befehls-Prefetcher je Kern). Da sich die L2-Cache Prefetcher die Kerne jeweils teilen stehen 8 Prefetcher zur Verfügung. Advanced Smart Cache: leistungsfähigere L2 Caches durch das Konzept des Shared Cache sowie Verdoppelung des Datendurchsatzes zum L1 Cache. |
|||||
| Siehe auch: Intel-Core Dual-Core Pentium-4 Intel SIMD SSE SSE4 Intel-Sandy-Bridge Front-Side-Bus Pipeline | |||||