JP4132028B2 - 複合入出力装置 - Google Patents
複合入出力装置 Download PDFInfo
- Publication number
- JP4132028B2 JP4132028B2 JP2002195853A JP2002195853A JP4132028B2 JP 4132028 B2 JP4132028 B2 JP 4132028B2 JP 2002195853 A JP2002195853 A JP 2002195853A JP 2002195853 A JP2002195853 A JP 2002195853A JP 4132028 B2 JP4132028 B2 JP 4132028B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- unit
- command
- output unit
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Description
【発明の属する技術分野】
本発明は、外部の情報処理機器との間でデータ通信を行うための入出力装置に関し、特に、その情報処理機器との間のバスを共用する二以上の入出力装置の複合に関する。
【0002】
【従来の技術】
情報技術の飛躍的進歩及び爆発的普及により、多種多様な情報処理機器が相互に接続され、様々なデータを交換できる。それらのデータ通信を担う入出力装置(インタフェース)には、下位互換性を含め、多種多様な情報処理機器についての汎用性が要求される。その上、情報処理機器全体に対する小型軽量化の要請に伴い、入出力装置自体に対しても小型軽量化が求められる。
【0003】
従来の入出力装置の中では特に、カード型のものが近年多用される。このカード型入出力装置は、特定のインタフェース内蔵の数cm角の小カードである。カード型入出力装置は情報処理機器(ホスト)に設けられた専用スロットに差し込まれ、ホストとデータを交換する。そのスロットを様々な情報処理機器へ組み込むことで、上記のカード型入出力装置は多種多様な情報処理機器に対する汎用性を獲得する。
【0004】
上記のカード型入出力装置の種類にはメモリカードとI/Oカードとがある。
メモリカードは、例えばフラッシュメモリ等の半導体メモリを内部に含むカード型記録媒体である。複数のホストが同じメモリカードを共用し、相互のデータ交換を実現する。
図8は、従来のメモリカード100とホストHとの間でのデータ交換を示すブロック図である。
このメモリカード100は、少なくとも一本のデータ線DAT、クロック線CLK、電源線VDD、グラウンド線VSS、及びコマンド線CMDを含むバス103で、ホストHと接続される。
メモリカード100はホストHから、電源線VDDとグラウンド線VSSとを通し、電力を供給される。
【0005】
入出力部(ホストインタフェースともいう)101は、コマンド線CMDを通しホストHからコマンドを受信し解読する。その解読されたコマンドの内容に応じ、レスポンスをホストHへ、コマンド線CMDを通し返信する。
コマンドがフラッシュメモリに対する読み出し命令であるとき、入出力部101はメモリ部102に対し、その内部のフラッシュメモリからデータを読み出すように指示する。読み出されたデータはデータ線DATを通し、ホストHへ転送される。そのとき、入出力部101はデータ転送を同期通信で行う。すなわち、クロック線CLKを通しホストHから転送されたクロックと同期し、データを転送する。そのとき、データは、データ線DATのいずれかを通しシリアルに、又は全データ線DATを通しパラレルに転送される。
【0006】
コマンドがフラッシュメモリに対する書き込み命令であるとき、入出力部101はデータ線DATを通し、その書き込み対象データを受信する。そのとき、上記の読み出し時と同様、データ転送はクロック線CLKからのクロックと同期し、シリアルに又はパラレルに転送される。入出力部101により受信された書き込み対象データはメモリ部102へ転送される。メモリ部102はそのデータを内部のフラッシュメモリへ記憶する。
【0007】
I/Oカードは、ホストと、そのホストとは別の情報処理機器又はネットワークとの間を接続する。例えば、I/Oカードはホストを携帯電話又は内部の無線通信部へ接続する。それにより、ホストは、携帯電話回線網又は無線LANを通し、他の情報処理機器との間でデータ交換を実現する。その他に、I/Oカードはホストをディジタルカメラへ接続する。それにより、ホストはディジタルカメラにより撮像された画像データを取り込み、記録し又は編集できる。
一枚のI/Oカードを通し、無線通信部、携帯電話、又はディジタルカメラ等の様々な機能部へ接続されることで、ホストは多種多様な機能を獲得できる。
【0008】
図9は、従来のI/Oカード200とホストHとの間でのデータ交換を示すブロック図である。
I/Oカード200は、上記のメモリカード100と同様なバス103でホストHと接続される。すなわち、バス103は、データ線DAT、クロック線CLK、電源線VDD、グラウンド線VSS、及びコマンド線CMDを含む。
I/Oカード200はメモリカード100と同様、電源線VDDとグラウンド線VSSとを通し、ホストHから電力を供給される。
【0009】
I/Oカード200は機能部として、例えば無線通信部202Aと撮像部202Bとを含む。無線通信部202Aは、例えば外部の無線LANに接続し、データを交換する。撮像部202Bは、例えば電荷結合素子(CCD)等の撮像素子を含み、外部から取り入れた光学像を画像信号へ変換する。
【0010】
入出力部201は、コマンド線CMDを通し、ホストHからコマンドを受信し解読する。その解読されたコマンドの内容に応じ、レスポンスをホストHへ、コマンド線CMDを通し返信する。
コマンドが、無線通信部202A又は撮像部202Bに対するデータ転送命令であるとき、入出力部201はそれぞれのモジュールからデータを読み出す。読み出されたデータはデータ線DATを通し、ホストHへ転送される。そのとき、入出力部201によるデータ転送は、クロック線CLKを通しホストHから転送されたクロックに従い同期通信で行われる。データは、データ線DATのいずれかを通しシリアルに、又は全データ線DATを通しパラレルに転送される。
【0011】
コマンドが無線通信部202Aに対するデータ送信命令であるとき、入出力部201はデータ線DATを通し、送信対象データをホストHから受信する。そのとき、上記の読み出し時と同様、データ転送はクロック線CLKからのクロックと同期し、シリアルに又はパラレルに転送される。入出力部201により受信されたデータは無線通信部202Aへ転送され、更に外部へ無線で送信される。
【0012】
ホストは、例えば上記のカード型入出力装置用スロットを複数有するとき、それぞれのスロットへ挿入されたカード型入出力装置と一対一に接続し認識する。すなわち、バスのような物理的な接続の特定により、それぞれのカード型入出力装置を物理的に特定する。更に、そのような物理的な特定を通し、それぞれのカード型入出力装置に対し、異なるカードアドレスを割り当てる。その割り当て後は、ホストは、通信目標のカード型入出力装置、及びそれとの接続用のバスを、カードアドレスにより論理的に特定できる。
【0013】
ホストによる従来のカード型入出力装置に対する認識は、具体的には次のように実行される。
ホストは従来のカード型入出力装置を、その初期設定を通し認識する。カード型入出力装置の初期設定は、ホストからの電源投入又はリセット命令の発行により開始される。初期設定時、カード型入出力装置の入出力部は数種類の状態に遷移する。
【0014】
ここで、入出力部が特定のコマンドに応じ所定の動作を行うか否かで、その入出力部の状態は区別される。特に、入出力部により受理され得るコマンドは状態ごとに異なる。
入出力部は、その状態で受理し得るコマンドを正常に受信したとき、コマンド受信成功を示すレスポンス(ACK)をホストHへ返信する。更に、そのコマンドに従い所定の処理を実行し、又はそのコマンドの内容を機能部へ中継する。
入出力部は、コマンドの受信に失敗したとき、又はその状態では受理できないコマンドを正常に受信したとき、コマンド受信失敗を示すレスポンス(NAK)をホストへ返信する。その他に、入出力部はそのとき、何のレスポンスも送出しなくても良い。ホストはレスポンスの待ち時間を制限し、その待ち時間内にレスポンスを受信しないときは、入出力部によるコマンド受信の失敗、又は入出力部への無効コマンドの発行と判断する。
【0015】
入出力部の状態はコマンドに応じ一般に遷移する。入出力部の状態には、メモリカード100とI/Oカード200とで共通するもの及び異なるものがある。それと符合し、ホストHのコマンドには、両カードで共通するものと異なるものとがある。
メモリカード100とI/Oカード200とは、ホストHとの間のバス103等の物理的な接続部で共通する(図8、9参照)。その構造上の共通性から容易に類推されるとおり、ホストHは両カードに対し、実質上共通の初期設定を行う。
【0016】
図3は、メモリカード100又はI/Oカード200等、従来のカード型入出力装置の入出力部での初期設定時の状態遷移を示す図である。
初期設定時、入出力部は以下のように状態を遷移させる。
入出力部は、ホストHから電源を投入されるとき(ステップS0)、又はホストHからリセット命令を受信するとき(ステップC0)、アイドル状態ST1へ遷移する。
アイドル状態ST1の入出力部は、初期化命令を含む所定のコマンド群に対してのみレスポンスを送出し、他のコマンドに対してはレスポンスを送出しない。
【0017】
入出力部は、ホストHから初期化命令を受信するとき(ステップC1)、接続された機能部へ初期化を指示すると共に、自分自身を初期化する(ステップS1)。
ここで、ホストHは所定のコマンドにより、入出力部をアイドル状態ST1からインアクティブ状態ST5へ遷移させても良い。インアクティブ状態ST5の入出力部はホストHからの全てのコマンドに対しレスポンスを送出しない。
【0018】
初期化完了時、入出力部はスタンバイ状態ST2へ遷移する。スタンバイ状態ST2の入出力部は、ホストHからカードアドレス送出命令を受信する(ステップC2)ごとにカードアドレスを更新し、ホストHへ返信する。
ここで、カードアドレスは、例えば入出力部内のレジスタに保持される。入出力部はカードアドレスを、例えば一定のステップずつインクリメントし、又は所定の範囲内でランダムに更新する。
ホストHは、返信されたカードアドレスを、他のカード型入出力装置(もし接続されていれば)に対し既に登録されたカードアドレスと比較する。それらのカードアドレスの間に重複がないとき、ホストHは、返信されたカードアドレスをその入出力部のものとして設定し、登録する。
カードアドレスの設定により、一つのカードに対する初期設定が終了する。
【0019】
ホストHは、初期設定を終えたカード型入出力装置の中からデータ転送対象を一つ選択し、カード選択命令を発行する。ここで、カード選択命令は宛先アドレスとして、登録済のカードアドレスを含む。初期設定を終えたスタンバイ状態ST2の入出力部は、カード選択命令の受信時(ステップC3)、その宛先アドレスと自身のカードアドレスとを比較する。両アドレスが一致するとき、入出力部はデータ転送可能状態ST3へ遷移する。
データ転送可能状態ST3の入出力部では、ホストHの読み出し命令又は書き込み命令(以下、R/W命令と略す)の受信が可能である。その入出力部は、R/W命令の受信(ステップC4)により、ホストHとの間でデータ転送を開始する。
【0020】
図10は従来のカード型入出力装置に対する初期設定のフローチャートである。図10の(a)はホストHについてのフローチャートであり、(b)はカード型入出力装置の入出力部についてのフローチャートである。
ホストHは入出力部へ電源を投入し(ステップS0)、又はリセット命令を発行し(ステップC0)、初期設定を開始する。
電源投入時、又はリセット命令の受信時、入出力部はリセットされ、アイドル状態ST1へ遷移する。
【0021】
ホストHは入出力部へ初期化命令を発行し、その入出力部、及びそれに接続された機能部の初期化を指示する(ステップS1)。その初期化命令の受信時(ステップC1)、入出力部は初期化を開始する(ステップS1)。初期化処理の間、入出力部はビジーフラグをオンする。
入出力部による初期化処理の間、ホストHはポーリングにより、入出力部のビジーフラグを監視する(ステップS2)。そのビジーフラグがオンである間、ホストHは新たなコマンドを発行しない。
入出力部は初期化完了時、ビジーフラグをオフする(ステップS3)。それにより、入出力部はスタンバイ状態ST2へ遷移する。
【0022】
スタンバイ状態ST2の入出力部は、ホストHからのカードアドレス送出命令、又はカード選択命令を待つ(ステップS4)。ここで、カードアドレス送出命令とカード選択命令とは、メモリカード100とI/Oカード200とで共通のコマンドである。それらのコマンド以外のコマンドが受信されるとき、又はコマンドの受信に失敗したとき、入出力部はホストHへNAKを送出する(ステップS5)。
【0023】
ホストHはスタンバイ状態ST2の入出力部へ、カードアドレス送出命令を発行する(ステップS6)。
カードアドレス送出命令を正常に受信したとき、入出力部はカードアドレスを更新する(ステップS7)。更に、更新されたカードアドレスを、カードアドレス送出命令に対するACK内のデータとしてホストHへ送出する(ステップS8)。その送出後、入出力部はホストHからのコマンドを待つ(ステップS4)。
【0024】
ホストHは、カードアドレス送出命令に対するレスポンスとして、カードアドレスを受信する。そのカードアドレスを、他のカード型入出力装置に対し既に設定され、登録されたカードアドレスと比較する(ステップS9)。
それらのカードアドレスの間で重複があるとき、ホストHは処理をステップS6へ戻し、カードアドレス送出命令を再び発行する。それにより、入出力部は上記のステップS4、S7、及びS8を順に繰り返し、新たなカードアドレスをホストHへ返信する。
【0025】
入出力部により送出されたカードアドレスとホストHへ登録済のカードアドレスとの間で重複がなくなるまで、ホストHはカードアドレス送出命令を繰り返し発行し続ける。それらのカードアドレスの間に重複がなくなったとき、ホストHは、入出力部から送出されたカードアドレスをそのカード型入出力装置のものとして設定し、登録する(ステップS10)。こうして、カード型入出力装置に対しカードアドレスがユニークに設定され、初期設定が終了する。
ホストHは、初期設定を終えたカード型入出力装置の中からデータ転送対象を一つ選択し、カード選択命令を発行する。ステップS4でそのカード選択命令の受信が識別されるとき、入出力部はデータ転送可能状態ST3へ遷移する。
【0026】
【発明が解決しようとする課題】
メモリカード100とI/Oカード200とは、ホストHとの間のバス103等の接続部で共通する。従って、それらの共通部分について単一の装置を共用できれば、メモリカード100とI/Oカード200との両方の機能を一枚のカード内に収め得る。そのように両機能を複合したカード型入出力装置(以下、複合I/Oカードという)が実現されれば、ホストは従来のスロットをそのまま利用し、メモリカードとI/Oカードとの両機能を同時に利用できる。
【0027】
図11は、複合I/Oカード300の内部構成の一例を示すブロック図である。この複合I/Oカード300はメモリユニット301とI/Oユニット302とを有する。
メモリユニット301は、従来のメモリカード100と同様な構成を含み、そのカードに対するコマンドと同じコマンドで制御される。I/Oユニット302は、従来のI/Oカード200と同様な構成を含み、そのカードに対するコマンドと同じコマンドで制御される。図11では、それらの同様な構成に対し、図8及び図9に示される符号と同じ符号が付される。
【0028】
上記の複合I/Oカード300では、メモリユニット301とI/Oユニット302とが同じコマンド線CMDへ実質上単純に結線される。従って、ホストHからの一つのコマンドが両ユニットの入出力部101と201とにより、実質上同時に受信される。それぞれの入出力部は互いに独立して同じコマンドを解読する。
例えば、メモリカード100とI/Oカード200との共通コマンドが正常に受信されるとき、二つの入出力部101と201とはそれぞれの状態に応じたレスポンスを返信する。
その他に、例えば、メモリカード100専用コマンドが正常に受信されるとき、メモリユニット301の入出力部101はACKを返信し、I/Oユニット302の入出力部201はNAKを返信する。
【0029】
複合I/Oカード300とホストHとの間でのコマンド/レスポンス通信は、クロック線CLK上のクロックと同期して行われる。従って、二つの入出力部が一つのコマンドに対し同時にレスポンスを送出するとき、それらのレスポンスは共通のコマンド線CMD上で互いに衝突し、ワイヤードOR(Wired-OR)を通した一つのレスポンスとしてホストHへ通知される。ホストHはその一つのレスポンスから、メモリユニット301とI/Oユニット302とのそれぞれのレスポンスを解読しなければならなかった。すなわち、ホストHは、複合I/Oカード300のレスポンスに対し、従来とは異なる処理を要した。その結果、従来のスロットが、複合I/Oカード300に対する上位互換性を持ち得なかった。
【0030】
上記の複合I/Oカード300では、メモリユニット301とI/Oユニット302との間でのレスポンスについての競合の他に、次のような問題があった。
複合I/Oカード300は、従来のメモリカード100とI/Oカード200と同様なバス103でのみホストHと接続される。一方、ホストHは、従来のカード型入出力装置に対する初期設定を、バス103ごとに行う。従って、ホストHは複合I/Oカード300に対しても、メモリカード100とI/Oカード200と同様な一枚のカード型入出力装置としての認識を試みる。
【0031】
ホストHが複合I/Oカード300に対し従来と同様な初期設定を行うとき、メモリユニット301とI/Oユニット302との間でレスポンスについての競合が上記のように生じる。その競合を回避するには、例えば、いずれかの一方のユニットの入出力部を停止させれば良い。
ここで、I/Oユニット302を停止させるときを想定する。そのとき、ホストHはメモリユニット301に対し、従来と同様な初期設定を行う。その結果、メモリユニット301はホストHにより認識される。特に、メモリユニット301が、バス103によりホストHへ接続されたカード型入出力装置として、カードアドレスを設定される。従って、I/Oユニット302がホストHからのアクセスを識別するには、メモリユニット301に対し設定されたカードアドレス等の認識情報を、自身のレジスタに保持しなければならない。
しかし、従来のカード型入出力装置は、他のカード型入出力装置とカードアドレス等の認識情報を共有するための手段を持たなかった。従って、従来の機能では両ユニットが認識情報を共有できなかった。
【0032】
本発明は、ホストとの間のバスを共用する二以上の入出力装置の複合であり、それぞれの装置の単体と同様な一つの装置としてホストにより良好に認識される入出力装置、の提供を目的とする。
【0033】
【課題を解決するための手段】
本発明による複合入出力装置は、
(A) ホストからのコマンドの内、第一のコマンド群に属するものを受信する第一の入出力部;
(B) ホストからのコマンドの内、第二のコマンド群に属するものを受信する第二の入出力部;及び、
(C) 第一の入出力部と第二の入出力部とをそれぞれホストへ接続し、それらの入出力部により共用されるバス;
を有する。その複合入出力装置では、
(D) 第一の入出力部と第二の入出力部とがホストにより共通のアドレスでアクセスされ;
(E) 第一の入出力部が、第一のコマンド群において該第一の入出力部に専用となる専用コマンドに対するレスポンスを送出し;
(F) 第一の入出力部が専用コマンドに対してレスポンスを送出する際に、第二の入出力部が、レスポンスの送出を抑制する。
【0034】
ここで、入出力部が特定のコマンドに対し所定の動作を行い又は行わないことで、入出力部の状態は区別される。特に、入出力部により受理され得るコマンドは状態ごとに異なる。
入出力部は、その状態で受理し得るコマンドを正常に受信したとき、ACKをホストへ返信する。更に、そのコマンドに従い所定の処理を実行し、又はそのコマンドの内容を機能部へ中継する。
入出力部は、コマンドの受信に失敗したとき、又はその状態では受理できないコマンドを受信したとき、NAKをホストへ返信する。
このように、入出力部は一つのコマンドに対しレスポンスを、その状態に応じ決定する。
【0035】
上記の複合入出力装置のように二つの入出力部を含む複合入出力装置では、それぞれの入出力部の状態が一般に異なるので、一つのコマンドに対しそれぞれの入出力部で決定されるレスポンスが一般に異なる。
上記の複合入出力装置では、入出力部のそれぞれが更に、他の入出力部の状態に応じ、レスポンスを送出し、又は抑制する。それにより、二つの入出力部が異なるレスポンスを同時に送出することが回避され、それらのレスポンス同士がバス上で衝突しない。こうして、上記の複合入出力装置は、第一の入出力部又は第二の入出力部のいずれか一方だけを含む入出力装置の単体と同様な一つの入出力装置として、ホストにより良好に認識される。
【0036】
上記の複合入出力装置では第一の入出力部と第二の入出力部とのそれぞれが、
(A) ホストからのコマンドを解読し、そのコマンドに対するレスポンスをホストへ送出するためのコマンド解読部;
(B) 自己の属する入出力部の状態を他の入出力部へ通知するための状態通知部;及び、
(C) 状態通知部からの通知に基づいて、他の入出力部がレスポンスを送出する際に自己の属する入出力部のコマンド解読部よるレスポンスを抑制するためのレスポンス抑制部;
を有しても良い。それにより、二つの入出力部が相互の状態を直接監視し、正確に把握できる。その結果、それぞれの入出力部が自己のレスポンスを返信すべきか、又は抑制すべきかを、適切に判断できる。
【0037】
上記の他に、第一の入出力部と第二の入出力部とのそれぞれが、
(A) 上記のコマンド解読部;
(B) コマンドの履歴を記憶し、その履歴に基づき他の入出力部の状態を推測するための状態推測部;及び、
(C) 状態推測部による推測に基づいて、他の入出力部がレスポンスを送出すると推測される際に自己の前記コマンド解読部によるレスポンスを抑制するためのレスポンス抑制部;
を有しても良い。ここで、入出力部の状態はコマンドに従い一般に遷移する。更に、例えば電源投入等によりリセットされた時の状態は、通常単一である。従って、リセット以降の状態は、コマンドの履歴から容易に推測される。
二つの入出力部は相互の状態を推測し、正確に把握できる。その結果、それぞれの入出力部が、自己のレスポンスを返信すべきか、又は抑制すべきかを、適切に判断できる。
【0038】
上記の複合入出力装置では、
(A) 第一のコマンド群に属するコマンドに対し、第一の入出力部がレスポンスを送出し、第二の入出力部がレスポンスを抑制する。
(B) さらに好ましくは、第二のコマンド群に属するコマンドに対し、第一の入出力部がレスポンスを抑制し、第二の入出力部がレスポンスを送出しても良い。それにより、レスポンス同士の衝突が回避され、コマンドに対し適切なレスポンスがホストへ返信される。
【0039】
上記の複合入出力装置では更に、第一のコマンド群と第二のコマンド群との間の共通コマンドに対し、第一の入出力部がレスポンスを送出し、第二の入出力部がレスポンスを抑制しても良い。
二つの入出力部の状態は一般に異なるので、同じコマンドに対しそれぞれのレスポンスは一般に異なる。しかし、二つの入出力部が、例えば同時にリセットされるとき等では、同時に共通の状態であり得る。そのとき、共通コマンドに対しては、いずれの入出力部のレスポンスが採用されても良い。
そのような状況で、上記の複合入出力装置は、共通コマンドに対し応答する入出力部を一方に固定する。それにより、共通コマンドに対するレスポンスの選択処理を省略し、共通コマンドに対する応答時間を短縮できる。
【0040】
上記の複合入出力装置では、入出力部のいずれか一方がアクティブでないとき、他方の入出力部がアクティブでない入出力部へのコマンドを受信し、該コマンドに対しレスポンスを送出しても良い。
ここで、「入出力部がアクティブでない」とは、入出力部が実質上全てのコマンドに対し、NAKを含めどのようなレスポンスも送出しない状態であることをいう。例えば、入出力部が停止しているとき、その入出力部はアクティブではない。
一方の入出力部がアクティブでないとき、その入出力部はレスポンスを送出しない。しかし、他方の入出力部が代わりにレスポンスを送出する。こうして、上記の複合入出力装置は、ホストとの間でのコマンド/レスポンス通信を良好に維持できる。
【0041】
上記の複合入出力装置では、ホストは、第一の機能部と第二の機能部とのいずれか一方だけを使用するとき、他方の機能部に接続された入出力部をアクティブでない状態へ遷移させても良い。そのとき、ホストはその入出力部に対し、接続された機能部への電力供給を停止するように指示できる。更に、その入出力部自体を停止させても良い。それにより、非使用部分での電力消費を低減できる。
【0042】
上記の複合入出力装置では第一の入出力部と第二の入出力部とのそれぞれが、
(A) 共通のアドレスを含む共通の認識情報を記憶するためのレジスタ;及び、
(B) レジスタの更新時、その更新内容を他の入出力部へ通知するためのレジスタ更新通知部;
を含んでも良い。又は、レジスタ更新通知部の他に、
(C) 他の入出力部のレスポンスを監視し、そのレスポンスに基づき、他の入出力部でのレジスタの内容を推定するためのレジスタ推定部;
を含んでも良い。
それにより、ホストはいずれか一方の入出力部のレジスタを更新するだけで、他方の入出力部のレジスタを実質的に更新できる。更に、二つの入出力部は共通の認識情報を矛盾なく共有できる。例えば、ホストがいずれか一方の入出力部に対してのみ初期設定を行い、アドレスを設定するとき、他方の入出力部が同じアドレスを共有できる。従って、その他方の入出力部がホストからのアクセスを識別できる。こうして、ホストは、複合入出力装置内のそれぞれのユニットへのアクセスを良好に維持できる。
【0043】
【発明の実施の形態】
以下、本発明の最適な実施の形態について、その好ましい実施例を挙げて、図面を参照しつつ説明する。
【0044】
《実施例1》
図1は、本発明の実施例1による複合I/Oカード10Aについて、ホストHとの間のデータ交換を示すブロック図である。
この複合I/Oカード10Aはメモリユニット1AとI/Oユニット2Aとを有し、バス3でホストHと接続される。ここで、バス3は、少なくとも一本のデータ線DAT、クロック線CLK、電源線VDD、グラウンド線VSS、及びコマンド線CMDを含む。図1では複合I/Oカード10Aのみが示されるが、ホストHへはその他の同様なカード型入出力装置が、バス3と同様な物理的接続部で同時に接続されても良い。
複合I/Oカード10AはホストHから、電源線VDDとグラウンド線VSSとを通し、電力を供給される。
【0045】
メモリユニット1Aはメモリ部12を有する。メモリ部12は内部にフラッシュメモリを含み、それに対するデータの入出力を制御する。メモリユニット1Aはメモリ部12により、ホストHからのデータをフラッシュメモリへ記憶し、又は、そのフラッシュメモリのデータをホストHへ提供する。
【0046】
I/Oユニット2Aは内部の様々な機能部、又は外部の様々な情報処理機器へホストHを接続するためのインタフェースとして機能する。例えば、I/Oユニット2Aは無線通信部22Aと撮像部22Bとを含む。無線通信部22Aは、例えば外部の無線LANへホストHを接続し、無線LANとホストHとの間の無線によるデータ交換を実現する。撮像部22Bは例えばCCD等の撮像素子を含み、外部から取り入れた光学像を画像信号へ変換し、ホストHへ提供する。その他に、I/Oユニット2Aは、例えば外部の携帯電話へ接続され、ホストHによる携帯電話網へのアクセスを可能にしても良い。更に、例えば外部のディジタルカメラへ接続され、
その画像データをホストHへ提供しても良い。
【0047】
メモリユニット1AとI/Oユニット2Aとはそれぞれ、同様な構成の入出力部11Aと21Aとを含む。それぞれの入出力部は、共通のデータ線DAT、共通のクロック線CLK、及び共通のコマンド線CMDへ結線され、それらを通しホストHとの間でデータを交換する。
そのデータ交換は同期通信で実行される。すなわち、クロック線CLKを通しホストHから転送されたクロックと同期し、データが送受信される。そのとき、データは、データ線DATのいずれかを通しシリアルに、又は全データ線DATを通しパラレルに転送される。
【0048】
データ通信は更に、コマンド線CMDを通したコマンド/レスポンス方式により制御される。ここで、コマンド及びレスポンスは、上記のクロックに同期して交換される。
メモリユニット1A用の読み出し命令又は書き込み命令(以下、R/W命令と略す)は、従来のメモリカード用のものと同じである。一方、I/Oユニット2A用のR/W命令は、従来のI/Oカード用のものと同じである。
【0049】
メモリユニット1AとI/Oユニット2Aとのそれぞれの入出力部11Aと21Aとは、データ線DAT、クロック線CLK、及びコマンド線CMDを共用する。そのとき、ホストHから送出されたデータとコマンドとは、両方の入出力部へ実質上同時に到達する。
一方、ホストHからの共通のコマンドに対しそれぞれの入出力部が同時にレスポンスを返すとき、それらのレスポンスは共通のコマンド線CMDを通る。それにより、両方のレスポンスはワイヤードORを通し、ホストHへ伝送される。実施例1による複合I/Oカード10Aでは、それぞれの入出力部のレスポンスが異なるとき、以下の構成によりレスポンスの一方が抑制される。その結果、レスポンスの衝突が回避され、適切なレスポンスがホストHへ送出される。
【0050】
メモリユニット1Aの入出力部11Aは、コマンド解読部13、レジスタ14、状態通知部15A、レスポンス抑制部16A、及びレジスタ更新通知部17Aを含む。同様に、I/Oユニット2Aの入出力部21Aは、コマンド解読部23、レジスタ24、状態通知部25A、レスポンス抑制部26A、及びレジスタ更新通知部27Aを含む。それぞれの構成について、両方の入出力部は共通する。
以下、メモリユニット1Aの入出力部11Aについて構成の詳細を説明する。それらの説明は、I/Oユニット2Aの入出力部21Aについても同様である。
【0051】
コマンド解読部13は、コマンド線CMDを通しホストHからコマンドを受信し解読する。更に、その解読されたコマンドの内容と入出力部11Aの状態とに応じレスポンスを決定する。
コマンド解読部13はコマンドに対するレスポンスを、例えば次のように決定する。
ホストHからのコマンドには、メモリユニット1A用のもの、I/Oユニット2A用のもの、及び両ユニットで共通のものがある。受信されたコマンドがいずれのユニット用のものであるのかを、コマンド解読部13はまず判断する。
そのコマンドがいずれのユニット用であるのかを識別できないとき、コマンド解読部13はNAKをレスポンスとして決定する。
そのコマンドがI/Oユニット2A用であるとき、コマンド解読部13は受信エラーの有無に関わらず、NAKをレスポンスとして決定する。
【0052】
そのコマンドがメモリユニット1A用であるとき、そのコマンドがその受信時での入出力部11Aの状態で受理され得るものであるか否かを、コマンド解読部13は更に判断する。
そのコマンドがその受信時での入出力部11Aの状態では受理できないものであるとき、コマンド解読部13は受信エラーの有無に関わらず、NAKをレスポンスとして決定する。
そのコマンドが受理され得るものであり、かつそのコマンドが正常に受信されたとき、コマンド解読部13はACKをレスポンスとして決定する。更に、そのコマンドに従い所定の処理を実行し、又はそのコマンドの内容をメモリ部12へ中継する。
そのコマンドが受理され得るものであり、かつそのコマンドが正常に受信されなかったとき、コマンド解読部13はNAKをレスポンスとして決定する。
【0053】
レジスタ14は一般に複数のメモリ領域を含む。それぞれのメモリ領域は所定のデータを保持し、特定のコマンドでのみアクセスされる。
レジスタ14は例えば、カードアドレスを保持する。ここで、カードアドレスは例えば、ホストHからカード型入出力装置へのR/W命令に含まれる。入出力部11AはR/W命令の受信時、その宛先アドレスとレジスタ14により保持されたカードアドレスとを比較し、そのR/W命令が自分宛であるか否かを判断する。
複合I/Oカード10Aでは、メモリユニット1AとI/Oユニット2Aとのいずれか一方とホストHとの間でカードアドレスの設定が行われるとき、後述のように他方のカードアドレスも同様に更新される。それにより、両ユニットは共通のカードアドレスを保持する。
【0054】
入出力部11Aの状態はコマンドに応じ一般に遷移する。状態通知部15Aは、コマンド解読部13により解読されたコマンドに基づき入出力部11Aでの状態遷移を検知し、I/Oユニット2Aの入出力部21Aへ通知する。
【0055】
レスポンス抑制部16Aは、コマンド解読部13により受信されるコマンドを監視する。更に、そのコマンドの内容、メモリユニット1Aの入出力部11Aの状態、及び、I/Oユニット2Aの入出力部21Aの状態通知部25Aから通知された状態に基づき、コマンド解読部13によるレスポンスの送出の是非を判断する(以下、その判断のことをレスポンス送出判断という)。その結果、I/Oユニット2AのレスポンスをホストHへ送出すべきと判断するとき、コマンド解読部13のレスポンスを抑制する。
コマンド解読部13により決定されたレスポンスは、レスポンス抑制部16Aによる抑制を受けないときのみ、コマンド線CMDを通しホストHへ返信される。
【0056】
レジスタ更新通知部17Aは、自己の属する入出力部11A内のレジスタ14を監視する。レジスタ14のいずれかで内容が更新されるとき、レジスタ更新通知部17Aはその更新内容を、I/Oユニット2Aの入出力部21Aのレジスタ24へ通知する。それにより、メモリユニット1Aの入出力部11AとI/Oユニット2Aの入出力部21Aとでは、それぞれのレジスタ14と24とが共通の内容を保持する。
【0057】
図2は、レスポンス抑制部16Aによるレスポンス送出判断のフローチャートである。
コマンド解読部13が一つのコマンドCを受信し、解読する。
コマンド解読部13によるコマンドCの解読結果に基づき、コマンドCがいずれの入出力部用のものであるのかを、レスポンス抑制部16Aは識別する(ステップD1)。
コマンドCが自己の属するメモリユニット1A用のものであるとき、レスポンス抑制部16Aはコマンド解読部13によるレスポンスの送出を認める(ステップR1)。
【0058】
コマンドCがI/Oユニット2A用のものであるとき、又はいずれの入出力部のものであるか識別できないとき、レスポンス抑制部16Aの判断はステップD2へ分岐する。ステップD2では、I/Oユニット2Aの入出力部21Aがアクティブであるか否か、すなわち、コマンドCに対しレスポンスを送出し得るか否かを、レスポンス抑制部16Aは、I/Oユニット2Aの状態通知部25Aから通知された状態に基づき判断する。
I/Oユニット2Aの入出力部21Aがアクティブでないとき、レスポンス抑制部16Aはコマンド解読部13によるレスポンスの送出を認める(ステップR1)。逆にアクティブであるとき、レスポンス抑制部16Aはコマンド解読部13のレスポンスを抑制する(ステップR2)。
【0059】
コマンドCが両ユニットの共通コマンドであるとき、レスポンス抑制部16AはI/Oユニット2Aの入出力部21Aの状態を、その状態通知部25Aからの通知に基づきチェックする(ステップD3)。それにより、両ユニットの入出力部の状態を比較し、いずれの入出力部のレスポンスを優先させるか、判断する。
その結果、メモリユニット1Aの入出力部11Aのレスポンスを優先すべきと判断するとき、コマンド解読部13によるレスポンスの送出を認める(ステップR1)。逆に、I/Oユニット2Aの入出力部21Aのレスポンスを優先すべきと判断するとき、コマンド解読部13によるレスポンスを抑制する(ステップR2)。
【0060】
両ユニットの入出力部の状態が実質的に同等で、共通コマンドに対しいずれの入出力部のレスポンスを送出しても良いとき、レスポンス抑制部16Aは更に、共通コマンドに対するレスポンスの送出についての優先権の有無をチェックする(ステップD4)。
ここで、その優先権を持つ入出力部とは、共通コマンドに対しレスポンスを優先的に送出するように予め設定された入出力部を意味する。優先権は、例えば複合I/Oカード10Aの製造時に、二つのユニットのいずれか一方の入出力部のみに対し設定される。
メモリユニット1Aの入出力部11Aが上記の優先権を持つとき、レスポンス抑制部16Aはコマンド解読部13によるレスポンスの送出を認める(ステップR1)。逆に優先権を持たないとき、コマンド解読部13によるレスポンスを抑制する(ステップR2)。
【0061】
メモリユニット1Aの入出力部11AとI/Oユニット2Aの入出力部21Aとは、ホストHとの間の物理的な接続部、特にバス3を共有する(図1参照)。従って、ホストHは複合I/Oカード10Aを、従来と同様な一つのカード型入出力装置としてアクセスする。それにより、ホストHのコマンドは、複合I/Oカード10A内の各ユニットへ個別には送出されず、両ユニットの入出力部により同時に受信される。その結果、両ユニットの入出力部間で、レスポンスの送出についての競合が一般に生じる。複合I/Oカード10Aでは、以下のように、両入出力部が相互に状態を通知し合い、それぞれの状態に応じ、レスポンスの送出について調停を行う。それにより、上記の競合が解消され、ホストHへは適切な一つのレスポンスが送出される。それ故、ホストHは複合I/Oカード10Aを従来のカード型入出力装置と同様に良好に認識でき、それぞれのユニットへのアクセスを良好に維持できる。
【0062】
以下、ホストHによる複合I/Oカード10A内の各ユニットに対する初期設定を例に挙げ、通知された入出力部の状態に応じた、レスポンスの送出についての調停動作を具体的に説明する。
図3は、複合I/Oカード10Aについて、メモリユニット1Aの入出力部11AとI/Oユニット2Aの入出力部21Aとのそれぞれの初期設定時の状態遷移を示す図である。初期設定時、メモリユニット1Aの入出力部11AとI/Oユニット2Aの入出力部21Aとはそれぞれ、状態遷移について、従来のカード型入出力装置の入出力部と共通する。
【0063】
入出力部は、ホストHから電源を投入されるとき(ステップS0)、又はホストHからリセット命令を受信するとき(ステップC0)、アイドル状態ST1へ遷移する。アイドル状態ST1の入出力部は、初期化命令を含む所定のコマンド群に対してのみレスポンスを送出し、他のコマンドに対してはレスポンスを送出しない。
【0064】
入出力部は、ホストHから初期化命令を受信するとき(ステップC1)、接続された機能部へ初期化を指示すると共に、自分自身を初期化する(ステップS1)。
ここで、ホストHは所定のコマンドにより、入出力部をアイドル状態ST1からインアクティブ状態ST5へ遷移させても良い。インアクティブ状態ST5の入出力部はホストHからの全てのコマンドに対しレスポンスを送出しない。
【0065】
初期化完了時、入出力部はスタンバイ状態ST2へ遷移する。スタンバイ状態ST2の入出力部は、ホストHからカードアドレス送出命令を受信する(ステップC2)ごとにカードアドレスを更新し、ホストHへ返信する。
ここで、入出力部はカードアドレスを、例えば一定のステップずつインクリメントして更新し、又は所定の範囲内でランダムに更新する。
ホストHは、返信されたカードアドレスを登録済のものと比較し、それらに重複がないとき、そのカードアドレスをその入出力部のものとして設定し、登録する。
カードアドレスの設定により、一つのカードに対する初期設定が終了する。
【0066】
ホストHは、初期設定を終えたカード型入出力装置の中からデータ転送対象を一つ選択し、カード選択命令を発行する。ここで、カード選択命令は宛先アドレスとして、登録済のカードアドレスを含む。初期設定を終えたスタンバイ状態ST2の入出力部は、カード選択命令の受信時(ステップC3)、その宛先アドレスと自身のカードアドレスとを比較する。両アドレスが一致するとき、入出力部はデータ転送可能状態ST3へ遷移する。
データ転送可能状態ST3の入出力部では、ホストHからのR/W命令の受信が可能である。その入出力部は、R/W命令の受信(ステップC4)により、ホストHとの間でデータ転送を開始する。
【0067】
図4と図5とは複合I/Oカード10Aの初期設定のフローチャートである。それぞれの図の(a)はホストHについてのフローチャートであり、(b)は複合I/Oカード10A内の二つの入出力部11Aと21Aとのそれぞれについてのフローチャートである。
【0068】
図4は、初期設定開始からメモリユニット1AとI/Oユニット2Aとの初期化完了までのフローチャートである。
図4の(a)に示されるように、ホストHは複合I/Oカード10Aへ電源を投入し(ステップS0)、又はリセット命令を発行し(ステップC0A又はC0B)、初期設定を開始する。
ここで、ホストHによる電源投入は、ホストH自体のパワーオンリセットによるものでも、ホストHのスロットへの複合I/Oカード10Aの活線挿入によるものでも良い。
【0069】
電源投入時、複合I/Oカード10A内の二つの入出力部11Aと21Aとの両方がリセットされる。
一方、リセット命令はメモリカードとI/Oカードとで異なるので、メモリカード用リセット命令の発行時(ステップC0A)ではメモリユニット1Aだけがリセットされ、I/Oカード用リセット命令の発行時(ステップC0B)ではI/Oユニット2Aだけがリセットされる。ホストHは、メモリユニット1AとI/Oユニット2Aとのいずれか一方のみをリセットするときは、目標のユニットに対応するリセット命令のみを発行する。そのとき、リセット命令を受けないユニットは元の状態を維持する。
【0070】
電源投入でのリセットでは(ステップS0)、例えば、I/Oユニット2Aがまずリセットされる。一方、リセット命令でのリセットでは、ホストHは、例えば、I/Oユニット2A用のリセット命令をまず発行する(ステップC0A)。すなわち、ホストHがI/Oユニット2Aのリセットをスキップしない限り、初期設定ではI/Oユニット2Aが先にリセットされる。
リセットにより、I/Oユニット2Aの入出力部21Aは、図4の(b)に示されるように、アイドル状態ST1へ遷移する。
【0071】
ホストHは、I/Oユニット2Aへ初期化命令を発行し、その初期化を指示する(ステップS1A)。その初期化命令の受信時(ステップC1)、I/Oユニット2Aの入出力部21Aは初期化を開始する(ステップS1)。その初期化は、I/Oユニット2A内の無線通信部22A、撮像部22B、及びその他の機能部、並びに、I/Oユニット2Aへ接続された外部の情報処理機器の初期化を含む。初期化処理の間、入出力部21Aは更に、レジスタ24内のビジーフラグをオンする。ビジーフラグは例えばレジスタ24内の所定の1ビットデータとして定義される。
【0072】
ここで、ホストHはI/Oユニット2Aに対し初期化命令を発行せず、I/Oユニット2Aの初期化をスキップしても良い。そのとき、I/Oユニット2Aの入出力部21Aはアイドル状態ST1のまま維持される。入出力部21Aは内部の状態通知部25Aにより、アイドル状態ST1に維持されることをメモリユニット1Aの入出力部11Aへ通知する(ステップS4)。アイドル状態ST1の入出力部21Aは、初期化命令の受信(ステップC1)まで、他のコマンドに対しレスポンスを送出しない。
【0073】
ホストHは更に、I/Oユニット2Aの入出力部21Aのアイドル状態ST1を、インアクティブ状態ST5へ遷移させても良い。そのとき、入出力部21Aはインアクティブ状態ST5であることをメモリユニット1Aの入出力部11Aへ通知する(ステップS5)。インアクティブ状態ST5の入出力部21Aはレスポンスを一切送出しない。
【0074】
I/Oユニット2Aの入出力部21Aは、アイドル状態ST1又はインアクティブ状態ST5であるとき、無線通信部22A及び撮像部22B等の機能部への電力供給を停止しても良い。それにより、ホストHがI/Oユニット2A内、又はそれに接続された機能部を使用しないとき、それらの待機時での電力消費を低減できる。
【0075】
I/Oユニット2Aでの初期化処理の間、ホストHはポーリングにより、I/Oユニット2Aのビジーフラグを監視する(ステップS2A)。そのビジーフラグがオンである間、ホストHは新たなコマンドを発行しない。
I/Oユニット2Aの入出力部21Aは初期化完了時、ビジーフラグをオフする(ステップS3)。それにより、入出力部21Aはスタンバイ状態ST2へ遷移する。そのとき、入出力部21Aは状態通知部25Aにより、その状態遷移をメモリユニット1Aの入出力部11Aへ通知する(ステップS11)。
【0076】
電源投入(ステップS0)では、続いてメモリユニット1Aがリセットされる。一方、リセット命令によるリセットでは、ホストHがメモリユニット1A用のリセット命令を発行するとき(ステップC0B)、メモリユニット1Aがリセットされる。
以後、ホストHがメモリユニット1Aへの初期化命令の発行(ステップS1B)をスキップしない限り、上記のI/Oユニット2Aの初期化と同様に、メモリユニット1Aの初期化が実行される。
ここで、リセット又は初期化を通し遷移したメモリユニット1Aの入出力部11Aの状態は、内部の状態通知部15Aにより、I/Oユニット2Aの入出力部21Aへ通知される。こうして、それぞれのユニットの入出力部は相互の状態を把握する。
【0077】
メモリユニット1Aでの初期化処理の間、ホストHはポーリングにより、メモリユニット1Aのビジーフラグを監視する(ステップS2B)。そのビジーフラグがオフされた時、ホストHはカードアドレスの設定処理を開始する。メモリユニット1Aのリセット又は初期化がスキップされたときは、I/Oユニット2Aのビジーフラグがオフされた時、ホストHはカードアドレスの設定処理を開始する。
【0078】
図5は、カードアドレスの設定から初期設定の終了までのフローチャートである。
スタンバイ状態ST2の入出力部は、ホストHからのカードアドレス送出命令、又はカード選択命令を待つ(ステップS4)。ここで、カードアドレス送出命令とカード選択命令とは、メモリユニット1AとI/Oユニット2Aとで共通のコマンドである。
【0079】
ホストHはスタンバイ状態ST2の入出力部へ、カードアドレス送出命令を発行する(ステップS6)。そのカードアドレス送出命令は、メモリユニット1Aの入出力部11AとI/Oユニット2Aの入出力部21Aとの両方により、実質上同時に受信される。そのとき、それぞれの入出力部がいずれもアクティブであれば、レスポンスの送出について競合が生じる。
【0080】
複合I/Oカード10Aは上記の競合を次のように解消する。
スタンバイ状態ST2にあるメモリユニット1Aの入出力部11A又はI/Oユニット2Aの入出力部21Aでは、カードアドレス送出命令ともカード選択命令とも異なるコマンドの受信時、それぞれのレスポンス抑制部16A又は26Aが、図2のフローチャートに従い、レスポンス送出判断を行う(ステップS12)。それにより、適切なレスポンスが一つ選択され、ホストHへ返信される。一方、スタンバイ状態ST2にある入出力部は、再びホストHからのコマンドを待つ(ステップS4)。
コマンドが識別できないときも、同様である。
【0081】
スタンバイ状態ST2にある入出力部がカードアドレス送出命令を受信するとき、そのレスポンス抑制部は、図2のフローチャートに従い、レスポンス送出判断を行う(ステップS13)。
レスポンスの送出を認めるとき(ステップR1)、入出力部はまず、レジスタに保持されたカードアドレスを更新する(ステップS7)。
そのカードアドレスの更新は、その入出力部内のレジスタ更新通知部により、他方の入出力部へ通知される(ステップS14)。それにより、両方の入出力部が共通のカードアドレスを保持する。
入出力部は更に、更新されたカードアドレスを、カードアドレス送出命令に対するレスポンスとして、ホストHへ送出する(ステップS8)。その送出後、入出力部はホストHからのコマンドを待つ(ステップS4)。
【0082】
ホストHは、複合I/Oカード10Aからカードアドレスを、カードアドレス送出命令のレスポンスとして受け取る。そのとき、そのカードアドレスを、他のカード型入出力装置に対し既に設定され、登録されたカードアドレスと比較する(ステップS9)。それらのカードアドレスの間で重複があるときは、ホストHは処理をステップS6へ戻し、カードアドレス送出命令を再び発行する。それにより、複合I/Oカード10A内のそれぞれの入出力部は上記のステップS4、S12、S13、S7、S14、及びS8を繰り返し、新たなカードアドレスをホストHへ返信する。
【0083】
ホストHは、複合I/Oカード10Aにより送出されたカードアドレスと、ホストHへ登録済のカードアドレスとの間で重複がなくなるまで、ステップS6とS9とのループを繰り返す。それらのカードアドレスの間に重複がなくなったとき、ホストHは、複合I/Oカード10Aから送出されたカードアドレスを複合I/Oカード10Aのものとして設定し、登録する(ステップS10)。こうして、複合I/Oカード10Aのカードアドレスがユニークに設定され、初期設定が終了する。
【0084】
ホストHは、初期設定を終えた複合I/Oカード10Aをデータ転送対象として選択するとき、複合I/Oカード10Aに対しカード選択命令を発行する。ここで、そのカード選択命令は宛先アドレスとして、複合I/Oカード10Aのカードアドレスを含む。複合I/Oカード10Aの二つの入出力部11Aと21Aとの内、初期設定を終え、スタンバイ状態ST2にあるものは、カード選択命令の受信時、その宛先アドレスと自身のカードアドレスとを比較する。両アドレスが一致するとき、その入出力部はデータ転送可能状態ST3へ遷移する。
【0085】
ホストHは更に、複合I/Oカード10Aに対しR/W命令を発行する。ここで、R/W命令はメモリカード用とI/Oカード用とで異なるコマンドIDを持つ。従って、そのR/W命令が所属のユニット用であるか否かを、それぞれのコマンド解読部は識別できる。
【0086】
ホストHは、例えばメモリユニット1Aとの間でデータ転送を行うとき、複合I/Oカード10Aに対しメモリカード用のR/W命令を発行する。メモリユニット1Aのコマンド解読部13は、そのR/W命令の正常受信時、ACKを送出する。一方、I/Oユニット2Aのコマンド解読部23は、そのR/W命令の受信時、NAKを設定する。I/Oユニット2Aのレスポンス抑制部26Aはそのとき、メモリユニット1Aの入出力部11Aの状態をチェックする。それにより、メモリユニット1Aがアクティブであるとき、コマンド解読部23のレスポンスを抑制する。メモリユニット1Aがアクティブでない等、R/W命令に対しレスポンスを送出できない状態にあるときは、コマンド解読部23によるレスポンスの送出を認める。こうして、R/W命令に適切に対応したレスポンスだけが、ホストHへ返信される。
【0087】
以上の通り、実施例1による複合I/Oカード10Aでは、メモリユニット1Aの入出力部11AとI/Oユニット2Aの入出力部21Aとが相互の状態を監視する。レスポンスの送出について両入出力部の間で競合が生じるとき、それぞれの入出力部の状態に応じ、一方のレスポンスが抑制され、適切なレスポンスのみが送出される。こうして、レスポンス同士の衝突が回避されるので、ホストHは従来と同様なコマンド/レスポンス通信により、複合I/Oカード10Aを一枚のカード型入出力装置として良好に認識できる。
【0088】
《実施例2》
図6は、本発明の実施例2による複合I/Oカード10Bについて、ホストHとの間のデータ交換を示すブロック図である。
この複合I/Oカード10Bは実施例1による複合I/Oカード10Aと同様、メモリユニット1BとI/Oユニット2Bとを有する。しかし、メモリユニット1BとI/Oユニット2Bとでは、実施例1によるものと比べ、それぞれの入出力部11Bと21Bとが異なる。図6では、実施例1による複合I/Oカード10Aと同様な構成に対し、図1と同じ符号を付す。更に、それらの同様な構成の説明は実施例1でのものを援用する。
【0089】
メモリユニット1Bの入出力部11Bは、コマンド解読部13、レジスタ14、状態推測部15B、レスポンス抑制部16B、及びレジスタ推定部17Bを含む。同様に、I/Oユニット2Bの入出力部21Bは、コマンド解読部23、レジスタ24、状態推測部25B、レスポンス抑制部26B、及びレジスタ推定部27Bを含む。それぞれの構成について、両方の入出力部は共通する。以下、メモリユニット1Bの入出力部11Bについて構成の詳細を説明する。
【0090】
状態推測部15Bは、コマンド解読部13により受信されたコマンドの履歴を記憶する。コマンドはメモリユニット1BとI/Oユニット2Bとの両方へ通知されるので、その履歴は両ユニットで共通である。従って、その履歴に基づき、状態推測部15BはI/Oユニット2Bの入出力部21Bの状態を推測する。
【0091】
レスポンス抑制部16Bは、状態推測部15Bにより推測された状態に基づき、ホストHのコマンドに対するI/Oユニット2Bの応答動作を判断する。I/Oユニット2BのレスポンスをホストHへ送出すべきと判断するとき、メモリユニット1B内のコマンド解読部13のレスポンスを抑制する。こうして、メモリユニット1Bの入出力部11BとI/Oユニット2Bの入出力部21Bとの間でレスポンスの送出についての競合が解消され、レスポンス同士のコマンド線CMD上での衝突が回避される。
【0092】
レスポンス抑制部16Bは、実施例1のレスポンス抑制部16Aと同様に、レスポンス送出判断を行う(図2参照)。実施例1によるレスポンス送出判断と同様な部分については、実施例1での説明を援用する。
但し、ステップD2とステップD3とは、次の点で実施例1によるレスポンス送出判断と異なる。
ステップD2では、I/Oユニット2Aの入出力部21Aがアクティブであるか否かを、レスポンス抑制部16Bは、状態推測部15Bにより推測された状態に基づき判断する。
ステップD3では、レスポンス抑制部16Aは状態推測部15Bによる推測に基づき、I/Oユニット2Aの入出力部21Aの状態をチェックする。
【0093】
I/Oユニット2Bのコマンド解読部23により送出されたレスポンスは、コマンド線CMDとの節点(例えばワイヤードOR)を通し、メモリユニット1Bのコマンド解読部13へも到達する。レジスタ推定部17Bは、コマンド解読部13により受信されたI/Oユニット2Bのレスポンスを監視する。それにより、I/Oユニット2Bの入出力部21Bでのレジスタ24の更新を検知する。更に、そのレスポンスからレジスタ24の更新内容を推定し、メモリユニット1Bのレジスタ14を同様に更新する。こうして、メモリユニット1Bの入出力部11BとI/Oユニット2Bの入出力部21Bとでは、それぞれのレジスタ14と24とが共通の内容を保持する。
【0094】
特に、I/Oユニット2Bの入出力部21Bがスタンバイ状態ST2にあるとき、その入出力部21Bのレスポンスをレジスタ推定部17Bは監視し、入出力部21Bでのカードアドレスの更新を検知する。更に、更新されたカードアドレスを推定し、レジスタ14に保持されるカードアドレスを書き換える。こうして、I/Oユニット2Bのレジスタ24でカードアドレスが更新され、ホストHへ送出されるごとに、メモリユニット1Bのレジスタ14でもカードアドレスが同様に更新される。その結果、両ユニットが共通のカードアドレスを保持する。
【0095】
以下、ホストHによる複合I/Oカード10B内の各ユニットに対する初期設定を例に挙げ、推測された入出力部の状態に応じた、レスポンスの送出についての調停動作を具体的に説明する。
ここで、メモリユニット1Bの入出力部11BとI/Oユニット2Bの入出力部21Bとのそれぞれの初期設定時の状態遷移は、実施例1によるメモリユニット1Aの入出力部11AとI/Oユニット2Aの入出力部21Aと共通である。すなわち、その状態遷移については、従来のカード型入出力装置の入出力部と共通する。それ故、その説明は実施例1によるものを援用する(図3参照)。
【0096】
図7は、実施例2による複合I/Oカード10B内のそれぞれのユニットの入出力部について、その初期設定のフローチャートである。ここで、実施例1によるフローチャートと同様なステップに対しては、図3〜4と同じ符号を付す。更に、それらの説明は実施例1でのものを援用する。
一方、ホストHについての初期設定のフローチャートは、実施例1によるものと共通である。すなわち、ホストHは実施例2による複合I/Oカード10Bに対する初期設定を、実施例1による複合I/Oカード10Aに対するものと全く同様に実行する。
【0097】
実施例2による複合I/Oカード10Bに対する初期設定について、実施例1によるものとは異なる部分を、以下説明する。
メモリユニット1B又はI/Oユニット2Bのいずれか、又はその両方がリセットされるとき、リセットされた入出力部ではコマンドの履歴がクリアされる。従って、その入出力部では、状態推測部が他の入出力部の状態を推測しない。特に、電源投入時(ステップS0)、二つの入出力部はいずれもリセットされるので、それらのいずれの状態推測部も、他の入出力部の状態を推測しない。
ここで、リセットされた入出力部は、実施例1のような状態通知部を持たないので、アイドル状態ST1又はインアクティブ状態ST5のいずれでも、その状態を他の入出力部へは通知できない。
【0098】
リセット命令によりいずれか一方のユニットだけがリセットされるとき(ステップC0)、他方のユニットの入出力部では、コマンドの履歴が状態推測部により保持される。その状態推測部は、他のユニットに対するリセット命令の受信時、コマンドの履歴を参照し、「他の入出力部がリセットされ、アイドル状態ST1にある」と推測する。
更に、アイドル状態ST1の入出力部をインアクティブ状態ST5へ移行させるためのコマンドの受信時、他の入出力部の状態推測部は、「他の入出力部がアイドル状態ST1からインアクティブ状態ST5へ遷移した」と推測する。
【0099】
アイドル状態ST1の入出力部は、初期化命令の受信(ステップC1)により初期化を開始する(ステップS1)。その初期化命令の受信時、他の入出力部の状態推測部は、「他の入出力部がアイドル状態ST1からスタンバイ状態ST2へ遷移した」と推測する。
【0100】
スタンバイ状態ST2にある入出力部は、カードアドレス送出命令に従いカードアドレスを更新しても(ステップS7)、更新されたカードアドレスを他の入出力部へ通知しない。しかし、他の入出力部では、レジスタ推定部が上記のように、スタンバイ状態ST2にある入出力部のレスポンスに基づき、更新されたカードアドレスを推定し、カードアドレスを同様に更新する。
特に、両ユニットの入出力部が共にスタンバイ状態ST2にあるとき、レスポンス抑制部によるレスポンス送出判断(図2参照)に基づき、優先権を持たない入出力部は、カードアドレス送出命令に対するレスポンス、すなわちカードアドレスの送出を抑制する(ステップS15)。更に、ステップS4で、ホストHからのコマンドと共に、優先権を持つ入出力部から送出されるレスポンスを監視する。そのレスポンスから、優先権を持つ入出力部でのカードアドレスの更新が検知されるとき、レジスタ推定部が上記のように、カードアドレスを同様に更新する(ステップS17)。
【0101】
スタンバイ状態ST2にある入出力部は、ステップS4でカード選択命令を受信するとき、データ転送可能状態ST3へ遷移する。従って、いずれの入出力部も、カード選択命令の受信時、「スタンバイ状態ST2にある他の入出力部がデータ転送可能状態ST3へ遷移した」と推測する。
【0102】
コマンドの履歴に基づく他の入出力部の状態の推測、及び、他の入出力部のレスポンスの監視を通したレジスタの更新は、上記の初期設定でのものと同様に、データ転送可能状態以降の入出力部でも行われる。
【0103】
以上の通り、実施例2による複合I/Oカード10Bでは、メモリユニット1Bの入出力部11BとI/Oユニット2Bの入出力部21Bとがコマンドの履歴を記憶し、それに基づき相互の状態を推測する。ホストHのコマンドに対するレスポンスが競合するとき、それぞれの入出力部の状態に応じ、一方のレスポンスが抑制され、適切なレスポンスのみが送出される。それにより、ホストHは複合I/Oカード10Bを、一枚のカード型入出力装置として良好に認識できる。
【0104】
実施例2による複合I/Oカード10Bでは、実施例1による複合I/Oカード10Aと異なり、メモリユニット1BとI/Oユニット2Bとの間の配線が少ない。従って、ハードウエアが比較的簡単な構成であるので、回路規模を低減できる。
その反面、それぞれの入出力部による他の入出力部の状態の把握については、実施例1のような直接的監視が確実である。
【0105】
本発明による複合I/Oカードは、上記の実施例による構成の他に、次のような構成を持っても良い。
例えば、実施例1による構成で、レジスタ更新通知部を実施例2と同様なレジスタ推定部に置換しても良い。逆に、実施例2による構成で、レジスタ推定部を実施例1と同様なレジスタ更新通知部に置換しても良い。それらの構成でも、ホストのコマンドに対するレスポンスが競合するとき、それぞれの入出力部の状態に応じ、一方のレスポンスを抑制し、適切なレスポンスのみを送出できる。それにより、ホストはその複合I/Oカードを、一枚のカード型入出力装置として良好に認識できる。
以上のことは、当業者であれば、上記の実施例の説明に基づき、容易に理解できるであろう。
【0106】
【発明の効果】
本発明による複合入出力装置は、例えば二つの入出力部を有する。それらの入出力部は、共通のバスでホストへ接続され、共通のアドレスでアクセスされる。特に、ホストのコマンドは、いずれの入出力部宛であるかに関わらず、両方の入出力部へ到達する。それぞれの入出力部は、相互の状態に応じ、コマンドに対するレスポンスを送出し、又は抑制する。それにより、それぞれの入出力部のレスポンスの内、いずれか適切な一方だけがホストへ返信され、それらのレスポンス同士がバス上で衝突しない。こうして、この複合入出力装置は、二つの入出力部のいずれか一方だけを含む従来の入出力装置と同様な一つの入出力装置として、ホストにより良好に認識される。
【0107】
上記の複合入出力装置では、二つの入出力部が相互の状態を直接監視しても良い。その他に、それぞれの入出力部がコマンドの履歴を保持し、それに基づき相互の状態を推測しても良い。上記の監視及び推測のいずれでも、それぞれの入出力部が相互のレスポンスの内容を正確に把握できる。その結果、それぞれの入出力部がいずれのレスポンスを返信すべきかを、適切に判断できる。
【図面の簡単な説明】
【図1】本発明の実施例1による複合I/Oカード10Aについて、ホストHとの間のデータ交換を示すブロック図である。
【図2】本発明の実施例1による複合I/Oカード10Aでの、レスポンス抑制部16Aによるレスポンス送出判断のフローチャートである。
【図3】本発明の実施例1による複合I/Oカード10A、本発明の実施例2による複合I/Oカード10B、及び、従来のカード型入出力装置のいずれの入出力部についても共通である、初期設定時の状態遷移を示す図である。
【図4】本発明の実施例1による複合I/Oカード10Aの初期設定の内、初期設定開始からメモリユニット1AとI/Oユニット2Aとの初期化完了までのフローチャートである。(a)は、ホストHについてのフローチャートであり、(b)は、複合I/Oカード10A内の二つの入出力部11Aと21Aとのそれぞれについてのフローチャートである。
【図5】本発明の実施例1による複合I/Oカード10Aの初期設定の内、図4に示される部分に続く、カードアドレスの設定から初期設定の終了までのフローチャートである。(a)は、ホストHについてのフローチャートであり、(b)は、複合I/Oカード10A内の二つの入出力部11Aと21Aとのそれぞれについてのフローチャートである。
【図6】本発明の実施例2による複合I/Oカード10Bについて、ホストHとの間のデータ交換を示すブロック図である。
【図7】本発明の実施例2による複合I/Oカード10B内のそれぞれのユニットの入出力部について、その初期設定のフローチャートである。
【図8】従来のメモリカード100とホストHとの間でのデータ交換を示すブロック図である。
【図9】従来のI/Oカード200とホストHとの間でのデータ交換を示すブロック図である。
【図10】従来のカード型入出力装置に対する初期設定のフローチャートである。(a)はホストHについてのフローチャートであり、(b)はカード型入出力装置の入出力部についてのフローチャートである。
【図11】複合I/Oカード300の内部構成の一例を示すブロック図である。
【符号の説明】
10A 複合I/Oカード
1A メモリユニット
11A メモリユニット1Aの入出力部
2A I/Oユニット
21A I/Oユニット2Aの入出力部
3 バス
DAT データ線
CLK クロック線
VDD 電源線
VSS グラウンド線
CMD コマンド線
Claims (7)
- (A) ホストからのコマンドの内、第一のコマンド群に属するものを受信する第一の入出力部;
(B) 前記ホストからのコマンドの内、第二のコマンド群に属するものを受信する第二の入出力部;及び、
(C) 前記第一の入出力部と前記第二の入出力部とをそれぞれ前記ホストへ接続し、それらの入出力部により共用されるバス;
を有する複合入出力装置であり、
(D) 前記第一の入出力部と前記第二の入出力部とが前記ホストにより共通のアドレスでアクセスされ;
(E) 前記第一の入出力部が、前記第一のコマンド群において該第一の入出力部に専用となる専用コマンドに対するレスポンスを送出し;
(F) 前記第一の入出力部が前記専用コマンドに対してレスポンスを送出する際に、前記第二の入出力部が、レスポンスの送出を抑制する;
複合入出力装置。 - 前記第一の入出力部と前記第二の入出力部とのそれぞれが、
(A) 前記ホストからのコマンドを解読し、そのコマンドに対するレスポンスを前記ホストへ送出するためのコマンド解読部;
(B) 自己の属する前記入出力部の状態を他の前記入出力部へ通知するための状態通知部;及び、
(C) 前記状態通知部からの通知に基づいて、他の入出力部がレスポンスを送出する際に前記自己の属する入出力部の前記コマンド解読部による前記レスポンスを抑制するためのレスポンス抑制部;
を有する、請求項1記載の複合入出力装置。 - 前記第一の入出力部と前記第二の入出力部とのそれぞれが、
(A) 前記ホストからのコマンドを解読し、そのコマンドに対するレスポンスを前記ホストへ送出するためのコマンド解読部;
(B) 前記コマンドの履歴を記憶し、その履歴に基づき他の前記入出力部の状態を推測するための状態推測部;及び、
(C) 前記状態推測部による推測に基づいて、他の入出力部がレスポンスを送出すると推測される際に自己の前記コマンド解読部による前記レスポンスを抑制するためのレスポンス抑制部;
を有する、請求項1記載の複合入出力装置。 - 前記第一のコマンド群と前記第二のコマンド群との間の共通コマンドに対し、前記第一の入出力部がレスポンスを送出し、前記第二の入出力部がレスポンスを抑制する、請求項1記載の複合入出力装置。
- 前記入出力部のいずれか一方がアクティブでないとき、他方の前記入出力部が前記アクティブでない入出力部へのコマンドを受信し、該コマンドに対しレスポンスを送出する、請求項1記載の複合入出力装置。
- 前記第一の入出力部と前記第二の入出力部とのそれぞれが、
(A) 前記共通のアドレスを含む共通の認識情報を記憶するためのレジスタ;及び、
(B) 前記レジスタの更新時、その更新内容を他の前記入出力部へ通知するためのレジスタ更新通知部;
を含む、請求項1記載の複合入出力装置。 - 前記第一の入出力部と前記第二の入出力部とのそれぞれが、
(A) 前記共通のアドレスを含む共通の認識情報を記憶するためのレジスタ;及び、
(B) 他の前記入出力部の前記レスポンスを監視し、そのレスポンスに基づき、前記他の入出力部での前記レジスタの内容を推定するためのレジスタ推定部;
を含む、請求項1記載の複合入出力装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002195853A JP4132028B2 (ja) | 2002-07-04 | 2002-07-04 | 複合入出力装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002195853A JP4132028B2 (ja) | 2002-07-04 | 2002-07-04 | 複合入出力装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004038643A JP2004038643A (ja) | 2004-02-05 |
JP4132028B2 true JP4132028B2 (ja) | 2008-08-13 |
Family
ID=31704119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002195853A Expired - Lifetime JP4132028B2 (ja) | 2002-07-04 | 2002-07-04 | 複合入出力装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4132028B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7209995B2 (en) * | 2003-12-09 | 2007-04-24 | Sandisk Corporation | Efficient connection between modules of removable electronic circuit cards |
JP4515793B2 (ja) * | 2004-03-11 | 2010-08-04 | 株式会社東芝 | メモリカード装置およびメモリカード制御方法 |
CN1957601B (zh) * | 2004-03-25 | 2010-12-08 | 索尼株式会社 | 信息信号处理设备、功能块控制方法和功能块 |
JP2017120985A (ja) * | 2015-12-28 | 2017-07-06 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法及びプログラム |
-
2002
- 2002-07-04 JP JP2002195853A patent/JP4132028B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004038643A (ja) | 2004-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7392409B2 (en) | Data processing apparatus and power control method | |
JP5726240B2 (ja) | 無線インターネットアクセス装置、sd制御チップ、及びデータ通信の方法 | |
US8483261B2 (en) | Apparatus and method for controlling universal IC card in complex terminal | |
JP2002300229A (ja) | Usb通信制御装置、usb通信システムおよびusb通信制御方法 | |
JP2006024217A (ja) | 複数の機能デバイスで単一のホスト・コントローラを共有すること | |
JP2008009979A (ja) | スマートカードの操作システム及び方法 | |
US20100064036A1 (en) | Peripheral device operation method, peripheral device and host | |
JP2008527553A (ja) | 移動デバイスの起動手順を初期化するための方法及びデバイス | |
JP2006101432A (ja) | 光送受信モジュール | |
JP2010198357A (ja) | インタフェース制御装置 | |
JP2010117894A (ja) | メモリ装置 | |
JP4132028B2 (ja) | 複合入出力装置 | |
JP3492229B2 (ja) | 通信制御装置 | |
EP0886410A2 (en) | Data communication method, data communication apparatus, and data communication program recording medium | |
CN109388606A (zh) | 一种芯片内可重构的串行总线控制器 | |
JPH11177598A (ja) | ハブ装置およびハブ装置の通信方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
KR100736902B1 (ko) | 복수의 프로세서에 의한 메모리 공유 방법 및 장치 | |
US20150281370A1 (en) | Apparatus, communication control system, and communication control method | |
US7549594B2 (en) | Electronic device having plurality of functional units and controller for controlling registers according to status of functional units | |
JP4723381B2 (ja) | バスシェアーアダプター機能を有するsdioカードデバイス | |
US20010028656A1 (en) | Information signal processing apparatus and method | |
JPH11345193A (ja) | シリアルバスインタフェースデバイスおよびバスの構成方法、記録媒体、シリアルバスインタフェ−スシステム | |
CN113961496A (zh) | 通信电路系统、方法、芯片以及存储介质 | |
JPWO2002056547A1 (ja) | 切替え中継装置、及び切替え中継システム | |
JP2004326233A (ja) | カードスロット付インタフェースカード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050524 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050701 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080408 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080430 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080530 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4132028 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120606 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130606 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130606 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140606 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |