SSD ガベージ コレクション

Trim コマンドの仕組み

Author | 2023 年 2 月 13 日 | 全て, テクノロジー

ソリッド ステート ドライブ (SSD) は、コントローラー、NAND フラッシュ、DDR (オプション)、およびインターフェイス/プロトコル コネクタで構成される電子データ ストレージ デバイスです。 (PATA、SATA、PCIe NVMe など。) ハードディスク ドライブ (HDD) とは異なり、SSD はデータの読み取り、プログラム、消去に機械部品を使用しません。 SSD コントローラは、数百万の NAND フラッシュ メモリ セルを正確に制御することで、読み取り、書き込み、消去のタスクを実行できます。

 

 

フラッシュ メモリ セルは本質的に、データを永続的に保持および保存できる特殊なフローティング ゲートを備えた MOSFET (金属酸化物半導体電界効果トランジスタ) です。電子がトランジスタのフローティング ゲートにトラップされるたびに、データがプログラムされます。電子が放出されると、データは削除されます。

HDD とは異なり、NAND フラッシュ メモリは既存のデータを上書きできません。ガベージ コレクション (GC) は、空き領域または使用済み領域を再配置し、有効なデータと無効なデータを再利用するために代わりに使用され、すべての SSD で採用されている基本的なプロセスです。 GC は、全体的な SSD のパフォーマンスと耐久性に直接影響を与えるさまざまな方法で実装できます。

 

GC によるデータの処理方法

SSD は NAND メモリ セル内の既存のデータを上書きできないため、新しいデータを同じ場所にプログラムする前に、まず古いデータを消去する必要があります。 GC は、既存のデータを空きメモリ領域内の新しい場所に再配置し、周囲の無効なデータを完全に消去できるようにするプロセスです。

 

 

フラッシュ メモリ セルはページで構成され、ページがブロックを形成します。 NAND デバイス物理の固有の特性により、フラッシュ セルではデータをページ レベルでプログラムできますが、消去できるのはブロック レベルでのみです。プログラム タスクと消去タスク間のこの不一致は、SSD の耐久性に大きな影響を与えます。

無効なデータによって占有されているスペースを要求する前に、最初のブロックのページ内のすべての有効なデータをコピーして、新しいブロックの空のページに書き込む必要があります。元のブロック内の無効なデータは消去され、新しい有効なデータを書き込む準備が整います。

 

トリムコマンド

オペレーティング システム (OS) 認識は、SSD のマッピング テーブルでアドレス指定されている論理位置のみを認識できます。ストレージ システムは物理的な場所からデータを返し、OS は対応する論理的な場所にデータを要求します。 Microsoft は、NAND の不必要な摩耗を減らすために Trim コマンドの概念を提案しました。このコマンドを使用すると、OS レベルでファイルが削除されているときに、OS が SSD に即座に通知することができます。 SSD は、データが有効なものとしてマークされているか、無効なものとしてマークされているかを早期に判断できます。

Trim コマンドの最大の利点は、SSD が OS が実行しようとしている内容をリアルタイムで厳密に追跡できるようになることです。その結果、NAND フラッシュへの冗長なアクセスが効率的に削減されます。

Trim コマンドには、次の 3 つの重要な利点があります。

      1. より低い書き込み増幅: 無効なデータを含むページに対して無効なデータを早期に通知することで、データの書き換えが少なくなります。書き込みに使用できる空き領域が増えると、SSD に必要な書き込みタスクが少なくなります。
      2. 高スループット: Trim コマンドを使用すると、GC 中に移動するデータが少なくなると、ドライブの動作が速くなります。スループットのボトルネックとなるのは、SSD がフラッシュ メモリに書き込む速度です。 GC の処理中、SSD はホストからの一部のデータ転送を停止する必要があります。したがって、GC 中にページを移動する必要がないように、どのページに無効なデータが含まれているかを知ることは SSD にとって有益です。
      3. 耐久性の向上: 無効なデータを再書き込みしないことにより、ドライブが NAND フラッシュに書き込むデータの量が減ります。

 

 

GC と Trim は SSD の動作の構成要素です

ガベージ コレクションは、SSD と HDD の大きな違いです。 SSD は、無効なデータを含むページに新しいデータがプログラムされるときに、既存のデータを上書きする代わりに GC を実行します。 NAND のさらなる磨耗を引き起こします。ただし、この問題に対する解決策の 1 つは Trim コマンドです。これは、SSD がユーザーまたはオペレーティング システムからの「ファイル削除」タスクを予測するのに役立ちます。これにより、書き込み増幅が低下し、スループットが向上し、SSD の耐久性が向上します。

 

イノベーションを加速する財団™

ja日本語