Ripes
Awesome RISC-V

Ripes

RISC-Vエコシステム

RipesはMorten Borup Petersenによるグラフィカルなコンピュータアーキテクチャシミュレータで、C++とQtで書かれています。

RipesはLYSZTでダウンロードできます。

Ripesのインストール方法

1行でRipesをあなたのマシンにインストールします。インストーラーはGitHubから最新リリースを取得し、お使いのオペレーティングシステムとアーキテクチャに一致するファイルを選択し、そのsha256チェックサムを検証して、ホームディレクトリにインストールします。管理者権限は必要ありません。

ターミナルからインストール
curl -fsSL https://lyszt.net/install.sh | sh -s -- ripes

コマンドはLinuxとmacOSで動作します。Windowsでは、以下の手順に従ってファイルを手動でダウンロードしてください。

手動ダウンロード

Ripes はご自身でダウンロードすることもできます。ダウンロードダイアログでお使いのオペレーティングシステムを選択し、公式 GitHub リリースからファイルを取得してください。

公式ドキュメントより
メソッド要件方法
リリースバイナリリリースページを開く
ブラウザでripes.dk
ソースからビルド
  • Qt >= 6.5.0 + Qt Charts
  • CMake
  • libegl1-mesa-dev (Linux)
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行と、その行に対してコンパイラが生成するマシンコードを比較できます。

ソース

  1. Ripes README
  2. Ripes: A Visual Computer Architecture Simulator, WCAE 2021