Dev Study
← 研修トップ

コンピュータの仕組み

電気のオンとオフしか区別できない機械が、なぜ計算でき、なぜプログラムを動かせるのか。2進数から始めて、CPU・メモリ・ストレージ・OSまでを一段ずつ積み上げます。

  1. 1
    コンピュータとは何か — 電気のオンとオフしか分からない機械
    コンピュータは「電気が流れているか、いないか」しか区別できません。それだけで文字も画像も計算も表現しています。
    約 11 分
  2. 2
    2進数 — オンとオフの並びで、なぜ数が表せるのか
    2進数は特別な数ではありません。私たちが使う10進数と、桁が繰り上がるタイミングが違うだけです。
    約 12 分
  3. 3
    論理回路から演算へ — AND・OR・XOR の組み合わせで足し算ができる
    コンピュータは足し算の方法を「知って」いるわけではありません。ANDとORとXORという単純な部品を組み合わせると、結果的に足し算になる回路ができあがります。
    約 13 分
  4. 4
    CPUの基本サイクル — 取ってくる・読み解く・実行する
    CPUは「命令を取ってくる(フェッチ)→ 何の命令か読み解く(デコード)→ 実行する」を繰り返しています。
    約 12 分
  5. 5
    パイプライン — 速くなるのはスループット、1命令の時間ではない
    パイプラインは、複数の命令の処理段階を重ねることで、単位時間あたりに完了する命令数(スループット)を増やす技術です。
    約 13 分
  6. 6
    分岐予測 — 先回りして、外したらどうなるか
    if文に出会ったCPUは、条件の計算が終わるのを待たずに「たぶんこっち」と予測して先へ進みます。過去の傾向を記録しているので、当たる確率はかなり高くなります。
    約 12 分
  7. 7
    キャッシュと記憶階層 — なぜ何段も重ねるのか
    速い記憶装置は小さく高価、大きい記憶装置は遅い。この制約からは逃れられないので、小さく速いものを手前に、大きく遅いものを奥に置いて段を作ります。これが記憶階層です。
    約 14 分
  8. 8
    メモリの仕組み — コンデンサに電荷を溜めて0と1を覚える
    メインメモリ(DRAM)は、極小のコンデンサに電荷があるかないかで1ビットを覚えています。電荷は自然に抜けていくので、定期的に読み直して書き戻す必要があります。これがリフレッシュです。
    約 12 分
  9. 9
    仮想メモリ — なぜプロセスは互いのメモリを壊さないのか
    どのプログラムも「自分だけが全メモリを使っている」という前提で動けます。実際には、プログラムが見ているアドレスは偽物で、CPUが実物のアドレスへ変換しています。
    約 14 分
  10. 10
    SSDとHDD — なぜSSDは速いのか
    HDDが遅いのは、目的の場所まで物理的に移動する必要があるからです。腕を動かし、円盤が回ってくるのを待ちます。この待ち時間はミリ秒単位で、電気の速度とは比べものになりません。
    約 13 分
  11. 11
    SSDはなぜ書き込みが複雑なのか — 消せる単位が大きすぎる
    SSDは、読み書きは小さな単位でできるのに、消去だけは大きなかたまり単位でしかできません。この不一致が、SSDの動作を複雑にしている根本原因です。
    約 14 分
  12. 12
    OSの役割 — 1つのCPUを、みんなで分け合う
    CPUのコア1つは、同時には1つの処理しか実行できません。何十個ものアプリが同時に動いて見えるのは、OSが高速に切り替えているからです。
    約 13 分
  13. 13
    システムコール — アプリとカーネルの境界線
    ファイルを読む、通信する、メモリを確保する。こうした操作はアプリが自分で行うことができず、必ずカーネルに依頼します。その依頼の入口がシステムコールです。
    約 13 分