AMD Befehlserweiterung zur Java-Beschleunigung
Unter der Bezeichnung „Light-Weight Profiling“ (LWP) hat AMD eine Befehlserweiterung für zukünftige Prozessoren in Aussicht gestellt, die unter anderem zur Beschleunigung von Laufzeitumgebungen wie Suns Java Virtual Machine (JVM) oder Microsofts .NET Framework genutzt werden kann.
LWP ist Teil einer neuen AMD-Initiative, im Rahmen derer das Unternehmen Hardwareerweiterungen vorstellen will, die Software im Zeitalter der Multi-Core-Prozessoren zu einer höheren Performance verhelfen sollen („Hardware Extensions for Software Parallelism“). Das Prinzip hinter LWP ist recht einfach. Die Erweiterung bringt zwei neue Instruktionen, LLWPCB und SLWPCB, sowie zahlreiche neue Zählregister mit sich. In diesen Registern werden statistische Informationen zum jeweils laufenden Programm (gilt nur für User-Mode-Instruktionen) gesammelt, die von der Anwendung selbst genutzt werden können, um sich zur Laufzeit optimal auf die vorhandenen (, kontinuierlich wechselnden) Gegebenheiten anzupassen. Für jeden Thread stehen dabei eigene Zähler bereit.
Zum aktuellen Zeitpunkt befindet sich LWP noch in einer frühen Entwicklungsphase und so ist es nicht verwunderlich, dass nicht einmal fest steht, wie genau der Prozessor mit Hilfe der CPUID seiner Umgebung signalisiert, dass er die neue Befehlserweiterung unterstützt. AMD versteht LWP als Vorschlag, der zusammen mit den Verbesserungsvorschlägen der Softwareentwickler in zukünftigen Prozessoren Einzug halten könnte, wie Earl Stahl, Vice President Software Engineering bei AMD, verdeutlicht:
“AMD understands the challenges developers face when creating multi-threaded software, and so we are taking a step to evolve new methods to ensure that software applications are optimized for multi-core technology [...] In the spirit of AMD’s commitment to open innovation and fostering industry discussion, we are making the Light-Weight Profiling specification available to encourage discussions with the developer community around how to make native and managed code perform better in multi-core computing environments.”
Die frühe Vorstellung von LWP ist nötig, denn im Gegensatz zu anderen Befehlserweiterungen wie MMX oder SSE stellt LWP auch Anforderungen an das Betriebssystem. Dieses muss LWP nicht nur aktivieren und den Grad des verfügbaren Profilings erkennen, sondern darüber hinaus mit Hilfe von Sicherheitsmechanismen dafür sorgen, dass Programme nicht unbefugt auf die Statistiken anderer zugreifen können. Und selbst dann bringt es nur etwas, wenn die Managed-Laufzeit-Umgebungen die von LWP bereitgestellten Daten auch zur Optimierung einsetzen. Nur mit Hilfe von neuen Runtime-Environments darf auf Performancesteigerungen, von denen dann aber auch älterer Java- und .NET-Code (und natürlich auch anderer Managed Code) profitieren würde, gehofft werden. Wie hoch das zu erwartende Performance-Plus ausfällt, vermag AMD derzeit nicht abzuschätzen.
Auch bei Intel arbeitet man hinter verschlossenen Türen an etwas Vergleichbarem. Die Technologie hört auf den Codenamen Rockton Technology (RT) und schwirrt bereits seit längerem als Gerücht durchs Internet. 2005 zum ersten Mal erwähnt, hätte sie noch in die aktuelle Core-2-Duo-Produktfamilie (Conroe, Merom, Woodcrest) Einzug halten können. Im Juni 2006 wurde spekuliert, dass sie womöglich doch erst mit der für 2008 geplanten Nehalem-Prozessorgeneration das Licht der Welt erblickt. Von der Existenz wollte man bei Intel bis dahin nichts wissen. Auf dem Intel Developer Forum Fall 2006 in San Francisco war hinter vorgehaltener Hand zu hören, dass es sich um eine Technology zum Profiling handeln soll, und im Hinblick auf AMDs Ankündigung und den vorangegangenen Spekulationen rund um Java- und XML-Beschleunigung scheint nun sicher, dass Rockton und LWP in der Tat das Gleiche bezwecken. Derzeit sieht es so aus, als würde Rockton mit der Penryn-Produktfamilie Ende dieses Jahres Einzug halten.
AMDs Vorschlag für Light-Weight Profiling (LWP) steht als PDF-Datei offiziell zum Download bereit, während sich Intel noch in Schweigen hüllt.