内容紹介
最新プロセッサRISC-Vの設計思想と命令を、コンピュータ研究の泰斗・パターソン教授が解説米インテルと英ARMに牛耳られていたマイクロプロセッサの世界に、期待の大型新人「RISC-V(リスクファイブと呼ぶ)」が登場しました。本書はRISC-Vに関する、日本で初めての本格的解説書です。開発者自らが筆をとり、設計思想から命令セット、プログラミングなどについて余すところなく解説しました。メーカーやベンダーのハード技術者やソフト技術者だけではなく、学生や研究者の方にとっても必読の書です。
RISC-Vの最大の特徴はオープンソースという点です。ソフトのLinuxのように無償で公開され、誰でも自由に改良・再配布ができる命令セット・アーキテクチャです。ハードにもオープンソースの時代が到来したのです。もちろん既存のマイクロプロセッサを研究し尽くして開発されているので、技術的な完成度は非常に高いレベルに到達しています。適用範囲は広く、エッジ・コンピューティングからサーバーまでをカバーします。
RISC-Vを開発したのは米カリフォルニア大学バークレー校です。開発には、コンピュータ・アーキテクチャの泰斗で、2018年チューリング賞を受賞したデイビッド・パターソン氏が参画しました。パターソン氏のコンピュータ・アーキテクチャ研究の集大成です。
「すべてのコンピュータで用いられるハードとソフトのエコシステムを実現するための、フリーでオープンな RISC-Vの標準化と保護、啓蒙を行うこと」を目的に非営利団体のRISC-V基金が発足しました。立ち上げには、米Google、米NVIDIA、米IBM、米Qualcommなどが参画しました。RISC-Vへの期待の高さが伺えます。
主な内容
【第1章】なぜRISC-Vか?
1.1 はじめに
1.2 モジュラーISA対インクリメンタルISA
1.3 ISA設計の基礎
1.4 本書の概要
1.5 おわりに
1.6 参考文献
【第2章】RV32I:RISC-V基本整数ISA
2.1 はじめに
2.2 RV32I命令の形式
2.3 RV32Iのレジスタ
2.4 RV32Iの整数演算
2.5 RV32Iのロードとストア
2.6 RV32Iの条件分岐
2.7 RV32Iの無条件ジャンプ
2.8 RV32Iのその他の命令
2.9 挿入ソート・プログラムを用いたRV32I、ARM-32、MIPS-32、x86-32の比較
2.10 おわりに
2.11 参考文献
【第3章】RISC-Vのアセンブリ言語
3.1 はじめに
3.2 呼び出し規約
3.3 アセンブリ
3.4 リンカー
3.5 静的リンキング対動的リンキング
3.6 ローダー
3.7 おわりに
3.8 参考文献
【第4章】RV32M:乗算および除算
4.1 はじめに
4.2 おわりに
4.3 参考文献
【第5章】RV32FおよびRV32D:単精度および倍精度の浮動小数点
5.1 はじめに
5.2 浮動小数点レジスタ
5.3 浮動小数点のロード、ストア、演算
5.4 浮動小数点の変換と転送
5.5 その他の浮動小数点命令
5.6 DAXPYを使用してのRV32FD、ARM-32、MIPS-32、x86-32の比較
5.7 おわりに
5.8 参考文献
【第6章】RV32A:原子のように不可分なアトミック命令
6.1 はじめに
6.2 おわりに
6.3 参考文献
【第7章】RV32C:圧縮命令
7.1 はじめに
7.2 RV32GC、Thumb-2、microMIPS、およびx86-32の比較
7.3 おわりに
7.4 参考文献
【第8章】RV32V:ベクトル
8.1 はじめに
8.2 ベクトル演算命令
8.3 ベクトル・レジスタと動的タイピング
8.4 ベクトルのロードとストア
8.5 ベクトル実行中の並列性
8.6 Conditional Execution of Vector Operations
8.7 Miscellaneous Vector Instructions
8.8 ベクトルの例:RV32VにおけるDAXPY
8.9 RV32V、MIPS-32 MSA SIMD、x86-32 AVX SIMDの比較
8.10 おわりに
8.11 参考文献
【第9章】RV64:64ビット・アドレス命令
9.1 はじめに
9.2 Comparison to Other 64-bit ISAs using Insertion Sort
9.3 プログラム・サイズ
9.4 おわりに
9.5 参考文献
【第10章】RV32/64特権アーキテクチャ
10.1 はじめに
10.2 簡単な組み込みシステム向けのマシン・モード
10.3 マシン・モードでの例外処理
10.4 組み込みシステムにおけるユーザー・モードとプロセスの分離
10.5 現代のOS向けスーパーバイザ・モード
10.6 ページに基づく仮想記憶
10.7 識別および性能に関するCSR
10.8 おわりに
10.9 参考文献
【第11章】RISC-Vの将来に向けた任意選択拡張機能
11.1 B:ビット操作のための標準拡張機能
11.2 E:組み込み用の標準拡張機能
11.3 H:ハイパーバイザをサポートするための特権アーキテクチャ拡張機能
11.4 J:動的に翻訳される言語のための標準拡張機能
11.5 L:10進浮動小数点用の標準拡張機能
11.6 N:ユーザー・レベルの割り込みのための標準拡張機能
11.7 P:パック形式のSIMD命令向けの標準拡張機能
11.8 Q:4倍精度浮動小数点のための標準拡張機能
11.9 おわりに
【付録A】RISC-V命令一覧
【付録B】RISC-Vからの変換
B.1 はじめに
B.2 ツリー集計プログラムを用いたRV32IとARM-32、x86-32の比較
B.3 おわりに