(57)【要約】【課題】ホストコントローラの端子数を増やさずに複数のＩ／Ｏデバイスを接続できるコンピュータシステムを提供する。【解決手段】Ｉ／Ｏデバイスは、第１のバスと第２のバスと、モード設定手段と、デバイス番号設定手段を備え、動作モードがマスタモードに設定されたＩ／Ｏデバイスはコマンド応答や割り込みの調停を行う。これによりブロードキャストコマンドに対する応答の衝突やデータ転送と割り込みの衝突を起こさずに、ホストコントローラと複数のＩ／Ｏデバイスを含むコンピュータシステムを構成することができる。【選択図】図１
2009123141.tif 000002
【特許請求の範囲】
【請求項１】
ホストコントローラと接続してデータや制御情報の入出力と割込み制御を行う制御部を備えたＩ／Ｏデバイスであって、
前記Ｉ／Ｏデバイスは、クロック、コマンド、データを送るための信号線を含む第1のバスを備え、
前記制御部は前記第1のバスのコマンド線を用いて、
指定されたデバイスのみ応答する指定コマンドと、
接続された全デバイスが応答するブロードキャストコマンドを受け付けて応答を返すコマンド制御部と、
前記第1のバスのデータ線を用いてデータの送受信を行うデータ制御部と、
前記第1のバスのデータ線を用いて割り込みをホストコントローラへ伝送する割り込み制御部を備え、
前記Ｉ／Ｏデバイスはクロック、コマンド、データを送るための信号線を含む１以上の第２のバスと、
前記Ｉ／Ｏデバイスと前記ホストコントローラとの通信のためのデバイス番号を設定するデバイス番号設定手段と、
少なくともマスタモードを含む前記Ｉ／Ｏデバイスの動作モードを設定するための、モード設定手段を備えることを特徴とするＩ／Ｏデバイス。
【請求項２】
前記割り込み制御部は前記第1のバスの割り込み可能期間に割り込みを発生させることを特長とする請求項１記載のＩ／Ｏデバイス。
【請求項３】
前記割り込み制御部は他のＩ／Ｏデバイスが発生した割り込みを受信すると、当該Ｉ／Ｏデバイスの第1のバスの割込み可能期間に割り込みを発生させることを特徴とする請求項２記載のＩ／Ｏデバイス。
【請求項４】
前記割り込み制御部は、割り込みを発生させたＩ／Ｏデバイスを特定するための、前記ホストコントローラから読み出し可能な割り込み要因情報を備えることを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項５】
前記割り込み制御部の発生する割り込みは、２本以上の前記データ線を用いて、割り込みを発生したＩ／Ｏデバイスが特定できるようにホストコントローラへ伝送されることを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項６】
前記コマンド制御部は、前記ホストコントローラからの初期化コマンドを受信すると、初期化状態を示すＲｅａｄｙ信号を含む応答を返し、前記動作モードがマスタモードに設定されたＩ／Ｏデバイスの前記制御部は、他のＩ／Ｏデバイスからの応答に含まれる前記Ｒｅａｄｙ信号が初期化完了を示した場合に前記ホストコントローラへの応答に含まれる前記Ｒｅａｄｙビットを初期化完了として応答を返すことを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項７】
前記動作モードがマスタモードに設定されたＩ／Ｏデバイスの前記コマンド制御部は、前記ホストコントローラが他のＩ／Ｏデバイスに発行したコマンドに対して所定のタイミングで応答を返すことを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項８】
前記動作モードがマスタモードに設定されたＩ／Ｏデバイスの前記コマンド制御部は、予め取得した他のＩ／Ｏデバイスの状態を前記ホストコントローラへの応答に含めることを特徴とする請求項７記載のＩ／Ｏデバイス。
【請求項９】
前記第２のバスに接続された別のＩ／Ｏデバイスが返す応答に自身の応答を重畳して前記第１のバスに送出することを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項１０】
前記第２のバスに接続された別のＩ／Ｏデバイスが返す応答を受信すると、自身のレスポンスのみを第１のバスへ送出することを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項１１】
前記コマンド制御部は、前記ホストコントローラからデバイス番号設定コマンドを受信すると、前記デバイス番号設定手段で設定されたデバイス番号を返すことを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項１２】
前記デバイス番号設定手段はデバイス番号を保持するレジスタを備えることを特徴とする請求項１１記載のＩ／Ｏデバイス。
【請求項１３】
前記デバイス番号設定手段は外部端子で設定されたデバイス番号を保持することを特徴とする請求項１１記載のＩ／Ｏデバイス。
【請求項１４】
前記デバイス番号設定手段は乱数を用いてデバイス番号を設定し保持することを特徴とする請求項１１記載のＩ／Ｏデバイス。
【請求項１５】
前記コマンド制御部は、前記第２のバスに接続されたＩ／Ｏデバイスが前記デバイス番号設定コマンドに応答を返した場合に、次の前記デバイス番号設定コマンドに応答を返すことを特徴とする請求項１１記載のＩ／Ｏデバイス。
【請求項１６】
前記コマンド制御部は、前記デバイス番号設定コマンドに応答を返していない場合は、前記第１のバスで受信したコマンドを前記第２のバスに送出し、前記デバイス番号設定コマンドに応答を返した場合には、以降のデバイス番号設定コマンドに応答を返さないことを特徴とする請求項１１記載のＩ／Ｏデバイス。
【請求項１７】
前記データ制御部は、ホストコントローラからのデータ書き込み中、データを受信できない場合にビジー信号を返し、
前記動作モードがマスタモードに設定された前記Ｉ／Ｏデバイスは、他のＩ／Ｏデバイスへのデータ書き込み中にビジー信号を所定のタイミングで前記ホストコントローラへ返すことを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項１８】
前記第２のバスに接続したＩ／Ｏデバイスから前記データ書き込み中のビジー信号を受信し、前記第１のバスに送出することを特徴とする請求項１７記載のＩ／Ｏデバイス。
【請求項１９】
前記データ制御部は、前記他のＩ／Ｏデバイスへのデータ書き込み中のビジー信号の送出開始を所定のタイミングで行い、前期ビジー信号の送出停止を、前記他のＩ／Ｏデバイスのビジー信号送出停止後に行うことを特徴とする請求項１７記載のＩ／Ｏデバイス。
【請求項２０】
前記データ制御部は、ホストコントローラからの書き込みデータを正しく受信したことを示すＣＲＣステータスを返し、前記動作モードがマスタモードに設定された前記Ｉ／Ｏデバイスは、他のＩ／Ｏデバイスへのデータ書き込みに対するＣＲＣステータスを所定のタイミングで返すことを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項２１】
前記第２のバスに接続したＩ／ＯデバイスからＣＲＣステータスを受信し、前記第１のバスに送出することを特徴とする請求項２０記載のＩ／Ｏデバイス。
【請求項２２】
前記第１のバスのクロックに同期した前記第１のバスのコマンド及びデータ信号を前記第２のバスのクロックに同期した前記第２のバスのコマンド及びデータ信号として出力し、
前記第２のバスで受信した前記第２のバスのコマンド及びデータ信号を前記第１のバスのクロックに同期した前記第１のバスのコマンドおよびデータ信号として出力することを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項２３】
前記第１のバスのクロックと前記第２のバスのクロックの周波数または位相が異なることを特徴とする請求項２２記載のＩ／Ｏデバイス。
【請求項２４】
請求項１〜２３記載のＩ／Ｏデバイスと接続してデータや制御信号の入出力と割込み制御を行うデバイス制御部を備えるホストコントローラ。
【請求項２５】
前記ブロードキャストコマンドを発行した場合、応答に含まれる応答情報の内容を確認しないことを特徴とする請求項２４記載のホストコントローラ。
【請求項２６】
複数の前記Ｉ／Ｏデバイスが接続されている場合に、前記ブロードキャストコマンドの引数には、デバイス番号を設定することを特徴とする請求項２４記載のホストコントローラ。
【請求項２７】
前記初期化コマンドを発行した場合、応答に含まれる応答情報のうち前記Ｒｅａｄｙ信号により初期化完了を判断することを特徴とする請求項２４記載のホストコントローラ。
【請求項２８】
前記割り込みを検出すると、前記動作モードがマスタモードに設定されたＩ／Ｏデバイスの割り込み要因情報を読み出して割り込みを発生したＩ／Ｏデバイスを特定し、該割り込みを発生したＩ／Ｏデバイスの割り込み要因情報を読み出すことを特徴とする請求項２４記載のホストコントローラ。
【請求項２９】
前記第1のバスの２本以上のデータ線を用いて送られた割り込み信号を元に、割り込みを発生したＩ／Ｏデバイスを特定し、該割り込みを発生したＩ／Ｏデバイスの割り込み要因情報を読み出すことを特徴とする請求項２４記載のホストコントローラ。
【請求項３０】
少なくとも１つの請求項１〜２３記載のＩ／Ｏデバイスと少なくとも１つの請求項２４〜２９記載のホストコントローラを接続して構成するコンピュータシステムであって、
前記コンピュータシステムは、１以上の第２のバスを持つ請求項１〜２３記載の前記Ｉ／Ｏデバイスを少なくとも1つ含み、
前期第２のバスを持つＩ／Ｏデバイスのうちの１つについて、動作モードをマスタモードにし、
前記動作モードがマスタモードであるＩ／Ｏデバイスの前記第１のバスをホストコントローラと接続し、各Ｉ／Ｏデバイスは、第１のバスと別のＩ／Ｏデバイスの第２のバスとを接続することを特徴とするコンピュータシステム。
【請求項３１】
前記動作モードがマスタモードであるＩ／Ｏデバイスの２以上の第２のバスに、複数のＩ／Ｏデバイスの第1のバスを接続し、前記動作モードがマスタモードであるＩ／Ｏデバイスの前記第1のバスと前記ホストコントローラを接続したことを特徴とする請求項３０記載のコンピュータシステム。
【請求項３２】
前記動作モードがマスタモードに設定されたＩ／Ｏデバイス以外のＩ／Ｏデバイスは、第２のバスを持たないことを特徴とする請求項３１記載のコンピュータシステム。
【請求項３３】
前記動作モードがマスタモードに設定されたＩ／Ｏデバイス以外のＩ／Ｏデバイスは、前記モード設定手段を持たないことを特徴とする請求項３１記載のコンピュータシステム。
【請求項３４】
前記動作モードがマスタモードに設定されたＩ／Ｏデバイス以外のＩ／Ｏデバイスは自身の前記第1のバスの割込み可能期間に割り込みを発生することを特徴とする請求項３１記載のコンピュータシステム。
【請求項３５】
前記複数のＩ／Ｏデバイスについて、前期第２のバスと別のＩ／Ｏデバイスの前記第1のバスを接続してデイジーチェーン接続で構成されることを特徴とする請求項３０記載のコンピュータシステム。
【請求項３６】
前記複数のＩ／Ｏデバイスは第1、第2のバスとは異なる割込み出力端子と割込み入力端子を備えることを特徴とする請求項３５記載のコンピュータシステム。
【請求項３７】
前記Ｉ／Ｏデバイスの割り込み制御部は、前記割込み出力端子からの割り込みをオープンドレイン方式で出力することを特徴とする請求項３６記載のコンピュータシステム。
【請求項３８】
前記動作モードがマスタモード以外のＩ／Ｏデバイスの割り込み出力端子を前記動作モードがマスタモードの割り込み入力端子に接続することを特徴とする請求項３６記載のコンピュータシステム。
【請求項３９】
前記動作モードがマスタモード以外のＩ／Ｏデバイスは、割り込みを発生する場合に割り込み出力端子を使用することを特徴とする請求項３６記載のコンピュータシステム。
【請求項４０】
前記複数のＩ／Ｏデバイスの前記第１のバスのクロック線が前記ホストコントローラに接続されることを特徴とする請求項３０記載のコンピュータシステム。
【請求項４１】
前記複数のＩ／Ｏデバイスの前記第１のバスのクロック、コマンド線がホストコントローラに接続されることを特徴とする請求項３０記載のコンピュータシステム。
【請求項４２】
少なくとも１つの前記Ｉ／Ｏデバイスは不揮発性メモリと不揮発性メモリ制御部からなるメモリ部を備えることを特徴とする請求項３０記載のコンピュータシステム。
【請求項４３】
少なくとも１つの前記Ｉ／Ｏデバイスは割り込み制御部を備えないことを特徴とする請求項３０記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はホストコントローラと接続してデータや制御情報の入出力を行うＩ／Ｏデバイスとそのホストコントローラ、およびＩ／Ｏデバイスとそのホストコントローラを含んで構成されるコンピュータシステムに関する。
【背景技術】
【０００２】
パーソナルコンピュータ、ムービー、携帯電話、携帯型音楽プレーヤなどのデジタル情報を扱う機器(以下、ホスト機器という)において、デジタル情報を保持するための記憶装置として不揮発性メモリを搭載した半導体装置がある。半導体装置とホスト機器とは、複数の信号線を介して一対一で接続され、一対のバスを介してデータや制御情報の入出力を行う。このような半導体装置の中には、不揮発性メモリ以外に無線通信機能等のＩ／Ｏ機能を搭載したＩ／Ｏデバイスがある。
【０００３】
Ｉ／Ｏデバイスでは、外部から非同期に発生する割り込みをホスト機器に伝える必要があり、特許文献１にはこのようなＩ／Ｏデバイスにおいて少ない入出力端子で割り込み信号を伝送する方法が開示されている。
【０００４】
図２３は従来のＩ／Ｏデバイスの一例を示すブロック図である。図２３において、Ｉ／Ｏデバイス１はＣＬＫ、ＣＭＤ、ＤＡＴ０−３からなるバスを介してホストコントローラ２と接続される。Ｉ／Ｏデバイス１はバスＩＦ部１００、制御部１０１、Ｉ／Ｏ部１０２およびメモリ部１０３を備える。またホストコントローラ２はバスＩＦ部２０、デバイス制御部２１、ＣＰＵ２２およびＲＯＭ／ＲＡＭ２３を備える。
【０００５】
図２４は従来のＩ／Ｏデバイス１とホストコントローラ２のコマンド応答シーケンスおよびデータ転送を説明する図である。
【０００６】
図２４において１）はデータ転送を伴わないコマンドと応答の通信を示す。ホストコントローラ２からのコマンドに対するＩ／Ｏデバイス１の応答がＣＭＤ線を介して送受信される。
【０００７】
２）はＩ／Ｏデバイス１に対するデータの書き込みシーケンスを示す。コマンドと応答の送受信に続いてホストコントローラ２はライトデータを所定のブロック単位でＤＡＴ０−３を用いて送信する。Ｉ／Ｏデバイス１はデータを正しく受信できたかを示すＣＲＣ情報を返すとともに、データの受信ができない場合またはデータをＩ／Ｏデバイス１の内部で処理中の場合にはＤＡＴ０−３のいずれかを用いてｂｕｓｙ信号をホストコントローラ２に伝える。
【０００８】
３）はＩ／デバイス１からのデータの読み出しシーケンスを示す。コマンドと応答の送受信に続いてＩ／Ｏデバイス１はリードデータを所定のブロック単位でホストコントローラ２に対して送信する。
【０００９】
図２５は従来のＩ／Ｏデバイス１が発生する割り込み信号を説明する図である。
【００１０】
図２５において１）はＩ／Ｏデバイス１とホストコントローラ２が通信を行っていない場合の割り込みを示す。時刻Ｔ１においてＩ／Ｏデバイス１はＤＡＴ０−３のいずれかを用いて割り込み信号ＩＲＱをアサートする。ホストコントローラ２は割り込みＩＲＱを認識すると、要因確認のためのコマンドを発行し、Ｉ／Ｏデバイス１の返す応答の内容から割り込み要因を特定する。割り込み信号ＩＲＱはホストコントローラ２のコマンド発行〜Ｉ／Ｏデバイス１の応答送信の間の所定のタイミングＴ２でネゲートされる。
【００１１】
２）および３）はそれぞれデータの書き込み中および読み出し中の割り込みを示す。Ｉ／Ｏデバイス１はライトデータブロック間またはリードデータブロック間の所定のタイミングＴ３およびＴ４に割り込み信号ＩＲＱをアサートする。この場合割り込み信号ＩＲＱはバスの衝突、データの誤送信を防止するため所定期間（例えば数クロックサイクル）アサート後Ｉ／Ｏデバイス１がネゲートする。
【００１２】
このようにしてＩ／Ｏデバイス１とホストコントローラ２は少ない入出力端子で割り込み信号を伝送することができる。
【００１３】
図２６はＩ／Ｏデバイス１とホストコントローラ２が送受信するコマンド、応答のフォーマットおよびＩ／Ｏデバイス１の状態遷移を説明する図である。
【００１４】
（ａ）はホストコントローラ１が送信するコマンドのフォーマットを示す。コマンドには
１）特定のデバイスを指定せず、コマンドを受信した全てのＩ／Ｏデバイスが応答を返すブロードキャストコマンド
２）特定のデバイスを指定後に発行され、指定されたデバイスのみが応答を返すとともにコマンド処理を行う指定コマンド
の２種類がある。
【００１５】
（ｂ）は受信したコマンドに対してＩ／Ｏデバイス１が返す応答のフォーマットを示す。応答情報にはＩ／Ｏデバイスの初期化完了を示すフラグや動作条件、エラー情報やステータス情報など様々な情報が含まれる。
【００１６】
（ｃ）はＩ／Ｏデバイス１の状態遷移を示す。初期状態であるアイドル状態（Ｓ００１）からホストコントローラ２の初期化コマンドを受信すると初期化を行う（Ｓ００３）。初期化が完了するとデバイスＲｅａｄｙとなり、ホストコントローラ２のデバイス番号設定コマンドに応答してデバイス番号の設定を行い（Ｓ００３）、スタンバイ状態となる（Ｓ００４）。その後ホストコントローラ２の発行するコマンドに応じてアクティブ状態となりデータの送受信を行う（Ｓ００５）。Ｓ００１〜Ｓ００３の１）の期間はデバイス番号が設定されていないため、ホストコントローラ２の発行するコマンドはブロードキャストコマンドを発行する。Ｓ００４，Ｓ００５においてはデバイス番号が設定済みとなるため、ホストコントローラ２は指定コマンドを発行することができるようになる。
【特許文献１】特開２００２−３５１８１３
【発明の開示】
【発明が解決しようとする課題】
【００１７】
近年、ホスト機器に必要とされるＩ／Ｏ機能は多岐にわたるようになり、複数複数のＩ／Ｏデバイスを接続する必要が出てきている。このような複数デバイスを接続する場合には、ホスト機器に内蔵されるホストコントローラの端子数を増やさず接続できるバス接続が望ましい。しかし、以下に述べる理由から単に同一バスに複数のデバイスを接続することは困難である。
【００１８】
図２７は複数の従来のＩ／Ｏデバイスを同一のバスに接続した場合のブロードキャストコマンドの動作を示す図である。図２７ではホストコントローラ２と２つのＩ／Ｏデバイス１Ａ、１Ｂが同一バスに接続されている。ホストコントローラ２がブロードキャストコマンドを発行すると、Ｉ／Ｏデバイス１Ａおよび１Ｂはそれぞれ応答Ａ、応答ＢをＣＭＤ線で返そうとする。Ｉ／Ｏデバイス１Ａ、１Ｂの返す応答のタイミングは必ずしも同じではないため、ＣＭＤ線上では期間ＴＰ１の間信号の衝突が発生する。従来のＩ／Ｏデバイスはホストコントローラ２との一対一接続を前提としており、ＣＭＤ線用のＩ／Ｏバッファにプッシュプル回路を用いるため信号の衝突によるＩ／Ｏバッファの破壊が起こる可能性がある。
【００１９】
また、図２８は複数の従来のＩ／Ｏデバイスを同一のバスに接続した場合の割り込み信号の転送動作を示す図である。図２８ではホストコントローラ２と２つのＩ／Ｏデバイス１Ａ、１Ｂが同一バスに接続されている。ホストコントローラ２がＩ／Ｏデバイス１Ａにデータの書き込みを行っている時、Ｉ／Ｏデバイス１Ｂは通信を行っていないため、図２５の１）で示したように任意のタイミングでＤＡＴ０−３を用いて割り込みをアサートする。このときホストコントローラ２がＩ／Ｏデバイス１Ａにライトデータを転送していると期間ＴＰ２の間信号の衝突が発生する。従来のＩ／Ｏデバイスはホストコントローラ２との一対一接続を前提としており、ＤＡＴ０−３線用のＩ／Ｏバッファにプッシュプル回路を用いるため信号の衝突によるＩ／Ｏバッファの破壊が起こる可能性がある。
【００２０】
さらに、同一バスに複数のＩ／Ｏデバイスを接続した場合、信号を伝送する際のバスの負荷が増大するため、信号波形の立ち上がり／立ち下がりがなまる。このためホストコントローラ２とＩ／Ｏデバイス１Ａおよび１Ｂとは所望の動作周波数で信号の伝送ができなくなる課題が起こる。
【００２１】
以上の課題を踏まえて本発明は、ホストコントローラの端子数を増やすことなく複数のＩ／Ｏデバイスを接続可能なＩ／Ｏデバイスとそのホストコントローラおよび複数のＩ／Ｏデバイスとそのホストコントローラを含んで構成されるコンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【００２２】
この課題を解決するために、本発明のＩ／Ｏデバイスは、ホストコントローラと接続してデータや制御情報の入出力と割込み制御を行う制御部を備えたＩ／Ｏデバイスであって、前記Ｉ／Ｏデバイスは、クロック、コマンド、データを送るための信号線を含む第１のバスを備え、前記制御部は前記第１のバスのコマンド線を用いて、指定されたデバイスのみ応答する指定コマンドと、接続された全デバイスが応答するブロードキャストコマンドを受け付けて応答を返すコマンド制御部と、前記第１のバスのデータ線を用いてデータの送受信を行うデータ制御部と、前記第１のバスのデータ線を用いて割り込みをホストコントローラへ伝送する割り込み制御部を備え、前記Ｉ／Ｏデバイスはクロック、コマンド、データを送るための信号線を含む１以上の第２のバスと、前記Ｉ／Ｏデバイスと前記ホストコントローラとの通信のためのデバイス番号を設定するデバイス番号設定手段と、少なくともマスタモードを含む前記Ｉ／Ｏデバイスの動作モードを設定するための、モード設定手段を備える。
【００２３】
ここで、前記割り込み制御部は前記第１のバスの割り込み可能期間に割り込みを発生させてもよい。
【００２４】
ここで、前記割り込み制御部は他のＩ／Ｏデバイスが発生した割り込みを受信すると、当該Ｉ／Ｏデバイスの第１のバスの割込み可能期間に割り込みを発生させてもよい。
【００２５】
ここで、前記割り込み制御部は、割り込みを発生させたＩ／Ｏデバイスを特定するための、前記ホストコントローラから読み出し可能な割り込み要因情報を備えてもよい。
【００２６】
ここで、前記割り込み制御部の発生する割り込みは、２本以上の前記データ線を用いて、割り込みを発生したＩ／Ｏデバイスが特定できるようにホストコントローラへ伝送されてもよい。
【００２７】
ここで、前記コマンド制御部は、前記ホストコントローラからの初期化コマンドを受信すると、初期化状態を示すＲｅａｄｙ信号を含む応答を返し、前記動作モードがマスタモードに設定されたＩ／Ｏデバイスの前記制御部は、他のＩ／Ｏデバイスからの応答に含まれる前記Ｒｅａｄｙ信号が初期化完了を示した場合に前記ホストコントローラへの応答に含まれる前記Ｒｅａｄｙビットを初期化完了として応答をしてもよい。
【００２８】
ここで、前記動作モードがマスタモードに設定されたＩ／Ｏデバイスの前記コマンド制御部は、前記ホストコントローラが他のＩ／Ｏデバイスに発行したコマンドに対して所定のタイミングで応答を返してもよい。
【００２９】
ここで、前記動作モードがマスタモードに設定されたＩ／Ｏデバイスの前記コマンド制御部は、予め取得した他のＩ／Ｏデバイスの状態を前記ホストコントローラへの応答に含めてもよい。
【００３０】
ここで、前記第２のバスに接続された別のＩ／Ｏデバイスが返す応答に自身の応答を重畳して前記第１のバスに送出してもよい。
【００３１】
ここで、前記第２のバスに接続された別のＩ／Ｏデバイスが返す応答を受信すると、自身のレスポンスのみを第１のバスへ送出してもよい。
【００３２】
ここで、前記コマンド制御部は、前記ホストコントローラからデバイス番号設定コマンドを受信すると、前記デバイス番号設定手段で設定されたデバイス番号を返してもよい。
【００３３】
ここで、前記デバイス番号設定手段はデバイス番号を保持するレジスタを備えてもよい。
【００３４】
ここで、前記デバイス番号設定手段は外部端子で設定されたデバイス番号を保持してもよい。
【００３５】
ここで、前記デバイス番号設定手段は乱数を用いてデバイス番号を設定し保持してもよい。
【００３６】
ここで、前記コマンド制御部は、前記第２のバスに接続されたＩ／Ｏデバイスが前記デバイス番号設定コマンドに応答を返した場合に、次の前記デバイス番号設定コマンドに応答を返してもよい。
【００３７】
ここで、前記コマンド制御部は、前記デバイス番号設定コマンドに応答を返していない場合は、前記第１のバスで受信したコマンドを前記第２のバスに送出し、前記デバイス番号設定コマンドに応答を返した場合には、以降のデバイス番号設定コマンドに応答を返さなくてもよい。
【００３８】
ここで、前記データ制御部は、ホストコントローラからのデータ書き込み中、データを受信できない場合にビジー信号を返し、前記動作モードがマスタモードに設定された前記Ｉ／Ｏデバイスは、他のＩ／Ｏデバイスへのデータ書き込み中にビジー信号を所定のタイミングで前記ホストコントローラへ返してもよい。
【００３９】
ここで、前記第２のバスに接続したＩ／Ｏデバイスから前記データ書き込み中のビジー信号を受信し、前記第１のバスに送出してもよい。
【００４０】
ここで、前記データ制御部は、前記他のＩ／Ｏデバイスへのデータ書き込み中のビジー信号の送出開始を所定のタイミングで行い、前期ビジー信号の送出停止を、前記他のＩ／Ｏデバイスのビジー信号送出停止後に行ってもよい。
【００４１】
ここで、前記データ制御部は、ホストコントローラからの書き込みデータを正しく受信したことを示すＣＲＣステータスを返し、前記動作モードがマスタモードに設定された前記Ｉ／Ｏデバイスは、他のＩ／Ｏデバイスへのデータ書き込みに対するＣＲＣステータスを所定のタイミングで返してもよい。
【００４２】
ここで、前記第２のバスに接続したＩ／ＯデバイスからＣＲＣステータスを受信し、前記第１のバスに送出してもよい。
【００４３】
ここで、前記第１のバスのクロックに同期した前記第１のバスのコマンド及びデータ信号を前記第２のバスのクロックに同期した前記第２のバスのコマンド及びデータ信号として出力し、前記第２のバスで受信した前記第２のバスのコマンド及びデータ信号を前記第１のバスのクロックに同期した前記第１のバスのコマンドおよびデータ信号として出力してもよい。
【００４４】
ここで、前記第１のバスのクロックと前記第２のバスのクロックの周波数または位相が異なってもよい。
【００４５】
また、この課題を解決するために、本発明のホストコントローラは、Ｉ／Ｏデバイスと接続してデータや制御信号の入出力と割込み制御を行うデバイス制御部を備える。
【００４６】
ここで、前記ブロードキャストコマンドを発行した場合、応答に含まれる応答情報の内容を確認しなくてもよい。
【００４７】
ここで、複数の前記Ｉ／Ｏデバイスが接続されている場合に、前記ブロードキャストコマンドの引数には、デバイス番号を設定してもよい。
【００４８】
ここで、前記初期化コマンドを発行した場合、応答に含まれる応答情報のうち前記Ｒｅａｄｙ信号により初期化完了を判断してもよい。
【００４９】
ここで、前記割り込みを検出すると、前記動作モードがマスタモードに設定されたＩ／Ｏデバイスの割り込み要因情報を読み出して割り込みを発生したＩ／Ｏデバイスを特定し、該割り込みを発生したＩ／Ｏデバイスの割り込み要因情報を読み出すことを特徴とする請求項２４記載のホストコントローラ。
【００５０】
ここで、前記第１のバスの２本以上のデータ線を用いて送られた割り込み信号を元に、割り込みを発生したＩ／Ｏデバイスを特定し、該割り込みを発生したＩ／Ｏデバイスの割り込み要因情報を読み出してもよい。
【００５１】
また、この課題を解決するために、本発明のコンピュータシステムは、少なくとも１つのＩ／Ｏデバイスと少なくとも１つのホストコントローラを接続して構成するコンピュータシステムであって、前記コンピュータシステムは、１以上の第２のバスを持つ請求項１〜２３記載の前記Ｉ／Ｏデバイスを少なくとも１つ含み、前期第２のバスを持つＩ／Ｏデバイスのうちの１つについて、動作モードをマスタモードにし、前記動作モードがマスタモードであるＩ／Ｏデバイスの前記第１のバスをホストコントローラと接続し、各Ｉ／Ｏデバイスは、第１のバスと別のＩ／Ｏデバイスの第２のバスとを接続して構成される。
【００５２】
ここで、前記動作モードがマスタモードであるＩ／Ｏデバイスの２以上の第２のバスに、複数のＩ／Ｏデバイスの第１のバスを接続し、前記動作モードがマスタモードであるＩ／Ｏデバイスの前記第１のバスと前記ホストコントローラを接続してもよい。
【００５３】
ここで、前記動作モードがマスタモードに設定されたＩ／Ｏデバイス以外のＩ／Ｏデバイスは、第２のバスを持たなくてもよい。
【００５４】
ここで、前記動作モードがマスタモードに設定されたＩ／Ｏデバイス以外のＩ／Ｏデバイスは、前記モード設定手段を持たなくてもよい。
【００５５】
ここで、前記動作モードがマスタモードに設定されたＩ／Ｏデバイス以外のＩ／Ｏデバイスは自身の前記第１のバスの割込み可能期間に割り込みを発生してもよい。
【００５６】
ここで、前記複数のＩ／Ｏデバイスについて、前期第２のバスと別のＩ／Ｏデバイスの前記第１のバスを接続してデイジーチェーン接続で構成されてもよい。
【００５７】
ここで、前記複数のＩ／Ｏデバイスは第１、第２のバスとは異なる割込み出力端子と割込み入力端子を備えてもよい。
【００５８】
ここで、前記Ｉ／Ｏデバイスの割り込み制御部は、前記割込み出力端子からの割り込みをオープンドレイン方式で出力してもよい。
【００５９】
ここで、前記動作モードがマスタモード以外のＩ／Ｏデバイスの割り込み出力端子を前記動作モードがマスタモードの割り込み入力端子に接続してもよい。
【００６０】
ここで、前記動作モードがマスタモード以外のＩ／Ｏデバイスは、割り込みを発生する場合に割り込み出力端子を使用してもよい。
【００６１】
ここで、前記複数のＩ／Ｏデバイスの前記第１のバスのクロック線が前記ホストコントローラに接続されてもよい。
【００６２】
ここで、前記複数のＩ／Ｏデバイスの前記第１のバスのクロック、コマンド線がホストコントローラに接続されてもよい。
【００６３】
ここで、少なくとも１つの前記Ｉ／Ｏデバイスは不揮発性メモリと不揮発性メモリ制御部からなるメモリ部を備えてもよい。
【００６４】
ここで、少なくとも１つの前記Ｉ／Ｏデバイスは割り込み制御部を備えなくてもよい。
【発明の効果】
【００６５】
本発明のＩ／Ｏデバイス、ホストコントローラおよびコンピュータシステムによれば、ブロードキャストコマンドに対する応答の衝突やデータ転送と割り込みの衝突を起こさずにホストコントローラと複数のＩ／Ｏデバイスを含むコンピュータシステムを構成することができる。また、バスの負荷を増やさずにホストコントローラと複数のＩ／Ｏデバイスを接続でき、ホストコントローラとＩ／Ｏデバイスが所望の動作周波数で信号伝送を行うことができる。
【発明を実施するための最良の形態】
【００６６】
以下本発明の実施の形態について、図面を参照しながら説明する。
（第１の実施の形態）
［Ｉ／Ｏデバイス］
図１は本発明の第１実施の形態に係るＩ／Ｏデバイスの構成を説明する図である。図１において、Ｉ／Ｏデバイス１は、第１のバス１１、複数の第２のバス１２、制御部１３、デバイス番号設定手段１４、モード設定手段１５、メモリ制御部と不揮発性メモリからなるメモリ部１６、Ｉ／Ｏ制御部とＩ／Ｏ機能部からなるＩ／Ｏ部１７を備える。
【００６７】
第１のバス１１と制御部１３は第１のバスＩＦ部１１０を介して接続され、第２のバス１２と制御部１３は第２のバスＩＦ部１２０を介して接続される。制御部１３はホストコントローラとのコマンド・応答の送受信を行うコマンド制御部、データの送受信を行うデータ制御部と割り込み制御を行う割り込み制御部を備える。割り込み制御部は割り込み要因レジスタ１３０を備え、割り込みを発生したデバイス番号や割り込み要因を示すのに使用される。制御部１３は外部端子で設定されたデバイス番号および動作モードをデバイス番号設定手段１４およびモード設定手段１５から取得し、またはホストコントローラから設定されたデバイス番号やモードをデバイス番号設定手段１４およびモード設定手段１５へ設定する。
【００６８】
以下、本実施の形態に係るＩ／Ｏデバイス１はモードとして「シングル」「マスタ」「スレーブ」「アンカー」の４つのモードを持ち、これらは２ビットの外部端子で設定されるものとして説明する。また、本実施の形態に係るＩ／Ｏデバイス１は図２４〜２６を用いて説明した従来のＩ／Ｏデバイスと同じコマンド・応答やデータの送受信、割り込み制御が可能である。
【００６９】
[接続形態］
図２は複数のＩ／Ｏデバイスとホストコントローラ１を含んで構成される、本発明の第１の実施の形態に係るコンピュータシステムを説明する図である。図２において本実施の形態に係るコンピュータシステムは１つのホストコントローラ２と５つのＩ／Ｏデバイス１Ａ、１Ｂ、１Ｃ、１Ｄ、１Ｅを含んで構成される。
【００７０】
図２のａ）ではＩ／Ｏデバイス１Ａは動作モードを「マスタ」に設定され、ホストコントローラ２と第１のバス１１（バスＡ）で接続される。Ｉ／Ｏデバイス１Ｂ、１Ｃ、１Ｄ、１Ｅは動作モードを「スレーブ」に設定され、第１のバス１１をＩ／Ｏデバイス１Ａの第２のバス１２と接続される（バスＢ、Ｃ、Ｄ、Ｅ）。Ｉ／Ｏデバイス１Ｂ〜１Ｄは第２のバス１２を持ち、これらは全てグラウンド電位に固定される。Ｉ／Ｏデバイス１Ｅは第２のバスを持たない。各Ｉ／Ｏデバイス１Ａ〜１Ｅはそれぞれデバイス番号が０ｘ１〜０ｘ５に設定されている。
【００７１】
なお、Ｉ／Ｏデバイス１Ｂ〜１Ｅは図２のｂ）のように全て従来のＩ／Ｏデバイスであってもよい。この場合、Ｉ／Ｏデバイス１Ｂ〜１Ｅにはモード設定手段は存在せず、またデバイス番号も初期状態では「未設定」となっている。さらに図２のｃ）のようにＩ／Ｏデバイス１Ｂ〜１Ｅは本実施の形態にかかるＩ／Ｏデバイスと従来のＩ／Ｏデバイスが混在してもよい。図２のｃ）ではＩ／Ｏデバイス１Ｂ〜１Ｄは本実施の形態にかかるＩ／Ｏデバイスであり、Ｉ／Ｏデバイス１Ｅは従来のＩ／Ｏデバイスとなっている。以降の説明は、図２のａ）の接続の場合について説明するが、図２のｂ）、ｃ）であっても同じ動作が可能である。
【００７２】
[指定コマンドの処理]
図３の１）〜３）は本実施の形態に係るコンピュータシステムにおける指定コマンドと応答の送受信を説明する図である。
【００７３】
図３の１）では、ホストコントローラ２がＩ／Ｏデバイス１Ｅを指定して送信したコマンドＣ１をＩ／Ｏデバイス１ＡはバスＡ上で受信すると共に、コマンドＣ２としてバスＢ〜Ｅへ送り出す。Ｉ／Ｏデバイス１Ｂ〜１ＥはコマンドＣ２を受信すると、指定されたＩ／Ｏデバイス１ＥのみがバスＥ上で応答を返し、その他のＩ／Ｏデバイスは応答を返さない。Ｉ／Ｏデバイス１ＡはバスＥで受信した応答を応答Ｒ１としてバスＡへ送り出す。このようにしてホストコントローラ２は指定したＩ／Ｏデバイス１Ｅへ発行したコマンドに対する応答を、Ｉ／Ｏデバイス１Ｅから受信することができる。
【００７４】
図３の２）では、ホストコントローラ２がＩ／Ｏデバイス１Ｅを指定して送信したコマンドＣ１をＩ／Ｏデバイス１ＡはバスＡ上で受信すると共に、指定されたＩ／Ｏデバイスを認識して、コマンドＣ２としてバスＥへのみ送り出す。指定されたＩ／Ｏデバイス１Ｅの返す応答をＩ／Ｏデバイス１ＡはバスＥで受信し、応答Ｒ１としてバスＡへ送り出す。このようにしてホストコントローラ２は指定したＩ／Ｏデバイス１Ｅへ発行したコマンドに対する応答を受信することができる。
【００７５】
図３の３）では、ホストコントローラ２がＩ／Ｏデバイス１Ｅを指定して送信したコマンドＣ１をＩ／Ｏデバイス１ＡはバスＡ上で受信すると共に、指定されたＩ／Ｏデバイスを認識して、コマンドＣ２としてバスＥへのみ送り出す。さらに、コマンドＣ１の内容を解釈してＩ／Ｏデバイス１Ａが応答Ｒ１をバスＡ上へ送り出す。指定されたＩ／Ｏデバイス１Ｅの返す応答をＩ／Ｏデバイス１ＡはバスＥで受信するが、応答をバスＡには送り出さない。この場合、Ｉ／Ｏデバイス１Ａは予めＩ／Ｏデバイス１Ｅの状態を取得しておき、ホストコントローラ２からのコマンドＣ１に対する応答Ｒ１として送信してもよい。このようにしたホストコントローラ２は指定したＩ／Ｏデバイス１Ｅへ発行したコマンドに対する応答を短時間で受信することができる。さらに、Ｉ／Ｏデバイス１Ａが予めＩ／Ｏデバイス１Ｅの状態を取得しておけば、Ｉ／Ｏデバイス１Ｅの状態を適切に取得することができる。
【００７６】
[ブロードキャストコマンドの処理] 
図３の４）、５）は本実施の形態に係るコンピュータシステムにおけるブロードキャストコマンドと応答の送受信を説明する図である。
【００７７】
図３の４）では、ホストコントローラ２が送信したブロードキャストコマンドＣ１をＩ／Ｏデバイス１ＡはバスＡ上で受信すると共に、コマンドＣ２としてバスＢ〜Ｅへ送り出す。コマンドＣ２はブロードキャストコマンドのため、Ｉ／Ｏデバイス１Ｂ〜１ＥはコマンドＣ２を受信すると応答ＲＥＳ Ｂ〜Ｅを返す。Ｉ／Ｏデバイス１Ａはバス１２に接続された全てのＩ／Ｏデバイス１Ｂ〜１Ｅが応答を返したのを確認すると、応答ＲＥＳ ＡをバスＡ上へ送り出す。このとき応答ＲＥＳ Ａの応答情報は、（１）Ｉ／Ｏデバイス１Ａの応答情報を返す  （２）Ｉ／Ｏデバイス１Ａ〜１Ｅの応答情報の論理和（ＯＲ）をとった値を返す  （３）Ｉ／Ｏデバイス１Ａ〜１Ｅの応答情報の論理積（ＡＮＤ）をとった値を返す  の３通りが可能である。このようにしてＩ／Ｏデバイス１Ａ〜１Ｅはブロードキャストコマンドに対する応答をバスの衝突を起こすことなくホストコントローラ２へ返すことができる。
【００７８】
図３の５）では、ホストコントローラ２が送信したブロードキャストコマンドＣ１をＩ／Ｏデバイス１ＡはバスＡ上で受信すると共に、コマンドＣ２としてバスＢ〜Ｅへ送り出すと共に応答ＲＥＳ ＡをバスＡ上へ送り出す。この時ＲＥＳ  Ａの応答情報は（１）Ｉ／Ｏデバイス１Ａの応答情報を返す  （２）Ｉ／Ｏデバイス１Ａ〜１Ｅの応答情報の論理和（ＯＲ）をとった値を返す  （３）Ｉ／Ｏデバイス１Ａ〜１Ｅの応答情報の論理積（ＡＮＤ）をとった値を返す  の３通りが可能である。（２）、（３）の場合、Ｉ／Ｏデバイス１Ａはバス１２に接続されたＩ／Ｏデバイス１Ｂ〜１Ｅの状態を取得しておく必要がある。Ｉ／Ｏデバイス１Ｂ〜１Ｅは受信したコマンドＣ２に対して応答ＲＥＳ  Ｂ〜ＲＥＳ  Ｅを返すが、Ｉ／Ｏデバイス１Ａは受信した応答をバスＡには送り出さない。このようにしてＩ／Ｏデバイス１Ａ〜１Ｅはブロードキャストコマンドに対する応答をバスの衝突を起こすことなくホストコントローラ２へ返すことができる。
【００７９】
[初期化]
図４は本実施の形態に係るコンピュータシステムにおいて、ホストコントローラ２がＩ／Ｏデバイス１Ａ〜１Ｅを初期化する場合のコマンドと応答の送受信を説明する図である。図２６のｃ）に示したように、ホストコントローラ２が発行する初期化コマンドはブロードキャストコマンドであるため、コマンドを受信したＩ／Ｏデバイスは応答を返す。しかし、図２６の（ａ）の３）に示すようにブロードキャストコマンドの引数にｒｅｓｅｒｖｅｄ（予約）領域が含まれる場合は、この領域を用いてデバイス番号を指定することができる。
【００８０】
図４のａ）は初期化コマンドであるブロードキャストコマンドの引数にデバイス番号が含まれない場合にＩ／Ｏデバイス１Ａ〜１Ｅが返す応答を示している。
【００８１】
図４のａ）において、応答には初期化が完了したかどうかを示すＲｅａｄｙビットが含まれており、１の場合は初期化完了（Ｒｅａｄｙ）、０の場合は初期化未完了（Ｎｏｔ Ｒｅａｄｙ）を示す。ホストコントローラ２からの初期化コマンドを受信するとＩ／Ｏデバイス１Ａは図３の４）または５）に示すようにコマンドをバスＢ〜Ｅを介してＩ／Ｏデバイス１Ｂ〜１Ｅへ送る。Ｉ／Ｏデバイス１Ａが図３の４）のように動作する場合、Ｉ／Ｏデバイス１ＡはＩ／Ｏデバイス１Ｂ〜１Ｅが返す応答を受信し、全てのＩ／ＯデバイスのＲｅａｄｙビットのＡＮＤをとった値をＲｅａｄｙビットとして応答ＲＥＳ ＡとしてバスＡへ送り出す。この場合ＲＥＳ  Ａの応答情報のＲｅａｄｙビットはデバイス１Ａ〜１Ｅ全てがＲｅａｄｙになった場合にのみ１となる。
【００８２】
図４のａ）では、時刻Ｔ１で発行された初期化コマンドに対して、Ｉ／Ｏデバイス１Ｃと１Ｅの返す応答のＲｅａｄｙビットが０かつＩ／Ｏデバイス１ＡもＮｏｔ Ｒｅａｄｙのため、ホストコントローラ２へ返す応答ＲＥＳ  ＡのＲｅａｄｙビットは０となる。同様に時刻Ｔ２で発行された初期化コマンドに対する応答ではＩ／Ｏデバイス１ＡがＮｏｔ Ｒｅａｄｙのため応答ＲＥＳ ＡのＲｅａｄｙビットは０となり、時刻Ｔ３で発行された初期化コマンドに対する応答ＲＥＳ ＡのときにＲｅａｄｙビットが１となる。
【００８３】
このようにして、ホストコントローラ２は初期化コマンドを用いて全てのＩ／Ｏデバイスの初期化を開始することができるとともに、受信した応答ＲＥＳ  Ａの応答情報に含まれるＲｅａｄｙビットの値で全てのＩ／Ｏデバイスの初期化が完了したことを知ることができる。
【００８４】
図４のｂ）は初期化コマンドであるブロードキャストコマンドの引数にデバイス番号が含まれる場合にＩ／Ｏデバイス１Ａ〜１Ｅが返す応答を示している。図４のｂ）では初期化コマンドに含まれるデバイス番号がＩ／Ｏデバイス１Ｂを示している場合を示しており、該当するＩ／Ｏデバイス１Ｂだけが応答を返す。この場合、Ｉ／Ｏデバイス１ＡはバスＢで受信したＩ／Ｏデバイス１Ｂの応答ＲＥＳ Ｂをそのまま応答ＲＥＳ ＡとしてバスＡへ送り出す。図４のｂ）では、時刻Ｔ１、Ｔ２で発行された初期化コマンドに対して、Ｉ／Ｏデバイス１Ｂの応答ＲＥＳ Ｂに含まれるＲｅａｄｙビットはＮｏｔ Ｒｅａｄｙを示しており、ホストコントローラ２へ返る応答ＲＥＳ  ＡのＲｅａｄｙビットもＮｏｔ Ｒｅａｄｙとなる。続く時刻Ｔ３で発行された初期化コマンドに対して、Ｉ／Ｏデバイス１ＢはＲｅａｄｙビットをＲｅａｄｙとして応答ＲＥＳ  Ｂを返し、ホストコントローラ２へ返る応答ＲＥＳ  ＡのＲｅａｄｙビットもＲｅａｄｙを示すようになる。
【００８５】
このようにしてホストコントローラ２は初期化コマンドを用いて特定のＩ／Ｏデバイスのみ初期化を行うことができ、かつ受信した応答のＲｅａｄｙビットの値で特定のＩ／Ｏデバイスの初期化が完了したことを知ることができる。
【００８６】
[デバイス番号設定]
図５の１）〜３）は本実施の形態におけるコンピュータシステムにおいて、ホストコントローラ２がＩ／Ｏデバイス１Ａ〜１Ｅへデバイス番号設定コマンドを発行した場合の動作を説明する図である。
【００８７】
図５の１）において、Ｉ／Ｏデバイス１Ａはホストコントローラ２が発行したデバイス番号設定コマンドＣ１をバスＡで受信すると、コマンドＣ２としてＩ／Ｏデバイス１Ｂ〜１ＥへバスＢ〜Ｅ経由で送る。コマンドを受信するとＩ／Ｏデバイス１Ｂ〜１Ｅはそれぞれのデバイス番号設定手段で設定されているデバイス番号を含む応答を返す。Ｉ／Ｏデバイス１Ａはそれらの応答を受信すると、（１）Ｉ／Ｏデバイス１Ａのデバイス番号を返す  （２）Ｉ／Ｏデバイス１Ａ〜１Ｅのデバイス番号の論理和（ＯＲ）をとった値を返す  （３）Ｉ／Ｏデバイス１Ａ〜１Ｅのデバイス番号の論理積（ＡＮＤ）をとった値を返す  のいずれかの応答をホストコントローラ２へバスＡを通じて返す。ホストコントローラ２が予めＩ／Ｏデバイス１Ａ〜１Ｅのデバイス番号を知っている場合には応答に含まれるデバイス番号を判別する必要はなく、コマンドと応答の送受信処理を完結することができる。なお、Ｉ／Ｏデバイス１Ａは図５の３）に示すように他のＩ／Ｏデバイスからの応答が返る前にホストコントローラ２へ応答を返すことも可能である。この時、Ｉ／Ｏデバイス１Ａは他のＩ／Ｏデバイスのデバイス番号を予め取得しておいてもよい。
【００８８】
また、図５の２）に示すように、ホストコントローラ２が、全てのＩ／Ｏデバイスに対してデバイス番号設定コマンドを発行することもできる。本実施の形態に係るコンピュータシステムでは１Ａ〜１Ｅの５つのＩ／Ｏデバイスが接続されており、ホストコントローラ２は図５の２）に示すようにデバイス番号設定コマンドを５回発行する。Ｉ／Ｏデバイス１Ａは１回目のデバイス番号設定コマンドＣＭＤ Ａを受信すると、自身のデバイス番号を含む応答ＲＥＳ Ａをホストコントローラ２へ送信する。その後２回目〜５回目のデバイス設定コマンドＣＭＤ Ｂ〜ＣＭＤ ＥをＩ／Ｏデバイス１Ｂ〜１ＥへバスＢ〜Ｅを通じて送り、Ｉ／Ｏデバイス１Ｂ〜１Ｅからの応答ＲＥＳ Ｂ〜ＲＥＳ Ｅを順次バスＡを通じてホストコントローラ２へ送る。Ｉ／Ｏデバイス１Ａ〜１Ｅは予めデバイス番号が設定されている場合にはそのデバイス番号を含む応答を返し、デバイス番号が未設定の場合にはデバイス番号設定手段が新しく設定するデバイス番号を含む応答を返す。従って、Ｉ／Ｏデバイス１Ａ〜１Ｅにデバイス番号が「未設定」でのＩ／Ｏデバイスが含まれる場合でも、デバイス番号設定コマンドを接続されたＩ／Ｏデバイスの数だけ発行することで各Ｉ／Ｏデバイスのデバイス番号が設定された状態にすることができる。
【００８９】
以上図面を用いて説明したようにＩ／Ｏデバイス１Ａ〜１Ｅはバスの衝突を起こすことなく初期化コマンドと応答およびデバイス番号設定コマンドと応答を処理でき、本実施の形態に係るコンピュータシステムではホストコントローラ２がＩ／Ｏデバイス１Ａ〜１Ｅをデータの読み出しおよび書き込みが可能な状態とすることができる。
【００９０】
[データの書き込み]
図６の１）、２）は本実施の形態に係るコンピュータシステムにおいてホストコントローラ２がＩ／Ｏデバイス１Ｂへデータの書き込みを行う動作を説明する図である。なお、データ書き込みのためのライトコマンドは指定コマンドであり、予めＩ／Ｏデバイスを選択するコマンドで特定のＩ／Ｏデバイスを選択した後に発行される。
【００９１】
図６の１）では、Ｉ／Ｏデバイス１Ａはホストコントローラ２の発行するＩ／Ｏデバイス１Ｂ選択コマンドＣ１Ｂを受信すると、バスＢのＣＭＤ線へコマンドＣ２Ｂとして送り出し、Ｉ／Ｏデバイス１Ｂの応答Ｒ１Ｂをホストコントローラ２へ返す。続いてＩ／Ｏデバイス１Ａはホストコントローラ２の発行するライトコマンドＣ２Ｂを受信すると、バスＢのＣＭＤ線へコマンドＣ２Ｂとして送り出し、Ｉ／Ｏデバイス１Ｂの応答Ｒ２Ｂをホストコントローラ２へ返す。ホストコントローラ２は応答Ｒ２Ｂを受信すると、続いてライトデータＷＤ１ＢをバスＡ上で送信し、Ｉ／Ｏデバイス１Ａは受信したＷＤ１ＢをバスＢへ送り出す。
【００９２】
Ｉ／Ｏデバイス１ＢはライトデータＷＤ１Ｂを受信すると、データを正しく受信したことを示すＣＲＣステータスＣＲＣ１ＢをバスＢ上で返すと共に、メモリ部またはＩ／Ｏ部の指定されたアドレスへの書き込みを行う。その際に新たなライトデータを受信することができない場合は、バスＢ上でビジー状態信号Ｂｕｓｙ１Ｂをアサートする。Ｉ／Ｏデバイス１ＡはＣＲＣステータスＣＲＣ１Ｂおよびビジー状態信号Ｂｕｓｙ１Ｂを受信し、バスＡを通じてホストコントローラ２へ通知する。このようにしてホストコントローラ２は特定のＩ／Ｏデバイス１Ｂへのデータの書き込みを行うことが可能となる。
【００９３】
なおホストコントローラ２がコマンドやライトデータを送信後、所定の時間以内に応答やＣＲＣステータス、ビジー状態信号を受信する必要がある場合、図６の２）に示すようにＩ／Ｏデバイス１Ａが応答やＣＲＣステータス、ビジー状態信号をバスＡへ返すこともできる。図６の２）では、Ｉ／Ｏデバイス１ＡはコマンドＣ２Ｂを受け取ると、Ｒ２Ｂをホストコントローラ２へ返すと共にコマンドをＩ／Ｏデバイス１Ｂへ伝送する。続いてライトデータＷＤ１Ｂを受け取るとＣＲＣを計算し、結果をＣＲＣステータスＣ１Ｂとしてホストコントローラへ返すと共にＷＤ１ＢをＩ／Ｏデバイス１Ｂへ伝送する。また、Ｉ／Ｏデバイス１Ｂがビジー状態信号をアサートする時刻Ｔ２より前の時刻Ｔ１にビジー状態信号Ｂｕｓｙ１Ｂをアサートする。その後時刻Ｔ３でＩ／Ｏデバイス１Ｂがビジー状態信号をネゲートしたことを確認した後、時刻Ｔ４にバスＡ上でビジー状態信号Ｂｕｓｙ１Ｂをネゲートする。
【００９４】
ホストコントローラ２が発行するコマンドＣ２ＢおよびライトデータＷＤ１ＢはＩ／Ｏデバイス１Ａを経由してＩ／Ｏデバイス１Ｂへ伝送されるため、Ｉ／Ｏデバイス１Ａは受信したコマンドやライトデータをＩ／Ｏデバイス１Ｂへ伝送する際に制御部１３でコマンドの解釈やライトデータに対するＣＲＣチェックを行うことができるため、このような処理が可能となる。また、ビジー状態信号をデータ書き込み対象のＩ／Ｏデバイスより長い時間アサートすることで、ホストコントローラ２はＩ／Ｏデバイス１Ｂが確実にライトデータを受け付けられるタイミングでデータを送信することができる。ホストコントローラ２が他のＩ／Ｏデバイス１Ｃ〜１Ｅへ書き込みを行う場合でも同様の動作が可能である。
【００９５】
[割り込み]
図７は、ホストコントローラ２がＩ／Ｏデバイス１Ｂからデータ読み出しを行っている場合に、Ｉ／Ｏデバイス１Ｃが割込みを発生する場合を説明する図である。データの読み出しについては、データがＩ／Ｏデバイスからホストコントローラ２へ転送されることと、ＣＲＣステータスやビジー状態信号がないことを除いて図６を用いて説明した書き込み動作と同じである。
【００９６】
図７において、ホストコントローラ２がＩ／Ｏデバイス１Ａを経由してＩ／Ｏデバイス１Ｂへのデータの読み出しを行っている時刻Ｔ１では、Ｉ／Ｏデバイス１Ｃはコマンドを受け付けていないスタンバイ状態であるため、割込みを出すことができる。図７ではバスＣのＤＡＴ線をアサートして割込みを発生している。
【００９７】
Ｉ／Ｏデバイス１ＡはＩ／Ｏデバイス１Ｃが割込みをアサートしたことを検出すると、内部の割込み制御部が割り込み要因レジスタ１３０に割り込みを出したＩ／Ｏデバイスのデバイス番号を記録すると共に、バスＡ上で割り込みを発生可能な時刻Ｔ２に割込みを発生しホストコントローラ２へ通知する。このようにＩ／Ｏデバイス１Ａは第２のバス１２に接続したＩ／Ｏデバイスからの割込みを検出し、バスＡ上で割り込み発生可能なタイミングでバスの衝突を起こさずに割り込みをホストコントローラ２へ通知することができる。
【００９８】
図８は割込みを検出したときのホストコントローラ２の動作を説明する図である。図８において、ホストコントローラ２は割り込みを検出すると、Ｉ／Ｏデバイス１Ａを選択し（コマンドＣ１Ａ、応答Ｒ１Ａ）、Ｉ／Ｏデバイス１Ａの要因レジスタ１３０の読み出しを行う（コマンドＣ２Ａ、応答Ｒ２Ａ）。要因レジスタ１３０には割り込みを発生したＩ／Ｏデバイス１Ｃを示すデバイス番号の情報が含まれており、ホストコントローラ２は続けてＩ／Ｏデバイス１Ｃを選択し（コマンドＣ１Ｃ、応答Ｒ１Ｃ）、Ｉ／Ｏデバイス１Ｃの要因レジスタ１３０を読み出して（コマンドＣ２Ｃ、応答Ｒ２Ｃ）割り込み処理を行う。Ｉ／Ｏデバイス１Ｃはホストコントローラが要因レジスタを読み出す処理中の時刻Ｔ１に割り込みをネゲートする。このようにしてホストコントローラ２は割り込みを発生したＩ／Ｏデバイスおよび要因を特定して割り込み処理を行うことができる。
【００９９】
なお通常は割り込みの有無を示すために信号線が１ビット使用されるが、本実施の形態に係るＩ／ＯデバイスはＤＡＴ０−３の４本のデータ線を備えている。この場合Ｉ／Ｏデバイス１Ａは、図９に示すように４本の信号線を用いて割り込みを発生し、ホストコントローラ２に割り込みを発生したＩ／Ｏデバイスを知らせることもできる。これによってホストコントローラは容易に割り込みを発生したＩ／Ｏデバイスを特定でき、短時間で割り込み処理を行うことができる。
【０１００】
データ線を４本使った割り込みの発生方法は例えば図９のａ）に示すように４ビットの１６進数として使ってもよく、あるいは図９のｂ）に示すように各ビット線に異なるＩ／Ｏデバイスを割り当ててもよい。図９のｂ）はＩ／Ｏデバイスの数がデータ線の本数以下の場合に適用可能である。
【０１０１】
このようにして初期化コマンドと応答およびデバイス番号設定コマンドと応答を処理することで本実施の形態に係るコンピュータシステムではホストコントローラ２の端子数を増やすことなく複数のＩ／Ｏデバイスを接続した場合でも、ブロードキャストコマンドへの応答をバスの衝突を起こすことなく行うことができる。また、あるＩ／Ｏデバイスへのデータの読み出しまたは書き込みを実施中に他のＩ／Ｏデバイスが割り込みを発生した場合でも動作モードが「マスタ」であるＩ／Ｏデバイス１Ａが、ホストコントローラ２と接続したバス（この場合バスＡ）の割り込み発生可能期間に割り込みを発生するため、バスの衝突を起こすことなく割り込み信号を伝送することができる。
【０１０２】
さらにホストコントローラ２のバスには１つのＩ／Ｏデバイスしか接続されないため、バスの負荷が増えず、ホストコントローラ２とＩ／Ｏデバイスは所望の動作周波数でデータの読み出しおよび書き込みが可能となる。
【０１０３】
（第２の実施の形態）
[Ｉ／Ｏデバイス]
図１０は本発明の第２の実施の形態に係るＩ／Ｏデバイスの構成を説明する図である。図１０において、図１のＩ／Ｏデバイスとの違いは、制御部１３に含まれる割り込み制御部に割り込み出力線ＩＲＱ＿ＯＵＴ、割り込み入力線ＩＲＱ１、ＩＲＱ２およびＩＲＱ３が接続されている点である。図１０において割り込み入力線の数は３本であるが、本発明の適用範囲はこれに限定されるものではない。その他の構成は図１のＩ／Ｏデバイスと同じである。
【０１０４】
[接続形態]
図１１は、複数のＩ／Ｏデバイスとホストコントローラ１を含んで構成される、本発明の第２の実施の形態に係るコンピュータシステムを説明する図である。図１１において本実施の形態に係るコンピュータシステムは１つのホストコントローラ２と３つのＩ／Ｏデバイス１Ａ、１Ｂ、１Ｃを含んで構成される。
【０１０５】
図２のａ）ではＩ／Ｏデバイス１Ａは動作モードを「マスタ」に設定され、ホストコントローラ２と第１のバス１１（バスＡ）で接続される。Ｉ／Ｏデバイス１Ｂは動作モードを「スレーブ」に設定され、第１のバス１１をＩ／Ｏデバイス１Ａの第２のバス１２と接続する（バスＢ）。Ｉ／Ｏデバイス１Ｃは動作モードを「アンカー」に設定され、第１のバス１１をＩ／Ｏデバイス１Ｂのｐ第２のバス１２と接続する（バスＣ）。Ｉ／Ｏデバイス１Ｃの第２のバス１２はグラウンド電位に固定される。各Ｉ／Ｏデバイス１Ａ〜１Ｃはそれぞれデバイス番号が０ｘ１〜０ｘ３に設定されている。
【０１０６】
なお、Ｉ／Ｏデバイス１Ｃは図１１のｂ）のように第２のバスを備えなくてもよく、また図１１のｃ）のように、従来のＩ／Ｏデバイスであってもよい。この場合、Ｉ／Ｏデバイス１Ｃにはモード設定手段は存在せず、またデバイス番号も初期状態では「未設定」となっている。また割り込み出力線ＩＲＱ＿ＯＵＴや割り込み入力線ＩＲＱｎ（ｎ＝１〜３）も備えない。以降の説明は、図１１のａ）の接続の場合について説明するが、図１１のｂ）、ｃ）であっても同じ動作が可能である。
【０１０７】
[割り込み線の接続] 
図１２は、本実施の形態に係るコンピュータシステムにおけるＩ／Ｏデバイス１Ａ〜１Ｃの割り込み出力線ＩＲＱ＿ＯＵＴおよび割り込み入力線ＩＲＱｎ（ｎ＝１〜３）の接続を説明する図である。
【０１０８】
図１２において、動作モードが「マスタ」以外であるＩ／Ｏデバイス１Ｂと１Ｃは、ＩＲＱ＿ＯＵＴを動作モードが「マスタ」であるＩ／Ｏデバイス１ＡのＩＲＱｎに接続し、Ｉ／Ｏデバイス１Ｂ、１ＣのＩＲＱｎは特定の電位（図１２では電源電位Ｖｄｄ）に固定される。動作モードが「マスタ」であるＩ／Ｏデバイス１ＡはＩＲＱ＿ＯＵＴを開放状態とし、Ｉ／Ｏデバイス１Ｂ、１ＣのＩＲＱ＿ＯＵＴが接続されていないＩＲＱｎについては特定の電位（図１２では電源電位Ｖｄｄ）に固定される。
【０１０９】
通常図１２のａ）のようにＩ／Ｏデバイス１ＢとＩ／Ｏデバイス１ＣのＩＲＱ＿ＯＵＴはＩ／Ｏデバイス１Ａの異なるＩＲＱｎに接続される。図１２ではＩ／Ｏデバイス１ＢのＩＲＱ＿ＯＵＴはＩ／Ｏデバイス１ＡのＩＲＱ１に接続され、Ｉ／Ｏデバイス１ＣのＩＲＱ＿ＯＵＴはＩ／Ｏデバイス１ＡｎｏＩＲＱ２に接続されている。一方Ｉ／Ｏデバイス１Ｂ、１ＣのＩＲＱ＿ＯＵＴをオープンドレイン型のドライバを用いて出力するようにすると、図１２のｂ）のようにＩ／Ｏデバイス１Ｂ、１ＣのＩＲＱ＿ＯＵＴをＩ／Ｏデバイス１Ａの同じＩＲＱｎに接続することができ、接続する信号線の数を減らすことができる。図１２のｂ）ではＩ／Ｏデバイス１Ｂ、１ＣのＩＲＱ＿ＯＵＴはＩ／Ｏデバイス１ＡのＩＲＱ１に接続されている。
【０１１０】
[指定コマンドの処理]
図１３の１）、２）は本実施の形態に係るコンピュータシステムにおける指定コマンドと応答の送受信を説明する図である。
【０１１１】
図１３の１）では、ホストコントローラ２がＩ／Ｏデバイス１Ｃを指定して送信したコマンドＣ１をＩ／Ｏデバイス１ＡはバスＡ上で受信し、バスＢへ送り出す。Ｉ／Ｏデバイス１ＢはコマンドをバスＢ上で受信し、バスＣへ送り出す。指定されたＩ／Ｏデバイス１ＣはコマンドをバスＣ上で受信すると、応答をバスＣへ返す。Ｉ／Ｏデバイス１ＢはバスＣ上で応答を受信し、バスＢへ送り出す。Ｉ／Ｏデバイス１ＡはバスＢ上で受信した応答を応答Ｒ１としてバスＡへ送り出しホストコントローラ２へ伝送する。このようにしてホストコントローラ２は指定したＩ／Ｏデバイス１Ｃへ発行したコマンドに対する応答を受信することができる。
【０１１２】
図１３の２）では、ホストコントローラ２がＩ／Ｏデバイス１Ｃを指定して送信したコマンドＣ１をＩ／Ｏデバイス１ＡはバスＡ上で受信すると共に、指定されたＩ／Ｏデバイスを認識して、コマンドＣ２としてバスＢへ送り出す。さらに、コマンドＣ１の内容を解釈してＩ／Ｏデバイス１Ａが応答Ｒ１をバスＡ上へ送り出す。Ｉ／Ｏデバイス１ＡがバスＢへ送り出したコマンドはＩ／Ｏデバイス１Ｂを経由してＩ／Ｏデバイス１Ｃに受信され、応答が返される。応答は再びＩ／Ｏデバイス１Ｂを経由してＩ／Ｏデバイス１ＡはバスＢで受信するが、応答をバスＡには送り出さない。Ｉ／Ｏデバイス１ＢはＩ／Ｏデバイス１Ｃから返される応答をＩ／Ｏデバイス１Ａへ伝送しなくてもよい。また図１３の２）ではＩ／Ｏデバイス１Ａは予めＩ／Ｏデバイス１Ｃの状態を取得しておき、ホストコントローラ２からのコマンドＣ１に対する応答Ｒ１として送信してもよい。このようにしたホストコントローラ２は指定したＩ／Ｏデバイス１Ｃへ発行したコマンドに対する応答を短時間で受信することができる。さらに、Ｉ／Ｏデバイス１Ａが予めＩ／Ｏデバイス１Ｃの状態を取得しておけば、Ｉ／Ｏデバイス１Ｃの状態を適切に取得することができる。
【０１１３】
[ブロードキャストコマンドの処理] 
図１３の３）、４）は本実施の形態に係るコンピュータシステムにおけるブロードキャストコマンドと応答の送受信を説明する図である。
【０１１４】
図１３の３４）では、ホストコントローラ２が送信したブロードキャストコマンドＣ１をＩ／Ｏデバイス１ＡはバスＡ上で受信すると共に、コマンドＣ２としてバスＢへ送り出す。Ｉ／Ｏデバイス１ＢはバスＢで受信したコマンドをバスＣへ送り出す。このときＩ／Ｏデバイス１Ａおよび１Ｂはコマンドに対する応答を返さず待機する。Ｉ／Ｏデバイス１Ｃは動作モードが「アンカー」であり、第２のバス１２には他のＩ／Ｏデバイスが接続されていない。従って、Ｉ／Ｏデバイス１ＣはコマンドをバスＣで受信すると、応答ＲＥＳ Ｃを返す。
【０１１５】
Ｉ／Ｏデバイス１ＢはＲＥＳ ＣをバスＣで受信すると、応答ＲＥＳ Ｂを返す。この時ＲＥＳ Ｂの応答情報は（１）Ｉ／Ｏデバイス１Ｂの応答情報を返す  （２）Ｉ／Ｏデバイス１Ｂと１Ｃの応答情報の論理和（ＯＲ）をとった値を返す  （３）Ｉ／Ｏデバイス１Ｂと１Ｃの応答情報の論理積（ＡＮＤ）をとった値を返す  の３通りが可能である。
【０１１６】
Ｉ／Ｏデバイス１ＡはＲＥＳ ＢをバスＢで受信すると、応答ＲＥＳ Ａをホストコントローラ２へ返す。この時ＲＥＳ Ａの応答情報は（１）Ｉ／Ｏデバイス１Ａの応答情報を返す  （２）Ｉ／Ｏデバイス１Ａ〜１Ｃの応答情報の論理和（ＯＲ）をとった値を返す  （３）Ｉ／Ｏデバイス１Ａ〜１Ｃの応答情報の論理積（ＡＮＤ）をとった値を返す  の３通りが可能である。このようにしてＩ／Ｏデバイス１Ａ〜１Ｃはブロードキャストコマンドに対する応答をバスの衝突を起こすことなくホストコントローラ２へ返すことができる。
【０１１７】
図３の４）では、ホストコントローラ２が送信したブロードキャストコマンドＣ１をＩ／Ｏデバイス１ＡはバスＡ上で受信してバスＢへ送り出すと共に応答ＲＥＳ ＡをバスＡ上へ送り出す。この時ＲＥＳ  Ａの応答情報は（１）Ｉ／Ｏデバイス１Ａの応答情報を返す  （２）Ｉ／Ｏデバイス１Ａ〜１Ｅの応答情報の論理和（ＯＲ）をとった値を返す  （３）Ｉ／Ｏデバイス１Ａ〜１Ｅの応答情報の論理積（ＡＮＤ）をとった値を返す  の３通りが可能である。（２）、（３）の場合、Ｉ／Ｏデバイス１Ａはバス１２に接続されたＩ／Ｏデバイス１Ｂ〜１Ｅの状態を予め取得しておく必要がある。Ｉ／Ｏデバイス１ＢはバスＢで受信したコマンドをバスＣへ送り出すと共に応答ＲＥＳ ＢをバスＢ上へ送り出す。またＩ／Ｏデバイス１Ｃは受信したコマンドに対して応答ＲＥＳ Ｃを返すが、これらの応答ＲＥＳ Ｂ、ＲＥＳＣはホストコントローラ２へは転送されない。このようにしてＩ／Ｏデバイス１Ａ〜１Ｃはブロードキャストコマンドに対する応答をバスの衝突を起こすことなくホストコントローラ２へ返すことができる。
【０１１８】
[初期化]
図１４は本実施の形態に係るコンピュータシステムにおいて、ホストコントローラ２がＩ／Ｏデバイス１Ａ〜１Ｃを初期化する場合のコマンドと応答の送受信を説明する図である。図２６のｃ）に示したように、ホストコントローラ２が発行する初期化コマンドはブロードキャストコマンドであるため、コマンドを受信したＩ／Ｏデバイスは応答を返す。しかし、図２６の（ａ）の３）に示すようにブロードキャストコマンドの引数にｒｅｓｅｒｖｅｄ（予約）領域が含まれる場合は、この領域を用いてデバイス番号を指定することができる。
【０１１９】
図１４のａ）は初期化コマンドであるブロードキャストコマンドの引数にデバイス番号が含まれない場合にＩ／Ｏデバイス１Ａ〜１Ｃが返す応答を示している。図１４のａ）において、応答には初期化が完了したかどうかを示すＲｅａｄｙビットが含まれており、１の場合は初期化完了（Ｒｅａｄｙ）、０の場合は初期化未完了（Ｎｏｔ Ｒｅａｄｙ）を示す。
【０１２０】
ホストコントローラ２の発行した初期化コマンドは図１３の３）または４）に示すようにバスＡ、Ｂ、Ｃを介してＩ／Ｏデバイス１Ａ〜１Ｃで受信される。Ｉ／Ｏデバイス１Ａ〜１Ｃが図１３の４）のように動作する場合、各Ｉ／Ｏデバイスは第２のバス１２に接続されたＩ／Ｏデバイスが返す応答を受信し、受信した応答に含まれるＲｅａｄｙビットと自身のＲｅａｄｙビットとのＡＮＤをとった値をＲｅａｄｙビットとして応答を第１のバスへ送り出す。この場合ＲＥＳ  Ａの応答情報のＲｅａｄｙビットはデバイス１Ａ〜１Ｃ全てがＲｅａｄｙになった場合にのみ１となる。
【０１２１】
図１４のａ）では、時刻Ｔ１で発行された初期化コマンドに対して、Ｉ／ＯデバイスＢのＲｅａｄｙビットが０かつＩ／Ｏデバイス１ＡもＮｏｔ Ｒｅａｄｙのため、ホストコントローラ２へ返す応答ＲＥＳ  ＡのＲｅａｄｙビットは０となる。同様に時刻Ｔ２で発行された初期化コマンドに対する応答ではＩ／Ｏデバイス１ＡがＮｏｔ Ｒｅａｄｙのため応答ＲＥＳ ＡのＲｅａｄｙビットは０となり、時刻Ｔ３で発行された初期化コマンドに対する応答ＲＥＳ ＡのときにＲｅａｄｙビットが１となる。
【０１２２】
このようにして、ホストコントローラ２は初期化コマンドを用いて全てのＩ／Ｏデバイスの初期化を開始することができるとともに、受信した応答ＲＥＳ  Ａの応答情報に含まれるＲｅａｄｙビットの値で全てのＩ／Ｏデバイスの初期化が完了したことを知ることができる。
【０１２３】
図１４のｂ）は初期化コマンドであるブロードキャストコマンドの引数にデバイス番号が含まれる場合にＩ／Ｏデバイス１Ａ〜１Ｃが返す応答を示している。図１４のｂ）では初期化コマンドに含まれるデバイス番号がＩ／Ｏデバイス１Ｃを示している場合を示しており、該当するＩ／Ｏデバイス１Ｃだけが応答を返す。この場合、Ｉ／Ｏデバイス１ＢはバスＣで受信したＩ／Ｏデバイス１Ｃの応答ＲＥＳ Ｃをそのまま応答ＲＥＳ ＢとしてバスＢへ送り出し、Ｉ／Ｏデバイス１ＡはＲＥＳ ＢをＲＥＳ ＡとしてバスＡへ送り出しホストコントローラ２へ伝送する。図１４のｂ）では、時刻Ｔ１、Ｔ２で発行された初期化コマンドに対して、Ｉ／Ｏデバイス１Ｃの応答ＲＥＳ Ｃに含まれるＲｅａｄｙビットはＮｏｔ Ｒｅａｄｙを示しており、ホストコントローラ２へ返る応答ＲＥＳ  ＡのＲｅａｄｙビットもＮｏｔ Ｒｅａｄｙとなる。続く時刻Ｔ３で発行された初期化コマンドに対して、Ｉ／Ｏデバイス１ＣはＲｅａｄｙビットをＲｅａｄｙとして応答ＲＥＳ  Ｂを返し、ホストコントローラ２へ返る応答ＲＥＳ  ＡのＲｅａｄｙビットもＲｅａｄｙを示すようになる。
【０１２４】
このようにしてホストコントローラ２は初期化コマンドを用いて特定のＩ／Ｏデバイスのみ初期化を行うことができ、かつ受信した応答のＲｅａｄｙビットの値で特定のＩ／Ｏデバイスの初期化が完了したことを知ることができる。
【０１２５】
[デバイス番号設定]
図１５の１）〜４）は本実施の形態におけるコンピュータシステムにおいて、ホストコントローラ２がＩ／Ｏデバイス１Ａ〜１Ｃへデバイス番号設定コマンドを発行した場合の動作を説明する図である。
【０１２６】
図１５の１）において、ホストコントローラ２が発行したデバイス番号設定コマンドＣ１はバスＡ〜Ｃを介して順次Ｉ／Ｏデバイス１Ａ〜１Ｃで受信される。コマンドを受信すると図１３の３）で説明したようにＩ／Ｏデバイス１Ｃ，１Ｂ、１Ａの順にデバイス番号設定手段で設定されているデバイス番号を含む応答を返す。Ｉ／Ｏデバイス１Ａがホストコントローラ２へ返す応答ＲＥＳ Ａの応答情報は（１）Ｉ／Ｏデバイス１Ａのデバイス番号を返す  （２）Ｉ／Ｏデバイス１Ａ〜１Ｅのデバイス番号の論理和（ＯＲ）をとった値を返す  （３）Ｉ／Ｏデバイス１Ａ〜１Ｅのデバイス番号の論理積（ＡＮＤ）をとった値を返す  のいずれかが可能である。ホストコントローラ２が予めＩ／Ｏデバイス１Ａ〜１Ｃのデバイス番号を知っている場合には応答に含まれるデバイス番号を判別する必要はなく、コマンドと応答の送受信処理を完結することができる。なお、Ｉ／Ｏデバイス１Ａは図１５の４）に示すように他のＩ／Ｏデバイスからの応答が返る前にホストコントローラ２へ応答を返すことも可能である。この時、Ｉ／Ｏデバイス１Ａは他のＩ／Ｏデバイスのデバイス番号を予め取得しておいてもよい。
【０１２７】
また、図１５の２）、３）に示すように、ホストコントローラ２が、全てのＩ／Ｏデバイスに対してデバイス番号設定コマンドを発行することもできる。本実施の形態に係るコンピュータシステムでは１Ａ〜１Ｃの３つのＩ／Ｏデバイスが接続されており、ホストコントローラ２は図１５の２）、３）に示すようにデバイス番号設定コマンドを３回発行する。図１５の２）ではデバイス番号設定コマンドを受信すると、Ｉ／Ｏデバイス１Ａ、１Ｂ、１Ｃの順に応答を返す。すなわち各Ｉ／Ｏデバイスは、一度デバイス番号設定コマンドを受信して応答を返した後、デバイス番号設定コマンドを受信しても応答を返さないように動作する。図１５の３）ではデバイス番号設定コマンドを受信すると、Ｉ／Ｏデバイス１Ｃ、１Ｂ、１Ａの順に応答を返す。すなわち各Ｉ／Ｏデバイスはデバイス番号設定コマンドを受信すると、第２のバス１２に接続されたＩ／Ｏデバイスが既にデバイス番号設定コマンドに応答済みの場合に応答を返すように動作する。ここで動作モードが「アンカー」である、第２のバス１２に他のＩ／Ｏデバイスが接続されていないＩ／Ｏデバイスはデバイス番号設定コマンドを受信すると応答を返すように動作する。
【０１２８】
以上図面を用いて説明したようにＩ／Ｏデバイス１Ａ〜１Ｃはバスの衝突を起こすことなく初期化コマンドと応答およびデバイス番号設定コマンドと応答を処理でき、本実施の形態に係るコンピュータシステムではホストコントローラ２がＩ／Ｏデバイス１Ａ〜１Ｃをデータの読み出しおよび書き込みが可能な状態とすることができる。
【０１２９】
[データの書き込み]
図１６の１）、２）は本実施の形態に係るコンピュータシステムにおいてホストコントローラ２がＩ／Ｏデバイス１Ｂへデータの書き込みを行う動作を説明する図である。なお、データ書き込みのためのライトコマンドは指定コマンドであり、予めＩ／Ｏデバイスを選択するコマンドで特定のＩ／Ｏデバイスを選択した後に発行される。
【０１３０】
図１６の１）では、Ｉ／Ｏデバイス１Ａはホストコントローラ２の発行するＩ／Ｏデバイス１Ｂ選択コマンドＣ１Ｂを受信すると、バスＢのＣＭＤ線へコマンドＣ２Ｂとして送り出し、Ｉ／Ｏデバイス１Ｂの応答Ｒ１Ｂをホストコントローラ２へ返す。続いてＩ／Ｏデバイス１Ａはホストコントローラ２の発行するライトコマンドＣ２Ｂを受信すると、バスＢのＣＭＤ線へコマンドＣ２Ｂとして送り出し、Ｉ／Ｏデバイス１Ｂの応答Ｒ２Ｂをホストコントローラ２へ返す。ホストコントローラ２は応答Ｒ２Ｂを受信すると、続いてライトデータＷＤ１ＢをバスＡ上で送信し、Ｉ／Ｏデバイス１Ａは受信したＷＤ１ＢをバスＢへ送り出す。
【０１３１】
Ｉ／Ｏデバイス１ＢはライトデータＷＤ１Ｂを受信すると、データを正しく受信したことを示すＣＲＣステータスＣＲＣ１ＢをバスＢ上で返すと共に、メモリ部またはＩ／Ｏ部の指定されたアドレスへの書き込みを行う。その際に新たなライトデータを受信することができない場合は、バスＢ上でビジー状態信号Ｂｕｓｙ１Ｂをアサートする。Ｉ／Ｏデバイス１ＡはＣＲＣステータスＣＲＣ１Ｂおよびビジー状態信号Ｂｕｓｙ１Ｂを受信し、バスＡを通じてホストコントローラ２へ通知する。このようにしてホストコントローラ２は特定のＩ／Ｏデバイス１Ｂへのデータの書き込みを行うことが可能となる。
【０１３２】
なおホストコントローラ２がコマンドやライトデータを送信後、所定の時間以内に応答やＣＲＣステータス、ビジー状態信号を受信する必要がある場合、図１６の２）に示すようにＩ／Ｏデバイス１Ａが応答やＣＲＣステータス、ビジー状態信号をバスＡへ返すこともできる。図１６の２）では、Ｉ／Ｏデバイス１ＡはコマンドＣ２Ｂを受け取ると、Ｒ２Ｂをホストコントローラ２へ返すと共にコマンドをＩ／Ｏデバイス１Ｂへ伝送する。続いてライトデータＷＤ１Ｂを受け取るとＣＲＣを計算し、結果をＣＲＣステータスＣ１Ｂとしてホストコントローラへ返すと共にＷＤ１ＢをＩ／Ｏデバイス１Ｂへ伝送する。また、Ｉ／Ｏデバイス１Ｂがビジー状態信号をアサートする時刻Ｔ２より前の時刻Ｔ１にビジー状態信号Ｂｕｓｙ１Ｂをアサートする。その後時刻Ｔ３でＩ／Ｏデバイス１Ｂがビジー状態信号をネゲートしたことを確認した後、時刻Ｔ４にバスＡ上でビジー状態信号Ｂｕｓｙ１Ｂをネゲートする。
【０１３３】
ホストコントローラ２が発行するコマンドＣ２ＢおよびライトデータＷＤ１ＢはＩ／Ｏデバイス１Ａを経由してＩ／Ｏデバイス１Ｂへ伝送されるため、Ｉ／Ｏデバイス１Ａは受信したコマンドやライトデータをＩ／Ｏデバイス１Ｂへ伝送する際に制御部１３でコマンドの解釈やライトデータに対するＣＲＣチェックを行うことができるため、このような処理が可能となる。また、ビジー状態信号をデータ書き込み対象のＩ／Ｏデバイスより長い時間アサートすることで、ホストコントローラ２はＩ／Ｏデバイス１Ｂが確実にライトデータを受け付けられるタイミングでデータを送信することができる。
【０１３４】
ホストコントローラ２がＩ／Ｏデバイス１Ｃへの書き込みを行う場合も同様に動作することが可能である。この場合Ｉ／Ｏデバイス１Ｂはコマンドや応答、ライトデータなどの信号についてバスＢとバスＣの間で伝送させるだけでよい。
【０１３５】
[割り込み]
図１７は、ホストコントローラ２がＩ／Ｏデバイスへデータ書き込みを行っている場合に、いずれかのＩ／Ｏデバイスが割込みを発生する場合を説明する図である。図１７はホストコントローラ２がＩ／Ｏデバイス１Ｂへデータ書き込みを行っている場合にＩ／Ｏデバイス１Ｃが割り込みを発生する場合を示す図である。図１７において、ホストコントローラ２がＩ／Ｏデバイス１Ｂへのデータの書き込みを行っている時刻Ｔ１では、Ｉ／Ｏデバイス１Ｃはコマンドを受け付けていないスタンバイ状態であるため、割込みを出すことができ、Ｉ／Ｏデバイス１ＣのＩＲＱ＿ＯＵＴをアサートして割込みを発生している。
【０１３６】
Ｉ／Ｏデバイス１ＡはＩ／Ｏデバイス１Ｃが割込みをアサートしたことを検出すると、内部の割込み制御部が割り込み要因レジスタ１３０に割り込みを出したＩ／Ｏデバイスのデバイス番号を記録すると共に、バスＡ上で割り込みを発生可能な時刻Ｔ２に割込みを発生しホストコントローラ２へ通知する。このようにＩ／Ｏデバイス１Ａは動作モードが「マスタ」以外のデバイスからの割込みを検出し、バスＡ上で割り込み発生可能なタイミングでバスの衝突を起こさずに割り込みをホストコントローラ２へ通知することができる。ホストコントローラ２がＩ／Ｏデバイス１Ｃや１Ａとデータの読み出しや書き込みを行っている場合についても同様の動作が可能である。
【０１３７】
図１８は割込みを検出したときのホストコントローラ２の動作を説明する図である。図８において、ホストコントローラ２は割り込みを検出すると、Ｉ／Ｏデバイス１Ａを選択し（コマンドＣ１Ａ、応答Ｒ１Ａ）、Ｉ／Ｏデバイス１Ａの要因レジスタ１３０の読み出しを行う（コマンドＣ２Ａ、応答Ｒ２Ａ）。要因レジスタ１３０には割り込みを発生したＩ／Ｏデバイス１Ｃを示すデバイス番号の情報が含まれており、ホストコントローラ２は続けてＩ／Ｏデバイス１Ｃを選択し（コマンドＣ１Ｃ、応答Ｒ１Ｃ）、Ｉ／Ｏデバイス１Ｃの要因レジスタ１３０を読み出して（コマンドＣ２Ｃ、応答Ｒ２Ｃ）割り込み処理を行う。Ｉ／Ｏデバイス１Ｃはホストコントローラが要因レジスタを読み出す処理中の時刻Ｔ１に割り込みをネゲートする。このようにしてホストコントローラ２は割り込みを発生したＩ／Ｏデバイスおよび要因を特定して割り込み処理を行うことができる。
【０１３８】
なお通常は割り込みの有無を示すために信号線が１ビット使用されるが、本実施の形態に係るＩ／ＯデバイスはＤＡＴ０−３の４本のデータ線を備えている。この場合Ｉ／Ｏデバイス１Ａは、図９を用いて説明したように４本の信号線を用いて割り込みを発生し、ホストコントローラが容易に割り込みを発生したＩ／Ｏデバイスを特定でき、短時間で割り込み処理を行えるようにしてもよい。
【０１３９】
このようにして初期化コマンドと応答およびデバイス番号設定コマンドと応答を処理することで本実施の形態に係るコンピュータシステムではホストコントローラ２の端子数を増やすことなく複数のＩ／Ｏデバイスを接続した場合でも、ブロードキャストコマンドへの応答をバスの衝突を起こすことなく行うことができる。また、あるＩ／Ｏデバイスへのデータの読み出しまたは書き込みを実施中に他のＩ／Ｏデバイスが割り込みを発生した場合でも動作モードが「マスタ」であるＩ／Ｏデバイス１Ａが、ホストコントローラ２と接続したバス（この場合バスＡ）の割り込み発生可能期間に割り込みを発生するため、バスの衝突を起こすことなく割り込み信号を伝送することができる。
【０１４０】
さらにホストコントローラ２のバスには１つのＩ／Ｏデバイスしか接続されないため、バスの負荷が増えず、ホストコントローラ２とＩ／Ｏデバイスは所望の動作周波数でデータの読み出しおよび書き込みが可能となる。
【０１４１】
（第３の実施例）
[第１のバスと第２のバスの乗り換え] 
図１９は本発明の第３の実施の形態に係るＩ／Ｏデバイスの備える第１のバスＩＦ部１１０、第２のバスＩＦ部１２０と制御部１３の構成を説明する図である。図１９において、第１のバスＩＦ部１１０および第２のバスＩＦ部１２０は夫々第１のバスおよび第２のバスの信号を入出力するためのバッファやラッチ回路ＦＦ１〜４を備える。ＦＦ１、２は第１のバスで受信したクロックＣＬＫ１の立ち上がりエッジに同期してＣＭＤ１やＤＡＴ１＿０−３をラッチし第１のバス１１へ送り出す信号を同期させる。ＦＦ３、４は第２のバスへ送信するクロックＣＬＫ２の立ち上がりエッジに同期してＣＭＤ２やＤＡＴ２＿０−３をラッチし第１のバス２へ送り出す信号を同期させる。
【０１４２】
制御部１３は第１のバス１１および第２のバス１２の双方向信号ＣＭＤ１、ＣＭＤ２、ＤＡＴ１＿０−３、ＤＡＴ２＿０−３の入出力制御を行うＯＥ制御部を備える。更に、第２のバス１２へ送信するクロックＣＬＫ２を生成するＣＬＫ２制御部を備える。ＣＬＫ２は第１のバスで受信するクロックＣＬＫ１と同じ周波数でもよく、ＣＬＫ１とは異なる周波数でもよい。
【０１４３】
図２０は第１のバスＩＦ部１１０と第２のバスＩＦ部１２０を通過する信号波形を説明する図である。図２０のａ）はＣＬＫ１とＣＬＫ２が同じ周波数の場合、図２０のｂ）はＣＬＫ１とＣＬＫ２が違う周波数の場合を示している。図ではクロック線とコマンド線が示されているが、データ線ＤＡＴ１＿０−３、ＤＡＴ２＿０−３にも適用できることは明らかである。図２０のａ）、ｂ）においては第１のバス１１および第２のバス１２に伝送されるコマンド信号はそれぞれバスのクロックの立ち上がりエッジに同期するように送信されるため、受信側で正しく受信することが可能である。
【０１４４】
（その他の実施の形態)
ここまでの説明では、各Ｉ／Ｏデバイスの第１のバス１１および第２のバス１２には１つのホストコントローラまたはＩ／Ｏデバイスしか接続されていないが、図２１に示すような複数のＩ／Ｏデバイスで信号線を共通にすることも可能である。図２１のａ）は全てのＩ／Ｏデバイスについてクロック線ＣＬＫを共通にした場合である。ホストコントローラ２のクロック線駆動能力が十分高く、複数のＩ／Ｏデバイスの負荷が存在する場合でも適切なクロック信号波形を送信できる場合に可能である。
【０１４５】
また、図２１のｂ）はさらにコマンド線を共通にした場合である。全てのＩ／Ｏデバイスが全く同じタイミングでブロードキャストコマンドに対する応答を返し、かつ全てのＩ／Ｏデバイスがコマンド線をオープンドレイン方式で駆動する場合にはこのような構成も可能である。
【０１４６】
図２２は図１および図１０を用いて説明した本発明の実施の形態に係るＩ／Ｏデバイス１をホストコントローラ２と一対一で接続した場合である。この場合、Ｉ／Ｏデバイス１の第２のバス１２は特定の電位（図２２ではグラウンド電位）に固定され、動作モードは「シングル」、デバイス番号は「未設定」と設定される。この場合には、Ｉ／Ｏデバイス１は従来のＩ／Ｏデバイスと同様に図２４〜２６を用いて説明した動作を行う。
【０１４７】
ここまで図面を用いて本発明の実施の形態に係るＩ／Ｏデバイス、ホストコントローラおよびコンピュータシステムを説明したが、本発明の適用範囲はその範囲に留まるものではなく、当業者が容易に到達可能なあらゆる形態に適用可能であり、例えば図１と図１０で説明した異なるＩ／Ｏデバイスを組み合わせたコンピュータシステムを構成することも可能である。図２で説明した接続構成と図１１で説明した接続構成を組み合わせて更に多数のＩ／Ｏデバイスを接続することも可能である。
【０１４８】
以上図面を用いて説明したように、本発明の実施の形態に係るＩ／Ｏデバイス、ホストコントローラおよびコンピュータシステムでは、ホストコントローラの端子を増やすことなく複数のＩ／Ｏデバイスを接続した場合に生じる課題を解決し、ホストコントローラと複数のＩ／Ｏデバイスを含むコンピュータシステムを構成することができるため、利便性の高いＩ／Ｏデバイス、ホストコントローラおよびコンピュータシステムを提供することができる。
【産業上の利用可能性】
【０１４９】
本発明は、不揮発性メモリや各種Ｉ／Ｏ機能を備えるＩ／Ｏデバイスとそのホストコントローラおよびコンピュータシステム全般に適用可能である。
【図面の簡単な説明】
【０１５０】
【図１】本発明の実施の形態に係るＩ／Ｏデバイスの構成図である。
【図２Ａ】本発明の実施の形態に係るコンピュータシステムの構成図である。
【図２Ｂ】本発明の実施の形態に係るコンピュータシステムの構成図である。
【図３Ａ】本発明の実施の形態に係るコンピュータシステムのコマンド・応答送受信の図である。
【図３Ｂ】本発明の実施の形態に係るコンピュータシステムのコマンド・応答送受信の図である。
【図３Ｃ】本発明の実施の形態に係るコンピュータシステムのコマンド・応答送受信の図である。
【図３Ｄ】本発明の実施の形態に係るコンピュータシステムのコマンド・応答送受信の図である。
【図３Ｅ】本発明の実施の形態に係るコンピュータシステムのコマンド・応答送受信の図である。
【図４Ａ】本発明の実施の形態に係るＩ／Ｏデバイスの初期化コマンドへの応答の図である。
【図４Ｂ】本発明の実施の形態に係るＩ／Ｏデバイスの初期化コマンドへの応答の図である。
【図５Ａ】本発明の実施の形態に係るＩ／Ｏデバイスのデバイス番号設定コマンドへの応答の図である。
【図５Ｂ】本発明の実施の形態に係るＩ／Ｏデバイスのデバイス番号設定コマンドへの応答の図である。
【図５Ｃ】本発明の実施の形態に係るＩ／Ｏデバイスのデバイス番号設定コマンドへの応答の図である。
【図６Ａ】本発明の実施の形態に係るＩ／Ｏデバイスへのデータ書き込みの図である。
【図６Ｂ】本発明の実施の形態に係るＩ／Ｏデバイスへのデータ書き込みの図である。
【図７】本発明の実施の形態に係るＩ／Ｏデバイスの割り込み処理の図である。
【図８】本発明の実施の形態に係るホストコントローラの割り込み要因チェックの図である。
【図９】本発明の実施の形態に係るＩ／Ｏデバイスの割り込み通知の図である。
【図１０】本発明の実施の形態に係るＩ／Ｏデバイスの構成図である。
【図１１】本発明の実施の形態に係るコンピュータシステムの構成図である。
【図１２】本発明の実施の形態に係るコンピュータシステムの割り込み信号の接続図である。
【図１３Ａ】本発明の実施の形態に係るコンピュータシステムのコマンド・応答送受信の図である。
【図１３Ｂ】本発明の実施の形態に係るコンピュータシステムのコマンド・応答送受信の図である。
【図１３Ｃ】本発明の実施の形態に係るコンピュータシステムのコマンド・応答送受信の図である。
【図１３Ｄ】本発明の実施の形態に係るコンピュータシステムのコマンド・応答送受信の図である。
【図１４Ａ】本発明の実施の形態に係るＩ／Ｏデバイスの初期化コマンドへの応答の図である。
【図１４Ｂ】本発明の実施の形態に係るＩ／Ｏデバイスの初期化コマンドへの応答の図である。
【図１５Ａ】本発明の実施の形態に係るＩ／Ｏデバイスのデバイス番号設定コマンドへの応答の図である。
【図１５Ｂ】本発明の実施の形態に係るＩ／Ｏデバイスのデバイス番号設定コマンドへの応答の図である。
【図１５Ｃ】本発明の実施の形態に係るＩ／Ｏデバイスのデバイス番号設定コマンドへの応答の図である。
【図１６Ａ】本発明の実施の形態に係るＩ／Ｏデバイスへのデータ書き込みの図である。
【図１６Ｂ】本発明の実施の形態に係るＩ／Ｏデバイスへのデータ書き込みの図である。
【図１７】本発明の実施の形態に係るＩ／Ｏデバイスの割り込み処理の図である。
【図１８】本発明の実施の形態に係るホストコントローラの割り込み要因チェックの図である。
【図１９】本発明の実施の形態に係るＩ／ＯデバイスのバスＩＦ部の構成の図である。
【図２０】第１のバスと第２のバスの信号波形の図である。
【図２１】本発明の実施の形態に係るコンピュータシステムの信号線接続方法の図である。
【図２２】本発明の実施の形態に係るＩ／Ｏデバイスとホストコントローラを一対一で接続したコンピュータシステムの図である。
【図２３】従来のＩ／Ｏデバイスの一例を示すブロック図である。
【図２４】従来のＩ／Ｏデバイス１とホストコントローラ２のコマンド応答シーケンスおよびデータ転送を説明する図である。
【図２５】従来のＩ／Ｏデバイス１が発生する割り込み信号を説明する図である。
【図２６】Ｉ／Ｏデバイス１とホストコントローラ２が送受信するコマンド、応答のフォーマットおよびＩ／Ｏデバイス１の状態遷移を説明する図である。
【図２７】複数の従来のＩ／Ｏデバイスを同一のバスに接続した場合のブロードキャストコマンドの動作を示す図である。
【図２８】複数の従来のＩ／Ｏデバイスを同一のバスに接続した場合の割り込み信号の転送動作を示す図である。
【符号の説明】
【０１５１】
１  Ｉ／Ｏデバイス
１０１  バスＩＦ部
１１  第１のバス
１１０  第１のバスＩＦ
１２  第２のバス
１２０  第２のバスＩＦ
１３  制御部
１３０  割り込み要因レジスタ
１４  デバイス番号設定手段
１５  モード設定手段
１６  メモリ部
１７  Ｉ／Ｏ部
２  ホストコントローラ
２０  バスＩＦ部
２１  デバイス制御部
２２  ＣＰＵ
２３  ＲＯＭ／ＲＡＭ
【図１】
2009123141.tif 000003
【図２Ａ】
2009123141.tif 000004
【図２Ｂ】
2009123141.tif 000005
【図３Ａ】
2009123141.tif 000006
【図３Ｂ】
2009123141.tif 000007
【図３Ｃ】
2009123141.tif 000008
【図３Ｄ】
2009123141.tif 000009
【図３Ｅ】
2009123141.tif 000010
【図４Ａ】
2009123141.tif 000011
【図４Ｂ】
2009123141.tif 000012
【図５Ａ】
2009123141.tif 000013
【図５Ｂ】
2009123141.tif 000014
【図５Ｃ】
2009123141.tif 000015
【図６Ａ】
2009123141.tif 000016
【図６Ｂ】
2009123141.tif 000017
【図７】
2009123141.tif 000018
【図８】
2009123141.tif 000019
【図９】
2009123141.tif 000020
【図１０】
2009123141.tif 000021
【図１１】
2009123141.tif 000022
【図１２】
2009123141.tif 000023
【図１３Ａ】
2009123141.tif 000024
【図１３Ｂ】
2009123141.tif 000025
【図１３Ｃ】
2009123141.tif 000026
【図１３Ｄ】
2009123141.tif 000027
【図１４Ａ】
2009123141.tif 000028
【図１４Ｂ】
2009123141.tif 000029
【図１５Ａ】
2009123141.tif 000030
【図１５Ｂ】
2009123141.tif 000031
【図１５Ｃ】
2009123141.tif 000032
【図１６Ａ】
2009123141.tif 000033
【図１６Ｂ】
2009123141.tif 000034
【図１７】
2009123141.tif 000035
【図１８】
2009123141.tif 000036
【図１９】
2009123141.tif 000037
【図２０】
2009123141.tif 000038
【図２１】
2009123141.tif 000039
【図２２】
2009123141.tif 000040
【図２３】
2009123141.tif 000041
【図２４】
2009123141.tif 000042
【図２５】
2009123141.tif 000043
【図２６】
2009123141.tif 000044
【図２７】
2009123141.tif 000045
【図２８】
2009123141.tif 000046