Das Problem von Transmetas Lösung war das es keine Persistenz für den gemorphten Code gibt, die Transmeta-CPUs hatten doch so einen extra RAM in dem zum einen die Code-Morphing-SW liegt und zum anderen eine Art Cache mit dem gemorphten Code
Ja, und dafür haben die einerseits ohnehin knappen System-RAM genommen, andererseits braucht die CPU zum Funktionieren dann zusätzliche Speicherbandbreite.
Die hätten meiner Meinung nach lieber mal die native Architektur öffnen sollen, meinetwegen auch zusätzlich zum x86-Befehlssatz.
Diese "Fat Binaries" sind aber erst raus gekommen als sich die Anwendungshersteller mit Appels Plattformwechsel aktiv beschäftigt hatten, alles was vorher schon da war lief per Rosetta.
Naja, für den Softwarehersteller ist es ein einmaliges Rekompilieren und dann ist das Problem gelöst. Dafür muss Rosetta nicht sonderlich schnell sein - ist es aber trotzdem.
Außerdem laufen meines Wissens sowohl Rosetta als auch .net mit dynamischer Rekompilierung, d.h. das Programm ist nur bei der ersten Ausführung langsam, später wird nur noch nativer Code ausgeführt.
Das hab ich doch schon gestern geschrieben, es geht mir doch gerade darum das so ein Emulator lieber mehr Energie in die Optimierung stecken soll aber dafür nur ein einziges mal.
Also willst du einfach einen dynamischen Compiler, der zur Laufzeit den Code so hinbiegt, dass er auf der gerade vorhandenen Architektur läuft und dafür Kompatiblität in Hardware opfern.
Solange Intel mit jedem x86-CPU-Kern auch alle Altlasten mitschleppen muss wird sich x86 auch nie in den ganz kleinen bzw. ganz sparsamen Systemen behaupten können (so groß kann Intels technologischer Vorsprung bei der Chipherstellung nun auch wieder nicht werden),
Die Architektur war und ist auch nicht dafür gebaut worden. Noch nie. Nur, weil dein Hammer nicht passt, setzt du dich auch nicht mit der Feile hin und bastelst so lange dran rum, bis er geht. Selbst wenn, danach taugt er nicht mehr für den ursprünglichen Zweck.
Eher kaufst du dir einen passenden Hammer. Und der ARM-Hammer muss halt nicht kompatibel zu den Urzeiten sein.
Ich hatte mal mit einem Terminal zu tun (mit Win NT4 Embedded), wo an der Kompatiblität gespart hatte und GRUB nebst anderen Bootloader direkt der Länge nach hingeschlagen ist, wenn man das Teil booten wollte. Der Preis war, dass man darauf ohne extremen Aufwand kein anderes Betriebssystem draufmachen konnte. Das ist aber genau das, was ich von einem PC-kompatiblen erwarte, im Gegensatz zu einem Tablet.
Wenn die Performance wirklich wichtig ist werden eben mehrere Cortexe zusammengepackt und erreichen dann auch mehr CPU-Leistung bei trotzdem immer noch kleinerem Energie- und Silizium-verbrauch.
Da scheiterst du an NUMA und der heutigen Informatik. Viele Probleme sind damit nicht so effizient lösbar, wie man es möchte. ARM optimiert aber gewaltig in die Richtung, einen Cortex-A15 neben einen -A7 zu schalten und damit energieeffizientes Scheduling zu benutzen. Zumal die aktuellen schnellen ARMs wesentlich mehr Energie pro Rechenleistung fressen als die kleineren und wenn du einen aktuellen Cortex mit 2-4 GHz takten wolltest, bist du garnicht mehr so weit weg vom Energiebedarf von x86ern.
Ich behaupte das wenn Intel wirklich in diesen Markt rein will dann wird Intel aus x86 einiges raus werfen und das dann in SW emulieren müssen.
Wer sagt denn, dass die das nicht tun? Mikrocode gibt es jedenfalls schon, das BIOS ist ohnehin chipsatz- und mainboardspezifisch und dessen Bootstrap-Code kann ja sonstwie gestrickt sein. Den Mikrocode in die CPU zu werfen, die dann so tut, als wäre sie im Real Mode, reicht doch aus...
Zumal: Selbst, wenn sie es in SW emulieren, tut das weder der Performance noch der Kompatiblität einen Abbruch. Den Kram nutzt eh kaum jemand.
Gruß,
Svenska