(57)【要約】【課題】  メモリカード１とホストデバイスとの間で所定の規格で定められた仕様に従って、データの送受信制御を行うホストコントローラの評価を行うプログラムのデバッグ期間の短縮を行うことができるデバッグ装置を４０提供する。【解決手段】  ホストコントローラの機能をエミュレーションするホストコントローラエミュレーション部４５と、デバッグ装置４０の内部において送受信する内部データを記憶するバッファ４４Ａ、５２、５３、５４、５８、５９と、バッファに記憶された内部データにもとづいて問題発生箇所を特定するデバッグ部５０と、データ比較部４４と、を有する。【選択図】図３
2010113679.tif 000002
【特許請求の範囲】
【請求項１】
評価プログラムのデバッグ装置であって、
前記評価プログラムが、メモリデバイスとホストデバイスとの間で所定の規格で定められた仕様に従ってデータの送受信制御を行う前記ホストデバイスのホストコントローラの評価を行うプログラムであり、
前記評価プログラムに対する処理指示を入力する入力部と、
接続された前記メモリデバイスと前記データの送受信を行うインターフェイスと、
前記ホストコントローラの機能をエミュレーションするホストコントローラエミュレーション部と、
前記デバッグ装置の内部において送受信する内部データ、を記憶するバッファと
前記バッファに記憶された内部データにもとづいて問題発生箇所を特定するデバッグ部と、
を有することを特徴とする評価プログラムのデバッグ装置。
【請求項２】
前記デバッグ部が、前記問題発生箇所が、前記評価プログラム、前記メモリデバイス、または前記ホストコントローラのいずれであるかを特定することを特徴とする請求項１に記載の評価プログラムのデバッグ装置。
【請求項３】
前記内部データが、前記入力部から前記評価プログラムに入力されるデータと、前記評価プログラムから前記ホストコントローラエミュレーション部に入力されるデータと、前記ホストコントローラエミュレーション部から前記インターフェイスに入力されるデータと、であることを特徴とする請求項１または請求項２に記載の評価プログラムのデバッグ装置。
【請求項４】
前記所定の規格および／または問題が発生しなかった前記内部データを記憶する標準手順記憶部を有することを特徴とする請求項１から請求項３のいずれか１項に記載の評価プログラムのデバッグ装置。
【請求項５】
前記メモリデバイスがＮＡＮＤ型フラッシュメモリ部を有するメモリデバイスであることを特徴とする請求項１から請求項４のいずれか１項に記載の評価プログラムのデバッグ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、接続されたメモリデバイスとのデータ送受信の制御を行うホストコントローラの評価を行う評価プログラムのデバッグ装置に関する。
【背景技術】
【０００２】
近年、不揮発性の半導体記憶部であるフラッシュメモリ部を有するメモリデバイスの開発が行われ、ホストデバイスであるデジタルカメラ等の情報機器の外部記憶装置として普及している。ホストデバイスが扱うデータが大容量化したことに伴い、フラッシュメモリの大容量化および高密度化が進んでいる。
【０００３】
ＮＡＮＤ型フラッシュメモリは、大容量であることを特徴としファイルメモリ用途などで近年特に多く用いられるフラッシュメモリである。ＮＡＮＤ型フラッシュメモリは、トンネル絶縁膜を介して浮遊ゲートもしくは積層膜からなるトラップ層、言い換えれば、電荷蓄積層、に注入した電荷をその電荷量に応じてデジタルビット情報として用い、２値または多値情報として読み出す。ＮＡＮＤ型フラッシュメモリは、ＤＲＡＭ等の破壊読出し型のメモリとは異なりデータ破壊を伴わずにデータの読み出しが可能である。
【０００４】
メモリデバイスは種々のホストデバイスと接続されメモリシステムとして機能するために、所定の規格で定められた仕様、例えば、ＳＤ規格の仕様に従って動作する。ＳＤ規格は、2000年1月7日に設立された関連団体であるＳＤアソシエーション（ＳＤＡｓｓｏｃｉａｔｉｏｎ：ＳＤＡ）により順次バージョンアップを繰り返しているＮＡＮＤ型フラッシュメモリ部を有するメモリデバイスの業界標準の規格である。言い換えれば、ＳＤメモリカードが接続されたホストデバイスはＳＤ規格に従ってデータの送受信制御を行う。
【０００５】
図１は、ＳＤメモリシステムの構成を示す構成図である。図１に示すように、メモリカード１は、ホストデバイス２に接続可能であり、ホストデバイス２に接続されホストデバイス２の外部記憶装置として用いられるＳＤメモリカード（登録商標）である。ホストデバイス２としては、画像データまたは音楽データなどの各種データを処理するパーソナルコンピュータやデジタルカメラ等を含む情報処理装置が挙げられる。ホストデバイス２は接続されたメモリカード１との間で、コマンド信号、レスポンス信号、クロック信号およびデータ信号、すなわち伝送信号の送受信を行うＩ／Ｆ２２とホストコントローラ２１とを有している。
【０００６】
そして、メモリカード１は、不揮発性のメモリからなるメモリ部１４と、メモリ部１４等を制御するメモリコントローラ１１と、データの入出力のための、Ｉ／Ｆ１２と、コネクタ１３（ピン１乃至ピン９を含む）とを備えている。
【０００７】
コネクタ１３は、メモリカード１がホストデバイス２に装着されると、ホストデバイス２と電気的に接続される。コネクタ１３に含まれるピン１乃至ピン９に対する信号線（信号ライン）の割り当ては、ＳＤ規格で規定されている。すなわち、データ信号を送受信するためのデータＤＡＴ０、ＤＡＴ１、ＤＡＴ２、ＤＡＴ３はそれぞれ、ピン７、ピン８、ピン９、ピン１に割り当てられている。コマンド信号ＣＭＤと、このコマンド信号に対するメモリカード１の応答信号であるレスポンス信号ＲＥＳは、ピン２に割り当てられている。クロック信号ＣＬＫは、ピン５に割り当てられている。電源電圧ＶＤＤはピン４に、接地電圧ＶＳＳ１はピン３に、接地電圧ＶＳＳ２はピン６に割り当てられている。
【０００８】
なお、本実施の形態のメモリカード１においては、メモリ部１４は、不揮発性の半導体メモリであり、ＮＡＮＤ型のフラッシュメモリにより構成されている。ホストデバイス２から送信されたデータなどはメモリ部１４に記憶される。
【０００９】
また、図１に示すようにメモリカード１とホストデバイス２の間で、信号等を送受信するバスは、ＣＬＫライン３３、ＣＭＤ／ＲＥＳライン３１以下、「ＣＭＤライン」ともいう。）、ＤＡＴ［３：０］ライン３３と、図示しない、ＶＤＤライン、ＤＡＴ１ライン、ＤＡＴ２ライン、ＣＤ／ＤＡＴ３ライン、ＶＳＳ１ライン、およびＶＳＳ２ラインを含む。なお以下、データ信号ラインとしては、ＤＡＴ０ライン（以下、「データライン」ともいう。）を、例に説明する。
【００１０】
ホストデバイス２が有するホストコントローラ２１は、メモリカード１とコマンド信号、レスポンス信号、およびデータ信号、すなわち伝送信号の送受信を行うために、ＳＤ規格にそって設計されなくてならない。こおため、ホストデバイス２のホストコントローラ２１は試作されると、まずＳＤ規格に従ってデータの送受信制御を行うことができるかどうかが評価される。また、ホストコントローラ２１は、ホストデバイス２に組み込む場合、組み込もうとしているホストデバイス２に適しているかどうかを評価する必要がある。このホストコントローラ２１の評価を行うのが評価プログラムである。
【００１１】
評価用プログラムは、ＳＤ規格のホストコントローラ制御データをホストコントローラ２１に送り、ホストコントローラ２１を介してメモリカード１と通信を行い、ホストコントローラ２１の評価を行う。評価用プログラムの開発においては、作成した評価用プログラムを実際に動作させながら、問題、すなわち、バグを順に修復していくデバッグ処理が不可欠である。
【００１２】
ここで、図２は公知の評価プログラムのデバッグ作業の状態を説明するためのデバッグ装置の構成図である。ユーザ４、すなわち、評価プログラムの開発者は、デバッグ装置４０Ａの入力部４１Ａからメモリ部４３Ａに記憶され動作する評価プログラムに指示を出して、ホストコントローラ４５Ａを動作しＩ／Ｆ４６Ａのバス３０を介してメモリカード１との信号を送受信する。しかし、図２に示すデバッグ装置４０Ａではユーザ４はホストコントローラ４５Ａとメモリカード１との間のデータを観測することができない。
【００１３】
例えば、データのリード・ライト（以下、「Ｒ／Ｗ」という。）が正常に行えるかどうかを評価する場合、ホストコントローラ４５Ａは規格に従って最初にＣＭＤを発行してＲＥＳが正常ならば、その後データを転送する。一連の処理の途中でＲＥＳにＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）エラーが含まれていた場合、ホストコントローラ４５Ａに用意されてある図示しない情報レジスタのＣＲＣエラーレジスタに「1」が立ち、出力部４２を介してユーザ４はＣＲＣエラーの発生を観測することができる。
【００１４】
ＣＲＣエラーレジスタには、Ｒｅａｄ処理またはＷｒｉｔｅ処理のいずれの処理に問題があったかを示す情報は含まれている。すなわち、ユーザは、問題発生の処理が、Ｒｅａｄ処理またはＷｒｉｔｅ処理のいずれの処理であったかを知ることができる。
【００１５】
しかし、ＣＲＣエラーレジスタには、それ以上の詳細な問題発生箇所を特定するための情報は含まれていない。このため、エラーが発生した場合、ユーザ４は、解析するための専用の外部機器を用いなければ、問題発生箇所の特定、いわゆる問題の切り分けを行うことができなかった。
【００１６】
このため、ホストコントローラの評価を行う評価プログラムのデバッグは繁雑で、デバッグ期間が長くなることがあった。
【００１７】
なお、特開２００４−２２７５８８号公報には、メモリカードの開発支援システムが開示されており、特開平６−１３１２１０号公報には。メモリカード用エミュレータが開示されている。
【特許文献１】特開２００４−２２７５８８号公報
【特許文献２】特開平６−１３１２１０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本発明は、デバッグ期間の短縮を行うことができる評価プログラムのデバッグ装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本願発明の一態様によれば、評価プログラムのデバッグ装置であって、前記評価プログラムが、メモリデバイスとホストデバイスとの間で所定の規格で定められた仕様に従って、データの送受信制御を行う前記ホストデバイスのホストコントローラの評価を行うプログラムであり、前記プログラムに対する処理指示を入力する入力部と、接続された前記メモリデバイスと前記データの送受信を行うインターフェイスと、前記ホストコントローラの機能をエミュレーションするホストコントローラエミュレーション部と、前記デバッグ装置の内部において送受信する内部データを記憶するバッファと、前記バッファに記憶された内部データにもとづいて問題発生箇所を特定するデバッグ部と、を有することを特徴とする評価プログラムのデバッグ装置が提供される。
【発明を実施するための最良の形態】
【００２０】
＜第１の実施の形態＞  
以下、図面を参照して本発明の第１の実施の形態の評価プログラムのデバッグ装置４０について説明する。  
最初に、図３を用いて本実施の形態のデバッグ装置４０の構成を説明する。図３は、本実施の形態の評価プログラムのデバッグ装置の概略の構成を示す構成図である。
【００２１】
本実施の形態のデバッグ装置４０がデバッグ処理するプログラムは、メモリデバイスであるメモリカード１とホストデバイス２との間で、所定の規格であるＳＤ規格で定められた仕様に従ってデータの送受信制御を行うホストデバイス２のホストコントローラ２１の評価を行う評価プログラムである。
【００２２】
そして、図３に示すように、デバッグ装置４０は、ユーザが評価プログラムに対する処理指示を入力するキーボード等の入力部４１と、接続されたメモリカード１とデータの送受信を行うインターフェイス（Ｉ／Ｆ）４６と、ホストコントローラ２１の機能をエミュレーションするホストコントローラエミュレーション部４５と、デバッグ装置４０の内部において送受信する内部データを記憶するバッファ４４Ａ、５２、５３、５４、５８、５９とバッファに記憶された内部データにもとづいて問題発生箇所を特定するデバッグ部５０と、問題発生箇所をユーザ４に通知する出力部４２と、を有する。
【００２３】
そして、ホストコントローラエミュレーション部４５は、ホストコントローラ２１の動作をエミュレートする機能を有しており、対象とするホストコントローラ２１の仕様が変わった場合には、例えば入力部４１等を介して新たなホストコントローラ２１の仕様に合わせたプログラムをロードすることにより、新たなホストコントローラ２１の仕様に合わせた動作を実現することができる。すなわち、デバッグ装置４０はホストコントローラ２１の評価を行うプログラムのデバッグ装置であるが、ホストコントローラエミュレーション部４５に対してエミュレーションプログラムをロードする入力部を有するため、ホストコントローラ２１自体はデバッグ装置４０に必要不可欠ではない。なお、ホストコントローラエミュレーション部４５では、転送データサイズで設定されているサイズでデータの転送を行う。
【００２４】
データ比較部４４は、ユーザ４が入力部４１から評価プログラム４３であるメモリ部に入力される内部データ（Ａ）と、評価プログラム４３からホストコントローラエミュレーション部４５に入力される内部データ（Ｂ）とを記憶するバッファ４４Ａを有しており、エラーが発生した場合に内部データにもとづいて問題発生箇所を特定する。
【００２５】
デバック部５０については後に詳述するが、ホストコントローラエミュレーション部４５からインターフェイス４６に入力される内部データ（Ｃ）を記憶するバッファを有しており、エラーが発生した場合に内部データにもとづいて問題発生箇所を特定する。
【００２６】
また、ホストコントローラ評価プログラム（以下、「評価プログラム」という。）４３はソフトウエアであるが、メモリ部にロードされて動作する。そして上記構成要素は説明を容易にするために機能別の構成要素としているが、全体としてひとつのモジュールとして動作するものであり、それぞれが独立した構成要素である必要はない。例えば、図３においては、データ比較部４４はデバッグ部５０とは別の構成要素として図示しているが、すでに説明したようにバッファに記憶された内部データにもとづいて問題発生箇所を特定する機能を有しており、デバッグ部５０の一部である。同様に、バッファ４４Ａ、５２、５３、５４、５８、５９は、それぞれ分離した独立のバッファである必要はない。
【００２７】
以上の説明のように、内部データとは、デバッグ装置の内部において送受信されるデータである。すなわち、内部データは、入力部４１から評価プログラム４３に送信されるデータと、評価プログラム４３からホストコントローラエミュレーション部４５に送信されるデータと、ホストコントローラエミュレーション部４５からインターフェイス４６に送信されるデータとである。なお、ホストコントローラエミュレーション部４５からインターフェイス４６に送信されるデータは、インターフェイス４６を介してメモリカード１に送信されるが、本発明では内部データとして扱う。
【００２８】
次に、図４を用いて、デバッグ部５０の構成について詳しく説明する。図４はデバッグ部の構成を示す構成図である。  
図４に示すように、デバッグ部５０は、ＣＲＣチェック部５６と、データ解析部５５と、ＣＭＤ線データバッファ５８と、ＤＡＴ線データバッファ５９と、ＣａｒｄＳｔａｔｅバッファ５３と、転送サイズバッファ５２と、ＣＭＤ番号バッファ５４と、Ｓｔａｔｅ／ＣＭＤ／サイズ比較部５１と、デバッグ部全体の制御を行うデバッグ部コントローラ５７とを有している。
【００２９】
ＣＭＤ線データバッファ５８にはホストコントローラエミュレーション部４５からメモリカード１へ送ったＣＭＤデータと、ＣＭＤに対するメモリカード１からホストコントローラエミュレーション部４５へのレスポンスとが対になって記憶される。ＤＡＴ線データバッファ５９にはＲ／Ｗデータおよびメモリカード１からホストコントローラエミュレーション部４５へ送られたメモリカード１内のレジスタデータが記憶される。ＣＲＣチェック部５６はＣＭＤ線データバッファ５９およびＤＡＴ線データバッファ５９にあるデータのＣＲＣチェックを行う。データ解析部５５ではＣＭＤの番号およびＣａｒｄＳｔａｔｅを解析し、ＣＭＤ番号バッファ５４およびＣａｒｄＳｔａｔｅバッファ５３に記憶する。転送サイズバッファ５２５２は、ホストコントローラエミュレーション部４５に設定されている転送データサイズを取得する。Ｓｔａｔｅ／ＣＭＤ／サイズ比較部５１はＳｔａｔｅ／ＣＭＤ／転送サイズ対応テーブル５１Ａを持っており、各テーブルにてＣＭＤに対するＳｔａｔｅまたは転送サイズが合致しているかどうかを比較する。
【００３０】
次に、図５を用いて、本実施の形態のデバッグ装置４０の動作について説明する。図５は本実施の形態のデバッグ装置の動作の流れを説明するためのフローチャートである。以下、図５に従って説明する。
【００３１】
＜ステップＳ１１＞  プログラムロード  
デバッグを行う評価プログラム４３がメモリ部にロードされる。また、ホストコントローラエミュレーション部４５に所定のホストコントローラの動作を行うプログラムがロードされる。
【００３２】
＜ステップＳ１２＞  指示入力  
例えば、Ｗｒｉｔｅデータをメモリカード１に送信する場合を例に説明すると、ＷｒｉｔｅデータまたはＷｒｉｔｅ  ＣＭＤを送信するための処理指示データがユーザ４により入力部４１に入力される。
【００３３】
＜ステップＳ１３＞  評価プログラム処理  
評価プログラム４３に処理指示データが入力されると、評価プログラム４３はホストコントローラエミュレーション部４５に送信するためのデータを作成処理する。
【００３４】
＜ステップＳ１４＞  データ比較部記憶  
デバッグ装置４０では、評価プログラム４３に入力されたユーザ４からの処理指示データが並行してデータ比較部４４に入力され、入力バッファ４４Ａに記憶される。
【００３５】
＜ステップＳ１５＞  評価プログラム出力処理  
評価プログラム４３からホストコントローラエミュレーション部４５に評価プログラム４３が作成したデータが送信される。
【００３６】
＜ステップＳ１６＞  ホストコントローラエミュレーション部処理  
ホストコントローラエミュレーション部４５に評価プログラム４３からデータが入力されると、ホストコントローラエミュレーション部４５はメモリカード１に送信するためのデータを作成処理する。
【００３７】
＜ステップＳ１７＞  データ比較部記憶  
デバッグ装置４０では、ホストコントローラエミュレーション部４５に入力された評価プログラム４３からのデータが並行してデータ比較部４４に入力され、入力バッファ４４Ａに記憶される。なお、データ比較部４４の別のバッファに記憶してもよい。
【００３８】
＜ステップＳ１８＞  ホストコントローラエミュレーション部出力処理  
ホストコントローラエミュレーション部４５からメモリカード１にホストコントローラエミュレーション部４５が作成したデータ、すなわち、ＣＭＤまたはＤＡＴが、Ｉ／Ｆ４６、バス３０を介して、送信される。
【００３９】
＜ステップＳ１９＞  メモリカード処理  
メモリカード１にホストコントローラエミュレーション部４５からデータが入力されると、メモリカード１は、それに対してホストコントローラエミュレーション部４５に返信するためのＲＥＳを作成処理する。
【００４０】
＜ステップＳ２０＞  デバッグ部記憶  
デバッグ装置４０では、メモリカード１に入力されたホストコントローラエミュレーション部４５からのデータが並行してデバッグ部５０に入力され、ＣＭＤ線データバッファ５８またはＤＡＴ線データバッファ５９に記憶される。
【００４１】
＜ステップＳ２１＞  ホストコントローラエミュレーション部処理  
ホストコントローラエミュレーション部４５にメモリカード１からＲＥＳが入力されると、ホストコントローラエミュレーション部４５はＣＲＣをチェックする。すなわち、ホストコントローラエミュレーション部４５は、内部の情報レジスタ（不図示）にＷｒｉｔｅ時のＣＲＣエラーを示すｂｉｔが立つかどうか確認する。
【００４２】
＜ステップＳ２１＞  ＣＲＣエラー発生  
ステップＳ２１においてＣＲＣエラーが発生していた場合（Ｙｅｓ）には、デバッグ装置４０は問題発生箇所を特定するためのデバッグ処理を行い、問題発生箇所をユーザに通知する。
【００４３】
ＣＲＣエラーが発生しなかった場合には、この処理に関しては評価プログラム４３は問題がないことが判明する。そして、デバッグ装置４０は、バッファ４４Ａ、５８、５９に記憶されたデータは廃棄され、ユーザ４からの次の指示入力を待つ。もちろん、バッファ４４Ａ、５８、５９に記憶されたデータを廃棄するのは、新たに記憶する直前であってもよい。
【００４４】
次に、図６、図７、図８、図９および図１０を用いて、本実施の形態のデバッグ装置による問題発生箇所の特定について説明する。図６は、本実施の形態のデバッグ装置による問題発生箇所を特定するための処理の流れを説明するためのフローチャートであり、図７および図８はデータ解析部５５が行う問題発生箇所を特定するための処理を説明するための説明図であり、図９および図１０は、Ｓｔａｔｅ／ＣＭＤ／サイズ比較部５１が行う問題発生箇所を特定するための処理を説明するための説明図である。以下、図６のフローチャートに従い説明する。
【００４５】
＜ステップＳ３１＞  
ホストコントローラエミュレーション部４５の情報レジスタにＷｒｉｔｅ時のＣＲＣエラーを示すｂｉｔが立つと、ホストコントローラエミュレーション部４５は、データ比較部４４を含むデバッグ部５０にエラーが起こったことを通知する。
【００４６】
最初に、デバッグ部５０は現在のホストコントローラエミュレーション部４５のデータ転送サイズを取得し、転送サイズバッファ５２に記憶する。
【００４７】
＜ステップＳ３２＞  
デバッグ部５０は、ユーザ４が意図したデータを、評価プログラム４３がホストコントローラエミュレーション部４５に送っているかをデータ比較部４４にて調べる。前述の通り、ユーザ４が発行した指示と、評価プログラム４３からホストコントローラエミュレーション部４５に送られたデータが入力バッファ４４Ａに記憶されており、それぞれを比較する。
【００４８】
＜ステップＳ３３、Ｓ３４＞  
ユーザ４が意図した指示データが、ホストコントローラエミュレーション部４５に送られていない場合（Ｓ３３：Ｙｅｓ）は、デバッグ部５０は、評価プログラムに問題があると判断する。
【００４９】
＜ステップＳ３５＞  
次に、デバッグ部５０は、Ｗｒｉｔｅ時の転送データのＣＲＣチェックをＣＲＣチェック部５６にて行う。転送データはＤＡＴ線データバッファ５９に記憶されている。
【００５０】
＜ステップＳ３６、Ｓ３７＞  
ＣＲＣエラーが発生していなかった場合（Ｓ３６：Ｎｏ）は、デバッグ部５０は、メモリカードに問題があると判断する。
【００５１】
＜ステップＳ３８＞  
次に、デバッグ部５０は、データ解析部５５にてＣＭＤ線データバッファ５８に格納されてあるＷｒｉｔｅ  ＣｏｍｍａｎｄおよびＲｅｓｐｏｎｓｅの処理を行う。まず、デバッグ部５０はＣＭＤ線データバッファ５８に記憶されているホストコントローラエミュレーション部４５がメモリカード１に送信したＷｒｉｔｅ  Ｃｏｍｍａｎｄの解析から行う。
【００５２】
図７に示すように、デバッグ部５０は、Ｗｒｉｔｅ  ＣｏｍｍａｎｄのＣＲＣチェックを行い、データフィールドに従ってＣＭＤ番号１を取得し、データ解析部５５のバッファ５５Ａに「番号１」を記憶しておく。
【００５３】
＜ステップＳ３９＞  
図８に示すように、デバッグ部５０は、Ｗｒｉｔｅ  Ｃｏｍｍａｎｄの解析が終了したら、Ｗｒｉｔｅ  Ｃｏｍｍａｎｄに対応した、メモリカード１からホストコントローラエミュレーション部４５へ送信されたＲｅｓｐｏｎｓｅの解析を行う。
【００５４】
データ解析部５５はバッファ５５Ａ記憶しているＣＭＤ番号によりＲｅｓｐｏｎｓｅの種類を決定する。データ解析部５５はＷｒｉｔｅ  Ｃｏｍｍａｎｄのデータフィールドに従ってＣＭＤ番号とＣａｒｄＳｔａｔｅとを取得しＣＭＤ番号バッファ５４とＣａｒｄ  Ｓｔａｔｅバッファ５３とに記憶する。
【００５５】
＜ステップＳ４０＞  
ＣＭＤ番号およびＣａｒｄＳｔａｔｅを取得したデータ解析部５５は、そのＣＭＤが発行可能なＳｔａｔｅであるかをチェックする。
【００５６】
すなわち、ＣＭＤ番号バッファ５４より「番号1」をＳｔａｔｅ／ＣＭＤ／サイズ対応テーブル５１Ａに送り、発行可能なＳｔａｔｅを出力する。そして、Ｓｔａｔｅ／ＣＭＤ／サイズ比較部５１は、Ｃａｒｄ  Ｓｔａｔｅバッファ５３に記憶されてあるＳｔａｔｅと、Ｓｔａｔｅ／ＣＭＤ／サイズ対応テーブル５１Ａから出力されたＳｔａｔｅとを比較し、一致するかどうかを調べる。
【００５７】
＜ステップＳ４１、Ｓ４２＞  
Ｓｔａｔｅが一致しない場合、すなわち、そのＣＭＤが発行できないＳｔａｔｅであった場合（Ｙｅｓ）には、データ解析部５５は、Ｓｔａｔｅが間違っているということで、評価プログラム４３のＣＭＤ発行手順に問題があると判断する。
【００５８】
＜ステップＳ４３＞  
次に、データ解析部５５は、ＣＭＤ番号と対応する転送サイズと現在のホストコントローラエミュレーション部４５で設定されている転送サイズとが一致しているかどうかを確認する。
【００５９】
図９に示すように、ＣＭＤ番号バッファ５４に記憶されている「番号１」、が、Ｓｔａｔｅ／ＣＭＤ／サイズ対応テーブル５１Ａに送られ、対応する転送サイズが出力される。そして、図１０に示すように、データ解析部５５は、転送サイズバッファ５２に記憶されている転送サイズと、Ｓｔａｔｅ／ＣＭＤ／サイズ対応テーブル５１Ａから出力された転送サイズとを比較して一致するかどうかを調べる。
【００６０】
＜ステップＳ４４、Ｓ４５＞  
図９および図１０に示した例では、ホストコントローラエミュレーション部４５で設定されているデータ転送サイズが２５６ｂｙｔｅであるのに対して、ＣＭＤに対応するデータ転送サイズが５１２ｂｙｔｅであり一致しない（Ｓ４４：Ｙｅｓ）。
【００６１】
よって、デバッグ部５０はエラーは、評価プログラム４３による転送サイズの不適切によるものと判断する。
【００６２】
＜ステップＳ４６＞  
デバッグ部５０は、転送サイズの問題がなかった場合は、問題発生箇所はハードウエアと判断する。
【００６３】
＜ステップＳ４７＞  
デバッグ部５０はユーザに通知するため、問題発生箇所を出力部４２に出力する。
【００６４】
以上の説明のように、本実施形態のデバッグ装置４０は、評価プログラムのデバッグ発生の際に、単にエラー発生を出力するだけでなく、問題発生箇所を解析する。このため、デバッグ期間の短縮を行うことができる。
【００６５】
さらに、本実施形態のデバッグ装置４０は、ホストコントローラの機能をエミュレーションするホストコントローラエミュレーション部を有するために、ソフトウエアの入れ替えによって異なる仕様のホストコントローラ用の評価プログラムのデバッグが可能であるだけでなく、ＳＤカード以外の各種メモリカードに対応することが可能である。
【００６６】
言い換えれば、本発明は、ＳＤホストコントローラをエミュレーションした機能と、ＳＤホストコントローラを評価する評価プログラムと、評価プログラムデバッグ機能で構成される。評価プログラムデバッグ機能は、ＳＤホストコントローラとＳＤカード間のデータをデータバッファに保持することにより、エラーが起こった時のデータを確認することができる。これにより、評価プログラム開発者（ユーザ）が意図したコマンドがＳＤホストコントローラから出ているかどうかを確認すること、ＳＤカードが問題なく動作していること、評価プログラムが正しくできているかを確認することが可能となり、エラーが起こった場合の問題の切り分けを行うことができる。
【００６７】
また、ホストデバイス２と接続されるメモリカード１とからなるメモリシステム３におけるホストコントローラ２１を例に説明したが、ホストデバイス２の内部に収納され、ホストデバイス２の起動データ等を記憶する、いわゆるエンベデッドタイプのＮＡＮＤ型フラッシュメモリ装置等のホストコントローラの評価プログラムのデバッグ装置でもメモリシステム３の場合と同じ効果を得ることができる。
【００６８】
＜第２の実施の形態＞  
以下、図面を参照して本発明の第２の実施の形態の評価プログラムのデバッグ装置４０Ｂについて説明する。本実施の形態のデバッグ装置４０Ｂは第１の実施の形態のデバッグ装置４０と類似しているため、同じ構成要素には同じ符号を付し、説明は省略する。
【００６９】
第１の実施の形態のデバッグ装置４０では、図６に示すデバッグ処理のステップＳ４２において、ＣＭＤ発行手順が間違っていることを出力するだけであったが、本実施の形態のデバッグ装置４０Ｂでは、所定の規格および／または問題が発生しなかった前記内部データを記憶する標準手順記憶部であるメモリ部４８を有するために、さらに、その詳細を出力することができる。
【００７０】
図１１は、本実施の形態のデバッグ装置４０Ｂの構成を示す構成図であり、図１２は本実施の形態のデバッグ装置４０ＢのＣＭＤ発行手順修正部４５Ｂの動作を説明するための説明図である。
【００７１】
図１１に示すように、本実施の形態のデバッグ装置４０Ｂは、ＣＭＤ発行手順修正部４５Ｂと、標準手順規格書または／およびＣＭＤ発行履歴を記憶した標準手順記憶部であるメモリ部４８を有する。図１２に示すように、標準手順規格書は入力／変換部４８Ａを介して、デバッグ装置４０ＢのＣＭＤ発行手順修正部４５Ｂが利用可能な形式に変換される。また、ＣＭＤ発行履歴は、デバッグ装置４０Ｂが今までの評価で発行してきたＣＭＤの履歴であり、問題が発生しなかった内部データであるＣＭＤ発行手順である。
【００７２】
ＣＭＤ発行手順が間違っていることが判明した場合、図１２に示すように、ＣＭＤ発行手順修正部４５Ｂはエラーが発生したＣＭＤから順にさかのぼって、メモリ部４８に記憶されている標準手順と実行したＣＭＤとを比較していく。図１２に示した例では、ＣＭＤ発行手順修正部４５ＢはＣＭＤ番号４が抜けていると判断する。そして、デバッグ装置４０Ｂは、ＣＭＤ番号５と７の間に番号４が必要であることをユーザに通知する。
【００７３】
本実施の形態のデバッグ装置４０Ｂは、第１の実施の形態のデバッグ装置４０が有する効果に加えて、より詳細な問題発生箇所を特定することができるため、よりデバッグ期間の短縮を行うことができる。
【００７４】
以上の説明のように、本発明のデバッグ装置は従来の環境と同様に、メモリカードとの通信を行うことができホストコントローラ評価プログラムのデバッグ期間を短縮することができる。また本発明はホストコントローラとホストコントローラ評価プログラムとを組み合わせることで、ホストコントローラとホストコントローラ評価プログラムの評価を行うことができる。さらに、本発明のデバッグ装置は評価用プログラム内にバグがあった場合バグ位置を特定することができる。また、ソフトウエアで構成されるため、ソフトウエアの変更により様々な記憶装置に対応することができる。また評価プログラムに問題があった場合、標準手順規格書より作られたサンプルと評価プログラムを比較することでエラーの該当箇所を探すことができ、デバッグ期間の短縮を行うことができる。
【００７５】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００７６】
【図１】ＳＤメモリシステムの構成を示す構成図である。
【図２】公知の評価プログラムのデバッグ作業の状態を説明するためのデバッグ装置の構成図である。
【図３】第１の実施の形態の評価プログラムのデバッグ装置の概略の構成を示す構成図である。
【図４】第１の実施の形態の評価プログラムのデバッグ装置のデバッグ部の構成を示す構成図である。
【図５】第１の実施の形態の評価プログラムのデバッグ装置の動作の流れを説明するためのフローチャートである。
【図６】第１の実施の形態の評価プログラムのデバッグ装置による問題発生箇所を特定するための処理の流れを説明するためのフローチャートである。
【図７】第１の実施の形態の評価プログラムのデバッグ装置のデータ解析部が行う問題発生箇所を特定するための処理を説明するための説明図である。
【図８】第１の実施の形態の評価プログラムのデバッグ装置のデータ解析部が行う問題発生箇所を特定するための処理を説明するための説明図である。
【図９】第１の実施の形態の評価プログラムのデバッグ装置のＳｔａｔｅ／ＣＭＤ／サイズ比較部が行う問題発生箇所を特定するための処理を説明するための説明図である。
【図１０】第１の実施の形態の評価プログラムのデバッグ装置のＳｔａｔｅ／ＣＭＤ／サイズ比較部が行う問題発生箇所を特定するための処理を説明するための説明図である。
【図１１】第２の実施の形態の評価プログラムのデバッグ装置の概略の構成を示す構成図である。
【図１２】第２の実施の形態の評価プログラムのデバッグ装置のＣＭＤ発行手順修正部の動作を説明するための説明図である。
【符号の説明】
【００７７】
１…メモリカード
２…ホストデバイス
３…メモリシステム
４…ユーザ
１１…メモリコントローラ
１３…コネクタ
１４…メモリ部
２１…ホストコントローラ
３０…バス
３１…ＤＡＴライン
３３…ＣＭＤライン
４０、４０Ａ、４０Ｂ…デバッグ装置
４１、４１Ａ…入力部
４２…出力部
４３…評価プログラム（メモリ部）
４３Ａ…メモリ部
４４…データ比較部
４４Ａ…入力バッファ
４５…ホストコントローラエミュレーション部
４５Ａ…ホストコントローラ
４５Ｂ…発行手順修正部
４８…メモリ部
４８Ａ…入力／変換部
５０…デバッグ部
５１…サイズ比較部
５１Ａ…Ｓｔａｔｅ／ＣＭＤ／転送サイズ対応テーブル
５２…転送サイズバッファ
５３…Ｃｒａｄ  Ｓｔａｔｅバッファ
５４…ＣＭＤ番号バッファ
５５…データ解析部
５５Ａ…バッファ
５６…ＣＲＣチェック部
５７…デバッグ部コントローラ
５８…ＣＭＤ線データバッファ
５９…ＤＡＴ線データバッファ
【図１】
2010113679.tif 000003
【図２】
2010113679.tif 000004
【図３】
2010113679.tif 000005
【図４】
2010113679.tif 000006
【図５】
2010113679.tif 000007
【図６】
2010113679.tif 000008
【図７】
2010113679.tif 000009
【図８】
2010113679.tif 000010
【図９】
2010113679.tif 000011
【図１０】
2010113679.tif 000012
【図１１】
2010113679.tif 000013
【図１２】
2010113679.tif 000014