JP2009230670A - プロセッサシステム - Google Patents

プロセッサシステム Download PDF

Info

Publication number
JP2009230670A
JP2009230670A JP2008078155A JP2008078155A JP2009230670A JP 2009230670 A JP2009230670 A JP 2009230670A JP 2008078155 A JP2008078155 A JP 2008078155A JP 2008078155 A JP2008078155 A JP 2008078155A JP 2009230670 A JP2009230670 A JP 2009230670A
Authority
JP
Japan
Prior art keywords
processor
frequency
operating
clock
processors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008078155A
Other languages
English (en)
Inventor
Masaki Nudeshima
正起 ヌデ島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2008078155A priority Critical patent/JP2009230670A/ja
Publication of JP2009230670A publication Critical patent/JP2009230670A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 動作周波数を上限周波数までの範囲内で動的に切り替えることにより、省電力を図りながら処理効率を向上させることができるようにする。
【解決手段】 ハードウェア(HW)プロファイル保持部113は、プロセッサ101の定格周波数及び上限周波数を含むプロファイル情報を保持する。クロック周波数管理部102は、演算回路111での画像データの処理に際し、プロセッサ101の演算動作時間とアイドル時間とから該プロセッサ101の稼働率を検出し、該稼働率が100パーセントとなった時、HWプロファイル保持部113に保持された定格周波数と上限周波数に基づき、該プロセッサ101の動作周波数を、上限周波数の範囲内で、かつ、定格周波数よりも高い値に可変設定する。
【選択図】 図2

Description

