Venus
Awesome RISC-V

Venus

RISC-Vエコシステム

VenusはUCバークレーのRV32IMアセンブリ用の教育シミュレータで、CS 61Cで使用されています。

概要

VenusはWebブラウザで動作するRISC-Vシミュレータです。シミュレータとはプロセッサを模倣するプログラムであり、RISC-Vハードウェアを持っていなくてもマシンコードを実行できます。VenusはRV32IM向けに書かれたアセンブリコードを読み込みます。アセンブリコードはマシン命令を読みやすいテキスト形式にしたものです。RV32Iは基本的な32ビットRISC-V命令セットであり、M拡張は乗算と除算を追加します。

エディタとシミュレータは1つのページを共有しています。プログラムはecallを通じてサービスを要求します。ecallは環境に何かを求めるRISC-V命令です。Venusは値の出力と追加メモリの割り当てのためのecallを処理します。

履歴

Keyhan Vakilは2017年にUC BerkeleyでVenusを始めました。このプロジェクトはKotlinで書かれています。KotlinはJavaScriptにコンパイルできるプログラミング言語です。このコンパイルによって、シミュレータは何もインストールせずにブラウザ内で実行できるのです。

UC Berkeleyは、機械構造に関する講義であるCS 61CでVenusを採用し、学生はそこで初めてのRISC-Vプログラムを書きます。この講義は後にvenus.cs61c.orgで独自のフォークを維持しました。フォークとは、元のプロジェクトとは別に開発されるプロジェクトのコピーです。もう一つのフォークであるVenus164は、Berkeleyのコンパイラ講義におけるChocoPyコンパイラプロジェクト向けの機能を追加しています。

使用場所

Venusはアセンブリの入門コースに適しています。学生はページを開き、プログラムを貼り付けて実行します。命令セットはRV32IMのままで、最初のレッスンをレジスタ、メモリ、制御フローに集中させる小さなセットです。

ソース

  1. kvakil/venus README
  2. CS 61C Lab 3, UC Berkeley
  3. Venus164 fork