説明

スイッチ装置、画像形成装置、及びスイッチ制御方法

【課題】データの転送状況の変化に合わせてアービトレーションを切り替えることができるスイッチ装置、画像形成装置、及びスイッチ制御方法を提供する。
【解決手段】コントローラ10と接続されるUP0ポート110と、スキャナ30、プロッタ60とそれぞれ接続されるDOWN0ポート120、DOWN1ポート130と、UP0ポート、DOWN0ポート、DOWN1ポートの通信状況をそれぞれ監視する複数の監視部141、142、143と、UP0ポート、DOWN0ポート、及びDOWN1ポートの通信状況と、アービトレーションのアルゴリズムとを対応付けた切替テーブルを記憶する記憶部170と、切替テーブルを参照して、UP0ポート、DOWN0ポート、及びDOWN1ポートに対するアービトレーションの現在のアルゴリズムを、複数の監視部の監視結果が示す通信状況に対応するアルゴリズムに切り替える制御部160と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スイッチ装置、画像形成装置、及びスイッチ制御方法に関する。
【背景技術】
【0002】
近年、PC(Personal Computer)を始め、複合機(MFP:Multi Function Printer)などの画像形成装置においても、機器内でのデータ転送にPCI Expressが用いられている。PCI Expressを用いたシステムでは、通常、デバイス拡張の容易性から、複数のポートを有するPCI Express Switchを用いて、デバイスの拡張が行われる。
【0003】
上述のようにPCI Express Switchには、複数のデバイスが接続されるため、通信に競合が生じる場合がある。このため、PCI Expressの規格では、競合発生時に優先度に従って各ポートに対して通信の機会を割り当てるRR(Round Robin)やWRR(Weighted Round Robin)、競合の有無に関わらず所定の時間間隔で各ポートに対して通信の機会を割り当てるTBWRR(Time based Weighted Round Robin)など複数のアービトレーション機能が規定されている。
【0004】
また、例えば特許文献1では、使用目的に応じた優先度で各ポートに対して通信の機会を割り当てるため、ユーザ操作又はソフトウェア(BIOS)により、各ポートの優先度が定義されたテーブルを切り替え、切り替え後のテーブルに定義された優先度に従って、アービトレーションを行う技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述したアービトレーション機能には、一長一短があり、データの転送状況に適したアービトレーションを行わないと種々の問題が生じうる。
【0006】
例えば、RRやWRRの場合、PCI Expressの帯域に余裕がある状態(例えば、利用率30%〜70%程度)でのデータ転送であれば、アービトレーションが有効に機能するものの、帯域に余裕がなく、デバイス間でリクエスト発行能力に差が有る場合には、優先度どおりに通信の機会を割り当てられない場合も生じうる。
【0007】
特に、画像形成装置では、スキャナから画像データを読み込むと同時にプリンタから画像データを出力するコピー動作など高負荷がかかる状態で競合が発生するため、上記問題が生じやすい。コピー動作においては、通常、1ライン分のデータ転送に100usec以下の時間が要求されるが、上記のように優先度どおりに通信の機会が割り当てられなくなってしまうと、時間内にデータ転送が完了せず、プリンタから異常画像が出力されてしまうなど深刻な問題となる。
【0008】
また例えば、TBWRRの場合、通信を行わないポートに対しても通信の機会が割り当てられてしまうため、PCI Expressの帯域に無駄が生じてしまい、データ転送に必要以上の時間がかかってしまう。
【0009】
従って、データ転送の状況に応じて、アービトレーション機能を使い分けることが望まれる。
【0010】
しかしながら、特許文献1に開示されたような技術では、ユーザ操作又はソフトウェア(BIOS)による切り替えであるため、データの転送状況に変化が発生した場合に、即座にアービトレーションに切り替えることは難しい。例えば、画像形成装置のコピー動作では、前述のように、1ライン分のデータ転送に100usec以下の時間が要求されるため、1usec程度の短い時間でのアービトレーションの切り替えが必要になるが、特許文献1に開示されたような技術では対応できない。
【0011】
本発明は、上記事情に鑑みてなされたものであり、データの転送状況の変化に合わせて、アービトレーションを切り替えることができるスイッチ装置、画像形成装置、及びスイッチ制御方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決し、目的を達成するために、本発明の一態様にかかるスイッチ装置は、上位デバイスと接続されるアップリンクポートと、下位デバイスと接続される複数のダウンリンクポートと、前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況をそれぞれ監視する複数の監視手段と、前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況とアービトレーションのアルゴリズムとを対応付けたテーブルを参照して、前記アービトレーションのアルゴリズムを、複数の前記監視手段の監視結果が示す通信状況に対応する前記アルゴリズムに切り替える制御手段と、を備えることを特徴とする。
【0013】
また、本発明の別の態様にかかる画像形成装置は、上記スイッチ装置と、前記アップリンクポートに接続されるコントローラと、複数の前記ダウンリンクポートに接続されるスキャナ及びプロッタと、を備えることを特徴とする。
【0014】
また、本発明の別の態様にかかるスイッチ制御方法は、スイッチ装置で実行されるスイッチ制御方法であって、上位デバイスと接続されるアップリンクポート及び下位デバイスと接続される複数のダウンリンクポートの通信状況をそれぞれ監視する監視ステップと、前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況とアービトレーションのアルゴリズムとを対応付けたテーブルを参照して、前記アービトレーションのアルゴリズムを、前記監視ステップでの監視結果が示す通信状況に対応する前記アルゴリズムに切り替える制御ステップと、を具備することを特徴とする。
【発明の効果】
【0015】
本発明によれば、データの転送状況の変化に合わせて、アービトレーションを切り替えることができるという効果を奏する。
【図面の簡単な説明】
【0016】
【図1】本実施形態の複合機の構成例を示すブロック図である。
【図2】本実施形態のSWの構成例を示すブロック図である。
【図3】本実施形態のSWの各構成の関係を説明するための図である。
【図4】本実施形態の監視部の構成例を示すブロック図である。
【図5】本実施形態の計測器のタイマー動作例を示すフローチャート図である。
【図6】本実施形態の比較器の判定動作例を示すフローチャート図である。
【図7】本実施形態の制御部のアービトレーションの切り替え動作例を示すフローチャート図である。
【図8】本実施形態の切替テーブル例を示す図である。
【図9】本実施形態のアービトレーションテーブル例を示す図である。
【図10】WRRを説明するための図である。
【図11】WRRを説明するための図である。
【図12】TBWRRを説明するための図である。
【図13】TBWRRを説明するための図である。
【図14】本実施形態のアービトレーションの切り替え例を説明するための図である。
【図15】本実施形態のアービトレーションの切り替え例を説明するための図である。
【発明を実施するための形態】
【0017】
以下、添付図面を参照しながら、本発明にかかるスイッチ装置、画像形成装置、及びスイッチ制御方法の最良な実施の形態を詳細に説明する。
【0018】
なお、本実施の形態では、スイッチ装置を適用した画像形成装置として、コピー機能、プリンタ機能、及びスキャナ機能を有する複合機にPCI Express Switch(以下、「SW」と称する)を適用した場合を例にとり説明するが、本発明はこれに限定されるものではない。
【0019】
まず、本実施の形態の複合機の構成について説明する。
【0020】
図1は、本実施の形態の複合機1の構成の一例を示すブロック図である。図1に示すように、複合機1は、コントローラ10と、メモリ20と、スキャナ30と、スキャナエンジン40と、プロッタエンジン50と、プロッタ60と、SW2とを備えており、コントローラ10、スキャナエンジン40、及びプロッタエンジン50をSW2で接続した構成となっている。なお、スキャナ30、スキャナエンジン40をそれぞれプロッタ60、プロッタエンジン50に変更し、複数のプロッタエンジン50をSW2に接続する構成としてもよい。SW2の詳細については後述する。
【0021】
コントローラ10は、複合機1の全体制御や画像処理を行うコントローラであり、CPU(Central Processing Unit)や、画像処理用のASIC(Application Specific Integrated Circuit)などを備えている。
【0022】
メモリ20は、スキャナ30から読み込まれた画像データや、プロッタ60により描画される画像データなどを格納するものである。
【0023】
スキャナ30は、原稿などの読み取り対象物を1ライン分ずつ画像データとして光学的に読み取る。
【0024】
スキャナエンジン40は、スキャナ30に読み取られた1ライン分の画像データを格納するラインバッファ(図示省略)を有しており、このラインバッファに格納された画像データをライン同期信号の出力に合わせてSW2を介してコントローラ10に順次転送し、メモリ20に格納させる。なお、スキャナエンジン40の画像データの転送速度は、スキャナ30の読み取り速度よりも速くなるように設定されている。
【0025】
プロッタエンジン50は、1ライン分の画像データを格納するラインバッファ(図示省略)を有しており、ライン同期信号の出力に合わせて、メモリ20に格納されている画像データが1ライン分ずつSW2を介してコントローラ10から転送されるので、転送されてきた画像データをラインバッファに格納する。
【0026】
プロッタ60は、ラインバッファに格納されている1ライン分の画像データを転写紙などの記録媒体に順次描画して、可視画像を形成する。本実施の形態では、1ライン分の画像データの描画時間(ライン同期信号の出力間隔)は100usecに設定されており、この時間内にプロッタエンジン50に1ライン分の画像データが転送されなかった場合には、プロッタ60が描画する画像は異常画像となってしまう。
【0027】
複合機1がスキャナ動作を行う場合には、スキャナ30により読み取られた画像データがスキャナエンジン40からSW2を介してコントローラ10に転送されるだけなので、SW2内で通信の競合は発生しない。同様に、複合機1がプリンタ動作を行う場合には、メモリ20に格納されている画像データがコントローラ10からSW2を介してプロッタエンジン50に転送されるだけなので、SW2内で通信の競合は発生しない。
【0028】
但し、複合機1がコピー動作を行う場合には、スキャナ動作とプリンタ動作が並列して行われるので、SW2内で通信の競合が発生する。また、複数のプロッタエンジン50をSW2に接続している状態で、複合機1がプリンタ動作を並列に行う場合にもSW2内で通信の競合が発生する。
【0029】
図2は、本実施の形態のSW2の構成の一例を示すブロック図であり、図3は、本実施の形態のSW2の各構成の関係を説明するための図である。
【0030】
本実施の形態では、図2に示すように、SW2が、上位デバイスと接続される1つのアップリンクポート(以下、「UP0ポート」と称する)と、下位デバイスと接続される2つのダウンリンクポート(以下、「DOWN0ポート」、「DOWN1ポート」と称する)を備える例について説明するが、これに限定されるものではない。例えば、SW2は、2以上のアップリンクポートを備えるようにしてもよいし、3以上のダウンリンクポートを備えるようにしてもよい。
【0031】
図2に示すように、SW2は、UP0ポート110と、DOWN0ポート120と、DOWN1ポート130と、監視部141、142、143と、インターコネクト150と、制御部160とを備える。
【0032】
UP0ポート110は、コントローラ10と接続されるポートであり、送信バッファ111と、受信バッファ112とを備える。送信バッファ111及び受信バッファ112は、FIFO(First-In First-Out)方式のバッファである。そして、送信バッファ111に格納されたデータは、インターコネクト150を介してDOWN0ポート120又はDOWN1ポート130に送信され、DOWN0ポート120又はDOWN1ポート130から送信されたデータは、インターコネクト150を介して受信バッファ112に格納される。
【0033】
監視部141は、UP0ポート110の通信状況を監視する。具体的には、監視部141は、UP0ポート110の送信バッファ111に格納されるデータの有無から、UP0ポート110がアイドル状態であるか否かを監視する。
【0034】
図4は、本実施の形態の監視部141の構成の一例を示すブロック図である。図4に示すように、監視部141は、計測器145と、レジスタ146と、比較器147とを備える。
【0035】
図3及び図4に示すように、計測器145は、送信バッファ111に格納されるデータの有無を示す信号UP0.Buffer_Emptyの入力を受け、送信バッファ111にデータが格納されていない時間(通信が終了してから次の通信が開始されるまでの時間)を計測し、比較器147に出力する。
【0036】
なお、UP0.Buffer_Emptyは、送信バッファ111にデータが格納されるとUP0.Buffer_Empty=0(Low)となり、送信バッファ111に格納されているデータが無くなるとUP0.Buffer_Empty=1(Hi)となる。
【0037】
図5は、本実施の形態の計測器145のタイマー動作の一例を示すフローチャート図である。
【0038】
計測器145は、タイマーのストップ、リセットを行い(ステップS100)、UP0.Buffer_Empty=1になると、タイマーをスタートする(ステップS102でYes、ステップS104)。そして、計測器145は、UP0.Buffer_Empty=1である間タイマーを動かし(ステップS106でYes)、UP0.Buffer_Empty=0になると、タイマーをストップし、リセットする(ステップS106でNo、ステップS100)。
【0039】
図4に戻り、レジスタ146には、UP0ポート110がアイドル状態であるか否かを判別するための閾値(基準時間)が設定されている。閾値の値は、SW2を適用するシステムに依存するが、複合機1に適用する場合には、1〜5usec程度(プロッタエンジン50への1ライン分の画像データの転送時間の1%〜5%程度)が好ましい。複合機などの画像形成装置では、データ転送はライン毎にまとまって行われ、一旦データ転送が開始されると終了するまで連続的に行われるためである。本実施の形態では、閾値は、5usecに設定されているものとする。
【0040】
なお、レジスタ146の閾値は、外部からSPI(Serial Peripheral Interface)などのシリアル通信で設定してもよいし、PCI Expressのエンドポイントとして実装し、PCI Express経由で設定してもよく、また、固定値であってもよい。
【0041】
比較器147は、計測器145から入力される計測値(タイマー値)とレジスタ146から入力される閾値とを比較し、UP0ポート110がアイドル状態であるか否かを示す信号UP0.Port_Idleを出力する。なお、UP0.Port_Idleは、計測値が閾値を超えるとUP0.Port_Idle=1(Hi)となり、計測値が閾値以下であるとUP0.Port_Idle=0(Low)となる。
【0042】
図6は、本実施の形態の比較器147の判定動作の一例を示すフローチャート図である。
【0043】
比較器147は、レジスタ146から入力される閾値を設定し(ステップS200)、計測器145から入力されるタイマー値と比較する(ステップS202)。そして、タイマー値が閾値を超えるとUP0.Port_Idle=1とし(ステップS202でYes、ステップS204)、タイマー値が閾値以下であるとUP0.Port_Idle=0(ステップS202でNo、ステップS206)とする。
【0044】
なお、UP0ポート110の通信には、TLP(Transaction Layer Packet)やDLLP(Data Link Layer Packet)などが挙げられるが、監視部141は、TLPでの通信を監視対象とすることが好ましい。DLLPは、フローコントロールを目的とするものであり、データ転送がない場合でもDLLPパケット通信が起こり、監視対象として望ましくないためである。
【0045】
また、監視部141は、送信バッファ111及び受信バッファ112のいずれも監視可能であるが、データの転送状態をより早くアービトレーションの切り替えに反映する観点から、本実施の形態では、送信バッファ111を監視している。
【0046】
図2に戻り、DOWN0ポート120は、スキャナエンジン40と接続されるポートであり、送信バッファ121と、受信バッファ122とを備え、監視部142は、DOWN0ポート120の通信状況を監視する。なお、送信バッファ121、受信バッファ122、監視部142の内容は、それぞれ、前述した送信バッファ111、受信バッファ112、監視部141の内容と同様であるため、説明を省略する。
【0047】
DOWN1ポート130は、プロッタエンジン50と接続されるポートであり、送信バッファ131と、受信バッファ132とを備え、監視部143は、DOWN1ポート130の通信状況を監視する。なお、送信バッファ131、受信バッファ132、監視部143の内容は、それぞれ、前述した送信バッファ111、受信バッファ112、監視部141の内容と同様であるため、説明を省略する。
【0048】
なお、DOWN0ポート120及びDOWN1ポート130の双方にプロッタエンジン50を接続するようにしてもよい。
【0049】
インターコネクト150は、後述の制御部160の指示を受け、UP0ポート110、DOWN0ポート120、及びDOWN1ポート130間での通信の経路を動的に選択するものであり、例えば、クロスバースイッチなどにより実現できる。
【0050】
制御部160は、UP0ポート110、DOWN0ポート120、及びDOWN1ポート130の通信状況と、アービトレーションのアルゴリズムと、各ポートに通信の機会を割り当てる優先度が定義されたアービトレーションテーブルとを対応付けた切替テーブルを記憶する記憶部170を備える。そして、制御部160は、この切替テーブルを参照して、監視部141、142、143の監視結果に応じたアービトレーションへの切り替えを行う。
【0051】
具体的には、制御部160は、図3に示すように、監視部141から出力されるUP0.Port_Idleをインバータ(反転器)151で反転したUP0.Port_Busy、監視部142から出力されるDOWN0.Port_Idleをインバータ152で反転したDOWN0.Port_Busy、及び監視部143から出力されるDOWN1.Port_Idleをインバータ153で反転したDOWN1.Port_Busyの入力を受ける。
【0052】
なお、UP0.Port_Busyは、UP0ポートが通信中であるか否かを示す信号であり、UP0.Port_Busy=1(Hi)の場合は、UP0ポート110が通信中であることを示し、UP0.Port_Busy=0(Low)の場合は、UP0ポート110が通信中でないことを示す。DOWN0.Port_Busy、DOWN1.Port_Busyについても対象ポートが異なる点を除き、UP0.Port_Busyの内容と同様であるため、説明は省略する。
【0053】
そして、制御部160は、図7に示すように、UP0.Port_Busy、DOWN0.Port_Busy、及びDOWN1.Port_Busyのいずれかの値が変化した場合に、記憶部170の切替テーブルを参照して、アービトレーションのアルゴリズム及びアービトレーションテーブルを切り替える(ステップS300でYes、ステップS302)。
【0054】
図8は、本実施の形態の切替テーブルの一例を示す図であり、図9は、本実施の形態のアービトレーションテーブルの一例を示す図である。
【0055】
図8に示す例では、通信の競合が発生していない場合、即ちUP0.Port_Busy、DOWN0.Port_Busy、及びDOWN1.Port_Busyのうち、いずれか1つのみが1である場合、又は全て0である場合に、アービトレーションのアルゴリズムとしてWRRが対応付けられている。
【0056】
WRRは、通信に競合が発生した場合に優先度に従って各ポートに対して通信の機会を割り当てる方式であり、RRと異なり、ポート毎の重み付けが可能となっている。但し、ポート毎のリクエスト発行能力に差が有る場合には、優先度どおりに通信の機会を割り当てられない場合も生じうる。
【0057】
図10及び図11は、WRRを説明するための図である。図10では、DOWN0ポート120とDOWN1ポート130の重み付け(帯域設定)が2:1に設定され、リクエストの発行能力はいずれも4となっており、図11では、DOWN0ポート120とDOWN1ポート130の重み付け(帯域設定)が1:1に設定され、リクエストの発行能力はDOWN0ポートが8、DOWN1ポートが4となっている。なお、図10及び図11では、DOWN0ポート120にもプロッタエンジン50が接続されているものとする。
【0058】
ここで、各ポートは、発行能力分のリードリクエストを発行した場合には(NPH(Non Posted Header)バッファを使い切った状態では)、リードデータが返ってくるまで次のリードリクエストを発行することができず、この期間内は、当該ポートに通信の機会は割り当てられないものとする。
【0059】
図10に示す例では、DOWN0ポート120、DOWN1ポート130のいずれもリードアクセスを実施しており、Up StreamでUP0ポート110に対してそれぞれ4件ずつのリードリクエストを発行している。そして、図10に示す例では、リクエストの発行能力はいずれも4で同一であるため、競合発生時には、DOWN0ポート120、DOWN1ポート130はそれぞれ2:1の割合でUP0ポート110からDown Streamでリードデータを受信しており、WRRが上手く機能している。
【0060】
一方、図11に示す例でも、DOWN0ポート120、DOWN1ポート130のいずれもリードアクセスを実施しており、Up StreamでUP0ポート110に対してリードリクエストをDOWN0ポート120は8件、DOWN1ポート130は4件発行している。
【0061】
但し、図11に示す例では、DOWN0ポート120、及びDOWN1ポート130の間でリードリクエストの発行能力に差があり、DOWN1ポート130がリードリクエストを1件発行する間にDOWN0ポート120がリードリクエストを2件発行している。そして、UP0ポート110の受信バッファ112はFIFO方式であるため、DOWN0ポート120、DOWN1ポート130はそれぞれ2:1の割合でUP0ポート110からDown Streamでリードデータを受信している。このため、次のリードリクエストの発行もDOWN0ポート120、DOWN1ポート130で2:1の割合になってしまい、WRRが上手く機能しておらず、予定時間内にデータ転送が完了していない。
【0062】
このため本実施の形態では、図8に示すテーブルのように、通信の競合が発生していない状態のアービトレーションがWRRになるように設定している。
【0063】
また、図8に示す例では、通信の競合が発生している場合、即ちUP0.Port_Busy、DOWN0.Port_Busy、及びDOWN1.Port_Busyのうち2つ以上が1である場合、アービトレーションのアルゴリズムとしてTBWRRが対応付けられている。
【0064】
TBWRRは、通信の競合の有無に関わらず所定の時間間隔であるタイムスロット(例えば、100nsec)毎に各ポートに対して通信の機会を割り当てる方式である。但し、通信を行わないポートにも通信の機会が割り当ててしまうため、帯域に無駄が生じてしまい、データ転送に必要以上の時間がかかってしまう。
【0065】
図12及び図13は、TBWRRの例を説明するための図であり、いずれもDOWN0ポート120とDOWN1ポート130の通信割合が1:2に設定されている。なお、図12及び図13では、タイムスロットを点線で記しており、DOWN0ポート120にもプロッタエンジン50が接続されているものとする。
【0066】
図12に示す例では、まず、最初のタイムスロットでDOWN0ポート120がリードアクセスを実施しており、Up StreamでUP0ポート110に対して1件のリードリクエストを発行している。
【0067】
続いて、2つ目のタイムスロットでDOWN1ポート130がリードアクセスを実施しており、Up StreamでUP0ポート110に対して1件のリードリクエストを発行し、DOWN0ポート120はUP0ポート110からDown Streamでリードデータを受信している。
【0068】
続いて、3つ目のタイムスロットでDOWN1ポート130がリードアクセスを実施しており、Up StreamでUP0ポート110に対して1件のリードリクエストを発行するとともに、UP0ポート110からDown Streamでリードデータを受信している。
【0069】
続いて、4つ目のタイムスロットでDOWN0ポート120がリードアクセスを実施しており、Up StreamでUP0ポート110に対して1件のリードリクエストを発行し、DOWN1ポート130はUP0ポート110からDown Streamでリードデータを受信している。
【0070】
このようにTBWRRでは、競合発生時においても必ず通信の機会が割り当てられるため、DOWN0ポート120、DOWN1ポート130はそれぞれ1:2の割合でUP0ポート110からDown Streamでリードデータを受信しており、TBWRRが上手く機能している。
【0071】
一方、図13に示す例では、DOWN0ポート120のみがリードアクセスを実施しているにも関わらず、TBWRRが実行されているため、DOWN0ポート120、DOWN1ポート130はそれぞれ1:2の割合で通信の機会が割り当てられている。このため、DOWN0ポート120は使用可能帯域の1/3しか使用できておらず、データ転送に必要以上の時間がかかっており、TBWRRが上手く機能していない。
【0072】
このため本実施の形態では、図8に示すテーブルのように、通信の競合が発生している状態のアービトレーションがTBWRRになるように設定している。
【0073】
図8の切替テーブルに設定されているアービトレーションテーブルは、図9に示す通りであり、UP0ポート110、DOWN0ポート120、及びDOWN1ポート130の優先度は、Table0では1:1:1に設定され、Table1では2:1:1に設定され、Table2では1:2:1に設定され、Table3では1:1:2に設定され、Table4では1:1:0に設定され、Table5では1:0:1に設定され、Table6では0:2:1に設定されている。
【0074】
次に、本実施の形態の複合機でのアービトレーションの切り替え例について説明する。
【0075】
図14は、通信の競合が発生した際のアービトレーションの切り替え例を説明するための図である。なお、図14では、便宜的にタイムスロットに見立てた点線を記しており、DOWN0ポート120にもプロッタエンジン50が接続されているものとする。
【0076】
図14に示す例では、3つめのタイムスロットまで、DOWN0ポート120のみがリードアクセスを実施しており、Up StreamでUP0ポート110に対してリードリクエストを送信し、その応答として、DOWN0ポート120は、UP0ポート110からDown Streamでリードリクエストを受信している。
【0077】
この時点では、DOWN0ポート120のみが通信を行っている状態(UP0.Port_Busy=0、DOWN0.Port_Busy=1、DOWN1.Port_Busy=0)なので、Table0の優先度でWRRが実行されている。
【0078】
続いて、4つめのタイムスロットでは、DOWN1ポート130もリードアクセスを実施し、Up StreamでUP0ポート110に対してリードリクエストを送信している。
【0079】
このリードリクエストは、DOWN1ポート130の送信バッファ131に格納されたものであるため、DOWN1.Buffer_Empty=0となり、監視部143のタイマーがリセットされ、DOWN1.Port_Idle=0となり、DOWN1.Port_Busy=1となる(図3参照)。
【0080】
この結果、DOWN0ポート120、DOWN1ポート130の間で通信の競合が発生(UP0.Port_Busy=0、DOWN0.Port_Busy=1、DOWN1.Port_Busy=1)するので、制御部160は、切替テーブルを参照して、アービトレーションをWRRからTBWRRに切り替えるとともに、アービトレーションテーブルをTable0からTable6に切り替える。従って、5つめのタイムスロットからは、Table6で示された優先度に従って、TBWRRが実行される。
【0081】
このように本実施の形態では、通信の競合の発生をハードウェアである監視部を監視するため、即座(短時間)に競合に適したアービトレーションであるTBWRRへの切り替えができ、データ転送の遅延による異常画像の発生を防止することができる。また、本実施の形態では、通信の競合が発生したポートに合わせてアービトレーションテーブルを設定しているので、より有効に帯域を活用することができる。
【0082】
図15は、通信の競合が解消した際のアービトレーションの切り替え例を説明するための図である。なお、図15では、便宜的にタイムスロットに見立てた点線を記しており、DOWN0ポート120にもプロッタエンジン50が接続されているものとする。
【0083】
図15に示す例では、最初のタイムスロットで、DOWN0ポート120、DOWN1ポート130がリードアクセスを実施しており、DOWN0ポート120、DOWN1ポート130の間で通信の競合が発生(UP0.Port_Busy=0、DOWN0.Port_Busy=1、DOWN1.Port_Busy=1)しているため、Table6の優先度でTBWRRが実行されている。
【0084】
続いて、2つ目以降のタイムスロットでは、DOWN1ポート130からリードアクセスが実施されていないため、DOWN1.Buffer_Empty=1となり、監視部143のタイマーがスターとされる。ここで、監視部143のレジスタには、閾値としてタイムスロット5つ分の時間である5nsecが設定されているため、6つ目のタイムスロットの終了時点でタイマー値>閾値となり、DOWN1.Port_Idle=1となり、DOWN1.Port_Busy=0となる(図3参照)。
【0085】
この結果、DOWN0ポート120、DOWN1ポート130の間での通信の競合が解消(UP0.Port_Busy=0、DOWN0.Port_Busy=1、DOWN1.Port_Busy=0)するので、制御部160は、切替テーブルを参照して、アービトレーションをTBWRRからWRRに切り替えるとともに、アービトレーションテーブルをTable6からTable0に切り替える。 従って、7つめのタイムスロットからは、Table0で示された優先度に従って、WRRが実行される。
【0086】
このように本実施の形態では、通信の競合の解消をハードウェアである監視部を監視するため、即座(短時間)に競合に適したアービトレーションであるWRRへの切り替えができ、データ転送に必要以上の時間がかかってしまうことを防止することができる。
【0087】
また、本実施の形態によれば、高負荷がかかっている状態であっても帯域の割り当てを正確に行うことができるため、データ量は多いがデータ転送時間はルーズな画像演算モジュール(スキャナー蓄積の画像圧縮など)とデータ転送時間に厳しい画像処理モジュール(画像処理システム内記憶装置からのダイレクトプリントなど)とを同一SW上に混在できる。これにより、モジュールの性質ごとに専用バスや別SWなどに分ける必要が無く、実装コストを下げることができる。また、本実施の形態によれば、帯域の有効活用が可能になるため、従来のように過剰な帯域のポートを備える必要がなくなり、コストを下げることが可能になる。
【符号の説明】
【0088】
1 複合機
2 SW(PCI Express Switch)
10 コントローラ
20 メモリ
30 スキャナ
40 スキャナエンジン
50 プロッタエンジン
60 プロッタ
110 UP0ポート
111 送信バッファ
112 受信バッファ
120 DOWN0ポート
121 送信バッファ
122 受信バッファ
130 DOWN1ポート
131 送信バッファ
132 受信バッファ
141、142、143 監視部
145 計測器
146 レジスタ
147 比較器
150 インターコネクト
151、152、153 インバータ(反転器)
160 制御部
170 記憶部
【先行技術文献】
【特許文献】
【0089】
【特許文献1】特開2006−155183号公報

