SSDコントローラとは?NANDをまとめる司令塔の役割を初心者向けに解説

中央のSSDコントローラが複数のNANDフラッシュを管理するイメージ AI半導体・GPU
学習レベル 初級

NANDが保存用メモリだと分かった人が、SSDの中でデータを管理する仕組みへ進む記事です。

SSDコントローラは、パソコンやスマホから届いた命令を受け取り、NANDのどこへ保存するかを決める司令塔です。書込みを分散し、読出し時の誤りを直しながら、NANDを使いやすいストレージとしてまとめます。

メモリの基本から確認したい方は、先にCPU・メモリ・ストレージの違い、続いてDRAMとNANDの違いを読むと理解しやすくなります。

この記事でわかること

まず理解する3項目
  1. SSDコントローラがNANDの司令塔である理由
  2. 保存場所・書込み分散・誤り訂正の3つの仕事
  3. NANDだけではSSDとして扱いにくい理由
もう一歩深く知る4項目
  1. FTL
  2. ウェアレベリング
  3. ECC
  4. ガベージコレクション

SSDコントローラとは何か

なおき

SSDはNANDに保存する装置ですよね。コントローラは本当に必要ですか?

ふくろう先生

NANDは保存場所じゃが、パソコンの命令をそのまま理解して管理するわけではない。間に司令塔が必要なんじゃ。

なおき

NANDが倉庫で、コントローラが荷物の住所と出入りを管理する人なんですね。

ふくろう先生

入口の理解としてはよい。実際はLSIとファームウェアが、ホストの命令とNANDの物理動作を橋渡しする。

パソコンの命令をSSDコントローラが受け取り複数のNANDへ読み書きする全体像
SSDコントローラは、ホストの命令とNANDの物理動作を橋渡しします。

最初の結論: SSDコントローラは、NANDそのものではなく、NANDをストレージとして使えるように管理するロジック半導体と制御ソフトウェアです。

ここまでの一言まとめ:SSDコントローラは、ホストとNANDをつなぐ司令塔です。

なぜNANDだけではSSDにならないのか

なおき

NANDへ、ファイル名と保存場所を直接書けばよいのでは?

ふくろう先生

ホストは論理的な番号で命令するが、NANDはページへ書き、ブロック単位で消す。使う単位とルールが違うんじゃ。

なおき

パソコン側の住所と、NAND内部の実際の棚番号を変換する必要があるんですね。

ふくろう先生

その通り。しかもセルには書換え寿命があり、誤りも起こり得る。場所だけでなく使い方まで管理する。

書込みと消去の単位が違うNANDはページへ書き込み、複数ページを含むブロック単位で消去します。
同じ場所へ集中できない書換えが一部へ偏ると、そのブロックだけ早く劣化しやすくなります。
読出し誤りへ備える保存密度や使用状況に応じて生じるビット誤りを検出・訂正します。

ここまでの一言まとめ:NANDの物理ルールを、使いやすい保存装置へ翻訳する必要があります。

まず覚える3つの仕事

なおき

機能が多そうですが、最初は何を覚えればよいですか?

ふくろう先生

保存場所を決める、書込みを分散する、誤りを直す。この3つから始めればよい。

なおき

住所係、寿命を守る係、データを守る係の3役ですね。

ふくろう先生

よい整理じゃ。実際は並列処理、暗号化、電力管理などもあるが、製品で実装は異なる。

SSDコントローラが保存場所の管理、書込み分散、誤り訂正を行う3つの役割
最初は「場所を決める・書込みを分散する・誤りを直す」の3役を覚えれば十分です。

SSDコントローラは、住所の変換、書換え負担の分散、データ保護をまとめて担当します。

ここまででSSDコントローラの基本は理解できました。
ここから、もう一歩深く

ここから先はFTL、ウェアレベリング、ECC、ガベージコレクションを知りたい方向けです。基本だけ知りたい方は、まとめへ進んでも問題ありません

