(57)【要約】【課題】  動作周波数を上限周波数までの範囲内で動的に切り替えることにより、省電力を図りながら処理効率を向上させることができるようにする。【解決手段】  ハードウェア（ＨＷ）プロファイル保持部１１３は、プロセッサ１０１の定格周波数及び上限周波数を含むプロファイル情報を保持する。クロック周波数管理部１０２は、演算回路１１１での画像データの処理に際し、プロセッサ１０１の演算動作時間とアイドル時間とから該プロセッサ１０１の稼働率を検出し、該稼働率が１００パーセントとなった時、ＨＷプロファイル保持部１１３に保持された定格周波数と上限周波数に基づき、該プロセッサ１０１の動作周波数を、上限周波数の範囲内で、かつ、定格周波数よりも高い値に可変設定する。【選択図】  図２
2009230670.tif 000002
【特許請求の範囲】
【請求項１】
設定された動作周波数のクロックで動作し、入力情報を処理するプロセッサと、
前記プロセッサの定格周波数及び上限周波数を含む動作特性を保持する保持手段と、
前記入力情報処理時の前記プロセッサの稼働率を検出する稼働率検出手段と、
前記稼働率検出手段により検出された稼働率に基づき、前記プロセッサが高負荷状態であるか否かを判定する判定手段と、
前記判定手段により前記プロセッサが高負荷状態であると判定された場合、前記動作周波数を、前記保持手段に保持される前記上限周波数の範囲内で、かつ、前記定格周波数よりも高い値に可変設定する可変設定手段と
を具備するプロセッサシステム。
【請求項２】
前記判定手段は、
前記稼働率検出手段により検出された稼働率が１００パーセントの時に前記プロセッサが高負荷状態であると判定し、
前記可変設定手段は、
前記動作周波数を上限周波数に設定する
請求項１記載のプロセッサシステム。
【請求項３】
前記プロセッサの発熱温度を検出する温度検出手段
を具備し、
前記保持手段は、
前記プロセッサの動作保証温度情報を更に保持し、
前記可変設定手段は、
前記温度検出手段により検出された前記プロセッサの温度が前記動作保証温度を超える場合、前記動作周波数を設定中の周波数よりも低い値に低下させる
請求項１または２記載のプロセッサシステム。
【請求項４】
設定された動作周波数のクロックで動作し、入力情報を処理する複数のプロセッサと、
前記各プロセッサの定格周波数及び上限周波数を含む動作特性をそれぞれ保持する保持手段と、
前記入力情報処理時の前記各プロセッサの稼働率をそれぞれ検出する稼働率検出手段と、
前記稼働率検出手段により検出された前記各プロセッサの稼働率に基づき、前記複数のプロセッサによる全体の処理効率低下の原因となるプロセッサが存在するか否かを判定する判定手段と、
前記判定手段により前記全体の処理効率低下の原因となるプロセッサが存在すると判定された場合、該プロセッサの前記動作周波数を、前記保持手段に保持される当該プロセッサの前記上限周波数の範囲内で、かつ、前記定格周波数よりも高い値に可変設定する可変設定手段と
を具備するプロセッサシステム。
【請求項５】
前記各プロセッサは、前記入力情報を順次処理するために直列に接続され、
前記判定手段は、
前記直列接続における上流または下流側のプロセッサの稼働率が閾値を超え、かつ、該上流側のプロセッサの稼働率と下流側のプロセッサの稼働率との差が所定の値を超える場合に、該上流または下流側のプロセッサが前記全体の処理効率低下の原因となるプロセッサであると判定する
請求項４記載のプロセッサシステム。
【請求項６】
前記各プロセッサは、前記入力情報を分散処理するために並列に接続され、
前記判定手段は、
各プロセッサのうちのいずれかのプロセッサの稼働率が閾値を超え、かつ、他のプロセッサの稼働率との差が所定の値を超える場合に、該稼働率が閾値を超えたプロセッサが前記全体の処理効率低下の原因となるプロセッサであると判定する
請求項４記載のプロセッサシステム。
【請求項７】
前記各プロセッサの発熱温度をそれぞれ検出する複数の温度検出手段
を具備し、
前記保持手段は、
前記各プロセッサの動作保証温度情報をそれぞれ保持し、
前記可変設定手段は、
前記温度検出手段により検出された前記動作周波数を可変設定したプロセッサの温度が前記動作保証温度を超える場合、当該プロセッサに設定する前記動作周波数を設定中の周波数よりも低い値に低下させる
請求項４乃至６のいずれか記載のプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサシステムに関する。
【背景技術】
【０００２】
マイクロプロセッサを用いる各種の情報処理装置において、マイクロプロセッサによる情報処理効率を高めるための種々の技術が提案されている。
【０００３】
例えば、下記特許文献１には、マルチプロセッサシステムにおいて、処理効率を低下させることなく、全体の消費電力を低下させるために、待機中のプロセッサのみを規格で保証されている最低動作周波数に近い周波数で稼動する技術が開示されている。
【０００４】
また、下記特許文献２には、処理すべきデータ量に応じて高速処理が必要か否かを判断し、該判断結果に基づきクロック周波数を制御する手段を備え、低消費電力化、低輻射ノイズ化を実現する情報処理装置が開示されている。
【特許文献１】特開平４−８８５１５号公報
【特許文献２】特開平５−２７８６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、高負荷時に、動作周波数を上限周波数までの範囲内で動的に切り替えることにより、省電力を図りながら処理効率を向上させることができるプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１記載のプロセッサシステムの発明は、設定された動作周波数のクロックで動作し、入力情報を処理するプロセッサと、前記プロセッサの定格周波数及び上限周波数を含む動作特性を保持する保持手段と、前記入力情報処理時の前記プロセッサの稼働率を検出する稼働率検出手段と、前記稼働率検出手段により検出された稼働率に基づき、前記プロセッサが高負荷状態であるか否かを判定する判定手段と、前記判定手段により前記プロセッサが高負荷状態であると判定された場合、前記動作周波数を、前記保持手段に保持される前記上限周波数の範囲内で、かつ、前記定格周波数よりも高い値に可変設定する可変設定手段とを具備する。
【０００７】
請求項２記載の発明は、上記請求項１記載の発明において、前記判定手段は、前記稼働率検出手段により検出された稼働率が１００パーセントの時に前記プロセッサが高負荷状態であると判定し、前記可変設定手段は、前記動作周波数を上限周波数に設定する。
【０００８】
請求項３記載の発明は、上記請求項１または２記載の発明において、前記プロセッサの発熱温度を検出する温度検出手段を具備し、前記保持手段は、前記プロセッサの動作保証温度情報を更に保持し、前記可変設定手段は、前記温度検出手段により検出された前記プロセッサの温度が前記動作保証温度を超える場合、前記動作周波数を設定中の周波数よりも低い値に低下させる。
【０００９】
請求項４記載のプロセッサシステムの発明は、設定された動作周波数のクロックで動作し、入力情報を処理する複数のプロセッサと、前記各プロセッサの定格周波数及び上限周波数を含む動作特性をそれぞれ保持する保持手段と、前記入力情報処理時の前記各プロセッサの稼働率をそれぞれ検出する稼働率検出手段と、前記稼働率検出手段により検出された前記各プロセッサの稼働率に基づき、前記複数のプロセッサによる全体の処理効率低下の原因となるプロセッサが存在するか否かを判定する判定手段と、前記判定手段により前記全体の処理効率低下の原因となるプロセッサが存在すると判定された場合、該プロセッサの前記動作周波数を、前記保持手段に保持される当該プロセッサの前記上限周波数の範囲内で、かつ、前記定格周波数よりも高い値に可変設定する可変設定手段とを具備する。
【００１０】
請求項５記載の発明は、上記請求項４記載の発明において、前記各プロセッサは、前記入力情報を順次処理するために直列に接続され、前記判定手段は、前記直列接続における上流または下流側のプロセッサの稼働率が閾値を超え、かつ、該上流側のプロセッサの稼働率と下流側のプロセッサの稼働率との差が所定の値を超える場合に、該上流または下流側のプロセッサが前記全体の処理効率低下の原因となるプロセッサであると判定する。
【００１１】
請求項６記載の発明は、上記請求項４記載の発明において、前記各プロセッサは、前記入力情報を分散処理するために並列に接続され、前記判定手段は、各プロセッサのうちのいずれかのプロセッサの稼働率が閾値を超え、かつ、他のプロセッサの稼働率との差が所定の値を超える場合に、該稼働率が閾値を超えたプロセッサが前記全体の処理効率低下の原因となるプロセッサであると判定する。
【００１２】
請求項７記載の発明は、上記請求項４乃至６のいずれか記載の発明において、前記各プロセッサの発熱温度をそれぞれ検出する複数の温度検出手段を具備し、前記保持手段は、前記各プロセッサの動作保証温度情報をそれぞれ保持し、前記可変設定手段は、前記温度検出手段により検出された前記動作周波数を可変設定したプロセッサの温度が前記動作保証温度を超える場合、当該プロセッサに設定する前記動作周波数を設定中の周波数よりも低い値に低下させる。
【発明の効果】
【００１３】
請求項１記載のプロセッサステムの発明によれば、プロセッサが高負荷状態になった時、定格周波数を超え、上限周波数までの範囲内で動作周波数を設定することによりデータ処理効率を向上させることができる。
【００１４】
請求項２記載の発明によれば、請求項１記載の発明において、プロセッサの稼働率が１００パーセントになった際に、上限周波数を動作周波数として設定してデータの処理効率を向上させることができる。
【００１５】
請求項３記載の発明によれば、請求項１または２記載の発明において、定格周波数を超える動作周波数でデータ処理する際に、プロセッサが動作保証温度を超えるまで発熱することを防止できる。
【００１６】
請求項４記載のプロセッサステムの発明によれば、マルチプロセッサシステムのあるプロセッサが高負荷状態になった時、該プロセッサを定格周波数を超え、上限周波数までの範囲内の動作周波数で動作させてボトルネックを解消し、他のプロセッサの稼働率アップによりシステム全体の処理効率を向上させることができる。
【００１７】
請求項５記載の発明によれば、請求項４記載の発明において、入力データをパイプライン処理する直列に接続された複数のプロセッサ間で上流または下流側がボトルネックとなってシステム全体の稼働率が低下することを解消できる。
【００１８】
請求項６記載の発明によれば、請求項４記載の発明において、入力データを分散処理する並列に接続された複数のプロセッサ間でいずれかのプロセッサがボトルネックとなってシステム全体の稼働率が低下することを解消できる。
【００１９】
請求項７記載の発明によれば、請求項４乃至６のいずれか記載の発明において、マルチプロセッサシステムを構成する各プロセッサを、定格周波数を超え、上限周波数までの範囲内の動作周波数で動作させてデータ処理する際、該プロセッサが動作保証温度を超えて発熱することを抑制し、システム全体の処理効率向上を図ることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態について添付図面を参照して詳細に説明する。
【００２１】
図１は、本発明に係わる画像形成装置１０の機能構成を示すブロック図である。
【００２２】
この画像形成装置１０は、例えば、原稿読取（スキャン）、複写（コピー）、印刷（プリント）、ＦＡＸ（ファクシミリ通信）等の機能を有する複合機を想定したものであり、図１に示すように、所定の読取位置（プラテン上）に載置される原稿Ｇの画像を読取り、電気的な画像信号（画像データ）に変換する読取部１２、読取部１２により原稿Ｇを読取走査して得られた画像データや、外部装置〔この例では、ＰＣ（パーソナル・コンピュータ）６０〕から入力された画像データ、あるいは、動作プログラム等の各種情報を記憶する記憶部１３、記憶部１３に記憶された画像データを画像処理して得られる画像信号（印刷データ）に基づき電子写真プロセスを実行して記録媒体（記録用紙）に該印刷データに対応する画像を形成（印刷）する画像形成部１４、タッチパネル機能を有する大型ビットマップディスプレイ等から成る表示／操作部１５、スキャン、コピー、プリント及びＦＡＸ等の各機能に係わる該当各部の動作制御等、装置全体の制御を行なう制御部１６、ＰＣ６０との間での通信インタフェースを司る外部インタフェース（Ｉ／Ｆ）部１７を備えて構成される。
【００２３】
この画像形成装置１０において、制御部１６には、記憶部１３から画像データ（原稿スキャンデータや、ＰＣから印刷指示されたデータ）を読出し、該画像データを画像処理して画像形成部１４での画像形成プロセスへと出力する印刷データを生成する画像処理機能（画像処理部１６１）が備わる。
【００２４】
この制御部１６における画像処理機能は、１または複数のマイクロプロセッサ（超小型処理装置：以下、プロセッサ）で構成されるプロセッサシステムを用いて実現される。
【００２５】
このプロセッサシステムでは、画像データの処理効率を高めるための構成上の特徴として、使用するプロセッサの定格周波数や、上限周波数を含むハードウェア（ＨＷ）プロファイル情報を保持する一方、画像データの処理に際し、プロセッサの演算動作時間とアイドル時間とから該プロセッサの稼働率を検出すると共に、該検出された稼働率に基づきプロセッサが高負荷状態であると判定された場合は、プロファイル情報として保持されている定格周波数と上限周波数を参照し、該プロセッサの動作周波数を、上限周波数の範囲内で、かつ、定格周波数よりも高い値に動的に可変設定するクロック周波数可変設定処理機能を備えている。
【００２６】
以下、図１に示す画像形成装置１０に適用する本発明のプロセッサシステムの構成及び処理動作について各実施例を挙げて詳細に説明する。
【実施例１】
【００２７】
図２は、実施例１に係わるプロセッサシステム１００の機能構成を示すブロック図である。
【００２８】
このプロセッサシステム１００は、情報処理命令に基づき外部記憶装置２００から処理対象の情報を取り出して該情報の処理を行うプロセッサ１０１、該プロセッサ１０１に対する動作周波数の設定、稼働率の監視、稼働率に応じた動作周波数の動的な可変設定制御等、クロック周波数の管理を行うクロック周波数管理部１０２、プロセッサ１０１に密着（例えば、表面に）して設けられる温度検知センサから成り、該プロセッサ１０１の表面温度に対応する温度検知出力をクロック周波数管理部１０２に出力する温度検出部１０３から構成される。
【００２９】
プロセッサ１０１には、外部記憶装置２００からの入力情報を演算処理する演算回路１１１、クロック周波数管理部１０２により設定される動作周波数に対応するクロックを生成し、演算回路１１１に動作クロックとして供給するクロック生成部１１２、不揮発性メモリから成り、プロセッサ１０１の定格周波数、実力動作周波数の上限値（上限周波数）、下限値、動作電圧、動作保証温度等のＨＷプロファイル（動作特性）情報を保持するＨＷプロファイル保持部１１３が備わる。
【００３０】
外部記憶装置２００は、このプロセッサシステム１００を実装する画像形成装置１０（図１参照）の記憶部１３に相当し、上述した原稿スキャンデータや、ＰＣから印刷指示されたデータ等、処理対象となる画像データが一時的に記憶される。
【００３１】
演算回路１１１は、このプロセッサシステム１００を実装する画像形成装置１０（図１参照）の制御部１６における画像処理部１６１に相当し、クロック生成部１１２により生成されたクロックに基づき動作し、情報処理命令（例えば、コピー開始指令、印刷開始指令等）に基づき、外部記憶装置２００から上記画像データを読み込んで該画像データから印刷データを生成する画像処理を行う。
【００３２】
クロック周波数管理部１０２は、演算回路１１１における画像データの処理に際し、プロセッサ１０１の演算動作時間とアイドル時間とから該プロセッサ１０１の稼働率を検出する機能、該検出された稼働率をその時の動作周波数と共に稼働率管理テーブル（ＴＢ）１２１を用いて管理する機能、該検出された（管理機能により管理される）稼働率に基づき該プロセッサ１０１が高負荷状態であるか否かを判定する機能、高負荷状態であると判定された場合、ＨＷプロファイル保持部１１３に保持されている定格周波数と上限周波数を参照し、プロセッサ１０１の動作周波数を、上限周波数の範囲内で定格周波数よりも高い値に動的に可変設定するクロック周波数可変設定機能を備えている。
【００３３】
また、上記クロック周波数可変設定機能については、温度検出部１０３からの温度検知出力に基づきプロセッサ１０１の温度を検出し、該検出された温度がＨＷプロファイル保持部１１３に保持されている動作保証温度を超えないように該プロセッサ１０１のクロック周波数（動作周波数）を可変制御する機能も併せ持っている。
【００３４】
図３は、ＨＷプロファイル保持部１１３を用いたプロファイル情報の管理形態の一例を表図である。
【００３５】
図３に示すように、本実施例によれば、ＨＷプロファイル保持部１１３は、プロセッサ１０１の定格周波数（＝５００ＭＨｚ）、上限周波数実力値（＝６００ＭＨｚ）、動作保証電圧（＝１．６Ｖ）、動作保証温度（＝摂氏１２０度）の各情報をプロファイル情報として保持する。
【００３６】
図３に例示するプロファイル情報からも分かるように、本実施例では、プロセッサ１０１に規定される動作周波数（定格周波数）とは別に、設計マージンも含めた動作周波数（上限周波数）が予め測定され、ＨＷプロファイル保持部１１３に保持されている。
【００３７】
設計マージンとは、製造時のばらつきによりプロセッサの動作限界周波数がばらついても仕様を満たすようにとられたマージンを指している。
【００３８】
図４は、本実施例に係わるプロセッサシステム１００におけるデータ処理動作を示すフローチャートである。
【００３９】
このデータ処理動作は、上述したコピー開始指令等の情報処理命令を受けることにより開始される。
【００４０】
上記情報処理命令を受けると、クロック周波数管理部１０２は、クロック生成部１１２に対して通常クロック（定格周波数）の設定を指示し（ステップＳ１０１）、クロック生成部１１２は、該設定指示に基づき定格周波数（５００ＭＨｚ）のクロックを発生し、演算回路１１１に送出（供給）する。
【００４１】
これにより、演算回路１１１は、クロック生成部１１２から供給される定格周波数（５００ＭＨｚ）のクロックで動作し、処理対象データの入力を待つ（ステップＳ１０２）。
【００４２】
ここで、外部記憶装置２００から処理対象のデータが入力されると（ステップＳ１０２ＹＥＳ）、演算回路１１１は、設定中の通常クロックで動作して該入力データの処理を実行する（ステップＳ１０３）。
【００４３】
また、クロック周波数管理部１０２は、上記ステップＳ１０３でデータの処理が行われるのに合わせて、演算回路１１１の動作クロックの周波数可変設定制御を実行する（ステップＳ１０４）。
【００４４】
このステップＳ１０４での動作クロックの周波数可変設定制御においては、後で図５を参照して詳しく説明するように、プロセッサ１０１の稼働率がチェックされ、該稼働率に基づき高負荷状態であると判定される場合には、クロック生成部１１２に通常クロック（定格周波数）よりも高い周波数の設定を指示して演算回路１１１に供給する動作クロックを該設定指示した周波数（定格周波数を超える周波数）に可変制御する。
【００４５】
上記の如く、演算回路１１１でのデータ処理の実行（ステップＳ１０３）に合わせて動作周波数の可変設定制御（ステップＳ１０４）を実施しながら、クロック周波数管理部１０２は、上記入力データの処理が終了したか否かを監視する（ステップＳ１０５）。
【００４６】
ここで、処理が終了していないと判断された場合（ステップＳ１０５ＮＯ）、ステップＳ１０３のデータ処理、及び該データ処理に合わせたステップＳ１０４での動作周波数可変設定制御を実行すると共に、その後も、該データ処理が終了していないと判断されるうち（ステップＳ１０５ＮＯ）はステップＳ１０３、１０４のデータ処理、及び動作周波数可変設定制御を繰返し実施する。
【００４７】
そして、この間、データ処理が終了したと判断されると（ステップＳ１０５ＹＥＳ）、クロック周波数管理部１０２は、設定している動作クロックが通常クロック（定格周波数のクロック）である否かをチェックする（ステップＳ１０６）。
【００４８】
ここで、動作クロックが通常クロックでない（上記ステップＳ１０４で、動作周波数が、定格周波数を超える周波数に可変設定されていることにより）と判定された場合（ステップＳ１０６ＮＯ）は、該動作クロックを通常クロックに設定し直す処理を行った後（ステップＳ１０７）、一連の処理を終了し、動作クロックが通常クロックであると判定された場合（ステップＳ１０６ＹＥＳ）は、そのまま処理を終了する。
【００４９】
次に、図４のステップＳ１０４における動作周波数可変設定制御の処理動作について図５に示すフローチャートを参照して説明する。
【００５０】
図５に示すように、この動作周波数可変設定制御は、図４に示す一連の処理中、ステップＳ１０３においてデータ処理が実行される毎に実施される。
【００５１】
すなわち、図４のステップＳ１０３でデータ処理が実行されると、クロック周波数管理部１０２は、図５に示すフローチャートに従い、所定のインターバル時間毎に該データ処理動作時におけるプロセッサ１０１の稼働時間とアイドル時間を検出する（ステップＳ２０１，Ｓ２０２）。
【００５２】
その際、上記インターバル時間が経過したか否かをチェックし（ステップＳ２０３）、該インターバル時間が経過するまでは（ステップＳ２０３ＮＯ）、ステップＳ２０１，Ｓ２０２でのプロセッサ１０１の稼働時間とアイドル時間の検出処理を続ける。
【００５３】
そして、この間、上記インターバル時間が経過した場合（ステップＳ２０３ＹＥＳ）、クロック周波数管理部１０２は、上記ステップＳ２０１で検出されたプロセッサ１０１の稼働時間と上記ステップＳ２０２で検出されたアイドル時間の比から当該プロセッサ１０１の稼働率を検出する（ステップＳ２０４）。
【００５４】
次いで、該検出された稼働率に基づき、高負荷状態であるか否かを判定する。
【００５５】
本実施例では、高負荷状態であるか否かを判定する目安（閾値）として、例えば、稼働率が１００パーセントであるか否かをチェックする（ステップＳ２０５）。
【００５６】
ここで稼働率が１００パーセントでない場合、クロック周波数管理部１０２は、クロック生成部１１２に指示して演算回路１１１に供給する動作クロックの周波数を当該稼働率に応じて低下させるように可変制御し（ステップＳ２０８）、図４のステップ１０５へ移行する。
【００５７】
そして、図４のステップＳ１０５で処理が終了していないと判断された場合（ステップＳ１０５ＮＯ）、ステップＳ２０１に戻り、以後、該ステップＳ２０１以降のプロセッサ１０１の稼働率算出に係わる各処理（ステップＳ２０１〜ステップＳ２０５）を続行する。
【００５８】
この間、ステップＳ２０４で算出されたプロセッサ１０１の稼働率（所定インターバル時間内の）が１００パーセントとなった場合（ステップＳ２０５ＹＥＳ）、クロック周波数管理部１０２は、クロック生成部１１２に指示して演算回路１１１に供給する動作クロックの周波数を通常クロック（定格周波数）よりも高い周波数に設定する、いわゆるオーバクロック設定制御を行う（ステップＳ２０６）。
【００５９】
このオーバクロック制御の具体例として、クロック周波数管理部１０２は、ＨＷプロファイル保持部１１３から上限周波数の値（＝６００ＭＨｚ）を読出したうえで、クロック生成部１１２に対して動作周波数として該上限周波数の設定を指示し、クロック生成部１１２から、これまで発生していた定格周波数のクロック（通常クロック）に代えて該上限周波数に相当する６００ＭＨｚのクロックを発生させ、演算回路１１１に供給する。
【００６０】
このオーバクロック設定制御により、以後、演算回路１１１は、クロック生成部１１２から供給される上限周波数（６００ＭＨｚ）のクロックで動作し、入力データの処理を行う。
【００６１】
また、上記の如くオーバクロック設定制御（ステップＳ２０６）を実施した後、クロック周波数管理部１０２は、プロセッサ１０１の温度がプロセッサ１０１の動作保証温度を超えないように、ステップＳ２０７及びＳ２０８を経て、設定動作周波数を低下させる制御（クロック周波数低下制御）を行う。
【００６２】
具体的には、まず、温度検出部１０３から温度検知出力を取り込んでプロセッサ１０１の温度を検出する一方、ＨＷプロファイル保持部１１３から動作保証温度（＝摂氏１２０度：図３参照）の情報を読出し、検出されたプロセッサ１０１の温度が、読み出した動作保証温度よりも低いか高いかを判定する（ステップＳ２０７）。
【００６３】
ここで、プロセッサ１０１の温度が動作保証温度よりも低い場合は（ステップＳ２０７ＹＥＳ）、図４のステップＳ１０５の処理に進む。
【００６４】
これに対し、プロセッサ１０１の温度が動作保証温度以上の場合は（ステップＳ２０７ＮＯ）、動作周波数を現在の設定値（上記ステップＳ２０６でのオーバクロック設定制御により設定されたクロック周波数：この例では、上限周波数）よりも低いクロック周波数に可変制御するクロック周波数低下制御を行なった（ステップＳ２０８）後、図４のステップＳ１０５の処理へ進む。
【００６５】
上記ステップＳ２０８でのクロック周波数低下制御において、クロック周波数管理部１０２は、クロック生成部１１２に対して上限周波数よりも所定の値だけ低い周波数（但し、定格周波数よりは高い周波数：例えば、５５０ＭＨｚ）の設定を指示し、該クロック生成部１１２から当該設定指示した周波数の動作クロックを発生させて演算回路１１１に供給する。
【００６６】
以後、演算回路１１１は、クロック生成部１１２から供給される動作クロック（５５０ＭＨｚ）のクロックで動作し、入力データの処理を行う。
【００６７】
その際のプロセッサ１０１の温度は、上限周波数のクロックで動作していた場合に比べて小さい値に抑えられ、動作保証温度内の状態で効率の良い（但し、上限周波数設定時よりは効率が低下する）データ処理が行える。
【００６８】
本実施例によれば、通常クロック（定格周波数）でのデータ処理動作実行中に算出されたプロセッサ１０１の稼働率が設定値を超えることにより高負荷状態であると判定された場合に、動作周波数を上限周波数実力値までの範囲内で定格周波数より高い値に可変制御し、処理速度を上げることで高負荷時の処理効率を向上させることができる。
【００６９】
また、動作保証温度近くまで発熱した際には設定する動作周波数を低下させる制御を行なうことで、定格周波数から上限周波数までの帯域のクロックを流動的に可変設定して高速、かつ、電力消費の少ないデータ処理が実現できる。
【実施例２】
【００７０】
図６は、実施例２に係わるプロセッサシステム１００Ｂの機能構成を示すブロック図である。
【００７１】
図６において、実施例１に係わるプロセッサシステム１００（図２参照）の各機能部と同一の機能を果たす機能部には同一の符号を付している。
【００７２】
このプロセッサシステム１００Ｂは、実施例１に係わるプロセッサシステム１００のプロセッサ１０１とそれぞれ同等の機能ブロック構造（演算回路１１１、クロック生成部１１２、ＨＷプロファイル保持部１１３の各機能部を備える）から成り、演算回路１１１のデータ処理能力がそれぞれ異なる３つのプロセッサ１０１ａ，１０１ｂ，１０１ｃをクロック周波数管理部１０２ｂ及び外部記憶装置２００に接続して構成される。
【００７３】
また、このプロセッサシステム１００Ｂでは、各プロセッサ１０１ａ，１０１ｂ，１０１ｃにそれぞれ対応して、該各プロセッサ１０１ａ，１０１ｂ，１０１ｃの温度を個別に検出する温度検出部１０３ａ，１０３ｂ，１０３ｃ（実施例１に係わる温度検出部１０３と同等の構成を有する）が設けられる。
【００７４】
本実施例のプロセッサシステム１００Ｂにおいて、各プロセッサ１０１ａ，１０１ｂ，１０１ｃは、外部記憶装置２００から入力する処理対象のデータを、それぞれが協働し、それぞれのデータ処理能力で処理する。
【００７５】
図７は、本実施例のプロセッサシステム１００Ｂにおける各プロセッサ１０１ａ，１０１ｂ，１０１ｃのデータ処理上の接続態様を示す概念図である。
【００７６】
図７に示すように、各プロセッサ１０１ａ，１０１ｂ，１０１ｃはデータの入力側である外部記憶装置２００と出力側であるプリンタエンジン部（画像形成装置１０の画像形成部１４に相当）３００間に直列に接続され、外部記憶装置２００から入力されるデータを、プロセッサ１０１ａから１０１ｂ、プロセッサ１０１ｂから１０１ｃ、プロセッサ１０１ｃから外部記憶装置２００へという流れでパイプライン処理（直列処理）する方式の接続形態を有する。
【００７７】
本実施例のプロセッサシステム１００Ｂでは、上記パイプライン処理方式の接続形態において、例えば、パイプライン処理の上流側ほど、高い処理能力のプロセッサが配置されている。
【００７８】
各プロセッサ１０１ａ，１０１ｂ，１０１ｃに設けられるＨＷプロファイル保持部１１３ａ，１１３ｂ，１１３ｃには、それぞれ、当該各プロセッサ１０１ａ，１０１ｂ，１０１ｃのプロファイル情報が保持されている。
【００７９】
図８は、各プロセッサ１０１ａ，１０１ｂ，１０１ｃのＨＷプロファイル保持部１１３ａ，１１３ｂ，１１３ｃを用いたプロファイル情報の管理形態を示す表図である。
【００８０】
図８（ａ）に示すように、プロセッサ１０１ａのＨＷプロファイル保持部１１３ａには、該プロセッサ１０１ａの定格周波数（＝５００ＭＨｚ）、上限周波数実力値（＝６００ＭＨｚ）、動作保証電圧（＝１．６Ｖ）、動作保証温度（＝摂氏１２０度）の各情報がプロファイル情報として保持される。
【００８１】
図８（ｂ）に示すように、プロセッサ１０１ｂのＨＷプロファイル保持部１１３ｂには、該プロセッサ１０１ｂの定格周波数（＝３００ＭＨｚ）、上限周波数実力値（＝３５０ＭＨｚ）、動作保証電圧（＝１．５Ｖ）、動作保証温度（＝摂氏１００度）の各情報がプロファイル情報として保持される。
【００８２】
図８（ｃ）に示すように、プロセッサ１０１ｃのＨＷプロファイル保持部１１３ｃには、該プロセッサ１０１ｃの定格周波数（＝２００ＭＨｚ）、上限周波数実力値（＝２５０ＭＨｚ）、動作保証電圧（＝１．２Ｖ）、動作保証温度（＝摂氏８０度）の各情報がプロファイル情報として保持される。
【００８３】
図８に例示する各プロセッサ１０１ａ，１０１ｂ，１０１ｃのプロファイル情報からも分かるように、本実施例では、各プロセッサ１０１ａ，１０１ｂ，１０１ｃ毎に、規定される動作周波数（定格周波数）とは別に、設計マージンも含めた動作周波数（上限周波数）が予め測定され、該当するＨＷプロファイル保持部１１３ａ，１１３ｂ，１１３ｃに保持されている。
【００８４】
クロック周波数管理部１０２ｂは、上記各プロセッサ１０１ａ，１０１ｂ，１０１ｃによる入力データの処理（パイプライン処理）に際し、各プロセッサ１０１ａ，１０１ｂ，１０１ｃ毎に、その演算動作時間とアイドル時間とから稼働率を検出する機能、該検出された各プロセッサ１０１ａ，１０１ｂ，１０１ｃの稼働率を、その時の当該各プロセッサの動作周波数と共に稼働率管理テーブル（ＴＢ）１２１ｂを用いて管理する機能、該検出された（管理機能により管理される）各プロセッサ１０１ａ，１０１ｂ，１０１ｃの稼働率に基づき、当該各プロセッサ１０１ａ，１０１ｂ，１０１ｃの全てを用いた全体の処理効率低下の原因（ボトルネック）となるプロセッサが存在するか否かを判定する機能、処理効率低下のボトルネックとなるプロセッサ、例えば、１０１ａが存在する場合、該プロセッサ１０１ａのＨＷプロファイル保持部１１３ａに保持されているプロファイル情報（定格周波数と上限周波数）を参照し、プロセッサ１０１ａの動作周波数を、上限周波数の範囲内で定格周波数よりも高い値に動的に可変設定するクロック周波数管理機能を備えている。
【００８５】
また、上記クロック周波数可変設定機能については、温度検出部１０３ａ，１０３ｂ，１０３ｃからのそれぞれの温度検知出力に基づきプロセッサ１０１ａ，１０１ｂ，１０１ｃの温度を個々に検出し、該検出された各プロセッサ１０１ａ，１０１ｂ，１０１ｃの温度が対応するＨＷプロファイル保持部１１３ａ，１１３ｂ，１１３ｃに保持されているそれぞれに動作保障温度を超えないように該当する各プロセッサ１０１ａ，１０１ｂ，１０１ｃのクロック周波数（動作周波数）を可変制御する機能も併せ持っている。
【００８６】
本実施例のプロセッサシステム１００Ｂにおけるデータ処理動作は、各プロセッサ１０１ａ，１０１ｂ，１０１ｃがパイプライン処理を行う以外は、基本的は、実施例１と同様、図４に示すプローチャートに沿った流れで実施されるため、ここでの詳しい説明は割愛する。
【００８７】
ここでは、本実施例のプロセッサシステム１００Ｂのクロック周波数管理部１０２ｂが図４のステップＳ１０４で実施する動作周波数可変設定制御について詳しく説明する。
【００８８】
図９は、本実施例のプロセッサシステム１００Ｂの動作周波数可変設定処理動作を示すフローチャートである。
【００８９】
図９に示すように、本実施例のプロセッサシステム１００Ｂの動作周波数可変設定制御は、図４に示す一連の処理中、ステップＳ１０３においてデータ処理が実行される毎に実施される。
【００９０】
すなわち、図４のステップＳ１０３で各プロセッサ１０１ａ，１０１ｂ，１０１ｃによるデータのパイプライン処理が実行されると（この時、各プロセッサ１０１ａ，１０１ｂ，１０１ｃは、それぞれ、通常クロック（５００ＭＨｚ，３００ＭＨｚ，２００ＭＨｚ）で動作している）、クロック周波数管理部１０２ｂは、図９に示すフローチャートに従い、所定のインターバル時間毎に該データ処理動作時における各プロセッサ１０１ａ，１０１ｂ，１０１ｃの稼働時間とアイドル時間をそれぞれ検出する（ステップＳ３０１，Ｓ３０２）。
【００９１】
その際、上記インターバル時間が経過したか否かをチェックし（ステップＳ３０３）、該インターバル時間が経過するまでは（ステップＳ３０３ＮＯ）、ステップＳ３０１，Ｓ３０２での各プロセッサ１０１ａ，１０１ｂ，１０１ｃ別の稼働時間とアイドル時間の検出処理を続ける。
【００９２】
そして、この間、上記インターバル時間が経過した場合（ステップＳ３０３ＹＥＳ）、クロック周波数管理部１０２ｂは、各プロセッサ１０１ａ，１０１ｂ，１０１ｃ別に上記ステップＳ３０１で検出された稼働時間と上記ステップＳ３０２で検出されたアイドル時間のそれぞれの比から、当該各プロセッサ１０１ａ，１０１ｂ，１０１ｃ別の稼働率を検出する（ステップＳ３０４）。
【００９３】
次いで、該検出された各プロセッサ１０１ａ，１０１ｂ，１０１ｃ別の稼働率に基づき、当該システムが高負荷状態に陥り、該高負荷状態の原因となる（全体の処理効率低下のボトルネックとなる）プロセッサが存在するか否かを判定する（ステップＳ３０５）。
【００９４】
本実施例では、高負荷状態であるか否かを判定する目安（閾値）として、例えば、プロセッサ１０１ａ，１０１ｂ，１０１ｃのいずれかの稼働率が１００パーセントであるか否かをチェックする。
【００９５】
ここで、高負荷状態であることが判明した場合、該高負荷状態のプロセッサの稼働率（この例では、１００パーセント）と、パイプライン処理上、該高負荷状態のプロセッサの上流または下流側にあるプロセッサの稼働率との間に所定の値以上の差がある場合に、該高負荷状態のプロセッサ（上流側のプロセッサ）を処理効率低下のボトルネックとなるプロセッサとして認識する。
【００９６】
かかる処理により、上記ステップＳ３０５において、処理効率低下のボトルネックとなるプロセッサが存在しないと判定されると（ステップＳ３０５ＮＯ）、クロック周波数管理部１０２ｂは、プロセッサ１０１ａ，１０１ｂ，１０１ｃの各クロック生成部１１２に指示して、それぞれ対応する各演算回路１１１に供給する動作クロックの周波数を当該各稼働率に応じて低下させるように可変制御し（ステップＳ３０８）、図４のステップ１０５へ移行する。
【００９７】
そして、図４のステップＳ１０５で処理が終了していないと判断された場合（ステップＳ１０５ＮＯ）、ステップＳ３０１に戻り、以後、該ステップＳ３０１以降の各プロセッサ１０１ａ，１０１ｂ，１０１ｃ別の稼働率算出に係わる各処理（ステップＳ３０１〜ステップＳ３０４）を続行する。
【００９８】
この間、ステップＳ３０４で算出された各プロセッサ１０１ａ，１０１ｂ，１０１ｃ別の稼働率（所定インターバル時間内の）に基づき、処理効率低下のボトルネックとなるプロセッサ、例えば、１０１ａが存在すると判定された場合（ステップＳ３０５ＹＥＳ）、クロック周波数管理部１０２ｂは、該プロセッサ１０１ａのクロック生成部１１２に指示して演算回路１１１に供給する動作クロックの周波数を通常クロックよりも高い周波数に設定する、いわゆるオーバクロック設定制御を行う（ステップＳ３０６）。
【００９９】
このオーバクロック制御の具体例として、クロック周波数管理部１０２ｂは、プロセッサ１０１ａのＨＷプロファイル保持部１１３ａ〔図８（ａ）参照〕から上限周波数の値（＝６００ＭＨｚ）を読出したうえで、クロック生成部１１２に対して動作周波数として該上限周波数の設定を指示し、クロック生成部１１２から、これまで発生していた定格周波数のクロック（通常クロック＝５００ＭＨｚ）に代えて該上限周波数に相当する６００ＭＨｚのクロックを発生させ、演算回路１１１に供給する。
【０１００】
このオーバクロック設定制御により、以後、プロセッサ１０１ａの演算回路１１１は、クロック生成部１１２から供給される上限周波数（６００ＭＨｚ）のクロックで動作し、入力データの処理を行う。
【０１０１】
また、上記の如くオーバクロック設定制御（ステップＳ３０６）を実施した後、クロック周波数管理部１０２ｂは、オーバクロック設定した当該プロセッサ１０１ａの温度が該プロセッサ１０１ａの動作保証温度（＝摂氏１２０度）を超えないように、ステップＳ３０７及びＳ３０８を経て、設定動作周波数を低下させる制御（クロック周波数低下制御）を行う。
【０１０２】
具体的には、まず、オーバクロック設定したプロセッサ１０１ａに対応する温度検出部１０３ａから温度検知出力を取り込んでプロセッサ１０１ａの温度を検出する一方、ＨＷプロファイル保持部１１３ａから動作保証温度〔＝摂氏１２０度：図８（ａ）参照〕の情報を読出し、検出されたプロセッサ１０１ａの温度が、読み出した動作保証温度よりも低いか高いかを判定する（ステップＳ３０７）。
【０１０３】
ここで、プロセッサ１０１ａの温度が動作保証温度よりも低い場合は（ステップＳ３０７ＹＥＳ）、図４のステップＳ１０５の処理に進む。
【０１０４】
これに対し、プロセッサ１０１ａの温度が動作保証温度以上の場合は（ステップＳ３０７ＮＯ）、動作周波数を現在の設定値（上記ステップ３０６でのオーバクロック設定制御により設定されたクロック周波数：この例では、上限周波数）よりも低いクロック周波数に可変制御するクロック周波数低下制御を行なった（ステップＳ３０８）後、図４のステップＳ１０５の処理へ進む。
【０１０５】
上記ステップＳ３０８でのクロック周波数低下制御において、クロック周波数管理部１０２ｂは、プロセッサ１０１ａのクロック生成部１１２に対して上限周波数よりも所定の値だけ低い周波数（但し、定格周波数よりは高い周波数：例えば、５５０ＭＨｚ）の設定を指示し、該クロック生成部１１２から当該設定指示した周波数の動作クロックを発生させて演算回路１１１に供給する。
【０１０６】
以後、演算回路１１１は、クロック生成部１１２から供給される動作クロック（５５０ＭＨｚ）のクロックで動作し、入力データの処理を行う。
【０１０７】
その際のプロセッサ１０１ａの温度は、上限周波数のクロックで動作していた場合に比べて低く抑えられ、動作保証温度内の状態で効率の良い（但し、上限周波数設定時よりは効率が低下する）データ処理が行える。
【０１０８】
ここで、上記ステップＳ３０４で検出された各プロセッサ１０１ａ，１０１ｂ，１０１ｃの稼働率と、該検出された各稼働率に基づく上記ステップＳ３０５、Ｓ３０６を経たオーバクロック設定制御の具体例について説明する。
【０１０９】
上述したように、本実施例のプロセッサシステム１００Ｂにおいて、各プロセッサ１０１ａ（プロセッサＡ），１０１ｂ（プロセッサＢ），１０１ｃ（プロセッサＣ）は、アイドル時及び低負荷時にはそれぞれの定格周波数（５００ＭＨｚ，３００ＭＨｚ，２００ＭＨｚ）のクロックで駆動され、外部記憶装置２００に格納されている一連の画像データを、プロセッサＡからＢ、プロセッサＢからＣというようにパイプライン処理する（図７参照）。
【０１１０】
その際、プロセッサＡは、情報処理命令を受けると、外部記憶装置２００に格納されている画像データに対して一定の画像処理を行い、該処理結果をプロセッサＢに転送する。
【０１１１】
同様に、プロセッサＢは、一定の画像処理を行い、該処理結果をプロセッサＣに転送する。
【０１１２】
更に、プロセッサＣは、一定の画像処理を行い、該処理結果を外部記憶装置２００に出力する。
【０１１３】
上述した、各プロセッサＡ，Ｂ，Ｃによる画像データの処理が実行されている間、クロック周波数管理部１０２ｂは、各プロセッサＡ，Ｂ，Ｃそれぞれのアイドル時間と稼働時間を観測することにより、当該各プロセッサＡ，Ｂ，Ｃの稼働率を検出する。
【０１１４】
各プロセッサＡ，Ｂ，Ｃの稼働率は、処理対象のデータ量やデータ特性、あるいは処理内容等により変化する。
【０１１５】
ここで、各プロセッサＡ，Ｂ，Ｃについて、例えば、図１０の表図に示すような稼働率が得られた場合について考えてみる。
【０１１６】
図１０は、各プロセッサＡ，Ｂ，Ｃが、それぞれ、通常クロック（５００ＭＨｚ，３００ＭＨｚ，２００ＭＨｚ）で動作してデータの並列処理している時のあるタイミングに、図９のステップＳ３０４で検出され、クロック周波数管理部１０２ｂの稼働率管理テーブル１２１ｂによって管理される当該各プロセッサＡ，Ｂ，Ｃの稼働率の値を示す表図である。
【０１１７】
図１０に示す表図によれば、プロセッサＡ（１０１ａ）が稼働率１００パーセント（高負荷状態）であって、パイプライン処理構造上、その下流側のプロセッサＢの稼働率が６０パーセントであり、かつ、上流側のプロセッサＡの稼働率（１００パーセントとの間に所定値（閾値：例えば、３０パーセント）以上の差があることから、この場合、クロック周波数管理部１０２ｂは、図９のステップＳ３０５において、当該プロセッサＡの稼働率と、該プロセッサＡとその下流側のプロセッサＢとの稼働率の差（上記閾値以上の開きがある）から、プロセッサＡが処理効率低下のボトルネックになっているもの（プロセッサＡに一時的なボトルネックが存在する）と判定する。
【０１１８】
そして、図９のステップＳ３０６では、このボトルネックになっているプロセッサＡに対してオーバクロック設定制御を実施する。
【０１１９】
ここで、プロセッサＡに対して、例えば、定格周波数（＝５００ＭＨｚ）から上限周波数（＝６００ＭＨｚ）へのオーバクロック設定がなされることにより、該オーバクロック設定を行なってから所定巡回目のインターバル時間を経過したタイミングに、図９のステップＳ３０４で再び検出され、クロック周波数管理部１０２ｂの稼働率管理テーブル１２１ｂによって管理される当該各プロセッサ１０１ａ，１０１ｂ，１０１ｃの稼働率が、例えば、図１１の表図に示す値となる。
【０１２０】
図１０及び図１１に示す各表図によれば、定格周波数（＝５００ＭＨｚ）のクロックで動作している時に稼働率が１００パーセントに達したプロセッサＡの動作周波数を上限周波数（＝６００ＭＨｚ）まで上昇（オーバクロック設定）させた結果、該プロセッサＡの処理能力の上昇によりボトルネック状態が解消され、当該プロセッサＡからプロセッサＢへ転送されるデータ量が増加することによりプロセッサＢ、Ｃのアイドル時間が短縮され、当該各プロセッサＢ，Ｃの稼働率が、それぞれ、６０パーセントから８０パーセント、８０パーセントから９５パーセントへと共に上がる結果、システム全体の処理効率が向上する様子が分かる。
【０１２１】
クロック周波数管理部１０２ｂは、各プロセッサＡ，Ｂ，Ｃの稼働率が、図１１の表図に示す通りの値になると、稼働率の差が所定値（例えば、２０パーセント）より少なくなったことからボトルネックが解消されたと判断し、一連の画像処理が終了するまで、各温度検出部１３０ａ，１０３ｂ，１０３ｃにより検出される各プロセッサＡ，Ｂ，Ｃの温度を監視しつつ（ステップＳ３０７）、当該各プロセッサＡ，Ｂ，Ｃに対するクロック配分を維持する。
【０１２２】
この間、各プロセッサＡ，Ｂ，Ｃの温度がそれぞれの動作保証温度を超えそうな場合は、該当するプロセッサのクロックを低下させるように制御する（ステップＳ３０８）。
【０１２３】
そして、上記一連の画像処理が終了し、各プロセッサＡ，Ｂ，Ｃがアイドル状態に戻ったと判断された場合は、該各プロセッサＡ，Ｂ，Ｃの動作周波数を、ぞれぞれ、定格周波数に戻す制御を行なう（図４のステップ１０６ＮＯ，Ｓ１０７）。
【０１２４】
本実施例では、プロセッサ１０１ａ，１０１ｂ，１０１ｃから成るマルチプロセッサシステムにおいて、クロック周波数管理部１０２ｂは、パイプライン処理上、上流側のプロセッサの稼働率が予め設定したある閾値を超え、かつ、下流側のプロセッサの稼働率が上流側のプロセッサの稼働率よりも所定の値以上小さい場合にボトルネックが発生していると判断し、該ボトルネックの原因であると判断されたプロセッサの動作周波数を、例えば、通常時に用いる定格周波数から上限周波数のクロックへとオーバクロックさせ、該上限周波数のクロックでの動作による当該プロセッサの処理能力向上に追従させて下流側のプロセッサの稼働率を高くし、実質的にシステム全体の処理能力を向上させる。
【実施例３】
【０１２５】
実施例３に係わるプロセッサシステム（便宜的に１００Ｃと呼称）は、実施例２に係わるプロセッサシステム１００Ｂ（図６参照）と同様、３つのプロセッサ１０１ａ，１０１ｂ，１０１ｃ、該各プロセッサ１０１ａ，１０１ｂ，１０１ｃの温度をそれぞれ検出する温度検出部１０３ａ，１０３ｂ，１０３ｃ、及びクロック周波数管理１０２ｂを備えて構成される。
【０１２６】
本実施例において、各プロセッサ１０１ａ，１０１ｂ，１０１ｃは、情報処理命令に基づき、外部記憶装置２００からの入力データをそれぞれ処理するが、該処理方式が実施例２に係わるパイプライン処理方式とは異なっている。
【０１２７】
図１２は、本実施例のプロセッサシステム１００Ｃにおける各プロセッサ１０１ａ，１０１ｂ，１０１ｃのデータ処理上の接続態様を示す概念図である。
【０１２８】
図１２に示すように、各プロセッサ１０１ａ，１０１ｂ，１０１ｃは、データの入力側である外部記憶装置２００と出力側であるプリンタエンジン部（画像形成装置１０の画像形成部１４に相当）３００間に並列に接続され、外部記憶装置２００から入力されるデータを、各プロセッサ１０１ａ，１０１ｂ，１０１ｃが並列に処理すると共に、プロセッサ１０１ａが各プロセッサ１０１ａ，１０１ｂ，１０１ｃの処理結果データをマージして（まとめて）プリンタエンジン部３００に出力する、いわゆる並列処理方式の接続形態を有する。
【０１２９】
本実施例のプロセッサシステム１００Ｃにおけるデータ処理動作は、基本的には、実施例１と同様、図４に示すフローチャートに沿った流れで実施される。
【０１３０】
但し、図４に示す一連の処理中、ステップＳ１０３で各プロセッサ１０１ａ，１０１ｂ，１０１ｃが行うデータ処理は、図１２に示す通りの並列処理となる。
【０１３１】
また、本実施例のプロセッサシステム１００Ｃのクロック周波数管理部１０２ｂが図４のステップＳ１０４において実施する動作周波数可変制御も、基本的には、実施例２と同様、図９に示すフローチャートに沿った流れで実施される。
【０１３２】
但し、図９に示す一連の処理中、ステップＳ３０５、及びＳ３０６で実施される、ボトルネックとなるプロセッサを判定して当該プロセッサに対してオーバクロック設定を行う処理については、各プロセッサ１０１ａ，１０１ｂ，１０１ｃが、図１２に示した並列処理に対応した特有の処理を行う。
【０１３３】
以下、図４及び図９を援用し、本実施例のプロセッサシステム１００Ｃにおける処理動作について、本実施例に特有な処理ステップ（図４のステップＳ１０４、図９のステップＳ３０５及びＳ３０６）を主体に説明する。
【０１３４】
ここで、各プロセッサ１０１ａ，１０１ｂ，１０１ｃに設けられるＨＷプロファイル保持部１１３ａ，１１３ｂ，１１３ｃには、それぞれ、例えば、実施例２と同様のプロファイル情報（図８参照）が保持されているものとする。
【０１３５】
本実施例のプロセッサシステム１００Ｃでは、図４のステップＳ１０３において、各プロセッサ１０１ａ，１０１ｂ，１０１ｃは、情報処理命令に基づき、外部記憶装置２００からの一連のデータ中のそれぞれ該当する部分のデータを取り込んで分散処理し、画像処理を並列に遂行する。
【０１３６】
図４のステップＳ１０３で上記の如くの入力データの分散処理が行われると、これに合わせて、図９に示す一連の動作周波数可変設定制御（図４のステップＳ１０４に相当）を実行する。
【０１３７】
すなわち、図４のステップＳ１０３で各プロセッサ１０１ａ，１０１ｂ，１０１ｃによるデータの並列処理が実行されると〔この時、各プロセッサ１０１ａ，１０１ｂ，１０１ｃは、それぞれ、通常クロック（５００ＭＨｚ，３００ＭＨｚ，２００ＭＨｚ）で動作している〕、クロック周波数管理部１０２ｂは、図９に示すフローチャートに従い、ステップＳ３０１〜Ｓ３０３を経て、所定のインターバル時間間隔毎に、各プロセッサ１０１ａ，１０１ｂ，１０１ｃの稼働率を算出する（ステップＳ３０４）。
【０１３８】
次いで、クロック周波数管理部１０２ｂは、該検出された各プロセッサ１０１ａ，１０１ｂ，１０１ｃ別の稼働率に基づき、当該システムが高負荷状態に陥り、該高負荷状態の発生原因となる（ボトルネックとなる）プロセッサが存在するか否かを判定する（ステップＳ３０５）。
【０１３９】
本実施例では、高負荷状態であるか否かを判定する目安（閾値）として、例えば、プロセッサ１０１ａ，１０１ｂ，１０１ｃのいずれかの稼働率が１００パーセントであるか否かをチェックする。
【０１４０】
ここで、あるプロセッサが高負荷状態であることが判明した場合、該高負荷状態のプロセッサの稼働率（この例では、１００パーセント）と、並列接続された他のプロセッサの稼働率との間に所定の値以上の差があるどうかをチェックし、高負荷状態のプロセッサの稼働率（１００パーセント）と、他のプロセッサの稼働率との間に所定の値以上の差がある場合は、該高負荷状態のプロセッサを、並列処理上の高負荷状態を発生させる（ボトルネックとなる）プロセッサとして判定する。
【０１４１】
かかる処理により、上記ステップＳ３０５において、処理効率低下のボトルネックとなるプロセッサが存在しないと判定されると（ステップＳ３０５ＮＯ）、クロック周波数管理部１０２ｂは、実施例２と同様、各プロセッサ１０１ａ，１０１ｂ，１０１ｃの動作周波数を当該各稼働率に応じて低下させるように可変制御し（ステップＳ３０８）、図４のステップ１０５へ移行する。
【０１４２】
そして、図４のステップＳ１０５で処理が終了していないと判断された場合（ステップＳ１０５ＮＯ）、ステップＳ３０１に戻り、以後、該ステップＳ３０１以降の各プロセッサ１０１ａ，１０１ｂ，１０１ｃ別の稼働率算出に係わる各処理（ステップＳ３０１〜ステップＳ３０４）を続行する。
【０１４３】
この間、ステップＳ３０４で算出された各プロセッサ１０１ａ，１０１ｂ，１０１ｃ別の稼働率（所定インターバル時間内の）に基づき、処理効率低下のボトルネックとなるプロセッサ、例えば、１０１ｂが存在すると判定された場合（ステップＳ３０５ＹＥＳ）、クロック周波数管理部１０２ｂは、実施例２と同様、該プロセッサ１０１ｂに対するオーバクロック設定制御を行う（ステップＳ３０６）。
【０１４４】
このオーバクロック制御の具体例として、クロック周波数管理部１０２ｂは、プロセッサ１０１ｂのＨＷプロファイル保持部１１３ｂ〔図８（ｂ）参照〕から上限周波数の値（＝３５０ＭＨｚ）を読出したうえで、クロック生成部１１２に対して動作周波数として該上限周波数の設定を指示し、クロック生成部１１２から、これまで発生していた定格周波数のクロック（通常クロック＝３００ＭＨｚ）に代えて該上限周波数に相当する３５０ＭＨｚのクロックを発生させ、演算回路１１１に供給する。
【０１４５】
このオーバクロック設定制御により、以後、プロセッサ１０１ｂの演算回路１１１は、クロック生成部１１２から供給される上限周波数（３５０ＭＨｚ）のクロックで動作し、入力データの処理を行う。
【０１４６】
また、上記の如くオーバクロック設定制御（ステップＳ３０６）を実施した後、クロック周波数管理部１０２ｂは、実施例２と同様、該オーバクロック設定した当該プロセッサ１０１ｂに対し、温度検出部１０３ｂにより検出された温度が、プロセッサ１０１ｂのＨＷプロファイル保持部１１３ｂから読み出した動作保証温度〔＝摂氏１００度：図８（ｂ）参照〕を超える場合のクロック周波数低下制御を行う（ステップＳ３０７，Ｓ３０８）。
【０１４７】
上記ステップＳ３０８でのクロック周波数低下制御において、クロック周波数管理部１０２ｂは、プロセッサ１０１ｂのクロック生成部１１２に対して上限周波数よりも所定の値だけ低い周波数（但し、定格周波数よりは高い周波数：例えば、３２０ＭＨｚ）の設定を指示し、該クロック生成部１１２から当該設定指示した周波数の動作クロックを発生させて演算回路１１１に供給する。
【０１４８】
以後、演算回路１１１は、クロック生成部１１２から供給される動作クロック（３２０ＭＨｚ）のクロックで動作し、入力データの処理を行う。
【０１４９】
その際のプロセッサ１０１ｂの温度は、上限周波数（３５０ＭＨｚ）のクロックで動作していた場合に比べて低く抑えられ、動作保証温度内の状態で効率の良い（但し、上限周波数設定時よりは効率が低下する）データ処理が行える。
【０１５０】
ここで、上記ステップＳ３０４で検出された各プロセッサ１０１ａ，１０１ｂ，１０１ｃの稼働率と、該検出された各稼働率に基づく上記ステップＳ３０５、Ｓ３０６を経たオーバクロック設定制御の具体例について説明する。
【０１５１】
上述したように、本実施例のプロセッサシステム１００Ｃにおいて、各プロセッサ１０１ａ（プロセッサＡ），１０１ｂ（プロセッサＢ），１０１ｃ（プロセッサＣ）は、アイドル時及び低負荷時にはそれぞれの定格周波数（５００ＭＨｚ，３００ＭＨｚ，２００ＭＨｚ）のクロックで駆動され、情報処理命令を受けると、外部記憶装置２００に格納されている画像データに対し、それぞれに割当てられた一定の画像処理を行い（分散処理）、それぞれの処理結果を、再び、外部記憶装置２００へ出力する、若しくは印刷処理を行う。
【０１５２】
各プロセッサＡ，Ｂ，Ｃの管理は、処理能力の高いプロセッサＡが担当すると共に、並列処理が困難な処理もプロセッサＡが担当する。
【０１５３】
各プロセッサＡ，Ｂ，Ｃの処理が一定量終了すると、プロセッサＡは、外部記憶装置２００に格納された当該各プロセッサＡ，Ｂ，Ｃの処理結果をマージし、外部（プリンタエンジン部３００：図１２参照）へ出力するが、正常な出力を実現するためには、各プロセッサＡ，Ｂ，Ｃからの出力データが全て揃う必要がある。
【０１５４】
そのため、各プロセッサＡ，Ｂ，Ｃの処理時間に大きな差がある場合には、外部への出力に際してアイドル時間が発生してしまうことになる。
【０１５５】
このように、各プロセッサＡ，Ｂ，Ｃの処理時間に大きな差が生じる状況の一例として、当該各プロセッサＡ，Ｂ，Ｃにおいて、例えば、図１３の表図に示すような稼働率が得られた場合について考えてみる。
【０１５６】
図１３は、各プロセッサＡ，Ｂ，Ｃが、それぞれ、通常クロック（５００ＭＨｚ，３００ＭＨｚ，２００ＭＨｚ）で動作してデータの並列処理している時のあるタイミングに、図９のステップＳ３０４で検出され、クロック周波数管理部１０２ｃの稼働率管理テーブル１２１ｂによって管理される当該各プロセッサ１０１ａ，１０１ｂ，１０１ｃの稼働率の値を示す表図である。
【０１５７】
図１３に示す表図によれば、プロセッサＢ（１０１ｂ）が稼働率１００パーセント（高負荷状態）であって、並列接続された他のプロセッサＡ，及びＣの稼働率が、それぞれ、８０パーセント、７０パーセントであり、所定値（閾値：例えば、２０パーセント）以上の差があることから、この場合、クロック周波数管理部１０２ｂは、図９のステップＳ３０５において、当該各プロセッサＡ，Ｂ，Ｃの稼働率の差から、プロセッサＢが高負荷状態のボトルネックになっているもの（プロセッサＢに一時的なボトルネックが存在する）と判定する。
【０１５８】
そして、図９のステップＳ３０６では、このボトルネックになっているプロセッサＢに対してオーバクロック設定制御を実施する。
【０１５９】
ここで、プロセッサＢに対して、例えば、定格周波数（＝３００ＭＨｚ）から上限周波数（＝３５０ＭＨｚ）へのオーバクロック設定がなされることにより、該オーバクロック設定を行なってから所定巡回目のインターバル時間を経過したタイミングに、図９のステップＳ３０４で再び検出され、クロック周波数管理部１０２ｂの稼働率管理テーブル１２１ｂによって管理される当該各プロセッサ１０１ａ，１０１ｂ，１０１ｃの稼働率が、例えば、図１４の表図に示す値となったものとする。
【０１６０】
図１３及び図１４に示す各表図によれば、定格周波数（＝３００ＭＨｚ）のクロックで動作している時に稼働率が１００パーセントに達したプロセッサＢの動作周波数を上限周波数（＝３５０ＭＨｚ）まで上昇（オーバクロック設定）させた結果、該プロセッサＢの処理能力の上昇によりボトルネック状態が解消され、当該プロセッサＢから出力されるデータ量が増加することによりプロセッサＡ、Ｃのアイドル時間が短縮され、当該各プロセッサＡ，Ｃの稼働率が、それぞれ、８０パーセントから９０パーセント、７０パーセントから８５パーセントへと共に上がる結果、システム全体の処理効率が向上する様子が分かる。
【０１６１】
クロック周波数管理部１０２ｂは、各プロセッサＡ，Ｂ，Ｃの稼働率が、図１４の表図に示す通りの値になると、稼働率の差が所定値（例えば、２０パーセント）より少なくなったことからボトルネックが解消されたと判断し、一連の画像処理が終了するまで、各温度検出部１３０ａ，１０３ｂ，１０３ｃにより検出される各プロセッサＡ，Ｂ，Ｃの温度を監視しつつ（ステップＳ３０７）、当該各プロセッサＡ，Ｂ，Ｃに対するクロック配分を維持する。
【０１６２】
この間、各プロセッサＡ，Ｂ，Ｃの温度がそれぞれの動作保証温度を超えそうな場合は、該当するプロセッサのクロックを低下させるように制御する（ステップＳ３０８）。
【０１６３】
そして、上記一連の画像処理が終了し、各プロセッサＡ，Ｂ，Ｃがアイドル状態に戻ったと判断された場合は、該各プロセッサＡ，Ｂ，Ｃの動作周波数を、ぞれぞれ、定格周波数に戻す制御を行なう（図４のステップ１０６ＮＯ，Ｓ１０７）。
【０１６４】
本実施例では、プロセッサ１０１ａ，１０１ｂ，１０１ｃから成るマルチプロセッサシステムにおいて、クロック周波数管理部１０２ｂは、並列接続されたプロセッサ１０１ａ，１０１ｂ，１０１ｃのうちの１つのプロセッサの稼働率が予め設定したある閾値を超え、かつ、他のプロセッサの稼働率よりも所定の値以上の差がある場合に上記閾値を超えた稼動状態にあるプロセッサが原因でボトルネックが発生していると判断し、該ボトルネックの原因であると判断されたプロセッサの動作周波数を、例えば、通常時に用いる定格周波数から上限周波数のクロックへとオーバクロックさせ、該上限周波数のクロックでの動作による当該プロセッサの処理能力向上に追従させて他のプロセッサの稼働率を高くし、実質的にシステム全体の処理能力を向上させる。
【実施例４】
【０１６５】
実施例４に係わるプロセッサシステム（便宜的に１００Ｄと呼称：不図示）において、システム構成、及び動作周波数可変設定制御動作は、実施例２と同様である。
【０１６６】
但し、本実施例では、各プロセッサ１０１ａ，１０１ｂ，１０１ｃに設けられるＨＷプロファイル保持部１１３ａ，１１３ｂ，１１３ｃには、実施例２とは一部異なる値を有するプロファイル情報が保持されている。
【０１６７】
図１５は、本実施例に係わるプロセッサシステム１００Ｄの各プロセッサ１０１ａ，１０１ｂ，１０１ｃのＨＷプロファイル保持部１１３ａ，１１３ｂ，１１３ｃが保持するプロファイル情報の一例を示す表図である。
【０１６８】
図１５（ａ）に示すように、プロセッサ１０１ａ（プロセッサＡ）のＨＷプロファイル保持部１１３ａには、該プロセッサ１０１ａの定格周波数（＝５００ＭＨｚ）、上限周波数実力値（＝４８０ＭＨｚ）、動作保証電圧（＝１．６Ｖ）、動作保証温度（＝摂氏１２０度）の各情報がプロファイル情報として保持されている。
【０１６９】
また、プロセッサ１０１ｂ（プロセッサＢ）のＨＷプロファイル保持部１１３ｂ、及びプロセッサ１０１ｃ（プロセッサＣ）のＨＷプロファイル保持部１１３ｃには、図１５（ｂ）、及び図１５（ｃ）に示すように、それぞれ、実施例２と同じ値のプロファイル情報〔図８（ｂ），（ｃ）参照〕が保持されている。
【０１７０】
図１５（ａ）における、プロセッサ１０１ａのＨＷプロファイル保持部１１３ａに保持されるプロファイル情報中、定格周波数の値（＝５００ＭＨｚ）、上限周波数実力値の値（＝４８０ＭＨｚ）からも分かるように、本実施例では、３つのプロセッサ１０１ａ，１０１ｂ，１０１ｃのうち１つ（この例では、プロセッサ１０１ａ）が、生産時のばらつきにより定格周波数を満たしていないまま使用されるものである。
【０１７１】
本来ならば、定格を満たしていないプロセッサ（チップ）は排除されるのが一般的であるが、本実施例では、出荷時に実力値を測定し、測定された実力値が定格周波数を満たしていない場合も、その測定された実力値以下の周波数で使用することで、全体の歩留まりの向上を図るものである。
【０１７２】
図１５（ａ）に示すプロファイル情報によれば、プロセッサＡは、出荷時の検査により実力値（＝４８０ＭＨｚ）が定格周波数（＝５００ＭＨｚ）を満たしておらず、実力値以下の周波数で動作させなければならない。
【０１７３】
本実施例のマルチプロセッサシステム１００Ｄの運用時、クロック周波数管理部１０２ｂで検出された（稼働率管理テーブル１２１ｂで管理される）、ある瞬間における各プロセッサ１０１ａ，１０１ｂ，１０１ｃの動作周波数及び稼働率が図１６の表図に示す値になった場合について考える。
【０１７４】
図１６に示す表図によれば、プロセッサＡ（１０１ａ）の稼働率が１００パーセントとなっているが、該プロセッサＡは、既に上限周波数実力値（＝４８０ＭＨｚ）の限界で動作しているため、これ以上クロック周波数を上げることはできない。
【０１７５】
このようなプロセッサ（プロセッサＡ）の場合、高負荷時の瞬間的な処理能力向上は見込めない。
【０１７６】
しかしながら、実力値を把握していない場合（ＨＷプロファイル保持部１１３を有しない構成の場合）、このプロセッサは使用されないことになるため、歩留まりの向上に何等貢献し得ないが、本実施例の如く、プロセッサ１０１にＨＷプロファイル保持部１１３を設けて該プロセッサ１０１の実力値のクロック周波数以下でも動作させ得ることは、歩留まりを改善する結果に繋がる。
【０１７７】
この他、本発明は、上記し、且つ図面に示す実施例に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
【０１７８】
例えば、上述の各実施例では、算出した稼働率が１００パーセントの時に高負荷状態であると判定し、プロセッサ１０１（あるいは、プロセッサ１０１ａ，１０１ｂ，１０１ｃ）の動作周波数として上限周波数を設定する例を挙げたが、これに限らず、高負荷状態であると判定するための稼働率は予め設定した他の値でも良く、また、高負荷状態の時に設定する（再配分する）動作周波数も、定格周波数から上限周波数の間の任意の周波数としても良い。
【産業上の利用可能性】
【０１７９】
本発明は、プリンタや複合機等の画像形成装置に用いられ、入力画像情報から印刷データを生成する画像処理部などのように、マイクロプロセッサを用いて情報を処理するプロセッサシステムに適用できる。
【図面の簡単な説明】
【０１８０】
【図１】本発明に係わる画像形成装置の機能構成を示すブロック図。
【図２】実施例１に係わるプロセッサシステムの機能構成を示すブロック図。
【図３】実施例１に係わるプロセッサのＨＷプロファイル情報の一例を示す表図。
【図４】プロセッサのデータ処理動作を示すフローチャート。
【図５】実施例１に係わるシステムの動作周波数可変設定制御の処理動作を示すフローチャート。
【図６】実施例２に係わるシステムの機能構成を示すブロック図。
【図７】実施例２に係わるシステムの各プロセッサ間のデータ処理の流れを示す概念図。
【図８】実施例２に係わる各プロセッサのＨＷプロファイル情報の一例を示す表図。
【図９】実施例１に係わるシステムの動作周波数可変設定制御の処理動作を示すフローチャート。
【図１０】実施例２に係わる各プロセッサの通常動作周波数での稼働率の算出値を示す表図。
【図１１】実施例２に係わる各プロセッサの動作周波数再配分後の稼働率の算出値を示す表図。
【図１２】実施例２に係わるシステムの各プロセッサ間のデータ処理の流れを示す概念図。
【図１３】実施例３に係わる各プロセッサの通常動作周波数での稼働率の算出値を示す表図。
【図１４】実施例３に係わる各プロセッサの動作周波数再配分後の稼働率の算出値を示す表図。
【図１５】実施例４に係わる各プロセッサのＨＷプロファイル情報の一例を示す表図。
【図１６】実施例４に係わる各プロセッサの実力値以下の周波数と通常動作周波数での稼働率の算出値を示す表図。
【符号の説明】
【０１８１】
１０…画像形成装置、１２…読取部、１３…記憶部、１４…画像形成部、１５…表示／操作部、１６…制御部、１６１…画像処理部、１７…通信インタフェース（Ｉ／Ｆ）部、１００，１００Ｂ，１００Ｃ…プロセッサシステム、１０１，１０１ａ，１０１ｂ，１０１ｃ…プロセッサ、１１１…演算回路、１１２…クロック生成部、１１３，１１３ａ，１１３ｂ，１１３ｃ…ハードウェア（ＨＷ）プロファイル保持部、１０２，１０２ｂ…クロック周波数管理部、１２１，１２１ｂ…稼働率管理テーブル（ＴＢ）、１０３，１０３ａ，１０３ｂ，１０３ｃ…温度検出部、２００…外部記憶装置、３００…プリンタエンジン部、６０…外部装置（ＰＣ：パーソナル・コンピュータ）
【図１】
2009230670.tif 000003
【図２】
2009230670.tif 000004
【図３】
2009230670.tif 000005
【図４】
2009230670.tif 000006
【図５】
2009230670.tif 000007
【図６】
2009230670.tif 000008
【図７】
2009230670.tif 000009
【図８】
2009230670.tif 000010
【図９】
2009230670.tif 000011
【図１０】
2009230670.tif 000012
【図１１】
2009230670.tif 000013
【図１２】
2009230670.tif 000014
【図１３】
2009230670.tif 000015
【図１４】
2009230670.tif 000016
【図１５】
2009230670.tif 000017
【図１６】
2009230670.tif 000018