(57)【要約】 【課題】  書き換え処理中の電源遮断によるデータ消失を抑制し、ディプリートチェックに要する時間を短縮する。【解決手段】  書き換え可能な不揮発性メモリ（２）とカードコントローラ（５）とを有し、不揮発性メモリは、論理アドレスに対応される物理アドレス領域（２３）と退避領域（２２）とを備え、カードコントローラは、所要の論理アドレスに対するデータの書き換え指示に応答してその論理アドレスに対応される所定の物理アドレス領域のデータを退避領域にバックアップした後当該物理アドレス領域の書き換えを行い、当該物理アドレス領域の書き換えが不完全であったときは前記退避領域のバックアップデータによって当該物理アドレス領域を書き換えるバックアップデータの書き戻しを行なう。データバックアップにより電源遮断によるデータ消失を抑制でき、ディプリートチェックは退避領域と物理アドレス領域の２個所に対して実施すればよい。【選択図】        図１
2005258851.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き換え可能な不揮発性メモリとメモリ制御及び外部インタフェース制御を行なうカードコントローラとを有し、
前記不揮発性メモリは、不揮発性記憶領域として論理アドレスに対応される物理アドレス領域と物理アドレス領域の退避に用いられる退避領域とを備えた不揮発性メモリ部を有し、
前記カードコントローラは、所要の論理アドレスに対するデータの書き換え指示に応答してその論理アドレスに対応される所定の物理アドレス領域のデータを前記退避領域にバックアップした後当該物理アドレス領域の書き換えを行い、当該物理アドレス領域の書き換えが不完全であったときは前記退避領域のバックアップデータによって当該物理アドレス領域への書き戻しを行なう、メモリカード。
【請求項２】
前記物理アドレス領域の書き換え不完全とは、電源遮断による物理アドレス領域に割り当てられているメモリセルのしきい値電圧がディプリート状態となっていることを意味する、請求項１記載のメモリカード。
【請求項３】
前記物理アドレス領域の書き換え不完全とは、物理アドレス領域における正当な書き込みデータ不存在を意味する、請求項１記載のメモリカード。
【請求項４】
前記不揮発性記憶領域として、論理アドレスと物理アドレスの対応テーブルを有し、
前記物理アドレス領域と退避領域は夫々データ領域とデータ領域の管理領域とを有し、
前記管理領域は対応するデータ領域が保有するデータの論理アドレスを保持する、請求項１記載のメモリカード。
【請求項５】
前記管理領域は更に、対応するデータ領域が保持するデータの有効性を示すためのフラグ情報を保持する、請求項４記載のメモリカード。
【請求項６】
前記データの書き換えは前記不揮発性記憶領域に対する消去処理と書き込み処理によって行われ、
前記物理アドレス領域と退避領域は一括消去可能な消去処理単位とされ、消去処理単位は書き込みデータ単位の複数倍の大きさを有し、
前記フラグ情報は、前記書き込みデータ単位毎にそのデータの有効性を示すことができる複数ビットを有する、請求項５記載のメモリカード。
【請求項７】
前記カードコントローラは、前記不揮発性記憶領域に対する書き換えにおいて前記消去処理単位のデータサイズよりも書き換えに係る書込みデータサイズが小さいとき、前記書き込み処理において前記消去単位に対して書き換えに係る書込みデータが与えられない記憶領域は消去状態に維持し、前記消去状態に維持される前憶領域の書き換え前のデータを退避領域上で有効に維持する、請求項６記載のメモリカード。
【請求項８】
前記カードコントローラは、前記不揮発性記憶領域に対する書き換えにおいて前記消去処理単位のデータサイズよりも書き換えに係る書込みデータサイズが小さいデータの書き込み処理後に、別の物理アドレス領域の書き換えを行なうとき、退避領域が既に保持する有効なバックアップデータを書き戻す処理を行なった後に、当該次の書き込み物理アドレスのデータを退避領域にバックアップする、請求項７記載のメモリカード。
【請求項９】
前記カードコントローラは、所要の論理アドレスに対するデータの読み出し指示に応答してその論理アドレスに対応される所定の物理アドレス領域の有効性が確認できないとき、前記退避領域がその論理アドレスのデータを保有することを確認して、当該退避領域のデータを外部に出力する、請求項５記載のメモリカード。
【請求項１０】
前記物理アドレス領域の書き換えが不完全であったときに行う前記退避領域から当該物理アドレス領域へのバックアップデータの書き戻しは、パワーオンリセットに応答して可能にされる、請求項１記載のメモリカード。
【請求項１１】
前記物理アドレス領域の書き換えが不完全であったときに行う前記退避領域から当該物理アドレス領域へのバックアップデータの書き戻しは、ディプリートチェックコマンドの実行結果に応答して可能にされる、請求項２記載のメモリカード。
【請求項１２】
前記不揮発性メモリは、前記不揮発性メモリ部とこれに対応する揮発性バッファ部をそれぞれ複数組有し、前記不揮発性メモリ部の消去単位は書き込み単位の複数倍であり、それぞれの揮発性バッファ部は前記書き込み単位の記憶容量を有し、
前記不揮発性メモリは、前記カードコントローラから与えられる記憶情報の書換え動作指示に対して、書換え対象の不揮発性メモリ部及びそれと異なる不揮発性メモリ部の双方の揮発性バッファ部に書換え対象とされる物理アドレス領域の記憶データを一時的に格納し、前記カードコントローラは、前記揮発性バッファ部に一時的に格納されたデータを、それぞれの揮発性バッファ部に対応する不揮発性メモリ部の退避領域に書込み制御する、請求項６記載のメモリカード。
【請求項１３】
電気的に書き換え可能な不揮発性メモリとメモリ制御及び外部インタフェース制御を行なうカードコントローラとを有し、
前記不揮発性メモリは、不揮発性記憶領域として論理アドレスに対応される物理アドレス領域と物理アドレス領域の退避に用いられる退避領域とを備えた不揮発性メモリ部を有し、
前記カードコントローラは、所定のタイミングで前記退避領域が保有するデータの正当性を確認したときその退避領域にバックアップされているデータに対応される物理アドレス領域が保有するデータの正当性を判断し、不当であることを認識したときは前記退避領域のバックアップデータによって当該物理アドレス領域への書き戻しを行なう、ことを特徴とするメモリカード。
【請求項１４】
前記退避領域が保有するデータの正当性とは、前記退避領域における有効なバックアップデータの不存在を意味する、請求項１３記載のメモリカード。
【請求項１５】
前記物理アドレス領域が保有するデータの不当性を認識したとき行なう前記退避領域から当該物理アドレス領域へのバックアップデータの書き戻しは、パワーオンリセットに応答して可能にされる、請求項１３記載のメモリカード。
【請求項１６】
前記物理アドレス領域が保有するデータの不当性を認識したとき行なう前記退避領域から当該物理アドレス領域へのバックアップデータの書き戻しは、ディプリートチェックコマンドの実行結果に応答して可能にされる、請求項１３記載のメモリカード。
【請求項１７】
前記カードコントローラは、所要の論理アドレスに対するデータの書き換え指示に応答してその論理アドレスに対応される所定の物理アドレス領域のデータを前記退避領域にバックアップした後当該物理アドレス領域の書き換えを行う、請求項１３記載のメモリカード。
【請求項１８】
前記不揮発性記憶領域として、論理アドレスと物理アドレスの対応テーブルを有し、
前記物理アドレス領域と退避領域は夫々データ領域とデータ領域の管理領域とを有し、
前記管理領域は対応するデータ領域が保有するデータの論理アドレスを保持する、請求項１７記載のメモリカード。
【請求項１９】
前記管理領域は更に、対応するデータ領域が保持するデータの有効性を示すためのフラグ情報を保持する、請求項１８記載のメモリカード。
【請求項２０】
前記データの書き換えは前記不揮発性記憶領域に対する消去処理と書き込み処理によって行われ、
前記物理アドレス領域と退避領域は一括消去可能な消去処理単位とされ、消去処理単位は書き込みデータ単位の複数倍の大きさを有し、
前記フラグ情報は、前記書き込みデータ単位毎にそのデータの有効性を示すことができる複数ビットを有する、請求項１９記載のメモリカード。
【請求項２１】
前記カードコントローラは、前記不揮発性記憶領域に対する書き換えにおいて前記消去処理単位のデータサイズよりも書き換えに係る書込みデータサイズが小さいとき、前記書き込み処理において前記消去単位に対して書き換えに係る書込みデータが与えられない記憶領域は消去状態に維持し、前記消去状態に維持される前憶領域の書き換え前のデータを退避領域上で有効に維持する、請求項２０記載のメモリカード。
【請求項２２】
前記カードコントローラは、前記不揮発性記憶領域に対する書き換えにおいて前記消去処理単位のデータサイズよりも書き換えに係る書込みデータサイズが小さいデータの書き込み処理後に、別の物理アドレス領域の書き換えを行なうとき、退避領域が既に保持する有効なバックアップデータを書き戻す処理を行なった後に、当該次の書き込み物理アドレスのデータを退避領域にバックアップする、請求項２１記載のメモリカード。
【請求項２３】
前記不揮発性メモリは、前記不揮発性メモリ部とこれに対応する揮発性バッファ部をそれぞれ複数組有し、前記不揮発性メモリ部の消去単位は書き込み単位の複数倍であり、それぞれの揮発性バッファ部は前記書き込み単位の記憶容量を有し、
前記不揮発性メモリは、前記カードコントローラから与えられる記憶情報の書換え動作指示に対して、書換え対象の不揮発性メモリ部及びそれと異なる不揮発性メモリ部の双方の揮発性バッファ部に書換え対象とされる物理アドレス領域の記憶データを一時的に格納し、前記カードコントローラは、前記揮発性バッファ部に一時的に格納されたデータを、それぞれの揮発性バッファ部に対応する不揮発性メモリ部の退避領域に書込み制御する、請求項２０記載のメモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に書き換え可能な不揮発性メモリとカードコントローラを有するメモリカードに関し、特に、書き換え途上での電源遮断による不都合を解消する技術に関し、例えばフラッシュメモリカードに適用して有効な技術に関する。
【背景技術】
【０００２】
特許文献１には、メモリカードに搭載されたフラッシュメモリに、ファイルデータを記憶するデータメモリ領域と、エラー領域を代替する代替メモリ領域、データメモリ領域のエラー情報を記憶するエラーメモリ領域を設け、エラーメモリ領域にはエラーとなったデータメモリを代替する為の代替メモリのアドレスを格納する構成が記載される。
【０００３】
【特許文献１】特開平５−２０４５６１号公報（図２）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では書き換えに際して代替領域を検索するのに順次物理セクタの管理情報を読み出す処理を行い、或は前記エラーメモリ領域から代替メモリのアドレス等を読み出す処理を行わなければならない。要するに、書き込みを行う空きセクタの検索には物理セクタから情報を順次読み出す処理が必要とされ、高速アクセスには限界を生ずる。
【０００５】
本発明者は更に、フラッシュメモリカードにおいて書き込み処理中に電源が遮断されると、書き込み中のデータが壊れるだけではなく、書き込みデータ以外のデータが消失し、更に、ディプリートにより更に大きな範囲でデータが消失する可能性の有ることについて検討した。
【０００６】
即ち、フラッシュメモリの記憶情報を書き換えるときは、書き換え領域の消去単位のデータをバッファに退避し、その後、消去処理を行なってから書込み処理を行なう。書き換え完了以前に動作電源が遮断されればバッファ上から退避データが失われ、管理情報と共にその消去単位の全てのデータが消失してしまう。書き換えの対象データサイズが消去単位より小さいときは、同一消去単位に含まれる書き換え対象ではないデータも一緒に消失してしまう。動作電源の遮断はメモリスロットからメモリカードが抜き取られ、或はカードホストのバッテリ電源遮断などにより生ずる。さらに、消去途上において、消去による閾値電圧分布が揃えられる前に電源遮断があると、一部の不揮発性メモリセルが過消去（ディプリート）の状態で残る虞がある。不揮発性メモリセルがビット線又はソース線に対して並列に接続されるメモリアレイ構造を持つ場合、過消去状態の不揮発性メモリセルは非選択状態でもオン状態（ノーマリー・オン）になるから、ビット線からソース線に常時電流がリークし、ビット線を共有する不揮発性メモリセルの中に一つでもディプリート状態の不揮発性メモリセルがあると、それとビット線を共有する全ての不揮発性メモリセルはリード動作で誤りを生ずることになる。
【０００７】
本発明者は先の出願（特願２００２−２９４０６０）にて、高速アクセス、上記書き込み処理中の電源遮断による書き込みデータの破壊を防止するという観点より、消去及び書き込み可能なフラッシュメモリとカードコントローラとを有するメモリカードを提案した。これによれば、前記フラッシュメモリのメモリアレイには、そのメモリ領域の物理アドレス毎に空き情報フラグを対応付けた消去テーブルを設け、前記空き情報フラグは対応メモリ領域が消去許可状態であるか否かを示し、前記カードコントローラは、書き換えデータを書き込むメモリ領域の検索に前記消去テーブルを参照する。カードコントローラは、データの書き換えに際して、前記消去テーブルを参照して消去許可状態の空き情報フラグを識別すれば、その空き情報フラグに応ずる物理アドレスのメモリ領域（空きブロック）を新たな書き込み先とする。要するに、書き込み処理において、新データを空きブロックに書き込み、書き込み中は旧データは保持する。書き込み終了後は旧データのあるブロックを空きブロックとする。これによって、書き込み処理中に電源が遮断された場合にも、旧データが保持されているため、データが消失することはない。この方式では、別のメモリ領域へデータが書き込まれるため、論理アドレスと物理アドレスの対応を動的に管理する必要がある。それを管理するためのテーブルとしてアドレス変換テーブルをフラッシュメモリに記録する。また、空きブロックの場所を管理するテーブルとして、消去テーブルもフラッシュメモリに記録され、書き込み処理時に消去可能なブロックの検索に利用される。アドレス変換テーブルと消去テーブルは書き込み処理毎に更新される。
【０００８】
本発明者は上記先行技術を更に検討した結果、以下の点に気がついた。即ち、フラッシュメモリにアドレス変換テーブルと消去テーブルを記録しているため、データ領域が十分に確保できない場合が有る。また、ディプリートチェックを実行すると、フラッシュメモリの全領域をチェックする必要があるため、パワーオンリセット処理中に実行することは現実的ではない。
【０００９】
本発明の目的は、管理用情報領域の保持に必要な記憶領域を小さくすることができるメモリカードを提供することにある。
【００１０】
本発明の別の目的は、記憶情報の書き換え処理中に電源が遮断されても書き換え前のデータの消失を抑制することができるメモリカードを提供することにある。
【００１１】
本発明の別の目的は、ディプリートチェックに要する時間を短縮可能にすることができるメモリカードを提供することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
〔１〕本発明に係るメモリカードは、電気的に書き換え可能な不揮発性メモリとメモリ制御及び外部インタフェース制御を行なうカードコントローラとを有し、前記不揮発性メモリは、不揮発性記憶領域として論理アドレスに対応される物理アドレス領域（２３）と物理アドレス領域の退避に用いられる退避領域（２２）とを備えた不揮発性メモリ部を有し、前記カードコントローラは、所要の論理アドレスに対するデータの書き換え指示に応答してその論理アドレスに対応される所定の物理アドレス領域のデータを前記退避領域にバックアップした後当該物理アドレス領域の書き換えを行い、当該物理アドレス領域の書き換えが不完全であったときは前記退避領域のバックアップデータによって当該物理アドレス領域への前記バックアップデータの書き戻しを行なう。
【００１５】
上記した手段によれば、書き換え前のデータを退避領域にバックアップしておき、書き換え完了前の電源遮断等の異常に対しては退避領域からバックアップデータを書き戻すことによって対処することができるから、書き換え処理中の電源遮断による書き換え前の不所望なデータ消失を抑制することができる。さらに、書き換え処理中に電源遮断を生じた場合は、電源遮断によるディプリートの可能性がある不揮発性記憶領域は退避領域か退避領域にバックアップされたデータを元々保有していた物理アドレス領域のどちらかである。退避領域は動的に変更されず、その時の空き領域が動的に割当てられる訳ではない。よってディプリートチェックは退避領域と退避領域が保有するバックアップデータによって特定される物理アドレス領域の２個所に対して実施すれば充分である。したがって、ディプリートに対する処理に時間を要しない。退避領域がディプリートしてるときは退避領域にバックアップする予定であったデータを元々保有していた物理アドレス領域には当該元データが保存されていることになる。
【００１６】
前記物理アドレス領域の書き換え不完全とは、電源遮断による物理アドレス領域自体のディプリートを意味する。また、前記物理アドレス領域の書き換え不完全とは、物理アドレス領域における正当な書き込みデータ不存在を意味する。例えば物理アドレス領域に割当てられる論理アドレスの情報が格納されていない状態である。
【００１７】
本発明の具体的な形態として、前記不揮発性記憶領域として、論理アドレスと物理アドレスの対応テーブル（２１）を有し、前記物理アドレス領域と退避領域は夫々データ領域とデータ領域の管理領域を有し、前記管理領域は対応するデータ領域が保有するデータの論理アドレスを保持する。例えばこの場合、書き換え処理では、書き換え対象論理アドレスに対応した物理アドレスを対応テーブルから取得し、取得した物理アドレスにある旧データを退避領域に退避し、その後、新データを前記物理アドレスに書き込む。ディプリートチェックでは、先ず退避領域をチェックし、ディプリートしていないときは退避領域の管理領域が保有する退避元の論理アドレスを取得し、対応テーブルを参照してその論理アドレス情報（ＡＤＲ）に対応する物理アドレスを求め、この物理アドレスの領域をディプリートチェックすればよい。
【００１８】
本発明の更に具体的な形態として、前記管理領域は更に、対応するデータ領域が保持するデータの有効性を示すためのフラグ情報（ＦＬＧ）を保持する。
【００１９】
本発明の別の具体的な形態として、前記データの書き換えは前記不揮発性記憶領域に対する消去処理と書き込み処理によって行われ、前記物理アドレス領域と退避領域は一括消去可能な消去処理単位とされ、消去処理単位は書き込みデータ単位（1カラムの５１２バイト）の複数倍の大きさを有し、前記フラグ情報は、前記書き込みデータ単位毎にそのデータの有効性を示すことができる複数ビットを有する。
【００２０】
このとき、前記カードコントローラは、前記不揮発性記憶領域に対する書き換えにおいて前記消去処理単位のデータサイズよりも書き換えに係る書込みデータサイズが小さいとき、前記書き込み処理において前記消去単位に対して書き換えに係る書込みデータが与えられない前記不揮発性記憶領域の記憶領域は消去状態に維持し、前記不揮発性記憶領域の前記消去状態に維持される前記記憶領域の書き換え前のデータを退避領域上で有効に維持する。
【００２１】
これに従えば、前記カードコントローラは、前記不揮発性記憶領域に対する書き換えにおいて前記消去処理単位のデータサイズよりも書き換えに係る書込みデータサイズが小さいデータの書き込み処理後に、別の物理アドレス領域の書き換えを行なうとき、退避領域が既に保持する有効なバックアップデータを書き戻す処理を行なった後に、当該次の書き込み物理アドレスのデータを退避領域にバックアップすればよい。
【００２２】
本発明の更に別な具体的な形態として、前記カードコントローラは、所要の論理アドレスに対するデータの読み出し指示に応答してその論理アドレスに対応される所定の物理アドレス領域の有効性が確認できないとき、前記退避領域がその論理アドレスのデータを保有することを確認して、当該退避領域のデータをリードして出力する。前記退避領域のバックアップデータを対応する物理アドレス領域に書き戻す処理を実施する前のリード動作におけるデータエラーの発生を未然に防止することができる。
【００２３】
本発明の更に別の具体的な形態として、前記物理アドレス領域の書き換えが不完全であったときに行う前記退避領域から当該物理アドレス領域へのバックアップデータの書き戻しは、パワーオンリセットに応答して可能にされる。或いは、ディプリートチェックコマンドの実行結果に応答して可能にされる。
【００２４】
本発明の更に別の具体的な形態として、所謂ＡＧ−ＡＮＤと称されるメモリアレイ構成の不揮発性メモリに着目すると、不揮発性メモリは、前記不揮発性メモリ部（ＦＡＲＹ０〜ＦＡＲＹ３）とこれに対応する揮発性バッファ部（ＢＭＲＹ０〜ＢＭＲＹ３）をそれぞれ複数組有し、前記不揮発性メモリ部の消去単位は書き込み単位の複数倍であり、それぞれのバッファ部は前記書き込み単位の記憶容量を有し、また、前記不揮発性メモリは、前記カードコントローラから与えられる記憶情報の書換え動作指示に対して、書換え対象の不揮発性メモリ部及びそれと異なる不揮発性メモリ部の双方の揮発性バッファ部に書換え対象とされる物理アドレス領域の記憶データを一時的に格納する。このとき前記カードコントローラは、前記揮発性バッファ部に一時的に格納されたデータを、それぞれの揮発性バッファ部に対応する不揮発性メモリ部の退避領域に書込み制御する。
【００２５】
〔２〕本発明の別の観点によるメモリカードは、電気的に書き換え可能な不揮発性メモリとメモリ制御及び外部インタフェース制御を行なうカードコントローラとを有し、前記不揮発性メモリは、不揮発性記憶領域として論理アドレスに対応される物理アドレス領域と物理アドレス領域の退避に用いられる退避領域とを備えた不揮発性メモリ部を有する。前記カードコントローラは、所定のタイミングで前記退避領域が保有するデータの正当性を確認したときその退避領域にバックアップされているデータに対応される物理アドレス領域が保有するデータの正当性を判断し、不当であることを認識したときは前記退避領域のバックアップデータによって当該物理アドレス領域への前記バックアップデータの書き戻しを行なう。
【００２６】
上記した手段によれば、書き換え前のデータを退避領域にバックアップしておき、書き換え完了前の電源遮断等の異常に対しては退避領域からバックアップデータを書き戻すことによって対処することができるから、書き換え処理中の電源遮断による書き換え前の不所望なデータ消失を抑制することができる。さらに、書き換え処理中に電源遮断を生じた場合は、電源遮断によるディプリートの可能性がある不揮発性記憶領域は退避領域か退避領域にバックアップされたデータを元々保有していた物理アドレス領域のどちらかである。退避領域は動的に変更されず、その時の空き領域が動的に割当てられる訳ではない。よってディプリートチェックは退避領域と退避領域が保有するバックアップデータによって特定される物理アドレス領域の２個所に対して実施すれば充分である。
【００２７】
本発明の具体的な形態として、前記退避領域が保有するデータの正当性とは、前記退避領域における有効なバックアップデータの不存在を意味する。また、前記物理アドレス領域が保有するデータの不当性を認識したとき行なう前記退避領域から当該物理アドレス領域へのバックアップデータの書き戻しは、パワーオンリセットに応答して可能にされる。或いはディプリートチェックコマンドの実行結果に応答して可能にされる。
【００２８】
本発明の別の具体的な形態として、前記カードコントローラは、所要の論理アドレスに対するデータの書き換え指示に応答してその論理アドレスに対応される所定の物理アドレス領域のデータを前記退避領域にバックアップした後当該物理アドレス領域の書き換えを行う。このとき、前記不揮発性記憶領域として、論理アドレスと物理アドレスの対応テーブルを有し、前記物理アドレス領域と退避領域は夫々データ領域とデータ領域の管理領域を有し、前記管理領域は対応するデータ領域が保有するデータの論理アドレスを保持する。望ましい形態として前記管理領域は更に、対応するデータ領域が保持するデータの有効性を示すためのフラグ情報を保持する。
【００２９】
本発明の別の具体的な形態として、前記データの書き換えは前記不揮発性記憶領域に対する消去処理と書き込み処理によって行われ、前記物理アドレス領域と退避領域は一括消去可能な消去処理単位とされ、消去処理単位は書き込みデータ単位の複数倍の大きさを有し、前記フラグ情報は、前記書き込みデータ単位毎にそのデータの有効性を示すことができる複数ビットを有する。
【００３０】
このとき、前記カードコントローラは、前記不揮発性記憶領域に対する書き換えにおいて前記消去処理単位のデータサイズよりも書き換えに係る書込みデータサイズが小さいとき、前記書き込み処理において前記消去単位に対して書き換えに係る書込みデータが与えられない前記不揮発性記憶領域の記憶領域は消去状態に維持し、前記不揮発性記憶領域の前記消去状態に維持される前記記憶領域の書き換え前のデータを退避領域上で有効に維持する。
【００３１】
これに従えば、前記カードコントローラは、前記不揮発性記憶領域に対する書き換えにおいて前記消去処理単位のデータサイズよりも書き換えに係る書込みデータサイズが小さいデータの書き込み処理後に、別の物理アドレス領域の書き換えを行なうとき、退避領域が既に保持する有効なバックアップデータを書き戻す処理を行なった後に、当該次の書き込み物理アドレスのデータを退避領域にバックアップすればよい。
【００３２】
本発明の更に別の具体的な形態として、所謂ＡＧ−ＡＮＤと称されるメモリアレイ構成の不揮発性メモリに着目すると、不揮発性メモリは、前記不揮発性メモリ部とこれに対応する揮発性バッファ部をそれぞれ複数組有し、前記不揮発性メモリ部の消去単位は書き込み単位の複数倍であり、それぞれのバッファ部は前記書き込み単位の記憶容量を有し、また、前記不揮発性メモリは、前記カードコントローラから与えられる記憶情報の書換え動作指示に対して、書換え対象の不揮発性メモリ部及びそれと異なる不揮発性メモリ部の双方の揮発性バッファ部に書換え対象とされる物理アドレス領域の記憶データを一時的に格納する。このとき前記カードコントローラは、前記揮発性バッファ部に一時的に格納されたデータを、それぞれの揮発性バッファ部に対応する不揮発性メモリ部の退避領域に書込み制御する。
【発明の効果】
【００３３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００３４】
すなわち、データの書き換え指示に応答する書込み対象は物理アドレス領域と退避領域の双方とされ、退避領域に書き込み中に電源遮断が発生した場合は物理アドレス領域に残っているデータを使用し、物理アドレス領域に書き込み中に電源遮断が発生した場合は退避領域に残っているデータを使用することができるから、書き換え処理中の電源遮断による書き換え前の不所望なデータ消失を抑制することができる。
【００３５】
書き換え処理中に電源遮断を生じた場合は、電源遮断によるディプリートの可能性がある不揮発性記憶領域は退避領域か退避領域にバックアップされたデータを元々保有していた物理アドレス領域のどちらかであり、退避領域は動的に変更されず、その時の空き領域が動的に割当てられるものではないから、ディプリートチェックは退避領域と退避領域が保有するバックアップデータによって特定される物理アドレス領域の２個所に対して実施すれば充分となる。ディプリートチェックに要する時間を短縮可能にすることができる。
【００３６】
アドレス変換テーブルの他に空きブロックの場所を管理する消去テーブルを必要とせず、管理用情報領域の保持に必要な記憶領域を小さくすることができる。
【発明を実施するための最良の形態】
【００３７】
《メモリカード》
図１には本発明に係るメモリカードの一例が示される。メモリカード１は消去及び書き込み可能な不揮発性メモリ例えばフラッシュメモリ２と、ＤＲＡＭ（Dynamic Random Access memory）又はＳＲＡＭ（Static Random Access Memory）等から成るバッファメモリ４と、メモリ制御及び外部インタフェース制御を行うカードコントローラ５とを、実装基板に備えて成る。
【００３８】
前記バッファメモリ４及びフラッシュメモリ２はカードコントローラ５のアクセス制御を受ける。前記フラッシュメモリ２は、特に図示はしないが、電気的に消去及び書き込み可能な不揮発性メモリセルトランジスタが多数マトリクス配置されたメモリアレイＡＲＹを有する。メモリセルトランジスタ（フラッシュメモリセルとも記す）は、特に図示はしないが、半導体基板若しくはウェル内に形成されたソース及びドレイン、前記ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成される。コントロールゲートは対応するワード線に、ドレインは対応するビット線に、ソースはソース線に接続される。前記メモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧（コントロールゲート印加電圧）に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧を低くする処理を消去処理、閾値電圧を高くする処理を書込み処理と称する。
【００３９】
図１において、前記カードコントローラ５は、例えばホストコンピュータ（ホスト装置）６との間で外部インタフェース制御を行う。カードコントローラ５は、ホストコンピュータ６からの指示に従って、フラッシュメモリ２をアクセスするアクセス制御機能を有する。このアクセス制御機能はハードディスク互換の制御機能であり、例えばホストコンピュータ６がセクタデータの集合をファイルデータとして管理するとき、カードコントローラ５は論理アドレスとしてのセクタアドレスと物理メモリアドレスとを対応させてフラッシュメモリ２のアクセス制御を行う。図１に従えば、前記カードコントローラ５は、ホストインタフェース回路１０、演算制御手段としてのマイクロプロセッサ（ＭＰＵ）１１、フラッシュコントローラ１２、及びバッファコントローラ１３から成る。前記フラッシュコントローラ１２は図示を省略するＥＣＣ回路を備える。
【００４０】
前記ＭＰＵ１１は、ＣＰＵ（Central Processing Unit）１５、プログラムメモリ（ＰＧＭ）１６及びワークＲＡＭ（ＷＲＡＭ）１７などを有し、カードコントローラ５を全体的に制御する。プログラムメモリ１６はＣＰＵ１５の動作プログラムなどを保有する。
【００４１】
前記ホストインタフェース回路１０は、ＡＴＡ（ATAttachment）、ＩＤＥ（Integrated Device Electronics）、ＳＣＳＩ（Small Computer System Interface）、ＭＭＣ（MultiMediaCard）、ＰＣＭＣＩＡ（Personal Computer Memory Card International Association）等の所定のプロトコルに従って、パーソナルコンピュータ又はワークステーションなどのホストコンピュータ６とインタフェースを行う回路である。ホストインタフェース動作の制御はＭＰＵ１１が行う。
【００４２】
前記バッファコントローラ１３はＭＰＵ１１から与えられるアクセス指示に従って、バッファメモリ４のメモリアクセス動作を制御する。バッファメモリ４にはホストインタフェース１０に入力されたデータ、又はホストインタフェース１０から出力するデータが一時的に保持される。また、バッファメモリ４には、フラッシュメモリ２から読み出されたデータ又はフラッシュッメモリ２に書き込まれるデータが一時的に保持される。
【００４３】
フラッシュコントローラ１２はＭＰＵ１１から与えられるアクセス指示に従って、フラッシュメモリ２に対する、読み出し動作、消去動作及び書き込み動作を制御する。フラッシュコントローラ１２は、読み出し動作において読み出しコマンドコードや読み出しアドレス情報等の読み出し制御情報を出力し、書き込み動作において書き込みコマンドコード及び書き込みアドレス情報などの書き込み制御情報を出力し、消去動作において消去コマンド等の消去制御情報を出力する。図示を省略するＥＣＣ回路は、ＭＰＵ１１から与えられる指示に従って、フラッシュメモリ２に書き込むデータに対してエラー訂正符号（エラー訂正コード）を生成して、書込みデータに付加する。また、フラッシュメモリ２から読み出された読み出しデータを当該読み出しデータに付加されているエラー訂正符号を用いてエラー検出・訂正処理を行い、そのエラー訂正能力範囲のエラーに対して訂正を行う。
【００４４】
フラッシュメモリ２はその不揮発性メモリアレイ（ＡＲＹ）２０に、論理アドレスと物理アドレスの対応テーブル即ちアドレス変換テーブル（ＡＣＴＬＢ）２１、退避領域（退避ブロックとも記す）２２、及び複数の物理アドレス領域（物理ブロックと記す）２３を有する。退避領域２２及び物理アドレス領域２３は共に同じフィールド構成を有し、データ領域ＤＡＴと対応するデータ領域の管理領域とを有する。管理領域は、対応するデータ領域が保有するデータの論理アドレス情報ＬＡと、対応するデータ領域が保持するデータの有効性を示す複数ビットのフラグ情報ＦＬＧを保持する。フラグ情報ＦＬＧは物理アドレス領域ではデータ領域の有効／無効を示し、退避領域ではデータ領域の使用／未使用を示す。退避領域２２の物理アドレスＭＡは当該領域のデータ保持特性が劣化しない限り固定とされる。退避領域２２が不良になったときは退避領域には新しい物理アドレスを割当てる。退避領域の物理アドレスの定義は、特に制限されないが、アドレス変換テーブル２１の最後の記憶領域を用いて行なわれている。メモリアレイ２０においてアドレス変換テーブル２１以外の特定記憶領域をその定義領域に用いてもよい。
【００４５】
図２にはアドレス変換テーブル２１が例示される。アドレス変換テーブル２１は論理アドレスＬＡと物理アドレスＰＡを対応させる。物理アドレス領域が不良になったときはアドレス変換テーブル２１上でその不良物理アドレス領域に対応する論理アドレスに新しい物理アドレス領域を割当てて、アドレステーブル２１を更新すればよい。
【００４６】
図３にはフラッシュメモリに対する書き換え制御手順が例示される。カードコントローラ５は、カードホストから論理アドレスを指定したデータの書き換え指示を受けると、これに応答して、先ず、アドレス変換テーブル２１を参照して、論理アドレスＬＡに対応する物理アドレスＰＡを取得する（Ｓ１）。次に、取得した物理アドレスＰＡを用いてフラッシュメモリ２をリードし、リードしたデータ（旧データ）を物理アドレスＭＡの退避領域２２に格納する（Ｓ２）。退避領域２２の管理領域には、前記物理アドレスＰＡが対応される論理アドレスＬＡが格納され、フラグ情報ＦＬＧは未使用のコードから使用中のコードに変更される。図４には処理Ｓ２におけるデータのバックアップの様子が示される。その後、カードコントローラは前記物理アドレスＰＡの物理アドレス領域を消去処理し、消去処理が行なわれた物理アドレス領域にカードホストからの書込みデータ（新データ）を書き込む（Ｓ３）。管理領域にはその物理アドレス領域が割当てられている論理アドレスＬＡが書き込まれ、フラグ情報として有効のコードが書き込まれる。図５には処理Ｓ３におけるデータ書込みの様子が示される。
【００４７】
図６にはフラッシュメモリに対するデータ読み出し制御手順が例示される。論理アドレスＬＡをリードする場合、まず、図２のアドレス変換テーブル２１で論理アドレスＬＡに対応する物理アドレスＰＡを取得する（Ｓ１１）。物理アドレスＰＡの管理情報をリードし（Ｓ１２）、物理アドレスＰＡが不良ブロックかどうか判定する（Ｓ１３）。不良ブロックではない場合は、物理アドレスＰＡの物理ブロックからデータを読み出し（Ｓ１４）、リード処理が終了される。処理Ｓ１３において物理アドレスＰＡが不良ブロックの場合は、退避ブロックの管理情報をリードし（Ｓ１５）、リードした管理情報から退避された論理アドレスを取得し、そのアドレスが読み出し対象とされる論理アドレスＬＡに一致するかが判別される（Ｓ１６）。論理アドレスＬＡに一致する場合は、退避ブロックをリードし（Ｓ１７）、リード処理を終了する。論理アドレスＬＡでないときは、リードエラーとなる。
【００４８】
図７にはディプリートチェックと書き戻しの制御手順が示される。図７の処理はパワーオンリセットのリセット解除に応答して開始され、或いは、カードホストから投入されたディプリートチェックコマンドに応答して開始される。
【００４９】
ディプリートチェックが指示されると、先ず、アドレスＭＡの退避ブロックのディプリートチェックを行なう（Ｓ２１）。ディプリートチェックはフラッシュメモリセルを非選択としたときドレイン・ソース間にリーク電流を生ずるか否か等を判定する処理によって行なう。Ｓ２２の判定でディプリートがあった場合は、アドレスＭＡの退避ブロックを消去し（Ｓ２３）、アドレスＭＡの退避ブロックに管理情報作成して（Ｓ２４）、アドレスＭＡの退避ブロックを利用可能な状態に再生する。要するに、フラグ情報ＦＬＧは未使用、アドレス情報ＡＤＲは不定にする。退避ブロックが保有するデータの論理アドレスがＬＡのとき、アドレスＭＡの退避ブロックにディプリートがある場合は、その論理アドレスＬＡに対応する物理アドレスＰＡの物理ブロックにはディプリートはない。
【００５０】
Ｓ２２の判定でアドレスＭＡの退避ブロックにディプリートがない場合、その退避ブロックの管理情報をリードし（Ｓ２５）、リードした管理情報から退避元のデータブロックの論理アドレスＬＡを取得する（Ｓ２６）。前記アドレス変換テーブル２１を使って、論理アドレスＬＡから対応する物理アドレスＰＡを取得する（Ｓ２７）。そして、取得した物理アドレスＰＡの物理ブロックに対してディプリートチェックを行う（Ｓ２８）。Ｓ２９の判定でディプリートがある場合は、物理アドレスＭＡの退避ブロックからデータを取得し（Ｓ３０）、物理アドレスＰＡの物理ブロックを消去し（Ｓ３１）、物理アドレスＡの物理ブロックに物理アドレスＭＡの退避ブロックから取得したデータを書き込む（Ｓ３２）。
【００５１】
上記メモリカード１によれば、データの書き換え指示に応答する書込み対象は物理ブロック２３と退避ブロック２２の双方とされ、退避ブロック２２に書き込み中に電源遮断が発生した場合は物理ブロック２３に残っているデータを使用し、物理ブロック２３に書き込み中に電源遮断が発生した場合は退避ブロック２２に残っているデータを使用することができるから、書き換え処理中の電源遮断による書き換え前の不所望なデータ消失を抑制することができる。
【００５２】
また、書き換え処理中に電源遮断を生じた場合は、電源遮断によるディプリートの可能性がある不揮発性記憶領域は退避ブロック２２か退避ブロック２２にバックアップされたデータを元々保有していた物理ブロック２３のどちらかであり、退避ブロック２２は動的に変更されず、その時の空き領域が動的に割当てられるものではないから、ディプリートチェックは退避部録２２と退避ブロック２２が保有するバックアップデータによって特定される物理ブロック２３の２個所に対して実施すれば充分となる。ディプリートチェックに要する時間を短縮可能にすることができる。
【００５３】
更に、アドレス変換テーブルの他に空きブロックの場所を管理する消去テーブルを必要とせず、管理用情報の保持に必要な記憶領域を小さくすることができる。
【００５４】
《ＡＮＤ型フラッシュメモリを用いた具体例》
次に、メモリカード１に搭載されたフラッシュメモリ２として所謂ＡＮＤ型フラッシュメモリを用いた場合の書き換え動作について具体的に説明する。ＡＮＤ型フラッシュメモリのメモリアレイは、特に図示はしないが、メモリブロック毎にマトリクス配置された不揮発性メモリセルのコントロールゲートがＸ方向単位でワード線に接続され、不揮発性メモリセルのドレインはＹ方単位でサブビット線に接続され、不揮発性メモリセルのソースはソース線に共通接続され、サブビット線は選択スイッチでグローバルビット線に接続されて構成される。消去単位はメモリブロック単位とされる。所謂ＡＮＤ型フラッシュメモリの詳細は特開平１１−２３２８８６号公報に記載が有る。
【００５５】
フラッシュメモリ２には図８に示される論理アドレスと物理アドレスのアドレス変換テーブルが保持される。ＡＮＤ型フラッシュメモリ２は消去処理及び書込み処理単位が２１１２バイトとされる。そのフラッシュメモリ２のメモリアレイは、図９に例示されるように、一つの物理ブロックは２１１２バイトに記憶容量を有し、５１２バイト毎のカラムＣＬ０〜カラムＣＬ３のデータ領域と、３２バイトの管理領域によって構成される。管理領域には対応する論理アドレス情報とフラグ情報が保持される。物理アドレスＭＡの物理ブロックは退避ブロックとされる。
【００５６】
図１０には管理領域のアドレス情報とフラグ情報の具体的な種別が例示される。物理ブロックのデータ領域においてフラグ情報ＦＬＧはカラムＣＬ０〜ＣＬ３に情報が割当てられ、“Ｆ０００”はカラムＣＬ０有効、“０Ｆ００”はカラムＣＬ１有効、“００Ｆ０”はカラムＣＬ２有効、“０００Ｆ”はカラムＣＬ３有効を意味する。よって、ＣＬ０，ＣＬ１のデータ有効でＣＬ２，ＣＬ３のデータが無効なときはフラグ情報は“ＦＦ００”となる。退避ブロックのデータ領域においてフラグ情報ＦＬＧはカラムＣＬ０〜ＣＬ３毎に割当てられず、そのデータ領域全体として、“００００”は未使用、 “ＦＦ００”は使用中、“ＦＦＦＦ”は使用済みを意味する。それ以外は無視される。
【００５７】
図９にはデータが書き込まれる前のメモリアレイの状態が示されており、物理アドレスＰＡ１の物理ブロックにおける管理領域には論理アドレスＬＡ１、フラグ“００００”の情報が記録されている。
【００５８】
図９の状態から論理アドレスＬＡ１に５１２バイト×４のデータＤ１〜Ｄ４を書き込む場合は、図１１に示されるように、論理アドレスＬＡ１に対応する物理アドレスＰＡ１にデータＤ１〜Ｄ４とフラグ情報“ＦＦＦＦ”を追加書き込みする。
【００５９】
図１１の状態から論理アドレスＬＡ１に５１２バイト×４のデータＤ５〜Ｄ８を書き込む場合の動作は図１２〜図１４に示される。先ず、図１２のように、論理アドレスＬＡ１に対応する物理アドレスＰＡ１のデータＤ１〜Ｄ４を、物理アドレスＭＡの退避ブロック２２に退避する。退避ブロック２２の管理情報は、フラグ情報“ＦＦ００”（使用中）、アドレスＬＡ１にされる。次に、図１３に示すように、物理アドレスＰＡ１を消去する。最後に、図１４のように、物理アドレスＰＡ１の物理ブロック２３にデータＤ５〜Ｄ８、フラグ情報“ＦＦＦＦ”（全カラム有効）及びアドレス情報ＬＡ１を書き込む。退避ブロック２２のフラグ情報は“ＦＦＦＦ”（使用済み）にされる。
【００６０】
図１１の状態から論理アドレスＬＡ１の物理ブロック２３に５１２バイト×３のデータＤ５〜Ｄ７を書き込む場合は、図１２、図１３の次に図１５の動作が行なわれる。即ち、図１５において、データＤ５〜Ｄ７は物理アドレスＰＡ１の物理ブロック２３に書き込まれ、その管理情報のフラグ情報は“ＦＦＦ０”とされ、カラムＣＬ０〜ＣＬ２が有効とされる。アドレスＭＡの退避ブロック２２のフラグ情報は“ＦＦ００”のままとされる。この状態でリード処理が行なわれるとき、物理アドレスＰＡ１の物理ブロック２３における管理領域のフラグ情報から、有効データがカラムＣＬ０〜ＣＬ２にあると判断可能になる。無効なカラム３のデータリードは、図６のフローチャートにしたがって、アドレスＭＡの退避ブロック２２のカラムＣＬ３のデータに対して行なわれることになる。
【００６１】
図１５の状態から論理アドレスＬＡ１に対応される物理ブロック２３のカラムＣＬ３にデータを書き込む場合は、図１６のように、物理アドレスＰＡ１のカラムカラムＣＬ3に追加書き込みを行い、その管理領域のフラグ情報を“ＦＦＦＦ”としてカラムＣＬ３のデータＤ８も有効にする。退避ブロック２２の管理領域におけるフラグ情報は“ＦＦＦＦ”の使用済みに変更すればよい。
【００６２】
図１５の状態から論理アドレスＬＡ２に５１２バイト×４のデータＤ１３〜Ｄ１６を書き込む場合の動作を図１７〜図２２に示す。図17に示されるように、論理アドレスＬＡ２に対応する物理アドレスＰＡ２には既にデータＤ９〜Ｄ１２が書き込まれているとする。先ず、図１８のように、アドレスＭＡの退避ブロック２２のカラムＣＬ３のデータを退避元の論理アドレスＬＡ１に対応するＰＡ１の物理ブロック２３のカラムＣＬ３に追加書き込みで書き込む。次に、図１９のように、アドレスＭＡの退避ブロック２２を消去する。そして、図２０のように、物理アドレスＰＡ２のデータＤ９〜Ｄ１２をアドレスＭＡの退避ブロック２２に書き込む。その管理領域のフラグ情報は“ＦＦ００”（使用中）、アドレス情報はＬＡ２とされる。次に、図２１のように、物理アドレスＰＡ２の物理ブロック２３を消去する。最後に、図２２に示されるように、物理アドレスＰＡ２の物理ブロック２３に、データＤ１３〜Ｄ１６を書き込む。その物理ブロックのフラグ情報は“ＦＦＦＦ”とされる。アドレスＭＡの退避ブロック２２におけるフラグ情報には“ＦＦＦＦ”を追加書き込みし、使用済みにする。
【００６３】
《ＡＧ−ＡＮＤ型フラッシュメモリを用いた具体例》
次に、メモリカードに搭載されたフラッシュメモリとして所謂ＡＧ−ＡＮＤ型フラッシュメモリを用いた場合の書き換え動作について具体的に説明する。ＡＧ−ＡＮＤ型フラッシュメモリのメモリアレイは、特に図示はしないが、ＡＮＤ型フラッシュメモリのメモリアレイに対し隣接する２本のサブビット線を１本に集約し、消去単位を書込み単位の２倍とした構成を有する。所謂ＡＧ−ＡＮＤ型フラッシュメモリの詳細はＷＯ  ０３／０７３４３１の国際公開公報に記載が有る。ここではそのメモリマット構成の概略について説明しておく。図２３にはＡＧ−ＡＮＤ型フラッシュメモリの概略構成を平面図で示す。
【００６４】
図２３に示されるフラッシュメモリ２は、例えば４個のメモリバンクＢＮＫ０〜ＢＮＫ３と制御部ＣＮＴを有する。前記メモリバンクＢＮＫ０〜ＢＮＫ３は、不揮発性メモリ部としてのフラッシュメモリアレイＦＡＲＹ０〜ＦＡＲＹ３と、揮発性バッファ部としてのバッファメモリＢＭＲＹ０〜ＢＭＲＹ３とを有する。一つのフラッシュメモリアレイに対応してバッファメモリは左右に２分割されて配置される。便宜上右側のバッファメモリにはサフィックス（Ｒ）を付し、左側のバッファメモリにはサフィックス（Ｌ）を付す。
【００６５】
フラッシュメモリ１の外部入出力端子ｉ／ｏ０〜ｉ／ｏ７は、アドレス入力端子、データ入力端子、データ出力端子、コマンド入力端子に兼用される。フラッシュメモリ１はコマンドラッチイネーブル信号ＣＬＥなどの外部アクセス制御信号を入力する。前記制御部ＣＮＴは、前記アクセス制御信号の状態に応じて外部との信号インタフェース機能などを制御し、また、入力されたコマンドに従って内部動作を制御する。４個のメモリバンクＢＮＫ０〜ＢＮＫ３は並列動作することができる。
【００６６】
前記それぞれのフラッシュメモリアレイＦＡＲＹ０〜ＦＡＲＹ３は、マトリクス配置された多数の不揮発性メモリセルを有する。この不揮発性メモリセルは、特に制限されないが、公知のフローティングゲート型トランジスタ１個で１個のメモリセルを構成する。例えば不揮発性メモリセルは、ウェル領域に形成されたソース及びドレインと、ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成される。コントロールゲートはワード線に、ドレインはビット線に、ソースはソース線に接続される。
【００６７】
ＡＧ−ＡＮＤ型フラッシュメモリ２において一つの物理ブロックは４２２４バイトの記憶容量を有し、書き込み単位はその半分の２１１２バイト、消去単位は４２２４バイトとされる。一つの物理ブロックの上位側半分と下位側半分の夫々は、５１２バイト毎の4個のカラムのデータ領域ＤＡＴと３２バイトの管理領域（論理アドレス情報ＡＤＲとフラグ情報ＦＬＧ）によって構成される。一つの物理ブロックには上位と下位別々の論理アドレスが対応されることになる。
【００６８】
メモリバンクＢＮＫ０〜ＢＮＫ３毎に特定の物理アドレスには退避ブロック２２が割り当てられる。退避ブロックの機能はＡＮＤ型フラッシュメモリの場合と変わりない。
【００６９】
バッファメモリＢＭＲＹ０〜ＢＭＲＹ３は、例えばＳＲＡＭ（Static Random Access Memory）によって構成され、フラッシュメモリアレイＦＡＲＹ０〜ＦＡＲＹ３から読み出された記憶データを一時的に保持し、また、フラッシュメモリアレイＦＡＲＹ０〜ＦＡＲＹ３に書き込むデータを一時的に保持する。メモリバンク毎に設けられたバッファメモリＢＭＲＹ０〜ＢＭＲＹ３の記憶容量はそれぞれ書き込み処理単位の２１１２バイトとされ、メモリバンク毎に左右に２分割されて、分割された一つの記憶容量は１０５６バイトとされる。
【００７０】
図２４にはＡＧ−ＡＮＤフラッシュメモリのメモリバンクと物理ブロックの構成が例示される。前述の通り、ＡＧ−ＡＮＤ型フラッシュメモリ２は４つメモリバンク有し、１メモリバンクに８１９２物理ブロックの消去ブロックがあり、消去ブロックは２つの書き込み単位で構成されている。
【００７１】
図２５にはＡＧ−ＡＮＤフラッシュメモリの各メモリバンクＢＮＫ０〜ＢＮＫ３における一つの物理ブロック２３と退避ブロック２２とを示す。物理アドレスＰＡ０〜ＰＡ３の物理ブロックと物理アドレスＭＡ０〜ＭＡ３の退避ブロックが示される。前述の如く一つの物理ブロックや退避ブロックは消去単位に等しく、書き込み単位はその半分であり、書き込み単位毎に論理アドレスが割り当てられる。すなわち、図２５の状態はデータが書き込まれる前の初期状態であり、物理アドレスＰＡ０〜ＰＡ３の物理ブロックにおけるデータ領域ＤＡＴは消去状態であり、その管理領域にはアドレス情報ＡＤＲとして論理アドレスＬＡ０〜ＬＡ７が格納され、ＰＡ０の書き込み単位上位側には論理アドレスＬＡ０、ＰＡ０の書き込み単位下位側には論理アドレスＬＡ２、ＰＡ１の書き込み単位上位側には論理アドレスＬＡ１、ＰＡ１の書き込み単位下位側には論理アドレスＬＡ３、というように論理アドレスが割り当てられる。物理アドレスＭＡ０〜ＭＡ３は退避ブロックに割り当てられる固定した物理アドレスであり、消去単位のサイズを有する。データ領域ＤＡＴは前述同様に５１２バイト毎の４個のカラムＣＬ０〜ＣＬ３の集合とされる。前述同様に退避ブロックはその記憶領域に不良を生じたとき割当てられる物理アドレスが変更される。
【００７２】
物理ブロック、退避ブロックは共に書き込み単位毎に管理情報を持ち、その中に、フラグ情報ＦＬＧと論理アドレス情報ＡＤＲが記録される。フラグ情報ＦＬＧの意味は図１０と同じである。アドレス情報ＡＤＲも図１０と同じであり、物理ブロックでは物理アドレスに対応した論理アドレスが書き込まれ、退避ブロックでは退避したデータの論理アドレスが書き込まれる。
【００７３】
図２６にはＡＧ−ＡＮＤ型フラッシュメモリ２が保有するアドレス変換テーブルが例示される。論理アドレスに対する物理アドレスの割り当ては、前述の通り一つの物理ブロックに対して連続する論理アドレスを割り当てないようにされる。これは、前記バッファメモリＢＭＲＹ０〜ＢＭＲＹ３の記憶容量が書き込み単位の記憶容量とされ、更にメモリバンクＢＮＫ０〜ＢＮＫ３が並列動作可能であることから、連続する論理アドレスに対する書き込み及び読み出し動作を高速化できるように考慮したものである。
【００７４】
図２７は図２５の状態から論理アドレスＬＡ０〜ＬＡ７に対応される物理アドレスＰＡ０〜ＰＡ３の物理ブロックにデータが書き込まれた状態を示す。管理情報のフラグＦＬＧは有効データが入るため、ＦＦＦＦｈが記録されている。
【００７５】
図２８から図３０は、図２７の状態から論理アドレスＬＡ０が割り当てられる物理ブロックＰＡ０の書き込み単位上位のカラムＣＬ０、ＣＬ１にデータＡ０，Ａ１が書き込まれるまでの過程を示す。まず、図２８のように、ＰＡ０の物理ブロックにおける書き込み単位上位のデータ０〜３をＭＡ０の退避ブロックにおける書き込み単位上位に、ＰＡ０の物理ブロックにおける書き込み単位下位のデータ８〜ＢをＭＡ２の退避ブロックにおける書き込み単位上位に、ＰＡ１の物理ブロックにおける書き込み単位上位のデータ４〜７をＭＡ１の退避ブロックにおける書き込み単位上位に、ＰＡ１の物理ブロックにおける書き込み単位下位のデータＣ〜ＦをＭＡ３の退避ブロックに退避する。退避ブロックＭＡ０〜ＭＡ３の上位側だけを使う理由は、メモリバンクＢＮＫ０〜ＢＮＫ３の並列書き込み動作を用いて一度にデータの退避を行うためである。退避ブロックの管理領域のアドレス情報ＡＤＲとしてＬＡ０、ＬＡ１、ＬＡ２、ＬＡ３が書き込まれ、フラグ情報ＦＬＧとして“ＦＦ００”が書き込まれる。図２９では物理アドレスＰＡ０，ＰＡ１の物理ブロックに対して消去が行われる。図３０では論理アドレスＬＡ０に対応される物理アドレスＰＡ０の物理ブロックにおける書き込み単位上位のカラムＣＬ０、ＣＬ１にデータＡ０、Ａ１を書き込む。ＰＡ０の書き込み単位上位の管理領域には論理アドレス情報ＬＡ０、フラグ情報 “ＦＦ００”が書き込まれ、ＰＡ１の書き込み単位上位の管理領域には論理アドレス情報ＬＡ１、フラグ情報 “００００”が書き込まれる。
【００７６】
リード処理では、図６で説明した通り、読み出されるデータが退避ブロックにあるかどうかの判定を行う。図３０ではＬＡ０のデータがＭＡ０の退避ブロックとＰＡ０の物理ブロックの双方に記録されているが、物理ブロックで有効フラグがあるカラムは物理ブロックＰＡ０から、物理ブロックで無効フラグのカラムに対しては退避ブロックＭＡ０から読み出す。ＬＡ１、ＬＡ３のデータは、物理ブロックＰＡ１のフラグが無効フラグになっているため、全てのカラムＣＬ０〜ＣＬ３に対して退避ブロックＭＡ０から読み出しを行う。
【００７７】
図３０の状態から論理アドレスＬＡ０のカラムＣＬ２にデータＡ２を書き込む場合は、既にデータが退避されており、論理アドレスＬＡ０のカラムＣＬ２が消去状態であるため、図３１に示されるように、追加書き込みによりデータを書き込み、論理アドレスＬＡ０のカラムＣＬ２のフラグに“Ｆ“を追加書き込みを行えばよい。
【００７８】
図３２から図３４には、図３１の状態から論理アドレスＬＡ５のカラムＣＬ１〜ＣＬ３にデータＢ５，Ｂ６，Ｂ７を書き込む動作の過程が示される。図３２で論理アドレスＬＡ４〜ＬＡ７（ＰＡ２、ＰＡ３）のデータを退避ブロックＭＡ０〜ＭＡ３の下位側に書き込む。退避ブロックＭＡ０〜ＭＡ３の下位側の管理領域のアドレス情報としてＬＡ４〜ＬＡ７が書き込まれ、フラグ情報は使用中の“ＦＦ００”が書き込まれる。図３３ではＰＡ２，ＰＡ３の物理ブロックが消去され、図３４では論理アドレスＬＡ５のカラムＣＬ１〜ＣＬ３にデータＢ５，Ｂ６，Ｂ７が書き込まれる。ＰＡ３の物理ブロックの上位側管理領域のフラグ情報としてカラムＣＬ１〜ＣＬ３に対応して“Ｆ”を、その他は“０”を書き込む。
【００７９】
図３５から図３９は、図３４の状態から論理アドレスＬＡ８，ＬＡ９（退避ブロックにあるデータ以外のアドレス）にデータＣ０〜Ｃ７を書き込む動作過程を示す。図３５では図３４の状態において退避ブロックにある有効データ、すなわち、論理アドレスＬＡ０のカラムＣＬ３のデータ、論理アドレスＬＡ１〜ＬＡ３のデータを対応する物理ブロックに書き戻す。退避ブロックの有効無効判定は物理ブロックのフラグで判定する。図３６では退避ブロックＭＡ０〜ＭＡ３を消去する。図３７では論理アドレスＬＡ８〜ＬＡ１１に対応する物理アドレスＰＡ４、ＰＡ５の物理ブロックを退避ブロックＭＡ０〜ＭＡ３の上位側に退避する。退避ブロックＭＡ０〜ＭＡ３の管理領域のアドレス情報としてＬＡ８〜ＬＡ１１が書き込まれ、フラグ情報として使用中の“ＦＦ００”が書き込まれる。図３８では物理アドレスＰＡ４、ＰＡ５の物理ブロックを消去する。図３９では物理アドレスＰＡ４，ＰＡ５の物理ブロック上位（論理アドレスＬＡ８，ＬＡ９割り当て）にデータＣ０〜Ｃ７を書き込む。論理アドレスＬＡ８，ＬＡ９に対応する管理領域にはフラグ情報として“ＦＦＦＦ”を、論理アドレスＬＡ１０，ＬＡ１１に対応する管理領域にはフラグ情報として“００００”を書き込む。退避ブロックＭＡ０，ＭＡ１の上位側は有効データがなくなるため、それに対応される管理領域には使用済みフラグ情報“ＦＦＦＦ”を書き込む。
【００８０】
図３９の状態から、論理アドレスＬＡ８，ＬＡ９にデータＣ８〜ＣＦを書き込む場合は、既にデータが退避されており、消去状態であるため、図４０に示されるように、追加書き込みによりデータを書き込み、論理アドレスＬＡ８，ＬＡ９に対応してフラグ情報“ＦＦＦＦ”を追加書き込みする。
【００８１】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００８２】
例えば、物理ブロックや退避ブロックのサイズ、フラグ情報の意味などについては適宜変更可能である。その他、メモリアレイのバンク構成についても変更可能である。また、本発明に係るメモリカードはＩＣカードマイコンに代表されるセキュリティーコントローラを併せて搭載するものであってもよい。また、不揮発性メモリセルは１個で４ビットのような多値の情報記憶を行うものに限定されず、１個で２ビットの情報記憶を行うものであってもよいのは当然である。更にフラッシュメモリの不揮発性メモリセルはスタックドゲート構造に限定されず、選択トランジスタ部と記憶トランジスタ部を直列的に配置したスプリットゲート構造であってもよい。
【００８３】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＡＮＤ型フラッシュメモリ、ＡＧ−ＡＮＤ型フラッシュメモリを搭載したメモリカードに適用した場合について説明したが、本発明はＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリを搭載したメモリカードにも適用可能である。
【図面の簡単な説明】
【００８４】
【図１】本発明に係るメモリカードの一例を示すブロック図である。
【図２】アドレス変換テーブルを例示する説明図である。
【図３】フラッシュメモリに対する書き換え制御手順を例示するフローチャートである。
【図４】図３の処理Ｓ２におけるデータバックアップの様子を示す説明図である。
【図５】図３の処理Ｓ３におけるデータ書込みの様子を示す説明図である。
【図６】フラッシュメモリに対するデータ読み出し制御手順を例示するフローチャートである。
【図７】ディプリートチェックと書き戻しの制御手順を例示するフローチャートである。
【図８】論理アドレスと物理アドレスの対応を定義するアドレス変換テーブルの説明図である。
【図９】フラッシュメモリのメモリアレイのフィールド構成を例示する説明図である。
【図１０】管理領域のアドレス情報とフラグ情報の具体的な種別を例示する説明図である。
【図１１】図９の状態から論理アドレスＬＡ１にデータＤ１〜Ｄ４を書き込むまでの動作において論理アドレスＬＡ１に対応する物理アドレスＰＡ１にデータＤ１〜Ｄ４等を追加書き込みを行なったときのメモリアレイの状態を示す説明図である。
【図１２】図１１の状態から論理アドレスＬＡ１にデータＤ５〜Ｄ８を書き込むまでの動作において最初に論理アドレスＬＡ１に対応する物理アドレスＰＡ１のデータＤ１〜Ｄ４を退避ブロックしたときのときのメモリアレイの状態を示す説明図である。
【図１３】図１２に続いて物理アドレスＰＡ１を消去したときのメモリアレイの状態を示す説明図である。
【図１４】図１３に続いて物理アドレスＰＡ１の物理ブロックにデータＤ５〜Ｄ８等を書き込んだときのメモリアレイの状態を示す説明図である。
【図１５】図１１の状態から論理アドレスＬＡ１にデータＤ５〜Ｄ７を書き込む場合に図１２、図１３に続けてデータＤ５〜Ｄ７の書込みと管理情報の書込みを行なったときのメモリアレイの状態を示す説明図である。
【図１６】図１５の状態から論理アドレスＬＡ１のカラムＣＬ３にデータを書き込む場合に物理アドレスＰＡ１のカラムカラムＣＬ3に追加書き込み等を行なったときのメモリアレイの状態を示す説明図である。
【図１７】図１５の状態から論理アドレスＬＡ２にデータＤ１３〜Ｄ１６を書き込む場合に論理アドレスＬＡ２に既に別のデータが書き込まれているときのメモリアレイの状態を示す説明図である。
【図１８】図１７に続けてアドレスＭＡの退避ブロックのカラムＣＬ３のデータを退避元の論理アドレスＬＡ１に対応するＰＡ１の物理ブロックのカラムＣＬ３に追加書き込みで書き込んだときのメモリアレイの状態を示す説明図である。
【図１９】図１８に続けてアドレスＭＡの退避ブロックを消去したときのメモリアレイの状態を示す説明図である。
【図２０】図１９に続けて物理アドレスＰＡ２のデータＤ９〜Ｄ１２をアドレスＭＡの退避ブロック２２に書き込んだときのメモリアレイの状態を示す説明図である。
【図２１】図２０に続けて物理アドレスＰＡ２の物理ブロックを消去したときのメモリアレイの状態を示す説明図である。
【図２２】図２１に続けて物理アドレスＰＡ２の物理ブロックにデータＤ１３〜Ｄ１６を書き込んだときのメモリアレイの状態を示す説明図である。
【図２３】ＡＧ−ＡＮＤ型フラッシュメモリの概略構成を平面的に示す説明図である。
【図２４】ＡＧ−ＡＮＤ型フラッシュメモリのメモリバンクと物理ブロックの構成を例示する説明図である。
【図２５】ＡＧ−ＡＮＤ型フラッシュメモリの各メモリバンクＢＮＫ０〜ＢＮＫ３における一つの物理ブロック２３と退避ブロック２２とを示す説明図である。
【図２６】ＡＧ−ＡＮＤ型フラッシュメモリ２が保有するアドレス変換テーブルを例示する説明図である。
【図２７】図２５の状態から論理アドレスＬＡ０〜ＬＡ７に対応される物理アドレスＰＡ０〜ＰＡ３の物理ブロックにデータが書き込まれたときのメモリアレイの状態を示す説明図である。
【図２８】図２７の状態から論理アドレスＬＡ０の物理ブロックＰＡ０の書き込み単位上位のカラムＣＬ０、ＣＬ１にデータＡ０，Ａ１を書き込むまでの動作において最初にＰＡ０，ＰＡ１の物理ブロックにおける退避ブロックに退避したときのメモリアレイの状態を示す説明図である。
【図２９】図２８に続けては物理アドレスＰＡ０，ＰＡ１の物理ブロックに対して消去が行われたときのメモリアレイの状態を示す説明図である。
【図３０】図２９に続けて論理アドレスＬＡ０に対応される物理ブロックにおける書き込み単位上位にデータＡ０、Ａ１を書き込んだときのメモリアレイの状態を示す説明図である。
【図３１】図３０に続けて論理アドレスＬＡ０のカラムＣＬ２にデータＡ２を書き込む場合に追加書き込み等によりデータを書き込んだときのメモリアレイの状態を示す説明図である。
【図３２】図３１の状態から論理アドレスＬＡ５のカラムＣＬ１〜ＣＬ３にデータＢ５，Ｂ６，Ｂ７を書き込む動作の過程において最初に論理アドレスＬＡ４〜ＬＡ７（ＰＡ２、ＰＡ３）のデータを退避ブロックＭＡ０〜ＭＡ３の下位側に書き込んだときのメモリアレイの状態を示す説明図である。
【図３３】図３２に続けてＰＡ２，ＰＡ３の物理ブロックを消去したときのメモリアレイの状態を示す説明図である。
【図３４】図３３に続けて論理アドレスＬＡ５のカラムＣＬ１〜ＣＬ３にデータＢ５，Ｂ６，Ｂ７が書き込まれたときのメモリアレイの状態を示す説明図である。
【図３５】図３４の状態から論理アドレスＬＡ８，ＬＡ９（退避ブロックにあるデータ以外のアドレス）にデータＣ０〜Ｃ７を書き込む動作過程において最初に退避ブロックにある有効データを対応する物理ロックに書き戻したときのメモリアレイの状態を示す説明図である。
【図３６】図３５に続けて退避ブロックＭＡ０〜ＭＡ３を消去したときのメモリアレイの状態を示す説明図である。
【図３７】図３６に続けて論理アドレスＬＡ８〜ＬＡ１１に対応する物理アドレスＰＡ４、ＰＡ５の物理ブロックを退避ブロックＭＡ０〜ＭＡ３の上位側に退避したときのメモリアレイの状態を示す説明図である。
【図３８】図３７に続けて物理アドレスＰＡ４、ＰＡ５の物理ブロックを消去したときのメモリアレイの状態を示す説明図である。
【図３９】図３８に続けて物理アドレスＰＡ４，ＰＡ５の物理ブロック上位（論理アドレスＬＡ８，ＬＡ９割り当て）にデータＣ０〜Ｃ７を書き込んだときのメモリアレイの状態を示す説明図である。
【図４０】図３９に続けて論理アドレスＬＡ８，ＬＡ９にデータＣ８〜ＣＦを書き込む場合に追加書き込みによりデータの書き込み等を行なったときのメモリアレイの状態を示す説明図である。
【符号の説明】
【００８５】
１  メモリカード
２  フラッシュメモリ
５  カードコントローラ
６  ホストコンピュータ
２０  不揮発性メモリアレイ
２１  アドレス変換テーブル
２２  退避領域（退避ブロック）
２３  物理アドレス領域（物理ブロック）
ＤＡＴ  データ領域
ＦＬＧ  管理領域のフラグ情報
ＡＤＬ  管理領域の論理アドレス情報
ＢＮＫ０〜ＢＮＫ３  メモリバンク
ＦＡＲＹ０〜ＦＡＲＹ３  フラッシュメモリアレイ
ＢＭＲＹ０〜ＢＭＲＹ３  バッファメモリ
【図１】
2005258851.tif 000003
【図２】
2005258851.tif 000004
【図３】
2005258851.tif 000005
【図４】
2005258851.tif 000006
【図５】
2005258851.tif 000007
【図６】
2005258851.tif 000008
【図７】
2005258851.tif 000009
【図８】
2005258851.tif 000010
【図９】
2005258851.tif 000011
【図１０】
2005258851.tif 000012
【図１１】
2005258851.tif 000013
【図１２】
2005258851.tif 000014
【図１３】
2005258851.tif 000015
【図１４】
2005258851.tif 000016
【図１５】
2005258851.tif 000017
【図１６】
2005258851.tif 000018
【図１７】
2005258851.tif 000019
【図１８】
2005258851.tif 000020
【図１９】
2005258851.tif 000021
【図２０】
2005258851.tif 000022
【図２１】
2005258851.tif 000023
【図２２】
2005258851.tif 000024
【図２３】
2005258851.tif 000025
【図２４】
2005258851.tif 000026
【図２５】
2005258851.tif 000027
【図２６】
2005258851.tif 000028
【図２７】
2005258851.tif 000029
【図２８】
2005258851.tif 000030
【図２９】
2005258851.tif 000031
【図３０】
2005258851.tif 000032
【図３１】
2005258851.tif 000033
【図３２】
2005258851.tif 000034
【図３３】
2005258851.tif 000035
【図３４】
2005258851.tif 000036
【図３５】
2005258851.tif 000037
【図３６】
2005258851.tif 000038
【図３７】
2005258851.tif 000039
【図３８】
2005258851.tif 000040
【図３９】
2005258851.tif 000041
【図４０】
2005258851.tif 000042