(57)【要約】【課題】  ツリー構造の上位から下位に至る経路を検出するための手段、当該経路における通信パラメータを検出するための手段を通信デバイスのハードウェア手段で実行できるようにして、これらの検出処理を簡素化する。【解決手段】  Root Complex１２は、Search Message２１をツリー構造の下位に向けてブロードキャストする。Search Message２１は、これを受信したポート１５において、Search Message２１であることを確認すると、そのポート１５に関する所定情報、具体的にはデバイス番号２２などを当該Search Message２１のデータペイロード部分に付加して、ツリー構造の下位に向けて送信する。End Point１４においてSearch Message２１を受信すると、End Point１４はRoot Complex１２に向けてReply Message２３を返信する。Reply Message２３には、End Point１４が受信したSearch Message２１に付加されている各デバイス番号２２が添付される。【選択図】    図１７
2006211532.tif 000002
【特許請求の範囲】
【請求項１】
データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ツリー構造の最上位となる通信デバイスにおいて、
本通信デバイスより前記ツリー構造の下位に位置する通信デバイスに向けて所定のデータを送信し、当該データはそれを受信した通信デバイスに関する所定情報を当該データに付加して下位に向けて送信することを当該通信デバイスに行なわせるものであることを特徴とする通信デバイス。
【請求項２】
データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ノードとなる通信デバイスにおいて、
前記ポートは前記ツリー構造の上位から受信したデータが所定のデータであったときは、本通信デバイスに関する所定情報を当該データに付加して前記ツリー構造の下位に向けて送信することを特徴とする通信デバイス。
【請求項３】
データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ツリー構造の最下位となる通信デバイスにおいて、
受信した通信デバイスに関する所定情報を付加して下位に向けて送信することを前記ノードとなる通信デバイスに指示するデータを前記ツリー構造の上位から受信したときは、当該データに含まれる前記所定情報を付加したデータを作成して前記ツリー構造の最上位の通信デバイスに返信することを特徴とする通信デバイス。
【請求項４】
前記ツリー構造の下位に位置する通信デバイスに向けて行なう所定データの送信は、ブロードキャストにより行なうことを特徴とする請求項１に記載の通信デバイス。
【請求項５】
データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ツリー構造の最上位となる通信デバイスにおいて、
前記ツリー構造の下位に位置する特定の通信デバイスをターゲットにして所定の条件を含むデータを送信し、当該データはそれを受信した通信デバイスが自通信デバイスの通信パラメータが前記条件に適合するか否かを判断し、適合するときには当該通信パラメータを当該データに付加して下位に向けて送信することを行なわせるものであることを特徴とする通信デバイス。
【請求項６】
データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ノードとなる通信デバイスにおいて、
前記ポートは前記ツリー構造の上位から受信したデータが所定のデータであったときは、当該データに含まれる所定の条件に自通信デバイスの通信パラメータが前記条件に適合するか否かを判断し、適合するときには当該通信パラメータを当該データに付加して前記ツリー構造の下位に向けて送信することを特徴とする通信デバイス。
【請求項７】
データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ツリー構造の最下位となる通信デバイスにおいて、
受信した通信デバイスに所定条件に合致する通信パラメータが含まれていたときは当該通信パラメータを付加して前記ツリー構造の下位に向けて送信することを行なわせるデータを前記ツリー構造の上位から受信したときは、当該データに含まれる前記通信パラメータを付加したデータを作成して前記ツリー構造の最上位の通信デバイスに返信することを特徴とする通信デバイス。
【請求項８】
PCI-express規格のRoot Complexであることを特徴とする請求項１，４，５のいずれかの一項に記載の通信デバイス。
【請求項９】
PCI-express規格のSwitchであることを特徴とする請求項２又は６に記載の通信デバイス。
【請求項１０】
PCI-express規格のEnd Pointであることを特徴とする請求項３又は７に記載の通信デバイス。
【請求項１１】
データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムにおいて、
前記ツリー構造の最上位となる通信デバイスは請求項１又は４に記載の通信デバイスであり、
前記ノードとなる通信デバイスは請求項２に記載の通信デバイスであり、
前記ツリー構造の最下位となる通信デバイスは請求項３に記載の通信デバイスである、
ことを特徴とするデータ転送システム。
【請求項１２】
データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムにおいて、
前記ツリー構造の最上位となる通信デバイスは請求項５に記載の通信デバイスであり、
前記ノードとなる通信デバイスは請求項６に記載の通信デバイスであり、
前記ツリー構造の最下位となる通信デバイスは請求項７に記載の通信デバイスである、
ことを特徴とするデータ転送システム。
【請求項１３】
内部で通信を行う電子機器において、
前記通信を行う請求項１１又は１２に記載のデータ転送システムを備えていることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信デバイス、この通信デバイスを備えたデータ転送システム、及びこのデータ転送システムを備えた電子機器に関する。
【背景技術】
【０００２】
高速シリアルインタフェースとして、ＰＣＩバス方式の後継規格に当るPCI Express（登録商標）なるインターフェイスが提案されている（例えば、非特許文献１参照）。
【０００３】
【非特許文献１】“PCI Express 規格の概要”Interface誌、July’2003 里見尚志
【発明の開示】
【発明が解決しようとする課題】
【０００４】
PCI Express規格においてはVirtua1 Channelや省電力状態の設定など、Root ComplexとEnd Pointとの間のすべてのリンクにおける値を考慮しなければならない設定が存在する。
【０００５】
しかしながら、Root Complexから任意のEnd Pointに至る経路を検出するための手段、当該経路における通信パラメータを検出するための手段は、PCI Expressの規格上において提供されてはおらず、これらの検出は別途ソフトウェア的な手段で行わなければならないという不具合があった。
【０００６】
そこで、本発明の目的は、データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システム、例えば、PCI Express規格のデータ転送システムにおいて、ツリー構造の上位から下位に至る経路を検出するための手段、当該経路における通信パラメータを検出するための手段を通信デバイスのハードウェア手段で実行できるようにして、これらの検出処理を簡素化することである。
【課題を解決するための手段】
【０００７】
（１）本発明は、データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ツリー構造の最上位となる通信デバイスにおいて、本通信デバイスより前記ツリー構造の下位に位置する通信デバイスに向けて所定のデータを送信し、当該データはそれを受信した通信デバイスに関する所定情報を当該データに付加して下位に向けて送信することを当該通信デバイスに行なわせるものであることを特徴とする通信デバイスである。
【０００８】
また、データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ノードとなる通信デバイスにおいて、前記ポートは前記ツリー構造の上位から受信したデータが所定のデータであったときは、本通信デバイスに関する所定情報を当該データに付加して前記ツリー構造の下位に向けて送信することを特徴とする通信デバイスも本発明である。
【０００９】
さらに、データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ツリー構造の最下位となる通信デバイスにおいて、受信した通信デバイスに関する所定情報を付加して下位に向けて送信することを前記ノードとなる通信デバイスに指示するデータを前記ツリー構造の上位から受信したときは、当該データに含まれる前記所定情報を付加したデータを作成して前記ツリー構造の最上位の通信デバイスに返信することを特徴とする通信デバイスも本発明である。
【００１０】
（２）別の面から見た本発明は、データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ツリー構造の最上位となる通信デバイスにおいて、前記ツリー構造の下位に位置する特定の通信デバイスをターゲットにして所定の条件を含むデータを送信し、当該データはそれを受信した通信デバイスが自通信デバイスの通信パラメータが前記条件に適合するか否かを判断し、適合するときには当該通信パラメータを当該データに付加して下位に向けて送信することを行なわせるものであることを特徴とする通信デバイスである。
【００１１】
また、データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ノードとなる通信デバイスにおいて、前記ポートは前記ツリー構造の上位から受信したデータが所定のデータであったときは、当該データに含まれる所定の条件に自通信デバイスの通信パラメータが前記条件に適合するか否かを判断し、適合するときには当該通信パラメータを当該データに付加して前記ツリー構造の下位に向けて送信することを特徴とする通信デバイスも本発明である。
【００１２】
さらに、データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート間で設定の整合性をとって行うデータ転送システムで前記ツリー構造の最下位となる通信デバイスにおいて、受信した通信デバイスに所定条件に合致する通信パラメータが含まれていたときは当該通信パラメータを付加して前記ツリー構造の下位に向けて送信することを行なわせるデータを前記ツリー構造の上位から受信したときは、当該データに含まれる前記通信パラメータを付加したデータを作成して前記ツリー構造の最上位の通信デバイスに返信することを特徴とする通信デバイスも本発明である。
【発明の効果】
【００１３】
（１）に記載の本発明によれば、ツリー構造の上位から下位に至る経路中の各部のデバイス番号などを検出するための手段を通信デバイスのハードウェア手段で実行できるようにして、別途ソフトウェア手段で実行する必要はないので、これらの検出処理を簡素化することができる。
【００１４】
（２）に記載の本発明によれば、ツリー構造の上位から下位に至る経路中の通信パラメータ、例えば、当該通信パラメータの最大値又は最小値を検出するための手段を通信デバイスのハードウェア手段で実行できるようにして、別途ソフトウェア手段で実行する必要はないので、これらの検出処理を簡素化することができる。
【発明を実施するための最良の形態】
【００１５】
本発明を実施するための最良の形態について図面を参照して説明する。
【００１６】
以下では、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は、パケット単位で通信を行う。図９に示したトランザクションレイヤパケット（ＴＬＰ）のフォーマットにおいて、ヘッダのヘッダ長は３ＤＷ（ＤＷはダブルワードの略；合計１２バイト）又は４ＤＷ（１６バイト）で、トランザクションレイヤパケット（ＴＬＰ）のフォーマット（ヘッダ長とペイロードの有無）、トランザクションタイプ、トラフィッククラス（ＴＣ）、アトリビュートやペイロード長などの情報が含まれる。パケット内の最大ペイロード長は１０２４ＤＷ（４０９６バイト）である。
【００４１】
ＥＣＲＣは、エンドツーエンドのデータ完全性を保証するためのもので、トランザクションレイヤパケット（ＴＬＰ）部分の３２ビットＣＲＣである。これは、スイッチ内部などでトランザクションレイヤパケット（ＴＬＰ）にエラーが発生した場合、ＬＣＲＣ（リンクＣＲＣ）ではエラーを検出できないためである（エラーとなったＴＬＰでＬＣＲＣが再計算されるため）。
【００４２】
リクエストは、完了パケットが不要なものと必要なものとがある。
【００４３】
ｃ．トラフィッククラス（ＴＣ）と仮想チャネル（ＶＣ）
上位のソフトウェアは、トラフィッククラス（ＴＣ）を使用することによりトラフィックの差別化（優先度をつける）を行うことができる。例えば、映像データをネットワークのデータよりも優先して転送する、といったことが可能となる。トラフィッククラス（ＴＣ）はＴＣ０からＴＣ７まで８つある。
【００４４】
仮想チャネル（ＶＣ：Virtual Channel）は、各々独立した仮想通信バス（同一のリンクを共用する複数の独立したデータ・フロー・バッファを使用するメカニズム）で、各々がリソース（バッファやキュー）を持ち、図１１に示すように、独立したフロー制御を行う。これにより、１つの仮想チャネルのバッファが満杯の状態（full）になっても、他の仮想チャネルの転送を行うことができる。つまり、物理的には１つのリンクを仮想的な複数のチャネルに分けることで、有効に使用することができる。例えば、図１１中に示すように、スイッチを経由してルートのリンクが複数のデバイスに分かれる場合、各デバイスのトラフィックの優先度を制御することができる。ＶＣ０は必須で、コストパフォーマンスのトレードオフに応じてその他の仮想チャネル（ＶＣ１〜ＶＣ７）が実装される。図１１中の実線矢印は、デフォルト仮想チャネル（ＶＣ０）を示し、破線矢印はその他の仮想チャネル（ＶＣ１〜ＶＣ７）を示している。
【００４５】
トランザクション層内では、トラフィッククラス（ＴＣ）が仮想チャネル（ＶＣ）にマッピングされる。１つの仮想チャネル（ＶＣ）に対して１つ又は複数のトラフィッククラス（ＴＣ）をマッピングできる（仮想チャネル（ＶＣ）の数が少ない場合）。単純な例では、各トラフィッククラス（ＴＣ）から各仮想チャネル（ＶＣ）に１対１、全てのトラフィッククラス（ＴＣ）を仮想チャネルＶＣ０にマッピングする、といったことが考えられる。ＴＣ０−ＶＣ０のマッピングは、必須／固定で、それ以外のマッピングは上位のソフトウェアから制御される。ソフトウェアはトラフィッククラス（ＴＣ）を利用することで、トランザクションの優先度を制御することが可能となる。
【００４６】
ｄ．フロー制御
受信バッファのオーバーフローを避け、伝送順序を確立するためにフロー制御（ＦＣ：Flow Control）が行われる。フロー制御は、リンク間のポイントツーポイントで行われ、エンドツーエンドではない。従って、フロー制御により最終的な相手（コンプリータ）にパケットが届いたことを確認することはできない。
【００４７】
PCI Expressのフロー制御は、クレジット・ベースで行われる（データ転送を始める前に、受け取り側のバッファの空き状況を確認し、オーバーフロー、アンダフローが発生しないメカニズム）。即ち、受信側はリンク初期化時にバッファ容量（クレジット値）を送信側に通知し、送信側はクレジット値と送信するパケットの長さとを比較し、一定の残りがある場合のみパケットを送信する。このクレジットには6種類ある。
【００４８】
フロー制御の情報交換はデータリンク層のデータリンクレイヤパケット（ＤＬＬＰ）を使用して行われる。フロー制御はトランザクションレイヤパケット（ＴＬＰ）のみに適用され、データリンクレイヤパケット（ＤＬＬＰ）には適用されない（ＤＬＬＰは常時送受信可能）。
【００４９】
Ｂ．データリンク層１５４
データリンク層１５４の主な役割は、前述したように、リンク上の２つのコンポーネント間での信頼性の高いトランザクションレイヤパケット（ＴＬＰ）交換機能を提供することである。
【００５０】
ａ．トランザクションレイヤパケット（ＴＬＰ）の扱い
トランザクション層１５３から受け取ったトランザクションレイヤパケット（ＴＬＰ）に対しては、先頭に２バイトのシーケンス番号、末尾に４バイトのリンクＣＲＣ（ＬＣＲＣ）を付加して、物理層１５５に渡す（図９参照）。トランザクションレイヤパケット（ＴＬＰ）は、リトライバッファに保管され、相手から受信確認（ＡＣＫ）が届くまで再送される。トランザクションレイヤパケット（ＴＬＰ）の送信に失敗が続いた場合は、リンク異常であると判断して物理層１５５に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合、データリンク層１５４の状態はインアクティブに遷移する。
【００５１】
物理層１５５から受け取ったトランザクションレイヤパケット（ＴＬＰ）は、シーケンス番号とリンクＣＲＣ（ＬＣＲＣ）が検査され、正常であればトランザクション層１５３に渡され、エラーがあった場合は再送を要求する。
【００５２】
ｂ．データリンクレイヤパケット（ＤＬＬＰ）
データリンク層１５４が生成するパケットは、データリンクレイヤパケット（ＤＬＬＰ）と呼ばれ、データリンク層１５４間でやり取りされる。データリンクレイヤパケット（ＤＬＬＰ）には、
・Ack／Nak：ＴＬＰの受信確認、リトライ（再送）
・InitFC1／InitFC2／UpdateFC：フロー制御の初期化とアップデート
・電源管理のためのＤＬＬＰ
なる種類がある。
【００５３】
図１２に示すように、データリンクレイヤパケット（ＤＬＬＰ）の長さは６バイトで、種類を示すＤＬＬＰタイプ（１バイト）、ＤＬＬＰの種類で固有の情報（３バイト）、ＣＲＣ（２バイト）から構成される。
【００５４】
Ｃ．物理層−論理サブブロック１５６
図８中に示す物理層１５５の論理サブブロック１５６での主な役割は、データリンク層１５４から受け取ったパケットを電気サブブロック１５７で送信できる形式に変換することである。また、物理層１５５を制御／管理する機能も有する。
【００５５】
ａ．データ符号化とパラレル−シリアル変換
PCI Expressは、連続した“０”や“１”が続かないように（長い期間、クロス・ポイントが存在しない状態が続かないようにするため）、データ符号化に８Ｂ／１０Ｂ変換を用いる。変換されたデータは、図１３中に示すように、シリアル変換され、ＬＳＢからレーン上に送信される。ここに、レーンが複数ある場合は（図１３はｘ４リンクの場合を例示している）、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレルバスのようにみえるが、レーン毎に独立した転送を行うので、パラレルバスで問題となるスキューが大幅に緩和される。
【００５６】
ｂ．電源管理とリンクステート
リンクの消費電力を低く抑えるために、図１４に示すように、Ｌ０／Ｌ０ｓ／Ｌ１／Ｌ２というリンクステートが定義されている。
【００５７】
Ｌ０が通常モードで、Ｌ０ｓからＬ２へと低消費電力となるが、Ｌ０への復帰にも時間がかかるようになる。図１５に示すように、ソフトウェアによる電源管理に加えて、アクティブステート電源管理を積極的に行うことにより、消費電力を極力小さくすることが可能となる。
【００５８】
Ｄ．物理層−電気サブブロック１５７
物理層１５５の電気サブブロック１５７での主な役割は、論理サブブロック１５６でシリアル化されたデータをレーン上に送信することと、レーン上のデータを受信して論理サブブロック１５６に渡すことである。
【００５９】
ａ．ＡＣカップリング
リンクの送信側では、ＡＣカップリング用のコンデンサが実装される。これにより、送信側と受信側のＤＣコモンモード電圧が同一である必要がなくなる。このため、送信側と受信側で異なる設計、半導体プロセス、電源電圧を使用することが可能となる。
【００６０】
ｂ．デエンファシス
PCI Expressでは、前述したように、８Ｂ／１０Ｂエンコーディングによってできるだけ連続した“０”や“１”が続かないように処理されるが、連続した“０”や“１”が続くこともある（最大５回）。この場合、送信側はデエンファシス転送を行わなければならないことが規定されている。同一極性のビットが連続する場合は、２つ目のビットからは差動電圧レベル（振幅）を３．５±０．５ｄＢ落とすことで、受信側で受け取る信号のノイズ・マージンを稼ぐ必要がある。これを、デエンファシスという。伝送路の周波数依存性減衰のため、変化するビットの場合は高周波成分が多く、減衰により受信側の波形が小さくなるが、変化しないビットの場合は高周波成分が少なく、相対的に受信側の波形が大きくなる。このため、受信側での波形を一定とするためにデエンファシスを行う。
【００６１】
［デジタル複写機］
次に、本実施形態のデジタル複写機について説明する。
【００６２】
図１６は、デジタル複写機の概略構成を説明する説明図である。図１６に示すように、デジタル複写機１は、本発明の電子機器を実施するもので、原稿の画像を読み取るスキャナ２と、この読み取った原稿の画像データに基づいて用紙などの媒体の上に画像形成を行うプロッタ３と、デジタル複写機１を集中的に制御するコントローラ４とを備えている。プロッタ３の印刷方式は、電子写真方式のほか、インクジェット方式、昇華型熱転写方式、銀塩写真方式、直接感熱記録方式、溶融型熱転写方式など、様々な方式を用いることができる。
【００６３】
デジタル複写機１においては、内部で通信を行なうデータ転送システムとして、PCI-express規格のデータ転送システムを用いている。この場合、コントローラ４がRoot Complexとなり、スキャナ２、プロッタ３がEnd Pointとなる。
【００６４】
図１７は、この場合の、PCI-express規格のデータ転送システム１１のブロック図である。このデータ転送システム１１は、データ転送経路がツリー構造をなし、当該ツリー構造のノード間はPoint to Pointで接続され、対向する当該ノード間の通信は当該各ノードに設けられ互いに対向するポート１５間で設定の整合性をとって行うデータ転送システムである。そして、ツリー構造の最上位の通信デバイスにはRoot Complex１２が位置し、その下位のノードの通信デバイスにはSwitch１３が位置し、最下位の通信デバイスにはEnd Point１４が位置する。符号１５は各通信デバイスのポートである。また、符号１６は、Root Complex１２のＣＰＵである。
【００６５】
以上のような構成のデータ転送システム１１では、ツリー構造における経路探索を行なうことができる。以下では、この経路探索について説明する。
【００６６】
すなわち、Root Complex１２は、データ転送システム１１の初期化の際、定期的に、あるいは、ＣＰＵ１６のリクエストがあった際など、所定のタイミングで、所定のデータであるSearch Message２１をツリー構造の下位に向けてブロードキャストする。
【００６７】
このSearch Message２１は、これを受信したポート１５において、Search Message２１であることを確認すると、そのポート１５に関する所定情報、具体的にはデバイス番号２２などを当該Search Message２１のデータペイロード部分に付加して、ツリー構造の下位に向けて送信する。図１７においては、ポート１５を経由するごとに、Search Message２１に付加されるデバイス番号２２が増えていくのが示されている。
【００６８】
そして、ツリー構造の最下位にあるEnd Point１４においてSearch Message２１を受信すると、End Point１４はツリー構造の最上位にあるRoot Complex１２に向けて所定のデータであるReply Message２３を返信する。このReply Message２３には、前述のようにEnd Point１４が受信したSearch Message２１に付加されている各デバイス番号２２が添付される。
【００６９】
これにより、Root Complex１２においては、別途ソフトウェア手段によらなくても、各ポート１５のデバイス番号２２など、所定の情報を簡易な手段で収集することができる。
【００７０】
次に、以上のような処理において、ツリー構造の各部が実行する処理について詳細に説明する。
【００７１】
図１８は、Root Complex１２で実行する処理のフローチャートである。まず、Root Complex１２は、前述のSearch Message２１を生成してブロードキャストによりツリー構造の下位に向けて送信する（ステップＳ１）。そして、End Point１４からのReply Message２３の返信を待ち（ステップＳ２）、この返信があったら（ステップＳ２のＹ）、Reply Message２３に含まれているデバイス番号２２を所定のメモリに保存し（ステップＳ３）、ＣＰＵ１６がいつでも参照できるようにする。
【００７２】
図１９は、Switch１３の上流側ポート１５が実行する処理のフローチャートである。このポート１５は、Root Complex１２からSearch Message２１を受信すると（ステップＳ１１のＹ）、このSearch Message２１に含まれるデバイス番号２２に自ポート１５のデバイス番号２２も追加した新たなSearch Message２１を作成し（ステップＳ１２）、ツリー構造で下位に位置するすべてのポート１５に送信する（ステップＳ１３）。
【００７３】
図２０は、Switch１３の下流側ポート１５が実行する処理のフローチャートである。このポート１５は、自ポート１５に通信デバイスが接続されているか否かを判断し（ステップＳ２１）、接続されていれば（ステップＳ２１のＹ）、ステップＳ１２と同様に新たなSearch Message２１を生成し（ステップＳ２２）、対向するポート１５に送信する（ステップＳ２３）。
【００７４】
図２１は、End Point１４での処理を説明するフローチャートである。End Point１４では、Search Message２１を受信すると（ステップＳ３１のＹ）、Search Message２１に含まれるデバイス番号２２を含むReply Message２３を生成し（ステップＳ３２）、これをRoot Complex１２に返信する（ステップＳ３３）。
【００７５】
次に、データ転送システム１１で実行するパラメータ探索について説明する。
【００７６】
すなわち、図２２に示すように、Root Complex１２は、データ転送システム１１の起動時など、ＣＰＵ１６のリクエストがあった際に、所定のデータであるSearch Message２１を特定のEnd Point１４宛に送信する。
【００７７】
このSearch Message２１は、これを受信したポート１５において、Search Message２１であることを確認すると、自ポート１５の通信パラメータ（の最大値又は最小値（最大ペイロードサイズ、バーチャルチャンネル数など））２４がSearch Message２１に含まれる条件に合致するか否かを判断する。そして、合致するときは、その通信パラメータ（の最大値又は最小値）２４を当該Search Message２１のデータペイロード部分にすでに付加されている通信パラメータ２４´と交換して格納し、目的のEnd Point１４に向けて送信する。
【００７８】
そして、ツリー構造の最下位にあるEnd Point１４においてSearch Message２１を受信すると、End Point１４はツリー構造の最上位にあるRoot Complex１２に向けて所定のデータであるReply Message２３を返信する。このReply Message２３には、前述のようにEnd Point１４が受信したSearch Message２１に付加されている通信パラメータ２４が添付される。
【００７９】
これにより、Root Complex１２においては、別途ソフトウェア手段によらなくても、必要な通信パラメータ２４を簡易な手段で収集することができる。
【００８０】
次に、以上のような処理において、ツリー構造の各部が実行する処理について詳細に説明する。
【００８１】
図２３は、Root Complex１２で実行する処理のフローチャートである。まず、Root Complex１２は、前述のSearch Message２１を生成して目的のEnd Point１４に向けて送信する（ステップＳ４１）。そして、End Point１４からのReply Message２３の返信を待ち（ステップＳ４２）、この返信があったら（ステップＳ４２のＹ）、Reply Message２３に含まれている通信パラメータ２４を所定のメモリに保存し（ステップＳ４３）、ＣＰＵ１６がいつでも参照できるようにする。
【００８２】
図２４は、Switch１３のポート１５が実行する処理のフローチャートである。Search Message２１を受信すると（ステップＳ５１のＹ）、Search Message２１に含まれる条件に自ポート１５の通信パラメータ２４が適合しているか否かを判断し（ステップＳ５２）、この条件を適合しているときには（ステップＳ５２のＹ）、自ポート１５の通信パラメータ２４をデータペイロード部分にすでに付加されている通信パラメータ２４´の代わりに格納した新たなSearch Message２１を生成して（ステップＳ５３）、ツリー構造の下流側のポート１５へ送信し（ステップＳ５４）、そうでないときは（ステップＳ５２のＮ）、受信したSearch Message２１をそのままツリー構造の下流側のポート１５へ送信する（ステップＳ５４）。
【００８３】
図２５は、End Point１４のポート１５が実行する処理のフローチャートである。End Point１４では、Search Message２１を受信すると（ステップＳ６１のＹ）、Search Message２１に含まれる通信パラメータ２４を含むReply Message２３を生成し（ステップＳ６２）、これをRoot Complex１２に返信する（ステップＳ６３）。この際、ツリー構造中の各ポート１５において条件に合致する通信パラメータ２４が存在しなかったときは、元々Search Message２１に含まれていた通信パラメータ２４´を送信する。
【図面の簡単な説明】
【００８４】
【図１】既存PCIシステムの構成例を示すブロック図である。
【図２】PCI Expressシステムの構成例を示すブロック図である。
【図３】デスクトップ／モバイルでのPCI Expressプラットホームの構成例を示すブロック図である。
【図４】ｘ４の場合の物理層の構造例を示す模式図である。
【図５】デバイス間のレーン接続例を示す模式図である。
【図６】スイッチの論理的構造例を示すブロック図である。
【図７】（ａ）は既存のPCIのアーキテクチャを示すブロック図、（ｂ）はPCI Expressのアーキテクチャを示すブロック図である。
【図８】PCI Expressの階層構造を示すブロック図である。
【図９】トランザクションレイヤパケットのフォーマット例を示す説明図である。
【図１０】PCI Expressのコンフィグレーション空間を示す説明図である。
【図１１】仮想チャネルの概念を説明するための模式図である。
【図１２】データリンクレイヤパケットのフォーマット例を示す説明図である。
【図１３】ｘ４リンクでのバイトストライピング例を示す模式図である。
【図１４】Ｌ０／Ｌ０ｓ／Ｌ１／Ｌ２というリンクステートの定義について説明する説明図である。
【図１５】アクティブステート電源管理の制御例を示すタイムチャートである。
【図１６】本発明の一実施形態であるデジタル複写機の概略構成のブロック図である。
【図１７】経路探索を行なう場合について説明するデータ転送システムのブロック図である。
【図１８】経路探索を行なう場合にRoot Complexで実行する処理のフローチャートである。
【図１９】経路探索を行なう場合にSwitchの上流側ポートが実行する処理のフローチャートである。
【図２０】経路探索を行なう場合にSwitchの下流側ポートが実行する処理のフローチャートである。
【図２１】経路探索を行なう場合にEnd Pointでの処理を説明するフローチャートである。
【図２２】パラメータ検索を行なう場合について説明するデータ転送システムのブロック図である。
【図２３】パラメータ検索を行なう場合にRoot Complexで実行する処理のフローチャートである。
【図２４】パラメータ検索を行なう場合にSwitchのポートが実行する処理のフローチャートである。
【図２５】パラメータ検索を行なう場合にEnd Pointでの処理を説明するフローチャートである。
【符号の説明】
【００８５】
１  電子機器
１１  データ転送システム
１２  Root Complex
１３  Switch
１４  End Point
１５  ポート
【図１】
2006211532.tif 000003
【図２】
2006211532.tif 000004
【図３】
2006211532.tif 000005
【図４】
2006211532.tif 000006
【図５】
2006211532.tif 000007
【図６】
2006211532.tif 000008
【図７】
2006211532.tif 000009
【図８】
2006211532.tif 000010
【図９】
2006211532.tif 000011
【図１０】
2006211532.tif 000012
【図１１】
2006211532.tif 000013
【図１２】
2006211532.tif 000014
【図１３】
2006211532.tif 000015
【図１４】
2006211532.tif 000016
【図１５】
2006211532.tif 000017
【図１６】
2006211532.tif 000018
【図１７】
2006211532.tif 000019
【図１８】
2006211532.tif 000020
【図１９】
2006211532.tif 000021
【図２０】
2006211532.tif 000022
【図２１】
2006211532.tif 000023
【図２２】
2006211532.tif 000024
【図２３】
2006211532.tif 000025
【図２４】
2006211532.tif 000026
【図２５】
2006211532.tif 000027