(57)【要約】【課題】  複数の独立したデータ転送を並行して処理する場合に、データ転送経路の競合を避けることによりデータ転送効率の向上を図る。【解決手段】  エンドポイントＡ，Ｂ，Ｃに各々上流側のスイッチ３Ａ，３Ｂ，３Ｃに接続される複数の上流ポートを持たせ、動作モードに応じてポート選択手段１Ａ，１Ｂ，１Ｃによって使用する１つの上流ポートを選択することで、例えば経路４，５が有効となるように木構造を動的に変更でき、よって、複数の独立したデータ転送を並行して処理する場合でも、独立したデータ転送経路４，５の確保によりデータ転送経路の競合を避けることができ、データ転送効率の向上を図ることができるようにした。【選択図】    図１５
2005166028.tif 000002
【特許請求の範囲】
【請求項１】
木構造によるデータ通信網としてポイントツーポイントで送受信独立の通信チャネルが確立される高速シリアルインタフェースシステムを用いるデータ転送システムであって、
前記高速シリアルインタフェースシステムの木構造におけるエンドポイントが各々上流側のスイッチに接続される複数の上流ポートを有し、
各エンドポイントは、当該システムの動作モードに応じて使用する１つの上流ポートを選択して前記木構造を動的に変更するポート選択手段を有する、
ことを特徴とするデータ転送システム。
【請求項２】
前記高速シリアルインタフェースシステムがPCI Expressシステムである、ことを特徴とする請求項１記載のデータ転送システム。
【請求項３】
前記ポート選択手段は、リンクのリセット時に選択する上流ポートのポート選択情報を書き換え自在に記憶するメモリを有し、
前記各エンドポイントは、ポート選択情報を含むメッセージパケットの受信により前記メモリ上のポート選択情報を書き換え更新する更新手段を有し、
当該システムを管理するコンピュータは、当該システムの起動時に前記各エンドポイントを初期設定で前記メモリ上に指定されたポート選択情報に従い上流ポートが選択された状態でリンクアップして初期状態の木構造を取得するとともに各々のエンドポイントに対するコンフィグレーションによりエンドポイントのデバイス機能と必要なデータ転送性能とを特定する初期化手段と、特定されたデバイス機能と必要なデータ転送性能とを参照し当該システムの動作モードに応じて最適となる前記各エンドポイントの上流ポートを決定する決定手段と、決定されたポート選択情報を含むメッセージパケットを対象となる前記エンドポイントの前記更新手段に通知して前記メモリ上のポート選択情報を書換え更新させる通知手段と、当該通知後に当該システムをリセットし書換え更新された前記メモリ上で指定されるポート選択情報に従い前記各エンドポイントの上流ポートが選択された状態で再リンクアップさせる再リンクアップ手段と、を有し、
当該システムの再リンクアップ後に動作モードに従いデータ転送を開始させるようにした、ことを特徴とする請求項１又は２記載のデータ転送システム。
【請求項４】
前記決定手段は、当該システム内で複数の独立したデータ転送を並行して処理する動作モードの場合に、前記スイッチを通るデータ転送経路に競合が生じないように、前記ポート選択手段が選択して使用する１つの上流ポートを決定する、ことを特徴とする請求項２記載のデータ転送システム。
【請求項５】
前記決定手段は、経由する前記スイッチの段数が最小となるように、前記ポート選択手段が選択して使用する１つの上流ポートを決定する、ことを特徴とする請求項２又は３記載のデータ転送システム。
【請求項６】
請求項１ないし５の何れか一記載のデータ転送システムは、前記エンドポイントを画像形成に関与するデバイスとすることを特徴とする画像形成システム。
【請求項７】
木構造によるデータ通信網としてポイントツーポイントで送受信独立の通信チャネルが確立される高速シリアルインタフェースシステムを用い、前記高速シリアルインタフェースシステムの木構造におけるエンドポイントが各々上流側のスイッチに接続される複数の上流ポートを有するデータ転送システムを利用するデータ転送方法であって、
前記木構造におけるエンドポイントに各々上流側のスイッチに接続される複数の上流ポートを設定し、
各エンドポイントにおいて当該システムの動作モードに応じて使用する１つの上流ポートを選択して前記木構造を動的に変更させるようにした、
ことを特徴とするデータ転送方法。
【請求項８】
前記高速シリアルインタフェースシステムがPCI Expressシステムである、ことを特徴とする請求項７記載のデータ転送方法。
【請求項９】
当該システム内で複数の独立したデータ転送を並行して処理する動作モードの場合に、各エンドポイントにおいて前記スイッチを通るデータ転送経路に競合が生じないように、選択して使用する１つの上流ポートを決定するようにした、ことを特徴とする請求項７又は８記載のデータ転送方法。
【請求項１０】
経由する前記スイッチの段数が最小となるように、選択して使用する１つの上流ポートを決定するようにした、ことを特徴とする請求項７，８又は９記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送システム、特に、各種画像データを扱い各種の処理を行う複合機（ＭＦＰ）等の画像形成システム及びデータ転送方法に関する。
【背景技術】
【０００２】
一般に、画像データその他のデータを扱う機器・システムでは、デバイス間のインタフェースにＰＣＩバスが使用されている。しかし、パラレル方式のＰＣＩバスでは、レーシングやスキューなどの問題があり、高速・高画質の画像機器に使用するには、転送レートが低い段階にきており、最近では、ＰＣＩバスのようなパラレル方式のインタフェースに代えて、高速シリアルインタフェースの使用が検討されている。従来、一般的に広く用いられているシリアルインタフェースとしてIEEE1394やUSB等の規格があるが、ＰＣＩと比較した場合は転送レートが不足しており、さらにスケーラブルなバス幅確保が困難等の不具合がある。このため、他の高速シリアルインタフェースとして、ＰＣＩバス方式の後継規格に当るPCI Express（登録商標）なるインタフェースの使用が検討されている。
【０００３】
このPCI Expressシステムは、詳細は後述するが、概略的には、例えば、非特許文献１中の図１等に示されるようなツリー構造（木構造）によるデータ通信網として構成されている。
【０００４】
その一例を単純化して図２８に示す。即ち、PCI Expressシステム２００は、管理するルートノード（ルートコンプレックス）２０１を頂点として、スイッチＳＷ１，ＳＷ２，ＳＷ３，…を介して複数のエンドノード（エンドポイント）Ａ，Ｂ，Ｃ，Ｄ，…をツリー構造に接続してなる。ここに、各スイッチＳＷ１，ＳＷ２，ＳＷ３，…は、上流ポート（ルートノード側）を１つ持ち、下流ポート（エンドノード側）を複数持つ構成とされ、スイッチＳＷ１，ＳＷ２，ＳＷ３，…以外のデバイスＡ，Ｂ，Ｃ，Ｄ，…は、何れも１つのみのポートを有しており、各デバイス間の通信経路は、ツリー構造によって一意に決まる構成とされている。
【０００５】
また、ノード間、スイッチ間の接続線は、予めデータ転送に必要な速度に応じた接続線で接続しておくが、この際、各接続線は、各々性能の異なるもの（例えば、バス幅を示すレーン数がｘ８，ｘ４．ｘ２等）を使用可能とされている。また、スイッチＳＷ１，ＳＷ２，ＳＷ３，…は、各ポートにプライオリティを設定することにより、複数のデータ転送を並行して処理する場合（競合が起きている際）に、転送速度を調整することができる。
【０００６】
【非特許文献１】“PCI Express 規格の概要”Interface誌、July’2003 里見尚志
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところが、このようなPCI Expressシステムを単純に利用した場合、通信経路が固定されているため、複数の独立したデータ転送を並行して処理する場合、データ転送経路の競合が生じ、転送効率が低下してしまう不都合がある。
【０００８】
例えば、図２８に示した例で説明すると、ルートノード２０１からエンドノードＡへの経路２０２とエンドノードＣからエンドノードＢへの経路２０３とで、２種類のデータ転送を同時に処理しようとする場合、図２８中に拡大して示すように、スイッチＳＷ１中のスイッチＳＷ２に対する下流ポートの競合が生じてしまう。よって、経路２０２のパケットと経路２０３のパケットとを交互に出力すると、転送レートが半分に落ち、転送効率が低下する。また、スイッチＳＷ１のアービトレーションにより、一方の経路２０２又は２０３を優先させることは可能であるが、他方の経路２０３又は２０２の転送効率はさらに低下してしまう。
【０００９】
図２８に示すような競合が生じないようにするためには、例えば、図２９に示すように、予めスイッチＳＷ２，ＳＷ２に対するエンドノードＡ，Ｂ，Ｃ，Ｄの接続を変えておけばよいが、別の並行処理動作において、経路２０２の処理と、エンドノードＣからエンドノードＤへの経路２０４の処理とを同時に処理しなければならない場合は、図２８の場合と同様の競合が生じ、転送レートが低下してしまい、本質的な改善とはならない。
【００１０】
このようなデータ転送レートの低下は、データ転送経路の競合時だけでなく、必要以上に多段のスイッチを経るデータ転送経路の場合も同様である。
【００１１】
本発明の目的は、複数の独立したデータ転送を並行して処理する場合のデータ転送経路の競合や、必要以上に多段のスイッチを経るデータ転送経路を避けることによりデータ転送効率の向上を図ることである。
【課題を解決するための手段】
【００１２】
請求項１記載の発明は、木構造によるデータ通信網としてポイントツーポイントで送受信独立の通信チャネルが確立される高速シリアルインタフェースシステムを用いるデータ転送システムであって、前記高速シリアルインタフェースシステムの木構造におけるエンドポイントが各々上流側のスイッチに接続される複数の上流ポートを有し、各エンドポイントは、当該システムの動作モードに応じて使用する１つの上流ポートを選択して前記木構造を動的に変更するポート選択手段を有する。
【００１３】
請求項２記載の発明は、請求項１記載のデータ転送システムにおいて、前記高速シリアルインタフェースシステムがPCI Expressシステムである。
【００１４】
請求項３記載の発明は、請求項１又は２記載のデータ転送システムにおいて、前記ポート選択手段は、リンクのリセット時に選択する上流ポートのポート選択情報を書き換え自在に記憶するメモリを有し、前記各エンドポイントは、ポート選択情報を含むメッセージパケットの受信により前記メモリ上のポート選択情報を書き換え更新する更新手段を有し、当該システムを管理するコンピュータは、当該システムの起動時に前記各エンドポイントを初期設定で前記メモリ上に指定されたポート選択情報に従い上流ポートが選択された状態でリンクアップして初期状態の木構造を取得するとともに各々のエンドポイントに対するコンフィグレーションによりエンドポイントのデバイス機能と必要なデータ転送性能とを特定する初期化手段と、特定されたデバイス機能と必要なデータ転送性能とを参照し当該システムの動作モードに応じて最適となる前記各エンドポイントの上流ポートを決定する決定手段と、決定されたポート選択情報を含むメッセージパケットを対象となる前記エンドポイントの前記更新手段に通知して前記メモリ上のポート選択情報を書換え更新させる通知手段と、当該通知後に当該システムをリセットし書換え更新された前記メモリ上で指定されるポート選択情報に従い前記各エンドポイントの上流ポートが選択された状態で再リンクアップさせる再リンクアップ手段と、を有し、当該システムの再リンクアップ後に動作モードに従いデータ転送を開始させるようにした。
【００１５】
請求項４記載の発明は、請求項２記載のデータ転送システムにおいて、前記決定手段は、当該システム内で複数の独立したデータ転送を並行して処理する動作モードの場合に、前記スイッチを通るデータ転送経路に競合が生じないように、前記ポート選択手段が選択して使用する１つの上流ポートを決定する。
【００１６】
請求項５記載の発明は、請求項２又は３記載のデータ転送システムにおいて、前記決定手段は、経由する前記スイッチの段数が最小となるように、前記ポート選択手段が選択して使用する１つの上流ポートを決定する。
【００１７】
請求項６記載の発明の画像形成システムは、請求項１ないし５の何れか一記載のデータ転送システムは、前記エンドポイントを画像形成に関与するデバイスとする。
【００１８】
請求項７記載の発明は、木構造によるデータ通信網としてポイントツーポイントで送受信独立の通信チャネルが確立される高速シリアルインタフェースシステムを用い、前記高速シリアルインタフェースシステムの木構造におけるエンドポイントが各々上流側のスイッチに接続される複数の上流ポートを有するデータ転送システムを利用するデータ転送方法であって、前記木構造におけるエンドポイントに各々上流側のスイッチに接続される複数の上流ポートを設定し、各エンドポイントにおいて当該システムの動作モードに応じて使用する１つの上流ポートを選択して前記木構造を動的に変更させるようにした。
【００１９】
請求項８記載の発明は、請求項７記載のデータ転送方法において、前記高速シリアルインタフェースシステムがPCI Expressシステムである。
【００２０】
請求項９記載の発明は、請求項７又は８記載のデータ転送方法において、当該システム内で複数の独立したデータ転送を並行して処理する動作モードの場合に、各エンドポイントにおいて前記スイッチを通るデータ転送経路に競合が生じないように、選択して使用する１つの上流ポートを決定するようにした。
【００２１】
請求項１０記載の発明は、請求項７，８又は９記載のデータ転送方法において、経由する前記スイッチの段数が最小となるように、選択して使用する１つの上流ポートを決定するようにした。
【発明の効果】
【００２２】
本発明によれば、エンドポイントに各々上流側のスイッチに接続される複数の上流ポートを持たせ、動作モードに応じて使用する１つの上流ポートを選択することにより、木構造を動的に変更することができ、よって、複数の独立したデータ転送を並行して処理する場合でも独立したデータ転送経路の確保によりデータ転送経路の競合を避け、或るいは、必要以上に多段のスイッチを経るデータ転送経路を避けることができ、データ転送効率の向上を図ることができる。
【発明を実施するための最良の形態】
【００２３】
本発明を実施するための最良の形態について図面を参照して説明する。
【００２４】
［PCI Express規格の概要］
まず、本実施の形態は高速シリアルバスの一つであるPCI Express（登録商標）を利用するものであり、本実施の形態の前提として当該PCI Express規格の概要について、非特許文献１の一部抜粋により説明する。ここに、高速シリアルバスとは、１本の伝送路を用いてシリアル（直列）伝送により高速（１００Ｍｂｐｓ程度以上）にデータをやり取りすることができるインタフェースを意味する。
【００２５】
PCI Expressは、PCIの後継規格としてコンピュータ全般に通用する標準拡張バスとして規格化されたバスであり、概略的には、低電圧差動信号伝送、ポイントツーポイントで送受信独立の通信チャネル、パケット化されたスプリットトランザクション、リンク構成の違いによる高いスケーラビリティなどの特徴を持つ。
【００２６】
図１に既存のPCIシステム、図２にPCI Expressシステムの各々の構成例を示す。既存のPCIシステムにあっては、ＣＰＵ１００やＡＧＰグラフィックス１０１やメモリ１０２が接続されたホストブリッジ１０３に対して、PCI-X（PCIの上位互換規格）デバイス１０４ａ，１０４ｂがPCI-Xブリッジ１０５ａを介して接続されたり、PCIデバイス１０４ｃ，１０４ｄが接続されたPCIブリッジ１０５ｂやPCIバススロット１０６が接続されたPCIブリッジ１０７がPCIブリッジ１０５ｃを介して接続されたりしたツリー構造（木構造）とされている。
【００２７】
これに対して、PCI Expressシステムにあっては、ＣＰＵ１１０やメモリ１１１が接続されたルートコンプレックス１１２に対して、PCI Expressグラフィックス１１３がPCI Express１１４ａにより接続され、また、エンドポイント１１５ａやレガシーエンドポイント１１６ａがPCI Express１１４ｂにより接続されたスイッチ１１７ａがPCI Express１１４ｃにより接続され、さらには、エンドポイント１１５ｂやレガシーエンドポイント１１６ｂがPCI Express１１４ｄにより接続されたスイッチ１１７ｂやPCIバススロット１１８が接続されたPCIブリッジ１１９がPCI Express１１４ｅにより接続されたスイッチ１１７ｃがPCI Express１１４ｆにより接続されたツリー構造（木構造）とされている。
【００２８】
実際に想定されるPCI Expressプラットホーム例を図３に示す。図示例は、デスクトップ／モバイルへの適用例を示し、ＣＰＵ１２１がＣＰＵホストバス１２２により接続され、メモリ１２３が接続されたメモリハブ１２４（ルートコンプレックスに相当する）に対して、例えば、グラフィックス１２５がｘ１６のPCI Express１２６ａにより接続され、また、変換機能を有するＩ／Ｏハブ１２７がPCI Express１２６ｂにより接続されている。このＩ／Ｏハブ１２７には、例えば、Serial ATA１２８によりストレージ１２９が接続され、LPC１３０によりローカルＩ／Ｏ１３１が接続され、USB 2.0１３２やPCIバススロット１３３が接続されている。さらには、Ｉ／Ｏハブ１２７には、PCI Express１２６ｃによりスイッチ１３４が接続され、このスイッチ１３４には、各々、PCI Express１２６ｄ，１２６ｅ，１２６ｆによりモバイルドック１３５、ギガビットイーサネット（イーサネットは登録商標）１３６、アドインカード１３７が接続されている。
【００２９】
即ち、PCI Expressシステムでは、従来のPCI，PCI-X，AGPといったバスがPCI Expressで置き換わり、既存のPCI／PCI-Xデバイスを接続するためにブリッジが使用される。チップセット間の接続もPCI Express接続となり、IEEE1394，Serial ATA，USB 2.0などの既存のバスはＩ／ＯハブによりPCI Expressに接続される。
【００３０】
［PCI Expressの構成要素］
Ａ．ポート（Port）／レーン（Lane）／リンク（Link）
図４に物理層の構造を示す。ポートは、物理的には同一半導体内にあり、リンクを形成するトランスミッタ／レシーバの集合で、論理的にはコンポーネント間を１対１で接続（ポイント・ツー・ポイント）するインタフェースを意味する。転送レートは、例えば片方向２．５Ｇｂｐｓとされている。レーンは、例えば０．８Ｖの差動信号ペアのセットで、送信側の信号ペア（２本）、受信側の信号ペア（２本）からなる。リンクは、２つのポートとその間を結ぶレーンの集まりであり、コンポーネント間のデュアルシンプレックス通信バスである。「ｘＮリンク」はＮ本のレーンから構成され、現在の規格では、Ｎ＝１，２，４，８，１６，３２が定義されている。図示例は、ｘ４リンク例である。例えば、図５に示すように、デバイスＡ，Ｂ間を結ぶこのレーン幅Ｎを可変することにより、スケーラブルなバンド幅を構成することが可能となる。
【００３１】
Ｂ．ルートコンプレックス（Root Complex）
ルートコンプレックス１１２は、Ｉ／Ｏ構造の最上位に位置し、ＣＰＵやメモリサブシステムをＩ／Ｏに接続する。ブロック図などでは、図３に示すように、「メモリハブ」と記述されることが多い。ルートコンプレックス１１２（又は、１２４）は、１つ以上のPCI Expressポート（ルートポート）（図２中では、ルートコンプレックス１１２中の四角で示す）を持ち、各々のポートは独立したＩ／Ｏ階層ドメインを形成する。Ｉ／Ｏ階層ドメインは、単純なエンドポイントである場合（例えば、図２中のエンドポイント１１５ａ側の例）や、多数のスイッチやエンドポイントから形成される場合（例えば、図２中のエンドポイント１１５ｂやスイッチ１１７ｂ，１１５ｃ側の例）がある。
【００３２】
Ｃ．エンドポイント（End Point）
エンドポイント１１５は、タイプ００ｈのコンフィグレーション空間ヘッダを持つデバイス（具体的には、ブリッジ以外のデバイス）で、レガシーエンドポイントとPCI Expressエンドポイントとに分けられる。両者の大きな違いは、PCI ExpressエンドポイントはＢＡＲ（ベースアドレスレジスタ）で基本的にＩ／Ｏポートリソースを要求せず、このためＩ／Ｏリクエストを要求しない。また、PCI Expressエンドポイントは、ロックリクエストもサポートしていない。
【００３３】
Ｄ．スイッチ（Switch）
スイッチ１１７（又は、１３４）は、２つ以上のポートを結合し、ポート間でのパケットルーティングを行う。コンフィグレーションソフトウェアからは、当該スイッチは、図６に示すように、仮想PCI-PCIブリッジ１４１の集合体として認識される。図中、両矢印はPCI Expressリンク１１４（又は、１２６）を示し、１４２ａ〜１４２ｄはポートを示す。このうち、ポート１４２ａはルートコンプレックスに近い方のアップストリームポートであり、ポート１４２ｂ〜１４２ｄはルートコンプレックスから遠い方のダウンストリームポートである。
【００３４】
Ｅ．PCI Express１１４ｅ−PCIブリッジ１１７
PCI ExpressからPCI／PCI-Xへの接続を提供する。これにより、既存のPCI／PCI-XデバイスをPCI Expressシステム上で使用することができる。
【００３５】
［階層アーキテクチャ］
従来のＰＣＩのアーキテクチャは、図７（ａ）に示すように、プロトコルとシグナリングが密接に関連する構造であり階層という考え方はなかったが、PCI Expressでは、図７（ｂ）に示すように、一般的な通信プロトコルやInfiniBandのように、独立した階層構造とされ、各層に分けて仕様が定義されている。即ち、最上位のソフトウェア１５１、最下位の機構（メカニカル）部１５２間に、トランザクション層１５３、データリンク層１５４、物理層１５５を持つ構造とされている。これにより、各層のモジュール性が確保され、スケーラビリティを持たせることやモジュールの再利用が可能となる。例えば、新たな信号コーディング方式や伝送媒体を採用する場合、物理層を変更するだけでデータリンク層やトランザクション層は変更せずに対応できる。
【００３６】
PCI Expressのアーキテクチャの中心となるのは、トランザクション層１５３、データリンク層１５４、物理層１５５であり、各々図８を参照して説明する以下のような役割を持つ。
【００３７】
Ａ．トランザクション層１５３
トランザクション層１５３は、最上位に位置し、トランザクションレイヤパケット（ＴＬＰ）の組み立て、分解機能を持つ。トランザクションレイヤパケット（ＴＬＰ）は、リード／ライト、各種イベントといったトランザクションの伝達に用いられる。また、トランザクション層１５３は、トランザクションレイヤパケット（ＴＬＰ）のためのクレジットを用いたフロー制御を行う。各層１５３〜１５５におけるトランザクションレイヤパケット（ＴＬＰ）の概要を図９に示す（詳細は、後述する）。
【００３８】
Ｂ．データリンク層１５４
データリンク層１５４の主な役割は、エラー検出／訂正（再送）によりトランザクションレイヤパケット（ＴＬＰ）のデータ完全性を保証することと、リンク管理である。データリンク層１５４間では、リンク管理やフロー制御のためのパケットのやり取りを行う。このパケットは、トランザクションレイヤパケット（ＴＬＰ）と区別するために、データリンクレイヤパケット（ＤＬＬＰ）と呼ばれる。
【００３９】
Ｃ．物理層１５５
物理層１５５は、ドライバ、入力バッファ、パラレル−シリアル／シリアル−パラレル変換器、ＰＬＬ、インピーダンス整合回路といったインタフェース動作に必要な回路を含んでいる。また、論理的な機能としてインタフェースの初期化・保守の機能を持つ。物理層１５５は、データリンク層１５４／トランザクション層１５３を実際のリンクで使用される信号技術から独立させる役目も持っている。
【００４０】
なお、PCI Expressのハードウェア構成上、エンベデッド・クロックという技術を採用しており、クロック信号はなく、クロックのタイミングはデータ信号中に埋め込まれており、受信側でデータ信号のクロスポイントを基にクロックを抽出する方式とされている。
【００４１】
［コンフィグレーション空間］
PCI Expressは、従来のPCIと同様にコンフィグレーション空間を持つが、その大きさは従来のPCIが２５６バイトであるのに対して、図１０に示すように、４０９６バイトへと拡張されている。これにより、多数のデバイス固有レジスタセットを必要とするデバイス（ホストブリッジなど）に対しても、将来的に十分な空間が確保されている。PCI Expressでは、コンフィグレーション空間へのアクセスは、フラットなメモリ空間へのアクセス（コンフィグレーションリード／ライト）で行われ、バス／デバイス／機能／レジスタ番号はメモリアドレスにマップされている。
【００４２】
当該空間の先頭２５６バイトは、PCIコンフィグレーション空間として、ＢＩＯＳや従来のＯＳからＩ／Ｏポートを使用した方法でもアクセスできる。従来のアクセスをPCI Expressでのアクセスに変換する機能は、ホストブリッジ上に実装される。００ｈから３ＦｈまではPCI2.3互換のコンフィグレーションヘッダとなっている。これにより、PCI Expressで拡張された機能以外であれば、従来のＯＳやソフトウェアをそのまま使用することができる。即ち、PCI Expressにおけるソフトウェア層は、既存のPCIと互換性を保ったロード・ストア・アーキテクチャ（プロセッサが直接Ｉ／Ｏレジスタをアクセスする方式）を継承している。しかし、PCI Expressで拡張された機能（例えば、同期転送やＲＡＳ（Reliability,Availability and Serviceability）などの機能）を使用するには、４ＫバイトのPCI Express拡張空間にアクセスできるようにする必要がある。
【００４３】
なお、PCI Expressとしては様々なフォームファクタ（形状）が考えられるが、具体化している例としては、アドインカード、プラグインカード（Express Card）、Mini PCI Expressなどがある。
【００４４】
［PCI Express のアーキテクチャの詳細］
PCI Express のアーキテクチャの中心となっているトランザクション層１５３、データリンク層１５４、物理層１５５について、各々詳細に説明する。
【００４５】
Ａ．トランザクション層１５３
トランザクション層１５３の主な役割は、前述したように、上位のソフトウェア層１５１と下位のデータリンク層１５４との間でトランザクションレイヤパケット（ＴＬＰ）の組み立てと分解を行うことである。
【００４６】
ａ．アドレス空間とトランザクションタイプ
PCI Expressでは、従来のPCIでサポートされていたメモリ空間（メモリ空間とのデータ転送用）、Ｉ／Ｏ空間（Ｉ／Ｏ空間とのデータ転送用）、コンフィグレーション空間（デバイスのコンフィグレーションとセットアップ用）に加えて、メッセージ空間（PCI Expressデバイス間のインバンドでのイベント通知や一般的なメッセージ送信（交換）用…割り込み要求や確認は、メッセージを「仮想ワイヤ」として使用することにより伝達される）が追加され、４つのアドレス空間が定義されている。各々の空間に対してトランザクションタイプが定義されている（メモリ空間、Ｉ／Ｏ空間、コンフィグレーション空間は、リード／ライト、メッセージ空間は基本（ベンダ定義含む））。
【００４７】
ｂ．トランザクションレイヤパケット（ＴＬＰ）
PCI Expressは、パケット単位で通信を行う。図９に示したトランザクションレイヤパケット（ＴＬＰ）のフォーマットにおいて、ヘッダのヘッダ長は３ＤＷ（ＤＷはダブルワードの略；合計１２バイト）又は４ＤＷ（１６バイト）で、トランザクションレイヤパケット（ＴＬＰ）のフォーマット（ヘッダ長とペイロードの有無）、トランザクションタイプ、トラフィッククラス（ＴＣ）、アトリビュートやペイロード長などの情報が含まれる。パケット内の最大ペイロード長は１０２４ＤＷ（４０９６バイト）である。
【００４８】
ＥＣＲＣは、エンドツーエンドのデータ完全性を保証するためのもので、トランザクションレイヤパケット（ＴＬＰ）部分の３２ビットＣＲＣである。これは、スイッチ内部などでトランザクションレイヤパケット（ＴＬＰ）にエラーが発生した場合、ＬＣＲＣ（リンクＣＲＣ）ではエラーを検出できないためである（エラーとなったＴＬＰでＬＣＲＣが再計算されるため）。
【００４９】
リクエストは、完了パケットが不要なものと必要なものとがある。
【００５０】
ｃ．トラフィッククラス（ＴＣ）と仮想チャネル（ＶＣ）
上位のソフトウェアは、トラフィッククラス（ＴＣ）を使用することによりトラフィックの差別化（優先度をつける）を行うことができる。例えば、映像データをネットワークのデータよりも優先して転送する、といったことが可能となる。トラフィッククラス（ＴＣ）はＴＣ０からＴＣ７まで８つある。
【００５１】
仮想チャネル（ＶＣ：Vertual Channel）は、各々独立した仮想通信バス（同一のリンクを共用する複数の独立したデータ・フロー・バッファを使用するメカニズム）で、各々がリソース（バッファやキュー）を持ち、図１１に示すように、独立したフロー制御を行う。これにより、１つの仮想チャネルのバッファが満杯の状態（full）になっても、他の仮想チャネルの転送を行うことができる。つまり、物理的には１つのリンクを仮想的な複数のチャネルに分けることで、有効に使用することができる。例えば、図１１中に示すように、スイッチを経由してルートのリンクが複数のデバイスに分かれる場合、各デバイスのトラフィックの優先度を制御することができる。ＶＣ０は必須で、コストパフォーマンスのトレードオフに応じてその他の仮想チャネル（ＶＣ１〜ＶＣ７）が実装される。図１１中の実線矢印は、デフォルト仮想チャネル（ＶＣ０）を示し、破線矢印はその他の仮想チャネル（ＶＣ１〜ＶＣ７）を示している。
【００５２】
トランザクション層内では、トラフィッククラス（ＴＣ）が仮想チャネル（ＶＣ）にマッピングされる。１つの仮想チャネル（ＶＣ）に対して１つ又は複数のトラフィッククラス（ＴＣ）をマッピングできる（仮想チャネル（ＶＣ）の数が少ない場合）。単純な例では、各トラフィッククラス（ＴＣ）から各仮想チャネル（ＶＣ）に１対１、全てのトラフィッククラス（ＴＣ）を仮想チャネルＶＣ０にマッピングする、といったことが考えられる。ＴＣ０−ＶＣ０のマッピングは、必須／固定で、それ以外のマッピングは上位のソフトウェアから制御される。ソフトウェアはトラフィッククラス（ＴＣ）を利用することで、トランザクションの優先度を制御することが可能となる。
【００５３】
ｄ．フロー制御
受信バッファのオーバフローを避け、伝送順序を確立するためにフロー制御（ＦＣ：Flow Control）が行われる。フロー制御は、リンク間のポイントツーポイントで行われ、エンドツーエンドではない。従って、フロー制御により最終的な相手（コンプリータ）にパケットが届いたことを確認することはできない。
【００５４】
PCI Expressのフロー制御は、クレジット・ベースで行われる（データ転送を始める前に、受け取り側のバッファの空き状況を確認し、オーバフロー、アンダフローが発生しないメカニズム）。即ち、受信側はリンク初期化時にバッファ容量（クレジット値）を送信側に通知し、送信側はクレジット値と送信するパケットの長さとを比較し、一定の残りがある場合のみパケットを送信する。このクレジットには6種類ある。
【００５５】
フロー制御の情報交換はデータリンク層のデータリンクレイヤパケット（ＤＬＬＰ）を使用して行われる。フロー制御はトランザクションレイヤパケット（ＴＬＰ）のみに適用され、データリンクレイヤパケット（ＤＬＬＰ）には適用されない（ＤＬＬＰは常時送受信可能）。
【００５６】
Ｂ．データリンク層１５４
データリンク層１５４の主な役割は、前述したように、リンク上の２つのコンポーネント間での信頼性の高いトランザクションレイヤパケット（ＴＬＰ）交換機能を提供することである。
【００５７】
ａ．トランザクションレイヤパケット（ＴＬＰ）の扱い
トランザクション層１５３から受け取ったトランザクションレイヤパケット（ＴＬＰ）に対しては、先頭に２バイトのシーケンス番号、末尾に４バイトのリンクＣＲＣ（ＬＣＲＣ）を付加して、物理層１５５に渡す（図９参照）。トランザクションレイヤパケット（ＴＬＰ）は、リトライバッファに保管され、相手から受信確認（ＡＣＫ）が届くまで再送される。トランザクションレイヤパケット（ＴＬＰ）の送信に失敗が続いた場合は、リンク異常であると判断して物理層１５５に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合、データリンク層１５４の状態はインアクティブに遷移する。
【００５８】
物理層１５５から受け取ったトランザクションレイヤパケット（ＴＬＰ）は、シーケンス番号とリンクＣＲＣ（ＬＣＲＣ）が検査され、正常であればトランザクション層１５３に渡され、エラーがあった場合は再送を要求する。
【００５９】
ｂ．データリンクレイヤパケット（ＤＬＬＰ）
データリンク層１５４が生成するパケットは、データリンクレイヤパケット（ＤＬＬＰ）と呼ばれ、データリンク層１５４間でやり取りされる。データリンクレイヤパケット（ＤＬＬＰ）には、
・Ack／Nak：ＴＬＰの受信確認、リトライ（再送）
・InitFC1／InitFC2／UpdateFC：フロー制御の初期化とアップデート
・電源管理のためのＤＬＬＰ
なる種類がある。
【００６０】
図１２に示すように、データリンクレイヤパケット（ＤＬＬＰ）の長さは６バイトで、種類を示すＤＬＬＰタイプ（１バイト）、ＤＬＬＰの種類で固有の情報（３バイト）、ＣＲＣ（２バイト）から構成される。
【００６１】
Ｃ．物理層−論理サブブロック１５６
図８中に示す物理層１５５の論理サブブロック１５６での主な役割は、データリンク層１５４から受け取ったパケットを電気サブブロック１５７で送信できる形式に変換することである。また、物理層１５５を制御／管理する機能も有する。
【００６２】
ａ．データ符号化とパラレル−シリアル変換
PCI Expressは、連続した“０”や“１”が続かないように（長い期間、クロス・ポイントが存在しない状態が続かないようにするため）、データ符号化に８Ｂ／１０Ｂ変換を用いる。変換されたデータは、図１３中に示すように、シリアル変換され、ＬＳＢからレーン上に送信される。ここに、レーンが複数ある場合は（図１３はｘ４リンクの場合を例示している）、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレル・バスのようにみえるが、レーン毎に独立した転送を行うので、パラレル・バスで問題となるスキューが大幅に緩和される。
【００６３】
ｂ．電源管理とリンクステート
リンクの消費電力を低く抑えるために、表１に示すように、Ｌ０／Ｌ０ｓ／Ｌ１／Ｌ２というリンクステートが定義されている。
【００６４】
【表１】
2005166028.tif 000003
【００６５】
Ｌ０が通常モードで、Ｌ０ｓからＬ２へと低消費電力となるが、Ｌ０への復帰にも時間がかかるようになる。図１４に示すように、ソフトウェアによる電源管理に加えて、アクティブステート電源管理を積極的に行うことにより、消費電力を極力小さくすることが可能となる。
【００６６】
Ｄ．物理層−電気サブブロック１５７
物理層１５５の電気サブブロック１５７での主な役割は、論理サブブロック１５６でシリアル化されたデータをレーン上に送信することと、レーン上のデータを受信して論理サブブロック１５６に渡すことである。
【００６７】
ａ．ＡＣカップリング
リンクの送信側では、ＡＣカップリング用のコンデンサが実装される。これにより、送信側と受信側のＤＣコモンモード電圧が同一である必要がなくなる。このため、送信側と受信側で異なる設計、半導体プロセス、電源電圧を使用することが可能となる。
【００６８】
ｂ．デエンファシス
PCI Expressでは、前述したように、８Ｂ／１０Ｂエンコーディングによってできるだけ連続した“０”や“１”が続かないように処理されるが、連続した“０”や“１”が続くこともある（最大５回）。この場合、送信側はデエンファシス転送を行わなければならないことが規定されている。同一極性のビットが連続する場合は、２つ目のビットからは差動電圧レベル（振幅）を３．５±０．５ｄＢ落とすことで、受信側で受け取る信号のノイズ・マージンを稼ぐ必要がある。これを、デエンファシスという。伝送路の周波数依存性減衰のため、変化するビットの場合は高周波成分が多く、減衰により受信側の波形が小さくなるが、変化しないビットの場合は高周波成分が少なく、相対的に受信側の波形が大きくなる。このため、受信側での波形を一定とするためにデエンファシスを行う。
【００６９】
［データ転送システム；画像形成システム］
本実施の形態のデータ転送システムは、前述したようなPCI Expressシステムを利用する上で、特に、その木構造について拡張改良を加えて利用するようにしたものである。
【００７０】
図１５は、本実施の形態のデータ転送システムにおける木構造例を示す原理的な模式図である。前述のPCI Expressシステムの仕様によれば、エンドポイントの上流ポートは１つのみとされているが、本実施の形態では、各エンドポイントＡ，Ｂ，Ｃ，…について複数の上流ポイントを持たせるとともに、各エンドポイントＡ，Ｂ，Ｃ，…に、当該データ転送システムの動作モードに応じて使用する１つの上流ポートを選択するポートセレクタ（ポート選択手段）１Ａ，１Ｂ，１Ｃ，…を持たせるようにしたものである。
【００７１】
従って、本実施の形態のデータ転送システムの木構造においては、全体を管理するルートコンプレックス２を頂点として、複数のスイッチ３Ａ，３Ｂ，３Ｃを介して複数のエンドポイントＡ，Ｂ，Ｃ，…が接続された木構造であるが、各々のエンドポイントＡ，Ｂ，Ｃが各々複数の上流ポートを有するため、例えば、エンドポイントＡにあってはスイッチ３Ａ，３Ｂ，３Ｃに接続されたデータ転送経路を有し、エンドポイントＢにあってはスイッチ３Ａ，３Ｂ，３Ｃに接続されたデータ転送経路を有し、エンドポイントＣにあってはスイッチ３Ａ，３Ｂ，３Ｃに接続されたデータ転送経路を有する。スイッチ側からみれば、スイッチ３ＡはエンドポイントＡ，Ｂ，Ｃに接続されたデータ転送経路を有し、スイッチ３ＢはエンドポイントＡ，Ｂ，Ｃに接続されたデータ転送経路を有し、スイッチ３ＣはエンドポイントＡ，Ｂ，Ｃに接続されたデータ転送経路を有する。
【００７２】
また、本実施の形態では、スイッチ３Ａ，３Ｂ，３Ｃ毎にデータ転送幅を異ならせる仕様とするために、例えば、スイッチ３Ａは上流側（ルートコンプレックス側）、下流側（エンドポイント側）ともリンクがｘ８なる大量データ転送用とされ、スイッチ３Ｂは上流側、下流側ともリンクがｘ４とされ、スイッチ３Ｃは上流側、下流側ともリンクがｘ１とされ、データの種類に応じて適切なデータ幅のデータ転送を選択できるように設定されている。もっとも、コスト面で余裕があれば、全てのバス幅を例えばｘ８に設定してもよい。
【００７３】
このような構成において、当該データ転送システム内で複数の独立したデータ転送を並行して処理する動作モードの場合に、スイッチ３を通るデータ転送経路に競合が生じないように、ポートセレクタ１は使用する１つの上流ポートを選択する。例えば、エンドポイントＡとエンドポイントＢとの間で大量のデータ転送を要すると同時に、ルートコンプレックス２とエンドポイント３Ｃとの間でデータ転送を要する場合には、ポートセレクタ１Ａ，１ＢはエンドポイントＡ，Ｂの上流ポートとして実線で示すようにスイッチ３Ａに対するｘ８リンクの経路が有効となるように１つの上流ポートを選択し、かつ、ポートセレクタ１ＣはエンドポイントＣの上流ポートとして実線で示すようにスイッチ３Ｂに対するｘ４リンクの経路が有効となるように１つの上流ポートを選択する。これにより、エンドポイントＡ，Ｂ間のｘ８の経路４が確保されるとともに、ルートコンプレックス２−スイッチ３Ｂ−エンドポイントＣのｘ４の経路５が確保される。よって、エンドポイントＡ，Ｂ間でｘ８リンクにより大量のデータ転送を行えると同時に、ルートコンプレックス２とエンドポイントＣとの間ではエンドポイントＡ，Ｂ間のデータ転送に邪魔されることなく、ｘ４リンクをフルに活用したデータ転送が可能となる。
【００７４】
このように動作モードに応じて使用する１つの上流ポートを選択することにより、木構造を動的に変更することができ、よって、複数の独立したデータ転送を並行して処理する場合でも、独立したデータ転送経路の確保によりデータ転送経路の競合を避けることができ、データ転送効率の向上を図ることができる。
【００７５】
本実施の形態のようなデータ転送システムの好適例としては、図１６に示すような画像形成システムを挙げることができる。当該画像形成システムは、画像形成用のデバイスであって前述のエンドポイントＡ，Ｂ，Ｃに各々相当するスキャナエンジン部１１（入力部）と、プリンタエンジン部１２（出力部）と、ファクシミリ部１３（通信部）とを備える複合機（ＭＦＰ）構成とされている。また、１４はルートコンプレックスに相当するコントローラであり、スイッチ３Ａ，３Ｂ，３Ｃに対するスイッチ１５を備える他、当該システムにおけるコンピュータとしてのＣＰＵ１６やメモリ１７が接続されている。
【００７６】
このような構成において、例えば、高速コピー動作用のデータ転送処理とファクシミリ受信用のデータ転送処理とを同時に並行して行う場合であれば、図１６（ａ）に示すように、スキャナエンジン部１１及びプリンタエンジン部１２の上流ポートはスイッチ３Ａのｘ８用が有効となるように選択し、かつ、ファクシミリ部１３の上流ポートはスイッチ３Ｂのｘ４用が有効となるように選択し、図２（ａ）中に実線で示すような経路４，５を使用することにより、スキャナエンジン部１１とプリンタエンジン部１２との間でｘ８リンクの経路４で高速コピーを行いながら、ファクシミリ部１３とコントローラ１４を介するメモリ１７との間でｘ４リンクの経路５を利用してファクシミリ受信データをメモリ１７に保存させることができる。
【００７７】
一方、例えば、ファクシミリ受信データのプリント動作と高速スキャニングデータのメモリへの格納（予約コピー）動作とを同時に並行して行う場合であれば、図２（ｂ）に示すように、スキャナエンジン部１１の上流ポートはスイッチ３Ａのｘ８リンク用が有効となるように選択し、かつ、プリントエンジン部１２及びファクシミリ部１３の上流ポートはスイッチ３Ｂのｘ４リンク用が有効となるように選択し、図１６（ｂ）中に実線で示すような経路６，７を使用することにより、ファクシミリ受信データをプリントエンジン部１２によりプリントしている間に、スキャナエンジン部１１による高速スキャニングデータをメモリ１７に転送して予約コピー用に格納させることができる。
【００７８】
［具体的構成例］
ところで、上述したような動作を実現するためのエンドポイントのより具体的な構成例並びに当該システムを管理するコンピュータとしてのＣＰＵ１６による動作制御例等について説明する。
【００７９】
図１７は、各エンドポイント２１の構成例を示す概略ブロック図である。各エンドポイント２１は、上流に存在する複数のスイッチ（ＳＷ１〜３）の各々と個別に１対１で接続される複数の上流ポートとして、ポート１〜３で示すような複数のポート２２Ａ〜２２Ｃを備えている。これらのポート２２Ａ〜２２Ｃの下流側には、前述のポートセレクタ１に相当し、物理層２４との通信路を切り替えることで当該エンドポイント２１の持つ何れかのポート２２Ａ〜２２Ｃに接続するポート選択手段としてのポートセレクタ２３が設けられている。このポートセレクタ２３の下流側には、前述の物理層２４やエンドポイント論理層回路２５の他、これらの物理層２４・エンドポイント論理層回路２５間を接続するデファクト標準のインタフェース規格に従うＰＩＰＥインタフェース２６を有するPCI Expressコア２７が設けられている。このようなPCI Expressコア２７の下流側には、各々のエンドポイント２１毎の機能を特定するユーザ回路２８が接続されている。このユーザ回路２８は、PCI Express規格のパケットを受信することで各々の有するアプリケーション（スキャナ、プロッタ、ネットワークカード等）の機能を制御する。
【００８０】
ここに、ポートセレクタ２３は、リンクのリセットがかかった際に選択する上流ポートのポート番号（ポート選択情報）を書き換え自在に記憶するメモリ２９を有する。このメモリ２９には、初期状態でポートセレクタ２３により選択される任意のポート番号が記憶されている。ポートセレクタ２３では、外部の制御回路３０から入力されるポート番号（ポート選択情報）を当該メモリ２９に記憶し、次にリンクのリセットがかかった場合にはその時点で当該メモリ２９に記憶されているポート番号のポート２２Ａ〜２２Ｃを選択する。一方、エンドポイント２１において、ユーザ回路２８は、メッセージパケットを受信し、当該メッセージパケットがポート番号（ポート選択情報）を含む場合に通知する制御回路３０を有し、この制御回路３０は通知を受けたメッセージパケットのポート番号をメモリ２９に対して出力して書き換え更新させる更新手段として機能する。
【００８１】
このようなエンドポイント２１の構成下に、プログラムによりシステム全体の動作を制御するＣＰＵ１６及び各エンドポイント２１により実行される、当該システムのツリー構造の動的変更の処理手順について図１８ないし図２３を参照して説明する。図１８ないし図２１は、各々異なる段階でのツリー構造例を示す原理的な模式図、図２２はＣＰＵ１６により実行される動作制御例の概略フローチャート、図２３は各エンドポイント２１Ａ〜２１Ｄにおける動作例を示す概略フローチャートである。ここでは、３つのスイッチ３Ａ〜３Ｃ、４つのエンドポイント２１Ａ〜２１Ｄ、各々２つずつのポート２２Ａ，２２Ｂを有するシステム構成例とする。この手順としては、初期化手順と経路最適化手順とに大別される。
【００８２】
まず、システムが起動した際に、各エンドポイント２１Ａ〜２１Ｄは初期設定でメモリ２９に格納されているポート番号で指定されたポートがポートセレクタ２３Ａ〜２３Ｄにより選択された状態でリンクアップする。即ち、各エンドポイント２１Ａ〜２１Ｄにおいては、図２３に示すように、リンクのリセットを検出すると（ステップＳ１１）、メモリ２９に格納されているポート番号を参照することで（Ｓ１２）、ポートセレクタ２３は上流ポートを選択して（Ｓ１３）、リンクアップする（Ｓ１４）。ＣＰＵ１６は、このようなリンクアップの際に、コントローラ（ルートコンプレックス）１４の下流にあるスイッチ３Ａ〜３Ｃと各エンドポイント２１Ａ〜２１Ｄを検索することで（ステップＳ１，Ｓ２）、初期状態のツリー構造（木構造）を取得し、メモリ１７内のテーブルなどに保持する（Ｓ３）。この際、各スイッチ３Ａ〜３Ｃや各エンドポイント２１Ａ〜２１Ｄには規格で決まっているユニークなベンダＩＤ、デバイスＩＤが与えられており、PCI Express規格で定められた前述のコンフィグレーションレジスタ（図示せず）に保持されている。そこで、ＣＰＵ１６は、各々のスイッチ３Ａ〜３Ｃやエンドポイント２１Ａ〜２１Ｄのコンフィグレーションリードアクセスをかけることで、ベンダＩＤ、デバイスＩＤを取得し、そのデバイス機能と必要なデータ転送性能を特定する（なお、ベンダＩＤ、デバイスＩＤと機能、性能に関する情報は、予めプログラム或いはコントローラ（ルートコンプレックス）１４に接続されたメモリ１７に含まれているものとする）。このようなステップＳ１〜Ｓ３の処理がＣＰＵ１７により、初期化手段の機能として実行される。
【００８３】
図１８は、システム起動時にリンクアップした状態のツリー構造例を示す原理的な模式図である。即ち、初期設定では、エンドポイント２１Ａ，２１Ｂではポート２２Ａ、エンドポイント２１Ｃ，２１Ｄではポート２２Ｂが選択されるようにメモリ２９にポート番号が記憶されているものとする。このようにリンクアップされたときのツリー構造と各エンドポイント２１Ａ〜２１ＤのＩＤ（機能、性能情報）はメモリ１７に保持される。
【００８４】
このような初期化手順の終了後、ＣＰＵ１６は、システム動作モードを選択し、当該システム動作に合わせて、例えば、スイッチ３Ａ〜３Ｃの出力ポートに競合が生じないようなデータ通信経路をプログラムによる演算処理によって特定し、各エンドポイント２１Ａ〜２１Ｄにおけるポートセレクタ２３が選択する最適なポート番号をポート選択情報として決定する処理を行なう。即ち、初期化手順により特定されたデバイス機能と必要なデータ転送性能とを参照しながら当該システムの動作モードを実行する上で、データ転送経路の競合の回避が可能であるか、さらには、後述するようにスイッチ経由数の削減が可能であるか否かを判定し（Ｓ５）、可能でなければ既にデータ転送経路が最適化されているのでデータ転送処理をそのまま実行させるが（Ｓ６）、可能であれば（Ｓ５のＹ）、当該動作モードに応じて最適となる各エンドポイント２１Ａ〜２１Ｄの上流ポートを決定し、ポート変更が必要なエンドポイントの制御回路３０に対してそのポート番号（ポート選択情報）を含むメッセージバケットを送信する（Ｓ７）。これらのステップＳ４、Ｓ５のＹ、Ｓ７の処理が、決定手段、通知手段の機能として実行される。
【００８５】
図１９は、初期設定状態のままではスイッチにおいてポート競合が生ずる動作モード例を示す原理的な模式図である。例えば、メモリ１７からエンドポイント２１Ａに対してデータ通信を行ないながら、エンドポイント２１Ｃからエンドポイント２１Ｂへデータ転送しようとする動作モード例を示し、この場合、初期設定状態のままでは、スイッチ３Ａのスイッチ３Ｂへの出力ポートで競合が生じてしまう（図２８で説明した場合に相当する）。このような場合、例えばエンドポイント２１Ｃのポートをポート２２Ｂに代えて、スイッチ３Ｂと接続された方のポート２２Ａに切り替えることで、データ転送経路の競合が避けられるようになる。そこで、ＣＰＵ１６はこのような動作モード時には、エンドポイント２１Ｃの最適な上流ポートとしてポート２２Ａを決定する。そして、ＣＰＵ１６は、実際にデータ転送を実行する前に変更対象となる当該エンドポイント２１Ｃに対してポート番号＝ポート２２Ａなるポート選択情報を含むメッセージパケットを送信する。
【００８６】
このとき、各エンドポイント２１Ａ〜２１Ｄにおいては、メッセージパケットを受信した場合（Ｓ１５）、ポート番号（ポート選択情報）を含むメッセージパケットであるか否かを判定し（Ｓ１６）、ポート番号（ポート選択情報）が含まれない場合には（Ｓ１６のＮ）、通常のパケット受信処理を行なうが（Ｓ１７）、ポート番号（ポート選択情報）が含まれる場合には（Ｓ１６のＹ）、制御回路３０に当該ポート番号（ポート選択情報）を通知し（Ｓ１８）、当該制御回路３０では、例えば、対象となる当該エンドポイント２１Ｃにおけるポートセレクタ２３にスイッチ３Ｂに繋がるポート番号＝ポート２２Ａの情報を通知し（Ｓ１９）、メモリ２９を当該ポート番号＝ポート２２Ａで書き換え更新させる（Ｓ２０）。
【００８７】
ＣＰＵ１６は、変更を要するポート番号の通知後（Ｓ７）、当該システム上のPCI Expressリンクをリセットし、書換え更新されたメモリ２９上で指定されるポート番号（ポート選択情報）に従い各エンドポイント２１Ａ〜２１Ｄの上流ポート２２Ａ又は２２Ｂが選択された状態で再リンクアップさせる（Ｓ８）。このステップＳ８の処理が再リンクアップ手段の機能として実行される。即ち、各エンドポイント２１Ａ〜２１Ｄにおいては、図２３に示すように、リンクのリセットを検出すると（Ｓ１１）、メモリ２９に格納されているポート番号を参照することで（Ｓ１２）、ポートセレクタ２３は上流ポートを選択して（Ｓ１３）、リンクアップする（Ｓ１４）。本例の場合であれば、エンドポイント２１Ｃで選択されるポートが、メッセージパケットで指定されたスイッチ３Ｂに繋がるポート２２Ａに切り替わった状態で、リンクアップする。図２０は、実際のデータ転送前に再リンクアップした状態のツリー構造例を示す原理的な模式図である。
【００８８】
ＣＰＵ１６は、このようなリンクアップの際に、システム起動時と同じく、コントローラ（ルートコンプレックス）１４の下流にあるスイッチ３Ａ〜３Ｃと各エンドポイント２１Ａ〜２１Ｄを検索することで（ステップＳ１，Ｓ２）、初期状態のツリー構造（木構造）を取得し、メモリ１７内のテーブルなどに保持する（Ｓ３）。そして、ＣＰＵ１６は、再度各々のデバイスのコンフィグレーションリードアクセスをかけることで、ベンダＩＤ、デバイスＩＤと機能、性能に関する情報も更新する。この後、実際のデータ転送を開始する（Ｓ６）。
【００８９】
図２１は、再リンクアップされたツリー構造下での動作モード例を示す原理的な模式図である。図２１に示す構成例によれば、当該動作モードにおいて、スイッチ３Ａの出力ポートに競合が生じないため、メモリ１７−スイッチ３Ａ，３Ｂ−エンドポイント２１Ａなるデータ転送と、エンドポイント２１Ｃ−スイッチ３Ｂ−エンドポイント２１Ｂなるデータ転送とを高速で行なうことができる。
【００９０】
なお、上述の説明では、エンドポイント２１Ｃに関してポート２２Ｂ側からポート２２Ａ側に切り替えるようなポート決定例としたが、エンドポイント２１Ｂに関してポート２２Ａ側からポート２２Ｂ側に切り替えるようなポート決定とし、エンドポイント２１Ｃ−スイッチ３Ｃ−エンドポイント２１Ｂなる経路でデータ転送させるようにしても同等である。
【００９１】
ところで、図１８ないし図２１による説明では、ＣＰＵ１６がスイッチの出力ポートの競合が生じないように選択すべきエンドポイントの上流ポートを決定するようにした例で説明したが、図２２中のステップＳ５中にも示すように、スイッチ経由数（経由するスイッチの段数）が最小となるように選択すべきエンドポイントの上流ポートを決定するようにしてもよい。
【００９２】
この点について、図２４及び図２５を参照して説明する。図２４は、図１８と同じく、システム起動時にリンクアップした状態のツリー構造例を示す原理的な模式図である。このようなシステム起動時の接続状態で、その動作モードとして、例えばエンドポイント２１Ａからエンドポイント２１Ｄへデータ通信を行なう場合を考えると、スイッチ３Ｂ→スイッチ３Ａ→スイッチ３Ｃを経由することとなり、３段のスイッチを経由するパケット転送が必要となり、大きな遅延を生じてしまう。このような場合、ＣＰＵ１６が図２５に示すようにエンドポイント２１Ａの選択すべき上流側ポートとして、ポート２２Ａに代えてポート２２Ｂとなるように決定することで、エンドポイント２１Ａ→スイッチ３Ｃ→エンドポイント２１Ｄなる経路でのデータ転送、即ち、スイッチ３Ｃのみの１段のスイッチを経る経路となり、図２４に示すデータ転送経路の場合に比べて、パケット転送に要する遅延時間を１／３に減らすことができる。
【００９３】
この場合も、エンドポイント２１Ｄ側で選択すべきポートがポート２２Ａ側となるように決定してもよい。
【００９４】
［効果についての考察］
まず、スイッチの出力ポート競合の影響について考察する。PCI Expressスイッチにおいて出力ポートに競合が生ずると、データ転送レートが低下する。図２６は、PCI Expressスイッチにおいて４つの入力ポートに対して出力ポートが１つで競合が生ずる条件下で、種類の異なる４つのトラフィックを同時に開始させ、転送速度に応じてデータ転送が順に終了していく場合の特性を示したグラフである。図において、横軸は転送時間、縦軸は各ポートのデータ転送量（積算値）であり、各グラフの傾きが転送レートを示している。なお、なお、ペイロードサイズ（パケットデータ全体のサイズのうち、ヘッダ情報以外のデータ部分のサイズを意味する）は、４種類とも６４byte固定の条件での測定例とする。また、データ転送のアルゴリズムは、PCI Express規格におけるウエイテッドラウンドロビン（ＷＲＲ）であり、４種類に関して１：２：４：８の比率でデータ転送させるように設定した場合の特性例を示し、１つのトラフィッククラスのデータ転送が終了すると、残りのトラフィッククラスについて８：４：２、さらには、８：４の如く、比率を変遷させながらデータ転送させるアルゴリズムである。
【００９５】
図２６では、左側から順に、４つの転送が競合、３つの転送が競合、２つの転送が競合、競合なしと変遷しているのが判る。ここに、競合するトラフィックの数が減るに従って、各々のグラフの傾き、即ち、転送レートが急峻となり、データ転送レートが向上するのが判る。この点、前述したような本実施の形態によれば、エンドポイント２１Ａ〜２１Ｄの上流側ポートに関して、スイッチの出力ポートに競合が生じないように、選択すべきポートを決定しているので、データ転送レートを向上させ得るのが判る。
【００９６】
次に、経由するスイッチの段数の影響について考察する。データを一定量ずつ区切って転送する場合（例えば、画像形成システム中のプロッタに対して、画像データを主走査方向の１ラインずつに区切って転送する場合など）、パケットデータが発信元から送信先へ到達する、初期遅延の影響が経由するスイッチ段数とともに大きくなる。
【００９７】
図２７は、データ転送経路において、経由するスイッチの個数（段数）をパラメータとして、ペイロードサイズと転送レートとの関係を示したグラフであり、経由するスイッチの個数（段数）の転送レートに対する影響が判る。図では、上から順に、タイミング制約なし、スイッチが１段で遅延構造１，２，３、スイッチが２段で遅延構造１，２，３、スイッチが３段で遅延構造１，２，３、スイッチが４段で遅延構造１，２，３、スイッチが５段で遅延構造１，２，３の場合を各々示している。経由するスイッチの段数が１段増える毎に、パケット転送の遅延時間が加算され、その遅延はパケットデータのサイズが大きいほど、大きな遅延が発生してしまう。このため、データ転送経路上に複数段のスイッチが存在すると、１つのパケットで送るデータのサイズが大きくなるほど、データ転送レートが低下してしまうのが判る。この点、前述したような本実施の形態によれば、エンドポイント２１Ａ〜２１Ｄの上流側ポートに関して、経由するスイッチ３の段数が最小となるように、選択すべきポートを決定しているので、データ転送レートの低下を抑制し得るのが判る。
【図面の簡単な説明】
【００９８】
【図１】既存PCIシステムの構成例を示すブロック図である。
【図２】PCI Expressシステムの構成例を示すブロック図である。
【図３】デスクトップ／モバイルでのPCI Expressプラットホームの構成例を示すブロック図である。
【図４】ｘ４の場合の物理層の構造例を示す模式図である。
【図５】デバイス間のレーン接続例を示す模式図である。
【図６】スイッチの論理的構造例を示すブロック図である。
【図７】（ａ）は既存のPCIのアーキテクチャを示すブロック図、（ｂ）はPCI Expressのアーキテクチャを示すブロック図である。
【図８】PCI Expressの階層構造を示すブロック図である。
【図９】トランザクションレイヤパケットのフォーマット例を示す説明図である。
【図１０】PCI Expressのコンフィグレーション空間を示す説明図である。
【図１１】仮想チャネルの概念を説明するための模式図である。
【図１２】データリンクレイヤパケットのフォーマット例を示す説明図である。
【図１３】ｘ４リンクでのバイトストライピング例を示す模式図である。
【図１４】アクティブステート電源管理の制御例を示すタイムチャートである。
【図１５】本実施の形態のデータ転送システムにおける木構造例を示す原理的な模式図である。
【図１６】画像形成システムの場合の具体例を示す原理的な模式図である。
【図１７】各エンドポイントの構成例を示す概略ブロック図である。
【図１８】システム起動時にリンクアップした状態のツリー構造例を示す原理的な模式図である。
【図１９】初期設定状態のままではスイッチにおいてポート競合が生ずる動作モード例を示す原理的な模式図である。
【図２０】実際のデータ転送前に再リンクアップした状態のツリー構造例を示す原理的な模式図である。
【図２１】再リンクアップされたツリー構造下での動作モード例を示す原理的な模式図である。
【図２２】ＣＰＵにより実行される動作制御例の概略フローチャートである。
【図２３】各エンドポイントにおける動作例を示す概略フローチャートである。
【図２４】システム起動時にリンクアップした状態のツリー構造例を示す原理的な模式図である。
【図２５】再リンクアップされたツリー構造下での動作モード例を示す原理的な模式図である。
【図２６】PCI Expressスイッチにおいて種類の異なる４つのトラフィックを同時に開始させ、転送速度に応じてデータ転送が順に終了していく場合の特性を示したグラフである。
【図２７】データ転送経路において、経由するスイッチの個数（段数）をパラメータとして、ペイロードサイズと転送レートとの関係を示したグラフである。
【図２８】PCI Expressの通常の利用形態による木構造例を示す原理的な模式図である。
【図２９】その変形例を示す原理的な模式図である。
【符号の説明】
【００９９】
１      ポート選択手段
２Ａ〜２Ｃ      スイッチ
１１〜１３        デバイス
２１      エンドポイント
２２      上流ポート
２３      ポート選択手段
２９      メモリ
３０      更新手段
Ａ〜Ｃ      エンドポイント
【図１】
2005166028.tif 000004
【図２】
2005166028.tif 000005
【図３】
2005166028.tif 000006
【図４】
2005166028.tif 000007
【図５】
2005166028.tif 000008
【図６】
2005166028.tif 000009
【図７】
2005166028.tif 000010
【図８】
2005166028.tif 000011
【図９】
2005166028.tif 000012
【図１０】
2005166028.tif 000013
【図１１】
2005166028.tif 000014
【図１２】
2005166028.tif 000015
【図１３】
2005166028.tif 000016
【図１４】
2005166028.tif 000017
【図１５】
2005166028.tif 000018
【図１６】
2005166028.tif 000019
【図１７】
2005166028.tif 000020
【図１８】
2005166028.tif 000021
【図１９】
2005166028.tif 000022
【図２０】
2005166028.tif 000023
【図２１】
2005166028.tif 000024
【図２２】
2005166028.tif 000025
【図２３】
2005166028.tif 000026
【図２４】
2005166028.tif 000027
【図２５】
2005166028.tif 000028
【図２６】
2005166028.tif 000029
【図２７】
2005166028.tif 000030
【図２８】
2005166028.tif 000031
【図２９】
2005166028.tif 000032