Spike
RISC-V生态系统Spike 是 RISC-V 指令集的参考模拟器,由 RISC-V International 维护。
概述
Spike 是 RISC-V 指令集的参考模拟器。模拟器是一种模仿处理器的程序。其他实现会将自己的行为与参考模拟器进行比较,因此构建新 RISC-V 芯片的团队会在自己的设计和 Spike 上运行同一个程序,并检查两者是否以相同的寄存器和内存结束。
Spike 对 hart(硬件线程的简称)进行建模。hart 是处理器内部运行自己指令流的单元。Spike 涵盖 32 位和 64 位基础指令集以及标准扩展,包括向量。它还涵盖操作系统所依赖的机器、监督者和用户特权模式。
历史
Spike是在UC Berkeley编写的,RISC-V指令集正是从2010年起在那里设计的,其公开仓库可追溯至2011年。这个名字来自1869年为纪念美国首条横贯大陆铁路竣工而钉入的金道钉。
RISC-V International现在在GitHub上的软件组织中维护Spike。新的扩展通常很早就进入Spike,往往在其规范仍为草案时就已经进入,因此硬件和编译器开发者有了可供测试的模型。
使用位置
Spike 是面向工程师的命令行工具。硬件团队用它来验证设计,编译器开发者用它来测试生成的代码。它借助代理内核来运行针对 RISC-V 编译的普通 C 程序,代理内核是一个将模拟程序的系统调用转发到宿主计算机的小型程序。
