(57)【要約】【課題】書換え回数寿命を伸ばすのに用意すべき代替用のメモリブロックを少なくすることができ、情報記憶に対する信頼性を向上させることができるメモリシステムを提供する。【解決手段】所定の物理アドレス単位に複数のデータブロック（２）を有する不揮発性メモリ（３）と、外部からのアクセス要求に応答して前記不揮発性メモリを制御するコントローラ（５）とを有する。前記データブロックは夫々のデータ領域に対する書き換え回数とＥＣＣコード等のエラー検査情報を保持する領域を有する。コントローラは不揮発性メモリに対する読み出し動作において、読み出し対象領域のデータに対しエラー検査情報によるエラー検査を行い、エラーがあるとき、書き換え回数が所定値を超えていれば別のデータブロックへの代替、超えていなければエラーに係るデータブロック上のデータを訂正する。【選択図】        図１
2004240793.tif 000002
【特許請求の範囲】
【請求項１】
所定の物理アドレス単位に複数のデータブロックを有する不揮発性メモリと、外部からのアクセス要求に応答して前記不揮発性メモリを制御するコントローラとを有し、
前記データブロックは夫々のデータ領域に対する書き換え回数とエラー検査情報を保持する領域を有し、
前記コントローラは前記不揮発性メモリに対する読み出し動作において、読み出し対象領域のデータに対しエラー検査情報によるエラー検査を行い、エラーがあるとき、書き換え回数が所定値を超えていれば別のデータブロックへの代替、超えていなければエラーに係るデータブロック上のデータを訂正することを特徴とするメモリシステム。
【請求項２】
前記コントローラは前記不揮発性メモリに対する書き換え動作において、書き換え対象のデータブロックに対する書き換えに失敗したときは書き換え回数が所定値を超えていれば別のデータブロックへの代替、超えていなければ失敗に係るデータブロックに対する再書き換えを行うことを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記再書き換えに失敗したときは別のデータブロックへの代替を行うことを特徴とする請求項２記載のメモリシステム。
【請求項４】
所定の物理アドレス単位に複数のデータブロックを有する不揮発性メモリと、外部からのアクセス要求に応答して前記不揮発性メモリを制御するコントローラとを有し、
前記データブロックはデータ領域に対する書き換え回数とエラー訂正フラグを保持する領域を有し、
前記コントローラは前記不揮発性メモリに対する書き換え動作において、書き換え対象のデータブロックに対する書き換え回数が所定値を超えていないとき当該データブロックに対する書き換え処理を行い、書き換え回数が所定値を超えているときは当該データブロックのエラー訂正フラグがエラー訂正済みを示していれば別のデータブロックへの代替、エラー訂正済みを示していなければ当該データブロックに対する書き換え処理を行うことを特徴とするメモリシステム。
【請求項５】
前記コントローラは前記不揮発性メモリに対する書き換え処理において、書き換え対象のデータブロックに対する書き換えに失敗したときは書き換え回数が所定値を超えていれば別のデータブロックへの代替、超えていなければ失敗に係るデータブロックに対する再書き換えを行うことを特徴とする請求項４記載のメモリシステム。
【請求項６】
前記エラー訂正フラグはエラー訂正が行なわれたか否かを示す１ビット以上のフラグ情報であることを特徴とする請求項４又は５記載のメモリシステム。
【請求項７】
前記データブロックはその物理アドレスに対応させる論理アドレスの情報保持に利用することが可能なアドレス情報保持領域を有し、
前記コントローラは論理アドレスを物理アドレスとしてデータブロックを選択し、選択したデータブロックの物理アドレスと当該データブロックの前記アドレス情報保持領域が保有する情報との一致状態により当該データブロックが代替されていないと判定することを特徴とする請求項１乃至６の何れか１項記載のメモリシステム。
【請求項８】
前記不揮発性メモリは代替先テーブルを有し、
前記代替先テーブルは、物理アドレスの配列順に則して対応する論理アドレス情報の保持に利用されるテーブル情報保持領域を有し、
前記コントローラは論理アドレスを物理アドレスとして選択したデータブロックの物理アドレスと当該データブロックの前記アドレス情報保持領域が保有する情報との不一致状態を判別したとき、当該物理アドレスに対応するテーブル情報保持領域を参照して、論理アドレスがどのデータブロックで代替されているかを判定することを特徴とする請求項７記載のメモリシステム。
【請求項９】
前記テーブル情報保持領域は論理アドレスの割り当てが行なわれていないデータブロックに対応して未使用コードが格納され、
前記コントローラはデータブロックの代替を行うとき前記代替先テーブルを参照し、前記未使用コードに応ずるデータブロックを新たな代替先として判別することを特徴とする請求項８記載のメモリシステム。
【請求項１０】
前記コントローラは論理アドレスの割り当てが行なわれていないデータブロックのアドレス情報保持領域を論理アドレス以外の無効コードにより初期化することを特徴とする請求項７記載のメモリシステム。
【請求項１１】
前記コントローラはデータブロックの代替を行なうとき、代替元データブロックのアドレス情報保持領域に代替先データブロックの物理アドレスを保持させることを特徴とする請求項１０記載のメモリシステム。
【請求項１２】
前記コントローラは書き換え失敗のデータブロックを消去状態にすることを特徴とする請求項１１記載のメモリシステム。
【請求項１３】
前記複数のデータブロックのうち特定のデータブロックは書き換え閾値回数データの記憶領域を有し、
前記コントローラは、前記書き換え閾値回数データに一致する書き換え回数を前記書き換え回数の所定値と判定することを特徴とする請求項１乃至５の何れか１項記載のメモリシステム。
【請求項１４】
不揮発性メモリはフラッシュメモリであり、前記論理アドレス情報は８ビット以上であることを特徴とする請求項１乃至１３の何れか１項記載のメモリシステム。
【請求項１５】
前記エラー検査情報はＥＣＣコードであることを特徴とする請求項１乃至１４の何れか１項記載のメモリシステム。
【請求項１６】
前記コントローラは外部インタフェース回路、バッファ、ＣＰＵ、ＥＣＣ回路、及びメモリインタフェース回路を有することを特徴とする請求項１乃至１５の何れか１項記載のメモリシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性のメモリシステムに関し、例えばフラッシュメモリカード及びハードディスク互換のフラッシュディスクなどに適用して有効な技術に関する。
【０００２】
【従来の技術】
フラッシュメモリに代表される電気的に書換え可能な不揮発性メモリに対する記憶情報の書き換えではメモリセルに電気的なストレスがかり、書き換え回数が増すに従ってメモリセルの特性が劣化する。このため、前記不揮発性メモリには特性を保証することができる書換え可能回数を定めるのが一般的である。書き換えは一部のデータブロックに局在化する場合が有り、一部のデータブロックが書換え可能回数に達したら、当該データブロックを代替エリアに有る未使用メモリブロックと入れ替える技術が提供されている（特許文献１，２参照）。
【０００３】
また、各データブロックにおけるＥＣＣによる訂正回数をカウントし、ある一定値に達したらそのデータブロックを代替エリアに有る未使用データブロックと入れ替える技術が有る（特許文献３参照）。
【０００４】
また、局所的に書き込みが集中すると一部のデータブロックだけ特性劣化が著しくなるので、ある一定の書き換え回数に至ると、自動的に書き換え回数の少ない領域との間でデータとアドレスの入れ替えを行って、不揮発性メモリの書き換え回数寿命を延ばすようにした技術が有る。例えば書き込み回数が規定値を超えるとデータブロックのアドレス割り当てを変更する（特許文献４参照）。またＥＣＣエラー回数が規定値を超えるとデータブロックのアドレス割り当てを変更する（特許文献５参照）。
【０００５】
【特許文献１】
特開平０８−９６５８９
【特許文献２】
特開平２００１−２２９０６９
【特許文献３】
ＷＯ  ０１／２２２３２
【特許文献４】
特開平０４−５０３７２０
【特許文献５】
特開平０２−１１８９９７
【０００６】
【発明が解決しようとする課題】
本発明者はフラッシュメモリなどの不揮発性メモリにおけるデータブロックの代替処理について検討した。特に、本発明者はフラッシュメモリなどの不揮発性メモリを適用した大容量且つ高速のフラッシュメモリカードやフラッシュディスクといったハードディスク互換の大容量ストレージについて検討した。
【０００７】
第１は、不揮発性メモリのデータブロックに対する代替処理の適正化である。データブロックの書き換え回数が保証値を超えても、必ずメモリセルに特性劣化を生ずるというわけではないから、特許文献１，２のように単に書き換え回数だけでデータブロックの代替を行うと、まだ使用可能なデータブロックを無駄に代替する虞がある。要するに、プロセスバラツキなどによって書換え可能回数には個体差がある。
【０００８】
第２は、情報記憶の高信頼性である。特許文献３のようにＥＣＣによる訂正回数が規定値に達した場合にデータブロックの代替を行うと、例えば３０万回書換え回数を保証しているフラッシュメモリに対して、書換え回数が５０万回を超えて始めてＥＣＣの訂正が発生してもそのデータブロックには継続して書き換えが可能になる。要するに、特性劣化が進んだ状態で依然として書き換え可能な状態に放置されるデータブロックが存在することになり、情報記憶に対する信頼性を低下させる虞がある。例えば、特性劣化によりＥＣＣ回路で訂正可能な誤りの発生が頻発すると、これに加えてディスターブなどの影響によるデータ化けを生ずれば、ＥＣＣ回路による訂正可能なビット数を超えてしまうことが予想され、最早ＥＣＣ回路の能力では誤りの訂正を行うことができず、記憶データを保護することができなくなる。
【０００９】
誤りデータが音声や画像データの場合にはその一部のデータ誤りは他の処理に影響を与えることは少ない。これに対し、演算処理データやプログラムの場合には一部のデータ誤りが他の処理に与える影響が比較的大きく、データ処理の性質によっては致命的な欠陥を生ずる場合もある。従って、ハードディスク互換のフラッシュメモリカードやフラッシュディスク等には特に情報記憶に対する高信頼性が要求される。
【００１０】
第３は、高速アクセス処理である。ハードディスク互換のフラッシュメモリカードやフラッシュディスク等に演算処理データやプログラムを格納する場合を想定すると、データ処理を高速化するには、フラッシュメモリカード等は高速アクセス処理が可能でなければならない。書き換え回数寿命を延ばすのにアクセス処理に付随してテーブル参照などが毎回必要になれば、大容量故に、その参照処理がオーバーヘッドになる。例えば特許文献４，５の技術では、データブロックに対するアドレス割り当てを示す対応テーブルをアクセス毎に毎回読み込まなければならない。
【００１１】
本発明の目的は、書換え回数寿命を伸ばすのに使用可能なデータブロックを無駄に代替することを抑制可能なメモリシステムを提供することにある。換言すれば、書換え回数寿命を伸ばすのに用意すべき代替用のメモリブロックを少なくすることができるメモリシステムを提供することにある。
【００１２】
本発明の別の目的は、特性劣化が進んだデータブロックが依然として書き換え可能な状態に放置されるのを抑制することができ、情報記憶に対する信頼性を向上させることができるメモリシステムを提供することにある。
【００１３】
本発明の更に別の目的は、書き換え回数寿命を延ばすのにアクセス処理に付随して毎回テーブル参照などを行わずに済み、高速アクセスを保証して書き換え回数寿命を延ばすことができるメモリシステムを提供することにある。
【００１４】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１５】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１６】
〔１〕本発明の第１の観点は読み出し動作時における代替制御である。この観点によるメモリシステムは、所定の物理アドレス単位に複数のデータブロックを有する不揮発性メモリと、外部からのアクセス要求に応答して前記不揮発性メモリを制御するコントローラとを有する。前記データブロックは夫々のデータ領域に対する書き換え回数とエラー検査情報を保持する領域（３１，３２）を有する。前記コントローラは前記不揮発性メモリに対する読み出し動作において、読み出し対象領域のデータに対しエラー検査情報によるエラー検査を行い、エラーがあるとき、書き換え回数が所定値を超えていれば別のデータブロックへの代替、超えていなければエラーに係るデータブロック上のデータを訂正する。
【００１７】
規定の書き換え回数になっても、素性の良い不揮発性メモリであればまだ書き換えを行うことができる。その指標としてデータブロックのデータ誤り発生状況とその時の書き換え回数とを考慮する。データブロックからの読み出しデータにデータエラーがある時に書き換え回数が所定回数に達していなければＥＣＣなどによるエラー訂正を行う。一般にフラッシュメモリなどの不揮発性メモリは、保証する書換え回数の限度内では、メモリ開発メーカが推奨又は指示するエラー訂正能力（エラー訂正可能なビット数）を持てば、訂正不可能な状況は発生しない為、ＥＣＣ等でエラー訂正されたデータを当該データブロックに書き戻してもデータ信頼度の点では問題ないと考えられるからである。一方、前記データエラーがある時に書き換え回数が所定の回数に達していれば、ＥＣＣのエラー訂正能力を超えたビット数のエラーを生ずる虞がそれ以降顕在化すると考えられるので、データブロックを代替し、代替先の新たなデータブロックに訂正データを保持させて利用する。
【００１８】
したがって、上記代替手法によれば、ＥＣＣとの組み合わせにより書き換え回数が保証限度を超えても代替でき、結果として、単に規定の書き換え回数だけを指標として代替を行う場合に比べて、１データブロックアドレス当たりの平均書換え回数を増やすことができる。このことにより、過剰に代替エリアを持たなくてもよく、また代替処理にかかる処理オーバヘッドを抑制することが出来ることから、高速アクセスを保証することが可能となる。
【００１９】
更に、専らＥＣＣによるエラー発生回数をデータブロック代替の指標とする場合のように特性劣化が進んだデータブロックが依然として書き換え可能な状態に放置されるのを抑制することができ、情報記憶に対する信頼性を向上させることができる。
【００２０】
本発明の具体的な形態として、前記データブロックはその物理アドレスに対応させる論理アドレスの情報保持に利用することが可能なアドレス情報保持領域（３０）を有する。このとき、前記コントローラは論理アドレスを物理アドレスとしてデータブロックを選択し、選択したデータブロックの物理アドレスと当該データブロックの前記アドレス情報保持領域が保有する情報との一致により当該データブロックが代替されていないと判定する。したがって、選択したデータブロックの物理アドレスと当該データブロックの前記アドレス情報保持領域が保有する情報との不一致を判別したときだけ、代替先を調べるためのテーブル参照等を行えばよい。アクセス処理に付随して毎回テーブル参照などを行わずに済み、高速アクセスを保証して書き換え回数寿命を延ばすことができる。
【００２１】
代替先を調べるためのテーブルとして、前記不揮発性メモリは例えば代替先テーブルを有する。前記代替先テーブルは、物理アドレスの配列順に則して対応する論理アドレス情報の保持に利用されるテーブル情報保持領域（４０）を有する。前記コントローラは論理アドレスを物理アドレスとして選択したデータブロックの物理アドレスと当該データブロックの前記アドレス情報保持領域が保有する情報との不一致を判別したとき、物理アドレスに対応するテーブル情報保持領域を参照して、論理アドレスがどのデータブロックで代替されているかを判定することができる。
【００２２】
新たな代替先の判別の為に、前記テーブル情報保持領域は論理アドレスの割り当てが行なわれていないデータブロックに対応して未使用コード（ＵＳＦＬＧ）が格納される。前記コントローラはデータブロックの代替を行うとき前記代替先テーブルを参照し、前記未使用コードに応ずるデータブロックを新たな代替先として判別する。
【００２３】
前記アドレス情報保持領域に対して、前記コントローラは論理アドレスの割り当てが行なわれていないデータブロックのアドレス情報保持領域を論理アドレス以外の無効コードにより初期化する。更に前記コントローラはデータブロックの代替を行なうとき、代替元データブロックのアドレス情報保持領域に代替先データブロックの物理アドレスを保持させる。また、前記コントローラは書き換え失敗のデータブロックを消去状態にする。代替されたデータブロックのアドレス情報保持領域に対する取扱を統一し、また、障害発生時などにデータブロックの情報から代替履歴を参照可能にするためである。
【００２４】
本発明の具体的な別の形態として、前記複数のデータブロックのうち特定のデータブロックは書き換え閾値回数データ（ＴＤＡＴ）の記憶領域を有する。前記コントローラは、前記書き換え閾値回数データに一致する書き換え回数を前記書き換え回数の所定値と判定する。書き換え可能な回数は半導体製造プロセスに応じてばらつきがあるから、それに則して書き換え回数寿命を伸ばすことが可能になる。
【００２５】
不揮発性メモリは例えばフラッシュメモリである。前記論理アドレス情報は３２ビット以上である。フラッシュメモリの記憶容量をギガ・ビット以上の大容量化することができる。前記エラー検査情報にはＥＣＣコード、ＣＲＣコード、パリティコード、及び総積和（ＳＵＭ値）コードを用いてよい。
【００２６】
前記コントローラは、例えば外部インタフェース回路、バッファ、ＣＰＵ、ＥＣＣ回路、及びメモリインタフェース回路によって構成すればよい。
【００２７】
〔２〕本発明の第２の観点は書き換え動作時における代替制御である。この観点によるメモリシステムでは、前記コントローラは前記不揮発性メモリに対する書き換え動作において、書き換え対象のデータブロックに対する書き換えに失敗したときは書き換え回数が所定値を超えていれば別のデータブロックへの代替、超えていなければ失敗に係るデータブロックに対する再書き換えを行う。前記再書き換えに失敗したときは別のデータブロックへの代替を行う。
【００２８】
本発明の第３の観点は書き換え動作時における別の代替制御である。この観点によるメモリシステムは、所定の物理アドレス単位に複数のデータブロックを有する不揮発性メモリと、外部からのアクセス要求に応答して前記不揮発性メモリを制御するコントローラとを有し、前記データブロックはデータ領域に対する書き換え回数とエラー訂正フラグを保持する領域（３１，３３）を有する。前記コントローラは前記不揮発性メモリに対する書き換え動作において、書き換え対象のデータブロックに対する書き換え回数が所定値を超えていないとき当該データブロックに対する書き換え処理を行い、書き換え回数が所定値を超えているときは当該データブロックのエラー訂正フラグがエラー訂正済みを示していれば別のデータブロックへの代替、エラー訂正済みを示していなければ当該データブロックに対する書き換え処理を行う。前記コントローラは前記不揮発性メモリに対する書き換え処理において、書き換え対象のデータブロックに対する書き換えに失敗したときは書き換え回数が所定値を超えていれば別のデータブロックへの代替、超えていなければ失敗に係るデータブロックに対する再書き換えを行なってよい。前記エラー訂正フラグは例えばエラー訂正が行なわれたか否かを示す１ビット以上のフラグ情報である。
【００２９】
第２及び第３の観点による発明の具体的な形態として上記第１の観点の発明と同じ手段を採用して良い。
【００３０】
第２及び第３の観点による発明も上記第１の観点の発明と同様に、ＥＣＣとの組み合わせにより書き換え回数が保証限度を超えても代替でき、過剰に代替エリアを持たなくても済み、更に、専らＥＣＣによるエラー発生回数をデータブロック代替の指標とする場合のように特性劣化が進んだデータブロックが依然として書き換え可能な状態に放置されるのを抑制することができ、情報記憶に対する信頼性を向上させることができる。そして、コントローラは論理アドレスを物理アドレスとしてデータブロックを選択するから、アクセス処理に付随して毎回テーブル参照などを行わずに済み、高速アクセスを保証して書き換え回数寿命を延ばすことができる。
【００３１】
【発明の実施の形態】
《フラッシュメモリカード》図１には本発明のメモリシステムの一例であるフラッシュメモリカードが示される。同図に示されるフラッシュメモリカード１は、所定のケーシングに、所定の物理アドレス単位に複数のデータブロック２を有する不揮発性メモリ例えばフラッシュメモリ３と、外部情報処理装置４からのアクセス要求に応答して前記フラッシュメモリ３を制御するコントローラ５とを有する。所定のケーシングは例えばＰＣカード又は１．８インチのハードディスクのケーシングなどである。外部情報処理装置４はパーソナルコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、又はディジタルカメラなどのホスト装置である。データブロック２はデータ領域２Ｄと管理領域２Ｃに大別される。
【００３２】
前記フラッシュメモリ２は、特に図示はしないが、電気的に消去及び書き込み可能なフラッシュメモリセルをマトリクス配置したメモリセルアレイを有する。このメモリセルアレイに前記複数のデータブロックが構成される。各データブロックは１０２４ビットのような一定の記憶容量を有し、複数個のフラッシュメモリセルから成る。
【００３３】
フラッシュメモリセルには、特に制限されないが、チャンネル領域の上に絶縁膜で分離された導体としてのフローティングゲートに電荷を注入可能にするフローティングゲート構造、或はシリコン窒化膜などの電荷トラップ領域に電荷を局在的に注入可能にする電荷トラップ構造などを採用することができる。例えばフローティングゲート構造の場合には電荷の注入状態と放出状態の閾値電圧の相違に応じて記憶情報の論理値を決める。電荷トラップ構造においては電荷のトラップ位置やトラップ電荷の極性に応じて多値の情報記憶を行なうことが容易である。そのようなフラッシュメモリセルに対するデータの記憶は、例えばメモリセルが保持する電荷を初期的状態にする第１処理（例えばイレーズ処理若しくは消去処理）、初期的状態から電荷状態を変更する第２処理（例えばプログラム処理若しくは書き込み処理）によって行なわれる。例えばフローティングゲート型のフラッシュモリセルのドレインはビット線に、ソースはソース線に、コントロールゲートはワード線に接続される。イレーズ処理はソース線に高電圧を印加して電子をソース線に引き抜く。プログラム処理はワード線に高電圧を印加してドレインからフローティングゲートにホットエレクトロンを注入する。特に制限されないがイレーズ処理はデータブロック単位とされる。
【００３４】
前記コントローラ５は、特に制限されないが、外部装置インタフェース回路１０、フラッシュメモリインタフェース回路１１、マイクロコンピュータ（ＭＰＵ）１２、ＲＡＭ（ランダムアクセスメモリ）から成るバッファ１３、ＥＣＣ（エラーコレクティングコード）回路１４、及び内部バス１５を有する。外部装置インタフェース回路１０は外部情報処理装置４とのインタフェース制御を行う。例えば外部とのインタフェース仕様は、ハードディスク互換を考慮すればＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）等とされる。フラッシュメモリインタフェース回路１１は、フラッシュメモリ３のコマンド及びデータアクセス仕様を満足するフラッシュメモリインタフェース制御を行う。ＭＰＵ１２は中央処理装置（ＣＰＵ）、ＣＰＵのワークＲＡＭ、及びＣＰＵの制御プログラムＲＯＭ等を有し、ＣＰＵが制御プログラムを実行して、外部装置インタフェース回路１０による外部インタフェース制御、フラッシュメモリインタフェース回路１１によるメモリインタフェース制御等を行う。バッファ１３は外部情報処理装置４からの書込みデータ、外部情報処理装置４への読み出しデータを一時的に蓄える。
【００３５】
本発明の実施形態では、コントローラとメモリを分離しているが、その２つ及び周辺部品を１つにした混載半導体としてもかまわない。
【００３６】
外部情報処理装置４から外部装置インタフェース回路１０にデータアクセス要求があると、ＭＰＵ１２はアクセス対象データの物理アドレスであるセクタアドレス及びアクセスコマンド等をフラッシュメモリインタフェース回路６からフラッシュメモリ２に与え、フラッシュメモリ２のデータ書き換え動作及びデータ読み出し動作等を制御する。データ書き換え動作は前記イレーズ処理とプログラム処理によって行なわれる。書き換え動作では外部情報処理装置４から供給された書き込みデータがフラッシュメモリ３に与えられる。読み出し動作ではフラッシュメモリ３から読み出されたデータが外部情報処理装置１１に出力される。
【００３７】
フラッシュメモリ３の各データブロック（例えばセクタとも称する）２にはデータブロックの物理的な配置である物理アドレス（セクタアドレスとも称する）が割当てられる。要するに、アドレス信号をデコードしてデータブロックを選択するためのアドレスデコーダのデコード論理にそのアドレス割り当てが組み込まれている。前記物理アドレスのビット数は例えば３２ビットである。外部情報処理装置４はデータブロックの論理的な配置を論理アドレスで管理する。ＭＰＵ１２は外部情報処理装置４が指定する論理アドレスを物理アドレスとしてフラッシュメモリ３のアクセスに利用する。要するに、ＭＰＵ１２は論理アドレスと物理アドレスの対応テーブルを常時参照することを要しないということである。
【００３８】
《フラッシュメモリのデータ構造》図２にはフラッシュメモリ３のデータブロックによるデータ構造が例示される。図２ではデータブロック２として例えば物理アドレス０〜ｚまでのデータブロック２（０）〜２（ｚ）を有し、物理アドレス０〜ｎ−１までのデータブロック２（０）〜２（ｎ−１）はユーザデータ領域２０、物理アドレスｎ〜ｚ−１までのデータブロック２（ｎ）〜２（ｚ−１）は代替領域２１、物理アドレスｚのデータブロック２（ｚ）は代替先テーブルの形成領域２２とされる。各データブロック２には前述の通り物理アドレスが割り当てられ、管理領域２Ｃとして、論理アドレス領域３０、書換え回数領域３１、ＥＣＣコード領域３２を有する。
【００３９】
前記論理アドレス領域３０は物理アドレスに対応される論理アドレスの情報保持に利用することが可能なアドレス情報保持領域とされる。書換え回数領域３１には対応するデータブロック２の書換え回数が保持される。ＥＣＣコード領域３２は対応するデータブロック２のエラー検査情報としてＥＣＣコードを保有する。ＥＣＣコードは例えばデータブロック全体に対するＥＣＣコードとされる。データ領域だけに対するＥＣＣコードであってもよい。論理アドレスの割り当てに利用されていない論理アドレス領域３０はコントローラ５により無効コードＩＶＣＯＤが初期的に書込まれる。即ち、物理アドレスｚを除く代替領域３１の論理アドレス領域３０は当初無効コードＩＶＣＯＤを有する。前記物理アドレスｚのデータブロック２（ｚ）において論理アドレス領域３０にはテーブルフラグが格納され、当該データブロック２（ｚ）のデータ領域には代替先テーブルＳＴＬＢが格納される。
【００４０】
前記コントローラ５は論理アドレスを物理アドレスとしてデータブロック２を検索し、検索したデータブロック２の物理アドレスと当該データブロックの前記論理アドレス領域３０が保有する情報との一致により当該データブロックが代替されていないと判定する。したがって、検索されたデータブロックの物理アドレスと当該データブロックの前記論理アドレス領域３０が保有する情報との不一致を判別したときだけ、代替先を調べるために代替先テーブルＳＴＬＢの参照等を行えばよい。アクセス処理に付随して毎回代替先テーブルＳＴＬＢの参照を行わなくてもよい。
【００４１】
本発明の実施形態では、毎回代替先テーブルＳＴＬＢを参照する方式を説明する。しかし、代替領域を最小限にすることが本発明では可能なので、テーブルＳＴＬＢ参照をせずに直接代替領域を検索することも可能である。
【００４２】
図３には前記代替先テーブルＳＴＬＢの一例が示される。代替先テーブルＳＴＬＢは、ユーザデータ領域２０における不良若しくは書換え寿命が尽きたデータブロック２を代替する代替領域２１のデータブロックを調べるためのデータテーブルである。この代替先テーブルＳＴＬＢは、物理アドレスの配列順に則してテーブル情報保持領域４０、即ち４０（０）〜４０（ｚ）を有する。テーブル情報保持領域４０（０）〜４０（ｚ）は物理アドレスの配列順に則して対応する論理アドレス情報の保持に利用される。テーブル情報保持領域４０（０）〜４０（ｚ）に対応する物理アドレスは当該テーブル情報保持領域のオフセットから得られる。例えば物理アドレス（ｎ−１）に対応する論理アドレス（ｎ−１）は代替先テーブルＳＴＬＢのオフセット（ｎ−１）に位置するテーブル情報保持領域４０（ｎ−１）から得られる。この代替先テーブルＳＴＬＢは、現在の論理アドレスが何処の物理アドレスに割り当てられているか、及び未使用領域は何処にあるのかを示すことができる。
【００４３】
前記コントローラ５は論理アドレスを物理アドレスとして検索したデータブロックの物理アドレスと当該データブロックの前記論理アドレス領域３０が保有する情報との不一致を判別したとき、前記代替先テーブルＳＴＬＢの物理アドレスに対応するテーブル情報保持領域４０を参照して、論理アドレスがどのデータブロックで代替されているかを判定することができる。例えば図３に従えば、物理アドレス（ｎ）に対応する論理アドレスは、代替先テーブルＳＴＬＢのオフセット（ｎ）に位置するテーブル情報保持領域４０（ｎ）の情報より、論理アドレス（ｍ）となる。
【００４４】
新たな代替先の判別の為に、前記代替先テーブルＳＴＬＢのテーブル情報保持領域４０（０）〜４０（ｚ（―１））は論理アドレスの割り当てが行なわれていないデータブロックに対応して未使用コードとしての未使用フラグＵＳＦＬＧが格納される。前記コントローラ５はデータブロックの代替を行うとき前記代替先テーブルＳＴＬＢを参照し、前記未使用フラグＵＳＦＬＧに応ずるデータブロックを新たな代替先と判定する。
【００４５】
前記代替先テーブルＳＴＬＢのオフセット（ｚ）におけるテーブル情報保持領域４０（ｚ）は書き換え閾値回数データＴＤＡＴの記憶領域４０（ｚ）として利用される。コントローラ５はデータブロックの代替可否の判別若しくは書換え寿命の判別にその書き換え閾値回数データＴＤＡＴを利用する。データブロックの書換え可能回数は半導体製造プロセスに応じてばらつきがあるから、それに則して書き換え回数寿命を判定できるようにするためである。
【００４６】
《読出し動作時の代替制御》次に前記データブロックに対する読出し動作時における代替制御について説明する。
【００４７】
図４にはコントローラによる読出し動作の制御フローが例示される。論理アドレスｍのデータ読み出し処理が指示されると、それに応答して物理アドレスｍのデータブロックをバッファ１３に読み出す（Ｓ１）。読み出されたデータブロック２（ｍ）の論理アドレス領域３０が保持する論理アドレス情報とデータブロック２（ｍ）の物理アドレスが一致するか否かが判定される（Ｓ２）。一致であればデータブロックの代替は行なわれていないと判断される。不一致であればデータブロックの代替が行なわれていると判断され、代替先テーブルＳＴＬＢを参照して代替領域２１より論理アドレスｍのデータブロックを検索して当該データブロックの記憶情報をバッファ１３に読み出す（Ｓ３）。ステップＳ２における一致判定に係るデータブロック、又はステップＳ３で検索された代替データブロックの全データに対してＥＣＣ回路により誤りの有無を判定する（Ｓ４）。本発明では、論理アドレスコードを用いてユーザデータを管理している。しかし、これ以外に例えばＳ２のチェックでＥＣＣコードが訂正無し又は訂正可能であれば、物理アドレスと論理アドレスが一致しているとみなし、訂正不可能であれば代替されているとみなして、代替領域を検索して論理アドレスｍを参照する方式でも、本発明を実現することが出来る。誤りがなければコントローラ５は論理アドレスｍのユーザデータの転送許可を外部情報処理装置４に要求し（Ｓ５）、外部情報処理装置４からの許可を待って論理アドレスｍのデータをバッファ１３から外部情報処理装置４に転送する（Ｓ６）。
【００４８】
前記ステップＳ４の判定にて誤りが有れば、バッファ１３上で読み出しデータを訂正する（Ｓ７）。そして書き換え回数が書き換え閾値回数データＴＤＡＴの示す回数（例えばＫ回）以上であるかの判定が行なわれる（Ｓ８）。Ｋ回以上でなければバッファ１３内の論理アドレスｍのデータを訂正して、当該論理アドレスｍに対応する物理アドレスのデータブロックに訂正データを書き戻して、フラッシュメモリ３上の対応する記憶データを訂正する。その後、前記ステップＳ５、Ｓ６へ進んで外部情報処理装置４へのデータ転送を行なう。
【００４９】
前記ステップＳ８の判定により書き換え回数がＫ回以上の場合、代替先テーブルＳＴＬＢを参照して代替領域２１より未使用のデータブロックを検索する（Ｓ９）。検索された未使用データブロックを論理アドレスｍの新たなデータブロックとする代替処理を行なう（Ｓ１０）。この代替処理では、第１に、前記検索された前記未使用データブロックの論理アドレス領域に論理アドレスｍの情報を格納し、前記未使用データブロックのデータ領域にユーザデータｍを格納し、また、代替前の論理アドレスｍのデータブロックの論理アドレス領域に前記未使用データブロックの物理アドレス情報を格納する。第２に、前記代替先テーブルＳＴＬＢ上のテーブル情報保持領域４０に対し、未使用データブロックの物理アドレスに応ずるオフセット位置に論理アドレスｍの情報を格納する。その後、前記ステップＳ５、Ｓ６へ進んで外部情報処理装置４へのデータ転送を行なう。
【００５０】
図５には図４の読み出し制御を用いてフラッシュメモリカード１からデータを読み出す動作の全体的なフローチャートが例示される。同図の動作では、読み出し前のフラッシュメモリ３の状態は図２の状態とされ、読み出し後のフラッシュメモリ３の状態は図６の状態、読み出し後の代替先テーブルＳＴＬＢの状態は図３の状態とされる。書き換え閾値回数はＫ回とする。
【００５１】
外部情報処理装置４がユーザデータ領域２０の特定のデータブロック、例えば論理アドレスｍのデータ読み出し要求をコントローラ５に指示する（Ｔ１）。これを受けてコントローラ５は、物理アドレスｍのデータブロックのデータをフラッシュメモリ３から受取る（Ｔ２）。コントローラ５は受取った読み出しデータに対して図４の処理を行なう。この例では、図２の通り、データブロック２（ｍ）の論理アドレス領域３０の論理アドレスは物理アドレスｍに等しく、また、そのデータブロック２（ｍ）のデータにはＥＣＣコードによって訂正可能な誤りが発生しているものとする。更に、データブロック２（ｍ）の書き換え回数は上限Ｋ回を超えてＫ＋１回とされている。コントローラ５は代替領域２１の未使用データブロックを検索するために物理アドレスｚの代替先テーブルＳＴＬＢをフラッシュメモリ３から読み込む（Ｔ３）。コントローラ５は代替先テーブルＳＴＬＢから未使用フラグ（ＵＳＦＬＧ）を保有するテーブル情報保持領域を検索して、例えばテーブル情報保持領域４０（ｎ）を得る。この領域４０（ｎ）のオフセットに基づいてコントローラ５は物理アドレス（ｎ）のデータテーブルの情報を読出し、その論理アドレス領域３０に無効コードＩＶＣＯＤが格納されていること、ＥＣＣコード領域のＥＣＣコードに基づいてエラーが無いことを確認する。（Ｔ４）。無効コードが格納されていなかったり、ＥＣＣコードによる誤りがある場合にはＴ３，Ｔ４の処理を繰り返す。
【００５２】
処理Ｔ４において無効コードが確認され、ＥＣＣコードによる誤りのないことが確認された場合には、代替前の論理アドレスｍのデータブロックの論理アドレス領域をアドレス情報ｎに書き換え（Ｔ５）、物理アドレスｎのデータブロックの論理アドレス領域に論理アドレスｍの情報を格納すると共にそのデータ領域にユーザデータｍを書込み（Ｔ６）、物理アドレスｎに応ずるオフセット位置に論理アドレスｍの情報を格納するように前記代替先テーブルＳＴＬＢを書き換える（Ｔ７）。
【００５３】
この後コントローラ５は読出しデータの転送許可を外部情報処理装置４に要求し（Ｔ８）、外部情報処理装置４からの許可を待って論理アドレスｍのデータ（ユーザデータｍ）を外部情報処理装置４に転送する（Ｔ９）。転送の後、コントローラ５は外部情報処理装置４に読出し処理終了を通知する（Ｔ１０）。
【００５４】
上記読出し動作時の代替制御では、規定の書き換え回数になっても、素性の良い不揮発性メモリであればまだ書き換えを行うことができる、という点に着目している。その指標としてデータブロックのデータに対するＥＣＣエラーチェックの結果と書き換え回数とを考慮する。データブロックからの読み出しデータにデータエラーがある時に書き換え回数が規定の閾値に達していなければＥＣＣなどによる訂正を行う。一般にフラッシュメモリなどの不揮発性メモリは、保証する書換え回数の限度内では、メモリ開発メーカが推奨又は指示するエラー訂正能力（エラー訂正可能なビット数）を持てば、訂正不可能な状況は発生しない為、ＥＣＣ等でエラー訂正されたデータを当該データブロックに書き戻してもデータ信頼度の点では問題ないと考えられるからである。一方、前記データエラーがある時に書き換え回数が規定の閾値を超えていれば、ＥＣＣのエラー訂正能力を超えたビット数のエラーを生ずる虞がそれ以降顕在化すると考えられるので、データブロックを代替し、代替先の新たなデータブロックに訂正データを保持させて利用する。
【００５５】
したがって、上記代替手法によれば、ＥＣＣとの組み合わせにより書き換え回数が保証限度を超えても代替でき、結果として、単に規定の書き換え回数だけを指標として代替を行う場合に比べて、１データブロックアドレス当たりの平均書換え回数を増やすことができる。このことにより、過剰に代替エリアを持たなくてもよい。
【００５６】
更に、専らＥＣＣによるエラー発生回数をデータブロック代替の指標とする場合のように特性劣化が進んだデータブロックが依然として書き換え可能な状態に放置されるのを抑制することができ、情報記憶に対する信頼性を向上させることができる。
【００５７】
《書換え動作時における代替制御》次に前記データブロックに対する書換え動作時における代替制御について説明する。
【００５８】
図７にはコントローラによる書換え動作の制御フローが例示される。論理アドレスｍのデータ書換え処理が指示されると、それに応答してコントローラ５は外部情報処理装置４に論理アドレスｍに対する書き換えデータ（ユーザデータｍの書き換えデータ）の転送許可を通知する（Ｓ１１）。コントローラ５はこの許可を受けて外部情報処理装置４が出力する前記書き換えデータを受取ってバッファ１３に格納する（Ｓ１２）。コントローラ５は物理アドレスｍのデータブロックをバッファ１３に読み出す（Ｓ１３）。読み出されたデータブロック２（ｍ）の論理アドレス領域３０が保持する論理アドレス情報とデータブロック２（ｍ）の物理アドレスが一致するか否かが判定される（Ｓ１４）。一致であればデータブロックの代替は行なわれていないと判断され、論理アドレスｍに応ずる物理アドレスｍのデータブロック２（ｍ）におけるデータ領域をバッファ１３内のデータで書換える（Ｓ１５）。不一致であればデータブロックの代替が行なわれていると判断され、代替先テーブルＳＴＬＢを参照して論理アドレスｍが代替されているデータブロックを検索し（Ｓ１６）、その代替されているデータブロックにおけるデータ領域をバッファ１３内のデータで書換える（Ｓ１５）。ステップＳ１５の書き換えにおいて、コントローラ５はフラッシュメモリ３より書換え失敗の通知の有無を判定する（Ｓ１７）。失敗がなければその書き換え処理は終了される。失敗が有るときは、コントローラ５は、そのときの書き換え回数が書き換え閾値回数データＴＤＡＴの示す回数（例えばＫ回）以上であるかの判定が行なわれる（Ｓ１８）。
【００５９】
前記ステップＳ１８の判定により書き換え回数がＫ回以上の場合、代替先テーブルＳＴＬＢを参照して代替領域２１より未使用のデータブロックを検索する（Ｓ１９）。検索された未使用データブロックを論理アドレスｍの新たなデータブロックとする代替処理を行なう（Ｓ２０）。この代替処理では、第１に、前記検索された前記未使用データブロックの論理アドレス領域に論理アドレスｍの情報を格納し、前記未使用データブロックのデータ領域にバッファ１３上の書換え用ユーザデータｍを格納し、また、代替前の論理アドレスｍのデータブロックの論理アドレス領域に前記未使用データブロックの物理アドレス情報を格納する。第２に、前記代替先テーブルＳＴＬＢ上のテーブル情報保持領域４０に対し、未使用データブロックの物理アドレスに応ずるオフセット位置に論理アドレスｍの情報を格納する。コントローラ５は当該代替処理に対してフラッシュメモリ３より書き換え失敗通知が有るか否かを判定し（Ｓ２１）、なければその書き換え処理を終了する。書き換え失敗であれば再度ステップＳ１９，Ｓ２０の処理を繰返す。ステップＳ２０の代替処理に対してはリトライ回数の制限、又は書き換え回数によって制限を付しても良く、制限回数に足したときはエラー終了とされる。
【００６０】
前記ステップＳ１８の判定により書き換え回数がＫ回以上でなければコントローラ５はバッファ１３内の書換え用ユーザデータｍで論理アドレスｍのデータ領域に対して再度書き込み処理を行なう（Ｓ２２）。この書き込みに対してもステップＳ２１で書き込み失敗通知の有無を判定し、失敗であればステップＳ１９，Ｓ２０の処理が行なわれる。
【００６１】
図８には書き換え処理要求に応答するフラッシュメモリの書換えが失敗したときの動作フローチャートが示される。同図の書き換えでは、書き換え前のフラッシュメモリ３の状態は図２の状態とされ、書き換え後のフラッシュメモリ３の状態は図９の状態とされる。書き換え閾値回数はＫ回とする。
【００６２】
外部情報処理装置４から論理アドレスｍのデータ書換え処理（Ｔ１１）、それに応答するコントローラ５から外部情報処理装置４への書き換えデータ（ユーザデータｍ書き換えデータ）の転送許可通知（Ｔ１２）、外部情報処理装置４からコントローラ５への前記ユーザデータｍ書き換えデータの転送処理（Ｔ１３）が行なわれる。コントローラ５は物理アドレスｍのデータブロックをフラッシュッメモリ３から読み出し（Ｔ１４）、論理アドレスｍのデータブロックが代替されていないことを確認して当該物理アドレスｍのデータブロックをユーザデータｍ書き換えデータにより書き換える（Ｔ１５）。このとき、例えばフラッシュメモリ３は書き換え失敗通知をコントローラ５に発行する（Ｔ１６）。書き換え回数は上限回数Ｋを超えているから、データブロックを代替するためにデータブロック２（ｚ）の代替先テーブルＳＴＬＢをフラッシュメモリ３から読み出す（Ｔ１７）。コントローラ５は代替先テーブルＳＴＬＢを検索して代替先としてアドレスｎのデータブロックを認識し、今度は当該物理アドレスｎのデータブロックをフラッシュメモリ３から読み出す（Ｔ１８）。読み出した物理アドレスｎのデータブロックに対してエラー検出などを行ない、正常であればこの物理アドレスｎのデータブロックを代替に用いるため、コントローラ５は前述の通り其の代替を反映するために代替先テーブルＳＴＬＢを書き換え（Ｔ１９）、物理アドレスｎのデータブロックをユーザデータｍ書き換えデータで書き換える（Ｔ２０）。最後にコントローラ５は外部情報処理装置４に処理の終了を通知する（Ｔ２１）。
【００６３】
図８の動作による書き換え処理結果を示す図９において、図２の初期状態のフラッシュメモリの物理アドレスｍに対し、図６と比べると、物理アドレスｍの書換えが失敗している為、全てのデータが無効になっている。ここでいう無効とは例えば全データが消去状態又はＥＣＣ訂正不可状態等になっていることを意味する。
【００６４】
読み出し動作ではＥＣＣエラーが有ったときに書き換え回数を参照してそれが上限を超えている場合にデータブロックの代替を行なった。書き換えの場合は、書き換えに失敗したときに書き換え回数を参照してそれが上限を超えている場合にデータブロックの代替を行なう。これはメモリセルの特性が劣化するに従って書き換え失敗の確率も高くなると考えられるからであり、書き換え失敗のときに書き換え回数が上限を超えていればメモリセルの書き換え回数寿命が尽きるのも真近であると考える。これは、読み出し動作時にＥＣＣエラーが有ったとき書き換え回数が上限を超えている場合にはメモリセルの書き換え回数寿命が尽きるのも真近であると考えるのと同様である。したがって、書き換えの場合にも読み出しの場合と同様に、ＥＣＣとの組み合わせにより書き換え回数が保証限度を超えても代替でき、過剰に代替エリアを持たなくても済み、更に、専らＥＣＣによるエラー発生回数をデータブロック代替の指標とする場合のように特性劣化が進んだデータブロックが依然として書き換え可能な状態に放置されるのを抑制することができ、情報記憶に対する信頼性を向上させることができる。そして、コントローラは論理アドレスを物理アドレスとしてデータブロックを選択するから、アクセス処理に付随して毎回テーブル参照などを行わずに済み、高速アクセスを保証して書き換え回数寿命を延ばすことができる。
【００６５】
《書換え動作時における別の代替制御》次に前記データブロックに対する書換え動作時における代替制御の別の例について説明する。
【００６６】
図１０にはフラッシュメモリ３のデータ構造の別の例が示される。図２のデータ構造との相違点は各データブロック２にＥＣＣ訂正フラグ領域３３を追加したことである。ＥＣＣ訂正フラグ領域３３は対応するデータブロックをリードした時、１回でもＥＣＣ訂正を行ったことがある場合に訂正有りフラグが立てられる。訂正がなければ訂正無しフラグが立てられている。代替領域２１において代替される前のＥＣＣ訂正フラグ領域３３は無効データ、即ち、消去状態にされている。図１０の例では、物理アドレスｍに以前ＥＣＣによる訂正が発生していたことを表している。
【００６７】
図１１には図１０のデータ構造に対するコントローラによる書換え動作の制御フローが例示される。論理アドレスｍのデータ書換え処理が指示されると、それに応答してコントローラ５は外部情報処理装置４に論理アドレスｍに対する書き換えデータ（ユーザデータｍの書き換えデータ）の転送許可を通知する（Ｓ３０）。コントローラ５はこの許可を受けて外部情報処理装置４が出力する前記書き換えデータを受取ってバッファ１３に格納する（Ｓ３１）。コントローラ５は論理アドレスｍのデータブロックを読み出し（Ｓ３２）、当該データブロックの書き換え回数が上限のＫ回以上であるか否かを判定する（Ｓ３３）。Ｋ回に達していなければバッファ１３が保有するユーザデータｍ書き換えデータによって論理アドレスｍのデータブロックのデータ領域を書き換える（Ｓ３４）。書き換え回数がＫ回以上であるときは、その論理アドレスｍのデータブロックにＥＣＣ訂正フラグが立っているか否かを判定する（Ｓ３５）。ＥＣＣ訂正フラグが立っていなければステップＳ３４の書き換え処理を行なう。ＥＣＣ訂正フラグが立っているときはその論理アドレスｍのデータブロックを未使用データブロックに代替し、代替先にユーザデータｍ書き換えデータを書き込む（Ｓ３６）。
【００６８】
特に図示はしないがステップＳ３４にて書き込み失敗のときはステップＳ３６の処理に進めばよい。また、特に図示はしないが、図７における書き換えを失敗したときの処理と、図１１におけるＥＣＣエラー訂正フラグの有無に応じた処理の双方を行なうことも可能である。
【００６９】
図１２には図１０のデータ構造のフラッシュメモリ３に対して図１１の処理にしたがって代替が行なわれた後におけるフラッシュメモリのデータ構造が例示される。物理アドレスｍのデータ領域２Ｄに記憶されていたユーザデータｍは物理アドレスｎに代替されている。
【００７０】
図１１の書き換えの場合は、書き換え回数が上限を超えている場合に一度でもＥＣＣ訂正が行なわれている場合にはデータブロックの代替を行なって書き換えを行なう。これは、読み出し動作時にＥＣＣエラーが有ったとき書き換え回数が上限を超えている場合にはメモリセルの書き換え回数寿命が尽きるのも真近であると考えるのと同様である。したがって、図１１の書き換えの場合にも読み出しの場合と同様に、ＥＣＣとの組み合わせにより書き換え回数が保証限度を超えても代替でき、過剰に代替エリアを持たなくても済み、更に、専らＥＣＣによるエラー発生回数をデータブロック代替の指標とする場合のように特性劣化が進んだデータブロックが依然として書き換え可能な状態に放置されるのを抑制することができ、情報記憶に対する信頼性を向上させることができる。そして、コントローラは論理アドレスを物理アドレスとしてデータブロックを選択するから、アクセス処理に付随して毎回テーブル参照などを行わずに済み、高速アクセスを保証して書き換え回数寿命を延ばすことができる。
【００７１】
最後に高速アクセスの保証という点について説明を加える。図１３には以上説明した本発明による読み出し処理と書き込み処理の動作フローの概略が示される。図１４にはある一定の書き換え回数に至ると、自動的に書き換え回数の少ない領域との間でデータとアドレスの入れ替えを行って、不揮発性メモリの書き換え回数寿命を延ばすようにした比較例に係る技術による読み出し処理と書き込み処理の動作フローの概略が示される。図１４の場合には、読み出しと書き換えの何れにおいても、論理アドレスと物理アドレスの対応を定義した入れ替えテーブルの参照が必須となる。その意味で図１４の動作は常時入れ替え先参照方式とされる。これに対し本発明に係る図１３の場合には前述の通り論理アドレスを物理アドレスとしてフラッシュメモリのアクセスを行なうから、代替されているときだけ代替先テーブルを参照すれば足りる。本発明の場合にはテーブル参照という点において高速アクセスも保証されている。
【００７２】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００７３】
例えば、不揮発性メモリはフラッシュメモリに限定されない。ＥＥＰＲＯＭ、高誘電体メモリ等であってもよい。代替領域の検索方式として代替先テーブルＳＴＬＢのようなテーブルを参照する方式に限定されない。そのようなテーブルを用いる代わりに、直接代替領域の論理アドレス領域３０を読み出して検索するようにしてもよい。但し検索時間は増える傾向に有ると考えられる。代替領域の未使用データブロックに対しその論理アドレス領域には無効コードＩＶＣＯＤを保持させることに限定されない。単に無効データ等にしておいてもよい。また、図１０のデータ構造においてＥＣＣ訂正フラグ領域３３に訂正有りフラグを立てる条件は上記説明に限定されない。所定の複数回ＥＣＣによるエラー訂正を行なったことを条件にしてもよい。
【００７４】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるハードディスク互換のフラッシュディスク若しくはフラッシュメモリカードに適用した場合について説明したが、本発明はその他種々のメモリシステムに適用することができる。
【００７５】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００７６】
すなわち、メモリシステムにおいて書換え回数寿命を伸ばすのに使用可能なデータブロックを無駄に代替することを抑制することができる。換言すれば、書換え回数寿命を伸ばすのに用意すべき代替用のメモリブロックを少なくすることができる。
【００７７】
特性劣化が進んだデータブロックが依然として書き換え可能な状態に放置されるのを抑制することができ、メモリシステムの情報記憶に対する信頼性を向上させることができる。
【００７８】
メモリシステムの書き換え回数寿命を延ばすのにアクセス処理に付随して毎回テーブル参照などを行わずに済み、高速アクセスを保証して書き換え回数寿命を延ばすことができる。
【図面の簡単な説明】
【図１】本発明のメモリシステムの一例であるフラッシュメモリカードを示すブロック図である。
【図２】フラッシュメモリのデータブロックによるデータ構造を例示する説明図である。
【図３】代替先テーブルの一例を示す説明図である。
【図４】コントローラによる読出し動作の制御フローを例示するフローチャートである。
【図５】図４の読み出し制御を用いてフラッシュメモリカードからデータを読み出す動作を全体的に示すフローチャートである。
【図６】フラッシュメモリカードからデータを読み出したとき図２のフラッシュメモリのデータ構造の変化の一例を示す説明図である。
【図７】コントローラによる書換え動作の制御フローを例示するフローチャートである。
【図８】外部情報処理装置からの書き換え処理要求に応答するフラッシュメモリの書換えが失敗たときの動作を例示するフローチャートである。
【図９】図８の動作による書き換え処理結果を示す説明図である。
【図１０】フラッシュメモリ３のデータ構造としてＥＣＣ訂正フラグ領域を有する例を示す説明図である。
【図１１】コントローラによるＥＣＣ訂正フラグ領域を参照した書換え動作の制御フローを例示するフローチャートである。
【図１２】図１０のデータ構造のフラッシュメモリに対して図１１の処理にしたがって代替が行なわれた後におけるフラッシュメモリのデータ構造を例示する説明図である。
【図１３】本発明による読み出し処理と書き込み処理を概略的に示すフローチャートである。
【図１４】常時入れ替え先参照方式による比較例に係る読み出し処理と書き込み処理を概略的に示すフローチャートである。
【符号の説明】
１  フラッシュメモリカード
２  データブロック
２Ｃ  管理領域
２Ｄ  データ領域
３  フラッシュメモリ
４  外部情報処理装置
５  コントローラ
１０  外部装置インタフェース回路
１１フラッシュメモリインタフェース回路
１２  マイクロコンピュータ
１３  バッファ
２０  ユーザデータ領域
２１  代替領域
２２  代替先テーブルの形成領域
３０  論理アドレス領域
３１  書き換え回数領域
３２  ＥＣＣコード領域
ＩＶＣＯＤ  無効コード
ＳＴＬＢ  代替先テーブル
４０  テーブル情報保持領域
ＵＳＦＬＧ  未使用フラグ
ＴＤＡＴ  書き換え閾値回数データ
３３  ＥＣＣ訂正フラグ領域
【図１】
2004240793.tif 000003
【図２】
2004240793.tif 000004
【図３】
2004240793.tif 000005
【図４】
2004240793.tif 000006
【図５】
2004240793.tif 000007
【図６】
2004240793.tif 000008
【図７】
2004240793.tif 000009
【図８】
2004240793.tif 000010
【図９】
2004240793.tif 000011
【図１０】
2004240793.tif 000012
【図１１】
2004240793.tif 000013
【図１２】
2004240793.tif 000014
【図１３】
2004240793.tif 000015
【図１４】
2004240793.tif 000016