Fugue Kyoto Software Research, Inc.
製品概要
コンセプト
ユースケース
技術情報
Fugueだけではなく、フラッシュメモリやフラッシュファイルシステムについて解説などを掲載しています。
 はじめに
 フラッシュとは
 NAND型フラッシュの
 リードライトのパフォーマンス
 不良ブロックの処理
 ビット・エラーとECC
 メモリ・マッピング
 リクラメーション
 ウェア・レベリング
 フラッシュファイルシステムと
 FATファイル・システムの
 電源瞬断による破損
 電源瞬断対策
 おわりに
パートナ
お問合せ
top >  技術情報 >  「Interface」 2004年12月号
不良ブロックの処理
   NAND型フラッシュは,フローティング・ゲートの絶縁部の消耗により,メモリ・セルの書き込みが規定時間で完了しなくなることがあります. その場合,消去やプログラムの実行がエラーとなるため,該当ブロックをバッド・ブロックとして以降のメモリ管理対象から除外する必要があります.

   不良ブロックが発生した場合には,このブロックをこれ以降利用しないようにフラッシュの管理対象から除外します.ただし, エラーが発生した時点では,そのブロック中に有効なデータがまだ格納されたままになっている場合があります.その場合には, その有効データを正常なブロックに移動したうえで,不良ブロックを除外する必要があります.

   不良ブロックは,メモリの出荷直後から,10万回以降の書き換え寿命までの間,ほぼ均等な確率で発生するといわれています.発生確率は 製造プロセスやルールによっても異なりますが,フラッシュ全体でみて,カタログ・データで規定されている不良ブロックの総数を超えない範囲(おそらく 一桁程度小さい)で発生します.

   このような,通常使用時に発生する不良ブロックを後天性の不良ブロックと呼びます.NANDフラッシュの場合には, 工場出荷時にすでに不良ブロックが存在する場合があります.これを先天性の不良ブロックと呼びます. 出荷検査時点で見つかった不良ブロックにはバッド・ブロック・マークが付けられます. バッド・ブロック・マークは,通常は各ブロックの先頭ないしは先頭から規定数分のページ中の特定オフセット上のビットが「非1」 になっているかどうかで示されます.正常なブロックは消去直後のように,すべてのビットが「1」になっているので,このマークを見分けることができます.

   そのため,フラッシュのドライバ・ソフトウェアやフォーマット・プログラムを開発する場合には,この点にも留意する必要があります. また,このことは,製品の機能的な側面だけでなく,工場での製品の製造工程においても意識しておく必要があることを意味します.

   プリント基板上にマウントされるNAND型フラッシュに対して,初めて初期データやプログラム・イメージを書き込む際に, すでに先天的不良ブロックが存在し,そのブロックを検出する手順や,検出後にその状態を保持し, 通常のシステム起動後にフラッシュのメンテナンス・プログラムにその情報が正しく渡されないといけません.

   確率的にはどのブロックも同じ割合で先天性不良となりますが,実際に利用するにはこのままではたいへん不便です. そこで,NAND型フラッシュでは,工場出荷時にブロック0だけは,必ず正常ブロックであることを保証しています.

   開発段階でフラッシュへのアクセスを確認したり,製品の組み立て工程で,製品情報の重要なデータを必ずここに書くなど, ブロック0の存在はいろいろと役に立ちます.
   
リード/ライトのパフォーマンス << >> ビート・エラーとECC