本発明は、プロセッサシステムに関する。
マイクロプロセッサを用いる各種の情報処理装置において、マイクロプロセッサによる情報処理効率を高めるための種々の技術が提案されている。
例えば、下記特許文献1には、マルチプロセッサシステムにおいて、処理効率を低下させることなく、全体の消費電力を低下させるために、待機中のプロセッサのみを規格で保証されている最低動作周波数に近い周波数で稼動する技術が開示されている。
また、下記特許文献2には、処理すべきデータ量に応じて高速処理が必要か否かを判断し、該判断結果に基づきクロック周波数を制御する手段を備え、低消費電力化、低輻射ノイズ化を実現する情報処理装置が開示されている。
特開平4−88515号公報 特開平5−27867号公報
本発明は、高負荷時に、動作周波数を上限周波数までの範囲内で動的に切り替えることにより、省電力を図りながら処理効率を向上させることができるプロセッサシステムを提供することを目的とする。
上記目的を達成するために、請求項1記載のプロセッサシステムの発明は、設定された動作周波数のクロックで動作し、入力情報を処理するプロセッサと、前記プロセッサの定格周波数及び上限周波数を含む動作特性を保持する保持手段と、前記入力情報処理時の前記プロセッサの稼働率を検出する稼働率検出手段と、前記稼働率検出手段により検出された稼働率に基づき、前記プロセッサが高負荷状態であるか否かを判定する判定手段と、前記判定手段により前記プロセッサが高負荷状態であると判定された場合、前記動作周波数を、前記保持手段に保持される前記上限周波数の範囲内で、かつ、前記定格周波数よりも高い値に可変設定する可変設定手段とを具備する。
請求項2記載の発明は、上記請求項1記載の発明において、前記判定手段は、前記稼働率検出手段により検出された稼働率が100パーセントの時に前記プロセッサが高負荷状態であると判定し、前記可変設定手段は、前記動作周波数を上限周波数に設定する。
請求項3記載の発明は、上記請求項1または2記載の発明において、前記プロセッサの発熱温度を検出する温度検出手段を具備し、前記保持手段は、前記プロセッサの動作保証温度情報を更に保持し、前記可変設定手段は、前記温度検出手段により検出された前記プロセッサの温度が前記動作保証温度を超える場合、前記動作周波数を設定中の周波数よりも低い値に低下させる。
請求項4記載のプロセッサシステムの発明は、設定された動作周波数のクロックで動作し、入力情報を処理する複数のプロセッサと、前記各プロセッサの定格周波数及び上限周波数を含む動作特性をそれぞれ保持する保持手段と、前記入力情報処理時の前記各プロセッサの稼働率をそれぞれ検出する稼働率検出手段と、前記稼働率検出手段により検出された前記各プロセッサの稼働率に基づき、前記複数のプロセッサによる全体の処理効率低下の原因となるプロセッサが存在するか否かを判定する判定手段と、前記判定手段により前記全体の処理効率低下の原因となるプロセッサが存在すると判定された場合、該プロセッサの前記動作周波数を、前記保持手段に保持される当該プロセッサの前記上限周波数の範囲内で、かつ、前記定格周波数よりも高い値に可変設定する可変設定手段とを具備する。
請求項5記載の発明は、上記請求項4記載の発明において、前記各プロセッサは、前記入力情報を順次処理するために直列に接続され、前記判定手段は、前記直列接続における上流または下流側のプロセッサの稼働率が閾値を超え、かつ、該上流側のプロセッサの稼働率と下流側のプロセッサの稼働率との差が所定の値を超える場合に、該上流または下流側のプロセッサが前記全体の処理効率低下の原因となるプロセッサであると判定する。
請求項6記載の発明は、上記請求項4記載の発明において、前記各プロセッサは、前記入力情報を分散処理するために並列に接続され、前記判定手段は、各プロセッサのうちのいずれかのプロセッサの稼働率が閾値を超え、かつ、他のプロセッサの稼働率との差が所定の値を超える場合に、該稼働率が閾値を超えたプロセッサが前記全体の処理効率低下の原因となるプロセッサであると判定する。
請求項7記載の発明は、上記請求項4乃至6のいずれか記載の発明において、前記各プロセッサの発熱温度をそれぞれ検出する複数の温度検出手段を具備し、前記保持手段は、前記各プロセッサの動作保証温度情報をそれぞれ保持し、前記可変設定手段は、前記温度検出手段により検出された前記動作周波数を可変設定したプロセッサの温度が前記動作保証温度を超える場合、当該プロセッサに設定する前記動作周波数を設定中の周波数よりも低い値に低下させる。
請求項1記載のプロセッサステムの発明によれば、プロセッサが高負荷状態になった時、定格周波数を超え、上限周波数までの範囲内で動作周波数を設定することによりデータ処理効率を向上させることができる。
請求項2記載の発明によれば、請求項1記載の発明において、プロセッサの稼働率が100パーセントになった際に、上限周波数を動作周波数として設定してデータの処理効率を向上させることができる。
請求項3記載の発明によれば、請求項1または2記載の発明において、定格周波数を超える動作周波数でデータ処理する際に、プロセッサが動作保証温度を超えるまで発熱することを防止できる。
請求項4記載のプロセッサステムの発明によれば、マルチプロセッサシステムのあるプロセッサが高負荷状態になった時、該プロセッサを定格周波数を超え、上限周波数までの範囲内の動作周波数で動作させてボトルネックを解消し、他のプロセッサの稼働率アップによりシステム全体の処理効率を向上させることができる。
請求項5記載の発明によれば、請求項4記載の発明において、入力データをパイプライン処理する直列に接続された複数のプロセッサ間で上流または下流側がボトルネックとなってシステム全体の稼働率が低下することを解消できる。
請求項6記載の発明によれば、請求項4記載の発明において、入力データを分散処理する並列に接続された複数のプロセッサ間でいずれかのプロセッサがボトルネックとなってシステム全体の稼働率が低下することを解消できる。
請求項7記載の発明によれば、請求項4乃至6のいずれか記載の発明において、マルチプロセッサシステムを構成する各プロセッサを、定格周波数を超え、上限周波数までの範囲内の動作周波数で動作させてデータ処理する際、該プロセッサが動作保証温度を超えて発熱することを抑制し、システム全体の処理効率向上を図ることができる。
以下、本発明の実施形態について添付図面を参照して詳細に説明する。
図1は、本発明に係わる画像形成装置10の機能構成を示すブロック図である。
この画像形成装置10は、例えば、原稿読取(スキャン)、複写(コピー)、印刷(プリント)、FAX(ファクシミリ通信)等の機能を有する複合機を想定したものであり、図1に示すように、所定の読取位置(プラテン上)に載置される原稿Gの画像を読取り、電気的な画像信号(画像データ)に変換する読取部12、読取部12により原稿Gを読取走査して得られた画像データや、外部装置〔この例では、PC(パーソナル・コンピュータ)60〕から入力された画像データ、あるいは、動作プログラム等の各種情報を記憶する記憶部13、記憶部13に記憶された画像データを画像処理して得られる画像信号(印刷データ)に基づき電子写真プロセスを実行して記録媒体(記録用紙)に該印刷データに対応する画像を形成(印刷)する画像形成部14、タッチパネル機能を有する大型ビットマップディスプレイ等から成る表示/操作部15、スキャン、コピー、プリント及びFAX等の各機能に係わる該当各部の動作制御等、装置全体の制御を行なう制御部16、PC60との間での通信インタフェースを司る外部インタフェース(I/F)部17を備えて構成される。
この画像形成装置10において、制御部16には、記憶部13から画像データ(原稿スキャンデータや、PCから印刷指示されたデータ)を読出し、該画像データを画像処理して画像形成部14での画像形成プロセスへと出力する印刷データを生成する画像処理機能(画像処理部161)が備わる。
この制御部16における画像処理機能は、1または複数のマイクロプロセッサ(超小型処理装置:以下、プロセッサ)で構成されるプロセッサシステムを用いて実現される。
このプロセッサシステムでは、画像データの処理効率を高めるための構成上の特徴として、使用するプロセッサの定格周波数や、上限周波数を含むハードウェア(HW)プロファイル情報を保持する一方、画像データの処理に際し、プロセッサの演算動作時間とアイドル時間とから該プロセッサの稼働率を検出すると共に、該検出された稼働率に基づきプロセッサが高負荷状態であると判定された場合は、プロファイル情報として保持されている定格周波数と上限周波数を参照し、該プロセッサの動作周波数を、上限周波数の範囲内で、かつ、定格周波数よりも高い値に動的に可変設定するクロック周波数可変設定処理機能を備えている。
以下、図1に示す画像形成装置10に適用する本発明のプロセッサシステムの構成及び処理動作について各実施例を挙げて詳細に説明する。
図2は、実施例1に係わるプロセッサシステム100の機能構成を示すブロック図である。
このプロセッサシステム100は、情報処理命令に基づき外部記憶装置200から処理対象の情報を取り出して該情報の処理を行うプロセッサ101、該プロセッサ101に対する動作周波数の設定、稼働率の監視、稼働率に応じた動作周波数の動的な可変設定制御等、クロック周波数の管理を行うクロック周波数管理部102、プロセッサ101に密着(例えば、表面に)して設けられる温度検知センサから成り、該プロセッサ101の表面温度に対応する温度検知出力をクロック周波数管理部102に出力する温度検出部103から構成される。
プロセッサ101には、外部記憶装置200からの入力情報を演算処理する演算回路111、クロック周波数管理部102により設定される動作周波数に対応するクロックを生成し、演算回路111に動作クロックとして供給するクロック生成部112、不揮発性メモリから成り、プロセッサ101の定格周波数、実力動作周波数の上限値(上限周波数)、下限値、動作電圧、動作保証温度等のHWプロファイル(動作特性)情報を保持するHWプロファイル保持部113が備わる。
外部記憶装置200は、このプロセッサシステム100を実装する画像形成装置10(図1参照)の記憶部13に相当し、上述した原稿スキャンデータや、PCから印刷指示されたデータ等、処理対象となる画像データが一時的に記憶される。
演算回路111は、このプロセッサシステム100を実装する画像形成装置10(図1参照)の制御部16における画像処理部161に相当し、クロック生成部112により生成されたクロックに基づき動作し、情報処理命令(例えば、コピー開始指令、印刷開始指令等)に基づき、外部記憶装置200から上記画像データを読み込んで該画像データから印刷データを生成する画像処理を行う。
クロック周波数管理部102は、演算回路111における画像データの処理に際し、プロセッサ101の演算動作時間とアイドル時間とから該プロセッサ101の稼働率を検出する機能、該検出された稼働率をその時の動作周波数と共に稼働率管理テーブル(TB)121を用いて管理する機能、該検出された(管理機能により管理される)稼働率に基づき該プロセッサ101が高負荷状態であるか否かを判定する機能、高負荷状態であると判定された場合、HWプロファイル保持部113に保持されている定格周波数と上限周波数を参照し、プロセッサ101の動作周波数を、上限周波数の範囲内で定格周波数よりも高い値に動的に可変設定するクロック周波数可変設定機能を備えている。
また、上記クロック周波数可変設定機能については、温度検出部103からの温度検知出力に基づきプロセッサ101の温度を検出し、該検出された温度がHWプロファイル保持部113に保持されている動作保証温度を超えないように該プロセッサ101のクロック周波数(動作周波数)を可変制御する機能も併せ持っている。
図3は、HWプロファイル保持部113を用いたプロファイル情報の管理形態の一例を表図である。
図3に示すように、本実施例によれば、HWプロファイル保持部113は、プロセッサ101の定格周波数(=500MHz)、上限周波数実力値(=600MHz)、動作保証電圧(=1.6V)、動作保証温度(=摂氏120度)の各情報をプロファイル情報として保持する。
図3に例示するプロファイル情報からも分かるように、本実施例では、プロセッサ101に規定される動作周波数(定格周波数)とは別に、設計マージンも含めた動作周波数(上限周波数)が予め測定され、HWプロファイル保持部113に保持されている。
設計マージンとは、製造時のばらつきによりプロセッサの動作限界周波数がばらついても仕様を満たすようにとられたマージンを指している。
図4は、本実施例に係わるプロセッサシステム100におけるデータ処理動作を示すフローチャートである。
このデータ処理動作は、上述したコピー開始指令等の情報処理命令を受けることにより開始される。
上記情報処理命令を受けると、クロック周波数管理部102は、クロック生成部112に対して通常クロック(定格周波数)の設定を指示し(ステップS101)、クロック生成部112は、該設定指示に基づき定格周波数(500MHz)のクロックを発生し、演算回路111に送出(供給)する。
これにより、演算回路111は、クロック生成部112から供給される定格周波数(500MHz)のクロックで動作し、処理対象データの入力を待つ(ステップS102)。
ここで、外部記憶装置200から処理対象のデータが入力されると(ステップS102YES)、演算回路111は、設定中の通常クロックで動作して該入力データの処理を実行する(ステップS103)。
また、クロック周波数管理部102は、上記ステップS103でデータの処理が行われるのに合わせて、演算回路111の動作クロックの周波数可変設定制御を実行する(ステップS104)。
このステップS104での動作クロックの周波数可変設定制御においては、後で図5を参照して詳しく説明するように、プロセッサ101の稼働率がチェックされ、該稼働率に基づき高負荷状態であると判定される場合には、クロック生成部112に通常クロック(定格周波数)よりも高い周波数の設定を指示して演算回路111に供給する動作クロックを該設定指示した周波数(定格周波数を超える周波数)に可変制御する。
上記の如く、演算回路111でのデータ処理の実行(ステップS103)に合わせて動作周波数の可変設定制御(ステップS104)を実施しながら、クロック周波数管理部102は、上記入力データの処理が終了したか否かを監視する(ステップS105)。
ここで、処理が終了していないと判断された場合(ステップS105NO)、ステップS103のデータ処理、及び該データ処理に合わせたステップS104での動作周波数可変設定制御を実行すると共に、その後も、該データ処理が終了していないと判断されるうち(ステップS105NO)はステップS103、104のデータ処理、及び動作周波数可変設定制御を繰返し実施する。
そして、この間、データ処理が終了したと判断されると(ステップS105YES)、クロック周波数管理部102は、設定している動作クロックが通常クロック(定格周波数のクロック)である否かをチェックする(ステップS106)。
ここで、動作クロックが通常クロックでない(上記ステップS104で、動作周波数が、定格周波数を超える周波数に可変設定されていることにより)と判定された場合(ステップS106NO)は、該動作クロックを通常クロックに設定し直す処理を行った後(ステップS107)、一連の処理を終了し、動作クロックが通常クロックであると判定された場合(ステップS106YES)は、そのまま処理を終了する。
次に、図4のステップS104における動作周波数可変設定制御の処理動作について図5に示すフローチャートを参照して説明する。
図5に示すように、この動作周波数可変設定制御は、図4に示す一連の処理中、ステップS103においてデータ処理が実行される毎に実施される。
すなわち、図4のステップS103でデータ処理が実行されると、クロック周波数管理部102は、図5に示すフローチャートに従い、所定のインターバル時間毎に該データ処理動作時におけるプロセッサ101の稼働時間とアイドル時間を検出する(ステップS201,S202)。
その際、上記インターバル時間が経過したか否かをチェックし(ステップS203)、該インターバル時間が経過するまでは(ステップS203NO)、ステップS201,S202でのプロセッサ101の稼働時間とアイドル時間の検出処理を続ける。
そして、この間、上記インターバル時間が経過した場合(ステップS203YES)、クロック周波数管理部102は、上記ステップS201で検出されたプロセッサ101の稼働時間と上記ステップS202で検出されたアイドル時間の比から当該プロセッサ101の稼働率を検出する(ステップS204)。
次いで、該検出された稼働率に基づき、高負荷状態であるか否かを判定する。
本実施例では、高負荷状態であるか否かを判定する目安(閾値)として、例えば、稼働率が100パーセントであるか否かをチェックする(ステップS205)。
ここで稼働率が100パーセントでない場合、クロック周波数管理部102は、クロック生成部112に指示して演算回路111に供給する動作クロックの周波数を当該稼働率に応じて低下させるように可変制御し(ステップS208)、図4のステップ105へ移行する。
そして、図4のステップS105で処理が終了していないと判断された場合(ステップS105NO)、ステップS201に戻り、以後、該ステップS201以降のプロセッサ101の稼働率算出に係わる各処理(ステップS201〜ステップS205)を続行する。
この間、ステップS204で算出されたプロセッサ101の稼働率(所定インターバル時間内の)が100パーセントとなった場合(ステップS205YES)、クロック周波数管理部102は、クロック生成部112に指示して演算回路111に供給する動作クロックの周波数を通常クロック(定格周波数)よりも高い周波数に設定する、いわゆるオーバクロック設定制御を行う(ステップS206)。
このオーバクロック制御の具体例として、クロック周波数管理部102は、HWプロファイル保持部113から上限周波数の値(=600MHz)を読出したうえで、クロック生成部112に対して動作周波数として該上限周波数の設定を指示し、クロック生成部112から、これまで発生していた定格周波数のクロック(通常クロック)に代えて該上限周波数に相当する600MHzのクロックを発生させ、演算回路111に供給する。
このオーバクロック設定制御により、以後、演算回路111は、クロック生成部112から供給される上限周波数(600MHz)のクロックで動作し、入力データの処理を行う。
また、上記の如くオーバクロック設定制御(ステップS206)を実施した後、クロック周波数管理部102は、プロセッサ101の温度がプロセッサ101の動作保証温度を超えないように、ステップS207及びS208を経て、設定動作周波数を低下させる制御(クロック周波数低下制御)を行う。
具体的には、まず、温度検出部103から温度検知出力を取り込んでプロセッサ101の温度を検出する一方、HWプロファイル保持部113から動作保証温度(=摂氏120度:図3参照)の情報を読出し、検出されたプロセッサ101の温度が、読み出した動作保証温度よりも低いか高いかを判定する(ステップS207)。
ここで、プロセッサ101の温度が動作保証温度よりも低い場合は(ステップS207YES)、図4のステップS105の処理に進む。
これに対し、プロセッサ101の温度が動作保証温度以上の場合は(ステップS207NO)、動作周波数を現在の設定値(上記ステップS206でのオーバクロック設定制御により設定されたクロック周波数:この例では、上限周波数)よりも低いクロック周波数に可変制御するクロック周波数低下制御を行なった(ステップS208)後、図4のステップS105の処理へ進む。
上記ステップS208でのクロック周波数低下制御において、クロック周波数管理部102は、クロック生成部112に対して上限周波数よりも所定の値だけ低い周波数(但し、定格周波数よりは高い周波数:例えば、550MHz)の設定を指示し、該クロック生成部112から当該設定指示した周波数の動作クロックを発生させて演算回路111に供給する。
以後、演算回路111は、クロック生成部112から供給される動作クロック(550MHz)のクロックで動作し、入力データの処理を行う。
その際のプロセッサ101の温度は、上限周波数のクロックで動作していた場合に比べて小さい値に抑えられ、動作保証温度内の状態で効率の良い(但し、上限周波数設定時よりは効率が低下する)データ処理が行える。
本実施例によれば、通常クロック(定格周波数)でのデータ処理動作実行中に算出されたプロセッサ101の稼働率が設定値を超えることにより高負荷状態であると判定された場合に、動作周波数を上限周波数実力値までの範囲内で定格周波数より高い値に可変制御し、処理速度を上げることで高負荷時の処理効率を向上させることができる。
また、動作保証温度近くまで発熱した際には設定する動作周波数を低下させる制御を行なうことで、定格周波数から上限周波数までの帯域のクロックを流動的に可変設定して高速、かつ、電力消費の少ないデータ処理が実現できる。
図6は、実施例2に係わるプロセッサシステム100Bの機能構成を示すブロック図である。
図6において、実施例1に係わるプロセッサシステム100(図2参照)の各機能部と同一の機能を果たす機能部には同一の符号を付している。
このプロセッサシステム100Bは、実施例1に係わるプロセッサシステム100のプロセッサ101とそれぞれ同等の機能ブロック構造(演算回路111、クロック生成部112、HWプロファイル保持部113の各機能部を備える)から成り、演算回路111のデータ処理能力がそれぞれ異なる3つのプロセッサ101a,101b,101cをクロック周波数管理部102b及び外部記憶装置200に接続して構成される。
また、このプロセッサシステム100Bでは、各プロセッサ101a,101b,101cにそれぞれ対応して、該各プロセッサ101a,101b,101cの温度を個別に検出する温度検出部103a,103b,103c(実施例1に係わる温度検出部103と同等の構成を有する)が設けられる。
本実施例のプロセッサシステム100Bにおいて、各プロセッサ101a,101b,101cは、外部記憶装置200から入力する処理対象のデータを、それぞれが協働し、それぞれのデータ処理能力で処理する。
図7は、本実施例のプロセッサシステム100Bにおける各プロセッサ101a,101b,101cのデータ処理上の接続態様を示す概念図である。
図7に示すように、各プロセッサ101a,101b,101cはデータの入力側である外部記憶装置200と出力側であるプリンタエンジン部(画像形成装置10の画像形成部14に相当)300間に直列に接続され、外部記憶装置200から入力されるデータを、プロセッサ101aから101b、プロセッサ101bから101c、プロセッサ101cから外部記憶装置200へという流れでパイプライン処理(直列処理)する方式の接続形態を有する。
本実施例のプロセッサシステム100Bでは、上記パイプライン処理方式の接続形態において、例えば、パイプライン処理の上流側ほど、高い処理能力のプロセッサが配置されている。
各プロセッサ101a,101b,101cに設けられるHWプロファイル保持部113a,113b,113cには、それぞれ、当該各プロセッサ101a,101b,101cのプロファイル情報が保持されている。
図8は、各プロセッサ101a,101b,101cのHWプロファイル保持部113a,113b,113cを用いたプロファイル情報の管理形態を示す表図である。
図8(a)に示すように、プロセッサ101aのHWプロファイル保持部113aには、該プロセッサ101aの定格周波数(=500MHz)、上限周波数実力値(=600MHz)、動作保証電圧(=1.6V)、動作保証温度(=摂氏120度)の各情報がプロファイル情報として保持される。
図8(b)に示すように、プロセッサ101bのHWプロファイル保持部113bには、該プロセッサ101bの定格周波数(=300MHz)、上限周波数実力値(=350MHz)、動作保証電圧(=1.5V)、動作保証温度(=摂氏100度)の各情報がプロファイル情報として保持される。
図8(c)に示すように、プロセッサ101cのHWプロファイル保持部113cには、該プロセッサ101cの定格周波数(=200MHz)、上限周波数実力値(=250MHz)、動作保証電圧(=1.2V)、動作保証温度(=摂氏80度)の各情報がプロファイル情報として保持される。
図8に例示する各プロセッサ101a,101b,101cのプロファイル情報からも分かるように、本実施例では、各プロセッサ101a,101b,101c毎に、規定される動作周波数(定格周波数)とは別に、設計マージンも含めた動作周波数(上限周波数)が予め測定され、該当するHWプロファイル保持部113a,113b,113cに保持されている。
クロック周波数管理部102bは、上記各プロセッサ101a,101b,101cによる入力データの処理(パイプライン処理)に際し、各プロセッサ101a,101b,101c毎に、その演算動作時間とアイドル時間とから稼働率を検出する機能、該検出された各プロセッサ101a,101b,101cの稼働率を、その時の当該各プロセッサの動作周波数と共に稼働率管理テーブル(TB)121bを用いて管理する機能、該検出された(管理機能により管理される)各プロセッサ101a,101b,101cの稼働率に基づき、当該各プロセッサ101a,101b,101cの全てを用いた全体の処理効率低下の原因(ボトルネック)となるプロセッサが存在するか否かを判定する機能、処理効率低下のボトルネックとなるプロセッサ、例えば、101aが存在する場合、該プロセッサ101aのHWプロファイル保持部113aに保持されているプロファイル情報(定格周波数と上限周波数)を参照し、プロセッサ101aの動作周波数を、上限周波数の範囲内で定格周波数よりも高い値に動的に可変設定するクロック周波数管理機能を備えている。
また、上記クロック周波数可変設定機能については、温度検出部103a,103b,103cからのそれぞれの温度検知出力に基づきプロセッサ101a,101b,101cの温度を個々に検出し、該検出された各プロセッサ101a,101b,101cの温度が対応するHWプロファイル保持部113a,113b,113cに保持されているそれぞれに動作保障温度を超えないように該当する各プロセッサ101a,101b,101cのクロック周波数(動作周波数)を可変制御する機能も併せ持っている。
本実施例のプロセッサシステム100Bにおけるデータ処理動作は、各プロセッサ101a,101b,101cがパイプライン処理を行う以外は、基本的は、実施例1と同様、図4に示すプローチャートに沿った流れで実施されるため、ここでの詳しい説明は割愛する。
ここでは、本実施例のプロセッサシステム100Bのクロック周波数管理部102bが図4のステップS104で実施する動作周波数可変設定制御について詳しく説明する。
図9は、本実施例のプロセッサシステム100Bの動作周波数可変設定処理動作を示すフローチャートである。
図9に示すように、本実施例のプロセッサシステム100Bの動作周波数可変設定制御は、図4に示す一連の処理中、ステップS103においてデータ処理が実行される毎に実施される。
すなわち、図4のステップS103で各プロセッサ101a,101b,101cによるデータのパイプライン処理が実行されると(この時、各プロセッサ101a,101b,101cは、それぞれ、通常クロック(500MHz,300MHz,200MHz)で動作している)、クロック周波数管理部102bは、図9に示すフローチャートに従い、所定のインターバル時間毎に該データ処理動作時における各プロセッサ101a,101b,101cの稼働時間とアイドル時間をそれぞれ検出する(ステップS301,S302)。
その際、上記インターバル時間が経過したか否かをチェックし(ステップS303)、該インターバル時間が経過するまでは(ステップS303NO)、ステップS301,S302での各プロセッサ101a,101b,101c別の稼働時間とアイドル時間の検出処理を続ける。
そして、この間、上記インターバル時間が経過した場合(ステップS303YES)、クロック周波数管理部102bは、各プロセッサ101a,101b,101c別に上記ステップS301で検出された稼働時間と上記ステップS302で検出されたアイドル時間のそれぞれの比から、当該各プロセッサ101a,101b,101c別の稼働率を検出する(ステップS304)。
次いで、該検出された各プロセッサ101a,101b,101c別の稼働率に基づき、当該システムが高負荷状態に陥り、該高負荷状態の原因となる(全体の処理効率低下のボトルネックとなる)プロセッサが存在するか否かを判定する(ステップS305)。
本実施例では、高負荷状態であるか否かを判定する目安(閾値)として、例えば、プロセッサ101a,101b,101cのいずれかの稼働率が100パーセントであるか否かをチェックする。
ここで、高負荷状態であることが判明した場合、該高負荷状態のプロセッサの稼働率(この例では、100パーセント)と、パイプライン処理上、該高負荷状態のプロセッサの上流または下流側にあるプロセッサの稼働率との間に所定の値以上の差がある場合に、該高負荷状態のプロセッサ(上流側のプロセッサ)を処理効率低下のボトルネックとなるプロセッサとして認識する。
かかる処理により、上記ステップS305において、処理効率低下のボトルネックとなるプロセッサが存在しないと判定されると(ステップS305NO)、クロック周波数管理部102bは、プロセッサ101a,101b,101cの各クロック生成部112に指示して、それぞれ対応する各演算回路111に供給する動作クロックの周波数を当該各稼働率に応じて低下させるように可変制御し(ステップS308)、図4のステップ105へ移行する。
そして、図4のステップS105で処理が終了していないと判断された場合(ステップS105NO)、ステップS301に戻り、以後、該ステップS301以降の各プロセッサ101a,101b,101c別の稼働率算出に係わる各処理(ステップS301〜ステップS304)を続行する。
この間、ステップS304で算出された各プロセッサ101a,101b,101c別の稼働率(所定インターバル時間内の)に基づき、処理効率低下のボトルネックとなるプロセッサ、例えば、101aが存在すると判定された場合(ステップS305YES)、クロック周波数管理部102bは、該プロセッサ101aのクロック生成部112に指示して演算回路111に供給する動作クロックの周波数を通常クロックよりも高い周波数に設定する、いわゆるオーバクロック設定制御を行う(ステップS306)。
このオーバクロック制御の具体例として、クロック周波数管理部102bは、プロセッサ101aのHWプロファイル保持部113a〔図8(a)参照〕から上限周波数の値(=600MHz)を読出したうえで、クロック生成部112に対して動作周波数として該上限周波数の設定を指示し、クロック生成部112から、これまで発生していた定格周波数のクロック(通常クロック=500MHz)に代えて該上限周波数に相当する600MHzのクロックを発生させ、演算回路111に供給する。
このオーバクロック設定制御により、以後、プロセッサ101aの演算回路111は、クロック生成部112から供給される上限周波数(600MHz)のクロックで動作し、入力データの処理を行う。
また、上記の如くオーバクロック設定制御(ステップS306)を実施した後、クロック周波数管理部102bは、オーバクロック設定した当該プロセッサ101aの温度が該プロセッサ101aの動作保証温度(=摂氏120度)を超えないように、ステップS307及びS308を経て、設定動作周波数を低下させる制御(クロック周波数低下制御)を行う。
具体的には、まず、オーバクロック設定したプロセッサ101aに対応する温度検出部103aから温度検知出力を取り込んでプロセッサ101aの温度を検出する一方、HWプロファイル保持部113aから動作保証温度〔=摂氏120度:図8(a)参照〕の情報を読出し、検出されたプロセッサ101aの温度が、読み出した動作保証温度よりも低いか高いかを判定する(ステップS307)。
ここで、プロセッサ101aの温度が動作保証温度よりも低い場合は(ステップS307YES)、図4のステップS105の処理に進む。
これに対し、プロセッサ101aの温度が動作保証温度以上の場合は(ステップS307NO)、動作周波数を現在の設定値(上記ステップ306でのオーバクロック設定制御により設定されたクロック周波数:この例では、上限周波数)よりも低いクロック周波数に可変制御するクロック周波数低下制御を行なった(ステップS308)後、図4のステップS105の処理へ進む。
上記ステップS308でのクロック周波数低下制御において、クロック周波数管理部102bは、プロセッサ101aのクロック生成部112に対して上限周波数よりも所定の値だけ低い周波数(但し、定格周波数よりは高い周波数:例えば、550MHz)の設定を指示し、該クロック生成部112から当該設定指示した周波数の動作クロックを発生させて演算回路111に供給する。
以後、演算回路111は、クロック生成部112から供給される動作クロック(550MHz)のクロックで動作し、入力データの処理を行う。
その際のプロセッサ101aの温度は、上限周波数のクロックで動作していた場合に比べて低く抑えられ、動作保証温度内の状態で効率の良い(但し、上限周波数設定時よりは効率が低下する)データ処理が行える。
ここで、上記ステップS304で検出された各プロセッサ101a,101b,101cの稼働率と、該検出された各稼働率に基づく上記ステップS305、S306を経たオーバクロック設定制御の具体例について説明する。
上述したように、本実施例のプロセッサシステム100Bにおいて、各プロセッサ101a(プロセッサA),101b(プロセッサB),101c(プロセッサC)は、アイドル時及び低負荷時にはそれぞれの定格周波数(500MHz,300MHz,200MHz)のクロックで駆動され、外部記憶装置200に格納されている一連の画像データを、プロセッサAからB、プロセッサBからCというようにパイプライン処理する(図7参照)。
その際、プロセッサAは、情報処理命令を受けると、外部記憶装置200に格納されている画像データに対して一定の画像処理を行い、該処理結果をプロセッサBに転送する。
同様に、プロセッサBは、一定の画像処理を行い、該処理結果をプロセッサCに転送する。
更に、プロセッサCは、一定の画像処理を行い、該処理結果を外部記憶装置200に出力する。
上述した、各プロセッサA,B,Cによる画像データの処理が実行されている間、クロック周波数管理部102bは、各プロセッサA,B,Cそれぞれのアイドル時間と稼働時間を観測することにより、当該各プロセッサA,B,Cの稼働率を検出する。
各プロセッサA,B,Cの稼働率は、処理対象のデータ量やデータ特性、あるいは処理内容等により変化する。
ここで、各プロセッサA,B,Cについて、例えば、図10の表図に示すような稼働率が得られた場合について考えてみる。
図10は、各プロセッサA,B,Cが、それぞれ、通常クロック(500MHz,300MHz,200MHz)で動作してデータの並列処理している時のあるタイミングに、図9のステップS304で検出され、クロック周波数管理部102bの稼働率管理テーブル121bによって管理される当該各プロセッサA,B,Cの稼働率の値を示す表図である。
図10に示す表図によれば、プロセッサA(101a)が稼働率100パーセント(高負荷状態)であって、パイプライン処理構造上、その下流側のプロセッサBの稼働率が60パーセントであり、かつ、上流側のプロセッサAの稼働率(100パーセントとの間に所定値(閾値:例えば、30パーセント)以上の差があることから、この場合、クロック周波数管理部102bは、図9のステップS305において、当該プロセッサAの稼働率と、該プロセッサAとその下流側のプロセッサBとの稼働率の差(上記閾値以上の開きがある)から、プロセッサAが処理効率低下のボトルネックになっているもの(プロセッサAに一時的なボトルネックが存在する)と判定する。
そして、図9のステップS306では、このボトルネックになっているプロセッサAに対してオーバクロック設定制御を実施する。
ここで、プロセッサAに対して、例えば、定格周波数(=500MHz)から上限周波数(=600MHz)へのオーバクロック設定がなされることにより、該オーバクロック設定を行なってから所定巡回目のインターバル時間を経過したタイミングに、図9のステップS304で再び検出され、クロック周波数管理部102bの稼働率管理テーブル121bによって管理される当該各プロセッサ101a,101b,101cの稼働率が、例えば、図11の表図に示す値となる。
図10及び図11に示す各表図によれば、定格周波数(=500MHz)のクロックで動作している時に稼働率が100パーセントに達したプロセッサAの動作周波数を上限周波数(=600MHz)まで上昇(オーバクロック設定)させた結果、該プロセッサAの処理能力の上昇によりボトルネック状態が解消され、当該プロセッサAからプロセッサBへ転送されるデータ量が増加することによりプロセッサB、Cのアイドル時間が短縮され、当該各プロセッサB,Cの稼働率が、それぞれ、60パーセントから80パーセント、80パーセントから95パーセントへと共に上がる結果、システム全体の処理効率が向上する様子が分かる。
クロック周波数管理部102bは、各プロセッサA,B,Cの稼働率が、図11の表図に示す通りの値になると、稼働率の差が所定値(例えば、20パーセント)より少なくなったことからボトルネックが解消されたと判断し、一連の画像処理が終了するまで、各温度検出部130a,103b,103cにより検出される各プロセッサA,B,Cの温度を監視しつつ(ステップS307)、当該各プロセッサA,B,Cに対するクロック配分を維持する。
この間、各プロセッサA,B,Cの温度がそれぞれの動作保証温度を超えそうな場合は、該当するプロセッサのクロックを低下させるように制御する(ステップS308)。
そして、上記一連の画像処理が終了し、各プロセッサA,B,Cがアイドル状態に戻ったと判断された場合は、該各プロセッサA,B,Cの動作周波数を、ぞれぞれ、定格周波数に戻す制御を行なう(図4のステップ106NO,S107)。
本実施例では、プロセッサ101a,101b,101cから成るマルチプロセッサシステムにおいて、クロック周波数管理部102bは、パイプライン処理上、上流側のプロセッサの稼働率が予め設定したある閾値を超え、かつ、下流側のプロセッサの稼働率が上流側のプロセッサの稼働率よりも所定の値以上小さい場合にボトルネックが発生していると判断し、該ボトルネックの原因であると判断されたプロセッサの動作周波数を、例えば、通常時に用いる定格周波数から上限周波数のクロックへとオーバクロックさせ、該上限周波数のクロックでの動作による当該プロセッサの処理能力向上に追従させて下流側のプロセッサの稼働率を高くし、実質的にシステム全体の処理能力を向上させる。
実施例3に係わるプロセッサシステム(便宜的に100Cと呼称)は、実施例2に係わるプロセッサシステム100B(図6参照)と同様、3つのプロセッサ101a,101b,101c、該各プロセッサ101a,101b,101cの温度をそれぞれ検出する温度検出部103a,103b,103c、及びクロック周波数管理102bを備えて構成される。
本実施例において、各プロセッサ101a,101b,101cは、情報処理命令に基づき、外部記憶装置200からの入力データをそれぞれ処理するが、該処理方式が実施例2に係わるパイプライン処理方式とは異なっている。
図12は、本実施例のプロセッサシステム100Cにおける各プロセッサ101a,101b,101cのデータ処理上の接続態様を示す概念図である。
図12に示すように、各プロセッサ101a,101b,101cは、データの入力側である外部記憶装置200と出力側であるプリンタエンジン部(画像形成装置10の画像形成部14に相当)300間に並列に接続され、外部記憶装置200から入力されるデータを、各プロセッサ101a,101b,101cが並列に処理すると共に、プロセッサ101aが各プロセッサ101a,101b,101cの処理結果データをマージして(まとめて)プリンタエンジン部300に出力する、いわゆる並列処理方式の接続形態を有する。
本実施例のプロセッサシステム100Cにおけるデータ処理動作は、基本的には、実施例1と同様、図4に示すフローチャートに沿った流れで実施される。
但し、図4に示す一連の処理中、ステップS103で各プロセッサ101a,101b,101cが行うデータ処理は、図12に示す通りの並列処理となる。
また、本実施例のプロセッサシステム100Cのクロック周波数管理部102bが図4のステップS104において実施する動作周波数可変制御も、基本的には、実施例2と同様、図9に示すフローチャートに沿った流れで実施される。
但し、図9に示す一連の処理中、ステップS305、及びS306で実施される、ボトルネックとなるプロセッサを判定して当該プロセッサに対してオーバクロック設定を行う処理については、各プロセッサ101a,101b,101cが、図12に示した並列処理に対応した特有の処理を行う。
以下、図4及び図9を援用し、本実施例のプロセッサシステム100Cにおける処理動作について、本実施例に特有な処理ステップ(図4のステップS104、図9のステップS305及びS306)を主体に説明する。
ここで、各プロセッサ101a,101b,101cに設けられるHWプロファイル保持部113a,113b,113cには、それぞれ、例えば、実施例2と同様のプロファイル情報(図8参照)が保持されているものとする。
本実施例のプロセッサシステム100Cでは、図4のステップS103において、各プロセッサ101a,101b,101cは、情報処理命令に基づき、外部記憶装置200からの一連のデータ中のそれぞれ該当する部分のデータを取り込んで分散処理し、画像処理を並列に遂行する。
図4のステップS103で上記の如くの入力データの分散処理が行われると、これに合わせて、図9に示す一連の動作周波数可変設定制御(図4のステップS104に相当)を実行する。
すなわち、図4のステップS103で各プロセッサ101a,101b,101cによるデータの並列処理が実行されると〔この時、各プロセッサ101a,101b,101cは、それぞれ、通常クロック(500MHz,300MHz,200MHz)で動作している〕、クロック周波数管理部102bは、図9に示すフローチャートに従い、ステップS301〜S303を経て、所定のインターバル時間間隔毎に、各プロセッサ101a,101b,101cの稼働率を算出する(ステップS304)。
次いで、クロック周波数管理部102bは、該検出された各プロセッサ101a,101b,101c別の稼働率に基づき、当該システムが高負荷状態に陥り、該高負荷状態の発生原因となる(ボトルネックとなる)プロセッサが存在するか否かを判定する(ステップS305)。
本実施例では、高負荷状態であるか否かを判定する目安(閾値)として、例えば、プロセッサ101a,101b,101cのいずれかの稼働率が100パーセントであるか否かをチェックする。
ここで、あるプロセッサが高負荷状態であることが判明した場合、該高負荷状態のプロセッサの稼働率(この例では、100パーセント)と、並列接続された他のプロセッサの稼働率との間に所定の値以上の差があるどうかをチェックし、高負荷状態のプロセッサの稼働率(100パーセント)と、他のプロセッサの稼働率との間に所定の値以上の差がある場合は、該高負荷状態のプロセッサを、並列処理上の高負荷状態を発生させる(ボトルネックとなる)プロセッサとして判定する。
かかる処理により、上記ステップS305において、処理効率低下のボトルネックとなるプロセッサが存在しないと判定されると(ステップS305NO)、クロック周波数管理部102bは、実施例2と同様、各プロセッサ101a,101b,101cの動作周波数を当該各稼働率に応じて低下させるように可変制御し(ステップS308)、図4のステップ105へ移行する。
そして、図4のステップS105で処理が終了していないと判断された場合(ステップS105NO)、ステップS301に戻り、以後、該ステップS301以降の各プロセッサ101a,101b,101c別の稼働率算出に係わる各処理(ステップS301〜ステップS304)を続行する。
この間、ステップS304で算出された各プロセッサ101a,101b,101c別の稼働率(所定インターバル時間内の)に基づき、処理効率低下のボトルネックとなるプロセッサ、例えば、101bが存在すると判定された場合(ステップS305YES)、クロック周波数管理部102bは、実施例2と同様、該プロセッサ101bに対するオーバクロック設定制御を行う(ステップS306)。
このオーバクロック制御の具体例として、クロック周波数管理部102bは、プロセッサ101bのHWプロファイル保持部113b〔図8(b)参照〕から上限周波数の値(=350MHz)を読出したうえで、クロック生成部112に対して動作周波数として該上限周波数の設定を指示し、クロック生成部112から、これまで発生していた定格周波数のクロック(通常クロック=300MHz)に代えて該上限周波数に相当する350MHzのクロックを発生させ、演算回路111に供給する。
このオーバクロック設定制御により、以後、プロセッサ101bの演算回路111は、クロック生成部112から供給される上限周波数(350MHz)のクロックで動作し、入力データの処理を行う。
また、上記の如くオーバクロック設定制御(ステップS306)を実施した後、クロック周波数管理部102bは、実施例2と同様、該オーバクロック設定した当該プロセッサ101bに対し、温度検出部103bにより検出された温度が、プロセッサ101bのHWプロファイル保持部113bから読み出した動作保証温度〔=摂氏100度:図8(b)参照〕を超える場合のクロック周波数低下制御を行う(ステップS307,S308)。
上記ステップS308でのクロック周波数低下制御において、クロック周波数管理部102bは、プロセッサ101bのクロック生成部112に対して上限周波数よりも所定の値だけ低い周波数(但し、定格周波数よりは高い周波数:例えば、320MHz)の設定を指示し、該クロック生成部112から当該設定指示した周波数の動作クロックを発生させて演算回路111に供給する。
以後、演算回路111は、クロック生成部112から供給される動作クロック(320MHz)のクロックで動作し、入力データの処理を行う。
その際のプロセッサ101bの温度は、上限周波数(350MHz)のクロックで動作していた場合に比べて低く抑えられ、動作保証温度内の状態で効率の良い(但し、上限周波数設定時よりは効率が低下する)データ処理が行える。
ここで、上記ステップS304で検出された各プロセッサ101a,101b,101cの稼働率と、該検出された各稼働率に基づく上記ステップS305、S306を経たオーバクロック設定制御の具体例について説明する。
上述したように、本実施例のプロセッサシステム100Cにおいて、各プロセッサ101a(プロセッサA),101b(プロセッサB),101c(プロセッサC)は、アイドル時及び低負荷時にはそれぞれの定格周波数(500MHz,300MHz,200MHz)のクロックで駆動され、情報処理命令を受けると、外部記憶装置200に格納されている画像データに対し、それぞれに割当てられた一定の画像処理を行い(分散処理)、それぞれの処理結果を、再び、外部記憶装置200へ出力する、若しくは印刷処理を行う。
各プロセッサA,B,Cの管理は、処理能力の高いプロセッサAが担当すると共に、並列処理が困難な処理もプロセッサAが担当する。
各プロセッサA,B,Cの処理が一定量終了すると、プロセッサAは、外部記憶装置200に格納された当該各プロセッサA,B,Cの処理結果をマージし、外部(プリンタエンジン部300:図12参照)へ出力するが、正常な出力を実現するためには、各プロセッサA,B,Cからの出力データが全て揃う必要がある。
そのため、各プロセッサA,B,Cの処理時間に大きな差がある場合には、外部への出力に際してアイドル時間が発生してしまうことになる。
このように、各プロセッサA,B,Cの処理時間に大きな差が生じる状況の一例として、当該各プロセッサA,B,Cにおいて、例えば、図13の表図に示すような稼働率が得られた場合について考えてみる。
図13は、各プロセッサA,B,Cが、それぞれ、通常クロック(500MHz,300MHz,200MHz)で動作してデータの並列処理している時のあるタイミングに、図9のステップS304で検出され、クロック周波数管理部102cの稼働率管理テーブル121bによって管理される当該各プロセッサ101a,101b,101cの稼働率の値を示す表図である。
図13に示す表図によれば、プロセッサB(101b)が稼働率100パーセント(高負荷状態)であって、並列接続された他のプロセッサA,及びCの稼働率が、それぞれ、80パーセント、70パーセントであり、所定値(閾値:例えば、20パーセント)以上の差があることから、この場合、クロック周波数管理部102bは、図9のステップS305において、当該各プロセッサA,B,Cの稼働率の差から、プロセッサBが高負荷状態のボトルネックになっているもの(プロセッサBに一時的なボトルネックが存在する)と判定する。
そして、図9のステップS306では、このボトルネックになっているプロセッサBに対してオーバクロック設定制御を実施する。
ここで、プロセッサBに対して、例えば、定格周波数(=300MHz)から上限周波数(=350MHz)へのオーバクロック設定がなされることにより、該オーバクロック設定を行なってから所定巡回目のインターバル時間を経過したタイミングに、図9のステップS304で再び検出され、クロック周波数管理部102bの稼働率管理テーブル121bによって管理される当該各プロセッサ101a,101b,101cの稼働率が、例えば、図14の表図に示す値となったものとする。
図13及び図14に示す各表図によれば、定格周波数(=300MHz)のクロックで動作している時に稼働率が100パーセントに達したプロセッサBの動作周波数を上限周波数(=350MHz)まで上昇(オーバクロック設定)させた結果、該プロセッサBの処理能力の上昇によりボトルネック状態が解消され、当該プロセッサBから出力されるデータ量が増加することによりプロセッサA、Cのアイドル時間が短縮され、当該各プロセッサA,Cの稼働率が、それぞれ、80パーセントから90パーセント、70パーセントから85パーセントへと共に上がる結果、システム全体の処理効率が向上する様子が分かる。
クロック周波数管理部102bは、各プロセッサA,B,Cの稼働率が、図14の表図に示す通りの値になると、稼働率の差が所定値(例えば、20パーセント)より少なくなったことからボトルネックが解消されたと判断し、一連の画像処理が終了するまで、各温度検出部130a,103b,103cにより検出される各プロセッサA,B,Cの温度を監視しつつ(ステップS307)、当該各プロセッサA,B,Cに対するクロック配分を維持する。
この間、各プロセッサA,B,Cの温度がそれぞれの動作保証温度を超えそうな場合は、該当するプロセッサのクロックを低下させるように制御する(ステップS308)。
そして、上記一連の画像処理が終了し、各プロセッサA,B,Cがアイドル状態に戻ったと判断された場合は、該各プロセッサA,B,Cの動作周波数を、ぞれぞれ、定格周波数に戻す制御を行なう(図4のステップ106NO,S107)。
本実施例では、プロセッサ101a,101b,101cから成るマルチプロセッサシステムにおいて、クロック周波数管理部102bは、並列接続されたプロセッサ101a,101b,101cのうちの1つのプロセッサの稼働率が予め設定したある閾値を超え、かつ、他のプロセッサの稼働率よりも所定の値以上の差がある場合に上記閾値を超えた稼動状態にあるプロセッサが原因でボトルネックが発生していると判断し、該ボトルネックの原因であると判断されたプロセッサの動作周波数を、例えば、通常時に用いる定格周波数から上限周波数のクロックへとオーバクロックさせ、該上限周波数のクロックでの動作による当該プロセッサの処理能力向上に追従させて他のプロセッサの稼働率を高くし、実質的にシステム全体の処理能力を向上させる。
実施例4に係わるプロセッサシステム(便宜的に100Dと呼称:不図示)において、システム構成、及び動作周波数可変設定制御動作は、実施例2と同様である。
但し、本実施例では、各プロセッサ101a,101b,101cに設けられるHWプロファイル保持部113a,113b,113cには、実施例2とは一部異なる値を有するプロファイル情報が保持されている。
図15は、本実施例に係わるプロセッサシステム100Dの各プロセッサ101a,101b,101cのHWプロファイル保持部113a,113b,113cが保持するプロファイル情報の一例を示す表図である。
図15(a)に示すように、プロセッサ101a(プロセッサA)のHWプロファイル保持部113aには、該プロセッサ101aの定格周波数(=500MHz)、上限周波数実力値(=480MHz)、動作保証電圧(=1.6V)、動作保証温度(=摂氏120度)の各情報がプロファイル情報として保持されている。
また、プロセッサ101b(プロセッサB)のHWプロファイル保持部113b、及びプロセッサ101c(プロセッサC)のHWプロファイル保持部113cには、図15(b)、及び図15(c)に示すように、それぞれ、実施例2と同じ値のプロファイル情報〔図8(b),(c)参照〕が保持されている。
図15(a)における、プロセッサ101aのHWプロファイル保持部113aに保持されるプロファイル情報中、定格周波数の値(=500MHz)、上限周波数実力値の値(=480MHz)からも分かるように、本実施例では、3つのプロセッサ101a,101b,101cのうち1つ(この例では、プロセッサ101a)が、生産時のばらつきにより定格周波数を満たしていないまま使用されるものである。
本来ならば、定格を満たしていないプロセッサ(チップ)は排除されるのが一般的であるが、本実施例では、出荷時に実力値を測定し、測定された実力値が定格周波数を満たしていない場合も、その測定された実力値以下の周波数で使用することで、全体の歩留まりの向上を図るものである。
図15(a)に示すプロファイル情報によれば、プロセッサAは、出荷時の検査により実力値(=480MHz)が定格周波数(=500MHz)を満たしておらず、実力値以下の周波数で動作させなければならない。
本実施例のマルチプロセッサシステム100Dの運用時、クロック周波数管理部102bで検出された(稼働率管理テーブル121bで管理される)、ある瞬間における各プロセッサ101a,101b,101cの動作周波数及び稼働率が図16の表図に示す値になった場合について考える。
図16に示す表図によれば、プロセッサA(101a)の稼働率が100パーセントとなっているが、該プロセッサAは、既に上限周波数実力値(=480MHz)の限界で動作しているため、これ以上クロック周波数を上げることはできない。
このようなプロセッサ(プロセッサA)の場合、高負荷時の瞬間的な処理能力向上は見込めない。
しかしながら、実力値を把握していない場合(HWプロファイル保持部113を有しない構成の場合)、このプロセッサは使用されないことになるため、歩留まりの向上に何等貢献し得ないが、本実施例の如く、プロセッサ101にHWプロファイル保持部113を設けて該プロセッサ101の実力値のクロック周波数以下でも動作させ得ることは、歩留まりを改善する結果に繋がる。
この他、本発明は、上記し、且つ図面に示す実施例に限定することなく、その要旨を変更しない範囲内で適宜変形して実施できるものである。
例えば、上述の各実施例では、算出した稼働率が100パーセントの時に高負荷状態であると判定し、プロセッサ101(あるいは、プロセッサ101a,101b,101c)の動作周波数として上限周波数を設定する例を挙げたが、これに限らず、高負荷状態であると判定するための稼働率は予め設定した他の値でも良く、また、高負荷状態の時に設定する(再配分する)動作周波数も、定格周波数から上限周波数の間の任意の周波数としても良い。
本発明は、プリンタや複合機等の画像形成装置に用いられ、入力画像情報から印刷データを生成する画像処理部などのように、マイクロプロセッサを用いて情報を処理するプロセッサシステムに適用できる。
本発明に係わる画像形成装置の機能構成を示すブロック図。 実施例1に係わるプロセッサシステムの機能構成を示すブロック図。 実施例1に係わるプロセッサのHWプロファイル情報の一例を示す表図。 プロセッサのデータ処理動作を示すフローチャート。 実施例1に係わるシステムの動作周波数可変設定制御の処理動作を示すフローチャート。 実施例2に係わるシステムの機能構成を示すブロック図。 実施例2に係わるシステムの各プロセッサ間のデータ処理の流れを示す概念図。 実施例2に係わる各プロセッサのHWプロファイル情報の一例を示す表図。 実施例1に係わるシステムの動作周波数可変設定制御の処理動作を示すフローチャート。 実施例2に係わる各プロセッサの通常動作周波数での稼働率の算出値を示す表図。 実施例2に係わる各プロセッサの動作周波数再配分後の稼働率の算出値を示す表図。 実施例2に係わるシステムの各プロセッサ間のデータ処理の流れを示す概念図。 実施例3に係わる各プロセッサの通常動作周波数での稼働率の算出値を示す表図。 実施例3に係わる各プロセッサの動作周波数再配分後の稼働率の算出値を示す表図。 実施例4に係わる各プロセッサのHWプロファイル情報の一例を示す表図。 実施例4に係わる各プロセッサの実力値以下の周波数と通常動作周波数での稼働率の算出値を示す表図。
符号の説明
10…画像形成装置、12…読取部、13…記憶部、14…画像形成部、15…表示/操作部、16…制御部、161…画像処理部、17…通信インタフェース(I/F)部、100,100B,100C…プロセッサシステム、101,101a,101b,101c…プロセッサ、111…演算回路、112…クロック生成部、113,113a,113b,113c…ハードウェア(HW)プロファイル保持部、102,102b…クロック周波数管理部、121,121b…稼働率管理テーブル(TB)、103,103a,103b,103c…温度検出部、200…外部記憶装置、300…プリンタエンジン部、60…外部装置(PC:パーソナル・コンピュータ)

Claims (7)

  1. 設定された動作周波数のクロックで動作し、入力情報を処理するプロセッサと、
    前記プロセッサの定格周波数及び上限周波数を含む動作特性を保持する保持手段と、
    前記入力情報処理時の前記プロセッサの稼働率を検出する稼働率検出手段と、
    前記稼働率検出手段により検出された稼働率に基づき、前記プロセッサが高負荷状態であるか否かを判定する判定手段と、
    前記判定手段により前記プロセッサが高負荷状態であると判定された場合、前記動作周波数を、前記保持手段に保持される前記上限周波数の範囲内で、かつ、前記定格周波数よりも高い値に可変設定する可変設定手段と
    を具備するプロセッサシステム。
  2. 前記判定手段は、
    前記稼働率検出手段により検出された稼働率が100パーセントの時に前記プロセッサが高負荷状態であると判定し、
    前記可変設定手段は、
    前記動作周波数を上限周波数に設定する
    請求項1記載のプロセッサシステム。
  3. 前記プロセッサの発熱温度を検出する温度検出手段
    を具備し、
    前記保持手段は、
    前記プロセッサの動作保証温度情報を更に保持し、
    前記可変設定手段は、
    前記温度検出手段により検出された前記プロセッサの温度が前記動作保証温度を超える場合、前記動作周波数を設定中の周波数よりも低い値に低下させる
    請求項1または2記載のプロセッサシステム。
  4. 設定された動作周波数のクロックで動作し、入力情報を処理する複数のプロセッサと、
    前記各プロセッサの定格周波数及び上限周波数を含む動作特性をそれぞれ保持する保持手段と、
    前記入力情報処理時の前記各プロセッサの稼働率をそれぞれ検出する稼働率検出手段と、
    前記稼働率検出手段により検出された前記各プロセッサの稼働率に基づき、前記複数のプロセッサによる全体の処理効率低下の原因となるプロセッサが存在するか否かを判定する判定手段と、
    前記判定手段により前記全体の処理効率低下の原因となるプロセッサが存在すると判定された場合、該プロセッサの前記動作周波数を、前記保持手段に保持される当該プロセッサの前記上限周波数の範囲内で、かつ、前記定格周波数よりも高い値に可変設定する可変設定手段と
    を具備するプロセッサシステム。
  5. 前記各プロセッサは、前記入力情報を順次処理するために直列に接続され、
    前記判定手段は、
    前記直列接続における上流または下流側のプロセッサの稼働率が閾値を超え、かつ、該上流側のプロセッサの稼働率と下流側のプロセッサの稼働率との差が所定の値を超える場合に、該上流または下流側のプロセッサが前記全体の処理効率低下の原因となるプロセッサであると判定する
    請求項4記載のプロセッサシステム。
  6. 前記各プロセッサは、前記入力情報を分散処理するために並列に接続され、
    前記判定手段は、
    各プロセッサのうちのいずれかのプロセッサの稼働率が閾値を超え、かつ、他のプロセッサの稼働率との差が所定の値を超える場合に、該稼働率が閾値を超えたプロセッサが前記全体の処理効率低下の原因となるプロセッサであると判定する
    請求項4記載のプロセッサシステム。
  7. 前記各プロセッサの発熱温度をそれぞれ検出する複数の温度検出手段
    を具備し、
    前記保持手段は、
    前記各プロセッサの動作保証温度情報をそれぞれ保持し、
    前記可変設定手段は、
    前記温度検出手段により検出された前記動作周波数を可変設定したプロセッサの温度が前記動作保証温度を超える場合、当該プロセッサに設定する前記動作周波数を設定中の周波数よりも低い値に低下させる
    請求項4乃至6のいずれか記載のプロセッサシステム。
JP2008078155A 2008-03-25 2008-03-25 プロセッサシステム Pending JP2009230670A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008078155A JP2009230670A (ja) 2008-03-25 2008-03-25 プロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008078155A JP2009230670A (ja) 2008-03-25 2008-03-25 プロセッサシステム

Publications (1)

Publication Number Publication Date
JP2009230670A true JP2009230670A (ja) 2009-10-08

Family

ID=41245934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008078155A Pending JP2009230670A (ja) 2008-03-25 2008-03-25 プロセッサシステム

Country Status (1)

Country Link
JP (1) JP2009230670A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011187045A (ja) * 2010-02-09 2011-09-22 Canon Inc データ処理装置及びその制御方法、プログラム
JP2013546070A (ja) * 2010-10-29 2013-12-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 処理ノードの熱制御のための方法および装置
JP2014012409A (ja) * 2013-08-19 2014-01-23 Kyocera Document Solutions Inc 画像形成システムおよび省電力印刷方法
JP2014146095A (ja) * 2013-01-28 2014-08-14 Renesas Mobile Corp 半導体装置、電子装置、及び半導体装置の制御方法
JP2014182806A (ja) * 2013-03-15 2014-09-29 Intel Corp 高温イベントにおける動作を保証するべく動作頻度情報を持つプロセッサ
JP2014182512A (ja) * 2013-03-18 2014-09-29 Fujitsu Ltd 周波数制御装置、周波数制御方法および周波数制御プログラム
JP2014529146A (ja) * 2012-08-30 2014-10-30 ▲華▼▲為▼▲終▼端有限公司 中央演算装置を制御するための方法および装置
US9261949B2 (en) 2010-10-29 2016-02-16 Advanced Micro Devices, Inc. Method for adaptive performance optimization of the soc
US9531388B2 (en) 2012-12-21 2016-12-27 Renesas Electronics Corporation Semiconductor device and method for controlling the same
JP2017167836A (ja) * 2016-03-16 2017-09-21 コニカミノルタ株式会社 画像形成装置、プログラム
CN108089484A (zh) * 2016-11-22 2018-05-29 电信科学技术研究院 一种调整频率的方法和设备

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011187045A (ja) * 2010-02-09 2011-09-22 Canon Inc データ処理装置及びその制御方法、プログラム
US9261949B2 (en) 2010-10-29 2016-02-16 Advanced Micro Devices, Inc. Method for adaptive performance optimization of the soc
JP2013546070A (ja) * 2010-10-29 2013-12-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 処理ノードの熱制御のための方法および装置
US9405353B2 (en) 2012-08-30 2016-08-02 Huawei Device Co., Ltd. Method and apparatus for controlling central processing unit
JP2014529146A (ja) * 2012-08-30 2014-10-30 ▲華▼▲為▼▲終▼端有限公司 中央演算装置を制御するための方法および装置
US10236890B2 (en) 2012-12-21 2019-03-19 Renesas Electronics Corporation Semiconductor device and method for controlling the same
US9531388B2 (en) 2012-12-21 2016-12-27 Renesas Electronics Corporation Semiconductor device and method for controlling the same
US9898068B2 (en) 2013-01-28 2018-02-20 Renesas Electronics Corporation Semiconductor device, electronic device, and method for controlling semiconductor device
JP2014146095A (ja) * 2013-01-28 2014-08-14 Renesas Mobile Corp 半導体装置、電子装置、及び半導体装置の制御方法
US9494996B2 (en) 2013-03-15 2016-11-15 Intel Corporation Processor having frequency of operation information for guaranteed operation under high temperature events
JP2014182806A (ja) * 2013-03-15 2014-09-29 Intel Corp 高温イベントにおける動作を保証するべく動作頻度情報を持つプロセッサ
JP2014182512A (ja) * 2013-03-18 2014-09-29 Fujitsu Ltd 周波数制御装置、周波数制御方法および周波数制御プログラム
JP2014012409A (ja) * 2013-08-19 2014-01-23 Kyocera Document Solutions Inc 画像形成システムおよび省電力印刷方法
JP2017167836A (ja) * 2016-03-16 2017-09-21 コニカミノルタ株式会社 画像形成装置、プログラム
CN108089484A (zh) * 2016-11-22 2018-05-29 电信科学技术研究院 一种调整频率的方法和设备
CN108089484B (zh) * 2016-11-22 2020-07-21 电信科学技术研究院 一种调整频率的方法和设备

Similar Documents

Publication Publication Date Title
JP2009230670A (ja) プロセッサシステム
US8918659B2 (en) Control device, image forming apparatus, and control method
US8954772B2 (en) Data processing apparatus capable of controlling power supply, control method therefor, and storage medium
US20130318382A1 (en) Power management apparatus, image forming apparatus and power management method
JP2011098561A (ja) 画像処理装置用コントローラー
JP5799699B2 (ja) 電力供給制御装置、管理制御装置、画像処理装置、電力供給制御プログラム
US9026827B2 (en) Control device and computer program product for controlling method
JP2008211712A (ja) 画像処理装置、画像処理システム、省電力装置および省電力プログラム
US20100316405A1 (en) Image forming apparatus, return processing method, and program
JP6008545B2 (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP2006340223A (ja) 画像形成装置及び画像形成システム
US8867936B2 (en) Image forming apparatus, method of controlling the same, and program
JP2013215976A5 (ja)
US9471860B2 (en) Image forming apparatus and power saving controlling method for the same
JP2013146053A (ja) 画像処理装置、画像処理回路及び画像処理装置の制御方法
US9395807B2 (en) Power management apparatus, image forming apparatus and power management method
US10033895B2 (en) Printing apparatus having plurality of power states and control method therefor
JP5380373B2 (ja) 画像形成システム、画像形成装置、および省電力印刷方法
JP2008210316A (ja) 情報処理システムおよび消費電力管理プログラム
US20140340703A1 (en) Image processing apparatus, method of controlling image processing apparatus, and program
JP5682246B2 (ja) 画像処理装置、システムおよびプログラム
US9544458B2 (en) Image processing apparatus including a standby mode
JP2007026075A (ja) データ処理装置及びデータ処理装置の制御方法
JP2016197324A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP5480194B2 (ja) 画像形成装置およびシステム管理プログラム