関連サイト
本書の関連ページが用意されています。
内容紹介
- 本書の「色の違いが分かりづらい」方のために「色違いバージョン」のPDFデータを提供します。詳しくは以下のサイトをご覧ください。https://book.mynavi.jp/pcbook/blog/detail/id=119121
[作ってはじめてわかるCPUのしくみと動き]
小学校で習ったことのある回路図から出発。計算のかわりに回路図に「矢印を描く」という方法で電気を理解します。ひたすら矢印を描くうちに、CPUのしくみが理解できるようになります。
そして「ハードウェア記述言語」を使ってCPUを完成させます。記述コードはパソコン上のシミュレーターで動かすことができますがFPGA評価ボードがあれば作った回路を実際に動かすことができます。
本書はCPUの正体について説明し、さらにその周囲のモジュールとの関係性についても説明します。そうしてコンピューター全体の回路を見通しよく整理できるようになります。物理と情報科学のギャップを埋めることが、本書の真の目的です。
読者の皆様の頭の中で、学校で習った豆電球の回路図と情報処理装置としてのCPUが繋がっていれば嬉しく思います。
学生・エンジニアに向けたコンピューターのしくみの解説書。
書誌情報
- 著者: 上原周
- 発行日: 2020-08-28 (紙書籍版発行日: 2020-08-28)
- 最終更新日: 2020-08-28
- バージョン: 1.0.0
- ページ数: 208ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
上原周
IT企業勤務。物理と数学と情報科学の隙間のような領域に興味があります。
目次
まえがき
目次
0章 はじめに
- 0.1 想定読者
- 0.2 電気がわからない
- 0.3 どんなCPUを作るのか
- 0.4 完成版の回路図
- 0.5 プログラムを走らせる
- 0.6 本書の読みかた
Part 1 回路の基礎
1章 電池と抵抗の論理回路
- 1.1 小中学校の復習
- 1.2 断線したワイヤー
- 1.3 電圧の求めかた
- 1.4 CPUを作る5種類のパーツ
- 1.5 論理回路の定義
- 1.6 論理の方向
- 1.7 非論理回路(電圧条件の破綻)
- 1.8 非論理回路(矢印条件の破綻)
- 1.9 一般的な論理回路
- 1.10 スイッチ
- 1.11 一番大切なこと
2章 トランジスタと論理ゲート
- 2.1 nMOS
- 2.2 状態
- 2.3 NOTゲート
- 2.4 電池の省略記法
- 2.5 モジュールと入出力ポート
- 2.6 NANDゲート
- 2.7 その他の論理ゲート
- 2.8 ♠ なぜ論理ゲートを使うのか
3章 ゲートの回路
- 3.1 組合回路と順序回路
- 3.2 NOTゲートの多段回路
- 3.3 ゲートの回路のニセモノ
- 3.4 ♠ SRAM回路
- 3.5 ♠ リングオシレーター
- 3.6 ♠ ゲートの回路の分類
4章 ハードウェア記述言語
- 4.1 何を記述するのか
- 4.2 接続
- 4.3 ソースコードと回路図
- 4.4 数値リテラル
- 4.5 同じ動作の回路
- 4.6 非論理回路と再代入
- 4.7 回路の構造化とモジュール
- 4.8 入出力ポートを持つモジュール
- 4.9 モジュールの埋め込み
- 4.10 ♠ プログラミング言語とハードウェア記述言語
Part 2 CPU の材料
5章 組合回路
- 5.1 組合回路の概要
- 5.2 トポロジカルソート
- 5.3 逐次的なassign文
- 5.4 ♠ 純粋性
- 5.5 真理値表
- 5.6 マルチプレクサ
- 5.7 ♠ 真理値表を回路図に変換
- 5.8 ♠ 大きな真理値表
6章 真理値表のコーディング
- 6.1 always_combブロック
- 6.2 case文
- 6.3 ♠ case文の簡略化
- 6.4 ♠ if文
- 6.5 ♠ 真理値表の上塗り
- 6.6 ♠ ダメなコード(真理値表の埋め忘れ)
- 6.7 ♠ ダメなコード(入出力の混乱)
7章 D フリップフロップ
- 7.1 状態遷移図
- 7.2 タイムチャート
- 7.3 DFFと上書き保存
- 7.4 DFFの状態遷移図
- 7.5 DFFのループ回路
- 7.6 ♠ オートマトン
- 7.7 DFFのコーディング
- 7.8 ♠ 複数のDFFを含む回路
- 7.9 ♠ 2種類の代入
- 7.10 ♠♠ DFFの内部構造
8章 状態遷移の一般論♠
- 8.1 ♠ 遅延解析と不定遷移
- 8.2 ♠ 同時操作の安定性
- 8.3 ♠ 単一入力の順序回路の分類
- 8.4 ♠ 組合ループを持たない回路
- 8.5 ♠ クロックスキュー
- 8.6 ♠ ミーリー型回路
- 8.7 ♠ DFFのメタステーブル
- 8.8 ♠ シンクロナイザと最長経路
- 8.9 ♠ 制約条件と解析手順の関係
- 8.10 ♠ ムーア型回路
Part 3 CPU を作る
9章 LEDチカチカ回路
- 9.1 クロック生成器
- 9.2 DFFのリセット
- 9.3 リセットボタン
- 9.4 LEDモジュール
- 9.5 分周器
- 9.6 回路の全体像
- 9.7 回路図のコーディング
- 9.8 制約ファイル
10章 1bitのコンピューター
- 10.1 NOP命令の追加
- 10.2 ROM(メモリ)
- 10.3 プログラム
- 10.4 命令ポインタ
- 10.5 1bitのCPU
- 10.6 マザーボード
- 10.7 回路の全体像
- 10.8 ♠ テストベンチ
- 10.9 ♠ 電圧のシミュレーション
11章 多重ワイヤー
- 11.1 多重ワイヤーの回路図
- 11.2 多重ワイヤーの接続
- 11.3 整数
- 11.4 加算器
- 11.5 レジスタ
- 11.6 ♠ 基本論理素子のbit拡張
- 11.7 ♠ 等号比較
12章 TD4
- 12.1 回路の全体像
- 12.2 レジスタ構成
- 12.3 TD4のCPUの回路図
- 12.4 TD4のCPUのコード
- 12.5 TD4の組合回路
- 12.6 命令セット
- 12.7 ジャンプ命令
- 12.8 ループと条件分岐
- 12.9 キッチンタイマー
Part 4 TD4 の先へ
13章 コードの抽象化♠
- 13.1 ♠ 回路の全体像
- 13.2 ♠ インターフェイスの宣言
- 13.3 ♠ インターフェイスの使い方
- 13.4 ♠ マスターとスレーブ
- 13.5 ♠ インターフェイスの引数
- 13.6 ♠ 機械語ファイル
- 13.7 ♠ CPUのステージ分割
- 13.8 ♠ 構造体
- 13.9 ♠ 列挙体
- 13.10 ♠ パッケージ
- 13.11 ♠ ファンクション
- 14章 高度なトピック♠
- 14.1 ♠ TD4を改造する
- 14.2 ♠ 割り込み
- 14.3 ♠ 回路クラスのまとめ
- 14.4 参考文献
付録 力学系としての論理回路 ♠♠
- 付録1.1 ♠♠ 回路の定義
- 付録1.2 ♠♠ 相空間
- 付録1.3 ♠♠ 素過程と遅延解析
- 付録1.4 ♠♠ 時間発展のフロー
- 付録1.5 ♠♠ 可能な状態遷移
- 付録1.6 ♠♠ 確率的有限状態機械(PFA)
- 付録1.7 ♠♠ 初期値の鋭敏性
- 付録1.8 ♠♠ CPUとは何か