FTL:見える住所と実際の場所を対応させる

なおき

同じファイルを上書きすると、同じセルへ書くんですか?

ふくろう先生

必ずしも同じ場所ではない。FTLが論理アドレスと物理アドレスの対応を更新する。

なおき

利用者には同じ住所に見えても、実際の保管棚は入れ替えられるんですね。

ふくろう先生

そうじゃ。FTLはFlash Translation Layerの略で、その対応表とNAND管理の中心になる。

技術メモ: 一般的なSSDではホストがLBAという論理ブロック番号でアクセスし、コントローラ側がNANDの物理配置へ対応させます。マッピング方法や、ホストと装置の分担は製品・方式で異なります。

ここまでの一言まとめ:FTLは、ホストの住所とNANDの実際の場所を対応させます。

ウェアレベリング:書換えの偏りを減らす

なおき

よく更新するデータがあると、そこだけ壊れませんか?

ふくろう先生

そこで書込み先を分散し、特定ブロックへ消去回数が偏るのを抑える。

なおき

同じ靴だけを履き潰さず、順番に使う感覚ですね。

ふくろう先生

たとえとしては近い。ただし寿命はNAND種類、温度、書込み量、制御方法でも変わる。

ここまでの一言まとめ:ウェアレベリングは、消去・書込みの負担を分散します。

ECC:読出したデータの誤りを直す

なおき

保存した0と1は、そのまま正確に読めるのでは?

ふくろう先生

電荷状態のばらつきや劣化などで、読出し時にビット誤りが起こり得る。ECCで検出・訂正するんじゃ。

なおき

答え合わせ用の情報も一緒に持ち、間違いを見つけて直すんですね。

ふくろう先生

その理解でよい。訂正能力や方式は、NANDとコントローラの設計で異なる。

ここまでの一言まとめ:ECCは、読出し誤りを検出し、訂正できる範囲で元のデータへ戻します。

ガベージコレクション:消せるブロックを作る

なおき

削除したファイルの場所へ、すぐ新しいデータを書けないんですか?

ふくろう先生

NANDはブロック単位で消す。残したいページを別の場所へ移してから、ブロックを消去する必要がある。

なおき

必要な荷物を別棚へ移し、棚全体を空にして再利用するんですね。

ふくろう先生

そうじゃ。この裏側の移動と消去が、性能や追加書込み量にも関わる。

TRIMとの違い: TRIMは、ホストが「この論理領域は不要」とSSDへ伝える仕組みです。実際に有効データを移し、ブロックを消去して空きを作るガベージコレクションとは役割が異なります。

ここまでの一言まとめ:ガベージコレクションは、必要なデータを退避してブロックを再利用可能にします。

コントローラでSSDの性格が変わる

性能複数NANDチャネルの並列利用、キュー処理、キャッシュ、ファームウェア設計が影響します。
耐久性・信頼性ウェアレベリング、ECC、不良ブロック管理、電源断対策などが関係します。
用途への最適化個人向け、データセンター向け、組込み向けでは、性能・消費電力・保護機能の優先度が異なります。

すべてのSSDが同じ機能や構成を持つわけではありません。DRAMキャッシュの有無、ECC方式、予備領域、電源断保護、暗号化などは製品ごとに異なります。単に「同じNANDだから同じ性能」とは判断できません。

ここまでの一言まとめ:SSDはNANDだけでなく、コントローラとファームウェアを含むシステムです。

まとめ

まず覚える3点

  1. SSDコントローラは、ホストとNANDをつなぐ司令塔
  2. 保存場所を決め、書込みを分散し、誤りを直す
  3. FTL、ウェアレベリング、ECC、ガベージコレクションがNANDを使いやすくする

次に深掘りするテーマ

  • NANDのページとブロックとは何か
  • SSDの寿命とTBW
  • NVMeとSATAの違い

未作成の記事には、現時点ではリンクを設置しません。

参考資料

↑ 先頭
タイトルとURLをコピーしました