3DNow Galaxy - Technik |
Seitdem der Athlon auf dem Markt ist, redet kaum jemand noch über AMDs K6-Reihe.
Core-Vergleich K6-2/III und Pentium II
Zwar konnte AMD mit dem K6-2 und vor allem mit dem K6-3 leistungsmäßig auf Intel aufholen, aber in der Öffentlichkeit wird und wurde nur über die Fließkommaschwäche geredet.
Eine Erklärung warum das so ist, versucht dieser Artikel zu vermitteln.
Speziele Befehle wie 3dnow oder ISSE habe ich bewußt weggelassen, da sie in der Praxis kaum eine Rolle spielen.
K6-Architektur
Beim Betrachten des K6-Core fällt auf, dass die K6-Architektur enorme Anforderungen an den Cache stellt.
Wir schauen uns die drei wichtigsten Stufen innerhalb der Prozessor-Architektur, die Dekodier-, die Ausgabe- und die Ausführungseinheit an.
Der K6 und der Pentium II/III sind Post-Risc-Prozessoren.
Die x86-Befehle, die vereinfacht ausgedrückt, in einem einfachen Format (unter 8 Byte groß) und in einem erweiterten Format (über 16 Byte groß) vorliegen, werden in der Dekodiereinheit in einfachere Risc-Befehle umgewandelt.
Ein Risc-Befehl hat immer die gleiche Größe und der Risc-Befehlssatz ist kleiner als bei den x86-Befehlen.
In der Ausgabeeinheit wird ein Risc-Befehl in einem Puffer gespeichert und zusammen mit den Daten an die Ausführungseinheit weitergeleitet (falls freie Ressourcen vorhanden sind).
Da diese Vorgänge zeitkritisch sind, übernimmt ein Scheduler die Verwaltung.
Da moderne Prozessoren mehrere Puffer und Ausführungseinheiten haben, können mehrere Anweisungen unabhängig voneinander (out-of-order) ausgeführt werden.
Die Anweisungen müssen wieder richtig zusammengesetzt werden. Dies geschieht in der Retire-Stufe.
Die Leistungsfähigkeit eines Prozessors läßt sich kurz so beschreiben:
Anzahl der x86-Befehle, die z.B. während eines Taktes in Risc-Befehlen umgewandelt werden, Anzahl der Risc-Befehle, die z.B. während eines Taktes den Ausführungseinheiten zugeführt werden, Anzahl der Risc-Befehle, die z.B. während eines Taktes von den Ausführungseinheiten ausgeführt werden.
Core-Vergleich K6-2/III und Pentium II
Dekodierung Ausführung Prozessor maximale Anzahl von x86-Befehlen pro Takt maximale Anzahl von Risc-Anweisungen pro Takt maximale Anzahl von
zwischengespeicherten Risc-Anweisungen pro Taktmaximale Anzahl von Risc-Befehlen, die pro Takt ausgeführt werden K6-CPU´s 2 4 4 6 Pentium II/III 3 6 3 3
Wie man der Tabelle entnehmen kann, dekodiert der Pentium II/III 50% mehr x86-und Risc-Befehle als der K6.
Dafür sind die Ausführeinheiten des K6 33% bzw. 100% schneller als die des Pentium II/III.
Das bedeutet, der Pentium II/III besitzt eine relativ hohe Anzahl von Warteschleifen und kaum gefüllte Buffer. Der K6 arbeitet Befehle schneller ab, als er die Befehle zugeführt bekommt.
Da die Puffer des K6 wegen der geringen Größe meist leer sind und die FPU-Einheit keine Pipeline hat (ein Befehl muss so lange warten, bis der voherige fertig ist), dreht die Ausführeinheit Däumchen. Deswegen sollten die Anweisungen aus einem möglichst schnellen und treffsicheren (Hit-Rate) L1/L2 Cache kommen.
Das ist auch der Grund, warum der K6-3 mit seinem 256 Kb großen Fullspeed-Level 2 Cache, im Vergleich zum K6-2 bei gleichem Prozessortakt im Schnitt um 15% schneller ist.
Dazu kommt beim K6-3 ein auf dem Mainboard vorhandener Cache, der als Level 3 Cache angesprochen wird, und bei Office-Anwendungen nochmals 5% -10% mehr Geschwindigkeit bringt.
x86-
Befehlspufferx86-->
Risc-86-DekoderRisc-86-
AusgageAusführungs-
Stufe 1Ausführungs-
Stufe 2Retire-
Stufe
Die Pipeline des K6.Fazit:
Die Ausführeinheiten der K6-Reihe sind sehr leistungsfähig.
Der Schwachpunkt liegt bei den Dekodiereinheiten und der fehlenden Pipeline der FPU.
Eine hohe Performance erreicht die K6-Reihe, indem die Dekodiereinheit, aus möglichst großen und schnellen L1-,L2- und L3-Caches, Daten erhält. Dies ist auch der Grund, warum die K6-Reihe, stärker als alle anderen Prozessoren, von einem hohen Frontside-Bustakt profitiert.
Quelle: AMD