(57)【要約】【課題】ハードウェアリソースを抑制し、高い処理性能を実現する。【解決手段】非対称マルチプロセッサシステムは、複数のプロセッサを含んでおり、少なくとも第１のプロセッサと第２のプロセッサとが非対称であり、仕事量の予測可能な複数の単位ジョブを単位ジョブ毎に複数のプロセッサに振り分けて行わせる。このために、非対称マルチプロセッサシステムでは、各単位ジョブを複数のプロセッサに割り当てる際の参照情報となる単位ジョブリストを作成し（Ｓ１）、そのリストに基づいて、各単位ジョブの実行順序とそれら単位ジョブの割り当て先プロセッサとを決定する単位ジョブスケジュール（Ｓ２〜Ｓ９）を作成する。【選択図】  図１
2004252900.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを含んでおり、少なくとも第１のプロセッサと第２のプロセッサとが非対称であり、仕事量の予測可能な複数の単位ジョブを単位ジョブ毎に複数のプロセッサに振り分けて行わせる非対称マルチプロセッサシステムにおいて、
各単位ジョブを前記複数のプロセッサに割り当てる際の参照情報となる単位ジョブ処理情報を作成する単位ジョブ処理情報作成手段と、
前記単位ジョブ処理情報に基づいて、各単位ジョブの実行順序とそれら単位ジョブの割り当て先プロセッサとを決定する単位ジョブスケジュール作成手段とを備えていることを特徴とする非対称マルチプロセッサシステム。
【請求項２】
複数のプロセッサのうちの第１のプロセッサと第２のプロセッサとは、少なくとも１つの単位ジョブについて互いに異なるプログラムに基づいて共に実行可能であることを特徴とする請求項１に記載の非対称マルチプロセッサシステム。
【請求項３】
前記単位ジョブ処理情報は各プロセッサでの消費電力情報を含んでおり、前記単位ジョブスケジュール作成手段は、消費電力情報に基づいて、消費電力が少なくなるように各単位ジョブの割り当て先プロセッサを決定することを特徴とする請求項１または２に記載の非対称マルチプロセッサシステム。
【請求項４】
前記単位ジョブスケジュール作成手段での処理結果に応じて、前記の各プロセッサを単位ジョブの実行が可能な動作モードとこの動作モードに対して省電力化が可能な省電力モードとの間で切り替えるモード切替手段を備えていることを特徴とする請求項１または２に記載の非対称マルチプロセッサシステム。
【請求項５】
複数のプロセッサのうちの第１のプロセッサに対応するメモリと第２のプロセッサに対応するメモリとはメモリ容量が互いに異なることを特徴とする請求項１または２に記載の非対称マルチプロセッサシステム。
【請求項６】
複数のプロセッサには、単位ジョブを実行するための所定の命令セットを実行可能な第１のプロセッサと、前記命令セットの一部である命令サブセットを少なくとも実行可能な第２のプロセッサとが含まれていることを特徴とする請求項１または２に記載の非対称マルチプロセッサシステム。
【請求項７】
前記単位ジョブ処理情報は、単位ジョブ毎の処理に要する時間の予想値を示す情報と、単位ジョブ間の依存関係を示す情報と、単位ジョブ毎の処理可能なプロセッサを示す情報とを含んでいることを特徴とする請求項１または２に記載の非対称マルチプロセッサシステム。
【請求項８】
前記単位ジョブスケジュール作成手段は、少なくとも各単位ジョブの終了毎に単位ジョブの実行順序を決定することを特徴とする請求項１に記載の非対称マルチプロセッサシステム。
【請求項９】
前記単位ジョブスケジュール作成手段は、前記複数のプロセッサの何れかが実行可能な単位ジョブを抽出する処理と、実行すべき単位ジョブが未定のプロセッサを抽出する処理と、この抽出したプロセッサに対して実行可能な単位ジョブを割り当てる処理とを行うことを特徴する請求項１または２に記載の非対称マルチプロセッサシステム。
【請求項１０】
前記単位ジョブスケジュール作成手段は、所定の単位ジョブについて、少なくともその単位ジョブを実行可能な第１のプロセッサに対して、第１のプロセッサよりも多種類の単位ジョブを実行可能な第２のプロセッサよりも優先して割り当てることを特徴とする請求項１または２に記載の非対称マルチプロセッサシステム。
【請求項１１】
請求項１から１０の何れか１項に記載の非対称マルチプロセッサシステムを備えていることを特徴とする画像処理装置。
【請求項１２】
請求項１１に記載の画像処理装置を備えていることを特徴とする画像形成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、非対称のマルチプロセッサにより複数の単位ジョブを処理する非対称マルチプロセッサシステム、それを備えた画像処理装置および画像形成装置に関するものである。
【０００２】
【従来の技術】
フルカラー複写機等のデジタル画像形成装置では、スキャナ等の画像入力装置から入力されたデータを電子写真方式の出力エンジンやインクジェット方式の出力エンジン等の画像出力装置に出力して印刷を行う。この際、デジタル画像形成装置では、画像入力装置からのＲＧＢデータを画像出力装置に適合するＣＭＹＫデータ等に変換して出力する画像処理プロセスを実施する必要がある。
【０００３】
この場合、上記画像処理プロセスで扱うデータ量は膨大であり、かつ画像出力装置の動作に追随するために高速なリアルタイム出力が要求される。このため、画像処理プロセスを行う従来のハードウェアは、ほとんどの場合、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ）のハードワイヤードで構成されていた。
【０００４】
しかしながら、近年では、汎用プロセッサあるいはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）の性能向上により、画像処理プロセスをソフトウェアにて構成可能になってきた。この場合でも、命令を実行する処理部が１つだけのプロセッサにてフルカラー複写機等のデジタル画像形成装置向けの画像処理プロセスを実施するには性能上に問題がある。このため、この画像処理プロセスは、一つのプロセッサ要素の中に複数の処理部を搭載した、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ，Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）型やＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）型に代表されるＭＩＭＤ（Ｍｕｌｔｉｐｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ，Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）型のプロセッサ、これら両方の方式を複合したプロセッサ、あるいはこれらプロセッサをさらに複数個使用するマルチプロセッサシステムにて行われる場合が多い。
【０００５】
ところで、上記のように、複数個の処理部を備えたプロセッサ、あるいはマルチプロセッサにて画像処理プロセスを行う場合には、どの演算器にどの部分の処理を割り当てるかという処理の分割問題が発生する。
【０００６】
この分割に関し、ＳＩＭＤ型プロセッサは１つの命令で多数のデータを扱う方式であるため、画像処理プロセスをＳＩＭＤ型プロセッサで行う場合にはデータ自身を分割する必要がある。
【０００７】
また、ＭＩＭＤ型プロセッサやマルチプロセッサ構成では、画像処理プロセスを構成する一つの命令単位、あるいは一群の命令群単位で処理を分割できる。例えば特開平８−４４６７８号公報（以下、第１従来技術と称する）には、処理対象となる画像データを各ＣＰＵの負荷に応じて分割し、処理する方法が紹介されている。
【０００８】
一方、近年の汎用プロセッサあるいはＤＳＰの性能向上は、主として集積化可能な回路規模の増大と動作速度の向上によって実現されているものの、処理性能の向上に伴って消費電力が増大する問題が発生している。この問題に対処するために、例えば特開平２００２−９９４３３公報（以下、第２従来技術と称する）には、稼動中の各時点において稼動中の各周期リアルタイムタスクに課せられた要求を満たすように、各プロセッサの動作周波数と電源電圧を調整することで消費電力の低減を図るシステムが紹介されている。
【０００９】
また、特開平６−２１４９６１号公報（以下、第３従来技術と称する）には非対称プロセッサにおいて、作業リダイレクト動作によって動的に再割り当てを行う装置が紹介されている。
【００１０】
【特許文献１】
特開平８−４４６７８号公報（公開日平成８年２月１６日）
【００１１】
【特許文献２】
特開平２００２−９９４３３公報（公開日平成１４年４月５日）
【００１２】
【特許文献３】
特開平６−２１４９６１号公報（公開日平成６年８月５日）
【００１３】
【発明が解決しようとする課題】
プロセッサにおいて複数個の処理部をどのように構成するかは重要な要素である。画像処理プロセス中には、例えばテーブル参照処理のように大量のメモリが必要な処理もあれば、ＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタ処理のように演算処理がほとんどを占める処理もある。また、ＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）処理など、同じ処理を繰り返し行う処理の場合のように、専用命令を用意することで劇的に性能を向上できる場合もある。
【００１４】
これらを考えれば、一つの命令単位、あるいは一群の命令群単位で処理を分割できるＭＩＭＤ型プロセッサ構成あるいはマルチプロセッサ構成において、一部の処理のために必要なメモリや命令などのハードウェアリソースを各処理部あるいは各プロセッサが同じように持つ対称型プロセッサ構成を取るよりも、各処理部が非対称な構成を取る方が、プロセッサが必要とするメモリや回路規模などのハードウェアリソースを節約できる。
【００１５】
この非対称マルチプロセッサ構成においては、あるプロセッサと別のプロセッサとではハードウェア条件が異なっており、画像処理プロセス全体が全てのプロセッサを使用して行われない。このため、第１従来技術で紹介されている手法、即ち画像データを分割して各処理部に割り当てるといった手法は用いることができない。
【００１６】
また、これらの画像処理プロセスに用いるプロセッサ（画像処理プロセッサ）は高速な処理のため画像処理に特化した特殊な構成であることが多く、この場合ジョブの割り当てを行うためのディスパッチ処理などのシーケンス制御などは汎用プロセッサで行うほうが効率的であるが、複数の画像処理プロセッサを保持するマルチプロセッサ構成において、第３従来技術に記載のように負荷状況に応じて割り当てる単位ジョブを決定していたのでは、ディスパッチを行っている間は画像処理プロセッサが停止していることになり、結果としてシステム全体の処理速度が低下する。
【００１７】
また、第１従来技術では、処理能力の観点のみを考慮して処理の分割を行っており、消費電力の抑制については考慮されていない。一方、第２従来技術では、稼動中の各時点において各プロセッサに必要な処理性能を算出し、その結果から消費電力の制御を行うようにしている。しかしながら、各プロセッサ要素単位で必要性能の算出を行っているため、非対称マルチプロセッサにおいて同じ単位ジョブを動作させた場合でも各プロセッサ要素によって消費電力が異なるということが消費電力制御に加味されていない。このため、非対称マルチプロセッサにおいて消費電力を十分に抑制可能な構成とはなっていない。
【００１８】
本発明は上記の課題を解決するためになされたものであって、ハードウェアリソースを抑制しつつ、高い処理性能を実現すことができる非対称マルチプロセッサシステム、さらには効率よく消費電力を低減することができる非対称マルチプロセッサシステム、並びにそれを備えた画像処理装置および画像形成装置の提供を目的としている。
【００１９】
【課題を解決するための手段】
上記の課題を解決するために、本発明の非対称マルチプロセッサシステムは、複数のプロセッサを含んでおり、少なくとも第１のプロセッサと第２のプロセッサとが非対称であり、仕事量の予測可能な複数の単位ジョブを単位ジョブ毎に複数のプロセッサに振り分けて行わせる非対称マルチプロセッサシステムにおいて、各単位ジョブを前記複数のプロセッサに割り当てる際の参照情報となる単位ジョブ処理情報を作成する単位ジョブ処理情報作成手段と、前記単位ジョブ処理情報に基づいて、各単位ジョブの実行順序とそれら単位ジョブの割り当て先プロセッサとを決定する単位ジョブスケジュール作成手段とを備えていることを特徴としている。
【００２０】
上記の構成によれば、仕事量の予測可能な複数の単位ジョブが非対称のプロセッサにて行われる際に、単位ジョブスケジュール作成手段は、単位ジョブ処理情報作成手段にて作成された単位ジョブ処理情報に基づいて、各単位ジョブの実行順序とそれら単位ジョブの割り当て先プロセッサとを決定する。
【００２１】
これにより、非対称となっている各プロセッサの性能を適切に利用して、ハードウェアリソースを抑制しつつ、高い処理性能を実現することができる。
【００２２】
上記の非対称マルチプロセッサシステムは、複数のプロセッサのうちの第１のプロセッサと第２のプロセッサとが、少なくとも１つの単位ジョブについて互いに異なるプログラムに基づいて共に実行可能である構成としてもよい。
【００２３】
上記の構成によれば、同一の単位ジョブを非対称となる複数のプロセッサにて実行可能であるので、単位ジョブのスケジューリングにおける自由度を増やすことが可能となる。したがって、非対称マルチプロセッサシステムにおいて、単位ジョブを実行可能なプロセッサが限定されている場合と比較して、単位ジョブの実行時間が短くなるようなジョブスケジューリングが容易となる。これにより、非対称マルチプロセッサの性能を効率的に引き出すことが容易となる。
【００２４】
上記の非対称マルチプロセッサシステムは、前記単位ジョブ処理情報が各プロセッサでの消費電力情報を含んでおり、前記単位ジョブスケジュール作成手段が、消費電力情報に基づいて、消費電力が少なくなるように各単位ジョブの割り当て先プロセッサを決定する構成としてもよい。
【００２５】
上記の構成によれば、消費電力情報が各プロセッサ上で実行する単位ジョブのスケジューリングに反映される。これにより、効率よく消費電力を低減することができる。
【００２６】
上記の非対称マルチプロセッサシステムは、前記単位ジョブスケジュール作成手段での処理結果に応じて、前記の各プロセッサを単位ジョブの実行が可能な動作モードとこの動作モードに対して省電力化が可能な省電力モードとの間で切り替えるモード切替手段を備えている構成としてもよい。
【００２７】
上記の構成によれば、単位ジョブのスケジューリング結果に応じてプロセッサ要素の消費電力モードを切り替えることができるので、効率よく消費電力を低減することができる。
【００２８】
上記の非対称マルチプロセッサシステムは、複数のプロセッサのうちの第１のプロセッサに対応するメモリと第２のプロセッサに対応するメモリとはメモリ容量が互いに異なる構成としてもよい。
【００２９】
上記の構成によれば、単位ジョブの実行に要するメモリ容量に応じて、その単位ジョブを各プロセッサに割り当てることにより、非対称マルチプロセッサに要求される処理性能を比較的小さいハードウェアリソースにて実現することができる。
【００３０】
上記の非対称マルチプロセッサシステムは、複数のプロセッサに、単位ジョブを実行するための所定の命令セットを実行可能な第１のプロセッサと、前記命令セットの一部である命令サブセットを少なくとも実行可能な第２のプロセッサとが含まれて構成としてもよい。
【００３１】
上記の構成によれば、例えば高速化のための特殊な命令セットを用いる一部の単位ジョブを除いた他の多くの単位ジョブに対して、割り当て可能なプロセッサ要素が増加することになり、非対称マルチプロセッサに要求される処理性能を比較的少ないハードウェアリソースにて実現することができる。
【００３２】
上記の非対称マルチプロセッサシステムは、前記単位ジョブ処理情報が、単位ジョブ毎の処理に要する時間の予想値を示す情報と、単位ジョブ間の依存関係を示す情報と、単位ジョブ毎の処理可能なプロセッサを示す情報とを含んでいる構成としてもよい。
【００３３】
上記の構成によれば、単位ジョブ処理情報が上記の各情報を含んでいることにより、単位ジョブの効率的な割り当てが可能となり、プロセッサ要素の無駄な待ち時間を減らしたジョブスケジューリングを実現することができる。
【００３４】
上記の非対称マルチプロセッサシステムは、前記単位ジョブスケジュール作成手段が、少なくとも各単位ジョブの終了毎に単位ジョブの実行順序を決定する構成としてもよい。
【００３５】
上記の構成によれば、プロセッサのジョブスロットに空きができた後に次に実行すべき単位ジョブを割り当てることができ、効率的なジョブスケジューリングが可能となる。
【００３６】
上記の非対称マルチプロセッサシステムは、前記単位ジョブスケジュール作成手段が、前記複数のプロセッサの何れかが実行可能な単位ジョブを抽出する処理と、実行すべき単位ジョブが未定のプロセッサを抽出する処理と、この抽出したプロセッサに対して実行可能な単位ジョブを割り当てる処理とを行う構成としてもよい。
【００３７】
上記の構成によれば、各プロセッサ側が実行の可否判断を行う必要なく、各プロセッサ側の制御を簡素化することができる。
【００３８】
上記の非対称マルチプロセッサシステムは、前記単位ジョブスケジュール作成手段が、所定の単位ジョブについて、少なくともその単位ジョブを実行可能な第１のプロセッサに対して、第１のプロセッサよりも多種類の単位ジョブを実行可能な第２のプロセッサよりも優先して割り当てる構成としてもよい。
【００３９】
上記の構成によれば、実行可能な単位ジョブの種類が相対的に少ないプロセッサに対して、そのプロセッサで処理可能な単位ジョブを、実行可能な単位ジョブの種類が相対的に多いプロセッサよりも優先して割り当てることにより、実行可能な単位ジョブの種類が相対的に少ないプロセッサのジョブスロットに空きが生じ、他の単位ジョブを割り当て可能な確率が相対的に減少するという、非対称マルチプロセッサシステムの作業効率が低下する事態を防止することができる。
【００４０】
本発明の画像処理装置は、上記の何れかの非対称マルチプロセッサシステムを備えた構成である。これにより、単位ジョブの実行時間の変動幅があらかじめ予測可能で、かつ次に実施すべき単位ジョブがあらかじめ判明しているという画像処理の特徴を用いて、単位ジョブのスケジューリングをすることで、非対称マルチプロセッサ構成をもつ画像処理装置における各プロセッサ要素の空き時間を極力短くすることができる。
【００４１】
本発明の画像形成装置は、上記の画像処理装置を備えた構成である。これにより、単位ジョブの実行時間の変動幅があらかじめ予測可能で、かつ次に実施すべき単位ジョブがあらかじめ判明しているという画像形成装置での画像処理の特徴を用いて、単位ジョブのスケジューリングをすることで、非対称マルチプロセッサ構成をもつ画像処理装置における各プロセッサ要素の空き時間を極力短くすることができる。
【００４２】
【発明の実施の形態】
〔実施の形態１〕
本発明の実施の一形態を図面に基づいて以下に説明する。本実施の形態においては、非対称マルチプロセッサシステムが画像形成装置の画像処理装置に適用された場合について説明する。
【００４３】
例えばデジタル複写機である画像形成装置は、図２に示すように、コンソール１０、コントローラ１１、スキャナ部（画像入力装置）１２、画像処理部（画像処理装置）１３およびエンジン部（画像出力装置）１４を備えている。
【００４４】
コンソール１０は、ユーザとのインタフェースを行うための液晶表示装置および動作指示用のボタン類を備えている。
【００４５】
コントローラ１１は、汎用ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で構成され、スキャナ部１２、画像処理部（画像処理装置）１３およびエンジン部１４をコントロールし、一連のコピー動作を制御する。
【００４６】
スキャナ部１２は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）ラインイメージセンサユニットと副走査方向駆動系とを備える。このスキャナ部１２は、原稿を走査し、１主走査ライン毎にＲＧＢ（Ｒ：赤・Ｇ：緑・Ｂ：青）カラー信号を生成し、この信号を有効範囲のみＡ／Ｄ変換してデジタルデータに変換し、画像処理部１３に出力する。この場合、スキャナ部１２は走査速度に応じた一定間隔で処理すべき主走査ラインデータを画像処理部１３に出力する。
【００４７】
画像処理部１３は、スキャナ部１２からのＲＧＢ画像データを受け取り、ＣＭＹＫ画像データを生成し、エンジン部１４へ出力する。
【００４８】
エンジン部１４は、例えばＣＭＹＫの４色トナーを用いたタンデム方式の電子写真方式のカラー出力エンジンを出力機器として使用している。このエンジン部１４では、画像処理部１３からの１ページ分のＣＭＹＫデータ値を受け取り、ＣＭＹＫデータ値を用いて出力用紙に画像を出力する。なお、エンジン部１４は、ＣＭＹＫの４色インクを用いたインクジェット方式の出力エンジンを出力機器として使用していてもよい。
【００４９】
次に、画像処理部１３の構成および機能について説明する。
画像処理部１３は、図３に示すように、画像処理チップ２９と外部ＲＯＭ３１と外部ＲＡＭ３２とで構成されている。画像処理チップ２９は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）コアＡ２０、ＤＳＰコアＢ２１、４０ＫＢローカルＲＡＭ（ローカルメモリ）２２、１６ＫＢローカルＲＡＭ（ローカルメモリ）２３、汎用ＣＰＵ２４、外部ＲＯＭＩ／Ｆ２５、画像入力Ｉ／Ｆ２６、画像出力Ｉ／Ｆ２７および外部ＲＡＭＩ／Ｆ２８を含んでいる。
【００５０】
汎用ＣＰＵ２４は、コントローラ１１からの指示を受け、コピー動作の実行に必要な画像処理部１３全体の動作を制御する。
【００５１】
ＤＳＰコアＡ２０は、メインＤＳＰであり、ＤＳＰコアＢ２１はサブＤＳＰである。ＤＳＰコアＡ２０が実行可能な命令は、ＤＳＰコアＢ２１が実行可能な命令に対して、後述するフィルタ処理の処理速度を向上させるために、ＳＩＭＤ処理命令を加えたスーパーセットとなっている。
【００５２】
ＤＳＰコアＡ２０には、それ自身のローカルメモリとして４０ＫＢローカルＲＡＭ２２が接続され、ＤＳＰコアＢ２１には、それ自身のローカルメモリとして１６ＫＢローカルＲＡＭ２３が接続されている。これらは、各ＤＳＰコアが単位ジョブを実行する際のワークメモリとして使用される。
【００５３】
上記の構成から、ＤＳＰコアＡ２０は、画像処理部が行うべき画像処理プロセスを構成する単位ジョブ実行プログラムの全種類を実行することができる。一方、ＤＳＰコアＢ２１は、上記単位ジョブ実行プログラムの一部の種類、例えばフィルタ処理および色補正処理以外の単位ジョブのみを実行することができる。
【００５４】
外部ＲＯＭＩ／Ｆ２５は、画像処理チップ２９内部の各処理ブロックを接続している内部バス３０の信号を、外部ＲＯＭ３１に接続可能なように変換する。
【００５５】
外部ＲＡＭＩ／Ｆ２８は、内部バス３０の信号を外部ＲＡＭ３２に接続可能なように変換する。画像入力Ｉ／Ｆ２６は、汎用ＣＰＵ２４からの指示により、スキャナ部１２からのＲＧＢ画像データを外部ＲＡＭＩ／Ｆ２８を通して外部ＲＡＭ３２内に格納する。画像出力Ｉ／Ｆ２７は汎用ＣＰＵ２４からの指示により、外部ＲＡＭＩ／Ｆ２８を通して外部ＲＡＭ３２内に格納されているＣＭＹＫ画像データを読み出して出力する。
【００５６】
画像処理部１３は、コントローラ１１からの指示により、図４（ａ）（ｂ）のフローチャートに示す一連の画像処理プロセスを実行する。この画像処理プロセスは、シェーディング補正処理、入力ガンマ補正処理、領域分離処理、フィルタ処理、変倍処理、色補正処理および多値ディザ処理の各単位ジョブから構成されている。これら各ジョブは、汎用ＣＰＵ２４により、ＤＳＰコアＡ２０とＤＳＰコアＢ２１とのどちらで実行するのかを決定するスケジューリング後に、それぞれに割り振られる。
【００５７】
各単位ジョブでは、汎用ＣＰＵ２４が指示する外部ＲＡＭ３２上の処理対象データを取り出し、同じく汎用ＣＰＵ２４が指示する外部ＲＡＭ３２上の処理結果格納領域に処理結果データを格納する。このように各単位ジョブ間のデータの受け渡しは、スキャナ部１２からのデータ入力およびエンジン部１４へのデータ出力も含めて外部ＲＡＭ３２を介して行われ、処理が終了するまでは外部メモリ３２上に滞留する。したがって、外部ＲＡＭ３２のメモリ容量は、ワースト条件においても上記受け渡しされるデータがメモリ上に滞留できるように十分な容量が確保されている。
【００５８】
なお、上記ワースト条件とは、全ての単位ジョブが処理を完了するために最大値で示される時間を必要とする場合を指す。但し、単位ジョブ間の依存関係により、ある単位ジョブ（例えば領域分離）が最大値で示される時間を必要とする場合には別の単位ジョブ（例えばフィルタ処理）では必ず最大値未満の時間で終了する場合もある。この場合を考慮したワースト条件とは、全依存関係の組み合わせ条件中、当該システムにおいて最も実行時間を必要とする条件を指す。
【００５９】
次に、画像処理部１３における画像処理プロセスを図４（ａ）（ｂ）のフローチャートに基づいて説明する。
【００６０】
まず、図４（ａ）に示すように、画像処理部１３では、スキャナ部１２から主走査ラインデータを受け取ったかどうか判定し、受け取るまで待つ（Ｓ１１）。上記データを受け取った場合には、そのラインについて１ライン処理プロセスを起動し（Ｓ１２）、全ラインについて処理が終了すると（Ｓ１３）、画像処理プロセスを終了する。
【００６１】
上記の１ライン処理プロセスにおいて、画像処理部１３は図４（ｂ）に示す各単位ジョブを順次実行する。それら各単位ジョブは、ＤＳＰコアＡ２０およびＤＳＰコアＢ２１上で動作するプログラムコードとして外部ＲＯＭ３１に格納されており、それらプログラムコードを各ＤＳＰコアが読み取ることで実行される。
【００６２】
上記の１ライン処理プロセスでは、図４（ｂ）に示すように、各単位ジョブとして、シェーディング補正処理（Ｓ２２）、入力ガンマ補正処理（Ｓ２４）、領域分離処理（Ｓ２６）、フィルタ処理（Ｓ２８）、変倍処理（Ｓ３０）、色補正処理（Ｓ３２）および多値ディザ処理（Ｓ３４）が順次行われる。また、これら各単位ジョブの開始前のタイミングと、これら各単位ジョブの終了毎のタイミングとにおいて、単位ジョブのスケジューリング処理が行われる（Ｓ２１、Ｓ２３、Ｓ２５、Ｓ２７、Ｓ２９、Ｓ３１、Ｓ３３、Ｓ３５）。
【００６３】
シェーディング補正処理（Ｓ２２）においては、主走査方向内で光量分布がある入力データを補正し、光量分布がないようなデータに変換する。即ち、スキャナ部１２より送られてきたデジタルのＲＧＢ信号に対して、カラー画像入力装置の照明系、結像系、撮像系で生じる各種の歪みを取り除く処理を行う。
【００６４】
入力ガンマ補正処理（Ｓ２４）においては、画像入力装置の入力特性を、後段画像処理で扱いやすいように、画像データがＣＣＤの感度にリニアになるように補正する。
【００６５】
領域分離処理（Ｓ２６）においては、入力されてきた画像の各画素に対して、文字画素かそれ以外の画素かの属性値１ｂｉｔを付加する。
【００６６】
フィルタ処理（Ｓ２８）においては、画素毎に２次元ＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタをかけ、画素毎の属性情報を用いて文字領域か否かを判定する。文字領域であれば、注目画素を中心として主走査方向５画素、副走査方向５画素の計２５画素の画素データを用いて強調フィルタ処理をかけ、文字エッジを強調する。それ以外の領域であれば、注目画素を中心とした主走査方向７画素、副走査方向７画素の４９画素の画素データを用いて平滑フィルタ処理を行い、ノイズの除去を行う。フィルタ処理は高速化のためにＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ，Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）命令を用いたプログラムコードで記載されており、ＤＳＰコアＡ２０でしか実行できない。
【００６７】
変倍処理（Ｓ３０）においては、入力されてきた画像データを主走査方向に変倍処理し、主走査方向に対して画像を拡大あるいは縮小する。
【００６８】
色補正処理（Ｓ３２）においては、ＲＧＢ多値データをＣＭＹＫ多値データに変換する。即ち、色再現の忠実化実現のために、不要吸収成分を含むＣＭＹＫ色材の分光特性に基づいたテーブル参照値を用いてＲＧＢ値からＣＭＹＫ値に演算にて変換する。この際のテーブル参照値を格納するためのメモリ容量として約３５．１ＫＢｙｔｅｓが必要である。このために、色補正処理はＤＳＰコアＡ２０でしか実行できない。
【００６９】
多値ディザ処理（Ｓ３４）においては、各色２５６階調のＣＭＹＫデータをエンジン部１４の能力に合わせて各色１６階調で表現するためにディザ処理を行う。
【００７０】
以上の単位ジョブの実行後には、前述のように、全主走査ラインの処理終了か否かを判定し（Ｓ１３）、未終了であれば、処理が終了まで、Ｓ２１からＳ３５の処理を含む、Ｓ１１からＳ１３の処理を継続する。
【００７１】
次に、単位ジョブのスケジューリングについて説明する。
画像処理プロセスでは汎用ＣＰＵ２４によってシーケンス制御が行われる。この際、単位ジョブのスケジューリングとして、各単位ジョブの単位でそれらの実行順序が決定され、ＤＳＰコアＡ２０およびＤＳＰコアＢ２１に割り振られる。
【００７２】
汎用ＣＰＵ２４での各単位ジョブのスケジューリングは、画像処理プロセスの実行開始時、および各ＤＳＰコアからの単位ジョブ終了通知毎に実行される。単位ジョブのスケジューリング自体にも時間を要するため、ＤＳＰコアの効率的な動作のために、各ＤＳＰコアが実行している単位ジョブの終了後に、次に行うべき単位ジョブを汎用ＣＰＵ２４が決定する。このため、本実施の形態において、各ＤＳＰコアは現在行うべき単位ジョブと次に行うべき単位ジョブとの２種類のジョブスロットとして扱われ、スケジューリングされる。
【００７３】
次に、汎用ＣＰＵ２４におけるスケジューリングの動作の一例を図１のフローチャートに基づいて説明する。
【００７４】
汎用ＣＰＵ２４はスケジューリングする際に必要な情報として、図５（ａ）（ｂ）に示す単位ジョブ情報を有する。この単位ジョブ情報には、図５（ａ）に示す、各単位ジョブの処理時間の最小・最大、ＤＳＰコアＢ２１での実行可能情報、単位ジョブ間の依存関係、即ち各単位ジョブの次に実行すべき単位ジョブ（画像処理）に関する情報、および図５（ｂ）に示す主走査ライン受け取り間隔等の情報が含まれる。
【００７５】
スケジューリングにおいて、汎用ＣＰＵ２４は、まず各ＤＳＰコアが実行可能な単位ジョブリストを作成する（Ｓ１）。これは、各ＤＳＰコアが実施段階で確実に実行可能になる単位ジョブをリストアップするものである。この目的でリストアップされる単位ジョブには、
（１）スケジュール段階で実行待ち（アクティブ）状態にある単位ジョブ
（２）自身のコアで実行中の単位ジョブの次に行うべき単位ジョブ
（３）現在、他方のＤＳＰコア上で実行中の単位ジョブを最大実行時間で見積もった場合の終了時間が、現在対象ＤＳＰコア上で実行中の単位ジョブを最小実行時間で見積もった場合の終了時間よりも早い場合における、他方のＤＳＰコア上で実行中の単位ジョブの次に実行すべき単位ジョブ
（４）定期投入される単位ジョブ
が含まれる。したがって、これら各単位ジョブについてのリストが作成される。
【００７６】
なお、上記（３）の単位ジョブとしては、汎用ＣＰＵ２４が必要とするスケジューリング時間を考慮し、次のような単位ジョブを対象としてもよい。即ち、他方のＤＳＰコア上で実行中の単位ジョブを最大実行時間で見積もった場合の終了時間が、現在対象ＤＳＰコア上で実行中の単位ジョブの最小実行時間と汎用ＣＰＵ２４が必要とするスケジューリング時間とを加算した時間よりも早い場合における、他方のＤＳＰコア上で実行中の単位ジョブの次に実行すべき単位ジョブとしてもよい。但し、この場合は他方のＤＳＰコアにおける処理終了通知を合図として、割り当てられた単位ジョブを開始するための機能をＤＳＰコアが有する。
【００７７】
Ｓ１での単位ジョブリストの作成完了後、汎用ＣＰＵ２４は、ＤＳＰコアＢ２１に割り当てていないジョブスロットがあるかどうかを判定する（Ｓ２）。
【００７８】
その結果、未割り当てのジョブスロットがあれば、実行可能な単位ジョブリスト中にＤＳＰコアＡ２０およびＤＳＰコアＢ２１のどちらでも同じ処理時間で実行可能な単位ジョブ、即ち汎用ジョブがあるかどうかを判定し（Ｓ３）、汎用ジョブがあればその汎用ジョブとしての単位ジョブをＤＳＰコア２１に割り当てる（Ｓ４）。
【００７９】
Ｓ２でジョブスロットがない場合、Ｓ３で汎用ジョブがない場合、およびＳ４の処理が終了した場合には、ＤＳＰコアＡ２０に割り当てていないジョブスロットがあるかどうかを判定する（Ｓ５）。
【００８０】
Ｓ５での判定の結果、ＤＳＰコアＡ２０に割り当てていないジョブスロットがあれば、実行可能な単位ジョブリスト中にＤＳＰコアＡ２０でのみ実行可能な単位ジョブ、即ち専用ジョブがあるかどうかを判定する（Ｓ６）。専用ジョブがあればその専用ジョブとしての単位ジョブをＤＳＰコアＡ２０に割り当て（Ｓ７）、Ｓ２へ戻る。なお、Ｓ５においてＤＳＰコアＡ２０に空いているジョブスロットがなければ処理を終了する。
【００８１】
一方、Ｓ６で専用ジョブがなければ、実行可能な単位ジョブリスト中に汎用ジョブがあるかどうかを判定する（Ｓ８）。汎用ジョブがあればその汎用ジョブとしての単位ジョブをＤＳＰコアＡ２０に割り当て（Ｓ９）、Ｓ２へ戻る。なお、Ｓ８において実行可能な汎用ジョブがなければ処理を終了する。
【００８２】
上記のジョブの割り当て処理（単位ジョブのスケジューリング）の具体例を図６および図７に例示する。
【００８３】
図６には、ＤＳＰコアＡ２０のジョブスロットが空いた場合において、実行可能な単位ジョブリストに主走査ライン番号１０１のフィルタ処理と主走査ライン番号１０２番の入力ガンマ補正処理とがある場合を示す。この場合、フィルタ処理は、ＤＳＰＡ２０でのみ実行可能な単位ジョブであるため、ＤＳＰコアＡ２０の空いたジョブスロットに割り当てられる。
【００８４】
図７には、ＤＳＰコアＢ２１のジョブスロットが空いた場合において、実行可能な単位ジョブリストに主走査ライン番号２０２のシェーディング補正処理と主走査ライン番号２０１番の入力ガンマ補正処理とがある場合を示す。この場合、どちらの単位ジョブも汎用ジョブであるものの、入力ガンマ補正処理の主走査ライン番号が小さいため、ＤＳＰコアＢ２１の空いたジョブスロットには入力ガンマ補正処理が割り当てられる。
【００８５】
上記のように、本実施の形態の非対称マルチプロセッサシステムが適用された画像処理部１３では、仕事量の予測可能な複数の単位ジョブ（ここでは各種画像処理）を実行する場合に、単位ジョブの実行に先立って単位ジョブのスケジューリングを行い、ＤＳＰコアＡ２０とＤＳＰコアＢ２１とのどちらでも同じ処理時間で実行可能な単位ジョブについては、相対的に処理可能な単位ジョブの種類に制限のあるＤＳＰコアＢ２１に優先的に割り当てている。
【００８６】
このように、本実施の形態の非対称マルチプロセッサシステムが適用された画像処理部１３では、仕事量の予測可能な複数の単位ジョブ（ここでは各種画像処理）を実行する場合において、非対称のプロセッサに対して、非対称となっている特性の違い、例えば処理能力の違いに応じて、各単位ジョブを効率よく処理できるように、例えば一連の画像処理全体として処理速度が速くなるように、単位ジョブのスケジューリングにおいて、各単位ジョブを各ＤＳＰコアに割り当てている。したがって、ハードウェアリソースを抑制した構成により、効率よく単位ジョブを処理することができる。
【００８７】
なお、本実施の形態では、説明の便宜上、単位ジョブを実行するＤＳＰコアを２個のみ備えた構成について説明しているが、ＤＳＰコアを３個以上備えた構成であってもよい。この点は、以下の他の実施の形態においても同様である。
【００８８】
〔実施の形態２〕
本発明の実施の他の形態を図面に基づいて以下に説明する。
本実施の形態の非対称マルチプロセッサシステムを備えた画像形成装置は、画像処理部１３が画像処理チップ２９に代えて図８に示す画像処理チップ４１を備えている。この画像処理チップ４１では、前記画像処理チップ２９に対してクロック生成回路Ａ４２およびクロック生成回路Ｂ４３が追加された構成となっている。
【００８９】
クロック生成回路Ａ４２は汎用ＣＰＵコア２４からの動作周波数指示信号４４によってＤＳＰコアＡ２０に指定された周波数のクロックを供給する。またクロック生成回路Ｂ４３は汎用ＣＰＵコア２４からの動作周波数指示信号４５によってＤＳＰコアＢ２１に指定された周波数のクロックを供給する。但し、本実施の形態において、クロック生成回路Ａ４２とクロック生成回路Ｂ４３は同じ周波数のクロックを各々の対応するＤＳＰコアに供給するものとする。
【００９０】
ＤＳＰコアＡ２０はＤＳＰコアＢ２１と比較して、ＳＩＭＤ処理命令を実装しているため回路規模が大きい。ＤＳＰコアＡ２０のローカルメモリ（４０ＫＢローカルＲＡＭ２２）のサイズは４０ＫＢであり、ＤＳＰコアＢ２１のローカルメモリ（１６ＫＢローカルＲＡＭ２３）のサイズの１６ＫＢと比較して大きい。したがって、同一クロック周波数で動作している場合でもＤＳＰコアＡ２０の方がＤＳＰコアＢ２１よりも消費電力が大きくなる。さらに、同じ処理量当りの消費電力は処理内容によってばらつきがあるものの、同じ処理を行う場合、消費電力は、全てＤＳＰコアＡ２０の方がＤＳＰコアＢ２１より大きくなる。
【００９１】
上記の点から、ＤＳＰコアＡ２０は、画像処理部１３が行うべき画像処理プロセスを構成する単位ジョブ実行プログラムの全てを実施することができる反面、消費電力が大きい。これに対し、ＤＳＰコアＢ２１は、単位ジョブ実行プログラムの一部の種類の単位ジョブ、例えば色補正処理を実施できないものの、消費電力が比較的小さい。また、ＤＳＰコアＢ２１はフィルタ処理の処理速度を向上させるためのＳＩＭＤ処理命令を持っていないため、ＤＳＰコアＡ２０とは別のプログラムコードを用いてフィルタ処理を実施する。この場合、ＤＳＰコアＢ２１での処理速度は、ＳＩＭＤ処理命令を用いないので、遅くなる。
【００９２】
本実施の形態においても画像処理部１３は、前記実施の形態の場合と同様、コントローラ１１からの指示により、前記図４（ａ）（ｂ）のフローチャートに示す一連の画像処理プロセスを実行する。
【００９３】
この場合、フィルタ処理では、高速化のためにＳＩＭＤ命令を用いたプログラムコードで記載されたフィルタ処理コードＡとＳＩＭＤ命令を用いないプログラムコードで記載されたフィルタ処理コードＢが存在する。フィルタ処理コードＡはＤＳＰコアＡ２０でしか実行できないのに対し、フィルタ処理コードＢはＤＳＰコアＡ２０およびＤＳＰコアＢ２１の両方で実行可能である。
【００９４】
汎用ＣＰＵ２４はスケジューリングする際に必要な情報として、図９（ａ）（ｂ）に示す単位ジョブ情報を有する。この単位ジョブ情報には、図９（ａ）に示す、各単位ジョブの処理時間の最小・平均・最大、ＤＳＰコアＢ２１での実行可能情報、単位ジョブ間の依存関係、即ち各単位ジョブについての次に実行すべき単位ジョブ（処理）に関する情報、および図９（ｂ）に示す主走査ライン受け取り間隔等の情報が含まれる。
【００９５】
次に、本実施の形態の画像処理部１３における単位ジョブのスケジューリングを図１０のフローチャートにより説明する。
【００９６】
スケジューリングに際して、汎用ＣＰＵ２４は、まず各ＤＳＰコアが実行可能な単位ジョブリストおよび各ＤＳＰコアにおいて実行が予定されている単位ジョブリストを作成する（Ｓ４１）。
【００９７】
各ＤＳＰコアが実行可能な単位ジョブリストは、前述の例と同様、各ＤＳＰコアが実施段階で確実に実行可能になる単位ジョブをリストアップするものである。この目的でリストアップされる単位ジョブには、
（１）スケジュール段階で実行待ち（アクティブ）状態にある単位ジョブ
（２）自身のコアで実行中の単位ジョブの次に行うべき単位ジョブ
（３）現在、他方のＤＳＰコア上で実行中の単位ジョブを最大実行時間で見積もった場合の終了時間が、現在対象ＤＳＰコア上で実行中の単位ジョブを最小実行時間で見積もった場合の終了時間よりも早い場合における、他方のＤＳＰコア上で実行中の単位ジョブの次に実行すべき単位ジョブ
（４）定期投入される単位ジョブ
が含まれる。
【００９８】
また、実行が予定されている単位ジョブリストに挙げられる単位ジョブには、（５）他方のＤＳＰコア上で実行が予定されている単位ジョブの次に実行されるべき単位ジョブ
（６）次に定期投入される単位ジョブ
が含まれる。
【００９９】
なお、この場合も前述の例と同様、上記（３）の単位ジョブとしては、汎用ＣＰＵ２４が必要とするスケジューリング時間を考慮し、次のような単位ジョブを対象としてもよい。即ち、他方のＤＳＰコア上で実行中の単位ジョブを最大実行時間で見積もった場合の終了時間が、現在対象ＤＳＰコア上で実行中の単位ジョブの最小実行時間と汎用ＣＰＵ２４が必要とするスケジューリング時間とを加算した時間よりも早い場合における、他方のＤＳＰコア上で実行中の単位ジョブの次に実行すべき単位ジョブとしてもよい。但し、この場合は他方のＤＳＰコアにおける処理終了通知を合図として、割り当てられた単位ジョブを開始するための機能をＤＳＰコアが有する。
【０１００】
Ｓ４１での単位ジョブリストの作成完了後、汎用ＣＰＵ２４は、ＤＳＰコアＢ２１に割り当てていないジョブスロットがあるかどうか、即ちジョブスロットの空きがあるかどうかを判定する（Ｓ４２）。
【０１０１】
その結果、ジョブスロットの空きがあれば、実行可能な単位ジョブリスト中にＤＳＰコアＡ２０およびＤＳＰコアＢ２１のどちらでも同じ処理時間で実行可能な単位ジョブ、即ち汎用ジョブがあるかどうかを判定する（Ｓ４３）。汎用ジョブがあればその汎用ジョブとしての単位ジョブをＤＳＰコアＢ２１に割り当てる（Ｓ４４）。その後、Ｓ４２へ戻る。
【０１０２】
Ｓ４３において汎用ジョブがなく、非対称ジョブ、即ちＤＳＰコアＡ２０とＤＳＰコアＢ２１とのどちらでも実行可能であり、かつ実行するプログラムが異なるため実行に要する時間が異なる単位ジョブがある場合には、その非対称ジョブをＤＳＰコアＢ２１に割り当てるかどうかについて判定する（Ｓ４５）。
【０１０３】
この判定は次のようにして行われる。即ち、本実施の形態では、フィルタ処理が非対称ジョブであり、ＤＳＰコアＡ２０でフィルタ処理コードＡを用いてフィルタ処理を実施する場合の平均実行時間１２０と、ＤＳＰコアＢ２１でフィルタ処理コードＢを用いてフィルタ処理を実施する場合の平均実行時間２００との差は時間８０である。そこで、この時間８０内にＤＳＰコアＢ２１で実行可能な汎用ジョブが発生しないと予想される場合にのみ、ＤＳＰコアＢ２１にフィルタ処理を割り当てる（Ｓ４６）。その後、Ｓ４２へ戻る。
【０１０４】
Ｓ４２において、ＤＳＰコアＢ２１に割り当てていないジョブスロットがなく、即ちＤＳＰコアＢ２１のジョブスロットに空きがない場合、およびＳ４５において、前記の条件に基づき、ＤＳＰコアＢ２１に非対称ジョブを割り当てることができない場合には、ＤＳＰコアＡ２０のジョブスロットに空きがあるかどうかを判定する（Ｓ４７）。
【０１０５】
この判定の結果、ＤＳＰコアＡ２０のジョブスロットに空きがある場合には、実行可能な単位ジョブリスト中にＤＳＰコアＡ２０でのみ実行可能な単位ジョブ、即ち専用ジョブがあるかどうかを判定する（Ｓ４８）。この結果、専用ジョブがあれば、その専用ジョブとしての単位ジョブをＤＳＰコアＡ２０に割り当てる（Ｓ４９）。その後、Ｓ４２へ戻る。
【０１０６】
一方、Ｓ４８において専用ジョブがなければ、汎用ジョブまたは非対称ジョブがあるかどうかを判定する（Ｓ５０）。その結果、汎用ジョブまたは非対称ジョブがあれば、ＤＳＰコアＡ２０にその単位ジョブを割り当てる（Ｓ５１）。その後、Ｓ４２へ戻る。
【０１０７】
また、Ｓ４７においてＤＳＰコアＡ２０のジョブスロットに空きがない場合、およびＳ５０において汎用ジョブまたは非対称ジョブがない場合には、処理を終了する。
【０１０８】
ここで、Ｓ４３、Ｓ４５、Ｓ４８およびＳ５０での汎用ジョブ、非対称ジョブおよび専用ジョブの有無の判定において同種のジョブが存在した場合には、主走査ライン番号が少ない方の単位ジョブが優先的に選択される。
【０１０９】
例えば、図１１に示すような状態でＤＳＰコアＡ２０のジョブスロットが空いた場合において、実行可能な単位ジョブリストには主走査ライン番号１００のフィルタ処理が存在する。このフィルタ処理は非対称ジョブであるため、Ｓ４５においてＤＳＰコアＢ２１に投入すべきかどうかの判定が行われる。このとき、ＤＳＰコアＡ２０で実行が予定されている単位ジョブである多値ディザ処理の次に実行すべき単位ジョブはないため、実行が予定されている単位ジョブとしては定期投入される単位ジョブである主走査ライン番号１０１のシェーディング補正処理のみが挙げられる。この場合、ＤＳＰコアＢ２１で現在実行中の単位ジョブである主走査ライン番号１００の領域分離処理の平均終了時間が５０２５０と予想されており、主走査ライン番号１０１のシェーディング補正処理が実行可能になる５０５００までには時間２５０の間がある。このため、ＤＳＰコアＢ２１で非対称ジョブであるフィルタ処理を実行した場合のＤＳＰコアＡ２０で実行する場合の時間に対するオーバヘッドである時間８０を考慮したとしても、ＤＳＰコアＢ２１で実行した方が効率がよい。そこで、フィルタ処理は、ＤＳＰコアＢ２１に実行が予定されている単位ジョブとして登録する。
【０１１０】
上記のように、本実施の形態の非対称マルチプロセッサシステムが適用された画像処理部１３では、仕事量の予測可能な複数の単位ジョブ（ここでは各種画像処理）を実行する場合に、単位ジョブの実行に先立って単位ジョブのスケジューリングを行い、ＤＳＰコアＡ２０とＤＳＰコアＢ２１とのどちらでも同じ処理時間で実行可能な単位ジョブについては、相対的に処理可能な単位ジョブの種類に制限のあるＤＳＰコアＢ２１に優先的に割り当てている。
【０１１１】
また、非対称ジョブ、即ちＤＳＰコアＡ２０とＤＳＰコアＢ２１とのどちらでも実行可能であり、かつ実行するプログラムが異なるため実行に要する時間が異なる単位ジョブについては、非対称のプロセッサであるＤＳＰコアＡ２０とＤＳＰコアＢ２１とのうち、現在実行中の単位ジョブの完了を考慮して、その非対称対処ジョブの完了時刻が早くなると予想される方に割り当てるようにしている。
【０１１２】
このように、本実施の形態の非対称マルチプロセッサシステムが適用された画像処理部１３では、仕事量の予測可能な複数の単位ジョブ（ここでは各種画像処理）を実行する場合において、非対称のプロセッサに対して、非対称となっている特性の違い、例えば処理能力の違いに応じて、各単位ジョブを効率よく処理できるように、例えば一つの画像データに対する一連の画像処理全体の処理速度が速くなるように、各単位ジョブを各ＤＳＰコアに割り当てている。したがって、ハードウェアリソースを抑制した構成により、効率よく単位ジョブを処理することができる。
【０１１３】
〔実施の形態３〕
本発明の実施のさらに他の形態を図面に基づいて以下に説明する。
【０１１４】
本実施の形態において、画像形成装置（デジタル複写機）の構成および画像処理部１３の構成は、実施の形態２に示した例と同様である。さらに、画像処理プロセスも図４（ａ）（ｂ）のフローチャートに示したものと同様である。したがって、ここではそれらについての説明を省略する。
【０１１５】
但し、本実施の形態において、図８に示すクロック生成回路Ａ４２とクロック生成回路Ｂ４３は、スケジューリング結果に応じた周波数のクロックを各々のＤＳＰコアに供給する。
【０１１６】
次に、本実施の形態における単位ジョブのスケジューリングについて説明する。
【０１１７】
画像処理部１３における画像処理プロセスでは、汎用ＣＰＵ２４によってシーケンス制御が行われ、各単位ジョブの単位で実行順序が決定され、それら各単位ジョブがＤＳＰコアＡ２０およびＤＳＰコアＢ２１に割り振られる。
【０１１８】
汎用ＣＰＵ２４における単位ジョブのスケジューリングは、画像処理プロセスの実行開始時、および各ＤＳＰコアからの単位ジョブ終了通知毎に実行される。画像処理プロセスでは単位ジョブのスケジューリング自身にも時間がかかるため、汎用ＣＰＵ２４は、ＤＳＰコアの効率的な動作のために、各ＤＳＰコアが実行している単位ジョブの終了後に次に行うべき単位ジョブを決定する。このため、本実施の形態では、各ＤＳＰコアについて現在行うべき単位ジョブと次に行うべき単位ジョブとの２種類がジョブスロットとして扱われ、スケジューリングされる。
【０１１９】
本実施の形態において、画像処理部１３の汎用ＣＰＵ２４は、スケジューリングする際に必要な情報として、図１２（ａ）に示す、各単位ジョブの処理時間の最小・平均・最大と平均消費電力指数、ＤＳＰコアＢ２１についての実行可能情報、次に実行すべき処理に関する情報、および図１２（ｂ）に示す、主走査ライン受け取り間隔といった単位ジョブ情報を有する。
【０１２０】
本実施の形態の画像処理部１３において、汎用ＣＰＵ２４は、実施の形態２の場合と同様、図１３に示すフローで単位ジョブのスケジューリングを行う。
【０１２１】
スケジューリングに際して、汎用ＣＰＵ２４は、まず各ＤＳＰコアが実行可能な単位ジョブリストおよび各ＤＳＰコアにおいて実行が予定されている単位ジョブリストを作成する（Ｓ６１）。
【０１２２】
各ＤＳＰコアが実行可能な単位ジョブリストには、前述の（１）〜（４）の単位ジョブが含まれ、各ＤＳＰコアにおいて実行が予定されている単位ジョブリストには、前述の（５）〜（６）の単位ジョブが含まれる。上記（３）の単位ジョブの他の例として挙げられるものも前述の例の場合と同様である。
【０１２３】
Ｓ６１での単位ジョブリストの作成完了後、汎用ＣＰＵ２４は、ＤＳＰコアＢ２１に割り当てていないジョブスロットがあるかどうか、即ちジョブスロットの空きがあるかどうかを判定する（Ｓ６２）。
【０１２４】
その結果、ジョブスロットの空きがあれば、実行可能な単位ジョブリスト中に、ＤＳＰコアＢ２１自身で実行した場合に他方のコア、即ちＤＳＰコアＡ２０で実行した場合よりも平均電力指数が低い単位ジョブ（電力優位ジョブ）があるかどうかを判定する（Ｓ６３）。電力優位ジョブがあればＤＳＰコアＢ２１にその電力優位ジョブとしての単位ジョブを割り当てる（Ｓ６４）。その後、Ｓ６２へ戻る。また、Ｓ６２においてＤＳＰコアＢ２１にジョブスロットの空きがなければ、Ｓ７２へ移行する。
【０１２５】
Ｓ６３において電力優位ジョブがなければ、ＤＳＰコアＡ２０で現在実行されている単位ジョブの次に実行されるべき単位ジョブ、および実行が予定されている単位ジョブの次に実行されるべき単位ジョブが実行可能な単位ジョブリスト中にあれば、単位ジョブスケジューリングが終了するまで、ＤＳＰコアＢ２１に対するジョブ割り当て判定からそれら単位ジョブを除外する（Ｓ６５）。
【０１２６】
次に、実行可能な単位ジョブリスト中にＤＳＰコアＡ２０およびＤＳＰコアＢ２１のどちらでも同じ処理時間で実行可能な単位ジョブ、即ち汎用ジョブがあるかどうかを判定し（Ｓ６６）、汎用ジョブがあればＤＳＰコアＢ２１にその単位ジョブを割り当てる（Ｓ６７）。その後、Ｓ６２へ戻る。
【０１２７】
Ｓ６６において汎用ジョブがなく、非対称ジョブ、即ちＤＳＰコアＡ２０とＤＳＰコアＢ２１とのどちらでも実行可能であるものの、実行するプログラムが異なるため実行に要する時間が異なる単位ジョブがある場合には、その非対称ジョブをＤＳＰコアＢ２１に割り当てるかどうかについて判定する（Ｓ６８）。
【０１２８】
この判定は前述の例と同様、次のようにして行われる。即ち、本実施の形態では、フィルタ処理が非対称ジョブであり、ＤＳＰコアＡ２０でフィルタ処理コードＡを用いてフィルタ処理を実施する場合の平均実行時間１２０と、ＤＳＰコアＢ２１でフィルタ処理コードＢを用いてフィルタ処理を実施する場合の平均実行時間２００との差は時間８０である。そこで、この時間８０内にＤＳＰコアＢ２１で実行可能な汎用ジョブが発生しないと予想される場合にのみ、ＤＳＰコアＢ２１にフィルタ処理を割り当てる（Ｓ６９）。その後、Ｓ６２へ戻る。
【０１２９】
Ｓ６８においてＤＳＰコアＢ２１に対して非対称ジョブの割り当てが行われなければ、現在ＤＳＰコアＢ２１に単位ジョブが割り当てられているかどうかの判定を行い（Ｓ７０）、単位ジョブが未割り当てであればＤＳＰコアＢ２１をスリープモードに移行させる（Ｓ７１）。
【０１３０】
ＤＳＰコアＢ２１に対するスリープモードは、次にＤＳＰコアＢ２１に単位ジョブの割り当てが行われるまで汎用ＣＰＵ２４がクロック生成回路Ｂ４３に対して指示を与え、クロック生成回路Ｂ４３がＤＳＰコアＢ２１に対するクロック信号の停止を行うことで実現する。これによりＤＳＰコアＢ２１の動作を停止し、無駄な消費電力の削減を行う。
【０１３１】
なお、スリープモードの実現方法としては、クロック周波数の低減やＤＳＰコアＢ２１に供給する電源電圧の変更なども可能である。
【０１３２】
続いてＤＳＰコアＡ２０にジョブスロットの空きがあるかどうかを判定し（Ｓ７２）、ＤＳＰコアＡ２０にジョブスロットの空きがあれば、実行可能な単位ジョブリスト中に、ＤＳＰコアＡ２０についての電力優位ジョブがあるかどうかを判定する（Ｓ７３）。
【０１３３】
その結果、電力優位ジョブがあればＤＳＰコアＡ２０にその電力優位ジョブとしての単位ジョブを割り当てる（Ｓ７４）。その後、Ｓ６２へ戻る。
【０１３４】
一方、電力優位ジョブがなければ、ＤＳＰコアＢ２１で現在実行されている単位ジョブの次に実行されるべき単位ジョブ、および実行が予定されている単位ジョブの次に実行されるべき単位ジョブが実行可能な単位ジョブリスト中にあれば、単位ジョブスケジューリングが終了するまで、ＤＳＰコアＡ２０に対するジョブ割り当て判定からそれら単位ジョブを除外する（Ｓ７５）。
【０１３５】
次に、実行可能な単位ジョブリスト中にＤＳＰコアＡでのみが実行可能な単位ジョブ、即ち専用ジョブがあるかどうかを判定し（Ｓ７６）、専用ジョブがあればＤＳＰコアＡ２０にその専用ジョブとしての単位ジョブを割り当てる（Ｓ７７）。その後、Ｓ６２へ戻る。
【０１３６】
Ｓ７６において専用ジョブがなければ、汎用ジョブまたは非対称ジョブがあるかどうかを判定する（Ｓ７８）。その結果、汎用ジョブまたは非対称ジョブがあればＤＳＰコアＡ２０にその単位ジョブを割り当てる（Ｓ７９）。その後、Ｓ６２へ戻る。
【０１３７】
Ｓ７８において汎用ジョブまたは非対称ジョブがなければ、現在ＤＳＰコアＡ２０に単位ジョブが割り当てられているかどうかの判定を行い（Ｓ８０）、単位ジョブが未割り当てであればＤＳＰコアＡ２０をスリープモードに移行させる（Ｓ８１）。
【０１３８】
ＤＳＰコアＡ２０に対するスリープモードは、次にＤＳＰコアＡ２０に単位ジョブの割り当てが行われるまで汎用ＣＰＵ２４がクロック生成回路Ａ４４に対して指示を与え、ＤＳＰコアＡ２０に対するクロック信号の停止を行うことで実現する。これによりＤＳＰコアＡ２０の動作を停止し、無駄な消費電力の削減を行う。
【０１３９】
スリープモードの実現方法としてはクロック周波数の低減やＤＳＰコアＡ２０に供給する電源電圧の変更なども可能である。
【０１４０】
なお、Ｓ６３、Ｓ６６、Ｓ６８、Ｓ７３、Ｓ７６、Ｓ７８における汎用ジョブ、非対称ジョブ、専用ジョブの有無の判定で同種のジョブが存在した場合、主走査ライン番号が少ない方の単位ジョブが優先的に選択される。
【０１４１】
例えば、図１４に示すような状態でＤＳＰコアＢ２１のジョブスロットが空いた場合、実行可能な単位ジョブリストには主走査ライン番号１４９のフィルタ処理と主走査ライン番号１５０の領域分離処理とが存在する。また、実行が予定されている単位ジョブとしては定期投入される単位ジョブである主走査ライン番号１５１のシェーディング補正処理のみが挙げられる。この場合、フィルタ処理はＤＳＰコアＢ２１の電力優位ジョブではない一方、領域分離処理はＤＳＰコアＢ２１の電力優位ジョブである。したがって、領域分離処理はＤＳＰコアＢ２１で実行した場合に電力効率がよい。そこで、主走査ライン番号１５０の領域分離処理を、ＤＳＰコアＢ２１に実行が予定されている単位ジョブとして登録する。
【０１４２】
上記のように、本実施の形態の非対称マルチプロセッサシステムが適用された画像処理部１３では、仕事量の予測可能な複数の単位ジョブ（ここでは各種画像処理）を実行する場合に、単位ジョブの実行に先立って単位ジョブのスケジューリングを行い、ＤＳＰコアＡ２０とＤＳＰコアＢ２１とのどちらでも同じ処理時間で実行可能な単位ジョブについては、相対的に処理可能な単位ジョブの種類に制限のあるＤＳＰコアＢ２１に優先的に割り当てている。
【０１４３】
また、非対称ジョブ、即ちＤＳＰコアＡ２０とＤＳＰコアＢ２１とのどちらでも実行可能であり、かつ実行するプログラムが異なるため実行に要する時間が異なる単位ジョブについては、非対称のプロセッサであるＤＳＰコアＡ２０とＤＳＰコアＢ２１とのうち、現在実行中の単位ジョブの完了を考慮して、その非対称対処ジョブの完了時刻が早くなると予想される方に割り当てるようにしている。
【０１４４】
また、ＤＳＰコアＡ２０で実行する場合とＤＳＰコアＢ２１で実行する場合とでは、消費電力が異なる電力優位ジョブについては、消費電力が少なくなるＤＳＰコアＢ２１に対して優先的に割り当てている。
【０１４５】
さらに、ＤＳＰコアＡ２０およびＤＳＰコアＢ２１については、割り当てる単位ジョブがない場合に、スリープモードに移行させ、消費電力の低減を図っている。
【０１４６】
このように、本実施の形態の非対称マルチプロセッサシステムが適用された画像処理部１３では、仕事量の予測可能な複数の単位ジョブ（ここでは各種画像処理）を実行する場合において、非対称のプロセッサに対して、非対称となっている特性の違い、例えば処理能力の違いに応じて、各単位ジョブを効率よく処理できるように、例えば一つの画像データに対する一連の画像処理全体の処理速度が速くなるように、各単位ジョブを各ＤＳＰコアに割り当てている。したがって、ハードウェアリソースを抑制した構成により、効率よく単位ジョブを処理することができる。
【０１４７】
また、単位ジョブの割り当てについては、消費電力の低減を考慮して行っているので、省電力化が可能である。
【０１４８】
なお、以上の実施の形態に示した非対称マルチプロセッサシステムが適用される画像処理装置は、その形態について特に限定されず、非対称マルチプロセッサシステムを使用して各種画像処理を行う機能を備えたものであればよく、例えば基板上に上記機能を実現し得る部品が搭載された画像処理基板であってもよい。
【０１４９】
また、画像形成装置は、デジタル複写機に限らず、上記画像処理装置を備えた、各種プリンタ類、あるいは印刷機能を備えていない装置、例えば画像処理済みの画像を表示画面に表示する装置等も含み得る。
【０１５０】
また、以上の実施の形態において、単位ジョブ間の依存関係とは、各単位ジョブの実行順序に限定されず、次のように定義することができる。即ち、単位ジョブ間の依存関係とは、ある単位ジョブの実行状態、例えば未実行・実行中・実行完了済みといった情報、実行中であれば実行開始時間、実行終了予定時間といった情報によって、他の単位ジョブの実行可否が決定されるという関係を含んでいる。
【０１５１】
また、以上の実施の形態において、各ＤＳＰコアに対する単位ジョブのスケジューリングは、汎用ＣＰＵ２４が行っているものの、単位ジョブのスケジューリングによるＤＳＰコアの処理性能低下が問題にならなければ、いずれかのＤＳＰコアで行ってもよい。
【０１５２】
また、以上の実施の形態において、非対称となるＤＳＰコアＡ２０とＤＳＰコアＢ２１との関係は、ＤＳＰコアＡ２０の命令セットはＤＳＰコアＢ２１の命令セットのスーパーセット、即ち両者の命令セットが包括関係にある場合を例にとって説明を行っている。しかしながら、ＤＳＰコアＡ２０の命令セット中の一部がＤＳＰコアＢ２１の命令セットの一部を構成し、それとは別におのおののＤＳＰコアがそのＤＳＰコアでのみ実行可能な命令セットを持つ場合、即ち命令セットが重複関係にある場合も本発明の範囲に含み得る。
【０１５３】
また、以上の実施の形態の画像形成装置が備えている非対称マルチプロセッサシステムにおいて、非対称性とは、複数個のプロセッサ中、一つのプロセッサで適用することができる特性が少なくとも他の一つのプロセッサでは適用できないことを意味しており、具体的には次のように、
（１）命令セットの不一致（完全不一致、包括関係、重複関係）
（２）ローカルメモリの不一致（サイズの違い、構成の違い）
（３）処理性能の不一致（クロック周波数の違い、実行サイクルの違い、バス性能の違い）
（４）消費電力の不一致
（５）アクセス可能な周辺機能（浮動小数点ユニットや特定機能のアクセラレータなど）の違い
などが挙げられる。
【０１５４】
本発明の非対称マルチプロセッサシステムは、複数のプロセッサを含んでおり、少なくとも第１のプロセッサと第２のプロセッサとが非対称であり、仕事量の予測可能な複数の単位ジョブを単位ジョブ毎に複数のプロセッサに振り分けて行わせる非対称マルチプロセッサシステムにおいて、各単位ジョブを前記複数のプロセッサに割り当てる際の参照情報となる単位ジョブ処理情報を作成する単位ジョブ処理情報作成手段と、前記単位ジョブ処理情報に基づいて、各単位ジョブの実行順序とそれら単位ジョブの割り当て先プロセッサとを決定する単位ジョブスケジュール作成手段と、前記単位ジョブスケジュール作成手段での決定結果に基づいて、各単位ジョブの実行を前記複数のプロセッサに対して指示する単位ジョブ実行指示手段とを備えている構成である。
【０１５５】
【発明の効果】
以上のように、本発明の非対称マルチプロセッサシステムは、複数のプロセッサを含んでおり、少なくとも第１のプロセッサと第２のプロセッサとが非対称であり、仕事量の予測可能な複数の単位ジョブを単位ジョブ毎に複数のプロセッサに振り分けて行わせる非対称マルチプロセッサシステムにおいて、各単位ジョブを前記複数のプロセッサに割り当てる際の参照情報となる単位ジョブ処理情報を作成する単位ジョブ処理情報作成手段と、前記単位ジョブ処理情報に基づいて、各単位ジョブの実行順序とそれら単位ジョブの割り当て先プロセッサとを決定する単位ジョブスケジュール作成手段とを備えている構成である。
【０１５６】
これにより、非対称となっている各プロセッサの性能を適切に利用して、ハードウェアリソースを抑制しつつ、高い処理性能を実現することができる。
【０１５７】
上記の非対称マルチプロセッサシステムは、前記単位ジョブ処理情報が各プロセッサでの消費電力情報を含んでおり、前記単位ジョブスケジュール作成手段が、消費電力情報に基づいて、消費電力が少なくなるように各単位ジョブの割り当て先プロセッサを決定する構成としてもよい。
【０１５８】
上記の構成によれば、消費電力情報が各プロセッサ上で実行する単位ジョブのスケジューリングに反映される。これにより、効率よく消費電力を低減することができる。
【図面の簡単な説明】
【図１】本発明の実施の一形態の非対称マルチプロセッサシステムが適用された、デジタル複写機の画像処理装部の単位ジョブスケジューリング動作を示すフローチャートである。
【図２】本発明の実施の一形態における非対称マルチプロセッサシステムが適用されたデジタル複写機の構成を示すブロック図である。
【図３】図２に示した画像処理装部の構成を示すブロック図である。
【図４】図４（ａ）は図３に示した画像処理装部が行う画像処理プロセスを示す概略のフローチャート、図４（ｂ）は図４（ａ）の１ライン処理プロセスの詳細を示すフローチャートである。
【図５】図５（ａ）は、図３に示した汎用ＣＰＵが単位ジョブスケジューリングを行う際に用いる各単位ジョブに関する情報の説明図、図５（ｂ）は、各単位ジョブを実行する際の主走査ライン受け取り間隔の情報を示す説明図である。
【図６】図３に示した汎用ＣＰＵによる単位ジョブスケジューリング動作の一例を示す説明図である。
【図７】図３に示した汎用ＣＰＵによる単位ジョブスケジューリング動作の他の例を示す説明図である。
【図８】本発明の実施の他の形態における非対称マルチプロセッサシステムが適用されたデジタル複写機の画像処理部の構成を示すブロック図である。
【図９】図９（ａ）は、図８に示した汎用ＣＰＵが単位ジョブスケジューリングを行う際に用いる各単位ジョブに関する情報の説明図、図９（ｂ）は、各単位ジョブを実行する際の主走査ライン受け取り間隔の情報を示す説明図である。
【図１０】図８に示した画像処理装部の単位ジョブスケジューリング動作を示すフローチャートである。
【図１１】図８に示した汎用ＣＰＵによる単位ジョブスケジューリング動作の一例を示す説明図である。
【図１２】図１２（ａ）は、本発明の実施のさらに他の形態における非対称マルチプロセッサシステムが適用された画像処理部の汎用ＣＰＵが単位ジョブスケジューリングを行う際に用いる各単位ジョブに関する情報の説明図、図１２（ｂ）は、各単位ジョブを実行する際の主走査ライン受け取り間隔の情報を示す説明図である。
【図１３】本発明の実施のさらに他の形態における画像処理装部の単位ジョブスケジューリング動作を示すフローチャートである。
【図１４】図１３の動作を行う画像処理部の汎用ＣＰＵによる単位ジョブスケジューリング動作の一例を示す説明図である。
【符号の説明】
１３    画像処理部（画像処理装置）
２０    ＤＳＰコアＡ（プロセッサ）
２１    ＤＳＰコアＢ（プロセッサ）
２２    ４０ＫＢローカルＲＡＭ（メモリ）
２３    １６ＫＢローカルＲＡＭ（メモリ）
２４    汎用ＣＰＵ
３１    外部ＲＯＭ
４１    画像処理チップ
４２    クロック生成回路Ａ
４３    クロック生成回路Ｂ
【図１】
2004252900.tif 000003
【図２】
2004252900.tif 000004
【図３】
2004252900.tif 000005
【図４】
2004252900.tif 000006
【図５】
2004252900.tif 000007
【図６】
2004252900.tif 000008
【図７】
2004252900.tif 000009
【図８】
2004252900.tif 000010
【図９】
2004252900.tif 000011
【図１０】
2004252900.tif 000012
【図１１】
2004252900.tif 000013
【図１２】
2004252900.tif 000014
【図１３】
2004252900.tif 000015
【図１４】
2004252900.tif 000016