鬱猫のつぶやき

鬱猫が日々思っていることをつづります

教育用RISC-V Davis In-Order CPUの論文を読む

Davis In-Order CPUというカリフォルニア大学デービス校のコンピューターアーキテクチャの授業で使われている、RISC-V ISAを実装したCPUがある。少し前に論文として上がっていたので読んでみた。

論文のPDFはこちら

カリフォルニア大学デービス校では長い間、コンピューターアーキテクチャの授業ではLogisimが使われていたが、学生から非常に不評だったとのこと。論文には、学生からのアンケートのコメントと思わしき文章が掲載されていた。

  • “there isn’t much documentation on Logisim online”
  • “I hate logisim with a passion.”

そこで、Chiselを使って設計したDINO CPUを使い、Chiselを教える講義に変更したとのこと。 そして実際に 2クォーター分講義を実施したところ、評価が高かったそうだ。

  • “Very challenging but rewarding course. Please keep using Chisel in the future!”

また、そこでChiselの知識を身に着け、企業のインターンシップに参加した学生もいたらしい。

Additionally, after teaching this course for the first time, 
one student reported that they received an internship 
offer because they had Chisel experience

講義では座学に加え、4つの課題が出され評価がくだされる。

  • ALU Control Unitの実装 (Chiselとハードウェア記述言語になれさせる目的のため)
  • アプリケーションを動かせるようにするために、CPUの全体を設計
  • パイプラインの実装
  • パイプラインに分岐予測を実装

この課題の内容はすべてGitHubに掲載されており、リポジトリをクローンすればカリフォルニア大学デービス校の学生でなくとも取り組むことができるみたいだ。

DINO CPUについては、以下の特徴を備えたCPUであるとのこと。

  • シンプルなデザインで、教育用途に作られており、わかりやすいコードを心がけて実装されている。
  • RISC-V ISA(RV32I)が実装されており、Cのプログラムをコンパイルして実行することができる
    • CSR命令 ecall ebreakは実装していない
    • 将来的にはこれらの命令をサポートすることにフォーカスするとのこと

基本的にはPatterson & HennessyRISC-V Editionに掲載されているCPUをベースに作られているが、Patterson & Hennessyの本ではRV32Iのうち命令のエンコード形式がR形式の一部しか実装されていないのに対し、DINOはそれ以外の特権命令をのぞくほぼすべての命令を実装しているのが大きな違いとなっている。

デジタル回路について予備知識がない人にもChiselが理解できるようにマテリアルを追加したということも書いてあった。Chisel Bootcampなどの資料はVerilogなどの他のHDLの知識を必要としているところがあったのは確かにそのとおり。

However, most of the Chisel documentation targets graduate 
students and professionals with architecture and digital design background. 
Therefore, we supplemented this documentation with our own slimmed down 
documentation which only contained details required for completing the DINO 
CPU assignments.

Chiselからハードウェア設計を学ぶ上で、DINO CPUは最適かもしれない。

講義ノートもすべて公開されているみたいだ。良い時代になったものだ。