四畳半テクノポリス

コロナのストレスで気が狂い、D進した院生

日本語のRISC-Vに関する一般書籍を全部紹介する

日本語のRISC-Vに関する一般書籍を全部紹介します。なぜだか家に全部あるんですよ、本屋で見かけた翌日には本棚の本の隙間になぜか出現します。SCPみたいですね。

 

冗談はさておきAmazonで入手可能なRISC-Vの書籍に関して紹介してゆきます。順番は入門者が読むべき順番です。

①ディジタル回路設計とコンピュータアーキテクチャ

言わずと知れた計算機アーキテクチャの教科書の名著です。この本ではトランジスタレベルのデジタル回路の基礎から、HDLの書き方、ステートマシンや演算器といった論理回路アセンブリ言語、そしてコンピュータアーキテクチャに至るまで一貫した内容が含まれています。RISC-V版と銘打ってありますが、ほかにMPIS版とARM版が存在ます。内容としてはRISC-Vの章以外はほかのバージョンと大差ない内容になっており、この本をすべて読むころにはシングルサイクルのRISC-Vを作れるようになります。


すべてのコンピュータアーキテクチャに興味を持つ人に読んでもらいたい一冊です。

サンプルの言語がSystemVerilogになってしまったことがちょっと残念ですね。

読むべき人

難易度:★

ボリューム:★★★★

おすすめ:★★★★★

基礎力:★★★★★

RISC-VとChiselで学ぶ はじめてのCPU自作
――オープンソース命令セットによるカスタムCPU実装への第一歩

去年凄い流行った本です。この本の特徴はChiselというScalaという言語上に構築されたDSLを使ってRISC-Vを設計する点です。ChiselはRISCV-Vの代表的な実装の一つであるRocketChipでも使われている注目の高いDSLの一つであり、Chiselに入門したい人にもななかなかおすすめだと思います。Chiselはテスト機能がであるため、本書ではRISC-Vの開発をChisel無いで一貫して行っており、FPGAを用意する必要が無いのも良い点であり、悪い点でもあります。特に回路的な図説が少ないため、論理回路としてCPUをとらえてる人にはわかりにくいかもしれません。

内容としてはシングルサイクルRV32IのRISC-Vを構築し、その後パイプライン化やベクトル命令の追加、CSRレジスタの実装などを通してRISC-Vより深く学んでゆきます。そのため①でCPUについて学んだ人がさらにRISC-Vについて学ぶにはおすすめの本です。

読むべき人

  • RISC-Vについてある程度詳しく知りたい人
  • ChiselにRISC-Vから入門したい人

難易度:★★

ボリューム:★★★

おすすめ:★★★★

Chisel:★★★

プログラマのためのFPGAによるRISC-Vマイコンの作り方

[堀江 徹也]のプログラマのためのFPGAによるRISC-Vマイコンの作り方

RocketChipを研究で使うことになり、難解すぎて発狂していたところ助けてもらった本です。緑の本とは対照的にFPGAへの実装を前提としているので、ChiselでHDLを出力するところまで丁寧に書いてあります。ただ、Chiselはバージョンアップが速いのでたまに古い記述が含まれているのは注意です。

内容として印象に残っているのはRocketChipについて詳しく記述されていることです。上でも述べましたがRocketChipはRISC-Vの代表的な実装であり、研究でも良く用いられると思うのですが本書ではRocketChipの基礎的な内容から、RocketChipにChipyardやRocketChipで標準的に用いられるバスであるTilelinkで接続可能なモジュールをtraintなどChisel特有の機能を使って追加する方法などに関して詳しく書かれており、この章だけでも買う価値があると思います。

前半のChiselの基礎文法に関してもそこそこ丁寧に書かれているので研究でRocketChipを作らないといけないよという人はこの本をちゃんと読めば自力でRocketChipに必要な機能を追加する能力が備わると思います。

難易度:★★★

ボリューム:★★

おすすめ:★★★

RocketChip:★★★★★

④作って学ぶコンピュータアーキテクチャ —— LLVMRISC-Vによる低レイヤプログラミングの基礎

