PentiumPro Vs. Pentium MMX Namik P. Ley André El-Ama
Die Probanden: Das Ziel: System A: PentiumPro 200MHz 64MB RAM System B: PentiumMMX 233MHz 64MB RAM Verglichen werden soll nur die Prozessorperformance! Andere Leistungsunterschiede wie etwa unterschiede der Grafikkarte werden von uns weitest gehend ausgeglichen. Das Ziel: Der Ansatz zum Vergleich der beiden Prozessoren liegt in Ihrer Architektur. Es sollen hier also die Besonderheiten des Designs heraus gestellt werden, so daß etwa die um 33MHz geringere Taktfrequenz des PentiumPro nur sekundäre Relevanz hat. Insbesondere liegt unser Augenmerk auf den zwei primären Unterschieden. Der PentiumMMX hat durch die MMX-Erweiterung die Möglichkeit, Daten im SIMD Verfahren zu bearbeiten, während der PentiumPro einen im Prozessortakt arbeitenden L2 Cache besitzt.
Der PentiumPro: dynamische Befehlsausführung drei zwölfstufige Pipelines On-Chip-FPU getrennte L1-Befehls- und Daten-Caches mit Write-Back-Strategie „Out of order“ Abschluß der Befehle Register-Rennaming mit 40 Registern Data Forwarding dynamische Verzweigungsvorhersage spekulative Ausführung von Befehlen Multiprozessing mit bis zu vier PPro ohne zusätzliche Logik auf 36-Bit erweiterter Adressbus für einen physikalischen Adressraum von 64 GByte. neue Funktionen CMOVcc für bedingte MOV-Operationen im selben Gehäuse intergrierter L2-Cache, der über einen dedizierten Bus mit vollem CPU-Takt angesprochen wird
Die Besonderheiten der MMX-Technologie SIMD Technologie 24 entsprechend neue Befehle (mit allen Variation sind es 57) 8 getarnte 64-Bit MMX Register 4 neue Datentypen 100% Abwärtskompatibel Doppelte 1‘st Level Größe (16KB/16KB) Wurde um eine Pipline-Stufe um höhere Taktfrequenzen zu erzielen Wurde um 1,2 Mio. Transistoren ergänzt
SIMD Technologoe
Mappen der MMX-Register auf die FP-Register
Neue Datentypen
FP und MMX in einer Applikation FP_code : ..... ..... /* FP-Stack leeren MMX_code : EMMS FP_code2 :
Bug im Pentium-MMX und PII Umschaltung von MMX nach FP per EMMS MMX : ca. 1458 Taktzyklen PII : ca. 5287 Taktzyklen Normalerweise war vorgesehen, daß diese Umschaltung drei Taktzyklen verbraucht
Pipeline der MMX CPU
Block-Diagramm des Pentium MMX Prozessors
Beispiel einer SIMD-Addition
Beispiel einer Vektor-Multiplikation
Addition ohne Überlaufschutz (Wrap-Arround)
Addition mit Überlaufschutz (saturation)
iComp Index 2.0 CPUmark32 Norton SI-32 SPECint_base95 SPECfp_base95 Intel Media Benchmark
iComp Index 2.0 PPro-200 (256 KB) 220 P-MMX-233 203 P-MMX-200 182 Pentium 200 142
MPEG Benchmark Quelle AVI Video Länge : 40sek (ca. 200MB) Auflösung : 352*288 Ziel MPEG Video (ca. 4MB) Benutzte Software Xing-Encoder 2.2 (MMX-optimiert) Konvertierungzeit MMX-233 : 155 Sek MMX-200 : 180 Sek (umgerechnet) PPro-200 : 271 Sek
MP3 Benchmark Quelle WAV-Sounddatei Länge : 16Min 12Sek (ca. 170MB) Auflösung : 16-Bit; Stereo; 44kHz Ziel MP3-Datei (ca. 15MB) Benutzte Software Audio Catalyst 2.0 (nicht MMX optimiert) Konvertierungzeit MMX-233 : 5Min 49Sek MMX-200 : 6Min 46Sek(umgerechnet) PPro-200 : 4Min 30Sek
Spiele Benchmark PPro-200 MMX-233 320*200 29,8 32,1 640*480 12,9 13,1 Hexen II (ohne 3D-Karten Unterstützung) Nicht MMX optimiert PPro-200 MMX-233 320*200 29,8 32,1 640*480 12,9 13,1
MMX-Befehle : Datentransfer Typ Kommentar MOV D,Q Laden oder Speichern der MMX-Register
MMX-Befehle : Packen Befehl Typ Kommentar PACKUS WB Words zu Bytes, mit unsigned Saturation PACKSS WB,DW Words zu Bytes, Words zu Dwords,Dwords zu Qwords, mit signed Saturation
MMX-Befehle : Entpacken Typ Kommentar PUNPCKH BW, WD, DQ Byte zu Words, Words zu DWords, DWords zu QWords, High Order PUNPCKL Byte zu Words, Words zu DWords, DWords zu QWords, Low Order
MMX-Befehle : Arithmetik Typ Kommentar PADD B,W,D Addieren mit Wrap-Around PADDS B,W Addieren mit signed Saturation PADDUS Addieren mit unsigned Saturation PSUB Subtrahieren mit Wrap Around PSUBS Subtrahieren mit signed Saturation PSUBUS Subtrahieren mit unsigned Saturation PMULH W Multiplizieren, Ergebnis = HighWord PMULL Multiplizieren, Ergebnis = LowWord PMADD WD Multiplizieren und Addieren, Ergebnis = Dword
MMX-Befehle : Schieben Typ Kommentar PSLL W,D,Q Logisch nach links schieben PSRL Logisch nach rechts schieben PSRA W,D Arithmetisch nach rechts schieben
MMX-Befehle : Vergleichen Typ Kommentar PCMPEQ B,W,D Ergibt $FF bei gleich, sonst 0 PCMPGT Ergibt $FF bei größer, sonst 0
MMX-Befehle : Logik Befehl Typ Kommentar PAND Bitweise logisches AND PANDN Bitweise logisches NAND POR Bitweise logisches OR PXOR Bitweise logisches XOR
MMX-Befehle : Sonstiges Typ Kommentar EMMS Löscht den MMX-Zustand