コンピュータの全体像 — 横蓋を開けて部品の地図を持つ

概要 — まず全体をつかむ

中級では記憶の階層とバスを見ました。上級では、数字で捉える階層と、構造上の限界へ。

詳細 — 1段階ずつ追う

桁で違う「距離」

各記憶の速さは桁で違います(目安)。

  • レジスタ 〜1ns、L1 数ns、L2/L3 数〜数十ns
  • メモリ 〜100ns、SSD 数十μs、HDD 〜10ms
  • ネットワーク ms 級

上の階層に「いかによく使うものを当てるか(局所性)」が、体感速度を決めます。

やさしく言うと(中級
アニメーション『コンピュータの中身(部品マップ)』を開く
電源(PSU)マザーボード(土台)CPU(頭脳)メモリ(作業机)ストレージ(保管庫)GPU(描画)部品をクリックすると、その解説へ移動します

コンピュータの記憶は、速いが小さいものから、遅いが大きいものまで階層になっています。

アニメーション『記憶の階層(速さと容量)』を開く
速い・小さい遅い・大きい記憶の階層レジスタCPU直近で最速・最小L1キャッシュコアごとの最速メモリL2・L3キャッシュやや大きい高速メモリメモリ(RAM)作業机・電源で消える(揮発)SSD倉庫・速い(消えない)HDD倉庫・大容量(消えない)速さと容量はトレードオフ。よく使うものを上へ置き、全体を速く見せる
  • レジスタ/キャッシュ(CPU内) — 最速・最小
  • メモリ(RAM) — 速い・中容量(電源で消える=揮発性
  • ストレージ(SSD/HDD) — 遅い・大容量(消えない=不揮発性

用語では、動作中に使うメモリを主記憶、消えずに残すストレージを補助記憶とも呼びます。

速さと容量はトレードオフ。よく使うものを上の階層に置いて、全体を速く見せます。キャッシュが効くのは、直前に使ったデータや近くのデータがまた使われやすいから(参照の局所性=時間的・空間的)。

構造とボトルネック

  • フォンノイマンボトルネック — 命令もデータも同じメモリを通す構造の限界
  • バス — PCIe(拡張・GPU・NVMe)、メモリバス。帯域が効く
  • NUMA — 複数CPUで、ノード(ソケット)ごとにメモリまでの距離が違う(近い方が速い。同一ノード内のコアは同距離)
  • 周辺 — USB/NVMe/ネットワークのI/O
やさしく言うと(中級
  • バス — 部品間のデータの通り道(幹線道路)。bit幅=一度に運べる線の本数(幅が広いほど一度に多く運べる)
  • クロック — 動作のリズム(速さの目安。ただし数字だけでは決まらない)。GHz=1秒あたりの動作回数
  • キャッシュ階層(L1/L2/L3) — CPUの近くに置く高速メモリ
  • チップセット — マザーボード上で各部品の橋渡しをする

起動と実行の実体

  1. 電源投入 → UEFI(ファームウェア)が初期化
  2. ブートローダを読み、カーネルをメモリへ
  3. カーネルが init を起動、各サービスが立ち上がる
  4. 以降、CPUはストアドプログラム方式で命令を取り込み実行し続ける
  5. 入出力は割り込み駆動、大量転送はDMAでCPUを介さず
やさしく言うと(中級
  1. 電源投入 → ファームウェア(BIOS/UEFI)が起動
  2. ストレージからOSのローダを読み、メモリ
  3. CPUが命令をフェッチ→デコード→実行(後述のCPU記事へ)
  4. 必要なデータをメモリ・キャッシュ経由でやり取り
  5. 描画はGPUが担い、フレームバッファから画面へ

⚠️ 性能の見方

  • メモリ帯域律速 — 計算より、データ移動が全体を決めることが多い
  • NUMAの遅延 — 遠いメモリへのアクセスで性能低下
  • I/Oボトルネック — ストレージ・ネットワーク待ち
  • TDP(熱設計電力) — 冷やせる範囲でしか性能を出せない
  • 数字の罠 — クロック・コア数・GB だけでは実性能は測れない(局所性・帯域・並列度が効く)
やさしく言うと(中級
  • メモリ不足 — 足りないとストレージを代用(スワップ)し激遅に
  • ストレージI/O — 読み書き待ちが全体を律速する
  • 発熱・サーマルスロットリング — 熱で自動的に性能を落とす
  • 数字の罠 — クロックやコア数だけでは実性能は決まらない

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. メモリのアクセス速度をおおまかに速い順で並べると?

2. CPUが高速でも、メモリとのデータ移動が全体を律速しがちな構造上の問題は?

3. 大量データ転送を、CPUを介さずに行う仕組みはどれ?

4. NUMAの説明として正しいのは?

5. 電源投入からカーネルが動き出すまでの受け渡しの順序として正しいのは?

6. TDP(熱設計電力)が示すものとして最も適切なのは?

7. 電源投入時に最初にハードウェアを初期化する現代のファームウェアを英字4文字で答えてください。

8. 「直近使ったもの・その近くを再び使う」というアクセスの偏りの性質を何と呼ぶ?