Ripes
RISC-VエコシステムRipesはMorten Borup Petersenによるグラフィカルなコンピュータアーキテクチャシミュレータで、C++とQtで書かれています。
Ripesのインストール方法
1行でRipesをあなたのマシンにインストールします。インストーラーはGitHubから最新リリースを取得し、お使いのオペレーティングシステムとアーキテクチャに一致するファイルを選択し、そのsha256チェックサムを検証して、ホームディレクトリにインストールします。管理者権限は必要ありません。
curl -fsSL https://lyszt.net/install.sh | sh -s -- ripesコマンドはLinuxとmacOSで動作します。Windowsでは、以下の手順に従ってファイルを手動でダウンロードしてください。
Ripes はご自身でダウンロードすることもできます。ダウンロードダイアログでお使いのオペレーティングシステムを選択し、公式 GitHub リリースからファイルを取得してください。
| メソッド | 要件 | 方法 |
|---|---|---|
| リリースバイナリ | リリースページを開く | |
| ブラウザで | ripes.dk | |
| ソースからビルド |
| git clone --recursive https://github.com/mortbopet/Ripes.gitcd Ripes/cmake .make |
概要
RipesはグラフィカルなRISC-Vシミュレータです。シミュレータとは、プロセッサを模倣するプログラムのことです。Ripesはプロセッサのデータパス、つまりデータが通過する配線、レジスタ、ユニットの図を描画し、命令が進むにつれてそれをハイライト表示します。
Ripesには複数のプロセッサモデルが含まれています。最も単純なものは、次の命令を開始する前に1つの命令を完了させます。パイプライン化されたモデルは、実行をステージに分割し、たとえばメモリから命令をフェッチし、それをデコードして実行するといった段階を経て、同時に複数の命令を進行させ、各ステージに1つずつ配置します。パイプライン表示では、ハザード、つまりある命令が先行する命令によってまだ生成されていない結果を必要とするケースと、プロセッサがそれらを解決するために待機したりデータをフォワードしたりする方法を示します。
Ripesはまた、キャッシュ、つまり最近使用されたデータをプロセッサの近くに保持する小さく高速なメモリや、プログラムがメモリアドレスを読み書きすることで制御するLEDやスイッチなどのデバイスもシミュレートします。
履歴
Morten Borup Petersenは2017年にRipesを開始し、現在もメンテナンスを続けています。このプロジェクトは2021年のWorkshop on Computer Architecture Educationで論文「Ripes: A Visual Computer Architecture Simulator」として発表されました。
RipesはQtフレームワークを用いてC++で書かれ、MITライセンスの下でリリースされています。Linux、Windows、macOS向けのビルドが存在し、WebAssemblyビルドはripes.dkでブラウザ内で同じプログラムを実行します。
使用場所
Ripesは、学生がプロセッサがどのようにコードを実行するかを学ぶコンピュータアーキテクチャのコースに適しています。RISC-Vコンパイラをインストールすると、Cプログラムもコンパイルできるため、学生はCの1行と、その行に対してコンパイラが生成するマシンコードを比較できます。
