(57)【要約】【課題】半導体メモリにおける異常のエリアを検出し、通知、救済することにより信頼性を大幅に向上させる。【解決手段】メモリカード１に設けられた半導体メモリ３１  ，３２  の内部構成は、ユーザ領域、代替領域、エリア代替情報格納領域、および管理領域からなり、半導体メモリ３３  〜３５  の内部構成は、ユーザ領域、代替領域、および管理領域からなる。ユーザ領域はユーザが使用できるデータ領域であり、代替領域は該ユーザ領域において不良が発生した際に代替される領域である。エリア代替情報格納領域はエリア代替領域情報を格納する領域であり、管理領域は代替情報を格納する領域である。情報処理部２は、半導体メモリのエリアの不良化兆候動作を検出した際にはメモリカード１のアイドル時にエリア代替処理を実行し、エリアの不良動作を検出した際にはエリア代替処理を即時実行する２段階の代替を行う。【選択図】      図１
2004234052.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の半導体メモリと、動作プログラムに基づいて前記１つ以上の半導体メモリに格納されたデータを読み出し、所定の処理やデータの書込み動作指示などを行う情報処理部とを備えた記憶装置であって、
前記情報処理部は、前記半導体メモリにおけるエリアの状態を検出し、前記エリアが危険状態であると判定した際に前記記憶装置が動作処理を実行していないアイドル時に前記エリアの代替処理を実行し、前記エリアが限界状態であると判定した際に前記エリアの代替処理を即時実行することを特徴とする記憶装置。
【請求項２】
請求項１記載の記憶装置において、
前記情報処理部が危険状態を判定する際の要因項目が、代替空き領域、リトライ連続エラー、消去／プログラム時間、消去回数、リード／ライト電流値、および外部供給電源の電流値のうち、１つ以上からなり、
前記情報処理部が限界状態を判定する際の要因項目が、代替空き領域、リトライ連続エラー、リテンション不良時ＥＣＣ訂正不可エラー、デバイスコードリード不可エラー、消去／プログラム時間、消去回数、リード／ライト電流値、ならびに外部供給電源の電流値のうち、１つ以上からなることを特徴とする記憶装置。
【請求項３】
請求項２記載の記憶装置において、前記情報処理部が危険状態を判定する際の前記要因項目と限界状態を判定する際の前記要因項目とを独立に設定できることを特徴とする記憶装置。
【請求項４】
請求項１〜３のいずれか１項に記載の記憶装置において、前記情報処理部によって代替処理される代替先のエリアは、前記半導体メモリにおける空き領域、または代替専用の半導体メモリのいずれかであることを特徴とする記憶装置。
【請求項５】
請求項４記載の記憶装置において、前記エリアが前記半導体メモリにおける空き領域の場合、前記エリアは、メモリマットに設けられた複数のセクタのうち、任意のセクタを制御する個別周辺回路によって制御される物理領域であることを特徴とする記憶装置。
【請求項６】
請求項４または５記載の記憶装置において、代替元のエリアのデータのみを代替先のエリアに代替をし、代替後は代替をしたエリアは代替先のエリアにアクセスをし、代替をしていないエリアは引き続き同様にアクセスをするデコード方法を特徴とする記憶装置。
【請求項７】
請求項１〜６のいずれか１項に記載の記憶装置において、前記情報処理部は、前記エリアが限界状態であると判定した際に、緊急状態であることを外部に通知することを特徴とする記憶装置。
【請求項８】
請求項１〜７のいずれか１項に記載の記憶装置において、前記限界状態時に書込み動作などを禁止する動作制限をすることを特徴とする記憶装置。
【請求項９】
請求項１〜８のいずれか１項に記載の記憶装置において、前記情報処理部は、前記エリアの代替処理において、代替元のエリアから代替先のエリアにデータをコピーする際に、前記データにエラー訂正可能な誤りがある場合にはエラー訂正を行うことを特徴とする記憶装置。
【請求項１０】
請求項１〜９のいずれか１項に記載の記憶装置において、エリアの状態を検出する検出手段、検出結果やエリア代替の状態を外部へ通知する通知手段、エリア代替をおこなうエリア代替手段、エリアのアクセス許可／禁止などを管理するエリアデコード管理手段を備えることを特徴とする記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置における信頼性の向上技術に関し、特に、不揮発性半導体メモリを用いて構成された記憶装置におけるデータ救済に適用して有効な技術に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータや多機能端末機などの記憶装置として、メモリカードが急速に普及している。近年の高性能化の要求に伴って、メモリカードに搭載される半導体メモリとして、たとえば、電気的に一括消去、書き換えが可能であり、電池なしで大容量のデータを保持できるフラッシュメモリが用いられている。
【０００３】
このようなメモリカードにおいては、半導体メモリに不良が発生した際に、該不良の半導体メモリと代替用の半導体メモリとを交換し、メモリカードが使用不能となることを救済するものがある（たとえば、特許文献１参照）。
【０００４】
【特許文献１】
特開平３−１９１４５０号公報
【０００５】
【発明が解決しようとする課題】
ところが、上記のようなメモリカードの不良救済技術では、次のような問題点があることが本発明者により見い出された。
【０００６】
すなわち、事前に不良が発生する半導体メモリを代替用の半導体メモリと交換するのではなく、半導体メモリに不良が生じた際に代替用の半導体メモリと交換するという事後的な対応を行っているので、不良が発生した箇所のデータ保証ができないという問題がある。
【０００７】
本発明の目的は、半導体メモリの異常エリアを検出し、通知、救済することにより信頼性を大幅に向上させることのできる記憶装置を提供することにある。
【０００８】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【０００９】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１０】
すなわち、本発明の記憶装置は、１つ以上の半導体メモリと、動作プログラムに基づいて１つ以上の半導体メモリに格納されたデータを読み出し、所定の処理やデータの書込み動作指示などを行う情報処理部とを備え、該情報処理部は、半導体メモリにおけるエリアの状態を検出し、該エリアが危険状態であると判定した際に記憶装置が動作処理を実行していないアイドル時にエリアの代替処理を実行し、該エリアが限界状態であると判定した際にエリアの代替処理を即時実行するものである。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１２】
図１は、本発明の一実施の形態によるメモリカードのブロック図、図２は、図１のメモリカードに設けられた情報処理部のブロック図、図３は、図１のメモリカードに設けられた半導体メモリのエリア代替情報格納領域にそれぞれ格納されるエリア代替テーブルの構成図、図４は、図１の半導体メモリのエリア代替情報格納領域に格納されるエリア代替テーブルにおける状態フラグと該状態フラグの内容の一例を示した説明図、図５は、図４のエリア代替情報におけるエリア代替要因の一例を示した説明図、図６は、図１のメモリカードによる電源投入後のリセット処理、および初期化処理のフローチャート、図７は、図１のメモリカードに設けられたＭＰＵのワークエリアに格納されるエリア代替テーブルにおける状態遷移の説明図、図８は、図１のメモリカードによるコマンド処理時におけるフローチャート、図９は、図１のメモリカードによる緊急状態時におけるコマンド処理のフローチャート、図１０は、図１のメモリカードによるＩＤＬＥ実行時のコマンド処理のフローチャート、図１１は、図１のメモリカードによるＩＤＬＥ実行処理のフローチャート、図１２は、図１のメモリカードにおけるエリア代替中履歴の説明図、図１３は、図１のメモリカードによるエリア代替処理のフローチャートである。
【００１３】
本実施の形態において、メモリカード（記憶装置）１は、たとえば、フラッシュメモリカードなどであり、ホストであるパーソナルコンピュータや多機能端末機などの外部記憶メディアとして用いられる。
【００１４】
ホストは、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）、ＣＦ、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などの一定のプロトコルでデータアクセスを行うものであればよい。
【００１５】
メモリカード１は、図１に示すように、情報処理部２、および記憶部３から構成されている。記憶部３は、たとえば、５つの半導体メモリ３１  〜３５  から構成されている。これら半導体メモリ３１  〜３５  は、たとえば、フラッシュメモリなどから構成されている。
【００１６】
情報処理部２、および半導体メモリ３１  〜３５  は、データ／アドレスバスＢ、ならびに信号線バスＳＬを介して相互に接続されている。
【００１７】
情報処理部２は、動作プログラムに基づいて半導体メモリ３１  〜３５  に格納されたプログラムやデータなどを読み出し、所定の処理やデータの書込み動作指示などを行うとともに、記憶部３の異常なエリアを検出し、通知／救済する。
【００１８】
ここで、エリアについて説明する。
【００１９】
各半導体メモリ３１  〜３５  には、複数のセクタによって構成されたメモリマットが設けられており、該メモリマットを制御する制御部が備えられている。この制御部は、特定のセクタを制御する個別制御部（個別周辺回路）と、セクタの位置にかかわらず制御を行う共通制御部とからなる。
【００２０】
この場合、メモリマットにおいて、個々の個別制御部が制御する領域（物理領域）を１単位のエリアとする。よって、エリア代替を行うことにより、個別制御部を含めた代替が可能となる。
【００２１】
また、上記したエリアの設定ではなく、たとえば、個々の半導体メモリ単位、あるいは半導体メモリに複数のバンクが設けられている場合には、各バンク単位を１つのエリアとしてもよい。
【００２２】
また、情報処理部２の回路構成について説明する。
【００２３】
情報処理部２は、図２に示すように、外部デバイス接続部４、ＭＰＵ５、検出部６、通知部７、エリア代替処理部８、エリアデコード管理部９、バッファコントロール部１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１、ならびにインタフェース部１２などから構成されている。
【００２４】
ここでは、検出部６、通知部７、エリア代替処理部８、ならびにエリアデコード管理部９の各機能ブロックを情報処理部２に備えた構成としたが、たとえば、該情報処理部２には、これらの機能ブロックを設けず、ソフトウェア処理によってＭＰＵ５が各機能を実現する構成としてもよい。
【００２５】
これら外部デバイス接続部４、ＭＰＵ５、検出部６、通知部７、エリア代替処理部８、エリアデコード管理部９、バッファコントロール部１０、ＲＡＭ１１、およびインタフェース部１２は、内部バスを介して相互に接続されている。
【００２６】
外部デバイス接続部４は、ホストとのインタフェースである。ＭＰＵ（Ｍｉｃｒｏｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５は、動作プログラムに基づいて半導体メモリ３１  〜３５  に格納されたプログラムやデータなどを読み出し、所定の処理を行うとともに、データの書込み動作指示を行う。
【００２７】
検出部６は、異常が生じたエリアを検出する。通知部７は、検出部６が検出した結果に基づいて、該異常エリアの発生をホストなどに通知する。エリア代替処理部８は、異常が発生したエリアの代替処理制御を司る。
【００２８】
エリアデコード管理部９は、任意のエリアのアクセス許可／禁止などの管理を行う。バッファコントロール部１０はＲＡＭ１１の制御を司り、該ＲＡＭ１１は、記憶部３のデータを一時的に格納するデータバッファとして用いられるメモリである。インタフェース部１２は、記憶部３とのインタフェースである。
【００２９】
また、半導体メモリ３１  〜３５  における内部構成について説明する。
【００３０】
半導体メモリ３１  ，３２  は、図１に示すように、ユーザ領域、代替領域、エリア代替情報格納領域、および管理領域から構成されている。半導体メモリ３３  〜３５  は、ユーザ領域、代替領域、および管理領域から構成されている。
【００３１】
ユーザ領域は、ユーザが使用できるデータ領域であり、代替領域は、ユーザ領域において不良が発生した際に代替される領域である。エリア代替情報格納領域は、エリア代替領域情報を格納する領域であり、管理領域は、代替領域を管理する代替情報を格納する領域である。
【００３２】
半導体メモリ３１  ，３２  には、エリア代替情報格納領域がそれぞれ設けられており、多重化によるデータ保全が行われている。エリア代替情報格納領域は、半導体メモリ３１  ，３２  だけでなく、他の半導体メモリ３３  〜３５  のいずれかまたはすべてに設けることにより、より安全にデータを保全することができる。
【００３３】
図３は、半導体メモリ３１  ，３２  のエリア代替情報格納領域にそれぞれ格納されるエリア代替テーブルの構成図である。
【００３４】
エリア代替テーブルは、状態フラグ、代替要因、代替元、および代替先からなる。状態フラグは、代替エリアの状態を示している。図４は、エリア代替テーブルにおける状態フラグと該状態フラグの内容の一例を示した説明図である。図示するように、状態フラグに対応して’正常（空き状態）’、’正常（使用中）’や’エリア代替完了  代替元’などの様々な内容がある。
【００３５】
代替要因は、エリア代替された要因を示している。代替元は、代替元の物理エリア番号を示しており、代替先は、代替先の物理エリア番号を示している。
【００３６】
このエリア代替テーブルは、各々の半導体メモリ３１  〜３５  のエリア（エリア番号Ｎｏ．１〜Ｎｏ．５）にそれぞれ対応して形成されており、５単位のエリア代替テーブルに冗長領域が設けられて１セットとなっている。
【００３７】
冗長領域は、たとえばＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）冗長符号などを付加する領域であり、このＥＣＣ冗長符号によってデータを保護する。この冗長領域は省略してもよい。
【００３８】
図５は、エリア代替要因の一例を示した図である。
【００３９】
図５においては、左から右にかけて、エリア代替要因、該エリア代替要因の内容に対応したフラグ、限界値、危険値、およびリトライ処理の有無の内容がそれぞれ示されている。
【００４０】
エリア代替要因としては、半導体メモリにおける空き領域のブロック数である代替空き領域、リトライ連続エラー、リテンション不良時ＥＣＣ訂正不可エラー、Ｄｅｖｉｃｅ／Ｍａｎｕｆａｃｔｕｒｅｒ  Ｃｏｄｅリード不可エラー（デバイスコードエラー）、ならびに物理量などがある。
【００４１】
また、リトライ連続エラーには、連続プログラムエラー、過剰書込みエラー、およびリテンション不良（ベリファイチェックエラー）などがある。物理量としては、消去／プログラム時間、消去回数、リード電流値、ライト電流値、外部供給電源／電流値などがある。
【００４２】
そして、これらエリア代替要因には、前述した限界値、および危険値がそれぞれ設定されている。限界値（限界状態）とは、そのエリアが使用不可であり、即代替を要する場合の値であり、危険値（危険状態）とは、そのエリアが使用可能であるが、危険な状態であるので徐々に代替をする値を示している。
【００４３】
たとえば、エリア代替要因の’リトライ連続エラー’において、’連続プログラムエラー’は、限界値が２６０回以上であり、危険値は１０回以上となっている。
【００４４】
次に、本実施の形態におけるメモリカード１の作用について説明する。
【００４５】
始めに、メモリカード１における電源投入後のリセット処理、および初期化処理について、図６のフローチャートを用いて説明する。
【００４６】
まず、電源が投入されてリセットが解除されると（ステップＳ１０１）、各半導体メモリ３１  〜３５  におけるシステム情報をＭＰＵ５に設けられたＲＡＭなどのワークエリアにそれぞれダウンロードする（ステップＳ１０２）。
【００４７】
ＭＰＵ５は、半導体メモリ３１  （または半導体メモリ３２  ）のエリア代替情報格納領域に格納されたエリア代替情報を参照し、不良となった半導体メモリを避けてシステム情報をダウンロードする。
【００４８】
その後、検出部６は、記憶部３における半導体メモリ３１  〜３５  のデバイスチェックを行う（ステップＳ１０３）。そして、エリア代替の限界値を超えているか否かを判断する（ステップＳ１０４）。
【００４９】
ステップＳ１０４の処理において、エリア代替の限界値を超えている場合には、エリアデコード管理部９が状態フラグを緊急状態として、ＭＰＵ５のワークエリアにおけるエリア代替情報を更新する（ステップＳ１０５）。これにより、エリア代替テーブルの状態フラグは、緊急状態発生（図４）を示すフラグとなる。
【００５０】
その後、ＭＰＵ５は、更新したエリア代替情報に基づいて、管理情報テーブルを作成し（ステップＳ１０６）、該ＭＰＵ５のワークエリアに格納する。続いて、ＭＰＵ５は、不良エリア検出時の処理を行う（ステップＳ１０７）。
【００５１】
また、ステップＳ１０４の処理において、エリア代替の限界値を超えていない場合には、検出部６が該エリア代替の危険値を超えているか否かを判断する（ステップＳ１０８）。
【００５２】
危険値を超えている場合には、エリアデコード管理部９が、エリア代替テーブルの状態フラグが、ＩＤＬＥ実行発生（図４）を示すフラグとなるようにエリア代替情報を更新する（ステップＳ１０９）。
【００５３】
さらに、ステップＳ１０８の処理において、危険値を超えていない場合には、ＭＰＵ５が半導体メモリにエラーが発生していないかをチェックし（ステップＳ１１０）、エラーが発生していない場合には、ＭＰＵ５が管理情報テーブルを作成して（ステップＳ１１１）、該ＭＰＵ５のワークエリアに格納し、通常処理を実行する（ステップＳ１１２）。
【００５４】
また、ステップＳ１１０の処理において、エラーが発生した際には、ＭＰＵ５がエラー処理を実行する（ステップＳ１１３）。
【００５５】
図７は、エリア代替によるＭＰＵ５のワークエリアに格納されるエリア代替テーブルにおける状態遷移の説明図である。ここでは、エリア番号Ｎｏ．１〜Ｎｏ．３が使用中であり、エリア番号Ｎｏ．４，Ｎｏ．５が代替エリアとなっている。
【００５６】
図７において、ワークエリアに格納されるエリア代替テーブルは、図３に示したエリア代替テーブルの構成から冗長領域のみが除かれたものであり、その他の構成は同様であり、状態フラグ、代替要因、代替元、ならびに代替先からなる。
【００５７】
エリア番号Ｎｏ．１のエリアに、たとえば、リテンション不良時のＥＣＣ訂正不可エラーが発生すると、エリア番号Ｎｏ．１におけるエリア代替テーブルの状態フラグは’２１ｈ’（図４）となり、代替要因は、’５ｈ’（図５）にそれぞれなる。
【００５８】
そして、エリア番号Ｎｏ．１のエリアがエリア番号Ｎｏ．４に代替されると、エリア番号Ｎｏ．１におけるエリア代替テーブルは、状態フラグがエリア代替完了を示す’０８ｈ’（図４）となり、代替先が’０４ｈ’となり、代替先のエリア番号となる。
【００５９】
また、エリア番号Ｎｏ．４のエリア代替テーブルは、状態フラグがエリア代替完了を示す’０９ｈ’（図４）となり、代替元が’０１ｈ’となって代替元のエリア番号となる。
【００６０】
その後、検出部６によってエリア番号Ｎｏ．４の代替空き領域に危険値超えがあることが検出されると、エリア番号Ｎｏ．４のエリア代替テーブルは、状態フラグが’Ｃ１ｈ’（図４）となり、代替要因が’１ｈ’（図５）となる。
【００６１】
そして、ここでは、エリア番号Ｎｏ．４のエリアがエリア番号Ｎｏ．５に代替されることになるが、このエリア代替は、メモリカード１の空き時間、すなわち実行処理を行っていないＩＤＬＥ（アイドル）中にバックグランドにおいて実行される。以下、半導体メモリがＩＤＬＥ中にエリア代替を実行することをＩＤＬＥ実行という。
【００６２】
ＩＤＬＥ実行期間において、エリア番号Ｎｏ．４のエリア代替テーブルは、状態フラグがＩＤＬＥ実行中を示す’Ｃ２ｈ’（図４）となり、代替先が’０５ｈ’となって代替先のエリア番号となる。
【００６３】
また、エリア番号Ｎｏ．５のエリア代替テーブルは、状態フラグがＩＤＬＥ実行中を示す’Ｃ３ｈ’（図４）となり、代替元が’０４ｈ’となって代替元のエリア番号となる。
【００６４】
その後、エリア代替が終了すると、エリア番号Ｎｏ．４のエリア代替テーブルは、状態フラグがＩＤＬＥ実行完了を示す’０Ｅｈ’（図４）となる。エリア番号Ｎｏ．５のエリア代替テーブルは、状態フラグがＩＤＬＥ実行完了を示す’０Ｆｈ’（図４）となる。
【００６５】
その後、代替されたエリア番号Ｎｏ．５において、緊急状態（リテンション不良時のＥＣＣ訂正不可エラー）が発生すると、エリア番号Ｎｏ．５におけるエリア代替テーブルの状態フラグは’３１ｈ’（図４）となり、代替要因は、’５ｈ’（図５）にそれぞれなる。
【００６６】
この場合、代替エリアであるエリア番号Ｎｏ．４，Ｎｏ．５が使用済みであるので、エリア番号Ｎｏ．５のエリア代替テーブルにおける状態フラグが、代替エリアの使い切りを示す’ＦＦｈ’（図４）となり、終了となる。
【００６７】
次に、メモリカード１におけるコマンド処理時における動作について、図８のフローチャートを用いて説明する。
【００６８】
まず、ホストなどの外部からコマンドが入力されると、検出部６が、エリア代替テーブルの状態フラグをチェックし（ステップＳ２０１）、該状態フラグが危険値超えの緊急状態であるか否かを判断する。この場合、図５のエリア代替要因のいずれかの項目が限界値を示している場合に緊急状態となる。緊急状態の場合には、緊急状態時のコマンド処理が実行される（ステップＳ２０２）。
【００６９】
また、緊急状態でない場合、検出部６は、状態フラグ（図４）がＩＤＬＥ実行中であるか否かを判断する（ステップＳ２０３）。このステップＳ２０３の処理で、ＩＤＬＥ実行の場合には、ＩＤＬＥ実行時のコマンド処理を行い（ステップＳ２０４）、ＩＤＬＥ実行でない場合には外部入力されたコマンドの処理を行う（ステップＳ２０５）。
【００７０】
ステップＳ２０４またはステップＳ２０５のいずれかの処理中において、検出部６は、図５のエリア代替要因のいずれかの項目が限界値を超えているか否かをチェックする（ステップＳ２０６）。
【００７１】
限界値を超えている場合には、エリアデコード管理部９が状態フラグが緊急状態となるようにエリア代替情報のエリア代替テーブルを更新する（ステップＳ２０７）。そして、通知部７が緊急状態であることをホストなどの外部に通知するとともに（ステップＳ２０８）、ＭＰＵ５が自動代替モードか否かを判断し（ステップＳ２０９）、自動代替モードである場合には、エリア代替処理を実行し（ステップＳ２１０）、処理が終了となる。
【００７２】
ステップＳ２０９の処理で、自動代替モードでない場合には、ホストなどの外部から入力されるエリア代替コマンドの指示に従ってエリア代替処理を実行する。
【００７３】
また、ステップＳ２０６の処理において、限界値を超えていない場合には、検出部６がエリア代替要因のいずれかの項目が危険値を超えていないか否かを判断する（ステップＳ２１１）。
【００７４】
このステップＳ２１１の処理で、危険値を超えている場合、エリアデコード管理部９は、状態フラグがＩＤＬＥ実行となるようにエリア代替情報のエリア代替テーブルを更新し（ステップＳ２１２）、処理が終了する。
【００７５】
さらに、ステップＳ２１１の処理で、危険値を超えていない場合には、ＭＰＵ５が半導体メモリにエラーが発生していないかをチェックし（ステップＳ２１３）、エラーが発生していない場合には処理が終了となる。
【００７６】
ステップＳ２１３の処理で、半導体メモリにエラーが発生している場合、検出部６は、エリア代替要因のいずれかの項目が限界値を超えているか否かを再びチェックする（ステップＳ２１４）。そして、限界値を超えている場合には、ステップＳ２０７〜Ｓ２１０の処理を実行する。
【００７７】
ステップＳ２１３におけるエラー判定の前後のステップで、危険値、限界値の判定を行っている理由は、コマンド実行中の代替要因となるもの（たとえば、図５の電流値や代替空き領域など）とエラー内容により代替要因となるもの（たとえば、図５のリトライ連続エラーなど）があるためである。
【００７８】
ステップＳ２１４の処理で、限界値を超えていない場合には、検出部６がエリア代替要因のいずれかの項目が危険値を超えていないか否かを判断する（ステップＳ２１５）。危険値を超えている場合には、ステップＳ２１２の処理を実行する。
【００７９】
また、ステップＳ２１４の処理において、危険値を超えていない場合には、検出部がリトライ回数（図５のリトライ連続エラーの項目を参照）を検出し（ステップＳ２１６）、リトライ回数が（設定回数−１）よりも多ければエラー処理を実行する（ステップＳ２１７）。
【００８０】
リトライ回数が（設定回数−１）よりも少ない場合には、リトライ回数を加算した後（ステップＳ２１８）、ステップＳ２０５の処理から再び実行する。
【００８１】
次に、メモリカード１による緊急状態持におけるコマンド処理の動作について、図９のフローチャートを用いて説明する。
【００８２】
まず、緊急状態時では、ＭＰＵ５が自動代替モードか否かを判断し（ステップＳ３０１）、自動代替モードでない場合、ＭＰＵ５は緊急状態で許可されているコマンドであるか否かを判断する（ステップＳ３０２）。ここでは、緊急状態時に許可されているコマンドとして、たとえば、半導体メモリに書込みや消去が発生するコマンドを指しているが、その他のコマンドを制限するようにしてもよい。
【００８３】
ステップＳ３０２の処理で、緊急状態で許可されているコマンドである場合には、そのコマンドがエリア代替コマンドであるか否かを判断し（ステップＳ３０３）、そのコマンドがエリア代替コマンドの場合には、エリア代替処理を実行する（ステップＳ３０４）。
【００８４】
ステップＳ３０３の処理で、エリア代替コマンドでない場合には、その他のコマンド処理を行い（ステップＳ３０５）、半導体メモリにエラーが発生していないかをチェックし（ステップＳ３０６）、エラーが発生していない場合には処理が終了となる。エラーが発生した際には、エラー処理を行い（ステップＳ３０７）、処理が終了となる。
【００８５】
また、ステップＳ３０１の処理において、自動代替モードである場合には、通知部７が緊急状態であり、代替処理中であることをホストなどの外部に通知した後（ステップＳ３０８）、ステップＳ３０４の処理を実行する。
【００８６】
次に、メモリカード１によるＩＤＬＥ実行時のコマンド処理について、図１０のフローチャートを用いて説明する。
【００８７】
まず、エリアデコード管理部９は、エリア代替先を検索済みであるか否かを確認し（ステップＳ４０１）、該検索済みのエリア代替先が未代替か否かを確認する（ステップＳ４０２）。そして、未代替の場合には、その代替先でコマンド処理を実行する（ステップＳ４０３）。
【００８８】
また、ステップＳ４０２の処理において、未代替でない場合には、代替元でコマンド処理を実行する（ステップＳ４０４）。
【００８９】
一方、ステップＳ４０１の処理で、エリア代替先が検索済みでない場合には、ＭＰＵ５がエリア代替先を検索し（ステップＳ４０５）、代替先がある場合には（ステップＳ４０６）、ステップＳ４０２，Ｓ４０３の処理を実行し、代替先がない場合には（ステップＳ４０６）、エラー処理を実行する（ステップＳ４０７）。
【００９０】
さらに、メモリカード１によるＩＤＬＥ実行時の処理について、図１１のフローチャートを用いて説明する。
【００９１】
まず、ＩＤＬＥ実行中において、ＭＰＵ５は、割り込み要求（たとえば、ホストからのライトコマンド／リードコマンドなど）があるか否かを検出する（ステップＳ５０１）。割り込み要求がなければ、状態フラグ（図４）がＩＤＬＥ実行となっているか否かを検出する（ステップＳ５０２）。
【００９２】
ステップＳ５０２の処理で状態フラグがＩＤＬＥ実行となっている場合には、エリア代替処理を実行し（ステップＳ５０３）、状態フラグがＩＤＬＥ実行でない場合には、ステップＳ５０１に戻る。
【００９３】
また、ステップＳ５０１の処理において、割り込み要求があると、エリア代替中履歴をＭＰＵ５のワークエリアなどに格納した後（ステップＳ５０４）、割り込み要求のあったコマンドの処理を実行する（ステップＳ５０５）。
【００９４】
ここで、エリア代替中履歴について、図１２を用いて説明する。
【００９５】
図１２（ａ）は、エリア代替情報の１つとして、半導体メモリ３１  ，３２  のエリア代替情報格納領域に格納されるエリア代替中履歴の構成例を示した説明図である。
【００９６】
エリア代替中履歴は、データ部と管理部とから構成されている。データ部は、複数の履歴テーブルが格納される。この履歴テーブルは、物理エリア番号、エリア代替済み先頭アドレス、エリア代替済み最終アドレス、および冗長領域からなる。
【００９７】
物理エリア番号は、どの物理エリア番号の履歴データであるかを示し、エリア代替済み先頭アドレス、ならびにエリア代替済み最終アドレスは、エリア代替済みの領域を示す。冗長領域は、たとえばＥＣＣ冗長符号などを付加する領域であるが、該冗長領域は省略してもよい。
【００９８】
管理部は、個々の履歴テーブルに対応した有効フラグが格納され、対応する履歴テーブルにおける有効性の有無を示す。履歴テーブル［１］は、有効フラグ［１］に対応する。この有効フラグにおいて、たとえば、書込みがある場合には’ＦＦｈ’が書き込まれ、書込みがない場合には’００ｈ’が書き込まれる。
【００９９】
よって、有効フラグの’ＦＦｈ’が書き込まれている最終の履歴テーブルが有効なデータとなる。
【０１００】
この場合、履歴テーブル、および有効フラグの書き換え／消去が、特定領域で繰りかえし行われると、特定アドレスのセクタのセルが劣化する。そこで、履歴更新により、半導体メモリ内の特定アドレスに対する書き換え回数の増加を緩和するために、８つの追記とデータ格納アドレスをかえることにより、消去回数（書き換え回数）の分散を図っている。
【０１０１】
図１２（ａ）では、アドレス’ｎ＋１’の履歴テーブル［９］に書込み後、前回までに書込みを行ったアドレス’ｎ’データをクリアしているが、複数のブロックをまとめてクリアするようにしてもよい。
【０１０２】
さらに、図１２（ｂ）は、ＭＰＵ５のワークエリアに格納されるエリア代替中履歴の構成の一例を示した説明図である。
【０１０３】
この場合、エリア代替中履歴は、有効テーブル、物理エリア番号、エリア代替済み先頭アドレス、およびエリア代替済み最終アドレスから構成されている。
【０１０４】
有効テーブルは、有効フラグの代わりとして、履歴テーブルの有効なテーブル番号を示す。また、物理エリア番号、エリア代替済み先頭アドレス、ならびにエリア代替済み最終アドレスは、半導体メモリ３１  ，３２  のエリア代替情報格納領域に格納されるエリア代替中履歴と同じである。
【０１０５】
次に、メモリカード１におけるエリア代替処理について図１３のフローチャートを用いて説明する。
【０１０６】
まず、エリアデコード管理部９は、エリア代替先が検索済みか否かを確認し（ステップＳ６０１）、エリア代替先が検索されていない場合には、エリア代替先を検索する（ステップＳ６０２）。また、エリア代替先が検索されている場合には、後述するステップＳ６０４〜Ｓ６０７の処理を実行する。
【０１０７】
エリア代替先が検出されると（ステップＳ６０３）、エリア代替処理部８がエリアの代替とデータの救済を行うとともに、エリアデコード管理部９がエリア代替中履歴を更新する（ステップＳ６０４）。
【０１０８】
このステップＳ６０４の処理においては、エリア代替によるデータ救済は代替元から代替先に該データをコピーする。このとき、エラー訂正可能なデータ誤りがある場合にはエラー訂正を行い、エラー訂正が不可能な場合には、そのままデータをコピーする。また、エリア代替元でデータが代替領域に代替されている場合には、元のユーザ領域のアドレス基づいてエリア代替先へコピーを行う。
【０１０９】
エリア代替中履歴は、ＭＰＵ５のワークエリアのデータのみを更新し、半導体メモリ３１  ，３２  へは、定期的にもしくは更新毎などにライトする。
【０１１０】
その後、ＭＰＵ５は、エリア代替が正常に終了したか否かをチェックし（ステップＳ６０５）、エリア代替が正常に終了しなかった場合には、ステップＳ６０２からの処理を再び実行する。
【０１１１】
また、正常終了の際には、エリアデコード管理部９がエリア代替情報を更新した後（ステップＳ６０６）、通知部７がエリア代替が実行されたことをホストなどの外部に通知する（ステップＳ６０７）。ただし、状態フラグがＩＤＬＥ実行時には通知しないものとし、代替先がない場合にはエラーを通知する。
【０１１２】
さらに、ステップＳ６０３の処理において、エリア代替先が検出されない場合には、ステップＳ６０６，Ｓ６０７の処理を実行する。
【０１１３】
それにより、本実施の形態においては、半導体メモリ３１  〜３５  の異常エリアを検出し、通知、救済することができる。
【０１１４】
また、エリアを個々の個別制御部が制御する物理的な境界に設定することによって、該個別制御部を含めた不良箇所を避けて救済するので、メモリカード１における信頼性を大幅に向上させることができる。
【０１１５】
以上、本発明者によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１１６】
危険値と限界値の設定については両方に同じ値を設定し、またはその一方のみ設定するものであってもよく、たとえば危険値のみが設定されている場合は危険値検出時の処理のみが行われることとなり、両方に同じ値が設定されているまたは限界値のみが設定されている場合は限界値検出時の処理のみが行われることとなる。
【０１１７】
また、この危険値と限界値の設定については、コントローラ内のＲＯＭや回路として固定的に設定する、またはフラッシュメモリ中のファームウェアとして所定の手続きで変更可能なように設定し、該設定値をリセット処理中などにコントローラに読み出しを行うようにしてもよい。
【０１１８】
たとえば、前記実施の形態では、ユーザ領域を備えた通常使用される半導体メモリにエリア代替情報を格納する構成としたが、図１４に示すように、通常使用される半導体メモリ１３１  〜１３４  の他に、該エリア代替情報のみを格納する専用の半導体メモリ１３５  を設けてメモリカード（記憶装置）１ａを構成するようにしてもよい。
【０１１９】
この場合、半導体メモリ１３５  の内部構成は、エリア代替情報を格納するエリア代替情報格納領域、ユーザ領域において不良が発生した際に代替される代替領域、および該代替情報を管理する管理領域からなる。
【０１２０】
これにより、エリア代替情報が１つにまとめられるので、該エリア代替情報の管理を容易にすることができる。
【０１２１】
さらに、エリア代替情報を格納する領域（半導体メモリ）は、ホスト側または情報処理部に設けるようにしてもよい。ホスト側に設けた場合には、メモリカード側の処理を簡略化することができるので、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やドライバなどによる制御によって容易に多様化を図ることができる。
【０１２２】
また、情報処理部に設けた場合には、エリア代替処理をハードウェア処理することができるので、より高速化を図ることができる。
【０１２３】
さらに、メモリカードなどの記憶装置は、図１５に示すように、ネットワークＮＴ、あるいは無線などを介して、複数の端末Ｔを接続し、該ネットワークＮＴ経由で通知された検出したエリア代替情報を通知し、救済する構成としてもよい。
【０１２４】
ここで、端末Ｔは、パーソナルコンピュータ、銀行などのＡＴＭ（Ａｕｔｏｍａｔｉｃ  Ｔｅｌｌｅｒ  Ｍａｃｈｉｎｅ）、あるいはＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）などの記憶装置を備えたものであれば限定はされない。
【０１２５】
この場合、図示するように、サーバＳＶによる一括管理、あるいは中継基地ＢＳでの管理など処理対応を分担して行うようにしてもよい。
【０１２６】
これにより、遠隔地の端末Ｔに設けられた記憶装置の異常を短時間で検出して対応することが可能となる。
【０１２７】
また、記憶装置１４は、図１６に示すように、情報処理部１５と記憶部１６とから構成するようにしてもよい。記憶部１６は、複数のメモリモジュール１６１  〜１６ｎ  から構成されており、これらメモリモジュール１６１  〜１６ｎ  は、複数の半導体メモリがプリント配線基板に実装された構成からなる。
【０１２８】
この場合、エリア代替情報による管理は、メモリモジュール単位により行う。
たとえば、メモリモジュール１６２  がメモリモジュール１６４  にエリア代替された場合、代替元（不良）となったメモリモジュール１６２  は、スロットＳｔより取り外されて新しいメモリモジュールに交換される。ここでは、たとえば、メモリモジュールの交換時にエリア代替情報の格納や更新を行う。
【０１２９】
それにより、記憶装置１４のメンテナンス性を大幅に向上することができる。
【０１３０】
【発明の効果】
本願によって開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
（１）半導体メモリにおけるエリアの異常を危険状態と限界状態との２段階で検出して該エリアの代替処理を行うことにより、記憶装置の信頼性を向上することができる。
（２）また、半導体メモリのエリアを物理領域とすることにより、周辺回路を含めた不良箇所を避けて救済するので、記憶装置の信頼性をより向上させることができる。
（３）さらに、上記（１）、（２）により、記憶装置などを用いて構成される電子機器の性能、ならびに信頼性を大幅に向上することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態によるメモリカードのブロック図である。
【図２】図１のメモリカードに設けられた情報処理部のブロック図である。
【図３】図１のメモリカードに設けられた半導体メモリのエリア代替情報格納領域にそれぞれ格納されるエリア代替テーブルの構成図である。
【図４】図１の半導体メモリのエリア代替情報格納領域に格納されるエリア代替テーブルにおける状態フラグと該状態フラグの内容の一例を示した説明図である。
【図５】図４のエリア代替情報におけるエリア代替要因の一例を示した説明図である。
【図６】図１のメモリカードによる電源投入後のリセット処理、および初期化処理のフローチャートである。
【図７】図１のメモリカードに設けられたＭＰＵのワークエリアに格納されるエリア代替テーブルにおける状態遷移の説明図である。
【図８】図１のメモリカードによるコマンド処理時におけるフローチャートである。
【図９】図１のメモリカードによる緊急状態時におけるコマンド処理のフローチャートである。
【図１０】図１のメモリカードによるＩＤＬＥ実行時のコマンド処理のフローチャートである。
【図１１】図１のメモリカードによるＩＤＬＥ実行処理のフローチャートである。
【図１２】図１のメモリカードにおけるエリア代替中履歴の説明図である。
【図１３】図１のメモリカードによるエリア代替処理のフローチャートである。
【図１４】本発明の他の実施の形態によるメモリカードのブロック図である。
【図１５】本発明の他の実施の形態によるネットワーク経由でエリア代替情報を管理する際のシステム構成の一例を示す説明図である。
【図１６】本発明の他の実施の形態による記憶装置のブロック図である。
【符号の説明】
１，１ａ  メモリカード（記憶装置）
２  情報処理部
３  記憶部
３１  〜３５    半導体メモリ
４  外部デバイス接続部
５  ＭＰＵ
６  検出部
７  通知部
８  エリア代替処理部
９  エリアデコード管理部
１０  バッファコントロール部
１１  ＲＡＭ
１２  インタフェース部
１３１  〜１３５    半導体メモリ
１４  記憶装置
１５  情報処理部
１６  記憶部
１６１  〜１６ｎ    メモリモジュール
Ｂ  データ／アドレスバス
ＳＬ  信号線バス
ＮＴ  ネットワーク
Ｔ  端末
ＳＶ  サーバ
ＢＳ  中継基地
Ｓｔ  スロット
【図１】
2004234052.tif 000003
【図２】
2004234052.tif 000004
【図３】
2004234052.tif 000005
【図４】
2004234052.tif 000006
【図５】
2004234052.tif 000007
【図６】
2004234052.tif 000008
【図７】
2004234052.tif 000009
【図８】
2004234052.tif 000010
【図９】
2004234052.tif 000011
【図１０】
2004234052.tif 000012
【図１１】
2004234052.tif 000013
【図１２】
2004234052.tif 000014
【図１３】
2004234052.tif 000015
【図１４】
2004234052.tif 000016
【図１５】
2004234052.tif 000017
【図１６】
2004234052.tif 000018