(57)【特許請求の範囲】
【請求項１】
少なくとも１つ以上のデバイスに接続可能で、ホストからの要求を前記デバイスに伝達するデータ転送装置であって、
前記デバイスの少なくとも１つを休止させる休止要求を前記ホストから受信したことに応じて、当該休止要求の示す休止対象のデバイスのコンフィグレーションデータを取得する制御手段と、
前記ホストと前記デバイスとの間にあり、前記制御手段の取得したコンフィグレーションデータを保持する保持手段とを有することを特徴とするデータ転送装置。
【請求項２】
前記制御手段は、前記休止要求を受信したことに応じて、当該休止要求の示す休止対象のデバイスと接続しているポートから、データ通信に用いるコンフィグレーションデータを取得することを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記制御手段は、前記ホストからの復帰要求に応じて、当該復帰要求の示す復帰対象のデバイスに関するコンフィグレーションデータを前記保持手段から読み出して、前記復帰要求の対象のデバイスに設定することを特徴とする請求項１又は２に記載のデータ転送装置。
【請求項４】
前記保持手段は、前記ホストが前記デバイスに対して第１アドレス空間で発行する要求を第２アドレス空間に変換するための変換テーブルをさらに保持し、前記制御手段は前記ホストの第１アドレス空間を前記デバイスのために第２アドレス空間に変換することを特徴とする請求項１乃至３のいずれか１項に記載のデータ転送装置。
【請求項５】
前記制御手段は、前記休止要求を受信した場合には、前記コンフィグレーションデータを前記保持手段に格納させた後に前記休止対象のデバイスを休止状態に移行させ、その後に前記ホストへ前記休止対象のデバイスのクロック、電源の遮断を要求することを特徴とする請求項１乃至４のいずれか１項に記載のデータ転送装置。
【請求項６】
前記制御手段は、前記復帰要求を受信した場合には、前記ホストに前記復帰対象のデバイスへのクロックと電源の供給を再開させた後に、前記保持手段に格納された前記復帰対象のデバイスのコンフィグレーションデータを当該復帰対象のデバイスに設定して休止状態から復帰させることを特徴とする請求項３に記載のデータ転送装置。
【請求項７】
前記ホストからの前記休止要求、前記復帰要求が書き込まれるレジスタをさらに有することを特徴とする請求項３に記載のデータ転送装置。
【請求項８】
前記制御手段は、前記ホストと前記デバイスとの間のデータ転送に際して前記ホストの側のバスアドレス空間をデバイスアドレス空間にマッピングしてデータ転送を行うことを特徴とする請求項１乃至７のいずれか１項に記載のデータ転送装置。
【請求項９】
前記バスアドレス空間はＰＣＩアドレス空間であることを特徴とする請求項８に記載のデータ転送装置。
【請求項１０】
前記制御手段は、前記ホストからバスブリッジとしてみなされるように、仮想バスブリッジを形成することを特徴とする請求項１乃至９のいずれか１項に記載のデータ転送装置。
【請求項１１】
前記データ転送はＰＣＩ−Ｅｘｐｒｅｓｓの規格にしたがったデータ転送であることを特徴とする請求項１乃至１０のいずれか１項に記載のデータ転送装置。
【請求項１２】
前記データ転送はＵＳＢ３．０の規格にしたがったデータ転送であることを特徴とする請求項１乃至１０のいずれか１項に記載のデータ転送装置。
【請求項１３】
前記ホストは中央処理装置であることを特徴とする請求項１乃至１２のいずれか１項に記載のデータ転送装置。
【請求項１４】
少なくとも１つ以上のデバイスに接続可能で、ホストからの要求を前記デバイスに伝達するデータ転送装置の制御方法であって、
前記デバイスの少なくとも１つを休止させる休止要求を前記ホストから受信したことに応じて、当該休止要求の示す休止対象のデバイスのコンフィグレーションデータを取得する制御工程と、
前記制御工程で取得したコンフィグレーションデータを前記ホストと前記デバイスとの間にある保持手段に保持する保持工程とを有することを特徴とするデータ転送装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のエンドポイントデバイスを制御するデータ転送装置及びその制御方法に関する。
【背景技術】
【０００２】
ホストと複数のエンドポイントデバイスが、スイッチやＨｕｂを経由して接続され、画像データやコマンド等の転送をポイント・ツー・ポイントで行うデータ転送システムが知られている。たとえば、近年、高速シリアル転送技術として実用化されているＰＣＩ−Ｅｘｐｒｅｓｓでは、ホストとエンドポイントデバイスは、ポイント・ツー・ポイントで接続（１対１接続）される。そのため、複数のエンドポイントデバイスをホストと接続する際には、ポイント・ツー・ポイントの通信を行うためにＰＣＩ−Ｅｘｐｒｅｓｓに対応したスイッチが用いられている（特許文献１参照）。
【０００３】
一般に、ホスト、スイッチ、エンドポイントから構成されるデータ転送システムにおいて、エンドポイントデバイスのリンクをＬ２ステート（ＰＣＩ−Ｅｘｐｒｅｓｓで定められている休止状態の１つであり、その詳細は後述する。）に遷移させる際には、以下の手順に従っていた。
［１］  ホストは、スイッチに対し、エンドポイントデバイスおよびスイッチ内の対応するポートをＬ２ステートへ遷移させるためのメッセージを送信する。
［２］  ［１］で送信されたメッセージは、スイッチでブロードキャストされ、当該スイッチにぶら下がる全てのエンドポイントデバイスに対して送信される。
［３］  上記メッセージを受信したエンドポイントデバイスは、スイッチに対し、休止に応じるメッセージを送信する。
［４］  スイッチは、全てのエンドポイントデバイスから休止に応じるメッセージを受信すると、ホストに対し、休止に応じるメッセージを送信する。
［５］  ホストは、全てのエンドポイントデバイスとのリンクをＬ２ステートに遷移させる。
【０００４】
一方、Ｌ２ステート（休止状態）からＬ０ステート（通常状態）へのリンクの復帰は、ＬＴＳＳＭ（Link Training Status State Machine）に従い、リンクの初期状態からリンクを復帰させていた。なお、リンクが確立されている状態とはデータ通信が可能なように接続状態が維持されている状態を示す。
【０００５】
また、現在、高速シリアル転送技術として注目されているＵＳＢ３．０では、携帯機器への配慮から消費電力の削減が強く求められ、ＵＳＢコントローラのポーリングを止めるとともに、４つのリンクステート（Ｕ０、Ｕ１、Ｕ２、Ｕ３）が設けられている。Ｕ０ステートは、リンクアクティブ、Ｕ１、Ｕ２ステートはリンクアイドル、Ｕ３ステートはサスペンド（休止）である。ＵＳＢ３．０では、ホストと複数のエンドポイントデバイスをポイント・ツー・ポイントで接続するためにＵＳＢ−Ｈｕｂが用いられる（特許文献２参照）。ＵＳＢ３．０では、ホストが、ソフトウェア制御により、Ｈｕｂに接続される特定のエンドポイントデバイスをＵ０ステートからＵ３ステートへ遷移させることができる。また、Ｕ３ステート（休止）からＵ０ステート（通常）へのリンクの復帰では、ＵＳＢ３．０で用意されたパワーステート図に従い、ホスト−エンドポイントデバイス間のリンクをリンクの初期状態から復帰させる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１４８８９６号公報
【特許文献２】特開平１１−３０５８８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般に、休止させているデバイスを復帰させる際、ホストは、デバイスを初期状態にしてからリンクを確立していく必要があるため、デバイスの復帰処理をするホストの負荷が大きかった。これは、ＰＣＩ−ＥｘｐｒｅｓｓであってもＵＳＢ３．０であっても同様である。
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、ホストが休止状態にあるデバイスの復帰処理に割く負荷を軽減させることを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明の一態様によるデータ転送装置は以下の構成を有する。すなわち、少なくとも１つ以上のデバイスに接続可能で、ホストからの要求を前記デバイスに伝達するデータ転送装置であって、前記デバイスの少なくとも１つを休止させる休止要求を前記ホストから受信したことに応じて、当該休止要求の示す休止対象のデバイスのコンフィグレーションデータを取得する制御手段と、前記ホストと前記デバイスとの間にあり、前記制御手段の取得したコンフィグレーションデータを保持する保持手段とを有する。
【発明の効果】
【００１０】
本発明によれば、デバイスの休止処理又は復帰処理を高速化させることができる。
【図面の簡単な説明】
【００１１】
【図１】第一実施形態によるデータ転送システムを説明する図である。
【図２】ＬＴＳＳＭに従ったステート遷移図である。
【図３】第一実施形態による電力制御部の、リンク休止時の動作を説明するフローチャートである。
【図４】第一実施形態による電力制御部の、リンク復帰時の動作を説明するフローチャートである。
【図５】第二実施形態によるデータ転送システムを説明する図である。
【図６】第二実施形態による電力制御部のリンク休止時の動作を説明するフローチャートである。
【図７】第二実施形態による電力制御部のリンク復帰時の動作を説明するフローチャートである。
【図８】第三実施形態によるデータ転送システムを説明する図である。
【図９】ＵＳＢ３．０のリンクステート遷移図である。
【図１０】第三実施形態によるＨｕｂのリンク休止時の動作を説明する図である。
【図１１】第三実施形態によるＨｕｂのリンク復帰時の動作を説明する図である。
【発明を実施するための形態】
【００１２】
［第一実施形態］
図１は、第一実施形態のデータ転送システム２４を説明するためのブロック図である。ホストとしての中央処理装置１（以降、ＣＰＵ１と称する。MPUであってもよい。）は、複数のデバイスを有するシステム全体を制御する。ルートコンプレックス２は、ＩＯ階層の最上位に位置し、ＣＰＵ１、グラフィックボード３、メモリ４、不図示のSub-System等をＩＯに結びつける。ホスト装置と複数のデバイスを１対１に接続するためのスイッチング装置としてスイッチ５が設けられている。スイッチ５は、複数のエンドポイントデバイス（デバイス）と（ルートコンプレックスを介して）ホストとを接続可能であり、ＰＣＩ−Ｅｘｐｒｅｓｓ（以降ＰＣＩｅと表記する）のポートを拡張させるために使用される。なお、エンドポイントデバイスが全て内部デバイスの場合、データ転送システム２４は１つの基盤上で実現される。一方で、ＰＣＩｅで接続されるプリンタや画像処理装置をエンドポイントデバイスとして扱う場合は、データ転送システム２４は複数の装置によって実現される。
【００１３】
本実施形態のスイッチ５は電力制御部６を有し、電力制御部６はスイッチ５に接続されている複数のエンドポイントデバイス９、１０、１１の復帰処理を行う際のＣＰＵ１が担う負荷を軽減する。ただし、電力制御部６が行う制御は、単純であるため回路規模は小さく抑えられ、電力制御部６が消費する電力も低く抑えられる。具体的な電力制御部６の動作については後述する。電力制御レジスタ７は、ＣＰＵ１により設定されるレジスタで、エンドポイントデバイスの休止の指示（休止要求）、復帰の指示（復帰要求）はこの電力制御レジスタ７に書き込まれる。ステータス保持部８はレジスタ又はメモリを有し、
・スイッチ５のダウンストリームポート１５、１６、１７のコンフィグレーションデータ（通信パラメータ）、
・エンドポイントデバイスのコンフィグレーションデータ（動作パラメータ）、
・ホストがデバイスに対して第１アドレス空間で発行する要求を第２アドレス空間に変換するための、スイッチ５が用いるアドレス変換テーブル、等を保持するのに使用される。ステータス保持部８は、４ＫＢｙｔｅ程度を備えていれば充分である。エンドポイントデバイス９、１０、１１としては、たとえばプリンタ、カメラ等を挙げることができる。ＥＥＰＲＯＭ４０（又は、電源断のないステータス保持部８）には、リセット直後に、電力制御部６に退避させているコンフィグレーションデータ（後述の通信パラメータや動作パラメータ）や、上述のアドレス変換テーブルが格納される。なお、本実施形態では、アドレス変換テーブルは第１アドレス空間をＰＣＩアドレス空間、第２アドレス空間をローカルアドレス空間とする。すなわち、アドレス変換テーブルは、ＰＣＩアドレス空間で書き込まれたデータ（発行された要求）をローカルアドレス空間（デバイスアドレス空間）へマッピングするためのマッピング情報である。通信路２０、２１、２２、２３は、ＰＣＩ−Ｅｘｐｒｅｓｓに従ったＰＣＩｅ接続を示す。
【００１４】
図２は、本実施形態のＰＣＩ−Ｅｘｐｒｅｓｓ接続２１〜２３（以下、ＰＣＩｅ接続と称す）の其々のＬＴＳＳＭ（Link Training Status State Machine）のステート図である（詳細には、接続に関わるポートのステート図である）。ＰＣＩ−Ｅｘｐｒｅｓｓでは、Ｌ０、Ｌ０ｓ、Ｌ１、Ｌ２、のリンク・パワーステートが用意されており、リンクの状態に応じてデバイスがソフトウェアの介入なしに自動的に省電力ステートに移行する。例えば、Ｌ０はフル・オンの通信状態だが、そのリンクで送るべきパケットが無い場合には、自動的にＬ０ｓ、Ｌ１、Ｌ２のステートに移行する。なお、図２のステートは（一部のステートは省略しているが）ＰＣＩ−Ｅｘｐｒｅｓｓで規定されている通りの内容を示している。また、本実施例のＰＣＩｅ接続２１〜２３は其々異なるステートになり得る。以下、図２の各ステートについて説明する。
【００１５】
リンクのリセット後、ｓ０からスタートする。ｓ０のDETECTステートでは、遠端側のレシーバを検出し、検出後に次のステートｓ１に遷移する。ｓ１のPOLLINGステートでは、ビット同期、シンボル同期を確立し、レーン極性を検出し、データレートを確定する。その後、ｓ２に遷移する。ｓ２のCONFIGURATIONステートでは、トレーニング・シーケンスを送受し、リンクのレーン構成を確立し、レーン間デスキュー、スクランブル設定を実施する。CONFIGURATIONステートが正常に終了したら、ｓ３に遷移する。ｓ３のＬ０ステートは通常状態であり、この状態まで到達すると物理層の初期化は完了となる。
【００１６】
以下に、ＰＣＩｅの規格で規定されている省電力ステートについて簡単に説明する。ｓ３（通常状態）から遷移するｓ４（Ｌ０Ｓ）、ｓ５（Ｌ１）、ｓ６（Ｌ２）の各ステートは低消費電力状態でありデータ通信は行われない。具体的にｓ４のＬ０ｓステートでは、リンクは電気的にアイドル状態であるが、ｓ３と比べるとポートへのクロックの供給を停止している。ｓ４では、ｓ３の３０〜４０％程度の消費電力に抑えられ、ｓ３への復帰に１００μｓ〜数μｓ程度を費やす。ｓ５のＬ１ステートでは、リンクは電気的にアイドル状態であるが、ＰＣＩｅ接続に関わるポートに供給するクロックも停止されている。ｓ５では、ｓ３の１０〜２０％程度の消費電力に抑えられるが、ｓ３への復帰に数μｓ〜１０μｓ程度を費やす。ｓ６のＬ２ステートでは、トランスミッタ、レシーバ機能およびクロックの供給が停止し、主電源が切られ、補助電源のみが供給されている状態である。そのため、Ｓ３と比較すると消費電力は極めて小さいが、ｓ６からｓ３へ復帰するには初期状態（Ｓ０）からリンクを確立する必要が生じ、復帰に多くの時間が要求される。
【００１７】
その他、ｓ７のRECOVERYステートでは、ｓ３〜５ステートからのリンクの復旧を行う。ｓ７ステートでは、すでに確立されていたリンク速度、リンク番号やレーン番号を使用してトレーニング・シーケンスを実行し、ビット同期やシンボル同期、レーン間デスキューを実行する。ｓ８のLOOPBACKステートは、試験や障害の切り分けをする。上位層からHOTRESETが指示された場合や、トレーニング・シーケンスのリンク制御でHOT RESETが指示された場合には、状態はｓ９のHOT RESETステートへ遷移する。リンクが使用不可能に設定された状態で、上位層から停止を指示された場合や、トレーニング・シーケンスでリンク不可が設定された場合には、状態は、ｓ１０のDISABLEDステートに遷移する。
【００１８】
次に、第一実施形態の具体的な構成、動作について説明する。図１に示したように、本実施形態のスイッチ５は、１つのアップストリームポート１９と３つのダウンストリームポート１５、１６、１７を備えており、ＣＰＵ１とエンドポイントデバイス９、１０、１１とを接続する。一般的なスイッチは、ＣＰＵがエンドポイントデバイスを直接制御できるように、スイッチのアップストリームポートのヘッダタイプを‘１’に設定することにより、ＰＣＩ−ＰＣＩブリッジとして用いられる。
【００１９】
このようなＰＣＩ−ＰＣＩブリッジとして用いられるスイッチに対し、本実施形態のスイッチは、スイッチ５のアップストリームポート１９のヘッダタイプを‘０’に設定し、ＣＰＵ１がスイッチ５をエンドポイントデバイスとみなしてシステム全体を制御する。さらに、スイッチ５の中に電力制御部６を設け、電力制御部６に、エンドポイントデバイス９、１０、１１とのリンク制御及びデータ転送、エンドポイントデバイス９、１０、１１の電源制御を行わせる。
【００２０】
以上のようなスイッチ５を用いることにより、ＣＰＵ１とスイッチ５の間にＰＣＩアドレス空間が形成され、スイッチ５とエンドポイントデバイス９、１０、１１の間にローカルアドレス空間が形成され、アドレス空間を分離して扱うことができる。（なお、厳密には、ＣＰＵ１とルートコンプレックス１８の間はＣＰＵアドレス空間であり、ルートコンプレックス１８とスイッチ５の間がＰＣＩアドレス空間であるが、本実施形態ではＣＰＵアドレス空間については省略する。）スイッチ５の電力制御部６は、ＥＥＰＲＯＭ４０に保持されているアドレステーブルを用いて、ＣＰＵ１がＰＣＩ空間のアドレス（ＰＣＩベースアドレス）に書き込んだデータをローカル空間にマッピングする。こうして、スイッチ５の電力制御部６を用いることにより、ＣＰＵ１からは直接アクセスできないエンドポイントデバイス９〜１１とＣＰＵ１との間でＣＰＵ１やエンドポイントデバイス９〜１１はお互いにアドレス空間の違いを意識することなくデータの送受を実現することができる。なお、上記実施形態では、ホスト装置（ＣＰＵ１など）とスイッチ５の間に形成される所定のバスアドレス空間としてＰＣＩアドレス空間を挙げたが、他のアドレス空間でも本実施形態を適用できる。
【００２１】
以下、本実施形態の電力制御部６の動作について、エンドポイントデバイス９を休止対象、あるいは復帰対象のエンドポイントとして用いて説明する。まずシステム（たとえば、ＣＰＵ１）からエンドポイントデバイス９を通常状態から休止状態へ遷移させる命令がきたときの電力制御部６の動作について、図３のフローチャートにより説明する。なお、本実施形態のデータ転送システムにおいて、ＣＰＵ１−スイッチ５、スイッチ５−エンドポイントデバイス９〜１１の間は、ＰＣＩｅの規格に則って動作しているものとする。
【００２２】
ＣＰＵ１により、通信路２０を通して、スイッチ５のＰＣＩアドレス空間上のメモリ空間に休止対象であるエンドポイントデバイス９を休止させるレジスタデータ（休止対象としてエンドポイントデバイス９を指定した休止指示）がライトされる。このレジスタデータは、電力制御部６によってＰＣＩアドレス空間上のメモリ空間からローカルアドレス空間上のメモリ空間へとマッピングされ、ローカル空間上の電力制御レジスタ７へ格納される。このようにしてスイッチ５はＣＰＵからの要求をデバイスに伝達させる。
【００２３】
ＥＥＰＲＯＭ４０には、ダウンストリームポート１５、１６、１７毎の通信パラメータやエンドポイントデバイス９、１０、１１毎の動作パラメータが格納される。電力制御部６は、通信パラメータをダウンストリームポート１５、１６、１７に設定することで、ＰＣＩアドレス空間とローカルアドレス空間との間でデータ転送することができる。これにより、ＣＰＵ１とエンドポイントデバイス９、１０、１１間でのデータ転送が可能となる。（なお、電力制御部６によるＥＥＰＲＯＭ４０からＰＣＩｅ接続２１〜２３に関わるポート及びエンドポイントデバイスへのデータロードは、リセット直後に行われるが詳細は後述する。）
【００２４】
電力制御部６は、電力制御レジスタ７より、エンドポイントデバイス９の休止を指示するレジスタデータ（休止対象としてエンドポイントデバイス９を指定した休止指示）をリードすると（ステップＳ３０１）、エンドポイントデバイス９を休止させる動作に入る。まず、電力制御部６は、エンドポイントデバイス９の動作パラメータをリードして取得し、ステータス保持部８に格納する（ステップＳ３０２）。動作パラメータとは、各エンドポイントデバイス９の動作を規定する値であり、エンドポイントデバイス９内の制御用のレジスタ等に格納されている。また、動作パラメータの内容はエンドポイントデバイス９の種類によって異なる。例えば、プリンタであれば、両面ユニット装着の有無や印刷速度（ppm）などのデバイス固有の情報や、休止状態に遷移する際のプリンタの動作モード（デフォルトで２in１印刷、パスワードロックなど）を示す情報を動作パラメータとして保持する。また、リンクが接続されるＬ２ステートに遷移する場合、ステップＳ３０２で電力制御部６はＰＣＩｅ接続２１の設定を示す通信パラメータもステータス保持部８に格納させる。通信パラメータとは、ＰＣＩｅ接続２１を確立する際に、図２のＳ０〜Ｓ２で決定した設定（レーン間スキュー、レーン構成など）を示す情報が含まれる。ここで、ＰＣＩｅ接続２１の設定は、ポート１５とポート１２とで同じ内容なので、電力制御部６はポート１５から通信パラメータを取得すればよい。なお、エンドポイントデバイス９の動作パラメータは、エンドポイントデバイス９が休止する前に取得すればよい。また、ポート１５の通信パラメータはＰＣＩｅ接続２１が切断される前に取得すればよい。各パラメータを退避させた後、エンドポイントデバイス９に、通信路２１を通して、デバイスの休止を促すメッセージ（PME_Turn_Off:TLP）を送信する（ステップＳ３０３）。電力制御部６は、エンドポイントデバイス９に休止を促すメッセージ（PME_Turn_Off）を送信した後、エンドポイントデバイス９から休止を受け入れるメッセージ（PME_TO_Ack:TLP）を受信する（ステップＳ３０４）。
【００２５】
続いて、電力制御部６は、エンドポイントデバイス９から休止の準備が完了したことを示すメッセージ（PM_Enter_L23）を受信する（ステップＳ３０５）。休止準備完了を示すメッセージ（PM_Enter_L23）を受信すると、電力制御部６は、エンドポイントデバイス９へのリファレンスクロック及び電源の供給の遮断を要求する信号をＣＰＵ１に対して発生する（ステップＳ３０６）。なお、そのような信号としては、割り込み信号が好ましい。電力制御部６により発生された割り込み信号は、ローカルアドレス空間からＰＣＩアドレス空間を経てＣＰＵ１に向けて転送される。ＣＰＵ１は、上記割込み信号を受信すると、エンドポイントデバイス９へのリファレンスクロック及び電源の供給を停止する。これにより、エンドポイントデバイス９のリンクがＬ２ステートに遷移していく。
【００２６】
続いて、図４を用いて、システムがエンドポイントデバイス９を休止状態から通常状態へ復帰させる際の動作について説明する。まず、ＣＰＵ１によりエンドポイントデバイス９を復帰させるレジスタデータ（復帰対象としてエンドポイントデバイス９を指定した復帰指示）がスイッチ５の予め決められたＰＣＩアドレス空間上のメモリにライトされる。電力制御部６は、ライトされたレジスタデータを、ＰＣＩアドレス空間からローカルアドレス空間へ変換し、電力制御レジスタ７に格納する。電力制御部６は、電力制御レジスタ７に格納されている（エンドポイントデバイス９の復帰を指示する）レジスタデータをリードすると（ステップＳ４０１）、エンドポイントデバイス９の復帰処理を開始する。まず、電力制御部６は、復帰対象であるエンドポイントデバイス９に対するリファレンスクロック及び電源の供給を開始するようにＣＰＵ１に要求を出す（ステップＳ４０２）。この要求のために、たとえば、割り込み信号を用いるのが好ましい。電力制御部６は、復帰対象であるエンドポイントデバイスへのリファレンスクロック及び電源の供給が開始されると、ＣＰＵ１とエンドポイントデバイス９と間のリンクの復帰処理を行い、リンクが通常状態（Ｌ０）に復帰するのを待つ（ステップＳ４０３）。リンクの復帰処理としては、電力制御部６が通信パラメータをポート１５およびポート１３に設定することでＰＣＩｅデータ転送に用いるリンクを復帰させることができる。なお、リンクの復帰処理として図２のＳ０〜Ｓ２の処理を行ってもよい。リンクが通常状態（Ｌ０）まで復帰したら、電力制御部６はステータス保持部８（又はＥＥＰＲＯＭ４０）に格納されているエンドポイントデバイス９の動作パラメータをリードする（ステップＳ４０４）。そして、電力制御部６は、ステップＳ４０４でリードした動作パラメータをエンドポイントデバイス９に送信する（ステップＳ４０５）。コンフィグレーション（動作パラメータ、通信パラメータ）をエンドポイントデバイス９に設定することにより、エンドポイントデバイス９の設定を休止に入る前と同じ状態に戻すことができ、エンドポイントデバイス９はＬ２の休止状態から復帰する。
【００２７】
以上、エンドポイントデバイス９を休止、復帰させる際の電力制御部６の動作について説明した。その中で、従来ＣＰＵ１が行っていたエンドポイントデバイス９の設定を、本実施形態ではエンドポイントデバイス９に近い電力制御部６が行うことを述べた。よって、従来に比べ、高速な復帰が可能になりＣＰＵ１が復帰処理に割く負荷を軽減することもできる。また、本実施形態によれば、電力制御部６、電力制御レジスタ７を用いることで、ＰＣＩ−Ｅｘｐｒｅｓｓの規格に則ったデバイスやルートコンプレックスを扱いつつ、エンドポイントデバイスを個別にＬ２ステート（休止）に遷移させることも可能となる。その結果、システム全体として、消費電力、処理効率の両面において、より効果的なデータ転送システムを実現することができる。なお、本実施形態では、休止、復帰の対象をエンドポイントデバイス９としたが、対象がエンドポイントデバイス１０、１１になっても電力制御部６は同様の制御を行い、同等の効果を得ることができることはいうまでもない。さらに、ＰＣＩｅ接続２０について特に触れていないが、ＰＣＩｅ接続２０の通信パラメータを電力制御部６がステータス保持部８（又はＥＥＰＲＯＭ）に退避させ、ＰＣＩｅ接続２０のリンクの復帰処理を簡略化させてもよい。またＰＣＩｅ接続２０を省電力ステートから復帰させる場合には、電力制御部６がステータス保持部８（又はＥＥＰＲＯＭ４０）に退避させたアドレス変換テーブルをスイッチ５に読む込むことで、アドレス変換テーブルを作成し直す処理を省略できる。また、スイッチ５の電力制御部６のステータス保持部をＥＥＰＲＯＭによって構成してもよいし、電力制御部６に補助電源からの電力が安定して供給されるようにしていればＥＥＰＲＯＭ４０を配置しなくてもよい。すなわち、電力制御部６はアクセス可能で情報が揮発しなさそうな所定の記憶装置にコンフィグレーションデータを退避させればよい。
【００２８】
［第二実施形態］
図５は、第二実施形態のデータ転送システムを説明するためのブロック図である。図５において、図１と共通の機能を持つブロックに関しては同じ符号を付与してある。また、実施形態１で説明したブロックと同一の動作をするブロックについての説明は省略する。
【００２９】
まず、第二実施形態と第一実施形態との違いを説明する。第二実施形態では、スイッチ５は仮想バスブリッジを形成して、ホスト装置からバスブリッジとしてみなされるように動作する。図５に示されるように、スイッチ５のアップストリームポート１９は仮想ＰＣＩ−ＰＣＩブリッジを介してダウンストリームポート１５〜１７とつながる。第二実施形態では、スイッチ５のアップストリームポート１９のヘッダタイプを‘１’に設定し、スイッチ５をバスブリッジ（ＰＣＩ−ＰＣＩブリッジ）として用いる。このような設定にすることで、ＣＰＵ１は第一実施形態のようにＰＣＩアドレス空間からローカルアドレス空間へとアドレス空間を跨がずにエンドポイントデバイス９、１０、１１と通信することになる。そのため、ＣＰＵ１が、スイッチ５のダウンストリーム及びエンドポイントデバイスのコンフィグレーションの設定を行えるようになる。したがって、第一実施形態で必要であったＥＥＰＲＯＭ４０は、本実施形態では省略することができる。また、第一実施形態のスイッチ５では、スイッチ５の中の回路として、ＰＣＩアドレス空間とローカルアドレス空間をマッピングするための回路が必要であったが、第二実施形態のスイッチ５では必要としない。以上のように、第二実施形態の構成は、第一実施形態のデータ転送システムに比べ、省電力化、低コスト化の点で有利である。
【００３０】
以下、第二実施形態の構成及び動作について具体的に説明する。第二実施形態のスイッチ５は、第一実施形態と同様、電力制御部６、電力制御レジスタ７、ステータス保持部８を有する。ただし、前述したが、第一実施形態１よりも電力制御部６の回路は単純な構成となる。以下、第二実施形態による電力制御部６の動作について、休止対象および復帰対象をエンドポイントデバイス９とした例により説明する。まずシステムからエンドポイントデバイス９を通常状態から休止状態へ遷移させる命令がきたときの電力制御部６の動作について説明する。
【００３１】
図６は、休止対象であるエンドポイントデバイス９を通常状態から休止状態に遷移させるときの電力制御部６の動作フローを示す。以下、図５と図６を用いて具体的に動作を説明する。まず、ＣＰＵ１により、スイッチ５の電力制御レジスタ７にエンドポイントデバイス９の休止を指示するデータがライトされる。電力制御部６は、電力制御レジスタ７をリードし（ステップＳ６０１）、休止対象としてエンドポイントデバイス９を指定した休止指示があると、ステップＳ６０２以降の休止処理を始める。まず、電力制御部６は、エンドポイントデバイス９の動作パラメータをリードして取得し、ステータス保持部８に格納する（ステップＳ６０２）。通信パラメータについても第一実施形態と同様なので説明を省略する。電力制御部６は、ダウンストリームポート１５より、通信路２１を通して、休止対象であるエンドポイントデバイス９に対して、休止を促すメッセージ（PME_Turn_Off:TLP）を送信する（ステップＳ６０３）。
【００３２】
その後、エンドポイントデバイス９からダウンストリームポート１５に、休止を受け入れるメッセージ（PME_TO_Ack:TLP）が送信されてくると、電力制御部６はこれを受信する（ステップＳ６０４）。さらに、エンドポイントデバイス９の休止の準備が整うと、エンドポイントデバイス９からダウンストリームポート１５に休止準備が完了したことを知らせるメッセージ（PM_Enter_L23:DLLP）が送信されてくる。電力制御部６は、エンドポイントデバイス９からのこの休止準備の完了のメッセージ（PM_Enter_L23:DLLP）を受信する（ステップＳ６０５）。その後、電力制御部６は、ＣＰＵ１に対して、エンドポイントデバイス９へのリファレンスクロック及び電源の供給の遮断を要求する信号（たとえば割り込み信号）を送信する（ステップＳ６０６）。割込み信号を受けたＣＰＵ１はエンドポイントデバイス９への電源及びリファレンスクロックの供給を止める。その結果、電源及びリファレンスクロックの供給を絶たれたエンドポイントデバイス９とスイッチ５間のリンクステートは、Ｌ２ステート（休止）へと遷移していく。
【００３３】
続いて、休止状態にあるエンドポイントデバイス９を復帰対象として、休止状態から通常状態へ復帰させるときの電力制御部６の動作について説明する。図７に、休止状態にあるエンドポイントデバイスを復帰させるときの電力制御部６の動作フローを示す。
【００３４】
ＣＰＵ１により、エンドポイントデバイス９の復帰を指示するレジスタデータが、スイッチ５の電力制御レジスタ７へライトされる。電力制御部６は、電力制御レジスタ７よりレジスタデータをリードし（ステップＳ７０１）、エンドポイントデバイス９を復帰対象に指定した復帰指示があると、復帰対象であるエンドポイントデバイス９とのリンクの復帰処理を開始する。まず、電力制御部６は、復帰対象であるエンドポイントデバイス９へのリファレンスクロック及び電源の供給を開始するようにＣＰＵ１に要求する（ステップＳ７０２）。この要求のためには、たとえば割り込み信号を用いるのが好ましい。リファレンスクロック及び電源の供給が開始されたら、図２のＬＴＳＳＭに則り、ＣＰＵ１とエンドポイントデバイス９の間で初期状態からのリンク確立が行われる（通信パラメータを用いてリンクの復帰処理を第一実施形態と同様に簡略化してもよい）。電力制御部６は、ＣＰＵ１とエンドポイントデバイス９とのリンクが通常状態まで復帰するのを待つ（ステップＳ７０３）。ＣＰＵ１とエンドポイントデバイス９とのリンクが通常状態まで復帰すると、電力制御部６は、エンドポイントデバイス９のコンフィグレーション設定データをステータス保持部８よりリードする（ステップＳ７０４）。そして、電力制御部６は、リードしたエンドポイントデバイス９のコンフィグレーション設定データをエンドポイントデバイス９に送信する（ステップＳ７０５）。スイッチ５がコンフィグレーション（動作パラメータ、通信パラメータ）をエンドポイントデバイスに設定することにより、エンドポイントデバイス９の設定を休止に入る前と同じ状態に戻すことができ、エンドポイントデバイス９は通信を復帰することになる。
【００３５】
以上、第二実施形態では、スイッチ５をＰＣＩ−ＰＣＩブリッジとして用いた構成において、エンドポイントデバイス９を休止、復帰させるときの電力制御部６の動作を説明した。なお、第二実施形態でも、休止、復帰の対象をエンドポイントデバイス９としたが、対象がエンドポイントデバイス１０、１１になっても電力制御部６は同様の制御を行い、同等の効果を得ることができる。
【００３６】
［第三実施形態］
図８は、第三実施形態のデータ転送システムを説明するためのブロック図である。ホスト２５は、第三実施形態のデータ転送システム３９に存在するデバイス２６、２７、２８（エンドポイントデバイスに相当する）に、処理能力やサービスを提供する。デバイス２６、２７、２８は、ホスト２５の処理能力、サービスの提供を受ける機器やコンピュータを示す。Ｈｕｂ４１は、ポートを拡張し、ホスト２５をデバイス２６、２７、２８と接続する。第三実施形態のＨｕｂ４１は、さらにデバイス２６、２７、２８の電源の復帰処理を行う電力制御部６、ステータス保持部８を有する。図中の３５、３６、３７、３８は、ＵＳＢ３．０の規格の通信手段を示す。
【００３７】
図９は、ＵＳＢ３．０の電力管理のリンク遷移を示すステート図である。ＵＳＢ３．０では、Ｕ０、Ｕ１、Ｕ２、Ｕ３のリンク・パワーステートが用意されている。以下、各パワーステートに関して、簡潔に記す。Ｕ０ステートは、リンクがアクティブな状態である。Ｕ１ステートは、リンクがアイドル状態で、送信、受信回路が停止している状態である。Ｕ１ステートからＵ０ステートへの復帰には、μｓオーダの時間を費やす。Ｕ２ステートは、Ｕ１ステートのリンクアイドル状態から、さらに、ＰＬＬ等のクロック発生器が停止した状態である。Ｕ２ステートからＵ０ステートへの復帰には、μｓオーダ〜数ｍｓの時間を費やす。Ｕ３ステートは、サスペンド状態で、デバイスの電源の一部がＯＦＦする状態である。Ｕ３ステートからＵ０ステートへの復帰には、ｍｓオーダの時間を費やす。
【００３８】
次に、第三実施形態の具体的な構成、動作について説明する。第三実施形態のＨｕｂ４１は、ホスト２５と接続される１つのアップストリームポートとデバイス２６、２７、２８と接続される３つのダウンストリームポート２９、３０、３１を備えており、ホスト２５と３つのデバイス２６、２７、２８を接続する。さらに、Ｈｕｂ４１の中に電力制御部６及びステータス保持部８を設け、電力制御部６にデバイス２６、２７、２８の電源復帰時のコンフィグレーションの設定を行わせる。
【００３９】
以下、第三実施形態におけるＨｕｂ４１の動作について、休止対象および復帰対象としてデバイス２６を用いて説明する。まず、システムから休止対象のデバイス２６を通常状態（Ｕ０）から休止状態（Ｕ３）へ遷移させる命令がきたときのＨｕｂ４１の動作について、図１０のフローチャートを参照して説明する。Ｕ０ステートからＵ３ステートへの休止は、システムのソフトウェアで制御され、ホスト２５がルートポートに、PORT_LINK_STATEを設定することで行われる。ルートポートにPORT_LINK_STATEが設定されると、Ｈｕｂ４１により下記の処理が実行される。なお、電力制御部6は、ホスト装置から受信したコマンドの内容を監視する機能を有するものとする。
【００４０】
Ｈｕｂ４１は、ホスト２５から送られてきたデバイス２６のＵ３ステートへの遷移要求（U3entryREQUEST）をデバイス２６に転送する（ステップＳ１００１）。これは、デバイス２６を休止対象として指定した休止指示である。デバイス２６をＵ３ステートへ遷移させる遷移要求を転送すると、Ｈｕｂ４１の電力制御部６は、デバイス２６にアクセスし、デバイス２６のコンフィグレーション（動作パラメータ、通信パラメータ）をリードして取得し、ステータス保持部８に格納する（ステップＳ１００２）。なお、休止対象であるデバイス２６のコンフィグレーション設定データをステータス保持部８に格納するタイミングは、デバイス２６が休止する前であればよい。続いて、Ｈｕｂ４１は、ホスト２５から送られてきたLGO_U3 Linkコマンド(LinkをU0ステートからU3ステートに遷移させる要求を示す)をデバイス２６に転送する（ステップＳ１００３）。そして、Ｈｕｂ４１は、休止対象のデバイス２６から送信されてきたLAU Linkコマンド(Linkステートの遷移要求を受け入れる(accept)ことを示す。)をホスト２５に転送する（ステップＳ１００４）。その後、デバイス２６のリンクは、Ｕ３ステート（休止）へと遷移する。
【００４１】
続いて、休止状態にあるデバイス２６を復帰対象として、デバイス２６を休止状態（Ｕ３）から通常状態（Ｕ０）へ遷移させる際のＨｕｂ４１の動作について説明する。図１１にＨｕｂ４１による復帰処理の動作フロー図を示す。Ｕ３ステートからＵ０ステートへの復帰も、システムのソフトウェアで制御される。復帰処理は、ホスト２５のルートポートにPORT_LINK_STATEを設定することで行われる。ルートポートにPORT_LINK_STATEが設定されると以下の処理が実行される。Ｈｕｂ４１は、ホスト２５から送られてきたデバイス２６のＵ３ステート終了要求（以下、復帰コマンド）を受信する（ステップＳ１１０１）と、以下の復帰処理を実行する。この復帰コマンドは、デバイス２６を復帰対象として指定した復帰指示である。復帰コマンドの受信後、Ｈｕｂ４１は、不図示のネットワーク構成を用いて、復帰対象のデバイス２６の電源をリモートで投入する（ステップＳ１１０２）。デバイス２６の電源投入後、デバイス２６とホスト２５間でリンクを、図９に示されるステートに則り通常状態まで復帰させていく。リンクが通常状態に復帰したら（ステップＳ１１０３）、電力制御部６は、ステータス保持部８に格納されていたコンフィグレーション（動作パラメータ、通信パラメータ）をリードし（ステップＳ１１０４）、デバイス２６に送信する（ステップＳ１１０５）。コンフィグレーション（動作パラメータ、通信パラメータ）をデバイス２６に設定することにより、デバイス２６の設定を休止に入る前と同じ状態に戻すことができる。なお、本実施形態ではデバイス２６から通信パラメータも取得するように説明しているが、第一実施形態のようにダウンストリームポート２９から通信パラメータを取得してもよい。また、リンクの復帰時のダウンストリームポート２９への通信パラメータの設定は割合しているが第一実施形態と同様である。
【００４２】
以上、ＵＳＢ３．０規格の転送構成を備えたデータ転送システムにおいて、デバイス２６の休止、復帰時のＨｕｂ４１の動作を説明した。なお、第三実施形態では、休止、復帰の対象をデバイス２６としたが、対象がデバイス２７、２８になってもＨｕｂ４１は同様の制御を行い、同等の効果を得ることができる。また、上述の実施形態ではＰＣＩｅやＵＳＢ３．０を用いて説明しているが、他の通信規格においても本発明を適用することで接続の確立処理を簡略化することができる。また、上述の実施形態では特に触れていないが、デバイスを休止状態に遷移させる際には動作パラメータを退避させてから通信パラメータを退避させ、デバイスを復帰させる際には通信パラメータを設定してリンクを復帰させてから動作パラメータを設定すると状態遷移がより円滑になる。また、上述の実施形態では特に触れていないが、スイッチやハブを階層構造で多重に有するシステムにおいても本発明は適用できる。その場合は、コンフィグレーションデータを退避させたいデバイスへのデータ転送に関わるスイッチ（ハブ）のなかで最上位のスイッチ（ハブ）に本発明を適用すればよい。
【００４３】
以上説明したように、上記各実施形態によれば、１つのホストと複数のデバイスを接続されているスイッチ（或いはＨｕｂ）がデバイスの休止処理又は復帰処理を従来のホストよりもデバイス側で実施する。そのため、休止処理および復帰処理を高速化し、ホストの負荷を軽減することも可能となる。
【図１】
0005597104.tif 000002
【図２】
0005597104.tif 000003
【図３】
0005597104.tif 000004
【図４】
0005597104.tif 000005
【図５】
0005597104.tif 000006
【図６】
0005597104.tif 000007
【図７】
0005597104.tif 000008
【図８】
0005597104.tif 000009
【図９】
0005597104.tif 000010
【図１０】
0005597104.tif 000011
【図１１】
0005597104.tif 000012