(57)【要約】【課題】  仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段を有するデータ転送装置において、自由度が高く高精度なデータ転送レート制御を可能にする。【解決手段】  規格により規定されている仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段３６の機能に加えて、発行するパケットデータのペイロードサイズを仮想チャネル毎に任意に指定するペイロードサイズ指定手段３８と、仮想チャネル毎に指定されたペイロードサイズのパケットデータを生成してアービトレーション手段３６に出力するパケット生成手段３２と、を備えることで、パケットデータのペイロードサイズを、必要なデータ転送レートが得られるアービトレーション手段３６による優先度との組合せで指定することで、より自由度が高い状態で、高精度なデータ転送レートの制御が可能となるようにした。【選択図】    図１７
2006092286.tif 000002
【特許請求の範囲】
【請求項１】
シリアルバスを仮想チャネル単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段と、前記仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段とを有するデータ転送装置において、
発行するパケットデータのペイロードサイズを前記仮想チャネル毎に指定するペイロードサイズ指定手段と、
前記仮想チャネル毎に指定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、
を備えることを特徴とするデータ転送装置。
【請求項２】
前記アービトレーション手段のアルゴリズムは、各仮想チャネル毎に均等な頻度でパケットデータを発行させる方式である、ことを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記アービトレーション手段のアルゴリズムは、各仮想チャネル毎に重み付けされた頻度でパケットデータを発行させる方式である、ことを特徴とする請求項１記載のデータ転送装置。
【請求項４】
前記シリアルバスは、PCI Express規格のシリアルバスである、ことを特徴とする請求項１ないし３の何れか一記載のデータ転送装置。
【請求項５】
前記シリアルバスは、PCI Express規格のシリアルバスであり、前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムは、前記PCI Express規格のラウンドロビン（Ｒound Ｒobin）である、ことを特徴とする請求項２記載のデータ転送装置。
【請求項６】
前記シリアルバスは、PCI Express規格のシリアルバスであり、前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムは、前記PCI Express規格のウエイテッドラウンドロビン（Ｗeighted Ｒound Ｒobin）である、ことを特徴とする請求項３記載のデータ転送装置。
【請求項７】
少なくとも、画像入力エンジンと、画像出力エンジンと、これらの画像入力エンジン及び前記画像出力エンジンを制御駆動するコントローラと、これらのコントローラと前記画像入力エンジン並びに前記画像出力エンジンとの間を接続する請求項１ないし６の何れか一記載のシリアルデータ転送装置によるインタフェースと、を備えることを特徴とする画像形成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルバスを用いるデータ転送装置及び画像形成システムに関する。
【背景技術】
【０００２】
シリアルバスを仮想チャネル単位で時分割に使い分けることで複数トラフィックのパケットデータを伝送する仮想チャネル機能と、仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション機能とを有するデータ転送装置がある。このような仕組みのデータ転送装置によれば、データ転送の優先度が異なる複数トラフィックのパケットデータをシリアルバスを用いて同時転送させたい場合に、転送レートの調整が可能となる。
【０００３】
一例として、ＰＣＩバス方式の後継規格に当るPCI Express（登録商標）なるシリアルインタフェース（例えば、非特許文献１参照）の仮想チャネル（Virtual Channel）のアービトレーションのアルゴリズムでは、ラウンドロビン（Round Robin）方式、ウエイテッドラウンドロビン（Weighted Round robin）方式、ストリクト（Strict）方式があり、シリアルバス上に転送するパケットを、トランザクション単位で優先度の調整が可能である。なお、これらの方式については、後述するが、ラウンドロビン方式は各仮想チャネルＶＣ毎に均等な頻度でパケットデータを発行させる方式、ウエイテッドラウンドロビン方式は各仮想チャネルＶＣ毎に任意に指定可能なテーブルに従った重み付けされた頻度でパケットデータを発行させる方式、ストリクト方式は各仮想チャネルＶＣ毎に固定の優先順でパケットデータを発行させる方式である。
【０００４】
【非特許文献１】“PCI Express 規格の概要”Interface誌、July’2003 里見尚志
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、PCI Express規格の仮想チャネルＶＣのアービトレーション機能に従い、仮想チャネルＶＣ毎のパケットデータの発行頻度の優先度を指定しただけでは優先度制御の自由度が低く、複数トラフィックのパケットデータに対して高精度にデータ転送レートを制御することは難しい。
【０００６】
本発明の目的は、仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段を有するデータ転送装置において、自由度が高く高精度なデータ転送レート制御を可能にすることである。
【課題を解決するための手段】
【０００７】
請求項１記載の発明は、シリアルバスを仮想チャネル単位で時分割に使い分けて複数トラフィックのパケットデータを伝送する仮想チャネル手段と、前記仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段とを有するデータ転送装置において、発行するパケットデータのペイロードサイズを前記仮想チャネル毎に指定するペイロードサイズ指定手段と、前記仮想チャネル毎に指定されたペイロードサイズのパケットデータを生成して前記アービトレーション手段に出力するパケット生成手段と、を備える。
【０００８】
請求項２記載の発明は、請求項１記載のデータ転送装置において、前記アービトレーション手段のアルゴリズムは、各仮想チャネル毎に均等な頻度でパケットデータを発行させる方式である。
【０００９】
請求項３記載の発明は、請求項１記載のデータ転送装置において、前記アービトレーション手段のアルゴリズムは、各仮想チャネル毎に重み付けされた頻度でパケットデータを発行させる方式である。
【００１０】
請求項４記載の発明は、請求項１ないし３の何れか一記載のデータ転送装置において、前記シリアルバスは、PCI Express規格のシリアルバスである。
【００１１】
請求項５記載の発明は、請求項２記載のデータ転送装置において、前記シリアルバスは、PCI Express規格のシリアルバスであり、前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムは、前記PCI Express規格のラウンドロビン（Ｒound Ｒobin）である。
【００１２】
請求項６記載の発明は、請求項３記載のデータ転送装置において、前記シリアルバスは、PCI Express規格のシリアルバスであり、前記アービトレーション手段の仮想チャネル（Virtual Channel）毎のアルゴリズムは、前記PCI Express規格のウエイテッドラウンドロビン（Ｗeighted Ｒound Ｒobin）である。
【００１３】
請求項７記載の発明の画像形成システムは、少なくとも、画像入力エンジンと、画像出力エンジンと、これらの画像入力エンジン及び前記画像出力エンジンを制御駆動するコントローラと、これらのコントローラと前記画像入力エンジン並びに前記画像出力エンジンとの間を接続する請求項１ないし６の何れか一記載のシリアルデータ転送装置によるインタフェースと、を備える。
【発明の効果】
【００１４】
本発明によれば、規格により規定されている仮想チャネル毎にパケットデータを発行する優先度を調停するアービトレーション手段の機能に加えて、発行するパケットデータのペイロードサイズを仮想チャネル毎に指定するペイロードサイズ指定手段と、仮想チャネル毎に指定されたペイロードサイズのパケットデータを生成してアービトレーション手段に出力するパケット生成手段と、を備えているので、パケットデータのペイロードサイズを、必要なデータ転送レートが得られるアービトレーション手段による優先度との組合せで指定することで、より自由度が高い状態で、高精度なデータ転送レートの制御が可能となる。
【発明を実施するための最良の形態】
【００１５】
本発明を実施するための最良の形態について図面を参照して説明する。
【００１６】
［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は、連続した“０”や“１”が続かないように（長い期間、クロス・ポイントが存在しない状態が続かないようにするため）、データ符号化に８Ｂ／１０Ｂ変換を用いる。変換されたデータは、図１３中に示すように、シリアル変換され、ＬＳＢからレーン上に送信される。ここに、レーンが複数ある場合は（図１３はｘ４リンクの場合を例示している）、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレル・バスのようにみえるが、レーン毎に独立した転送を行うので、パラレル・バスで問題となるスキューが大幅に緩和される。
【００５５】
ｂ．電源管理とリンクステート
リンクの消費電力を低く抑えるために、表１に示すように、Ｌ０／Ｌ０ｓ／Ｌ１／Ｌ２というリンクステートが定義されている。
【００５６】
【表１】
2006092286.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規格のラウンドロビン（Ｒound Ｒobin）の例で説明したが、アービトレーションのアルゴリズムとしては、この他、各仮想チャネル毎に重み付けされた頻度でパケットデータを発行させる方式（PCI Express規格上であれば、ウエイテッドラウンドロビン（Ｗeighted Ｒound Ｒobin））、各仮想チャネル毎に固定の優先順位でパケットデータを発行させる方式（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）のアルゴリズムで測定した場合のペイロードの基本特性図である。
【図２２】ペイロードサイズと仮想チャネルＶＣのアービトレーションのアルゴリズムとの相互作用について説明するための特性図である。
【符号の説明】
【００８３】
３２      パケット生成手段
３３ａ〜３３ｄ      仮想チャネル手段
３６      アービトレーション手段
３８      ペイロードサイズ指定手段
４１      画像入力手段
４２      画像出力手段
４４      コントローラ
【図１】
2006092286.tif 000004
【図２】
2006092286.tif 000005
【図３】
2006092286.tif 000006
【図４】
2006092286.tif 000007
【図５】
2006092286.tif 000008
【図６】
2006092286.tif 000009
【図７】
2006092286.tif 000010
【図８】
2006092286.tif 000011
【図９】
2006092286.tif 000012
【図１０】
2006092286.tif 000013
【図１１】
2006092286.tif 000014
【図１２】
2006092286.tif 000015
【図１３】
2006092286.tif 000016
【図１４】
2006092286.tif 000017
【図１５】
2006092286.tif 000018
【図１６】
2006092286.tif 000019
【図１７】
2006092286.tif 000020
【図１８】
2006092286.tif 000021
【図１９】
2006092286.tif 000022
【図２０】
2006092286.tif 000023
【図２１】
2006092286.tif 000024
【図２２】
2006092286.tif 000025