(57)【要約】【課題】シリアル転送インターフェースのデータ転送性能を容易に向上させることができるバススイッチ，電子機器及びデータ転送方法を提供することを目的とする。【解決手段】メモリ制御手段１０３と、複数の処理制御手段１０４，１０６との間に設けられたシリアル転送インターフェースのバススイッチ１０７であって、処理制御手段１０４，１０６との間で行うデータ送受信を制御する第一のデータ送受信手段２０２，２０３と、メモリ制御手段１０３との間で行うデータ送受信を制御する第二のデータ送受信手段２０１と、第一のデータ送受信手段２０２，２０３と第二のデータ送受信手段２０１との接続を切り替える切替手段とを有し、第一のデータ送受信手段２０２，２０３は、処理制御手段１０４，１０６からの１回の命令によりメモリ１０２との間で転送可能なデータ量以上の容量のバッファ２０４，２０５を有することにより上記課題を解決する。【選択図】図５
2009151752.tif 000002
【特許請求の範囲】
【請求項１】
メモリからのデータの読み出し及び前記メモリへのデータの書き込みを制御するメモリ制御手段と、前記データを処理する複数の処理制御手段との間に設けられたシリアル転送インターフェースのバススイッチであって、
前記処理制御手段毎に設けられ、前記処理制御手段との間で行うデータ送受信を制御する第一のデータ送受信手段と、
前記メモリ制御手段との間で行うデータ送受信を制御する第二のデータ送受信手段と、
前記第一のデータ送受信手段と前記第二のデータ送受信手段との接続を切り替える切替手段とを有し、
前記第一のデータ送受信手段は、前記処理制御手段からの１回の命令により前記メモリとの間で転送可能なデータ量以上の容量のバッファを有する
ことを特徴とするバススイッチ。
【請求項２】
前記第一のデータ送受信手段は、前記処理制御手段からの一の読み出し命令により前記メモリから読み出したデータを前記処理制御手段に送信する前に、前記処理制御手段からの次の読み出し命令を受信することを特徴とする請求項１記載のバススイッチ。
【請求項３】
前記メモリ制御手段と接続された前記第二のデータ送受信手段の転送レートはＮ個の前記処理制御手段と接続された前記第一のデータ送受信手段の転送レートのＮ倍以上であることを特徴とする請求項１記載のバススイッチ。
【請求項４】
前記メモリ制御手段と接続された前記第二のデータ送受信手段の転送レートは、Ｎ個の前記処理制御手段と接続されたＮ個の前記第一のデータ送受信手段の転送レートを合計した転送レート以上であることを特徴とする請求項１記載のバススイッチ。
【請求項５】
前記複数の処理制御手段は同一の機能を有し、前記データを分担して処理することを特徴とする請求項１記載のバススイッチ。
【請求項６】
メモリからのデータの読み出し及び前記メモリへのデータの書き込みを制御するメモリ制御手段と、前記データを処理する複数の処理制御手段とを有する電子機器であって、
前記メモリ制御手段及び前記複数の処理制御手段の間にシリアル転送インターフェースのバススイッチを有しており、
前記バススイッチは、
前記処理制御手段毎に設けられ、前記処理制御手段との間で行うデータ送受信を制御する第一のデータ送受信手段と、
前記メモリ制御手段との間で行うデータ送受信を制御する第二のデータ送受信手段と、
前記第一のデータ送受信手段と前記第二のデータ送受信手段との接続を切り替える切替手段とを有し、
前記第一のデータ送受信手段は、前記処理制御手段からの１回の命令により前記メモリとの間で転送可能なデータ量以上の容量のバッファを有する
ことを特徴とする電子機器。
【請求項７】
前記第一のデータ送受信手段は、前記処理制御手段からの一の読み出し命令により前記メモリから読み出したデータを前記処理制御手段に送信する前に、前記処理制御手段からの次の読み出し命令を受信することを特徴とする請求項６記載の電子機器。
【請求項８】
前記メモリ制御手段と接続された前記第二のデータ送受信手段の転送レートはＮ個の前記処理制御手段と接続された前記第一のデータ送受信手段の転送レートのＮ倍以上であることを特徴とする請求項６記載の電子機器。
【請求項９】
前記メモリ制御手段と接続された前記第二のデータ送受信手段の転送レートは、Ｎ個の前記処理制御手段と接続されたＮ個の前記第一のデータ送受信手段の転送レートを合計した転送レート以上であることを特徴とする請求項６記載の電子機器。
【請求項１０】
前記複数の処理制御手段は同一の機能を有し、前記データを分担して処理することを特徴とする請求項６記載の電子機器。
【請求項１１】
前記電子機器はプロッタ部を備えた画像処理装置であることを特徴とする請求項６乃至１０何れか一項記載の電子機器。
【請求項１２】
メモリからのデータの読み出し及び前記メモリへのデータの書き込みを制御するメモリ制御手段と、前記データを処理する複数の処理制御手段との間に設けられたシリアル転送インターフェースのバススイッチにおけるデータ転送方法であって、
前記処理制御手段毎に設けられ、前記処理制御手段との間で行うデータ送受信を制御する第一のデータ送受信手段が、前記処理制御手段から前記メモリとの間で行う読み出し命令を受信するステップと、
前記メモリ制御手段との間で行うデータ送受信を制御する第二のデータ送受信手段が前記読み出し命令を前記メモリ制御手段に送信するステップと、
前記第二のデータ送受信手段が前記読み出しの命令に応じて前記メモリから読み出されたデータを前記メモリ制御手段から受信するステップと、
前記第一のデータ送受信手段と前記第二のデータ送受信手段との接続を切り替える切替手段が前記メモリ制御手段から受信した前記データを、前記読み出し命令を送信した前記第一のデータ送受信手段へ送信するステップと、
前記第一のデータ送受信手段が前記処理制御手段からの１回の命令により前記メモリとの間で転送可能なデータ量以上の容量のバッファを用いて前記データを前記処理制御手段へ送信するステップと
を有することを特徴とするデータ転送方法。
【請求項１３】
前記第一のデータ送受信手段が、前記処理制御手段からの一の読み出し命令により前記メモリから読み出したデータを前記処理制御手段に送信する前に、前記処理制御手段からの次の読み出し命令を受信するステップ
を更に有することを特徴とする請求項１２記載のデータ転送方法。
【請求項１４】
前記メモリ制御手段と接続された前記第二のデータ送受信手段の転送レートはＮ個の前記処理制御手段と接続された前記第一のデータ送受信手段の転送レートのＮ倍以上であることを特徴とする請求項１２記載のデータ転送方法。
【請求項１５】
前記メモリ制御手段と接続された前記第二のデータ送受信手段の転送レートは、Ｎ個の前記処理制御手段と接続されたＮ個の前記第一のデータ送受信手段の転送レートを合計した転送レート以上であることを特徴とする請求項１２記載のデータ転送方法。
【請求項１６】
前記複数の処理制御手段は同一の機能を有し、前記データを分担して処理することを特徴とする請求項１２記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バススイッチ，電子機器及びデータ転送方法に係り、特にシリアル転送インターフェースのバススイッチ，そのバススイッチを有する電子機器及びそのバススイッチにおけるデータ転送方法に関する。
【背景技術】
【０００２】
例えば電子機器の一例としての複写機，プリンタ，パーソナルコンピュータ（ＰＣ）等ではＰＣＩバスに代えてシリアル転送インターフェースを利用しているものがある。例えばシリアル転送インターフェースの一例にはＰＣＩｅ（PCI Express）がある。ＰＣＩｅを利用した電子機器では、機器性能を向上させようとすると、ＰＣＩｅのデータ転送性能がボトルネックとなることがあった。
【０００３】
特許文献１には、ＰＣＩｅのバススイッチに複数のメモリを接続してメモリアクセスを分散させることにより、メモリのバス帯域が足りなくなることを防止し、データ転送の負荷を分散する内容が記載されている。
【特許文献１】特開２００５−３３２３７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来、ＰＣＩｅのデータ転送性能を向上させる為には、バスのレーン数を増やす方法や動作周波数を上げる方法等が考えられる。しかし、バスのレーン数を増やす方法や動作周波数を上げる方法は、デバイスの変更が大きく、開発コスト，人員，工数，リスク面に以下のような影響があった。
【０００５】
開発コストへの影響としては、論理層ＩＰ，物理層ＩＰを新規に開発又は調達する必要があるという問題があった。人員への影響としては、デバイスの開発に人的リソースの確保が必要であるという問題があった。工数への影響としては、デバイスの開発に数ヶ月程度の工数を有するという問題があった。また、リスクへの影響としてはデバイスを開発する為に、旧デバイスの動作実績が適用できないという問題もあった。
【０００６】
なお、引用文献１ではメモリのバス帯域が足りなくなることを防止できるが、ＰＣＩｅのバス帯域が足りなくなることを防止できるものではない。このように、従来はＰＣＩｅのデータ転送性能を容易に向上させることができないという問題があった。
【０００７】
本発明は、上記の点に鑑みなされたもので、シリアル転送インターフェースのデータ転送性能を容易に向上させることができるバススイッチ，電子機器及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明は、メモリからのデータの読み出し及び前記メモリへのデータの書き込みを制御するメモリ制御手段と、前記データを処理する複数の処理制御手段との間に設けられたシリアル転送インターフェースのバススイッチであって、前記処理制御手段毎に設けられ、前記処理制御手段との間で行うデータ送受信を制御する第一のデータ送受信手段と、前記メモリ制御手段との間で行うデータ送受信を制御する第二のデータ送受信手段と、前記第一のデータ送受信手段と前記第二のデータ送受信手段との接続を切り替える切替手段とを有し、前記第一のデータ送受信手段は、前記処理制御手段からの１回の命令により前記メモリとの間で転送可能なデータ量以上の容量のバッファを有することを特徴とする。
【０００９】
また、本発明は、メモリからのデータの読み出し及び前記メモリへのデータの書き込みを制御するメモリ制御手段と、前記データを処理する複数の処理制御手段とを有する電子機器であって、前記メモリ制御手段及び前記複数の処理制御手段の間にシリアル転送インターフェースのバススイッチを有しており、前記バススイッチは、前記処理制御手段毎に設けられ、前記処理制御手段との間で行うデータ送受信を制御する第一のデータ送受信手段と、前記メモリ制御手段との間で行うデータ送受信を制御する第二のデータ送受信手段と、前記第一のデータ送受信手段と前記第二のデータ送受信手段との接続を切り替える切替手段とを有し、前記第一のデータ送受信手段は、前記処理制御手段からの１回の命令により前記メモリとの間で転送可能なデータ量以上の容量のバッファを有することを特徴とする。
【００１０】
また、本発明は、メモリからのデータの読み出し及び前記メモリへのデータの書き込みを制御するメモリ制御手段と、前記データを処理する複数の処理制御手段との間に設けられたシリアル転送インターフェースのバススイッチにおけるデータ転送方法であって、前記処理制御手段毎に設けられ、前記処理制御手段との間で行うデータ送受信を制御する第一のデータ送受信手段が、前記処理制御手段から前記メモリとの間で行う読み出し命令を受信するステップと、前記メモリ制御手段との間で行うデータ送受信を制御する第二のデータ送受信手段が前記読み出し命令を前記メモリ制御手段に送信するステップと、前記第二のデータ送受信手段が前記読み出しの命令に応じて前記メモリから読み出されたデータを前記メモリ制御手段から受信するステップと、前記第一のデータ送受信手段と前記第二のデータ送受信手段との接続を切り替える切替手段が前記メモリ制御手段から受信した前記データを、前記読み出し命令を送信した前記第一のデータ送受信手段へ送信するステップと、前記第一のデータ送受信手段が前記処理制御手段からの１回の命令により前記メモリとの間で転送可能なデータ量以上の容量のバッファを用いて前記データを前記処理制御手段へ送信するステップとを有することを特徴とする。
【００１１】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、シリアル転送インターフェースのデータ転送性能を容易に向上させることができるバススイッチ，電子機器及びデータ転送方法を提供可能である。
【発明を実施するための最良の形態】
【００１３】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では電子機器の一例として画像処理装置であるプリンタを例に説明するが、如何なる電子機器であってもよい。まず、本発明の理解を容易とする為に従来のプリンタの構成例について説明する。
【００１４】
図１は従来のプリンタの一例の構成図である。なお、図１の構成図は本発明の説明に不要な部分を一部省略している。図１に示したプリンタは、ＣＰＵ１０１，システムメモリ１０２，ＭＣＨ（Memory Controller Hub）１０３，画像処理コントローラ１０４，画像出力装置（プロッタ部）１０５を有する構成である。
【００１５】
ＭＣＨ１０３はメモリインターフェース（Ｉ／Ｆ）用のチップセットである。本実施例のＭＣＨ１０３ではＰＣＩｅのＩ／Ｆのポートが最大８レーンで接続可能とする。レーンとは、ＰＣＩｅで用いられる最小構成の伝送路を言う。ポートとは、レーンを複数束ねた構成を言う。画像処理コントローラ１０４は画像の圧縮，変倍，色変換，階調処理等を行うデバイスである。画像出力装置１０５はデータ（画像データ）に基づいて用紙などの媒体上に画像形成を行う装置である。
【００１６】
ＣＰＵ１０１，システムメモリ１０２及び画像処理コントローラ１０４はＭＣＨ１０３経由で接続されている。また、画像処理コントローラ１０４は画像出力装置１０５と接続されている。画像処理コントローラ１０４は、システムメモリ１０２を使って各種画像処理を行う。また、画像処理コントローラ１０４はシステムメモリ１０２のデータを画像出力装置１０５へ出力する機能も担う。本実施例の画像処理コントローラ１０４ではＰＣＩｅのＩ／Ｆのポートが最大４レーンで接続可能とする。
【００１７】
このように、図１に示した従来のプリンタではシステム性能的にＭＣＨ１０３と画像処理コントローラ１０４とがＰＣＩｅの４レーン「ＰＣＩｅ×４」で接続されている。ところがプリンタ性能を向上させる為、更に高性能なシステムを構築したとき、図１に示した従来のプリンタではＰＣＩｅのバス帯域が不足し、ＭＣＨ１０３と画像処理コントローラ１０４との間のＰＣＩｅの４レーンがボトルネックになることも考えられる。
【００１８】
図１に示した従来のプリンタでは、画像処理コントローラ１０４のＰＣＩｅのレーン数が８レーンでないとバス帯域が不足すると分かったとしても、上記したように、ＰＣＩｅのＩ／Ｆのポートが最大８レーンで接続可能となるように画像処理コントローラ１０４を容易に変更できないという問題があった。
【実施例１】
【００１９】
図２は本発明のプリンタの一実施例の構成図である。図２の構成図は本発明の説明に不要な部分を一部省略している。図２に示したプリンタは、ＣＰＵ１０１，システムメモリ１０２，ＭＣＨ１０３，画像処理コントローラ１０４，画像出力装置１０５，画像処理コントローラ１０６及びＰＣＩｅのバススイッチ１０７を有する構成である。
【００２０】
図２に示したプリンタは、図１のプリンタに画像処理コントローラ１０６及びＰＣＩｅのバススイッチ１０７を追加した構成である。画像処理コントローラ１０６は、画像処理コントローラ１０４と同様に、画像の圧縮，変倍，色変換，階調処理等を行うデバイスである。ＰＣＩｅのバススイッチ１０７は２つ以上のポートを結合し、ポート間でパケットルーティングを行うものである。
【００２１】
本実施例のバススイッチ１０７は、３つのポートを持ち、アップストリーム（上流）側の１ポートが最大８レーンで接続可能し、ダウンストリーム（下流）側の２ポートが最大４レーンで接続可能とする。
【００２２】
図２に示したプリンタでは、ＭＣＨ１０３と画像処理コントローラ１０４及び１０６との間にＰＣＩｅのバススイッチ１０７が介在している。画像処理コントローラ１０６は画像処理コントローラ１０４の負荷を分散できるものであればよく、画像処理コントローラ１０４と同一のデバイスであっても、異なるデバイスであってもよい。
【００２３】
画像処理コントローラ１０４及び１０６は、共に、バススイッチ１０７とＰＣＩｅの４レーンで接続される。また、ＭＣＨ１０３とバススイッチ１０７とはＰＣＩｅの８レーンで接続される。図２に示したプリンタでは、画像処理コントローラ１０４とバススイッチ１０７とをそれぞれ接続しているレーン数よりも、ＭＣＨ１０３とバススイッチ１０７とを接続しているレーン数の方が多くなっている。
【００２４】
図２に示したプリンタではＭＣＨ１０３とバススイッチ１０７とを接続しているレーン数が画像処理コントローラ１０４とバススイッチ１０７とを接続しているレーン数の２倍以上、言い換えれば転送レートが２倍以上であることが望ましい。なお、Ｎ（以下、Ｎは複数とする）個の画像処理コントローラ１０４がバススイッチ１０７と接続されているプリンタでは、ＭＣＨ１０３とバススイッチ１０７とを接続しているレーン数が画像処理コントローラ１０４とバススイッチ１０７とを接続しているレーン数のＮ倍以上、言い換えれば転送レートがＮ倍以上であることが望ましい。
【００２５】
本発明によるプリンタでは、マスタとしてシステムメモリ１０２をアクセスする複数のデバイス（画像処理コントローラ１０４，１０６）をＰＣＩｅのバススイッチ１０７に接続し、各デバイスとバススイッチ１０７とを接続しているレーン数「４」よりも、ＭＣＨ１０３とバススイッチ１０７とを接続しているレーン数「８」の方を多くすることで、転送レート差を設けてＰＣＩｅのバス帯域におけるボトルネックを解消している。
【００２６】
ＰＣＩｅのバススイッチ１０７の本来の用途は、複数のモジュール（機能）を一つのバスに接続することである。しかし、図２に示したプリンタでは同一のモジュールを複数接続してデータ転送性能を強化している。図２に示したプリンタでは図１に示したプリンタと同様、ＰＣＩｅのレーン数が４レーンの既存の画像処理コントローラ１０４，１０６を利用できるので、開発コスト，人員，工数，リスクを最小限に抑えて、ＰＣＩｅのデータ転送性能を向上させることができる。したがって、図２に示したプリンタでは機器性能を容易に向上させることができる。
【００２７】
図３は従来のプリンタで行うデータ転送のタイミングチャートである。図３ではＭＣＨ１０３と画像処理コントローラ１０４との間のＰＣＩｅのバスを「バス１」とする。図３のタイミングチャートは、画像処理コントローラ１０４が、ＣＰＵ１０１からの起動要求を受けてシステムメモリ１０２から出力画像のデータをリードするときの「バス１」の動作を表している。
【００２８】
まず、ＣＰＵ１０１は画像処理コントローラ１０４内部のレジスタ（図示せず）をアクセスし、画像処理コントローラ１０４を起動する。画像処理コントローラ１０４はシステムメモリ１０２に対するリードコマンド（Ｃ１）をＭＣＨ１０３に発行する。リードコマンド（Ｃ１）を受け付けたＭＣＨ１０３は指定されたアドレスのデータをシステムメモリ１０２から読み出す。
【００２９】
ＭＣＨ１０３は、システムメモリ１０２から読み出したデータ（Ｄ１）をリードコマンド（Ｃ１）に対するＰＣＩｅの応答として画像処理コントローラ１０４に返す。画像処理コントローラ１０４はＭＣＨ１０３から受け取ったデータ（Ｄ１）を画像処理して画像出力装置１０５に送出する。画像出力装置１０５は受け取ったデータを紙に印字する。
【００３０】
画像処理コントローラ１０４はＭＣＨ１０３から受け取ったデータ（Ｄ１）を画像処理して画像出力装置１０５に送出する処理と並行して、システムメモリ１０２に対する次のリードコマンド（Ｃ２）をＭＣＨ１０３に発行する。以下、従来のプリンタではリードコマンド（Ｃ１）のときと同様に処理を続ける。
【００３１】
図４は本発明によるプリンタで行うデータ転送のタイミングチャートである。図４ではＭＣＨ１０３とバススイッチ１０７との間のＰＣＩｅのバスを「バス１」、画像処理コントローラ１０４とバススイッチ１０７との間のＰＣＩｅのバスを「バス２」、画像処理コントローラ１０６とバススイッチ１０７との間のＰＣＩｅのバスを「バス３」とする。
【００３２】
図４のタイミングチャートは、画像処理コントローラ１０４及び１０６が、ＣＰＵ１０１からの起動要求を受けてシステムメモリ１０２から出力画像のデータをリードするときの「バス１」〜「バス３」の動作を表している。図４のタイミングチャートでは、画像処理コントローラ１０４及び１０６が、異なる出力画像を分担する。例えばプリンタがＣＭＹＫ４プレーンのデータを扱う場合は、画像処理コントローラ１０４がＣ及びＭプレーンを分担し、画像処理コントローラ１０６がＹ及びＫプレーンを分担する。その他、プリンタが両面同時印刷を行う場合は画像処理コントローラ１０４が表面を分担し、画像処理コントローラ１０６が裏面を分担してもよい。
【００３３】
まず、ＣＰＵ１０１は画像処理コントローラ１０４及び１０６内部のレジスタ（図示せず）をアクセスし、画像処理コントローラ１０４及び１０６を起動する。画像処理コントローラ１０４はシステムメモリ１０２に対するリードコマンド（Ｃ１）を「バス２」を経由してＭＣＨ１０３に発行する。画像処理コントローラ１０６はシステムメモリ１０２に対するリードコマンド（Ｃイ）を「バス３」を経由してＭＣＨ１０３に発行する。
【００３４】
バススイッチ１０７は受け取った２つのリードコマンド（Ｃ１，Ｃイ）を加工せず順番に「バス１」を経由してＭＣＨ１０３に送出する。リードコマンド（Ｃ１，Ｃイ）を受け付けたＭＣＨ１０３は指定されたアドレスのデータをシステムメモリ１０２からそれぞれ読み出す。
【００３５】
ＭＣＨ１０３はシステムメモリ１０２から読み出したデータ（Ｄ１，Ｄイ）をリードコマンド（Ｃ１，Ｃイ）に対するＰＣＩｅの応答として「バス１」を経由してバススイッチ１０７に返す。
【００３６】
バススイッチ１０７は、受け取ったデータ（Ｄ１）をリードコマンド（Ｃ１）の要求元の画像処理コントローラ１０４に「バス２」を経由して返す。また、バススイッチ１０７は受け取ったデータ（Ｄイ）をリードコマンド（Ｃイ）の要求元の画像処理コントローラ１０６に「バス３」を経由して返す。
【００３７】
画像処理コントローラ１０４はバススイッチ１０７から受け取ったデータ（Ｄ１）を画像処理して画像出力装置１０５に渡しつつ、次のリードコマンド（Ｃ２）を発行する。画像処理コントローラ１０６はバススイッチ１０７から受け取ったデータ（Ｄイ）を画像処理して画像出力装置１０５に渡しつつ、次のリードコマンド（Ｃロ）を発行する。
【００３８】
画像出力装置１０５は画像処理コントローラ１０４又は１０６によって画像処理された後のデータを受け取ると、受け取ったデータを紙に印字する。リードコマンド（Ｃ２，Ｃロ）はリードコマンド（Ｃ１，Ｃイ）と同様にＭＣＨ１０３へ伝わる。以下、本発明によるプリンタではリードコマンド（Ｃ１，Ｃイ）のときと同様に処理を続ける。
【００３９】
なお、図４に示したタイミングチャートでは、「バス１」のデータ（Ｄ２）とリードコマンド（Ｃロ）とが重なっている。しかし、ＰＣＩｅのバスは送信バスと受信バスとが分かれた全二重転送なので同時転送が可能である。
【００４０】
「バス１」が「バス２」及び「バス３」と比べてレーン数が多い、言い換えればバス帯域が広いので、図４に示した本発明によるプリンタのタイミングチャートは図３に示した従来のプリンタのタイミングチャートよりデータの転送効率が良い。
【００４１】
図５はＰＣＩｅのバススイッチの構成とデータの流れとを表した模式図である。図５のＰＣＩｅのバススイッチ１０７は３つのポート２０１〜２０３を持つ。アップストリーム側（ＥＮＤＰ）のポート２０１は８レーン「ＰＣＩｅ×８」で上流デバイスであるＭＣＨ１０３と接続されている。ダウンストリーム側（ＲＯＯＴ）のポート２０２，２０３は４レーン「ＰＣＩｅ×４」で下流デバイスである画像処理コントローラ１０４，１０６と接続されている。
【００４２】
ダウンストリーム側のポート２０２，２０３は、データの送受信に利用するバッファ２０４，２０５を持っている。バッファ２０４，２０５の容量が１転送サイズ（一回のコマンドで転送可能なデータ量：例えば４ｋバイト）しか無い場合は、下流デバイスである画像処理コントローラ１０４，１０６からのリードコマンドが交互に発行されると、最高性能がでる。
【００４３】
ただし、下流デバイスである画像処理コントローラ１０４，１０６からのリードコマンドが交互に発行されない（同じ下流デバイスが連続してリードコマンドを発行する）場合はリードコマンドの発行元に対応するバッファ２０４又は２０５がフル（ＦＵＬＬ）状態となり、リードコマンドの発行元に対応するバッファ２０４又は２０５が空くまで、次のデータ転送が待ち状態となる。
【００４４】
バッファ２０４，２０５の容量が複数（Ｎ）転送サイズ（Ｎ回のコマンドで転送可能なデータ量）以上ある場合には、下流デバイスである画像処理コントローラ１０４，１０６からのリードコマンドが交互に発行されなくても、データ転送性能の低下を防げる。具体的にはバッファ２０４，２０５の容量がＮ転送サイズあれば、同じ下流デバイスがＮ回連続してリードコマンドを発行してもリードコマンドの発行元に対応するバッファ２０４又は２０５がフル状態とならず、次のデータ転送が待ち状態となることがない。
【００４５】
次に、ＰＣＩｅのバススイッチ１０７の動作について説明する。バススイッチ１０７の各ポート２０１〜２０３は例えば図６に表すようにメモリ空間へマッピングされる。図６はバススイッチの各ポートがメモリ空間にマッピングされた様子を表した一例の模式図である。なお、メモリ空間へのマッピングは起動時のポート２０１〜２０３毎のコンフィグレーション（一般的なＰＣＩのコンフィグレーション）によって行われる。
【００４６】
例えばポート２０１〜２０３を持つバススイッチが図６のようにメモリ空間へマッピングされたと仮定すると、ポート２０１に接続されている上流デバイスから、ポート２０２のアドレス空間（例えば０ｘ３０００  ００００）にアクセスすると、ポート２０２に接続されている下流デバイスと接続される。つまり、ポート２０１に接続されている上流デバイスからポート２０２に接続されている下流デバイスにアクセスできる。
【００４７】
なお、ＰＣＩｅのバススイッチ１０７は上記したメモリマップ方式ではなく、個別のアクセスウインドウを持っていて、ウインドウのオフセットを設定することで、各ポート２０１〜２０３毎に全アドレス空間をマッピングするものであってもよい。本発明によるバススイッチ１０７はスイッチングの方法に依存するものではなく、ポート２０１〜２０３間の接続（パス）を適切に切り替え可能であればよい。
【００４８】
次に、参考として、バススイッチ１０７にバッファ２０４，２０５を持つとき、持たないときのデータ転送のタイミングチャートについて説明する。図７はバススイッチ内部にバッファを持たない場合のデータ転送のタイミングチャートを示す。なお、バススイッチ１０７内部にバッファ２０４，２０５を持つ場合のデータ転送のタイミングチャートは図４に示した通りである。
【００４９】
バススイッチ１０７内部にバッファ２０４，２０５を持たない場合のデータ転送のタイミングチャートについて図７を参照しつつ説明する。内部にバッファ２０４，２０５を持たないため、図７のタイミングチャートは「バス１」でリードコマンド（Ｃ１，Ｃイ）が二つ連続で発行されるものの、受け取るデータ（Ｄ１，Ｄイ）が一つずつとなる。
【００５０】
図７のタイミングチャートでは、バススイッチ１０７が「バス１」でデータ（Ｄ１）を受け取り、そのデータ（Ｄ１）を「バス２」で画像処理コントローラ１０４に送出し終わるまで「バス１」でデータ（Ｄイ）を受け取れない。
【００５１】
即ち、内部にバッファ２０４，２０５を持たないバススイッチ１０７は、自身のレイテンシの為、データ転送性能のパフォーマンスを低下させると共に、複数のリードコマンドを連続転送してもデータ転送性能のパフォーマンスの向上に繋がらない。なお、ここで言うレイテンシとは、リードコマンドが発行されてからリードコマンドの発行元にデータを返すまでの時間である。
【００５２】
一方、内部にバッファ２０４，２０５を持つバススイッチ１０７は図４に示したように自身のレイテンシの為、データ転送性能のパフォーマンスを低下させるが、バッファ２０４，２０５を持つことによりデータを先読みできるので、複数のリードコマンドを連続転送することにより自身のレイテンシを相殺し、データ転送性能のパフォーマンスを向上させることができる。
【００５３】
次に、バススイッチ１０７にバッファ２０４，２０５を持ち、画像処理コントローラ１０４，１０６からのリードコマンドの先投げがある場合のタイミングチャートについて説明する。図８はバススイッチ内部にバッファを持ち、リードコマンドの先投げがある場合のデータ転送のタイミングチャートを示す。なお、リードコマンドの先投げとはリードコマンドの発行元である下流デバイスが前回のリードコマンドに対するデータを受け取る前に、次のリードコマンドを発行することである。
【００５４】
図８のタイミングチャートは、画像処理コントローラ１０４及び１０６が、ＣＰＵ１０１からの起動要求を受けてシステムメモリ１０２から出力画像のデータをリードするときの「バス１」〜「バス３」の動作を表している。図８のタイミングチャートでは、ＣＰＵ１０１からの起動要求を受けると、画像処理コントローラ１０４及び１０６が、連続して複数（図８では２つ）のリードコマンドを、先に発行したリードコマンドのデータ（応答データ）を受信する前に発行することで、リードコマンドの先投げを行う。
【００５５】
まず、ＣＰＵ１０１は画像処理コントローラ１０４及び１０６内部のレジスタ（図示せず）をアクセスし、画像処理コントローラ１０４及び１０６を起動する。画像処理コントローラ１０４は、システムメモリ１０２に対するリードコマンド（Ｃ１，Ｃ２）を連続して「バス２」経由でＭＣＨ１０３に発行する。画像処理コントローラ１０６はシステムメモリ１０２に対するリードコマンド（Ｃイ，Ｃロ）を「バス３」経由でＭＣＨ１０３に発行する。バススイッチ１０７は受け取った４つのリードコマンド（Ｃ１，Ｃイ，Ｃ２，Ｃロ）を加工せず順番に「バス１」経由でＭＣＨ１０３に送出する。
【００５６】
リードコマンド（Ｃ１，Ｃイ，Ｃ２，Ｃロ）を受け付けたＭＣＨ１０３は指定されたアドレスのデータ（Ｄ１，Ｄイ，Ｄ２，Ｄロ）をシステムメモリ１０２からそれぞれ読み出す。ＭＣＨ１０３はシステムメモリ１０２から読み出したデータ（Ｄ１，Ｄイ）をリードコマンド（Ｃ１，Ｃイ）に対するＰＣＩｅの応答として「バス１」経由でバススイッチ１０７に返す。
【００５７】
図８はバッファ２０４，２０５の容量が１転送サイズの例とする。従って、この時点ではシステムメモリ１０２から読み出したデータ（Ｄ２，Ｄロ）をバススイッチ１０７に返していない。
【００５８】
バススイッチ１０７は、受け取ったデータ（Ｄ１）をリードコマンド（Ｃ１）の要求元の画像処理コントローラ１０４に「バス２」経由で返す。また、バススイッチ１０７は受け取ったデータ（Ｄイ）をリードコマンド（Ｃイ）の要求元の画像処理コントローラ１０６に「バス３」経由で返す。
【００５９】
画像処理コントローラ１０４はバススイッチ１０７から受け取ったデータ（Ｄ１）を画像処理して画像出力装置１０５に渡しつつ、次のリードコマンド（Ｃ３）を発行する。画像処理コントローラ１０６はバススイッチ１０７から受け取ったデータ（Ｄイ）を画像処理して画像出力装置１０５に渡しつつ、次のリードコマンド（Ｃハ）を発行する。リードコマンド（Ｃ３，Ｃハ）は、リードコマンド（Ｃ１，Ｃイ等）と同様、ＭＣＨ１０３に伝わる。
【００６０】
なお、バススイッチ１０７は「バス２」においてデータ（Ｄ１）の転送が完了した時点でバッファ２０４が空になるため、「バス１」においてデータ（Ｄ２）の転送が始まる。画像処理コントローラ１０４はリードコマンド（Ｃ３）を発行した直後、データ（Ｄ２）の受信を開始する。
【００６１】
また、バススイッチ１０７は「バス３」においてデータ（Ｄイ）の転送が完了した時点でバッファ２０５が空になるため、「バス１」においてデータ（Ｄロ）の転送が始まる。画像処理コントローラ１０６はリードコマンド（Ｃハ）を発行した直後、データ（Ｄロ）の受信を開始する。
【００６２】
なお、画像出力装置１０５は画像処理コントローラ１０４又は１０６によって画像処理された後のデータを受け取ると、受け取ったデータを紙に印字する。以下、本発明によるプリンタではリードコマンド（Ｃ１，Ｃイ）のときと同様に処理を続ける。
【００６３】
このように図８に示した本発明によるプリンタのタイミングチャートは画像処理コントローラ１０４，１０６がリードコマンドを先投げすることで、「バス１」のバス帯域を有効に利用できるので、データの転送効率を更に良くできる。
【００６４】
データの転送効率を更に良くしたい場合は、下流デバイスである画像処理コントローラ１０４，１０６の数を増やすこと、バッファ２０４，２０５の容量を増やすこと、下流デバイスである画像処理コントローラ１０４，１０６が先投げするリードコマンド数を増やすことで対応できる。なお、下流デバイスである画像処理コントローラ１０４，１０６の数を増やす場合は、「バス１」のバス帯域が狭いと効果が少なくなる。
【００６５】
ところで、本発明によるバススイッチ１０７はデータの転送単位（パケット）が小さいと「バス１」のバス帯域を有効に使えず、データの転送効率が悪くなる。次に、本発明によるバススイッチ１０７におけるデータの転送単位（パケット）が大きいとき及び小さいときのデータ転送のタイミングチャートについて説明する。
【００６６】
図９はデータの転送単位（パケット）が大きいとき及び小さいときのデータ転送のタイミングチャートを示す。なお、図９（Ａ）はリードコマンドの先投げが無く、パケットが小さいときのデータ転送のタイミングチャートである。図９（Ｂ）はリードコマンドの先投げが無く、パケットが大きいときのデータ転送のタイミングチャートである。
【００６７】
図９（Ａ）に示すように、バススイッチ１０７は１パケットが小さい（短い）と、「バス１」におけるリードコマンド発行待ちの空白時間の発生頻度が多くなり、データの転送効率が悪くなる。一方、図９（Ｂ）に示すように、バススイッチ１０７は１パケットが大きい（長い）と、「バス１」におけるリードコマンド発行待ちの空白時間の発生頻度が少なくなり、データの転送効率が良くなる。
【００６８】
このように、本発明によるバススイッチ１０７はパケットが短い場合に比べてパケットが長い方が「バス１」におけるリードコマンド発行待ちの空白時間の発生頻度が少なくなるため、リードコマンド発行待ちの空白時間が無視でき、「バス１」のバス帯域を有効に使うことで、データの転送効率が良くなる。
【００６９】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えばバススイッチ１０７は３つのポートを持っているが、３つのポートに限定するものではなく、４つ以上のポートを持つ構成であってもよい。また、バスのレーン数（４，８）も一例であって、他のレーン数であってもよい。
【実施例２】
【００７０】
図１０は本発明のプリンタの他の実施例の構成図である。図１０の構成図は本発明の説明に不要な部分を一部省略している。図１０に示したプリンタは、ＣＰＵ１０１，システムメモリ１０２，ＭＣＨ１０３，画像処理コントローラ１０４，画像出力装置１０５，画像処理コントローラ１０６及びＰＣＩｅのバススイッチ１０７を有する構成である。
【００７１】
図１０に示したプリンタは、一部を除き、図２のプリンタと同様な構成である。図１０に示したプリンタは、画像処理コントローラ１０６がＰＣＩｅの１レーンでバススイッチ１０７と接続される点と、画像処理コントローラ１０４がＣ，Ｍ及びＹプレーンを分担する点と、画像処理コントローラ１０６がＫプレーンを分担する点とで図２のプリンタと異なる。
【００７２】
つまり、図１０に示したプリンタは、画像処理コントローラ１０４とバススイッチ１０７とを接続しているレーン数と、画像処理コントローラ１０６とバススイッチ１０７とを接続しているレーン数とが異なっている。言い換えれば、図１０に示したプリンタは、画像処理コントローラ１０４とバススイッチ１０７との間の転送レートと、画像処理コントローラ１０６とバススイッチ１０７との間の転送レートとが異なっている。
【００７３】
また、図１０に示したプリンタは図２のプリンタと同様、画像処理コントローラ１０４又は１０６とバススイッチ１０７とをそれぞれ接続しているレーン数よりも、ＭＣＨ１０３とバススイッチ１０７とを接続しているレーン数の方が多くなっている。
【００７４】
図１０に示したプリンタは、負荷を分散できるモジュール（画像処理コントローラ１０４，１０６）を複数接続してデータ転送性能を強化している。図１０に示したプリンタでは図２に示したプリンタと同様、ＰＣＩｅのレーン数が４又は１レーンの既存の画像処理コントローラ１０４，１０６を利用できるので、開発コスト，人員，工数，リスクを最小限に抑えて、ＰＣＩｅのデータ転送性能を向上させることができる。したがって、図１０に示したプリンタでは機器性能を容易に向上させることができる。
【００７５】
図２に示したプリンタは、画像処理コントローラ１０４とバススイッチ１０７との間の転送レートと、画像処理コントローラ１０６とバススイッチ１０７との間の転送レートとが等しく、図８に示したタイミングチャートのように、バス１の帯域をバス２とバス３とが均等に使用する。
【００７６】
一方、図１０に示したプリンタは、画像処理コントローラ１０４とバススイッチ１０７との間の転送レートと、画像処理コントローラ１０６とバススイッチ１０７との間の転送レートとが異なっているため、図１１に示すようなタイミングチャートとなる。
【００７７】
図１１は本発明によるプリンタで行うデータ転送のうち、転送レートに差がある場合のタイミングチャートである。図１１では図８と同様、ＭＣＨ１０３とバススイッチ１０７との間のＰＣＩｅのバスを「バス１」、画像処理コントローラ１０４とバススイッチ１０７との間のＰＣＩｅのバスを「バス２」、画像処理コントローラ１０６とバススイッチ１０７との間のＰＣＩｅのバスを「バス３」とする。
【００７８】
図１１のタイミングチャートは、図８のタイミングチャートと同様に、画像処理コントローラ１０４及び１０６がＣＰＵ１０１からの起動要求を受けてシステムメモリ１０２から出力画像のデータをリードするときの「バス１」〜「バス３」の動作を表している。
【００７９】
図１１のタイミングチャートでは、ＣＰＵ１０１からの起動要求を受けると、図８のタイミングチャートと同様、画像処理コントローラ１０４及び１０６が、最初にリードコマンドの先投げを行う。
【００８０】
まず、ＣＰＵ１０１は画像処理コントローラ１０４及び１０６内部のレジスタ（図示せず）をアクセスし、画像処理コントローラ１０４及び１０６を起動する。画像処理コントローラ１０４は、システムメモリ１０２に対するリードコマンド（Ｃ１，Ｃ２）を連続して「バス２」経由でＭＣＨ１０３に発行する。画像処理コントローラ１０６はシステムメモリ１０２に対するリードコマンド（Ｃイ，Ｃロ）を「バス３」経由でＭＣＨ１０３に発行する。バススイッチ１０７は受け取った４つのリードコマンド（Ｃ１，Ｃイ，Ｃ２，Ｃロ）を加工せず順番に「バス１」経由でＭＣＨ１０３に送出する。
【００８１】
リードコマンド（Ｃ１，Ｃイ，Ｃ２，Ｃロ）を受け付けたＭＣＨ１０３は指定されたアドレスのデータ（Ｄ１，Ｄイ，Ｄ２，Ｄロ）をシステムメモリ１０２からそれぞれ読み出す。ＭＣＨ１０３はシステムメモリ１０２から読み出したデータ（Ｄ１，Ｄイ）をリードコマンド（Ｃ１，Ｃイ）に対するＰＣＩｅの応答として「バス１」経由でバススイッチ１０７に返す。
【００８２】
図８はバッファ２０４，２０５の容量が１転送サイズの例とする。従って、この時点ではシステムメモリ１０２から読み出したデータ（Ｄ２，Ｄロ）をバススイッチ１０７に返していない。
【００８３】
バススイッチ１０７は、受け取ったデータ（Ｄ１）をリードコマンド（Ｃ１）の要求元の画像処理コントローラ１０４に「バス２」経由で返す。また、バススイッチ１０７は受け取ったデータ（Ｄイ）をリードコマンド（Ｃイ）の要求元の画像処理コントローラ１０６に「バス３」経由で返す。
【００８４】
しかし、画像処理コントローラ１０６とバススイッチ１０７との間の「バス３」の転送レートは、画像処理コントローラ１０４とバススイッチ１０７との間の「バス２」の転送レートに比べて遅いため、「バス２」においてデータ（Ｄ１）の転送が完了しても、「バス３」におけるデータ（Ｄイ）の転送が暫く完了しない。
【００８５】
画像処理コントローラ１０４はバススイッチ１０７から受け取ったデータ（Ｄ１）を画像処理して画像出力装置１０５に渡しつつ、次のリードコマンド（Ｃ３）を発行する。このように、画像処理コントローラ１０４はバススイッチ１０７からの１つのデータの転送が完了すると、次のリードコマンドを発行する。
【００８６】
一方、画像処理コントローラ１０６はバススイッチ１０７からデータ（Ｄイ，Ｄロ）を受け取ったあと、次のリードコマンド（Ｃハ）を発行する。画像処理コントローラ１０６は最初に２つのリードコマンド（Ｃイ，Ｃロ）を発行したあと、暫く、次のリードコマンド（Ｃハ）を発行しない。この間、「バス２」は「バス１」を断続的に利用してデータ転送
を行うことができる。
【００８７】
図１０に示したプリンタは、画像処理コントローラ１０４とバススイッチ１０７との間の転送レートと、画像処理コントローラ１０６とバススイッチ１０７との間の転送レートとが異なり、図１１に示したタイミングチャートのように、バス１の帯域をバス２がバス３よりも多く使用する。
【実施例３】
【００８８】
図１２は本発明のプリンタの他の実施例の構成図である。図１２の構成図は発明の説明に不要な部分を一部省略している。図１２に示したプリンタは、ＣＰＵ１０１，システムメモリ１０２，ＭＣＨ１０３，画像処理コントローラ１０４，画像出力装置１０５，画像処理コントローラ１０６，ＰＣＩｅのバススイッチ１０７及び画像出力装置１０８を有する構成である。
【００８９】
図１２に示したプリンタは、一部を除き、図２のプリンタと同様な構成である。図１２に示したプリンタは、画像処理コントローラ１０４，１０６がＣ，Ｍ，Ｙ及びＫプレーンを分担する点と、画像処理コントローラ１０６が画像出力装置１０５ではなく画像出力装置１０８に接続されている点とで図２のプリンタと異なる。
【００９０】
図１２に示したプリンタは、両面同時印刷を行うことができ、画像処理コントローラ１０４が表面を分担し、画像処理コントローラ１０６が裏面を分担する。図１２に示したプリンタは、負荷を分散できるモジュール（画像処理コントローラ１０４，１０６）をバススイッチ１０７に複数接続してデータ転送性能を強化すると共に、画像処理コントローラ１０４が両面同時印刷における表面を分担し、画像処理コントローラ１０６が両面同時印刷における裏面を分担することにより、印刷機能も強化できる。
【００９１】
なお、特許請求の範囲に記載したメモリ制御手段はＭＣＨ１０３に相当し、処理制御手段は画像処理コントローラ１０４，１０６に相当し、第一のデータ送受信手段はポート２０２，２０３に相当し、第二のデータ送受信手段はポート２０１に相当する。
【図面の簡単な説明】
【００９２】
【図１】従来のプリンタの一例の構成図である。
【図２】本発明のプリンタの一実施例の構成図である。
【図３】従来のプリンタで行うデータ転送のタイミングチャートである。
【図４】本発明によるプリンタで行うデータ転送のタイミングチャートである。
【図５】ＰＣＩｅのバススイッチの構成とデータの流れとを表した模式図である。
【図６】バススイッチの各ポートがメモリ空間にマッピングされた様子を表した一例の模式図である。
【図７】バススイッチ内部にバッファを持たない場合のデータ転送のタイミングチャートである。
【図８】バススイッチ内部にバッファを持ち、リードコマンドの先投げがある場合のデータ転送のタイミングチャートである。
【図９】データの転送単位（パケット）が大きいとき及び小さいときのデータ転送のタイミングチャートである。
【図１０】本発明のプリンタの他の実施例の構成図である。
【図１１】本発明によるプリンタで行うデータ転送のうち、転送レートに差がある場合のタイミングチャートである。
【図１２】本発明のプリンタの他の実施例の構成図である。
【符号の説明】
【００９３】
１０１    ＣＰＵ
１０２    システムメモリ
１０３    ＭＣＨ（Memory Controller Hub）
１０４，１０６    画像処理コントローラ
１０５，１０８    画像出力装置（プロッタ部）
１０７    ＰＣＩｅのバススイッチ
２０１〜２０３    ポート
２０４，２０５    バッファ
【図１】
2009151752.tif 000003
【図２】
2009151752.tif 000004
【図３】
2009151752.tif 000005
【図４】
2009151752.tif 000006
【図５】
2009151752.tif 000007
【図６】
2009151752.tif 000008
【図７】
2009151752.tif 000009
【図８】
2009151752.tif 000010
【図９】
2009151752.tif 000011
【図１０】
2009151752.tif 000012
【図１１】
2009151752.tif 000013
【図１２】
2009151752.tif 000014