(57)【要約】【課題】リングバスシステムにおいて、未使用のモジュールが存在する場合に発生する余分なレイテンシを削減することができる。【解決手段】制御モジュールから入力される情報に応じて処理を実行する処理モジュールと、制御モジュールと処理モジュールとの間をリング状に接続してデータを転送するリングバスと、リングバスの経路を切り替えるバススイッチと、を備え、バススイッチは、使用されていない処理モジュールがある場合に、当該処理モジュールにデータが転送されないようにリングバスの経路を切り替える。【選択図】  図７
2018116646.tif 000002
【特許請求の範囲】
【請求項１】
制御モジュールから入力される情報に応じて処理を実行する処理モジュールと、
前記制御モジュールと前記処理モジュールとの間をリング状に接続してデータを転送するリングバスと、
前記リングバスの経路を切り替えるバススイッチと、を備え、
前記バススイッチは、
使用されていない前記処理モジュールがある場合に、当該処理モジュールにデータが転送されないように前記リングバスの経路を切り替える
ことを特徴とする集積回路。
【請求項２】
前記バススイッチは、
前記リングバスの経路を切り替えるためのセレクタを有し、
前記リングバスの経路が、前記使用されていない前記処理モジュールをバイパスするように、前記セレクタを制御する
請求項１に記載の集積回路。
【請求項３】
前記処理モジュールが使用されているか否かを判定する判定手段と、
前記判定手段の判定の結果に基づき、前記処理モジュールを前記リングバスに接続させるか否かを指定するための信号を前記バススイッチに送信する送信手段と、をさらに備え、
前記バススイッチは、
前記送信手段から送信される前記信号に応じて、前記セレクタを制御する
請求項２に記載の集積回路。
【請求項４】
前記処理モジュールに対して供給される電源を制御する電力制御手段をさらに備え、
前記バススイッチは、
前記電力制御手段によって電源の供給が停止された前記処理モジュールに対してデータが転送されないように、前記リングバスの経路を切り替える
請求項１から請求項３のうちのいずれか１項に記載の集積回路。
【請求項５】
前記処理モジュールに対して供給されるクロックを制御する電力制御手段をさらに備え、
前記バススイッチは、
前記電力制御手段によってクロックの供給が停止された前記処理モジュールに対してデータが転送されないように、前記リングバスの経路を切り替える
請求項１から請求項３のうちのいずれか１項に記載の集積回路。
【請求項６】
前記電力制御手段は、
クロックまたは電源を制御するための信号を前記処理モジュールに対して送信し、
前記バススイッチは、
前記処理モジュールに対して送信される前記信号を監視し、前記処理モジュールに対するクロックまたは電源の供給が停止されたか否かを判定する
請求項４または請求項５に記載の集積回路。
【請求項７】
前記電力制御手段が、ハードウェアシーケンサである
請求項４から請求項６のうちのいずれか１項に記載の集積回路。
【請求項８】
前記バススイッチは、
前記リングバスを流れるデータを監視し、当該監視の結果に基づいて、前記リングバスにデータが流れていないときに前記リングバスの経路を切り替える
請求項１から請求項７のうちのいずれか１項に記載の集積回路。
【請求項９】
制御モジュールから入力される情報に応じて処理を実行する処理モジュールと、前記制御モジュールと前記処理モジュールとの間をリング状に接続してデータを転送するリングバスと、前記リングバスの経路を切り替えるバススイッチとを備える集積回路の制御方法であって、
使用されていない前記処理モジュールがある場合に、当該処理モジュールにデータが転送されないように前記リングバスの経路を切り替えるステップを含む
ことを特徴とする制御方法。
【請求項１０】
コンピュータを、請求項１から請求項８のうちのいずれか１項に記載の集積回路として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路内のバスをリング状に接続してデータ転送を行う集積回路に関する。
【背景技術】
【０００２】
スキャナ機能、プリンタ機能、コピー機能、ネットワーク機能、ＦＡＸ送受信機能といった様々な機能を兼備えるデジタル複合機が知られている。そのようなデジタル複合機における各機能は、通常、外部装置との間で行われる画像データの入出力動作を制御する制御モジュールと、画像データに対して所定の画像処理を行う複数の画像処理モジュールとを有する、コンロトーラにより制御される。そのようなコントローラのアーキテクチャとして、各モジュール間のバスをリング状に接続してデータ転送を行うリングバスシステムが一般的に採用される。リングバスシステムは、マスタモジュールとスレーブモジュールとの全てをバススイッチで接続するシステムと比較し、信号の本数が少ない。そのため、上記のようなコントローラを一つのＬＳＩ（大規模集積回路）で実現する場合において、リングバスシステムを採用することにより、ＬＳＩ内部の配線をしやすくできるとともに、ＬＳＩの回路規模を小さくすることができる。一方、リングバスシステムは各モジュールをリング状に接続するため、ある特定の処理モジュールのみしか使用しない場合でも、バスが全てのモジュールを通ることになる。したがって、リングバスシステムでは、そのような場合において余分なレイテンシが発生する。
【０００３】
リングバスの転送効率を向上させるための方法として、リングバス上の転送元モジュールと転送先モジュール間における最短の転送経路を選択して、データ転送を行う方法がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−５６１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、リングバスシステムにおいて、特許文献１に記載された方法を採用した場合でも、選択した転送経路上に未使用のモジュールが含まれる場合には、上述したような余分なレイテンシが発生する。そこで、本発明は、リングバスシステムにおいて、未使用のモジュールが存在する場合に発生する余分なレイテンシを削減することができる集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明による集積回路は、制御モジュールから入力される情報に応じて処理を実行する処理モジュールと、制御モジュールと処理モジュールとの間をリング状に接続してデータを転送するリングバスと、リングバスの経路を切り替えるバススイッチと、を備え、バススイッチは、使用されていない処理モジュールがある場合に、当該処理モジュールにデータが転送されないようにリングバスの経路を切り替えることを特徴とする。
【発明の効果】
【０００７】
リングバスシステムにおいて、未使用のモジュールが存在する場合に発生する余分なレイテンシを削減することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態における画像形成装置の構成を示すブロック図である。
【図２】第１実施形態におけるコントローラ部の内部構成を示すブロック図である。
【図３】第１実施形態におけるシステム制御部の内部構成を示すブロック図である。
【図４】リングバスを流れるパケットの一例を示す図である。
【図５】リングバスのバスプロトコルの一例を説明するための図である。
【図６】プリント処理部、ループバック処理部、およびスキャン処理部の内部構成を示すブロック図である。
【図７】第１実施形態におけるコントローラ部の動作を説明するための図である。
【図８】リングバススイッチと各処理部との接続状態を説明するための図である。
【図９】セレクタ制御部におけるＳＥＬ信号の切替タイミングを示すタイミングチャートである。
【図１０】第１実施形態における画像形成装置がリングバススイッチを切り替える場合の、処理の流れを示すフローチャートである。
【図１１】第２実施形態におけるコントローラ部の動作を説明するための図である。
【発明を実施するための形態】
【０００９】
［第１実施形態］
以下、本発明を実施するための形態について図面を用いて説明する。
【００１０】
＜画像形成装置＞
図１は、第１実施形態における画像形成装置１００の構成を示すブロック図である。画像形成装置１００は、スキャナ部１１０と、集積回路であるコントローラ部１２０と、操作部１３０と、プリンタ部１４０とを備える。
【００１１】
スキャナ部１１０は、原稿画像を光学的に読み取り、画像データに変換する。スキャナ部１１０は、原稿を読み取るための機能を有する原稿読取部１１２と、原稿用紙を搬送するための機能を有する原稿給紙部１１１とを含む。プリンタ部１４０は、記録媒体（用紙）を搬送し、用紙上に画像データを可視画像として印字して装置外に排紙する。プリンタ部１４０は、複数種類の用紙カセットを有する給紙部１４２と、画像データを用紙に転写して定着させる機能を有する転写定着部１４１と、印字された用紙をソート、ステイプルして機外に出力する機能を有する排紙部１４３とを含む。コントローラ部１２０は、スキャナ部１１０およびプリンタ部１４０と電気的に接続され、さらにＬＡＮ、ＩＳＤＮ、インターネット／イントラネット等のネットワーク１５０と接続されている。コントローラ部１２０は、スキャナ部１１０を制御して原稿の画像データを取得し、プリンタ部１４０を制御して画像データを用紙に出力してコピー機能を提供する。また、コントローラ部１２０は、スキャナ部１１０から取得した画像データをコードデータに変換し、ネットワーク１５０を介して図示しないホストコンピュータに送信するスキャナ機能を提供する。コントローラ部１２０は、ホストコンピュータからネットワーク１５０を介して受信したコードデータを画像データに変換し、プリンタ部１４０を制御して画像データを用紙に印刷するプリンタ機能を提供する。さらに、コントローラ部１２０は、ネットワーク１５０（例えばＩＳＤＮ）から受信したデータをプリントするＦＡＸ受信機能や、スキャンしたデータをネットワーク１５０に送信するＦＡＸ送信機能を提供する。スキャン、プリント、ＦＡＸ送受信といった各機能における処理の実行指示をジョブと呼び、画像形成装置１００は各ジョブに従って処理を実行する。操作部１３０は、例えば液晶タッチパネルであって、コントローラ部１２０に接続される。操作部１３０は、画像形成装置１００を操作するためのユーザインタフェースを提供する。
【００１２】
＜コントローラ部＞
図２は、第１実施形態におけるコントローラ部１２０の内部構成を示すブロック図である。図２に示すように、コントローラ部１２０は、システム制御部２１０と、画像リングバススイッチ（ＳＷ)２２０と、プリント処理部２３０と、ループバック処理部２４０と、スキャン処理部２５０とを含む。本実施形態では、各ブロックに画像データを転送するためのデータ線（リングバス）が画像リングバスＳＷ２２０を介して、リング状につながっている。
【００１３】
システム制御部（制御モジュールともいう）２１０は、画像形成装置１００のスキャナ部１１０を用いたスキャン処理やプリンタ部１４０を用いたプリント処理を制御する。システム制御部２１０は、それら処理を行うための画像データの転送を、画像リングバスＳＷ２２０を介して行う。さらに、システム制御部２１０はネットワーク１５０へのデータ送信やネットワーク１５０からのデータ受信、操作部１３０への表示処理などを行う。このように、システム制御部２１０はシステム全体を統括制御する。
【００１４】
画像リングバスＳＷ２２０は、画像データをコントローラ部１２０の各ブロックに転送するためのリングバスのスイッチ制御を行う。すなわち、画像リングバスＳＷ２２０は、リングバスの経路制御を行う。これにより制御モジュールであるシステム制御部２１０と、各処理モジュール（プリント処理部２３０、ループバック処理部２４０およびスキャン処理部２５０）との間で画像データをやり取りすることが可能になっている。画像リングバスＳＷ２２０は、リングバス上にある各ブロックの接続先を必要に応じて変更するためのバススイッチである。画像リングバスＳＷ２２０におけるスイッチ制御の詳細は、図７を用いて後述する。
【００１５】
プリント処理部２３０は、プリンタ部１４０で画像データを印字するための色空間変換処理や中間長処理、ガンマ補正など各種画像処理を行う。プリント処理部２３０は、画像リングバスＳＷ２２０から画像データを受け取り、画像データに上記画像処理を施した後に画像データをプリンタ部１４０に出力する。
【００１６】
ループバック処理部２４０は、プリント処理とスキャン処理のどちらでも利用する可能性がある画像処理を実施する。ループバック処理部２４０は、システム制御部２１０からリングバスを介して画像データを受け取り、画像データに上記画像処理を施し、処理後の画像データを画像リングバスＳＷ２２０に転送する。画像リングバスＳＷ２２０に転送された画像データは、リングバスを介してシステム制御部２１０に転送される。
【００１７】
スキャン処理部２５０は、スキャナ部１１０で取得した画像データに対して、シェーディング補正処理やＭＴＦ補正処理、入力ガンマ補正やフィルタ処理といった画像処理を行う。スキャン処理部２５０は、スキャナ部１１０から転送されてきた画像データにこれら画像処理を施し、処理後の画像データを画像リングバスＳＷ２２０に転送する。画像リングバスＳＷ２２０に転送された画像データは、リングバスを介してシステム制御部２１０に転送される。
【００１８】
＜システム制御部＞
図３は、第１実施形態におけるシステム制御部２１０の内部構成を示すブロック図である。図３を用いて、システム制御部２１０の各ブロックそれぞれについて詳細に説明する。システム制御部２１０は、リングバスインタフェース（Ｉ／Ｆ）３０１、ＣＰＵ３１０と、ＲＯＭコントローラ３２０と、ＲＯＭ３２１と、ＲＡＭコントローラ３３０と、ＲＡＭ３３１と、操作部インタフェース（Ｉ／Ｆ）３４０とを含む。さらに、システム制御部２１０は、画像圧縮部３５０と、画像伸張部３５１と、レンダリング部３５２と、ＨＤＤコントローラ３６０と、ＨＤＤ３６１と、ＬＡＮコントローラ３７０と、ＰＨＹ３７１と、モデム３７２と、リングバスＳＷ制御部３８１とを含む。各ブロックは、図３に示すようにシステムバス３００によって接続される。
【００１９】
ＣＰＵ３１０は、システム全体を制御するプロセッサである。ＣＰＵ３１０は、ＲＡＭ３３１に展開されたＯＳや制御プログラムに従ってプリント処理やスキャン処理といったジョブ処理を統括的に制御する。
【００２０】
ＲＯＭコントローラ３２０は、ＲＯＭ３２１にアクセスするための制御モジュールである。ＲＯＭ３２１にはシステムのブートプラグラムが格納される。画像形成装置１００の電源がＯＮされると、ＣＰＵ３１０はＲＯＭコントローラ３２０を介してＲＯＭ３２１にアクセスし、ＣＰＵ３１０がブートする。
【００２１】
ＲＡＭコントローラ３３０は、ＲＡＭ３３１にアクセスするための制御モジュールである。ＲＡＭ３３１にはシステムの制御プログラムや画像データが格納される。ＲＡＭコントローラ３３０は、ＲＡＭ３３１の設定や制御を行うためのレジスタを備える。このレジスタは、ＣＰＵ３１０からアクセス可能である。
【００２２】
操作部インタフェース３４０は、操作部１３０から入力されるユーザの操作指示を受け付けたり、操作結果の表示の制御を行ったりする。
【００２３】
ＨＤＤコントローラ３６０は、ＨＤＤ（ハードディスクドライブ）３６１とシステムバス３００とを接続する。ＨＤＤ３６１は、システムソフトウェアやアプリケーションプログラムを格納する。また、ＨＤＤ３６１は、画像データと、各画像データに対応するページ情報やジョブ情報とを格納する。ＣＰＵ３１０は、ＨＤＤコントローラ３６０に指示を入力することで、ＨＤＤ３６１からデータを読み込んだり、ＨＤＤ３６１にデータを書き込んだりする。
【００２４】
ＬＡＮコントローラ３７０は、ＰＨＹ３７１を介してネットワーク１５０に接続し、外部のホストコンピュータ等との間で画像データなどの情報の入出力を行う。
【００２５】
モデム３７２は図示しない公衆回線に接続し、ＦＡＸ送信処理やＦＡＸ受信処理といったジョブ処理が行われる際に、外部のＦＡＸ機器とデータ通信を行う。
【００２６】
画像圧縮部３５０は、ＲＡＭ３３１またはＨＤＤ３６１に格納される画像データをＪＰＥＧフォーマットに圧縮する。また画像伸張部３５１は、ＪＰＥＧフォーマットに圧縮された画像データを伸張する。
【００２７】
レンダリング部３５２は、ネットワーク１５０からＬＡＮコントローラ３７０を経由して受信した画像データ（ＰＤＬデータ）を、プリンタ部１４０で取り扱い可能なビットマップデータに変換する。
【００２８】
リングバスＳＷ制御部３８１は、ＣＰＵ３１０によって制御され、画像リングバスＳＷ２２０のリングバスの接続先を制御する。リングバスＳＷ制御部３８１は、画像リングバスＳＷ２２０の接続先を変更するためのトリガ信号（後述するＲＥＱ＿ＳＥＬ＿Ｐ信号、ＲＥＱ＿ＳＥＬ＿Ｌ信号、ＲＥＱ＿ＳＥＬ＿Ｓ信号）を生成して送信する。
【００２９】
リングバスＩ／Ｆ３０１は、システム制御部２１０内のシステムバス３００と、システム制御部２１０外の画像リングバスＳＷ２２０を中心としたリングバスとを接続するインタフェースである。以下、リングバスを流れるデータをパケットデータ、または単にパケットと呼ぶ。リングバスＩ／Ｆ３０１は、ＲＡＭ３３１またはＨＤＤ３６１に格納されたパケットをリングバスに送信する。また、リングバスＩ／Ｆ３０１は、リングバスから受信したパケットをＲＡＭ３３１またはＨＤＤ３６１に格納する。ここでリングバスを流れるパケットについて詳細に説明する。
【００３０】
図４は、リングバスを流れるパケットの一例を示す図である。パケット４００は、ヘッダ部４１０とデータ部４２０とを含む。ヘッダ部４１０は、パケットタイプ４１１とチップＩＤ４１２とを含む。
【００３１】
パケットタイプ４１１は、パケット４００（具体的には、データ部４２０に格納されるデータ）が画像データかコマンドかを示す。コマンドとは、各画像処理部の設定値を読み書きするためのレジスタリードコマンドや、各画像処理部のモード等を設定するレジスタライトコマンドである。パケットタイプ４１１が画像データを示す場合には、データ部４２０には画像データが格納されている。また、パケットタイプ４１１がライトコマンドを示す場合には、データ部４２０には各画像処理部の係数やモードなどを設定するための設定アドレスと設定値を示すデータが格納されている。また、パケットタイプ４１１がリードコマンドを示す場合には、データ部４２０には各画像処理部の係数やモードを読み出すための設定アドレスが格納されている。リードコマンドを受け取った各画像処理部は、リードデータをデータ部に格納したパケットを、リングバスを介してシステム制御部２１０に送信する。
【００３２】
チップＩＤ４１２は、パケット４００を送信する宛て先（ターゲット）となる処理部を識別するためのＩＤ（識別子）である。例えば、チップＩＤが０ならば、システム制御部２１０がターゲットとなる。チップＩＤが１ならば、プリント処理部２３０がターゲットとなる。チップＩＤが２ならば、ループバック処理部２４０がターゲットとなる。チップＩＤが３ならば、スキャン処理部２５０がターゲットとなる。
【００３３】
本実施形態におけるリングバスには以上説明したようなパケットが流れ、各処理モジュールの画像処理部はパケットを受信して解釈する。そして、各画像処理部が受信したパケットがコマンドを含む場合は、当該コマンドで指定される、処理のモードや係数などが、各画像処理部に設定される。各画像処理部が受信したパケットが画像データを含む場合は、各画像処理部において、当該画像データに対して画像処理が実行される。
【００３４】
＜リングバスプロトコル＞
次に、リングバスのバスプロトコルについて図５を用いて説明する。
【００３５】
図５は、リングバスのバスプロトコルの一例を説明するための図である。図５には、パケットの転送単位はヘッダ部とデータ部とを３３ビート（ｂｅａｔ）の連続データとして転送する例が示されている。以降、１ビートで転送するヘッダ部と３２ビートで転送するデータ部をサブパケットと呼ぶこととする。１ページ分の画像データは、当然１サブパケットで各画像処理モジュールに転送することはできない。そのため、１ページ分の画像処理を行うためには、複数個のサブパケットを何度も転送することとなる。
【００３６】
Ｓｔａｒｔ信号及びＤａｔａ信号は、リングバスマスタモジュールがリングバススレーブモジュールに送信する信号である。Ｒｅａｄｙ信号は、リングバススレーブモジュールがリングバスマスタモジュールに送信する信号である。ここで、リングバスマスタモジュールは、サブパケットを送信するモジュールであり、リングバススレーブモジュールは、サブパケットを受信するモジュールである。図中のＭ⇒Ｓは、リングバスマスタモジュールからリングバススレーブモジュールに送信される信号であることを表す。Ｓ⇒Ｍは、リングバススレーブモジュールからリングバスマスタモジュールに送信される信号であることを表す。
【００３７】
Ｓｔａｒｔ信号は、Ｒｅａｄｙ信号が“Ｈｉｇｈ”である場合のみアサート可能であり、サブパケットを転送する場合に１サイクル間のみ“Ｈｉｇｈ”にアサートされる。一度Ｓｔａｒｔ信号がアサートされると、次のサイクルから、サブパケットがＤａｔａ信号として３３ビートまとめて転送される。
【００３８】
Ｒｅａｄｙ信号は、サブパケットを受信可能な状態である場合に、リングバススレーブモジュールによって“Ｈｉｇｈ”にアサートされる。リングバス上においてサブパケットの転送が開始された場合は（つまりＳｔａｒｔ信号のアサートが検知された場合は）、次のサブパケットを受信可能になるまでリングバススレーブモジュールはＲｅａｄｙ信号を“Ｌｏｗ”にアサートする。
【００３９】
＜画像処理部＞
次に、プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０について図６を用いて詳細に説明する。
【００４０】
図６（ａ）には、プリント処理部２３０の内部構成が示されている。パケット入出力Ｉ／Ｆ６００は、パケット入力部６０３とパケット出力部６０４とを含む。パケット入力部６０３は、受信したパケットをパケット出力部６０４に転送するか、コマンド処理部６０１に転送するか、または、プリント画像処理部６０２に転送するかを、パケットのヘッダ部を参照し決定する。パケット出力部６０４は、画像リングバスＳＷ２２０に対して、パケット入力部６０３から入力されるパケットを転送するか、コマンド処理部６０１から入力されるコマンドデータを転送するかを判定し、いずれかを転送する。コマンド処理部６０１から入力されるコマンドデータは、後述する、リードコマンドに対応する読み出しデータである。パケット出力部６０４は、コマンドデータを転送する際、コマンドデータにヘッダ部を付加してパケットとして転送する。パケット入力部６０３とパケット出力部６０４は、サブパケットを格納可能なバッファを有する。
【００４１】
以下、プリント処理部２３０の動作について説明する。パケット入力部６０３は、受信したパケットのヘッダ部のチップＩＤを参照し、自身に割り振られたチップＩＤと同一かどうかをチェックする。ヘッダ部のチップＩＤによって示されるＩＤが自身に割り振られたチップＩＤ（本実施形態では、１）と異なる場合、パケット入力部６０３は、プリント処理部２３０で処理すべきパケットではないと判断する。そして、パケット入力部６０３は、当該パケットをパケット出力部６０４に転送する。パケット入力部６０３は、常にパケット出力部６０４にパケットを転送できるとは限らないため、サブパケットを格納可能なバッファを有する。パケット出力部６０４にパケットを転送できない状況の例としては、パケット出力部６０４が別のサブパケットを転送中である場合である。一方、ヘッダ部のチップＩＤによって示されるＩＤが自身に割り振られたチップＩＤと同一である場合、パケット入力部６０３は、プリント処理部２３０で処理すべきパケットであると判断する。このとき、パケットが画像データであれば、パケット入力部６０３は、プリント画像処理部６０２に画像データを転送し、画像処理を実行させる。パケットがライトコマンドであれば、パケット入力部６０３は、データ部に格納されているアドレスと設定値とを、コマンド処理部６０１に転送する。パケットがリードコマンドであれば、パケット入力部６０３は、データ部に格納されているアドレスをコマンド処理部６０１に転送する。コマンド処理部６０１は、受信したアドレスをもとにレジスタからリードしたコマンドデータを、パケット出力部６０４に送信する。そして、パケット出力部６０４は、受信したコマンドデータにヘッダを付与し、パケットとして、システム制御部２１０に送信する。
【００４２】
コマンド処理部６０１は、パケット入力部６０３より受信したコマンドデータを解釈し、プリント画像処理部６０２の係数やモードレジスタを設定したり、係数やモードやステータスレジスタの読み出しを行ったりする。コマンドデータがライトコマンドを示す場合は、プリント画像処理部６０２の係数やモードレジスタを設定する。コマンドデータがリードコマンドを示す場合は、プリント画像処理部６０２の係数やモードやステータスレジスタを読み出し、コマンドデータに格納する。そして、コマンド処理部６０１は、読み出した情報を格納したコマンドデータをパケット出力部６０４に送信する。
【００４３】
プリント画像処理部６０２は、設定された係数やモード設定に従い、入力画像に対し色空間変換処理や中間長処理、ガンマ補正など各種画像処理を行う。そして、プリント画像処理部６０２は、画像処理を施した画像データをプリンタ部１４０に出力する。
【００４４】
図４（ｂ）には、ループバック処理部２４０の内部構成が示されている。パケット入力部６１３は、図４（ａ）に示すパケット入力部６０３と同様である。コマンド処理部６１１は、図４（ａ）に示すコマンド処理部６０１と同様である。なお、コマンド処理部６１１は、ループバック画像処理部６１２に接続される。ループバック画像処理部６１２は、パケット入力部６１３から入力された画像データに対し、設定された係数やモード設定に従い、変倍やトリミングや色空間変換等の画像処理を行う。そして、ループバック画像処理部６１２は、画像処理を施した画像データをパケット出力部６１４に送信する。
【００４５】
パケット出力部６１４は、図４（ａ）に示すパケット出力部６０４と同様である。パケット出力部６１４は、ループバック画像処理部６１２から画像データを受信した場合、受信した画像データにヘッダを付与し、当該画像データをパケットとして、システム制御部２１０に送信する。
【００４６】
図４（ｃ）には、スキャン処理部２５０の内部構成が示されている。
【００４７】
パケット入力部６２３は、図４（ａ）に示すパケット入力部６０３と同様である。ただし、パケット入力部６２３は、画像処理部（スキャナ画像処理部６２２）に画像データを転送しない。その理由は、スキャン処理部２５０には、スキャナ部１１０からのみ画像データが入力されるため、受信したパケットが画像データを示すことがないためである。
【００４８】
コマンド処理部６２１は、図４（ａ）に示すコマンド処理部６０１と同様である。なお、コマンド処理部６２１は、スキャナ画像処理部６２２に接続される。
【００４９】
スキャナ画像処理部６２２は、スキャナ部１１０から受け取った画像データに対し、設定された係数やモード設定に従い、シェーディング補正処理やＭＴＦ補正処理、入力ガンマ補正やフィルタ処理といった画像処理を行う。スキャナ画像処理部６２２は、画像処理を施した画像データをパケット出力部６２４に送信する。
【００５０】
パケット出力部６２４は、図４（ａ）に示すパケット出力部６０４と同様である。パケット出力部６２４は、スキャナ画像処理部６２２から画像データを受信した場合、受信した画像データにヘッダを付与し、当該画像データをパケットとして、システム制御部２１０に送信する。
【００５１】
＜パケット入出力Ｉ／Ｆのバイパス制御＞
ここで、パケット入出力Ｉ／Ｆ６００，６１０，６２０をバイパスする場合に発生するレイテンシについて説明する。なお、ここではレイテンシを発生させる要因のみ説明し、レイテンシの詳細については、図９に示すタイミングチャートを用いて後述する。
【００５２】
上述したように、パケット入力部は、入力されたパケットが自身の処理モジュールに対するパケットではないと判断した場合に、当該パケットをパケット出力部に転送する。そして、パケット出力部は、パケット入力部から受信したパケットをリングバスＳＷに転送する。
【００５３】
このようにパケット入出力Ｉ／Ｆ６００，６１０，６２０をバイパスする場合、各パケット入出力Ｉ／Ｆのパケット入力部において、入力されたパケットが自身の処理部に対するパケットであるか否かを確認するステップが必要になる。また、各パケット入出力Ｉ／Ｆのパケット出力部において、コマンド入力部、コマンド処理部、または画像処理部から入力されるデータのいずれを出力対象として選択するかを判断するステップが必要になる。このようなステップには、少なからず数サイクルのレイテンシが発生する。そこで、本実施形態では、パケット入出力Ｉ／Ｆをバイパスする場合に発生するレイテンシを削減する。レイテンシを削減する方法については後述する。
【００５４】
＜リングバススイッチ＞
図７は、第１実施形態におけるコントローラ部１２０の動作を説明するための図である。コントローラ部１２０の画像リングバスＳＷ２２０は、プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０のそれぞれに対応するバススイッチ（リングバスＳＷ７００ａ，７００ｂ，７００ｃ）を含む。なお、リングバスＳＷ７００ａ，７００ｂ，７００ｃの内部構成は同じであるため、ここでは、リングバスＳＷ７００ａの内部構成を説明する。
【００５５】
リングバスＳＷ７００ａは、セレクタ制御部７０１と、ポート７１０〜７１４を介して入出力されるリングバス信号（図７に示されるＳｔａｒｔ信号，Ｄａｔａ信号，Ｒｅａｄｙ信号）の接続先を切り替えるセレクタ７０２〜７０５と、を有する。以下、ポート７１０を介して入出力されるＳｔａｒｔ信号，Ｄａｔａ信号，Ｒｅａｄｙ信号をそれぞれ、Ｍ０＿Ｓｔａｒｔ，Ｍ０＿Ｒｅａｄｙ，Ｍ０＿Ｄａｔａ信号と表す。また、これら各リングバス信号をまとめて、Ｍ０＿［ｒｉｎｇ］と表す。なお、ｒｉｎｇは各リングバス信号を識別するためのインデックスである。例えば、ｒｉｎｇ＝０はＳｔａｒｔ信号を示し、ｒｉｎｇ＝１はＲｅａｄｙ信号を示し、ｒｉｎｇ＝２はＤａｔａ信号を示す。ポート７１１，７１２，７１３を介して入出力される各リングバス信号についても同様に表す。なお、図面の簡略化のため、ポート７１０〜７１４以外のポート、すなわちリングバス信号以外の信号が入出力されるポートについては図示しない。
【００５６】
セレクタ７０２〜７０５は、セレクタ制御部７０１から出力されるＳＥＬ信号の値により、各リングバス信号の接続先を切り替える。ここで、図８を用いてＳＥＬ信号が“０（Ｌｏｗ）”の場合、及び、“１（Ｈｉｇｈ）”の場合にリングバスがどのように接続されるかを説明する。
【００５７】
図８は、リングバスＳＷと各処理部との接続状態を説明するための図である。なお、図８には、リングバスＳＷ７００ａとプリント処理部２３０との接続状態が例示されているが、リングバスＳＷ７００ｂとループバック処理部２４０との接続状態も同様である。また、リングバスＳＷ７００ｃとスキャン処理部２５０との接続状態も同様である。
【００５８】
図８（ａ）には、ＳＥＬ信号の値が“０”である場合の接続状態が模式的に示されている。ＳＥＬ信号の値が”０”である場合、ポート７１０を介して入出力されるＭ０＿［ｒｉｎｇ］と、ポート７１１を介して入出力されるＭ１＿［ｒｉｎｇ］とが接続される。また、ポート７１２を介して入出力されるＭ２＿［ｒｉｎｇ］と、ポート７１３を介して入出力されるＭ３＿［ｒｉｎｇ］とが接続される。これにより、システム制御部２１０からリングバスＳＷ７００ａに入力されるパケットが、プリント処理部２３０を経由して、リングバスＳＷ７００ｂに転送される。以下、図８（a）に示す接続状態を処理モジュール接続モードと呼ぶ。
【００５９】
図８（ｂ）には、ＳＥＬ信号の値が“１”である場合の接続状態が模式的に示されている。ＳＥＬ信号の値が“１”である場合、ポート７１０を介して入出力されるリングバス信号Ｍ０＿［ｒｉｎｇ］と、ポート７１３を介して入出力されるリングバス信号Ｍ３＿［ｒｉｎｇ］とがそのまま接続される。また、プリント処理部２３０との間において不要な画像データの転送が起らないように、パケット入力部６０３へのＳｔａｒｔ信号（すなわちＭ１＿Ｓｔａｒｔ）は“Ｌｏｗ”に設定される。また、パケット出力部６０４へのＲｅａｄｙ信号（すなわちＭ２＿Ｒｅａｄｙ）は“Ｌｏｗ”に設定される。以下、図８（ｂ）に示す接続状態を処理モジュールバイパスモードと呼ぶ。
【００６０】
セレクタ制御部７０１は、リングバスＳＷ制御部３８１から入力されるＲＥＱ＿ＳＥＬ信号の値により、ＳＥＬ信号を制御する。ここで、セレクタ制御部７０１は、ＲＥＱ＿ＳＥＬ信号が遷移したタイミングですぐにＳＥＬ信号を切り替えずに、リングバスＳＷ７００ａ内のリングバスにパケットが流れていないタイミングでセレクタ７０２〜７０５を切り替える。理由としては、リングバスにパケットが流れている最中に接続先を切り替えてしまうと、パケットの取りこぼしが発生するためであり、リングバスのプロトコルも守ることができなくなるからである。そのため、図７に示すように、リングバス信号Ｍ０＿［ｒｉｎｇ］の一部の信号（例えば、Ｍ０＿Ｄａｔａ）が、セレクタ制御部７０１に接続されている。また、リングバス信号Ｍ３＿［ｒｉｎｇ］の一部の信号（例えば、Ｍ３＿Ｄａｔａ）が、セレクタ制御部７０１に接続されている。セレクタ制御部７０１は、それらの信号を監視して、パケットがリングバスを流れているか否かを判定する。セレクタ制御部７０１におけるＳＥＬ信号の切替タイミングについて、図９を用いて説明する。
【００６１】
＜セレクタの切替タイミング＞
図９は、セレクタ制御部７０１におけるＳＥＬ信号の切替タイミングを示すタイミングチャートである。図９（a）には、処理モジュール接続モードから処理モジュールバイパスモードに変更される場合のタイミングチャートが示されている。図９（ｂ）には、処理モジュールバイパスモードから処理モジュール接続モードに変更される場合のタイミングチャートが示されている。ここで、タイミングチャートにおける各信号の意味を以下に記載する。
・ＲＥＱ＿ＳＥＬ信号が“Ｌｏｗ”：処理モジュール接続モードにするリクエスト状態
・ＲＥＱ＿ＳＥＬ信号が“Ｈｉｇｈ”：処理モジュールバイパスモードにするリクエスト状態
・ＳＥＬ信号が“Ｌｏｗ”：処理モジュール接続モード
・ＳＥＬ信号が“Ｈｉｇｈ”：処理モジュールバイパスモード
なお、パケットの転送単位は３２ビートであるが、説明の便宜上、図９では、「ｄ０−ｄ３１」という記載を用いて、実際より短いビート数（８ビート）でパケットを示している。
【００６２】
まず、図９（ａ）に示す、処理モジュール接続モードから処理モジュールバイパスモードに接続状態が変更する場合のタイミングチャートについて説明する。
【００６３】
Ｔ３〜Ｔ１６のいずれのタイミングでＲＥＱ＿ＳＥＬが“Ｈｉｇｈ”に設定されても、最終的にＳＥＬ信号が“Ｈｉｇｈ”に変更されるのは、Ｔ１７のタイミングである。理由としては、Ｔ１６まではリングバス上にパケットが流れているからである。
【００６４】
ＳＥＬ信号の“Ｈｉｇｈ”への遷移条件を以下に示す。
Ｍ０＿Ｓｔａｒｔ  ＝  “Ｌｏｗ”（パケット転送要求なし）
Ｍ０＿Ｒｅａｄｙ  ＝  “Ｈｉｇｈ”（パケット受付可能状態）
Ｍ３＿Ｓｔａｒｔ  ＝  “Ｌｏｗ”（パケット転送要求なし）
Ｍ３＿Ｒｅａｄｙ  ＝  “Ｈｉｇｈ”（パケット受付可能状態）
であり、リングバス上にパケットが流れていないことが検知され、かつ、
ＲＥＱ＿ＳＥＬ  ＝  “Ｈｉｇｈ”（処理モジュールバイパスモード）
また、Ｔ１７でＳＥＬ信号が“Ｈｉｇｈ”（処理モジュールバイパスモード）に遷移したため、それ以降、Ｍ１＿ＳｔａｒｔとＭ２＿Ｒｅａｄｙとがそれぞれ“Ｌｏｗ”となり、図８（ｂ）に示すような状態になっている。
【００６５】
処理モジュール接続モードでは、図８（ｂ）に示されるように、ポート７１０から入力されたパケットは、Ｔ３〜Ｔ１２の区間において、プリント処理部２３０と接続されるポート７１１に出力される。ポート７１１からプリント処理部２３０のパケット入出力Ｉ／Ｆ６００に入力されたパケットがバイパスされた場合、前述したようにパケット入出力Ｉ／Ｆ６００において一定のレイテンシが発生する。図９には、レイテンシが４サイクルである場合の例が示されている。よって、Ｔ３〜Ｔ１２から４サイクルずれたＴ７〜Ｔ１６の区間において、各画像処理部のパケット入出力Ｉ／Ｆからポート７１２にパケット（Ｍ２＿Ｄａｔａ）が入力されている。ポート７１２から入力されたパケットは、そのままポート７１３から出力される。
【００６６】
一方、処理モジュールバイパスモードでは、図８（ｂ）に示されるように、Ｍ０＿［ｒｉｎｇ］がそのままＭ３＿［ｒｉｎｇ］に接続される。よって、Ｔ２０〜Ｔ２９の区間におけるＭ０＿［ｒｉｎｇ］とＭ３＿［ｒｉｎｇ］とは同じタイミングで出力される。すなわち、ポート７１０から入力されたパケットはレイテンシなくポート７１３から出力される。
【００６７】
次に、図９（ｂ）に示す、処理モジュールバイパスモードから処理モジュール接続モードに接続状態が変更する場合のタイミングチャートについて説明する。
【００６８】
Ｔ３〜Ｔ１２のいずれのタイミングでＲＥＱ＿ＳＥＬが“Ｌｏｗ”に設定されても、最終的にＳＥＬ信号が“Ｌｏｗ“に変更されるのは、Ｔ１３のタイミングである。理由としては、Ｔ１２まではリングバス上にパケットが流れているからである。
【００６９】
ＳＥＬ信号の“Ｌｏｗ”への遷移条件を以下に示す。
Ｍ０＿Ｓｔａｒｔ  ＝  “Ｌｏｗ”（パケット転送要求なし）
Ｍ０＿Ｒｅａｄｙ  ＝  “Ｈｉｇｈ”（パケット受付可能状態）
であり、リングバス上にパケットが流れていないことが検知され、かつ、
ＲＥＱ＿ＳＥＬ  ＝  “Ｌｏｗ”
【００７０】
以上説明したように、セレクタ制御部７０１が、現在のリングバスの接続状態と、リングバス上を流れるパケットの有無とを判断し、リングバスの接続状態を切り替える。したがって、本実施形態では、リングバス上を流れるデータを損失させることなく、適切なタイミングでリングバスの接続状態を切り替えることができる。
【００７１】
なお、セレクタ制御部７０１の構成および動作については、リングバスの接続状態とリングバス上にデータが流れていないことを確認して切り替える構成および動作であれば、上述した構成および動作に限定されない。すなわち、本実施形態は、図５に示すバスプロトコル以外のバスプロトコルにも適用可能である。
【００７２】
＜制御フローチャート＞
図１０は、第１実施形態における画像形成装置１００がリングバスＳＷを制御する場合の、処理の流れを示すフローチャートである。図１０に示す処理は、ＨＤＤ３６１に格納されたプログラムに従って、ＣＰＵ３１０がリングバスＳＷ制御部３８１を制御することで実行される。
【００７３】
ステップＳ１００１で、ＣＰＵ３１０は、プリント処理部２３０、ループバック処理部２４０、およびスキャン処理部２５０と、それぞれに対応するリングバスＳＷとの接続状態を切り替えるか否かを判断する。
【００７４】
ステップＳ１００２で、ＣＰＵ３１０はＳ１００１の判断に従い、リングバスＳＷ制御部３８１を制御する。それにより、ＲＥＱ＿ＳＥＬ＿Ｐ信号、ＲＥＱ＿ＳＥＬ＿Ｌ信号、ＲＥＱ＿ＳＥＬ＿Ｓ信号が制御される。
【００７５】
例えば、ＣＰＵ３１０が処理モジュールバイパスモードを選択するタイミングとしては、画像形成装置１００においてプリント処理しか行われておらず、スキャン処理が行われていない場合である。その場合、ＣＰＵ３１０は、スキャン処理部２５０が使用されていないと判断し、スキャン処理部２５０がバイパスされるように、リングバスＳＷ制御部３８１にＲＥＱ＿ＳＥＬ＿Ｓ信号を“Ｈｉｇｈ”にするよう指示する。また例えば、ＣＰＵ３１０が処理モジュール接続モードを選択するタイミングとしては、スキャン処理が行われると判断した場合、例えば、操作部１３０を介してユーザからスキャン実行指示が入力された場合である。その場合、ＣＰＵ３１０は、リングバスＳＷ制御部３８１にＲＥＱ＿ＳＥＬ＿Ｓ信号を“Ｌｏｗ”にするよう指示する。なお、スキャン処理が完了した場合、例えば、スキャン処理部２５０からスキャン終了の割り込み通知を受け付けた場合には、ＣＰＵ３１０は、再びスキャン処理部２５０をバイパスするようにしてもよい。すなわち、ＣＰＵ３１０は、再びリングバスＳＷ制御部３８１にＲＥＱ＿ＳＥＬ＿Ｓ信号を“Ｈｉｇｈ”にするよう指示するようにしてもよい。
【００７６】
ステップＳ１００３で、ＣＰＵ３１０はリングバスの切り替えが完了したかを確認する。切り替え完了の確認方法としては、例えば、図７には図示していないが、セレクタ制御部から送信されるＳＥＬ信号をリングバスＳＷ制御部３８１に接続する方法がある。そして、ＣＰＵ３１０はリングバスＳＷ制御部３８１に接続されたＳＥＬ信号の状態を監視（モニタ）することで、切り替え完了を確認することが可能となる。
【００７７】
ＣＰＵ３１０は、リングバスの切り替えが完了したと判断した場合（ステップＳ１００３のＹＥＳ）、処理を終了する。そして、ＣＰＵ３１０は、再び、ステップＳ１００１から処理を開始する。
【００７８】
以上説明したように、本実施形態では、画像処理部が未使用である処理モジュールを、リングバスに接続しないようにリングバスＳＷを制御する。それにより、画像処理部が未使用である処理モジュールをバイパスさせることができる。したがって、リングバスシステムにおいて、未使用のモジュールが存在する場合に発生する余分なレイテンシを削減するができる。
【００７９】
[第２実施形態]
第１実施形態では、ＲＥＱ＿ＳＥＬ＿Ｐ信号、ＲＥＱ＿ＳＥＬ＿Ｌ信号、ＲＥＱ＿ＳＥＬ＿Ｓ信号を用いて、リングバスの接続状態を切り替える方法について説明した。第２実施形態では、電力制御信号を用いて、リングバスの接続状態を切り替える方法について説明する。第１実施形態では、ＣＰＵ３１０がリングバスＳＷ制御部３８１を制御することにより、リングバスの接続状態の切り替えを実現した。しかし、本実施形態ではハードウェアシーケンサによりリングバスの接続状態の切り替えを行う方法について説明する。
【００８０】
図１１は、第２実施形態におけるコントローラ部の動作を説明するための図である。以下では、図７に示す第１実施形態におけるコントローラ部１２０との差分のみ説明する。
【００８１】
第２実施形態におけるシステム制御部２１０は、電力制御部３９１を含む。電力制御部３９１は、システムバス３００を介して、コントローラ部の各ブロックに対する省電力制御を行うハードウェアシーケンサである。電力制御部３９１は、未使用ブロックへのクロック供給を止めたり、電源供給を止めたりする。なお、電力制御部３９１は、ＣＰＵ３１０により制御されるソフトウェアモジュールとして実現されてもよい。
【００８２】
例えば、各処理モジュールの画像処理部（プリント画像処理部６０２、ループバック画像処理部６１２、およびスキャナ画像処理部６２２）は、実行されるジョブによっては使用されない場合がある。電力制御部３９１は、そのような場合にクロックまたは電源の供給を停止させ、処理モジュールが省電力状態となるよう制御する。本実施形態では、電力制御部３９１は、クロックまたは電源の供給を制御するための信号として後述するＰＯＷＥＲ＿Ｐ信号、ＰＯＷＥＲ＿Ｌ信号、ＰＯＷＥＲ＿Ｓ信号を生成し、各処理モジュールに出力する。それにより、各処理モジュールに供給されるクロックまたは電源が制御される。第１実施形態では、リングバスＳＷ７００ａ，７００ｂ，７００ｃに対して、リングバスＳＷ制御部３８１から出力されるＲＥＱ＿ＳＥＬ＿Ｐ信号、ＲＥＱ＿ＳＥＬ＿Ｌ信号、ＲＥＱ＿ＳＥＬ＿Ｓ信号が接続されていた。しかし、本実施形態では、それらの信号に変えて、電力制御部３９１が出力するＰＯＷＥＲ＿Ｐ信号、ＰＯＷＥＲ＿Ｌ信号、ＰＯＷＥＲ＿Ｓ信号が接続される。
【００８３】
ＰＯＷＥＲ＿Ｐ信号は、プリント処理部２３０のパケット入出力Ｉ／Ｆ６００以外のブロックへのクロックの供給を停止するための信号、または、パケット入出力Ｉ／Ｆ６００以外のブロックへの電源の供給を停止するための信号である。パケット入出力Ｉ／Ｆ６００は、常にクロック及び電源が供給される構成となっている。これは、プリント処理部２３０のプリント画像処理部６０２及びコマンド処理部６０１はプリント処理を行わない場合には動作を止めることが可能であるが、パケット入出力Ｉ／Ｆ６００はリングバスに接続されるため動作を止めることが難しいためである。パケット入出力Ｉ／Ｆ６００の動作を止める場合、バケット入出力部Ｉ／Ｆ６００内に転送すべきパケットが残っていないことを確認した上で電源やクロックの供給を停止させる必要がある。したがって、バケット入出力部Ｉ／Ｆ６００の動作を止めようとすると、処理が複雑になる可能性がある。また、パケット入出力Ｉ／Ｆ６００の消費電力は他のブロックに比べて小さい。そのため、本実施形態では、パケット入出力Ｉ／Ｆ６００へのクロック及び電源の供給を停止させない構成となっている。
【００８４】
ループバック処理部２４０およびスキャン処理部２５０に入力される、ＰＯＷＥＲ＿Ｌ信号およびＰＯＷＥＲ＿Ｓ信号も、ＰＯＷＥＲ＿Ｐ信号と同様である。したがって、ループバック処理部２４０及びスキャン処理部２５０においても、プリント処理部２３０と同様の電力制御が行われる。
【００８５】
以上説明したように、本実施形態では、電力制御部３９１が制御する電力制御信号をモニタしリングバスの接続状態を切り替える。そのような構成により、各処理モジュールの電力状態に応じ動的にリングバスの接続状態を切り替えることが可能となる。
【００８６】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018116646.tif 000003
【図２】
2018116646.tif 000004
【図３】
2018116646.tif 000005
【図４】
2018116646.tif 000006
【図５】
2018116646.tif 000007
【図６】
2018116646.tif 000008
【図７】
2018116646.tif 000009
【図８】
2018116646.tif 000010
【図９】
2018116646.tif 000011
【図１０】
2018116646.tif 000012
【図１１】
2018116646.tif 000013