(57)【特許請求の範囲】
【請求項１】
フラッシュメモリの内部データ構造に適用されるデータ即時リフレッシュ方法であって、該データ構造は、主要データ分割ブロックと複数の副次データ分割ブロックに分けられたデータブロックと、該副次データ分割ブロックにそれぞれ対応してそのデータを一時保存する複数の冗長分割ブロックを含んだ冗長ブロックと、該データブロックと前記冗長ブロックに接続され、該副次データ分割ブロックのデータが対応の前記冗長分割ブロックに一時保存されることを記録する少なくとも１つのバックアップデータを含んだ変換索引バッファ（ＴＬＢ）を含み、該バックアップデータは前記主要データ分割ブロックに別途に複製され、該方法は、
前記フラッシュメモリを初期化する段階と、
前記データブロックの前記主要データ分割ブロックから前記ＴＬＢの前記バックアップデータを読み出す段階と、
前記ＴＬＢの前記バックアップデータを前記冗長ブロック内の前記冗長分割ブロックに一時保存されたデータである一時保存データと比較し、特定の前記冗長分割ブロックの前記一時保存データが最後に書き込まれたデータであるかを判別する段階と、
上記特定の冗長分割ブロックの前記一時保存データが最後に書き込まれたデータであった場合に、前記ＴＬＢの前記バックアップデータを更新し、前記一時保存データを特定の前記冗長分割ブロックに対応する前記副次データ分割ブロックにスワッピングしてから、初期化を終了して前記フラッシュメモリの正常動作に戻す段階と、
上記特定の冗長分割ブロックの前記一時保存データが最後に書き込まれたデータではなかった場合に、初期化を終了して前記フラッシュメモリの正常動作に戻す段階とを含むことを特徴とするデータ即時リフレッシュ方法。
【請求項２】
前記方法は更に、
前記フラッシュメモリが正常に動作するうちにリフレッシュ指令を受信すると、前記冗長ブロック内のある前記冗長分割ブロックのデータを消去して空にする段階と、
前記データブロック内の指定された前記副次データ分割ブロックに保存されたデータを空いた前記冗長分割ブロックに移動する段階と、
前記データブロックにおける他の前記副次データ分割ブロックに保存されたデータを消去して空にする段階と、
前記冗長分割ブロックに一時保存されたデータを空いた前記副次データ分割ブロックに移動する段階とを含むことを特徴とする請求項１記載のデータ即時リフレッシュ方法。
【請求項３】
前記バックアップデータは前記データブロックの管理データとマッピングテーブルを含み、該マッピングテーブルでは複数の前記冗長分割ブロックと複数の前記副次データ分割ブロックとの対応関係が定められていることを特徴とする請求項１記載のデータ即時リフレッシュ方法。
【請求項４】
前記マッピングテーブルには各副次データ分割ブロックの論理アドレスと物理アドレスが含まれることを特徴とする請求項３記載のデータ即時リフレッシュ方法。
【請求項５】
前記複数の副次データ分割ブロックでは前記フラッシュメモリの外部から書き込まれたデータが保存されることを特徴とする請求項１記載のデータ即時リフレッシュ方法。
【請求項６】
前記冗長ブロックでは前記フラッシュメモリにおける各ページの状態メッセージが保存されることを特徴とする請求項１記載のデータ即時リフレッシュ方法。  
【請求項７】
前記状態メッセージは論理ブロックアドレス（ＬＢＡ）ブロックを含むことを特徴とする請求項６記載のデータ即時リフレッシュ方法。
【請求項８】
フラッシュメモリの内部データ構造に適用されるデータ即時リフレッシュ方法であって、該データ構造は、複数のデータ分割ブロックを含んだデータブロックと、該データ分割ブロックにそれぞれ対応してそのデータを一時保存する複数の冗長分割ブロックを含んだ冗長ブロックと、該データブロックと前記冗長ブロックに接続され、該データ分割ブロックのデータが対応の前記冗長分割ブロックに一時保存されることを記録する少なくとも１つのバックアップデータを含んだ変換索引バッファ（ＴＬＢ）を含み、該方法は、
前記フラッシュメモリが正常に動作するうちにリフレッシュ指令を受信すると、前記冗長ブロック内のある前記冗長分割ブロックのデータを消去して空にする段階と、
前記データブロック内の指定された前記データ分割ブロックに保存されたデータを空いた前記冗長分割ブロックに移動する段階と、
前記データブロックにおける他の前記データ分割ブロックに保存されたデータを消去して空にする段階と、
前記冗長分割ブロックに一時保存されたデータを空いた前記データ分割ブロックに移動する段階とを含むことを特徴とするデータ即時リフレッシュ方法。
【請求項９】
前記データブロックにはバックアップデータを記憶する主要データ分割ブロックが含まれることを特徴とする請求項８記載のデータ即時リフレッシュ方法。
【請求項１０】
前記バックアップデータは前記データブロックの管理データとマッピングテーブルを含み、該マッピングテーブルでは複数の前記冗長分割ブロックと複数の前記データ分割ブロックとの対応関係が定められていることを特徴とする請求項８記載のデータ即時リフレッシュ方法。
【請求項１１】
前記マッピングテーブルには各データ分割ブロックの論理アドレスと物理アドレスが含まれることを特徴とする請求項１０記載のデータ即時リフレッシュ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュメモリのデータ即時リフレッシュ方法に関し、特にフラッシュメモリの内部データ領域に用いられるデータ即時リフレッシュ方法に関する。
【背景技術】
【０００２】
記憶媒体に対する要望が高まるにつれ、電力供給がなくてもデータを記憶できるフラッシュメモリは脚光を浴びている。シングルスレッド書き換えのみ許容する従来のEEPROM（電気的に消去可能な読み出し専用メモリ）と比べて、フラッシュメモリはマルチスレッド書き換えが可能であって実行速度が速いので、従来のEEPROMに取って代わって市場の主流となっている。
【０００３】
フラッシュメモリはFAMOS（浮遊ゲート電子なだれ注入金属酸化膜半導体）を利用し、内部の容量結合で浮遊ゲートでの電荷移動を制御し、浮遊ゲートで電荷の移動により下層トランジスタの閾値電圧を決めることを可能にする。例えば、負電子を浮遊ゲートに注入すれば、浮遊ゲートの保存状態が１から０となり、負電子が浮遊ゲートから離れると、浮遊ゲートの保存状態が０から１となるように設定することができる。フラッシュメモリはこのようにデータを書き込み、消去、読み出す。
【０００４】
フラッシュメモリにはＮＯＲ型、ＮＡＮＤ型、ＡＮＤ型とＤｉＮＯＲ型がある。最も早く開発されたのはＮＯＲ型であるが、最も普及しているのはＮＡＮＤ型である。
【０００５】
ＮＯＲ型のフラッシュメモリは低動作電圧、高度のデータアクセス信頼性、ランダム読み出しなどの特長を有するが、ビットかバイトごとにデータを書き込むにもかかわらず、消去時はバイト単位でなくブロックごとに消去しなければならないため、消去・書き込みが遅い。また、このブロックも相当に大きいので、ＮＯＲ型はデータ記憶媒体としては好適でなく、プログラムコード（ＸＩＰ直接実行をサポートした場合）、BIOS（基本入出力システム）、またはファームウェアなど常時に更新されるデータの記憶に向いており、パソコン、携帯電話、ＰＤＡ、セットトップボックス（ＳＴＢ）などの携帯型電子装置のブートコートを記憶するメモリとして多用される。
【０００６】
ＮＡＮＤ型フラッシュメモリはページを単位としてデータをアクセスする。各ページは256または512バイトのユーザースペースと、８または１６バイトのスペアスペースを含む。スペアスペースには誤り訂正コード（ＥＥＣ）、メモリ破損標示、システムファイルが保存され、１ブロックは３２ページまたは６４ページからなる。ＮＡＮＤ型のブロックサイズはわずかＮＯＲ型の８分の１であり、データ消去時はブロックごとに行われ、ＮＯＲ型とのブロック消去周期比は10:1である。言い換えれば、ＮＡＮＤ型の消去時間を2msとすれば、ＮＯＲ型の消去時間は数百msになる。そのため、ＮＡＮＤ型はＮＯＲ型より書き込み／消去時間が短く、高密度・低コストで寿命が長い。しかし、ＮＡＮＤ型のI/Oインターフェイスは逐次読み出しのみ許容するため、プログラムコードの記憶媒体としては好適ではなく、メモリカードなどの大量記憶装置、及び携帯電話、ＭＰ３プレイヤー、ＤＭＰ（デジタルマルチメディアプレイヤー）でのマルチメディアファイル記憶装置として利用されることが多い。
【０００７】
しかし、ＮＡＮＤ型フラッシュメモリは製作時に不良ブロックが生じるだけでなく、複数回書き込み、消去、読み出しを実行した後にビットエラーも生じうる。したがって、従来のＮＡＮＤ型フラッシュメモリでは不良ブロック管理（ＢＢＭ）と、ビットエラーを自動的に検出・修正する誤り訂正コード（ＥＥＣ）を用いて、書き込み、消去、読み出し時に生じた不良ブロックを検出し、不良ブロックのデータを有効ブロックにコピーすることで、フラッシュメモリの信頼性を確保する。
【０００８】
しかし、上記ＢＢＭとＥＥＣを利用してもＮＡＮＤ型フラッシュメモリの記憶データの信頼性と安全性を万全に確保できない。なぜならば、従来のＮＡＮＤ型フラッシュメモリは容量結合で浮遊ゲート上の電荷移動を制御することでデータを読み出す／書き込むが、複数回読み出した後に、読み出し対象として選ばれなかったページで生成したチャネルホットキャリアは、浮遊ゲートを充電して微小な電位差を生じさせ、消去状態を１から０に変えることがありうるからである。また、浮遊ゲート自体の漏電により消去状態が０以外の値となる場合もある。いずれの場合においても読み出し障害（read disturb）が発生する。したがって、フラッシュメモリは数十万回読み出した後、読み出し障害が発生して記憶データが紛失することがありうる。この読み出し障害はフラッシュメモリの構造には影響しないが、発生したときにブロックをもう一度消去・書き込まなければならない。
【０００９】
したがって、読み出し障害によりデータがなくなるのを避けるため、ＮＡＮＤ型フラッシュメモリの内部データ領域の管理方法としてデータの即時リフレッシュ方法を開発することは重要な課題である。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明はフラッシュメモリの浮遊ゲートにおける電荷の問題によりデータがなくなるのを回避し、起動時のデータ回復時間を短縮することができ、フラッシュメモリの信頼性とデータの安全性を向上させるため、フラッシュメモリのデータ即時リフレッシュ方法を提供することを課題とする。
【課題を解決するための手段】
【００１１】
そこで、本発明者は従来の技術に見られる欠点に鑑みて鋭意研究を重ねた結果、下記の装置によって、本発明の課題が解決される点に着眼し、かかる知見に基づき本発明を完成させた。
【００１２】
請求項１に記載されるのはフラッシュメモリの内部データ構造に適用されるデータ即時リフレッシュ方法である。該データ構造は、主要データ分割ブロックと複数の副次データ分割ブロックに分けられたデータブロックと、該副次データ分割ブロックにそれぞれ対応してそのデータを一時保存する複数の冗長分割ブロックを含んだ冗長ブロックと、該データブロックと前記冗長ブロックに接続され、該副次データ分割ブロックのデータが対応の前記冗長分割ブロックに一時保存されることを記録する少なくとも１つのバックアップデータを含んだ変換索引バッファ（ＴＬＢ）を含む。該バックアップデータは前記主要データ分割ブロックに別途に複製される。該方法は、前記フラッシュメモリを初期化する段階と、前記データブロックの前記主要データ分割ブロックから前記ＴＬＢの前記バックアップデータを読み出す段階と、前記ＴＬＢの前記バックアップデータを前記冗長ブロック内の前記冗長分割ブロックに一時保存されたデータである一時保存データと比較し、特定の前記冗長分割ブロックの一時保存データが最後に書き込まれたデータであるかを判別する段階と、上記特定の冗長分割ブロックの前記一時保存データが最後に書き込まれたデータであった場合に、前記ＴＬＢの前記バックアップデータを更新し、前記一時保存データを特定の前記冗長分割ブロックに対応する前記副次データ分割ブロックにスワッピングしてから、初期化を終了して前記フラッシュメモリの正常動作に戻す段階と、上記特定の冗長分割ブロックの前記一時保存データが最後に書き込まれたデータではなかった場合に、初期化を終了して前記フラッシュメモリの正常動作に戻す段階とを含む。
【００１３】
請求項８に記載されるのはフラッシュメモリの内部データ構造に適用されるデータ即時リフレッシュ方法である。該データ構造は、複数のデータ分割ブロックを含んだデータブロックと、該データ分割ブロックにそれぞれ対応してそのデータを一時保存する複数の冗長分割ブロックを含んだ冗長ブロックと、該データブロックと前記冗長ブロックに接続され、該データ分割ブロックのデータが対応の前記冗長分割ブロックに一時保存されることを記録する少なくとも１つのバックアップデータを含んだ変換索引バッファ（ＴＬＢ）を含む。該方法は、前記フラッシュメモリが正常に動作するうちにリフレッシュ指令を受信すると、前記冗長ブロック内のある前記冗長分割ブロックのデータを消去して空にする段階と、前記データブロック内の指定された前記データ分割ブロックに保存されたデータを空いた前記冗長分割ブロックに移動する段階と、前記データブロックにおける他の前記データ分割ブロックに保存されたデータを消去して空にする段階と、前記冗長分割ブロックに一時保存されたデータを空いた前記データ分割ブロックに移動する段階とを含む。
【発明の効果】
【００１４】
本発明によるデータ構造とリフレッシュ方法は、フラッシュメモリの浮遊ゲートにおける電荷の問題によりデータがなくなるのを回避し、起動時のデータ回復時間を短縮することができ、フラッシュメモリの信頼性とデータの安全性を向上させる効果がある。
【発明を実施するための最良の形態】
【００１５】
図１Ａを参照する。図１Ａは本発明のデータ構造を示す説明図であって、このデータ構造はフラッシュメモリの内部データ領域に適用される。該フラッシュメモリはＮＯＲ型、ＮＡＮＤ型、ＡＮＤ型、またはＤｉＮＯＲ型が可能であるが、ここではＮＯＲ型インターフェイスを有するＮＡＮＤ型フラッシュメモリを例にして説明する。図１Ａに示すように、データブロック１０１には複数のデータ分割ブロック101a〜101mがあり、そのうち主要データ分割ブロック101aではデータブロック１０１の管理データとマッピングテーブルが記憶され、副次データ分割ブロック101b〜101mではフラッシュメモリに書き込まれたデータが記憶されている。
【００１６】
上記副次データ分割ブロック101b〜101mはそれぞれ６４のフルページを含み、各フルページには４つのパーティションページがある。図１Ｂに示すように、各ページ１０１０にはユーザーデータを記憶する512バイトのユーザースペースと、冗長データを記憶する16バイトのスペアスペースが含まれる。512バイトのユーザーデータはフラッシュメモリの外部から書き込まれたデータであり、16バイトの冗長データはフラッシュメモリの各ページの状態メッセージである。状態メッセージはフラッシュメモリと接続されたコントローラにデータの安全性を通報するものであって、状態（Ｓ）メッセージ、論理ブロックアドレス（ＬＢＡ）メッセージ、タグ（Ｔ）メッセージ、パリティー（Ｐ）メッセージ、ＣＲＣ（巡回冗長検査）コードメッセージなどの種類がある。
【００１７】
図１Ａに示すように、フラッシュメモリは更に、データブロック１０１の副次データ分割ブロック101b〜101mに結合される複数の冗長分割ブロック102a〜102nを含んだ冗長ブロック１０２を有する。冗長ブロック１０２はバッファとしてデータブロック１０１の副次データ分割ブロック101b〜101mに記憶されたデータを一時保存する。注意すべきは、冗長ブロック１０２の冗長分割ブロック102a〜102nはデータブロック１０１の主要データ分割ブロック101aには対応していない。例えば、容量1GBのフラッシュメモリでは、データブロック１０１のすべてのデータ分割ブロック101a〜101mと冗長ブロック１０２のすべての冗長分割ブロック102a〜102nは1024KBのみ占めており、フラッシュメモリ全体の容量にはさほど影響しない。
【００１８】
フラッシュメモリには更に、ＳＲＡＭ（静的ランダムアクセスメモリ）の中に変換索引バッファ（ＴＬＢ）１０３が設けられている。ＴＬＢ１０３はデータブロック１０１と冗長ブロック１０２に接続され、主要データ分割ブロック101aに対して各種の管理データとマッピングテーブルを提供する。マッピングテーブルではデータブロック１０１の副次データ分割ブロック101b〜101m（主要データ分割ブロック101a以外のもの）の論理アドレスと物理アドレスの関係が記憶され、冗長分割ブロック102a〜102nと副次データ分割ブロック101b〜101mの対応関係を定め、フラッシュメモリのデータ検索効率を向上させる機能がある。
【００１９】
フラッシュメモリの記憶データを複数回読み出した後、浮遊ゲートの電荷問題によりデータがなくなるのを避けるため、本発明では図２に示すようにデータを即時にリフレッシュする。例えば、電力供給の中断によりフラッシュメモリのデータブロック１０１においてある副次データ分割ブロック101dのデータがなくなった場合、それに対応する冗長分割ブロック102cにはデータがまだ残っている。この場合、図２に示す本発明のデータリフレッシュ方法で、限られた起動時間内にフラッシュメモリを初期化し（Ｓ２０）、その過程においてＴＬＢ１０３のマッピングテーブルのデータを変更し、スワッピング方式で起動時のデータ回復時間（詳しくは後述）を節減して、変更されたデータで他データの自動リフレッシュを行う（Ｓ２１）ことができる。
【００２０】
上記フラッシュメモリの初期化プロセスＳ２０には以下のステップがある。
ステップ２０１では、パソコン、携帯電話、ＰＤＡなどの電子装置の起動時にそのフラッシュメモリを初期化する。ここでいう起動はコールドブートまたはウォームブートである。
【００２１】
ステップ２０２では、データブロック１０１の主要データ分割ブロック101aに記憶されたＴＬＢ１０３のバックアップデータ（データブロック１０１の管理データとマッピングテーブルを含む）を読み出す。フラッシュメモリはＳＲＡＭの中にあり、ＴＬＢ１０３はキャッシュと同様に高速に読み出すことができるため、ステップ２０２の実行時間は長くない。
【００２２】
ステップ２０３では、上記ステップで読み取ったＴＬＢ１０３のマッピングテーブルを、冗長ブロック１０２内の冗長分割ブロック102a〜102nと逐一比較する。冗長ブロック１０２はバッファとしてデータブロック１０１の副次データ分割ブロック101b〜101mに記憶されたデータを一時保存するものであり、ＣＰＵで冗長ブロック１０２のある冗長分割ブロックのデータを読み出した後、その次の副次データ分割ブロックに記憶されたデータを該冗長分割ブロックに移動する。そうすると、ＣＰＵで次の副次データ分割ブロックのデータを読み出すときは、冗長ブロック１０２からデータを読み出せばよい。ＴＬＢ１０３のマッピングテーブルは主要データ分割ブロック101aのバックアップデータから取得したものであり、論理アドレスと物理アドレスの対応関係を含んでいる。冗長ブロック１０２ではデータブロック１０１のデータ分割ブロックの記憶データを一時保存し、この一時保存は逐一実行される。つまり、冗長ブロック１０２の冗長分割ブロック102bの一時保存データを読み出すたびに、その次の副次データ分割ブロック101dの記憶データを冗長ブロック１０２の冗長分割ブロック102cに移動する。この場合、電力供給の中断やフラッシュメモリの浮遊ゲートの電荷問題により、データブロック１０１の副次データ分割ブロック101dの記憶データがなくなったとすれば、冗長ブロック１０２の冗長分割ブロック102cには副次データ分割ブロック101dのデータが残っている。したがって、ＣＰＵでＴＬＢ１０３のマッピングテーブルと冗長ブロック１０２の各冗長分割ブロックを比較すると、冗長分割ブロック102cの後に何のデータも入ってこないから、ＴＬＢ１０３だけで冗長分割ブロック102cが最後に書き込まれたデータであると判別できる。
【００２３】
ステップS204では、ＴＬＢ１０３のマッピングテーブルを更新し、冗長分割ブロック102c内のデータをデータブロック１０１の副次データ分割ブロック101dにスワッピングする。この場合、ＴＬＢ１０３でマッピングテーブルから副次データ分割ブロック101dの元の論理アドレスと物理アドレスを除去して新しい論理アドレスと物理アドレスを書き込む。そうすればＴＬＢ１０３のヒット率を向上させることができる。ＴＬＢ１０３を更新した後、ステップS211で後続の処理を実行する。ただし、前記ステップS203において、冗長ブロック１０２の冗長分割ブロックのデータがＴＬＢ１０３のマッピングテーブルと一致し、すなわち冗長ブロック１０２の冗長分割ブロック102a〜102nの一時保存データがデータブロック１０１の副次データ分割ブロック101b〜101mの記憶データと一致し、換言するとデータブロック１０１の副次データ分割ブロック101b〜101mの記憶データが電力供給の中断やフラッシュメモリの浮遊ゲートの電荷問題の影響を受けずにまだ残っている場合では、ＴＬＢ１０３を更新せずにステップS211に進む。冗長ブロック１０２の各冗長分割ブロックの検索時間は80msであるため、スワッピング方式でデータブロック１０１を初期化することは、起動時のデータ回復時間を有効に短縮することができる。
【００２４】
データ自動リフレッシュプロセスS21には下記のステップがある。
ステップS211では、フラッシュメモリを前述のように初期化した後、外部データを読み込み、消去、書き込むなど正常な動作を実行する。フラッシュメモリに接続されたホストがアイドリング状態でデータをアクセスしていないときは、アプリケーションの需要に応じてフラッシュメモリにリフレッシュ指令（refresh command）を発信するかどうかを判断する。ステップS212において、フラッシュメモリでホストからのリフレッシュ指令を受信していない場合は、ステップS211で外部データを読み込み、消去、書き込むなど正常な動作を実行する。一方、ステップS212においてフラッシュメモリでホストからのリフレッシュ指令を受信すれば、ステップS213で後続の処理を行う。
【００２５】
ステップS213では、ホストからのリフレッシュ指令をフラッシュメモリで受信した後、自動リフレッシュを始める。この場合、冗長ブロック１０２の任意の１つの冗長分割ブロックの一時保存データを消去してそれを空にし、ステップS214でデータブロック１０１の任意の１つの副次データ分割ブロックの記憶データを、空にされた冗長分割ブロックに移動する。
【００２６】
ステップS215では、データブロック１０１のステップＳ２１４で記憶データを冗長分割ブロックに移動させた副次データ分割ブロック以外の任意の１つの副次データ分割ブロックの記憶データを消去してそれを空にする。ステップS216では、前記ステップS214の冗長ブロック１０２の一時保存データを、空にされた副次データ分割ブロックに移動する。最後にステップS217で自動リフレッシュを終了し、すなわちステップS211に戻ってフラッシュメモリで外部データを読み込み、消去、または書き込むなど正常な動作を実行する。ステップS21のリフレッシュ時間は約200msである。したがって、データブロック１０１からデータを複数回読み出した後に、浮遊ゲートの電荷問題により副次分割ブロックの記憶データがなくなることは回避できる。
【００２７】
以上はこの発明の好ましい実施例であって、この発明の実施の範囲を限定するものではない。よって、当業者のなし得る修正、もしくは変更であって、この発明の精神の下においてなされ、この発明に対して均等の効果を有するものは、いずれも本発明の特許請求の範囲に属するものとする。
【図面の簡単な説明】
【００２８】
【図１Ａ】本発明のデータ構造を示す説明図である。
【図１Ｂ】本発明のデータ構造における１ページの構成を示す説明図である。
【図２】本発明によるデータ即時リフレッシュ方法のフローチャートである。
【符号の説明】
【００２９】
１００  データブロック
１０１ａ  主要データ分割ブロック
101b〜101m  副次データ分割ブロック
１０２  冗長ブロック
102a〜102n  冗長分割ブロック
１０３  ＴＬＢ
１０１０  ページ
【図１Ａ】
0004801111.tif 000002
【図１Ｂ】
0004801111.tif 000003
【図２】
0004801111.tif 000004