3冊もRISC-Vのアーキテクチャに関する本を読んでしまうと「もうRV32Iを作る系の本は要らないよ」という感想だと思いますが、この本はこれまでとは異なり、ソフトウェアを動かすプラットフォームとしてのRISC-Vに関する本です。

内容としてはRISC-Vという命令セットおよびコンピュータアーキテクチャに対してLLVMを対応させるという内容になり、LLVMコンパイラパイプラインなどに関して詳細に記載されており、この本の内容をマスターすればRISC-Vだけでなくオレオレ命令セットのCPUをLLVMに対応させることも可能だと思います。また内容にかんしても非常に丁寧であり、Docker環境も用意されているため、難しい本ではありますが躓く点は少ないと思います。

読むべき人

  • ソフトウェアエンジニアの立場に立ってRISC-Vと向き合えるようになりたい人
  • RISC-Vを命令レベルで拡張し、コンパイラを対応させたいと考えている
  • スパコンなどでRISC-Vを使う人

難易度:★★★★

ボリューム:★★★★

おすすめ:★★★★

LLVM:★★★★★

ちなみに私はこの本に関して輪講をおこなっているので 興味がある人はぜひ参加してほしいです。

RISC-V原典 オープンアーキテクチャのススメ

さて、いままで読んできた本はRISC-Vに関して手を動かして学ぶ本でした。長時間RISC-Vと向きあうと、それだけRISC-Vのユーザーマニュアルと向き合う時間が長くなり、どこにどんなレジスタがあったっけと、ユーザーレベルのマニュアルと、特権レベルのマニュアルを行ったり来たりし始めたころだと思います。そんな時におススメなのがこの本です。RISC-V原点はRISC-Vの仕様に関する本です。この本だけを見てRISC-Vを作ることは難しいと思いますが、RISC-Vを作っていて、詳細な仕様がわからないときに公式のリファレンスを行ったり来たりしなくてもさっと日本語で必要な情報を取り出すことができます。特にRISC-V上でOSを開発する場合など特権レベルのレジスタに関して詳しく乗っているため、非常に役に立つと思います。

読むべき人

  • RISC-Vにある程度詳しく、The RISC-V Instruction Set Manualを読み込んでいる人
  • RISC-V上で動くOSを作っている人

難易度:★★★

ボリューム:★★★

おすすめ:★★★

RISC-V:★★★★★

⑥コンピュータアーキテクチャ 定量的アプローチ

この本に関して言えば、私はなにか語れるほどちゃんと理解できていないが、とりあえず書いておくと別にRISC-Vのための本ではない。それぞれのテーマに適した色々なプロセッサが登場する。

難易度は難しくアーキテクチャを専門としていない准教授は途中で投げたと言っていた

読むべき人

  • RISC-Vにかかわらずコンピュータアーキテクチャに関してしっかり学びたい人
  • RISC-Vの世界で実用的なプロセッサを作りたい人。

難易度:★★★★★

ボリューム:★★★★★

おすすめ:★★

RISC-V:★

⑦計算機工学RISC-V版

一応買ってみたのですが本ではなく青山学院大学理工学部で使用されている講義しようになります。内容はパワポで作られている穂でkindle読むと横向きになってしまい、PCだと読みずらいのが残念なところ、どちらかといえばPDFで売ってほしい内容です

SRAMの挙動や論理回路の遅延などアナログ的な特性に関して結構まじめに書いてあるのはLSI設計者を育成する無いよとしてはなかなかgoodだと思います。

 

読むべき人

  • 院試でデジタル回路が出るからその対策をしたい人
  • これからSRAMなどアナログ要素を含むLSIを設計しようと思っている人

難易度:★

ボリューム:★★★★

おすすめ:★★★★

LSI設計:★★★★★

 

 

異常でAmazonで買えるRISC-Vをテーマとした書籍は雑誌を除けばほぼすべてだと思います。ちゃんと最後まで理解できてない本についても書いているので内容が薄いのは許してほしいです。