Intel Core beginnt mit C

Heute gabs endlich einmal etwas Hintergrund-Material zum Inter Core, dem Prozessor im neuen MacBook Pro, iMac und Mac Mini. Das eine ist ein Shoot-Out-Video, wo ein MacBook Pro mit 1 GB RAM einen Dual-G5 2GHz mit 4,5 GB RAM in Grund und Boden stampft, und zwar genau da, wo ich bisher immer meine grössten Frustrationen mit dem G5 hatte (ganz zu schweigen von den noch grösseren Frustratrionen auf dem G3): Das kompilieren und Packen eines mittleren Java-Projekts. 930 Klassen innert 32 Sekunden im WAR-file drin – das scheint mir doch deutlich netter zu sein, als ich es mir bisher gewohnt bin. Nun warte ich noch auf einen Java-Shoot-Out zwischen OS X und Windows auf derselben Mac/Intel-Kiste, damit man endlich sehen kann, ob Apples Java-Implementierung wirklich so schlimm ist, wie ich immer gedacht habe, oder ob da immer nur die CPUs im Weg standen.

Das andere dann auf ars.technica: Jon Hannibal Stokes erläutert den Intel Core in den Grundzügen seiner CPU-Architektur. Zwar hat es einige prinzipelle Verbesserungen (128-bit-Microops für die Vector ALU. Woaaah), und einige ganz geile Innovationen (Loop Prediction rulez) – aber die Hauptausrichtung bleibt dieselbe wie schon bei den letzten Intel-CPUs: Man versucht die Wege zu vereinfachen, um möglichst nah an die Vorteile von RISC-Prozessoren wie dem G5 hinzukommen, aber weil die ISA derart veraltet ist und x86 sowieso schon von Beginn weg eine verkrüppelte CISC-Architektur ist, werden diese Vereinfachungen auf extrem komplexen Weg implementiert.
Wer Hannibals Erläuterungen zum Beispiel zu Macro-Fusion und Micro-ops-Fusion liest (und begreift, um was es geht), kriegt das kalte Kotzen: 5 zusätzliche Schritte abarbeiten, nur um 1 statt 2 Instruktionen im ROB zu haben, und damit gerade in der Pipeline zu stehen, und kaum ist man in der Pipeline durch, trennt die RS das ganze wieder in 2 Instruktionen auf. Klar, das Staging in der Pipeline ist das relevante, und die Front-End-Tweaks können parallel zu den Zyklen abgearbeitet werden. Mit solchen Mechanismen kommt der Intel Core zu einer Pipeline, die bezüglich Performance fast an jene der PowerPC-Architektur rankommt.
Solche Tweaks gibt es en Masse, was die Performance-Gewinne sowohl gegenüber dem Pentium wie auch gegenüber dem G5 erklärt. Aber bitte: ist das etwa ein elegantes CPU-Design? Klarheit? Übersichtlichkeit? Gibt es bei Intel irgendein Kriterium ausser „It does the job, and it does it fast“? Oder entwickeln bei Intel nur C-Götter?

Ich freu mich ja darauf, dass mein zukünftiger Mac (sobald ich eines Tages das Geld habe) so brutal schnell sein wird. Und ich werde sicher sehr glücklich sein, wenn meine Java-Projekte in vernünftiger Zeit kompilieren. Aber zwischendurch werde ich mich an die Eleganz des PowerPC erinnern, und werde wehmütig in Gedanken an vergangene Zeitalter verhängen,