Spike
RISC-V-ÖkosystemSpike ist der Referenzsimulator für den RISC-V-Befehlssatz, gepflegt von RISC-V International.
Übersicht
Spike ist der Referenzsimulator für den RISC-V-Befehlssatz. Ein Simulator ist ein Programm, das einen Prozessor nachbildet. Andere Implementierungen vergleichen ihr Verhalten mit einem Referenzsimulator, daher führt ein Team, das einen neuen RISC-V-Chip entwickelt, dasselbe Programm auf seinem Design und auf Spike aus und prüft, ob beide mit denselben Registern und demselben Speicher enden.
Spike modelliert Harts, kurz für Hardware-Threads. Ein Hart ist eine Einheit innerhalb eines Prozessors, die ihren eigenen Befehlsstrom ausführt. Spike deckt die 32-Bit- und 64-Bit-Basisfehlsätze und die Standarderweiterungen einschließlich Vektoren ab. Es deckt außerdem die Privilegienmodi Machine, Supervisor und User ab, auf die sich Betriebssysteme verlassen.
Verlauf
Spike wurde an der UC Berkeley geschrieben, wo der RISC-V-Befehlssatz ab 2010 entworfen wurde, und sein öffentliches Repository stammt aus dem Jahr 2011. Der Name stammt vom goldenen Nagel, der 1869 eingeschlagen wurde, um die Fertigstellung der ersten Eisenbahnstrecke quer durch die Vereinigten Staaten zu markieren.
RISC-V International pflegt Spike heute in seiner Software-Organisation auf GitHub. Neue Erweiterungen erreichen Spike in der Regel früh, oft während ihre Spezifikationen noch Entwürfe sind, damit Hardware- und Compiler-Entwickler ein Modell zum Testen haben.
Wo es verwendet wird
Spike ist ein Kommandozeilenwerkzeug für Ingenieure. Hardware-Teams verwenden es, um ihre Entwürfe zu verifizieren, und Compiler-Entwickler verwenden es, um generierten Code zu testen. Es führt gewöhnliche C-Programme aus, die für RISC-V kompiliert wurden, mit Hilfe des Proxy-Kernels, eines kleinen Programms, das Systemaufrufe vom simulierten Programm an den Host-Computer weiterleitet.
