(57)【要約】【課題】  メモリカード動作中に発生したエラーを、エラー内容をコード化したログナンバを用いてメインメモリの特定ブロックに保存し、速やかにエラー解析を行えるメモリカードを提供する。【解決手段】  エラー発生時には、始めにメモリカード１のバッファメモリ７にエラーログ情報を一時保存し（ステップＳＴ３３）、その後、メモリ１０の所定のブロックにエラーログ情報を書込み、保存し（ステップＳＴ３４）、エラー検証を行う際は、メモリ１０からエラーログ情報を取得する（ステップＳＴ３６）。【選択図】    図３
2006178537.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域をブロック単位に分割してデータを記憶する半導体不揮発性メモリを備えたメモリカードにおいて、
確定データを保存するメインメモリと、
一時データを保存するバッファメモリと、
前記メモリカードの動作中にエラーが発生した場合は、前記バッファメモリに保存されたエラーログ情報を前記メインメモリの特定ブロックに保存し、前記特定ブロックの保存領域がない場合は、古いエラーログ情報から消去することで常に最新のエラーログ情報を残す書込み手段と、
前記エラーログ情報の消去に関する情報の管理を行う管理手段と、
前記メインメモリに保存されたエラーログ情報を読出す読出し手段とを備えることを特徴とする
メモリカード。
【請求項２】
請求項１記載のメモリカードにおいて、
前記エラーログ情報には、それぞれのエラー内容毎にコード化したログナンバを用い、前記ログナンバに対応したエラー発生場所及び状況を記憶することを特徴とする
メモリカード。
【請求項３】
請求項２記載のメモリカードにおいて、
前記バッファメモリをリングバッファ状に用い、前記リングバッファ状のバッファメモリに残ったエラーログ情報を前記メインメモリの特定ブロックに記憶することを特徴とする
メモリカード。
【請求項４】
請求項３記載のメモリカードにおいて、
前記メモリカードの周囲環境を測定できる測定手段を備え、エラーが発生した場合における、その時点の測定値を前記エラーログ情報として、前記メインメモリに記憶することを特徴とする
メモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ等の電子機器から送信されるデータを記憶する半導体不揮発性メモリを搭載したメモリカードに関し、特にエラー発生時にログ情報を取得するのに適した技術に関する。
【背景技術】
【０００２】
近年、コンピュータ、デジタルカメラ、携帯電話端末等の電子機器から送信されるデータを記憶するために、磁気テープ、磁気ディスク、光ディスク、メモリカード等の外部記憶媒体が用いられている。特に、半導体不揮発性メモリを搭載したメモリカードは、大きさが非常に小さく、携帯性に優れ、また、転送レートが高速であるといった特徴を備えている。また、メモリカードの記憶容量が増大するに従い、画像データ、音楽データ等といった比較的サイズが大きなファイルでも手軽に保存することができるようになってきた。
【０００３】
ところで、コンピュータや通信機器を使用するシステムでは、システムの動作状況を把握するために、それぞれのイベントに対して固有のコード値を振ったり、イベント発生時点での変数、件数等の値を記憶したりといった操作が行われる。また、システム内部で発生する各種アプリケーションの正常終了及び異常終了、ソフトエラー、ハードエラー等のイベントを、イベントログとして記憶媒体に記憶することが行われる。こうすることで、ログを検証する際には、どのような状況下で発生したイベントであるかが分かり、異常発生時における原因究明の手助けとなっている。そして、システムが複雑化するに従い、イベントログも大量に出力されるため、ユーザは、システムに対して外部にハードディスクドライブやカセットテープ等の大容量記憶メディアを接続することでイベントログを保存し、解析を行っていた。
【０００４】
これまで、必要なログを参照するときに用いられるログ蓄積システムがいくつか発表されている。特許文献１には、発生したログを記憶する際に、ログ情報の発生条件、発生箇所、発生時刻、もしくはログ情報の重要度を元に記憶媒体等を複数の記憶領域に分割して記録するログ蓄積システムについて示されている。これにより、ユーザが参照しやすいようにログが蓄積されるため、ログを参照する時の処理時間が短縮され、また、必要ない情報を参照する煩わしさがなくなり、効率的に参照できる。
【０００５】
また、特許文献２に開示された技術では、特許文献１の内容を鑑みてログ情報を効率的に記録することで、計算機や通信機器等を用いたシステム動作状況をより正確に把握できるログ情報記録装置について示されている。これにより、イベント内容，イベント発生時刻，イベント種別，及びエラー種別を関連づけることにより、ログ情報を効率的に記録することができ、システムの動作状況の把握が容易になり、システムに対する負荷を低減することができる。
【特許文献１】特開平８−２６３３３０号公報（図１）
【特許文献２】特開平１１−２３２１４５号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、従来から知られているこれらのログ情報を記憶する処理は、大容量の記憶容量があることが前提なシステムに適用されるものであり、メモリカードの如き記憶容量の限られたものにそのまま適用することは困難である。即ち、従来、上述したログ情報を記憶するためには、記憶対象となるアプリケーション又は装置等に対して、別途ハードディスクドライブあるいはカセットテープユニット等といった外部記録媒体のシステム追加が必要であった。また、従来知られている技術では、ある程度効率的にログ情報を記憶してはいるものの、システム的には、まだ負担がかかっており、改善の余地があった。
【０００７】
また、エラーログ情報の保存場所がメモリ内で一定していなかったため、エラー検証を行う際には、エラーログ情報が保存された場所を探さなければならなかった。また、エラーログ情報が、複数の領域にランダムに分布している場合は、エラーログ情報を整理しなければならず、非常に手間がかかっていた。
【０００８】
メモリカードは、ある程度大容量化してきているが、ハードディスクと比較すると、記憶容量が限られている。また、画像データ、音楽データ等のファイルを保存すると、記憶領域は更に少なくなるため、メモリカードにエラーログ情報を記録してエラー検証を行うといったことは行われなかった。
【０００９】
本発明はこのような状況に鑑みて成されたものであり、簡単なシステム構成でエラー時のログ情報を確実に取得することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、記憶領域をブロック単位に分割してデータを記憶する半導体不揮発性メモリを備えたメモリカードにおいて、確定データを保存するメインメモリと、一時データを保存するバッファメモリと、メモリカードの動作中にエラーが発生した場合は、バッファメモリに保存されたエラーログ情報をメインメモリの特定ブロックに保存し、特定ブロックの保存領域がない場合は、古いエラーログ情報から消去することで常に最新のエラーログ情報を残す書込み手段と、エラーログ情報の消去に関する情報の管理を行う管理手段と、メインメモリに保存されたエラーログ情報を読出す読出し手段とを備える。
【００１１】
このようにしたことで、メモリカードの使用時において、発生したエラーをエラーログ情報としてメモリカードのメインメモリに保存し、エラー解析に用いることが可能となった。
【発明の効果】
【００１２】
本発明によれば、半導体不揮発性メモリを搭載したメモリカードにおいて、メモリカード動作中にエラーが発生した場合に同一メモリの特定ブロックにエラーログ情報を保存し、解析時にそのエラーログ情報を読み出して状況把握に利用するというものであるため、システムの追加を全くする事無く、エラーログ情報を記憶できるという効果がある。
【００１３】
また、エラー内容ごとにコード化したログナンバを用いることで、様々な種類に対応したエラー内容を、エラーログ情報を保存するメモリの特定ブロックの領域を逼迫することなく、保存できるという効果がある。
【００１４】
また、バッファメモリをリングバッファ状に用いることで、１回のエラーでエラーログ情報が多量に発生した場合には、常に最新のエラーログ情報を記憶できるという効果がある。
【００１５】
また、メモリカードの周囲環境を測定し、測定値をメモリに保存しておくようにしたことで、エラーが発生した場合のメモリカード使用時における周囲の状況を把握することができるという効果がある。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施の形態を、添付図面を参照して説明する。本実施の形態では、コンピュータ、デジタルカメラ、携帯電話端末等の電子機器から送信されるデータを記憶する半導体不揮発性メモリを搭載したメモリカードに適用した例としてある。
【００１７】
まず、本例のメモリカードの内部構成例について説明する。図１は、本例のメモリカード１の内部構成例を示したブロック図である。メモリカード１は、ケースが合成樹脂等で形成された長方形の形状としてあり、挿入方向の頂点の一部を欠いた切欠部１４を有することで、図示しないカードスロットにメモリカード１を挿入する際に誤接続を防止できる形状としている。そして、メモリカード１の内部には、回路基板が配置してあり、その基板上に後述する回路部品が配置してある。
【００１８】
データ通信を行う際には、メモリカード１をカードスロットに挿入することで、カードスロット内のコネクタと接続し、１０本のピン端子Ｔ１〜Ｔ１０を介することで行われる。ここで、端子Ｔ１及びＴ１０は検出電圧ＶＳＳ端子（グランド線ＧＮＤ）である。端子Ｔ２は、バスステート信号ＢＳの入力端子である。端子Ｔ６は検出端子ＩＮＳであり、図示しないドライブ装置によるメモリカード１の装着検出に用いられる。端子Ｔ８は、シリアルクロックＳＣＬＫの入力端子であり、端子Ｔ９は電源電圧ＶＣＣ端子である。そして、シリアルインタフェースモードでは、端子Ｔ３，Ｔ５，Ｔ７はハイインピーダンスとされ、端子Ｔ４がシリアルプロトコルデータ信号の入出力端子として用いられるシリアルデータＤＩＯが供給される。一方、パラレルインタフェースモードでは、端子Ｔ４に加えて、前述の端子Ｔ３，Ｔ５，Ｔ７がデータ線とされて、４本のパラレル伝送により動画、音楽、または高精細の静止画などを高速転送することが可能となっている。
【００１９】
そして、メモリカード１内の基板上には、図示しない外部のホスト制御部から送信されるデータから所定の命令を生成し、実行する制御手段を構成するコントロールＩＣ２が組み込まれている。コントロールＩＣ２上には、シリアルインタフェースモードで使用されるシリアル・インタフェース３及びパラレルインタフェースモードで使用されるパラレル・インタフェース４を併設してある。これらのインタフェースは、データ、シリアルクロック、バスステートの３線式で用いられ、シリアルクロック及びバスステートは、ホスト制御部から供給され、データは双方向通信される構成としてある。また、レジスタ６及びバッファメモリ７と、シリアル・インタフェース３及びパラレル・インタフェース４はバス５を介してデータ通信を行う構成としてある。そして、例えばホスト制御部からの制御データが、演算、実行状態、命令の保持に用いる記憶素子であるレジスタ６に供給され、画像データが、一時データを格納するバッファメモリ７に供給される。なお、バッファメモリ７に保存されるデータには、誤り訂正の処理を行うＥＣＣ（Error Correcting Code）エンコーダ／デコーダ８により誤り訂正符合が付加される。またコントロールＩＣ２は、水晶発振器１１からの出力により所要の内部クロックを得ることができる。
【００２０】
そして、動画、音楽、または高精細の静止画等のデータを保存するメモリ１０は、確定データを保存するメインメモリとしてフラッシュメモリ等の不揮発性メモリで構成されている。また、メモリ１０に記憶されている画像データを誤って消去することを防止するための誤消去防止スイッチ１２の設定内容に応じて、所定の信号がレジスタ６に供給されることで、レジスタ６が、データの書込可能／書込不能を判断する。そして、バッファメモリ７の一時データをメモリ１０に供給するメモリ・インタフェース・シーケンサ９は、メモリ１０のインタフェースであるメモリインタフェース１３を介してデータを供給し、データを保存する。また、メモリ・インタフェース・シーケンサ９は、レジスタ６、バッファメモリ７、ＥＣＣエンコーダ／デコーダ８との間でもデータ通信を行う。
【００２１】
また、メモリ１０から読み出されたデータは、メモリインタフェース１３を介してメモリ・インタフェース・シーケンサ９より、バッファメモリ７に供給される。このとき、ＥＣＣエンコーダ／デコーダ８は、バッファメモリ７に記憶されているデータに付加されている誤り訂正符号に基づいて誤り訂正処理を施す。そして、バッファメモリ７は、誤り訂正処理済みのデータを１ページ毎に読み出してデータをシリアル・インタフェース３又はパラレル・インタフェース４に供給した後、ホスト制御部に送信する。
【００２２】
次に、メモリ１０に記憶される記憶領域のデータ構造の例を図２を参照して説明する。メモリ１０は、本例では１個のメモリカード１で１チップ使用される。図２（ａ）は、１チップのメモリ１０についてブロックという単位で複数個に分割したデータ構造の例を示す。図２（ｂ）は、前述したブロックの内１個を例に挙げて、ブロックをページという単位で複数個に分割したデータ構造の例を示す。図２（ｃ）は、前述したページの内１個を例に挙げて、ページをグループという単位で複数個に分割したデータ構造の例を示す。図２（ｄ）は、前述したグループの内１個を例に挙げて、実際に格納されているデータの例をダンプリストで示す。なお、メモリ１０の読出／書込の単位をページ、消去する単位をブロックと呼び、この単位でしかアクセスすることはできない。また、本例においては、メモリ１０の特定ブロックを後述するエラーログ情報の記憶領域として使用する。
【００２３】
まず、メモリ１０を構成する１チップのデータ構造について図２（ａ）のデータ構造の例を用いて説明する。本例のメモリ１０は、１チップあたりのブロック数が４０９６個であリ、メモリ１０は、データを記憶する領域として複数のブロックＢ１〜Ｂ４０９６に分割してある。
【００２４】
次に、ブロックを構成するページのデータ構造について図２（ｂ）のブロックのデータ構造の例を用いて説明する。ここで、図２（ａ）の１チップのデータ構造の例より、ブロックＢ１を例に挙げると、１ブロックあたりのページ数は６４個であリ、ブロックＢ１は、データを記憶する領域として複数のページＰ１〜Ｐ６４に分割してある。なお、１ページあたりの記憶領域は２Ｋバイトである。
【００２５】
次に、ページを構成するグループのデータ構造について図２（ｃ）のページのデータ構造の例を用いて説明する。ここで、図２（ｂ）のブロックのデータ構造の例より、ページＰ１を例に挙げると、ページＰ１は、データを記憶する領域として複数のグループＧ１〜Ｇ４に分割してある。なお、1グループあたりの記憶領域は５１２バイトである。
【００２６】
そして、グループを構成するデータについて図２（ｄ）の格納データのダンプリストの例を用いて説明する。ここで、図２（ｃ）のグループのデータ構造の例より、グループＧ４を例に挙げると、図２（ｄ）は、グループＧ４に格納されたデータを１６進数で表示させたダンプリストである。
【００２７】
なお、図２では１チップあたり４０９６ブロック、１ブロックあたり６４ページのメモリ１０について説明したが、メモリ１０は、メモリカード１の容量によって、搭載されるチップ数が変化する。また、搭載されるチップによって１チップあたりのブロック数、及び１ブロックあたりのページ数も変化するため、本例の数値に限定されるものではない。
【００２８】
次に、エラーログ情報を得るための機能について図３を参照して説明する。ここで、エラーログ情報を得るための機能としては、エラーログを半導体不揮発性メモリに書込み、保存する機能と、その半導体不揮発性メモリに保存されたエラーログを取得する機能に分けられる。また、前者のエラーログを半導体不揮発性メモリに書込み、保存する機能については、エラーログをバッファメモリへ一時保存する機能と、半導体不揮発性メモリへ書込み、保存する機能に分けられる。
【００２９】
図３のフローチャートは、本例のエラーログ情報を記憶検証する際の動作について示す。まず、通常稼動時において、エラーが発生したかどうか判断する（ステップＳＴ３１）。エラーが発生していないようであれば、通常稼動を続ける（ステップＳＴ３２）。エラー発生時には、始めにメモリカード１のバッファメモリ７にエラーログ情報を一時保存する（ステップＳＴ３３）。その後、メモリ１０の特定のブロックにエラーログ情報を書込み、保存する（ステップＳＴ３４）。その後、エラーログ情報の検証を行うように設定されているかどうか判断する（ステップＳＴ３５）。エラーログ情報の検証を行うか否かについては、例えばユーザ操作などで予め設定することができる。エラー検証を行わない場合は、通常稼動を継続する（ステップＳＴ３２）。検証を行う場合は、図示しないリーダ等の検証装置を使用してメモリ１０に対する読出し命令を生成し、コントロールＩＣ２に供給することでエラーログ情報をメモリ１０から読出す（ステップＳＴ３６）。そして、読出したエラーログ情報を例えば、ダンプリストに出力したり、パーソナルコンピュータのディスプレイ上に表示させたりしてエラー検証を行う。
【００３０】
図４はエラーログ情報を記録する際の概念図である。図４（ａ）は、エラーが発生してからのバッファメモリ７を示し、エラーログ情報の一時保存を表す。図４（ｂ）は、半導体不揮発性メモリとしてのメモリ１０を示し、後述するエラーログ情報の特定ブロックＢ３，Ｂ４への確定保存を表す。図４（ｃ）は、メモリ１０から読み出したエラーログ情報のダンプリストを表す。また、それぞれの動作に対して、前述の図３のフローチャートにおけるステップ数を付与して対応付けている。
【００３１】
このように、エラーログ情報は、バッファメモリ７又はメモリ１０に対して確実に保存されることが分かる。また、メモリ１０の特定ブロックに保存されたエラーログ情報を読み出すことでエラー検証を行うことが可能となる。
【００３２】
次に、エラーログ情報の保存場所について図５の概念図を参照して説明する。図５（ａ）は、メモリ１０の特定ブロックに書き込まれているエラーログ情報を示したメモリの概念図である。図５（ｂ）は、エラーログ情報が保存されたブロックをページ毎にセル表示したブロックの概念図である。図５（ｃ）は、エラーログ情報が保存されたページのダンプリスト、及び実際に格納されているエラーログ情報の例を示している。
【００３３】
図５（ａ）に示すメモリ１０は、１チップの半導体不揮発性メモリであり、エラーログ情報は、メモリ１０の内、特定のブロック（ブロックＢ３，Ｂ４）に書き込まれて保存されている。１回のエラー発生で１ページ（２Ｋバイト）を使用し（可変）、エラーが何度も発生した場合を想定し最大で２ブロック（＝２×６４ページ×２Ｋバイト／ページ＝２５６Ｋバイト）分のエラーログ情報が保存される。また、エラーが何度も発生した場合は、最高で２ブロックまでのエラーログを残し、それ以上エラーが発生した場合は、古いエラーログから消去するようにして、常に最新のエラーログが半導体不揮発性メモリに残るようにしてある。また古いエラーログが消去されたとしても過去に何回エラーが発生したか分かるようにリビジョン管理を行っている。このリビジョン管理としては、例えば、エラーログ情報に、エラー発生回数の項目を割り振ることで、あるログナンバ（エラー）が何回出現したか分かるようにする。
【００３４】
図５（ｂ）に示した４行×６４列のセルは、ページ毎に分割したブロックの概念図である。本例においては、エラーログ情報は座標（０，１）のセルに格納されているとする。０列は、エラーログ情報の管理情報に用いられる。そして、１〜６３列の各セルには、それぞれ１６進数で列番号が記してある。各列にある４セルが１ページに相当し、１セルに対して５１２バイトの領域を確保してあるため、１ページの領域は２Ｋバイト（２０４８バイト）となる。そして、各セルにエラーログ情報が格納される。また、１回のエラーでエラーログ情報が多量に発生した場合は、エラーログ情報の一時保存バッファ２Ｋバイト（可変）をリングバッファ状にすることで、常に最新のエラーログが半導体不揮発性メモリへ書き込まれて保存されるようにしている。
【００３５】
図５（ｃ）には、図５（ｂ）の座標（０，１）のセルに格納されたエラーログ情報を例に挙げてある。実際のエラーログを示したエラーログＥ１には、後述するエラーログの書式に従ってエラーログ情報が記憶してあり、エラーログＥ２は、エラーログＥ１のダンプリストである。また、ページの冗長部であるエラーログＥ３には、エラーログの管理情報が記憶してある。
【００３６】
次に、エラーログの書式について図６の説明図を参照して説明する。１つのエラーログ情報は３２バイトで構成されており、フィールドＦ１〜Ｆ８がセットされている。図５（ｃ）で示したエラーログＥ１を例に挙げると、フィールドＦ１は、３バイトの領域を確保し、ログナンバとして“３１８”が記憶される。フィールドＦ２は、１バイトの領域を確保し、ポートとして“０”が記憶される。また、フィールドＦ３は、８バイトの領域を確保し、ブロックとして“００００００２４”が記憶される。フィールドＦ４は、４バイトの領域を確保し、ページとして“０００７”が記憶される。フィールドＦ７は、４バイトの領域を確保し、後述するセグメントとして“００００”が記憶される。フィールドＦ５は１バイト、Ｆ６は２バイト、Ｆ８は９バイトの領域を確保してあるが、現在は特にデータを記憶しない。
【００３７】
なお、メモリの管理は５１２ブロックを１セグメントとした単位で行う。この単位を用いることでセグメント内に属するブロック番号の範囲を限定できるのでメモリ制御を容易に行うことが可能となる。
【００３８】
よって、エラーログＥ１は、０ポート、０セグメントの０ｘ２４ブロック、０ｘ７ページ目でログナンバ“３１８”のエラーが発生したことが分かる。
【００３９】
このエラーログ情報に示したように、ログナンバに加えてポート、ブロック、ページ等の取得したい変数をプログラムソース上に埋め込む事で、エラー発生時に任意のエラーログ情報を記憶する事が可能となる。
【００４０】
次に、ログナンバとエラーの対応について図７のエラー対応表を参照して説明する。ユーザはメモリ１０に記憶したエラーログ情報からログナンバを読取り、このエラー対応表と参照しながらエラーの検証を行う。本例のエラー対応表には、４つの項目Ｋ１〜Ｆ４が記されている。項目Ｋ１は、「大別としての処理」であり、メモリカード１の大まかな処理について記されている。項目Ｋ２は、「内容」であり、項目Ｋ１に付随するエラーの概要が記されている。項目Ｋ３は、「ログナンバ」であり、エラー内容をコード化してある。また、ログナンバは、プログラムソースに直接記述されるコードである。そして、項目Ｋ４は、「解説」であり、エラー内容の詳細がログナンバ毎に記されている。
【００４１】
このように、それぞれのエラーに対して所定のログナンバを割り振ってあるため、エラーの解析を行う際は、エラーログ情報に記されたログナンバと、エラー対応表からエラー内容を照合することで、エラー発生時の状況を把握する事ができる。
【００４２】
そして、エラーログのバッファメモリ７への一時保存とメモリ１０への書き込みについてのフローチャートを図８を参照して説明する。まず、メモリカード１の電源をオンとする（ステップＳＴ７１）。すると、初期化を行うためにマウント処理が開始される（ステップＳＴ７２）。この時、バッファメモリ７にエラーログ情報が存在しているかどうか判断する（ステップＳＴ７３）。エラーログ情報が存在している場合は、メモリ１０にこのエラーログ情報を書込み保存し（ステップＳＴ７４）、マウント処理を終了する（ステップＳＴ７５）。エラーログ情報が存在していない場合は、そのままマウント処理を終了する（ステップＳＴ７５）。この後、ホスト制御部からのコマンド入力待ち状態となる（ステップＳＴ７６）。
【００４３】
ホスト制御部からコマンドが発行されると、コマンド処理が開始される（ステップＳＴ７７）。その後、それぞれのコマンド処理より得られる返り値の判定を行う（ステップＳＴ７８）。返り値が「ＮＧ」又は「ＮＯ  ＢＬＯＣＫ」である場合は、バッファメモリ７にエラーログ情報が一時保存され（ステップＳＴ７９）、コマンド処理を終了する（ステップＳＴ８０）。一方、コマンド処理による返り値が「ＯＫ」である場合は、そのままコマンド処理を終了する（ステップＳＴ８０）。
【００４４】
各コマンド処理から得られた返り値を判定する（ステップＳＴ８１）。返り値が「ＯＫ」であれば、再びコマンド入力待ち状態に入る（ステップＳＴ７６）。返り値が「ＮＧ」又は「ＮＯ  ＢＬＯＣＫ」である場合は、バッファメモリ７に一時保存されているエラーログ情報がメモリ１０に書き込まれ、保存される（ステップＳＴ８２）。その後、再びコマンド入力待ち状態に入る（ステップＳＴ７６）。
【００４５】
このように、本例のメモリカード１は、動作中にエラーが発生した場合に、プログラムソース上に記述されたエラーナンバ、及びエラーが発生したブロック、ページ等のエラーログ情報をメモリ１０の特定ブロックに保存することができるため、エラーの解析時には速やかにこのエラーログ情報を特定ブロックから読み出すことができ、エラー発生の状況把握に利用することが可能となる。
【００４６】
本実施の形態のメモリカード１について、実際に試作、量産、市場で不具合が起きて解析を行ったものに適用して実験した例について説明すると、サンプル全体から効果を計算した値では５７．７％、不具合の種類別に分けて効果を計算した値では７５．０％で、エラーログ情報から原因が直ぐに分かるという効果があった。また、エラーログ情報から解析の方向性が分かる、という効果も得ることができる。
【００４７】
また、エラー内容をコード化し、コード化したログナンバを記憶するといった方法を用いることで、プログラムソース的に軽く、メモリカードの動作スピードにはほとんど影響の出ないシステム的に負担のかからないものとなっている。エラーログ情報にはログナンバ以外に、エラー発生ブロック、ページ等の情報も盛り込む事でエラー発生場所、状況等も把握する事ができるようになっている。
【００４８】
また、メモリカード１が不具合無く動作している場合は、メモリ１０へのエラーログ書き込みルーチンに入らないので、メモリカード１の読み書きスピードへの影響はほとんど無いという効果がある。
【００４９】
また、エラーログ情報を、外部のハードディスクドライブやテープユニットといった装置を用いずに、直接メモリカードに記憶することができるため、構成を簡単にすることができる。
【００５０】
なお、半導体不揮発性メモリを搭載したメモリカード１から得られるエラーログ情報の内容は、エラー内容、発生場所等であるが、メモリ１０に保存されたＦＡＴ、ディレクトリエントリを監視する事でエラー発生時のユーザのメモリカード１の使用頻度、最終書込み日時等を確認したり、メモリ１０上に配置されたシステムエリアを見ることで、エラー発生時のメモリ１０の物理的なブロック使用頻度等を確認することが可能である。
【００５１】
また、メモリカード１に電流、電圧、圧力、温度、気温、水没の有無等を測定できる計測器を取り付け、測定値をエラーログ情報としてメモリ１０に記憶することで、メモリカード１を使用した際の外部環境情報も得ることが可能である。こうした計測器は、コントロールＩＣ２上に設けられ、バス５を介してバッファメモリ７に測定値が書込まれ、メモリ・インタフェース・シーケンサ９よりメモリ１０に測定値が確定保存される。これにより、通常使用で想定される保証動作の範囲外でメモリカード１が使用された場合でも、測定結果が達した数値や、エラーが発生した場合におけるその時点の測定値を記憶してあるため、外部環境を再現して検証することが可能である。
【００５２】
また、上述した実施の形態のように、エラーログ情報を手動で読み出して、ログナンバとエラー内容を照合してエラー解析を行うようにしても良いが、ＰＣ（Personal Computer）等を用いて自動的にエラー内容、発生場所等をディスプレイ等の表示装置に表示させるようにしてもよい。あるいは、ＰＣ、解析治具等とターゲットとなるメモリカードをつないで、自動的に読み出したエラーログを元にエラーが発生し不具合を起こしているメモリカード内のメモリ、コントローラ等にアクセスし、その結果を表示装置に表示するというような自動解析装置に用いることも可能である。
【００５３】
このように、エラー検証作業を自動化することで、エラーレベルによって重点的に検証しなければならないエラー、さほどシステムに影響のないエラーを素早く選別することが可能であるため、エラー検証作業の負荷を軽減することができる。
【図面の簡単な説明】
【００５４】
【図１】本発明の一実施の形態におけるメモリカードの例を示したブロック図である。
【図２】本発明の一実施の形態における半導体不揮発性メモリの構成例を示した説明図である。
【図３】本発明の一実施の形態におけるエラーログの記憶・検証の処理例を示したフローチャートである。
【図４】本発明の一実施の形態におけるエラーログの記憶・検証の例を示した説明図である。
【図５】本発明の一実施の形態におけるエラーログの保存場所の例を示した概念図である。
【図６】本発明の一実施の形態におけるエラーログの書式例を示した説明図である。
【図７】本発明の一実施の形態におけるログナンバとエラーの対応例を示した説明図である。
【図８】本発明の一実施の形態における、エラーログ書込みの処理例を示したフローチャートである。
【符号の説明】
【００５５】
１…メモリカード、２…コントロールＩＣ、３…シリアル・インタフェース、４…パラレル・インタフェース、５…バス、６…レジスタ、７…バッファメモリ、８…ＥＣＣエンコーダ／デコーダ、９…メモリ・インタフェース・シーケンサ、１０…メモリ、１１…水晶発信器、１２…誤消去防止スイッチ、１３…メモリインタフェース、１４…切欠部、Ｂ１〜Ｂ４０９６…ブロック、Ｅ１〜Ｅ３…エラーログ、Ｆ１〜Ｆ８…フィールド、Ｇ１〜Ｇ４…グループ、Ｋ１〜Ｋ４…項目、Ｐ１〜Ｐ６４…ページ、Ｔ１〜Ｔ１０…端子
【図１】
2006178537.tif 000003
【図２】
2006178537.tif 000004
【図３】
2006178537.tif 000005
【図４】
2006178537.tif 000006
【図５】
2006178537.tif 000007
【図６】
2006178537.tif 000008
【図７】
2006178537.tif 000009
【図８】
2006178537.tif 000010