【特許請求の範囲】
【請求項1】
上位デバイスと接続されるアップリンクポートと、
下位デバイスと接続される複数のダウンリンクポートと、
前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況をそれぞれ監視する複数の監視手段と、
前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況とアービトレーションのアルゴリズムとを対応付けたテーブルを参照して、前記アービトレーションのアルゴリズムを、複数の前記監視手段の監視結果が示す通信状況に対応する前記アルゴリズムに切り替える制御手段と、
を備えることを特徴とするスイッチ装置。
【請求項2】
前記テーブルには、通信の競合を示す通信状況と、所定の時間間隔で前記アップリンクポート及び複数の前記ダウンリンクポートに通信の機会を割り当てる第1アルゴリズムとが対応付けられており、
前記制御手段は、前記監視結果が通信の競合を示す場合には、前記テーブルを参照して、前記アービトレーションのアルゴリズムを前記第1アルゴリズムに切り替えることを特徴とする請求項1に記載のスイッチ装置。
【請求項3】
前記テーブルには、通信の未競合を示す通信状況と、優先度に従って前記アップリンクポート及び複数の前記ダウンリンクポートに通信の機会を割り当てる第2アルゴリズムとが対応付けられており、
前記制御手段は、前記監視結果が通信の未競合を示す場合には、前記テーブルを参照して、前記アービトレーションのアルゴリズムを前記第2アルゴリズムに切り替えることを特徴とする請求項1又は2に記載のスイッチ装置。
【請求項4】
前記アップリンクポート及び複数の前記ダウンリンクポートは、それぞれ、送信データが格納される送信バッファと、受信データが格納される受信バッファと、を備え、
前記監視手段は、監視対象のポートの前記送信バッファに格納される送信データの有無から、当該ポートがアイドル状態であるか否かを監視することを特徴とする請求項1〜3のいずれか1つに記載のスイッチ装置。
【請求項5】
前記監視手段は、
監視対象のポートの通信が終了してから次の通信が開始されるまでの時間を計測する計測器と、
閾値が設定されたレジスタと、
計測された時間と閾値とを比較し、計測された時間が閾値を超える場合に、前記監視対象のポートがアイドル状態であることを示す値を出力する比較器と、を備えることを特徴とする請求項4に記載のスイッチ装置。
【請求項6】
前記テーブルは、前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況に、前記アップリンクポート及び複数の前記ダウンリンクポートに通信の機会を割り当てる優先度が定義されたアービトレーションテーブルに対応付けられたテーブルであり、
前記制御手段は、前記テーブルを参照して、前記アップリンクポート及び複数の前記ダウンリンクポートの現在の優先度を、前記監視結果が示す通信状況に対応する前記優先度に切り替えることを特徴とする請求項1〜5のいずれか1つに記載のスイッチ装置。
【請求項7】
前記第1アルゴリズムは、TBWRR(Time based Weighted Round Robin)であることを特徴とする請求項2に記載のスイッチ装置。
【請求項8】
前記第2アルゴリズムは、RR(Round Robin)又はWRR(Weighted Round Robin)であることを特徴とする請求項3に記載のスイッチ装置。
【請求項9】
請求項1〜8のいずれかに記載のスイッチ装置と、
前記アップリンクポートに接続されるコントローラと、
複数の前記ダウンリンクポートに接続されるスキャナ及びプロッタと、を備えることを特徴とする画像形成装置。
【請求項10】
スイッチ装置で実行されるスイッチ制御方法であって、
上位デバイスと接続されるアップリンクポート及び下位デバイスと接続される複数のダウンリンクポートの通信状況をそれぞれ監視する監視ステップと、
前記アップリンクポート及び複数の前記ダウンリンクポートの通信状況とアービトレーションのアルゴリズムとを対応付けたテーブルを参照して、前記アービトレーションのアルゴリズムを、前記監視ステップでの監視結果が示す通信状況に対応する前記アルゴリズムに切り替える制御ステップと、
を具備することを特徴とするスイッチ制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2010−219963(P2010−219963A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−65274(P2009−65274)
【出願日】平成21年3月17日(2009.3.17)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】