Was ist der UltraSPARC T1-Prozessor ?

From Wikic0t0d0s0.org

Jump to: navigation, search

Contents

[edit] Die Vorgeschichte

Auch wenn viele es nicht glauben wollen, gibt es in der Prozessorenentwicklung zwei grosse Misverständnisse:

  • CISC hat gegenüber RISC gewonnen (Das ist schlichtweg nicht wahr, wir haben heute nur noch RISC-Prozessoren, mit sehr hochentwickelten CISC2RISC-Konvertern. Aber das ist eine andere Geschichte, die hier nicht erzaehlt werden soll)
  • Es gibt Prozessoren für Server.

Gut, die letzte Aussage mag ein wenig provokant sein, aber kein einziger der momentanen Prozessoren ist wirklich in seiner Entwicklung als Serverprozessor designt worden. Xeon ist eine Version der Desktop-Pentiums. Opteron und Athlon64 teilen sich den gleichen Core, die Power-Prozessoren kommen aus dem Workstationbereich. Auch Alpha - jenem Prozessor, der zwar heute mausetod ist, aber desen Konzepte heute die Entwicklung fast aller Plattformen vorantreibt - war ein Workstationprozessor. Itanium ist eher ein Numbercruncher, denn irgendwas sonst. Und ja, UltraSPARC (T1 jetzt mal ausgenommen) ist auch ein Workstationprozessor, irgendwoher kommt ja das W in SUNW. All diese Prozessoren sind darauf getrimmt, wenige Dinge gleichzeitig zu machen, dafür aber irrsinnig schnell. Gemeinsam haben diese Prozessoren alle ein Faktum: Damit diese als Serverprozessor ihre Leistung bringen koennen, muessen diese mit einer Bruteforce-Taktik auf Leistung getrimmt werden:

  • extrem hohe Taktung
  • irrsinnig grosse Caches
  • sehr hohe Komplexitaet (out-of-order-execution, branch prediction, speculative ich weissnichtwas).

[edit] Momentane Probleme

Das führt jetzt eine Reihe von Problemen mit sich. Die Komplexität von Prozessoren ist mittlerweile kaum noch beherrschbar. Wenn man sich anguckt, das fast jede Prozessortechnologie erstens später kommt als angekündigt und zweitens nicht so schnell ist wie angekündigt, kommen wir so langsam zu jenem Punkt, an dem wir zwar durch neue Prozesstechnologien immer mehr Transistoren auf einen Core bekommen, aber nicht mehr so recht was anzufangen wissen (Ausser Caches vergroessern, das ist relativ einfach).

Wo wir beim Thema Caches sind: Caches werden gebraucht, damit die Mechanismen im Prozessor immer mit Daten versorgt werden können. Arbeitspeicher ist mittlerweile gegebenüber dem Prozessor so langsam geworden, das es einfach nicht anders mehr geht. Trotzdem können Caches nicht beliebig gross gebaut werden (auch wenn in einem Itanium mittlerweile die zigfache Menge an Speicher meines ersten Rechners auf x86-Basis als Cache verwendet wird). Caches fressen Strom. Noch nicht mal so an sich, sondern wegen einem anderen Problem. Sie lecken. Ein Grossteil des Stroms für den Cache wird als Leckstrom verbraten.

Und wo wir beim Strom sind .... es gibt eine reihe von physikalischen Zusammenhängen darauf hinauslaufen, das je höher ich Takte desto mehr Strom verbrauche. Warum ich so auf Strom herumreite ? In einem Prozessor wird keine Bewegungsenergie erzeugt, es dreht sich ja nichts. Das heisst, der ganze Strom wird letztlich in Wärme verwandelt. Und genau das ist der Faktor, der der technischen Weiterentwicklung mittlerweile eine natürliche Grenze setzt.

[edit] Strom und Wärme - zwei Seiten des gleichen Problems

Warum ist das jetzt gerade im Serverbereich eine besondere Herausforderung? Auf dem Schreibtisch hat ich einen dieser Prozessoren. Okay, die Stromrechnung ist etwas hoch, aber dafuer brauche ich mein Arbeitszimmer nicht mehr heizen, wenn der Rechner den ganzen Tag laeuft. Dafür, meine Photos zu manipulieren, meine CD-Sammlung umzurechnen und meine Drohbriefe an irgendeine Behörde zu schicken, dafür sind diese Prozessoren gebaut worden. Jetzt stelle man sich das Problem aber mal im Rechenzentrum vor. Da stehen ueblicherweise hunderte dieser Prozessoren auf dichten Raum rum. Und damit werden diese beiden Faktoren ploetzlich bedeutsam. Ich sehe in Rechenzentren mittlerweile zwei Probleme:

  • elektrischer Strom ist nach den Personalkosten einer groessten Kostenfaktoren im RZ.
  • die meisten Rechenzentren sind am Rand der Leistungsfähigkeit ihrer Klimatisierung.

