ウェアレベリング(ウェアレベリングとも表記)は、フラッシュメモリ(ソリッドステートドライブ(SSD)やUSBフラッシュドライブで使用される)や相変化メモリなど、消去可能なコンピュータストレージメディアの耐用年数を延ばす技術[1]である。このようなメモリシステムでは、さまざまなレベルの寿命延長を実現するウェアレベリングメカニズムがいくつか存在する。[2] [3]
プリエンプティブウェアレベリング(PWL)という用語は、ウエスタンデジタル社がオーディオやビデオデータの保存用に設計されたハードディスクドライブ(HDD)で使用される保存技術を説明するために使用しています。 [4]ただし、この記事の文脈では、HDDは一般にウェアレベリングされたデバイスではありません。
根拠
EEPROMとフラッシュ メモリ メディアには、個別に消去可能なセグメントがあり、各セグメントは、信頼性がなくなるまで一定回数の消去サイクルを実行できます。これは通常、約 3,000/5,000 サイクルです[5] [6]が、多くのフラッシュ デバイスには、特別に寿命が延長された 100,000 サイクル以上のブロックが 1 つあり、フラッシュ メモリ コントローラはこれを使用して、セグメント間のデータの摩耗と移動を追跡できます。CD -RWやDVD-RWなどの消去可能な光メディアの定格は、最大 1,000 サイクルです ( DVD-RAMメディアの場合は 100,000 サイクル)。
ウェアレベリングは、消去と再書き込みがメディア全体に均等に分散されるようにデータを配置することで、これらの制限を回避しようとします。このようにして、書き込みサイクルの集中により単一の消去ブロックが早期に故障することはありません。[7]フラッシュメモリでは、チップ上の単一のブロックが他のブロックよりも長寿命になるように設計されているため、メモリコントローラは動作データを破損する可能性が低くなります。[3] [8]
FAT、UFS、HFS / HFS+、EXT、NTFSなどの従来のファイルシステムは、もともと磁気ディスク用に設計されたもので、多くのデータ構造(ディレクトリなど)を同じ領域に繰り返し書き換えます。これらのシステムをフラッシュメモリメディアで使用すると、これが問題になります。一部のファイルシステムは最終アクセス時間を追跡するため、ファイルのメタデータが常にその場で書き換えられる可能性があるため、問題はさらに悪化します。[9]
種類
フラッシュメモリストレージデバイスで使用されるウェアレベリングメカニズムには、基本的に3つのタイプがあります。[2]
ウェアレベリングなし
ウェアレベリングのないフラッシュメモリストレージシステムは、データがフラッシュに書き込まれると、あまり長持ちしません。ウェアレベリングがない場合、基盤となるフラッシュコントローラは、オペレーティングシステム(OS)からの論理アドレスをフラッシュメモリの物理アドレスに永続的に割り当てる必要があります。つまり、以前に書き込まれたブロックへのすべての書き込みは、最初に読み取り、消去、変更、および同じ場所に再書き込みする必要があります。このアプローチは非常に時間がかかり、頻繁に書き込まれる場所はすぐに消耗しますが、他の場所はまったく使用されません。いくつかのブロックが寿命に達すると、そのようなデバイスは動作しなくなります。[2]
ダイナミックウェアレベリング
最初のタイプのウェアレベリングはダイナミックウェアレベリングと呼ばれ、 OS から物理フラッシュメモリに論理ブロックアドレス(LBA) をリンクするマップを使用します。OS が置換データを書き込むたびに、マップが更新され、元の物理ブロックが無効データとしてマークされ、新しいブロックがそのマップエントリにリンクされます。データブロックがフラッシュメモリに再書き込みされるたびに、新しい場所に書き込まれます。ただし、置換データを取得しないフラッシュメモリブロックは追加の摩耗が発生しないため、動的データがリサイクルされることにのみ由来しています。このようなデバイスは、ウェアレベリングのないデバイスよりも長持ちしますが、デバイスが動作しなくなった後もブロックがアクティブのまま残ります。[2] [3]
静的ウェアレベリング
もう 1 つのタイプのウェア レベリングは静的ウェア レベリングと呼ばれ、これもマップを使用して LBA を物理メモリ アドレスにリンクします。静的ウェア レベリングは動的ウェア レベリングと同じように機能しますが、変更されない静的ブロックが定期的に移動され、使用頻度の低いセルが他のデータで使用できるようになります。この回転効果により、SSD はほとんどのブロックの寿命が尽きるまで動作し続けることができます。[2] [3]
グローバルウェアレベリング
動的および静的ウェアレベリングは両方ともローカルレベルで実装されます。これは、マルチチップ製品では、すべてのチップが単一のリソースとして管理されることを意味します。NAND フラッシュメモリ内のさまざまなチップの不良ブロックの数は異なります。特定のチップのすべてのデータブロックが消耗している一方で、同じデバイス内の別のチップのすべてのブロックがまだアクティブである可能性があります。グローバルウェアレベリングは、フラッシュメモリ内のすべてのチップのすべてのブロックを単一のプールでまとめて管理することで、この問題に対処します。これにより、製品内のすべてのチップのすべてのセルが均等に消耗します。[10] [11]
比較
次の表は静的ウェアレベリングと動的ウェアレベリングを比較したものです。[3]
テクニック
メディアの寿命を延ばすにはいくつかのテクニックがあります。
- エラーを検出したり、エラーを修正したりするために、各ブロックまたはセクターごとにチェックサムまたはエラー訂正コードを保持できます。
- 過剰にプロビジョニングされた予備スペースのプールも保持できます。ブロックまたはセクターに障害が発生した場合、それ以降の読み取りと書き込みは、そのプール内の代替にリダイレクトされます。
- メディア上のブロックまたはセクターは、最も使用頻度の低い(LFU) キューで追跡できます。キュー自体のデータ構造は、デバイス外に保存するか、キューが使用するスペース自体が摩耗レベル化されるように保存するか、フラッシュ メモリの場合は、特別に延長された寿命を持つブロックに保存する必要があります。ただし、通常のキャッシュ アルゴリズムは、 RAMベースのキャッシュへのデータ フローとキャッシュからのデータ フローを管理するように設計されているため、非対称の性質を持つフラッシュ ベースのストレージ デバイスには直接適していません。読み取りは通常、書き込みよりもはるかに高速で、消去操作は一度に 1 つの「ブロック」しか実行できません。[13]
- ガベージコレクション
セキュアデジタルカードやUSBフラッシュドライブでは、[12]技術は内蔵マイクロコントローラによってハードウェアに実装されています。このようなデバイスではウェアレベリングは透過的であり、FATなどの従来のファイルシステムをそのまま使用できます。
ウェア レベリングは、フラッシュ メディア上のJFFS2やYAFFS 、または光学メディア上のUDFなどの専用ファイル システムによってソフトウェアで実装することもできます。これら 3 つはすべて、メディアを循環ログとして扱い、連続パスで書き込むという点で、ログ構造ファイル システムです。ZFSなどのコピー オン ライト戦略を実装するファイル システムも、ウェア レベリングの形式を実装します。
参照
参考文献
- ^ 米国特許 6,850,443フラッシュメモリシステムのウェアレベリング技術。
- ^ abcdef Perdue, Ken (2010-04-30). 「ウェアレベリングアプリケーションノート」(PDF) . Spansion . 2011-06-07 のオリジナル(PDF)からアーカイブ。 2010 年8 月 12 日閲覧。
- ^ abcde 「USB フラッシュのウェアレベリングと寿命」(PDF)。Corsair 。2007年 6 月。2007年 10 月 13 日時点のオリジナル(PDF)からアーカイブ。2013年7 月 27 日閲覧。
- ^ 「Western Digital AV ハードドライブ製品情報」。Western Digital。2010 年 1 月 2 日時点のオリジナルよりアーカイブ。2010 年 6 月 1 日閲覧。
- ^ 「SSD を購入したいですか? まずこれを読んでください」。Hardware Canucks 2011 年 1 月 10 日。
- ^ 「SSD が 25nm NAND に移行 - 知っておくべきこと | StorageReview.com - ストレージレビュー」www.storagereview.com。2011 年 2 月 12 日。2019 年 12 月 5 日時点のオリジナルよりアーカイブ。2019 年12 月 5 日閲覧。
- ^ 「フラッシュメモリのアルゴリズムとデータ構造」、E. Gal、S. Toledo、ACM Computing Surveys、2005 年
- ^ Arnd Bergmann (2011-02-18). 「安価なフラッシュドライブで Linux を最適化する」LWN.net . 2013-10-03閲覧。
- ^ Jonathan Corbet (2007-08-08). 「Once upon atime」. LWN.net . 2014年1月21日閲覧。
- ^ 「ウェアレベリング」。トランセンド。 2019年11月20日閲覧。
- ^ 「ウェアレベリング - 静的、動的、グローバル」(PDF) . Cactus : 5 . 2019年11月20日閲覧。
- ^ ab 「Swissbit Industrial SD Memory Cards」。Mouser Electronics 。 2017年4月21日閲覧。
- ^ Qing Yang (2012-02-25). 「標準キャッシュ アルゴリズムが SSD で機能しない理由」. velobit.com . 2013 年 11 月 26 日閲覧。
外部リンク
- フラッシュ SSD – 劣った技術か隠れたスーパースターか?、bitmicro.com、2007 年 2 月 2 日のオリジナルからアーカイブ
