P/Eサイクル(書き換え寿命、Endurance)

NAND フラッシュメモリ(以下NAND)はデータを書き込む【Program】際に、まず既存のデータを消去【Erase】する必要があります。

この一連のプロセス「P/Eサイクル」を処理できる回数には限界があり、それを超えると障害を起こします。

その数値は、耐久性(Endurance)と呼ばれ、NANDの寿命と直接的に関係があります。

ベンダー各社はNANDそのものに加え、それを搭載したフラッシュストレージの寿命を最大限に伸ばすため、P/Eサイクルを減らしたり負荷分散をしたりする技術を実装し、劣化が早まる事態を防いでいます。

SigNAS3には、P/Eサイクル(ストレス)をGUIで各種条件を設定して実施する機能が備わっています。

下記に詳細を説明します。

Set1~10までP/Eサイクルに関わるパラメータの組み合わせを10種類設定できます。

Enable
実施するSetの□をチェックします。

Chip
チップ番号(CE)を0~7で設定します。

Start Block
P/Eサイクルを開始するブロック番号を4桁の16進数で設定(最大値FFFF)します。

Block#
P/Eサイクルを行うブロック数を設定します。

Block Step
P/Eサイクルを行う際の、ブロックステップ(刻み)を設定します。
例えば、Start Blockが0010、Block#が5、Block Stepが4の時、ブロック 0010、0014、0018、001C、0020に対してP/Eサイクルを実施します。

P/E Cycle#
P/E サイクル数を設定します。最大値は100000です。

Pattern
P/Eサイクル実行時に使用するブロックプログラムのパターンをSet1~5から選択設定します。
選択するとPatternSetting(以前紹介した)で設定されたパターン名が表示されます。

プログラムパターンを初期化するタイミングを設定します。
但し、パターンが Increment Overall または PseudoRandomOverall の場合にのみ有効です。
IncrementOverallの場合、Initial Valueに初期化
PseudoRandomOverallの場合は、Seed Valueに初期化

初期化のタイミングは、
Blockをチェックすると、別のブロックに遷移する際
Cycleをチェックすると、サイクル毎に初期化を行います。

各設定による動作を下表に示します。

Terminate with NAND Fail
チェックするとP/Eサイクル実施中に、NAND起因等でエラーが発生した場合、その時点で実行停止します。

Execute
上記設定したパラメータに従い、P/Eサイクルを開始、実行します。

尚、P/Eサイクル実施時のProgram後Eraseするまでの時間設定は、GUIのGeneralSettingsで行えます。
NANDはErase/Programの回数が同じでも、Program間隔や温度条件が異なると、データ保持寿命は大きく変わってしまいます。

Program後Eraseするまでの時間を100ms単位で設定します。最大値は、3,600,000msです。

注意事項

この機能はソフトウエアで対応しており、通信遅延等の影響受けたり、誤差を生じます。
数秒に設定した場合は相対的にその影響は小さいですが、数百msに設定した場合は影響が無視できない恐れがありますのでご注意下さい。
また、本設定はP/Eサイクルのみならず、Program DisturbやBusy Time Stress Profile等にも共通に適用されます。