Die Bobcat Architektur
Auf den ersten Blick ist alles vorhanden, was man bei einer state-of-the-art CPU benötigt. Im Vergleich zum K8/K10 fallen die L1 Caches nur halb so groß aus, dafür wurde aber an der Assoziativität geschraubt. Der Datencache ist nun anstatt 2fach, 8fach assoziativ, und entspricht nach einer Daumenregel, somit einem 2fach assoziativen Cache von 128 kbyte. Also ist das eher eine Verbesserung, denn eine Verschlechterung.
Die restlichen Eckpunkte in Stichpunkten:
- AMD64 Architektur
- Befehlssatzerweiterungen: SSE2 / SSE3 / SSSE3 und SSE4A (kein SSE4.1 oder SSE 4.2)
- 2-issue Out-of-Order Architektur, es können gleichzeitig maximal zwei x86 Befehle in veränderter Reihenfolge abgearbeitet werden.
- 32kB L1I und L1D Caches
- 512kB L2 Cache
- 90 Prozent Rechenleistung eines K10 Kerns (bisher wusste man nicht sicher, auf was sich die 90 Prozent bezogen, wobei das bei AMD mehr oder minder klar sein musste ^^).
- Bobcat benützt physikalische Register Files (PRF), dies ist wichtig fürs Register Umbenennen, später dazu mehr im Detailkapitel.
Die K8 Pipeline
Bevor wir uns Bobcats Pipeline anschauen, wollen wir uns erst einmal AMDs altehrwürdige K8 Pipeline anschauen:

Quelle: "Multicore Processors and Systems", Danke an Dresdenboy für den Link.
Wie man sieht ist alles an seinem Platz. Für INT Berechnungen sehen wir 12 Stufen, AMDs K10 benützt übrigens die gleichen Stufen. Schauen wir uns jetzt dazu Bobcats Pipeline an:
Die Bobcat Pipeline

Bobcats Pipeline erinnert frappant an die obige K8/K10 Pipeline. Es gibt (ohne Datencachezugriffe mitzuzählen) jetzt 13 Stufen. Die neue Stufe bezieht sich auf das Lesen der Register, möglicherweise eine Folge der neuen physikalischen Register Files (PRF). AMD dürfte somit ziemlich sicher das K8/K10 Design als Ausgangsbasis für Bobcat genommen haben. Typisch für die K8 und K10 Architektur ist unter anderem die "Pack" Stufe. Darin werden x86 Befehle, die in 2 interne MacroOps zerlegt werden müssen, gesammelt und "verpackt". Laut AMD Informationen sind das circa 10 Prozent. Die überwältigende Mehrheit (89 Prozent) der „Feld, Wald und Wiesen“- x86 Befehle können dagegen in einem Rutsch 1:1 in MacroOps umgewandelt werden. Das verbleibende Restprozent bearbeitet die langsame Microcodeengine [
Quelle].
Auffallend beim Bobcat ist die lange L2 Pipeline/Wartezeit im Vergleich zum K8/K10 Design. Das liegt vermutlich daran, dass der L2-Cache, ähnlich wie schon der L3-Zwischenspeicher des K10s, nicht mir vollem Kerntakt betrieben wird. Laut AMD wird er nur mit der Hälfte des Kerntaktes laufen.
Die K6 Pipeline
Oft wird wegen der oben genannten Architekturmerkmale ein Vergleich mit AMDs alten K6 Design bemüht, welches ebenfalls 2-issue war. Der Aufbau der K6 Pipeline ist jedoch völlig anders, von Ähnlichkeit kann also nicht die Rede sein:

Quelle:
http://www.azillionmonkeys.com/qed/cpuwar.html
Wie man erkennt, hatte der K6 nur 7 Pipeline-Stufen, nicht einmal halb soviel wie das Bobcat-Design (mit Datencachezugriffen). Der interne Aufbau ist aus diesem Grund komplett anders. Die Gemeinsamkeiten beschränken sich nur auf grobe Äußerlichkeiten.
Bobcats Vorfahren sind somit eindeutig in der K8 und K10 Familie zu suchen, nicht beim K6!
Der Floorplan