Die Anforderungen seitens der Fachabteilungen werden jetzt ja aber nicht weniger, nur weil gerade mal wieder die Klimatechnik der IT am Ende ist. Sie werden eher mehr, mit jedem Sau welches durchs globale Dorf getrieben wird: Compliance, SOX, Basel 2 und welches Buzzword mir gerade sonst nicht einfällt. Mehr IT ist also von Nöten, aber was machen, wenns einfach nicht mehr effektiv mit momentaner Technik realisierbar ist. Server rauswerfen ? Aber welche ? Klimatisierung ausbauen ? Okay, was sagt die Physik dazu und vor allen Dingen das Controlling (ersters ist wohl einfacher unter kontrolle zu bringen). Okay, das Ende der Sackgasse ist da oder zumindestens sichtbar.

[edit] Paradigmenwechsel

Die Tatsache, das alle marktgängigen Serverprozessor Ableitungen von Workstationproessoren sind, hat uns also in eine Sackgasse geführt. Wie kommen wir da wieder heraus? In dem wir uns das Problem Servercomputing mal genauer ansehen. Die meisten Lasten sehen wie folgt aus: Es wird eine grosse Zahl von Buchungen gleichzeitig verarbeitet. Eine Vielzahl von Mails kommt gleichzeitig in den Spamfilter (für das echte Mailaufkommen wuerde wahrscheinlich bis heute meistens ein Pentium Pro reichen). Es werden viele gleichzeitig viele Requests auf dem Webserver bearbeitet. Die Datenbank wird von vielen Usern gleichzeitig mit neuen Daten versorgt, und viele User fragen Daten gleichzeitig ab.

Damit sind wir beim Schluesselbegriff des Servercomputings: Gleichzeitigkeit. Jetzt erinnern wir uns an die Entstehungsgeschichte momentaner Serverprozessoren, und sehen das es da eine Lücke gibt. Der ganze Aufwand von Millionen von Transistoren und Milliarden von Taktzyklen wird getrieben, damit nicht auffaellt, das die momentanen Serverprozessoren von der Aufgabe her eigentlich ungeeignet für Server sind.

Und genau hier setzt der UltraSPARC-T1-Prozessor an: Wie wäre es, wenn man jede Aufgabe schnell genug bewältigt, dafür aber viele Aufgaben gleichzeitig? In diesem Fall 32 Aufgaben gleichzeitig. Wäre ein solches System einer servertypischen Arbeitslast nicht viel angemessener? Die Antwort darauf ist eindeutig: Ja! Und genau darum vermag ein UltraSPARC-T1 in vielen Benchmarks mit servertypischen Aufgaben die gesammelte Konkurrenz zu deklassieren.

[edit] Technische Grundlagen

TODO

[edit] Analytische Betrachtung

[edit] Schwächen

Der Ansatz, weniger komplexe, und damit kleinere Cores einzusetzen hat natuerlich einen Nachteil. Ein Core, der den gesamten Die für sich hat, kann natuerlich mehr Tricks anwenden, um schneller zu sein. Daher wird die Leistung pro Core eines Multicoreprozessors immer geringer sein, als bei einem Unicore-Prozessor.

Dieses Problem betrifft momentan alle Multicoreprozessoren: So sind Multicore-Opterons langsamer getaktet als ihre Singlecorekollegen. Gleiches gilt für Xeons (wobei man anmerken muss, das Intel ein echtes Problem mit ihrer Frontside-Bus-Plattform haben, und Multicore-XEONS daher Verschwendung sind).

Die Schwäche von Multicore-Prozessoren liegen also eindeutig dort, wo keine Aufgaben parallel zu bewerkstelligen sind. Um in der x86-Welt zu bleiben: Dieses Faktum faellt auch insbesondere den Gamern auf. Diese greifen oft noch auf die höhergetakteten Singlecores-Prozessoren zurueck. Spiele sind naemlich meist nicht parallelisierbar. Sie stellen sozusagen eine nicht ueber Prozessoren skalierende Applikation dar.

Für UltraSPARC T1 gilt im Prinzip gleiche: der einzelne Core ist langsamer, die gewaltige Leistung des Systems entsteht dadurch, das mehrere Cores gleichzeitig arbeiten.

[edit] Stärken

Die Stärken dieses Prozessors liegen definitiv in jenen Aufgaben in denen viele Aufgaben gleichzeitig erfuellt werden muessen. Also klassischerweise in benutzerorientierten beziehungsweise eventorientierten Aufgaben. Viele kleine bis mittlere Requests sind die Leib- und Magenspeise dieses Prozessor.

[edit] Das Ende des Universalprozessors

Es ist die grosse Lebensluege der meisten Hersteller das es sie gibt: The CPU-Architecture to handle them all. Bestimmte Architekturen können bestimmte Aufgaben besonders gut erfüllen. Und je näher wir an die praktischen Grenzen der momentanen Technik kommen, desto mehr fällt dieses auf. Deswegen ist dieser Paradigmenwechsel gleichzeitig auch das Ende des Universalprozessors. Man kann nicht mehr sagen, ich setze nur auf eine Prozessortechnik, egal welche Aufgabe kommt. Man muss gucken, welche Aufgabe habe ich, und welche CPU löst mein Problem am effizientesten. Die Klammer, um das ganze noch verwaltbar zu halten, muss sich woanders finden. Beispielsweise durch ein gemeinsames Betriebsystem.

Der UltraSPARC T1 Prozessor ist da nur der allererste Schritt.

Personal tools