JMF601/JMF602/Barefoot搭載SSD用モニタリング・寿命予測&快適設定ソフト"JSMonitor"公開

JSMonitorは、JMicron社製JMF601/JMF602コントローラまたはIndilinx社製Barefootコントローラを搭載したSSDのモニタリングおよび寿命予測を行うソフトウェアです。さらに、それらの機能に加え、SSDへの読み書きを減らし、快適に使用するための設定を手軽に行える機能もあります。
JSOptimizerは、JSMonitorからSSD快適設定のみを抽出したソフトウェアです。JSMonitorは対応するSSDが存在しない場合には起動できませんが、JSOptimizerはどの環境においても使用可能です。

開発に当たっては、トランセンド社のデータシート(JMF602)MemoryCorp社のデータシート(JMF602)トランセンド社のデータシート(Barefoot)を参考にしました。
現在のバージョンは、JSMonitor v0.4c, JSOptimizer v0.2a(09/08/29更新)です。

機能一覧

  • ブロックごとの最大・平均消去回数をモニタリングすることで、寿命を推定できます。
  • 最大・平均消去回数の変化をグラフで表示できます。
  • 指定したAttributeが変化した際にダイアログまたはバルーンで警告を表示することができます。
  • 現在の状態をテキスト形式でクリップボードにコピーすることができます。
  • 各項目の上にマウスポインタを乗せておくと、ツールチップで詳細な説明が表示されます。
  • SSDへの読み書きを減らし、快適に使用するための設定を行うことができます。

寿命推定の原理について

本ソフトは、ブロックごとの最大消去回数(Maximum Erase Count)と平均消去回数(Average Erase Count)をモニタリングし、それらの消去回数が一定値に到達する日付を予測することによって寿命推定を行っています。
よく知られているとおり、NANDフラッシュには書き換え回数に制限があり、多数の書き換えを行うとフラッシュセルが破損します。現在のSSDに採用されているNANDフラッシュの書き換え制限回数はSLCタイプで10万回、MLCタイプで1万回程度と言われています。
そこで、SSDをはじめとするNANDフラッシュを用いたストレージは、少数のブロック*1にのみ書き換えが集中してしまうことを避けるため、「ウェアレベリング」という仕組みを用い、可能な限り各ブロックの書き換え回数を平均化します。よって、全ブロックの書き換え回数の平均値が分かれば、そのSSD全体がどのくらい寿命に近づいているかを知ることができます。
本ソフトは、ブロックごとの最大/平均消去回数(消去回数=書き換え回数)が増加した際に、その時刻と消去回数を記録します。ある程度データが集まった後に、最小二乗法という手法を用いて一日あたりの最大消去回数の増加量を求めます。そして、その増加量が保たれると仮定し、消去回数が制限回数を越える日付を予測します。
メイン画面において、"TEC"(Threshold Exceeds Condition)の後に表示されているのが予測された寿命です。また、ブロックごとの最大消去回数(Maximum Erase Count)と平均消去回数(Average Erase Count)の増加の様子をグラフで表示しています。なお、"Attributes"という枠の中にMaximum/Average Erase Countの現在値を表示しています。これらの値が制限回数に近づいてきたら、買い替えを検討することをお勧めします。
本ソフトの寿命推定は、一日ごとの書き換え回数が(ほぼ)一定であるという仮定を置いています。すなわち、一日ごとの使用量が一定しない場合には推定結果の信頼性は下がります。
また、実際に書き換え制限回数に近い回数の消去を行った場合、どの程度の確率でNANDフラッシュが破損するのかというデータはありません。
これらのことに留意しつつ、推定結果には過度の期待をしないようお願いします。

対応環境

OSについて

Windows XP, Vista, Windows7(RC)で動作します。Windows 2000でもソフトは起動しますが、快適設定を行うことはできません。

対応SSD

対応SSDは、JMF601,JMF602,Barefootのいずれかを搭載したSSDです。代表的なSSDとしては、下記の製品が挙げられます。

データの取得にはSMARTを利用しているため、RAID及び外付けディスクには対応していません(該当製品のUSB接続時も含む)。また、G-Monster V2、OCZ Apexなどの内部RAIDモデルにも対応していません。
もし、対応するSSDをお使いにも関わらず本ソフトが起動しなかった場合、コメント欄またはメールでご連絡ください。

その他

このページはコメントが多く見づらくなってきたので、v0.4以降の動作報告はこちらのページにお願いします。

*1:ブロックとは、NANDフラッシュのデータの単位で、概ね128〜512KBの大きさを持っています。NANDフラッシュは、書き込み(任意のビットを0から1に立ち上げる)と読み込みはより小さな「ページ」単位で行います。一方、1に立ち上がったビットを0に戻す(消去)ためには、1ブロックに属する全てのメモリセルを0に立ち下げる必要があります。そのため、書き換え回数は消去回数と等しくなります。