SIMD
| Einzelner Anweisungsstrom |
Mehrere Anweisungsströme | |
|---|---|---|
| Einzeldatenstrom (Einzeldaten) |
SISD (OKOD) |
MISD (MISD) |
| Mehrere Datenströme |
SIMD (JMD) |
MIMD (MKMD) |
SIMD ( engl . Single Instruction, Multiple Data – a Single Instruction Stream, Multiple Data Stream , OKMD ) ist ein Prinzip der Computerverarbeitung, das Parallelität auf Datenebene ermöglicht. Eine der Klassen von Computersystemen in Flynns Klassifikation .
SIMD-Computer bestehen aus einem Befehlsprozessor ( Steuereinheit), der als Controller bezeichnet wird, und mehreren Datenverarbeitungseinheiten, die als Prozessorelemente bezeichnet werden. Das Steuermodul empfängt, analysiert und führt Befehle aus. Wenn der Befehl Daten enthält, sendet der Controller einen Befehl an alle Prozessorelemente, und dieser Befehl wird auf mehreren oder allen Prozessorelementen ausgeführt. Jedes Verarbeitungselement hat seinen eigenen Speicher zum Speichern von Daten. Einer der Vorteile dieser Architektur ist, dass in diesem Fall die Berechnungslogik effizienter implementiert wird. Bis zur Hälfte der logischen Befehle eines herkömmlichen Prozessors beziehen sich auf die Steuerung der Ausführung von Maschinenbefehlen, und der Rest von ihnen bezieht sich auf die Arbeit mit dem internen Speicher des Prozessors und die Durchführung arithmetischer Operationen. In einem SIMD-Computer wird die Steuerung von der Steuerung durchgeführt, und den Prozessorelementen wird "Arithmetik" gegeben.
Auch Vektorprozessoren nutzten das SIMD-Prinzip; mit einem Befehl konnten Vektoren bis zu einer Größe von mehreren tausend Elementen verarbeitet werden.
SIMD-Erweiterungen verschiedener Architekturen
Kurze SIMD-Befehle (64 oder 128 Bit) tauchten in den 1990er Jahren in Allzweckprozessoren auf. Die folgenden Prozessorarchitekturen unterstützen in unterschiedlichem Maße SIMD-Erweiterungen oder SIMD-Anweisungen:
- DEC Alpha – Motion Video-Anweisungen (MVI)
- IBM PowerPC : AltiVec , SPE
- PA - RISC Multimedia Acceleration eXtensions (MAX) von HP
- Intel : MMX, iwMMXt , SSE , SSE2 , SSE3 , SSSE3 , SSE4.x , AVX , AVX2
- AMD : 3DNow!
- ARC : ARC-Videosubsystem
- SPARC : VIS , VIS2
- Sonne : MAJC
- ARM : NEON
- MIPS : MDMX (MaDMaX), MIPS-3D
- RISC-V : P-Erweiterung
Eine Gruppe von IBM, Sony und Toshiba entwickelte gemeinsam den SPU - Coprozessor für den Cell Processor , dessen Befehlssatz stark SIMD nutzte. NXP (Philips) entwickelte mehrere Xetal- SIMD-Prozessoren mit 320 Prozessorelementen, die mit 16-Bit-Daten arbeiteten.
Moderne Videobeschleuniger ( GPUs ) basieren in der Regel auf der SIMD-Architektur und unterstützen Vektoren mit Längen von 128, 256 oder mehr Bit.
Die Advanced Vector Extensions von Intel bieten eine Reihe von SIMD-Anweisungen zum Verarbeiten von Gleitkommadaten in Gruppen von 256 Bit. Intel MIC - Coprozessoren enthalten einen 512-Bit-Befehlssatz.
x86 -kompatible Prozessoren
- MMX - Multimedia-Erweiterungen. Der Handelsname für einen zusätzlichen Befehlssatz, der die Aktionen ausführt, die für die Prozesse der Codierung/Decodierung von Streaming-Audio-/Videodaten in einer Maschinenanweisung spezifisch sind . Zuerst erschienen in Pentium MMX Prozessoren .
- MMX Extended ist ein erweiterter MMX -Befehlssatz, der in AMD- und Cyrix-Prozessoren verwendet wird .
- 3DJetzt! - Erweiterung des MMX-Befehlssatzes für AMD -Prozessoren , beginnend mit AMD K6-2 .
- 3DJetzt! Extended - Erweiterung des 3DNow! AMD Prozessoren , beginnend mit dem AMD Athlon .
- SSE ist ein von Intel entwickelter Befehlssatz, der erstmals in der Pentium III -Prozessorserie eingeführt wurde .
- SSE2 ist ein von Intel entwickelter Befehlssatz, der zuerst in den Prozessoren der Pentium 4 -Serie eingeführt wurde .
- SSE3 ist die dritte Version von Intels SIMD-Erweiterung , ein Nachkomme von SSE, SSE2 und x87. Eingeführt am 2. Februar 2004 im Prescott -Kern des Pentium 4-Prozessors .
- SSSE3 ist ein Satz von SIMD-Anweisungen, die in Intel Core 2 Duo-Prozessoren verwendet werden .
- SSE4 ist eine neue Version von Intels SIMD-Erweiterung . Angekündigt am 27. September 2006 . Eingeführt im Jahr 2007 in der Penryn -Serie von Prozessoren .
- AVX ist eine angekündigte Version von Intels SIMD-Erweiterung , die 2010 in Prozessoren mit Sandy-Bridge - Architektur eingeführt wurde .
- AVX2
- AVX512 - eine Erweiterung des Befehlssystems unter Verwendung einer Codierung mit dem EVEX-Präfix.