(57)【要約】      （修正有）【課題】要求される処理能力に応じて画像処理ユニットを１つあるいは２つ用い、構成に応じてソフトウェア・モジュールの分散を決定する画像処理装置を提供する。【解決手段】画像データ入力部と、画像を形成する出力部と、（１）前記入力部および前記出力部を制御する入出力インターフェイス部、（２）入力されたデータを処理し、前記入出力インターフェイス部を制御する制御部、および（３）処理および制御の対象に応じてモジュール化された複数の制御プログラムを格納する不揮発性記憶部が一体に構成された画像処理ユニットを１つまたは２つ有してなり、画像記憶部と、外部の機器との通信部とを備え、前記制御部は、データを処理する前に画像処理ユニットを１つ有する構成か２つ有するのかを認識し、２つ有するとき、一方の画像処理ユニットの制御部は、どの処理および制御を他方の画像処理ユニットで行わせるかを決定する。【選択図】図１
2012239015.tif 000002
【特許請求の範囲】
【請求項１】
画像のデータを入力する入力部と、
処理されたデータに基づいて画像を形成する出力部と、
（１）前記入力部および前記出力部を制御する入出力インターフェイス部、（２）入力されたデータを処理し、かつ、前記入出力インターフェイス部を制御する制御部としてのＣＰＵ、および（３）前記制御部が実行する制御プログラムであって、処理および制御の対象に応じてモジュール化された複数の制御プログラムを格納する不揮発性記憶部が一体に構成された画像処理ユニットと、
処理されたデータを格納する画像記憶部と、
外部の機器と前記データを送受信する通信部とを備え、
１つまたは２つの前記画像処理ユニットを有してなり、
前記制御部は、データを処理する前に１つの画像処理ユニットのみを有する構成か２つの画像処理ユニットを有する構成かを認識し、２つの画像処理ユニットを有するとき、一方の画像処理ユニットの制御部は、どの処理および制御を他方の画像処理ユニットで行わせるかを決定することを特徴とする画像処理装置。
【請求項２】
一方の画像処理ユニットの制御部は、一方の不揮発性記憶部に予め格納された制御プログラムのうち他方の画像処理ユニットで行わせる処理および制御に係る制御プログラムを他方のユニットの不揮発性記憶部に転送する請求項１に記載の画像処理装置。
【請求項３】
一方の画像処理ユニットの制御部は、前記入出力インターフェイス部、前記画像記憶部および前記通信部に係るデータ転送の単位サイズの大小に基づいて、どの処理および制御を他方の画像処理ユニットで行わせるかを決定する請求項１または２に記載の画像処理装置。
【請求項４】
前記入出力インターフェイス部、前記画像記憶部および前記通信部に係るデータ転送の単位サイズは、予め定められており、一方および他方のいずれの画像処理ユニットでもそれらのデータ転送が可能であり、
一方の画像処理ユニットの制御部は、前記単位サイズが予め定められた閾値以上のものを他方の画像処理ユニットで行わせると決定する請求項３に記載の画像処理装置。
【請求項５】
一方の画像処理ユニットの制御部は、各制御プログラムのＣＰＵ占有率の大小に基づいてどの処理および制御を他方の画像処理ユニットで行わせるかを決定する請求項１または２に記載の画像処理装置。
【請求項６】
一方の画像処理ユニットの不揮発性メモリは、各制御プログラムのＣＰＵ占有率の測定値を予め格納し、
一方の画像処理ユニットの制御部は、各制御プログラムのうちＣＰＵ占有率が予め定められた閾値以上のものを他方の画像処理ユニットに実行させることを決定する請求項５に記載の画像処理装置。
【請求項７】
前記測定値は、一つの画像処理ユニットのみを有する構成において各制御プログラムを実行して得られる測定値である請求項６に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置のソフトウェア・モジュールの割り当てに関する。
【背景技術】
【０００２】
近年、コピア、イメージスキャナ、プリンタ、ファクシミリあるいはそれらの機能を組み合わせてなる複合機などの画像処理装置が普及している。このような画像処理装置は、画像処理に係る種々の処理を行うハードウェアをＣＰＵを用いて制御するのが通常である。即ち、ＣＰＵが制御プログラムを実行することにより、コピア、イメージスキャナ、プリンタ、ファクシミリ等の機能が実現される。一般に、前記制御プログラムは、機能に応じた複数のソフトウェア・モジュールに分割され、リアルタイムＯＳあるいはそれに準ずるソフトウェア環境のもとで各ソフトウェア・モジュールがマルチタスクで処理される。
【０００３】
画像処理装置が待機状態のとき、即ち、コピア、イメージスキャナ、プリンタ、ファクシミリ等のいずれのジョブも実行しておらずジョブ開始の新たな指示を待っている状態では、ＣＰＵの占有率は低い。一例では、５％以下である。しかし、一旦ジョブが開始された後は、ＣＰＵの占有率が１００％近くになるように、設計段階でＣＰＵの処理能力が設定されている。ただし、画像処理の実行中であっても、前記ＣＰＵは、いわゆるユーザーインターフェイス処理ができるように余裕を持たせるように設計されている。ここで、ユーザーインターフェイス処理は、操作部などを介したユーザーからの指示を受付け、また、装置の状態をユーザーに知らせるための処理である。
【０００４】
ところで、画像処理装置に要求される処理能力の程度は、ユーザーによってさまざまである。高い処理能力を実現するにはコストがかかり、装置が大型化するので両者の兼ね合いから、一つのモデルで種々のユーザーの要求を満たすことは困難である。そこで、低速機から高速機まで複数機種のラインナップを揃えてユーザーのニーズに対応する必要がある。実際、画像処理装置のメーカーは、処理能力は比較的低いが小型で低廉な低速機から高い処理能力を有する高速機に至るラインナップを用意してこのニーズに応えようとしている。ここで、高速機および低速機とは、原稿、印刷処理速度を指標として画像処理装置の処理能力を表し、例えば、Ａ４サイズの原稿または印刷シートを１分間に２０枚処理できるものを低速機という。これに対し、１分間に６０枚処理できるものを高速機という。
【０００５】
一方で、ハードウェアやソフトウェアの開発工数およびコストの面から、低速機から高速機の画像処理装置に共通のハードウェアやソフトウェアを採用することが好ましい。ここで、ハードウェアのうち特に、コアとなるＣＰＵと画像処理に必要な各回路を集積した特定用途向けＩＣ（ＡＳＩＣ）、それらを含む種々の素子を実装した画像処理ユニットは、共通化することが好ましい。一般にＩＣは、一つ一つのチップの製造コストおよび製造工数よりも一種類のチップの開発に要するコストおよび工数が大きいため、共通化がコストおよび工数の低減に大きく寄与するからである。ソフトウェアについても同様である。
これに関し、複合機の機能を、コントローラ部と各種の機能部分とを着脱自在に接続し、シリアル通信方式で画像データと制御コマンドとをやりとりするものが知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１１２４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、従来の構成では、低速機と高速機でコントローラ部に共通のものが適用できたとしても、要求される処理能力が異なる各機能部分を共通化することはむずかしい。
さらに、低速機と高速機とで各機能部分の処理能力が大きく異なると、共通のコントローラ部を用いることについても無駄が生じる。即ち、低速機では、コントローラ部の処理能力に余裕がありすぎることになる。
【０００８】
低速機と共通の画像処理ユニットを２つ用いて高速機に供給される処理能力を実現し、しかも、ＣＰＵが自律的に各画像処理ユニットの処理を決定することができれば、便宜である。また、低速機と高速機で同じ画像処理ユニットおよびソフトウェア・モジュールを適用することができれば、個別のハードウェアおよびソフトウェアを開発している従来の手法に比べて開発工数の削減を図ることができ、コスト的にも有利である。なお、ＡＳＩＣの異なる態様として、ＣＰＵを除く各回路を集積したＡＳＩＣを単体のＣＰＵと共に用いる構成も考えられる。この場合、ＣＰＵとＡＳＩＣは別体で実装されるが、機能的には両者で一対のものとして画像処理ユニットに用いられる態様と考えられ、この発明に含まれる。
この発明は、以上のような事情を考慮してなされたものであって、要求される処理能力に応じて画像処理ユニットを１つあるいは２つ用いる構成において、構成に応じてソフトウェア・モジュールの分散を決定する手法を提供するものである。
【課題を解決するための手段】
【０００９】
この発明は、画像のデータを入力する入力部と、処理されたデータに基づいて画像を形成する出力部と、（１）前記入力部および前記出力部を制御する入出力インターフェイス部、（２）入力されたデータを処理し、かつ、前記入出力インターフェイス部を制御する制御部としてのＣＰＵ、および（３）前記制御部が実行する制御プログラムであって、処理および制御の対象に応じてモジュール化された複数の制御プログラムを格納する不揮発性記憶部が一体に構成された画像処理ユニットと、処理されたデータを格納する画像記憶部と、外部の機器と前記データを送受信する通信部とを備え、１つまたは２つの前記画像処理ユニットを有してなり、前記制御部は、データを処理する前に１つの画像処理ユニットのみを有する構成か２つの画像処理ユニットを有する構成かを認識し、２つの画像処理ユニットを有するとき、一方の画像処理ユニットの制御部は、どの処理および制御を他方の画像処理ユニットで行わせるかを決定することを特徴とする画像処理装置を提供する。
【発明の効果】
【００１０】
この発明において、制御部は、データを処理する前に１つの画像処理ユニットのみを有する構成か２つの画像処理ユニットを有する構成かを認識し、２つの画像処理ユニットを有するとき、一方の画像処理ユニットの制御部は、どの処理および制御を他方の画像処理ユニットで行わせるかを決定するので、１つの画像処理ユニットのみを有する低速機の構成と２つの画像処理ユニットを有する高速機の構成とで画像処理ユニットおよびソフトウェア・モジュールを共通化できる。さらに、２つの画像処理ユニットを有する高速機の構成においては、一方の画像処理ユニットの制御部が、どの処理および制御を他方の画像処理ユニットで行わせるかを決定するので、一方と他方の画像処理ユニットでそれぞれ処理および制御する内容が自律的に決定される。
【００１１】
即ち、２つの画像処理ユニットを有する構成においては、一方と他方の画像処理ユニットで実行するソフトウェア・モジュールの構成が自律的に決定され、分散される。よって、低速機と高速機とで共通の画像処理ユニットが使用できるとともに、共通のソフトウェア・モジュールを使用することができ、全体として開発工数やコストの低減が可能となる。
【００１２】
この発明において、入力部は、画像を読取ってそのデータを入力するものである。具体例は、原稿の画像を読取るイメージスキャナである。後述する実施形態におけるイメージスキャナ部は、この発明の入力部に該当する。ただし、イメージスキャナの他にも画像を読取るものであれば特に限定されない。
また、出力部は、後述する画像処理ユニットで処理された画像のデータに基づいて、画像を形成するものである。具体的な態様は、電子写真方式のプリンタエンジンである。ただし、画像を形成するものであれば特にその態様は限定されない。また、画像を形成する手法は、電子写真方式に限定されない。後述する実施形態のプリンタエンジン部は、この発明の出力部に該当する。
【００１３】
入出力インターフェイス部は、入力部および出力部の動作を制御する回路である。入力部および出力部は、動作を制御するために各種のセンサ、スイッチ、検出器を備えており、入出力インターフェイス部は、それらのものから信号を受領する。また、入力部および出力部は、動作を制御するために各種のアクチュエータ、モータ等を備えており、入出力インターフェイス部は、それらのものを制御し動作させる信号を出力する。後述する実施形態の入出力インターフェイスは、この発明の入出力インターフェイス部に該当する。
【００１４】
画像処理ユニットは、前記入出力インターフェイス部としての回路の他、ＣＰＵおよび不揮発性メモリを備える。それ以外に、図１のＡＳＩＣの構成に示すようにＲＡＭを備えていてもよい。また、図示していないが、画像のデータに対して特定の処理を行うためのハードウェアを備えていてもよい。特定の処理とは、例えば、画像の回転、拡大および縮小、色変換、尖鋭化やノイズ除去を目的とする画像フィルタ処理である。これらの画像処理用ハードウェアは周知であるので、これ以上の説明は省略する。後述する実施形態のＣＰＵは、この発明の制御部に該当する。
【００１５】
画像処理ユニットは、具体的にはＬＳＩ（大規模集積回路）として一つのパッケージに実装され、ＡＳＩＣとして提供されてもよい。後述する実施形態のＡＳＩＣは、この発明の画像処理ユニットの全部または一部に該当する。
画像記憶部は、画像のデータを格納するものであって、その具体的な態様としてはハードディスクドライブ装置やフラッシュメモリが挙げられる。ただし、データを格納できるものであれば、これらの装置、素子限定されない。後述する実施形態で、ＨＤＤユニットはこの発明の画像機億部に該当する。
【００１６】
通信部は、外部の機器とデータを送受するための回路である。通信の方式や形態は問わない。有線の通信に限らず無線でもよい。後述する実施形態において、ネットワーク通信デバイスが通信部に該当する。また、周辺機器との間の通信を担うシリアル通信デバイスも通信部に該当する。
【図面の簡単な説明】
【００１７】
【図１】この発明に係る画像処理ＡＳＩＣの構成を示す説明図である。
【図２】低速機としての構成を有するこの発明の画像処理装置において、入出力インターフェイスとハードウェア資源の詳細を示す説明図である。
【図３】高速機としての構成を有するこの発明の画像処理装置において、入出力インターフェイスとハードウェア資源の詳細を示す説明図である。
【図４】この発明の画像形成装置が低速機としての構成を有する場合のソフトウェア・モジュール構成の一例を示す説明図である。
【図５】この発明の画像形成装置が高速機としての構成を有する場合のソフトウェア・モジュール構成の一例を示す説明図である。
【図６】この発明の画像処理装置が高速機としての構成を有する場合に、２つのＡＳＩＣが協働することにより全体の処理能力が向上する様子を示す説明図である。
【図７】この発明に係るＡＳＩＣにおいて、小さなデータ転送サイズと大きなデータ転送サイズのものが同じ容量のデータを転送するときの処理を示す説明図である。
【図８】この発明に係るＣＰＵ１３が、各プロセスの処理を実行する様子を模式的に示す説明図である。
【発明を実施するための形態】
【００１８】
以下、この発明の好ましい態様について説明する。
一方の画像処理ユニットの制御部は、一方の不揮発性記憶部に予め格納された制御プログラムのうち他方の画像処理ユニットで行わせる処理および制御に係る制御プログラムを他方のユニットの不揮発性記憶部に転送してもよい。このようにすれば、    処理するサイズにより動作させるASICを分けることで、Tサイズ未満のデータ処理のソフトオーバヘッド時間を最小限にすることができる。
【００１９】
また、一方の画像処理ユニットの制御部は、前記入出力インターフェイス部、前記画像記憶部および前記通信部に係るデータ転送の単位サイズの大小に基づいて、どの処理および制御を他方の画像処理ユニットで行わせるかを決定してもよい。このようにすれば、データ転送の単位サイズの大小に基づいて処理を行う画像処理ユニットを分けることで、データ転送に係るＣＰＵの処理負担が大きい処理を一方の画像処理ユニットで分担し、多量のデータ転送を行う処理を他方の画像処理ユニットに分担させて要求される性能を満足することができる。
【００２０】
さらに、前記入出力インターフェイス部、前記画像記憶部および前記通信部に係るデータ転送の単位サイズは、予め定められており、一方および他方のいずれの画像処理ユニットでもそれらのデータ転送が可能であり、一方の画像処理ユニットの制御部は、前記単位サイズが予め定められた閾値以上のものを他方の画像処理ユニットで行わせると決定してもよい。このようにすれば、予め定められたデータ転送の単位サイズに応じてソフトウェア・モジュールの分散を決定することができる。
【００２１】
一方の画像処理ユニットの制御部は、各制御プログラムのＣＰＵ占有率の大小に基づいてどの処理および制御を他方の画像処理ユニットで行わせるかを決定してもよい。このようにすれば、ＣＰＵ占有率の大きい処理を他方の画像処理ユニットに分担させて要求される性能を満足するように処理し、他の処理を一方の画像処理ユニットで分担して他方の画像処理ユニットに負担をかけないように処理を分散できる。
【００２２】
さらに、一方の画像処理ユニットの不揮発性メモリは、各制御プログラムのＣＰＵ占有率の測定値を予め格納し、一方の画像処理ユニットの制御部は、各制御プログラムのうちＣＰＵ占有率が予め定められた閾値以上のものを他方の画像処理ユニットに実行させることを決定してもよい。このようにすれば、予め測定に基づいて定められたＣＰＵ占有率に応じてソフトウェア・モジュールの分散を決定することができる。
【００２３】
前記測定値は、一つの画像処理ユニットのみを有する構成において各制御プログラムを実行して得られる測定値であってもよい。
この発明の好ましい態様は、ここで示した複数の態様のうち何れかを組み合わせたものも含む。
【００２４】
以下、図面を用いてこの発明をさらに詳述する。なお、以下の説明は、すべての点で例示であって、この発明を限定するものと解されるべきではない。
≪画像処理ＡＳＩＣの構成≫
図１は、この発明に係る画像処理ＡＳＩＣの構成を示す説明図である。（ａ）は低速機に１つ使用されるときの態様を示しており、（ｂ）は高速機に２つ使用されるときの態様を示している。（ａ）のＡＳＩＣ１１と（ｂ）のＡＳＩＣ１１Ａおよび１１Ｂは、いずれも同一の構成を有するＡＳＩＣである。即ち、（ａ）と（ｂ）で対応する構成要素には同じ数字の符号を伏している。（ｂ）の符号で、数字に続くアルファベットＡおよびＢは、２つのＡＳＩＣを区別するために付した記号である。以下の図面においても、同様の規則で符号を付している。
【００２５】
（ａ）を例にＡＳＩＣの構成を説明する。ＡＳＩＣ１１は、ＣＰＵ１３、不揮発性メモリ１５、ＲＡＭ１９および入出力インターフェイス２１を備える。ＣＰＵ１３は、ソフトウェア・モジュールとしての制御プログラムを実行してハードウェア資源２３を制御することにより、画像処理装置の機能を実現する。不揮発性メモリ１５は、前記ソフトウェア・モジュール、ＢＩＯＳおよびＣＰＵ１３が使用するデータを格納する。ソフトウェア・モジュール格納部１７は、不揮発性メモリ１５の記憶領域のうち、前記ソフトウェア・モジュールを格納する記憶領域のことである。なお、各ソフトウェア・モジュールは、ＣＰＵ１３のリセット解除後、一旦ＲＡＭ１９にダウンロードされた状態でＣＰＵ１３に参照される。不揮発性メモリ１５の読み出し時間よりもＲＡＭ１９の読み出し時間の方が短いためである。
【００２６】
ＲＡＭ１９は、ＣＰＵ１３が実行する各ソフトウェア・モジュールを格納すると共に、ＣＰＵが処理に用いるデータや画像データを格納する。
入出力インターフェイス２１は、ハードウェア資源２３を制御するためのインターフェイス回路である。ハードウェア資源２３の具体例は、図２で説明する。（ｂ）に示すように、複数のＡＳＩＣを使用する高速機の構成において、ハードウェア資源２３は基本的にいずれのＡＳＩＣからも制御可能なように各ＡＳＩＣに接続されている。その場合、一つのハードウェア資源は一つのＡＳＩＣによって制御されるように排他的に管理する必要がある。この発明は、各ハードウェア資源をＡＳＩＣ１１Ａおよび１１Ｂの何れが管理するかをＣＰＵ１３Ａが自律的に判断する手法に関する。ただし、これが必須の構成要件というわけではなく、一部のハードウェア資源が特定のＡＳＩＣのみに接続されてもよい。その場合、接続されたＡＳＩＣのみが前記ハードウェア資源を制御できるので、この発明を適用するまでもなく排他的構成が決まる。よって、複数のＡＳＩＣに接続されるハードウェア資源が、この発明に係るハードウェア資源といえる。
【００２７】
≪入出力インターフェイスとハードウェア資源との対応≫
図２は、この発明の画像処理装置が低速機としての構成を有する場合、入出力インターフェイス２１とハードウェア資源２３の詳細を示す説明図である。図２に示すように、入出力インターフェイス２１は、イサーネット・インターフェイス２５、ＵＳＢインターフェイス２７、汎用ＤＭＡ２９、画像処理ＤＭＡ３１およびＨＤＤ  ＤＭＡ３３を備える。図２では、それらの各要素に接続されるハードウェア資源を示している。イサーネット・インターフェイス２５に対応するハードウェア資源は、ネットワーク通信デバイス３５である。ＵＳＢインターフェイス２７に対応するハードウェア資源は、ＵＳＢメモリデバイス３７である。汎用ＤＭＡ２９に対応するハードウェア資源は、シリアル通信デバイス３９および外部のＡＳＩＣである。画像処理ＤＭＡ３１に対応するハードウェア資源は、イメージスキャナ部４３およびプリンタエンジン部４５である。ＨＤＤ  ＤＭＡ３３に対応するハードウェア資源は、ＨＤＤユニット４７である。
【００２８】
以下に、各ハードウェア資源について説明する。まず、画像処理装置８７として分かり易い、基本的なハードウェア資源はイメージスキャナ部４３とプリンタエンジン部４５であろう。イメージスキャナ部４３は、画像処理装置がコピア、イメージスキャナおよびファクシミリとして機能する際に、原稿の画像を読取って画像データを出力する。画像処理ＤＭＡ３１は、出力された画像データをＲＡＭ１９へ読み込むＤＭＡ転送を制御する。また、プリンタエンジン部４５は、画像処理装置がコピア、プリンタおよびファクシミリとして機能する際に、画像データに基づいて印刷シートに画像を印刷する。画像処理ＤＭＡ３１は、その画像データを印刷する際に、ＲＡＭ１９からプリンタエンジン部４５への画像データのＤＭＡ転送を制御する。
【００２９】
ＨＤＤ  ＤＭＡ３３は、ＨＤＤ（ハードディスクドライブ・ユニット）への読み書きに係るＤＭＡ転送を制御する。即ち、ＲＡＭ１９からＨＤＤユニット４７への書き込みに係るＤＭＡ転送およびＨＤＤユニット４７からＲＡＭ１９への読み出しに係るＤＭＡ転送である。
【００３０】
イサーネット・インターフェイス２５は、ネットワークを介したデータの送受信を制御する。ネットワークを介した通信は、例えば、画像処理装置がプリンタ、スキャナおよびファクシミリとして機能する際に行われる。プリンタの場合は、ネットワークを介して接続されたホスト・コンピュータから印刷データおよび印刷に係る指示を受信する。スキャナの場合は、ネットワークを介したコンピュータへ読取られた原稿の画像を送信する。ファクシミリの場合は、インターネット・ファックスとして画像データの送信および受信を行う。図２のネットワーク通信デバイス３５は、前述のホスト・コンピュータおよび端末コンピュータとの通信インターフェイス回路を指す。
【００３１】
画像処理装置８７には、ユーザーがＵＳＢメモリを装着するためのＵＳＢコネクタが設けられている。ユーザーは所定の印刷データあるいは画像データが格納されたＵＳＢメモリをそのＵＳＢコネクタに装着し、プリンタエンジン部４５を用いて前記印刷データあるいは画像データを印刷することができる。また、イメージスキャナ部４３で読取った原稿の画像を前記ＵＳＢコネクタに装着されたＵＳＢメモリに格納することができる。ＵＳＢインターフェイス２７は、ＵＳＢメモリへの読み書きを制御する。図２のＵＳＢメモリデバイス３７は、前述のＵＳＢメモリを装着するコネクタおよびインターフェイス回路を指す。
【００３２】
シリアル通信デバイス３９は、例えば、オプションで画像処理装置８７に装着される自動原稿送り装置や後処理装置など周辺機器との間のシリアル通信を制御するインターフェイス回路である。また、汎用ＤＭＡ２９は、ネットワークを介して受信した通信データを他のＡＳＩＣへＤＭＡ転送する制御を行う。次の図３では、ＡＳＩＣ１１ＡからＡＳＩＣ１１Ｂへ通信データをＤＭＡ転送する制御を、汎用ＤＭＡ２９Ａが行う。
以上、ソフトウェア・モジュールの分散に特に関係の深いハードウェア資源を挙げて説明した。
【００３３】
図３は、この発明の画像形成装置が高速機としての構成を有する場合、入出力インターフェイス２１とハードウェア資源２３の詳細を示す説明図である。図３は、図１（ｂ）に対応する構成であり、図２の低速機が１つのＡＳＩＣでハードウェア資源２３を制御するのに対して、２つのＡＳＩＣ１１Ａおよび１１Ｂを用いてハードウェア資源２３を制御している。即ち、ＡＳＩＣ１１Ａの入出力インターフェイス２１Ａは、ネットワーク通信デバイス３５、ＵＳＢメモリデバイス３７およびシリアル通信デバイス３９の制御を行う。汎用ＤＭＡ２９Ａは、ネットワーク通信デバイス３５から受信した通信データをＡＳＩＣ１１ＢへＤＭＡ転送する制御を行う。なお、画像処理ＤＭＡ３１ＡおよびＨＤＤ  ＤＭＡ３３Ａは、使用しない。ＡＳＩＣ１１Ｂの入出力インターフェイス２１Ｂは、イメージスキャナ部４３、プリンタエンジン部４５およびＨＤＤユニット４７を制御する。なお、イサーネット・インターフェイス２５Ｂ、ＵＳＢインターフェイス２７Ｂおよび汎用ＤＭＡ２９Ｂは使用しない。
【００３４】
≪入出力インターフェイスとソフトウェア・モジュールとの対応≫
次に、ソフトウェア・モジュールの構成について説明する。
図４は、この発明の画像形成装置が低速機としての構成を有する場合のソフトウェア・モジュール構成の一例を示す説明図である。図４に示すように、ソフトウェア・モジュールは階層的に構成されている。下位の階層として、ハードウェアの制御に関連するデバイスドライバ５１、リアルタイムＯＳ６３、ＣＰＵ間通信処理６５がある。その階層から上の階層に向かうにつれて高い抽象度のモジュールが配置されている。まず、画像処理ミドルウェア６７、ファイルシステム・ミドルウェア６９、プリンタ画像処理７１および表示描画処理７３がある。その上層には、画像ハンドリングサービス７５がある。さらに、その上位にコピア７７、プリンタ７９、スキャナ８１およびファックス８３があり、最上位にユーザーインターフェイス８５がある。
【００３５】
リアルタイムＯＳ６３は、ＣＰＵ１３がマルチタスク環境で各ソフトウェア・モジュールを実行する仕組みを提供するオペレーティングシステムである。リアルタイムＯＳ６３は、周知のものが適用される。幾種類かのリアルタイムＯＳが市場で入手可能であり、リアルタイムＯＳに関する技術資料も発行されている。例えば、ＴＲＯＮ（The Real-time Operating SystemNucleus）使用に関する技術資料である。各ソフトウェア・モジュールはそれぞれ独立した処理の単位、言い換えると一つのプロセスである。各プロセスは、一以上のタスクに分割される。各タスクは、ＣＰＵが処理を実行する単位である。
【００３６】
デバイスドライバ５１は、ハードウェアを用いた入出力制御を行うソフトウェア・モジュールである。ハードウェア資源２３に対応する入出力インターフェイス２１の各要素を制御する。デバイスドライバ５１は、制御する各要素に対応してネットワークドライバ５３、ＵＳＢドライバ５５、ＤＭＡドライバ５７、画像処理ドライバ５９およびＨＤＤドライバ６１を含む。
【００３７】
ネットワークドライバ５３は、イサーネット・インターフェイス２５を制御するソフトウェア・モジュールである。ＵＳＢドライバ５５は、ＵＳＢインターフェイス２７を制御するソフトウェア・モジュールである。さらにＤＭＡドライバ５７は汎用ＤＭＡ２９を、画像処理ドライバ５９は、画像処理ＤＭＡ３１を、ＨＤＤドライバ６１はＨＤＤ  ＤＭＡ３３をそれぞれ制御するソフトウェア・モジュールである。
【００３８】
ＣＰＵ間通信処理６５は、ＣＰＵ１３と他のＣＰＵとの通信を制御するソフトウェア・モジュールである。例えば、自動原稿送り装置や後処理装置などのオプション機器がその機器を制御する専用のＣＰＵを有する場合、それらのオプション機器を制御するＣＰＵとの通信を制御する。また、図５に示す高速機の構成において、ＡＳＩＣの間の通信を制御する。ＣＰＵ間通信処理６５は、入出力制御を行うソフトウェア・モジュールといえる。
これより上位層のソフトウェア・モジュールは、ハードウェア制御から独立したＣＰＵ処理である。
【００３９】
まず、画像処理ミドルウェア６７は、画像処理ドライバ５９を制御して、イメージスキャナ部４３からの画像データを取り込み、プリンタエンジン部４５に出力するための画像データを処理する。
また、ファイルシステム・ミドルウェア６９は、画像処理ドライバ５９を使用して読み込まれた画像を圧縮し、ＨＤＤドライバ６１を使用して、ＨＤＤユニット４７へデータ保存を行い、また、保存したデータをＨＤＤユニット４７から読み出す処理を行う。
【００４０】
プリンタ画像処理７１は、ネットワーク通信デバイス３５より入力されたプリンタ記述言語ＰＤＬデータを解析し、ビットマップ画像をメモリに展開する処理を行う。
表示描画処理７３は、画像処理装置８７の操作部に配置される図示しないディスプレイ装置に、イメージスキャナ部４３が読み込んだ原稿の画像をプレビュー機能として表示する。
【００４１】
さらに、画像ハンドリングサービス７５は、イメージスキャナ部４３、プリンタエンジン部４５とシリアル通信デバイス３９を介して通信を行い、原稿画像の読み取りを実行して、画像データを取り込むために、画像処理ミドルウェア６７を呼び出して、画像の読み込みをページ単位で実行を行う。また、読み込まれた画像データをプリンタエンジン部４５へ出力して、印刷シートに画像を形成するために画像処理ミドルウェア６７を呼び出して、出画像の出力をページ単位で処理する。
また、コピア７７、プリンタ７９、スキャナ８１およびファックス８３は、コピア、プリンタ、スキャナおよびファックスとしてのジョブの設定、開始、終了、中断、再開を制御する。
【００４２】
ユーザーインターフェイス８５は、前述のディスプレイ装置に画像処理装置８７の設定や状態を表示させる制御を行い、さらに、そのディスプレイ装置上に配置されるタッチパネルや操作パネルに配置される操作キーを用いたユーザーの操作を検出し、操作に応じた処理を行う。
【００４３】
図５は、この発明の画像形成装置が高速機としての構成を有する場合のソフトウェア・モジュール構成の一例を示す説明図である。図５は、図３に対応する構成であり、図４の低速機が１つのＡＳＩＣでハードウェア資源２３を制御するのに対して、２つのＡＳＩＣ１１Ａおよび１１Ｂを用いてハードウェア資源２３を制御している。
【００４４】
即ち、ＡＳＩＣ１１ＡのＣＰＵ１３Ａは、デバイスドライバ５１Ａとしてネットワークドライバ５３Ａ、ＵＳＢドライバ５５Ａ、ＤＭＡドライバ５７Ａを実行する。さらに、画像処理ミドルウェア６７Ａとファイルシステム・ミドルウェア６９Ａを実行する。ネットワークドライバ５３Ａは、イサーネット・インターフェイス２５Ａを制御する。ＵＳＢドライバ５５Ａは、ＵＳＢインターフェイス２７Ａを制御する。これに対し、ＡＳＩＣ１１ＢのＣＰＵ１３Ｂは、デバイスドライバ５１Ｂとして画像処理ドライバ５９ＢおよびＨＤＤドライバ６１Ｂを実行する。さらに、プリンタ画像処理７１Ｂ、表示描画処理７３Ｂ、画像ハンドリングサービス７５Ｂ、コピア７７Ｂ、プリンタ７９Ｂ、スキャナ８１Ｂ、ファックス８３Ｂおよびユーザーインターフェイス８５Ｂを実行する。画像処理ドライバ５９Ｂは、画像処理ＤＭＡ３１Ｂを制御する。ＨＤＤドライバ６１Ｂは、ＨＤＤ  ＤＭＡ３３Ｂを制御する。
【００４５】
ただし、リアルタイムＯＳとＣＰＵ間通信処理は、両方のＣＰＵがそれぞれ実行する。ＣＰＵ１３ＡはリアルタイムＯＳ６３ＡおよびＣＰＵ間通信処理６５Ａを実行し、ＣＰＵ１３ＢはリアルタイムＯＳ６３ＢおよびＣＰＵ間通信処理６５Ｂを実行する。
以上のように、高速機の構成ではＡＳＩＣ１１Ａと１１Ｂがソフトウェア・モジュールの実行を分担し、それぞれのＣＰＵに過度の負荷がかからないように協働する。
【００４６】
≪ソフトウェア・モジュールの並列処理≫
次に、図５に示す高速機の構成で、ＣＰＵ１３ＡがＡＳＩＣ１１Ａおよび１１Ｂで処理するソフトウェア・モジュールの分担を決定する手順を説明する。
図３に示すように、画像処理装置８７のＡＳＩＣ１１Ａは、ソフトウェア・モジュール格納部１７Ａを備えている。ソフトウェア・モジュール格納部１７Ａは、画像処理装置８７が必要とする各ソフトウェア・モジュールを予め格納している。
【００４７】
画像処理装置８７の電源が投入され、リセットが解除されてＣＰＵ１３Ａが処理を開始すると、ＣＰＵ１３Ａは、初期化処理において、低速機の構成か高速機の構成かの判定を行う。即ち、自身のＡＳＩＣ１１Ａの他にＡＳＩＣ１１Ｂが存在するか否かを確認する。確認は、ＣＰＵ間通信処理６５Ａの処理の中で、ＡＳＩＣ１１Ｂからの応答があるか否かを調べることによって実現される。
【００４８】
一方、ＡＳＩＣ１１Ｂにおいては、リセット解除後にＣＰＵ１３Ｂは、ＡＳＩＣ１１Ｂの最小限の初期化処理およびリアルタイムＯＳ６３Ｂ、ＣＰＵ間通信処理６５Ｂを実行する。そして、ＡＳＩＣ１１ＡとＣＰＵ間通信が行える状態で、前記応答をＣＰＵ  １１Ａに返して待機する。
【００４９】
ＣＰＵ  １１Ｂからの応答を受信すると、ＣＰＵ１３Ａは、高速機の構成であると判断し、ＡＳＩＣ１１Ｂにソフトウェア・モジュール格納部１７Ａに格納されたソフトウェア・モジュールの制御プログラムを転送する。
ＡＳＩＣ１１Ａから制御プログラムを受信すると、ＣＰＵ１３Ｂは、受信した制御婦グラムを不揮発性メモリ１５Ｂに格納する。その後、実行すべきソフトウェア・モジュールの制御プログラムをＲＡＭ１９Ｂにダウンロードし、ダウンロードした制御プログラムを実行する。
【００５０】
各ソフトウェア・モジュールの処理のうち初期化処理の部分を実行して、各ソフトウェア・モジュールが処理待ちの状態になると、ＣＰＵ１３Ｂは、その旨をＡＳＣＩ  １１Ａに通知する。通知を受けたＡＳＩＣ１１ＡのＣＰＵ１３Ａは、ＡＳＩＣ１１Ａおよび１１Ｂの各ソフトウェア・モジュールとタスク間の通信を開始し、協働して画像処理装置８７をジョブ開始待ちの待機状態にする。待機状態でジョブ開始の指示を受けると、それに応答して指示されたジョブを実行する。
【００５１】
図６は、この発明の画像処理装置が高速機としての構成を有する場合に、２つのＡＳＩＣが協働することにより全体の処理能力が向上する様子を示す説明図である。図６（ａ）は、図４に示す低速機としての構成に対応する。図６（ｂ）は、図５に示す高速機としての構成に対応する。
【００５２】
図６で、入出力制御は、デバイスドライバ５１に属する何れかのプロセスの一つのタスクかあるいはＣＰＵ間通信処理６５の一つのタスクである。即ち、入出力制御は、例えばＣＰＵ間通信処理６５のタスクである。あるいは、画像処理ドライバ５９のタスクである。ＣＰＵ処理αおよびβは、それより上位の何れかのソフトウェア・モジュールである。例えば、ＣＰＵ処理αは画像処理ミドルウェア６７の一つのタスクであり、ＣＰＵ処理βはコピア７７の一つのタスクである。あるいは、ＣＰＵ処理αはユーザーインターフェイス８５の一つのタスクであり、ＣＰＵ処理βは表示描画処理７３の一つのタスクである。
【００５３】
各タスクのうち  ＣＰＵ処理αおよびβの実行中はＣＰＵ１３が占有され、入出力制御の実行中はＣＰＵ１３および制御対象のハードウェア資源２３および対応する入出力インターフェイスが占有される。なお、入出力制御にかかるプロセスの中には、ＤＭＡ転送を行うものが含まれておりＤＭＡ転送中、ＣＰＵ資源は厳密にいえば占有されない。しかし、バスが占有されるためにＣＰＵは、ＲＡＭ１９に格納された制御プログラムの命令フェッチを前記ＤＭＡ転送と並行して進めることができない。即ち、処理を大きく先へ進めることができない。この観点から、入出力制御の実行中はＣＰＵ１３が占有されるとみなすことができる。
【００５４】
図６（ａ）に示すように、低速機の構成ではＡＳＩＣ１１が一つしかないので、各タスクは順次実行される。一方、図６（ｂ）の例では、ＣＰＵ処理αをＡＳＩＣ１１ＡのＣＰＵ１３Ａが実行している間に、並行してＡＳＩＣ１１ＢのＣＰＵ１３Ｂが入出力制御を実行することができる。なお、ＣＰＵ処理βは、ＡＳＩＣ１１Ａが処理するので、ＣＰＵ処理αの実行後に処理される。（ａ）と（ｂ）を比較すると、ＣＰＵ処理αと並行処理された入出力制御の処理時間分だけ全体としての処理能力が向上したといえる。
【００５５】
図４に示す低速機の構成において、ＡＳＩＣ１１は、ユーザーインターフェイス８５を実行してディスプレイ装置にジョブの設定や画像処理装置８７の状態を表示させる。さらに、ネットワークドライバ５３を実行してネットワーク通信デバイス３５の先にあるネットワークを介して外部の端末コンピュータから印刷データを取り込む。また、プリンタ画像処理７１を実行して前記印刷データを展開する。そして、また、画像処理ミドルウェア６７を実行してプリンタエンジン部４５の画質補正に係る画像処理を実行する。
【００５６】
ＣＰＵ１３は、リアルタイムＯＳ６３の環境下でこれらのプロセスをタスク単位の短い実行時間で切り換えて交互に実行するので、ユーザーからは、各プロセスが並列処理されているようにみえる。図６に示すよりも長期間にわたりＡＳＩＣ１１が行う処理を巨視的に見た場合に、交互に実行される各プロセスが並列処理に見えるということである。即ち、ユーザーインターフェイス８５、ネットワークドライバ５３、プリンタ画像処理７１および画像処理ミドルウェア６７の各プロセスが並列処理されているように見える。
【００５７】
ところが、高速機は低速機に比べて同じ期間に大量のデータを処理しなければならない。そのため、高速機に要求される処理能力に、ＡＳＩＣ１１の処理速度が追いつかなくなる。この問題を解決するために、ＡＳＩＣ１１Ａと１１Ｂに機能を分散化することで、高速機としての処理能力を実現している。
【００５８】
ＡＳＩＣ１１Ａは、ネットワークドライバ５３および画像処理ミドルウェア６７のプロセスを実行し、ＡＳＩＣ１１Ｂは、ユーザーインターフェイス８５およびプリンタ画像処理７１のプロセスを実行する。ＣＰＵ１３Ａは、初期化処理において、ユーザーインターフェイス８５およびプリンタ画像処理７１に係る制御プログラムをソフトウェア・モジュール格納部１７Ａから不揮発性メモリ１５Ｂに転送する。
【００５９】
≪データ転送サイズに基づく分散決定≫
この発明において、ソフトウェア・モジュールの分担を決定する第１の指標は、ＤＭＡ転送に係るデータ転送サイズである。
例えば、ＨＤＤユニット４７に対してデータを読み書きする場合、ＨＤＤユニット４７の仕様に基づきかつ効率的な転送を実現するための設定として、ＨＤＤドライバ６１は、１ブロックあたり５１２キロバイトの単位でＤＭＡ転送を行う。一方、ネットワークドライバ５３は、１ブロックあたり１キロバイトの単位でＤＭＡ転送を行う。その他、ＵＳＢドライバ５５、ＤＭＡドライバ５７および画像処理ドライバ５９も予めデータ転送サイズが定められている。
【００６０】
このデータ転送サイズに応じて、ＤＭＡ転送の設定に要するＣＰＵ処理のオーバーヘッドが異なる。即ち、小さなデータ転送サイズのものは、大きなデータ転送サイズのものに比べて、レジスタ設定などＣＰＵ処理に要する時間が多い。
図７は、この発明に係るＡＳＩＣにおいて、小さなデータ転送サイズと大きなデータ転送サイズのものが同じ容量のデータを転送するときの処理を示す説明図である。（ａ）は小さなデータ転送サイズのものに対応し、（ｂ）は大きなデータ転送サイズのものに対応する。
【００６１】
図７（ａ）の場合、ＣＰＵ１３は、転送すべきデータの容量がデータ転送サイズよりも大きいので、ＤＭＡ転送を３回行う。それぞれのＤＭＡ転送で、ＣＰＵ１３は、まず、ＤＭＡ転送に係るＤＭＡレジスタに必要なパラメータを設定した後、ＤＭＡ転送の開始を指示するコマンドを前記ＤＭＡレジスタに書き込む（ステップＳ１１）。指示に応答してＤＭＡ転送が開始される（ステップＳ１２）。ＤＭＡ転送中、ＣＰＵ１３はデータ転送に係る処理を実行する必要はないが、データ転送が終了すると割り込み等の手段によってその旨がＣＰＵ１３に通知される。通知を受けたＣＰＵ１３は、ＤＭＡ転送完了後の処理を実行する（ステップＳ１３）。データ転送バッファのポインタ更新、その他データ転送に関連する処理である。
【００６２】
第１回目のＤＭＡ転送後、ＣＰＵ１３は、第２回目のＤＭＡ転送を実行するために、同様の処理を繰り返す（ステップＳ２１〜Ｓ２３）。さらに、第２回目のＤＭＡ転送後、ＣＰＵ１３は、第３回目のＤＭＡ転送を実行する（ステップＳ３１〜Ｓ３３）。
これに対して、転送すべきデータサイズよりデータ転送サイズが大きい（ｂ）の場合、ＣＰＵ１３は、１回のＤＭＡ転送を行うだけでよい（ステップＳ５１〜５３）。（ａ）と（ｂ）を比較すると、ＤＭＡレジスタの設定および転送完了後の処理に係るＣＰＵ処理は、（ａ）の場合（ｂ）の３倍行っている。ＤＭＡ転送に要する時間は、（ａ）と（ｂ）で等しい。全体として、ＣＰＵ処理のオーバーヘットは、（ａ）の方が大きい。
【００６３】
図４のデバイスドライバ５１のうち、データ転送サイズが５１２キロバイト以上のものは、画像処理ドライバ５９およびＨＤＤドライバ６１である。一方、データ転送サイズが５１２キロバイト未満のものは、ネットワークドライバ５３、ＵＳＢドライバ５５およびＤＭＡドライバ５７である。各デバイスドライバに対するデータ転送サイズは予め定められているので、データテーブル形式で予め不揮発性メモリ１５Ａに格納しておけばよい。
【００６４】
ＣＰＵ１３Ａは、初期化処理においてソフトウェア・モジュール格納部１７Ａに格納された各デバイスドライバのデータ転送サイズを確認する。そして、データ転送サイズが５１２キロバイト未満のものとして、ネットワークドライバ５３、ＵＳＢドライバ５５およびＤＭＡドライバ５７があることを確認する。確認の結果、ＣＰＵ１３Ａは、ネットワークドライバ５３、ＵＳＢドライバ５５およびＤＭＡドライバ５７をＡＳＩＣ１１Ａで処理すると決定する。ＣＰＵ処理のオーバーヘッドが大きいからである。一方、データ転送サイズが５１２キロバイトの画像処理ドライバ５９およびＨＤＤドライバ６１は、ＡＳＩＣ１１Ｂで処理すると決定する。
【００６５】
このように、デバイスドライバが取り扱うデータ転送サイズに応じて、デバイスドライバを実行するＡＳＩＣを振り分けることで、各ＡＳＩＣの処理負荷を分散させることが可能になる。
勿論、データ転送サイズの閾値としての５１２キロバイトは一例であって、制御プログラムの設計者はデータ転送サイズに係る閾値を適宜選択すればよい。一旦、設計者により前記閾値が決定されて制御プログラムが作成されたら、ＣＰＵ１３Ａはその制御プログラムを実行し、決定された閾値に基づいてデバイスドライバの分散を決定する。
【００６６】
≪ＣＰＵ占有率に基づく分散決定≫
この発明において、ソフトウェア・モジュールの分担を決定する第２の指標は、ＣＰＵが各ソフトウェア・モジュール、即ち、各プロセスを実行するときのＣＰＵ占有率である。各プロセスのＣＰＵ占有率は、そのプロセスが実行される一定の期間のうち、ＣＰＵがそのプロセスに係るタスクを実行した時間の割合である。なお、ＣＰＵ占有率の算出は、１つのＡＳＩＣを用いる低速機の構成において算出するものとする。
【００６７】
図８は、この発明に係るＣＰＵ１３が、各プロセスの処理を実行する様子を模式的に示す説明図である。図８でＣＰＵ１３は、プロセスＡ、ＢおよびＣを実行する。また、デバイスドライバが入出力Ｄを制御する。前述のように、各プロセスは、一以上のタスクに分割されて実行される。タスクは、ＣＰＵが処理を実行する単位である。図８で、プロセスＡは、タスクａ１〜ａ４に分割されている。プロセスＢは、タスクｂ１およびｂ２に、プロセスＣはタスクｃ１およびｃ２に分割されている。
【００６８】
図８の下に示す横軸は、時間の経過を示す。分かり易くするために１〜１０まで番号を
付した等間隔の期間で時間の経過を示している。１目盛りは、ある処理時間の単位である。各タスクは、１または２目盛りの処理時間で実行される。なお、各タスクの処理時間はＣＰＵ占有率の説明を分かり易くするために模式化したものである。
【００６９】
図８に示すように、期間１で、ＣＰＵ１３は、タスクａ１を実行する。タスクａ１の処理において、ＣＰＵ１３は、入出力Ｄの動作を開始させる処理を行う。入出力Ｄの動作の一例は、印刷シートを給送する動作である。入出力Ｄは、動作完了が完了すると事象ｄ１を発生させる。事象ｄ１の一例は、印刷シートが所定の位置まで搬送されてその位置にあるセンサが印刷シートの到達を検出した事象である。
【００７０】
タスクａ１が終了した後、ＣＰＵ１３はプロセスＡの次のタスクａ２を実行することはしない。この例で、タスクａ２は、プロセスＢのタスクｂ１の終了を待って実行されるように設計されており、そのタスクｂ１がまだ実行されていないからである。タスクａ１の終了後、リアルタイムＯＳ６３が有するタスクスケジューラは、次に実行すべきタスクを決定し、ＣＰＵ１３は、決定されたタスクを期間２で実行する。リアルタイムＯＳにおけるタスクスケジューリング手法は、周知のものがいくつか提案されているので説明は省略する。結果的に、タスクｂ１が期間２で実行されたとする。即ち、期間１と期間２との間でリアルタイムＯＳ６３に実行が移り、タスクａ１からタスクｂ１へのタスクスイッチングが実行される。
【００７１】
タスクｂ１の終了後、さらにタスクスイッチングが実行される。このとき、タスクｂ１の実行が終了しているので、期間３でタスクａ２が実行される。
プロセスＡの後続のタスクａ３は、タスクｃ１の実行を待って実行されるように設計されている。よって、図８に示すように、タスクａ２の実行が終了した後期間４および５で、ＣＰＵ１３はタスクｃ１を実行する。その後、期間６でタスクａ３を実行する。
【００７２】
プロセスＡの後続のタスクａ４は、入出力Ｄの事象ｄ１を待って実行されるように設計されているが、期間６終了時点で事象ｄ１は発生していない。よって、リアルタイムＯＳ６３は、実行待ちの制約条件がないタスクｂ２へのタスクスイッチングを行う。ＣＰＵ１３は、期間７でタスクｂ２を実行する。同様に、期間７の終了後、実行待ちの制約条件がないタスクｃ２へのタスクスイッチングが行われ、期間８でＣＰＵ１３はタスクｃ２を実行する。
期間８の間に事象ｄ１が発生する。期間８の終了後、事象ｄ１を待っていたタスクａ４へのタスクスイッチングが行われ、ＣＰＵ１３は、期間９および１０でタスクａ４を実行する。
【００７３】
以上、１〜１０の期間のうち、プロセスＡに係るタスクａ１〜ａ４が実行された期間は、期間１、３、６、９および１０の５つの期間である。よって、期間１〜１０におけるプロセスＡのＣＰＵ占有率は、
（５／１０）×１００＝５０（％）
である。
【００７４】
同様に、プロセスＢに係るタスクｂ１およびｂ２は、期間２および７で実行されるので、期間１〜１０におけるプロセスＢのＣＰＵ占有率は、
（２／１０）×１００＝２０（％）
である。また、プロセスＣに係るタスクｃ１およびｃ２は、期間４、５および８で実行されるので、期間１〜１０におけるプロセスＣのＣＰＵ占有率は、
（３／１０）×１００＝２０（％）
である。
【００７５】
制御プログラムの設計者は、ＡＳＩＣが１つの低速機の構成で予め各プロセスのＣＰＵ占有率を算出しておく。そして、各プロセスのＣＰＵ占有率を各ソフトウェア・モジュールの制御プログラムと共にソフトウェア・モジュール格納部１７Ａに格納しておく。また、前記設計者は、ＣＰＵ占有率に係る閾値を決定しておく。例えば、算出された各プロセスのＣＰＵ占有率のうち最大のものを閾値とする。
【００７６】
そして、図１（ｂ）、図３および図５に示す高速機の構成の場合に、ＡＳＩＣ１１ＡのＣＰＵ１３Ａは、ソフトウェア・モジュールの分散を決定する際、前記閾値以上のＣＰＵ占有率を有するソフトウェア・モジュールを、ＡＳＩＣ１１Ｂで処理するようにソフトウェア・モジュールを割り当てる。
このように、ＣＰＵ占有率の高いソフトウェア・モジュールをＡＳＩＣ１１Ｂで処理させ、ＡＳＩＣ１１Ａの処理負担を低減させることによって、ユーザーインターフェイス８５のレスポンスを低下させることなく、高速機に要求される性能を満たすことができる。
【００７７】
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
【符号の説明】
【００７８】
１１、１１Ａ、１１Ｂ：ＡＳＩＣ
１３、１３Ａ、１３Ｂ：ＣＰＵ
１５、１５Ａ、１５Ｂ：不揮発性メモリ
１７、１７Ａ：ソフトウェア・モジュール格納部
１９、１９Ａ、１９Ｂ：ＲＡＭ
２１、２１Ａ、２１Ｂ：入出力インターフェイス
２３：ハードウェア資源
２５、２５Ａ、２５Ｂ：イサーネット・インターフェイス
２７、２７Ａ、２７Ｂ：ＵＳＢインターフェイス
２９、２９Ａ、２９Ｂ：汎用ＤＭＡ
３１、３１Ａ、３１Ｂ：画像処理ＤＭＡ
３３、３３Ａ、３３Ｂ：ＨＤＤ  ＤＭＡ
３５：ネットワーク通信デバイス
３７：ＵＳＢメモリデバイス
３９：シリアル通信デバイス
４３：イメージスキャナ部
４５：プリンタエンジン部
４７：ＨＤＤユニット
５１、５１Ａ、５１Ｂ：デバイスドライバ
５３、５３Ａ：ネットワークドライバ
５５、５５Ａ：ＵＳＢドライバ
５７、５７Ａ：ＤＭＡドライバ
５９、５９Ｂ：画像処理ドライバ
６１、６１Ｂ：ＨＤＤドライバ
６３、６３Ａ、６３Ｂ：リアルタイムＯＳ
６５、６５Ａ、６５Ｂ：ＣＰＵ間通信処理
６７、６７Ａ：画像処理ミドルウェア
６９、６９Ａ：ファイルシステム・ミドルウェア
７１、７１Ｂ：プリンタ画像処理
７３、７３Ｂ：表示描画処理
７５、７５Ｂ：画像ハンドリングサービス
７７、７７Ｂ：コピア
７９、７９Ｂ：プリンタ
８１、８１Ｂ：スキャナ
８３、８３Ｂ：ファックス
８５、８５Ｂ：ユーザーインターフェイス
８７：画像処理装置
【図１】
2012239015.tif 000003
【図２】
2012239015.tif 000004
【図３】
2012239015.tif 000005
【図４】
2012239015.tif 000006
【図５】
2012239015.tif 000007
【図６】
2012239015.tif 000008
【図７】
2012239015.tif 000009
【図８】
2012239015.tif 000010