SLCキャッ​​シュ:NVMeSSDの使用率と特性

SLCキャッ​​シュ

ここ数ヶ月で最もよく耳にするNVMeSSDのパフォーマンスを指す用語のXNUMXつは、SLCキャッ​​シュです。 そのため、この記事を用意しました。これは、この記事がどのように機能し、高性能ソリッドステートドライブのパフォーマンスにどのようなメリットがあるかを理解できるようにするためです。

NANDフラッシュテクノロジーに基づくデータストレージは、ハンドヘルドデバイス用のメモリカードから NVMe SSD PCで。 まさに後者の場合、従来のハードドライブのアクセス遅延と帯域幅の両方に制限がないため、歴史上のボトルネックの100つが解消されましたが、XNUMX%で動作する完璧なテクノロジーはなく、常に存在します。それを圧迫する要素により、エンジニアは解決策を見つけて実装する必要があります。

NANDフラッシュおよびメモリーセル

Tipos CeldaNANDフラッシュSLCTLC MLC QLC

NANDフラッシュメモリは、NVRAMまたは不揮発性メモリの一種です。 RAM、これは、その動作が従来のRAMと同じであることを意味しますが、システムが電力の供給を停止したときにデータが失われないという違いがあります。 この機能を持つことのトレードオフは、ライフサイクルでのメモリ書き込みの数が限られていることです。 ストレージへのアクセスに関しては、パフォーマンスという形での利点は価値がありますが、無駄ではありませんが、すべてのコンピューターシステムは、最も遅い部分(通常はストレージ)がそれを離れるのと同じくらい高速です。

RAMメモリ内のメモリの各ビットは、メモリセルと呼ばれるものと、に使用される最初のNANDフラッシュメモリに格納されます。 SSD ストレージ、セルごとに2ビットが使用されたため、ストレージは非常に高価になりました。 ソリューション? 各セルがXNUMXビットのデータを保持できること( MLC )、3ビット( TLC )または最大4ビット( QLC )。 追加された問題? セルあたりのビット数が多いほど、劣化が速くなり、耐用年数が短くなります。 これはSLCキャッ​​シュを理解するための基礎であるため、この点に注意してください。

TLCおよびQLCセルは、持続時間だけで劣化するわけではありません

NVMe SSD

この時点に達すると、MLC、TLC、およびQLCタイプのNANDフラッシュメモリのストレージ容量は長くなりますが、持続時間は短くなりますが、すべての帯域幅は同じであるため、多くの人が頭の中で考えます。セルのタイプによってパフォーマンスが変わることはありません。 さて、悪いニュースはそれだけではありませんが、アクセス速度も低下します。

CPU NVMe SSDのメモリアドレスへのアクセスを要求すると、フラッシュコントローラによって受信され、メモリ内のデータを検索して、使用するPCIExpressまたはSATAインターフェイスを介してデータを送信します。 ユニットですが、フラッシュコントローラーはユニットのNVMeチップに直接アクセスしてデータを操作し、前述のインターフェイスを介して操作しません。

NANDフラッシュメモリにデータを保存する方法は、電圧を変更することです。SLCメモリには1つの電圧しか必要ありませんが、MLCには必要です。 3 、しかしTLCは 7 QLCに行くと、 15 。 数値が大きいほど、読み取りおよび書き込み操作の実行に時間がかかります。 そして、これが問題になり始めるのはいつですか? さて、TLCメモリから、店舗内のNVMe SSDユニットの数を見ると、少なくとも今日はそれらすべてがこれらのセルを使用していることがわかります。

解決策:SLCキャッ​​シュ

SLCキャッ​​シュNVMe
最初に覚えておくべきことは、フラッシュコントローラーとPCIインターフェイスの間にある揮発性メモリについて話しているわけではないため、SLCキャッ​​シュは一部のNVMeSSDにあるDRAMキャッシュと同じではないということです。 SLCキャッ​​シュもDRAM-Lessユニットにあるため、同じことを表現します。 一般に、後で説明する例外はありますが、各NVMeチップ内にはXNUMX種類のNANDフラッシュメモリがあります。

  • データストレージ用のTLCまたはQLCメモリ
  • キャッシュとして機能するはるかに小さいSLCメモリ。

最初に理解する必要があるのは、キャッシュはプロセッサにはるかに近いメモリにすぎないため、データを一時的に保存するレイテンシが低いということです。 私たちがあなたに言ったことを検討する場合、私たちは次の前提を持っています:

  • SLCセルの寿命はTLCよりもはるかに長く、QLCよりもさらに長いため、分解にかかる時間ははるかに長くなります。
  • SLCセルのアクセス速度ははるかに高速です。

したがって、解決策は、データを一時的にSLCメモリにダンプすることです。SLCメモリはバッファキャッシュとして機能し、データコピーメカニズムがTLCのメモリアドレスを変更します。

SLCキャッ​​シュのパフォーマンス

SLCMLCTLCvoltajecaché
最も重要な部分は、SLCキャッ​​シュのサイズが固定されていることです。つまり、SLCキャッ​​シュを使用して小さなデータを送受信すると、パフォーマンスは維持されますが、たとえば、データのシーケンシャルコピーを作成する場合はSLCがいっぱいになるとすぐに、非常に大きなデータブロックの形式でパフォーマンスが低下します。

そのため、同じストレージ、アクセスインターフェイス、さらにはセルタイプ、つまり実質的に同じであるXNUMXつのNVMe SSDを手に入れることができますが、それらのパフォーマンスは完全に異なる可能性があります。 理由? 明らかに、サイズが異なる可能性のあるSLCキャッ​​シュ。

SLCキャッ​​シュは、シーケンシャルアクセスでデータを格納するために使用されるだけでなく、ランダムでもあります。情報にアクセスするときのプログラムは、高い再帰性と区切られた情報ブロックで保存することを考慮に入れる必要があります。

SLCキャッ​​シュタイプ

TiposCachéSLC
SLCキャッ​​シュを管理する方法はXNUMXつあります。これは、製造元がフラッシュコントローラーに実装しているアルゴリズムによって異なります。 むしろ、一時ストレージに割り当てることができるスペースの量を指します。

  • 静的キャッシュでは、ストレージスペースは固定されており、サイズを変更することはできません。
  • 動的キャッシュでは、割り当てられるサイズは可変です。

SLCセルの数が固定されている場合、動的キャッシュはどのように可能ですか? 欠点は、NVMe TLCセルをSLCであるかのように使用することです。つまり、3ではなくそれぞれにXNUMXビットを格納するようにします。したがって、ストレージの一部をキャッシュとして再割り当てするNVMeチップがいくつかあります。

動的キャッシュの利点は、SLCキャッ​​シュのサイズが使い果たされないことですが、ストレージに使用されなくなるTLCセルが増え、データを保存するための全体的な容量に影響を与えるリスクがあります。 このため、ほとんどの動的SLCキャッ​​シュシステムは、ファームウェアを介してこれの最大サイズを制限するシステムを利用します。