Am Floorplan sieht man, wie die verschiedenen Einheiten aus der obigen Architekturgrafik genau auf dem endgültigen Siliziumchip verteilt wird. Im Vergleich zu alten K8/K10 Diagrammen fallen erstens die unregelmäßigen, ja fast schon chaotischen Segmentierungen auf. Grund hierfür ist das Verwenden von automatischer Layoutsoftware (Electronic design automation (
EDA)), die bisher nur im Embedded/SoC-Bereich gebräuchlich war. Handoptimierte Designs bestehen hingegen aus mehr oder minder aus rechteckigen, regelmäßigen Blöcken. EDA-Software beim Chipentwurf verschwendet zwar etwas Platz, spart aber eine Menge Handarbeit und somit Zeit und Kosten ein. Zweitens fällt bei genauerer Betrachtung die FPU Größe auf. Denn deren Fläche ist verschwindend gering, fast hat man Schwierigkeiten die FPU zu finden. In etwa entspricht sie der Größe des 32kB L1 Caches. Im Vergleich zu alten K8 oder gar K10 Zeiten ein deutlicher Unterschied. In
Dresdenboy Blog war einmal eines
IEEE Papers zu finden, in dem eine neue FPU beschrieben wird, die in nur 40 Prozent der Fläche der K8 FPU fast die gleiche Leistung bringt und dabei auch noch weit weniger Energie verbraucht. 40 Prozent Fläche käme gut hin. Die Wahrscheinlichkeit ist groß, dass die beschriebene FPU im Bobcat Verwendung findet.
Schauen wir uns jetzt im Vergleich dazu Intels Konkurrenzprodukt, den Atom Prozessor an.
Vergleich mit Atom
Zuallererst muss man beim Atom erwähnen, dass Intel nicht nur den klassischen PC-Markt im Visier hat, sondern von Anfang an auch den der Mobiltelefonen im Blick hatte. Aus diesem Grunde ist die Atom Architektur konsequent auf Stromsparen ausgelegt. Eine InOrder-Architektur sollte, dank einfachen Aufbaus, nochmals Transistoren einsparen. AMD hingegen wollte nicht ganz so radikal geizen beim Bobcat und setzt, wie bereits oben erwähnt, auf eine „Out of Order“-Architekur. Genaueres folgt nun in den nächsten Absätzen:
Die Atom Architektur

Vergleicht man erst einmal nur die bloße Architektur, stellt man auf den ersten Blick nicht viel Unterschiede fest. Genauso wie AMD bei Bobcat setzte auch Intel bereits vor zwei Jahren auf ein 2-issue Design. Der Grund dafür ist, dass bei einem schlanken Leichtkerner ein optimales Verhältnis aus Aufwand und Nutzen besteht. Circa 95 Prozent des x86 Codes lässt sich mit einem 2-issue ohne Datenstau abarbeiten. Der Mehraufwand für komplexe parallele 3-issue (K8/K10 / Core2/Nehalem) lohnt nicht im Low-Power Bereich. AMD ist sogar beim großen Bruder Bulldozer auf eine zweifache Parallelität der Pipelines zurückgekommen. Das ergibt auch bei Hochleistungsdesigns Sinn. Ein ehemaliger AMD Entwickler erklärte dazu, dass der Verzicht auf die dritte Pipeline nur ~5 Prozent Leistung kostet. Belohnt wird die neue Sparsamkeit dafür mit etwas, wonach sich Prozessor-Enthusiasten seit Jahren sehnen – mehr Takt. Konkret spricht die gleiche Quelle von 20 bis 30 Prozent höheren Taktraten
[Quelle]. Aber das sei hier nur am Rande bemerkt.
Schauen wir uns nun die Atom Pipeline genauer an:
Die Atom Pipeline

Wie man sieht hat der Atom die gleiche Pipeline-Länge wie Bobcat, denn Intel zählt die Stufen für den Daten - Cachezugriff in der obigen Illustration fest dazu. Falls aber nur Daten in den Registern manipuliert werden, fallen die drei Stufen aber natürlich weg. Demnach kann man also wie auch schon im vorherigen Fall eine Übereinstimmung vermelden, beide Designs sind 2-issue mit einer 13 (16) Stufen langen Integer Pipeline (je nach Zählweise). Aber wie so oft, liegt der Teufel im Detail. Ein paar Punkte wurden bereits angedeutet, schauen wir sie uns im nächsten Kapitel nun einmal ganz genau an:
Diesen Artikel bookmarken oder senden an ...