Spike
RISC-VエコシステムSpikeはRISC-V命令セットのリファレンスシミュレータであり、RISC-V Internationalによって維持されています。
概要
SpikeはRISC-V命令セットのリファレンスシミュレータです。シミュレータとは、プロセッサを模倣するプログラムのことです。他の実装は自身の動作をリファレンスシミュレータと比較するため、新しいRISC-Vチップを開発するチームは同じプログラムを自社の設計とSpikeの両方で実行し、どちらも同じレジスタとメモリで終了することを確認します。
Spikeはhart(ハードウェアスレッドの略)をモデル化します。hartとは、プロセッサ内部で独自の命令ストリームを実行する単位です。Spikeは32ビットおよび64ビットの基本命令セットと、ベクトルを含む標準拡張をカバーします。また、オペレーティングシステムが依存するマシン、スーパーバイザ、ユーザの各特権モードもカバーします。
履歴
Spikeは、2010年からRISC-V命令セットが設計されたUCバークレーで書かれ、その公開リポジトリは2011年にさかのぼります。名前は、1869年にアメリカ合衆国を横断する最初の鉄道の完成を記念して打ち込まれたゴールデンスパイクに由来します。
現在、RISC-V InternationalはGitHub上のソフトウェア組織でSpikeを維持しています。新しい拡張は通常早くにSpikeに届き、しばしば仕様がまだドラフトの段階で届くため、ハードウェアおよびコンパイラの開発者はテスト対象のモデルを持つことができます。
使用場所
Spikeはエンジニア向けのコマンドラインツールです。ハードウェアチームは設計の検証に、コンパイラ開発者は生成されたコードのテストに使用します。RISC-V向けにコンパイルされた通常のCプログラムを、シミュレートされたプログラムからのシステムコールをホストコンピュータに転送する小さなプログラムであるプロキシカーネルの助けを借りて実行します。
