(57)【要約】【課題】  デバッグの効率及び信頼性を向上可能なコントローラ及びメモリシステムを提供する。【解決手段】    メモリシステムの外部からメモリシステムに対する命令を受け取るホストインターフェース５ａと、命令を処理し、処理結果に応じて半導体メモリ３ａの動作を制御し、制御用メモリを有する処理回路６ａと、制御時に制御用メモリに記憶されるデータをデバッグ用データとして取得するデバッグデータ取得装置７ａと、メモリシステムの外部からホストインターフェース５ａへのデータ入力が行われていない期間に、ホストインターフェース５ａを介してデバッグ用データをメモリシステムの外部に出力する入出力制御装置８ａとを備える。【選択図】  図１
2008021396.tif 000002
【特許請求の範囲】
【請求項１】
半導体メモリを搭載したメモリシステムに搭載可能なコントローラであって、
前記メモリシステムの外部から前記メモリシステムに対する命令を受け取るホストインターフェースと、
前記命令を処理し、処理結果に応じて前記半導体メモリの動作を制御し、制御用メモリを有する処理回路と、
前記制御時に前記制御用メモリに記憶されるデータをデバッグ用データとして取得するデバッグデータ取得装置と、
前記メモリシステムの外部から前記ホストインターフェースへのデータ入力が行われていない期間に、前記ホストインターフェースを介して前記デバッグ用データを前記メモリシステムの外部に出力する入出力制御装置
とを備えることを特徴とするコントローラ。
【請求項２】
前記デバッグ用データが、前記半導体メモリに対するコマンド及び前記半導体メモリのアドレスの少なくともいずれかであることを特徴とする請求項１記載のコントローラ。
【請求項３】
前記デバッグ用データが、前記処理回路の動作を制御するファームウェアの動作データであることを特徴とする請求項１記載のコントローラ。
【請求項４】
前記ホストインターフェースが、前記メモリシステムにデータを入力するための書き込み有効信号を受け取り、
前記入出力制御装置が、前記書き込み有効信号が所定の時間以上無効となる場合に前記デバッグ用データを出力することを特徴とする請求項１〜３のいずれか１項に記載のコントローラ。
【請求項５】
半導体メモリを搭載したメモリシステムであって、
半導体メモリと、
前記メモリシステムの外部から前記メモリシステムに対する命令を受け取るホストインターフェースと、
前記命令を処理し、処理結果に応じて前記半導体メモリの動作を制御し、制御用メモリを有する処理回路と、
前記制御時に前記制御用メモリに記憶されるデータをデバッグ用データとして取得するデバッグデータ取得装置と、
前記メモリシステムの外部から前記ホストインターフェースへのデータ入力が行われていない期間に、前記ホストインターフェースを介して前記デバッグ用データを前記メモリシステムの外部に出力させる入出力制御装置
とを備えることを特徴とするメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリを搭載するコントローラ及びメモリシステムに関する。
【背景技術】
【０００２】
従来より、半導体装置からデータを取り出して、半導体装置の外部で半導体装置の内部状態を解析（デバッグ）するための様々な方法が検討されている（例えば、特許文献１参照）。
【０００３】
パーソナルコンピュータ、パーソナル・デジタル・アシスタンス（ＰＤＡ）、デジタルカメラ、携帯電話等の様々な電子機器においては、リムーバブル記憶デバイスの１つであるメモリカード等のメモリシステムが多く用いられている。このメモリシステムは、データを保持する半導体メモリと半導体メモリとホスト機器間のデータ転送を制御するコントローラとを有している。コントローラには、一般にコントローラの動作を制御するための制御プログラム（ファームウェア）が格納されている。コントローラは、ファームウェアを実行して、ホスト機器と半導体メモリ間のデータ転送を制御する。
【０００４】
このようなメモリシステムにおいては、ホスト機器と接続するホストインターフェース部分の端子（ピン）の数が予め決められており、デバッグ専用のピンを新たに設けることができない。そのため、メモリシステムをデバッグする場合は、ホスト機器に接続されたピンから転送されたコマンドを、メモリシステムの外部に取り出し、取り出されたコマンド等の組み合わせによりコントローラの制御状態を解析する方法が用いられてきた。
【０００５】
しかしながら、コマンドの組み合わせによりコントローラの制御状態を解析する方法では、コントローラが半導体メモリのどの領域にどのようにアクセスしたのかを判別できない。また、ファームウェアの誤動作が原因であると推測できても、具体的に不具合を生じさせるコードの特定が難しいため、デバッグ効率が悪く、信頼性も低い。
【特許文献１】特開平１０−２３２７９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、デバッグの効率及び信頼性を向上可能なコントローラ及びメモリシステムを提供する。
【課題を解決するための手段】
【０００７】
本願発明の態様によれば、半導体メモリを搭載したメモリシステムに搭載可能なコントローラであって、メモリシステムの外部からメモリシステムに対する命令を受け取るホストインターフェースと、命令を処理し、処理結果に応じて半導体メモリの動作を制御し、制御用メモリを有する処理回路と、制御時に制御用メモリに記憶されるデータをデバッグ用データとして取得するデバッグデータ取得装置と、メモリシステムの外部からホストインターフェースへのデータ入力が行われていない期間に、ホストインターフェースを介してデバッグ用データをメモリシステムの外部に出力する入出力制御装置とを備えるコントローラが提供される。
【０００８】
本願発明の他の態様によれば、半導体メモリを搭載したメモリシステムであって、半導体メモリと、メモリシステムの外部からメモリシステムに対する命令を受け取るホストインターフェースと、命令を処理し、処理結果に応じて半導体メモリの動作を制御し、制御用メモリを有する処理回路と、制御時に制御用メモリに記憶されるデータをデバッグ用データとして取得するデバッグデータ取得装置と、メモリシステムの外部からホストインターフェースへのデータ入力が行われていない期間に、ホストインターフェースを介してデバッグ用データをメモリシステムの外部に出力させる入出力制御装置とを備えるメモリシステムが提供される。
【発明の効果】
【０００９】
本発明によれば、デバッグの効率及び信頼性を向上可能なコントローラ及びメモリシステムが提供できる。
【発明を実施するための最良の形態】
【００１０】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。また、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造又は配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１１】
（メモリシステムの構造）
本発明の実施の形態に係るメモリシステムは、図１に示すように、第１メモリカード１ａと、第２メモリカード１ｂと、第３メモリカード１ｃとを備える。第１〜第３メモリカード１ａ，１ｂ，１ｃは、エクステンダー３０を介してホスト機器２０に接続され、バスを介して解析機器４０に接続される。
【００１２】
ホスト機器２０は、第１〜第３メモリカード１ａ，１ｂ，１ｃとアクセスするためのハードウェア及びソフトウェアを備えており、第１〜第３メモリカード１ａ，１ｂ，１ｃに対して、種々の命令（コマンド）を出力する。例えば、ホスト機器２０は、第１〜第３メモリカード１ａ，１ｂ，１ｃに対する「通常コマンド」と呼ばれるコマンドを出力可能である。
【００１３】
「通常コマンド」とは、第１〜第３メモリカード１ａ，１ｂ，１ｃが、ホスト機器２０からの要求に応じて通常動作を行うためのコマンドをいう。「通常動作」とは、ホスト機器２０の本来の機能に対応した動作であり、例えば、ホスト機器２０がデジタルカメラである場合、デジタルカメラから転送された写真データを、第１〜第３半導体メモリ３ａ，３ｂ，３ｃに書き込む動作、或いは第１〜第３半導体メモリ３ａ，３ｂ，３ｃに格納された写真データを読み出してデジタルカメラに転送する動作等を指す。
【００１４】
一方、デバッグ実行者が、第１〜第３メモリカード１ａ，１ｂ，１ｃの解析（デバッグ）に必要なデータを、第１〜第３メモリカード１ａ，１ｂ，１ｃの外部へ出力させるためのコマンドを「ベンダーコマンド」という。ベンダーコマンドにより、第１〜第３メモリカード１ａ，１ｂ，１ｃが解析機器４０やホスト機器２０へ出力するデータの種類の設定、切り替え、或いはデータ出力のタイミングの設定等が可能である。
【００１５】
ベンダーコマンドには、例えば、第１〜第３メモリカード１ａ，１ｂ，１ｃに対し、ホスト機器２０からの通常コマンドに対する通常動作を実行させて、ホスト機器２０と第１半導体メモリ３ａ間のデータ転送をさせるための「通常モード」に設定するためのコマンドが含まれる。また、第１〜第３メモリカード１ａ，１ｂ，１ｃに格納されたファームウェアの動作データ、或いは第１〜第３半導体メモリ３ａ，３ｂ，３ｃのアドレス又はコマンド等を、デバッグ用データとして、後述する所定のタイミングで解析機器４０又はホスト機器２０へ出力させるための「内部モニターモード」に設定するためのコマンドが含まれる。
【００１６】
エクステンダー３０は、ホスト機器２０が出力したコマンドを、第１〜第３メモリカード１ａ，１ｂ，１ｃに同時に転送可能である。解析機器４０は、第１〜第３メモリカード１ａ，１ｂ，１ｃから出力されたデータを取り込んで記録又は表示させ、第１〜第３メモリカード１ａ，１ｂ，１ｃの動作を解析することができる。
【００１７】
第１メモリカード１ａは、第１半導体メモリ３ａと、第１コントローラ４ａとを含む。第２メモリカード１ｂは、第２半導体メモリ３ｂと、第２コントローラ４ｂとを含む。第３メモリカード１ｃは、第３半導体メモリ３ｃと、第３コントローラ４ｃとを含む。
【００１８】
第１〜第３半導体メモリ３ａ，３ｂ，３ｃとしては、例えば、消去単位である消去ブロックのサイズが２５６Ｋバイトに定められ、データの書き込み及び読み出しを２Ｋバイト単位で行うことができるＮＡＮＤ型フラッシュメモリが採用可能である。図１においては、第１〜第３半導体メモリ３ａ，３ｂ，３ｃがそれぞれ１つずつ搭載された例を示すが、複数の半導体メモリが、第１〜第３メモリカード１ａ，１ｂ，１ｃに搭載されていても構わない。なお、第１〜第３メモリカード１ａ，１ｂ，１ｃのクロックは、第１メモリカード１ａ，１ｂ，１ｃの内部で生成されており、第１〜第３コントローラ４ａ，４ｂ，４ｃは、このクロックに同期して動作する。
【００１９】
（コントローラの構造）
本発明の実施の形態に係るコントローラを、図１に示す第１メモリカード１ｃの第１コントローラ４ａを例に説明する。第１コントローラ４ａは、第１ホストインターフェース５ａと、第１コントローラ４ａの外部からのコマンドを処理し、処理結果に応じて第１半導体メモリ３ａの動作を制御し、制御用メモリ（図４参照。）６２ａを有する第１処理回路６ａと、制御時に制御用メモリ６２ａに記憶されるデータをデバッグ用データとして取得する第１デバッグ用データ取得装置７ａと、第１コントローラ４ａの外部から第１ホストインターフェース５ａへのデータ入力が行われていない期間に、第１ホストインターフェース５ａを介してデバッグ用データを出力する第１入出力制御装置８ａとを備える。
【００２０】
第１ホストインターフェース５ａは、エクステンダー３０を介してホスト機器２０から出力された第１半導体メモリ３ａに対するコマンドを受け取る。ここで、第１半導体メモリ３ａがＮＡＮＤ型フラッシュメモリである場合の第１ホストインターフェース５ａのピン配置例を図２に示す。図２に示した第１ホストインターフェース５ａのピンアサイン、すなわちピン番号とピンに割り当てられた信号の例を図３に示す。
【００２１】
ピン１、９は、基準電圧、例えば、接地電圧ＧＮＤに割り当てられる。ピン１８は電源電圧Ｖｃｃに割り当てられる。ピン２は、第１メモリカード１ａの内部動作状態をホスト機器２０に知らせるためのレディ／ビジー信号Ｒ／−Ｂに割り当てられる。書き込み、読み出し及び消去時等、第１メモリカード１ａが動作中はピン２からビジー信号が出力され、動作が完了するとレディ信号がピン２から出力される。ピン３はデータを第１メモリカード１ａから読み出させるリードイネーブル信号−ＲＥに、ピン４は第１メモリカード１ａを動作モードにするチップイネーブル信号−ＣＥにそれぞれ割り当てられる。
【００２２】
ピン５は第１メモリカード１ａへのコマンドの取り込みをコントロールするためのコマンドラッチイネーブル信号ＣＬＥに、ピン６はアドレス及び入力データの取り込みをコントロールするためのアドレスラッチイネーブル信号ＡＬＥに割り当てられる。ピン７は、データを第１メモリカード１ａに書き込むためのライトイネーブル信号−ＷＥに、ピン８は書き込み及び消去を強制的に禁止するためのライトプロテクト信号−ＷＰに割り当てられる。ピン１０〜１７は、コマンド、アドレス及びデータが転送されるデータ信号Ｄ０〜データ信号Ｄ７に割り当てられる。
【００２３】
図３において、タイプ「Ｓ」は電源電圧を示し、タイプ「Ｉ」は第１メモリカード１ａへの入力であることを示す。更に、タイプ「Ｉ／Ｏ」は第１メモリカード１ａに対する入出力であることを示す。また、信号名の先頭に符号「−」を付した信号は、ローレベルの場合に有効なロー・トゥルー（Low True）信号であることを示す。
【００２４】
図１の第１処理回路６ａは、第１ホストインターフェース５ａを介してホスト機器２０から転送されたコマンドを処理し、第１半導体メモリ３ａにおけるデータの書き込み、読み出し、及び消去の動作を制御する。第１処理回路６ａは、図４に示すように、中央演算処理装置(ＣＰＵ）６１ａと制御用メモリ６２ａとを備えている。
【００２５】
ＣＰＵ６１ａは、ホスト機器２０から出力されたコマンドに応じて、第１メモリカード１ａ内に格納されたファームウェアを実行することにより、ホスト機器２０と第１半導体メモリ３ａ間のデータ転送を制御する。
【００２６】
例えば、ホスト機器２０からのコマンドがデータ書き込み要求である場合は、ＣＰＵ６１ａがホスト機器２０から転送されたデータを第１半導体メモリ３ａに書き込む。ホスト機器２０からのコマンドがデータ読み出し要求である場合は、ＣＰＵ６１ａがホスト機器２０から要求されたデータを第１半導体メモリ３ａから読み出し、読み出したデータをホスト機器２０に転送する。このため、ＣＰＵ６１ａの動作に関するデータを出力して解析することにより、ＣＰＵ６１ａによって実行された種々の命令を解析できる。
【００２７】
制御用メモリ６２ａは、ＣＰＵ６１ａがファームウェアを実行する際にＣＰＵ６１ａからアクセスされる。制御用メモリ６２ａは、プログラムメモリ６２１ａ、作業メモリ６２２ａ、及びレジスタ６２３ａを含む。プログラムメモリ６２１ａには、ＣＰＵ６１ａにより実行される制御プログラム等が格納されている。プログラムメモリ６２１ａとしては、リードオンリーメモリ（ＲＯＭ）が採用可能である。
【００２８】
作業メモリ６２２ａは、ＣＰＵ６１ａの作業エリアとして使用され、ＣＰＵ６１ａが制御プログラム（ファームウェア）を実行して作成するデータ等を格納する記憶装置である。作業メモリ６２２ａとしては、ランダムアクセスメモリ（ＲＡＭ）等が採用可能である。
【００２９】
レジスタ６２３ａは、ＣＰＵ６１ａがデータを一時的に格納する記憶装置である。レジスタ６２３ａに格納されたデータは常に参照可能であるため、ＣＰＵ６１ａはレジスタ６２３ａに格納されたデータを高速に読み出せる。
【００３０】
ＣＰＵ６１ａは、バス６３ａを経由して制御用メモリ６２ａに例えばアドレスを出力する。ＣＰＵ６１ａが制御用メモリ６２ａに出力するアドレスは、プログラムメモリ６２１ａに格納されるＲＯＭアドレス、作業メモリ６２２ａに格納されるＲＡＭアドレス及びレジスタ６２３ａに格納されるレジスタアドレスを含む。ＲＯＭアドレス、ＲＡＭアドレス及びレジスタアドレスは、バス６３ａ内に設定されたそれぞれの専用パスを経由して、ＣＰＵ６１ａから制御用メモリ６２ａに転送される。
【００３１】
例えば、プログラムメモリ６２１ａにファームウェアが格納されている場合、ＣＰＵ６１ａがファームウェアを実行するためにプログラムメモリ６２１ａに出力するＲＯＭアドレスが、ファームウェアの動作データとなる。また、ＣＰＵ６１ａがファームウェアを実行する際に、メモリシステムの外部にリアルタイムで出力する第１半導体メモリ３ａに対するアドレス、コマンドが、第１半導体メモリ３ａへのアクセスデータとなる。
【００３２】
図１の第１コントローラ４ａが備える第１デバッグ用データ取得装置７ａは、図１に示すように、例えば、第１データ取得装置７１ａ及び第２データ取得装置７２ａを含む。
【００３３】
第１データ取得装置７１ａは、例えば、第１処理回路６ａが実行する第１半導体メモリ３ａへのアクセスデータを第１データとして、図４に示した制御用メモリ６２ａから取得する。第２データ取得装置７２ａは、例えば、第１処理回路６ａの動作を制御するファームウェアの動作データを第２データとして、図４に示したプログラムメモリ６２１ａから取得する。
【００３４】
図１の第１入出力制御装置８ａは、第１処理回路６ａの動作を監視し、第１処理回路６ａの制御に応じて第１半導体メモリ３ａから転送される転送データ、第１データ取得装置７１ａが取得した第１データ、第２データ取得装置７２ａが取得した第２データのいずれかを、ベンダーコマンドにより設定された所定の条件に基づいて第１ホストインターフェース５ａへ出力させる。
【００３５】
例えば、図１の第１メモリカード１ａが、通常動作を行うための「通常モード」に設定されている場合には、第１入出力制御装置８ａが、第１処理回路６ａの通常動作に基づく転送データを、エクステンダー３０を介してホスト機器２０へ出力する。
【００３６】
一方、第１メモリカード１ａが、第１データ或いは第２データを外部へ出力させるための「内部モニターモード」に設定されている場合には、第１入出力制御装置８ａが、ホスト機器２０から、ある制御信号が一定期間以上出力されていない時間に第１ホストインターフェース５ａのピン番号１０〜１７のピン等を用いて、第１処理回路６ａのアクセスデータを解析機器４０に出力させる。
【００３７】
図１に示すように、第２メモリカード１ｂの第２コントローラ４ｂは、メモリシステムの外部からの第２半導体メモリ３ｂに対する命令を受け取る第２ホストインターフェース５ｂと、命令を処理し、処理結果に応じて第２半導体メモリ３ｂの動作を制御し、制御用メモリを有する第２処理回路６ｂと、第１データ取得装置７１ｂ及び第２データ取得装置７２ｂを備え、制御時に制御用メモリに記憶されるデータをデバッグ用データとして取得する第２デバッグ用データ取得装置７ｂと、メモリシステムの外部から第２ホストインターフェース５ｂへのデータ入力が行われていない期間に、第２ホストインターフェース５ｂを介してデバッグ用データを解析機器４０又はホスト機器２０等のメモリシステムの外部に出力する第２入出力制御装置８ｂとを備える。
【００３８】
第３メモリカード１ｃの第３コントローラ４ｃは、メモリシステムの外部からの第３半導体メモリ３ｃに対する命令を受け取る第３ホストインターフェース５ｃと、命令を処理し、処理結果に応じて第３半導体メモリ３ｃの動作を制御し、制御用メモリを有する第３処理回路６ｃと、第１データ取得装置７１ｃ及び第２データ取得装置７２ｃを備え、制御時に制御用メモリに記憶されるデータをデバッグ用データとして取得する第３デバッグ用データ取得装置７ｃと、メモリシステムの外部から第３ホストインターフェース５ｃへのデータ入力が行われていない期間に、第３ホストインターフェース５ｃを介してデバッグ用データを、解析機器４０等に出力させる第３入出力制御装置８ｃとを備える。なお、第２及び第３コントローラ４ｂ，４ｃに含まれる装置及び構成は、第１コントローラ４ａが備える装置及び構成と実質的に同様であるので記載を省略する。
【００３９】
後述するデバッグ方法により更に明らかになるが、図１に示したコントローラ及びこれを搭載するメモリシステムによれば、第１〜第３コントローラ４ａ，４ｂ，４ｃが、第１〜第３デバッグ用データ取得装置７ａ，７ｂ，７ｃを備えるため、第１〜第３処理回路６ａ，６ｂ，６ｃが備える制御用メモリに記憶される動作データ、或いは、ＣＰＵ６１ａがファームウェアを実行する際に、メモリシステムの外部にリアルタイムで出力する第１〜第３半導体メモリ３ａ，３ｂ，３ｃに対するアドレス、コマンド等のアクセスデータをデバッグ用データとして取得できる。これにより、第１〜第３処理回路６ａ，６ｂ，６ｃの制御用メモリに記憶されるファームウェアの動作データ、或いは第１〜第３半導体メモリ３ａ，３ｂ，３ｃへのアクセスデータを容易に取得することができる。
【００４０】
更に、ホスト機器２０等が第１〜第３ホストインターフェース５ａ，５ｂ，５ｃに対して所定の期間以上データ入力をしていない期間に、第１〜第３入出力制御装置８ａ，８ｂ，８ｃが、取得されたデバッグ用データを解析機器４０に出力させる。デバッグ用データの入出力は、例えば、第１〜第３ホストインターフェース５ａ，５ｂ，５ｃのデータ０〜７が割り当てられたピン（図２及び図３参照。）を介して行われるため、第１〜第３ホストインターフェース５ａ，５ｂ，５ｃに対して、新たに専用ピンを設けなくても、第１〜第３コントローラ４ａ，４ｂ，４ｃの動作中に、第１〜第３コントローラ４ａ，４ｂ，４ｃが、第１〜第３半導体メモリ３ａ，３ｂ，３ｃのどの領域にどのようにアクセスしたのかを容易に判別可能となるため、デバッグの効率及び信頼性が向上する。
【００４１】
（デバッグ方法）
以下の説明においては、ベンダーコマンドにより、図１に示す第１メモリカード１ａを、ホスト機器２０に第１半導体メモリ３ａからの転送データを転送させるための「通常モード」に設定し、第２メモリカード１ｂを、第１データ取得装置７１ｂが取得する第１データ（アクセスデータ）を解析機器４０に出力するための「第１内部モニターモード」に設定し、第３メモリカード１ｃを、第２データ取得装置７２ｃが取得する第２データ（ファームウェアの動作データ）を解析機器４０に出力するための「第２内部モニターモード」に設定する場合を説明する。
【００４２】
図１のコントローラ及びメモリシステムを用いてデバッグを行う場合には、まず、第１〜第３メモリカード１ａ，１ｂ，１ｃを、解析機器４０及びホスト機器２０に接続されたエクステンダー３０に接続する。第１〜第３メモリカード１ａ，１ｂ，１ｃは、エクステンダー３０に接続されることにより、ホスト機器２０から電源供給を受けて動作する。その後、デバッグ実行者が、例えば、ホスト機器２０或いはエクステンダー３０から、第１〜第３メモリカード１ａ，１ｂ，１ｃに対してベンダーコマンドを出力する。
【００４３】
引き続き、ホスト機器２０から「通常コマンド」が出力されると、第１メモリカード１ａが備える第１処理回路６ａが、通常コマンドを処理し、処理結果に応じて第１半導体メモリ３ａの書き込み、読み出し及び消去等の動作を制御する。
【００４４】
一方、第２メモリカード１ｂの第２デバッグ用データ取得装置７ｂ（第１データ取得装置７１ｂ）は、第１処理回路６ａと同様の処理を実行する第２処理回路６ｂの処理に応じて、第２半導体メモリ３ｂへのアクセスデータを取得する。
【００４５】
第３メモリカード１ｃの第３デバッグ用データ取得装置７ｃ（第２データ取得装置７２ｃ）は、第１処理回路６ａと同様の処理を実行する第３処理回路６ｃの処理に応じて、第３処理回路６ｃの制御用メモリに記憶されるファームウェアの動作データ（ＲＯＭアドレス）を取得する。
【００４６】
第１メモリカード１ａの第１入出力制御装置８ａは、第１半導体メモリ３ａからの転送データを第１ホストインターフェース５ａ及びエクステンダー３０を介してホスト機器２０に転送する。
【００４７】
第２メモリカード１ｂの第２入出力制御装置８ｂは、第２処理回路６ｂの動作を監視し、第２デバッグ用データ取得装置７ｂが取得したアクセスデータを、後述する所定のタイミングで第２ホストインターフェース５ｂを介して解析機器４０へ出力させる。
【００４８】
第３メモリカード１ｃの第３入出力制御装置８ｃは、第３処理回路６ｃの動作を監視し、第３デバッグ用データ取得装置７ｃが取得したファームウェアの動作データを、後述する所定のタイミングで第３ホストインターフェース５ｃを介して解析機器４０へ出力させる。
【００４９】
デバッグ実行者は、解析機器４０に転送された動作データ及びアクセスデータを解析することにより、第１〜第３コントローラ４ａ，４ｂ，４ｃの制御状態を解析することが可能となる。
【００５０】
以上説明したように、実施の形態に係るメモリシステムを用いたデバッグ方法によれば、少なくとも２枚以上のメモリカードを用意し、あるメモリカードに対しては、ホスト機器２０が発行したコマンドを通常通りに実行させてホスト機器２０に応答させる。他のメモリカードに対しては、一定期間以上メモリカードへのデータ入力が行われていない期間を使ってコントローラの制御状態を外部に出力させる。これにより、デバッグのためのピンを新たに設置することができない場合であっても、従来では見えなかった特定の内部信号をモニターできるようになるため、解析時に必要なデータを効率よく取得できる。
【００５１】
なお、上述したデバッグ方法において、第２及び第３メモリカード１ｂ，１ｃがアクセスデータ及びファームウェアの動作データを解析機器４０に出力するタイミングとしては、例えば、ホスト機器２０から出力されたライトイネーブル信号（−ＷＥ）が、第２及び第３メモリカード１ｂ，１ｃの内部で生成されるクロックの２クロックサイクル以上ディセーブルとなる場合に、第２及び第３ホストインターフェース５ｂ，５ｃのピン、例えば、図３に示すデータ０〜７が割り当てられたピン番号１０〜１７を用いて解析機器４０へ転送させるのが好ましい。一方、２クロックサイクルより短い期間ディセーブルとなる場合にデータを転送させると、信号のコンフリクトを起こす場合がある。
【００５２】
（デバッグ例）
図５に、第３メモリカード１ｃに搭載されたファームウェアの動作データ（ＲＯＭアドレス）を解析機器４０に転送する場合を表すタイミングチャートの例を示す。なお、図５のタイミングチャートに示された各信号ＣＬＥ，ＡＬＥ，−ＷＥ，−ＲＥは、図３に示したＮＡＮＤ型フラッシュメモリの制御信号に対応する。
【００５３】
図５に示したタイミングチャートの時刻ｔ０において、コマンドラッチイネーブル信号ＣＬＥが”ハイレベル（以下、Ｈと記す）”で、アドレスラッチイネーブル信号ＡＬＥが”ローレベル（以下、Ｌと記す）”のときに、ライトイネーブル信号−ＷＥの立ち上がりエッジにて、図１のホスト機器２０からのリードコマンド”００”が、エクステンダー３０を介して、エクステンダー３０及び第３メモリカード間に設けられたデータバスに転送され、第３メモリカード１ｃの第３ホストインターフェース５ｃの端子を介して第３コントローラ４ｃ内に取り込まれ、第３処理回路６ｃがリードコマンドを処理する。
【００５４】
図５のライトイネーブル信号−ＷＥがディセーブルとなる時刻ｔ０から３クロックサイクル経過した時刻ｔ１において、図１に示す第３メモリカード１ｃの第３入出力制御装置８ｃが、第３デバッグ用データ取得装置７ｃが取得するデバッグ用データを、図１に示す第３ホストインターフェース５ｃの端子を介して解析機器４０に接続されたデータバスへ出力する。
【００５５】
具体的には、図１に示す第３メモリカード１ｃの第２データ取得装置７２ｃが、第３処理回路６ｃのＣＰＵが作業メモリに出力するファームウェアの動作データ（ＲＯＭアドレス”８０”、”０１”）を、デバッグ用データとして取得する。そして、第３入出力制御装置８ｃが、ＲＯＭアドレス”８０”、”０１”を、図１に示す第３ホストインターフェース５ｃの端子を介してデータバスに転送する。転送されたＲＯＭアドレスは、解析機器４０に出力される。
【００５６】
図５の時刻ｔ２において、コマンドラッチイネーブル信号ＣＬＥが”Ｌ”でアドレスラッチイネーブル信号ＡＬＥが”Ｈ”のときに、ライトイネーブル信号−ＷＥの立ち上がりエッジにて、アドレス”０１”がデータバスに転送され、図１に示す第３ホストインターフェース５ｃの端子を介して第３コントローラ４ｃ内に取り込まれる。
【００５７】
図５の時刻ｔ３，ｔ４，ｔ５においても同様に、ライトイネーブル信号−ＷＥの立ち上がりエッジにて、アドレス”０２”、”０３”、”０４”が順にデータバスに転送され、図１の第３ホストインターフェース５ｃの端子を介して、第３コントローラ４ｃ内に取り込まれる。
【００５８】
図５のライトイネーブル信号−ＷＥがディセーブルとなる時刻ｔ５から、３クロックサイクル経過した時刻ｔ６において、コマンドラッチイネーブル信号ＣＬＥが”Ｌ”でアドレスラッチイネーブル信号ＡＬＥが”Ｌ”のときに、第２データ取得装置７２ｃが、第３処理回路６ｃのＣＰＵが第３処理回路６ｃが有する作業メモリに出力するファームウェアの動作データ（ＲＯＭアドレス”８０”、”１１”、”８０”、”１２”、”８０”、”１３”、”８０”、”１４”）をデバッグ用データとして取得する。そして、第３入出力制御装置８ｃが、その動作データを第３ホストインターフェース５ｃのピンに出力し、データバスを介して解析機器４０に出力する。このとき、リードイネーブル信号−ＲＥの立ち上がりエッジにて、「通常モード」に設定された第１メモリカード１ａは、読み出しデータをホスト機器２０に出力している。
【００５９】
図５に例示するデバッグ方法によれば、「通常モード」に設定された第１メモリカード１ａがホスト機器２０に応答する間は、「内部モニターモード」に設定された第２及び第３メモリカード１ｂ，１ｃが、入力されたアドレス、コマンドに従って第１メモリカード１ａと同様の動作を行うが、ホスト機器２０にはデータを出力しない。そのため、例えば時刻ｔ５以降においてライトイネーブル信号−ＲＥがイネーブルとなった場合にも、第２及び第３ホストインターフェース５ｂ，５ｃのデータ０〜７用のピンが読み出しデータの出力に使用されることがないため、データ０〜７用のピンを介して、アクセスデータや動作データを解析機器４０や他の外部機器に転送できる。
【００６０】
（その他の実施の形態）
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００６１】
例えば、第１メモリカード１ａの第１半導体メモリ３ａ及び第１コントローラ４ａは、ハイブリッド集積回路としてプリント回路基板（ＰＣＢ）に実装されていてもよいし、モノリシック集積回路として同一の半導体チップ上に集積化されていてよい。
【００６２】
また、第１メモリカード１ａの第１半導体メモリ３ａは、１つのメモリセルに１ビットの情報を記憶する２値メモリであってもよいし、１つのメモリセルに１ビットより多い情報（例えば２ビット）を記憶する多値メモリであってもよい。第２メモリカード１ｂ、第３メモリカード１ｃについても同様である。
【００６３】
また、上述の説明においては、ＣＰＵ６１ａがプログラムメモリ６２１ａに出力するＲＯＭアドレスをデバッグデータとしてメモリシステムの外部に出力する例を示したが、ＣＰＵ６１ａが作業メモリ６２２ａ及びレジスタ６２３ａに出力するアドレスをデバッグデータとしてメモリシステムの外部に出力しても良い。
【００６４】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施の形態に係るメモリシステムの構成を示す模式図である。
【図２】本発明の実施の形態に係るメモリシステムのホストインターフェースのピン配置例を示す模式図である。
【図３】図２に示したホストインターフェースのピンアサインを示す表である。
【図４】本発明の実施の形態に係るメモリシステムの第１処理回路の構成例を示す模式図である。
【図５】本発明の実施の形態に係るメモリシステムを用いてデバッグを行う場合のタイミングチャートの一例である。
【符号の説明】
【００６６】
１ａ…第１メモリカード
３ａ…第１半導体メモリ
４ａ…第１コントローラ
５ａ…第１ホストインターフェース
６ａ…第１処理回路
７ａ…第１デバッグ用データ取得装置
８ａ…第１入出力制御装置
２０…ホスト機器
４０…解析機器
６２ａ…制御用メモリ
【図１】
2008021396.tif 000003
【図２】
2008021396.tif 000004
【図３】
2008021396.tif 000005
【図４】
2008021396.tif 000006
【図５】
2008021396.tif 000007