Readデータのエラー検査

NAND Flash Memory(以下NAND)は、様々な要因でデータエラーが起きます。

  • Read Distrub
    •  ブロック内でReadした以外のページがダメージを受け、ビット化けが発生。
  • Data Retantion
    •  長時間アクセスしなかった場合、電荷が抜け、ビット化けが発生
  • 電源断
    •  アクセス中に電源断が発生すると、NANDの状態が不安定になり、データエラーが発生
      勿論、書込み(Program)時の不具合が原因で、正しいデータが記録されなかった場合もあります。

Scriptによる、検査例を下記に紹介します。

異常箇所の特定

SigNAS3には、Readデータをそのままダンプしたり、指定したパターンと比較して異常な箇所を特定する Script Command があります。

【Script  例

  1. BKERAS 0 0000
  2. VSET04 1 0000
  3. REPEAT 0000005 0000006
  4. PGPROG 0 0000 $V04_01$ INCRMT 03020100 04040404
  5. PGREAD 0 0000 $V04_01$
  6. PGDUMP 0 0400
  7. PGRDCP 0 0000 $V04_01$ 0400 INCRMT 03020100 04040403
    (データ不一致を引き起こす為、意図的に異なる値をセット)
  8. VADD04 1 0001 

PGRDCP コマンド

比較長は、4バイト単位のデータの個数を16進数4桁で指定します。

例えば0400を指定すると、4バイト単位のデータを1024個、すなわち4096バイトのデータを比較します。

【結果

Dump File の内容

 LineCntChannelChipBlockPageWordNoDump
310000003020100
310000107060504
31000020B0A0908
31000030F0E0D0C
310000413121110
310000517161514

【解説

本例では、予めセットしたパタン通りのデータがProgramされ、Readされています。

Compare File の内容

 LineCntChannelChipBlockPageWordNoComp
310000100000007
31000020000000E
310000300000005
31000040000001C
31000050000001B

【解説】

不一致の場所と比較結果(XOR値、不一致のビットが1で表される)をCompare Fileに保存します。

Word 0 : 本例では、不一致のビットはありませんので、Compare Fileには記録されません。

Word 1 : Readデータの最下位データ4に対し比較データ3とのXORである7が記録されています。

Word 2 : Readデータの最下位データ8に対し比較データ6とのXORである Eが記録されています。

ECCブロック毎のエラー数解析

ECC Code長に基づき、ECCブロック毎のエラー数解析を行う機能もあります。

【例】

下記仕様のNANDについての評価

Block Size: 1152page

Page Size: 18592byte

ECC Code Length: 1162byte

∴1page当たりのECCblock数 = 18592byte/1162byte = 16

【Script  例

Randomデータ(seed:456789AB)記録後、ダメージを与えてビット化けさせたブロックについての評価

PGRDEC コマンド

指定したページをリードし、指定したパターンと比較を行い、エラー数をカウントします。

ECCANAを1にセットした場合、エラーカウント結果(ECCブロックごとのビットエラー数)をError Count Fileに保存します。

  1. ECCANA 1
  2. VSET04 1 0000
  3. PGRDEC 0 0000 0000 RDMOVL 456789AB
  4. REPEAT 0000002 0000003
  5. PGRDEC 0 0000 $V04_01$ RDMOVL 
  6. VADD04 1 0001

※ RDMOVLは、RDMOVLパターンでブロックプログラムしたブロック内のページをリード、比較するコマンドです。

使用方法は下記の通り、他のパターンと異なりますので注意が必要です。

PGRDEC 0 0000 0000 RDMOVL 456789AB(初期設定のみを行い、リードや比較は行わない)

PGRDEC 0 0000 0000 RDMOVL(ページ0のリードと比較)

 Error Count file の内容(抜粋)

ChannelCEBlockPageBitErrorECBK0ECBK1ECBK2ECBK3ECBK4ECBK5ECBK6ECBK7ECBK8ECBK9ECBK10ECBK11ECBK12ECBK13ECBK14ECBK15
2001062483202553642122452
2001066442101524412215491

BKRDECコマンド

指定したブロックの全ページをリードし、指定したパターンと比較を行い、エラー数をカウントします。

ECCANAを1にセットした場合、エラーカウント結果(ECCブロック中のビットエラー数のヒストグラム)をError Count Fileに保存します。

エラーが0ビットのECCブロック数、エラーが1ビットのECCブロック数、・・・、エラーが253ビットのECCブロック数、エラーが254ビット以上のECC ブロック数の順に、255個の結果を保存します。

Script

ECCANA 1

BKRDEC 0 $V04_00$ RDMOVL 456789AB

 Error Count file の内容

SigNAS3は、GUIにもいくつかのError分析機能がありますので、目的に応じてご使用下さい。

詳しくはOperationManualを参照願います。