AR# 47519

Zynq-7000 SoC、SMC - ECC がオンになっている NAND でシングル ビット エラーおよび一部のダブル ビット エラーが検出されない

説明

ECC アルゴリズムのコードに問題があり、バイト 0 のビット 0 のシングル ビット エラーおよび一部のダブル ビット エラーが検出されません。 

パリティ算出の奇数半分のみが、正しいかどうかがテストされます。ECC がオンになっている NAND からデータを読み出すと、特定の場合にレジスタが不正であることが示されます。

ソリューション

影響: 深刻な問題です。3 つの影響があります。「ソリューション」セクションを参照してください。回避策によりエラーが検出されない可能性が大きく低減されます。
回避策:「回避策の詳細」を参照してください。
対象となる構成:NAND で ECC を使用するシステム
対象となるデバイス リビジョン:
(Xilinx Answer 47916) - 「Zynq-7000 SoC デバイス - シリコン リビジョン間の相違点」を参照してください。


影響の詳細

3 つの影響があります。

  1. バイト 0 のデータ ビット 0 のシングル ビット エラーが検出されません。この場合、エラー チェックで不正なデータが正しいデータと判断されます。
  2. スペア領域からの 3 パリティ バイト読み出しの 2 番目の 12 ビットにあるシングル ビット エラーが、エラー チェックで問題が検出されなかったと誤って判断されます。スペア領域で発生したエラーは、修正不可能なエラーと判断されるべきです。
  3. 一部のダブル ビット エラーが修正不可能なエラーとして検出されません。

    ダブル ビット エラーの検出 (影響 3):
    • 可能な 8485140 個の組み合わせのうち 90 個のダブル ビット エラーが修正不可能なエラーとして検出されません (0.001%)。これらの 90 の組み合わせで、エラーが発生してもエラー チェックで検出されません。
    • 両方のエラー ビットがデータのみバイトにある場合: すべてのロケーション (合計 8386560 個) でエラーが修正不可能なエラーとして正しく認識されます。
    • 両方のエラー ビットがパリティのみバイトにある場合: 276 のうち 66 のエラーが修正不可能なエラーとして検出されません。
    • 1 つのビットがパリティ バイト、1 つのビットがデータ バイトにある場合 : 98304 のうち 24 のエラーが修正不可能なエラーとして検出されません。

回避策の詳細

影響 (1) に対してソフトウェアの回避策があります。バイト 0 のビット 0 でエラーが発生した場合、ECC レジスタ値が返されます。

より複雑なソフトウェアでの回避策は、スペア領域の ECC パリティ データを手動で読み出し、ソフトウェアでハードウェア メカニズムとは個別に ECC 結果を算出します。

ecc_fail = 0 および ecc_correct = 1 です。これは、バイト 0 のビット 0 でシングル ビット エラーが発生したことを示しています。このレジスタの値を読み出すことでこのエラーを検出でき、ソフトウェアで修正できます。

 

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
47916 Zynq-7000 SoC デバイス - シリコン リビジョン間の相違点 N/A N/A
AR# 47519
日付 06/13/2018
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス