SLC/Non-SLC Cache

SLC/Non-SLC Cache

本文では、SSDの設計原理における、SLCキャッシュとノンSLCキャッシュ(Direct Write to TLC)の2つの方法のメリットとデメリットを説明すると同時に、さまざまな方法とその応用範囲を分析します。SLCキャッシュの方法には多くのバラエティがあり、本文では1つずつ分析していきます。

下図に示すように、一般的なNANDフラッシュはSLC、MLC、TLCの3タイプに分けられます。SLCは1つのセルに1ビットしか保存することができませんが、MLCは2ビット、TLCでは3ビット保存することができます。その中でも、SLCが最速かつ最も長寿命ですが、また最も高価格となります。TLCはそれとは反対に速度は遅く短寿命ですが、低価格なため、現在ほとんどのSSDでTLCフラッシュメモリが記憶媒体として使用されています。

低価格なTLCによりSSDは幅広く普及し始めましたが、TLCのP/Eサイクル(Program/Erase Count、書き込み/消去回数)が致命的な課題となっています。NANDフラッシュプロセスの進歩にともない、NANDにデータを保存するセル(基本となる記憶単位)のゲート酸化膜の劣化を制御することが難しくなり、プロセスが進むにつれてP/Eサイクルは減少し、そのためにTLC NANDのP/EサイクルはSLCのわずか3~5%となっています。

しかし、プロセスの進歩と3D NANDテクノロジーの発展により、NANDフラッシュメモリの密度と容量はさらに向上し続けています。さらに、SSDのウェアレベリング(Wear Leveling)を利用した読み込み/書込みアルゴリズムがあります。これはTLC NANDは容量が増え続けることによる単一セルの磨耗を減少させるもので、製品の使用寿命を延ばすことができます。同じ書込み量の場合、240GBのTLC SSDの寿命は120GBの2倍、480GBは240GBの2倍となります。そのため、製品容量が増加するにつれて、TLC SSDにおける短寿命問題の解決法がほぼ明らかになり、今後SSDの容量は増加の一途をたどることになると思われます。

さらにTLC SSDには読み込み/書込み速度が遅いという致命的な弱点があります。しかし、各主要SSDメーカーが発表している公式データやメディアによる測定結果でも、SSDの最大読み込み/書込み速度は引き続き向上しており、もはや速度もTLC SSDの抱える問題ではなくなったように思われます。では、実際にそうなのでしょうか?以下では一般的なSSDの高速化方法を分析していきます。

TLC SSDの読み込み/書込み速度の問題解決には主に「SLCキャッシュ」による方法が採用されています。これは真の意味ではSLC NANDフラッシュではないため、「SLC キャッシュ」と呼ばれています。SLC NANDフラッシュは1つのセルに1ビットのみを保存するため、読み込み/書込み速度がMLCとTLCよりも優れています。TLC SSD内にSLCキャッシュを設けます。実際には既存のTLC NAND フラッシュ内にブロックを割り当て、その中の各セルにデータを1ビットのみ書き込むことでSSDの読み込み/書き込み性能を向上させています。

TLC SSDは、SSDの容量に応じた大きさのブロックをSLCキャッシュとして割り当てており、SSDベンダーによってその算出方法も異なります。いくつかのSSDは専用のブロックをSLCキャッシュとして割り当て、このブロックの各セルは1ビットのみを保存し、どのような状況下でもTLC領域は変化しません。この方法のメリットとしては、設計が簡単でSLC/TLCを切り替える必要が無く、また専用エリアのP/EはSLC/TLCエリアよりも長くなることが挙げられます。ただし、専用のブロックが必要となるため、この方法を使用するSSDでは通常容量が不足となり、ユーザーが使用できる容量もNANDに比べて少なくなります。また、このSLCキャッシュ専用ブロックは、最大データ量での読み込み/書込みを行うため、このエリアのP/Eの消費が早くなる可能性もあります(SLCにもP/Eがあります)。

SLCキャッシュのもう1つの方法は、SLCキャッシュ領域の「ダイナミック・ライト・アクセラレーション」です。SLCキャッシュのサイズはSSDの実際の使用容量によって変化するためSLCキャッシュのサイズを保証することはできませんが、均等に磨耗していき、NAND フラッシュ全体のP/Eが過度に消費されることもありません。特別に割り当てられたSLCキャッシュ領域、もしくはダイナミック・ライト・アクセラレーションによるSLCキャッシュのいずれであっても、これらのSLCキャッシュはSSDの読み取り/書込み性能を効果的に向上させることができます。

SLCキャッシュのもう1つのメリットは、TLC NANDへのデータの書き込みが行われている最中に異常な断電が生じると、同一セル内の他のビットに影響を与え、すでにNANDに保存されているデータの破損につながりますが、SLCキャッシュは1つのセルに1ビットのみを保存するため、このような問題を回避することができます。

ただし、SLCキャッシュのこの方法の最大の欠点は、書き込み速度が不安定になることです。書き込まれたデータがSLC キャッシュの使用上限を超えるとデータをTLCに書き込まなければならず、この時書き込み速度は大幅に低下します。この方法を用いたSSDを画像保存や監視装置などの分野で使用すると、画像が不連続になる問題が発生する可能性があります。上図で示すように、SLCキャッシュは開始直後は非常に高いパフォーマンスを発揮しますが、しばらくすると大幅に低下します。ノンSLC キャッシュは非常に安定しており、パフォーマンスが低下することはありません。