(57)【要約】【課題】複雑な動作モードを有するデータ通信装置に高速シリアルバスを適用した時であっても、データ転送にかかるパラメータの最適化を図ることができる情報処理装置およびデータ通信装置を提供する。【解決手段】高速シリアルバスにより接続されたデータ通信装置１間に存在する各トラフィックの転送レートを転送レート計測手段３４により計測し、計測された各トラフィックの転送レートが予め設定された目標値になるように、各トラフィックにおけるデータ転送にかかるパラメータ（例えば、パケットサイズなど）をパラメータ調整手段３１により調整する。これにより、複雑な動作モードを有するデータ通信装置（例えば、画像機器など）に高速シリアルバスを適用した時であっても、データ転送にかかるパラメータの最適化を図ることができる。【選択図】        図１６
2008021024.tif 000002
【特許請求の範囲】
【請求項１】
各々を高速シリアルバスにより接続した複数のデータ通信装置を備え、異なる方向への複数のトラフィックが前記各データ通信装置間に存在する情報処理装置において、
前記各トラフィックの転送レートを計測する転送レート計測手段と、
前記転送レート計測手段により計測された前記各トラフィックの前記転送レートが予め設定された目標値になるように、前記各トラフィックにおけるデータ転送にかかるパラメータを調整するパラメータ調整手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記パラメータ調整手段により調整される前記データ転送にかかるパラメータは、前記各トラフィックを転送されるデータのペイロードサイズである、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記パラメータ調整手段は、前記ペイロードサイズの大きいデータが転送される側の前記トラフィックを転送されるデータのペイロードサイズを小さくすることで調整を行なう、
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記パラメータ調整手段は、前記ペイロードサイズの小さいデータが転送される側の前記トラフィックを転送されるデータのペイロードサイズを大きくすることで調整を行なう、
ことを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記パラメータ調整手段により調整される前記データ転送にかかるパラメータは、前記各トラフィックを転送されるデータを一時的に格納する送信バッファのサイズである、
ことを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記パラメータ調整手段による前記データ転送にかかるパラメータの調整は、動作モードの切り替え時に実施する、
ことを特徴とする請求項１ないし５のいずれか一記載の情報処理装置。
【請求項７】
高速シリアルバスにより相互に接続可能なデータ通信装置において、
相互に接続された装置間で異なる方向への複数のトラフィックが存在する場合、前記各トラフィックの少なくとも一方の転送レートを計測する転送レート計測手段と、
前記転送レート計測手段により計測された前記トラフィックの前記転送レートが予め設定された目標値になるように、前記トラフィックにおけるデータ転送にかかるパラメータを調整するパラメータ調整手段と、
を備えることを特徴とするデータ通信装置。
【請求項８】
前記パラメータ調整手段により調整される前記データ転送にかかるパラメータは、前記各トラフィックを転送されるデータのペイロードサイズである、
ことを特徴とする請求項７記載のデータ通信装置。
【請求項９】
前記パラメータ調整手段は、前記ペイロードサイズの大きいデータが転送される側の前記トラフィックを転送されるデータのペイロードサイズを小さくすることで調整を行なう、
ことを特徴とする請求項８記載のデータ通信装置。
【請求項１０】
前記パラメータ調整手段は、前記ペイロードサイズの小さいデータが転送される側の前記トラフィックを転送されるデータのペイロードサイズを大きくすることで調整を行なう、
ことを特徴とする請求項８記載のデータ通信装置。
【請求項１１】
前記パラメータ調整手段により調整される前記データ転送にかかるパラメータは、前記各トラフィックを転送されるデータを一時的に格納する送信バッファのサイズである、
ことを特徴とする請求項７記載のデータ通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データその他のデータを扱うデジタル複写機や複合機（ＭＦＰ）等の情報処理装置およびデータ通信装置に関する。
【背景技術】
【０００２】
一般に、画像データその他のデータを扱うデジタル複写機や複合機（ＭＦＰ）等の情報処理装置では、デバイス間のインタフェースにＰＣＩ等に代表されるパラレル方式のバスが使用されている。しかし、パラレル方式のバスでは、レイテンシが小さく、パケットサイズやバッファサイズの動的な最適化の仕組みを構築することができない。そこで、画像バスの更なる高速化と高効率化を実現する手段として、ＰＣＩバスのようなパラレル方式のインタフェースに代えて、IEEE1394やUSB等の高速シリアルインタフェースの使用が検討されている。例えば、特許文献１によれば、内部インタフェースとして、IEEE1394やUSB等の高速シリアルインタフェースを使用することが提案されている。
【０００３】
また、他の高速シリアルインタフェースとして、ＰＣＩバス方式の後継規格に当る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のフロー制御は、クレジット・ベースで行われる（データ転送を始める前に、受け取り側のバッファの空き状況を確認し、オーバーフロー、アンダフローが発生しないメカニズム）。即ち、受信側はリンク初期化時にバッファ容量（クレジット値）を送信側に通知し、送信側はクレジット値と送信するパケットの長さとを比較し、一定の残りがある場合のみパケットを送信する。このクレジットには６種類ある。
【００５３】
フロー制御の情報交換はデータリンク層のデータリンクレイヤパケット（ＤＬＬＰ）を使用して行われる。フロー制御はトランザクションレイヤパケット（ＴＬＰ）のみに適用され、データリンクレイヤパケット（ＤＬＬＰ）には適用されない（ＤＬＬＰは常時送受信可能）。
【００５４】
Ｂ．データリンク層１５４
データリンク層１５４の主な役割は、前述したように、リンク上の２つのコンポーネント間での信頼性の高いトランザクションレイヤパケット（ＴＬＰ）交換機能を提供することである。
【００５５】
ａ．トランザクションレイヤパケット（ＴＬＰ）の扱い
トランザクション層１５３から受け取ったトランザクションレイヤパケット（ＴＬＰ）に対しては、先頭に２バイトのシーケンス番号、末尾に４バイトのリンクＣＲＣ（ＬＣＲＣ）を付加して、物理層１５５に渡す（図９参照）。トランザクションレイヤパケット（ＴＬＰ）は、リトライバッファに保管され、相手から受信確認（ＡＣＫ）が届くまで再送される。トランザクションレイヤパケット（ＴＬＰ）の送信に失敗が続いた場合は、リンク異常であると判断して物理層１５５に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合、データリンク層１５４の状態はインアクティブに遷移する。
【００５６】
物理層１５５から受け取ったトランザクションレイヤパケット（ＴＬＰ）は、シーケンス番号とリンクＣＲＣ（ＬＣＲＣ）が検査され、正常であればトランザクション層１５３に渡され、エラーがあった場合は再送を要求する。
【００５７】
ｂ．データリンクレイヤパケット（ＤＬＬＰ）
トランザクションレイヤパケット（ＴＬＰ）は、物理層から送信されるときに自動的に図１２に示すようなデータリンクレイヤパケット（ＤＬＬＰ）に分割されて各レーンに送信される。データリンク層１５４が生成するパケットは、データリンクレイヤパケット（ＤＬＬＰ）と呼ばれ、データリンク層１５４間でやり取りされる。データリンクレイヤパケット（ＤＬＬＰ）には、
・Ack／Nak：ＴＬＰの受信確認、リトライ（再送）
・InitFC1／InitFC2／UpdateFC：フロー制御の初期化とアップデート
・電源管理のためのＤＬＬＰ
なる種類がある。
【００５８】
図１２に示すように、データリンクレイヤパケット（ＤＬＬＰ）の長さは６バイトで、種類を示すＤＬＬＰタイプ（１バイト）、ＤＬＬＰの種類で固有の情報（３バイト）、ＣＲＣ（２バイト）から構成される。
【００５９】
Ｃ．物理層−論理サブブロック１５６
図８中に示す物理層１５５の論理サブブロック１５６での主な役割は、データリンク層１５４から受け取ったパケットを電気サブブロック１５７で送信できる形式に変換することである。また、物理層１５５を制御／管理する機能も有する。
【００６０】
ａ．データ符号化とパラレル−シリアル変換
PCI Expressは、連続した“０”や“１”が続かないように（長い期間、クロス・ポイントが存在しない状態が続かないようにするため）、データ符号化に８Ｂ／１０Ｂ変換を用いる。変換されたデータは、図１３中に示すように、シリアル変換され、ＬＳＢからレーン上に送信される。ここに、レーンが複数ある場合は（図１３はｘ４リンクの場合を例示している）、符号化の前にデータがバイト単位で各レーンに割り振られる。この場合、一見パラレル・バスのようにみえるが、レーン毎に独立した転送を行うので、パラレル・バスで問題となるスキューが大幅に緩和される。
【００６１】
ｂ．電源管理とリンクステート
リンクの消費電力を低く抑えるために、図１４に示すように、Ｌ０／Ｌ０ｓ／Ｌ１／Ｌ２というリンクステートが定義されている。
【００６２】
Ｌ０が通常モードで、Ｌ０ｓからＬ２へと低消費電力となるが、Ｌ０への復帰にも時間がかかるようになる。図１５に示すように、ソフトウェアによる電源管理に加えて、アクティブステート電源管理を積極的に行うことにより、消費電力を極力小さくすることが可能となる。
【００６３】
Ｄ．物理層−電気サブブロック１５７
物理層１５５の電気サブブロック１５７での主な役割は、論理サブブロック１５６でシリアル化されたデータをレーン上に送信することと、レーン上のデータを受信して論理サブブロック１５６に渡すことである。
【００６４】
ａ．ＡＣカップリング
リンクの送信側では、ＡＣカップリング用のコンデンサが実装される。これにより、送信側と受信側のＤＣコモンモード電圧が同一である必要がなくなる。このため、送信側と受信側で異なる設計、半導体プロセス、電源電圧を使用することが可能となる。
【００６５】
ｂ．デエンファシス
PCI Expressでは、前述したように、８Ｂ／１０Ｂエンコーディングによってできるだけ連続した“０”や“１”が続かないように処理されるが、連続した“０”や“１”が続くこともある（最大５回）。この場合、送信側はデエンファシス転送を行わなければならないことが規定されている。同一極性のビットが連続する場合は、２つ目のビットからは差動電圧レベル（振幅）を３．５±０．５ｄＢ落とすことで、受信側で受け取る信号のノイズ・マージンを稼ぐ必要がある。これを、デエンファシスという。伝送路の周波数依存性減衰のため、変化するビットの場合は高周波成分が多く、減衰により受信側の波形が小さくなるが、変化しないビットの場合は高周波成分が少なく、相対的に受信側の波形が大きくなる。このため、受信側での波形を一定とするためにデエンファシスを行う。
【００６６】
［データ通信装置］
本実施の形態のデータ通信装置の一例について図１６を参照して説明する。図１６は、本発明の第１の実施の形態にかかるデータ通信装置１の概要を示すブロック図である。
【００６７】
図１６に示すように、各々がPCI Express接続されるデバイスＡ，Ｂであるデータ通信装置１は、PCI Express接続のためのＰＣＩｅコア２と、データ転送マスタ３と、データ転送スレーブ４とを備えている。
【００６８】
ＰＣＩｅコア２は、図８で説明したように、PCI Expressのアーキテクチャの中心となるトランザクション層１５３、データリンク層１５４、物理層１５５を備えている。
【００６９】
データ転送マスタ３は、リクエストの発行タイミングの設定やペイロードサイズの調整を行なうパラメータ調整手段であるリクエスト発生回路３１と、リクエスト発生回路３１の命令に応じてライトデータを発生させるライトデータ生成回路３２と、リードデータを受信するリードデータ受信回路３３と、ライトデータ生成回路３２およびリードデータ受信回路３３のデータ量を観測して転送レートを計測する転送レート計測手段である転送レート計測回路３４とを備えている。
【００７０】
データ転送スレーブ４は、リクエストを受信するリクエスト受信回路４１と、ライトデータを受信するライトデータ受信回路４２と、リードデータを送信するリードデータ送信回路４３とを備えている。
【００７１】
［ペイロードサイズの調整］
ここで、メモリライトの動作を元にペイロードサイズの調整を行なう方法について説明をする。デバイスＡのデータ転送マスタ３のリクエスト発生回路３１及びライトデータ生成回路３２から発行されたコマンドおよびデータは、デバイスＡのＰＣＩｅコア２に伝えられる。デバイスＡのＰＣＩｅコア２は、デバイスＢのＰＣＩｅコア２との間でPCI Expressの通信プロトコルに応じてデータの転送をおこなう。デバイスＢでは、ＰＣＩｅコア２で受信したデータをデータ転送スレーブ４に送信して、デバイスＡのデータ転送マスタ３からデバイスＢのデータ転送スレーブ４への転送が完了する。デバイスＢからデバイスＡへのデータ転送も同様におこなわれる。
【００７２】
各々のデータ転送マスタ３では、ライトデータ生成回路３２の状態を観測してライトデータの転送レートを計測し、その情報をリクエスト発生回路３１に伝える。リクエスト発生回路３１では、転送レート情報を元にペイロードサイズの調整を行なう。
【００７３】
ここで、転送レート計測回路３４における転送レートの計測について説明する。図１７は、転送レート計測回路３４の構成を示すブロック図である。転送レート計測回路３４は、転送データを観測し、有効データ量を加算する積算器５１と、積算したい時間を予めＣＰＵ等から設定しておくカウント周期設定回路５２と、設定された周期をカウントするタイマ５３と、ラッチ回路５４とを備えている。このような構成により、タイマ５３に設定された時間になると、積算器５１で加算された有効データ量をラッチ回路５４がラッチする。
【００７４】
そして、このようにしてラッチされた値が、転送レート情報としてリクエスト発生回路３１に通知され、リクエスト発生回路３１ではこの情報を参照するテーブルからペイロードサイズを決定する。
【００７５】
次に、メモリリードの動作を元にペイロードサイズの調整を行なう方法について説明をする。デバイスＡのデータ転送マスタ３のリクエスト発生回路３１から発行されたコマンドは、デバイスＡのＰＣＩｅコア２に伝えられる。デバイスＡのＰＣＩｅコア２はデバイスＢのＰＣＩｅコア２との間でPCI Expressの通信プロトコルに応じてデータの転送を行なう。デバイスＢでは、ＰＣＩｅコア２で受信したリードリクエストコマンドをデータ転送スレーブ４に送信する。リードリクエストを受信したデバイスＢのデータ転送スレーブ４は、リードデータ送信回路４３からリクエストに応じたリードデータをデバイスＢのＰＣＩｅコア２に戻す。デバイスＢのＰＣＩｅコア２は、デバイスＡのＰＣＩｅコア２との間でPCI Expressの通信プロトコルに応じてデータの転送を行なう。デバイスＡでは、ＰＣＩｅコア２で受信したデータをデータ転送マスタ３のリードデータ受信回路３３に送信して、転送が完了する。デバイスＢのデータ転送マスタ３からのリードデータ転送も同様に行なわれる。
【００７６】
各々のデータ転送マスタ３では、リードデータ受信回路３３の状態を観測して転送レートを計測し、その情報をリクエスト発生回路３１に伝える。リクエスト発生回路３１では、転送レート情報を元にペイロードサイズの調整を行なう。
【００７７】
次に、リクエスト発生回路３１におけるペイロードサイズの調整方法について説明する。例えば、図１８に示すように、デバイスＡからデバイスＢにメモリライトのトラフィック１が発生し、デバイスＢからデバイスＡにメモリライトのトラフィック２が発生しているとする。トラフィック１のペイロードサイズは比較的大きく、トラフィック２のペイロードサイズは比較的小さい場合について検討する。
【００７８】
図１９は、図１８に示すケースにおける特性の一例を示したものである。図１９の横軸には、トラフィック１のペイロードサイズを１２８Byte〜４ＫByteまで取っている。トラフィック２のペイロードサイズが１６Byte，３２Byte，６４Byteの時の転送レートを、図１９の縦軸に表している。
【００７９】
ここで、図１９中の点Ｘの条件に注目する。例えば、目標値としてトラフィック２の転送レートを１００以上とすると、以下に示すような調整を行なうことにより、所望の転送レートを確保することができる。
・トラフィック１のペイロードサイズを１ＫByteにする
・トラフィック２のペイロードサイズを６４Byteにする
【００８０】
上述したようなペイロードサイズの調整は、データ通信装置１が搭載されるデジタル複写機や複合機（ＭＦＰ）等の情報処理装置の動作モードの切り替え時に実施される。
【００８１】
ここで、動作モードの違いとして、図１８のトラフィック１のペイロードサイズが異なる場合とトラフィック２の転送レートの目標値が異なる場合について取り上げる。図２０のテーブルは、動作モードの違いとして、トラフィック１のペイロードが１ＫByte，２ＫByte，４Ｋbyteの動作モードで、且つトラフィック２の目標値が２０ＭＢ／ｓ，６０ＭＢ/ｓ，１２０ＭＢ／ｓと異なる動作のモードでの、トラフィック２のペイロードサイズを表したものである。このテーブルから明らかであるように、動作モードが異なるとトラフィック２のペイロードサイズの最適値が異なる。このテーブルを用いて、動作モードにあわせてトラフィック２のペイロードサイズの最適化を実施する。
【００８２】
このように本実施の形態によれば、高速シリアルバスにより接続されたデータ通信装置間に存在する各トラフィックの転送レートを計測し、計測された各トラフィックの転送レートが予め設定された目標値になるように、各トラフィックにおけるデータ転送にかかるパラメータ（例えば、パケットサイズなど）を調整することにより、複雑な動作モードを有するデータ通信装置（例えば、画像機器など）に高速シリアルバスを適用した時であっても、データ転送にかかるパラメータの最適化を図ることができる。また、従来の情報処理装置およびデータ通信装置（例えば、画像機器など）では全く不可能であった動的な転送性能の最適化も図ることができる。
【００８３】
［第２の実施の形態］
次に、本発明の第２の実施の形態を図２１に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００８４】
［データ通信装置］
図２１は、本発明の第２の実施の形態にかかるデータ通信装置１の概要を示すブロック図である。図２１に示すように、本実施の形態のデータ通信装置１は、ライトデータ受信回路４２およびリードデータ送信回路４３のデータ量を観測して転送レートを計測する転送レート計測手段である転送レート計測回路４４をデータ転送スレーブ４に備えている点で、第１の実施の形態とは異なっている。
【００８５】
［ペイロードサイズの調整］
ここで、メモリライトの動作を元にペイロードサイズの調整を行なう方法について説明をする。デバイスＡのデータ転送マスタ３のリクエスト発生回路３１及びライトデータ生成回路３２から発行されたコマンドおよびデータは、デバイスＡのＰＣＩｅコア２に伝えられる。デバイスＡのＰＣＩｅコア２は、デバイスＢのＰＣＩｅコア２との間でPCI Expressの通信プロトコルに応じてデータの転送をおこなう。デバイスＢでは、ＰＣＩｅコア２で受信したデータをデータ転送スレーブ４に送信して、デバイスＡのデータ転送マスタ３からデバイスＢのデータ転送スレーブ４への転送が完了する。デバイスＢからデバイスＡへのデータ転送も同様におこなわれる。
【００８６】
各々のデータ転送スレーブ４では、ライトデータの転送レートを計測し、その情報を同じデバイス内のデータ転送マスタ３のリクエスト発生回路３１に伝える。転送レート情報を受け取ったリクエスト発生回路３１は、相手デバイスに転送レートを通知する為のパケットを生成する。この情報はPCI Expressを経由して相手デバイスのデータ転送スレーブ４のリクエスト受信回路４１に伝えられる。情報を受け取ったデータ転送スレーブ４では、自デバイス内のデータ転送マスタ３に転送レート情報を通知し、データ転送マスタ３のリクエスト発生回路３１では転送レート情報をもとにペイロードサイズの調整を行なう。
【００８７】
次に、メモリリードの動作を元にペイロードサイズの調整を行なう方法について説明をする。デバイスＡのデータ転送マスタ３のリクエスト発生回路３１から発行されたコマンドは、デバイスＡのＰＣＩｅコア２に伝えられる。デバイスＡのＰＣＩｅコア２はデバイスＢのＰＣＩｅコア２との間でPCI Expressの通信プロトコルに応じてデータの転送を行なう。デバイスＢでは、ＰＣＩｅコア２で受信したリードリクエストコマンドをデータ転送スレーブ４に送信する。リードリクエストを受信したデバイスＢのデータ転送スレーブ４は、リードデータ送信回路４３からリクエストに応じたリードデータをデバイスＢのＰＣＩｅコア２に戻す。デバイスＢのＰＣＩｅコア２は、デバイスＡのＰＣＩｅコア２との間でPCI Expressの通信プロトコルに応じてデータの転送を行なう。デバイスＡでは、ＰＣＩｅコア２で受信したデータをデータ転送マスタ３のリードデータ受信回路３３に送信して、転送が完了する。デバイスＢのデータ転送マスタ３からのリードデータ転送も同様に行なわれる。
【００８８】
各々のデータ転送スレーブ４では、リードデータの転送レートを計測し、その情報を同じデバイス内のデータ転送マスタ３のリクエスト発生回路３１に伝える。転送レート情報を受け取ったリクエスト発生回路３１では、相手デバイスに転送レートを通知する為のパケットを生成する。この情報は、PCI Expressを経由して相手デバイスのデータ転送スレーブ４のリクエスト受信回路４１に伝えられる。情報を受け取ったデータ転送スレーブ４では、自デバイス内のデータ転送マスタ３に転送レート情報を通知し、データ転送マスタ３のリクエスト発生回路３１では転送レート情報をもとにペイロードサイズの調整を行なう。
【００８９】
このように本実施の形態によれば、高速シリアルバスにより接続されたデータ通信装置間に存在する各トラフィックの転送レートを計測し、計測された各トラフィックの転送レートが予め設定された目標値になるように、各トラフィックにおけるデータ転送にかかるパラメータ（例えば、パケットサイズなど）を調整することにより、複雑な動作モードを有するデータ通信装置（例えば、画像機器など）に高速シリアルバスを適用した時であっても、データ転送にかかるパラメータの最適化を図ることができる。また、従来の情報処理装置およびデータ通信装置（例えば、画像機器など）では全く不可能であった動的な転送性能の最適化も図ることができる。
【００９０】
［第３の実施の形態］
次に、本発明の第３の実施の形態を図２２ないし図２７に基づいて説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００９１】
［データ通信装置］
図２２は、本発明の第３の実施の形態にかかるデータ通信装置１の概要を示すブロック図である。図２２に示すように、本実施の形態のデータ通信装置１は、転送レート情報をもとにバッファサイズの調整を行なうパラメータ調整手段であるバッファサイズ制御回路５を備えている点で、第１の実施の形態とは異なっている。
【００９２】
バッファサイズ制御回路５は、図２３に示すように、計測された転送レートに応じた複数の転送レート／バッファサイズ変換テーブルＴを有している。より詳細には、バッファサイズ制御回路５は、トランザクション層のバッファ用の転送レート／バッファサイズ変換テーブルＴとリンク層のバッファ用の転送レート／バッファサイズ変換テーブルＴをそれぞれ有している。このような転送レート／バッファサイズ変換テーブルＴは、所望の転送レートに見合うバッファサイズを決定するためのテーブルである。
【００９３】
すなわち、バッファサイズ制御回路５は、転送レート計測データにしたがって、複数ある転送レート／バッファサイズ変換テーブルＴから適切なテーブルの選択をおこなう。
【００９４】
そして、バッファサイズ制御回路５により決定されたバッファサイズに従い、トランザクション層およびリンク層内部のバッファ用メモリのアドレス制御回路６０で、所望のメモリ７０のメモリサイズの調整を行なう。
【００９５】
ここで、図２４はトラフィックの転送レートが劣化する場合の一例を示す模式図である。図２４は、デジタル複写機や複合機（ＭＦＰ）等の情報処理装置において、ペイロードサイズが非常に大きいトラフィック１（例えば、大量の静止画像データ）とペイロードサイズが小さいトラフィック２（例えば、オペレーションパネル用の動画データ）とを転送する場合を示したものである。このような場合には、ペイロードサイズが非常に大きいトラフィック１の影響により、ペイロードサイズが小さいトラフィック２が途中で止まってしまい、動画のコマ落ちなどによる表示むらが発生する。より詳細には、PCI Expressにおいては、デバイスＢにおいてデバイスＡからペイロードサイズが小さいトラフィック２を正常に受け取った場合には、ＡｃｋをデバイスＡに返し、デバイスＡのデータリンク層の送信バッファを解放することになる。一方、再送が必要な場合には、ＮａｃｋをデバイスＡに返し、送信バッファから再度ペイロードサイズが小さいトラフィック２を正常に受け取る。これにより、データ転送を保証するものである。すなわち、ペイロードサイズが非常に大きいトラフィック１とペイロードサイズが小さいトラフィック２とが競合した場合には、Ａｃｋ／Ｎａｃｋパケットは、ペイロードサイズが非常に大きいトラフィック１の送信中には送信できないことになり、トラフィックの転送レートが劣化する。
【００９６】
また、図２５はトラフィックの転送レートが劣化する場合の別の一例を示す模式図である。図２５は、デジタル複写機や複合機（ＭＦＰ）等の情報処理装置において、ペイロードサイズが非常に大きいトラフィック１（例えば、大量の静止画像データ）とペイロードサイズが小さいトラフィック２（例えば、オペレーションパネル用の動画データ）とを転送する場合を示したものである。このような場合には、ペイロードサイズが非常に大きいトラフィック１の影響により、ペイロードサイズが小さいトラフィック２が途中で止まってしまい、動画のコマ落ちなどによる表示むらが発生する。より詳細には、PCI Expressにおいては、デバイスＢにおいてデバイスＡからペイロードサイズが小さいトラフィック２を送信するためには、デバイスＢのトランザクション層のバッファの空き情報であるクレジットをデバイスＡに通知する必要がある。これはフローコントロールパケットを通じて適宜通知される。トランザクション層のバッファが小さければ小さいほど、通知を頻繁におこなう必要がある。すなわち、ペイロードサイズが非常に大きいトラフィック１とペイロードサイズが小さいトラフィック２とが競合した場合には、フローコントロールパケットは、ペイロードサイズが非常に大きいトラフィック１の送信中には送信できないことになり、トラフィックの転送レートが劣化する。
【００９７】
［バッファサイズの調整］
ここで、メモリライトの動作を元にバッファサイズの調整を行なう方法について説明をする。デバイスＡのデータ転送マスタ３のリクエスト発生回路３１及びライトデータ生成回路３２から発行されたコマンドおよびデータは、デバイスＡのＰＣＩｅコア２に伝えられる。デバイスＡのＰＣＩｅコア２はデバイスＢのＰＣＩｅコア２との間でPCI Expressの通信プロトコルに応じてデータの転送を行なう。デバイスＢでは、ＰＣＩｅコア２で受信したデータをデータ転送スレーブ４に送信して、デバイスＡのデータ転送マスタ３からデバイスＢのデータ転送スレーブ４への転送が完了する。デバイスＢからデバイスＡへのデータ転送も同様に行なわれる。
【００９８】
各々のデータ転送マスタ３では、ライトデータ生成回路３２の状態を観測してライトデータの転送レートを計測し、その情報をバッファサイズ制御回路５に伝える。バッファサイズ制御回路５では、転送レート情報をもとにバッファサイズの調整を行なう。
【００９９】
次に、メモリリードの動作を元にバッファサイズの調整を行なう方法について説明をする。デバイスＡのデータ転送マスタ３のリクエスト発生回路３１から発行されたコマンドは、デバイスＡのＰＣＩｅコア２に伝えられる。デバイスＡのＰＣＩｅコア２は、デバイスＢのＰＣＩｅコア２との間でPCI Expressの通信プロトコルに応じてデータの転送を行なう。デバイスＢでは、ＰＣＩｅコア２で受信したリードリクエストコマンドをデータ転送スレーブ４に送信する。リードリクエストを受信したデバイスＢのデータ転送スレーブ４は、リードデータ送信回路４３からリクエストに応じたリードデータをデバイスＢのＰＣＩｅコア２に戻す。デバイスＢのＰＣＩｅコア２は、デバイスＡのＰＣＩｅコア２との間でPCI Expressの通信プロトコルに応じてデータの転送を行なう。デバイスＡではＰＣＩｅコア２で受信したデータをデータ転送マスタ３のリードデータ受信回路３３に送信して、転送が完了する。デバイスＢのデータ転送マスタ３からのリードデータ転送も同様に行なわれる。
【０１００】
各々のデータ転送マスタ３では、リードデータ受信回路３３の状態を観測して転送レートを計測し、その情報をバッファサイズ制御回路５に伝える。バッファサイズ制御回路５では、転送レート情報をもとにバッファサイズの調整を行なう。
【０１０１】
次に、バッファサイズ制御回路５におけるバッファサイズの調整方法について説明する。例えば、図２４に示すように、デバイスＡからデバイスＢにペイロードサイズが小さいトラフィック２（例えば、オペレーションパネル用の動画データ）が発生し、デバイスＢからデバイスＡにペイロードサイズが非常に大きいトラフィック１（例えば、大量の静止画像データ）が発生しているとする。
【０１０２】
図２６は、図２４に示すケースにおける特性の一例を示したものである。図２６の横軸には、バッファサイズを取っている。トラフィック２のペイロードサイズが１６Byte，３２Byte，６４Byteの時の転送レートを、図２６の縦軸に表している。
【０１０３】
ここで、図２６中の点Ｙの条件に注目する。例えば、目標値としてトラフィック２の転送レートを１００以上とすると、以下に示すような調整を行なうことにより、所望の転送レートを確保することができる。
・バッファサイズを３０にする
・トラフィック２のペイロードサイズを６４Byteにする
【０１０４】
上述したようなバッファサイズの調整は、データ通信装置１が搭載されるデジタル複写機や複合機（ＭＦＰ）等の情報処理装置の動作モードの切り替え時に実施される。
【０１０５】
ここで、動作モードの違いとして、図２４のトラフィック２のペイロードサイズと転送レートの目標値が異なる場合について取り上げる。図２７の転送レート／バッファサイズ変換テーブルＴは、動作モードの違いとして、トラフィック２のペイロードが１６Byte，３２Byte，６４byteの動作モードで、且つトラフィック２の目標値が６０ＭＢ／ｓ，１２０ＭＢ/ｓ，１６０ＭＢ／ｓと異なる動作のモードでの、バッファサイズを表したものである。このテーブルから明らかであるように、動作モードが異なるとバッファサイズの最適値が異なる。このテーブルを用いて、動作モードにあわせてバッファサイズの最適化を実施する。なお、ここには示していないが、トラフィック１の条件が変わるような動作モードの変化があった場合は、別のテーブルを用意すればよい。
【０１０６】
このように本実施の形態によれば、高速シリアルバスにより接続されたデータ通信装置間に存在する各トラフィックの転送レートを計測し、計測された各トラフィックの転送レートが予め設定された目標値になるように、各トラフィックにおけるデータ転送にかかるパラメータ（例えば、バッファサイズなど）を調整することにより、複雑な動作モードを有するデータ通信装置（例えば、画像機器など）に高速シリアルバスを適用した時であっても、データ転送にかかるパラメータの最適化を図ることができる。また、従来の情報処理装置およびデータ通信装置（例えば、画像機器など）では全く不可能であった動的な転送性能の最適化も図ることができる。
【図面の簡単な説明】
【０１０７】
【図１】既存PCIシステムの構成例を示すブロック図である。
【図２】PCI Expressシステムの構成例を示すブロック図である。
【図３】デスクトップ／モバイルでのPCI Expressプラットホームの構成例を示すブロック図である。
【図４】ｘ４の場合の物理層の構造例を示す模式図である。
【図５】デバイス間のレーン接続例を示す模式図である。
【図６】スイッチの論理的構造例を示すブロック図である。
【図７−１】既存のPCIのアーキテクチャを示すブロック図である。
【図７−２】PCI Expressのアーキテクチャを示すブロック図である。
【図８】PCI Expressの階層構造を示すブロック図である。
【図９】トランザクションレイヤパケットのフォーマット例を示す説明図である。
【図１０】PCI Expressのコンフィグレーション空間を示す説明図である。
【図１１】仮想チャネルの概念を説明するための模式図である。
【図１２】データリンクレイヤパケットのフォーマット例を示す説明図である。
【図１３】ｘ４リンクでのバイトストライピング例を示す模式図である。
【図１４】Ｌ０／Ｌ０ｓ／Ｌ１／Ｌ２というリンクステートの定義について説明する説明図である。
【図１５】アクティブステート電源管理の制御例を示すタイムチャートである。
【図１６】本発明の第１の実施の形態にかかるデータ通信装置の概要を示すブロック図である。
【図１７】転送レート計測回路の構成を示すブロック図である。
【図１８】デバイスＡからデバイスＢにメモリライトのトラフィック１が発生し、デバイスＢからデバイスＡにメモリライトのトラフィック２が発生している状態を示す模式図である。
【図１９】図１８に示すケースにおける特性の一例を示すグラフである。
【図２０】トラフィック１のペイロード条件のテーブルを示す模式図である。
【図２１】本発明の第２の実施の形態にかかるデータ通信装置の概要を示すブロック図である。
【図２２】本発明の第３の実施の形態にかかるデータ通信装置の概要を示すブロック図である。
【図２３】バッファサイズ制御回路の構成および動作を示す模式図である。
【図２４】トラフィックの転送レートが劣化する場合の一例を示す模式図である。
【図２５】トラフィックの転送レートが劣化する場合の別の一例を示す模式図である。
【図２６】図２４に示すケースにおける特性の一例を示すグラフである。
【図２７】転送レート／バッファサイズ変換テーブルを示す模式図である。
【符号の説明】
【０１０８】
１      データ通信装置
５，３１      パラメータ調整手段
３４，４４    転送レート計測手段
【図１】
2008021024.tif 000003
【図２】
2008021024.tif 000004
【図３】
2008021024.tif 000005
【図４】
2008021024.tif 000006
【図５】
2008021024.tif 000007
【図６】
2008021024.tif 000008
【図７−１】
2008021024.tif 000009
【図７−２】
2008021024.tif 000010
【図８】
2008021024.tif 000011
【図９】
2008021024.tif 000012
【図１０】
2008021024.tif 000013
【図１１】
2008021024.tif 000014
【図１２】
2008021024.tif 000015
【図１３】
2008021024.tif 000016
【図１４】
2008021024.tif 000017
【図１５】
2008021024.tif 000018
【図１６】
2008021024.tif 000019
【図１７】
2008021024.tif 000020
【図１８】
2008021024.tif 000021
【図１９】
2008021024.tif 000022
【図２０】
2008021024.tif 000023
【図２１】
2008021024.tif 000024
【図２２】
2008021024.tif 000025
【図２３】
2008021024.tif 000026
【図２４】
2008021024.tif 000027
【図２５】
2008021024.tif 000028
【図２６】
2008021024.tif 000029
【図２７】
2008021024.tif 000030