概要
コンピュータアーキテクチャ,とくにCPUの命令セットアーキテクチャについて,RISC-Vを例に「上のレイヤからアプローチする」ことで理解を深めることを目的とした一冊。本書を一通り読み終えるころには,低レイヤに対する一段上の実力がついているはずです!
こんな方におすすめ
- 性能向上などのためにコンピュータアーキテクチャを理解したいエンジニア
- RISC-VやLLVMへの理解を深めたいエンジニア
目次
第1章:コンピュータアーキテクチャとISAの基礎知識
- コンピュータアーキテクチャの全体像
- 命令セットアーキテクチャ(ISA)
- CPUの高速化技法
第2章:RISC-Vの基礎知識
- RISC-V命令セットの特徴
- RISC-V命令セットの詳細
- RISC-Vを体験する
第3章:LLVMの基礎知識
第4章:LLVMバックエンドの仕組み
- LLVMバックエンド開発の全体像
- LLVMのバックエンドを作るための第一歩
- ターゲット記述ファイル(tdファイル)の作成
- MYRISCVXのC++クラスを実装する
- llcはどのようにマルチターゲットを実現しているのか
第5章:簡単な関数や演算のサポート
- 関数の仕組み
- シンプルな関数をコンパイルできるようにする
- 関数が戻り値を返せるようにする
- 関数のプロローグ・エピローグに必要な新規命令の実装
- 関数のプロローグ・エピローグの実装
第6章:算術演算・グローバル変数・ポインタ・制御構文のサポート
- 算術・論理・比較命令の生成
- まとめとレッスン:画像のパタンマッチングを行うプログラムをシミュレーションする
- グローバル変数のサポート
- ポインタ・配列・構造体のサポート
- 条件分岐や繰り返しの生成
- 関数呼び出しのサポート
- [LLVM] LLVMのビルドと確認
- まとめとレッスン:配列のソート
第7章:オブジェクトファイル・ELFファイル出力のサポート
- オブジェクトファイルとは何なのか
- インラインアセンブリとllvm-mcの実装
- まとめとレッスン:N-Queen問題を解く
第8章:LLVMでのテスト記述とリグレッション