🖥️🔧⚙️
コンピュータの設計

コンピュータ
アーキテクチャ入門

CPU・メモリ・I/O はどう繋がっているのか?

プログラムが「動く」とはどういうことか。フォン・ノイマン型から命令実行サイクル・パイプラインまで体系的に学ぼう。

⏱ 所要:30–40分難易度:★★☆前提:論理ゲートの基礎
Section 1

フォン・ノイマン型アーキテクチャ

現代のほぼすべてのコンピュータが採用する基本設計

コンポーネントをクリック → 右に詳細表示

🧠 CPU(中央処理装置)
制御
ユニット
ALU
演算器
レジスタ
ファイル
⟵ システムバス(アドレス / データ / 制御) ⟶
💾
主記憶(メモリ)
プログラム+データ
⌨️🖥️
I/O 装置
入出力

← コンポーネントをクリック

💡 フォン・ノイマンの革命的なアイデア(1945年)

プログラム内蔵方式」:命令(プログラム)もデータも同じメモリに格納し、CPUが順に読み出して実行する。 この設計以前は、プログラムを変えるたびに配線を物理的に変更する必要があった。 現代のスマートフォンからスパコンまで、この基本設計が継承されている。

Section 2

命令実行サイクル

CPUは1命令をどうやって処理するか

📥
① Fetch
命令フェッチ
🔍
② Decode
デコード
⚙️
③ Execute
実行
💾
④ Write-back
書き戻し

「次のステップ」をクリックして命令サイクルを追いかけよう

Section 3

メモリ階層

「速くて大容量」はなぜ難しいのか

レジスタ
L1 キャッシュ
L2 キャッシュ
L3 キャッシュ
主記憶(RAM)
ストレージ(SSD / HDD)

上↑速い・小さい・高価 / 下↓遅い・大きい・安価

← 階層をクリック

🧠 局所性の原理(Locality Principle): プログラムは最近アクセスした場所をまたアクセスしやすい(時間的局所性)し、 アクセスしたアドレスの近くをアクセスしやすい(空間的局所性)。 キャッシュはこの性質を利用して CPU と RAM の速度差(約100倍)を補う。

Section 4

RISC vs CISC

命令セットアーキテクチャ(ISA)の2大思想

RISC Reduced Instruction Set Computer

  • 命令数が少なく、すべて固定長
  • ロード/ストア命令のみメモリアクセス
  • パイプライン設計が容易
  • 低消費電力に有利
  • 例:ARM(スマートフォン)、RISC-V、Apple Silicon (M1〜M4)

CISC Complex Instruction Set Computer

  • 命令数が多く、可変長
  • 命令1つで複雑な操作が可能
  • メモリ直接操作命令あり
  • コード密度が高い(サイズ小)
  • 例:Intel x86 / x86-64(PCサーバ)、AMD Ryzen

ブロック図:内部構造の違い

命令がどのように処理されるかを比較

RISC ARM / RISC-V / Apple M シリーズ 命令メモリ 固定長 32-bit 命令 シンプル デコーダ 固定フォーマット・1クロック完了 レジスタファイル(多) R0–R31 汎用 32 本 ALU(演算専用) メモリ直接演算なし LOAD / STORE のみ データメモリ 専用命令(LDR/STR)のみ ✅ パイプライン効率 ↑ / 消費電力 ↓ CISC Intel x86-64 / AMD Ryzen 命令メモリ 可変長(x86: 1〜15 bytes) 複合デコーダ マイクロコード ROM → µop 列に変換 µops レジスタファイル(少) AX/BX/CX… 汎用 8〜16 本 ALU(メモリ直接可) ADD [mem], reg など直接演算 任意命令から直接参照可 データメモリ 多くの命令が直接アクセス可能 ✅ コード密度 ↑ / 互換性維持 ↑
💡 現代では境界が曖昧: Intel の x86 CPU も内部ではマイクロ命令(µop)に変換して RISC 的に実行している。 ARM も高性能化で命令数が増加。「RISC か CISC か」より、ISA とマイクロアーキテクチャの分離が重要。
Section 5

パイプライン

複数の命令を並行して処理するしくみ

❌ パイプラインなし(直列)

洗濯→乾燥→たたむ を1回分すべて終えてから次の洗濯物を開始。全工程が終わるまで次を始められない。

命令1: [IF]-[ID]-[EX]-[MEM]-[WB]
命令2: [IF]-[ID]-[EX]-...

✅ パイプライン(並列)

1回目を乾燥機に入れたらすぐ2回目の洗濯を開始。5段階を同時並行で処理しスループットが向上。

命令1: [IF]-[ID]-[EX]-[MEM]-[WB]
命令2: [IF]-[ID]-[EX]-[MEM]-[WB]

5段パイプライン タイミング図(6命令)

命令 Clk 1 Clk 2 Clk 3 Clk 4 Clk 5 Clk 6 Clk 7 Clk 8 Clk 9 Clk10
IF=命令フェッチ ID=デコード EX=実行 ME=メモリ WB=書き戻し
理想スループット
1命令 / クロック
パイプライン満杯時
ハザードの種類
構造・データ・制御
パイプラインを止める要因
現代の深さ
14〜20段
Intel / AMD の実装例