録音ゲイン。 パート2





前回の記事では、録音の増幅について説明し、それがどこから来たのか、それがSSDにとって悪いのかについて説明しました。 また、書き込み増幅に影響する要因についても検討し始めました。 今日もこの議論を続けます。



データの冗長性

録音ゲインに影響する次の要素は、オーバープロビジョニングです。 冗長性は、デバイスの実際の容量とオペレーティングシステムで使用可能な量との差を示し、次の式で計算されます。



( - ) /







ガベージコレクション、ウェアレベリング、および不良ブロックの再マッピング中に、SSDコントローラーはこの「余分な」スペースを使用して書き込みゲインを削減します。 したがって、この係数は可変であり(つまり、WAレベルはその値に依存します)、逆数です(その値が高いほど、WAレベルは低くなります)。







SSD開発者の第1レベルの冗長性は、通常の「バイナリ」ギバイトではなく「10進数」ギガバイトでボリュームを測定する従来のHDDのメーカーの習慣によって「提示」されました。 SSDメモリセルは、1ビットをバイト単位で、次にキビバイト単位でギガバイトまで保存しますが、最終製品の容量はギガバイト単位で宣言されます。 実際のこれらの値の差は7.37%であり、通常、このボリュームは公式のニーズに使用されますが、従来の「冗長性」の量とは見なされません。



冗長性の2番目のレベルはメーカーによって設定され、通常は0%、7%、または22%です。 たとえば、容量が128 Gbのチップに基づいて、メーカーは容量が100 Gb、120 Gb、128 GbのSSDをリリースできます。これにより、それぞれ22%、7%、0%が得られます。



冗長性の3番目のレベルはユーザーが決定し、ディスクの一部を犠牲にすることで速度と信頼性を向上させることができます。 これは、構成ユーティリティを使用して、内部ニーズのためにディスクの一部を「噛み砕く」か、単にディスク上の未割り当て領域を残すことで実行できます。 最新のSSDコントローラー(LSIのSandForceソリューションを含む)の開発により、製造元が定めた冗長性を使用してこれを行わなくても済むため、この方法はまだ過去のものであることに注意してください。







トリム

TRIMコマンドの存在はバイナリ要因であり、その存在は録音ゲインに逆の影響を与える要因です(つまり、WAを低減します)。



TRIMについては多くのことが書かれていますが、念のため、簡単に繰り返します。 TRIMはATAインターフェイスコマンドです(SCSIには同様のUNIMAPコマンドとWRITE SAME TRIMコマンドがあります)。オペレーティングシステムは、それらに含まれるファイルが削除されたために使用されなくなったブロック、またはパーティションが一般的にフォーマットされているドライブをドライブに通知できます。 OSからこの有用な情報を受け取った後、SSDはこれらのセクターを「誤った」状態としてマークし、それ以降のガベージコレクション操作中にそのコンテンツを保存しようとしません。



TRIMコマンドを使用した結果、SSDはガベージコレクション中に上書きされるデータ量を大幅に削減し、WAを削減できる場合があります。



現時点では、ほとんどすべての最新のオペレーティングシステムが何らかの方法でこのコマンドをサポートしていますが、以前はOSメソッドを使用して空きブロックに関する情報を収集し、TRIMコマンドのシーケンスを使用してディスクに転送する特別なユーティリティを使用する必要がありました。



もちろん、ディスク自体がコマンドをサポートする必要がありますが、現時点では、TRIMサポートのないSSDはすでに珍しいものです。



無料座席

データの冗長性に関するセクションで書いたように、空き領域もWAに影響を与えるため、この要因に注意してください。これは可変であり、反比例の記録ゲインで配置されます。



安全な消去

完全な安全なディスククリーンアップのために、別のATAコマンドが設計されています。 SSDがハードウェア暗号化を使用しない場合、このコマンドの後、ドライブは実際に工場出荷時の状態に戻ります。 これにより、パフォーマンスが最大限に向上しますが、録音のゲインは最小限に抑えられます。 もちろん、これらの指標がいっぱいになると、理想的な状態から外れます。



オンザフライ暗号化ディスクは、安全な消去コマンドを異なる方法で実行できます。 現在の暗号化キーをリセットして新しいキーを生成すれば、データは読めなくなります。 この場合、最大のパフォーマンスを復元するには、TRIMコマンドも必要です。これは、どの形式のデータも不要であることを示します。



ウェアレベリング

FLASHの履歴に関する記事で既に書いたように、すべてのメモリセルには、可能な最大書き換えサイクル数に制限があります。 明らかに、いくつかのセルはより頻繁に上書きされ、いくつかのセルはより頻繁に上書きされます。これにより、一部のセルの故障が早まってしまいます。 これの最初の候補は、OSサービステーブルが伝統的に保存されるディスクの初期領域です。 もちろん、ディスクは不良セルを他の「冗長」セルと「置き換える」ことができます。最終的に、再マッピングプロセスはSSDよりもずっと前に発明されましたが、最新のフラッシュドライブはこれをできる限り防止しようとします。



これを行うには、「ウェアレベリング」プロセスを使用します。SSDはすべてのセルに均等に書き込まれ、定期的に変更されます。 理論的には、これにより、故障する前にすべてのセルを最大限に使用できます。 実際には、このプロセスは非常に思慮深く実行する必要があります。 ウェアレベリングでは、一度記録されて上書きされていない(冷たい)データを定期的に別の場所に転送し、頻繁に変化する(熱い)データを冷たいセルが占有するセルに記録できるようにする必要があります。 既に理解しているように、これは記録とディスクの摩耗の増加につながります。



この場合、コントローラー製造業者のタスクは、互いに害を及ぼさずに両方のインジケーターを最大化する妥協アルゴリズムを見つけることです。



その他の方法

また、最新のSSDコントローラーは、WAのパフォーマンスを向上させるために、以前の記事で簡単に触れたいくつかのより複雑な最適化を生成します。



ディスク上のすべてのデータが同じ頻度で変更されるわけではないことは明らかです。 動的データがありますが、静的データがあります。 ディスクの異なる領域でそれらを分離することは、多くの場合、良いアイデアです。これにより、上書きするときに静的データのブロックに「触れない」ことができます。 このプロセスの主な欠点は、ウェアレベリングと矛盾することで、これにはセルの最も均一なロードが必要です。



また、SSDにデータを順番に書き込んだり消去したりする方が良いことも理解しやすいです。 これにより、すべてのコントローラーアルゴリズムの作業が容易になります。したがって、多くの場合、「ランダム」書き込み操作の数を減らすことを目的としたさまざまなトリックを使用するディスクで使用されます。



SSDコントローラー(およびその開発者)がそのような妥協をする必要があるのは世界の外交官だけではなく、現代のコントローラーの複雑さが増し、新しい最適化の機会が開かれます。 次の記事のいずれかで、SSDコントローラのトピックに戻り、LSI SandForceファミリの特定の例での彼らの仕事についてお話します。



All Articles