(57)【特許請求の範囲】
【請求項１】
バスステート信号とデータ信号とクロック信号をパラレルに転送するバスを介してホスト機器に接続される外部接続機器において、
上記ホスト機器との間で上記バスのデータバスを介してデータ信号の双方向通信を行うデータ通信手段と、
上記バスのステートを示すバスステート信号を上記ホスト機器から受信するバスステート信号受信手段と、
上記データ通信手段により受信される上記データ信号に含まれる動作制御コマンドに応じて当該外部接続機器の動作制御をするコントローラとを備え、
上記データ通信手段は、上記バスステート信号受信手段により上記ホスト機器から受信した上記バスステート信号のステートが当該外部接続機器から上記ホスト機器への割り込みを受け付けるステートとされているときに、上記データ通信手段により上記ホスト機器から受信して上記コントローラへ与えられた上記データ信号に含まれる動作制御コマンドに基づき発生する割り込み要因の内容を割り込み要因毎に示す情報を各ビットに割り当てたパラレルデータをデータバスを介して上記ホスト機器へ送信する外部接続機器。
【請求項２】
上記データ通信手段は、上記割り込み要因の内容を割り込み要因毎に示す情報として、ホスト機器から上記コントローラへ与えられた動作制御コマンドに基づき動作制御したときの本機器の動作状態を示す、上記動作制御コマンドの実行が終了した動作状態を示す１ビットの情報であるＣＥＤビットと、上記動作制御コマンドの実行がエラーとなった動作状態を示す１ビットの情報であるＥＲＲビットと、上記動作制御コマンドを実行した結果上記ホスト機器から当該外部接続機器へのアクセスを受け付ける動作状態を示す１ビットの情報であるＢＲＥＱ/ＰＲＧビットと、上記動作制御コマンドの実行が不可能である動作状態を示す１ビットの情報であるＣＭＤＮＫビットとを含む動作状態情報を各ビットに割り当てたパラレルデータを、上記データバスを介して上記ホスト機器へ送信することを特徴とする請求項１記載の外部接続機器。
【請求項３】
上記動作状態情報が格納されるレジスタを備え、
上記コントローラは、上記データ通信手段により上記ホスト機器から受信して与えられた上記データ信号に含まれる動作制御コマンドを実行し、その実行による当該外部接続機器の動作状態に基づき上記レジスタ内の動作状態情報を更新し、
上記データ通信手段は、上記バスステート信号受信手段により上記ホスト機器から受信した上記バスステート信号のステートが当該外部接続機器から上記ホスト機器への割り込みを受け付けるステートとされているときに、上記レジスタに格納されている上記動作状態情報を上記各ビットに割り当てたパラレルデータパラレルデータを、上記データバスを介して上記ホスト機器へ送信する請求項２記載の外部接続機器。
【請求項４】
上記バスは、少なくとも４ビットのパラレルデータを伝送し、
上記データ通信手段は、上記ＣＥＤビット、上記ＥＲＲビット、上記ＢＲＥＱ/ＰＲＧビット及び上記ＣＭＤＮＫビットを、４ビットのパラレルデータとして上記データバスを介して上記ホスト機器へ送信する請求項３記載の外部接続機器。
【請求項５】
上記データ通信手段は、上記ホスト機器から与えられる上記バスの伝送クロックと非同期に、上記ＣＥＤビット、上記ＥＲＲビット、上記ＢＲＥＱ/ＰＲＧビット及び上記ＣＭＤＮＫビットを伝送する請求項４記載の外部接続機器。
【請求項６】
上記コントローラは、上記動作制御コマンドの実行が正常に終了したときには、ＣＥＤビットを有効，ＥＲＲビットを無効，ＢＲＥＱ/ＰＲＧビットを無効，ＣＭＤＮＫビットを無効とする請求項４記載の外部接続機器。
【請求項７】
上記コントローラは、上記動作制御コマンドの実行にエラーが発生したときには、ＣＥＤビットを有効，ＥＲＲビットを有効，ＢＲＥＱ/ＰＲＧビットを無効，ＣＭＤＮＫビットを無効とする請求項４記載の外部接続機器。
【請求項８】
上記コントローラは、上記動作制御コマンドの実行が正常に行われ、且つ、上記ホスト機器から当該外部接続機器へのアクセスを受け付けるときには、ＣＥＤビットを無効，ＥＲＲビットを無効，ＢＲＥＱ/ＰＲＧビットを有効，ＣＭＤＮＫビットを無効とする請求項４記載の外部接続機器。
【請求項９】
上記コントローラは、上記動作制御コマンドの実行にエラーが生じており、且つ、上記ホスト機器から当該外部接続機器へのアクセスを受け付けるときには、ＣＥＤビットを無効，ＥＲＲビットを有効，ＢＲＥＱ/ＰＲＧビットを有効，ＣＭＤＮＫビットを無効とする請求項４記載の外部接続機器。
【請求項１０】
上記コントローラは、上記動作制御コマンドの実行中であるときには、ＣＥＤビットを無効，ＥＲＲビットを無効，ＢＲＥＱ/ＰＲＧビットを無効，ＣＭＤＮＫビットを無効とする請求項４記載の外部接続機器。
【請求項１１】
上記コントローラは、上記動作制御コマンドの実行が不可能であるときには、ＣＥＤビットを有効，ＥＲＲビットを無効，ＢＲＥＱ/ＰＲＧビットを無効，ＣＭＤＮＫビットを有効とする請求項４記載の外部接続機器。
【請求項１２】
バスステート信号とデータ信号とクロック信号をパラレルに転送するバスを介して外部接続機器が接続されるホスト機器において、
上記外部接続機器との間で上記バスのデータバスを介してデータ信号の双方向通信を行うデータ通信手段と、
上記バスのステートを示すバスステート信号を上記外部接続機器へ送信するバスステート信号送信手段と、
上記外部接続機器の動作制御をする制御コマンドを上記データ信号に含めて発行するコントローラとを備え、
上記データ通信手段は、上記バスステート信号のステートが上記外部接続機器から当該ホスト機器への割り込みを受け付けるステートとされているときに、当該ホスト機器から上記外部接続機器へ与えられた動作制御コマンドに基づき発生する割り込み要因の内容を割り込み要因毎に示す情報を各ビットに割り当てたパラレルデータを、データバスを介して上記外部接続機器から受信するホスト機器。
【請求項１３】
上記データ通信手段は、割り込み要因の内容を割り込み要因毎に示す情報として、当該ホスト機器から上記コントローラへ与えられた動作制御コマンドに基づき動作制御したときの当該ホスト機器の動作状態を示す動作状態情報を各ビットに割り当てたパラレルデータを、上記データバスを介して上記外部接続機器から受信する請求項１２記載のホスト機器。
【請求項１４】
上記動作状態情報には、上記動作制御コマンドの実行が終了した動作状態を示す１ビットの情報であるＣＥＤビットと、上記動作制御コマンドの実行がエラーとなった動作状態を示す１ビットの情報であるＥＲＲビットと、上記動作制御コマンドを実行した結果当該ホスト機器から上記外部接続機器へのアクセスを受け付ける動作状態を示す１ビットの情報であるＢＲＥＱ/ＰＲＧビットと、上記動作制御コマンドの実行が不可能である動作状態を示す１ビットの情報であるＣＭＤＮＫビットとが含まれている請求項１３記載のホスト機器。
【請求項１５】
上記バスは、少なくとも４ビットのパラレルデータを伝送し、
上記データ通信手段は、上記ＣＥＤビット、上記ＥＲＲビット、上記ＢＲＥＱ/ＰＲＧビット及び上記ＣＭＤＮＫビットを、４ビットのパラレルデータとして上記データバスを介して上記外部接続機器から受信する請求項１４記載のホスト機器。
【請求項１６】
上記データ通信手段は、当該ホスト機器から上記外部接続機器へ与える上記バスの伝送クロックと非同期に、上記ＣＥＤビット、上記ＥＲＲビット、上記ＢＲＥＱ/ＰＲＧビット及び上記ＣＭＤＮＫビットを受信する請求項１５記載のホスト機器。
【請求項１７】
上記コントローラは、ＣＥＤビットが有効，ＥＲＲビットが無効，ＢＲＥＱ/ＰＲＧビットが無効，ＣＭＤＮＫビットが無効であるときには、上記動作制御コマンドの実行が正常に終了したと判断する請求項１５記載のホスト機器。
【請求項１８】
上記コントローラは、ＣＥＤビットが有効，ＥＲＲビットが有効，ＢＲＥＱ/ＰＲＧビットが無効，ＣＭＤＮＫビットが無効であるときには、上記動作制御コマンドの実行にエラーが発生したと判断する請求項１５記載のホスト機器。
【請求項１９】
上記コントローラは、ＣＥＤビットが無効，ＥＲＲビットが無効，ＢＲＥＱ/ＰＲＧビットが有効，ＣＭＤＮＫビットが無効であるときには、上記動作制御コマンドの実行が正常に行われ、且つ、当該ホスト機器から上記外部接続機器へのアクセスを受け付けていると判断する請求項１５記載のホスト機器。
【請求項２０】
上記コントローラは、ＣＥＤビットが無効，ＥＲＲビットが有効，ＢＲＥＱ/ＰＲＧビットが有効，ＣＭＤＮＫビットが無効であるときには、上記動作制御コマンドの実行にエラーが生じており、且つ、当該ホスト機器から上記外部接続機器へのアクセスを受け付けていると判断する請求項１５記載のホスト機器。
【請求項２１】
上記コントローラは、ＣＥＤビットが無効，ＥＲＲビットが無効，ＢＲＥＱ/ＰＲＧビットが無効，ＣＭＤＮＫビットが無効であるときには、上記動作制御コマンドの実行中であるときと判断する請求項１５記載のホスト機器。
【請求項２２】
上記コントローラは、ＣＥＤビットが有効，ＥＲＲビットが無効，ＢＲＥＱ/ＰＲＧビットが無効，ＣＭＤＮＫビットが有効であるときには、上記動作制御コマンドの実行が不可能であると判断する請求項１５記載のホスト機器。
【請求項２３】
バスステート信号とデータ信号とクロック信号をパラレルに転送するバスを介してホスト機器と外部接続機器との間で双方向通信を行う通信方法であって、
上記ホスト機器から送信されるバスステート信号を上記外部接続機器において受信するステップと、
上記外部接続機器において受信した上記バスステート信号のステートが上記外部接続機器から上記ホスト機器への割り込みを受け付けるステートとされているときに、上記ホスト機器から上記外部接続機器へ与えられた動作制御コマンドに基づき発生する割り込み要因の内容を割り込み要因毎に示す情報を各ビットに割り当てたパラレルデータを、上記外部接続機器から上記ホスト機器へ送信するステップとから構成される通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ等に接続されるＩＣメモリ装置等の外部接続機器、並びに、この外部接続機器が接続されるホスト機器に関するものである。
【０００２】
【従来の技術】
従来より、いわゆるメモリスティック（商標）と呼ばれるリムーバルなＩＣメモリ装置が知られている。
【０００３】
メモリスティックは、内部にフラッシュメモリを有しており、静止画像データ、動画像データ、音声データ、音楽データ等の各種デジタルデータを格納することができる。このメモリスティックは、例えば、情報携帯端末、デスクトップ型コンピュータ、ノート型コンピュータ、携帯電話機、オーディオ装置、家電装置等々のホスト機器の外部記憶メディアとして機能する。
【０００４】
【発明が解決しようとする課題】
このようなＩＣメモリ装置では、所定のインタフェースを介して、ホスト機器側から動作が制御されている。
【０００５】
しかしながら、フラッシュメモリのアクセス速度は遅い。そのため、ホスト機器とＩＣメモリ装置との間のデータ転送シーケンスを短縮するには、ＩＣメモリ装置側から処理の終了等を通知する割り込み要求を規定することが有効となる。
【０００６】
本発明は、外部接続機器からホスト機器に対して効率的に割り込み信号を与えて、ホスト機器と外部接続機器とのデータ転送処理時間を短縮することができる外部接続機器、ホスト機器並びに通信方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明は、バスステート信号とデータ信号とクロック信号をパラレルに転送するバスを介してホスト機器に接続される外部接続機器において、上記ホスト機器との間で上記バスのデータバスを介してデータ信号の双方向通信を行うデータ通信手段と、上記バスのステートを示すバスステート信号を上記ホスト機器から受信するバスステート信号受信手段と、上記データ通信手段により受信される上記データ信号に含まれる動作制御コマンドに応じて当該外部接続機器の動作制御をするコントローラとを備え、上記データ通信手段は、上記バスステート信号受信手段により上記ホスト機器から受信した上記バスステート信号のステートが当該外部接続機器から上記ホスト機器への割り込みを受け付けるステートとされているときに、上記データ通信手段により上記ホスト機器から受信して上記コントローラへ与えられた上記データ信号に含まれる動作制御コマンドに基づき発生する各割り込み要因の内容を割り込み要因毎に示す情報を各ビットに割り当てたパラレルデータをデータバスを介して上記ホスト機器へ送信することを特徴とする。
【０００８】
本発明にかかる外部接続機器では、バスステート信号のステートが当該外部接続機器からホスト機器への割り込みを受け付けるステートとされているときに、上記ホスト機器からコントローラへ与えられた動作制御コマンドに基づき発生する割り込み要因の内容を割り込み要因毎に示す情報を各ビットに割り当てたパラレルデータを割り込み信号として、データバスを介して上記ホスト機器へ送信する。
【０００９】
また、本発明は、バスステート信号とデータ信号とクロック信号をパラレルに転送するバスを介して外部接続機器が接続されるホスト機器において、上記外部接続機器との間で上記バスのデータバスを介してデータ信号の双方向通信を行うデータ通信手段と、上記バスのステートを示すバスステート信号を上記外部接続機器へ送信するバスステート信号送信手段と、上記外部接続機器の動作制御をする制御コマンドを上記データ信号に含めて発行するコントローラとを備え、上記データ通信手段は、上記バスステート信号のステートが上記外部接続機器から当該ホスト機器への割り込みを受け付けるステートとされているときに、当該ホスト機器から上記外部接続機器へ与えられた動作制御コマンドに基づき発生する割り込み要因の内容を示す情報を割り込み要因毎に各ビットに割り当てたパラレルデータを、データバスを介して上記外部接続機器から受信するホスト機器ことを特徴とする。
【００１０】
本発明にかかるホスト機器では、バスステート信号のステートが外部接続機器から当該ホスト機器への割り込みを受け付けるステートとされているときに、当該ホスト機器から上記外部接続機器へ与えられた動作制御コマンドに基づき発生する割り込み要因の内容を割り込み要因毎に示す情報を各ビットに割り当てたパラレルデータを割り込み信号として、データバスを介して上記外部接続機器から受信する。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態として、本発明を適用したリムーバルな小型ＩＣメモリ装置、並びに、この小型ＩＣメモリ装置を外部記憶メディアとして用いるデータ処理装置について説明する。
【００１２】
なお、本発明の実施の形態として説明する小型ＩＣメモリ装置のことを、以下、メモリカードと呼ぶものとする。また、このメモリカードが接続されるデータ処理装置のことを、ホスト機器と呼ぶものとする。
【００１３】
アウトライン
図１に、ホスト機器及びメモリカードの外観斜視図を示す。
【００１４】
メモリカード１は、内部に不揮発性の半導体メモリ（ＩＣメモリ）を有しており、静止画像データ、動画像データ、音声データ、音楽データ等の各種デジタルデータを格納することができる。このメモリカード１は、例えば、情報携帯端末、デスクトップ型コンピュータ、ノート型コンピュータ、携帯電話機、オーディオ装置、家電装置等々のホスト機器２の外部記憶メディアとして機能する。メモリカード１は、ホスト機器２に設けられているスロット３に挿入された状態で使用される。メモリカード１のスロット３に対する挿入及び抜出は、ユーザが自在に行うことができる。そのため、例えば、あるホスト機器に挿入されていたメモリカード１を抜き出して、他のホスト機器に挿入することもでき、異なるホスト機器間のデータのやり取りに用いることが可能である。
【００１５】
メモリカード１及びホスト機器２は、４ビットパラレルデータ，クロック信号，バスステート信号の６つの信号を転送する６線式半２重パラレルプロトコルを用いたパラレルインタフェースでデータの転送を行う。
【００１６】
外観
図２は、本発明の実施の形態のメモリカード１を表面側から見た斜視図であり、図３は、本発明の実施の形態のメモリカード１を裏面側から見た斜視図である。
【００１７】
メモリカード１は、主面（表面１ａ及び裏面１ｂ）が略長方形とされた薄板形状となっている。メモリカード１は、主面の長手方向の長さが約５０ｍｍ、主面の短辺方向の長さが約２１．４５ｍｍ、厚さが約２．８ｍｍとなっている。また、メモリカード１は、主面が、表面１ａと裏面１ｂとに区別される。裏面１ｂの長手方向の一端には、１０個の平面電極（接続端子群４）が、短辺方向に一列に並んで設けられている。また、電極と電極との各間には、裏面１ｂから垂直に立ち上がったガード５が設けられ、接続端子への接触防止が図られている。また、メモリカード１の裏面１ｂには、誤消去禁止用のスライドスイッチ６が設けられている。
【００１８】
また、ホスト機器２のスロット３は、以上のような形状のメモリカード１に対応した凹状の形状となっていて、メモリカード１が挿入可能である。さらに、このスロット３は、メモリカード１が挿入されたときには、このメモリカード１が脱落しないように保持することができる。また、スロット３には、メモリカード１の１０個の平面電極に対応した位置に、１０個の接点が設けられている。そのため、メモリカード１が接続端子群４の方向からスロット内部に差し込まれることにより（図２のＸ方向にメモリカード１が差し込まれることにより）、これらのスロット３内の接点と、メモリカード１の各接続端子とが電気的に接続されることとなる。
【００１９】
本実施の形態のメモリカードのブロック構成
図４に、メモリカード１の内部ブロック構成図を示す。
【００２０】
メモリカード１は、パラレルインタフェース回路（Ｉ／Ｆ）１２と、レジスタ回路１３と、データバッファ回路１４と、ＥＣＣ回路１５と、メモリＩ／Ｆコントローラ１６と、不揮発性半導体メモリ１７と、発振制御回路１８とを備えて構成される。
【００２１】
パラレルＩ／Ｆ回路１２は、６線式半２重パラレル方式のデータ転送プロトコルを用いて、ホスト機器２との間でデータの転送を行う回路である。
【００２２】
レジスタ回路１３は、例えば、ホスト機器から転送されるメモリＩ/Ｆコントローラ１６に対する動作制御コマンド（以下、この動作制御コマンドのことをコントロールコマンドと呼ぶ。）、メモリカード１内の内部状態、コントロールコマンドを実行する際に必要な諸処のパラメータ、不揮発性半導体メモリ１７内のファイル管理情報等を記憶する回路である。このレジスタ回路１３は、ホスト機器２及びメモリＩ／Ｆコントローラ１６の両者からアクセスされる。なお、ホスト機器２は、本メモリカードのデータ転送プロトコル上で規定される転送プロトコルコマンド（以下、ＴＰＣ(Transfer Protocol Command)という。）を用いて、レジスタ回路１３に対してアクセスを行う。すなわち、レジスタ回路１３に格納されるコントロールコマンドや各種パラメータに対してホスト機器２が書き込みや読み出しをする場合には、ＴＰＣを用いて行う。
【００２３】
データバッファ回路１４は、不揮発性半導体メモリ１７へ書き込まれるデータ、並びに、不揮発性半導体メモリ１７から読み出されたデータを、一時的に保存するメモリ回路である。すなわち、ホスト機器２から不揮発性半導体メモリ１７へデータが書き込まれる場合には、書き込み対象データがホスト機器２からデータバッファ回路１４へデータ転送プロトコルに従って転送され、その後、データバッファ回路１４に格納されている書き込み対象データをメモリＩ/Ｆコントローラ１６が不揮発性半導体メモリ１７に書き込む。また、不揮発性半導体メモリ１７からホスト機器２へデータが読み出される場合には、メモリＩ/Ｆコントローラ１６が不揮発性半導体メモリ１７から読み出し対象データを読み出して一旦データバッファ回路１４に格納し、その後、その読み出し対象データがデータ転送プロトコルに従ってデータバッファ回路１４からホスト機器２へ転送される。なお、データバッファ回路１４は、所定のデータ書き込み単位（例えば、フラッシュメモリのページサイズと同一の５１２バイト）分のデータ容量を有している。なお、ホスト機器２は、ＴＰＣを用いて、データバッファ回路１４に対してアクセスを行う。すなわち、データバッファ回路１４に格納されるデータに対して、ホスト機器２が書き込みや読み出しをする場合には、ＴＰＣを用いて行う。
【００２４】
ＥＣＣ回路１５は、不揮発性半導体メモリ１７へ書き込まれるデータに対して誤り訂正コード（ＥＣＣ）を付加する。また、ＥＣＣ回路１５は、不揮発性半導体メモリ１７から読み出したデータに付加されている誤り訂正コードに基づき、この読み出したデータに対する誤り訂正処理を行う。例えば、誤り訂正コードは、５１２バイトのデータ単位に対して３バイト分付加される。
【００２５】
メモリＩ／Ｆコントローラ１６は、レジスタ回路１３内に格納されているコントロールコマンドに従い、データバッファ１４と不揮発性半導体メモリ１７との間のデータのやり取りの制御、不揮発性半導体メモリ１７のデータのセキュリティ管理の制御、メモリカード１のその他のファンクションの制御、並びに、レジスタ回路１３内に格納されているデータの更新処理等を行う。
【００２６】
不揮発性半導体メモリ１７は、例えば、ＮＡＮＤ型のフラッシュメモリ等の不揮発性の半導体メモリである。不揮発性半導体メモリ１７の容量は、例えば１６Ｍバイト、３２Ｍバイト、６４Ｍバイト、１２８Ｍバイトである。不揮発性半導体メモリ１７は、消去ブロック単位が、例えば１６Ｋバイトである。また、読み書き単位がページと呼ばれ、上記のデータバッファ回路１４と同一の５１２バイトである。
【００２７】
発振制御回路１８は、本メモリカード１内の動作クロックを発生する。
【００２８】
メモリカード１の接続端子には、ＶＳＳ端子、ＶＣＣ端子、ＤＡＴＡ０端子、ＤＡＴＡ１端子、ＤＡＴＡ２端子、ＤＡＴＡ３端子、ＢＳ端子、ＣＬＫ端子、ＩＮＳ端子が設けられている。なお、ＶＳＳ端子は２つ設けられているので、メモリカード１には、合計１０個の接続端子が設けられていることとなる。また、ホスト機器２側にも同様の接続端子が設けられている。
【００２９】
ＶＳＳ端子は、ＶＳＳ（基準０ボルト電圧）が接続される。このＶＳＳ端子は、ホスト機器側のグランドとメモリカード側のグランドとを接続し、ホスト機器とメモリカードとの０ボルト基準電位を一致させる。ＶＣＣ端子は、電源電圧（ＶＣＣ）がホスト機器から供給される。
【００３０】
ＤＡＴＡ０端子は、メモリカード１とホスト機器２との間に転送される４ビットパラレルデータのうちの最下位ビットのデータ信号（ＤＡＴＡ０）が入出力される。ＤＡＴＡ１端子は、メモリカード１とホスト機器２との間に転送される４ビットパラレルデータのうちの下位から２ビット目のデータ信号（ＤＡＴＡ１）が入出力される。ＤＡＴＡ２端子は、メモリカード１とホスト機器２との間に転送される４ビットパラレルデータのうちの下位から３ビット目のデータ信号（ＤＡＴＡ２）が入出力される。ＤＡＴＡ３端子は、メモリカード１とホスト機器２との間に転送される４ビットパラレルデータのうちの下位から４ビット目のデータ信号（ＤＡＴＡ３）が入出力される。
【００３１】
ＢＳ端子は、バスステート信号がホスト機器からメモリカードへ入力される。ＣＬＫ端子は、クロック信号がホスト機器２から入力される。ＩＮＳ端子は、メモリカードがスロットに挿入されているか、或いは、挿入されていないかを、ホスト機器２が判断するための挿入／抜出検出に用いられる。メモリカード１のＩＮＳ端子はグランドに接続されており、ホスト機器２のＩＮＳ端子は抵抗を介してプルアップされている。
【００３２】
メモリカードとホスト機器間のインタフェース機能の構成
図５に、本実施の形態のメモリカード１とホスト機器２との間のデータ伝送をするためのインタフェースの機能構成図を示す。
【００３３】
ホスト機器２のインタフェース機能は、ファイルマネージャ３１と、ＴＰＣインタフェース３２と、パラレルインタフェース３３とから構成される。また、メモリカード１のインタフェース機能は、パラレルインタフェース３３と、レジスタ３５と、データバッファ３６と、メモリコントローラ３７と、メモリ３８とから構成される。
【００３４】
ファイルマネージャ３１は、ホスト機器のオペレーションシステム上で、メモリカード１内に格納されているファイル、並びに、ホスト機器の他のメディアに格納されているファイルの管理を行う。ファイルマネージャ３１は、ホスト機器２内のコントローラ等により実現される機能である。
【００３５】
ＴＰＣインタフェース３２は、ファイルマネージャ３１の下位レイヤとなる。ＴＰＣインタフェース３２は、本インタフェースの特有のコマンド（ＴＰＣ:Transfer Protocol Command）が規定されたデータ転送プロトコルにより、メモリカード１内のレジスタ３５及びデータバッファ３６へアクセスを行う。このＴＰＣインタフェース３２は、ホスト機器２内のコントローラ等により実現される機能である。
【００３６】
パラレルインタフェース３３，３４は、ＴＰＣインタフェース３２の下位レイヤとなり、本インタフェースシステムの物理階層である。パラレルインタフェース３３，３４は、４ビットパラレルデータ，クロック，バスステート信号の６つの信号を転送するデータ転送プロトコルである６線式半２重パラレルプロトコルに従い、データ転送を行う。パラレルインタフェース３３，３４は、パラレルインタフェース回路１２により実現される機能である。
【００３７】
レジスタ３５は、ホストから転送されたコントロールコマンド、メモリカードの内部状態、メモリ３８にアクセスするデータのアドレス、コントロールコマンドを実行する際に必要な諸処のパラメータ、メモリ内のファイル管理情報等を格納する。レジスタ３５は、メモリカード１のレジスタ回路１３上に実現される機能である。
【００３８】
データバッファ３６は、メモリ３８へ書き込まれるデータ、並びに、メモリ３８から読み出されたデータを、一時的に保存するバッファ領域である。データバッファ３６は、メモリカード１のデータバッファ回路１４上に実現される機能である。
【００３９】
メモリコントローラ３７は、レジスタ３５内に格納されているコマンド並びに各種情報に従い、データバッファ３６とメモリ３８との間のデータの読み出し、書き込み、消去、並びに、レジスタ３５内の各種情報の更新等の制御を行う。メモリコントローラ３７は、ホスト機器２上のメモリＩ/Ｆコントローラ１６により実現される機能である。
【００４０】
メモリ３８は、データのメモリ領域であり、メモリコントローラ３７を通して独自のモデルとして仮想化されている。メモリ３８は、メモリカード１上の不揮発性半導体メモリ１７により実現される機能である。
【００４１】
以上のような構成のホスト機器及びメモリカードでは、ファイルマネージャ３１に管理されている他のメディアに格納されているデータを、上記パラレルインタフェース３３，３４を介してメモリ３８に転送することができる。また、メモリ３８に格納されているデータを、上記パラレルインタフェース３３，３４を介してファイルマネージャに管理されている他のメディアに転送することができる。
【００４２】
データ転送プロトコル
次に、本実施の形態のメモリカード１とホスト機器２との間のデータ転送プロトコルについて説明する。
【００４３】
メモリカード１及びホスト機器２のデータ転送プロトコルの特徴としては、４つのバスステートを定義して伝送データの転送方向及び属性を識別すること、ホスト機器２からメモリカード１のレジスタ回路１３及びデータバッファ回路１４に対してＴＰＣを用いてアクセスを行うこと、コントロールコマンドを用いてホスト機器２がメモリカード１の動作制御をすること、ＣＲＣ（Cyclic Redundancy Check codes）を用いてメモリカード１とホスト機器２との間の転送データのエラー検出を行うこと、メモリカード１からホスト機器２への割り込み信号（ＩＮＴ信号）を規定していること等がある。
【００４４】
メモリカード１とホスト機器２とは、図６に示すように、バスステート信号（ＢＳ），４本のパラレルデータ信号，クロック信号（ＳＣＬＫ）の６本の信号で接続されている。
【００４５】
パラレルデータ信号は、メモリカード１とホスト機器２との間を転送されるデータ信号である。パラレルデータ信号は、４ビット幅のパラレルデータ（ＤＡＴＡ［３：０］）を伝送し、バスステート信号により規定されるステートに従い、そのパラレルデータ（ＤＡＴＡ［３：０］）の転送方向及び属性が変化する。
【００４６】
バスステート信号は、パラレルデータ信号のステート、並びに、各ステートにおけるパラレルデータ信号の転送開始タイミングを規定する信号である。このバスステート信号は、ホスト機器２からメモリカード２へ転送される。ステートは、パケット通信が行われない１つのステート（ＢＳ０）と、パケット通信中の３つのステート（ＢＳ１〜ＢＳ３）との合計４つのステートに区分される。バスステート信号は、ＨｉｇｈとＬｏｗとの切り換えタイミングで、ＢＳ０からＢＳ３まで順番にステートを切り換えていく。
【００４７】
クロック信号は、パラレルデータ信号及びバスステート信号のクロックである。クロック信号は、ホスト機器からメモリカードへ転送される。クロック信号は、パケット通信中の３つのステート（ＢＳ１〜ＢＳ３）時には必ず出力される。
【００４８】
各ステートでの通信内容は、図７に示すようになる。
【００４９】
ＢＳ０は、パラレルデータ信号のラインに、メモリカード１からホスト機器２への割り込み信号（ＩＮＴ信号）が転送可能なステートである。ＩＮＴ信号は、クロックに対して非同期に転送される。ＢＳ０では、パケット通信は行われない。ＢＳ０を示すバスステート信号の信号レベルはＬｏｗで表される。なお、このＩＮＴ信号には、メモリカード１の動作状態が反映されるが、その内容については後述する。
【００５０】
ＢＳ１は、パラレルデータ信号のラインに、ＴＰＣが転送されるステートである。ＢＳ１を示すバスステートの信号レベルはＨｉｇｈで表される。ＴＰＣは、ホスト機器２からメモリカード１へ転送される。ＴＰＣは、ホスト機器２がメモリカード１のレジスタ回路１３及びデータバッファ回路１４にアクセスするためのコマンドである。ＴＰＣには、データバッファ回路１４に対するデータの書き込み処理又は読み出し処理を行うコマンド、レジスタ回路１３に対するデータの書き込み処理又は読み出し処理を行うコマンド、メモリＩ/Ｆコントローラ１６に与えるコントロールコマンドをレジスタ回路１３に書き込む処理を行うコマンド等がある。ＴＰＣ及びコントロールコマンドの具体的な内容については後述する。
【００５１】
ＢＳ２及びＢＳ３では、ホスト機器２からメモリカード１へデータを転送するライト系パケットと、メモリカード１からホスト機器２へデータを転送するリード系パケットとで、パラレルデータ信号上に転送されるパラレルデータ（ＤＡＴＡ［３：０］）の転送方向及び属性が異なる。そのパケットの種類がライト系パケットかリード系パケットかは、ＢＳ１で転送されるＴＰＣの内容によって決定される。
【００５２】
図８にライト系パケットのタイミングチャートを示し、ライト系パケット時のＢＳ２，ＢＳ３の内容について説明をする。
【００５３】
ライト系パケット時のＢＳ２では、パラレルデータ信号上の転送データが、レジスタ回路１３やデータバッファ回路１４への書き込み対象データ及びこの書き込み対象データのＣＲＣとなる。ＢＳ２では、パラレルデータ信号上の転送データが、ホスト機器２からメモリカード１へ転送される。
【００５４】
ライト系パケット時のＢＳ３では、パラレルデータ信号上の転送データが、メモリカード１から発生されるビジー（ＢＳＹ）信号及びレディー（ＲＤＹ）信号となる。ライト系パケット時のＢＳ３では、パラレルデータ信号上のビジー信号及びレディー信号が、メモリカード１からホスト機器２へ転送される。ライト系パケット時のＢＳ３では、ＢＳ１及びＢＳ２でホスト機器２からメモリカード１へ転送されたＴＰＣ及び転送データに対する処理が行われる。メモリカード１は、そのＴＰＣ及び転送データに対する処理を行っている最中（つまり、まだ処理が完了しない場合）には、ホスト機器２に対してビジー信号を送出する。そして、メモリカード１は、その処理が完了するとホスト機器２に対してレディー信号を送出する。ビジー信号及びレディー信号は、４本のパラレルデータ信号のうち、最下位ビット（ＤＡＴＡ０）の信号ラインのみに転送される。ビジー信号は、最下位ビット（ＤＡＴＡ０）の信号ラインをｈｉｇｈレベルの状態にする信号である。レディー信号は、最下位ビット（ＤＡＴＡ０）の信号ラインを、ｈｉｇｈレベルとｌｏｗレベルとを１クロックごとに交互に繰り返す状態とする信号である。このように、ビジー信号及びレディー信号を伝送することによって、データが転送されていないライト系パケット時のＢＳ３のタイミングでのメモリカード１とホスト機器２とのハンドシェイクを確立することができる。
【００５５】
図９にリード系パケットのタイミングチャートを示し、リード系パケット時のＢＳ２，ＢＳ３の内容について説明をする。
【００５６】
リード系パケット時のＢＳ２では、パラレルデータ信号上の転送データが、メモリカード１から発生されるビジー信号及びレディー信号となる。リード系パケット時のＢＳでは、ＢＳ１でホスト機器２からメモリカード１へ転送されたＴＰＣに応じて、メモリカード１がデータの転送準備を行う。メモリカード１は、ＴＰＣに対するデータの転送準備中（つまり、まだ転送準備が完了していない場合）には、ホスト機器２に対してビジー信号を送出する。そして、メモリカード１は、その転送準備が完了すると、ホスト機器２に対してレディー信号を送出する。このように、ビジー信号とレディー信号とを伝送することによって、データが転送されていないリード系パケットのＢＳ２におけるメモリカード１とホスト機器２とのハンドシェイクを確立することができる。
【００５７】
リード系パケット時のＢＳ３では、パラレルデータ信号上の転送データが、レジスタ回路１３やデータバッファ回路１４からの読み出し対象データ及びこの読み出し対象データのＣＲＣとなる。ＢＳ３は、パラレルデータ信号上の転送データが、メモリカード１からホスト機器２へ転送される。
【００５８】
図１０にＢＳ２，ＢＳ３で発生されるビジー信号及びレディー信号の詳細なタイミングチャートを示す。この図１０に示すように、ビジー信号及びレディー信号は、４本のパラレルデータ信号のうち、最下位ビット（ＤＡＴＡ０）の信号ラインのみに転送される。他のビット（ＤＡＴＡ１〜３）は、ｌｏｗレベルとされている。ホスト機器２は、ＤＡＴＡ０に伝送された信号のみを受信し、他のビットの信号は無視する。最下位ビット（ＤＡＴＡ０）は、従来の３線式半２重プロトコルを用いたメモリカードのシリアルデータの伝送ラインに対応している。従って、本メモリカード1は、従来のメモリカードと互換性を有している。
【００５９】
ＢＳ０のＩＮＴ信号
つぎに、バスステートがＢＳ０の際にメモリカード１からホスト機器２へ転送されるＩＮＴ信号について説明をする。
【００６０】
メモリカード１には不揮発性半導体メモリ１７としてフラッシュメモリが用いられている。フラッシュメモリに対するアクセス時間は、メモリカード１とホスト機器２との間のデータの転送時間と比較して非常に長くなる。そのため、ホスト機器２側のデータ処理シーケンスを短縮するには、データ転送プロトコル上、メモリカード１側から処理の終了等を通知する割り込み要求を規定することが有効となる。つまり、メモリカード１からの割り込み要求を規定することによって、フラッシュメモリに対するアクセス中、ホスト機器２側のＣＰＵの処理を他の処理に開放することができる。
【００６１】
ＢＳ０では、メモリカード１に何らかの割り込み要求が発生すると、メモリカード１が、割り込み信号（ＩＮＴ信号）をホスト機器２に転送する。ＩＮＴ信号は、クロック信号には同期せずに、メモリカード１から出力される。ＢＳ０時に、パラレルデータ（ＤＡＴＡ［３：０］）の信号ラインのいずれかのビットが、ｈｉｇｈレベルとされたときには、メモリカード１側から割り込み要求が発生したことを示す。また、パラレルデータ（ＤＡＴＡ［３：０］）のいずれのビットもｌｏｗレベルのときには、メモリカード１は処理の実行中で、割り込み要求がないことを示す。
【００６２】
ここで、メモリカード１から発生する割り込みの要因には、複数のものが存在する。例えば、メモリカード１に与えられたコントロールコマンドに対する動作制御が終了したことをホスト機器２に伝達するための割り込み、メモリカード１に与えられたコントロールコマンドに対して動作制御を行った際にエラーが発生したことをホスト機器２に伝達するための割り込み、ホスト機器２に対してアクセスを要求する割り込み、メモリカード１から与えられたコントロールコマンドが実行不可能であることをホスト機器２に対して伝達するための割り込み、等々がある。
【００６３】
メモリカード１では、以上のような各割り込みの各要因を、パラレルデータ（ＤＡＴＡ［３：０］）の各ビットに対して割り当て、発生した割り込みの要因に応じてｈｉｇｈレベルとするラインを変化させている。すなわち、メモリカード１で発生した割り込みの内容に応じて、ＢＳ０時にｈｉｇｈレベルとなるビット位置が異なるＩＮＴ信号が、メモリカード１から発生される。
【００６４】
ホスト機器２は、ＢＳ０時には、パラレルデータ（ＤＡＴＡ［３：０］）の各ビットのレベルを監視することによって、メモリカード１から割り込み要求があったことを検出するとともに、どのビット位置のレベルがｈｉｇｈとなっているかを検出し、メモリカード１の割り込みの要因も同時に検出する。
【００６５】
これに対して、従来のメモリカードシステムでは、メモリカード側からホスト側へ、単に割り込み要求があるかないかのみを通知している。そのため、メモリカードから割り込み要求があったとしても、ホスト側がその要求と同時に割り込み要因を確認することはできず、必ず、パケット通信を確立してメモリカード側に割り込み要因を読み出さなければならなかった。これに対して、本発明の実施の形態のメモリカード１及びホスト機器２では、データラインが４ビットであることを利用し、各ビットに対して割り込みの各要因を割り当てているので、割り込み要求と同時にその要因もホスト機器２が確認することができる。
【００６６】
従って、本実施の形態では、メモリカード１からの割り込み要求が発生した場合、ホスト機器２がその要求内容を確認するためのパケット通信を行わなくてもよくなる。つまり、メモリカード１とホスト機器２との間のデータ転送シーケンスの実行時間を短くすることができる。
【００６７】
なお、本実施の形態では、メモリカード１のＩＮＴ信号は、コントロールコマンドに基づく動作状態が反映するＩＮＴレジスタに格納されている各ビット値となっている。ＩＮＴレジスタは、レジスタ回路１３内のステータスレジスタ群内に設けられている。メモリカード１のパラレルインタフェース回路１２は、バスステート信号がＢＳ０を示しているときに、このＩＮＴレジスタの各ビット値を参照し、そのビット値が有効（１）となっていれば、そのビットに対応するデータラインをｈｉｇｈレベルにドライブし、そのビット値が無効（０）となっていれば、そのビット値に対応するデータラインをｌｏｗレベルにドライブする。このＩＮＴレジスタの具体的な内容、並びに、ＩＮＴレジスタの各値とパラレルデータ（ＤＡＴＡ［３：０］）との関係については、つぎのレジスタ回路の項で説明をする。
【００６８】
レジスタ回路
つぎに、レジスタ回路１３について説明をする。
【００６９】
レジスタ回路１３は、複数の内部レジスタにより構成されている。レジスタ回路１３内の内部レジスタは、その用途に応じて、以下の１〜５に分類される。
１  メモリカード１のステータス等が格納されるステータスレジスタ群
２  コマンドの実行等のために用いられるパラメータが、格納されるパラメータレジスタ群
３  フラッシュメモリの各ページ毎に設けられ、各ページの管理データ等が格納されるエキストラデータレジスタ群
４  上記１，２，３の各レジスタに対するアクセス位置を特定するためのアドレスが格納されるレジスタアドレスレジスタ
５  ホスト機器２から与えられたコントロールコマンドが格納されるコマンドレジスタ
【００７０】
（ステータスレジスタ群）
ステータスレジスタ群には、図１１に示すように、ＩＮＴレジスタ、ステータスレジスタ、タイプレジスタ、カテゴリレジスタ、クラスレジスタの５つの内部レジスタがある。ステータスレジスタ群内の各内部レジスタは、メモリＩ/Ｆコントローラ１６により格納している値が更新される。ステータスレジスタ群内の各内部レジスタは、ホスト機器２からはREAD_REG_TPC（READ_REG_TPCは、ＴＰＣの中の一つのコマンドであり、その詳細は後述する。）でアクセスが可能であり、ホスト機器２からは読み出し専用となっている。また、ステータスレジスタ群内の各内部レジスタは、８ビット分のビット値が格納可能であり、それぞれにアドレスが設定されている。
【００７１】
・ＩＮＴレジスタ
ＩＮＴレジスタは、メモリカード１の動作状態が設定されるレジスタである。このＩＮＴレジスタ内の値は、ホスト機器２からメモリカード１に与えられたコントロールコマンドに対する動作結果に応じて、メモリＩ/Ｆコントローラ１６によって更新される。ＩＮＴレジスタは、図１２に示すように、８ビットのレジスタである。ＩＮＴレジスタには、８ビットのうち、最下位ビット（Ｄ０）と上位３ビット（Ｄ５〜Ｄ７）とに、動作状態が設定されている。なお、残りのビットは、リザーブとなっている。
【００７２】
ＩＮＴレジスタのビットＤ７は、ＣＥＤ（Command End）ビットである。ＣＥＤビットは、EX_SET_CMD_TPC又はSET_CMD_TPC（ＴＰＣのなかの１つのコマンドである。詳細は後述する。）によりセットされたコントロールコマンドの実行が終了したことを示すビットである。なお、ここでいう実行の終了とは、その実行が正常に終了したかエラー終了したかに関わらず、実行が終了したことを示すものである。ＣＥＤビットは、EX_SET_CMD_TPC又はSET_CMD_TPCによるコントロールコマンドのセット時及び初期状態の時に、メモリＩ/Ｆコントローラ１６によってビット値が無効（０）とされ、EX_SET_CMD_TPC又はSET_CMD_TPCによるコントロールコマンドの実行が終了したときにメモリＩ/Ｆコントローラ１６によってビット値が有効（１）とされる。
【００７３】
ＩＮＴレジスタのビットＤ６は、ＥＲＲ(Error)ビットである。ＥＲＲビットは、EX_SET_CMD_TPC又はSET_CMD_TPCによりセットされたメモリアクセスコマンド（コントロールコマンド）及びセキュリティコマンド（コントロールコマンド）を実行した結果、その実行にエラーが発生したことを示すビットである。ＥＲＲビットは、エラーが発生するとメモリＩ/Ｆコントローラ１６によってビット値が有効（１）とされ、新たなEX_SET_CMD_TPC又はSET_CMD_TPCによりコントロールコマンドがセットされるかあるいはエラー状態が解除されるとメモリＩ/Ｆコントローラ１６によってビット値が無効（０）とされる。
【００７４】
ＩＮＴレジスタのビットＤ５は、ＢＲＥＱ/ＰＲＧ（Buffer Request /Progress）ビットである。ＢＲＥＱ/ＰＲＧビットは、EX_SET_CMD_TPC又はSET_CMD_TPCによりセットされたメモリアクセスコマンド（コントロールコマンド）及びセキュリティコマンド（コントロールコマンド）を実行した結果、その実行によって発生するホスト機器２に対するデータバッファ回路１４へのアクセス要求、並びに、不揮発性半導体メモリ１７の内部消去処理やフォーマット処理を実行した場合におけるその進行状況を示すビットである。例えば、不揮発性半導体メモリ１７に対する書き込み命令があった場合におけるデータバッファ回路１４に対するデータの書き込み要求、不揮発性半導体メモリ１７からのデータの読み出し命令があった場合におけるデータバッファ回路１４からのデータの読み出し要求、セキュリティデータの受信要求等があることを示すビットである。ＢＲＥＱ/ＰＲＧビットは、各要求が発生したときメモリＩ/Ｆコントローラ１６によってビット値が有効（１）とされ、ホスト機器２によりその要求に対するＴＰＣによるアクセスが発生した場合にメモリＩ/Ｆコントローラ１６によりビット値が無効（０）とされる。また、ＢＲＥＱ/ＰＲＧビットは、フォーマットや消去の進行状況に応じて、メモリＩ/Ｆコントローラ１６によってビット値が更新される。
【００７５】
ＩＮＴレジスタのビットＤ０は、ＣＭＤＮＫ（Command Nack）ビットである。ＣＭＤＮＫビットは、EX_SET_CMD_TPC又はSET_CMD_TPCによりセットされたコマンドが実行できないことを示すビットである。EX_SET_CMD_TPC又はSET_CMD_TPCによりセットされたコントロールコマンドが実行できないときにメモリＩ/Ｆコントローラ１６によりビット値が有効（１）とされ、EX_SET_CMD_TPC又はSET_CMD_TPCによりセットされたコントロールコマンドが実行できるときにビット値が無効（０）とされる。
【００７６】
ＩＮＴレジスタには、以上のようなビットが設定されている。このことによって、ＩＮＴレジスタ内の各ビットの値の組み合わせにより、直前のコントロールコマンドに対するメモリカード１の動作状態として、図１３に示すような動作状態を表すことができる。
【００７７】
すなわち、ＣＥＤ＝１，ＥＲＲ＝０，ＢＲＥＱ/ＰＲＧ＝０，ＣＭＤＮＫ＝０である場合には、与えられたコントロールコマンドの実行が正常終了したという動作状態を示すこととなる。ＣＥＤ＝１，ＥＲＲ＝１，ＢＲＥＱ/ＰＲＧ＝０，ＣＭＤＮＫ＝０である場合には、与えられたコントロールコマンドの実行がエラー終了したという動作状態を示すこととなる。ＣＥＤ＝０，ＥＲＲ＝０，ＢＲＥＱ/ＰＲＧ＝１，ＣＭＤＮＫ＝０である場合には、与えられたコントロールコマンドの実行が正常に行われており、ホスト機器２に対してアクセス要求をしているという動作状態を示すこととなる。ＣＥＤ＝０，ＥＲＲ＝１，ＢＲＥＱ/ＰＲＧ＝１，ＣＭＤＮＫ＝０である場合には、与えられたコントロールコマンドの実行にエラーが発生しており、ホスト機器２に対してアクセス要求をしているという動作状態を示すこととなる。ＣＥＤ＝０，ＥＲＲ＝０，ＢＲＥＱ/ＰＲＧ＝０，ＣＭＤＮＫ＝０である場合には、与えられたコントロールコマンドの実行中であるという動作状態を示すこととなる。ＣＥＤ＝０，ＥＲＲ＝１，ＢＲＥＱ/ＰＲＧ＝０，ＣＭＤＮＫ＝０である場合には、不揮発性半導体メモリ１７の消去実行中又はフォーマット中であるという動作状態を示すこととなる。ＣＥＤ＝１，ＥＲＲ＝０，ＢＲＥＱ/ＰＲＧ＝０，ＣＭＤＮＫ＝１である場合には、与えられたコントロールコマンドの実行が不可能であるという動作状態を示すこととなる。
【００７８】
なお、ＩＮＴレジスタ内の各ビットは、EX_SET_CMD_TPC又はSET_CMD_TPCにより新たなコントロールコマンドがセットされたときには、その値は、メモリＩ/Ｆコントローラ１６によって初期状態（全てのビット値が０の状態）とされる。
【００７９】
・ＩＮＴレジスタとＩＮＴ信号との関係
ここで、上述したようにこのＩＮＴレジスタ内の各ビット（ＣＥＤ，ＥＲＲ，ＢＲＥＱ/ＰＲＧ，ＣＭＤＮＫ）は、その値がＩＮＴ信号に反映される。メモリカード１のパラレルインタフェース回路１２は、ステートがＢＳ０のときに、このＩＮＴレジスタの各ビットの値（ＣＥＤ，ＥＲＲ，ＢＲＥＱ/ＰＲＧ，ＣＭＤＮＫ）に応じて、パラレルデータ（ＤＡＴＡ［３：０］）の各データラインをｈｉｇｈレベル又はｌｏｗレベルにドライブする。ＩＮＴレジスタの各ビットと、パラレルデータの各ラインの関係は以下の通りである。
ＤＡＴＡ０：ＣＥＤ
ＤＡＴＡ１：ＥＲＲ
ＤＡＴＡ２：ＢＲＥＱ/ＰＲＧ
ＤＡＴＡ３：ＣＭＤＮＫ
【００８０】
パラレルインタフェース回路１２は、ステートがＢＳ０である期間中に常にＩＮＴレジスタ内の値を参照しており、ＩＮＴレジスタ内のビットの値が有効（１）であれば対応するデータラインをｈｉｇｈレベル（１）にドライブし、無効であれば対応するデータラインをｌｏｗ（０）にドライブする。ホスト機器２では、ステートがＢＳ０である期間中には、パラレルデータ（ＤＡＴＡ［３：０］）の各データラインのレベルを監視して、メモリカード１からの割り込み要求があるか否かを判断する。ホスト機器２は、メモリカード１から割り込み要求があった場合には、すなわち、いずれかのデータラインがｌｏｗレベルからｈｉｇｈレベルへ変化したと判断した場合には、どのデータラインのレベルがｈｉｇｈとなっているかを検出し、上述の図１３に示した動作状態を検出する。そして、ホスト機器２は、検出した動作状態に応じて、対応する処理を行う。
【００８１】
（パラメータレジスタ群）
パラメータレジスタ群内には、図１４に示すように、システムパラメータレジスタ、データカウント/セキュリティパラメータレジスタ、データアドレス/レビジョンナンバーレジスタ、ＴＰＣパラメータレジスタ、コマンドパラメータレジスタの各内部レジスタが設けられている。パラメータレジスタ群内の各内部レジスタは、ホスト機器２により格納している値が更新され、メモリＩ/Ｆコントローラ１６がコントロールコマンドを実行する際に、その値が参照される。パラメータレジスタ群内の各内部レジスタは、ホスト機器２からはWRITE_REG_TPC,EX_SET_CMD_TPC（ＴＰＣの一つ。詳細については後述する。）でアクセスが可能である。また、パラメータレジスタ群内の各内部レジスタは、８ビット分ごとにアドレスが設定されている。
【００８２】
・データカウント/セキュリティパラメータレジスタ
データカウント/セキュリティパラメータレジスタは、ホスト機器２からメモリカード１に与えられたメモリアクセスコマンド（コントロールコマンド）を実行する際に必要となるデータ数が格納される。例えば、不揮発性半導体メモリ１７からデータを読み出す際における読み出しデータのデータサイズ、不揮発性半導体メモリ１７に対してデータを書き込む際における書き込みデータのデータサイズ等が設定される。また、データカウント/セキュリティパラメータレジスタは、セキュリティコマンド（コントロールコマンド）を実行する際に必要となる各種設定値が格納される。このデータカウント/セキュリティパラメータレジスタのサイズは、１６ビットであり、８ビット単位で２つのアドレスが設定されている。
【００８３】
・データアドレス/レビジョンナンバーレジスタ
データアドレス/レビジョンナンバーレジスタは、ホスト機器２からメモリカード１に与えられたメモリアクセスコマンド（コントロールコマンド）を実行する際に必要となる不揮発性半導体メモリ１７上のアドレスが格納される。例えば、不揮発性半導体メモリ１７からデータを読み出す際における読み出し位置の先頭アドレス、不揮発性半導体メモリ１７に対してデータを書き込む際における書き込み位置の先頭アドレス等が設定される。また、データカウント/セキュリティパラメータレジスタは、セキュリティコマンド（コントロールコマンド）を実行する際に必要となるリビジョン番号が格納される。このデータカウント/セキュリティパラメータレジスタのサイズは、３２ビットであり、８ビット単位で４つのアドレスが設定されている。
【００８４】
なお、上記データカウント/セキュリティパラメータレジスタ及びデータアドレス/レビジョンナンバーレジスタは、メモリアクセスコマンド（コントロールコマンド）のうちの、READ_DATA, READ_INFO, WRITE_DATA, WRITE_INFO等の実行時に参照されることとなる。また、上記データカウント/セキュリティパラメータレジスタ及びデータアドレス/レビジョンナンバーレジスタは、ＴＰＣの中のWRITE_REG_TPC, EX_SET_CMD_TPCによりデータが書き込まれることとなる。なお、これらのコントロールコマンドの内容については、詳細を後述する。
【００８５】
（レジスタアドレスレジスタ）
レジスタアドレスレジスタは、ホスト機器２が、上記のステータスレジスタ群及びパラメータレジスタ群に対してＴＰＣを用いてアクセスする際に、アクセスするレジスタの先頭アドレス並びにデータ長を予め設定をしておくレジスタである。
【００８６】
上記のステータスレジスタ群及びパラメータレジスタ群に対しては、WRITE_REG_TPC（ＴＰＣのうちの一つ。詳細は後述する。）でデータの書き込みが可能であり、READ_REG_TPC（ＴＰＣのうちの一つ。詳細は後述する。）でデータの読み出しが可能である。しかしながら、これらWRITE_REG_TPC, READ_REG_TPCには、レジスタ位置を特定する情報が引数として含まれていない。従って、ホスト機器２は、これらのWRITE_REG_TPC, READ_REG_TPCを用いてレジスタに対してアクセスを行う場合には、予め、このレジスタアドレスレジスタに対して、ステータスレジスタ群及びパラメータレジスタ群のアドレス及びデータ長を設定する。そして、WRITE_REG_TPC, READ_REG_TPCが与えられた場合、メモリＩ/Ｆコントローラ１６は、このレジスタアドレスレジスタに格納されている情報を参照して、各コマンドに対応する処理を行う。なお、このレジスタアドレスレジスタに対してレジスタアドレス及びデータ長を格納するＴＰＣは、SET_R_W_REG_ADRS_TPC（詳細後述）である。
【００８７】
（コマンドレジスタ）
コマンドレジスタは、ホスト機器２から与えられるコントロールコマンドを格納するレジスタである。メモリＩ/Ｆコントローラ１６は、このコマンドレジスタに格納されたコントロールコマンドに応じて、各種の動作制御を行う。このコマンドレジスタに対してコントロールコマンドを格納するＴＰＣは、SET_CMD_TPC,EX_SET_CMD_TPC（詳細後述）である。
【００８８】
ＴＰＣ
つぎに、ＴＰＣ（Transfer Protocol Command）について説明をする。
【００８９】
ＴＰＣは、本メモリカード１及びホスト機器２のデータ転送プロトコル上で規定されているコマンドである。ＴＰＣは、ホスト機器２が、メモリカード１内のレジスタ回路１３及びデータバッファ回路１４に対してアクセスをする際に用いられる。ＴＰＣは、バスステート信号が、ＢＳ１のタイミングでホスト機器２からメモリカード１へ転送される。以下、このＴＰＣのコード内容と、その具体的な動作内容について説明する。
【００９０】
以下に、ＴＰＣの一例を示す。
READ_LONG_DATA_TPC
READ_SHORT_DATA_TPC
READ_REG_TPC
GET_INT_TPC
WRITE_LONG_DATA_TPC
WRITE_SHORT_DATA_TPC
WRITE_REG_TPC
SET_R_W_REG_ADRS_TPC
SET_CMD_TPC
EX_SET_CMD_TPC
【００９１】
READ_LONG_DATA_TPCは、データバッファ回路１４から５１２バイトのデータを読み出す命令である。すなわち、データバッファ回路１４内に格納されている全データをホスト機器２へ転送する命令である。READ_LONG_DATA_TPCは、リード系の命令である。すなわち、ＢＳ１でREAD_LONG_DATA_TPCがホスト機器２からメモリカード１へ発行されると、ＢＳ３でデータバッファ回路１４内の５１２バイト分データがメモリカード１からホスト機器２へ転送される。
【００９２】
READ_SHORT_DATA_TPCは、ＴＰＣパラメータレジスタで設定されているデータ長のデータを、データバッファ回路１４から読み出す命令である。すなわち、データバッファ回路１４内に格納されている所定量のデータをホスト機器２へ転送する命令である。READ_SHORT_DATA_TPCは、リード系の命令である。すなわち、ＢＳ１でREAD_SHORT_DATA_TPCがホスト機器２からメモリカード１へ発行されると、ＢＳ３でデータバッファ回路１４内の所定バイト分データがメモリカード１からホスト機器２へ転送される。
【００９３】
READ_REG_TPCは、アドレスが設定されているレジスタの値を読み出す命令である。アドレスが設定されているレジスタは、ステータスレジスタ群、パラメータレジスタ群及びエキストラレジスタ群の各内部レジスタである。読み出されるレジスタのアドレス位置（先頭アドレス及びデータ長）は、レジスタアドレスレジスタに格納されている値である。つまり、レジスタ内の値を参照する場合には、予めレジスタアドレスレジスタに対して目的のアドレス位置を書き込んでおく必要がある。このレジスタアドレスレジスタにアドレス位置を書き込むＴＰＣは、SET_R_W_REG_ADRS_TPCである。READ_REG_TPCは、リード系の命令である。すなわち、ＢＳ１でREAD_REG_TPCがホスト機器２からメモリカード１へ発行されると、目的のレジスタ内の所定ビット分データがＢＳ３でメモリカード１からホスト機器２へ転送される。
【００９４】
GET_INT_TPCは、ステータスレジスタ群の内部レジスタであるＩＮＴレジスタの値（８ビット分の値）を読み出す命令である。このGET_INT_TPCは、上記のREAD_REG_TPCのようにレジスタアドレスレジスタに対してアドレス位置を格納することなくＩＮＴレジスタの値を読み出す。GET_INT_TPCは、リード系の命令である。すなわち、ＢＳ１でGET_INT_TPCがホスト機器２からメモリカード１へ発行されると、ＢＳ３でＩＮＴレジスタ内の８ビット分データがメモリカード１からホスト機器２へ転送される。
【００９５】
WRITE_LONG_DATA_TPCは、データバッファ回路１４に対して１２バイトのデータを書き込む命令である。すなわち、データバッファ回路１４の全データを、ホスト機器２からデータバッファ回路１４へ転送する命令である。WRITE_LONG_DATA_TPCは、ライト系の命令である。すなわち、ＢＳ１でWRITE_LONG_DATA_TPCがホスト機器２からメモリカード１へ発行されると、データバッファ回路１４に書き込む５１２バイト分データがＢＳ２でホスト機器２からメモリカード１へ転送される。
【００９６】
WRITE_SHORT_DATA_TPCは、ＴＰＣパラメータレジスタで設定されているデータ長のデータを、データバッファ回路１４に対して書き込む命令である。すなわち、所定量のデータを、ホスト機器２からデータバッファ回路１４内に転送する命令である。WRITE_SHORT_DATA_TPCは、ライト系の命令である。すなわち、ＢＳ１でWRITE_SHORT_DATA_TPCがホスト機器２からメモリカード１へ発行されると、データバッファ回路１４に書き込む所定バイト分データがＢＳ２でホスト機器２からメモリカード１へ転送される。
【００９７】
WRITE_REG_TPCは、アドレスが設定されているレジスタの値を読み出す命令である。アドレスが設定されているレジスタは、ステータスレジスタ群、パラメータレジスタ群及びエキストラレジスタ群の各内部レジスタであるが、ホスト機器２により書き込み可能なのはパラメータレジスタ群及びエキストラレジスタ群である。書き込むレジスタのアドレス位置（先頭アドレス及びデータ長）は、レジスタアドレスレジスタに格納されている値である。つまり、レジスタ内に対して値を書き込む場合には、予めレジスタアドレスレジスタに対して目的のアドレス位置を書き込んでおく必要がある。このレジスタアドレスレジスタにアドレス位置を書き込むＴＰＣは、SET_R_W_REG_ADRS_TPCである。WRITE_REG_TPCは、ライト系の命令である。すなわち、ＢＳ１でWRITE_REG_TPCがホスト機器２からメモリカード１へ発行されると、目的のレジスタ内に書き込むデータがＢＳ２でホスト機器２からメモリカード１へ転送される。
【００９８】
SET_R_W_REG_ADRS_TPCは、READ_REG_TPC,WRITE_REG_TPCでアクセスするレジスタのアドレス位置を、レジスタアドレスレジスタの格納する命令である。SET_R_W_REG_ADRS_TPCは、ライト系の命令である。すなわち、ＢＳ１でSET_R_W_REG_ADRS_TPCがホスト機器２からメモリカード１へ発行されると、レジスタアドレスレジスタに書き込むデータがＢＳ２でホスト機器２からメモリカード１へ転送される。
【００９９】
SET_CMD_TPCは、メモリＩ/Ｆコントローラ１６に対する動作命令であるコントロールコマンドを、コマンドレジスタに格納する命令である。SET_CMD_TPCによりコマンドレジスタ内にコントロールコマンドが格納されると、メモリＩ/Ｆコントローラ１６は、このコントロールコマンドに従った動作制御を行う。動作内容としては、例えば、メモリに対する動作制御、メモリ以外の各ファンクションに対する動作又はデータのセキュリティに関する動作などである。また、コントロールコマンドの動作内容によっては、パラメータレジスタ内に格納されている値を参照して、動作が行われる場合がある。この場合には、SET_CMD_TPCを発行する前のパケットで予め上記のWRITE_REG_TPCを用いて、パラメータレジスタ内の所定の内部レジスタに対して値を書き込んでおく必要がある。SET_CMD_TPCは、ライト系の命令である。すなわち、ＢＳ１でSET_CMD_TPCがホスト機器２からメモリカード１へ発行されると、コマンドレジスタに書き込まれるコントロールコマンドのコードがＢＳ２でホスト機器２からメモリカード１へ転送される。
【０１００】
EX_SET_CMD_TPCは、データカウント/セキュリティパラメータレジスタ及びデータアドレス/レビジョンナンバーレジスタに対してデータを格納すると同時に、コマンドレジスタに対してコントロールコマンドを格納する命令である。EX_SET_CMD_TPCによりコントロールコマンドとしてメモリアクセスコマンドが転送される場合には、データカウント/セキュリティパラメータレジスタには、不揮発性半導体メモリ１７に対してアクセスするデータのデータ量が格納され、データアドレス/レビジョンナンバーレジスタには、不揮発性半導体メモリ１７のデータアドレスが格納されることとなる。また、EX_SET_CMD_TPCによりコントロールコマンドとしてセキュリティコマンドが転送される場合には、データカウント/セキュリティパラメータレジスタには、セキュリティ管理用のパラメータが格納され、データアドレス/レビジョンナンバーレジスタには、セキュリティ管理用のリビジョンナンバが格納されることとなる。このEX_SET_CMD_TPCによってコントロールコマンドを転送した場合には、メモリＩ/Ｆコントローラ１６がそのコントロールコマンドを実行する前に、データカウント/セキュリティパラメータレジスタ及びデータアドレス/レビジョンナンバーレジスタに対して転送データが格納される。
【０１０１】
EX_SET_CMD_TPCは、ライト系の命令である。すなわち、ＢＳ１でEX_SET_CMD_TPCがホスト機器２からメモリカード１へ発行されると、コントロールコマンドのコード等がＢＳ２でホスト機器２からメモリカード１へ転送される。
ここで、EX_SET_CMD_TPCと同一のデータ転送動作は、SET_CMD_TPCを用いても実現できる。しかしながら、パラメータレジスタ群内の内部レジスタに格納されている値を参照して動作制御をするコントロールコマンドを転送する場合、例えば、READ_DATA,READ_INFO,WRITE_DATA,WRITE_INFO等のコントロールコマンドを転送する場合、その参照されるデータを予めパラメータレジスタに転送しておかなければならない。すなわち、SET_CMD_TPCを実行する前に、SET_R_W_REG_ADRS及びWRITE_REG_TPCを転送しておかなければならない。
【０１０２】
これに対して、EX_SET_CMD_TPCを用いた場合には、予めWRITE_REG_TPCを用いてデータカウント/セキュリティパラメータレジスタ及びデータアドレス/レビジョンナンバーレジスタにデータを格納しなくてもよい。つまり、SET_CMD_TPCを用いれば３パケット必要となるデータ転送動作を、EX_SET_CMD_TPCであれば１パケットのみで実現することができる。
【０１０３】
従って、EX_SET_CMD_TPCを用いてコントロールコマンドを転送すれば、SET_R_W_REG_ADRS及びWRITE_REG_TPCを転送するパケットシーケンスを実行しなくてもよく、処理の高速化を図ることができる。
【０１０４】
図１５に、SET_CMD_TPCを実行した場合のホスト機器２からメモリカード１へ転送する具体的な転送データ例を示す。図１６に、EX_SET_CMD_TPCを実行した場合のホスト機器２からメモリカード１へ転送する具体的な転送データ例を示す。この図１５及び図１６に示す転送データは、ＢＳ２時に転送されることとなる。
【０１０５】
SET_CMD_TPCを実行した場合の転送データは、１バイトのコマンドコードと、２バイトのＣＲＣとなる。１バイトのコマンドコードは、メモリＩ/Ｆコントローラ１６に対して実行させるコントロールコマンドを特定するコードである。コマンドコードは、コマンドレジスタに格納される。
【０１０６】
EX_SET_CMD_TPCを実行した場合の転送データは、１バイトのコマンドコードと、２バイトのカウント/セキュリティパラメータデータと、２バイトのアドレス/レビジョンナンバーデータと、２バイトのＣＲＣとなる。カウント/セキュリティパラメータデータは、データカウント/セキュリティパラメータレジスタに格納されるデータである。アドレス/レビジョンナンバーデータは、データアドレス/レビジョンナンバーレジスタに格納されるデータである。
【０１０７】
図１５及び図１６に示すように、SET_CMD_TPCの転送データは、EX_SET_CMD_TPCの転送データの方がデータ長が長くなる。従って、ホスト機器２は、データカウント/セキュリティパラメータレジスタ及びデータアドレス/レビジョンナンバーレジスタを参照せずに実行することができるコマンドコードを転送する場合には、EX_SET_CMD_TPCではなく、SET_CMD_TPCを用いた方がより短いパケットとなる。従って、ＴＰＣのコマンドセットとして、SET_CMD_TPCとEX_ SET_CMD_TPCとを設定しておき、転送するコントロールコマンドに応じて適応的に選択することによって、より処理を高速化することができる。
【０１０８】
コントロールコマンド
つぎに、コントロールコマンドについて説明をする。
【０１０９】
コントロールコマンドは、ホスト機器２から、メモリカード１のメモリI/Fコントローラ１６に対して与えられる動作制御命令である。コントロールコマンドは、ホスト機器２からＴＰＣのSET_CMD_TPC或いはEX_SET_CMD_TPCによりメモリカード１内のコマンドレジスタに格納される。メモリＩ/Ｆコントローラ１６は、コマンドレジスタ内にコントロールコマンドが格納されると、そのコントロールコマンドに対応した動作制御を実行する。そして、その動作制御の実行とともにＩＮＴレジスタ内の各値を適宜更新する。
【０１１０】
コントロールコマンドは、メモリアクセスコマンド、ファンクションコマンド及びセキュリティコマンドの３つの種類に分類される。メモリアクセスコマンドは、メモリカード１上の不揮発性半導体メモリ１７に対してアクセスを行うコマンドである。ファンクションコマンドは、メモリカード１上の各ファンクションに対してアクセスを行うコマンドである。セキュリティコマンドは、著作権保護に必要なセキュリティ機能を実現するためのコマンドである。
【０１１１】
メモリアクセスコマンドには、例えば、不揮発性半導体メモリ１７からデータバッファ回路１４へデータを読み出すコマンド、データバッファ回路１４から不揮発性半導体メモリ１７へデータを書き込むコマンド、不揮発性半導体メモリ１７上のデータを消去するコマンド等がある。
【０１１２】
ファンクションコマンドには、例えば、本メモリカード１を工場出荷状態に戻すフォーマットコマンドやメモリカード１の発振器１８の動作を停止させるスリープコマンド等がある。
【０１１３】
セキュリティコマンドには、例えば、本メモリカード１の固有のＩＤを読み出すコマンド、コンテンツ鍵にかかっている鍵に対する操作を行うコマンド、乱数を発生するコマンド等がある。
【０１１４】
ここでは、メモリアクセスコマンドの一例を図１７に示す。
【０１１５】
メモリアクセスコマンドには、図１７に示すように、READ_DATA, WRITE_DATA, READ_INFO, READ_ATRB, STOP, ERASE等がある。
【０１１６】
READ_DATAは、不揮発性半導体メモリ１７のユーザエリアの指定アドレスからデータを連続的に、読み出していく命令である。メモリＩ/Ｆコントローラ１６は、このREAD_DATAが与えられると、データアドレス/レビジョンナンバーレジスタに格納されているアドレスを参照し、不揮発性半導体メモリ１７上のこのアドレスに対してアクセスを行い、このアドレスからデータを読み出していく。読み出したデータは、一旦データバッファ回路１４へ転送する。メモリＩ/Ｆコントローラ１６は、データバッファ回路１４の一杯となると、すなわち、５１２バイト分データを読み出すと、ＩＮＴレジスタのＢＲＥＱ/ＰＲＧビットを有効（１）とし、ホスト機器２に対して転送要求の割り込みを発行する。そして、ホスト機器２によってデータバッファ回路１４内のデータが読み出されると、続くデータを不揮発性半導体メモリ１７からデータバッファ回路１４へ転送していく。メモリＩ/Ｆコントローラ１６は、データカウント/セキュリティパラメータレジスタに格納されているデータ数分データを読み出すまで、以上の処理を繰り返す。そして、エラーが発生せずに最後までデータを読み出すと、ＩＮＴレジスタのＣＭＤビットを有効（１）とし、処理を終了する。また、処理の途中でエラーが発生した場合には、ＩＮＴレジスタのＣＭＤビットを有効（１）とするとともに、ＥＲＲビットを有効（１）として処理を終了する。
【０１１７】
WRITE_DATAは、データバッファ回路１４に格納されているデータを、不揮発性半導体メモリ１７のユーザエリアの指定アドレスからデータを連続的に記録していく命令である。メモリＩ/Ｆコントローラ１６は、WRITE_DATAが与えられると、データアドレス/レビジョンナンバーレジスタに格納されているアドレスを参照し、不揮発性半導体メモリ１７上のこのアドレスに対してアクセスを行い、このアドレスからデータを書き込んでいく。書き込むデータは、データバッファ回路１４に格納されているデータである。メモリＩ/Ｆコントローラ１６は、データバッファ回路１４内が空となると、すなわち、５１２バイト分データを書き込むと、ＩＮＴレジスタのＢＲＥＱ/ＰＲＧビットを有効（１）とし、ホスト機器２に対して転送要求の割り込みを発行する。そして、ホスト機器２によってデータバッファ回路１４内にデータが書き込まれると、続くデータをデータバッファ回路１４から不揮発性半導体メモリ１７へ書き込んでいく。メモリＩ/Ｆコントローラ１６は、データカウント/セキュリティパラメータレジスタに格納されているデータ数分データを書き込むまで、以上の処理を繰り返す。そして、エラーが発生せずにデータを最後まで書き込むと、ＩＮＴレジスタのＣＭＤビットを有効（１）とし、処理を終了する。また、処理の途中でエラーが発生した場合には、ＩＮＴレジスタのＣＭＤビットを有効（１）とするとともに、ＥＲＲビットを有効（１）として処理を終了する。
【０１１８】
READ_INFOは、不揮発性半導体メモリ１７のシステムエリアのインフォメーションブックエリアの指定アドレスからデータを連続的に、読み出していく命令である。メモリＩ/Ｆコントローラ１６の処理手順は、READ_DATAと同一である。
【０１１９】
WRITE_INFOは、不揮発性半導体メモリ１７のシステムエリアのインフォメーションブックエリアの指定アドレスに対してデータを連続的に、書き込んでいく命令である。メモリＩ/Ｆコントローラ１６の処理手順は、WRITE_DATAと同一である。
【０１２０】
READ_ATRBは、不揮発性半導体メモリ１７からアトリビュート情報を読み出す命令である。メモリＩ/Ｆコントローラ１６は、このREAD_ATRBが与えられると、不揮発性半導体メモリ１７内のアトリビュート情報を読み出して、データバッファ回路１４に転送する。
【０１２１】
STOPは、READ_DATA, WRITE_DATA,READ_INFO, WRITE_INFO, READ_ATRBの処理の実行を途中で終了する命令である。メモリＩ/Ｆコントローラ１６は、STOPが与えられると、READ_DATA, WRITE_DATA,READ_INFO, WRITE_INFO, READ_ATRBの実行処理を停止する。
【０１２２】
ERASEは、ユーザエリアの指定アドレスからデータを消去する命令である。メモリＩ/Ｆコントローラ１６は、ERASEが与えられると、データアドレス/レビジョンナンバーレジスタに格納されているアドレスを参照して、このアドレスに示された格納位置から、データカウント/セキュリティパラメータレジスタに格納されているデータ数分、不揮発性半導体メモリ１７上のデータを消去する。
【０１２３】
変形例
以上本発明の実施の形態として、本発明を適用したリムーバルなメモリカード、並びに、このメモリカードを外部記憶メディアとして用いるホスト機器について説明をした。しかしながら、本発明は、このようなメモリカードに適用することを限定するものではない。例えば、本発明を、ホスト機器の外部接続装置として、カメラ装置を適用してもよい。この場合、メモリＩ/Ｆコントローラ１６は、カメラ装置の動作制御を行うこととなり、また、コントロールコマンドにも、カメラ制御用のコマンドがセットされることとなる。
【０１２４】
【発明の効果】
本発明では、バスステート信号のステートが外部接続機器からホスト機器への割り込みを受け付けるステートとされているときに、上記ホスト機器から上記外部接続機器のコントローラへ与えられた動作制御コマンドに基づき発生する割り込み要因の内容を割り込み要因毎に示す情報を各ビットに割り当てたパラレルデータを、上記外部接続機器から上記ホスト機器へ与える割り込み信号として、データバスを介して転送する。
【０１２５】
このことにより、本発明では、割り込み信号を参照することによって、外部接続機器の発生している割り込み要因をホスト機器が判断することができる。そのため、ホスト機器は、割り込み信号を受信したのちに外部接続機器と通信して割り込み要因を確認することなく、すぐにその割り込み要因に応じた対応を行うことが可能となる。従って、本発明では、外部接続機器側に割り込み要求があった場合にデータ転送シーケンスを短縮することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態のホスト機器及びメモリカードの外観斜視図である。
【図２】メモリカードを表面側から見た斜視図である。
【図３】メモリカードを裏面側から見た斜視図である。
【図４】メモリカードの内部ブロック構成図である。
【図５】メモリカードとホスト機器との間のデータ伝送をするためのインタフェース機能の構成図である。
【図６】メモリカードとホスト機器との間に転送される信号について説明をするための図である。
【図７】各ステートでの通信内容を説明するための図である。
【図８】ライト系パケットの転送時のパラレルデータ、バスステート及びクロックのタイミングチャートである。
【図９】リード系パケットの転送時のパラレルデータ、バスステート及びクロックのタイミングチャートである。
【図１０】ライト系パケット及びリード系パケットの転送時のビジー信号及びレディー信号のタイミングチャートである。
【図１１】ステータスレジスタ群を構成する内部レジスタを示す図である。
【図１２】ＩＮＴレジスタ内のビット内容を示す図である。
【図１３】ＩＮＴレジスタ内の各ビット値に対応するメモリカードの動作状態を示す図である。
【図１４】パラメータレジスタ群を構成する内部レジスタを示す図である。
【図１５】  SET_CMD_TPC時の転送データを示す図である。
【図１６】  EX_SET_CMD_TPC時の転送データを示す図である。
【図１７】コントロールコマンドの一例を示す図である。
【符号の説明】
１  メモリカード、２  ホスト機器、１２  パラレルインタフェース回路、１３  レジスタ回路、１４  データバッファ回路、１６  メモリＩ/Ｆコントローラ、１７  不揮発性半導体メモリ
【図１】
0004178809.tif 000002
【図２】
0004178809.tif 000003
【図３】
0004178809.tif 000004
【図４】
0004178809.tif 000005
【図５】
0004178809.tif 000006
【図６】
0004178809.tif 000007
【図７】
0004178809.tif 000008
【図８】
0004178809.tif 000009
【図９】
0004178809.tif 000010
【図１０】
0004178809.tif 000011
【図１１】
0004178809.tif 000012
【図１２】
0004178809.tif 000013
【図１３】
0004178809.tif 000014
【図１４】
0004178809.tif 000015
【図１５】
0004178809.tif 000016
【図１６】
0004178809.tif 000017
【図１７】
0004178809.tif 000018