(57)【要約】【課題】プロセス数のみで拡張部を通常状態に復帰させるか否かを判断すると、拡張部の消費電力を含めた全体の消費電力を低減させることは難しい。【解決手段】複数の処理部を有する第１の制御部と、前記複数の処理部と少なくとも一つと共通する処理を実行できる第１処理部を含む複数の処理部を有する第２制御部とを有する画像処理装置において、第１の制御部の前記複数の処理部の少なくとも一つを使用してジョブを実行する際、当該ジョブの実行に使用される処理部とメモリとの間のメモリ帯域性能を測定し、その測定されたメモリ帯域性能が所定値よりも大きい場合は、第１の制御部の複数の処理部の少なくとも一つにより実行される処理を第１処理部に代替させ、測定されたメモリ帯域性能が所定値以下の場合は第２の制御部への電源供給を停止させる。【選択図】  図１２
2018118477.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理部を有する第１の制御部と、
前記複数の処理部と少なくとも一つと共通する処理を実行できる第１処理部を含む複数の処理部を有する第２制御部と、
前記第１及び第２の制御部への電源供給を制御する電源供給手段と、
前記第１の制御部の前記複数の処理部の少なくとも一つを使用してジョブを実行する際、当該ジョブの実行に使用される処理部とメモリとの間のメモリ帯域性能を測定する測定手段と、
前記測定手段により測定された前記メモリ帯域性能が所定値よりも大きい場合は、前記第１の制御部の複数の処理部の少なくとも一つにより実行される処理を、前記第１処理部に代替させ、前記測定手段により測定された前記メモリ帯域性能が所定値以下の場合は、前記電源供給手段により前記第２の制御部への電源供給を停止させるように制御する制御手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記メモリ帯域性能は、前記第１の制御部の複数の処理部と前記メモリとを接続するバスにおける単位時間当たりのデータ転送量であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、前記測定手段により測定された前記メモリ帯域性能が所定値よりも大きくなることに応じて、前記第１の制御部の複数の処理部の少なくとも一つにより実行される処理の内、リアルタイム性を求められない処理を前記第１処理部に代替させることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記リアルタイム性を求められない処理は、ループバック画像処理を含むことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第１の制御部と前記第２の制御部とはリングバスを介して接続され、前記第１の制御部の前記複数の処理部は第１のバススイッチを介して接続され、前記第２の制御部の前記複数の処理部は第２のバススイッチを介して接続され、前記制御手段は、前記第１及び第２のバススイッチの切り替えを制御することにより、前記第１の制御部の複数の処理部の少なくとも一つにより実行される処理を、前記第１処理部に代替させることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記第１の制御部は、前記第１のバススイッチの設定値を保持する第１保持手段を有し、前記第２の制御部は、前記第２のバススイッチの設定値を保持する第２保持手段を有することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記制御手段は、前記第１保持手段及び前記第２保持手段の設定値を設定することにより、前記第１の制御部の複数の処理部の少なくとも一つにより実行される処理を前記第１処理部に代替させることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記制御手段は、前記測定手段により測定された前記メモリ帯域性能が所定値以下のとき、前記第１の制御部の処理部だけで前記ジョブを実行するように前記第１保持手段の設定値を設定することを特徴とする請求項６に記載の画像処理装置。
【請求項９】
前記測定手段は、前記第１の制御部の複数の処理部と前記メモリとの間に接続されて前記メモリのメモリ帯域性能を測定することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記第１の制御部は、前記画像処理装置に組み込まれているメインの制御部であり、前記第２の制御部は、前記メインの制御部と着脱可能な機能拡張用の制御部であることを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
複数の処理部を有する第１の制御部と、前記複数の処理部と少なくとも一つと共通する処理を実行できる第１処理部を含む複数の処理部を有する第２制御部とを有する画像処理装置を制御する制御方法であって、
前記第１の制御部の前記複数の処理部の少なくとも一つを使用してジョブを実行する際、当該ジョブの実行に使用される処理部とメモリとの間のメモリ帯域性能を測定する測定工程と、
前記測定工程で測定された前記メモリ帯域性能が所定値よりも大きい場合、前記第１の制御部の複数の処理部の少なくとも一つにより実行される処理を、前記第１処理部に代替させ、前記測定工程で測定された前記メモリ帯域性能が所定値以下の場合は前記電源供給手段により前記第２の制御部への電源供給を停止させるように制御する制御工程と、
を有することを特徴とする画像処理装置の制御方法。
【請求項１２】
コンピュータに、請求項１１に記載の制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
スキャナ、プリンタ、コピー、ファクシミリの送受信などの機能を備えたデジタル複合機は、外部装置との間で画像データの入出力動作を制御する制御部と、画像データに対して所定の画像処理を行う複数の画像処理部とを有している。このようなデジタル複合機は様々な顧客に対応するため、低速機から高速機まで幅広く製造されており、それら様々な機器に対応する性能に柔軟に対応できるコントローラが望まれている。そこで、低速機用のコントローラを拡張することで高速機の処理速度に対応できるコントローラ・アーキテクチャがある。機能拡張の例として、例えば低速機用のコントローラに画像処理用のハードウェアを新たに追加することによりメモリ帯域性能を向上させ、より高速な画像処理に対応できるものがある。このような機能拡張が必要な理由として、近年のデジタル複合機ではメモリの集約化が進んでいることが挙げられる。複数の画像処理用のハードウェアが同一のメモリデバイスをワークエリアとして共有するため、そのメモリデバイスのメモリ帯域性能が高速処理のボトルネックになる。従って、高速機では機能拡張により、画像処理用のハードウェアを追加してメモリ帯域性能を向上させている。
【０００３】
一方、コントローラを含めたデジタル複合機の消費電力を可能な限り低減することが望まれている。上述した低速機用に用いられるメインのコントローラと高速機用の拡張部を備えた拡張コントローラでは、拡張部を利用しない場合は、その拡張コントローラを省電力状態にすることが望ましい。例えば特許文献１には、メイン側ノードと拡張側ノードにそれぞれＣＰＵを設け、拡張側ノードが未使用のときに拡張側ノード全体を省電力状態とする。そしてメイン側ノードのＣＰＵのプロセス数が増加した場合に拡張側ノードを省電力状態から復帰させることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２１１３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながらＣＰＵのプロセス数に応じて、拡張部を通常状態に復帰させるか否かを判断すると、必要最低限の省電力状態からの復帰とならない場合がある。例えば、メインコントローラのメモリ帯域性能が処理のボトルネックになる場合、例えプロセス数が多くても、必ずしも拡張部を省電力状態から復帰させる必要がない場合がある。なぜなら、メインコントローラによる処理で求められるメモリ帯域は、その処理の種類により異なるため、例えプロセス数が多くでも、必ずしもメモリ帯域性能がネックにならない場合があるためである。このように、メモリの帯域性能が処理のボトルネックになる場合でも、プロセス数のみで拡張部を通常状態に復帰させるか否かを判断すると、拡張部の消費電力を含めた全体の消費電力を低減させることは難しい。
【０００６】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００７】
本発明の目的は、第１の制御部でのメモリ帯域性能に基づいて第２の制御部の処理部による処理の代替の制御、及び第２の制御部への電源供給を制御する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
複数の処理部を有する第１の制御部と、
前記複数の処理部と少なくとも一つと共通する処理を実行できる第１処理部を含む複数の処理部を有する第２制御部と、
前記第１及び第２の制御部への電源供給を制御する電源供給手段と、
前記第１の制御部の前記複数の処理部の少なくとも一つを使用してジョブを実行する際、当該ジョブの実行に使用される処理部とメモリとの間のメモリ帯域性能を測定する測定手段と、
前記測定手段により測定された前記メモリ帯域性能が所定値よりも大きい場合は、前記第１の制御部の複数の処理部の少なくとも一つにより実行される処理を、前記第１処理部に代替させ、前記測定手段により測定された前記メモリ帯域性能が所定値以下の場合は、前記電源供給手段により前記第２の制御部への電源供給を停止させるように制御する制御手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、第１の制御部でのメモリ帯域性能に基づいて第２の制御部の処理部による処理の代替制御、及び第２の制御部への電源供給の制御を行うことにより、装置全体の消費電力を、より低減させることができる。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１１】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態に係る画像処理装置の一例であるデジタル複合機の構成を説明するブロック図。
【図２】本実施形態に係るデジタル複合機のコントローラ部の構成を説明するブロック図。
【図３】本実施形態に係るシステム制御部の構成を説明するブロック図。
【図４】実施形態に係る複合機のリングバスを流れるパケットデータの構造を説明する図。
【図５】実施形態に係るプリント処理部の構成を説明するブロック図（Ａ）、実施形態に係るループバック処理部の構成を説明するブロック図（Ｂ）、実施形態に係るスキャン処理部の構成を説明するブロック図（Ｃ）。
【図６】実施形態に係るループバック処理部のループパック画像処理部の構成を説明するブロック図。
【図７】実施形態に係る複合機のリングバススイッチの構成を説明するブロック図。
【図８】本実施形態に係る複合機のリングバススイッチによるリングバスの接続制御の一例を説明するブロック図で、拡張コントローラ部を使用しない場合の接続制御を示す。
【図９】実施形態に係るリングバススイッチ設定部の構成を説明するブロック図。
【図１０】実施形態に係る複合機のメインコントローラ部と拡張コントローラ部とが接続されてリングバスを形成する場合の接続制御を説明する図。
【図１１】実施形態に係る複合機のメインコントローラ部の帯域モニタの構成を説明するブロック図。
【図１２】実施形態に係る複合機におけるメインコントローラ部と拡張コントローラ部による処理の制御を説明するフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
図１は、本発明の実施形態に係る画像処理装置の一例であるデジタル複合機１００の構成を説明するブロック図である。
【００１４】
スキャナ部１１０は、原稿を光学的に読み取り、その原稿の画像に対応する画像データを出力する。スキャナ部１１０は、原稿を光学的に読み取るためのレーザ光源やレンズ等を有する原稿読取部１１２と、原稿を搬送するベルト等を有する原稿搬送部１１１とを備えている。プリンタ部１４０は、記録媒体（用紙）を搬送し、その用紙に画像データに基づく画像を印刷する。プリンタ部１４０は、用紙を給紙する給紙部１４２、画像データに基づいて画像を用紙に転写して定着させる転写定着部１４１、印刷された用紙をソート、ステイプルして機外へ搬出する排紙部１４３を有している。
【００１５】
コントローラ部１２０は、スキャナ部１１０、プリンタ部１４０と電気的に接続され、更にＬＡＮ，ＩＳＤＮ、インターネット／イントラネット等のネットワーク１５０と接続されている。ユーザがコピー機能を利用する場合、コントローラ部１２０は、スキャナ部１１０を制御して原稿の画像データを取得し、プリンタ部１４０を制御し、その原稿の画像を用紙に印刷して出力する。またスキャン機能を利用する場合、スキャナ部１１０を制御して原稿の画像データを取得してコードデータに変換し、ネットワーク１５０を介してホストＰＣ（不図示）等へ送信する。またプリント機能を利用する場合、ホストＰＣからネットワーク１５０を介して受信した印刷データ（コードデータ）を画像データに変換し、プリンタ部１４０を制御して画像を用紙に印刷して出力する。またＩＳＤＮ等からデータを受信してプリントするファクシミリ（ＦＡＸ）受信機能や、スキャナ部１１０から取得した画像データをＩＳＤＮ等へ送信するＦＡＸ送信機能も有する。また、これら各機能による処理の実行指示をジョブと呼び、デジタル複合機１００は各機能に対応するジョブに従って所定の処理を実行する。操作部１３０は、ユーザが入力操作を行うためのユーザインタフェースとして機能しており、例えばタッチパネル機能を有する表示部や各種ボタンを含むキーボード等を備えている。
【００１６】
図２は、実施形態に係るデジタル複合機１００のコントローラ部１２０の構成を説明するブロック図である。
【００１７】
コントローラ部１２０は、リングバス２０２を介して接続されたメインコントローラ部２００と、機能拡張用の拡張コントローラ部２０１とを有する。更に、ＲＯＭ２９０、ＲＡＭ２９１ａ〜２９１ｃ、ＨＤＤ（ハードディスクドライブ）２９２、ＰＨＹ(Physical Layer)２９３、電源供給部２９４を有している。以下、各部について詳しく説明する。尚、実施形態において、メインコントローラ部２００及び拡張コントローラ部２０１はそれぞれ独立したプリント基板等の電子回路基板とする。また拡張コントローラ部２０１は、ユーザが機能を拡張できるよう着脱可能な構成とする。実施形態では、拡張コントローラ部２０１の構成をメインコントローラ部２００と同一構成としている。但し、機能拡張モジュールとしては、リングバスに接続してパケットデータをやり取り可能なインタフェースを持つものであればどのような機能や構成でもよい。更に、例えば、メインコントローラ部２００及び拡張コントローラ部２０１のそれぞれを、１チップ化したＬＳＩとしてもよい。
【００１８】
まずメインコントローラ部２００について説明する。メインコントローラ部２００は、システム制御部２１０、リングバススイッチ２２０、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０を有する。更に、ＲＡＭコントローラ２６０、リングバススイッチ設定部２７０、リングバス外部Ｉ／Ｆ２８０、帯域モニタ２９５を有している。
【００１９】
システム制御部２１０は、スキャナ部１１０におけるスキャン処理や、プリンタ部１４０におけるプリント処理を制御する制御モジュールである。システム制御部２１０は、リングバススイッチ２２０とリングバスで接続される。またスキャン処理やプリント処理で用いる画像データの転送制御を、リングバススイッチ２２０を介して行う。更に、システム制御部２１０は、ネットワーク１５０へのデータ送信やネットワーク１５０からのデータ受信、操作部１３０への表示処理などシステム全体を統括制御する。
【００２０】
リングバススイッチ２２０は、コントローラ部１２０内の各モジュールへ画像データを転送するためのリングバスのスイッチ制御を行う。実施形態では、コントローラ部１２０内の各モジュールへ画像データを転送するためのリングバスが、リングバススイッチ２２０を介してリング状に繋がっている。これによりシステム制御部２１０、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０、リングバス外部Ｉ／Ｆ２８０の間で、画像データのやり取りが可能になっている。リングバススイッチ２２０の制御は、リングバススイッチ設定部２７０で行われ、必要に応じてリングバス上の各モジュールの接続先を変更することができる。スイッチ制御の詳細は後述する。
【００２１】
プリント処理部２３０は、プリンタ部１４０で使用する画像データのための色空間変換処理、中間調処理、ガンマ補正処理といったプリント用の画像処理を行う。プリント処理部２３０は、リングバススイッチ２２０を介して画像データを受け取り、その画像データに上記プリント用画像処理を施し、処理後の画像データをプリンタ部１４０へ出力する。
【００２２】
ループバック処理部２４０は、画像データの編集処理を行うブロックで、変倍処理、画像合成処理、回転処理など各種画像処理を実行できる。ループバック処理部２４０は、システム制御部２１０からリングバススイッチ２２０を介して画像データを受け取り、画像処理を施した後、システム制御部２１０へリングバススイッチ２２０を介して画像データを戻す。
【００２３】
スキャン処理部２５０は、スキャナ部１１０で取得した画像データに対し、シェーディング補正処理、ＭＴＦ補正処理、ガンマ補正処理、フィルタ処理といったスキャナ用の画像処理を行う。スキャン処理部２５０は、スキャナ部１１０から転送されてきた画像データにスキャナ用の画像処理を施し、処理後の画像データをリングバススイッチ２２０へ転送する。リングバススイッチ２２０へ転送された画像データは、リングバスを介してシステム制御部２１０へ転送される。
【００２４】
ＲＡＭコントローラ２６０は、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０から受け取った画像データをＲＡＭ２９１ｂへ書き込み、ＲＡＭ２９１ｂへ書き込んだ画像データを読み出して転送する処理を行う。プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０は、それぞれが担当する画像処理を実行するためにＲＡＭ２９１ｂを一時的な画像バッファとして利用する。このときＲＡＭコントローラ２６０とＲＡＭ２９１ｂとの間の転送路には、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０それぞれの画像データが多重化して行き交う。そのため、この転送路の処理性能（メモリ帯域性能）を上回るデータ転送が要求されると転送待ち状態が発生する。よって、ＲＡＭコントローラ２６０とＲＡＭ２９１ｂとの間のデータ転送が、メインコントローラ部２００の処理能力のボトルネックとなるケースが多々発生することになる。このメモリ帯域性能はメモリデバイス、メモリコントローラ及び動作周波数により決まるものであり、一般にＭＢ（メガバイト）／ｓ等、単位時間当たりのデータ転送量で表される。ＲＡＭ２９１ｂの使用帯域がメモリデバイスや動作周波数で決まる上限値に達した場合、ＲＡＭ２９１ｂを使用するいずれかの処理が待たされるか、或いは処理が遅くなる。この時、スキャン処理部２３０やプリント処理部２５０などのリアルタイム処理が遅くなってしまった場合、システムとして破綻してしまうため、どのような状況においてもリアルタイム処理についてはメモリ帯域の保証が必要となる。
【００２５】
バス帯域モニタ２９５は、メインコントローラ部２００におけるＲＡＭ２９１ｂのメモリ帯域性能を測定する。帯域モニタ２９５は、メインコントローラ部２００のプリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０の各処理部とＲＡＭコントローラ２６０との間に接続され、ＲＡＭ２９１ｂの使用帯域性能をモニタする。帯域モニタ２９５の詳細については図１１を参照して後述する。
【００２６】
リングバス外部Ｉ／Ｆ２８０は、リングバススイッチ２２０を介してメインコントローラ部２００と外部とを接続し、外部との間でパケットデータの入出力を行う。このリングバス外部Ｉ／Ｆ２８０を介して、メインコントローラ部２００と拡張コントローラ部２０１との間でデータ転送が行われる。つまり実施形態では、拡張コントローラ部２０１がリングバス外部Ｉ／Ｆ２８０を介してメインコントローラ部２００と接続され、１個のリングバス２０２を形成している。
【００２７】
次に、拡張コントローラ部２０１について説明する。この拡張コントローラ部２０１は、コントローラ部１２０の処理を高速化するための機能拡張モジュールである。実施形態では、拡張コントローラ部２０１は、デジタル複合機１００のメモリ帯域性能を増加させる目的で使用される。上述したようにメインコントローラ部２００のＲＡＭ２９１ｂのメモリ帯域性能は、使用するメモリデバイス及び、動作周波数により決定されるため限界がある。高速機においては、中低速機に比べ高速に画像処理を行う必要があるため、メインコントローラ部２００と拡張コントローラ部２０１の２つを使用することにより、画像処理システムとしてのメモリ帯域性能を向上させることができる。
【００２８】
実施形態では、拡張コントローラ部２０１の構成とメインコントローラ部２００の構成が同一である。即ち、拡張コントローラ部２０１は、システム制御部２１１、リングバススイッチ２２１、プリント処理部２３１、ループバック処理部２４１、スキャン処理部２５１を有している。更に、拡張コントローラ部２０１は、ＲＡＭコントローラ２６１、リングバススイッチ設定部２７１、リングバス外部Ｉ／Ｆ２８１を有している。これら各部の機能は、メインコントローラ部２００内の対応する各部の機能と同じである。このような構成を採用することで、メインコントローラ部２００とは別に拡張コントローラ部２０１を設計する開発コストを抑えることができる。尚、実施形態では、拡張コントローラ部２０１のプリント処理部２３１、ループバック処理部２４１、スキャン処理部２５１の内、実際に拡張機能として使用されるのはループバック処理部２４１である。これはプリント処理部２３１やスキャン処理部２５１を使用すると、プリンタ部１４０、スキャナ部１１０の接続をメインコントローラ部２００から拡張コントローラ部２０１へ変更する必要が発生し、コントローラ部１２０の構成が複雑化するためである。図２において、拡張コントローラ部２０１のシステム制御部２１１、プリント処理部２３１、スキャン処理部２５１はグレーアウトし、動作させる必要のないことを示している。図２においてグレーアウトされた部分は、クロック信号の供給が停止された省電力状態としてもよい。
【００２９】
電源供給部２９４は、メインコントローラ部２００と拡張コントローラ部２０１への電源供給を制御する。複合機１００の電源がオンされると、電源供給部２９４はコントローラ部１２０内部でメインコントローラ部２００のみに電源供給を開始する。拡張コントローラ部２０１への電源供給は、メインコントローラ部２００のシステム制御部２１０からの指示に従って制御される。よって、システム制御部２１０からの電源供給の指示があった場合にのみ拡張コントローラ部２０１へ電源供給を行い、電源供給の停止指示があった場合には電源供給を停止させる。
【００３０】
図３は、実施形態に係るシステム制御部２１０の構成を説明するブロック図である。以下、システム制御部２１０を構成する各要素について説明する。尚、拡張コントローラ部２０１のシステム制御部２１１も同様の構成である。
【００３１】
ＣＰＵ３１０は、複合機１００全体を制御するプロセッサである。ＣＰＵ３１０は、ＲＡＭ２９１ａに展開されたＯＳ（オペレーティングシステム）や制御プログラムに従って、プリント処理やスキャン処理といったジョブ処理を統括的に制御する。ＲＯＭコントローラ３２０は、ブートプラグラムを格納しているＲＯＭ２９０にアクセスするための制御モジュールである。デジタル複合機１００の電源がオンされるとＣＰＵ３１０は、ＲＯＭコントローラ３２０を介してＲＯＭ２９０にアクセスしてブートプログラムを実行し、ＨＤＤ２９２からＲＡＭ２９１ａにプログラムを展開する。ＲＡＭコントローラ３３０は、制御プログラムや画像データを格納するＲＡＭ２９１ａにアクセスするための制御モジュールである。ＲＡＭコントローラ３３０は、ＲＡＭ２９１ａの設定や制御を行うためのレジスタを備えており、このレジスタは、ＣＰＵ３１０からアクセス可能である。操作部インタフェース３４０は、ユーザによる操作部１３０を介した操作指示の受付、及び操作結果の表示等を制御する。ＨＤＤ２９２は、システムソフトウェアやアプリケーションプログラム、画像データと各画像データに対応するページ情報やジョブ情報を格納する。ＨＤＤ２９２は、ＨＤＤコントローラ３６０を介してシステムバス３００に接続されており、ＣＰＵ３１０の指示に従ってデータの書き込みや読み出しを行う。ＬＡＮコントローラ３７０はＰＨＹ２９３を介してネットワーク１５０に接続し、外部のホストコンピュータとの間で画像データなどの情報の入出力を行う。モデム３７２は図示しない公衆回線に接続され、ＦＡＸ送信やＦＡＸ受信ジョブを処理する際に外部のＦＡＸ機器とデータ通信を行う。
【００３２】
画像圧縮部３５０は、ＲＡＭ２９１ａ又はＨＤＤ２９２に格納される画像データを、例えばＪＰＥＧフォーマットに圧縮処理する。また画像伸張部３５１は、例えばＪＰＥＧフォーマットに圧縮された画像データを伸張する。レンダリング部３５２は、ネットワーク１５０からＬＡＮコントローラ３７０を経由して受信した画像データ（ＰＤＬデータ）を、プリンタ部１４０で取り扱い可能なビットマップデータに変換する。
【００３３】
電源制御部３８０は、メインコントローラ部２００の各ブロックに対して、未使用ブロックへのクロック供給を止めるなどの省電力制御を行う。例えば、省電力では、拡張コントローラ２０１のシステム制御部２１１の電源制御部は、システム制御部２１１やプリント処理部２３１、スキャン処理部２５１といった未使用ブロックへのクロック信号の供給を停止している。
【００３４】
ＧＰＩＯ制御部３９０は、コントローラ部１２０に備えられているＧＰＩＯ（汎用ＩＯポート）を制御するブロックである。このブロックはＣＰＵ３１０によって制御され、ＧＰＩＯの状態を制御する。本実施形態では、ＧＰＩＯ制御部３９０から出力されるＧＰＩＯ信号はシステム制御部２１０の外部へ出力され、コントローラ部１２０の電源供給部２９４へ接続されている。電源供給部２９４は、このＧＰＩＯ信号がロウレベルの状態のとき拡張コントローラ２０１への電源供給を停止し、ハイレベルのときに拡張コントローラ２０１へ電源を供給する。これによりＣＰＵ３１０は、拡張コントローラ２０１への電源供給を制御することができる。尚、このＧＰＩＯ信号の初期状態はロウレベルである。
【００３５】
リングバスインタフェース３０１は、システム制御部２１０のシステムバス３００と、システム制御部２１０外のリングバススイッチ２２０を中心としたリングバスとを接続するインタフェースである。リングバスを流れるデータをパケットデータと呼び、リングバスインタフェース３０１は、ＲＡＭ２９１ａ又はＨＤＤ２９２に格納されたパケットデータをリングバスへ送信する。また、リングバスから受信したパケットデータをＲＡＭ２９１ａ又はＨＤＤ２９２に格納する。
【００３６】
次にパケットデータについて説明する。
【００３７】
図４は、実施形態に係る複合機１００のリングバスを流れるパケットデータの構造を説明する図である。
【００３８】
パケットデータ４００は、ヘッダ部４１０とデータ部４２０とを含んでいる。ヘッダ部４１０は更に、パケットタイプ４１１、チップＩＤ４１２、ページＩＤ４１３、ジョブＩＤ４１４、パケットＹ座標、パケットＸ座標、パケットバイト長、データバイト長４１８を含んでいる。
【００３９】
パケットタイプ４１１は、そのパケットが画像データか、コマンドなのかを示す。パケットタイプ４１１が画像データを示す場合には、データ部４２０には画像データが格納されている。一方、パケットタイプ４１１がコマンドを示す場合は、データ部４２０には各画像処理部の係数やモードなどを設定するための設定アドレスと設定値が格納されている。チップＩＤ４１２は、このパケットを送信するターゲットとなる処理部を識別するためのＩＤ（識別子）である。例えば、ＩＤ「０」はプリント処理部２３０、ＩＤ「１」はループバック処理部２４０、ＩＤ「２」はスキャン処理部２５０、ＩＤ「３」は拡張コントローラ２０１内のループバック処理部２４１等である。ページＩＤ４１３は、このパケットが属するページ番号を示す。スキャンやプリントといった処理は複数ページ実施される場合があり、その場合に、何ページ目に属するパケットかを示す。ジョブＩＤ４１４は、このパケットの属するジョブ番号を示している。例えば、スキャンジョブとプリントジョブが同時に実施される場合は、スキャンジョブのパケットには「ジョブ番号１」、プリントジョブのパケットには「ジョブ番号２」というように、ジョブ番号が付与され、これにより各ジョブを識別することできる。パケットＹ座標４１５は、データ部４２０に画像データが格納されている場合、その画像データがページ内のどのＹ座標に位置するかを示す。またパケットＸ座標４１６は、データ部４２０に画像データが格納されている場合、その画像データがページ内のどのＸ座標に位置するかを示す。データ部４２０に格納される画像データは、ページ単位の画像データを、所定の画素数（例えば、３２画素×３２画素）の矩形サイズに分割したものである。よって、パケットデータからページデータを再生成する場合に、これらＸ，Ｙ座標が参照される。尚、この画像データは画像圧縮部３５０又は各画像処理部の内部に実装されている圧縮器によって圧縮されており、圧縮画像データとしてデータ部４２０に格納されている。パケットバイト長４１７は、このパケットのトータルバイト数を示し、データバイト長４１８はデータ部４２０のトータルバイト数を示す。
【００４０】
以上説明したようなパケットデータがリングバス上を流れる。各画像処理部はパケットデータを受信、解釈し、コマンドを示すパケットであれば処理のモードや係数などを設定し、画像データを示すパケットであれば画像データに画像処理を実施する。
【００４１】
次に、実施形態に係るプリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０について、図５を参照して詳しく説明する。
【００４２】
図５（Ａ）は、実施形態に係るプリント処理部２３０の構成を説明するブロック図である。
【００４３】
リングバスインタフェース（Ｉ／Ｆ）５００は、プリント処理部２３０内の各部と、プリント処理部２３０の外のリングバススイッチ２２０を中心としたリングバスとを接続するインタフェースである。リングバスインタフェース５００は、パケット入力部５０１とパケット出力部５０２とを有している。パケットデータを受信すると、パケット入力部５０１はヘッダ部４１０のチップＩＤ４１２を参照し、パケット入力部５０１に割り振られたチップＩＤと同一かどうかをチェックする。チップＩＤ４１２の示すＩＤが、そのパケット入力部５０１に割り振られたチップＩＤと異なる場合、処理すべきパケットデータではないと判断して、そのパケットデータをパケット出力部５０２に転送する。
【００４４】
一方、チップＩＤ４１２の示すＩＤが、そのパケット入力部５０１に割り振られたチップＩＤと同一である場合、そのパケットが画像データであれば内部の画像処理パス（伸張器５０３〜プリンタ画像処理部５０５）を通して画像処理を実行する。またそのパケットがコマンドであれば、データ部４２０に格納されている設定アドレスと設定値とを参照し、指定された画像処理部の係数やモードを設定保持部５０６に設定する。またそのパケットが設定値をリードするコマンドであれば、設定保持部５０６は、設定値を格納したパケットデータをリングバスインタフェース５００に送る。伸張器５０３、パケットラスタ変換部５０４及びプリンタ画像処理部５０５は、設定保持部５０６に保持された設定値に基づいて処理を行う。
【００４５】
パケット出力部５０２は、パケット入力部５０１から転送されるパケットデータ、及び設定保持部５０６からのパケットデータの調停を行って、リングバスにパケットデータを転送する。伸張器５０３は、リングバスインタフェース５００から受け取った圧縮画像データを伸張し、後段の画像処理を実施可能な状態に復元する。パケットラスタ変換部５０４は、伸張器５０３から、伸張された画像データを受け取り、ラスタ画像データに変換する。前述したようにパケット内の画像データは、３２画素×３２画素の矩形単位のデータである。電子写真方式の画像形成装置であれば、プリンタ部１４０での印刷処理はラスタ順（ライン順）で行われるため、このパケットラスタ変換部５０４で画像データの画素の並びをラスタ順に変換している。また実施形態では、画像データを３２画素×３２画素の矩形からラスタ順に変換するための一時バッファとしてＲＡＭ２９１ｂを使用しており、パケットラスタ変換部５０４は、ＲＡＭコントローラ２６０を介してＲＡＭ２９１ｂにアクセスする。
【００４６】
プリンタ画像処理部５０５は、上述のようにしてラスタ順に変換された画像データをパケットラスタ変換部５０４から受け取り、プリンタ部１４０による印刷の前処理としての画像処理を画像データに対して行う。具体的には、ＲＧＢをＣＭＹＫに変換する色空間変換処理、ディザ法や誤差拡散法による中間調処理、プリンタ部１４０の特性に合わせ階調を補正するガンマ補正処理などを行う。こうして画像処理が施された画像データはプリンタ部１４０へ出力される。またプリンタ画像処理部５０５は、プリンタ部１４０の起動及び給紙部１４２からの給紙に合わせて、プリンタ部１４０へ画像データを出力する必要がある。そのため、そのタイミングまでの待ち合わせ用のバッファとしてＲＡＭコントローラ２６０を介して、ＲＡＭ２９１ｂへ画像データを一時的に書き込む。そして、給紙タイミングに同期させてＲＡＭ２９１ｂから画像データを読み込んでプリンタ部１４０へ出力する。
【００４７】
図５（Ｂ）は、実施形態に係るループバック処理部２４０の構成を説明するブロック図である。
【００４８】
リングバスインタフェース（Ｉ／Ｆ）５１０は、ループバック処理部２４０の各部と、ループバック処理部２４０外のリングバススイッチ２２０を中心としたリングバスとを接続するインタフェースである。リングバスインタフェース５１０は、パケット入力部５１１とパケット出力部５１２とを有している。パケットデータを受信すると、パケット入力部５１１はヘッダ部４１０のチップＩＤ４１２を参照し、パケット入力部５１１に割り振られたチップＩＤと同一かどうかをチェックする。チップＩＤ４１２の示すＩＤがパケット入力部５１１に割り振られたチップＩＤと異なる場合、パケット入力部５１１で処理すべきパケットデータではないと判断して、そのパケットデータをパケット出力部５１２に転送する。一方、チップＩＤ４１２の示すＩＤが、パケット出力部５１２に割り振られたチップＩＤと同一の場合、そのパケットが画像データであれば内部の画像処理パス（伸張器５１３、ループバック画像処理部５１４）を通して画像処理を実行する。そしてリングバスインタフェース５１０は、画像処理後の圧縮画像データを圧縮器５１５から受け取ると、その画像データにヘッダを付与し、パケットデータとして整形し、システム制御部２１０へ送信する。そのパケットがコマンドであれば、データ部４２０に格納されている設定アドレスと設定値とを参照し、指定された画像処理部の係数やモードを設定保持部５１６に設定する。そのパケットが設定値をリードするコマンドであれば、設定保持部５１６は、保持している設定値を格納したパケットデータを作成してリングバスインタフェース５１０に送る。伸張器５１３、ループバック画像処理部５１４、圧縮器５１５は設定保持部５１６に保持された設定値に基づいて処理を行う。
【００４９】
パケット出力部５１２は、パケット入力部５１１から転送されるパケットデータ、圧縮器５１５からのパケットデータ、及び設定保持部５１６からのパケットデータの調停を行い、リングバスにパケットデータを転送する。
【００５０】
伸張器５１３は、リングバスインタフェース５１０から入力された圧縮画像データを伸張し、後段の画像処理を実施可能な画素状態に復元する。圧縮器５１５は、ループバック画像処理部５１４から入力された処理済みの画像データを圧縮してリングバスインタフェース５１０へ出力する。尚、この圧縮処理は、リングバスインタフェース５１０でパケットデータを整形するために行われる。ループバック画像処理部５１４は、伸張器５１３で伸張された画像データを受け取り、前述した編集系の画像処理を行う。この機能はプリント処理とスキャン処理のどちらでも利用することが可能であり、拡張コントローラ部２０１でも同様の機能が使用される。
【００５１】
図６は、実施形態に係るループバック処理部２４０のループパック画像処理部５１４の構成を説明するブロック図である。
【００５２】
セレクタ６００は、伸張器５１３から入力される画像データ、或いは圧縮器５１５に出力する画像データを、内部のどの画像処理部に接続するかを選択する。このセレクタ６００は、画像データが送信されてくる前に、ＣＰＵ３１０がコマンドパケットによって、その切り替えを設定しており、画像データが入出力されるときには、その接続先が決定されている。
【００５３】
回転処理部６１０は、画像データを回転する処理を実施する。例えば、Ａ４縦でスキャンされた画像を、Ａ４横にして電子化するために使用し、またＡ４横の画像をプリントする場合に、給紙部１４２にセットされている記録紙がＡ４横でなくＡ４縦であった場合に画像を回転させるために使用される。２値化処理部６１１は、入力された多値（例えばＲＧＢそれぞれ８ビット諧調）を誤差拡散法などで２値化する処理を実施する。これは例えば、スキャンした画像をＦＡＸ送信する場合、２値化のために使用される。色空間変換部６１２は、ＲＧＢ画像をＹＵＶ画像に変換する処理、及びＹＵＶ画像をＲＧＢ画像に変換する処理を実施する。解像度変換部６１３は、入力された画像データの解像度を変換する処理を実施する。例えばＦＡＸ送信であれば、スキャンされた高解像度の画像データをＦＡＸ送信で使用する低解像度に変換するために使用する。またＦＡＸ受信プリントであれば、受信した低解像度の画像データをプリント用に高解像度にするために使用される。画像合成部６１４は、印刷すべき画像データにページ印刷（ナンバリング）や部数印刷、地紋といった合成データを合成する処理を実施する。画像形成装置を使用するユーザによっては、セキュリティに関わる地紋印刷といった合成処理を常に使用することがあり、合成処理を常に使用したとしても性能が低下しないことが望まれる。
【００５４】
インターコネクト６２０は、２値化処理部６１１、解像度変換部６１３、画像合成部６１４と、ＲＡＭコントローラ２６０とを接続するインターコネクトである。２値化処理部６１１と解像度変換部６１３は、３２画素×３２画素の矩形のままで画像処理することが困難であり、一度ＲＡＭ２９１ａを使用して画像データをラスタ順に変換してから画像処理を実施している。２値化処理部６１１は、誤差拡散法を順次画素に適用していくためにラスタ順に画素が入力されることが望ましい。また解像度変換部６１３も、例えばバイキュービック法で変換する場合にフィルタ処理を行う必要があるため、一度ラスタ順に変換し、内部のラインバッファで画素を蓄積し、フィルタ処理を行うことが望ましい。また画像合成部６１４は、パケットとして送信されてくる合成データと、同じくパケットとして送信されてくる画像データとを待ち合わせるための一時バッファとしてＲＡＭ２９１ｂを利用している。
【００５５】
以上説明したようにループバック画像処理部５１４は様々なジョブで利用される。しかしながら、ループバック画像処理部５１４は、ＲＡＭ２９１ａにスプールされた画像データを処理してＲＡＭ２９１ａに書き戻す処理を行う。このため、プリント処理部２３０、スキャン処理部２５０の処理に比べて、リアルタイム性を求められていないという特徴がある。
【００５６】
図５（Ｃ）は、実施形態に係るスキャン処理部２５０の構成を説明するブロック図である。
【００５７】
リングバスインタフェース５２０は、スキャン処理部２５０内の各部と、スキャン処理部２５０外のリングバススイッチ２２０を中心としたリングバスとを接続するインタフェースである。リングバスインタフェース５２０は、パケット入力部５２１とパケット出力部５２２とを有している。パケットデータを受信すると、パケット入力部５２１はヘッダ部４１０のチップＩＤ４１２を参照し、自身に割り振られたチップＩＤと同一かどうかをチェックする。チップＩＤ４１２の示すＩＤが自身に割り振られたチップＩＤと異なる場合、自身で処理すべきパケットデータではないと判断して、パケット出力部５２２に、そのパケットデータを転送する。一方、チップＩＤ４１２の示すＩＤが自身に割り振られたチップＩＤと同一である場合、パケットがコマンドであれば、データ部４２０に格納されている設定アドレスと設定値を参照し、指定された画像処理部の係数やモードを設定保持部５２６に設定する。このとき、スキャン処理部２５０に対して画像データはスキャナ部１１０からのみ入力されるため、受信したパケットが画像データを示すことなない。また、パケットが設定値をリードするコマンドであれば、設定保持部５２６は、設定値を格納したパケットデータをリングバスインタフェース５２０に送る。スキャン画像処理部５２３、ラスタパケット変換部５２４、圧縮器５２５は、設定保持部５２６に保持された設定値を基に処理を行う。パケット出力部５２２は、パケット入力部５２１から転送されるパケットデータ、及び設定保持部５２６からのパケットデータの調停を行い、リングバスにパケットデータを転送する。
【００５８】
圧縮器５２５は、ラスタパケット変換部５２４から入力された画像データを圧縮し、後段のリングバスインタフェース５２０へ出力する。圧縮処理はリングバスインタフェース５２０でパケットデータを整形するために行われる。ラスタパケット変換部５２４は、スキャン画像処理部５２３から入力された画素データを、３２画素×３２画素の矩形の画像データに変換する。前述したようにパケット内の画像データは３２画素×３２画素の矩形単位であるため後段のパケット送信のために矩形に変換している。
【００５９】
スキャナ部１１０内でのスキャン処理はライン型のイメージセンサを用いてラスタ順（ライン順）で行われるため、このラスタパケット変換部５２４で画像データの画素の並びを矩形に変換している。また、実施形態では画像データをラスタ順から３２画素×３２画素の矩形に変換するための一時バッファとしてＲＡＭ２９１ｂを使用しており、ラスタパケット変換部５２４はＲＡＭコントローラ２６０を介してＲＡＭ２９１ｂにアクセスする。
【００６０】
スキャン画像処理部５２３は、スキャナ部１１０から画像データを受け取り、シェーディング補正、ＭＴＦ補正、入力ガンマ補正、フィルタリングといった画像処理を行う。これらの画像処理が施された画像データは、ラスタパケット変換部５２４へ出力される。また、スキャン画像処理部５２３は、スキャナ部１１０でのスキャン動作を停止させないために、入力される画像データの転送速度に間に合うように画像データを受信する必要がある。一方で、リングバスインタフェース５２０によるパケット送信は、各画像処理部のパケット送信と自身のパケット送信のタイミングが重なった場合、送信を待たされることがあり、送信速度は安定しない。そのため、スキャン画像処理部５２３は、送信タイミングまでの一時的な干渉用の画像バッファとして、ＲＡＭコントローラ２６０を介してＲＡＭ２９１ｂへ画像データを一時的に書き込む。そして、パケット送信のタイミングに同期させＲＡＭ２９１ｂから画像データを読み込み、ラスタパケット変換部５２４へ画像データを送信する。
【００６１】
図７は、実施形態に係る複合機１００のメインコントローラ部２００のリングバススイッチ２２０の構成を説明するブロック図である。尚、拡張コントローラ部２０１のリングバススイッチ２２１の構成もこれと同様である。
【００６２】
リングバススイッチ２２０は、リングバスにおいてデータの転送先となり得る各モジュールの合計数と同じ数だけ、その内部にスイッチを有する。実施形態では、システム制御部２１０、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０及びリングバス外部Ｉ／Ｆ２８０の各モジュールに対応する５つのスイッチ７０１〜７０５を有している。これらスイッチ（ＳＷ）７０１〜７０５のそれぞれは、リングバススイッチ設定部２７０によって設定された値（設定値）に従って、リングバスを介した接続先を切り替えることができる。これにより、システム制御部２１０、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０、リングバス外部Ｉ／Ｆ２８０の、それぞれのリングバス上での接続順を自由に変更することができる。
【００６３】
図８は、本実施形態に係る複合機１００のリングバススイッチ２２０（或いは２２１）によるリングバスの接続制御の一例を説明するブロック図である。特に図８はメインコントローラ部２００内でリングバスが完結する場合、つまり拡張コントローラ部２０１を使用しない場合の接続制御を示している。そ
また図９は、リングバススイッチ設定部２７０の構成を説明するブロック図である。
【００６４】
リングバススイッチ設定部２７０は、スイッチ７０１〜７０５を制御するためのレジスタ（制御用レジスタ）９１０〜９５０を有している。そして、実施形態に係る各制御用レジスタ９１０，９２０，９３０，９４０，９５０は、いずれも４ビットのレジスタで構成され、例えば、ビット０(bit0)に「１」をセットした場合、「入力（１）」がそのスイッチにおける出力（Ｙ）と接続される。同様に、ビット１に「１」をセットすると、「入力２（２）」が、ビット２に「１」をセットすると「入力３（３）」が、ビット３に「１」をセットすると「入力４（４）」がそれぞれ、そのスイッチの出力（Ｙ）と接続される。このように、各制御用レジスタに格納された値に従って、各スイッチにおける入力データの転送先となるモジュールが特定される。リングバス上の図８に示す接続制御を行う場合の設定値（各制御用レジスタの値）は以下の通りである。
【００６５】
スイッチ７０１制御用レジスタ（９１０）の値…１０００（入力４を選択）
スイッチ７０２制御用レジスタ（９２０）の値…１０００（入力４を選択）
スイッチ７０３制御用レジスタ（９３０）の値…００１０（入力２を選択）
スイッチ７０４制御用レジスタ（９４０）の値…００１０（入力２を選択）
スイッチ７０５制御用レジスタ（９５０）の値…００００（入力の選択なし）
つまり、図８のように接続する場合、スイッチ７０１は、設定値「１０００」に従って「入力４」に対応するスキャン処理部２５０からのパケットデータをシステム制御部２１０へ出力する。スイッチ７０２は設定値「１０００」に従って、「入力４」に対応するシステム制御部２１０からのパケットデータをプリント処理部２３０へ出力する。またスイッチ７０３は設定値「００１０」に従って、「入力２」に対応するプリント処理部２３０からのパケットデータをループバック処理部２４０へ出力する。更にスイッチ７０４は設定値「００１０」に従って、「入力２」に対応するループバック処理部２４０からのパケットデータをスキャン処理部２５０へ出力する。そしてスイッチ７０５は、設定値「００００」に従って何も出力もしない（リングバス外部Ｉ／Ｆ２８０が不使用となる）。
【００６６】
このようにリングバススイッチ２２０を制御することで、システム制御部２１０を起点としてパケットデータは、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０へと順次回り、システム制御部２１０へと戻る。これにより、メインコントローラ部２００単体での構成、つまり拡張コントローラ部２０１を使用しない構成となる。
【００６７】
図１０は、実施形態に係る複合機１００のメインコントローラ部２００と拡張コントローラ部２０１とが接続されてリングバスを形成する場合の接続制御を説明する図である。ここで、図１０に示す接続制御を行う場合の設定値（各制御用レジスタの値）は以下の通りである。
【００６８】
スイッチ７０１制御用レジスタ（９１０）の値…１０００（入力４を選択）
スイッチ７０２制御用レジスタ（９２０）の値…１０００（入力４を選択）
スイッチ７０３制御用レジスタ（９３０）の値…００００（入力の選択なし）
スイッチ７０４制御用レジスタ（９４０）の値…０００１（入力１を選択）
スイッチ７０５制御用レジスタ（９５０）の値…００１０（入力２を選択）
スイッチ７１１制御用レジスタの値…００００（入力の選択なし）
スイッチ７１２制御用レジスタの値…００００（入力の選択なし）
スイッチ７１３制御用レジスタの値…０００１（入力１を選択）
スイッチ７１４制御用レジスタの値…００００（入力の選択なし）
スイッチ７１５制御用レジスタの値…０１００（入力３を選択）
つまり、図１０に示すように接続する場合、スイッチ７０１は設定値「１０００」に従って、「入力４」に対応するスキャン処理部２５０からのパケットデータをシステム制御部２１０へ出力する。スイッチ７０２は設定値「１０００」に従って、「入力４」に対応するシステム制御部２１０からのパケットデータをプリント処理部２３０へ出力する。スイッチ７０３は設定値「００００」に従って何も出力もしない（ループバック処理部２４０が不使用となる）。スイッチ７０４は設定値「０００１」に従って、「入力１」に対応するリングバス外部Ｉ／Ｆ２８０からのパケットデータをスキャン処理部２５０へ出力する。スイッチ７０５は設定値「００１０」に従って、「入力２」に対応するプリント処理部２３０からのパケットデータをリングバス外部Ｉ／Ｆ２８０へ出力する。
【００６９】
このようにリングバススイッチ２２０を制御することで、システム制御部２１０を起点としてパケットデータは、プリント処理部２３０、リングバス外部Ｉ／Ｆ２８０、スキャン処理部２５０へと順次回り、システム制御部２１０へと戻る。
【００７０】
また拡張コントローラ部２０１のリングバススイッチ２２１では、スイッチ７１１，７１２及び７１４は設定値「００００」に従って何も出力もしない（システム制御部２１１、プリント処理部２３１、スキャン処理部２５１が不使用となる）。スイッチ７１３は設定値「０００１」に従って、「入力１」に対応するリングバス外部Ｉ／Ｆ２８１からのパケットデータをループバック処理部２４１へ出力する。スイッチ７１５は設定値「０１００」に従って、「入力３」に対応するループバック処理部２４１からのパケットデータをリングバス外部Ｉ／Ｆ２８１へ出力する。
【００７１】
このようにリングバススイッチ２２１を制御することで、拡張コントローラ部２０１へ入力されたパケットデータは、ループバック処理部２４１を経由してメインコントローラ部２００へ戻る。即ち、システム制御部２１０を起点としてパケットデータが、プリント処理部２３０、ループバック処理部２４１、スキャン処理部２５０へと順次経由してシステム制御部２１０へ戻るリングバスを形成することが可能となる。
【００７２】
以上のようにリングバスを形成することにより、メインコントローラ部２００のループバック処理部２４０を使用しないことにより、ＲＡＭ２９１ｂへのデータ転送路の混雑が緩和され、メインコントローラ部２００の性能低下を防ぐことが可能となる。
【００７３】
尚、実施形態においては、メインコントローラ部２００及び拡張コントローラ部２０１の外部から、これらレジスタの値を設定／変更できるようにしても良い。例えば、上述のリングバススイッチ制御用レジスタの値を編集可能なソフトウェアを用いて、ユーザが操作部１３０を介して新たな値を設定できるような構成でもよい。その場合、そのソフトウェアは、システム制御部２１０のＣＰＵ３１０が実行し、拡張コントローラ部２０１のシステム制御部２１１は使用しない。そのため、拡張コントローラ部２０１のリングバススイッチ設定部２７１における制御用レジスタ値の変更についても、メインコントローラ部２００のシステム制御部２１０が、リングバス外部Ｉ／Ｆ２８０及び２８１を介して行なうことになる。
【００７４】
尚、実施形態では、拡張コントローラ部２０１の構成はメインコントローラ部２００と同じ構成としているが、一部が異なる構成でも構わない。また実施形態では、メインコントローラ部２００と拡張コントローラ部２０１とにそれぞれリングバススイッチ設定部２７０，２７１を備える構成としたが、本発明はこれに限定されない。例えば、共通する１個のリングバススイッチ設定部によって、リングバススイッチ２２０，２２１双方のスイッチ制御を行う構成であっても構わない。
【００７５】
図１１は、実施形態に係る複合機１００のメインコントローラ部２００の帯域モニタ２９５の構成を説明するブロック図である。
【００７６】
帯域モニタ２９５は、帯域検出部１１０１、帯域通知部１１０２、帯域閾値設定部１１０３、及び割り込み通知部１１０４を有している。帯域モニタ２９５は、メインコントローラ部２００のＲＡＭ２９１ｂのメモリ帯域を測定するために用いられる。即ち、メインコントローラ部２００のプリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０の各処理部と、ＲＡＭコントローラ２６０との間のデータ転送を帯域検出部１１０１によりモニタする。そして、ＲＡＭ２９１ｂの、その時点でのメモリ帯域を算出する。こうして帯域検出部１１０１により取得されたメインコントローラ部２００のＲＡＭ２９１ｂのメモリ帯域は、帯域通知部１１０２を通してＣＰＵ３１０により読み取り可能である。
【００７７】
帯域閾値設定部１１０３は、ＣＰＵ３１０により帯域の閾値（所定値）が設定される。帯域閾値設定部１１０３に設定された閾値は、帯域検出部１１０１により計測されたＲＡＭ２９１ｂの、その時点でのメモリ帯域との比較に用いられる。そのときのメモリ帯域が、帯域閾値設定部１１０３に設定された閾値よりも大きい場合、割り込み通知部１１０４を通してＣＰＵ３１０に通知することも可能である。実際の使用例として、帯域閾値設定部１１０３には、先述したようなメモリデバイスや動作周波数で決まるＲＡＭ２９１ｂのメモリ帯域性能の上限値、或いは上限値に近い値を設定する。そして、プリント処理部２３０、ループバック処理部２４０及びスキャン処理部２５０を使用する時に、帯域検出部１１０１が示す、ＲＡＭ２９１ｂのメモリ帯域との比較に用いられる。帯域検出部１１０１が示すＲＡＭ２９１ｂの使用メモリ帯域が、帯域閾値設定部１１０３に設定した閾値より大きい場合、メインコントローラ部２００のＲＡＭ２９１ｂが混雑していると判断し、拡張コントローラ部２０１へ電源供給を開始する。そして、リアルタイム性が要求されていないループバック処理部２４０を使用する画像処理を、拡張コントローラ部２０１のループバック処理部２４１へ割り当てる。これにより、メインコントローラ部２０１のＲＡＭ２９１ｂの混雑を少なくし、リアルタイム処理が待たされたり、或いは遅延するのを防止できる。もちろん、各画像処理を行う時に、帯域検出部１１０１が示すＲＡＭ２９１ｂの使用メモリ帯域と、これから実行する画像処理で使用するメモリ帯域の予想値との合計値を、帯域閾値設定部１１０３に設定した閾値との比較に用いてもよい。こうすることにより、これから実行する画像処理を行った場合に、ＲＡＭ２９１ｂのメモリ帯域が、ＲＡＭ２９１ｂのメモリ帯域性能の上限値に達してしまうかどうかを事前に判断できる。
【００７８】
一方、帯域検出部１１０１が示すＲＡＭ２９１ｂの使用メモリ帯域が、帯域閾値設定部１１０３に設定した閾値以下（所定値以下）の場合、ＲＡＭ２９１ｂの帯域は混雑していないと判断し、これから実行する処理をメインコントローラ部２０１に割り当てる。これにより、ＲＡＭ２９１ｂのメモリ帯域に鑑み、メモリ帯域性能に影響がある場合のみ、拡張コントローラ部２０１を使用することが可能となる。
【００７９】
このように、帯域モニタ２９５により、ＣＰＵ３１０は、ＲＡＭ２９１ｂのメモリ帯域を知ることができ、それを拡張コントローラ部２０１を使用するか否かの判定に用いることができる。
【００８０】
図１２は、実施形態に係る複合機１００におけるメインコントローラ部２００と拡張コントローラ部２０１による処理の制御を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ３１０がＨＤＤ２９２に格納されたプログラムをＲＡＭ２９１ａに展開し、ＣＰＵ３１０が、その展開したプログラムを実行することにより達成される。
【００８１】
まずＳ１２０１でＣＰＵ３１０は、ジョブを受付けたかどうか判定する。ここでは例えば、ユーザからスキャンジョブやＦＡＸ送信ジョブを受付ける場合は、ユーザが操作部１３０を操作したことを操作部インタフェース３４０を介してＣＰＵ３１０が検知し、その操作内容に従ってジョブの入力を受け付ける。また、ＰＣ等からのプリントジョブの受信の場合は、ネットワーク１５０及びＬＡＮコントローラ３７０経由でＣＰＵ３１０はホストコンピュータからのジョブの入力を受け付ける。またＦＡＸ受信ジョブであれば、公衆回線及びモデム３７２を介してＣＰＵ３１０はジョブの入力を受け付ける。こうしてジョブを受け付けるとＳ１２０２へ進む。Ｓ１２０２でＣＰＵ３１０は、Ｓ１２０１で受け付けたジョブにより使用される画像処理機能を判定してＳ１２０３に進む。具体的には、プリント処理部２３０、ループバック処理部２４０、スキャン処理部２５０のどの処理が、受け付けたジョブによって使用されるかを判定する。
【００８２】
例えば、ジョブとしてＦＡＸ送信ジョブを受け付けた場合、ＦＡＸ送信のためにスキャナ部１１０を用いたスキャン処理を実行するためスキャン処理部２５０が使用される。またスキャンした画像データに対してＦＡＸ送信可能なフォーマットに変換するためにループバック処理部２４０が使用される。具体的には、２値化処理部７１１による送信画像の２値化処理、及び解像度変換部７１３によるＦＡＸ送信可能な解像度の画像データへの変換処理が実行される。つまり、スキャン処理部２５０とループバック処理部２４０の２つの画像処理部が使用されると判定する。
【００８３】
また、ホストコンピュータからプリントジョブを受け付けた場合、プリンタ部１４０を用いたプリント処理を実行するためプリント処理部２３０が使用される。また例えば、ホストコンピュータから送付されてきたプリントすべき画像データと、給紙部１４２にセットされている記録紙の向きが異なる場合は、ループバック処理部２４０の回転処理部７１０を使用して画像データの向きを回転させる。また例えば、地紋などのデータを画像データに合成する指示があった場合は、ループバック処理部２４０の画像合成部７１４を使用して、画像データに地紋データを合成する。この場合は、プリント処理部２３０とループバック処理部２４０の２つの画像処理部が使用される。
【００８４】
デジタル複合機１００は一般的に、複数のジョブを同時に受け付けることができ、ジョブが重なる状態をジョブ競合状態と呼ぶ。ジョブ競合状態は、例えばデジタル複合機１００がプリントジョブとＦＡＸ送信ジョブとをほぼ同時に受け付けた場合などに発生し、複数のジョブが競合した場合に、前述したＲＡＭ２９１ｂへのデータ転送路が混雑することとなる。
【００８５】
Ｓ１２０３でＣＰＵ３１０は、Ｓ１２０２で判定した画像処理を実行する前に、帯域モニタ２９５が示すＲＡＭ２９１ｂの現在のメモリ帯域を確認する。ここで、この帯域モニタ２９５が示すＲＡＭ２９１ｂの帯域が、閾値より小さければ、ＲＡＭ２９１ｂは混雑していないと判定してＳ１２０４へ進み、閾値以上であればＲＡＭ２９１ｂは混雑していると判定してＳ１２０５へ進む。ここで言う閾値は、帯域モニタの説明で前述したように、メモリデバイスや動作周波数で決まるＲＡＭ２９１ｂのメモリ帯域性能の上限値、或いは上限値に近い値である。もちろん、各画像処理を行う時に、帯域モニタ２９５が示すＲＡＭ２９１ｂの現在のメモリ帯域と、これから実行する画像処理で使用するメモリ帯域の予想値との合計値を、閾値との比較に用いてもよい。こうすることにより、これから実行する画像処理を行った場合に、ＲＡＭ２９１ｂのメモリ帯域が、ＲＡＭ２９１ｂのメモリ帯域性能の上限値に達してしまうかどうかを事前に判定できる。
【００８６】
Ｓ１２０４でＣＰＵ３１０は、リングバススイッチ２２０を、メインコントローラ部２００でリングバスが完結する状態に設定してＳ１２０９に進む。このＳ１２０４は、ＣＰＵ３１０が、メインコントローラ部２００のＲＡＭ２９１ｂへのデータ転送路が混雑していないと判定した場合に実施されるため、図８で示したように拡張コントローラ部２０１を使用しないようリングバススイッチ２２０を設定する。
【００８７】
一方、Ｓ１２０５でＣＰＵ３１０は、拡張コントローラ部２０１への電源供給を開始する。具体的にはＣＰＵ３１０は、ＧＰＩＯ制御部３９０を制御してＧＰＩＯ信号をハイレベルにする。これによりコントローラ部１２０の電源供給部２９４は、拡張コントローラ部２０１への電源供給を開始する。
【００８８】
次にＳ１２０６に進みＣＰＵ３１０は、リングバス外部Ｉ／Ｆ２８０を介してメインコントローラ部２００と拡張コントローラ部２０１との間でパケットデータを送受信可能となるようにリングバススイッチ２２０及び２２１を設定する。具体的な設定は、例えば図１０で示したものとなる。このＳ１２０６は、メインコントローラ部２００のＲＡＭ２９１ｂへのデータ転送路が混雑していると判定された場合に実施されるため、図１０で示したように拡張コントローラ部２０１を使用できるようリングバススイッチ２２０及び２２１を設定する。次にＳ１２０７に進みＣＰＵ３１０は、拡張コントローラ部２０１の初期設定を実行する。この初期設定は、ループバック処理部２４１及びＲＡＭコントローラ２６１の設定である。本実施形態では、ＣＰＵ３１０はパケットデータを拡張コントローラ部２０１へ送信することで拡張コントローラ部２０１の各種設定を行う。次にＳ１２０８に進みＣＰＵ３１０は、ループバック画像処理を拡張コントローラ部２０１のループバック処理部２４１に割り当ててＳ１２０９に進む。Ｓ１２０８では、メインコントローラ部２００のＲＡＭ２９１ｂへのデータ転送路が混雑していると判定されているため、更に画像処理を同時実行した場合にＲＡＭ２９１ｂのメモリ帯域性能の上限値に達してしまう可能性がある。そのため、プリント処理部２３０及びスキャン処理部２５０に対して、リアルタイム性を求められないループバック処理の画像処理を、拡張コントローラ部２０１のループバック処理部２４１に割り当てる。この時、他のジョブによりメインコントローラ部２００のループバック処理部２４０が既に使用されていた場合は、ループバック処理部２４０の処理を停止し、拡張コントローラ２０１のループバック処理部２４１に、再度、その画像処理を割り当てる。
【００８９】
Ｓ１２０９でＣＰＵ３１０は、デジタル複合機１００の各部を制御し、受け付けたジョブに対する画像処理を実行する。このときＳ１２０４からＳ１２０９に進んだ場合は、画像処理はコントローラ部１２０のメインコントローラ部２００のみを用いて実行され、このとき拡張コントローラ部２０１には電源が供給されていない。またＳ１２０８からＳ１２０９に進んだ場合は、コントローラ部１２０において、メインコントローラ部２００及び拡張コントローラ部２０１の両方を用いて画像処理が実行される。
【００９０】
次にＳ１２１０に進みＣＰＵ３１０は、Ｓ１２０９で実行している画像処理が終了したか否かを判定し、画像処理が終了したと判定するとＳ１２１１へ進むが、そうでないときはＳ１２１０を実行する。Ｓ１２１１でＣＰＵ３１０は、拡張コントローラ部２０１のループバック処理部２４１が他のジョブで使用されているかどうか判定する。ここで他のジョブを受け付けて拡張コントローラ部２０１のループバック処理部２４１が使用されているときは、継続して拡張コントローラ部２０１を使用するようにして、この処理を終了する。
【００９１】
一方、Ｓ１２１１でＣＰＵ３０１は、拡張コントローラ部２０１のループバック処理部２４１が使用されていないと判定するとＳ１２１２に進む。Ｓ１２１２でＣＰＵ３１０は、リングバススイッチ２２０及び２２１を、拡張コントローラ部２０１を使用しない図８の状態に戻す。そしてＳ１２１３に進みＣＰＵ３１０は、拡張コントローラ部２０１の電源供給を停止する。具体的にはＣＰＵ３１０は、ＧＰＩＯ制御部３９０を制御してＧＰＩＯ信号をロウレベルにする。これにより電源供給部２９４は、拡張コントローラ部２０１への電源供給を停止する。これにより拡張コントローラ部２０１は、再び省電力状態へと戻る。
【００９２】
以上説明したように実施形態によれば、メインコントローラ部２００のＲＡＭ２９１ｂのメモリ帯域が、メモリ帯域性能の上限値に近づいた場合に、拡張コントローラ部へ電源を供給して、拡張コントローラ部により、機能の一部を代替させる。これにより、必要最低限、拡張コントローラ部を使用して、受け付けたジョブを実行させることができる。
【００９３】
実施形態によれば、帯域モニタ２９５が示すメモリ帯域性能に鑑みて、拡張コントローラ部２０１が省電力状態から復帰するよう制御することで、拡張コントローラ部２０１を使用する期間を最小限にできる。これにより、動作中のコントローラ部１２０の消費電力を低減させることが可能となる。
【００９４】
複数のプロセッサに処理を分散する場合、プロセスの数のみに基づいて、各プロセッサの負荷状況を判断する。そして、各プロセッサによるメモリアクセスの競合状態に関しては、各プロセスで使用するメモリ帯域の机上の計算値の合計に基づいて設計をする必要がある。このため、実際のメモリアクセスの競合の度合いに対して、マージンを持たせて設計する必要がある。従って、全体の消費電力を低減させるには限界がある。
【００９５】
これに対して実施形態では、バス帯域モニタ２９５で動的にモニタされたメモリ帯域を使用するため、実際に使用されているメモリ帯域に基づいて拡張コントローラ部を使用するか、しないかを判定できる。これにより、より効率的に、拡張コントローラ部を省電力状態に留まらせることができ、装置全体の消費電力を、より低減させることができる。
【００９６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９７】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００９８】
１００…複合機、１２０…コントローラ部、２００…メインコントローラ部、２０１…拡張コントローラ部、２１０…システム制御部、２２０，２２１…リングバススイッチ、２７０，２７１…リングバススイッチ設定部、２９４…電源供給部、２９５…帯域モニタ、３１０…ＣＰＵ
【図１】
2018118477.tif 000003
【図２】
2018118477.tif 000004
【図３】
2018118477.tif 000005
【図４】
2018118477.tif 000006
【図５】
2018118477.tif 000007
【図６】
2018118477.tif 000008
【図７】
2018118477.tif 000009
【図８】
2018118477.tif 000010
【図９】
2018118477.tif 000011
【図１０】
2018118477.tif 000012
【図１１】
2018118477.tif 000013
【図１２】
2018118477.tif 000014