(2)JEDECの耐久性基準について

JEDECの耐久性基準について

JEDEC(半導体技術協会)は、9月23日にSSDの耐久性と信頼性の計測基準を公開しました(プレスリリースJESD218(Solid-State Drive (SSD) Requirements and Endurance Test Method)JESD219(Solid-State Drive (SSD) Endurance Workloads))。この基準では、SSDの耐久性を"TBW(TeraBytes Written)"、すなわち"何TBのデータを書き込めたか"で示そうとするもので、試験の環境や負荷のかけ方が厳格に定義されています。SSDの耐久性や信頼性を示す上でMTBF(平均故障間隔)がほとんど役に立たないことは明白であり、それに変わる有意義な規格を目指しているようです。類似の規格としてはSanDiskが提案したLDEというものがありましたが、既に忘れ去られつつある気がします。
さて、今回の耐久テストについてですが、結論から言うとこの基準には従いません。というか、台数と温度の要件を満たすことが事実上不可能なので、従うことができません。
そもそも、JEDECの基準は、TBWという指標によってSSDの耐久性を格付けするためのもので、目標とするTBWに達するまで書き込みを行い、テスト終了時までに要求された条件が満たされているかどうかを調べるというものです。それに対し、今回のテストは壊れるまで読み書き(+放置)を続け、その内部状態をSMARTで調べてみようという趣旨で行います。若干目指している方向が違うんですね。

JEDECの耐久性評価基準の詳細

そういうわけで、今回のテストとは直接は関係ないのですが、せっかくなのでJEDECの基準の内容を紹介しておきたいと思います。

テスト期間中に満たすべき条件

テスト対象のSSDは、テスト期間中に下記の状態を満たしていなければいけません。

  1. SSDの容量が減っていない
  2. UBER(Uncorrectable Bit Error Rate)が要求値以下である
  3. FFR(Functional Failure Requirement)が要求値以下である
  4. 要求された時間電源を切断されていてもデータが保持されている

UBER, FFR, 電源切断時間のそれぞれの要求値は後述するApplication Classごとに定められています。
UBERとは、読み込み時のデータエラーの数をを読み込んだ総ビット数で割った値です。前回の記事で述べたRBERはECCを行う前のエラーレートですが、こちらはECCで修正しきれなかったエラーレートを表します。HDDのUBERはおよそ1.0E-13〜16(1.25TB〜1.25PBの読み込みあたり1ビット)程度であるようです。
FFRはより単純で、ストレージとしての機能を失ったSSDの割合です。例えばリードオンリーモードになってしまったSSDは、Functional Failureの状態になっていると見なされます。なお、明らかにNVM(NANDフラッシュ)の耐久性との因果がない故障は除外してもよいことになっています。

Application Class

SSDの仕様用途に応じて、"Enterprise"と"Client"の2つのApplication Classが用意されています。前者はサーバなどの用途、後者は一般的なPC用途を示しているようです。

  • Enterpriseクラス

Enterpriseクラスでは、55℃で24時間連続使用が求められ、UBER, FFR, 電源切断時間の要求値はそれぞれ1.0E-16, 3%, 3ヶ月(40℃)となっています。
書き込みパターンはJESD219に定義されており、書き込みサイズとその割合は以下のようになっています。

書き込みサイズ 0.5K 1K 1.5K 2K 2.5K 3K 3.5K 4K 8K 16K 32K 64K
割合 4% 1% 1% 1% 1% 1% 1% 67% 10% 7% 3% 3%

また、書き込みの50%はLBAの最初の5%の部分に、書き込みの30%は次の15%の部分に、書き込みの20%は残りの部分に行います。これは、おそらくウェアレベリングのアルゴリズムがよくないSSDに厳しい評価が出るように、書き込み回数をあえて不均一にするものでしょう。

  • Clientクラス

Clientクラスでは、40℃で1日あたり8時間の使用が求められ、UBER, FFR, 電源切断時間の要求値はそれぞれ1.0E-15, 3%, 1年(30℃)となっています。電源切断時間の要求値はEnterpriseより長くなっています。
なお、現在のところ、Clientクラスの書き込みパターンは開発中であり、公開されていません。

テスト手法・要件

耐久性の検証は、直接的方法(direct method)と補外法(extrapolation method)の二つがあります。直接的方法は、設定されたTBWに達するまで書き込みを行った後、データ保持テストを行います。直接的方法は1000時間行うことを求められていて、それ以上の時間がかかるときは補外法を用いることが許可されています。
テストに用いられる台数は、FFRとUBERの値が60%以上の信頼性となるように設定します。例えばFFRが3%である場合、x台のSSDのうち1台以上壊れる確率yは,y=1-(0.97^x)と表せます。y=0.6のとき、x=log(0.97)/log(0.4)=30.082 となります。従って、yが0.6以上になるxの最小の整数値は31となります。この場合、31台でテストを行って1台も壊れないことが求められます。こんな計算をいちいち行うのは面倒なので、JESD218ではこの最低台数を求めるためのテーブルを使った簡単な計算方法が記載されています。それによると、68台でテストを行った場合は1台までは壊れてもよく、104台でテストを行った場合は2台まで壊れてもよい、ということになるようです。
また、テスト中及びデータ保持期間の両方において、SSDを低温環境と高温環境の両方に置かなければなりません。そのためのテスト方法として、"ramped-temperature approach"と"split-flow approach"の2つがあります。詳細は省略しますが、前者はテスト中に温度を上げ下げする方法で、後者はSSDを半々に分け、片方は高温環境で、残りは低温環境でテストするというものです。よく分からないのが、これらのテストで指定されている温度やデータ保持期間が前述のアプリケーションクラスの数値と違ってる点です。アプリケーションクラスの数値は、こういう環境での使用が要求されてますよってだけで実際のテストとは異なるってことなんでしょうか…?
あとは補外法についてなんですが、そろそろ読むのに疲れて心が折れたので省略させていただきます。そのうち気が向いて残りを読むことがあったら更新するかも?