(57)【要約】【課題】初期化時にアドレス変換テーブル、消去管理テーブルを高速に作成する間接アドレッシング型の不揮発性メモリ装置の制御方法を提供する。【解決手段】本発明の間接アドレッシング型の不揮発性メモリ装置の制御方法は、初期化時に、無効なデータが書き込まれており又は有効なデータが書き込まれているがどの論理アドレスにも関連付けられていない無効な物理ブロックと、消去済みのブロックと、を消去管理テーブルに消去済みブロックとして登録し、且つ１物理アドレスに複数の論理アドレスを割り当てた第１のアドレス変換テーブルを生成する登録ステップと、データ書き込み時に、消去管理テーブルから消去済みブロックを抽出し、消去済みブロックが本当に消去されているかを判定する判定ステップと、判定ステップで未消去であればブロックを消去する消去ステップと、消去ステップ後に、データを書き込む書き込みステップと、を有する。【選択図】        図５
2004240660.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理ブロックから成る不揮発性メモリと、１物理アドレスに複数の論理アドレスを割り当てた第１のアドレス変換テーブルと、消去済みのブロックを登録した消去管理テーブルと、を有し、
前記物理ブロックはデータを格納するデータ領域と、前記物理ブロックに書き込まれたデータが有効か否かを判別する情報を格納した冗長領域と、を有し、
前記第１のアドレス変換テーブルで指定された物理ブロックは、複数の論理アドレスに複数の物理アドレスを関連付けた第２のアドレス変換テーブルを有する、
物理アドレスと論理アドレスとが間接的に関連付けられた不揮発性メモリ装置の制御方法であって、
初期化時に、無効なデータが書き込まれており又は有効なデータが書き込まれているがどの論理アドレスにも関連付けられていない無効な物理ブロックと、消去済みのブロックと、を前記消去管理テーブルに消去済みブロックとして登録し、且つ前記第１のアドレス変換テーブルを生成する登録ステップと、
データ書き込み時に、前記消去管理テーブルから消去済みブロックを抽出し、前記消去済みブロックが本当に消去されているかを判定する判定ステップと、
前記判定ステップで未消去であれば前記ブロックを消去する消去ステップと、
前記消去ステップ後に、データを書き込む書き込みステップと、を有することを特徴とする不揮発性メモリ装置の制御方法。
【請求項２】
前記登録ステップは、
全物理ブロックの前記第２のアドレス変換テーブルが有効に存在することを判別可能な１つの固定ページを連続して読み出し、次の物理ブロックの固定ページを読み出している間に前回固定ページを読み出した前の物理ブロックの仮判別を行い、前の物理ブロックが前記第２のアドレス変換テーブルを有する有効な物理ブロックであると仮判別したならば、前記第１のアドレス変換テーブルに前の物理ブロックを仮登録する仮登録ステップと、
全物理ブロック検査後に、仮登録した物理ブロックについてのみ他の固定ページを読み出し、その物理ブロックを前記第１のアドレス変換テーブルに登録することが適切か否かを再判別し、その物理ブロックを登録することが適切でなければ仮登録を削除する仮登録削除ステップと、を更に有することを特徴とする請求項１に記載の不揮発性メモリ装置の制御方法。
【請求項３】
前記登録ステップは、
１つの論理アドレスに複数の物理ブロックが重複して関連付けられていた場合、重複した物理ブロックを予備テーブルに登録する予備テーブル登録ステップと、
前記仮登録ステップ後又は前記仮登録削除ステップ後に、前記予備テーブルに登録した物理ブロックを読み出し、重複した物理ブロックの中から適切な物理ブロックを選択し、前記第１のアドレス変換テーブルに登録する第２の登録ステップと、を更に有することを特徴とする請求項２に記載の不揮発性メモリ装置の制御方法。
【請求項４】
前記第２の登録ステップにおいて、重複した物理ブロックの中で、適切な物理ブロックとして選択されなかった物理ブロックの前記第２のアドレス変換テーブルに関連付けられたアドレステーブル無効化フラグを無効にし、初期化時にその物理ブロックを消去しないことを特徴とする請求項３に記載の不揮発性メモリ装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性半導体メモリシステムの制御方法に関し、特に不揮発性半導体メモリカードの制御方法に関する。
【０００２】
【従来の技術】
近年、音楽や映像データを扱う携帯情報機器（例えば、携帯型パーソナルコンピュータ、デジタルスチールカメラ、ＰＤＡ）の記憶装置として、フラッシュメモリ等の不揮発性メモリ装置が注目されている。
はじめに、不揮発性メモリ装置の構成について説明する。
図１は、不揮発性メモリ装置の構成を示すブロック図例である。図１において、１０１はホスト、１０２は不揮発性メモリ装置である。不揮発性メモリ装置１０２は、コントローラ１１１、アドレス変換テーブル１１２、消去管理テーブル１１３、ホストＩ／Ｆ部１１４、データバッファ１１５、メモリ制御部１１６、不揮発性メモリ１１７を有する。
【０００３】
不揮発性メモリ１１７の構成について、５１２ＭビットＮＡＮＤ型フラッシュメモリを例にとり説明する。
図２は、不揮発性メモリ装置１０２の不揮発性メモリ１１７（５１２ＭビットＮＡＮＤ型フラッシュメモリ）の構成図例である。１個のフラッシュメモリは、４０９６個のブロックにより構成されている。１ブロックは消去の基本単位である。１ブロックはさらに３２ページに分割される。１ページは読み出し及び書き込みの基本単位である。１ページの容量は５２８バイトである。５２８バイトのうち、５１２バイトはデータ領域、残り１６バイトは冗長領域である。データ領域はユーザが使用する領域であり、冗長領域は不揮発性メモリ装置１０２のメモリ制御部１１６が使用する領域である。
【０００４】
図１８は、不揮発性メモリ装置１０２の不揮発性メモリ１１７（直接型のアドレッシングシステム）の１物理ブロックの構成図例である。書き込み開始フラグ３０１、論理アドレス３０２及びアドレステーブル無効化フラグ３０３は最初のページの冗長領域に配置されている。書き込み終了フラグ３０５は最終ページの冗長領域に配置されている。論理アドレス３０２及びアドレステーブル無効化フラグ３０３は、図１８に示すページと異なるページに配置しても良い。これらのフラグ及びデータについては以下で説明する。
【０００５】
一般的にフラッシュメモリを用いた不揮発性メモリ記憶装置においては、ホスト１０１などの外部から指定される論理アドレスと、フラッシュメモリ内に配置される物理アドレスとは一致しない。一致させるとフラッシュメモリ内で不良が発生したブロックのアドレスが使用できず、アプリケーションに負担をかけたり、あるいは特定アドレスに書き込みが頻発するシステムでは、そのアドレスに該当するブロックが短期間で書き替え保証回数を上回り、短寿命になってしまうという不都合があるからである。
【０００６】
物理ブロックはそれ自身が割り当てられている（関連付けられている）論理アドレスを冗長領域の中（図１８の論理アドレス３０２）に記憶している。メモリ制御部１１６は、不揮発性メモリ装置１０２を装着したホスト１０１の電源が投入された時または不揮発性メモリ装置１０２がホストに挿入された時に、不揮発性メモリ１０２の冗長領域に書かれているすべての論理アドレス３０２を読み出す。なお、これらの初期テーブル作成及びホストからのコマンド解析等は、コントローラ１１１が行うケースがあるが、以降メモリ制御部１１６が処理を行うものとして説明する。メモリ制御部１１６は、論理アドレスと物理アドレスを変換するためのアドレス変換テーブル１１２を作成する。また同時にメモリ制御部１１６は、各ブロックが消去されているか否かを調べ、消去管理テーブル１１３を作成する。アドレス変換テーブル１１２及び消去管理テーブル１１３は、ＲＡＭ上に作成される。
【０００７】
メモリ制御部１１６は、データ読み出しコマンドがホスト１０１から不揮発性メモリ装置１０２に入力された時に、ホスト１０１から指定された論理アドレスに基づきアドレス変換テーブル１１２で物理アドレスを特定する。メモリ制御部１１６は、特定した物理ブロックにアクセスし、データを読み出す。
メモリ制御部１１６は、データ書き込みコマンドがホスト１０１から不揮発性メモリ装置１０２に入力された時に、消去管理テーブル１１３から消去済みブロックを抽出する。メモリ制御部１１６は、抽出されたブロックにデータを書き込み、データを書き込んだ物理ブロックをアドレス変換テーブル１１２に登録する。ホスト１０１から指定された論理アドレスがすでに登録されている場合は、データ書き込み処理は上書きになる。上書きの場合、メモリ制御部１１６は、アドレス変換テーブル１１２の旧物理ブロックを消去し、アドレス変換テーブル１１２にデータを書き込んだ新物理ブロックを登録する。書き込みでは物理ブロックの消去状態が変化するため、メモリ制御部１１６は、消去管理テーブル１１３の該当ブロックの情報を更新する。
【０００８】
上述のアドレス変換テーブル１１２においては、１論理ブロック（１論理アドレス）に対し１物理ブロック（１物理アドレス）を直接割り当てていた。この場合、不揮発性メモリ１１７の容量が大きくなることに比例してアドレス変換テーブル１１２のＲＡＭサイズも大きくなり、不揮発性メモリ装置１０２が高価になるという問題があった。
このためアドレス変換テーブルの１物理アドレス（「１次物理アドレス」と呼ぶ。）に複数（ｋ個）の論理ブロック（論理アドレス）を割り当て、その物理アドレスで指定される物理ブロックの冗長領域にそれらの複数の論理アドレスにそれぞれ関連付けられた複数の物理アドレス（「２次物理アドレス」と呼ぶ。）を格納したアドレステーブルを持たせる間接型のアドレッシングシステムが考えられている。
【０００９】
図３は、不揮発性メモリ装置１０２の不揮発性メモリ（間接型のアドレッシングシステム）の１物理ブロックの構成図例である。図３において、図１８と同一のブロックには同一の符号を付している。図３が図１８と異なる点は、２ページ目の冗長領域にアドレステーブル３０４を追加したことである。アドレステーブル３０４には、ｋ個（ｋは２以上の正整数）の論理ブロックにそれぞれ関連付けられたｋ個の物理ブロックのアドレス（２次物理アドレス）が書き込まれている。図３においては、１次物理アドレス（アドレステーブル３０４が書き込まれた物理ブロックのアドレス）は、アドレステーブル３０４にも、２次物理アドレスの１アドレスとして記載されている。アドレステーブル３０４に記載されたｋ個の物理アドレスは、ｋ個の連続する論理アドレスに、先頭から順番にそれぞれ関連付けられている。アドレステーブル３０４は、図３に示すページと異なるページに配置しても良い。それ以外の点で、図３は図１８と同様であるため説明を省略する。
図４は、不揮発性メモリ装置１０２におけるアドレス変換テーブル１１２、消去管理テーブル１１３及び不揮発性メモリ１１７の関係を示す図である。この例では、ｋ＝２、つまりアドレス変換テーブル１１２の１物理アドレスに２つの論理アドレスが割り当てられている。
【００１０】
メモリ制御部１１６は、データ読み出しコマンドがホスト１０１から不揮発性メモリ装置１０２に入力された時に、ホスト１０１から指定された論理アドレスに基づきアドレス変換テーブル１１２で１次物理アドレスを特定する。さらに、メモリ制御部１１６は、特定した１次物理ブロックの冗長領域のアドレステーブル３０４から本来の物理アドレス（ホスト１０１から指定された論理アドレスに関連付けられた物理アドレス）を特定する。メモリ制御部１１６は、特定した本来の物理ブロックにアクセスし、データを読み出す。またこの例では、目的のデータを得るために２回テーブルを参照しているが、２回以上テーブルを参照するシステムも可能である。段数が増えれば、アドレス変換テーブルのサイズを小さくすることができるが、テーブル異常で失うブロック数が多くなる欠点がある。
【００１１】
メモリ制御部１１６は、データ書き込みコマンドがホスト１０１から不揮発性メモリ装置１０２に入力された時に、始めに消去管理テーブル１１３から未記録の物理ブロックを検索する。メモリ制御部１１６は、アドレス変換テーブル１１２に登録されている物理ブロックのアドレステーブル３０４を読み出す。メモリ制御部１１６は、アドレステーブル３０４の２次物理アドレスの１アドレスをこれから書き込みを行う物理ブロックのアドレス（検索した未記録の物理ブロック）に置き換えて、更新されたアドレステーブル情報とし、データと合せて未記録の物理ブロックに書き込む。書き込みが終了したら、メモリ制御部１１６は新物理ブロックアドレスをアドレス変換テーブル１１２に登録する。メモリ制御部１１６は、旧テーブルを持つブロックのアドレステーブル無効化フラグを上書きにより無効マークする。なお無効化するのは冗長領域にあるアドレステーブルのみで、データが無効になるとは限らない。例えば旧アドレステーブル３０４を格納していた物理ブロックが関連付けられた論理アドレス以外の論理アドレス（アドレステーブル３０４に含まれる。）のデータが書き換えられる場合である。この場合、旧アドレステーブル３０４を格納していた物理ブロックは、新アドレステーブルからリンクされる。なおこの間接アドレッシングシステムにおいても書き込みあるいは消去が行われた場合、消去管理テーブル１１３の情報を更新するのは同様である。
【００１２】
また書き込みは常に正常に行われるとは限らない。書き込み、消去途中で電源オフ（カード抜き取り）等による中断が発生することについても考慮する必要がある。書き込み開始フラグ３０１は、書き込みを行う場合に先立ちマークされるものである。このため、書き込み開始フラグ３０１を検査することにより、そのブロックが消去済みか否かを判断できる。書き込み終了フラグ３０５は、そのブロックへの書き込みが完了した時に上書きによりマークされるものである。このため、書き込み終了フラグ３０５を検査することにより、そのブロックへの書き込みが中断したか否かを判断できる。
つまり消去済みブロックは、書き込み開始フラグ３０１及び書き込み終了フラグ３０５が共にマーク無である。書き込み完了したブロックは、書き込み開始フラグ３０１及び書き込み終了フラグ３０５が共にマーク有である。書き込みが中断した未完成のブロックは、書き込み開始フラグ３０１がマーク有、書き込み終了フラグ３０５がマーク無である。書き込みが中断した未完成のブロックのデータは使用しない。再利用するため消去を行い消去管理テーブルへ消去済みとして登録する。
【００１３】
次に、間接型のアドレッシングを有する不揮発性メモリを有する不揮発性メモリ装置において、従来の初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法の概要について説明する。
なお以下は、不揮発性メモリ消去時のレベルを１、マーク有の各フラグのレベルを０、また消去管理テーブル１１３のフラグは、消去済みを１、使用中を０として説明する。
最初にアドレス変換テーブル１１２及び消去管理テーブル１１３を初期化（詳細は後述）する。次に物理ブロックを順に全て検査を行い、テーブルを作成していく。アドレス変換テーブル１１２へは、書き込み終了フラグ３０５がマーク有で、アドレステーブル無効化フラグ３０３にマーク無のブロックを発見した場合、その冗長領域に書かれているアドレステーブル３０４の論理アドレスと同一の論理アドレス（アドレス変換テーブル１１２）の位置にその物理ブロックアドレスを登録する。消去管理テーブル１１３へは、書き込み開始フラグ３０１にマーク無のブロックを登録する（フラグを０とする。）。
【００１４】
なお不良ブロックは、アドレス変換テーブル１１２へ登録せず、消去管理テーブル１１３へは書き込み対象にならないよう未消去として登録する。書き込みが中断された未完成のブロックは、消去を行い消去済みブロックとして消去管理ブロックへ登録する。さらに書き込み中断のタイミングによっては、アドレス変換テーブル１１２の同一の論理アドレスに２つの物理ブロックが重複して関連付けられる（それぞれの冗長領域に格納されたアドレステーブル３０４が同一の論理アドレスに関連付けられる）可能性がある。この場合、どちらのアドレステーブルが正しいか判断を行い、選択した物理ブロックのアドレスをアドレス変換テーブルへ登録し、非選択のブロックはアドレステーブル無効化フラグにマークを行い（アドレステーブル３０４を無効化し）、有効データならそのままにし、無効データなら消去を行う。
【００１５】
この間接型アドレッシングのアドレス変換テーブル１１２を持つシステムでは、書き込みが完了しているが無効なブロックというものが存在する可能性がある。例えばアドレステーブルを持つブロックのアドレステーブルデータが異常になりリンクが失われた場合である。これは異常時の現象で、本来保持すべきデータが失われた不具合である。リンクが切れたブロックを放置しておくと、本来メモリ装置が持っている書き込み可能メモリ容量が永久に減少する不具合が発生する。しかし書き込み済みのブロックが有効か否かを判断するのは容易ではない。どのブロックのアドレステーブルからリンクされているかは全ブロックのアドレステーブルからリンクを検査しないと判明しないからである。
従って全物理ブロックを検査後、アドレス変換テーブルを使いリンク検査を行う。ここでリンクされていないブロックを抽出し、そのブロックの消去を行い、再利用可能にする必要がある。
【００１６】
次に、間接型アドレッシングの不揮発性メモリを有する不揮発性メモリ装置において、従来の初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法について２つの例を挙げて説明する。
図１９、図２０を用いて、従来例１の初期化時のテーブル作成方法について説明する。図１９は、従来例１の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャートである。図２０は、従来例１の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図である。図２０の下線のある部分が、各工程における操作を表している。
【００１７】
物理ブロックの状態を、消去済み、有効データ、無効データ、不良ブロックの４つに分類して説明する。
有効データには２種類ある。１つは、アドレステーブル無効化フラグ３０３が有効でアドレステーブル３０４を持つブロックである。もう１つは、アドレステーブル無効化フラグ３０３は無効であるが別ブロックのアドレステーブル無効化フラグ３０３が有効でその別ブロックのアドレステーブルからリンクされているブロック（データは有効）である。
無効データにも２種類ある。１つは、書き込み開始フラグはマーク有であるが書き込み終了フラグはマーク無のブロック（データ書き込み未完成のブロック）である。もう１つは、書き込み開始フラグ、書き込み終了フラグがともにマーク有のブロック（データ書き込み完成のブロック）だがリンクされず結果として使用されないブロックである。
【００１８】
図１９及び図２０において、不揮発性メモリ装置１０２を装着したホスト１０１の電源が投入された時または不揮発性メモリ装置１０２がホストに挿入された時に、ステップ１９０１でアドレス変換テーブル及び消去管理テーブルは初期化される。全メモリを大きくブロック分けし、その切り替え時にテーブル初期化を行うシステムもあるが、電源投入時の初期化と同じである。具体的には、不揮発性メモリ装置１０２はアドレス変換テーブル１１２の全てを未割り付けにし、消去管理テーブル１１３の全てに１（消去済）を設定する。
ステップ１９０２及び１９０３の工程では、リンクが切れた無効データブロックを抽出することが目的となる。
ステップ１９０２で不揮発性メモリ装置１０２は全物理ブロックサーチする。
具体的には、不揮発性メモリ装置１０２は、全物理ブロックの冗長領域にある論理アドレス３０２を読み出すことにより、アドレス変換テーブル１１２を作成し、消去管理テーブル１１３の消去済みでない全てのブロックに０（使用中）を設定する。アドレス変換テーブル１１２作成において、未完成ブロックやアドレス重複時には、選択判定及び無効化処理を行う。
ステップ１９０３で不揮発性メモリ装置１０２は全論理リンクサーチする。具体的には、不揮発性メモリ装置１０２は、全論理アドレスのリンクをたどり、有効データに対応する消去管理テーブル１１３のブロックに１（消去済）を設定する。これにより、消去管理テーブルで０（使用中）になっているブロックは、不良ブロック及び無効データブロックである。
【００１９】
ステップ１９０４で不揮発性メモリ装置１０２は消去管理テーブルを順にサーチし、消去管理テーブルが０（使用中）でかつ不良でないブロック（無効データブロック）を消去し、消去管理テーブル１１３のそのブロックに１（消去済）を設定する。
ステップ１９０５で不揮発性メモリ装置１０２は再度全論理リンクサーチする。具体的には、不揮発性メモリ装置１０２は、全論理アドレスのリンクをたどり、消去管理テーブル１１３の有効データに０（使用中）を設定する。これにより、アドレス変換テーブル１１２及び消去管理テーブル１１３は完成する。
【００２０】
図２１、図２２を用いて、従来例２の初期化時のテーブル作成方法について説明する。従来例２の作成方法は、全論理リンクサーチは１度ですむが、消去管理テーブルと同サイズのバッファテーブルをＲＡＭ上に必要とする。図２１は、従来例２の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャートである。図２２は、従来例２の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図である。図２２の下線のある部分が、各工程における操作を表している。
【００２１】
図２１及び図２２において、不揮発性メモリ装置１０２を装着したホスト１０１の電源が投入された時または不揮発性メモリ装置１０２がホストに挿入された時に、ステップ２１０１でアドレス変換テーブル及び消去管理テーブルは初期化される。具体的には、不揮発性メモリ装置１０２はアドレス変換テーブル１１２の全てを未割り付けにし、消去管理テーブル１１３及びバッファテーブルの全てのブロックに１（消去済）を設定する。
ステップ２１０２及び２１０３の工程では、消去管理テーブル１１３を作成することと、リンクが切れた無効データブロックを抽出するために消去済みブロックのテーブルをバッファテーブルに作成することとを同時に行う。
ステップ２１０２で不揮発性メモリ装置１０２は全物理ブロックサーチする。
具体的には、不揮発性メモリ装置１０２は、全物理ブロックの冗長領域にある論理アドレス３０２を読み出すことにより、アドレス変換テーブル１１２を作成し、消去管理テーブル１１３の不良のブロックに０（使用中）を設定し、バッファテーブルの消去済みでない全てのブロックに０（使用中）を設定する。アドレス変換テーブル１１２作成において、未完成ブロックやアドレス重複ブロックを発見した時には、選択判定及び無効化処理を行う。
【００２２】
ステップ２１０３で不揮発性メモリ装置１０２は全論理リンクサーチする。具体的には、不揮発性メモリ装置１０２は、全論理アドレスのリンクをたどり、有効データに対応する消去管理テーブル１１３のブロックに０（使用中）を設定する。これにより、消去管理テーブルで１（消去済）であり、バッファテーブルで０（使用中）になっているブロックは、無効データブロックであると判別できる。
ステップ２１０４で不揮発性メモリ装置１０２は消去管理テーブル、バッファテーブルを比較し、消去管理テーブルが１（消去済）でかつバッファテーブルが０（使用中）のブロック（無効データブロック）を消去し、消去管理テーブル１１３のそのブロックに１（消去済）を設定する。これにより、アドレス変換テーブル１１２及び消去管理テーブル１１３は完成する。
【００２３】
【特許文献１】
特開平１１−１１０２８３号公報
【００２４】
【発明が解決しようとする課題】
しかしながら、近年のフラッシュメモリ及び不揮発性メモリ記憶装置の大容量化に伴い、初期化時のアドレス変換テーブル、消去管理テーブル作成処理時間が増大している。テーブル作成処理の高速化を行うためには、不要ブロックの検索、消去処理が大きな障害となっている。
全物理ブロック検査を行い、その後全論理ブロックのリンクを検査するのは必要だが、不要ブロックを抽出するために２度の論理ブロック検査が必要となり初期化時間が増大する。もしくは消去管理テーブルと同サイズのバッファテーブルを使用できれば１度の検査で可能だが、そのＲＡＭ容量分の増加がコストアップの要因となる。
また不要ブロックの消去についても、消去時間は読出しやフラグのマーク（上書き）に比べて多くの時間が必要であり、初期化時間短縮の障害となっている。
本発明は、このような問題点に鑑みてなされたものであり、初期化時にアドレス変換テーブル、消去管理テーブルを高速に作成可能な間接アドレッシング型の不揮発性メモリ装置の制御方法を提供することを目的とする。
本発明は、小さなＲＡＭ容量で論理アドレス／物理アドレス変換を行う間接アドレッシング型の不揮発性メモリ装置の制御方法を提供することを目的とする。
【００２５】
【課題を解決するための手段】
上記課題を解決するため、本発明は下記の構成を有する。
請求項１に記載の発明は、複数の物理ブロックから成る不揮発性メモリと、１物理アドレスに複数の論理アドレスを割り当てた第１のアドレス変換テーブルと、消去済みのブロックを登録した消去管理テーブルと、を有し、前記物理ブロックはデータを格納するデータ領域と、前記物理ブロックに書き込まれたデータが有効か否かを判別する情報を格納した冗長領域と、を有し、前記第１のアドレス変換テーブルで指定された物理ブロックは、複数の論理アドレスに複数の物理アドレスを関連付けた第２のアドレス変換テーブルを有する、物理アドレスと論理アドレスとが間接的に関連付けられた不揮発性メモリ装置の制御方法であって、初期化時に、無効なデータが書き込まれており又は有効なデータが書き込まれているがどの論理アドレスにも関連付けられていない無効な物理ブロックと、消去済みのブロックと、を前記消去管理テーブルに消去済みブロックとして登録し、且つ前記第１のアドレス変換テーブルを生成する登録ステップと、データ書き込み時に、前記消去管理テーブルから消去済みブロックを抽出し、前記消去済みブロックが本当に消去されているかを判定する判定ステップと、前記判定ステップで未消去であれば前記ブロックを消去する消去ステップと、前記消去ステップ後に、データを書き込む書き込みステップと、を有することを特徴とする不揮発性メモリ装置の制御方法である。
【００２６】
請求項２に記載の発明は、前記登録ステップは、全物理ブロックの前記第２のアドレス変換テーブルが有効に存在することを判別可能な１つの固定ページを連続して読み出し、次の物理ブロックの固定ページを読み出している間に前回固定ページを読み出した前の物理ブロックの仮判別を行い、前の物理ブロックが前記第２のアドレス変換テーブルを有する有効な物理ブロックであると仮判別したならば、前記第１のアドレス変換テーブルに前の物理ブロックを仮登録する仮登録ステップと、全物理ブロック検査後に、仮登録した物理ブロックについてのみ他の固定ページを読み出し、その物理ブロックを前記第１のアドレス変換テーブルに登録することが適切か否かを再判別し、その物理ブロックを登録することが適切でなければ仮登録を削除する仮登録削除ステップと、を更に有することを特徴とする請求項１に記載の不揮発性メモリ装置の制御方法である。
【００２７】
請求項３に記載の発明は、前記登録ステップは、１つの論理アドレスに複数の物理ブロックが重複して関連付けられていた場合、重複した物理ブロックを予備テーブルに登録する予備テーブル登録ステップと、前記仮登録ステップ後又は前記仮登録削除ステップ後に、前記予備テーブルに登録した物理ブロックを読み出し、重複した物理ブロックの中から適切な物理ブロックを選択し、前記第１のアドレス変換テーブルに登録する第２の登録ステップと、を更に有することを特徴とする請求項２に記載の不揮発性メモリ装置の制御方法である。
【００２８】
請求項４に記載の発明は、前記第２の登録ステップにおいて、重複した物理ブロックの中で、適切な物理ブロックとして選択されなかった物理ブロックの前記第２のアドレス変換テーブルに関連付けられたアドレステーブル無効化フラグを無効にし、初期化時にその物理ブロックを消去しないことを特徴とする請求項３に記載の不揮発性メモリ装置の制御方法である。
【００２９】
本発明は、初期化時にアドレス変換テーブル、消去管理テーブルを高速に作成する間接アドレッシング型の不揮発性メモリ装置の制御方法を実現できるという作用を有する。
本発明は、小さなＲＡＭ容量で論理アドレス／物理アドレス変換を行う間接アドレッシング型の不揮発性メモリ装置の制御方法を実現できるという作用を有する。
【００３０】
【発明の実施の形態】
以下、本発明の実施をするための最良の形態を具体的に示した実施例について、図面とともに記載する。
【００３１】
《実施例１》
図１〜図１１を用いて、本発明の実施例１の不揮発性メモリ装置における初期化方法について説明する。
はじめに、実施例１の不揮発性メモリ装置の構成について説明する。
図１は、不揮発性メモリ装置の構成を示すブロック図である。図２は、不揮発性メモリ装置１０２の不揮発性メモリ１１７（５１２ＭビットＮＡＮＤ型フラッシュメモリ）の構成図である。図３は、不揮発性メモリ装置１０２の不揮発性メモリ（間接型アドレッシングシステム）の１物理ブロックの構成図である。図４は、不揮発性メモリ装置１０２におけるアドレス変換テーブル１１２、消去管理テーブル１１３及び不揮発性メモリ１１７の関係を示す図である。本発明の実施例１の不揮発性メモリ装置の構成（図１〜図４）については、従来例と同様であるため説明を省略する。
【００３２】
次に、実施例１の不揮発性メモリ装置における初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法の概要について説明する。
図５は、本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャートである。図６は、本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図である。
【００３３】
図５及び図６において、不揮発性メモリ装置１０２を装着したホスト１０１の電源が投入された時または不揮発性メモリ装置１０２がホストに挿入された時に、ステップ５０１でアドレス変換テーブル及び消去管理テーブルは初期化される（詳細は図７）。具体的には、不揮発性メモリ装置１０２はアドレス変換テーブル１１２の全てを未割り付けにし、消去管理テーブル１１３の全てに１（消去済）を設定する。
ステップ５０２で不揮発性メモリ装置１０２は全物理ブロックサーチする（詳細は図８、図９）。具体的には、不揮発性メモリ装置１０２は、全物理ブロックの冗長領域にある論理アドレス３０２を読み出すことにより、アドレス変換テーブル１１２を作成し、消去管理テーブル１１３の不良ブロックに０（使用中）を設定する。
ステップ５０３で不揮発性メモリ装置１０２は全論理リンクサーチする（詳細は図１０）。具体的には、不揮発性メモリ装置１０２は消去管理テーブル１１３の有効データに０（使用中）を設定する。消去済み、有効データ、無効データ、不良ブロックの定義は、従来例で説明した。
無効データは、消去管理テーブル１１３で１（消去済）として登録されている。無効データは、データ書き込み時には消去済みブロックとして扱われ、書き込みに使用される。
【００３４】
次に、実施例１の不揮発性メモリ装置における初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法の詳細について説明する。
図７〜図１０は、図５の詳細フローチャートである。
図７は、本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法のテーブル初期化処理（ステップ５０１）の詳細フローチャートである。図７において、ステップ７０１でメモリ制御部１１６はアドレス変換テーブル１１２を全て未割り付けにする。例えば、図１１のａ１〜ａ７・・・に１（未登録）を設定する。ステップ７０２でメモリ制御部１１６は消去管理テーブル１１３のフラグを全て消去済みにする。例えば、図１１のｂ１〜ｂ７・・・に未割り付けを表す数値（例えば全ビット”１”）を設定する。
【００３５】
図８は、本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理（ステップ５０２）の詳細フローチャートである。全物理ブロックサーチ処理（ステップ５０２）では、物理ブロックを順に全て検査することにより、アドレス変換テーブルを作成し、不良ブロックの消去管理テーブルに０（使用中）を設定する。
【００３６】
図８において、ステップ８０１で、メモリ制御部１１６は検査アドレスに先頭の物理アドレスを設定する。ステップ８０２で、メモリ制御部１１６は検査アドレスの物理ブロックの情報を読み出し、検査アドレスの物理ブロックが不良ブロックか否かを判断する。不良ブロックでない場合は、ステップ８０３に進み、メモリ制御部１１６は検査アドレスの物理ブロックの書き込み開始フラグ３０１がマーク有か否かを判断する。ステップ８０３で書き込み開始フラグ３０１がマーク有の場合は、ステップ８０４に進み、メモリ制御部１１６は検査アドレスの物理ブロックの書き込み終了フラグ３０５がマーク有か否かを判断する。ステップ８０４で書き込み終了フラグ３０５がマーク有の場合は、ステップ８０５に進み、メモリ制御部１１６は検査アドレスの物理ブロックのアドレステーブル無効化フラグ３０３が有効か否かを判断する。
【００３７】
ステップ８０５でアドレステーブル無効化フラグ３０３が有効の場合（書き込み開始フラグがマーク有かつ書き込み終了フラグがマーク有かつアドレステーブル無効化フラグが有効の場合）は、ステップ８０６に進み、メモリ制御部１１６は検査アドレスをアドレス変換テーブルに登録する（詳細は図９）。
ステップ８０２で不良ブロックの場合は、ステップ８０７に進み、メモリ制御部１１６は消去管理テーブルに０（使用中）を設定する。例えば、図１１の不揮発性メモリ１１７の不良ブロック（物理アドレス０００４）に対応する消去管理テーブルｂ５に０（使用中）を設定する。
なお、不良ブロックの具体的な判別方法は、本説明では特に行っていないが、不良ブロックアドレスを記録する方法や、不良ブロックの冗長領域に不良ブロックを意味するフラグを設けマークする方法がある。本フローチャートでは、各冗長領域の不良ブロックマークを調査するイメージで説明を行っている。
【００３８】
ステップ８０３で書き込み開始フラグがマーク無の場合、ステップ８０４で書き込み終了フラグがマーク無の場合、ステップ８０５でアドレステーブル無効化フラグが無効の場合、及びステップ８０６で検査アドレスを登録後及びステップ８０７で消去管理テーブルに設定後、それぞれステップ８０８に進み、メモリ制御部１１６は検査アドレスを更新する（検査アドレスに次の物理アドレスを設定する。）。ステップ８０９で、メモリ制御部１１６は全ての物理ブロックの検査が終了したか否かを判断する。全ての物理ブロックの検査が終了していない場合は、ステップ８０２に戻り、次の物理ブロックの処理へ進む。全ての物理ブロックの検査が終了した場合は、このフローチャートを終了する。
【００３９】
なお、本実施例の全物理ブロックサーチ処理（ステップ５０２）においては、アドレス変換テーブルに登録したブロック（有効データ）に対する消去管理テーブルの該当フラグは１（消去済）のままで、次の工程（全論理リンクサーチ処理（ステップ５０３））においてまとめて消去管理テーブルの該当フラグに０（使用中）を設定している。しかし、全物理ブロックサーチ処理（ステップ５０２）において消去管理テーブル１１３の該当フラグに０（使用中）を設定してもよい。
なお、不良ブロックを一括してアドレス管理しているシステムの場合においては、あらかじめ管理されている不良ブロックのアドレスの消去管理テーブルのフラグを０（使用中）にしておき、全物理ブロックサーチ処理（ステップ５０２）では消去管理テーブル１１３のフラグが０（使用中）であれば不良ブロックとしてその物理ブロックの検査をパスさせてもよい。
【００４０】
データの上書き中に電源が切れた等の理由により、１つの論理アドレスに関連付けられた２つ以上の物理アドレスが重複して存在している場合がある。重複している物理アドレスをアドレス変換テーブルに登録する際、両方の物理ブロックを比較する必要がある。また、重複状態を放置しておくと、データを消去してももう一方のデータが存在するため、ホストからみれば消去したはずの論理アドレスにデータが入っているという不具合が発生する。本実施例の検査アドレス登録処理（ステップ８０６）は上記の不具合を解決するものである。
【００４１】
図９は、本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法の検査アドレス登録処理（ステップ８０６）の詳細フローチャートである。ステップ９０１で、メモリ制御部１１６は検査アドレスがアドレス変換テーブル１１２にすでに登録済みの論理アドレスか否かを判断する。登録済みの論理アドレスの場合は、ステップ９０２に進み、メモリ制御部１１６は重複している両方の物理ブロックを比較し、いずれか１個の物理ブロックを選択する。選択手順や判断基準は本発明と関係ないため省略する。ステップ９０３で、メモリ制御部１１６は選択した物理ブロックアドレスをアドレス変換テーブルへ登録する。
ステップ９０４で、メモリ制御部１１６は非選択の物理ブロックのアドレステーブル無効化フラグ３０３を無効に設定し、このフローチャートを終了する。
【００４２】
例えば、図１１の不揮発性メモリ１１７の物理アドレス０００３、０００５のブロックの論理アドレスが重複しているとする。物理アドレス０００５のブロックが正しいデータであると判断した場合、アドレス変換テーブル１１２のデータａ２に０００５（選択ブロックの物理アドレス）を設定する。さらに、物理アドレス０００３（非選択ブロックの物理アドレス）のブロックのアドレステーブル無効化フラグ３０３を無効に設定する。
ステップ９０１で検査アドレスが未登録の論理アドレスの場合は、ステップ９０５に進み、メモリ制御部１１６は物理ブロックアドレスをアドレス変換テーブルへ登録し、このフローチャートを終了する。例えば、図１１のアドレス変換テーブル１１２のデータａ１に０００１を設定する。
【００４３】
図１０は、本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法の全論理リンクサーチ処理（ステップ５０３）の詳細フローチャートである。全論理リンクサーチ処理（ステップ５０３）では、論理リンクをすべて検査することにより、有効データの消去管理テーブルに０（使用中）を設定し、消去管理テーブルを完成する。
図１０において、ステップ１００１で、メモリ制御部１１６は検査アドレスにアドレス変換テーブル１１２の先頭の論理アドレスのデータを設定する。ステップ１００２で、メモリ制御部１１６はリンクアドレスに検査アドレスを設定する。ステップ１００３で、メモリ制御部１１６はリンクアドレスの消去管理テーブル１１３に０（使用中）を設定する。ステップ１００４で、メモリ制御部１１６は検査アドレスの物理ブロックの冗長領域のアドレステーブル３０４に他のリンクアドレスが登録されているか否かを判断する。
【００４４】
ステップ１００４で他のリンクアドレスが登録されている場合は、ステップ１００５に進む。ステップ１００５で、メモリ制御部１１６はリンクアドレスにアドレステーブル３０４に登録されている他のリンクアドレスを設定し、ステップ１００３に戻る。間接型アドレッシングテーブルは、１段だけでなく複数段にすることも考えられるが、いずれにせよ読出し可能な、リンクされているブロックは使用中として消去管理テーブルに０（使用中）を設定する。
例えば、図１１に示すように物理アドレス０００２のブロックは物理アドレス０００１のブロックにリンクしているとする。この場合、物理アドレス０００１のブロックに対応する消去管理テーブルｂ２だけでなく、物理アドレス０００２のブロックに対応する消去管理テーブルｂ３にも０（使用中）を設定する。
【００４５】
ステップ１００４で他のリンクアドレスが登録されていない場合（検査アドレスに対するリンクが全て検査終了した場合）は、ステップ１００６に進み、メモリ制御部１１６は検査アドレスを更新する（検査アドレスにアドレス変換テーブルの次の論理アドレスのデータを設定する。）。ステップ１００７で、メモリ制御部１１６は全ての論理ブロックの検査が終了したか否かを判断する。全ての論理ブロックの検査が終了していない場合は、ステップ１００２に戻り、次の論理ブロックの処理へ進む。全ての論理ブロックの検査が終了した場合は、このフローチャートを終了する。
【００４６】
図６に示すように、無効データブロックに対応する消去管理テーブルは１（消去済み）であり、無効データブロックは消去済みブロックと同じ扱いである。つまり書き込みがなされているにもかかわらず、書き込み可能として登録している。このまま書き込みを行えば上書きとなり、書き込みデータの不一致が発生、不良ブロックとして使用不可能領域となる。従って書き込み前にはそのブロックの書き込み開始フラグを一度読み出し、書き込みがされていない場合はそのまま書き込みを行い、書き込み済みであればそのブロックを消去してから書き込みを行う。
このように、書き込み前に必ず読み出し、場合によって消去処理が入ることになり書き込み速度の低下が懸念される。しかし、消去は電源瞬断や保持アドレスデータの異常といった異常状態時しか発生せず、定常的にはフラグ読み出し時間のみ増加する。読み出し時間は消去や書き込み時間に比較し格段に短いため、書き込み速度の低下は、初期化時の時間増大に比較し、システムとして小さな影響しかない。
【００４７】
実施例１によれば、初期化時に無効データブロックを消去せず消去済み扱いにし、書き込み前に判別して消去することにより、ＲＡＭ容量を増加することもなく初期化時間を短縮することが可能となる。
【００４８】
《実施例２》
実施例１の全物理ブロックサーチ処理（ステップ５０２）において、不揮発性メモリ装置はアドレス変換テーブル１１２に登録するブロックか否かを検査する。登録するための有効条件は、最初のページにある書き込み開始フラグ３０１がマーク有であること、同じくアドレステーブル無効化フラグ３０３が有効であること、更に最終ページにある書き込み終了フラグ３０５がマーク有であることである。厳密に言えば他にも、論理アドレス３０２が取り得るアドレス範囲に入っていること、アドレスのエラー訂正コードに対しエラーが出ていないこと等の条件が挙げられる。いずれにせよ、最初のページのフラグ３０１、３０３でアドレス変換テーブル１１２に登録しないことは判別できるケースがあるが、一般的には登録するためには最終ページの書き込み終了フラグ３０５のように複数ページを検査する必要がある。
【００４９】
冗長領域のデータを読み出す間に、並行して読み出したデータを判別し、処理を行うことは可能である。例えば、メモリ制御部１１６が冗長領域のデータを読み出した後、次のデータ読み出しをすぐに起動しておく。その間にコントローラ１１１が前回読み出したデータを判別し、アドレス変換テーブル１１２及び消去管理テーブル１１３への登録を行う。コントローラ１１１のソフトウェア処理が、冗長領域の読み出し時間内に終了することができれば、メモリ制御部１１６のメモリデータ読出し時間が全体の処理時間を決定することになる。
【００５０】
この方法での問題は、次に読み出すべきブロック、ページが、最初のページの内容を判別しないとわからないことである。つまり最初のページを読出した時、書き込み開始フラグ３０１がマークされていない時、あるいはアドレステーブル無効化フラグ３０３にマークされている時、アドレス変換テーブルに登録される可能性は無いので、次は次ブロックの最初のページを読み出すことになる。上記条件以外の時は検査アドレスはアドレス変換テーブル１１２に登録される可能性があるため、最終ページの書き込み終了フラグ３０５を検査する必要がある。
必ず最初のページと最終ページを交互に読むことにすれば、読み出し起動ページは決まる。しかし、間接型アドレッシングでアドレス変換テーブル１１２に登録されるブロックが全体の数分の１にしかならないシステムにおいては、このような方法によれば１ブロックに対し必ず２ページを読み出さなければならず、不要なページの読み出しが初期化時間を増大させる。本実施例の全物理ブロックサーチ処理は上記の不具合を解決するものである。
【００５１】
図１〜図７、図１０〜図１７を用いて、本発明の実施例２の不揮発性メモリ装置における初期化方法について説明する。
はじめに、実施例２の不揮発性メモリ装置の構成について説明する。
図１は、不揮発性メモリ装置の構成を示すブロック図である。図２は、不揮発性メモリ装置１０２の不揮発性メモリ１１７（５１２ＭビットＮＡＮＤ型フラッシュメモリ）の構成図である。図３は、不揮発性メモリ装置１０２の不揮発性メモリ（間接型アドレッシング）の１物理ブロックの構成図である。図４は、不揮発性メモリ装置１０２におけるアドレス変換テーブル１１２、消去管理テーブル１１３及び不揮発性メモリ１１７の関係を示す図である。本発明の実施例２の不揮発性メモリ装置の構成（図１〜図４）については、従来例と同様であるため説明を省略する。
【００５２】
次に、実施例２の不揮発性メモリ装置における初期化時のアドレス変換テーブル１１２及び消去管理テーブル１１３の作成方法の概要について説明する。
図５は、本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャートである。図６は、本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図である。本発明の実施例２の不揮発性メモリ装置の初期化方法の概要（図５、図６）については、実施例１と同様であるため説明を省略する。
【００５３】
次に、実施例２の不揮発性メモリ装置における初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法の詳細について説明する。
図７、図１０、図１２〜図１４、図１６、図１７は、図５の詳細フローチャートである。本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成処理のテーブル初期化処理（図７）については、実施例１と同様であるため説明を省略する。
図１２は、本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理（ステップ５０２）の詳細フローチャート１である。図１３は、本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理（ステップ５０２）の詳細フローチャート２である。全物理ブロックサーチ処理（ステップ５０２）では、物理ブロックを順に全て検査することにより、アドレス変換テーブル１１２を作成し、不良ブロックの消去管理テーブル１１３に０（使用中）を設定する。
【００５４】
図１２において、ステップ１２０１で、メモリ制御部１１６は検査アドレスに先頭の物理アドレスを設定する（初期値ｉ＝０）。ステップ１２０２で、メモリ制御部１１６は検査アドレス（ｉ＝０）の物理ブロックの最初のページを読み出す。ステップ１２０３で、メモリ制御部１１６は検査アドレスを更新する（検査アドレスに次の物理アドレスを設定する。）（ｉ＝ｉ＋１）。ステップ１２０４で、メモリ制御部１１６は検査アドレス（ｉ）の物理ブロックの最初のページを読み出す。ステップ１２０５でメモリ制御部１１６は最初のページの情報のみで判断し、書き込み開始フラグ３０１がマーク有であり且つアドレステーブル無効化フラグ３０３が有効であれば、前回の検査アドレス（ｉ−１）をアドレス変換テーブルに仮登録する（詳細は図１４）。ステップ１２０４とステップ１２０５の処理を並行して行う。ステップ１２０６で、メモリ制御部１１６は全ての物理ブロックの検査が終了したか否かを判断する。全ての物理ブロックの検査が終了していない場合は、ステップ１２０３に戻り、次の物理ブロックの処理へ進む（メモリ制御部１１６は連続して最初のページを読み出す。）。全ての物理ブロックの検査が終了した場合は、このフローチャートを終了する。
【００５５】
図１３において、ステップ１３０１で、メモリ制御部１１６は検査アドレスにアドレス変換テーブルの仮登録された先頭（ｊ＝０）のデータを設定する。ステップ１３０２で、メモリ制御部１１６は検査アドレス（アドレス変換テーブルの仮登録された先頭（ｊ＝０）のデータ）の物理ブロックの最終ページを読み出す。ステップ１３０３で、メモリ制御部１１６は検査アドレスを更新する（検査アドレスにアドレス変換テーブルの仮登録された次（ｊ（＝ｊ＋１）番目）のデータを設定する。）。
【００５６】
ステップ１３０４で、メモリ制御部１１６は検査アドレス（アドレス変換テーブルのｊ番目のデータ）の物理ブロックの最終ページを読み出す。ステップ１３０５でメモリ制御部１１６は最終ページの情報（書き込み終了フラグ３０５）で判断し、もし書き込み終了フラグ３０５がマークされていなければ、前回の検査アドレス（アドレス変換テーブルの仮登録された（ｊ−１）番目のデータ）のアドレス変換テーブルへの仮登録を取り消し、未登録に戻す（詳細は図１６）。ステップ１３０４とステップ１３０５の処理を並行して行う。
ステップ１３０６で、メモリ制御部１１６は全ての仮登録ブロックの検査が終了したか否かを判断する。全ての仮登録ブロックの検査が終了していない場合は、ステップ１３０３に戻り、次の仮登録ブロックの処理へ進む。全ての仮登録ブロックの検査が終了した場合は、ステップ１３０７に進み、予備テーブルの判定を行い（詳細は図１７）、このフローチャートを終了する。
【００５７】
データの上書き中に電源が切れた等の理由により、１つの論理アドレスに関連付けられた２つ以上の物理アドレスが重複して存在している場合がある。最初のページの情報のみで判断しアドレス変換テーブルに仮登録しているが、重複している物理アドレスをアドレス変換テーブルに登録する際、いずれの物理ブロックを選択するかについて、両方の物理ブロックを比較する必要がある。まず最終ページを読み出し、書き込み完了したブロックか否か判定が必要である。両ブロックとも完成されていれば（書き込み終了フラグ３０５がマークされていれば）、さらに別ページ、別データ等を判別に用い、最終的にどちらかを選択する。この選択方法については本説明では省略する。
しかし、重複に気がついた時には、ハードウェアは次ブロックの最初のページの読出しを行っており、これを中断し、最終ページ他を読出しすれば、その時間だけロスが発生する。本実施例の仮登録処理及び予備テーブル判定処理は上記の不具合を解決するものである。
【００５８】
図１４は、本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の検査アドレス仮登録処理（ステップ１２０５）の詳細フローチャートである。ステップ１４０１で、メモリ制御部１１６は前回の検査アドレス（ｉ−１）の物理ブロックの書き込み開始フラグ３０１がマーク有か否かを判断する。ステップ１４０１で書き込み開始フラグ３０１がマーク有の場合は、ステップ１４０２に進み、メモリ制御部１１６は前回の検査アドレス（ｉ−１）の物理ブロックのアドレステーブル無効化フラグ３０３が有効か否かを判断する。ステップ１４０２でアドレステーブル無効化フラグ３０３が有効の場合（書き込み開始フラグ３０１がマーク有かつアドレステーブル無効化フラグ３０３が有効の場合）は、ステップ１４０３に進み、メモリ制御部１１６はアドレス変換テーブル１１２にすでに登録済みの論理アドレスか否かを判断する。未登録の論理アドレスの場合は、ステップ１４０４に進み、メモリ制御部１１６は物理ブロックアドレスをアドレス変換テーブル１１２に登録し、このフローチャートを終了する。
【００５９】
ステップ１４０３で登録済みの論理アドレスの場合は、ステップ１４０５に進み、メモリ制御部１１６は重複したアドレス変換テーブルのアドレス及び登録する物理ブロックアドレスをＲＡＭ上の予備テーブル（図１５）へ登録し、このフローチャートを終了する。例えば、図１１の不揮発性メモリ１１７の物理アドレス０００３、０００５のブロックの論理アドレスが重複しているとする。図１５に示すように先に処理された物理アドレス０００３がアドレス変換テーブルに設定され、後に処理された物理アドレス０００５が予備テーブルに設定される。
【００６０】
図１６は、本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の仮登録削除処理（ステップ１３０５）の詳細フローチャートである。ステップ１６０１で、メモリ制御部１１６は前回の検査アドレス（ｉ−１）の物理ブロックの書き込み終了フラグ３０５がマーク有か否かを判断する。ステップ１６０１で書き込み終了フラグ３０５がマーク無の場合は、ステップ１６０２に進み、メモリ制御部１１６は物理ブロックアドレスのアドレス変換テーブル１１２への仮登録を取り消し、未登録に戻す。ステップ１６０３で、メモリ制御部１１６は前回の検査アドレス（ｉ−１）の物理ブロックのアドレステーブル無効化フラグ３０３を無効に設定し、このフローチャートを終了する。このブロックは書き込み終了フラグ３０５がマーク無のため、有効になることはありえない。
しかし、初期化の度に仮登録と仮登録削除を行ってしまうため、アドレステーブル無効化フラグ３０３を無効にする。ステップ１６０１で書き込み終了フラグ３０５がマーク有の場合は、このフローチャートを終了する。
【００６１】
図１７は、本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の予備テーブル判定処理（ステップ１３０７）の詳細フローチャートである。ステップ１７０１で、メモリ制御部１１６は予備テーブルを読み出す。
ステップ１７０２で、重複している両方の物理ブロックを比較し、いずれか１個の物理ブロックを選択する。選択手順や判断基準は本発明と関係ないため省略する。ステップ１７０３で、メモリ制御部１１６は選択した物理ブロックアドレスをアドレス変換テーブル１１２へ登録する。ステップ１７０４で、メモリ制御部１１６は非選択の物理ブロックのアドレステーブル無効化フラグ３０３を無効に設定し、このフローチャートを終了する。
【００６２】
例えば、図１５に示すように予備テーブルに論理アドレス２、データ０００５が登録されているとする。この場合、アドレス変換テーブルから同一の論理アドレス（２）に関連付けられているデータ（０００３）を抽出する。物理アドレス０００３、０００５のブロックを比較し、物理アドレス０００５のブロックが正しいデータであると判断した場合、アドレス変換テーブル１１２のデータａ２に０００５（選択ブロックの物理アドレス）を設定する。さらに、物理アドレス０００３（非選択ブロックの物理アドレス）のブロックのアドレステーブル無効化フラグ３０３を無効に設定する。
【００６３】
本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成処理の全論理リンクサーチ処理（ステップ５０３。図１０）については、実施例１と同様であるため説明を省略する。
本発明の実施例２の不揮発性メモリ装置における書き込み前の処理についても、実施例１と同様であるため説明を省略する。
【００６４】
予備テーブル作成のために必要なＲＡＭ容量が増加する。しかし、通常状態では書き込みが中断した場合、１組のテーブルしか重複しない。さらに、１度初期化するとアドレステーブル無効化フラグ３０３がマークされ次回からは解消されるため、重複アドレスは蓄積しない。よって、必要なＲＡＭ容量の増加は問題になる範囲ではない。
上記実施例では、フラグを１ビットで１もしくは０で表わしたが、極性はフラッシュの消去レベル（実施例では１）や割付け方法により変更可能である。複数ビットを使用し、多数決処理を行って判定するといった手段も可能である。また冗長領域におけるフラグやアドレスの配置を最初のページと最終ページとしたが、他のページに置換えても同様の効果を上げることができる。また２ページだけでなく３ページ以上の場合も応用可能である。
【００６５】
実施例２によれば、必要最小限のページのみ読み出し、さらに読み出しの間に判定処理を並行して行うことにより、初期化における全物理ブロックサーチ時間を短縮することが可能となる。
実施例２によれば、予備テーブルを設けることにより、初期化における全物理ブロックサーチ中に処理を中断することがなくなり、全物理ブロックサーチ時間を短縮することが可能となる。
実施例２によれば、未完成ブロックのアドレステーブル無効化フラグにマークを行うことにより、次回から最初のページの検査時に仮登録されなくなり、全物理ブロックサーチ後の判定も不要となり、予備テーブルのＲＡＭ容量増加、及び初期化時間の増加を防ぐことができる。
実施例２によれば、実施例１と同様に初期化時に無効データブロックを消去せず、書き込み前に判別して消去することにより、初期化時間を短縮することが可能となる。
【００６６】
【発明の効果】
本発明によれば、初期化時にアドレス変換テーブル、消去管理テーブルを高速に作成する間接アドレッシング型の不揮発性メモリ装置の制御方法を実現できるという有利な効果が得られる。
本発明によれば、小さなＲＡＭ容量で論理アドレス／物理アドレス変換を行う間接アドレッシング型の不揮発性メモリ装置の制御方法を実現できるという有利な効果が得られる。
【図面の簡単な説明】
【図１】従来例及び本発明の実施例の不揮発性メモリ装置の構成を示すブロック図
【図２】従来例及び本発明の実施例の不揮発性メモリ装置の不揮発性メモリ（５１２ＭビットＮＡＮＤ型フラッシュメモリ）の構成図
【図３】従来例及び本発明の実施例の不揮発性メモリ装置の不揮発性メモリ（間接型アドレッシング）の１物理ブロックの構成図
【図４】従来例及び本発明の実施例の不揮発性メモリ装置におけるアドレス変換テーブル、消去管理テーブル及び不揮発性メモリの関係を示す図（初期化後）
【図５】本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャート
【図６】本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図
【図７】本発明の実施例１、２の不揮発性メモリ装置における初期化時のテーブル作成方法のテーブル初期化処理（ステップ５０１）の詳細フローチャート
【図８】本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理（ステップ５０２）の詳細フローチャート
【図９】本発明の実施例１の不揮発性メモリ装置における初期化時のテーブル作成方法の検査アドレス登録処理（ステップ８０６）の詳細フローチャート
【図１０】本発明の実施例１、２の不揮発性メモリ装置における初期化時のテーブル作成方法の全論理リンクサーチ処理（ステップ５０３）の詳細フローチャート
【図１１】不揮発性メモリ装置におけるアドレス変換テーブル、消去管理テーブル及び不揮発性メモリの関係を示す図（初期化中）
【図１２】本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理（ステップ５０２）の詳細フローチャート１
【図１３】本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理（ステップ５０２）の詳細フローチャート２
【図１４】本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の検査アドレス仮登録処理（ステップ１２０５）の詳細フローチャート
【図１５】本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法のアドレス変換テーブル、予備テーブルを示す図
【図１６】本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の仮登録削除処理（ステップ１３０５）の詳細フローチャート
【図１７】本発明の実施例２の不揮発性メモリ装置における初期化時のテーブル作成方法の予備テーブル判定処理（ステップ１３０７）の詳細フローチャート
【図１８】従来例の不揮発性メモリ装置の不揮発性メモリ（直接型アドレッシング）の１物理ブロックの構成図
【図１９】従来例１の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャート
【図２０】従来例１の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図
【図２１】従来例２の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャート
【図２２】従来例２の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図
【符号の説明】
１０１      ホスト
１０２      不揮発性メモリ装置
１１１      コントローラ
１１２      アドレス変換テーブル
１１３      消去管理テーブル
１１４      ホストＩ／Ｆ部
１１５      データバッファ
１１６      メモリ制御部
１１７      不揮発性メモリ
３０１      書き込み開始フラグ
３０２      論理アドレス
３０３      アドレステーブル無効化フラグ
３０４      アドレステーブル
３０５      書き込み終了フラグ
【図１】
2004240660.tif 000003
【図２】
2004240660.tif 000004
【図３】
2004240660.tif 000005
【図４】
2004240660.tif 000006
【図５】
2004240660.tif 000007
【図６】
2004240660.tif 000008
【図７】
2004240660.tif 000009
【図８】
2004240660.tif 000010
【図９】
2004240660.tif 000011
【図１０】
2004240660.tif 000012
【図１１】
2004240660.tif 000013
【図１２】
2004240660.tif 000014
【図１３】
2004240660.tif 000015
【図１４】
2004240660.tif 000016
【図１５】
2004240660.tif 000017
【図１６】
2004240660.tif 000018
【図１７】
2004240660.tif 000019
【図１８】
2004240660.tif 000020
【図１９】
2004240660.tif 000021
【図２０】
2004240660.tif 000022
【図２１】
2004240660.tif 000023
【図２２】
2004240660.tif 000024