(57)【要約】【課題】  ホスト機器に接続されるメモリカードにおいて、デバイス機器に依存することなく拡張コマンドをサポートすることができるメモリカードを提供する。【解決手段】  ホスト機器からメモリカードにデータを書き込む場合において、ホスト機器から拡張コマンドを含んだデータをメモリカードに送信する工程と（Ｓ１０５）、拡張コマンドを含んだデータを受信し（Ｓ１０６）、バッファに保存する工程と、バッファに保存された前記データの拡張コマンドの有無を判定する工程と（Ｓ１０８）、データに拡張コマンドが有ると判定されたとき、前記拡張コマンドを実行する工程と（Ｓ１０９）、拡張コマンドを実行した後、前記データを不揮発性メモリに書きこむ工程（Ｓ１１０）を備えることを特徴としている。【選択図】  図３
2007058599.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器からの書き込み若しくは読み出しの要求を受け、前記ホスト機器と第１のコマンドを含んだデータの受け渡しを行うインタフェースと、
前記第１のコマンドを含んだデータを一時的に保存するバッファと、
前記バッファに前記第１のコマンドを含んだデータが保存された後、保存された前記第１のコマンドを含んだデータ内の前記第１のコマンドを判定し、前記第１のコマンドが所定のコマンドである場合は、前記第１のコマンド処理を実行させ、前記第１のコマンドを含んだデータの書き込み若しくは読み出しを行うコントローラと、
前記第１のコマンドを含んだデータが書き込まれ、読み出される不揮発性メモリと、
を備えることを特徴とするメモリカード。
【請求項２】
第２のコマンドが記憶される書き換え不可能なＲＯＭ領域を備え、
前記コントローラは、前記データの前記第１のコマンドと前記ＲＯＭ領域の前記第２のコマンドが一致する場合は、前記ＲＯＭ領域の前記第２のコマンド処理を実行させることを特徴とする請求項１記載のメモリカード。
【請求項３】
前記第１のコマンドを含んだデータは、複数のヘッダ情報で構成され、
前記ヘッダ情報には、前記第１のコマンド及び前記第１のコマンドのパラメータが含まれていることを特徴とする請求項１又は請求項２記載のメモリカード。
【請求項４】
前記インタフェースは、前記ホスト機器からの書き込み若しくは読み出し要求を受信し、前記要求の返信を行うコマンドピンと、前記ホスト機器との前記第１のコマンドを含んだデータの受け渡しを行うデータピンとを備えることを特徴とする請求項1乃至請求項３のいずれか1項に記載のメモリカード。
【請求項５】
メモリカードに書き込み要求を行う工程と、
前記書き込み要求を行った後、前記ホスト機器から第１のコマンドを含んだデータを前記メモリカードに送信する工程と、
前記第１のコマンドを含んだデータを受信し、バッファに保存する工程と、
前記バッファに保存された前記データの前記第１のコマンドの有無を判定する工程と、
前記データに前記第１のコマンドが有ると判定されたとき、前記第１のコマンドを実行する工程と、
前記第１のコマンドを実行した後、前記データを不揮発性メモリに書き込む工程と、
を備えることを特徴とするメモリカードの制御方法。
【請求項６】
メモリカードに読み出し要求を行う工程と、
前記読み出し要求を行った後、不揮発性メモリから第１のコマンドを含んだデータを読み出す工程と、
前記第１のコマンドを含んだ前記データを読み出した後、バッファに保存する工程と、
前記バッファに保存された前記データの前記第１のコマンドの有無を判定する工程と、
前記データに前記第１のコマンドが有ると判定されたとき、前記第１のコマンドを実行する工程と、
前記第１のコマンドを実行した後、前記データをホスト機器に読み出す工程と、
を備えることを特徴とするメモリカードの制御方法。
【請求項７】
前記データに前記第１のコマンドが有ると判定された場合、前記データの前記第１のコマンドと前記メモリカードに予め記憶されている第２のコマンドとを比較する工程と、
前記データの前記第１のコマンドが前記メモリカードに予め記憶されている前記第２のコマンドと一致する場合は、前記メモリカードに予め記憶されている前記第２のコマンド処理を実行する工程と、
を備えることを特徴とする請求項５又は請求項６に記載のメモリカードの制御方法。
【請求項８】
前記書き込み要求及び前記読み出し要求は、コマンドバスを介してコマンドの授受が行われることを特徴とする請求項５乃至請求項７のいずれか１項に記載のメモリカードの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカード及びその制御方法に関するものである。
【背景技術】
【０００２】
近年、パソコン、デジタルカメラ、携帯電話などの様々な電子機器が開発されている。これら電子機器においては、リムーバブル記憶デバイスの一つであるメモリカードが多く用いられている。メモリカードは、フラッシュメモリを内蔵するメモリカードであり、データを保存するための記憶媒体として普及している。
【０００３】
一般に、メモリカードをパソコンなどで記憶媒体として使用する場合、リーダ／ライタといったデバイス機器（以下、デバイス機器とする）を使用する必要がある。
【０００４】
従来、パソコンなどのホスト機器（以下、ホスト機器とする）からメモリカードへのアクセスは、すべてデバイス機器を通して行われ、デバイス機器がメモリカードへコマンドを発行することで、アクセスを行う。これにより、ホスト機器は、メモリカードに対して、データのライトやリードの要求を行うことが可能となる。また、メモリカードには、製造コマンドや不良解析コマンド等、製造業者によって独自の拡張コマンドが設計されているものがあり、実行するためには、デバイス機器が拡張コマンドをサポートしている必要がある。
【０００５】
従来技術として、デバイス機器にストレージコマンドを解釈する機能を持たせることにより、メモリカードに拡張コマンドを実行させるものがある（例えば、特許文献１参照。）。しかしながら、デバイス機器は、メモリカード製造業者以外にも各社から製品化されており、仕様も異なる部分があるため、全てのデバイス機器に拡張コマンドをサポートさせることは困難である。
【特許文献１】特開２００３−１３２３０５号公報（第１４頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、ホスト機器に接続されるメモリカードにおいて、デバイス機器に依存することなく、拡張コマンドをサポートすることができるメモリカードを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様のメモリカードは、ホスト機器に接続されるメモリカードにおいて、前記ホスト機器から送信されたコマンドを含んだデータを書き込み若しくは読み出しを行う不揮発性メモリと、前記ホスト機器からの書き込み若しくは読み出しの要求を受け、前記ホスト機器との前記データの受け渡しを行うインタフェースと、前記不揮発性メモリから書き込まれる若しくは読み出される前記データを一時的に保存するバッファと、前記バッファに前記データが保存された後、保存された前記データ内の前記コマンドを判定し、前記コマンドが所定のコマンドであれば、そのコマンド処理を実行させ、前記データの書き込み若しくは読み出しを制御するコントローラと、を備えることを特徴としている。
【０００８】
また、本発明の別態様のメモリカードの制御方法は、ホスト機器からメモリカードにデータを書き込む場合において、前記メモリカードに書き込み要求を行う工程と、前記書き込み要求を行った後、前記メモリカードが前記ホスト機器からコマンドを含んだデータをメモリカードに送信する工程と、前記コマンドを含んだデータを受信し、バッファに保存する工程と、前記バッファに保存された前記データのコマンドの有無を判定する工程と、前記データにコマンドが有ると判定されたとき、前記コマンドを実行する工程と、前記コマンドを実行した後、前記データを不揮発性メモリに書きこむ工程と、を備えることを特徴としている。
【発明の効果】
【０００９】
本発明によれば、ホスト機器に接続されるメモリカードにおいて、デバイス機器に依存することなく拡張コマンドをサポートすることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施例について、図面を参照して説明する。
【実施例１】
【００１１】
図１は、本発明の実施例１に係るメモリカード及びその周辺機器のブロック図を示す。
【００１２】
図１に示すように、ホスト機器１と、メモリカード２と、ホスト機器１にメモリカード２を接続するためのデバイス機器３から構成されている。ホスト機器１は、例えば、パソコンなどのデータ処理装置である。デバイス機器３は、ホスト機器１からのメモリカード２へのデータのライトやリードの要求を受け、メモリカード２にデータのライトやリードのコマンドを発行する。
【００１３】
また、メモリカード２は、デバイス機器３とのデータの受け渡しを行うインタフェース４と、このインタフェース４を通じて得たデバイス機器３からのコマンドに応じてライト／リードの制御を行う制御コントローラ５と、デバイス機器３とのデータの受け渡しを行う際に、一時的にデバイス機器３からのデータや読み出されたデータを格納するデータバッファ６と、データバッファ６に格納されたデータをライトの場合には書き込み、リードの場合にはデータの読み出しが行われる不揮発性メモリ７で構成されている。
【００１４】
メモリカードのインタフェースは、デバイス機器と複数のバスを介して接続され、メモリカードとデバイス機器間の通信の送受信を行っている。この複数のバスは、図1に示すように、ライト／リードのデータの送受信を行うデータバスＤＡＴ０−３と、ライト／リードコマンドを制御コントローラにシリアルな信号として送出するコマンドバスＣＭＤと、クロック信号を送出するクロックバスＣＬＫ、さらに、不揮発性メモリ７に電源電位を与える電源バスＶｄｄ、接地電位を与える電源バスＶｓｓ１、Ｖｓｓ２で構成されている。
【００１５】
そして、図示しないが、インタフェースで、データバスＤＡＴ０−３はデータピンに、コマンドバスＣＭＤはコマンドピンに、クロックバスＣＬＫはクロックピンに、電源バスＶｄｄ、Ｖｓｓ１、Ｖｓｓ２は電源ピンに接続され、メモリカード内に信号が伝えられる。
【００１６】
図２に、本発明の実施例１に係るメモリカード２に書き込まれる若しくは記憶されているデータの一例を示す。図２には、ライトデータを例に説明するが、メモリカード２に記憶され、読み出しされるリードデータも同様の構成をしている。
【００１７】
図２に示すように、ホスト機器１から送信されるライトデータ１０は、複数のヘッダ情報１１、１２を有している。このヘッダ情報１１、１２は、拡張コマンド番号１３、１５及びパラメータ情報１４、１６で構成されている。この拡張コマンド番号は、製造業者が独自に使用するコマンドが設定されている。例えば、製造コマンドや不良解析コマンドなどの拡張コマンド処理ごとに番号が決められている。また、パラメータ情報は、この拡張コマンド処理に応じたパラメータが設定されており、拡張コマンドを実行するときにこのパラメータを用いて拡張コマンド処理を実行することになる。
【００１８】
ここで、このライトデータ１０のすべてが、拡張コマンド情報を含んだヘッダ情報１１、１２を有しているわけではなく、拡張コマンド処理を実行するときにだけ拡張コマンド情報を含んだヘッダ情報１１、１２をライトデータ１０が含むことになる。つまり、一般的なデータの書き込みの場合は、ヘッダ情報１１、１２には、拡張コマンド情報は含まれていない。
【００１９】
以上、図２に示した拡張コマンド情報を含んだライトデータ１０をホスト機器１が送るために、ホスト機器１自身が、この拡張コマンドを含んだライトデータ１０を送信する。また、ホスト機器１自身が拡張コマンドを含んだライトデータ１０を送信するので、デバイス機器３は、ホスト機器１からライト動作を要求されても、ライトデータ１０の拡張コマンドを自らメモリカード２に発行してコマンドバスＣＭＤを介して送信する必要はなく、ライト動作のコマンドのみをコマンドバスＣＭＤを介してメモリカード２に送る。そして、デバイス機器は、ライトコマンドに対するレスポンスをメモリカードから受け取ると、データピンを介して、拡張コマンドを含んだライトデータ１０をインタフェース４に送信する。そして、メモリカード２の制御コントローラ５は、このライトデータ１０のヘッダ情報１１、１２に含まれる拡張コマンド情報を解析する機能を備えている。
【００２０】
次に、本発明の実施例１に係るメモリカード２の制御方法を図１、図２を参照にしながら説明する。図３は、そのメモリカード２の制御方法を示すフローチャートである。
【００２１】
まず、ホスト機器１からのデータライト要求によって、デバイス機器３はコマンドバスＣＭＤを介してメモリカード２の制御コントローラへライトコマンドを発行する（Ｓ１０１）。
【００２２】
次に、メモリカード２の制御コントローラは、デバイス機器３からのライトコマンドを受信すると（Ｓ１０２）、その受信したライトコマンドに対して、レスポンスをコマンドバスＣＭＤを介してデバイス機器３に送信する（Ｓ１０３）。
【００２３】
次に、デバイス機器３が、メモリカード２からコマンドバスＣＭＤを介してレスポンスを受信すると（Ｓ１０４）、デバイス機器３は、メモリカード２にデータバスＤＡＴ０−３を介してライトデータ１０を送信する（Ｓ１０５）。ここで、デバイス機器３から送信されるライトデータ１０は、図２で示した複数のヘッダ情報１１、１２の中に拡張コマンド番号１３、１５とそのパラメータ情報１４、１６が含まれているものとする。
【００２４】
次に、メモリカード２が、デバイス機器３からデータバスＤＡＴ０−３を介して送信されたライトデータ１０を受信し（Ｓ１０６）、ライトデータ１０をデータバッファ６に一時的に格納する。そして、このデータバッファ６に格納されたライトデータ１０を制御コントローラ５により解析する（Ｓ１０７）。
【００２５】
次に、ライトデータ１０の解析を開始すると、制御コントローラ５は、ライトデータ１０のヘッダ情報１１の先頭部が、拡張コマンド番号であるかを判別する（Ｓ１０８）。このとき、ヘッダ情報１１の先頭部に拡張コマンド番号１３が含まれていない場合は、そのままデータバッファ６に格納されたライトデータ１０は、不揮発性メモリ７に書き込まれ（Ｓ１１０）、ライト動作は終了する。
【００２６】
ヘッダ情報１１の先頭部に拡張コマンド番号１３があると判定された場合は、メモリカード２の制御コントローラ５は、ヘッダ情報１１内の拡張コマンド番号１３に応じた拡張コマンド処理をパラメータ情報１４に基づいて行う（Ｓ１０９）。
【００２７】
次に、この拡張コマンド処理が終了すれば、制御コントローラ５は、ライトデータ１０の次のヘッダ情報１２の解析を行い、上記したＳ１０７からＳ１０９の動作を繰り返す。この動作は、ライトデータ１０のヘッダ情報に拡張コマンドが含まれていないところまで行う。
【００２８】
ライトデータ１０内の拡張コマンド処理をすべて終えると、制御コントローラ５は、データバッファ６内のライトデータ１０を不揮発性メモリ７に書き込む（Ｓ１１０）。以上より、ライトデータ１０の書き込み動作は終了する。
【００２９】
以上より、ホスト機器１からのライト要求に対して、ライトデータに拡張コマンドを含ませて、ライトデータ送信を行い、制御コントローラでライトデータの拡張コマンドを解析、実行させることができる。そのため、デバイス機器３は、ホスト機器からのライト要求に対して、ライトコマンドをコマンドバスに介して送信するだけでいいので、デバイス機器に依存することなく、メモリカード２内で拡張コマンド処理を実行することができる。
【００３０】
ここで、本実施例では、ヘッダ情報に拡張コマンド番号とパラメータ情報をそのまま判定し、拡張コマンド処理を実行していたが、それ以外にも図４に示すような拡張コマンドの実行のＥｎａｂｌｅ／Ｄｉｓａｂｌｅを制御する管理テーブルを不揮発性メモリ７内に設けることもできる。拡張コマンドテーブル３１には、拡張コマンド番号３２、３４とその実行フラグ３３、３５が定義されている。この実行フラグ３３、３５の値が、１の場合が拡張コマンドのＥｎａｂｌｅを示し、０の場合が拡張コマンドのＤｉｓａｂｌｅを示し、拡張コマンド管理テーブル３１により、ライトデータ１０にある拡張コマンドを選択的に処理実行させることができる。また、このような構成を不揮発性メモリ７内のユーザからのアクセス不可能な領域に格納し、拡張コマンドでのみアクセス可能にすることにより、特定の拡張コマンドに実行許可や制限を行うことができ、拡張コマンド処理を効果的に行うことができる。この拡張コマンドの実行フラグの判定は、ヘッダ情報の拡張コマンドの解析の時点で行う。
【００３１】
さらに、図５に示すように、拡張コマンドの実行のＥｎａｂｌｅ／Ｄｉｓａｂｌｅを制御する管理テーブル４１に、拡張コマンド番号４２、４６及びその実行フラグ４３、４７だけでなく、起動時４４、４８及び終了時４５、４９の実行フラグを設けることもできる。この場合も、ヘッダ情報の拡張コマンドの解析の時点に行うことにより、上記した効果と同様の効果が期待できる。
【実施例２】
【００３２】
図６に、本発明の実施例２に係るメモリカード２の制御方法のフローチャートを示す。実施例１ではライト動作を例に説明したが、本実施例では、リード動作について説明する。メモリカード２及びその周辺回路については、図１と同じ構成であるので、同一符号を附して、説明は省略する。リード動作によって読み出させる不揮発性メモリ７内のリードデータ１０は、図２と同様、複数のヘッダ情報１１、１２で構成され、ヘッダ情報１１、１２は、拡張コマンド番号１３、１５及びパラメータ情報１４、１６で構成されている。図２と同じ構成をしているので、同一符号を附して詳しい説明は省略する。
【００３３】
図６に示すように、まず、ホスト機器１からのデータリード要求によって、デバイス機器３はメモリカード２の制御コントローラへコマンドバスを介してリードコマンドを発行する（Ｓ２０１）。
【００３４】
次に、メモリカード２の制御コントローラが、デバイス機器３からのリードコマンドを受信すると（Ｓ２０２）、その受信したリードコマンドに対して、そのレスポンスをコマンドバスを介してデバイス機器３に送信する（Ｓ２０３）。そして、デバイス機器３が、メモリカード２からコマンドバスを介して送信されるレスポンスを受信する（Ｓ２０４）。
【００３５】
次に、メモリカード２は、デバイス機器３からのリードコマンドを受け、不揮発性メモリ７から所望のリードデータ１０の読み出しを行い、データバッファ６に一時的に保存する（Ｓ２０５）。
【００３６】
次に、このリードデータ１０のデータバッファ６への読み出しが完了すると、このリードデータ１０の解析が、制御コントローラ５により開始される（Ｓ２０６）。
【００３７】
次に、制御コントローラ５により、このリードデータ１０のヘッダ情報１１の先頭部が拡張コマンドであるかの判定が行われる（Ｓ２０７）。このヘッダ情報１１の先頭部が拡張コマンド番号１３であると判定された場合は、メモリカード２の制御コントローラ５により、ヘッダ情報１１内の拡張コマンド番号１３に応じた拡張コマンド処理をパラメータ情報１４に基づいて行う（Ｓ２０８）。
【００３８】
さらに、この拡張コマンドの処理が終了すれば、制御コントローラ５は、データバッファ６内のリードデータ１０の次のヘッダ情報１２の解析を行い、上記したＳ２０６からＳ２０８の動作を繰り返し行い、リードデータ１０のヘッダ情報に拡張コマンドが含まれていないところまで行う。
【００３９】
リードデータ１０内の拡張コマンドの処理をすべて終えると、制御コントローラ５は、データバッファ６内のリードデータ１０をデータバスを介してデバイス機器３に送信する（Ｓ２０９）。そして、デバイス機器３が、データバスから送信されてきたリードデータ１０を受信することによりリードデータ１０のリード動作は終了する（Ｓ２１０）。
【００４０】
このヘッダ情報の先頭部が拡張コマンドでないと判定された場合は、データバッファ６からデータバスを介してそのままデバイス機器３にリードデータ１０の送信を行い（Ｓ２０９）、デバイス機器３がデータバスを介して送信されたリードデータ１０を受信することによりリード動作は終了する（Ｓ２１０）。
【００４１】
以上より、リード動作でも実施例１のライト動作と同様、ホスト機器１からのリード要求に対して、リードデータに拡張コマンドが含まれているので、デバイス機器がコマンドバスを介して拡張コマンドを送信することなく、リードデータの拡張コマンドの解析、実行を行い、リードデータをデータバスを介してデバイス機器に送信することができる。そのため、デバイス機器３は、ホスト機器からのリード要求に対して、リードコマンドをコマンドバスに介して送信するだけでいいので、デバイス機器に依存することなく、メモリカード２内で拡張コマンド処理を実行することができる。
【００４２】
ここで、実施例１と同様、図４、図５に示すような拡張コマンド管理テーブル３１を設けることにより、拡張コマンドの実行の許可若しくは禁止を制限することができる。
【実施例３】
【００４３】
図７に本発明の実施例３に係るメモリカード２及びその周辺機器のブロック図を示し、図８は、本発明の実施例３に係るメモリカード２内のＲＯＭ領域に記憶されている拡張コマンドのデータの一例を示す。
【００４４】
本実施例の上記各実施例との違いは、図７に示すように、制御コントローラ５が、ＲＯＭ領域８を有している点である。その他の図１と同一の構成については、同一の符号を附して説明は省略する。このＲＯＭ領域８は、書き換え不可能な半導体メモリで構成されており、図８に示すように、複数の拡張コマンド情報２２、２３が記憶されている。この拡張コマンド情報２２、２３内には、それぞれの拡張コマンドに対応する拡張コマンド番号２４、２６及びそのパラメータ情報２５、２７が記憶されている。
【００４５】
以上の構成により、制御コントローラ５は、ライト／リードデータの拡張コマンド番号を判定し、ＲＯＭ領域８内にその拡張コマンドがあると判定された場合に、ライト／リードデータの拡張コマンドのパラメータを用いることなく、ＲＯＭ領域８内の拡張コマンドのパラメータを用いて拡張コマンド処理を実行することができる。
【００４６】
次に、本発明の実施例３に係るメモリカード２のライト動作の制御方法を図７、図８を参照にしながら説明する。図９は、そのメモリカード２の制御方法のライト動作を示すフローチャートである。
【００４７】
まず、ホスト機器１からのデータライト要求によって、デバイス機器３はコマンドバスを介してメモリカード２へライトコマンドを発行する（Ｓ３０１）。
【００４８】
次に、メモリカード２がデバイス機器３からコマンドバスを介して送信されたライトコマンドを受信すると（Ｓ３０２）、その受信したライトコマンドに対して、レスポンスをコマンドバスを介してデバイス機器３に送信する（Ｓ３０３）。
【００４９】
次に、デバイス機器３が、メモリカード２からのレスポンスを受信すると（Ｓ３０４）、デバイス機器３は、データバスを介してメモリカード２にライトデータ１０を送信する（Ｓ３０５）。
【００５０】
次に、メモリカード２が、デバイス機器３からデータバスを介して送信されたライトデータ１０を受信し（Ｓ３０６）、ライトデータ１０をデータバッファ６に一時的に格納する。そして、このデータバッファ６に格納されたライトデータ１０を制御コントローラ５により解析する（Ｓ３０７）。
【００５１】
次に、ライトデータ１０の解析を開始すると、制御コントローラ５は、ライトデータ１０のヘッダ情報１１の先頭部が、拡張コマンドであるかを判別する（Ｓ３０８）。このとき、ヘッダ情報１１の先頭部に拡張コマンド番号１３が含まれていない場合は、そのままデータバッファ６に格納されたライトデータ１０は、不揮発性メモリ７に書き込まれ（Ｓ３１２）、ライト動作は終了する。
【００５２】
ヘッダ情報１１の先頭部が拡張コマンドであると判定された場合は、メモリカード２の制御コントローラ５は、このライトデータ１０の拡張コマンド番号１３をＲＯＭ領域８に記憶されている拡張コマンド情報２２、２３の拡張コマンド番号２４、２６と比較し（Ｓ３０９）、一致するか判定する（Ｓ３１０）。
【００５３】
このとき、ＲＯＭ領域８の拡張コマンド番号２４、２６と一致すると判定された場合は、このＲＯＭ領域８の拡張コマンド番号２４、２６に対応するパラメータを用いて拡張コマンド処理を実行する（Ｓ３１１）。
【００５４】
ＲＯＭ領域８の拡張コマンド番号２４、２６と一致しないと判定された場合は、実施例１と同様、そのままライトデータ１０の拡張コマンド処理を実行する（Ｓ３１３）。
【００５５】
Ｓ３１１及びＳ３１３で行われた拡張コマンド処理が終了すると、S３０７へ戻り、次のヘッダ情報の拡張コマンドの判定を行い、ライトデータ１０の拡張コマンド若しくはＲＯＭ領域８の拡張コマンド処理を実行させていく。
【００５６】
ライトデータ１０内の拡張コマンド処理が全て終了すれば、このライトデータ１０を不揮発性メモリ７に書き込む動作が行われ（Ｓ３１２）、ライト動作は終了する。
【００５７】
次に、本発明の実施例３に係るメモリカード２のリード動作の制御方法を図７、図８を参照にしながら説明する。図１０は、そのメモリカード２の制御方法のリード動作を示すフローチャートである。
【００５８】
図１０に示すように、まず、ホスト機器１からのデータリード要求によって、デバイス機器３はコマンドバスを介してメモリカード２へリードコマンドを発行する（Ｓ４０１）。
【００５９】
次に、メモリカード２は、デバイス機器３からコマンドバスを介して送信されたリードコマンドを受信すると（Ｓ４０２）、その受信したリードコマンドに対してのレスポンスをコマンドバスを介してデバイス機器３に送信する（Ｓ４０３）。そして、デバイス機器３が、メモリカード２からのレスポンスを受信する（Ｓ４０４）。
【００６０】
次に、メモリカード２は、デバイス機器３からのリードコマンドを受け、不揮発性メモリ７から所望のリードデータ１０の読み出しを行い、データバッファ６に一時的に保存する（Ｓ４０５）。
【００６１】
次に、このリードデータ１０のデータバッファ６への読み出しが完了すると、このリードデータ１０の解析が、制御コントローラ５により開始される（Ｓ４０６）。
【００６２】
次に、リードデータ１０の解析を開始すると、制御コントローラ５は、リードデータ１０のヘッダ情報１１の先頭部が、拡張コマンドであるかを判別する（Ｓ４０７）。このとき、ヘッダ情報１１の先頭部に拡張コマンド番号１３が含まれていない場合は、そのままデータバッファ６に格納されたリードデータ１０は、データバスを介してデバイス機器３に送信され（Ｓ４１１）、デバイス機器３がリードデータ１０を受信し（Ｓ４１２）、リード動作は終了する。
【００６３】
ヘッダ情報１１の先頭部が拡張コマンドであると判定された場合は、メモリカード２の制御コントローラ５は、このリードデータ１０の拡張コマンド番号１３をＲＯＭ領域８に記憶されている拡張コマンド情報２２、２３の拡張コマンド番号２４、２６と比較し（Ｓ４０８）、一致するか判定する（Ｓ４０９）。
【００６４】
このとき、ＲＯＭ領域８の拡張コマンド番号２４、２６と一致すると判定された場合は、このＲＯＭ領域８の拡張コマンド番号２４、２６に対応するパラメータを用いて拡張コマンド処理を実行する（Ｓ４１０）。
【００６５】
ＲＯＭ領域８の拡張コマンド番号２４、２６と一致しないと判定された場合は、実施例１と同様、そのままリードデータ１０の拡張コマンド処理を実行する（Ｓ４１３）。
【００６６】
Ｓ４１０及びＳ４１３で行われた拡張コマンド処理が終了すると、Ｓ４０６へ戻り、次のヘッダ情報１２の拡張コマンドの判定を行い、リードデータ１０の拡張コマンド若しくはＲＯＭ領域８の拡張コマンド処理を実行させていく。
【００６７】
リードデータ１０内の拡張コマンド処理が全て終了すれば、バッファ６内からデータバスを介してリードデータ１０をデバイス機器３に送信し（Ｓ４１１）、デバイス機器３がリードデータ１０を受信することにより、リード動作は終了する（Ｓ４１２）。
【００６８】
以上より、ライト／リード動作においても、上記各実施例と同様、ホスト機器１からの拡張コマンドを含んだライト／リード要求に対してデバイス機器３に依存することなく、メモリカード２内で拡張コマンドを処理実行することができる。また、制御コントローラ５にＲＯＭ領域８を設け、このＲＯＭ領域８に書き換え不可能な拡張コマンドを予め書き込んでおき、ライト／リードデータ１０の拡張コマンドがＲＯＭ領域８の拡張コマンドと一致する場合に、このＲＯＭ領域８の拡張コマンドを用いて拡張コマンド処理を行うことできる。そのため、ライト／リード動作時の拡張コマンド処理要求を容易にすることができる。
【００６９】
ここで、実施例１と同様、図４、図５に示すような拡張コマンド管理テーブル３１を設けることにより、拡張コマンドの実行の許可若しくは禁止を制限することができる。
【００７０】
ここで、上記各実施例では、製造業者が独自に使用するコマンドを例にして説明してきたが、その他にも一般的に用いられるコマンドを上記各実施例のように、ライト／リードデータに含めて上記動作を行うこともできる。
【００７１】
なお、本発明は、上述したような各実施例に何ら限定されるものではなく、本発明の主旨を逸脱しない範囲内で種々変形して実施することができる。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施例１に係るメモリカード及びその周辺機器のブロック図。
【図２】本発明の実施例１に係るメモリカードの不揮発性メモリに書き込まれる若しくは記憶されているデータの一例。
【図３】本発明の実施例１に係るメモリカードの制御方法を示すフローチャート。
【図４】本発明の実施例１に係るメモリカードの不揮発性メモリに書き込まれる若しくは記憶されている拡張コマンド管理テーブルの一例。
【図５】本発明の実施例１に係るメモリカードの不揮発性メモリに書き込まれる若しくは記憶されている拡張コマンド管理テーブルの一例。
【図６】本発明の実施例２に係るメモリカードの制御方法を示すフローチャート。
【図７】本発明の実施例３に係るメモリカード及びその周辺機器のブロック図。
【図８】本発明の実施例３に係るメモリカード内のＲＯＭ領域に記憶されている拡張コマンドのデータの一例。
【図９】本発明の実施例３に係るメモリカードの制御方法を示すフローチャート。
【図１０】本発明の実施例３に係るメモリカードの制御方法を示すフローチャート。
【符号の説明】
【００７３】
１  ホスト機器
２  メモリカード
３  デバイス機器
４  インタフェース
５  制御コントローラ
６  データバッファ
７  不揮発性メモリ
８  ＲＯＭ領域
１０  ライトデータ（リードデータ）
１１、１２  ヘッダ情報
１３、１５、２４、２６、３２、３４、４２、４６  拡張コマンド番号
１４、１６、２５、２７  パラメータ情報
２２、２３  拡張コマンド情報
３１  拡張コマンド管理テーブル
【図１】
2007058599.tif 000003
【図２】
2007058599.tif 000004
【図３】
2007058599.tif 000005
【図４】
2007058599.tif 000006
【図５】
2007058599.tif 000007
【図６】
2007058599.tif 000008
【図７】
2007058599.tif 000009
【図８】
2007058599.tif 000010
【図９】
2007058599.tif 000011
【図１０】
2007058599.tif 000012