RISC-V-Emulation bis an die Grenzen treiben

Pushing the limits of RISC-V emulation

RISC-V-Emulation bis an die Grenzen treiben

In diesem Beitrag untersucht der Autor, wie nah ein RISC-V-Programm auf einer Nicht-RISC-V-Maschine an Bare-Metal-Performance kommen kann. Der Schlüssel ist ein Ahead-of-Time-Recompiler, der generierte Basisblöcke über Tail Calls verbindet und Clangs preserve_none-Aufrufkonvention nutzt, um heißen Gastzustand in Host-Registern zu halten. OpenVM, eine RISC-V-VM von Axiom, erzeugt neben der Ausführung auch einen prägnanten kryptografischen Beweis. Während die Beweiserstellung parallelisiert werden kann, bleibt die Ausführung sequenziell und wird zum Engpass. Der Artikel zeigt, wie von einem einfachen Interpreter über Predecoding, Computed Gotos und Tail-Call-Threading bis hin zu einem AOT-Übersetzer und schließlich zur Generierung von C-Code, der von Clang optimiert wird, die Overheads schrittweise reduziert werden.

Der schnellste Weg, ein Programm auszuführen, besteht darin, ihm aus dem Weg zu gehen und die Hardware es direkt ausführen zu lassen.

Mehr von diesem Tag

2026-08-06