(57)【要約】【課題】ホストとの間のバスを共用する二以上の入出力装置の複合であり、それぞれの装置の単体と同様な一つの装置としてホストにより良好に認識される入出力装置を提供する。【解決手段】複合Ｉ／Ｏカード１０はメモリユニット１ＡとＩ／Ｏユニット２Ａとを含む。それぞれのユニットの入出力部１１Ａと２１Ａとは共通のバス３でホストＨへ接続される。ホストＨはコマンド線ＣＭＤを通し、両方の入出力部のコマンド解読部１３と２３とへコマンドを送出する。それぞれのコマンド解読部はそのコマンドに対しレスポンスを設定する。状態通知部１５Ａと２５Ａとは自己の属する入出力部の状態を他の入出力部へ通知する。通知された状態に基づき、レスポンス抑制部１６Ａと２６Ａとは自己の属する入出力部のコマンド解読部１３と２３とによるレスポンスを抑制し、それらのレスポンスの適切な一方だけをホストＨへ送出する。【選択図】　　　　図１
2004038643.tif 000002
【特許請求の範囲】
【請求項１】
（Ａ）　ホストからのコマンドの内、第一のコマンド群に属するものを、第一の機能部へ中継するための第一の入出力部；
（Ｂ）　前記ホストからのコマンドの内、第二のコマンド群に属するものを、第二の機能部へ中継するための第二の入出力部；及び、
（Ｃ）　前記第一の入出力部と前記第二の入出力部とをそれぞれ前記ホストへ接続し、それらの入出力部により共用されるバス；
を有する複合入出力装置であり、
（Ｄ）　前記第一の入出力部と前記第二の入出力部とが前記ホストにより共通のアドレスでアクセスされ；
（Ｅ）　前記第一の入出力部が、前記第二の入出力部の状態に応じ、前記コマンドに対するレスポンスを送出し、又は抑制し；
（Ｆ）　前記第二の入出力部が、前記第一の入出力部の状態に応じ、前記コマンドに対するレスポンスを送出し、又は抑制する；
複合入出力装置。
【請求項２】
前記第一の入出力部と前記第二の入出力部とのそれぞれが、（Ａ）　前記ホストからのコマンドを解読し、そのコマンドに対するレスポンスを前記ホストへ送出するためのコマンド解読部；
（Ｂ）　自己の属する前記入出力部の状態を他の前記入出力部へ通知するための状態通知部；及び、
（Ｃ）　前記他の入出力部の前記状態通知部から入力された前記他の入出力部の状態に応じ、前記自己の属する入出力部の前記コマンド解読部による前記レスポンスを抑制するためのレスポンス抑制部；
を有する、請求項１記載の複合入出力装置。
【請求項３】
前記第一の入出力部と前記第二の入出力部とのそれぞれが、（Ａ）　前記ホストからのコマンドを解読し、そのコマンドに対するレスポンスを前記ホストへ送出するためのコマンド解読部；
（Ｂ）　前記コマンドの履歴を記憶し、その履歴に基づき他の前記入出力部の状態を推測するための状態推測部；及び、
（Ｃ）　前記状態推測部により推測された前記他の入出力部の状態に応じ、自己の前記コマンド解読部による前記レスポンスを抑制するためのレスポンス抑制部；
を有する、請求項１記載の複合入出力装置。
【請求項４】
（Ａ）　前記第一のコマンド群に属するコマンドに対し、前記第一の入出力部がレスポンスを送出し、前記第二の入出力部がレスポンスを抑制し；
（Ｂ）　前記第二のコマンド群に属するコマンドに対し、前記第一の入出力部がレスポンスを抑制し、前記第二の入出力部がレスポンスを送出する；
請求項１記載の複合入出力装置。
【請求項５】
前記第一のコマンド群と前記第二のコマンド群との間の共通コマンドに対し、前記第一の入出力部がレスポンスを送出し、前記第二の入出力部がレスポンスを抑制する、請求項１記載の複合入出力装置。
【請求項６】
前記入出力部のいずれか一方がアクティブでないとき、他方の前記入出力部が前記コマンドに対しレスポンスを送出する、請求項１記載の複合入出力装置。
【請求項７】
前記第一の入出力部と前記第二の入出力部とのそれぞれが、（Ａ）　前記共通のアドレスを含む共通の認識情報を記憶するためのレジスタ；及び、
（Ｂ）　前記レジスタの更新時、その更新内容を他の前記入出力部へ通知するためのレジスタ更新通知部；
を含む、請求項１記載の複合入出力装置。
【請求項８】
前記第一の入出力部と前記第二の入出力部とのそれぞれが、（Ａ）　前記共通のアドレスを含む共通の認識情報を記憶するためのレジスタ；及び、
（Ｂ）　他の前記入出力部の前記レスポンスを監視し、そのレスポンスに基づき、前記他の入出力部での前記レジスタの内容を推定するためのレジスタ推定部；
を含む、請求項１記載の複合入出力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、外部の情報処理機器との間でデータ通信を行うための入出力装置に関し、特に、その情報処理機器との間のバスを共用する二以上の入出力装置の複合に関する。
【０００２】
【従来の技術】
情報技術の飛躍的進歩及び爆発的普及により、多種多様な情報処理機器が相互に接続され、様々なデータを交換できる。それらのデータ通信を担う入出力装置（インタフェース）には、下位互換性を含め、多種多様な情報処理機器についての汎用性が要求される。その上、情報処理機器全体に対する小型軽量化の要請に伴い、入出力装置自体に対しても小型軽量化が求められる。
【０００３】
従来の入出力装置の中では特に、カード型のものが近年多用される。このカード型入出力装置は、特定のインタフェース内蔵の数ｃｍ角の小カードである。カード型入出力装置は情報処理機器（ホスト）に設けられた専用スロットに差し込まれ、ホストとデータを交換する。そのスロットを様々な情報処理機器へ組み込むことで、上記のカード型入出力装置は多種多様な情報処理機器に対する汎用性を獲得する。
【０００４】
上記のカード型入出力装置の種類にはメモリカードとＩ／Ｏカードとがある。メモリカードは、例えばフラッシュメモリ等の半導体メモリを内部に含むカード型記録媒体である。複数のホストが同じメモリカードを共用し、相互のデータ交換を実現する。
図８は、従来のメモリカード１００とホストＨとの間でのデータ交換を示すブロック図である。
このメモリカード１００は、少なくとも一本のデータ線ＤＡＴ、クロック線ＣＬＫ、電源線ＶＤＤ、グラウンド線ＶＳＳ、及びコマンド線ＣＭＤを含むバス１０３で、ホストＨと接続される。
メモリカード１００はホストＨから、電源線ＶＤＤとグラウンド線ＶＳＳとを通し、電力を供給される。
【０００５】
入出力部（ホストインタフェースともいう）１０１は、コマンド線ＣＭＤを通しホストＨからコマンドを受信し解読する。その解読されたコマンドの内容に応じ、レスポンスをホストＨへ、コマンド線ＣＭＤを通し返信する。
コマンドがフラッシュメモリに対する読み出し命令であるとき、入出力部１０１はメモリ部１０２に対し、その内部のフラッシュメモリからデータを読み出すように指示する。読み出されたデータはデータ線ＤＡＴを通し、ホストＨへ転送される。そのとき、入出力部１０１はデータ転送を同期通信で行う。すなわち、クロック線ＣＬＫを通しホストＨから転送されたクロックと同期し、データを転送する。そのとき、データは、データ線ＤＡＴのいずれかを通しシリアルに、又は全データ線ＤＡＴを通しパラレルに転送される。
【０００６】
コマンドがフラッシュメモリに対する書き込み命令であるとき、入出力部１０１はデータ線ＤＡＴを通し、その書き込み対象データを受信する。そのとき、上記の読み出し時と同様、データ転送はクロック線ＣＬＫからのクロックと同期し、シリアルに又はパラレルに転送される。入出力部１０１により受信された書き込み対象データはメモリ部１０２へ転送される。メモリ部１０２はそのデータを内部のフラッシュメモリへ記憶する。
【０００７】
Ｉ／Ｏカードは、ホストと、そのホストとは別の情報処理機器又はネットワークとの間を接続する。例えば、Ｉ／Ｏカードはホストを携帯電話又は内部の無線通信部へ接続する。それにより、ホストは、携帯電話回線網又は無線ＬＡＮを通し、他の情報処理機器との間でデータ交換を実現する。その他に、Ｉ／Ｏカードはホストをディジタルカメラへ接続する。それにより、ホストはディジタルカメラにより撮像された画像データを取り込み、記録し又は編集できる。
一枚のＩ／Ｏカードを通し、無線通信部、携帯電話、又はディジタルカメラ等の様々な機能部へ接続されることで、ホストは多種多様な機能を獲得できる。
【０００８】
図９は、従来のＩ／Ｏカード２００とホストＨとの間でのデータ交換を示すブロック図である。
Ｉ／Ｏカード２００は、上記のメモリカード１００と同様なバス１０３でホストＨと接続される。すなわち、バス１０３は、データ線ＤＡＴ、クロック線ＣＬＫ、電源線ＶＤＤ、グラウンド線ＶＳＳ、及びコマンド線ＣＭＤを含む。
Ｉ／Ｏカード２００はメモリカード１００と同様、電源線ＶＤＤとグラウンド線ＶＳＳとを通し、ホストＨから電力を供給される。
【０００９】
Ｉ／Ｏカード２００は機能部として、例えば無線通信部２０２Ａと撮像部２０２Ｂとを含む。無線通信部２０２Ａは、例えば外部の無線ＬＡＮに接続し、データを交換する。撮像部２０２Ｂは、例えば電荷結合素子（ＣＣＤ）等の撮像素子を含み、外部から取り入れた光学像を画像信号へ変換する。
【００１０】
入出力部２０１は、コマンド線ＣＭＤを通し、ホストＨからコマンドを受信し解読する。その解読されたコマンドの内容に応じ、レスポンスをホストＨへ、コマンド線ＣＭＤを通し返信する。
コマンドが、無線通信部２０２Ａ又は撮像部２０２Ｂに対するデータ転送命令であるとき、入出力部２０１はそれぞれのモジュールからデータを読み出す。読み出されたデータはデータ線ＤＡＴを通し、ホストＨへ転送される。そのとき、入出力部２０１によるデータ転送は、クロック線ＣＬＫを通しホストＨから転送されたクロックに従い同期通信で行われる。データは、データ線ＤＡＴのいずれかを通しシリアルに、又は全データ線ＤＡＴを通しパラレルに転送される。
【００１１】
コマンドが無線通信部２０２Ａに対するデータ送信命令であるとき、入出力部２０１はデータ線ＤＡＴを通し、送信対象データをホストＨから受信する。そのとき、上記の読み出し時と同様、データ転送はクロック線ＣＬＫからのクロックと同期し、シリアルに又はパラレルに転送される。入出力部２０１により受信されたデータは無線通信部２０２Ａへ転送され、更に外部へ無線で送信される。
【００１２】
ホストは、例えば上記のカード型入出力装置用スロットを複数有するとき、それぞれのスロットへ挿入されたカード型入出力装置と一対一に接続し認識する。すなわち、バスのような物理的な接続の特定により、それぞれのカード型入出力装置を物理的に特定する。更に、そのような物理的な特定を通し、それぞれのカード型入出力装置に対し、異なるカードアドレスを割り当てる。その割り当て後は、ホストは、通信目標のカード型入出力装置、及びそれとの接続用のバスを、カードアドレスにより論理的に特定できる。
【００１３】
ホストによる従来のカード型入出力装置に対する認識は、具体的には次のように実行される。
ホストは従来のカード型入出力装置を、その初期設定を通し認識する。カード型入出力装置の初期設定は、ホストからの電源投入又はリセット命令の発行により開始される。初期設定時、カード型入出力装置の入出力部は数種類の状態に遷移する。
【００１４】
ここで、入出力部が特定のコマンドに応じ所定の動作を行うか否かで、その入出力部の状態は区別される。特に、入出力部により受理され得るコマンドは状態ごとに異なる。
入出力部は、その状態で受理し得るコマンドを正常に受信したとき、コマンド受信成功を示すレスポンス（ＡＣＫ）をホストＨへ返信する。更に、そのコマンドに従い所定の処理を実行し、又はそのコマンドの内容を機能部へ中継する。
入出力部は、コマンドの受信に失敗したとき、又はその状態では受理できないコマンドを正常に受信したとき、コマンド受信失敗を示すレスポンス（ＮＡＫ）をホストへ返信する。その他に、入出力部はそのとき、何のレスポンスも送出しなくても良い。ホストはレスポンスの待ち時間を制限し、その待ち時間内にレスポンスを受信しないときは、入出力部によるコマンド受信の失敗、又は入出力部への無効コマンドの発行と判断する。
【００１５】
入出力部の状態はコマンドに応じ一般に遷移する。入出力部の状態には、メモリカード１００とＩ／Ｏカード２００とで共通するもの及び異なるものがある。それと符合し、ホストＨのコマンドには、両カードで共通するものと異なるものとがある。
メモリカード１００とＩ／Ｏカード２００とは、ホストＨとの間のバス１０３等の物理的な接続部で共通する（図８、９参照）。その構造上の共通性から容易に類推されるとおり、ホストＨは両カードに対し、実質上共通の初期設定を行う。
【００１６】
図３は、メモリカード１００又はＩ／Ｏカード２００等、従来のカード型入出力装置の入出力部での初期設定時の状態遷移を示す図である。
初期設定時、入出力部は以下のように状態を遷移させる。
入出力部は、ホストＨから電源を投入されるとき（ステップＳ０）、又はホストＨからリセット命令を受信するとき（ステップＣ０）、アイドル状態ＳＴ１へ遷移する。アイドル状態ＳＴ１の入出力部は、初期化命令を含む所定のコマンド群に対してのみレスポンスを送出し、他のコマンドに対してはレスポンスを送出しない。
【００１７】
入出力部は、ホストＨから初期化命令を受信するとき（ステップＣ１）、接続された機能部へ初期化を指示すると共に、自分自身を初期化する（ステップＳ１）。
ここで、ホストＨは所定のコマンドにより、入出力部をアイドル状態ＳＴ１からインアクティブ状態ＳＴ５へ遷移させても良い。インアクティブ状態ＳＴ５の入出力部はホストＨからの全てのコマンドに対しレスポンスを送出しない。
【００１８】
初期化完了時、入出力部はスタンバイ状態ＳＴ２へ遷移する。スタンバイ状態ＳＴ２の入出力部は、ホストＨからカードアドレス送出命令を受信する（ステップＣ２）ごとにカードアドレスを更新し、ホストＨへ返信する。
ここで、カードアドレスは、例えば入出力部内のレジスタに保持される。入出力部はカードアドレスを、例えば一定のステップずつインクリメントし、又は所定の範囲内でランダムに更新する。
ホストＨは、返信されたカードアドレスを、他のカード型入出力装置（もし接続されていれば）に対し既に登録されたカードアドレスと比較する。それらのカードアドレスの間に重複がないとき、ホストＨは、返信されたカードアドレスをその入出力部のものとして設定し、登録する。
カードアドレスの設定により、一つのカードに対する初期設定が終了する。
【００１９】
ホストＨは、初期設定を終えたカード型入出力装置の中からデータ転送対象を一つ選択し、カード選択命令を発行する。ここで、カード選択命令は宛先アドレスとして、登録済のカードアドレスを含む。初期設定を終えたスタンバイ状態ＳＴ２の入出力部は、カード選択命令の受信時（ステップＣ３）、その宛先アドレスと自身のカードアドレスとを比較する。両アドレスが一致するとき、入出力部はデータ転送可能状態ＳＴ３へ遷移する。
データ転送可能状態ＳＴ３の入出力部では、ホストＨの読み出し命令又は書き込み命令（以下、Ｒ／Ｗ命令と略す）の受信が可能である。その入出力部は、Ｒ／Ｗ命令の受信（ステップＣ４）により、ホストＨとの間でデータ転送を開始する。
【００２０】
図１０は従来のカード型入出力装置に対する初期設定のフローチャートである。図１０の（ａ）はホストＨについてのフローチャートであり、（ｂ）はカード型入出力装置の入出力部についてのフローチャートである。
ホストＨは入出力部へ電源を投入し（ステップＳ０）、又はリセット命令を発行し（ステップＣ０）、初期設定を開始する。
電源投入時、又はリセット命令の受信時、入出力部はリセットされ、アイドル状態ＳＴ１へ遷移する。
【００２１】
ホストＨは入出力部へ初期化命令を発行し、その入出力部、及びそれに接続された機能部の初期化を指示する（ステップＳ１）。その初期化命令の受信時（ステップＣ１）、入出力部は初期化を開始する（ステップＳ１）。初期化処理の間、入出力部はビジーフラグをオンする。
入出力部による初期化処理の間、ホストＨはポーリングにより、入出力部のビジーフラグを監視する（ステップＳ２）。そのビジーフラグがオンである間、ホストＨは新たなコマンドを発行しない。
入出力部は初期化完了時、ビジーフラグをオフする（ステップＳ３）。それにより、入出力部はスタンバイ状態ＳＴ２へ遷移する。
【００２２】
スタンバイ状態ＳＴ２の入出力部は、ホストＨからのカードアドレス送出命令、又はカード選択命令を待つ（ステップＳ４）。ここで、カードアドレス送出命令とカード選択命令とは、メモリカード１００とＩ／Ｏカード２００とで共通のコマンドである。それらのコマンド以外のコマンドが受信されるとき、又はコマンドの受信に失敗したとき、入出力部はホストＨへＮＡＫを送出する（ステップＳ５）。
【００２３】
ホストＨはスタンバイ状態ＳＴ２の入出力部へ、カードアドレス送出命令を発行する（ステップＳ６）。
カードアドレス送出命令を正常に受信したとき、入出力部はカードアドレスを更新する（ステップＳ７）。更に、更新されたカードアドレスを、カードアドレス送出命令に対するＡＣＫ内のデータとしてホストＨへ送出する（ステップＳ８）。その送出後、入出力部はホストＨからのコマンドを待つ（ステップＳ４）。
【００２４】
ホストＨは、カードアドレス送出命令に対するレスポンスとして、カードアドレスを受信する。そのカードアドレスを、他のカード型入出力装置に対し既に設定され、登録されたカードアドレスと比較する（ステップＳ９）。
それらのカードアドレスの間で重複があるとき、ホストＨは処理をステップＳ６へ戻し、カードアドレス送出命令を再び発行する。それにより、入出力部は上記のステップＳ４、Ｓ７、及びＳ８を順に繰り返し、新たなカードアドレスをホストＨへ返信する。
【００２５】
入出力部により送出されたカードアドレスとホストＨへ登録済のカードアドレスとの間で重複がなくなるまで、ホストＨはカードアドレス送出命令を繰り返し発行し続ける。それらのカードアドレスの間に重複がなくなったとき、ホストＨは、入出力部から送出されたカードアドレスをそのカード型入出力装置のものとして設定し、登録する（ステップＳ１０）。こうして、カード型入出力装置に対しカードアドレスがユニークに設定され、初期設定が終了する。
ホストＨは、初期設定を終えたカード型入出力装置の中からデータ転送対象を一つ選択し、カード選択命令を発行する。ステップＳ４でそのカード選択命令の受信が識別されるとき、入出力部はデータ転送可能状態ＳＴ３へ遷移する。
【００２６】
【発明が解決しようとする課題】
メモリカード１００とＩ／Ｏカード２００とは、ホストＨとの間のバス１０３等の接続部で共通する。従って、それらの共通部分について単一の装置を共用できれば、メモリカード１００とＩ／Ｏカード２００との両方の機能を一枚のカード内に収め得る。そのように両機能を複合したカード型入出力装置（以下、複合Ｉ／Ｏカードという）が実現されれば、ホストは従来のスロットをそのまま利用し、メモリカードとＩ／Ｏカードとの両機能を同時に利用できる。
【００２７】
図１１は、複合Ｉ／Ｏカード３００の内部構成の一例を示すブロック図である。この複合Ｉ／Ｏカード３００はメモリユニット３０１とＩ／Ｏユニット３０２とを有する。メモリユニット３０１は、従来のメモリカード１００と同様な構成を含み、そのカードに対するコマンドと同じコマンドで制御される。Ｉ／Ｏユニット３０２は、従来のＩ／Ｏカード２００と同様な構成を含み、そのカードに対するコマンドと同じコマンドで制御される。図１１では、それらの同様な構成に対し、図８及び図９に示される符号と同じ符号が付される。
【００２８】
上記の複合Ｉ／Ｏカード３００では、メモリユニット３０１とＩ／Ｏユニット３０２とが同じコマンド線ＣＭＤへ実質上単純に結線される。従って、ホストＨからの一つのコマンドが両ユニットの入出力部１０１と２０１とにより、実質上同時に受信される。それぞれの入出力部は互いに独立して同じコマンドを解読する。
例えば、メモリカード１００とＩ／Ｏカード２００との共通コマンドが正常に受信されるとき、二つの入出力部１０１と２０１とはそれぞれの状態に応じたレスポンスを返信する。
その他に、例えば、メモリカード１００専用コマンドが正常に受信されるとき、メモリユニット３０１の入出力部１０１はＡＣＫを返信し、Ｉ／Ｏユニット３０２の入出力部２０１はＮＡＫを返信する。
【００２９】
複合Ｉ／Ｏカード３００とホストＨとの間でのコマンド／レスポンス通信は、クロック線ＣＬＫ上のクロックと同期して行われる。従って、二つの入出力部が一つのコマンドに対し同時にレスポンスを送出するとき、それらのレスポンスは共通のコマンド線ＣＭＤ上で互いに衝突し、ワイヤードＯＲ（Ｗｉｒｅｄ−ＯＲ）を通した一つのレスポンスとしてホストＨへ通知される。ホストＨはその一つのレスポンスから、メモリユニット３０１とＩ／Ｏユニット３０２とのそれぞれのレスポンスを解読しなければならなかった。すなわち、ホストＨは、複合Ｉ／Ｏカード３００のレスポンスに対し、従来とは異なる処理を要した。その結果、従来のスロットが、複合Ｉ／Ｏカード３００に対する上位互換性を持ち得なかった。
【００３０】
上記の複合Ｉ／Ｏカード３００では、メモリユニット３０１とＩ／Ｏユニット３０２との間でのレスポンスについての競合の他に、次のような問題があった。
複合Ｉ／Ｏカード３００は、従来のメモリカード１００とＩ／Ｏカード２００と同様なバス１０３でのみホストＨと接続される。一方、ホストＨは、従来のカード型入出力装置に対する初期設定を、バス１０３ごとに行う。従って、ホストＨは複合Ｉ／Ｏカード３００に対しても、メモリカード１００とＩ／Ｏカード２００と同様な一枚のカード型入出力装置としての認識を試みる。
【００３１】
ホストＨが複合Ｉ／Ｏカード３００に対し従来と同様な初期設定を行うとき、メモリユニット３０１とＩ／Ｏユニット３０２との間でレスポンスについての競合が上記のように生じる。その競合を回避するには、例えば、いずれかの一方のユニットの入出力部を停止させれば良い。
ここで、Ｉ／Ｏユニット３０２を停止させるときを想定する。そのとき、ホストＨはメモリユニット３０１に対し、従来と同様な初期設定を行う。その結果、メモリユニット３０１はホストＨにより認識される。特に、メモリユニット３０１が、バス１０３によりホストＨへ接続されたカード型入出力装置として、カードアドレスを設定される。従って、Ｉ／Ｏユニット３０２がホストＨからのアクセスを識別するには、メモリユニット３０１に対し設定されたカードアドレス等の認識情報を、自身のレジスタに保持しなければならない。
しかし、従来のカード型入出力装置は、他のカード型入出力装置とカードアドレス等の認識情報を共有するための手段を持たなかった。従って、従来の機能では両ユニットが認識情報を共有できなかった。
【００３２】
本発明は、ホストとの間のバスを共用する二以上の入出力装置の複合であり、それぞれの装置の単体と同様な一つの装置としてホストにより良好に認識される入出力装置、の提供を目的とする。
【００３３】
【課題を解決するための手段】
本発明による複合入出力装置は、
（Ａ）　ホストからのコマンドの内、第一のコマンド群に属するものを、第一の機能部へ中継するための第一の入出力部；
（Ｂ）　ホストからのコマンドの内、第二のコマンド群に属するものを、第二の機能部へ中継するための第二の入出力部；及び、
（Ｃ）　第一の入出力部と第二の入出力部とをそれぞれホストへ接続し、それらの入出力部により共用されるバス；
を有する。その複合入出力装置では、
（Ｄ）　第一の入出力部と第二の入出力部とがホストにより共通のアドレスでアクセスされ；
（Ｅ）　第一の入出力部が、第二の入出力部の状態に応じ、コマンドに対するレスポンスを送出し、又は抑制し；
（Ｆ）　第二の入出力部が、第一の入出力部の状態に応じ、コマンドに対するレスポンスを送出し、又は抑制する。
【００３４】
ここで、入出力部が特定のコマンドに対し所定の動作を行い又は行わないことで、入出力部の状態は区別される。特に、入出力部により受理され得るコマンドは状態ごとに異なる。
入出力部は、その状態で受理し得るコマンドを正常に受信したとき、ＡＣＫをホストへ返信する。更に、そのコマンドに従い所定の処理を実行し、又はそのコマンドの内容を機能部へ中継する。
入出力部は、コマンドの受信に失敗したとき、又はその状態では受理できないコマンドを受信したとき、ＮＡＫをホストへ返信する。
このように、入出力部は一つのコマンドに対しレスポンスを、その状態に応じ決定する。
【００３５】
上記の複合入出力装置のように二つの入出力部を含む複合入出力装置では、それぞれの入出力部の状態が一般に異なるので、一つのコマンドに対しそれぞれの入出力部で決定されるレスポンスが一般に異なる。
上記の複合入出力装置では、入出力部のそれぞれが更に、他の入出力部の状態に応じ、レスポンスを送出し、又は抑制する。それにより、二つの入出力部が異なるレスポンスを同時に送出することが回避され、それらのレスポンス同士がバス上で衝突しない。こうして、上記の複合入出力装置は、第一の入出力部又は第二の入出力部のいずれか一方だけを含む入出力装置の単体と同様な一つの入出力装置として、ホストにより良好に認識される。
【００３６】
上記の複合入出力装置では第一の入出力部と第二の入出力部とのそれぞれが、（Ａ）　ホストからのコマンドを解読し、そのコマンドに対するレスポンスをホストへ送出するためのコマンド解読部；
（Ｂ）　自己の属する入出力部の状態を他の入出力部へ通知するための状態通知部；及び、
（Ｃ）　他の入出力部の状態通知部から入力された他の入出力部の状態に応じ、自己の属する入出力部のコマンド解読部よるレスポンスを抑制するためのレスポンス抑制部；
を有しても良い。それにより、二つの入出力部が相互の状態を直接監視し、正確に把握できる。その結果、それぞれの入出力部が自己のレスポンスを返信すべきか、又は抑制すべきかを、適切に判断できる。
【００３７】
上記の他に、第一の入出力部と第二の入出力部とのそれぞれが、
（Ａ）　上記のコマンド解読部；
（Ｂ）　コマンドの履歴を記憶し、その履歴に基づき他の入出力部の状態を推測するための状態推測部；及び、
（Ｃ）　状態推測部により推測された他の入出力部の状態に応じ、自己のコマンド解読部によるレスポンスを抑制するためのレスポンス抑制部；
を有しても良い。ここで、入出力部の状態はコマンドに従い一般に遷移する。更に、例えば電源投入等によりリセットされた時の状態は、通常単一である。従って、リセット以降の状態は、コマンドの履歴から容易に推測される。
二つの入出力部は相互の状態を推測し、正確に把握できる。その結果、それぞれの入出力部が、自己のレスポンスを返信すべきか、又は抑制すべきかを、適切に判断できる。
【００３８】
上記の複合入出力装置では、
（Ａ）　第一のコマンド群に属するコマンドに対し、第一の入出力部がレスポンスを送出し、第二の入出力部がレスポンスを抑制し；
（Ｂ）　第二のコマンド群に属するコマンドに対し、第一の入出力部がレスポンスを抑制し、第二の入出力部がレスポンスを送出しても良い。それにより、レスポンス同士の衝突が回避され、コマンドに対し適切なレスポンスがホストへ返信される。
【００３９】
上記の複合入出力装置では更に、第一のコマンド群と第二のコマンド群との間の共通コマンドに対し、第一の入出力部がレスポンスを送出し、第二の入出力部がレスポンスを抑制しても良い。
二つの入出力部の状態は一般に異なるので、同じコマンドに対しそれぞれのレスポンスは一般に異なる。しかし、二つの入出力部が、例えば同時にリセットされるとき等では、同時に共通の状態であり得る。そのとき、共通コマンドに対しては、いずれの入出力部のレスポンスが採用されても良い。
そのような状況で、上記の複合入出力装置は、共通コマンドに対し応答する入出力部を一方に固定する。それにより、共通コマンドに対するレスポンスの選択処理を省略し、共通コマンドに対する応答時間を短縮できる。
【００４０】
上記の複合入出力装置では、入出力部のいずれか一方がアクティブでないとき、他方の入出力部がコマンドに対しレスポンスを送出しても良い。
ここで、「入出力部がアクティブでない」とは、入出力部が実質上全てのコマンドに対し、ＮＡＫを含めどのようなレスポンスも送出しない状態であることをいう。例えば、入出力部が停止しているとき、その入出力部はアクティブではない。
一方の入出力部がアクティブでないとき、その入出力部はレスポンスを送出しない。しかし、他方の入出力部が代わりにレスポンスを送出する。こうして、上記の複合入出力装置は、ホストとの間でのコマンド／レスポンス通信を良好に維持できる。
【００４１】
上記の複合入出力装置では、ホストは、第一の機能部と第二の機能部とのいずれか一方だけを使用するとき、他方の機能部に接続された入出力部をアクティブでない状態へ遷移させても良い。そのとき、ホストはその入出力部に対し、接続された機能部への電力供給を停止するように指示できる。更に、その入出力部自体を停止させても良い。それにより、非使用部分での電力消費を低減できる。
【００４２】
上記の複合入出力装置では第一の入出力部と第二の入出力部とのそれぞれが、（Ａ）　共通のアドレスを含む共通の認識情報を記憶するためのレジスタ；及び、（Ｂ）　レジスタの更新時、その更新内容を他の入出力部へ通知するためのレジスタ更新通知部；
を含んでも良い。又は、レジスタ更新通知部の他に、
（Ｃ）　他の入出力部のレスポンスを監視し、そのレスポンスに基づき、他の入出力部でのレジスタの内容を推定するためのレジスタ推定部；
を含んでも良い。
それにより、ホストはいずれか一方の入出力部のレジスタを更新するだけで、他方の入出力部のレジスタを実質的に更新できる。更に、二つの入出力部は共通の認識情報を矛盾なく共有できる。例えば、ホストがいずれか一方の入出力部に対してのみ初期設定を行い、アドレスを設定するとき、他方の入出力部が同じアドレスを共有できる。従って、その他方の入出力部がホストからのアクセスを識別できる。こうして、ホストは、複合入出力装置内のそれぞれのユニットへのアクセスを良好に維持できる。
【００４３】
【発明の実施の形態】
以下、本発明の最適な実施の形態について、その好ましい実施例を挙げて、図面を参照しつつ説明する。
【００４４】
《実施例１》
図１は、本発明の実施例１による複合Ｉ／Ｏカード１０Ａについて、ホストＨとの間のデータ交換を示すブロック図である。
この複合Ｉ／Ｏカード１０Ａはメモリユニット１ＡとＩ／Ｏユニット２Ａとを有し、バス３でホストＨと接続される。ここで、バス３は、少なくとも一本のデータ線ＤＡＴ、クロック線ＣＬＫ、電源線ＶＤＤ、グラウンド線ＶＳＳ、及びコマンド線ＣＭＤを含む。図１では複合Ｉ／Ｏカード１０Ａのみが示されるが、ホストＨへはその他の同様なカード型入出力装置が、バス３と同様な物理的接続部で同時に接続されても良い。
複合Ｉ／Ｏカード１０ＡはホストＨから、電源線ＶＤＤとグラウンド線ＶＳＳとを通し、電力を供給される。
【００４５】
メモリユニット１Ａはメモリ部１２を有する。メモリ部１２は内部にフラッシュメモリを含み、それに対するデータの入出力を制御する。メモリユニット１Ａはメモリ部１２により、ホストＨからのデータをフラッシュメモリへ記憶し、又は、そのフラッシュメモリのデータをホストＨへ提供する。
【００４６】
Ｉ／Ｏユニット２Ａは内部の様々な機能部、又は外部の様々な情報処理機器へホストＨを接続するためのインタフェースとして機能する。例えば、Ｉ／Ｏユニット２Ａは無線通信部２２Ａと撮像部２２Ｂとを含む。無線通信部２２Ａは、例えば外部の無線ＬＡＮへホストＨを接続し、無線ＬＡＮとホストＨとの間の無線によるデータ交換を実現する。撮像部２２Ｂは例えばＣＣＤ等の撮像素子を含み、外部から取り入れた光学像を画像信号へ変換し、ホストＨへ提供する。その他に、Ｉ／Ｏユニット２Ａは、例えば外部の携帯電話へ接続され、ホストＨによる携帯電話網へのアクセスを可能にしても良い。更に、例えば外部のディジタルカメラへ接続され、
その画像データをホストＨへ提供しても良い。
【００４７】
メモリユニット１ＡとＩ／Ｏユニット２Ａとはそれぞれ、同様な構成の入出力部１１Ａと２１Ａとを含む。それぞれの入出力部は、共通のデータ線ＤＡＴ、共通のクロック線ＣＬＫ、及び共通のコマンド線ＣＭＤへ結線され、それらを通しホストＨとの間でデータを交換する。
そのデータ交換は同期通信で実行される。すなわち、クロック線ＣＬＫを通しホストＨから転送されたクロックと同期し、データが送受信される。そのとき、データは、データ線ＤＡＴのいずれかを通しシリアルに、又は全データ線ＤＡＴを通しパラレルに転送される。
【００４８】
データ通信は更に、コマンド線ＣＭＤを通したコマンド／レスポンス方式により制御される。ここで、コマンド及びレスポンスは、上記のクロックに同期して交換される。
メモリユニット１Ａ用の読み出し命令又は書き込み命令（以下、Ｒ／Ｗ命令と略す）は、従来のメモリカード用のものと同じである。一方、Ｉ／Ｏユニット２Ａ用のＲ／Ｗ命令は、従来のＩ／Ｏカード用のものと同じである。
【００４９】
メモリユニット１ＡとＩ／Ｏユニット２Ａとのそれぞれの入出力部１１Ａと２１Ａとは、データ線ＤＡＴ、クロック線ＣＬＫ、及びコマンド線ＣＭＤを共用する。そのとき、ホストＨから送出されたデータとコマンドとは、両方の入出力部へ実質上同時に到達する。
一方、ホストＨからの共通のコマンドに対しそれぞれの入出力部が同時にレスポンスを返すとき、それらのレスポンスは共通のコマンド線ＣＭＤを通る。それにより、両方のレスポンスはワイヤードＯＲを通し、ホストＨへ伝送される。実施例１による複合Ｉ／Ｏカード１０Ａでは、それぞれの入出力部のレスポンスが異なるとき、以下の構成によりレスポンスの一方が抑制される。その結果、レスポンスの衝突が回避され、適切なレスポンスがホストＨへ送出される。
【００５０】
メモリユニット１Ａの入出力部１１Ａは、コマンド解読部１３、レジスタ１４、状態通知部１５Ａ、レスポンス抑制部１６Ａ、及びレジスタ更新通知部１７Ａを含む。同様に、Ｉ／Ｏユニット２Ａの入出力部２１Ａは、コマンド解読部２３、レジスタ２４、状態通知部２５Ａ、レスポンス抑制部２６Ａ、及びレジスタ更新通知部２７Ａを含む。それぞれの構成について、両方の入出力部は共通する。
以下、メモリユニット１Ａの入出力部１１Ａについて構成の詳細を説明する。それらの説明は、Ｉ／Ｏユニット２Ａの入出力部２１Ａについても同様である。
【００５１】
コマンド解読部１３は、コマンド線ＣＭＤを通しホストＨからコマンドを受信し解読する。更に、その解読されたコマンドの内容と入出力部１１Ａの状態とに応じレスポンスを決定する。
コマンド解読部１３はコマンドに対するレスポンスを、例えば次のように決定する。
ホストＨからのコマンドには、メモリユニット１Ａ用のもの、Ｉ／Ｏユニット２Ａ用のもの、及び両ユニットで共通のものがある。受信されたコマンドがいずれのユニット用のものであるのかを、コマンド解読部１３はまず判断する。
そのコマンドがいずれのユニット用であるのかを識別できないとき、コマンド解読部１３はＮＡＫをレスポンスとして決定する。
そのコマンドがＩ／Ｏユニット２Ａ用であるとき、コマンド解読部１３は受信エラーの有無に関わらず、ＮＡＫをレスポンスとして決定する。
【００５２】
そのコマンドがメモリユニット１Ａ用であるとき、そのコマンドがその受信時での入出力部１１Ａの状態で受理され得るものであるか否かを、コマンド解読部１３は更に判断する。
そのコマンドがその受信時での入出力部１１Ａの状態では受理できないものであるとき、コマンド解読部１３は受信エラーの有無に関わらず、ＮＡＫをレスポンスとして決定する。
そのコマンドが受理され得るものであり、かつそのコマンドが正常に受信されたとき、コマンド解読部１３はＡＣＫをレスポンスとして決定する。更に、そのコマンドに従い所定の処理を実行し、又はそのコマンドの内容をメモリ部１２へ中継する。
そのコマンドが受理され得るものであり、かつそのコマンドが正常に受信されなかったとき、コマンド解読部１３はＮＡＫをレスポンスとして決定する。
【００５３】
レジスタ１４は一般に複数のメモリ領域を含む。それぞれのメモリ領域は所定のデータを保持し、特定のコマンドでのみアクセスされる。
レジスタ１４は例えば、カードアドレスを保持する。ここで、カードアドレスは例えば、ホストＨからカード型入出力装置へのＲ／Ｗ命令に含まれる。入出力部１１ＡはＲ／Ｗ命令の受信時、その宛先アドレスとレジスタ１４により保持されたカードアドレスとを比較し、そのＲ／Ｗ命令が自分宛であるか否かを判断する。
複合Ｉ／Ｏカード１０Ａでは、メモリユニット１ＡとＩ／Ｏユニット２Ａとのいずれか一方とホストＨとの間でカードアドレスの設定が行われるとき、後述のように他方のカードアドレスも同様に更新される。それにより、両ユニットは共通のカードアドレスを保持する。
【００５４】
入出力部１１Ａの状態はコマンドに応じ一般に遷移する。状態通知部１５Ａは、コマンド解読部１３により解読されたコマンドに基づき入出力部１１Ａでの状態遷移を検知し、Ｉ／Ｏユニット２Ａの入出力部２１Ａへ通知する。
【００５５】
レスポンス抑制部１６Ａは、コマンド解読部１３により受信されるコマンドを監視する。更に、そのコマンドの内容、メモリユニット１Ａの入出力部１１Ａの状態、及び、Ｉ／Ｏユニット２Ａの入出力部２１Ａの状態通知部２５Ａから通知された状態に基づき、コマンド解読部１３によるレスポンスの送出の是非を判断する（以下、その判断のことをレスポンス送出判断という）。その結果、Ｉ／Ｏユニット２ＡのレスポンスをホストＨへ送出すべきと判断するとき、コマンド解読部１３のレスポンスを抑制する。
コマンド解読部１３により決定されたレスポンスは、レスポンス抑制部１６Ａによる抑制を受けないときのみ、コマンド線ＣＭＤを通しホストＨへ返信される。
【００５６】
レジスタ更新通知部１７Ａは、自己の属する入出力部１１Ａ内のレジスタ１４を監視する。レジスタ１４のいずれかで内容が更新されるとき、レジスタ更新通知部１７Ａはその更新内容を、Ｉ／Ｏユニット２Ａの入出力部２１Ａのレジスタ２４へ通知する。それにより、メモリユニット１Ａの入出力部１１ＡとＩ／Ｏユニット２Ａの入出力部２１Ａとでは、それぞれのレジスタ１４と２４とが共通の内容を保持する。
【００５７】
図２は、レスポンス抑制部１６Ａによるレスポンス送出判断のフローチャートである。
コマンド解読部１３が一つのコマンドＣを受信し、解読する。
コマンド解読部１３によるコマンドＣの解読結果に基づき、コマンドＣがいずれの入出力部用のものであるのかを、レスポンス抑制部１６Ａは識別する（ステップＤ１）。
コマンドＣが自己の属するメモリユニット１Ａ用のものであるとき、レスポンス抑制部１６Ａはコマンド解読部１３によるレスポンスの送出を認める（ステップＲ１）。
【００５８】
コマンドＣがＩ／Ｏユニット２Ａ用のものであるとき、又はいずれの入出力部のものであるか識別できないとき、レスポンス抑制部１６Ａの判断はステップＤ２へ分岐する。ステップＤ２では、Ｉ／Ｏユニット２Ａの入出力部２１Ａがアクティブであるか否か、すなわち、コマンドＣに対しレスポンスを送出し得るか否かを、レスポンス抑制部１６Ａは、Ｉ／Ｏユニット２Ａの状態通知部２５Ａから通知された状態に基づき判断する。
Ｉ／Ｏユニット２Ａの入出力部２１Ａがアクティブでないとき、レスポンス抑制部１６Ａはコマンド解読部１３によるレスポンスの送出を認める（ステップＲ１）。逆にアクティブであるとき、レスポンス抑制部１６Ａはコマンド解読部１３のレスポンスを抑制する（ステップＲ２）。
【００５９】
コマンドＣが両ユニットの共通コマンドであるとき、レスポンス抑制部１６ＡはＩ／Ｏユニット２Ａの入出力部２１Ａの状態を、その状態通知部２５Ａからの通知に基づきチェックする（ステップＤ３）。それにより、両ユニットの入出力部の状態を比較し、いずれの入出力部のレスポンスを優先させるか、判断する。
その結果、メモリユニット１Ａの入出力部１１Ａのレスポンスを優先すべきと判断するとき、コマンド解読部１３によるレスポンスの送出を認める（ステップＲ１）。逆に、Ｉ／Ｏユニット２Ａの入出力部２１Ａのレスポンスを優先すべきと判断するとき、コマンド解読部１３によるレスポンスを抑制する（ステップＲ２）。
【００６０】
両ユニットの入出力部の状態が実質的に同等で、共通コマンドに対しいずれの入出力部のレスポンスを送出しても良いとき、レスポンス抑制部１６Ａは更に、共通コマンドに対するレスポンスの送出についての優先権の有無をチェックする（ステップＤ４）。
ここで、その優先権を持つ入出力部とは、共通コマンドに対しレスポンスを優先的に送出するように予め設定された入出力部を意味する。優先権は、例えば複合Ｉ／Ｏカード１０Ａの製造時に、二つのユニットのいずれか一方の入出力部のみに対し設定される。
メモリユニット１Ａの入出力部１１Ａが上記の優先権を持つとき、レスポンス抑制部１６Ａはコマンド解読部１３によるレスポンスの送出を認める（ステップＲ１）。逆に優先権を持たないとき、コマンド解読部１３によるレスポンスを抑制する（ステップＲ２）。
【００６１】
メモリユニット１Ａの入出力部１１ＡとＩ／Ｏユニット２Ａの入出力部２１Ａとは、ホストＨとの間の物理的な接続部、特にバス３を共有する（図１参照）。従って、ホストＨは複合Ｉ／Ｏカード１０Ａを、従来と同様な一つのカード型入出力装置としてアクセスする。それにより、ホストＨのコマンドは、複合Ｉ／Ｏカード１０Ａ内の各ユニットへ個別には送出されず、両ユニットの入出力部により同時に受信される。その結果、両ユニットの入出力部間で、レスポンスの送出についての競合が一般に生じる。複合Ｉ／Ｏカード１０Ａでは、以下のように、両入出力部が相互に状態を通知し合い、それぞれの状態に応じ、レスポンスの送出について調停を行う。それにより、上記の競合が解消され、ホストＨへは適切な一つのレスポンスが送出される。それ故、ホストＨは複合Ｉ／Ｏカード１０Ａを従来のカード型入出力装置と同様に良好に認識でき、それぞれのユニットへのアクセスを良好に維持できる。
【００６２】
以下、ホストＨによる複合Ｉ／Ｏカード１０Ａ内の各ユニットに対する初期設定を例に挙げ、通知された入出力部の状態に応じた、レスポンスの送出についての調停動作を具体的に説明する。
図３は、複合Ｉ／Ｏカード１０Ａについて、メモリユニット１Ａの入出力部１１ＡとＩ／Ｏユニット２Ａの入出力部２１Ａとのそれぞれの初期設定時の状態遷移を示す図である。初期設定時、メモリユニット１Ａの入出力部１１ＡとＩ／Ｏユニット２Ａの入出力部２１Ａとはそれぞれ、状態遷移について、従来のカード型入出力装置の入出力部と共通する。
【００６３】
入出力部は、ホストＨから電源を投入されるとき（ステップＳ０）、又はホストＨからリセット命令を受信するとき（ステップＣ０）、アイドル状態ＳＴ１へ遷移する。アイドル状態ＳＴ１の入出力部は、初期化命令を含む所定のコマンド群に対してのみレスポンスを送出し、他のコマンドに対してはレスポンスを送出しない。
【００６４】
入出力部は、ホストＨから初期化命令を受信するとき（ステップＣ１）、接続された機能部へ初期化を指示すると共に、自分自身を初期化する（ステップＳ１）。
ここで、ホストＨは所定のコマンドにより、入出力部をアイドル状態ＳＴ１からインアクティブ状態ＳＴ５へ遷移させても良い。インアクティブ状態ＳＴ５の入出力部はホストＨからの全てのコマンドに対しレスポンスを送出しない。
【００６５】
初期化完了時、入出力部はスタンバイ状態ＳＴ２へ遷移する。スタンバイ状態ＳＴ２の入出力部は、ホストＨからカードアドレス送出命令を受信する（ステップＣ２）ごとにカードアドレスを更新し、ホストＨへ返信する。
ここで、入出力部はカードアドレスを、例えば一定のステップずつインクリメントして更新し、又は所定の範囲内でランダムに更新する。
ホストＨは、返信されたカードアドレスを登録済のものと比較し、それらに重複がないとき、そのカードアドレスをその入出力部のものとして設定し、登録する。
カードアドレスの設定により、一つのカードに対する初期設定が終了する。
【００６６】
ホストＨは、初期設定を終えたカード型入出力装置の中からデータ転送対象を一つ選択し、カード選択命令を発行する。ここで、カード選択命令は宛先アドレスとして、登録済のカードアドレスを含む。初期設定を終えたスタンバイ状態ＳＴ２の入出力部は、カード選択命令の受信時（ステップＣ３）、その宛先アドレスと自身のカードアドレスとを比較する。両アドレスが一致するとき、入出力部はデータ転送可能状態ＳＴ３へ遷移する。
データ転送可能状態ＳＴ３の入出力部では、ホストＨからのＲ／Ｗ命令の受信が可能である。その入出力部は、Ｒ／Ｗ命令の受信（ステップＣ４）により、ホストＨとの間でデータ転送を開始する。
【００６７】
図４と図５とは複合Ｉ／Ｏカード１０Ａの初期設定のフローチャートである。それぞれの図の（ａ）はホストＨについてのフローチャートであり、（ｂ）は複合Ｉ／Ｏカード１０Ａ内の二つの入出力部１１Ａと２１Ａとのそれぞれについてのフローチャートである。
【００６８】
図４は、初期設定開始からメモリユニット１ＡとＩ／Ｏユニット２Ａとの初期化完了までのフローチャートである。
図４の（ａ）に示されるように、ホストＨは複合Ｉ／Ｏカード１０Ａへ電源を投入し（ステップＳ０）、又はリセット命令を発行し（ステップＣ０Ａ又はＣ０Ｂ）、初期設定を開始する。
ここで、ホストＨによる電源投入は、ホストＨ自体のパワーオンリセットによるものでも、ホストＨのスロットへの複合Ｉ／Ｏカード１０Ａの活線挿入によるものでも良い。
【００６９】
電源投入時、複合Ｉ／Ｏカード１０Ａ内の二つの入出力部１１Ａと２１Ａとの両方がリセットされる。
一方、リセット命令はメモリカードとＩ／Ｏカードとで異なるので、メモリカード用リセット命令の発行時（ステップＣ０Ａ）ではメモリユニット１Ａだけがリセットされ、Ｉ／Ｏカード用リセット命令の発行時（ステップＣ０Ｂ）ではＩ／Ｏユニット２Ａだけがリセットされる。ホストＨは、メモリユニット１ＡとＩ／Ｏユニット２Ａとのいずれか一方のみをリセットするときは、目標のユニットに対応するリセット命令のみを発行する。そのとき、リセット命令を受けないユニットは元の状態を維持する。
【００７０】
電源投入でのリセットでは（ステップＳ０）、例えば、Ｉ／Ｏユニット２Ａがまずリセットされる。一方、リセット命令でのリセットでは、ホストＨは、例えば、Ｉ／Ｏユニット２Ａ用のリセット命令をまず発行する（ステップＣ０Ａ）。すなわち、ホストＨがＩ／Ｏユニット２Ａのリセットをスキップしない限り、初期設定ではＩ／Ｏユニット２Ａが先にリセットされる。
リセットにより、Ｉ／Ｏユニット２Ａの入出力部２１Ａは、図４の（ｂ）に示されるように、アイドル状態ＳＴ１へ遷移する。
【００７１】
ホストＨは、Ｉ／Ｏユニット２Ａへ初期化命令を発行し、その初期化を指示する（ステップＳ１Ａ）。その初期化命令の受信時（ステップＣ１）、Ｉ／Ｏユニット２Ａの入出力部２１Ａは初期化を開始する（ステップＳ１）。その初期化は、Ｉ／Ｏユニット２Ａ内の無線通信部２２Ａ、撮像部２２Ｂ、及びその他の機能部、並びに、Ｉ／Ｏユニット２Ａへ接続された外部の情報処理機器の初期化を含む。初期化処理の間、入出力部２１Ａは更に、レジスタ２４内のビジーフラグをオンする。ビジーフラグは例えばレジスタ２４内の所定の１ビットデータとして定義される。
【００７２】
ここで、ホストＨはＩ／Ｏユニット２Ａに対し初期化命令を発行せず、Ｉ／Ｏユニット２Ａの初期化をスキップしても良い。そのとき、Ｉ／Ｏユニット２Ａの入出力部２１Ａはアイドル状態ＳＴ１のまま維持される。入出力部２１Ａは内部の状態通知部２５Ａにより、アイドル状態ＳＴ１に維持されることをメモリユニット１Ａの入出力部１１Ａへ通知する（ステップＳ４）。アイドル状態ＳＴ１の入出力部２１Ａは、初期化命令の受信（ステップＣ１）まで、他のコマンドに対しレスポンスを送出しない。
【００７３】
ホストＨは更に、Ｉ／Ｏユニット２Ａの入出力部２１Ａのアイドル状態ＳＴ１を、インアクティブ状態ＳＴ５へ遷移させても良い。そのとき、入出力部２１Ａはインアクティブ状態ＳＴ５であることをメモリユニット１Ａの入出力部１１Ａへ通知する（ステップＳ５）。インアクティブ状態ＳＴ５の入出力部２１Ａはレスポンスを一切送出しない。
【００７４】
Ｉ／Ｏユニット２Ａの入出力部２１Ａは、アイドル状態ＳＴ１又はインアクティブ状態ＳＴ５であるとき、無線通信部２２Ａ及び撮像部２２Ｂ等の機能部への電力供給を停止しても良い。それにより、ホストＨがＩ／Ｏユニット２Ａ内、又はそれに接続された機能部を使用しないとき、それらの待機時での電力消費を低減できる。
【００７５】
Ｉ／Ｏユニット２Ａでの初期化処理の間、ホストＨはポーリングにより、Ｉ／Ｏユニット２Ａのビジーフラグを監視する（ステップＳ２Ａ）。そのビジーフラグがオンである間、ホストＨは新たなコマンドを発行しない。
Ｉ／Ｏユニット２Ａの入出力部２１Ａは初期化完了時、ビジーフラグをオフする（ステップＳ３）。それにより、入出力部２１Ａはスタンバイ状態ＳＴ２へ遷移する。そのとき、入出力部２１Ａは状態通知部２５Ａにより、その状態遷移をメモリユニット１Ａの入出力部１１Ａへ通知する（ステップＳ１１）。
【００７６】
電源投入（ステップＳ０）では、続いてメモリユニット１Ａがリセットされる。一方、リセット命令によるリセットでは、ホストＨがメモリユニット１Ａ用のリセット命令を発行するとき（ステップＣ０Ｂ）、メモリユニット１Ａがリセットされる。
以後、ホストＨがメモリユニット１Ａへの初期化命令の発行（ステップＳ１Ｂ）をスキップしない限り、上記のＩ／Ｏユニット２Ａの初期化と同様に、メモリユニット１Ａの初期化が実行される。
ここで、リセット又は初期化を通し遷移したメモリユニット１Ａの入出力部１１Ａの状態は、内部の状態通知部１５Ａにより、Ｉ／Ｏユニット２Ａの入出力部２１Ａへ通知される。こうして、それぞれのユニットの入出力部は相互の状態を把握する。
【００７７】
メモリユニット１Ａでの初期化処理の間、ホストＨはポーリングにより、メモリユニット１Ａのビジーフラグを監視する（ステップＳ２Ｂ）。そのビジーフラグがオフされた時、ホストＨはカードアドレスの設定処理を開始する。メモリユニット１Ａのリセット又は初期化がスキップされたときは、Ｉ／Ｏユニット２Ａのビジーフラグがオフされた時、ホストＨはカードアドレスの設定処理を開始する。
【００７８】
図５は、カードアドレスの設定から初期設定の終了までのフローチャートである。
スタンバイ状態ＳＴ２の入出力部は、ホストＨからのカードアドレス送出命令、又はカード選択命令を待つ（ステップＳ４）。ここで、カードアドレス送出命令とカード選択命令とは、メモリユニット１ＡとＩ／Ｏユニット２Ａとで共通のコマンドである。
【００７９】
ホストＨはスタンバイ状態ＳＴ２の入出力部へ、カードアドレス送出命令を発行する（ステップＳ６）。そのカードアドレス送出命令は、メモリユニット１Ａの入出力部１１ＡとＩ／Ｏユニット２Ａの入出力部２１Ａとの両方により、実質上同時に受信される。そのとき、それぞれの入出力部がいずれもアクティブであれば、レスポンスの送出について競合が生じる。
【００８０】
複合Ｉ／Ｏカード１０Ａは上記の競合を次のように解消する。
スタンバイ状態ＳＴ２にあるメモリユニット１Ａの入出力部１１Ａ又はＩ／Ｏユニット２Ａの入出力部２１Ａでは、カードアドレス送出命令ともカード選択命令とも異なるコマンドの受信時、それぞれのレスポンス抑制部１６Ａ又は２６Ａが、図２のフローチャートに従い、レスポンス送出判断を行う（ステップＳ１２）。それにより、適切なレスポンスが一つ選択され、ホストＨへ返信される。一方、スタンバイ状態ＳＴ２にある入出力部は、再びホストＨからのコマンドを待つ（ステップＳ４）。
コマンドが識別できないときも、同様である。
【００８１】
スタンバイ状態ＳＴ２にある入出力部がカードアドレス送出命令を受信するとき、そのレスポンス抑制部は、図２のフローチャートに従い、レスポンス送出判断を行う（ステップＳ１３）。
レスポンスの送出を認めるとき（ステップＲ１）、入出力部はまず、レジスタに保持されたカードアドレスを更新する（ステップＳ７）。
そのカードアドレスの更新は、その入出力部内のレジスタ更新通知部により、他方の入出力部へ通知される（ステップＳ１４）。それにより、両方の入出力部が共通のカードアドレスを保持する。
入出力部は更に、更新されたカードアドレスを、カードアドレス送出命令に対するレスポンスとして、ホストＨへ送出する（ステップＳ８）。その送出後、入出力部はホストＨからのコマンドを待つ（ステップＳ４）。
【００８２】
ホストＨは、複合Ｉ／Ｏカード１０Ａからカードアドレスを、カードアドレス送出命令のレスポンスとして受け取る。そのとき、そのカードアドレスを、他のカード型入出力装置に対し既に設定され、登録されたカードアドレスと比較する（ステップＳ９）。それらのカードアドレスの間で重複があるときは、ホストＨは処理をステップＳ６へ戻し、カードアドレス送出命令を再び発行する。それにより、複合Ｉ／Ｏカード１０Ａ内のそれぞれの入出力部は上記のステップＳ４、Ｓ１２、Ｓ１３、Ｓ７、Ｓ１４、及びＳ８を繰り返し、新たなカードアドレスをホストＨへ返信する。
【００８３】
ホストＨは、複合Ｉ／Ｏカード１０Ａにより送出されたカードアドレスと、ホストＨへ登録済のカードアドレスとの間で重複がなくなるまで、ステップＳ６とＳ９とのループを繰り返す。それらのカードアドレスの間に重複がなくなったとき、ホストＨは、複合Ｉ／Ｏカード１０Ａから送出されたカードアドレスを複合Ｉ／Ｏカード１０Ａのものとして設定し、登録する（ステップＳ１０）。こうして、複合Ｉ／Ｏカード１０Ａのカードアドレスがユニークに設定され、初期設定が終了する。
【００８４】
ホストＨは、初期設定を終えた複合Ｉ／Ｏカード１０Ａをデータ転送対象として選択するとき、複合Ｉ／Ｏカード１０Ａに対しカード選択命令を発行する。ここで、そのカード選択命令は宛先アドレスとして、複合Ｉ／Ｏカード１０Ａのカードアドレスを含む。複合Ｉ／Ｏカード１０Ａの二つの入出力部１１Ａと２１Ａとの内、初期設定を終え、スタンバイ状態ＳＴ２にあるものは、カード選択命令の受信時、その宛先アドレスと自身のカードアドレスとを比較する。両アドレスが一致するとき、その入出力部はデータ転送可能状態ＳＴ３へ遷移する。
【００８５】
ホストＨは更に、複合Ｉ／Ｏカード１０Ａに対しＲ／Ｗ命令を発行する。ここで、Ｒ／Ｗ命令はメモリカード用とＩ／Ｏカード用とで異なるコマンドＩＤを持つ。従って、そのＲ／Ｗ命令が所属のユニット用であるか否かを、それぞれのコマンド解読部は識別できる。
【００８６】
ホストＨは、例えばメモリユニット１Ａとの間でデータ転送を行うとき、複合Ｉ／Ｏカード１０Ａに対しメモリカード用のＲ／Ｗ命令を発行する。メモリユニット１Ａのコマンド解読部１３は、そのＲ／Ｗ命令の正常受信時、ＡＣＫを送出する。一方、Ｉ／Ｏユニット２Ａのコマンド解読部２３は、そのＲ／Ｗ命令の受信時、ＮＡＫを設定する。Ｉ／Ｏユニット２Ａのレスポンス抑制部２６Ａはそのとき、メモリユニット１Ａの入出力部１１Ａの状態をチェックする。それにより、メモリユニット１Ａがアクティブであるとき、コマンド解読部２３のレスポンスを抑制する。メモリユニット１Ａがアクティブでない等、Ｒ／Ｗ命令に対しレスポンスを送出できない状態にあるときは、コマンド解読部２３によるレスポンスの送出を認める。こうして、Ｒ／Ｗ命令に適切に対応したレスポンスだけが、ホストＨへ返信される。
【００８７】
以上の通り、実施例１による複合Ｉ／Ｏカード１０Ａでは、メモリユニット１Ａの入出力部１１ＡとＩ／Ｏユニット２Ａの入出力部２１Ａとが相互の状態を監視する。レスポンスの送出について両入出力部の間で競合が生じるとき、それぞれの入出力部の状態に応じ、一方のレスポンスが抑制され、適切なレスポンスのみが送出される。こうして、レスポンス同士の衝突が回避されるので、ホストＨは従来と同様なコマンド／レスポンス通信により、複合Ｉ／Ｏカード１０Ａを一枚のカード型入出力装置として良好に認識できる。
【００８８】
《実施例２》
図６は、本発明の実施例２による複合Ｉ／Ｏカード１０Ｂについて、ホストＨとの間のデータ交換を示すブロック図である。
この複合Ｉ／Ｏカード１０Ｂは実施例１による複合Ｉ／Ｏカード１０Ａと同様、メモリユニット１ＢとＩ／Ｏユニット２Ｂとを有する。しかし、メモリユニット１ＢとＩ／Ｏユニット２Ｂとでは、実施例１によるものと比べ、それぞれの入出力部１１Ｂと２１Ｂとが異なる。図６では、実施例１による複合Ｉ／Ｏカード１０Ａと同様な構成に対し、図１と同じ符号を付す。更に、それらの同様な構成の説明は実施例１でのものを援用する。
【００８９】
メモリユニット１Ｂの入出力部１１Ｂは、コマンド解読部１３、レジスタ１４、状態推測部１５Ｂ、レスポンス抑制部１６Ｂ、及びレジスタ推定部１７Ｂを含む。同様に、Ｉ／Ｏユニット２Ｂの入出力部２１Ｂは、コマンド解読部２３、レジスタ２４、状態推測部２５Ｂ、レスポンス抑制部２６Ｂ、及びレジスタ推定部２７Ｂを含む。それぞれの構成について、両方の入出力部は共通する。以下、メモリユニット１Ｂの入出力部１１Ｂについて構成の詳細を説明する。
【００９０】
状態推測部１５Ｂは、コマンド解読部１３により受信されたコマンドの履歴を記憶する。コマンドはメモリユニット１ＢとＩ／Ｏユニット２Ｂとの両方へ通知されるので、その履歴は両ユニットで共通である。従って、その履歴に基づき、状態推測部１５ＢはＩ／Ｏユニット２Ｂの入出力部２１Ｂの状態を推測する。
【００９１】
レスポンス抑制部１６Ｂは、状態推測部１５Ｂにより推測された状態に基づき、ホストＨのコマンドに対するＩ／Ｏユニット２Ｂの応答動作を判断する。Ｉ／Ｏユニット２ＢのレスポンスをホストＨへ送出すべきと判断するとき、メモリユニット１Ｂ内のコマンド解読部１３のレスポンスを抑制する。こうして、メモリユニット１Ｂの入出力部１１ＢとＩ／Ｏユニット２Ｂの入出力部２１Ｂとの間でレスポンスの送出についての競合が解消され、レスポンス同士のコマンド線ＣＭＤ上での衝突が回避される。
【００９２】
レスポンス抑制部１６Ｂは、実施例１のレスポンス抑制部１６Ａと同様に、レスポンス送出判断を行う（図２参照）。実施例１によるレスポンス送出判断と同様な部分については、実施例１での説明を援用する。
但し、ステップＤ２とステップＤ３とは、次の点で実施例１によるレスポンス送出判断と異なる。
ステップＤ２では、Ｉ／Ｏユニット２Ａの入出力部２１Ａがアクティブであるか否かを、レスポンス抑制部１６Ｂは、状態推測部１５Ｂにより推測された状態に基づき判断する。
ステップＤ３では、レスポンス抑制部１６Ａは状態推測部１５Ｂによる推測に基づき、Ｉ／Ｏユニット２Ａの入出力部２１Ａの状態をチェックする。
【００９３】
Ｉ／Ｏユニット２Ｂのコマンド解読部２３により送出されたレスポンスは、コマンド線ＣＭＤとの節点（例えばワイヤードＯＲ）を通し、メモリユニット１Ｂのコマンド解読部１３へも到達する。レジスタ推定部１７Ｂは、コマンド解読部１３により受信されたＩ／Ｏユニット２Ｂのレスポンスを監視する。それにより、Ｉ／Ｏユニット２Ｂの入出力部２１Ｂでのレジスタ２４の更新を検知する。更に、そのレスポンスからレジスタ２４の更新内容を推定し、メモリユニット１Ｂのレジスタ１４を同様に更新する。こうして、メモリユニット１Ｂの入出力部１１ＢとＩ／Ｏユニット２Ｂの入出力部２１Ｂとでは、それぞれのレジスタ１４と２４とが共通の内容を保持する。
【００９４】
特に、Ｉ／Ｏユニット２Ｂの入出力部２１Ｂがスタンバイ状態ＳＴ２にあるとき、その入出力部２１Ｂのレスポンスをレジスタ推定部１７Ｂは監視し、入出力部２１Ｂでのカードアドレスの更新を検知する。更に、更新されたカードアドレスを推定し、レジスタ１４に保持されるカードアドレスを書き換える。こうして、Ｉ／Ｏユニット２Ｂのレジスタ２４でカードアドレスが更新され、ホストＨへ送出されるごとに、メモリユニット１Ｂのレジスタ１４でもカードアドレスが同様に更新される。その結果、両ユニットが共通のカードアドレスを保持する。
【００９５】
以下、ホストＨによる複合Ｉ／Ｏカード１０Ｂ内の各ユニットに対する初期設定を例に挙げ、推測された入出力部の状態に応じた、レスポンスの送出についての調停動作を具体的に説明する。
ここで、メモリユニット１Ｂの入出力部１１ＢとＩ／Ｏユニット２Ｂの入出力部２１Ｂとのそれぞれの初期設定時の状態遷移は、実施例１によるメモリユニット１Ａの入出力部１１ＡとＩ／Ｏユニット２Ａの入出力部２１Ａと共通である。すなわち、その状態遷移については、従来のカード型入出力装置の入出力部と共通する。それ故、その説明は実施例１によるものを援用する（図３参照）。
【００９６】
図７は、実施例２による複合Ｉ／Ｏカード１０Ｂ内のそれぞれのユニットの入出力部について、その初期設定のフローチャートである。ここで、実施例１によるフローチャートと同様なステップに対しては、図３〜４と同じ符号を付す。更に、それらの説明は実施例１でのものを援用する。
一方、ホストＨについての初期設定のフローチャートは、実施例１によるものと共通である。すなわち、ホストＨは実施例２による複合Ｉ／Ｏカード１０Ｂに対する初期設定を、実施例１による複合Ｉ／Ｏカード１０Ａに対するものと全く同様に実行する。
【００９７】
実施例２による複合Ｉ／Ｏカード１０Ｂに対する初期設定について、実施例１によるものとは異なる部分を、以下説明する。
メモリユニット１Ｂ又はＩ／Ｏユニット２Ｂのいずれか、又はその両方がリセットされるとき、リセットされた入出力部ではコマンドの履歴がクリアされる。従って、その入出力部では、状態推測部が他の入出力部の状態を推測しない。特に、電源投入時（ステップＳ０）、二つの入出力部はいずれもリセットされるので、それらのいずれの状態推測部も、他の入出力部の状態を推測しない。
ここで、リセットされた入出力部は、実施例１のような状態通知部を持たないので、アイドル状態ＳＴ１又はインアクティブ状態ＳＴ５のいずれでも、その状態を他の入出力部へは通知できない。
【００９８】
リセット命令によりいずれか一方のユニットだけがリセットされるとき（ステップＣ０）、他方のユニットの入出力部では、コマンドの履歴が状態推測部により保持される。その状態推測部は、他のユニットに対するリセット命令の受信時、コマンドの履歴を参照し、「他の入出力部がリセットされ、アイドル状態ＳＴ１にある」と推測する。
更に、アイドル状態ＳＴ１の入出力部をインアクティブ状態ＳＴ５へ移行させるためのコマンドの受信時、他の入出力部の状態推測部は、「他の入出力部がアイドル状態ＳＴ１からインアクティブ状態ＳＴ５へ遷移した」と推測する。
【００９９】
アイドル状態ＳＴ１の入出力部は、初期化命令の受信（ステップＣ１）により初期化を開始する（ステップＳ１）。その初期化命令の受信時、他の入出力部の状態推測部は、「他の入出力部がアイドル状態ＳＴ１からスタンバイ状態ＳＴ２へ遷移した」と推測する。
【０１００】
スタンバイ状態ＳＴ２にある入出力部は、カードアドレス送出命令に従いカードアドレスを更新しても（ステップＳ７）、更新されたカードアドレスを他の入出力部へ通知しない。しかし、他の入出力部では、レジスタ推定部が上記のように、スタンバイ状態ＳＴ２にある入出力部のレスポンスに基づき、更新されたカードアドレスを推定し、カードアドレスを同様に更新する。
特に、両ユニットの入出力部が共にスタンバイ状態ＳＴ２にあるとき、レスポンス抑制部によるレスポンス送出判断（図２参照）に基づき、優先権を持たない入出力部は、カードアドレス送出命令に対するレスポンス、すなわちカードアドレスの送出を抑制する（ステップＳ１５）。更に、ステップＳ４で、ホストＨからのコマンドと共に、優先権を持つ入出力部から送出されるレスポンスを監視する。そのレスポンスから、優先権を持つ入出力部でのカードアドレスの更新が検知されるとき、レジスタ推定部が上記のように、カードアドレスを同様に更新する（ステップＳ１７）。
【０１０１】
スタンバイ状態ＳＴ２にある入出力部は、ステップＳ４でカード選択命令を受信するとき、データ転送可能状態ＳＴ３へ遷移する。従って、いずれの入出力部も、カード選択命令の受信時、「スタンバイ状態ＳＴ２にある他の入出力部がデータ転送可能状態ＳＴ３へ遷移した」と推測する。
【０１０２】
コマンドの履歴に基づく他の入出力部の状態の推測、及び、他の入出力部のレスポンスの監視を通したレジスタの更新は、上記の初期設定でのものと同様に、データ転送可能状態以降の入出力部でも行われる。
【０１０３】
以上の通り、実施例２による複合Ｉ／Ｏカード１０Ｂでは、メモリユニット１Ｂの入出力部１１ＢとＩ／Ｏユニット２Ｂの入出力部２１Ｂとがコマンドの履歴を記憶し、それに基づき相互の状態を推測する。ホストＨのコマンドに対するレスポンスが競合するとき、それぞれの入出力部の状態に応じ、一方のレスポンスが抑制され、適切なレスポンスのみが送出される。それにより、ホストＨは複合Ｉ／Ｏカード１０Ｂを、一枚のカード型入出力装置として良好に認識できる。
【０１０４】
実施例２による複合Ｉ／Ｏカード１０Ｂでは、実施例１による複合Ｉ／Ｏカード１０Ａと異なり、メモリユニット１ＢとＩ／Ｏユニット２Ｂとの間の配線が少ない。従って、ハードウエアが比較的簡単な構成であるので、回路規模を低減できる。
その反面、それぞれの入出力部による他の入出力部の状態の把握については、実施例１のような直接的監視が確実である。
【０１０５】
本発明による複合Ｉ／Ｏカードは、上記の実施例による構成の他に、次のような構成を持っても良い。
例えば、実施例１による構成で、レジスタ更新通知部を実施例２と同様なレジスタ推定部に置換しても良い。逆に、実施例２による構成で、レジスタ推定部を実施例１と同様なレジスタ更新通知部に置換しても良い。それらの構成でも、ホストのコマンドに対するレスポンスが競合するとき、それぞれの入出力部の状態に応じ、一方のレスポンスを抑制し、適切なレスポンスのみを送出できる。それにより、ホストはその複合Ｉ／Ｏカードを、一枚のカード型入出力装置として良好に認識できる。
以上のことは、当業者であれば、上記の実施例の説明に基づき、容易に理解できるであろう。
【０１０６】
【発明の効果】
本発明による複合入出力装置は、例えば二つの入出力部を有する。それらの入出力部は、共通のバスでホストへ接続され、共通のアドレスでアクセスされる。特に、ホストのコマンドは、いずれの入出力部宛であるかに関わらず、両方の入出力部へ到達する。それぞれの入出力部は、相互の状態に応じ、コマンドに対するレスポンスを送出し、又は抑制する。それにより、それぞれの入出力部のレスポンスの内、いずれか適切な一方だけがホストへ返信され、それらのレスポンス同士がバス上で衝突しない。こうして、この複合入出力装置は、二つの入出力部のいずれか一方だけを含む従来の入出力装置と同様な一つの入出力装置として、ホストにより良好に認識される。
【０１０７】
上記の複合入出力装置では、二つの入出力部が相互の状態を直接監視しても良い。その他に、それぞれの入出力部がコマンドの履歴を保持し、それに基づき相互の状態を推測しても良い。上記の監視及び推測のいずれでも、それぞれの入出力部が相互のレスポンスの内容を正確に把握できる。その結果、それぞれの入出力部がいずれのレスポンスを返信すべきかを、適切に判断できる。
【図面の簡単な説明】
【図１】本発明の実施例１による複合Ｉ／Ｏカード１０Ａについて、ホストＨとの間のデータ交換を示すブロック図である。
【図２】本発明の実施例１による複合Ｉ／Ｏカード１０Ａでの、レスポンス抑制部１６Ａによるレスポンス送出判断のフローチャートである。
【図３】本発明の実施例１による複合Ｉ／Ｏカード１０Ａ、本発明の実施例２による複合Ｉ／Ｏカード１０Ｂ、及び、従来のカード型入出力装置のいずれの入出力部についても共通である、初期設定時の状態遷移を示す図である。
【図４】本発明の実施例１による複合Ｉ／Ｏカード１０Ａの初期設定の内、初期設定開始からメモリユニット１ＡとＩ／Ｏユニット２Ａとの初期化完了までのフローチャートである。（ａ）は、ホストＨについてのフローチャートであり、（ｂ）は、複合Ｉ／Ｏカード１０Ａ内の二つの入出力部１１Ａと２１Ａとのそれぞれについてのフローチャートである。
【図５】本発明の実施例１による複合Ｉ／Ｏカード１０Ａの初期設定の内、図４に示される部分に続く、カードアドレスの設定から初期設定の終了までのフローチャートである。（ａ）は、ホストＨについてのフローチャートであり、（ｂ）は、複合Ｉ／Ｏカード１０Ａ内の二つの入出力部１１Ａと２１Ａとのそれぞれについてのフローチャートである。
【図６】本発明の実施例２による複合Ｉ／Ｏカード１０Ｂについて、ホストＨとの間のデータ交換を示すブロック図である。
【図７】本発明の実施例２による複合Ｉ／Ｏカード１０Ｂ内のそれぞれのユニットの入出力部について、その初期設定のフローチャートである。
【図８】従来のメモリカード１００とホストＨとの間でのデータ交換を示すブロック図である。
【図９】従来のＩ／Ｏカード２００とホストＨとの間でのデータ交換を示すブロック図である。
【図１０】従来のカード型入出力装置に対する初期設定のフローチャートである。（ａ）はホストＨについてのフローチャートであり、（ｂ）はカード型入出力装置の入出力部についてのフローチャートである。
【図１１】複合Ｉ／Ｏカード３００の内部構成の一例を示すブロック図である。
【符号の説明】
１０Ａ　　　　複合Ｉ／Ｏカード
１Ａ　　　　メモリユニット
１１Ａ　　　　メモリユニット１Ａの入出力部
２Ａ　　　　Ｉ／Ｏユニット
２１Ａ　　　　Ｉ／Ｏユニット２Ａの入出力部
３　　　　　バス
ＤＡＴ　　　　データ線
ＣＬＫ　　　　クロック線
ＶＤＤ　　　　電源線
ＶＳＳ　　　　グラウンド線
ＣＭＤ　　　　コマンド線
【図１】
2004038643.tif 000003
【図２】
2004038643.tif 000004
【図３】
2004038643.tif 000005
【図４】
2004038643.tif 000006
【図５】
2004038643.tif 000007
【図６】
2004038643.tif 000008
【図７】
2004038643.tif 000009
【図８】
2004038643.tif 000010
【図９】
2004038643.tif 000011
【図１０】
2004038643.tif 000012
【図１１】
2004038643.tif 000013