Zum 3DCenter Forum
Inhalt




Athlon XP vs. Athlon 64

10. April 2005 / von Madkiller & BlackBirdSR / Seite 1 von 4


   Intro

Wirft man ganz banal folgende Frage in den Raum: Welche CPU ist schneller - Athlon XP oder Athlon 64? - so wird die Antwort wohl in den meisten Fällen klar zugunsten des Athlon 64 ausfallen, und das zu Recht.

Wem diese pauschale Antwort nicht reicht, der wird genauer wissen wollen, wie viel schneller der Athlon 64 denn ist. Genau diese Frage versucht dieser Artikel zu beantworten. Anhand ausgewählter Benchmarks soll sich zeigen, wie viel MegaHertz der Athlon 64 denn genau benötigt, um einem Athlon XP mit 2.2 GHz das Wasser zu reichen.


   Die Kontrahenten

Im Grunde ist der K8 (Familienname aller Athlon 64) ein Spross der K7-Familie (Athlon und Athlon XP). Das heißt, AMD hat keine komplett neue Architektur entwickelt, sondern auf dem bestehenden Design aufgebaut. Unverkennbar wird dies, wenn man einen Blick unter die "Motorhaube" der Kontrahenten wirft. Sicherlich, vieles sieht etwas anders aus, aber der eigentliche Kern des ganzen Motors wirkt nur allzu bekannt und arbeitet nach den gleichen Prinzipien.

Wer sich nun auf die 64-Bit-Fähigkeiten des K8 beruft, der wird wohl enttäuscht. Sie spielen im folgenden nicht die geringste Rolle. Der vielmals gelobte integrierte Speichercontroller des K8 ist sicherlich eines der tragenden Elemente. Allerdings verbirgt sich dahinter weitaus mehr, damit der K8 am Ende auch wirklich in einer anderen Liga spielt als jeder Athlon XP.

Vergleicht man zwei Boliden, ist üblicherweise einer der erste Schritte, ein Blick unter die "Motorhaube" zu werfen. Ähnlich wollen wir vorgehen, und die Blockdiagramme der beiden CPUs vorstellen (Klick öffnet großes Bild):

AMD K8 Architektur Blockdiagramm (Klick öffnet großes Bild)
AMD K8 Architektur Blockdiagramm (Klick öffnet großes Bild)


AMD K7 Architektur Blockdiagramm (Klick öffnet großes Bild)
AMD K7 Architektur Blockdiagramm (Klick öffnet großes Bild)

Man sollte sich nicht von den oberflächlichen Unterschieden verwirren lassen. AMD war so "freundlich", das Design ihrer Blockdiagramme zwischenzeitlich zu ändern. Worauf es aber ankommt, sind die eigentlichen Funktionselemente - gerade diese weisen deutliche Ähnlichkeiten auf. Unterteilt man beide Diagramme ungefähr in der Mitte in zwei Hälften, so erhält man eine recht zutreffende Einteilung in das sogenannte Front- und Backend der CPUs. Dem Frontend kommt dabei die Aufgabe zu, die eigentlichen Ausführungseinheiten im Backend mit Befehlen zu versorgen.

Gerade im Bereich des Backends kann der K7 bereits ordentlich punkten. Jeweils drei Ausführungseinheiten kümmern sich um Integer- (diese Einheiten werden mit ALU bezeichnet) und Gleitkommaberechnungen (namentlich als FADD+FMUL+FSTORE benannt). Dazu kommen noch drei Einheiten für die Berechnungen von Speicheradressen (mit AGU bezeichnet).

Heutige CPUs kämpfen massiv darum, ihre Recheneinheiten mit genügend Arbeit zu versorgen. Maßgeblich beteiligt ist hier das Frontend. Auch beim K7 bieten sich an dieser Stelle Möglichkeiten zu Verbesserungen. Dessen theoretische Leistungsfähigkeit konnte bisher nicht ganz ausgeschöpft werden. Es ist somit wenig verwunderlich, dass AMD das Backend im Prinzip kaum verändert hat. Der K8 erscheint hier nahezu identisch: Als wichtigste Änderungen lässt sich noch SSE2 anführen, welches nun ebenfalls von den FP-Einheiten ausgeführt werden kann.

Abseits der 64-Bit-Fähigkeiten legte AMD also besonderen Wert darauf, das Frontend ihrer Architektur gehörig zu optimieren. In den Diagrammen ist dieser Unterschied dann auch recht deutlich dargestellt. Grob eingeteilt, besorgt sich das Frontend Befehle aus dem Level1-Befehlscache, decodiert und zerlegt diese x86-Instruktionen in das ausführbare Befehlsformat der CPU, und führt weiter Aufgaben wie Sprungvorhersage (Branch Prediction) aus, bevor alles an das Backend übergeben wird.

So erfolgreich der K7 war, gerade dort gab es anscheinend einige Engpässe, deren Linderung beim K8 direkt zu mehr Performance führt. Dazu erweiterte AMD das Design um zwei weitere Pipelinestufen. Hauptsächlich, um damit Befehle effizienter an die Baustelle zu bringen und zu verarbeiten.

