ストレージ(保管庫)— 電源を切っても残る保管場所

概要 — まず全体をつかむ

初級ではストレージを「冷蔵庫(不揮発の保管庫)」と捉えました。中級では、HDDとSSDが物理的にどう記録し、なぜ速さが違うのかを見ます。

詳細 — 1段階ずつ追う

これは何をする係?

ストレージは、電源を切っても内容が残る不揮発性の記憶装置です。OS・アプリ・データを永続化し、メモリ(揮発性)との間で読み書きします。

記録方式で大きく2系統に分かれます。

  • HDD — 磁性体を塗った円盤(※1 プラッタ)に磁気で記録する機械式
  • SSD — 半導体(※2 NANDフラッシュ)に電荷で記録する電気式

登場人物メモ:

  • ※1 プラッタ — 高速回転する磁気ディスク。磁気ヘッドが目的位置まで動く(シーク)
  • ※2 NANDフラッシュ — 電荷でビットを保持する不揮発メモリ。コントローラが制御する
この部分をもっと深く(上級

同じ「不揮発の保管庫」でも、記録の物理はまったく別です。

HDD(機械式)。磁性体を塗った円盤(※1 プラッタ)を毎分数千〜1万回転させ、微小な磁気ヘッドで各点の磁化の向きを読み書きします。目的の位置に届くには、ヘッドを狙いのトラックへ動かすシーク時間(※2 シーク時間)と、目的セクタが回ってくる回転待ち(※3 回転待ち)が要ります。

SSD(電気式)。NANDフラッシュのセルに電荷を閉じ込めて記録します。可動部が無く、位置決めの待ちがありません。1セルに複数ビットを詰める方式(SLC/MLC/TLC/QLC)ほど大容量・安価ですが、状態の刻みが細かくなり耐久性は下がります。

登場人物メモ:

  • ※1 プラッタ — 磁気を塗った円盤。複数枚を重ねて回す
  • ※2 シーク時間 — ヘッドが目的トラックへ移動する時間
  • ※3 回転待ち — 目的セクタがヘッドの下に来るまで待つ時間
アニメーション『ストレージ(HDDとSSD)』を開く
ストレージ=電源を切っても残る保管庫HDD(ハードディスク)回る円盤に磁気で記録円盤+磁気ヘッド(可動部)大容量が安い円盤を回すぶん遅め可動部あり(振動・衝撃に弱い)SSD(半導体ドライブ)メモリチップに電気で記録フラッシュメモリ(可動部なし)速い・静か可動部なし(衝撃に強い)容量あたりは割高電源OFFでも中身は消えない(不揮発)— どちらも「消えない保管庫」速さの目安(読み書き)SSD≫ 速いHDD遅め
やさしく言うと(初級

写真・書類・アプリ・OSなど、ずっと残しておきたいものを保管します。最大の特徴は、電源を切っても消えないこと(不揮発性)。だから、電源を入れ直してもデータが残っています。

SSDとHDD
ストレージ — SSD(半導体)とHDD(円盤)

メモリ(作業台)より容量が大きい代わりに、アクセスは遅めです。

メモリとの関係

  1. 使うときは、ストレージからメモリに読み出す(永続層から作業層へ)
  2. CPUはメモリ上のデータを処理する(ストレージへ直接演算はしない)
  3. 保存すると、ストレージに書き戻す(作業層から永続層へ)

ストレージはメモリより桁違いに遅いため、OSは頻繁に使うデータをメモリ上にキャッシュし、アクセス回数そのものを減らそうとします。

この部分をもっと深く(上級

ストレージは、記憶階層のいちばん下——主記憶より桁違いに遅い層です。目安で主記憶が約100ns、SSDが数十μs、HDDが約10ms。だからCPUはストレージへ直接演算せず、いったんメモリへ読み出して処理します。

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

この桁差を埋めるため、OSは頻繁に使うデータを主記憶にキャッシュし、書き込みはいったんためて後でまとめる(書き込みバッファ)などして、遅いアクセスの回数そのものを減らします。大量転送はCPUを介さずDMAで運ぶのも定石です。階層全体の距離感は computer-overview を参照してください。

やさしく言うと(初級
  1. 使うときは、ストレージからメモリに読み出す(冷蔵庫から作業台へ)
  2. 作業する(メモリ上で)
  3. 保存すると、ストレージに書き戻す(作業台から冷蔵庫へ)

「保存ボタン」は、この「作業台→冷蔵庫」を実行しています。

SSDとHDD

HDD(機械式)

  • プラッタを毎分数千回転させ、磁気ヘッドを目的トラックまで動かす(シーク)
  • 可動部があるため、位置決めの待ち(シーク時間+回転待ち)が避けられず、特にランダムアクセスが遅い
  • 大容量が安い

SSD(電気式)

  • NANDフラッシュに電荷で記録。可動部が無く、位置決めの待ちがない
  • 書き込みはページ単位、消去はブロック単位という非対称性があり、上書きができない。既存データのあるブロックへ書くには「読み出し→消去→書き戻し」が発生する(書き込み増幅)
  • ウェアレベリング — 特定セルへの書き込み集中を避け、寿命を平準化する
  • TRIM — OSが「もう不要」と伝えた領域をSSDが先に消去し、書き込みを軽くする
  • NANDは書き換え回数に上限があり、これが寿命の主因
  • シーケンシャル(連続)は速く、ランダム(小さく飛び飛び)は相対的に遅い。ただしHDDほど差は大きくない

インターフェース

  • SATA — HDD時代からの規格。帯域が頭打ちで、速いSSDでは制約になる
  • NVMe(PCIe接続) — PCIeレーンに直結し広帯域+多数の並列キュー。ランダムアクセスで特に有利
アニメーション『ストレージ(HDDとSSD)』を開く
ストレージ=電源を切っても残る保管庫HDD(ハードディスク)回る円盤に磁気で記録円盤+磁気ヘッド(可動部)大容量が安い円盤を回すぶん遅め可動部あり(振動・衝撃に弱い)SSD(半導体ドライブ)メモリチップに電気で記録フラッシュメモリ(可動部なし)速い・静か可動部なし(衝撃に強い)容量あたりは割高電源OFFでも中身は消えない(不揮発)— どちらも「消えない保管庫」速さの目安(読み書き)SSD≫ 速いHDD遅め
この部分をもっと深く(上級

SSDが速い一方で扱いが独特なのは、NANDの書き込みと消去の粒度が違うことに尽きます。

  • 書き込みはページ単位・消去はブロック単位 — ページはブロックより小さい。しかも上書きができないので、既存データのあるブロックへ書くには「有効ページを別へ退避 → ブロック消去 → 書き戻し」が要る
  • 書き込み増幅 — 上の退避のせいで、要求した量より多くの実書き込みが発生する。寿命を削る
  • ウェアレベリング — 特定セルへの書き込み集中を避け、全体へ均して寿命を平準化する
  • ガベージコレクション — 無効ページの散らばったブロックを裏でまとめ、空きブロックを用意する
  • TRIM — OSが「もう不要」と伝えた領域をSSDが先に無効化し、消去を前倒しして書き込みを軽くする
  • 耐久性(TBW) — NANDは書き換え回数に上限があり、総書き込み量の目安(TBW)で寿命を示す

だから空き容量が減ると、書き込み前の消去や整理が増えて速度が落ちます。SSDは少し余裕を残して使うのがコツです。

やさしく言うと(初級
  • SSD — 半導体で可動部が無く、速い・静か・衝撃に強い(今の主流)
  • HDD — 円盤を回して読むため遅めだが、大容量が安い

どちらも「消えない保管庫」ですが、速さと値段のバランスが違います。

アニメーション『ストレージ(HDDとSSD)』を開く
ストレージ=電源を切っても残る保管庫HDD(ハードディスク)回る円盤に磁気で記録円盤+磁気ヘッド(可動部)大容量が安い円盤を回すぶん遅め可動部あり(振動・衝撃に弱い)SSD(半導体ドライブ)メモリチップに電気で記録フラッシュメモリ(可動部なし)速い・静か可動部なし(衝撃に強い)容量あたりは割高電源OFFでも中身は消えない(不揮発)— どちらも「消えない保管庫」速さの目安(読み書き)SSD≫ 速いHDD遅め

⚠️ うまくいかないとき

  • 空き容量不足 — SSDは空きブロックが減ると書き込み前の消去が増え、速度が落ちる
  • 書き換え寿命 — NANDの書き換え回数上限に近づくと劣化する。大事なものはバックアップ
  • HDDの物理故障 — 可動部やヘッドの損傷でデータ消失。衝撃に弱い
  • ランダムアクセス多発 — 小さな読み書きが散らばると、特にHDDで待ちが増える
この部分をもっと深く(上級
  • 空き容量不足でSSDが失速 — 書き込み前の消去・整理が増える。余裕を残す
  • 書き換え寿命の消耗 — 書き込み増幅で見えない実書き込みが積もる。大事なものはバックアップ
  • HDDの物理故障 — 可動部・ヘッドの損傷でデータ消失。衝撃に弱い
  • RAIDを過信 — 冗長化はバックアップの代わりにならない。誤操作やウイルスには別の備えを
やさしく言うと(初級
  • 容量が一杯 — 保存できない、動作が不安定になる
  • 故障でデータ消失 — 物理的に壊れることも。大事なものはバックアップ(別の場所にコピー)
  • 遅い — HDDや空き容量不足で読み書きが待たされる

理解度チェック

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

1. SSDが書き込み前に「まずブロック単位で消去してから書く」必要があるのはなぜ?

2. NVMe(PCIe接続)がSATA接続のSSDより高速になりやすい主な理由は?

3. メモリ(RAM)とストレージの、電源を切ったときの違いとして正しいのはどれ?

4. HDDが特に「小さく飛び飛びのランダムアクセス」で遅くなる主因はどれ?

5. SSDでOSが「もう使っていない領域」を先に伝え、SSDに事前消去させて書き込みを軽くする仕組みはどれ?

6. SSDやHDDのアクセス速度について、一般に正しいのはどれ?

7. 電源を切っても内容が消えないストレージの性質を、漢字4文字で答えてください。

8. SSDで特定のセルに書き込みが集中しないよう、全体へ均して寿命を平準化する仕組みを、カタカナで答えてください。