書籍概要

新・標準プログラマーズライブラリ

新・標準プログラマーズライブラリ
RISC-Vで学ぶコンピュータアーキテクチャ 完全入門

著者
発売日
更新日

概要

コンピュータアーキテクチャとは,より良いコンピュータの構成を模索し,設計し,実現するための方式です。学習には,重要概念の理解とハードウェアの設計,実装,そのシミュレーションによる動作確認と性能評価,また,FPGAなどにハードウェアを実装し,動作・検証・性能確認することが大切です。本書は,これらを通じてコンピュータアーキテクチャの本質を学ぶことを目指します。特に,オープンな命令セットアーキテクチャとして注目されているRISC-Vの採用,Verilog HDLによるハードウェアの記述,FPGAによるハードウェア動作まで,広い範囲を扱っている点が特徴です。

こんな方におすすめ

  • コンピュータアーキテクチャの初学者および再入門者
  • コンピュータサイエンスをしっかり身につけたい学生の方
  • RISC-Vの入門者

サンプル

samplesamplesamplesamplesample

目次

第1章 イントロダクション

  • 1-1 コンピュータの基本構成
  • 1-2 コンピュータの性能
  • 1-3 特定用途向け半導体とFPGA

第2章 ディジタル回路の基礎

  • 2-1 組み合わせ回路
  • 2-2 順序回路
  • 2-3 やわらかいハードウェアとしてのFPGA

第3章 ハードウェア記述言語Verilog HDL

  • 3-1 ANDゲートのモジュール記述
  • 3-2 記述したモジュールのインスタンス化とシミュレーション
  • 3-3 文字列を表示するシステムタスク$display
  • 3-4 ブロックの指定
  • 3-5 指定した時間が経過するまで待たせる命令#
  • 3-6 システムタスク$finishと$time
  • 3-7 不定値xとハイインピーダンスz
  • 3-8 複数本の信号線,数値の表現,default_nettype
  • 3-9 三項演算子とマルチプレクサ
  • 3-10 ビット選択
  • 3-11 ビットの連結と複製
  • 3-12 論理演算子と算術演算子
  • 3-13 関係演算子
  • 3-14 論理シフト,算術シフトの演算子
  • 3-15 リダクション演算子
  • 3-16 if文とcase文
  • 3-17 クロック信号とカウンタ回路
  • 3-18 シフトレジスタと波形ビューア
  • 3-19 一定の間隔で生じる動作の記述とdefine文
  • 3-20 ランダムアクセスメモリ(RAM)とinclude文
  • 3-21 いくつかの代入の違い

第4章 RISC-V命令セットアーキテクチャ

  • 4-1 RISC-V RV32I命令セットアーキテクチャの概要
  • 4-2 データ形式,負の整数の表現
  • 4-3 命令形式
  • 4-4 R形式の算術演算命令,論理演算命令,シフト命令
  • 4-5 I形式の算術演算命令,論理演算命令,シフト命令
  • 4-6 ロード命令,ストア命令,エンディアンと整列
  • 4-7 条件分岐命令とプログラムカウンタ
  • 4-8 lui,auipc,jal,jalr命令とその他の命令

第5章 単一サイクルのプロセッサ

  • 5-1 単一サイクルのプロセッサの設計方針
  • 5-2 最初の版のプロセッサを設計するための構成要素
  • 5-3 add命令を処理するx1のみの単一サイクルのプロセッサ
  • 5-4 add命令を処理する単一サイクルのプロセッサ
  • 5-5 addとaddi命令を処理する単一サイクルのプロセッサ
  • 5-6 add,addi,lw,sw命令を処理する単一サイクルのプロセッサ
  • 5-7 add,addi,lw,sw,bne命令を処理する単一サイクルのプロセッサ
  • 5-8 シミュレーションの工夫と例題

第6章 プロセッサの高性能化の手法

  • 6-1 回路の動作周波数とパイプライン処理
  • 6-2 パイプライン処理(2段)のプロセッサの設計と実装
  • 6-3 パイプライン処理(3段)のプロセッサの設計と実装
  • 6-4 パイプライン処理(4段)のプロセッサの設計と実装
  • 6-5 パイプライン処理のプロセッサと同期式メモリ
  • 6-6 パイプライン処理(5段)のプロセッサの設計と実装
  • 6-7 ここまでのプロセッサの性能

第7章 分岐予測

  • 7-1 分岐予測の枠組み
  • 7-2 分岐先バッファ
  • 7-3 分岐の成立/不成立の予測
  • 7-4 bimodal分岐予測
  • 7-5 gshare分岐予測

第8章 キャッシュメモリ

  • 8-1 メインメモリとキャッシュ
  • 8-2 容量が大きくて遅いメモリ
  • 8-3 プロセッサのストール
  • 8-4 ダイレクトマップ方式のキャッシュメモリ
  • 8-5 マルチワードのダイレクトマップ方式のキャッシュメモリ
  • 8-6 セットアソシアティブ方式のキャッシュメモリ
  • 8-7 データキャッシュ

第9章 FPGA評価ボードを利用した動作の確認

  • 9-1 ファイルの準備
  • 9-2 Vivadoで論理合成,配置・配線してFPGAで動作確認

サポート

ダウンロード

本書に掲載しているサンプルコード

(2024年5月2日更新)

本書に掲載しているVerilog HDLなどのサンプルコードをダウンロードいただけます。ZIP形式で圧縮されていますので,展開してからお使いください。

展開が終わると「code」という名前のフォルダーが表示されます。

ダウンロードにミスがあると正しく展開できませんので,よくお確かめください。

サンプルコードについて,一般的な環境においては特に問題のないことを確認しておりますが,万一障害が発生し,その結果いかなる損害が生じたとしても,小社および著者はなんら責任を負うものではありません。また生じた損害に対する一切の保証をいたしかねます。必ずご自身の判断と責任においてご利用ください。

サンプルコードは,著作権法上の保護を受けています。収録されているコードの一部,あるいは全部について,いかなる方法においても無断で複写,複製,再配布することは禁じられています。

以上のことをご確認,ご了承の上,データをご利用願います。

ダウンロード
code_v04.zip

サンプルコードの利用方法は,こちら」をご覧ください。

演習問題の解答

(2024年2月21日更新)

本書に掲載している「演習問題」の解答を閲覧できます。

ダウンロード
answers.pdf

補足情報

Icarus Verilogと波形ビューアGTKWaveの導入・利用方法

(2024年2月16日更新)

本書の第3章で扱っている波形ビューアGTKWaveの導入と利用方法については,次のACRiブログの記事を参照してください。

Icarus Verilogの導入方法も,上記の記事中に記述されています。また,Icarus Verilogの利用方法は,サンプルコードの利用方法に記述しています。

本書のFAQ

(2024年5月2日更新)

これまでに寄せられたお問い合わせと回答をFAQとして掲載します。

ダウンロード
FAQ.pdf

正誤表

本書の掲載内容に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

正誤表を以下からダウンロードできます。ダウンロードしたPDFファイルを参照してください。

(2024年5月31日更新)

ダウンロード
第1刷訂正情報(2024年5月31日更新)

商品一覧