Traditionell werden simple Befehle von den Decodern direkt umgewandelt (Directpath), während komplexere oder später hinzugefügte Anweisungen über Umwege in das eigene Befehlsformat zerlegt werden (Vectorpath). Im K8 werden weniger Befehle über den langsameren Vectorpath zerlegt, das gilt insbesondere für SSE Anweisungen. In diesem Zusammenhang führt der K8 mit einer der zusätzlichen Pipelinestufen eine dritte Option ein, in der Befehle zu zweier Pakete zusammengefasst werden. Für SSE2 verringert sich dadurch z.B. später die Ausführungslatenz um 25%.

Auch im Bereich der Sprungvorhersage gibt es Änderungen. Programme laufen selten am Stück von oben nach unten ab. Ständig gibt es Sprunganweisungen, die je nach Situation an einer anderen Stelle des Programms weitermachen. Das stört den Arbeitsfluss heutiger CPUs jedoch extrem. Um das zu verhindern, versucht die CPU den nächsten Sprung zu erahnen. Je besser das klappt, je mehr Arbeit kann erledigt werden. Geht die Vorhersage schief, muss ein Großteil der bisherigen Arbeit entsorgt werden.

Daneben hat sich AMD noch weitere, teils sehr tiefgreifende Änderungen im Front- und Backend einfallen lassen. Allerdings sind deren Auswirkungen nur schwer einzuschätzen. Sie arbeiten jedoch auf das gleiche Ziel hinaus: Das Backend darf weniger Däumchen drehen, und soll besser mit Arbeit versorgt werden. All diese Optimierungen können aber nur im Zusammenhang mit den äußerlichen Verbesserungen am K8 ihre Wirkung entfalten. Dazu muss die CPU schnell Zugriff auf alle benötigten Daten und Befehle haben.

Mit seinem sehr großen Level1 Cache sind K7/K8 eher unempfindlich, was pure Cache-/Speicherbandbreite anbelangt. Falls sich jedoch einmal etwas nicht im Cache befindet, muss der Speicher belangt werden. Nun muss die CPU eine kleine Ewigkeit auf ihre Informationen warten - die Performance geht in den Keller.

Den durchaus gelungenen Level1 Cache hat AMD dabei eher vernachlässigt, und daher dem Level2 Cache eine Generalüberholung verpasst. Aufgrund der besonderen Cache-Architektur besaß der K7 noch relativ hohe Latenzen für den Level2 Cache. Der K8 muss hier ca. 1/3 weniger Zeit mit Warten verbringen. Mit einer 64 Bit breiten Anbindung (256 Bit beim Pentium 4) war der K7 auch etwas schwach auf der Brust, was die Cache-Bandbreite angeht. Der K8 besitzt nun jeweils 64 Bit für Transfers zum Level2 Cache und aus dem Level2 Cache, was auch der Bandbreite etwas zugute kommt. Diese Maßnahmen alleine dürften bereits für mehr Performance sorgen.

Den wirklichen Trumpf spielt der K8 allerdings mit seinem Speichercontroller aus. Bisherige CPUs von AMD und Intel nutzen den viel langsameren FSB, um den Speichercontroller in der Northbridge anzusprechen. Dieser kümmerte sich dann um den Rest und schickte das Ganze zurück in den Level2-Cache der CPU. Der K8 hält seinen Speichercontroller quasi im "Vorgarten", und betreibt diesen mit voller Taktfrequenz. Den Speicher spricht der K8 durch eine direkte Verbindung an, geht also keine Umwege. Das Resultat: Ein Speicherzugriff benötigt drastisch weniger Zeit. Zudem arbeitet das ganze System umso besser, je schneller die CPU getaktet wird.

Der K8 kann also schneller auf den Speicher zugreifen, nutzt seinen Cache effektiver und weiss mit diesen Vorteilen auch mehr anzufangen. Am Ende gelangen mehr Befehle ins Backend, die zudem sehr schnell ausgeführt werden können. Der K8 erreicht vor allem damit eine höhere Leistung pro MHz als sein Vorgänger.

Natürlich hat AMD dem K8 noch weitere Verbesserungen mitgegeben. Darunter eine Vielzahl von Funktionen, die sonst in der Northbridge sitzen. Die Architektur ist bereits von Anfang an DualCore-fähig, und durch Hypertransport besitzt man eine äußerst effektive Möglichkeit, mit dem Rest des Systems zu kommunizieren. Die Auswirkungen sind für den Athlon 64 aber weniger entscheidend, als für den Opteron als Server-Variante des K8.

Am Ende hat AMD also einige Engpässe im Design gelockert, und damit Platz für mehr Performance gemacht. Wie effektiv die CPU das neue Potential ausnutzen kann, hängt natürlich auch von der verwendeten Software ab. Wie auf den folgenden Seiten zu sehen ist, macht der K8 seine Sache allerdings recht gut.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Weiter / Next

Shortcuts
nach oben