(57)【要約】【課題】  仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段を有するデータ転送装置において、自由度が高く高精度なデータ転送レート制御を可能にする。【解決手段】  規格に従うアービトレーション手段３６による優先度調停の機能に加えて、検出された仮想チャネル毎のパケット発行頻度とペイロードサイズとの積算値の仮想チャネル間の比率が、外部から指定された仮想チャネル毎のデータ転送レートの所望の優先度設定値の仮想チャネル間の比率に最も近づく値となるように、パケットデータのペイロードサイズを仮想チャネル毎に決定するペイロードサイズ決定手段３８を備えることで、アービトレーション手段３６による優先度の調停のみでデータ転送レートを調整する場合に比べ、より自由度が高い状態で、高精度なデータ転送レートの制御が可能となる。【選択図】    図１７
2006099180.tif 000002
【特許請求の範囲】
【請求項１】
シリアルバスを仮想チャネル単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段と、前記仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段とを有するデータ転送装置において、
前記仮想チャネル毎のパケット発行頻度を検出する手段と、
検出された前記仮想チャネル毎のパケット発行頻度と前記仮想チャネル毎に発行されるパケットデータのペイロードサイズとの積算値の前記仮想チャネル間の比率が、外部より指定される前記仮想チャネル毎のデータ転送レートの優先度設定値の前記仮想チャネル間の比率に最も近づく値となるように、前記仮想チャネル毎にパケットデータのペイロードサイズを決定するペイロードサイズ決定手段と、
前記仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、
を備えることを特徴とするデータ転送装置。
【請求項２】
シリアルバスを仮想チャネル単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段と、前記仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段とを有するデータ転送装置において、
前記仮想チャネル毎のパケット発行頻度を検出する手段と、
前記仮想チャネル毎に発行されるパケットデータのペイロードサイズを検出する手段と、
検出された前記仮想チャネル毎のパケット発行頻度、検出された前記仮想チャネル毎のパケットデータのペイロードサイズに基づくフィードバック制御により、前記仮想チャネル間のデータ転送レートの比率が外部より指定される前記仮想チャネル毎のデータ転送レートの優先度設定値の前記仮想チャネル間の比率に近づくように、前記仮想チャネル毎にパケットデータの修正されたペイロードサイズを決定するペイロードサイズ決定手段と、
前記仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、
を備えることを特徴とするデータ転送装置。
【請求項３】
前記ペイロードサイズ決定手段は、
検出された前記仮想チャネル毎のパケット発行頻度と検出された前記仮想チャネル毎のパケットデータのペイロードサイズとの積算処理により前記仮想チャネル間のデータ転送レートの比率を算出する手段と、
算出された前記仮想チャネル間のデータ転送レートの比率を外部より指定される前記仮想チャネル毎のデータ転送レートの優先度設定値の前記仮想チャネル間の比率と比較して前記仮想チャネル毎の優先度の高低を判定する手段と、
判定された前記仮想チャネル毎の優先度の高低の結果に応じて前記各仮想チャネル間のパケットデータのペイロードサイズの大小関係を相対的に修正して前記仮想チャネル毎のペイロードサイズを決定する手段と、
を有することを特徴とする請求項２記載のデータ転送装置。
【請求項４】
前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する、ことを特徴とする請求項３記載のデータ転送装置。
【請求項５】
前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する、ことを特徴とする請求項３記載のデータ転送装置。
【請求項６】
前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する、ことを特徴とする請求項３記載のデータ転送装置。
【請求項７】
前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する、ことを特徴とする請求項３ないし６の何れか一記載のデータ転送装置。
【請求項８】
前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する、ことを特徴とする請求項３ないし６の何れか一記載のデータ転送装置。
【請求項９】
前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する、ことを特徴とする請求項３ないし６の何れか一記載のデータ転送装置。
【請求項１０】
前記シリアルバスは、PCI Express規格のシリアルバスである、ことを特徴とする請求項１ないし９の何れか一記載のデータ転送装置。
【請求項１１】
前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムは、前記PCI Express規格のラウンドロビン（Round Robin）、又は、ウエイテッドラウンドロビン（Weighted Round Robin）である、ことを特徴とする請求項１０記載のデータ転送装置。
【請求項１２】
前記パケット発行頻度を検出する手段は、前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムとして、前記PCI Express規格のラウンドロビン（Round Robin）、又は、ウエイテッドラウンドロビン（Weighted Round Robin）の何れが用いられているかを検出する手段である、ことを特徴とする請求項１１記載のデータ転送装置。
【請求項１３】
前記パケット発行頻度を検出する手段は、前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムとして、前記PCI Express規格のウエイテッドラウンドロビン（Weighted Round Robin）が用いられていることを検出した場合には、前記PCI Express規格により規定されている仮想チャネル毎のアービトレーションテーブルを参照して前記仮想チャネル毎のパケット発行頻度を検出する、ことを特徴とする請求項１２記載のデータ転送装置。
【請求項１４】
パケットデータの転送方向が同方向で必要とするデータ転送レートの異なる複数のデバイスを有するエンジンと、このエンジンを制御駆動するコントローラと、これらのコントローラと前記エンジン中の前記デバイスとの間を１本のリンクによるシリアルバスで接続する請求項１ないし１３の何れか一記載のシリアルデータ転送装置によるインタフェースと、を備えることを特徴とする画像形成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルバスを用いるデータ転送装置及び画像形成システムに関する。
【背景技術】
【０００２】
シリアルバスを仮想チャネル単位で時分割に使い分けることで複数トラフィックのパケットデータを伝送する仮想チャネル機能と、仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション機能とを有するデータ転送装置がある。このような仕組みのデータ転送装置によれば、データ転送の優先度が異なる複数トラフィックのパケットデータをシリアルバスを用いて同時転送させたい場合に、転送レートの調整が可能となる。
【０００３】
一例として、ＰＣＩバス方式の後継規格に当るPCI Express（登録商標）なるシリアルインタフェース（例えば、非特許文献１参照）の仮想チャネル（Virtual Channel）のアービトレーションのアルゴリズムでは、ラウンドロビン（Round Robin）方式、ウエイテッドラウンドロビン（Weighted Round robin）方式、ストリクト（Strict）方式があり、シリアルバス上に転送するパケットを、トランザクション単位で優先度の調整が可能である。なお、これらの方式については、後述するが、ラウンドロビン方式は各仮想チャネルＶＣ毎に均等な頻度でパケットデータを発行させる方式、ウエイテッドラウンドロビン方式は各仮想チャネルＶＣ毎に任意に指定可能なテーブルに従った重み付けされた頻度でパケットデータを発行させる方式、ストリクト方式は各仮想チャネルＶＣ毎に固定の優先順でパケットデータを発行させる方式である。
【０００４】
【非特許文献１】“PCI Express 規格の概要”Interface誌、July’2003 里見尚志
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、PCI Express規格の仮想チャネルＶＣのアービトレーション機能に従い、仮想チャネルＶＣ毎のパケットデータの発行頻度の優先度を指定しただけでは優先度制御の自由度が低く、複数トラフィックのパケットデータに対して高精度にデータ転送レートを制御することは難しい。
【０００６】
本発明の目的は、仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段を有するデータ転送装置において、自由度が高く高精度なデータ転送レート制御を可能にすることである。
【課題を解決するための手段】
【０００７】
請求項１記載の発明は、シリアルバスを仮想チャネル単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段と、前記仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段とを有するデータ転送装置において、前記仮想チャネル毎のパケット発行頻度を検出する手段と、検出された前記仮想チャネル毎のパケット発行頻度と前記仮想チャネル毎に発行されるパケットデータのペイロードサイズとの積算値の前記仮想チャネル間の比率が、外部より指定される前記仮想チャネル毎のデータ転送レートの優先度設定値の前記仮想チャネル間の比率に最も近づく値となるように、前記仮想チャネル毎にパケットデータのペイロードサイズを決定するペイロードサイズ決定手段と、前記仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、を備える。
【０００８】
請求項２記載の発明は、シリアルバスを仮想チャネル単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段と、前記仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段とを有するデータ転送装置において、前記仮想チャネル毎のパケット発行頻度を検出する手段と、前記仮想チャネル毎に発行されるパケットデータのペイロードサイズを検出する手段と、検出された前記仮想チャネル毎のパケット発行頻度、検出された前記仮想チャネル毎のパケットデータのペイロードサイズに基づくフィードバック制御により、前記仮想チャネル間のデータ転送レートの比率が外部より指定される前記仮想チャネル毎のデータ転送レートの優先度設定値の前記仮想チャネル間の比率に近づくように、前記仮想チャネル毎にパケットデータの修正されたペイロードサイズを決定するペイロードサイズ決定手段と、前記仮想チャネル毎に決定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、を備える。
【０００９】
請求項３記載の発明は、請求項２記載のデータ転送装置において、前記ペイロードサイズ決定手段は、検出された前記仮想チャネル毎のパケット発行頻度と検出された前記仮想チャネル毎のパケットデータのペイロードサイズとの積算処理により前記仮想チャネル間のデータ転送レートの比率を算出する手段と、算出された前記仮想チャネル間のデータ転送レートの比率を外部より指定される前記仮想チャネル毎のデータ転送レートの優先度設定値の前記仮想チャネル間の比率と比較して前記仮想チャネル毎の優先度の高低を判定する手段と、判定された前記仮想チャネル毎の優先度の高低の結果に応じて前記各仮想チャネル間のパケットデータのペイロードサイズの大小関係を相対的に修正して前記仮想チャネル毎のペイロードサイズを決定する手段と、を有する。
【００１０】
請求項４記載の発明は、請求項３記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する。
【００１１】
請求項５記載の発明は、請求項３記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。
【００１２】
請求項６記載の発明は、請求項３記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の低い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。
【００１３】
請求項７記載の発明は、請求項３ないし６の何れか一記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。
【００１４】
請求項８記載の発明は、請求項３ないし６の何れか一記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する。
【００１５】
請求項９記載の発明は、請求項３ないし６の何れか一記載のデータ転送装置において、前記決定する手段は、前記判定された前記仮想チャネル毎の優先度の高低の結果、前記優先度設定値よりも優先度の高い仮想チャネルが存在する場合には、当該仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも小さくなり、当該仮想チャネル以外の他の仮想チャネルが発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正する。
【００１６】
請求項１０記載の発明は、請求項１ないし９の何れか一記載のデータ転送装置において、前記シリアルバスは、PCI Express規格のシリアルバスである。
【００１７】
請求項１１記載の発明は、請求項１０記載のデータ転送装置において、前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムは、前記PCI Express規格のラウンドロビン（Round Robin）、又は、ウエイテッドラウンドロビン（Weighted Round Robin）である。
【００１８】
請求項１２記載の発明は、請求項１１記載のデータ転送装置において、前記パケット発行頻度を検出する手段は、前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムとして、前記PCI Express規格のラウンドロビン（Round Robin）、又は、ウエイテッドラウンドロビン（Weighted Round Robin）の何れが用いられているかを検出する手段である。
【００１９】
請求項１３記載の発明は、請求項１２記載のデータ転送装置において、前記パケット発行頻度を検出する手段は、前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムとして、前記PCI Express規格のウエイテッドラウンドロビン（Weighted Round Robin）が用いられていることを検出した場合には、前記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のフロー制御は、クレジット・ベースで行われる（データ転送を始める前に、受け取り側のバッファの空き状況を確認し、オーバフロー、アンダフローが発生しないメカニズム）。即ち、受信側はリンク初期化時にバッファ容量（クレジット値）を送信側に通知し、送信側はクレジット値と送信するパケットの長さとを比較し、一定の残りがある場合のみパケットを送信する。このクレジットには６種類ある。
【００５５】
フロー制御の情報交換はデータリンク層のデータリンクレイヤパケット（ＤＬＬＰ）を使用して行われる。フロー制御はトランザクションレイヤパケット（ＴＬＰ）のみに適用され、データリンクレイヤパケット（ＤＬＬＰ）には適用されない（ＤＬＬＰは常時送受信可能）。
【００５６】
Ｂ．データリンク層１５４
データリンク層１５４の主な役割は、前述したように、リンク上の２つのコンポーネント間での信頼性の高いトランザクションレイヤパケット（ＴＬＰ）交換機能を提供することである。
【００５７】
ａ．トランザクションレイヤパケット（ＴＬＰ）の扱い
トランザクション層１５３から受け取ったトランザクションレイヤパケット（ＴＬＰ）に対しては、先頭に２バイトのシーケンス番号、末尾に４バイトのリンクＣＲＣ（ＬＣＲＣ）を付加して、物理層１５５に渡す（図９参照）。トランザクションレイヤパケット（ＴＬＰ）は、リトライバッファに保管され、相手から受信確認（ＡＣＫ）が届くまで再送される。トランザクションレイヤパケット（ＴＬＰ）の送信に失敗が続いた場合は、リンク異常であると判断して物理層１５５に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合、データリンク層１５４の状態はインアクティブに遷移する。
【００５８】
物理層１５５から受け取ったトランザクションレイヤパケット（ＴＬＰ）は、シーケンス番号とリンクＣＲＣ（ＬＣＲＣ）が検査され、正常であればトランザクション層１５３に渡され、エラーがあった場合は再送を要求する。
【００５９】
ｂ．データリンクレイヤパケット（ＤＬＬＰ）
データリンク層１５４が生成するパケットは、データリンクレイヤパケット（ＤＬＬＰ）と呼ばれ、データリンク層１５４間でやり取りされる。データリンクレイヤパケット（ＤＬＬＰ）には、
・Ack／Nak：ＴＬＰの受信確認、リトライ（再送）
・InitFC1／InitFC2／UpdateFC：フロー制御の初期化とアップデート
・電源管理のためのＤＬＬＰ
なる種類がある。
【００６０】
図１２に示すように、データリンクレイヤパケット（ＤＬＬＰ）の長さは６バイトで、種類を示すＤＬＬＰタイプ（１バイト）、ＤＬＬＰの種類で固有の情報（３バイト）、ＣＲＣ（２バイト）から構成される。
【００６１】
Ｃ．物理層−論理サブブロック１５６
図８中に示す物理層１５５の論理サブブロック１５６での主な役割は、データリンク層１５４から受け取ったパケットを電気サブブロック１５７で送信できる形式に変換することである。また、物理層１５５を制御／管理する機能も有する。
【００６２】
ａ．データ符号化とパラレル−シリアル変換
PCI Expressは、連続した“０”や“１”が続かないように（長い期間、クロス・ポイントが存在しない状態が続かないようにするため）、データ符号化に８Ｂ／１０Ｂ変換を用いる。変換されたデータは、図１３中に示すように、シリアル変換され、ＬＳＢからレーン上に送信される。ここに、レーンが複数ある場合は（図１３はｘ４リンクの場合を例示している）、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレル・バスのようにみえるが、レーン毎に独立した転送を行うので、パラレル・バスで問題となるスキューが大幅に緩和される。
【００６３】
ｂ．電源管理とリンクステート
リンクの消費電力を低く抑えるために、表１に示すように、Ｌ０／Ｌ０ｓ／Ｌ１／Ｌ２というリンクステートが定義されている。
【００６４】
【表１】
2006099180.tif 000003
【００６５】
Ｌ０が通常モードで、Ｌ０ｓからＬ２へと低消費電力となるが、Ｌ０への復帰にも時間がかかるようになる。図１４に示すように、ソフトウェアによる電源管理に加えて、アクティブステート電源管理を積極的に行うことにより、消費電力を極力小さくすることが可能となる。
【００６６】
Ｄ．物理層−電気サブブロック１５７
物理層１５５の電気サブブロック１５７での主な役割は、論理サブブロック１５６でシリアル化されたデータをレーン上に送信することと、レーン上のデータを受信して論理サブブロック１５６に渡すことである。
【００６７】
ａ．ＡＣカップリング
リンクの送信側では、ＡＣカップリング用のコンデンサが実装される。これにより、送信側と受信側のＤＣコモンモード電圧が同一である必要がなくなる。このため、送信側と受信側で異なる設計、半導体プロセス、電源電圧を使用することが可能となる。
【００６８】
ｂ．デエンファシス
PCI Expressでは、前述したように、８Ｂ／１０Ｂエンコーディングによってできるだけ連続した“０”や“１”が続かないように処理されるが、連続した“０”や“１”が続くこともある（最大５回）。この場合、送信側はデエンファシス転送を行わなければならないことが規定されている。同一極性のビットが連続する場合は、２つ目のビットからは差動電圧レベル（振幅）を３．５±０．５ｄＢ落とすことで、受信側で受け取る信号のノイズ・マージンを稼ぐ必要がある。これを、デエンファシスという。伝送路の周波数依存性減衰のため、変化するビットの場合は高周波成分が多く、減衰により受信側の波形が小さくなるが、変化しないビットの場合は高周波成分が少なく、相対的に受信側の波形が大きくなる。このため、受信側での波形を一定とするためにデエンファシスを行う。
【００６９】
［画像形成システム］
本実施の形態のデータ転送装置は、プリンタのような画像出力装置やスキャナのような画像入力装置、さらには、これらを併せ持つデジタル複写機、ＭＦＰのような画像形成装置、その他、各種機器・デバイスの適宜組合せ等からなる画像形成システムにおいて高速シリアルインタフェースとして利用されるものであり、前述したようなPCI Express規格に準拠するものである。
【００７０】
本実施の形態のデータ転送装置が適用される画像形成システムの一例を図１５を参照して説明する。図１５は、本実施の形態のデータ転送装置が適用される画像形成システムの各機器・デバイス等の接続の概要を示すブロック図である。当該画像形成システム１はシリアルデータ転送にPCI Express規格のバスシステムを用いている。即ち、画像形成システム１の各部を集中的に制御するＣＰＵ１１と、ＣＰＵ１１の作業エリアとなるシステムメモリ１２がPCI Express規格のルートコンプレックス（Root Complex）１３に接続されている。また、ルートコンプレックス１３とPCI Express規格のスイッチ（或いはスイッチ網）１４とがPCI Express規格の汎用バス１５を介して接続されている。PCI Express規格のスイッチ（或いはスイッチ網）１４には、PCI Express規格のエンドポイント（End Point）となる各種機器・デバイスが接続されている。即ち、画像データなどを記憶するハードディスク（ＨＤＤ）ユニット２１、画像メモリユニット２２、及び、メモリユニット２３、各種の画像処理を行なう画像処理ユニット２４、外部のネットワークなどと通信を行なう高速ネットワーク２５、画像入力エンジンとしてのスキャナ２６、画像出力エンジンとしてのプロッタ２７、画像入力エンジン、画像出力エンジンを併せ持つ他の複合機２８などである。
【００７１】
［アービトレーションに関する規格］
このような画像形成システムでは、各々の機器・デバイスに必要とされるデータ転送レートが異なるため、精度の高いデータ転送レート調整が必要となる。このための規格として、前述したようなシリアルバスを仮想チャネルＶＣ単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段を利用し、仮想チャネルＶＣ毎にパケットデータを発行する優先度を調停する機能（アービトレーション手段）がある。
【００７２】
図１６は、PCI Express規格のアービトレーション機能に従い構成された従来のシリアル送信回路（データ転送装置）の構成例を示す概略ブロック図である。図示例は、最大８チャネルの仮想チャネルＶＣのうち、４チャネル構成に規定された例を示している。シリアル送信回路３１は、デバイスから各チャネル毎のデータ１〜４を受け取り、パケットデータ１〜４を生成するパケット生成回路３２と、生成されたパケットデータ１〜４を仮想チャネルＶＣ毎に一時蓄える仮想チャネルバッファ（仮想チャネル手段）３３ａ〜３３ｄと、仮想チャネルバッファ３３ａ〜３３ｄに蓄えられたパケットデータ１〜４を仮想チャネルＶＣ毎に予め規定されている優先度に従い調停してシリアル出力バッファ３４を介して信号出力回路３５に出力するアービトレーション回路（アービトレーション手段）３６とにより構成されている。
【００７３】
図示例は、各仮想チャネルＶＣ毎に均等な頻度でパケットデータを発行させるアービトレーションのアルゴリズムによる場合を例示しており、上記アービトレーションに従い、シリアル送信回路３１の信号出力回路３５からシリアルバス上にはパケットデータ１〜４が図示の如く均等に出力される。
【００７４】
ところが、前述したように、PCI Express規格の仮想チャネルＶＣのアービトレーションのように、仮想チャネルＶＣ毎のパケットデータの発行頻度の優先度を指定しただけでは優先度制御の自由度が低く、複数トラフィックのパケットデータに対して高精度にデータ転送レートを制御することは難しい。
【００７５】
［データ転送装置］
そこで、本実施の形態のシリアル送信回路（データ転送装置）では、仮想チャネルＶＣ毎に送信するパケットデータのペイロードサイズに着目し、発行するパケットデータのペイロードサイズを仮想チャネルＶＣ毎に任意に指定可能とし、仮想チャネルＶＣ毎に指定されたペイロードサイズのパケットデータを生成してアービトレーション回路３６に出力させるようにしたものである。
【００７６】
図１７は、本実施の形態のシリアル送信回路（データ転送装置）３７の構成例を示す概略ブロック図である。図１６に示した部分と同一部分は同一符号を用いて示し、説明も省略する。本実施の形態のシリアル送信回路３７では、各仮想チャネルＶＣ毎に送信するパケットデータのペイロードサイズを決定した大きさで指定するロジック構成のペイロードサイズ決定回路（ペイロードサイズ決定手段）３８が付加され、パケット生成回路３２がペイロードサイズ決定回路３８の決定により指定されたペイロードサイズに従い各仮想チャネルＶＣ毎のパケットデータを生成してアービトレーション回路３６に出力するパケット生成手段として設けられている。ここに、「ペイロードサイズ」とは、パケットデータ全体のサイズのうち、ヘッダ情報以外のデータ部分のサイズを意味する。また、アービトレーション回路３６に対しては、仮想チャネルＶＣ毎のパケット発行頻度を検出する手段（図示せず）が設けられており、検出した仮想チャネルＶＣ毎のパケット発行頻度に関する情報をペイロードサイズ決定回路３８に対して出力するように構成されている。
【００７７】
このパケット発行頻度を検出する手段は、本実施の形態のように、PCI Express規格を想定する場合、アービトレーション回路３６の仮想チャネルＶＣ毎のアルゴリズムとして、PCI Express規格のラウンドロビン（Round Robin）、ウエイテッドラウンドロビン（Weighted Round Robin）、又は、ストリクト（Strict）（詳細は後述する）の何れが用いられているかを検出する手段であり、特に、ウエイテッドラウンドロビン（ＷＲＲ）が用いられていることを検出した場合には、PCI Express規格により規定されている仮想チャネル毎のアービトレーションテーブル３９を参照して仮想チャネルＶＣ毎のパケット発行頻度を検出するものである。図１７に示す例は、発行頻度が均等割のラウンドロビン（ＲＲ）を想定しているため、アービトレーションテーブル３９中にはラウンドロビン（ＲＲ）による均等割のテーブル例を示している（即ち、各パケット１〜４が、１，２，３，４の順に均等割で発行されるデータ例１２３４，１２３４，…を示しているが、ウエイテッドラウンドロビン（ＷＲＲ）の場合であれば、１１１１，１２１２，１２１３，１２３４，…の如く設定される）。
【００７８】
また、ペイロードサイズ決定回路３８に対しては、仮想チャネルＶＣ毎のパケットデータのデータ転送レートの所望とする優先度設定値が外部の操作部等からの入力操作により適宜指定自在とされている。例えば、４チャネルの場合において、各々のパケットデータ１〜４の優先度設定値としては、データ１：データ２：データ３：データ４＝ｗ：ｘ：ｙ：ｚの如く比率で指定される。
【００７９】
そして、ペイロードサイズ決定回路３８においては、検出された仮想チャネルＶＣ毎のパケット発行頻度と仮想チャネル毎に発行されるパケットデータのペイロードサイズとの積算値の仮想チャネルＶＣ間の比率が、外部より指定される仮想チャネルＶＣ毎のデータ転送レートの優先度設定値の仮想チャネル間の比率ｗ：ｘ：ｙ：ｚに最も近づく値となるように、パケットデータのペイロードサイズを仮想チャネルＶＣ毎に決定する機能を有する。図示例では、仮想チャネルＶＣ毎のパケットデータ１〜４のペイロードサイズがペイロードサイズ決定回路３８によりその四角の大きさの違いで示すようにパケットデータ１＞２＞３＞４の如く決定されて指定されているものとする。なお、ペイロードサイズ決定回路３８等によるペイロードサイズ決定処理としては、ＣＰＵによるプログラム処理により実現するようにしてもよい。
【００８０】
図１８は、仮想チャネル毎のペイロードサイズ決定処理例を示す概略フローチャートである。ここでは、各々のパケットデータ１〜４の所望の優先度設定値の比率としては、外部からの操作により、データ１：データ２：データ３：データ４＝ｗ：ｘ：ｙ：ｚの如く指定されているものとする。また、仮想チャネルは４チャネルの例とし、各仮想チャネル１〜４のペイロードサイズとしてはＡ，Ｂ，Ｃ，Ｄの如く設定されているものとする。
【００８１】
まず、アービトレーション回路３６に対して設けられた検出手段により、仮想チャネルＶＣ毎のパケット発行頻度を検出する（ステップＳ１，Ｓ２）。この処理は、基本的には前述したようにアービトレーションのアルゴリズム方式の検出であるが、ウエイテッドラウンドロビン（ＷＲＲ）の場合には、仮想チャネル毎のアービトレーションテーブル３９を読み込み（Ｓ１）、当該テーブルから各仮想チャネルのパケット発行回数を演算することにより（Ｓ２）、仮想チャネルＶＣ毎のパケット発行頻度を検出することとなる。次いで、算出された発行回数（検出されたパケット発行頻度）とパケットデータのペイロードサイズとの積算値を仮想チャネル１〜４毎のデータ転送量Ｓｕｍ Ａ，Ｂ，Ｃ，Ｄとしたとき、各々
Ｓｕｍ Ａ＝発行回数１×Ａ
Ｓｕｍ Ｂ＝発行回数２×Ｂ
Ｓｕｍ Ｃ＝発行回数３×Ｃ
Ｓｕｍ Ｄ＝発行回数４×Ｄ
により算出し、これらのデータ転送量（積算値）の仮想チャネル間の比率Ｓｕｍ Ａ：Ｓｕｍ Ｂ：Ｓｕｍ Ｃ：Ｓｕｍ Ｄが、優先度設定値の仮想チャネル間の比率である１：データ２：データ３：データ４＝ｗ：ｘ：ｙ：ｚに一致、即ち、
ｗ：ｘ：ｙ：ｚ＝Ｓｕｍ Ａ：Ｓｕｍ Ｂ：Ｓｕｍ Ｃ：Ｓｕｍ Ｄ
となる仮想チャネル１〜４毎のペイロードサイズＡ，Ｂ，Ｃ，Ｄを決定する（Ｓ３）。なお、この決定処理においては、比率に対して端数となる場合もあり得るので、必ずしも厳密に一致するとは限らない。よって、要は、最も近づく値に決定することを意味する。
【００８２】
このように決定された仮想チャネル１〜４毎のペイロードサイズＡ，Ｂ，Ｃ，Ｄは、パケット生成回路３２に通知され（Ｓ４）、パケット生成回路３２では仮想チャネル１〜４毎に決定されたペイロードサイズのパケットデータを生成してアービトレーション回路３６に出力することでデータ転送を開始させる（Ｓ５）。
【００８３】
従って、図１７に示す例によれば、各仮想チャネルＶＣ毎に均等な頻度でパケットデータを発行させるラウンドロビン（ＲＲ）による優先度付けのアービトレーションのアルゴリズムに加えて、パケットデータのペイロードサイズの決定による調整を含む場合のシリアルバス出力例を示しており、シリアル送信回路３７の信号出力回路３５からシリアルバス上にはパケットデータ１〜４が、優先度設定値の仮想チャネル間の比率、即ち、データ１：データ２：データ３：データ４＝ｗ：ｘ：ｙ：ｚに従い、パケットデータ１＞２＞３＞４の順にデータ転送量が優先されるようにデータ転送レートが制御されて出力される。
【００８４】
つまり、各リンクで複数の仮想チャネルＶＣを用いる場合に、仮想チャネルＶＣ毎の優先度付けのアービトレーションのアルゴリズムに対して、仮想チャネルＶＣ毎のパケットデータのペイロードサイズを、外部から指定された優先度設定値に一致させるための組合せを適正に決定することで、各機器・デバイス間で精度の高い所望通りのデータ転送レートの制御が可能となる。
【００８５】
図１９は画像形成システムの単純構成例を示すブロック図、図２０はペイロードサイズ変更に伴う転送レート調整の様子を示す説明図である。本実施の形態方式による効果を図１９に示す簡単な例を挙げて説明する。図１９では、２つのプロッタ４１，４２を有する連結エンジン４３とコントローラ４４とをスイッチ１４を介して１本のリンク１５（高速シリアルバス）で繋いだ例（スイッチ１４の異なるポート０，１に対して連結エンジン４３とコントローラ４４とが各々物理的に１つのポートＡ，Ｂにより接続されている）を示しており、連結エンジン４３とコントローラ４４との間のパケットデータの転送レートを調停する必要がある。なお、プロッタ４１は例えばレーザプリンタ、プロッタ４２は例えばインクジェットプリンタの如く印刷処理速度の異なるデバイスであって、パケットデータの転送方向が同方向で必要とするデータ転送レートの異なるデバイスを意味する。
【００８６】
この場合、仮想チャネルＶＣのアービトレーションのアルゴリズムとして、均等な頻度でパケットデータを発行させるラウンドロビン（ＲＲ）しか規格でサポートされていないような場合であっても、上述したように、コントローラ４４側からプロッタ４１，４２に対して転送されるパケットデータのペイロードサイズを所望の優先度設定値の比率に合致するように決定して、コントローラ４４側からデータ転送させることにより、精度の高い所望通りのデータ転送レートの制御が可能となる。即ち、前述したようなデータ転送装置を各ポートの仮想チャネル毎に用いることで、速度の異なるプロッタデータをパケットデータとして複数のプロッタ４１，４２に同時に転送する場合に、速度の比率に合わせて、仮想チャネル毎の優先度設定値を指定することにより、ペイロードサイズ決定回路３８において自動的にペイロードサイズが調整され、高精度なデータ転送レートの調整が可能となる。
【００８７】
例えば、図２０（ａ）は、仮想チャネルＶＣのアービトレーションのアルゴリズムとして、ラウンドロビン（ＲＲ）しか規格でサポートされていない条件下で、プロッタ４１，４２間の優先度設定値の比率が４：１として指定されている場合（プロッタ４１がプロッタ４２よりも４倍速い場合）においては、ペイロードサイズ決定回路３８で、プロッタ４１用の仮想チャネルのペイロードサイズをプロッタ４２用の仮想チャネルのペイロードサイズに対して４倍になるように決定することで、所望通り、単位時間当たりプロッタ４２側に対するデータ転送量の４倍のデータを転送できることを示している。
【００８８】
また、図２０（ｂ）は、仮想チャネルＶＣのアービトレーションのアルゴリズムとして、ラウンドロビン（ＲＲ）しか規格でサポートされていない条件下で、プロッタ４１，４２間の優先度設定値の比率が２：１として指定されている場合（プロッタ４１がプロッタ４２よりも２倍速い場合）においては、ペイロードサイズ決定回路３８で、プロッタ４１用の仮想チャネルのペイロードサイズをプロッタ４２用の仮想チャネルのペイロードサイズに対して２倍になるように決定することで、所望通り、単位時間当たりプロッタ４２側に対するデータ転送量の２倍のデータを転送できることを示している。
【００８９】
ところで、上述の説明では、仮想チャネルＶＣのアービトレーションのアルゴリズムとして、PCI Express規格のラウンドロビン（ＲＲ）の例で説明したが、アービトレーションのアルゴリズムとしては、この他、各仮想チャネル毎に重み付けされた頻度でパケットデータを発行させる方式（PCI Express規格上であれば、ウエイテッドラウンドロビン（ＷＲＲ）、各仮想チャネル毎に固定の優先順位でパケットデータを発行させる方式（PCI Express規格上であれば、ストリクト（Strict））がある。これらの仮想チャネルＶＣのアービトレーションのアルゴリズムについて説明する。
【００９０】
図２１はこれらのアービトレーションのアルゴリズムの各方式の基本特性例を示す特性図である。なお、アービトレーション特性の測定結果は動的な変動を観測する必要があるため、図２１ではデータ積算図として示す。図において、横軸は時間、縦軸は転送されたデータ量（積算値）である。なお、ペイロードサイズは、４種類とも１２８byte(約８０００)固定の条件での測定例とする。図２１(ａ)はストリクト（strict）特性を示すもので、単純に、順番にデータを流していくアルゴリズムである。図２１(ｂ)はラウンドロビン（ＲＲ）特性を示し、４種類のデータを順番に均等に分けながら流していくアルゴリズムであり、図面上、４種類の特性は１本の特性に重なって表現されている。図２１(ｃ)はウエイテッドラウンドロビン（ＷＲＲ）特性として、４種類に関して１：２：４：８の比率でデータ転送させるように設定した場合の特性例を示し、１つのトラフィッククラスのデータ転送が終了すると、残りのトラフィッククラスについて８：４：２、さらには、８：４の如く、比率を変遷させながらデータ転送させるアルゴリズムである。
【００９１】
また、ストリクト（Strict）のアルゴリズムで測定した場合のペイロードの基本特性を図２２に示す。図２２では、個々のトラフィックのペイロードサイズの指定を左側から順に、８，１６，３２，６４Bytesの如く変えた例を示している。図２２によれば、４つのトラフィックの傾きに注目すると、ペイロードサイズが小さいほど転送レートが遅く、ペイロードサイズが大きいほど転送レートが大きいことが分かる。このようなペイロード特性は、他のアービトレーションのアルゴリズムを用いた場合も同様である。つまり、仮想チャネルＶＣのアービトレーションのアルゴリズムの設定と、ペイロードイズの指定とを組合せることにより、より木目細やかにトラフィック調整が可能なことが判る。
【００９２】
図２３は、ペイロードサイズと仮想チャネルＶＣのアービトレーションのアルゴリズムとの相互作用について説明するための特性図である。前述したように、ペイロードサイズと仮想チャネルＶＣのアービトレーションのアルゴリズムとの組合せ次第で転送レートが変化するため、相互に影響を与える。図２３に示す典型例を参照してその影響について説明する。
【００９３】
図２３（ａ）は、アービトレーションのアルゴリズムがラウンドロビン（ＲＲ）で、ペイロードサイズが８Bytes固定の場合を示し、図２３（ｂ）は、アービトレーションのアルゴリズムがラウンドロビン（ＲＲ）で、ペイロードサイズが順に８，１６，３２，６４Bytesの如く不均一に指定されている場合を示し、図２３（ｃ）は、アービトレーションのアルゴリズムが１：２：４：８なる重み付けのウエイテッドラウンドロビン（ＷＲＲ）で、ペイロードサイズが順に８，１６，３２，６４Bytesの如く不均一に指定されている場合を示している。
【００９４】
まず、図２３（ａ）と図２３（ｂ）とは、４つの仮想チャネルＶＣに割当てているトラフィックのペイロードサイズのみが異なる例を示しているが、その特性には大きな違いがある。特に、図２３（ｂ）に示す設定例は、アービトレーションのアルゴリズムがラウンドロビン（ＲＲ）であるが、各トラフィックのペイロードサイズを同じとした場合のアービトレーションのアルゴリズムであるウエイテッドラウンドロビン（ＷＲＲ）の場合の特性と等価となる。
【００９５】
また、図２３（ｂ）と図２３（ｃ）とは、アービトレーションのアルゴリズムのみが異なる例を示しているが、各８ｋＢのデータ転送区間においては、明らかに違う特性となっている。
【００９６】
以上の場合とは逆に、パラメータの設定が全く別であるが、似た特性を示す場合もある。図２３（ａ）と図２３（ｃ）との例であり、ペイロードサイズ及びアービトレーションのアルゴリズムが異なる例を示している。即ち、全て別個の設定であるが、４トラフィックの傾きがほぼ均等になっている（もっとも、図２３（ｃ）に示す例では、ヘッダのオーバヘッド分の差が生ずる）。
【００９７】
以上のように、外部より指定された優先度設定値なる目的とする平均的なデータ転送レートを得るための決定方法としては、複数の方法が存在する。この選択の自由度を有効に活用し、他の構造的な設計制約（例えば、バッファサイズ、タグ段数等）があっても、目的とするトラフィック制御が可能となる。また、仮想チャネルＶＣのアービトレーションのアルゴリズムの設定を変更するためには、コンフィグライトで仮想チャネルＶＣのアービトレーションテーブルの変更が必要となるが、ペイロードサイズの決定変更によれば、ユーザロジックの作り方次第で高速変更が可能になる。これにより、例えば動的な平均レートの変更は、高速対応可能なペイロードサイズ決定変更で対応し、静的な平均レートの変更は、仮想チャネルＶＣのアービトレーションのアルゴリズムの変更で対応する、等の使い分けが可能になる。
【００９８】
データ転送回路の別の実施の形態を図２４及び図２５に基づいて説明する。図２４は、本実施の形態のシリアル送信回路（データ転送装置）５１の構成例を示す概略ブロック図である。図１７に示した部分と同一部分は同一符号を用いて示し、説明も省略する。本実施の形態のシリアル送信回路５１では、仮想チャネル毎のパケット発行頻度を検出する手段としてのパケット発行頻度検出回路５２に加えて、仮想チャネル毎に発行されるパケットデータのペイロードサイズを検出する手段としてのペイロードサイズ検出回路５３が設けられ、これらの検出回路５２，５３により検出される仮想チャネル毎のパケット発行頻度、及び、パケットデータのペイロードサイズに基づくフィードバック制御により、仮想チャネル間のデータ転送レートの比率が外部より指定される仮想チャネル毎のデータ転送レートの優先度設定値の仮想チャネル間の比率に近づくように仮想チャネル毎にパケットデータの修正されたペイロードサイズを決定するペイロードサイズ決定回路５４がペイロードサイズ決定手段として設けられている。ペイロードサイズ決定回路５４等によるペイロードサイズ決定処理としては、ＣＰＵによるプログラム処理により実現するようにしてもよい。
【００９９】
図２５は、仮想チャネル毎のペイロードサイズ決定処理のフィードバック制御例を示す概略フローチャートである。ここでは、各々のパケットデータ１〜４の所望の優先度設定値の比率としては、前述の実施の形態の場合と同様に、外部からの入力操作により、データ１：データ２：データ３：データ４＝ｗ：ｘ：ｙ：ｚの如く比率で指定されているものとする。また、仮想チャネルは４チャネルの例とし、或る時点で設定されている各仮想チャネルのペイロードサイズはＡ，Ｂ，Ｃ，Ｄであるとする。
【０１００】
まず、パケット生成回路３２によりアービトレーション回路３６に対して仮想チャネル１〜４毎にパケットデータを発行させ（Ｓ１１）、このアービトレーション回路３６から設定されている優先度に従い実際にパケットデータを発行させる（Ｓ１２）。このパケットデータ発行の際に、パケットデータが発行された仮想チャネル番号をパケット発行頻度検出回路５２において順次受信することにより仮想チャネル毎のパケット発行頻度が検出されるとともに、発行された仮想チャネル毎のパケットデータのペイロードサイズをペイロードサイズ検出回路５３において順次受信することによりペイロードサイズを検出する（Ｓ１３）。
【０１０１】
そして、仮想チャネル１〜４毎のデータ転送量の総和を各々Ｓｕｍ Ａ，Ｂ，Ｃ，Ｄとしたとき、受信した仮想チャネル番号１〜４毎にその時のペイロードサイズを順次積算する（Ｓ１４）。即ち、仮想チャネル番号が１であれば、Ｓｕｍ Ａ＝Ｓｕｍ Ａ＋Ａなる積算処理、仮想チャネル番号が２であれば、Ｓｕｍ Ｂ＝Ｓｕｍ Ｂ＋Ｂなる積算処理、仮想チャネル番号が３であれば、Ｓｕｍ Ｃ＝Ｓｕｍ Ｃ＋Ｃなる積算処理、仮想チャネル番号が４であれば、Ｓｕｍ Ｄ＝Ｓｕｍ Ｄ＋Ｄなる積算処理を行なう。このような積算処理により、仮想チャネル１〜４間のデータ転送レートの比率Ｓｕｍ Ａ：Ｓｕｍ Ｂ：Ｓｕｍ Ｃ：Ｓｕｍ Ｄを算出する。引き続き、算出されたこれらのデータ転送量（積算値）の仮想チャネル間の比率Ｓｕｍ Ａ：Ｓｕｍ Ｂ：Ｓｕｍ Ｃ：Ｓｕｍ Ｄを、優先度設定値の仮想チャネル間の比率データ１：データ２：データ３：データ４＝ｗ：ｘ：ｙ：ｚと比較することにより、現状の仮想チャネル毎の優先度（転送レート）の高低を判定する（Ｓ１５）。この判定結果である優先度の高低の結果に応じてペイロードサイズの大小関係を相対的に修正する処理を行い、仮想チャネル毎のペイロードサイズを決定する（Ｓ１６）。
【０１０２】
即ち、比較判定の結果、優先度設定値ｗ：ｘ：ｙ：ｚよりも転送レートの低い仮想チャネルが存在していた場合には、当該仮想チャネルから発行するパケットデータのペイロードサイズがその時点で設定されているペイロードサイズ（現在値）よりも大きくなるように修正する。また、逆に、優先度設定値ｗ：ｘ：ｙ：ｚよりも転送レートの高い仮想チャネルが存在していた場合には、当該仮想チャネルから発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正する。
【０１０３】
なお、このステップＳ１６におけるペイロードサイズの修正は、仮想チャネル間で相対的なものであり、例えば、比較判定の結果、優先度設定値ｗ：ｘ：ｙ：ｚよりも転送レートの低い仮想チャネルが存在していた場合には、当該仮想チャネル以外の他の仮想チャネルから発行するパケットデータのペイロードサイズを現在値よりも小さくなるように修正したり、また、逆に、優先度設定値ｗ：ｘ：ｙ：ｚよりも転送レートの高い仮想チャネルが存在していた場合には、当該仮想チャネル以外の仮想チャネルから発行するパケットデータのペイロードサイズを現在値よりも大きくなるように修正したりしてもよい。さらには、優先度設定値ｗ：ｘ：ｙ：ｚよりも転送レートの低い仮想チャネルが存在していた場合には、当該仮想チャネルから発行するパケットデータのペイロードサイズが現在値よりも大きくなるように修正すると同時に当該仮想チャネル以外の他の仮想チャネルから発行するパケットデータのペイロードサイズを現在値よりも小さくなるように修正してもよい。また、優先度設定値ｗ：ｘ：ｙ：ｚよりも転送レートの高い仮想チャネルが存在していた場合には、当該仮想チャネルから発行するパケットデータのペイロードサイズが現在値よりも小さくなるように修正すると同時に該仮想チャネル以外の仮想チャネルから発行するパケットデータのペイロードサイズを現在値よりも大きくなるように修正してもよい。
【０１０４】
何れにしても、このような処理結果に従い、仮想チャネル毎のペイロードサイズＡ，Ｂ，Ｃ，Ｄの値を更新してパケット生成回路３２に通知する（Ｓ１７）。パケット生成回路３２では仮想チャネル１〜４毎に決定されたペイロードサイズのパケットデータを生成してアービトレーション回路３６に出力することでパケット発行を行う（Ｓ１１）。
【０１０５】
本実施の形態によれば、パケットデータのペイロードサイズを、外部より指定される必要なデータ転送レートの優先度設定値が得られるようにフィードバック制御に基づき動的に修正しながら決定することで、アービトレーション回路３６による優先度の調停のみでデータ転送レートを調整する場合に比べ、より自由度が高い状態で、高精度なデータ転送レートの制御が可能となる。
【図面の簡単な説明】
【０１０６】
【図１】既存PCIシステムの構成例を示すブロック図である。
【図２】PCI Expressシステムの構成例を示すブロック図である。
【図３】デスクトップ／モバイルでのPCI Expressプラットホームの構成例を示すブロック図である。
【図４】ｘ４の場合の物理層の構造例を示す模式図である。
【図５】デバイス間のレーン接続例を示す模式図である。
【図６】スイッチの論理的構造例を示すブロック図である。
【図７】（ａ）は既存のPCIのアーキテクチャを示すブロック図、（ｂ）はPCI Expressのアーキテクチャを示すブロック図である。
【図８】PCI Expressの階層構造を示すブロック図である。
【図９】トランザクションレイヤパケットのフォーマット例を示す説明図である。
【図１０】PCI Expressのコンフィグレーション空間を示す説明図である。
【図１１】仮想チャネルの概念を説明するための模式図である。
【図１２】データリンクレイヤパケットのフォーマット例を示す説明図である。
【図１３】ｘ４リンクでのバイトストライピング例を示す模式図である。
【図１４】アクティブステート電源管理の制御例を示すタイムチャートである。
【図１５】本実施の形態の画像形成システムの構成例を略図的に示すブロック図である。
【図１６】PCI Express規格のアービトレーション機能に従い構成された従来のシリアル送信回路の構成例を示す概略ブロック図である。
【図１７】本実施の形態のシリアル送信回路の構成例を示す概略ブロック図である。
【図１８】仮想チャネル毎のペイロードサイズ決定処理例を示す概略フローチャートである。
【図１９】画像形成システムの単純構成例を示すブロック図である。
【図２０】ペイロードサイズ変更に伴う転送レート調整の様子を示す説明図である。
【図２１】アービトレーションのアルゴリズムの各方式の基本特性例を示す特性図である。
【図２２】ストリクト（strict）のアルゴリズムで測定した場合のペイロードの基本特性図である。
【図２３】ペイロードサイズと仮想チャネルＶＣのアービトレーションのアルゴリズムとの相互作用について説明するための特性図である。
【図２４】別の実施の形態のシリアル送信回路の構成例を示す概略ブロック図である。
【図２５】仮想チャネル毎のペイロードサイズ決定処理のフィードバック制御例を示す概略フローチャートである。
【符号の説明】
【０１０７】
３２      パケット生成手段
３３ａ〜３３ｄ      仮想チャネル手段
３６      アービトレーション手段
３７      データ転送装置
３８      ペイロードサイズ決定手段
４１，４２      デバイス
４３      エンジン
４４      コントローラ
５１      データ転送装置
５２      パケット発行頻度を検出する手段
５３      ペイロードサイズを検出する手段
５４      ペイロードサイズ決定手段
【図１】
2006099180.tif 000004
【図２】
2006099180.tif 000005
【図３】
2006099180.tif 000006
【図４】
2006099180.tif 000007
【図５】
2006099180.tif 000008
【図６】
2006099180.tif 000009
【図７】
2006099180.tif 000010
【図８】
2006099180.tif 000011
【図９】
2006099180.tif 000012
【図１０】
2006099180.tif 000013
【図１１】
2006099180.tif 000014
【図１２】
2006099180.tif 000015
【図１３】
2006099180.tif 000016
【図１４】
2006099180.tif 000017
【図１５】
2006099180.tif 000018
【図１６】
2006099180.tif 000019
【図１７】
2006099180.tif 000020
【図１８】
2006099180.tif 000021
【図１９】
2006099180.tif 000022
【図２０】
2006099180.tif 000023
【図２１】
2006099180.tif 000024
【図２２】
2006099180.tif 000025
【図２３】
2006099180.tif 000026
【図２４】
2006099180.tif 000027
【図２５】
2006099180.tif 000028