Transmeta Crusoe im Detail

Die Code-Morphing-Software

Warum sich Transmeta den Ausnahme-Programmierer und Linux-Erfinder Linus Torvalds ins Team geholt hat, ist ganz klar: Die meiste Intelligenz des Crusoe steckt in der Code-Morphing-Software. Damit wird zur Laufzeit der gesamte Code einer Rechner-Architektur auf die eigentliche Hardware umgesetzt. Nur die Code-Morphing-Software selbst hat Zugriff auf den Prozessor, wie Bild 2 zeigt.

Diese Software wird beim Einschalten des Geräts von einem Flash-ROM ins RAM geladen und dieser Bereich dann schreibgeschützt. Von 16 MByte Größe der Code-Morphing-Software wird gemunkelt. Erst danach kann das Rechner-BIOS gestartet werden, es läuft bereits über die Prozessor-Emulation. Zur Laufzeit wird das System immer schneller, da das Crusoe-Konzept versucht, jede Befehlskette nur einmal zu übersetzen. Dazu dient der Translation Cache, den die Bilder 3 bis 5 veranschaulichen. Die Code-Morphing-Software unterteilt die x86-Programme selbstständig in funktionale Blöcke, die sich gut übersetzen und dabei optimieren lassen.

Das Beispiel besteht aus einer Schleife, wie sie bei x86-Programmen häufig vorkommen. Die ersten beiden Blöcke dieser Schleife wurden bereits abgearbeitet, und stehen im Translation Cache. Der dritte Block ist der Code-Morphing-Software neu, und wird in Bild 3 übersetzt.

Jetzt erst beginnt das Crusoe-System mit der Ausführung, wie in Bild 4 zu sehen. Danach wird der übersetzte Code aber nicht weggeworfen, sondern im Prozessor selbst gehalten.

Nun kehrt die Schleife in Bild 5 wieder an ihren Beginn zurück. Da nichts mehr übersetzt werden muß, kann die Prozessor mit seiner vollen Geschwindigkeit arbeiten.

Die Anzahl der Einträge in diesem Translation Cache ist jedoch nicht unbegrenzt, und über ihre genaue Menge schweigt sich Transmeta noch aus. Das Funktionsprinzip ist jedoch klar: Je länger ein Programm läuft, umso schneller soll es das auf dem Crusoe auch tun. Ähnlich der Out-of-Order-Exection von modernen x86-Prozessoren optimiert beim Crusoe also die Code-Morphing-Software die ihr vorgesetzten Programme.