
これを理解しようとしています。たとえば、256GB の SSD があり、そのうち 180GB がすでに永続ファイル (OS、インストールされたプログラムなど) で占められているとします。残りの約 70GB は新しいファイルの作成と削除に使用されます。これは、その部分の NAND チップが、ファイルが変更されていない領域よりも早く消耗するという意味ではないでしょうか。それとも、SSD は時間の経過とともに変更されないファイルも移動するのでしょうか。
答え1
SSD は、変更されないファイルを時間の経過とともに移動します。
まず、オペレーティング システムに公開される仮想セクター (ファイル システム クラスターと混同しないでください) があり、次にフラッシュ チップ内の物理セルがあります。フラッシュ コントローラがセルを割り当てたり割り当て解除したりすると、それに応じて仮想セクターが再マップされるため、オペレーティング システムに対して透過的になります (同じ仮想セクターが、異なる時間にフラッシュ セル内の異なる場所に表示される場合があります)。
第二に、SSD には空き領域として使用できない予備セルが実際にあります。これらは、ウェア レベリング、書き込み増幅の緩和、デッド セルの再マッピングを目的として特別に確保されています。そのため、SSD に空き領域が 0 バイトある場合でも、フラッシュ コントローラにはウェア レベリングを実行する余地が残っています。
100% いっぱいの 500 GB SSD があるとします。そのうち 499 GB のデータは変更されないファイルですが、常に変更される 1 GB のファイルがあるとします。その 1 GB ファイルを削除して別の 1 GB のファイルをコピーすると、フラッシュ コントローラはその時点で次の 2 つのうちのいずれかを実行します。
- 新しいデータのすべてまたは一部がスペア セルに割り当てられ、古いセルはトリミングされた状態のままになります。
- 499 GB のデータのうち、変更されない 1 GB 分のセルが、他の利用可能なセルにコピーされます。その後、古いセルは消去され、新しいデータで書き換えられます。
どちらの場合も、オペレーティング システムに提示される仮想セクターは変更されないため、OS は実際に何が起こっているかを認識しません。フラッシュ コントローラは、メモリ セルと仮想セクターのマッピング テーブルを保持します。
ウェアレベリングアルゴリズムの目標は、すべてのセルを均等に動作させることです。そのためにはデータの移動が必要になりますが、このプロセスはドライブの速度を低下させ、(皮肉なことに)フラッシュセルのさらなる摩耗を引き起こします。これは書き込み増幅これは SSD の重大な問題です。SSD で採用されている実際のウェア レベリング アルゴリズムと、書き込み増幅を軽減する方法は、SSD メーカー間の独自の企業秘密であるため、これはプロセスの一般的な説明にすぎません。