(57)【特許請求の範囲】
【請求項１】
バスを介してデータ転送を行うためのデータ転送制御システムであって、
第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行うポート制御部と、
ノードのトポロジ情報をクリアするバスリセットを発行するバスリセット発行部と、
パケット処理を行うパケット処理部とを含み、
前記ポート制御部が、
第２のポートをディスエーブル状態に設定し、
前記バスリセット発行部が、
第２のポートがディスエーブル状態に設定された後にバスリセットを発行して、第１のポートに接続される第１の電子機器にアクセス権を獲得させ、
前記ポート制御部が、
バスリセットが発行されて第１のポートに接続される第１の電子機器がアクセス権を獲得した後に、第２のポートをイネーブル状態に設定し、
前記パケット処理部が、
第２のポートがイネーブル状態に設定された後、第２のポートに接続される第２の電子機器がサスペンド状態であることが検出された場合には、サスペンド状態をレジュームするためのパケットを第２の電子機器に転送するための処理を行うことを特徴とするデータ転送制御システム。
【請求項２】
請求項１において、
前記バスリセット発行部が、
サスペンド状態をレジュームするためのパケットが転送された後に、バスリセットを発行することを特徴とするデータ転送制御システム。
【請求項３】
バスを介してデータ転送を行うためのデータ転送制御システムであって、
第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行うポート制御部と、
ノードのトポロジ情報をクリアするバスリセットを発行するバスリセット発行部とを含み、
前記ポート制御部が、
第２のポートをディスエーブル状態に設定し、
前記バスリセット発行部が、
第２のポートがディスエーブル状態に設定された後にバスリセットを発行して、第１のポートに接続される第１の電子機器にアクセス権を獲得させ、
前記ポート制御部が、
バスリセットが発行されて第１のポートに接続される第１の電子機器がアクセス権を獲得した後に、第２のポートをイネーブル状態に設定し、第２のポートがイネーブル状態に設定された後、バスリセットが発生したか否かを判断し、バスリセットが発生した場合には、第１のポートに接続される第１の電子機器がアクセス権を失ったか否かを判断し、第１の電子機器がアクセス権を失った場合には、第２のポートを、再度、ディスエーブル状態に設定し、第２のポートがディスエーブル状態に設定された後、バスリセットが発生したか否かを判断し、バスリセットが発生した場合には、アクセス権を失った第１の電子機器がアクセス権の獲得を要求してきたか否かを判断し、第１の電子機器がアクセス権の獲得を要求してきた場合には、第１の電子機器にアクセス権を獲得させることを特徴とするデータ転送制御システム。
【請求項４】
第１のポートに接続される第１の電子機器の機能を拡張するための電子機器であって、
請求項１乃至３のいずれかのデータ転送制御システムと、
第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートと、
を含むことを特徴とする電子機器。
【請求項５】
請求項４において、
前記ポート制御部が、
第１の電子機器のポートが第１のポートに接続され、電子機器の電源がオンになった場合に、第２のポートをディスエーブル状態に設定することを特徴とする電子機器。
【請求項６】
第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行うポート制御部と、
ノードのトポロジ情報をクリアするバスリセットを発行するバスリセット発行部と、
パケット処理を行うパケット処理部として、
データ転送制御システムを機能させるプログラムであって、
前記ポート制御部が、
第２のポートをディスエーブル状態に設定し、
前記バスリセット発行部が、
第２のポートがディスエーブル状態に設定された後にバスリセットを発行して、第１のポートに接続される第１の電子機器にアクセス権を獲得させ、
前記ポート制御部が、
バスリセットが発行されて第１のポートに接続される第１の電子機器がアクセス権を獲得した後に、第２のポートをイネーブル状態に設定し、
前記パケット処理部が、
第２のポートがイネーブル状態に設定された後、第２のポートに接続される第２の電子機器がサスペンド状態であることが検出された場合には、サスペンド状態をレジュームするためのパケットを第２の電子機器に転送するための処理を行うことを特徴とするプログラム。
【請求項７】
第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行うポート制御部と、
ノードのトポロジ情報をクリアするバスリセットを発行するバスリセット発行部として、
データ転送制御システムを機能させるプログラムであって、
前記ポート制御部が、
第２のポートをディスエーブル状態に設定し、
前記バスリセット発行部が、
第２のポートがディスエーブル状態に設定された後にバスリセットを発行して、第１のポートに接続される第１の電子機器にアクセス権を獲得させ、
前記ポート制御部が、
バスリセットが発行されて第１のポートに接続される第１の電子機器がアクセス権を獲得した後に、第２のポートをイネーブル状態に設定し、第２のポートがイネーブル状態に設定された後、バスリセットが発生したか否かを判断し、バスリセットが発生した場合には、第１のポートに接続される第１の電子機器がアクセス権を失ったか否かを判断し、第１の電子機器がアクセス権を失った場合には、第２のポートを、再度、ディスエーブル状態に設定し、第２のポートがディスエーブル状態に設定された後、バスリセットが発生したか否かを判断し、バスリセットが発生した場合には、アクセス権を失った第１の電子機器がアクセス権の獲得を要求してきたか否かを判断し、第１の電子機器がアクセス権の獲得を要求してきた場合には、第１の電子機器にアクセス権を獲得させることを特徴とするプログラム。
【請求項８】
バスを介してデータ転送を行うためのデータ転送制御方法であって、
第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行い、第２のポートをディスエーブル状態に設定し、
第２のポートがディスエーブル状態に設定された後に、ノードのトポロジ情報をクリアするバスリセットを発行して、第１のポートに接続される第１の電子機器にアクセス権を獲得させ、
バスリセットが発行されて第１のポートに接続される第１の電子機器がアクセス権を獲得した後に、第２のポートをイネーブル状態に設定し、
第２のポートがイネーブル状態に設定された後、第２のポートに接続される第２の電子機器がサスペンド状態であることが検出された場合には、サスペンド状態をレジュームするためのパケットを第２の電子機器に転送するための処理を行うことを特徴とするデータ転送制御方法。
【請求項９】
バスを介してデータ転送を行うためのデータ転送制御方法であって、
第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行い、第２のポートをディスエーブル状態に設定し、
第２のポートがディスエーブル状態に設定された後に、ノードのトポロジ情報をクリアするバスリセットを発行して、第１のポートに接続される第１の電子機器にアクセス権を獲得させ、
バスリセットが発行されて第１のポートに接続される第１の電子機器がアクセス権を獲得した後に、第２のポートをイネーブル状態に設定し、第２のポートがイネーブル状態に設定された後、バスリセットが発生したか否かを判断し、バスリセットが発生した場合には、第１のポートに接続される第１の電子機器がアクセス権を失ったか否かを判断し、第１の電子機器がアクセス権を失った場合には、第２のポートを、再度、ディスエーブル状態に設定し、第２のポートがディスエーブル状態に設定された後、バスリセットが発生したか否かを判断し、バスリセットが発生した場合には、アクセス権を失った第１の電子機器がアクセス権の獲得を要求してきたか否かを判断し、第１の電子機器がアクセス権の獲得を要求してきた場合には、第１の電子機器にアクセス権を獲得させることを特徴とするデータ転送制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送制御システム、電子機器、プログラム及びデータ転送制御方法に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
近年、ＩＥＥＥ１３９４と呼ばれるインターフェース規格が脚光を浴びている。そして、このＩＥＥＥ１３９４のトランザクション層の一部の機能を含む上位のプロトコルとして、ＳＢＰ−２（Ｓｅｒｉａｌ  Ｂｕｓ  Ｐｒｏｔｏｃｏｌ−２）と呼ばれるプロトコルが提案されている。このＳＢＰ−２（広義にはＳＢＰ）は、ＳＣＳＩ（ＳＰＣ−２）のコマンドセットをＩＥＥＥ１３９４のプロトコル上で利用可能にするために提案されたものである。このＳＢＰ−２を用いれば、既存のＳＣＳＩ規格対応の電子機器で使用されていたコマンドセットに最小限の変更を加えて、ＩＥＥＥ１３９４規格の電子機器に使用できるようになる。従って、電子機器の設計や開発を容易化できる。
【０００３】
さて、このＳＢＰ−２では、イニシエータとなる電子機器（例えばパーソナルコンピュータ）とターゲットとなる電子機器（例えばストレージデバイス）の間では、ピア・ツー・ピアでデータ転送が行われる。従って、イニシエータがターゲットに対してログインしてアクセス権を獲得した後は、そのイニシエータがターゲットのアクセス権（ＳＢＰ−２におけるアクセス権）を専有することになる。このため、そのターゲットに対しては他の電子機器はアクセスできなくなる。
【０００４】
一方、ノート型のパーソナルコンピュータ（以下、適宜ＰＣと呼ぶ）などでは、その機能を拡張するための拡張機器（拡張用の電子機器）が別売されることがある。この拡張機器には、ハードディスクドライブ（ＨＤＤ）、ＣＤドライブなどのストレージデバイスやＩＥＥＥ１３９４、ＵＳＢなどの各種インターフェースが設けられている。そして、ユーザは、ノート型ＰＣと拡張機器をドッキングすることで、拡張機器が有する種々の機能（ストレージデバイス、ポート）を利用できるようになる。これにより、ノート型ＰＣの本体から、拡張機器が備える拡張機能を省くことが可能になり、ノート型ＰＣの軽量化、コンパクト化を図れる。
【０００５】
しかしながら、このような拡張機器とノート型ＰＣとを接続した際に、この拡張機器に対するアクセス権（バス使用権）を他のＰＣが獲得してしまうと、拡張機器の拡張機能をユーザが利用できなくなってしまうという事態が生じる。
【０００６】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、所望の電子機器にアクセス権を優先的に獲得させることができるデータ転送制御システム、電子機器、プログラム及びデータ転送制御方法を提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、バスを介してデータ転送を行うためのデータ転送制御システムであって、第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行うポート制御部と、ノードのトポロジ情報をクリアするバスリセットを発行するバスリセット発行部とを含み、前記ポート制御部が、第２のポートをディスエーブル状態に設定し、前記バスリセット発行部がバスリセットを発行し、第１のポートに接続される第１の電子機器にアクセス権を獲得させるデータ転送制御システムに関係する。
【０００８】
本発明では、バスリセットが発行される前に、第２のポートがディスエーブル状態に設定される。そして、第２のポートがディスエーブル状態に設定された後にバスリセットが発行されるため、第２のポートに接続される第２の電子機器にアクセス権を奪われてしまう事態を防止できる。これにより、第１のポートに接続される第１の電子機器にアクセス権（第１のポートのバス使用権）を優先的に獲得させること（第１の電子機器に優先的にログインさせること）が可能になる。
【０００９】
また本発明では、前記ポート制御部が、バスリセットが発行されて第１のポートに接続される第１の電子機器がアクセス権を獲得した後に、第２のポートをイネーブル状態に設定してもよい。
【００１０】
このようにすれば、データ転送制御システムが組み込まれる電子機器と第１の電子機器との間で第１のプロトコル（例えばＳＢＰ−２、ＳＢＰ）のデータ転送を実現しながら、第１の電子機器と第２の電子機器との間で第２のプロトコル（例えばＩＰｏｖｅｒ１３９４）のデータ転送を実現することが可能になる。
【００１１】
また本発明では、第２のポートがイネーブル状態に設定された後、第２のポートに接続される第２の電子機器がサスペンド状態であることが検出された場合に、サスペンド状態をレジュームするためのパケットを第２の電子機器に転送するための処理を行うパケット処理部を含んでもよい。
【００１２】
このようにすれば、第２のポートがディスエーブル状態になることでサスペンド状態に移行してしまった第２の電子機器との間で、データ転送を行うことが可能になる。
【００１３】
また本発明では、前記バスリセット発行部が、サスペンド状態をレジュームするためのパケットが転送された後に、バスリセットを発行してもよい。
【００１４】
このようにバスリセットが発行されることで、ノードのトポロジ情報がクリアされて、第２の電子機器を新たなノードとして追加することなどが可能になる。
【００１５】
また本発明では、前記ポート制御部が、第２のポートがイネーブル状態に設定された後、第１のポートに接続される第１の電子機器がアクセス権を失った場合には、第２のポートを、再度、ディスエーブル状態に設定してもよい。
【００１６】
ここで第１の電子機器がアクセス権を失う場合とは、例えば、第１の電子機器がリブートされた場合、第１のポートのケーブルが外れた場合、或いは第１の電子機器のソフトウェア処理によるアンプラグが行われた場合などである。
【００１７】
また本発明は、バスを介してデータ転送を行うためのデータ転送制御システムであって、第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行うポート制御部を含み、前記ポート制御部が、データ転送制御システムの電源がオンになった場合に、第２のポートをディスエーブル状態に設定するデータ転送制御システムに関係する。
【００１８】
本発明によれば、データ転送制御システム（データ転送制御システムが組み込まれる電子機器）の電源がオンになったことを条件（電源がオンになった後）に、第２のポートがディスエーブル状態に設定される（第１のポートはイネーブル状態になる）。これにより、第２のポートに接続される第２の電子機器にアクセス権を奪われてしまう事態を防止でき、第１のポートに接続される第１の電子機器にアクセス権を優先的に獲得させることが可能になる。
【００１９】
また本発明では、第１の電子機器のポートが第１のポートに接続された場合に、データ転送制御システムの電源がオンになってもよい。
【００２０】
このようにすれば、第１の電子機器のポートが第１のポートに接続された場合（データ転送制御システムが組み込まれる電子機器と第１の電子機器とが接続された場合）に、第１の電子機器にアクセス権を優先的に獲得させることが可能になる。
【００２１】
なお、本発明では、ＩＥＥＥ１３９４に準拠したデータ転送を行うことができる。
【００２２】
また本発明は、第１のポートに接続される第１の電子機器の機能を拡張するための電子機器であって、上記のいずれかのデータ転送制御システムと、第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートとを含む電子機器に関係する。
【００２３】
また本発明では、前記ポート制御部が、第１の電子機器のポートが第１のポートに接続され、電子機器の電源がオンになった場合に、第２のポートをディスエーブル状態に設定してもよい。
【００２４】
また本発明は、第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行うポート制御部と、ノードのトポロジ情報をクリアするバスリセットを発行するバスリセット発行部として、データ転送制御システムを機能させるプログラムであって、前記ポート制御部が、第２のポートをディスエーブル状態に設定し、前記バスリセット発行部がバスリセットを発行し、第１のポートに接続される第１の電子機器にアクセス権を獲得させるプログラムに関係する。
【００２５】
また本発明は、第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行うポート制御部として、データ転送制御システムを機能させるプログラムであって、前記ポート制御部が、データ転送制御システムの電源がオンになった場合に、第２のポートをディスエーブル状態に設定するプログラムに関係する。
【００２６】
また本発明は、バスを介してデータ転送を行うためのデータ転送制御方法であって、第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行い、第２のポートをディスエーブル状態に設定し、第２のポートがディスエーブル状態に設定された後に、ノードのトポロジ情報をクリアするバスリセットを発行し、第１のポートに接続される第１の電子機器にアクセス権を獲得させるデータ転送制御方法に関係する。
【００２７】
また本発明は、バスを介してデータ転送を行うためのデータ転送制御方法であって、第１の電子機器を接続するための第１のポートと第２の電子機器を接続するための第２のポートを含む複数のポートの制御を行い、データ転送制御システムの電源がオンになった場合に、第２のポートをディスエーブル状態に設定するデータ転送制御方法に関係する。
【００２８】
【発明の実施の形態】
以下、本発明の実施形態について詳細に説明する。
【００２９】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００３０】
１．ＩＥＥＥ１３９４、ＳＢＰ−２
１．１  層構造
図１に、ＩＥＥＥ１３９４、ＳＢＰ−２の層構造（プロトコル・スタック）を簡略化して示す。
【００３１】
ＩＥＥＥ１３９４（ＩＥＥＥ１３９４−１９９５、Ｐ１３９４ａ、Ｐ１３９４ｂ等）のプロトコルは、トランザクション層、リンク層、物理層により構成される。
【００３２】
トランザクション層は、上位層にトランザクション単位のインターフェース（サービス）を提供し、下層のリンク層が提供するインターフェースを通して、リードトランザクション、ライトトランザクション、ロックトランザクション等のトランザクションを実施する。
【００３３】
ここで、リードトランザクションでは、応答ノードから要求ノードにデータが転送される。一方、ライトトランザクションでは、要求ノードから応答ノードにデータが転送される。またロックトランザクションでは、要求ノードから応答ノードにデータが転送され、応答ノードがそのデータに処理を施して要求ノードに返信する。
【００３４】
リンク層は、アドレッシング、データチェック、パケット送受信のためのデータフレーミング、アイソクロナス転送のためのサイクル制御などを提供する。
【００３５】
物理層は、リンク層により使用されるロジカルシンボルの電気信号への変換や、バスの調停や、バスの物理的インターフェースを提供する。
【００３６】
ＳＢＰ−２（Ｓｅｒｉａｌ  Ｂｕｓ  Ｐｒｏｔｏｃｏｌ−２）は、ＳＣＳＩ（ＳＰＣ−２）のコマンドセットをＩＥＥＥ１３９４（広義には第１のインターフェース規格）のプロトコル上で利用可能にするために提案されたものである。このＳＢＰ−２（広義にはＳＢＰ）は、図１に示すように、ＩＥＥＥ１３９４のトランザクション層の一部の機能を含む上位のプロトコルである。
【００３７】
１．２  ＳＢＰ−２の処理
図２に、ＳＢＰ−２（広義には第１のインターフェース規格の上位の第１のプロトコル）の処理の全体についてのフローチャートを示す。
【００３８】
図２に示すように、ＳＢＰ−２では、まず、接続機器の確認を行うためのコンフィギュレーションＲＯＭのリード処理が行われる（ステップＴ１）。
【００３９】
次に、イニシエータ（例えばパーソナルコンピュータ）が、ターゲット（例えばストレージデバイス）に対するアクセス権（リクエスト開始の許可。バスの使用権）を獲得するためのログイン処理が行われる（ステップＴ２）。具体的には、イニシエータにより作成されたログインＯＲＢ（Ｏｐｅｒａｔｉｏｎ  Ｒｅｑｕｅｓｔ  Ｂｌｏｃｋ）を用いてログイン処理が行われる。
【００４０】
次に、フェッチエージェントの初期化が行われる（ステップＴ３）。そして、コマンドブロックＯＲＢ（ノーマルコマンドＯＲＢ）を用いてコマンド処理が行われ（ステップＴ４）、最後に、ログアウトＯＲＢを用いてログアウト処理が行われる（ステップＴ５）。
【００４１】
ここで、ステップＴ４のコマンド処理においては、図３のＡ１に示すように、イニシエータがライト要求パケットを転送して（ライト要求トランザクションを発行して）、ターゲットのドアベルレジスタをリングする。すると、Ａ２に示すように、ターゲットがリード要求パケットを転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータが作成したＯＲＢ（コマンドブロックＯＲＢ）が、ターゲットのデータバッファ（パケットバッファ）にフェッチされる。そして、ターゲットは、フェッチされたＯＲＢに含まれるコマンドを解析する。
【００４２】
そして、ＯＲＢに含まれるコマンドがＳＣＳＩのライトコマンドであった場合には、Ａ３に示すように、ターゲットがリード要求パケットをイニシエータに転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータのデータバッファに格納されているデータがターゲットに転送される。そして、例えばターゲットがストレージデバイスであった場合には、転送されたデータがストレージデバイスに書き込まれる。
【００４３】
一方、ＯＲＢに含まれるコマンドがＳＣＳＩのリードコマンドであった場合には、図４のＢ１に示すように、ターゲットは、一連のライト要求パケットをイニシエータに転送する。これにより、例えばターゲットがストレージデバイスであった場合には、ストレージデバイスから読み出されたデータが、イニシエータのデータバッファに転送されることになる。
【００４４】
このＳＢＰ−２によれば、ターゲットは、自身が都合の良いときに要求パケットを転送して（トランザクションを発行して）、データを送受信できる。従って、イニシエータとターゲットが同期して動く必要がなくなるため、データ転送効率を高めることができる。
【００４５】
１．３  ＩＰｏｖｅｒ１３９４
ＩＥＥＥ１３９４の上位プロトコルとしては、ストレージデバイスやプリンタのデータの転送に最適なＳＢＰ−２以外にも、映像や音声のデータの転送に最適なＡＶ／Ｃコマンドが提案されている。また、ＩＥＥＥ１３９４バス上で、インターネットプロトコル（ＩＰ）のパケットを転送するものとしてＩＰｏｖｅｒ１３９４と呼ばれるプロトコルも提案されている。
【００４６】
図５に、ＩＰｏｖｅｒ１３９４（広義には第１のインターフェース規格の上位の第２のプロトコル）の層構造（プロトコルスタック）を示す。ＩＰｏｖｅｒ１３９４層は、ＩＥＥＥ１３９４層の上位であり、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ
Ｐｒｏｔｏｃｏｌ）層、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）層の下位に位置する。
【００４７】
このＩＰｏｖｅｒ１３９４では、ＩＰパケットをＩＥＥＥ１３９４で転送するための仕様を定めている。即ち、アプリケーションデータにＴＣＰヘッダとＩＰヘッダを付加することで得られるＩＰパケットを、送信側で複数の１３９４パケットに分割し、受信側で再構築（フラグメンテーション）する。
【００４８】
また、ＩＰｏｖｅｒ１３９４では、ＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）と呼ばれるプロトコルを採用する。このＡＲＰでは、送信ノードは、ディスネーションとなるＩＰアドレスを含むＡＲＰ要求をブロードキャスト（アシンクロナスストリーム）する。すると、受信ノードは、自分のリンク情報を含むＡＲＰ応答を返送する。そして送信ノードは、そのリンクアドレス宛にＩＰパケットを送信（アシンクロナスライト）する。
【００４９】
このＩＰｏｖｅｒ１３９４によれば、事前にデータ転送経路を確保する必要がなく、パケットの１つ１つが宛先情報（ＩＰアドレス）を持つため、中継装置（ルータ）によるｐａｃｋｅｔ−ｂｙーｐａｃｋｅｔの中継が可能になる。
【００５０】
１．４  バスリセット
ＩＥＥＥ１３９４では、電源が投入されたり、途中でデバイスの抜き差しが発生すると、バスリセットが発生（発行）する。即ち、各ノードは、ポートの電圧変化を監視している。そして、バスに新たなノードが接続されるなどしてポートの電圧に変化が生じると、この変化を検知したノードは、バス上の他のノードに対して、バスリセットが発生したことを知らせる。また、各ノードの物理層は、バスリセットが発生したことをリンク層に伝える。
【００５１】
そして、このようにバスリセットが発生すると、図６に示すようなトポロジの情報（ノードＩＤ等）がクリアされる。そして、その後、トポロジー情報が自動的に再設定される。即ち、バスリセット後、ツリー識別、自己識別が行われる。その後、アイソクロナスリソースマネージャ、サイクルマスタ、バスマネージャ等の管理ノードが決定される。そして、通常のパケット転送が再開される。
【００５２】
このようにＩＥＥＥ１３９４では、バスリセット後にトポロジ情報が自動的に再設定されるため、電子機器のケーブルを自由に抜き差しできるようになり、いわゆるホットプラグを実現できる。
【００５３】
なお、トランザクションの途中でバスリセットが発生した場合には、そのトランザクションはキャンセルされる。そして、キャンセルされたトランザクションを発行した要求ノードは、トポロジー情報が再設定された後に、要求パケットを再度転送する。また、応答ノードは、バスリセットによりキャンセルされたトランザクションの応答パケットを要求ノードに返送してはならない。
【００５４】
１．５  拡張機器（拡張用の電子機器。オプション機器）
図７（Ａ）に示すように、ノート型パーソナルコンピュータＰＣ１（広義には電子機器）などでは、その機能を拡張するための拡張機器ＥＰ（広義には電子機器）が用意されることがある。この拡張機器ＥＰには、ハードディスクドライブ（ＨＤＤ）やＣＤ（ＣＤ−Ｒ、ＣＤ−ＲＷ）の読み出し・書き込みを行うＣＤドライブ（広義にはストレージデバイス）や、ポートＰ１、Ｐ２（コネクタ）が設けられている。
【００５５】
図７（Ａ）において、ＰＣ１を拡張機器ＥＰにドッキングすると、ＰＣ１に設けられた図示しないポートと拡張機器ＥＰのポートＰ１が接続されると共に、拡張機器ＥＰの電源がオンになる。そしてポートＰ１には、ＩＥＥＥ１３９４のデータ転送に必要な端子が設けられているため、ＰＣ１と拡張機器ＥＰとの間でのＩＥＥＥ１３９４（ＳＢＰ−２）によるデータ転送が可能になる。これにより、ＰＣ１がハードディスクやＣＤにアクセスして、データを読み出したり、書き込んだりすることが可能になる。
【００５６】
また、ポートＰ２には、ＩＥＥＥ１３９４を利用したＬＡＮ（ローカルエリアネットワーク）により、例えばホストコンピュータＰＣ２（広義には電子機器）が接続される。このようなＬＡＮ接続を行うことで、ノート型パーソナルコンピュータＰＣ１とホストコンピュータＰＣ２との間で、ＩＥＥＥ１３９４（ＩＰｏｖｅｒ１３９４）を用いたデータ転送も可能になる。
【００５７】
一方、図７（Ｂ）では、ＥＰ−１、ＥＰ−２は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ。広義には電子機器）であるＰＣ１−１、ＰＣ１−２の拡張機器として使用されている。
【００５８】
例えば、ＰＣ１−１を所持して外出し、外出先でデータをＰＣ１−１の内蔵ＨＤＤ（ハードディスクドライブ。広義にはストレージデバイス）に記憶させる。そして、外出先から戻り、ＰＣ１−１を拡張機器ＥＰ−１にドッキングさせる。すると、ＰＣ１−１のポートとＥＰ−１のポートＰ１が接続されると共にＥＰ−１の電源がオンになる。これにより、ＰＣ１−１の内蔵ＨＤＤに格納されるデータを、ポートＰ１、Ｐ２を介して、ＩＥＥＥ１３９４によりＬＡＮ接続されたホストコンピュータＰＣ２に転送できる。そして、外出先で得られたデータをホストコンピュータＰＣ２で管理できるようになる。
【００５９】
さて、図７（Ａ）、（Ｂ）では、図８（Ａ）に示すように、ＥＰ（電子機器）のポートＰ１（第１のポート）はＰＣ１（第１の電子機器）のポートＰＡに接続される。また、ＥＰのポートＰ２（第２のポート）はＰＣ２（第２の電子機器）のポートＰＢに接続される。そして、これらのポート間ではＩＥＥＥ１３９４によるデータ転送が行われる。
【００６０】
ＳＢＰ−２仕様では、１つのターゲットに対して複数のイニシエータがログインするとコントロールに矛盾が生じる場合がある。例えば、２台のＰＣから同時に１台のＨＤＤにアクセスする場合などである。そこで、従来は、図２で説明したように、イニシエータがターゲットにログインしてアクセス権を獲得すると、ログアウトが行われるまで、そのイニシエータがそのターゲットへのアクセス権を専有することとしていた。
【００６１】
例えば図８（Ｂ）において、イニシエータであるＰＣ１が、ターゲットであるＥＰにログインすると、ＰＣ１は、ＥＰへのアクセス権（ＳＢＰ−２におけるアクセス権）を専有する。従って、例えばＰＣ１がログアウトするまで、ＰＣ１とＥＰとの間でピア・ツー・ピアのデータ転送が行われるようになる。
【００６２】
ところが、図８（Ａ）の接続の場合に、ＰＣ１とＰＣ２のいずれがアクセス権を獲得するかは、電子機器ＥＰが有するデータ転送制御システムの調停回路等により決められる。従って、接続のタイミング等によっては、電子機器ＥＰのアクセス権をＰＣ２に奪われてしまい、ＰＣ１はＥＰに対するＳＢＰ−２のアクセス権を獲得できない事態が生じる。
【００６３】
このような事態が生じると、ＰＣ１の拡張機器として機能するはずの電子機器ＥＰを、ＰＣ１が使用できないことになり、ユーザの利便性が悪化する。
【００６４】
一方、ＰＣ１とＰＣ２との間では、図５で説明したＩＰｏｖｅｒ１３９４のデータ転送経路も確保する必要がある。
【００６５】
２．全体構成
以上のような課題を解決するデータ転送制御システム及びこれを含む電子機器の全体構成例を図９に示す。なお、以下では、イニシエータとの間でデータ転送を行うターゲットがストレージデバイス（ＣＤドライブ、ＤＶＤドライブ、ＨＤＤドライブ等）である場合について例にとり説明するが、本発明はこれに限定されない。
【００６６】
電子機器ＥＰは、データ転送制御システム１０とストレージデバイス１２（広義にはデバイス）を有する。また、外部の電子機器ＰＣ１、ＰＣ２（ノート型ＰＣ、ＰＤＡ、ホストコンピュータ等）のポートＰＡ、ＰＢと接続するためのポートＰ１、Ｐ２を有する。
【００６７】
なお、電子機器ＥＰには、図示しないシステムＣＰＵ、システムメモリ（ＲＯＭ、ＲＡＭ）、操作部、或いは信号処理デバイス等を含めることができる。
【００６８】
データ転送制御システム１０は、物理層（ＰＨＹ）回路１４、リンク層回路２０、ＳＢＰ−２回路２２、インターフェース回路３０、バッファ管理回路３８、バケットバッファ４０（データバッファ）を含む。また、ＣＰＵ４２、フラッシュメモリ４４（ＥＥＰＲＯＭ）を含む。また、フラッシュメモリ４４にその処理モジュール（プログラム）が記憶され、ＣＰＵ４２（広義にはプロセッサ）により実行されるファームウェア５０を含む。なお、本実施形態のデータ転送制御システム１０は、図９に示す全ての回路ブロック、機能ブロックを含む必要はなく、その一部を省略してもよい。
【００６９】
物理層回路１４は、図１の物理層のプロトコルをハードウェアにより実現するための回路であり、リンク層回路２０により使用されるロジカルシンボルを電気信号に変換する機能を有する。
【００７０】
物理層回路１４が含む制御レジスタ１６は、物理層回路１４が行う種々の処理を制御するためのレジスタである。物理層回路１４が含むポート制御回路１８は、ポート（ノードにおける物理層において、他のノードとの物理的な接続を供給するもの）Ｐ１、Ｐ２の制御を行う回路である。
【００７１】
リンク（＆トランザクション）層回路２０は、図１のリンク層のプロトコルやトランザクション層のプロトコルの一部をハードウェアにより実現するための回路であり、ノード間でのパケット転送のための各種サービスを提供する。
【００７２】
これらの物理層回路１４、リンク層回路２０の機能により、ＩＥＥＥ１３９４に準拠したデータ転送を、ＢＵＳ１（第１のバス）を介して他の電子機器ＰＣ１、ＰＣ２との間で行うことが可能になる。
【００７３】
ＳＢＰ−２回路２２（転送実行回路）は、ＳＢＰ−２のプロトコルの一部やトランザクション層の一部をハードウェアにより実現する回路である。このＳＢＰ−２回路２２の機能により、転送データを一連のパケットに分割し、分割された一連のパケットを連続転送する処理が可能になる。
【００７４】
インターフェース回路３０は、ストレージデバイス１２とのインターフェース処理を行う回路である。このインターフェース回路３０の機能により、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）、ＡＴＡＰＩ（ＡＴＡ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ）に準拠したデータ転送を、ＢＵＳ２（第２のバス）を介してストレージデバイス１２との間で行うことが可能になる。
【００７５】
そして、図９のように物理層回路１４、リンク層回路２０、インターフェース回路３０を設けることで、ＩＥＥＥ１３９４（広義には第１のインターフェース規格）とＡＴＡ（ＩＤＥ）／ＡＴＡＰＩ（広義には第２のインターフェース規格）の変換ブリッジ機能をデータ転送制御システム１０に持たせることが可能になる。
【００７６】
インターフェース回路３０が含むＤＭＡコントローラ３２は、ＢＵＳ２を介してストレージデバイス１２との間でＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を行うための回路である。
【００７７】
バッファ管理回路３８は、パケットバッファ４０とのインターフェースを管理する回路である。バッファ管理回路３８は、バッファ管理回路３８の制御のためのレジスタ、パケットバッファ４０へのバス接続を調停する調停回路、各種の制御信号を生成するシーケンサなどを含む。
【００７８】
パケットバッファ４０（パケットメモリ、データバッファ）は、パケット（転送データ）を一時的に格納するためのバッファであり、ＳＲＡＭ、ＳＤＲＡＭ、或いはＤＲＡＭなどのハードウェアにより構成される。なお、本実施形態では、パケットバッファ４０は、ランダムアクセス可能なパケット記憶部として機能する。また、パケットバッファ４０を、データ転送制御システム１０に内蔵せずに、外付けにしてもよい。
【００７９】
ＣＰＵ４２（広義にはプロセッサ）は、装置全体の制御やデータ転送の制御を行うものである。
【００８０】
フラッシュメモリ４４（ＥＥＰＲＯＭ）は、電気的にデータの書き換えが可能な不揮発性メモリである。このフラッシュメモリ４４には、ファームウェア５０の処理モジュール（プログラム）が記憶される。
【００８１】
ファームウェア５０は、ＣＰＵ４２上で動作する種々の処理モジュール（処理ルーチン）を含むプログラムであり、トランザクション層等のプロトコルは、このファームウェア５０と、ハードウェアであるＣＰＵ４２等により実現される。
【００８２】
ファームウェア５０（Ｆ／Ｗ）は、コミュニケーション部５２、マネージメント部６０、ストレージタスク部７０、フェッチ部８０、ダウンローダ部９０を含む。なお、ファームウェア５０は、これらの全ての機能ブロックを含む必要はなく、その一部を省略してもよい。
【００８３】
ここで、コミュニケーション部５２は、物理層回路１４、リンク層回路２０などのハードウェアとの間のインターフェースとして機能する処理モジュールである。
【００８４】
マネージメント部６０（マネージメントエージェント）は、ログイン、リコネクト、ログアウト、リセット等の管理を行う処理モジュールである。例えばイニシエータがターゲットにログインを要求した場合には、まず、このマネージメント部６０が、このログイン要求を受け付けることになる。
【００８５】
ストレージタスク部７０は、後段のアプリケーション層（上層）であるストレージデバイス１２との間でデータ転送処理を行うための処理モジュールである。
【００８６】
フェッチ部８０（フェッチエージェント、コマンドブロックエージェント）は、コマンドブロックＯＲＢが含むコマンドを実行するための処理モジュールである。フェッチ部８０は、単一の要求しか扱うことができないマネージメント部６０とは異なり、イニシエータからの要求により自身がフェッチしたＯＲＢのリンクリストも扱うことができる。
【００８７】
ダウンローダ部９０は、フラッシュメモリ４４に記憶されるファームウェア５０の処理モジュール等の更新を行うための処理モジュールである。
【００８８】
コミュニケーション部５２は、ポート制御部５４、バスリセット発行部５６、パケット処理部５８を含む。
【００８９】
ここでポート制御部５４は、電子機器ＰＣ１を接続するためのポートＰ１（第１のポート）、電子機器ＰＣ２を接続するためのポートＰ２（第２のポート）の制御を行う。
【００９０】
より具体的にはポート制御部５４は、Ｐ１、Ｐ２のポート状態（ディスエーブル、ディスコネクト、サスペンド、レジューム、アクティブ）を制御する。このポート制御は、ポート制御部５４（ファームウェア）と、物理層回路１４が含むポート制御回路１８（ハードウェア）の機能により実現される。
【００９１】
なお、図９では、２つのポートしか設けられていないが、３つ以上のポートを設けてもよい。また、ポート状態（ディスエーブル、ディスコネクト、サスペンド、レジューム、アクティブ）については、Ｐ１３９４ａ規格において定義されている。
【００９２】
バスリセット発行（発生）部５６は、ノードのトポロジ情報をクリアするバスリセット（バスリセットコマンド）を発行する。
【００９３】
より具体的にはバスリセット発行部５６は、バスリセットを発行（発生）すべきと判断した場合には、例えば物理層回路１４が含む制御レジスタ１６のバスリセット発行用のビットに１をセットする。すると、物理層回路１４のポート制御回路１８等により、ＢＵＳ１上にバスリセットが発生する。
【００９４】
そして本実施形態では、ＢＵＳ１に接続される電子機器にアクセス権を獲得させるためのバスリセット（電子機器にログインを促すためのバスリセット）を、バスリセット発行部５６が発行する前に、ポート制御部５４が、ポートＰ２をディスエーブル状態（ＩＥＥＥ１３９４で定義されるディスエーブル状態）に設定する。より具体的には、データ転送制御システム１０（電子機器ＥＰ）の電源がオンになった後、バスリセット発行部５６がアクセス権獲得のためのバスリセットを発行する前に、ポートＰ２をディスエーブル状態に設定する。
【００９５】
これにより、ポートＰ１についてはイネーブル状態（バス信号のステートを検出できるポート状態。リセット、ツリー識別、自己識別、或いは調停フェーズに参加できるポート状態。アクティブ状態。ディスエーブル以外のポート状態）に設定される一方で、ポートＰ２についてはディスエーブル状態（他のポートとの物理的な接続はあるが、信号を生成しないと共に信号を検出できなくなるポート状態。バス信号を送信せず、受信しないポート状態）に設定されるようになる。従って、ポートＰ１に接続される電子機器ＰＣ１（ノート型ＰＣ又はＰＤＡ等）は、ポートＰ２に接続される電子機器ＰＣ２（ホストコンピュータ等）に優先して、ターゲットとなる電子機器ＥＰに対するアクセス権（ログインをする権利）を獲得できる。この結果、イニシエータとなる電子機器ＰＣ１は、ターゲットとなる電子機器ＥＰとの間で、ＳＢＰ−２に準拠したピア・ツー・ピア（ｐｅｅｒ  ｔｏ  ｐｅｅｒ）のデータ転送を専有して行うことが可能になる。
【００９６】
バスリセットが発行されてポートＰ１に接続される電子機器ＰＣ１がアクセス権を獲得すると、ポート制御部５４は、ポートＰ２をイネーブル（アクティブ）状態に設定する。そして、ポートＰ２がイネーブル状態に設定された後、ポートＰ２の電子機器ＰＣ２がサスペンド状態であることが検出された場合に、パケット処理部５８は、このサスペンド状態をレジュームするためのパケットをＰＣ２に転送する。そして、このレジュームパケットが転送された後に、バスリセット発行部５６がバスリセットを再び発行することで、図２で説明したＩＰｏｖｅｒ１３９４に準拠したデータ転送を、ＰＣ１、ＰＣ２間で行うことが可能になる。
【００９７】
３．処理の詳細
次に、本実施形態の処理の詳細について図１０、図１１のフローチャート等を用いて説明する。
【００９８】
データ転送制御システム１０（電子機器ＥＰ）の電源がオンになると、ポートＰ１、Ｐ２が共にイネーブル状態に設定される（ステップＳ１）。或いは、電源オンと同時にポートＰ１、Ｐ２が共にイネーブル状態となる。また、リンク層回路２０がディスエーブル状態（非動作状態）に設定される（ステップＳ２）。
【００９９】
より具体的には図１２（Ａ）に示すように、電子機器ＰＣ１と電子機器ＥＰが接続されると（図７（Ａ）、（Ｂ）参照）、電子機器ＥＰ（ＰＣ１の拡張機器）の電源がオンになり、ＥＰに組み込まれるデータ転送制御システム１０（転送制御ＩＣ）の電源がオンになる（この時、バスリセットも発生する）。すると、ポート状態（ステート）を記憶するレジスタ（Ｄフリップフロップ、メモリ等）がパワーオンリセットにより初期化されて、イネーブル（アクティブ）状態を示すようになる。
【０１００】
次に、ポートＰ２がディスエーブル状態に設定される（ステップＳ３）。この場合に、ステップＳ１によりポートＰ１がイネーブル状態に設定されているため、結局、図１２（Ｂ）に示すように、ポートＰ１はイネーブル状態に設定される一方で、ポートＰ２はディスエーブル状態に設定されるようになる。このポート状態の設定は、ポート制御回路１８とポート制御部５４により行われる。
【０１０１】
次に、データ転送制御システム１０（物理層回路１４）の初期化処理が終了したか否かが判断され（ステップＳ４）、終了した場合にはリンク層回路２０がイネーブル状態に設定され、動作を開始する（ステップＳ５）。
【０１０２】
次に、図１２（Ｃ）に示すように、ポートＰ１に接続される電子機器ＰＣ１にログイン（アクセス権獲得）を促すためのバスリセットが、バスリセット発行部５６により発行（発生）される（ステップＳ６）。すると、図１３（Ａ）に示すように、ポートＰ１に接続される電子機器ＰＣ１（ノート型ＰＣ又はＰＤＡ等）が電子機器ＥＰ（拡張機器）にログインする（ステップＳ７）。そしてこのログインが成功すると、イニシエータとなるＰＣ１とターゲットとなるＥＰの間で、ＳＢＰ−２に準拠したデータ転送を行えるようになる。
【０１０３】
この場合に、ポートＰ２はディスエーブル状態に設定されているため、ポートＰ２に接続される電子機器ＰＣ２（ホストコンピュータ）はバスリセットを認識できない。このため、ポートＰ２のＰＣ２がＥＰにログインすることが防止され、ログイン（アクセス権獲得）の競合が起きないようになる。これにより、ＰＣ１がＥＰに確実にログインできるようになる。この結果、親である電子機器ＰＣ１は、子（拡張機器）である電子機器ＥＰのストレージデバイス１２を専有して使えるようになり、ユーザの利便性を向上できる。
【０１０４】
ＰＣ１のログインが成功すると、図１３（Ｂ）に示すように、ポートＰ２のステートがディスエーブル状態からイネーブル状態に変更される（ステップＳ８）。そして、電子機器ＰＣ２がサスペンド状態（Ｃｏｎｎｅｃｔｅｄ＝１、Ｂｉａｓ＝０）か否かが判断され（ステップＳ９）、サスペンド状態の場合には、図１３（Ｃ）に示すようにレジュームパケットがＥＰからＰＣ２に転送される（ステップＳ１０）。
【０１０５】
即ち、ポートＰ２がディスエーブル状態に設定されると、このポートＰ２に接続される電子機器ＰＣ２がサスペンド状態に移行してしまう場合がある。
【０１０６】
そこで本実施形態では、サスペンド状態に移行したＰＣ２（物理層回路）をアクティブ状態に移行させるために、レジュームパケットをＰＣ２に転送している。
【０１０７】
但し、このレジュームパケットは、Ｐ１３９４ａ規格において新たに定義されたパケットである。従って、電子機器ＰＣ２がＰ１３９４ａの規格に準拠していなかった場合には、ポートＰ２がディスエーブル状態になっても電子機器ＰＣ２はサスペンド状態に移行しないため、レジュームパケットの転送は不要になる。このため本実施形態では、図１１のステップＳ９、Ｓ１０に示すように、ＰＣ２がサスペンド状態であると判断された場合に限って、ＰＣ２にレジュームパケットを転送している。これにより、ＰＣ２がＰ１３９４ａ規格に準拠していた場合のみならず、準拠していなかった場合にも、適正に対処できる。
【０１０８】
次に、図１４（Ａ）に示すように、バスリセット発行部５６によりバスリセットが発行される（ステップＳ１１）。これにより、ＰＣ１に対してリコネクトを促すと共にＰＣ２に対してログインを促す。
【０１０９】
そして、図１４（Ｂ）に示すように、ＰＣ１がＥＰに対してリコネクトを試みると、このリコネクトは成功する（ステップＳ１２）。一方、図１４（Ｃ）に示すように、ＰＣ２がＥＰに対してログインを試みると、ＰＣ１がＥＰに既にリコネクトしているため、ＰＣ２のログインは失敗に終わる（ステップＳ１３）。
【０１１０】
即ち、ＳＢＰ−２においては、バスリセットの発生前にログインしていたイニシエータは、バスリセットの発生後、一定期間の間は、優先的にそのターゲットに対してリコネクトできる。そして、そのイニシエータがターゲットにリコネクトしなかった場合に、他のイニシエータ（電子機器）は、そのターゲットにログインできる。
【０１１１】
本実施形態では、このＳＢＰ−２のリコネクト処理の仕組みを上手く活用して、電子機器ＥＰへのアクセス権の適切な管理を実現している。
【０１１２】
即ち、図１０のステップＳ８でポートＰ２をイネーブル状態に設定し、電子機器ＰＣ２を新たなノードとして追加するためには、ノードのトポロジ情報をクリアする必要があり、バスリセットの発行が必要になる。ところが、このバスリセットの発行により、ＥＰに対するアクセス権をＰＣ２に奪われてしまうと、ユーザの利便性が阻害される。
【０１１３】
この点、本実施形態では、図１１のステップＳ１１のタイミングでバスリセットを発行しているため、ＳＢＰ−２のリコネクト処理の仕組みにより、バスリセット後にＰＣ１が優先的にＥＰのアクセス権を獲得できる。
【０１１４】
しかも、バスリセットによりノードのトポロジ情報がクリアされるため、電子機器ＰＣ２は新たなノードとして認識されるようになる。従って、図１５（Ａ）に示すように、ＰＣ１、ＥＰ間でのＳＢＰ−２によるデータ転送のみならず、ＰＣ１、ＰＣ２間でのＩＰｏｖｅｒ１３９４（図５参照）によるデータ転送も可能になる。この結果、図７（Ｂ）で説明したように、ＰＣ１で得られたデータを、サーバであるＰＣ２に転送して管理することなどが可能になる。
【０１１５】
次に、図１１のステップＳ１４に示すように、バスリセットが発生したか否かが判断される。そして、バスリセットが発生した場合には、図１５（Ｂ）に示すように、ログアウトされたか否か（広義には、ポートＰ１に接続されるＰＣ１がＥＰに対するアクセス権を失ったか否か）が判断される（ステップＳ１５）。
【０１１６】
ここで、図１１のステップＳ１５の「ログアウト」は、ＰＣ１のソフトウェア処理によりアンプラグが行われた場合、ポートＰ１のケーブルが外された場合、ＰＣ１の電源がオフ（リブート、省電力モード）になることで強制ログアウトが行われた場合を含む。
【０１１７】
また、ステップＳ１４でバスリセットが発生したか否かを判断している理由は以下の通りである。
【０１１８】
即ち、ステップＳ１３のＰＣ２のログイン失敗の後も、ＰＣ１は、ストレージデバイス１２にアクセス（リード、ライト）を行っている。従って、ＰＣ１によるストレージデバイス１２へのアクセス中にバスリセットが発生した場合には、ＰＣ１はログアウトしないため、ステップＳ１４、Ｓ１５、Ｓ１２というように処理が移行し、ＰＣ１がリコネクト処理を行う。そして、ＰＣ１は、このリコネクト処理に成功すると、ストレージデバイス１２へのアクセスを継続できる。
【０１１９】
一方、ＰＣ１がログアウトされた場合、即ち、ＰＣ１がアンプラグされた場合やケーブルが外された場合やＰＣ１の電源がオフになった場合には、必ずバスリセットが発生する。従って、まず、ステップＳ１４でバスリセットの発生の有無を判断し、バスリセットが発生した場合に、ステップＳ１５でＰＣ１がログアウトしたか否かを判断すればよいことになる。
【０１２０】
そして、ステップＳ１５でログアウトされたと判断された場合には、ポートＰ２をイネーブル状態からディスエーブル状態に戻す（ステップＳ１６）。この時、ポートＰ１はイネーブル状態のままになる。
【０１２１】
次に、バスリセットが発生したか否かを判断する（ステップＳ１７）。ステップＳ１５でログアウトされているのでバスリセットが発生するはずだからである。そして、バスリセットが発生すると、ポートＰ１へのログインか否かを判断する（ステップＳ１８）。そして、ポートＰ１へのログインではない場合にはステップＳ１７に戻り、ポートＰ１へのログインである場合には図１０のステップＳ７に移行する。
【０１２２】
このようにすれば、例えば、電子機器ＰＣ１がリブートされた場合や、ＰＣ１省電力モード（サスペンド、ハイパネート）に移行した場合や、ポートＰ１のケーブルが外された場合等に適正に対処できるようになる。
【０１２３】
即ち、ＰＣ１がリブート（電源オン）されると、ＰＣ１は強制的にログアウトすることになり、ＥＰに対するアクセス権を失う。この場合に、ポートＰ２がイネーブル状態のままであると、ＰＣ１のログインとＰＣ２のログインの競合が生じる。このため、リブート後に、ＰＣ１がＥＰのアクセス権（ログイン）を獲得できなくなるおそれがある。
【０１２４】
この場合に、図１５（Ｃ）に示すように、ポートＰ２をディスエーブル状態に戻しておけば、ＰＣ１がＥＰのアクセス権を優先的に獲得できるようになる（優先的にログインできるようになる）。従って、ＰＣ１のリブート時等に、ＰＣ２にアクセス権を奪われてしまう事態を防止できる。
【０１２５】
以上のように本実施形態によれば、図１０、図１１に示すような順番で、ポート状態の設定処理、バスリセットの発行処理、レジュームパケットの転送処理等を行うことで、様々な状況の変化が生じた場合にも、電子機器ＥＰに対するアクセス権をＰＣ１に確実に専有させることができる。また、ＰＣ１の識別番号（ＧＵＩＤ）をＥＰに記憶させるというような作業も不要になる。従って、ユーザの利便性を向上でき、拡張機器への組み込みに最適なデータ転送制御システムを提供できる。
【０１２６】
４．パケットフォーマット
図１６（Ａ）、（Ｂ）、図１７（Ａ）、（Ｂ）に、図１０、図１１の処理で使用される種々のパケットのフォーマットを示す。
【０１２７】
図１６（Ａ）、（Ｂ）、図１７（Ａ）は、ログインＯＲＢ、リコネクトＯＲＢ、ログアウトＯＲＢのパケットのフォーマットである。これらのパケットは、ＳＢＰ−２で定義されるパケットである。これらのパケットを利用することで、図２、図１０、図１１で説明したログイン処理、リコネクト処理、ログアウト処理を実現できる。
【０１２８】
図１７（Ｂ）は、図１１のステップＳ１０で使用されるレジュームパケットのフォーマットである。このパケットは、Ｐ１３９４ａにより、拡張ＰＨＹパケットの１つとして定義されている。
【０１２９】
図１７（Ｂ）において、ｐｈｙ＿ＩＤは、当該パケットを送信した物理ノードの識別番号である。また、ｔｙｐｅは、拡張ＰＨＹパケットのタイプを示す情報である。このレジュームパケットを転送することで、サスペンド状態等であった電子機器（ノード）を、レジューム状態に移行させることが可能になる。なお、レジュームパケットは、ブロードキャストであり、このレジュームパケットに対する応答は不要である。
【０１３０】
５．物理層回路
図１８に、物理層回路１４の構成例を示す。なお、物理層回路１４は、図１８の回路ブロックを全て含む必要はなく、その一部を省略してもよい。
【０１３１】
リンクインターフェース回路２００は、リンク層回路２０とのインターフェース処理を行う回路である。リンクインターフェース回路２００は、リンクパワーステータス信号ＬＰＳ、システムクロックＳＣＬＫ、リンク層回路２０からのリクエスト信号ＬＲＥＱ、双方向制御信号ＣＴＬ［０：１］、双方向データ信号Ｄ［０：７］、バスマネージャ・コンテンダー／リンクオン信号ＢＣＬＫＯＮ等を用いて、インターフェース処理を行う。これらの信号の意味についてはＰ１３９４ａ規格に定義されている。
【０１３２】
なお、ＸＲＳＴは、パワーオンリセット信号であり、電源の投入時にアクティブになる信号である。
【０１３３】
エンコーダ／デコーダ２０２は、ＤＳ−ＬＩＮＫ（Ｄａｔａ−Ｓｔｒｏｂｅ  Ｌｉｎｋ）と呼ばれる符号化方式でのデータのエンコード、デコード処理を行う回路である。即ち、ＩＥＥＥ１３９４では、データとストローブという２対の差動信号を用いて半２重でデータ転送を行う。
【０１３４】
ＣＰＳ検出回路２１０は、ケーブルパワーステータスＣＰＳを検出する回路であり、ＴＰバイアス生成回路２１２は、ＴＰＢＩＡＳ１、ＴＰＢＩＡＳ２を生成して供給する回路である。
【０１３５】
バイアス電圧／電流生成回路２１４は、端子Ｒ０、Ｒ１に接続される外部基準抵抗を用いて、バイアス電圧等を生成し、トランスミッタ＆レシーバ２１６、２１８に供給する回路である。
【０１３６】
トランスミッタ＆レシーバ２１６は、ポートＰ１用の２組のツイストペアの信号ＴＰＡ１、ＴＰＢ１を用いて、データの送受信処理を行う回路である。トランスミッタ＆レシーバ２１８は、ポートＰ２用の２組のツイストペアの信号ＴＰＡ２、ＴＰＢ２を用いて、データの送受信処理を行う回路である。なお、ポートを更に増やす場合には、その増やしたポート用のトランスミッタ＆レシーバを更に設ければよい。
【０１３７】
クロック生成回路２１９（ＰＬＬ）は、システムクロック等の内部クロックを生成する回路である。
【０１３８】
制御回路２２０は、物理層回路１４の全体を制御する回路であり、調停回路１５、制御レジスタ１６、ポート制御回路１８などを含む。
【０１３９】
調停回路１５は、ノード間におけるバスの使用権の調停処理を行う回路である。この調停処理は、サブアクションギャップ、アービトレーション・リセットギャップにおいて行われる。なお、ＩＥＥＥ１３９４の通常の非同期アクセス方式では、競合しているノードに対してアクセスできる機会が均等に与えられている。
【０１４０】
制御レジスタ１６は、物理層回路１４に対するコマンド等を設定するためのレジスタであり、メモリ又はＤフリップフロップ等により構成される。例えば、バスリセットを発行する場合には、この制御レジスタ１６のバスリセット発行用のビットに１をセットすればよい。また、ポートＰ１、Ｐ２のステート制御も、この制御レジスタ１６を用いて行うことができる。
【０１４１】
ポート制御回路１８は、ポートＰ１、Ｐ２（広義には複数のポート）を制御するための回路である。このポート制御回路１８は、図９のファームウエア５０のポート制御部５４からの指示にしたがってポートＰ１、Ｐ２を制御する。
【０１４２】
ここでポートの状態（ステート）としては、Ｐ１３９４ａ（ＩＥＥＥ−１３９４ａ−２０００）で定義されるように、以下のものがある。
（１）ディスエーブル状態
ディスエーブル状態のポートは、ＴＰＡ／ＴＰＢ、ＴＰＢＩＡＳに信号を出力しない。またＴＰＡ／ＴＰＢ、ＢＩＡＳに入力される信号を検出しない。ケーブルの接続状態に変化があると、トランスミッタ＆レシーバ２１６、２１８に含まれるコネクト検出回路がこれを検出し、リンク層回路２０にインタラプトを出力する。このコネクト検出回路は、ケーブルの接続状態を検出するための回路であり、そのポートがＴＰＢＩＡＳを出力してない期間において動作する（有効になる）。
（２）ディスコネクト状態
ディスコネクト状態のポートは、他のノードの物理層回路との物理的なケーブル接続が無く、ＴＰＡ／ＴＰＢ、ＴＰＢＩＡＳに信号を出力しない。またＴＰＡ／ＴＰＢ、ＢＩＡＳに入力される信号を検出しない。
（３）サスペンド状態
サスペンド状態のポートは、他のノードの物理層回路との物理的なケーブル接続はあるが、ＴＰＡ／ＴＰＢ、ＴＰＢＩＡＳに信号を出力しない。またＴＰＡ／ＴＰＢに入力される信号を検出しない。このサスペンド状態のポートでは、トランスミッタ＆レシーバ２１６、２１８に含まれるバイアス検出回路及びコネクト検出回路のみが動作する。
（４）レジューム状態
レジューム状態のポートには、他のノードの物理層回路との物理的なケーブル接続があり、ＴＰＢＩＡＳに信号を出力している。また、ＢＩＡＳを検出すると、所定期間の経過後、アクティブ状態に遷移する。レジューム期間では、ＴＰＡ／ＴＰＢに入力される信号を検出しない。
（５）アクティブ状態
アクティブ（イネーブル）状態のポートは、他のノードの物理層回路との物理的なケーブル接続があり、ＴＰＡ／ＴＰＢ、ＴＰＢＩＡＳに信号を出力する。またＴＰＡ／ＴＰＢ、ＢＩＡＳに入力される信号を検出する。
【０１４３】
このような種々の状態（ステート）がＰ１３９４ａで定義されたのは、物理層回路のパワー・セービングを実現するためである。本実施形態では、このようにパワー・セービング用に定義されたディスエーブル状態を有効利用して、電子機器ＥＰのアクセス権をＰＣ１に優先的に獲得させることに成功している。
【０１４４】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１４５】
例えば、明細書中の記載において広義な用語（第１のインターフェース規格、第２のインターフェース規格、第１のインターフェース規格の上位の第１のプロトコル、第１のインターフェース規格の上位の第２のプロトコル、電子機器、ストレージデバイス、デバイス、プロセッサ等）として引用された用語（ＩＥＥＥ１３９４、ＡＴＡ／ＡＴＡＰＩ、ＳＢＰ−２、ＩＰｏｖｅｒ１３９４、拡張機器・ノート型パーソナルコンピュータ・ＰＤＡ・ホストコンピュータ、ＣＤドライブ・内蔵ＨＤＤ、ストレージデバイス、ＣＰＵ等）は、明細書中の他の記載においても広義な用語に置き換えることができる。
【０１４６】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１４７】
また、本発明のデータ転送制御システム、電子機器、物理層回路の構成は、図９、図１８に示す構成に限定されず、種々の変形実施が可能である。例えば、これらの各図の各回路ブロック、機能ブロックの一部を省略したり、その接続関係を変更してもよい。また、第２のバス（ＢＵＳ２）は、ストレージデバイスとは異なるデバイスに接続されていてもよく、ＡＴＡ／ＡＴＡＰＩ以外の規格のバスであってもよい。また、物理層回路とリンク層回路とパケットバッファの接続構成も図９に示す接続構成に限定されない。
【０１４８】
また本実施形態では、ポート制御部、バスリセット発行部、パケット処理部の機能をファームウェア（プログラム）により実現する場合について説明したが、これらを機能の一部又は全部をハードウェア回路により実現してもよい。
【０１４９】
また、本発明はＩＥＥＥ１３９４におけるバスリセットに特に有用だが、これ以外にも、少なくともノードのトポロジー情報をクリアするようなリセットであれば適用できる。
【０１５０】
また、本実施形態では、ＩＥＥＥ１３９４、ＳＢＰ−２規格でのデータ転送に本発明を適用した場合について説明した。しかしながら本発明は、例えばＩＥＥＥ１３９４（Ｐ１３９４ａ）、ＳＢＰ−２（ＳＢＰ）と同様の思想に基づく規格や、ＩＥＥＥ１３９４、ＳＢＰ−２を発展させた規格におけるデータ転送にも適用できる。
【図面の簡単な説明】
【図１】ＩＥＥＥ１３９４、ＳＢＰ−２の層構造について説明するための図である。
【図２】ＳＢＰ−２の処理の概略について説明するための図である。
【図３】ＳＢＰ−２においてデータをイニシエータからターゲットに転送する場合のコマンド処理について説明するための図である。
【図４】ＳＢＰ−２においてデータをターゲットからイニシエータに転送する場合のコマンド処理について説明するための図である。
【図５】ＩＰｏｖｅｒ１３９４の層構造について説明するための図である。
【図６】バスリセットによりクリアされるノードのトポロジ情報について説明するための図である。
【図７】図７（Ａ）、（Ｂ）は、拡張機器について説明するための図である。
【図８】図８（Ａ）、（Ｂ）、（Ｃ）も、拡張機器について説明するための図である。
【図９】本実施形態のデータ転送制御システム、電子機器の構成例を示す図である。
【図１０】本実施形態の詳細な処理例について示すフローチャートである。
【図１１】本実施形態の詳細な処理例について示すフローチャートである。
【図１２】図１２（Ａ）、（Ｂ）、（Ｃ）は、ポートの制御手法について説明するための図である。
【図１３】図１３（Ａ）、（Ｂ）、（Ｃ）も、ポートの制御手法について説明するための図である。
【図１４】図１４（Ａ）、（Ｂ）、（Ｃ）も、ポートの制御手法について説明するための図である。
【図１５】図１５（Ａ）、（Ｂ）、（Ｃ）も、ポートの制御手法について説明するための図である。
【図１６】図１６（Ａ）、（Ｂ）は、本実施形態で使用されるパケットのフォーマットを示す図である。
【図１７】図１７（Ａ）、（Ｂ）も、本実施形態で使用されるパケットのフォーマットを示す図である。
【図１８】物理層回路の構成例を示す図である。
【符号の説明】
Ｐ１、Ｐ２  ポート（第１、第２のポート）
ＰＡ、ＰＢ  ポート
ＥＰ      電子機器（拡張機器）
ＰＣ１    電子機器（ノート型パーソナルコンピュータ、ＰＤＡ）
ＰＣ２    電子機器（ホストコンピュータ）
ＢＵＳ１  ＩＥＥＥ１３９４のバス
ＢＵＳ２  ＡＴＡ／ＡＴＡＰＩのバス
１０    データ転送制御システム
１２    ストレージデバイス
１４    物理層回路
１６    制御レジスタ
１８    ポート制御回路
２０    リンク層回路
２２    ＳＢＰ−２回路
３０    インターフェース回路
３２    ＤＭＡコントローラ
３８    バッファ管理回路
４０    パケットバッファ
４２    ＣＰＵ（プロセッサ）
４４    フラッシュメモリ（ＥＥＰＲＯＭ）
５０    ファームウェア
５２    コミュニケーション部
５４    ポート制御部
５６    バスリセット発行部
５８    パケット処理部
６０    マネージメント部
７０    ストレージタスク部
８０    フェッチ部
９０    ダウンローダ部
【図１】
0003599048.tif 000002
【図２】
0003599048.tif 000003
【図３】
0003599048.tif 000004
【図４】
0003599048.tif 000005
【図５】
0003599048.tif 000006
【図６】
0003599048.tif 000007
【図７】
0003599048.tif 000008
【図８】
0003599048.tif 000009
【図９】
0003599048.tif 000010
【図１０】
0003599048.tif 000011
【図１１】
0003599048.tif 000012
【図１２】
0003599048.tif 000013
【図１３】
0003599048.tif 000014
【図１４】
0003599048.tif 000015
【図１５】
0003599048.tif 000016
【図１６】
0003599048.tif 000017
【図１７】
0003599048.tif 000018
【図１８】
0003599048.tif 000019