作って学ぶコンピュータアーキテクチャ ——LLVMとRISC-Vによる低レイヤプログラミングの基礎
- 木村優之 著
- 定価
- 3,960円(本体3,600円+税10%)
- 発売日
- 2022.7.1 2022.6.27
- 判型
- B5変形
- 頁数
- 536ページ
- ISBN
- 978-4-297-12914-9 978-4-297-12915-6
概要
コンピュータアーキテクチャ,とくにCPUの命令セットアーキテクチャについて,RISC-Vを例に「上のレイヤからアプローチする」ことで理解を深めることを目的とした一冊。本書を一通り読み終えるころには,低レイヤに対する一段上の実力がついているはずです!
こんな方にオススメ
- 性能向上などのためにコンピュータアーキテクチャを理解したいエンジニア
- RISC-VやLLVMへの理解を深めたいエンジニア
目次
第1章:コンピュータアーキテクチャとISAの基礎知識
- コンピュータアーキテクチャの全体像
- 命令セットアーキテクチャ(ISA)
- CPUの高速化技法
第2章:RISC-Vの基礎知識
- RISC-V命令セットの特徴
- RISC-V命令セットの詳細
- RISC-Vを体験する
第3章:LLVMの基礎知識
- LLVMの概要
- LLVMを体験する
第4章:LLVMバックエンドの仕組み
- LLVMバックエンド開発の全体像
- LLVMのバックエンドを作るための第一歩
- ターゲット記述ファイル(tdファイル)の作成
- MYRISCVXのC++クラスを実装する
- llcはどのようにマルチターゲットを実現しているのか
第5章:簡単な関数や演算のサポート
- 関数の仕組み
- シンプルな関数をコンパイルできるようにする
- 関数が戻り値を返せるようにする
- 関数のプロローグ・エピローグに必要な新規命令の実装
- 関数のプロローグ・エピローグの実装
第6章:算術演算・グローバル変数・ポインタ・制御構文のサポート
- 算術・論理・比較命令の生成
- まとめとレッスン:画像のパタンマッチングを行うプログラムをシミュレーションする
- グローバル変数のサポート
- ポインタ・配列・構造体のサポート
- 条件分岐や繰り返しの生成
- 関数呼び出しのサポート
- [LLVM] LLVMのビルドと確認
- まとめとレッスン:配列のソート
第7章:オブジェクトファイル・ELFファイル出力のサポート
- オブジェクトファイルとは何なのか
- インラインアセンブリとllvm-mcの実装
- まとめとレッスン:N-Queen問題を解く
第8章:LLVMでのテスト記述とリグレッション
- llvm-litによるテスト実行
プロフィール
木村優之
半導体メーカー勤務のかたわら,趣味の技術ブログで主にRISC-Vについて試行錯誤した結果をブログ化している。RISC-Vを含め低レイヤの技術全般に興味がある。