概要
SSDは一般的なHDDと比較して、軽さ、スピード、衝撃耐性に優れたストレージであるものの、コストと耐久性が課題となっています。ガベージコレクションは製品寿命を延ばし、性能の劣化を抑える方法として用いられています。
ガベージコレクションの仕組み
SSDの場合、コントローラがNANDフラッシュの空き容量にデータを書き込んで行きます。HDDと異なるのは、NANDフラッシュへの上書きを直接行うことができないため、最初に消去処理をする必要があります。(図1 & 2参照)
* フラッシュへの書き込みはページ単位、消去はブロック単位で行います。
- データa~iをBlock Aの9ページに書き込みます。書き込みが完了すると、Block Aの9ページがデータで埋まります。
- ページa~cのデータを削除すると、「読み出し不可」なページとして登録されます。ページに対して消去を行うことはできないため、これらのページにデータを書き込むことはできません。
- Block AとBlock Bには書き込みできないページ(グレー箇所)があります。
- ページa~hにある有効なデータをBlock Cに移動し。
- Block AとBlock Bに対して消去を行います。
有効なデータはBlock Cに移され、Block AとBlock Bは消去されます。これにより次回Block AやBlock Bに書き込みを行う際の処理効率が低下することを抑制しています。
ガベージコレクションの歴史
初期のSSDは、空きスペースのないブロックを検出すると直ちにガベージコレクションが働いていたため、パフォーマンスが低下する問題がありましたが、最近のSSDに使用されているコントローラは通常、ガベージコレクションがバックグラウンドで働くようにタイミングが調整されています。
また、TRIMを実行することで、システムの負荷を低減し、書き込み動作を円滑にします。(TRIMについてはこちらを参照)