(57)【要約】【課題】データの転送状況の変化に合わせてアービトレーションを切り替えることができるスイッチ装置、画像形成装置、及びスイッチ制御方法を提供する。【解決手段】コントローラ１０と接続されるＵＰ０ポート１１０と、スキャナ３０、プロッタ６０とそれぞれ接続されるＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０と、ＵＰ０ポート、ＤＯＷＮ０ポート、ＤＯＷＮ１ポートの通信状況をそれぞれ監視する複数の監視部１４１、１４２、１４３と、ＵＰ０ポート、ＤＯＷＮ０ポート、及びＤＯＷＮ１ポートの通信状況と、アービトレーションのアルゴリズムとを対応付けた切替テーブルを記憶する記憶部１７０と、切替テーブルを参照して、ＵＰ０ポート、ＤＯＷＮ０ポート、及びＤＯＷＮ１ポートに対するアービトレーションの現在のアルゴリズムを、複数の監視部の監視結果が示す通信状況に対応するアルゴリズムに切り替える制御部１６０と、を備える。【選択図】図２
2010219963.tif 000002
【特許請求の範囲】
【請求項１】
上位デバイスと接続されるアップリンクポートと、
下位デバイスと接続される複数のダウンリンクポートと、
前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況をそれぞれ監視する複数の監視手段と、
前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況とアービトレーションのアルゴリズムとを対応付けたテーブルを参照して、前記アービトレーションのアルゴリズムを、複数の前記監視手段の監視結果が示す通信状況に対応する前記アルゴリズムに切り替える制御手段と、
を備えることを特徴とするスイッチ装置。
【請求項２】
前記テーブルには、通信の競合を示す通信状況と、所定の時間間隔で前記アップリンクポート及び複数の前記ダウンリンクポートに通信の機会を割り当てる第１アルゴリズムとが対応付けられており、
前記制御手段は、前記監視結果が通信の競合を示す場合には、前記テーブルを参照して、前記アービトレーションのアルゴリズムを前記第１アルゴリズムに切り替えることを特徴とする請求項１に記載のスイッチ装置。
【請求項３】
前記テーブルには、通信の未競合を示す通信状況と、優先度に従って前記アップリンクポート及び複数の前記ダウンリンクポートに通信の機会を割り当てる第２アルゴリズムとが対応付けられており、
前記制御手段は、前記監視結果が通信の未競合を示す場合には、前記テーブルを参照して、前記アービトレーションのアルゴリズムを前記第２アルゴリズムに切り替えることを特徴とする請求項１又は２に記載のスイッチ装置。
【請求項４】
前記アップリンクポート及び複数の前記ダウンリンクポートは、それぞれ、送信データが格納される送信バッファと、受信データが格納される受信バッファと、を備え、
前記監視手段は、監視対象のポートの前記送信バッファに格納される送信データの有無から、当該ポートがアイドル状態であるか否かを監視することを特徴とする請求項１〜３のいずれか１つに記載のスイッチ装置。
【請求項５】
前記監視手段は、
監視対象のポートの通信が終了してから次の通信が開始されるまでの時間を計測する計測器と、
閾値が設定されたレジスタと、
計測された時間と閾値とを比較し、計測された時間が閾値を超える場合に、前記監視対象のポートがアイドル状態であることを示す値を出力する比較器と、を備えることを特徴とする請求項４に記載のスイッチ装置。
【請求項６】
前記テーブルは、前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況に、前記アップリンクポート及び複数の前記ダウンリンクポートに通信の機会を割り当てる優先度が定義されたアービトレーションテーブルに対応付けられたテーブルであり、
前記制御手段は、前記テーブルを参照して、前記アップリンクポート及び複数の前記ダウンリンクポートの現在の優先度を、前記監視結果が示す通信状況に対応する前記優先度に切り替えることを特徴とする請求項１〜５のいずれか１つに記載のスイッチ装置。
【請求項７】
前記第１アルゴリズムは、ＴＢＷＲＲ（Time based Weighted Round Robin）であることを特徴とする請求項２に記載のスイッチ装置。
【請求項８】
前記第２アルゴリズムは、ＲＲ（Round Robin）又はＷＲＲ（Weighted Round Robin）であることを特徴とする請求項３に記載のスイッチ装置。
【請求項９】
請求項１〜８のいずれかに記載のスイッチ装置と、
前記アップリンクポートに接続されるコントローラと、
複数の前記ダウンリンクポートに接続されるスキャナ及びプロッタと、を備えることを特徴とする画像形成装置。
【請求項１０】
スイッチ装置で実行されるスイッチ制御方法であって、
上位デバイスと接続されるアップリンクポート及び下位デバイスと接続される複数のダウンリンクポートの通信状況をそれぞれ監視する監視ステップと、
前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況とアービトレーションのアルゴリズムとを対応付けたテーブルを参照して、前記アービトレーションのアルゴリズムを、前記監視ステップでの監視結果が示す通信状況に対応する前記アルゴリズムに切り替える制御ステップと、
を具備することを特徴とするスイッチ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ装置、画像形成装置、及びスイッチ制御方法に関する。
【背景技術】
【０００２】
近年、ＰＣ（Personal Computer）を始め、複合機（ＭＦＰ：Multi Function Printer）などの画像形成装置においても、機器内でのデータ転送にＰＣＩ  Ｅｘｐｒｅｓｓが用いられている。ＰＣＩ  Ｅｘｐｒｅｓｓを用いたシステムでは、通常、デバイス拡張の容易性から、複数のポートを有するＰＣＩ  Ｅｘｐｒｅｓｓ  Ｓｗｉｔｃｈを用いて、デバイスの拡張が行われる。
【０００３】
上述のようにＰＣＩ  Ｅｘｐｒｅｓｓ  Ｓｗｉｔｃｈには、複数のデバイスが接続されるため、通信に競合が生じる場合がある。このため、ＰＣＩ  Ｅｘｐｒｅｓｓの規格では、競合発生時に優先度に従って各ポートに対して通信の機会を割り当てるＲＲ（Round Robin）やＷＲＲ（Weighted Round Robin）、競合の有無に関わらず所定の時間間隔で各ポートに対して通信の機会を割り当てるＴＢＷＲＲ（Time based Weighted Round Robin）など複数のアービトレーション機能が規定されている。
【０００４】
また、例えば特許文献１では、使用目的に応じた優先度で各ポートに対して通信の機会を割り当てるため、ユーザ操作又はソフトウェア（ＢＩＯＳ）により、各ポートの優先度が定義されたテーブルを切り替え、切り替え後のテーブルに定義された優先度に従って、アービトレーションを行う技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したアービトレーション機能には、一長一短があり、データの転送状況に適したアービトレーションを行わないと種々の問題が生じうる。
【０００６】
例えば、ＲＲやＷＲＲの場合、ＰＣＩ  Ｅｘｐｒｅｓｓの帯域に余裕がある状態（例えば、利用率３０％〜７０％程度）でのデータ転送であれば、アービトレーションが有効に機能するものの、帯域に余裕がなく、デバイス間でリクエスト発行能力に差が有る場合には、優先度どおりに通信の機会を割り当てられない場合も生じうる。
【０００７】
特に、画像形成装置では、スキャナから画像データを読み込むと同時にプリンタから画像データを出力するコピー動作など高負荷がかかる状態で競合が発生するため、上記問題が生じやすい。コピー動作においては、通常、１ライン分のデータ転送に１００ｕｓｅｃ以下の時間が要求されるが、上記のように優先度どおりに通信の機会が割り当てられなくなってしまうと、時間内にデータ転送が完了せず、プリンタから異常画像が出力されてしまうなど深刻な問題となる。
【０００８】
また例えば、ＴＢＷＲＲの場合、通信を行わないポートに対しても通信の機会が割り当てられてしまうため、ＰＣＩ  Ｅｘｐｒｅｓｓの帯域に無駄が生じてしまい、データ転送に必要以上の時間がかかってしまう。
【０００９】
従って、データ転送の状況に応じて、アービトレーション機能を使い分けることが望まれる。
【００１０】
しかしながら、特許文献１に開示されたような技術では、ユーザ操作又はソフトウェア（ＢＩＯＳ）による切り替えであるため、データの転送状況に変化が発生した場合に、即座にアービトレーションに切り替えることは難しい。例えば、画像形成装置のコピー動作では、前述のように、１ライン分のデータ転送に１００ｕｓｅｃ以下の時間が要求されるため、１ｕｓｅｃ程度の短い時間でのアービトレーションの切り替えが必要になるが、特許文献１に開示されたような技術では対応できない。
【００１１】
本発明は、上記事情に鑑みてなされたものであり、データの転送状況の変化に合わせて、アービトレーションを切り替えることができるスイッチ装置、画像形成装置、及びスイッチ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明の一態様にかかるスイッチ装置は、上位デバイスと接続されるアップリンクポートと、下位デバイスと接続される複数のダウンリンクポートと、前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況をそれぞれ監視する複数の監視手段と、前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況とアービトレーションのアルゴリズムとを対応付けたテーブルを参照して、前記アービトレーションのアルゴリズムを、複数の前記監視手段の監視結果が示す通信状況に対応する前記アルゴリズムに切り替える制御手段と、を備えることを特徴とする。
【００１３】
また、本発明の別の態様にかかる画像形成装置は、上記スイッチ装置と、前記アップリンクポートに接続されるコントローラと、複数の前記ダウンリンクポートに接続されるスキャナ及びプロッタと、を備えることを特徴とする。
【００１４】
また、本発明の別の態様にかかるスイッチ制御方法は、スイッチ装置で実行されるスイッチ制御方法であって、上位デバイスと接続されるアップリンクポート及び下位デバイスと接続される複数のダウンリンクポートの通信状況をそれぞれ監視する監視ステップと、前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況とアービトレーションのアルゴリズムとを対応付けたテーブルを参照して、前記アービトレーションのアルゴリズムを、前記監視ステップでの監視結果が示す通信状況に対応する前記アルゴリズムに切り替える制御ステップと、を具備することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、データの転送状況の変化に合わせて、アービトレーションを切り替えることができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】本実施形態の複合機の構成例を示すブロック図である。
【図２】本実施形態のＳＷの構成例を示すブロック図である。
【図３】本実施形態のＳＷの各構成の関係を説明するための図である。
【図４】本実施形態の監視部の構成例を示すブロック図である。
【図５】本実施形態の計測器のタイマー動作例を示すフローチャート図である。
【図６】本実施形態の比較器の判定動作例を示すフローチャート図である。
【図７】本実施形態の制御部のアービトレーションの切り替え動作例を示すフローチャート図である。
【図８】本実施形態の切替テーブル例を示す図である。
【図９】本実施形態のアービトレーションテーブル例を示す図である。
【図１０】ＷＲＲを説明するための図である。
【図１１】ＷＲＲを説明するための図である。
【図１２】ＴＢＷＲＲを説明するための図である。
【図１３】ＴＢＷＲＲを説明するための図である。
【図１４】本実施形態のアービトレーションの切り替え例を説明するための図である。
【図１５】本実施形態のアービトレーションの切り替え例を説明するための図である。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照しながら、本発明にかかるスイッチ装置、画像形成装置、及びスイッチ制御方法の最良な実施の形態を詳細に説明する。
【００１８】
なお、本実施の形態では、スイッチ装置を適用した画像形成装置として、コピー機能、プリンタ機能、及びスキャナ機能を有する複合機にＰＣＩ  Ｅｘｐｒｅｓｓ  Ｓｗｉｔｃｈ（以下、「ＳＷ」と称する）を適用した場合を例にとり説明するが、本発明はこれに限定されるものではない。
【００１９】
まず、本実施の形態の複合機の構成について説明する。
【００２０】
図１は、本実施の形態の複合機１の構成の一例を示すブロック図である。図１に示すように、複合機１は、コントローラ１０と、メモリ２０と、スキャナ３０と、スキャナエンジン４０と、プロッタエンジン５０と、プロッタ６０と、ＳＷ２とを備えており、コントローラ１０、スキャナエンジン４０、及びプロッタエンジン５０をＳＷ２で接続した構成となっている。なお、スキャナ３０、スキャナエンジン４０をそれぞれプロッタ６０、プロッタエンジン５０に変更し、複数のプロッタエンジン５０をＳＷ２に接続する構成としてもよい。ＳＷ２の詳細については後述する。
【００２１】
コントローラ１０は、複合機１の全体制御や画像処理を行うコントローラであり、ＣＰＵ（Central Processing Unit）や、画像処理用のＡＳＩＣ（Application Specific Integrated Circuit）などを備えている。
【００２２】
メモリ２０は、スキャナ３０から読み込まれた画像データや、プロッタ６０により描画される画像データなどを格納するものである。
【００２３】
スキャナ３０は、原稿などの読み取り対象物を１ライン分ずつ画像データとして光学的に読み取る。
【００２４】
スキャナエンジン４０は、スキャナ３０に読み取られた１ライン分の画像データを格納するラインバッファ（図示省略）を有しており、このラインバッファに格納された画像データをライン同期信号の出力に合わせてＳＷ２を介してコントローラ１０に順次転送し、メモリ２０に格納させる。なお、スキャナエンジン４０の画像データの転送速度は、スキャナ３０の読み取り速度よりも速くなるように設定されている。
【００２５】
プロッタエンジン５０は、１ライン分の画像データを格納するラインバッファ（図示省略）を有しており、ライン同期信号の出力に合わせて、メモリ２０に格納されている画像データが１ライン分ずつＳＷ２を介してコントローラ１０から転送されるので、転送されてきた画像データをラインバッファに格納する。
【００２６】
プロッタ６０は、ラインバッファに格納されている１ライン分の画像データを転写紙などの記録媒体に順次描画して、可視画像を形成する。本実施の形態では、１ライン分の画像データの描画時間（ライン同期信号の出力間隔）は１００ｕｓｅｃに設定されており、この時間内にプロッタエンジン５０に１ライン分の画像データが転送されなかった場合には、プロッタ６０が描画する画像は異常画像となってしまう。
【００２７】
複合機１がスキャナ動作を行う場合には、スキャナ３０により読み取られた画像データがスキャナエンジン４０からＳＷ２を介してコントローラ１０に転送されるだけなので、ＳＷ２内で通信の競合は発生しない。同様に、複合機１がプリンタ動作を行う場合には、メモリ２０に格納されている画像データがコントローラ１０からＳＷ２を介してプロッタエンジン５０に転送されるだけなので、ＳＷ２内で通信の競合は発生しない。
【００２８】
但し、複合機１がコピー動作を行う場合には、スキャナ動作とプリンタ動作が並列して行われるので、ＳＷ２内で通信の競合が発生する。また、複数のプロッタエンジン５０をＳＷ２に接続している状態で、複合機１がプリンタ動作を並列に行う場合にもＳＷ２内で通信の競合が発生する。
【００２９】
図２は、本実施の形態のＳＷ２の構成の一例を示すブロック図であり、図３は、本実施の形態のＳＷ２の各構成の関係を説明するための図である。
【００３０】
本実施の形態では、図２に示すように、ＳＷ２が、上位デバイスと接続される１つのアップリンクポート（以下、「ＵＰ０ポート」と称する）と、下位デバイスと接続される２つのダウンリンクポート（以下、「ＤＯＷＮ０ポート」、「ＤＯＷＮ１ポート」と称する）を備える例について説明するが、これに限定されるものではない。例えば、ＳＷ２は、２以上のアップリンクポートを備えるようにしてもよいし、３以上のダウンリンクポートを備えるようにしてもよい。
【００３１】
図２に示すように、ＳＷ２は、ＵＰ０ポート１１０と、ＤＯＷＮ０ポート１２０と、ＤＯＷＮ１ポート１３０と、監視部１４１、１４２、１４３と、インターコネクト１５０と、制御部１６０とを備える。
【００３２】
ＵＰ０ポート１１０は、コントローラ１０と接続されるポートであり、送信バッファ１１１と、受信バッファ１１２とを備える。送信バッファ１１１及び受信バッファ１１２は、ＦＩＦＯ（First-In First-Out）方式のバッファである。そして、送信バッファ１１１に格納されたデータは、インターコネクト１５０を介してＤＯＷＮ０ポート１２０又はＤＯＷＮ１ポート１３０に送信され、ＤＯＷＮ０ポート１２０又はＤＯＷＮ１ポート１３０から送信されたデータは、インターコネクト１５０を介して受信バッファ１１２に格納される。
【００３３】
監視部１４１は、ＵＰ０ポート１１０の通信状況を監視する。具体的には、監視部１４１は、ＵＰ０ポート１１０の送信バッファ１１１に格納されるデータの有無から、ＵＰ０ポート１１０がアイドル状態であるか否かを監視する。
【００３４】
図４は、本実施の形態の監視部１４１の構成の一例を示すブロック図である。図４に示すように、監視部１４１は、計測器１４５と、レジスタ１４６と、比較器１４７とを備える。
【００３５】
図３及び図４に示すように、計測器１４５は、送信バッファ１１１に格納されるデータの有無を示す信号ＵＰ０．Ｂｕｆｆｅｒ＿Ｅｍｐｔｙの入力を受け、送信バッファ１１１にデータが格納されていない時間(通信が終了してから次の通信が開始されるまでの時間）を計測し、比較器１４７に出力する。
【００３６】
なお、ＵＰ０．Ｂｕｆｆｅｒ＿Ｅｍｐｔｙは、送信バッファ１１１にデータが格納されるとＵＰ０．Ｂｕｆｆｅｒ＿Ｅｍｐｔｙ＝０（Ｌｏｗ）となり、送信バッファ１１１に格納されているデータが無くなるとＵＰ０．Ｂｕｆｆｅｒ＿Ｅｍｐｔｙ＝１（Ｈｉ）となる。
【００３７】
図５は、本実施の形態の計測器１４５のタイマー動作の一例を示すフローチャート図である。
【００３８】
計測器１４５は、タイマーのストップ、リセットを行い（ステップＳ１００）、ＵＰ０．Ｂｕｆｆｅｒ＿Ｅｍｐｔｙ＝１になると、タイマーをスタートする（ステップＳ１０２でＹｅｓ、ステップＳ１０４）。そして、計測器１４５は、ＵＰ０．Ｂｕｆｆｅｒ＿Ｅｍｐｔｙ＝１である間タイマーを動かし（ステップＳ１０６でＹｅｓ）、ＵＰ０．Ｂｕｆｆｅｒ＿Ｅｍｐｔｙ＝０になると、タイマーをストップし、リセットする（ステップＳ１０６でＮｏ、ステップＳ１００）。
【００３９】
図４に戻り、レジスタ１４６には、ＵＰ０ポート１１０がアイドル状態であるか否かを判別するための閾値（基準時間）が設定されている。閾値の値は、ＳＷ２を適用するシステムに依存するが、複合機１に適用する場合には、１〜５ｕｓｅｃ程度（プロッタエンジン５０への１ライン分の画像データの転送時間の１％〜５％程度）が好ましい。複合機などの画像形成装置では、データ転送はライン毎にまとまって行われ、一旦データ転送が開始されると終了するまで連続的に行われるためである。本実施の形態では、閾値は、５ｕｓｅｃに設定されているものとする。
【００４０】
なお、レジスタ１４６の閾値は、外部からＳＰＩ（Serial Peripheral Interface）などのシリアル通信で設定してもよいし、ＰＣＩ  Ｅｘｐｒｅｓｓのエンドポイントとして実装し、ＰＣＩ  Ｅｘｐｒｅｓｓ経由で設定してもよく、また、固定値であってもよい。
【００４１】
比較器１４７は、計測器１４５から入力される計測値（タイマー値）とレジスタ１４６から入力される閾値とを比較し、ＵＰ０ポート１１０がアイドル状態であるか否かを示す信号ＵＰ０．Ｐｏｒｔ＿Ｉｄｌｅを出力する。なお、ＵＰ０．Ｐｏｒｔ＿Ｉｄｌｅは、計測値が閾値を超えるとＵＰ０．Ｐｏｒｔ＿Ｉｄｌｅ＝１（Ｈｉ）となり、計測値が閾値以下であるとＵＰ０．Ｐｏｒｔ＿Ｉｄｌｅ＝０（Ｌｏｗ）となる。
【００４２】
図６は、本実施の形態の比較器１４７の判定動作の一例を示すフローチャート図である。
【００４３】
比較器１４７は、レジスタ１４６から入力される閾値を設定し（ステップＳ２００）、計測器１４５から入力されるタイマー値と比較する（ステップＳ２０２）。そして、タイマー値が閾値を超えるとＵＰ０．Ｐｏｒｔ＿Ｉｄｌｅ＝１とし（ステップＳ２０２でＹｅｓ、ステップＳ２０４）、タイマー値が閾値以下であるとＵＰ０．Ｐｏｒｔ＿Ｉｄｌｅ＝０（ステップＳ２０２でＮｏ、ステップＳ２０６）とする。
【００４４】
なお、ＵＰ０ポート１１０の通信には、ＴＬＰ（Transaction Layer Packet）やＤＬＬＰ（Data Link Layer Packet）などが挙げられるが、監視部１４１は、ＴＬＰでの通信を監視対象とすることが好ましい。ＤＬＬＰは、フローコントロールを目的とするものであり、データ転送がない場合でもＤＬＬＰパケット通信が起こり、監視対象として望ましくないためである。
【００４５】
また、監視部１４１は、送信バッファ１１１及び受信バッファ１１２のいずれも監視可能であるが、データの転送状態をより早くアービトレーションの切り替えに反映する観点から、本実施の形態では、送信バッファ１１１を監視している。
【００４６】
図２に戻り、ＤＯＷＮ０ポート１２０は、スキャナエンジン４０と接続されるポートであり、送信バッファ１２１と、受信バッファ１２２とを備え、監視部１４２は、ＤＯＷＮ０ポート１２０の通信状況を監視する。なお、送信バッファ１２１、受信バッファ１２２、監視部１４２の内容は、それぞれ、前述した送信バッファ１１１、受信バッファ１１２、監視部１４１の内容と同様であるため、説明を省略する。
【００４７】
ＤＯＷＮ１ポート１３０は、プロッタエンジン５０と接続されるポートであり、送信バッファ１３１と、受信バッファ１３２とを備え、監視部１４３は、ＤＯＷＮ１ポート１３０の通信状況を監視する。なお、送信バッファ１３１、受信バッファ１３２、監視部１４３の内容は、それぞれ、前述した送信バッファ１１１、受信バッファ１１２、監視部１４１の内容と同様であるため、説明を省略する。
【００４８】
なお、ＤＯＷＮ０ポート１２０及びＤＯＷＮ１ポート１３０の双方にプロッタエンジン５０を接続するようにしてもよい。
【００４９】
インターコネクト１５０は、後述の制御部１６０の指示を受け、ＵＰ０ポート１１０、ＤＯＷＮ０ポート１２０、及びＤＯＷＮ１ポート１３０間での通信の経路を動的に選択するものであり、例えば、クロスバースイッチなどにより実現できる。
【００５０】
制御部１６０は、ＵＰ０ポート１１０、ＤＯＷＮ０ポート１２０、及びＤＯＷＮ１ポート１３０の通信状況と、アービトレーションのアルゴリズムと、各ポートに通信の機会を割り当てる優先度が定義されたアービトレーションテーブルとを対応付けた切替テーブルを記憶する記憶部１７０を備える。そして、制御部１６０は、この切替テーブルを参照して、監視部１４１、１４２、１４３の監視結果に応じたアービトレーションへの切り替えを行う。
【００５１】
具体的には、制御部１６０は、図３に示すように、監視部１４１から出力されるＵＰ０．Ｐｏｒｔ＿Ｉｄｌｅをインバータ（反転器）１５１で反転したＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ、監視部１４２から出力されるＤＯＷＮ０．Ｐｏｒｔ＿Ｉｄｌｅをインバータ１５２で反転したＤＯＷＮ０．Ｐｏｒｔ＿Ｂｕｓｙ、及び監視部１４３から出力されるＤＯＷＮ１．Ｐｏｒｔ＿Ｉｄｌｅをインバータ１５３で反転したＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙの入力を受ける。
【００５２】
なお、ＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙは、ＵＰ０ポートが通信中であるか否かを示す信号であり、ＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ＝１（Ｈｉ）の場合は、ＵＰ０ポート１１０が通信中であることを示し、ＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ＝０（Ｌｏｗ）の場合は、ＵＰ０ポート１１０が通信中でないことを示す。ＤＯＷＮ０．Ｐｏｒｔ＿Ｂｕｓｙ、ＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙについても対象ポートが異なる点を除き、ＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙの内容と同様であるため、説明は省略する。
【００５３】
そして、制御部１６０は、図７に示すように、ＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ、ＤＯＷＮ０．Ｐｏｒｔ＿Ｂｕｓｙ、及びＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙのいずれかの値が変化した場合に、記憶部１７０の切替テーブルを参照して、アービトレーションのアルゴリズム及びアービトレーションテーブルを切り替える（ステップＳ３００でＹｅｓ、ステップＳ３０２）。
【００５４】
図８は、本実施の形態の切替テーブルの一例を示す図であり、図９は、本実施の形態のアービトレーションテーブルの一例を示す図である。
【００５５】
図８に示す例では、通信の競合が発生していない場合、即ちＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ、ＤＯＷＮ０．Ｐｏｒｔ＿Ｂｕｓｙ、及びＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙのうち、いずれか１つのみが１である場合、又は全て０である場合に、アービトレーションのアルゴリズムとしてＷＲＲが対応付けられている。
【００５６】
ＷＲＲは、通信に競合が発生した場合に優先度に従って各ポートに対して通信の機会を割り当てる方式であり、ＲＲと異なり、ポート毎の重み付けが可能となっている。但し、ポート毎のリクエスト発行能力に差が有る場合には、優先度どおりに通信の機会を割り当てられない場合も生じうる。
【００５７】
図１０及び図１１は、ＷＲＲを説明するための図である。図１０では、ＤＯＷＮ０ポート１２０とＤＯＷＮ１ポート１３０の重み付け（帯域設定）が２：１に設定され、リクエストの発行能力はいずれも４となっており、図１１では、ＤＯＷＮ０ポート１２０とＤＯＷＮ１ポート１３０の重み付け（帯域設定）が１：１に設定され、リクエストの発行能力はＤＯＷＮ０ポートが８、ＤＯＷＮ１ポートが４となっている。なお、図１０及び図１１では、ＤＯＷＮ０ポート１２０にもプロッタエンジン５０が接続されているものとする。
【００５８】
ここで、各ポートは、発行能力分のリードリクエストを発行した場合には（ＮＰＨ(Non Posted Header)バッファを使い切った状態では）、リードデータが返ってくるまで次のリードリクエストを発行することができず、この期間内は、当該ポートに通信の機会は割り当てられないものとする。
【００５９】
図１０に示す例では、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０のいずれもリードアクセスを実施しており、Ｕｐ  ＳｔｒｅａｍでＵＰ０ポート１１０に対してそれぞれ４件ずつのリードリクエストを発行している。そして、図１０に示す例では、リクエストの発行能力はいずれも４で同一であるため、競合発生時には、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０はそれぞれ２：１の割合でＵＰ０ポート１１０からＤｏｗｎ  Ｓｔｒｅａｍでリードデータを受信しており、ＷＲＲが上手く機能している。
【００６０】
一方、図１１に示す例でも、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０のいずれもリードアクセスを実施しており、Ｕｐ  ＳｔｒｅａｍでＵＰ０ポート１１０に対してリードリクエストをＤＯＷＮ０ポート１２０は８件、ＤＯＷＮ１ポート１３０は４件発行している。
【００６１】
但し、図１１に示す例では、ＤＯＷＮ０ポート１２０、及びＤＯＷＮ１ポート１３０の間でリードリクエストの発行能力に差があり、ＤＯＷＮ１ポート１３０がリードリクエストを１件発行する間にＤＯＷＮ０ポート１２０がリードリクエストを２件発行している。そして、ＵＰ０ポート１１０の受信バッファ１１２はＦＩＦＯ方式であるため、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０はそれぞれ２：１の割合でＵＰ０ポート１１０からＤｏｗｎ  Ｓｔｒｅａｍでリードデータを受信している。このため、次のリードリクエストの発行もＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０で２：１の割合になってしまい、ＷＲＲが上手く機能しておらず、予定時間内にデータ転送が完了していない。
【００６２】
このため本実施の形態では、図８に示すテーブルのように、通信の競合が発生していない状態のアービトレーションがＷＲＲになるように設定している。
【００６３】
また、図８に示す例では、通信の競合が発生している場合、即ちＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ、ＤＯＷＮ０．Ｐｏｒｔ＿Ｂｕｓｙ、及びＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙのうち２つ以上が１である場合、アービトレーションのアルゴリズムとしてＴＢＷＲＲが対応付けられている。
【００６４】
ＴＢＷＲＲは、通信の競合の有無に関わらず所定の時間間隔であるタイムスロット（例えば、１００ｎｓｅｃ）毎に各ポートに対して通信の機会を割り当てる方式である。但し、通信を行わないポートにも通信の機会が割り当ててしまうため、帯域に無駄が生じてしまい、データ転送に必要以上の時間がかかってしまう。
【００６５】
図１２及び図１３は、ＴＢＷＲＲの例を説明するための図であり、いずれもＤＯＷＮ０ポート１２０とＤＯＷＮ１ポート１３０の通信割合が１：２に設定されている。なお、図１２及び図１３では、タイムスロットを点線で記しており、ＤＯＷＮ０ポート１２０にもプロッタエンジン５０が接続されているものとする。
【００６６】
図１２に示す例では、まず、最初のタイムスロットでＤＯＷＮ０ポート１２０がリードアクセスを実施しており、Ｕｐ  ＳｔｒｅａｍでＵＰ０ポート１１０に対して１件のリードリクエストを発行している。
【００６７】
続いて、２つ目のタイムスロットでＤＯＷＮ１ポート１３０がリードアクセスを実施しており、Ｕｐ  ＳｔｒｅａｍでＵＰ０ポート１１０に対して１件のリードリクエストを発行し、ＤＯＷＮ０ポート１２０はＵＰ０ポート１１０からＤｏｗｎ  Ｓｔｒｅａｍでリードデータを受信している。
【００６８】
続いて、３つ目のタイムスロットでＤＯＷＮ１ポート１３０がリードアクセスを実施しており、Ｕｐ  ＳｔｒｅａｍでＵＰ０ポート１１０に対して１件のリードリクエストを発行するとともに、ＵＰ０ポート１１０からＤｏｗｎ  Ｓｔｒｅａｍでリードデータを受信している。
【００６９】
続いて、４つ目のタイムスロットでＤＯＷＮ０ポート１２０がリードアクセスを実施しており、Ｕｐ  ＳｔｒｅａｍでＵＰ０ポート１１０に対して１件のリードリクエストを発行し、ＤＯＷＮ１ポート１３０はＵＰ０ポート１１０からＤｏｗｎ  Ｓｔｒｅａｍでリードデータを受信している。
【００７０】
このようにＴＢＷＲＲでは、競合発生時においても必ず通信の機会が割り当てられるため、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０はそれぞれ１：２の割合でＵＰ０ポート１１０からＤｏｗｎ  Ｓｔｒｅａｍでリードデータを受信しており、ＴＢＷＲＲが上手く機能している。
【００７１】
一方、図１３に示す例では、ＤＯＷＮ０ポート１２０のみがリードアクセスを実施しているにも関わらず、ＴＢＷＲＲが実行されているため、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０はそれぞれ１：２の割合で通信の機会が割り当てられている。このため、ＤＯＷＮ０ポート１２０は使用可能帯域の１／３しか使用できておらず、データ転送に必要以上の時間がかかっており、ＴＢＷＲＲが上手く機能していない。
【００７２】
このため本実施の形態では、図８に示すテーブルのように、通信の競合が発生している状態のアービトレーションがＴＢＷＲＲになるように設定している。
【００７３】
図８の切替テーブルに設定されているアービトレーションテーブルは、図９に示す通りであり、ＵＰ０ポート１１０、ＤＯＷＮ０ポート１２０、及びＤＯＷＮ１ポート１３０の優先度は、Ｔａｂｌｅ０では１：１：１に設定され、Ｔａｂｌｅ１では２：１：１に設定され、Ｔａｂｌｅ２では１：２：１に設定され、Ｔａｂｌｅ３では１：１：２に設定され、Ｔａｂｌｅ４では１：１：０に設定され、Ｔａｂｌｅ５では１：０：１に設定され、Ｔａｂｌｅ６では０：２：１に設定されている。
【００７４】
次に、本実施の形態の複合機でのアービトレーションの切り替え例について説明する。
【００７５】
図１４は、通信の競合が発生した際のアービトレーションの切り替え例を説明するための図である。なお、図１４では、便宜的にタイムスロットに見立てた点線を記しており、ＤＯＷＮ０ポート１２０にもプロッタエンジン５０が接続されているものとする。
【００７６】
図１４に示す例では、３つめのタイムスロットまで、ＤＯＷＮ０ポート１２０のみがリードアクセスを実施しており、Ｕｐ  ＳｔｒｅａｍでＵＰ０ポート１１０に対してリードリクエストを送信し、その応答として、ＤＯＷＮ０ポート１２０は、ＵＰ０ポート１１０からＤｏｗｎ  Ｓｔｒｅａｍでリードリクエストを受信している。
【００７７】
この時点では、ＤＯＷＮ０ポート１２０のみが通信を行っている状態（ＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ＝０、ＤＯＷＮ０．Ｐｏｒｔ＿Ｂｕｓｙ＝１、ＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙ＝０）なので、Ｔａｂｌｅ０の優先度でＷＲＲが実行されている。
【００７８】
続いて、４つめのタイムスロットでは、ＤＯＷＮ１ポート１３０もリードアクセスを実施し、Ｕｐ  ＳｔｒｅａｍでＵＰ０ポート１１０に対してリードリクエストを送信している。
【００７９】
このリードリクエストは、ＤＯＷＮ１ポート１３０の送信バッファ１３１に格納されたものであるため、ＤＯＷＮ１．Ｂｕｆｆｅｒ＿Ｅｍｐｔｙ＝０となり、監視部１４３のタイマーがリセットされ、ＤＯＷＮ１．Ｐｏｒｔ＿Ｉｄｌｅ＝０となり、ＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙ＝１となる（図３参照）。
【００８０】
この結果、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０の間で通信の競合が発生（ＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ＝０、ＤＯＷＮ０．Ｐｏｒｔ＿Ｂｕｓｙ＝１、ＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙ＝１）するので、制御部１６０は、切替テーブルを参照して、アービトレーションをＷＲＲからＴＢＷＲＲに切り替えるとともに、アービトレーションテーブルをＴａｂｌｅ０からＴａｂｌｅ６に切り替える。従って、５つめのタイムスロットからは、Ｔａｂｌｅ６で示された優先度に従って、ＴＢＷＲＲが実行される。
【００８１】
このように本実施の形態では、通信の競合の発生をハードウェアである監視部を監視するため、即座（短時間）に競合に適したアービトレーションであるＴＢＷＲＲへの切り替えができ、データ転送の遅延による異常画像の発生を防止することができる。また、本実施の形態では、通信の競合が発生したポートに合わせてアービトレーションテーブルを設定しているので、より有効に帯域を活用することができる。
【００８２】
図１５は、通信の競合が解消した際のアービトレーションの切り替え例を説明するための図である。なお、図１５では、便宜的にタイムスロットに見立てた点線を記しており、ＤＯＷＮ０ポート１２０にもプロッタエンジン５０が接続されているものとする。
【００８３】
図１５に示す例では、最初のタイムスロットで、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０がリードアクセスを実施しており、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０の間で通信の競合が発生（ＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ＝０、ＤＯＷＮ０．Ｐｏｒｔ＿Ｂｕｓｙ＝１、ＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙ＝１）しているため、Ｔａｂｌｅ６の優先度でＴＢＷＲＲが実行されている。
【００８４】
続いて、２つ目以降のタイムスロットでは、ＤＯＷＮ１ポート１３０からリードアクセスが実施されていないため、ＤＯＷＮ１．Ｂｕｆｆｅｒ＿Ｅｍｐｔｙ＝１となり、監視部１４３のタイマーがスターとされる。ここで、監視部１４３のレジスタには、閾値としてタイムスロット５つ分の時間である５ｎｓｅｃが設定されているため、６つ目のタイムスロットの終了時点でタイマー値＞閾値となり、ＤＯＷＮ１．Ｐｏｒｔ＿Ｉｄｌｅ＝１となり、ＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙ＝０となる（図３参照）。
【００８５】
この結果、ＤＯＷＮ０ポート１２０、ＤＯＷＮ１ポート１３０の間での通信の競合が解消（ＵＰ０．Ｐｏｒｔ＿Ｂｕｓｙ＝０、ＤＯＷＮ０．Ｐｏｒｔ＿Ｂｕｓｙ＝１、ＤＯＷＮ１．Ｐｏｒｔ＿Ｂｕｓｙ＝０）するので、制御部１６０は、切替テーブルを参照して、アービトレーションをＴＢＷＲＲからＷＲＲに切り替えるとともに、アービトレーションテーブルをＴａｂｌｅ６からＴａｂｌｅ０に切り替える。  従って、７つめのタイムスロットからは、Ｔａｂｌｅ０で示された優先度に従って、ＷＲＲが実行される。
【００８６】
このように本実施の形態では、通信の競合の解消をハードウェアである監視部を監視するため、即座（短時間）に競合に適したアービトレーションであるＷＲＲへの切り替えができ、データ転送に必要以上の時間がかかってしまうことを防止することができる。
【００８７】
また、本実施の形態によれば、高負荷がかかっている状態であっても帯域の割り当てを正確に行うことができるため、データ量は多いがデータ転送時間はルーズな画像演算モジュール（スキャナー蓄積の画像圧縮など）とデータ転送時間に厳しい画像処理モジュール（画像処理システム内記憶装置からのダイレクトプリントなど）とを同一ＳＷ上に混在できる。これにより、モジュールの性質ごとに専用バスや別ＳＷなどに分ける必要が無く、実装コストを下げることができる。また、本実施の形態によれば、帯域の有効活用が可能になるため、従来のように過剰な帯域のポートを備える必要がなくなり、コストを下げることが可能になる。
【符号の説明】
【００８８】
１  複合機
２  ＳＷ（ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｓｗｉｔｃｈ）
１０  コントローラ
２０  メモリ
３０  スキャナ
４０  スキャナエンジン
５０  プロッタエンジン
６０  プロッタ
１１０  ＵＰ０ポート
１１１  送信バッファ
１１２  受信バッファ
１２０  ＤＯＷＮ０ポート
１２１  送信バッファ
１２２  受信バッファ
１３０  ＤＯＷＮ１ポート
１３１  送信バッファ
１３２  受信バッファ
１４１、１４２、１４３  監視部
１４５  計測器
１４６  レジスタ
１４７  比較器
１５０  インターコネクト
１５１、１５２、１５３  インバータ（反転器）
１６０  制御部
１７０  記憶部
【先行技術文献】
【特許文献】
【００８９】
【特許文献１】特開２００６−１５５１８３号公報
【図１】
2010219963.tif 000003
【図２】
2010219963.tif 000004
【図３】
2010219963.tif 000005
【図４】
2010219963.tif 000006
【図５】
2010219963.tif 000007
【図６】
2010219963.tif 000008
【図７】
2010219963.tif 000009
【図８】
2010219963.tif 000010
【図９】
2010219963.tif 000011
【図１０】
2010219963.tif 000012
【図１１】
2010219963.tif 000013
【図１２】
2010219963.tif 000014
【図１３】
2010219963.tif 000015
【図１４】
2010219963.tif 000016
【図１５】
2010219963.tif 000017