以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
[画像処理装置のハードウェア構成]
図1は、本実施の形態が適用される画像処理装置1のハードウェア構成例を示した図である。図示するように、画像処理装置1は、CPU(Central Processing Unit)1aと、RAM(Random Access Memory)1bと、ROM(Read Only Memory)1cと、HDD(Hard Disk Drive)1dと、操作パネル1eと、画像読取部1fと、画像形成部1gと、通信インターフェース(以下、「通信I/F」と表記する)1hとを備える。
CPU1aは、ROM1c等に記憶された各種プログラムをRAM1bにロードして実行することにより、後述する各機能を実現する。
RAM1bは、CPU1aの作業用メモリ等として用いられるメモリである。
ROM1cは、CPU1aが実行する各種プログラム等を記憶するメモリである。
HDD1dは、画像読取部1fが読み取った画像データや画像形成部1gにおける画像形成にて用いる画像データ等を記憶する例えば磁気ディスク装置である。
操作パネル1eは、各種情報の表示やユーザからの操作入力の受付を行う例えばタッチパネルである。
画像読取部1fは、紙等の記録媒体に記録された画像を読み取る。ここで、画像読取部1fは、例えばスキャナであり、光源から原稿に照射した光に対する反射光をレンズで縮小してCCD(Charge Coupled Devices)で受光するCCD方式や、LED光源から原稿に順に照射した光に対する反射光をCIS(Contact Image Sensor)で受光するCIS方式のものを用いるとよい。
画像形成部1gは、記録媒体に画像を形成する。ここで、画像形成部1gは、例えばプリンタであり、感光体に付着させたトナーを記録媒体に転写して像を形成する電子写真方式や、インクを記録媒体上に吐出して像を形成するインクジェット方式のものを用いるとよい。
通信I/F1hは、ネットワークを介して他の装置との間で各種情報の送受信を行う。
[第1の実施の形態]
このような画像処理装置1において、通常、OS(Operating System)は、1周期(以下、「OS周期」という)毎に、タスクのスケジューリングのリストを評価し、タスクを遷移させるタスク遷移処理を行う。その際、実行すべきタスクがなければ、管理上設けられた形だけのタスクであるアイドルタスクに遷移し、CPU1a及びRAM1bを節電状態とする考え方がある。このような考え方に基づき、OS周期毎にCPU1a及びRAM1bを節電状態とすることは、ファームウェア動作との親和性の点では非常に有用であるが、通常10ミリ秒程度の短い間隔でCPU1a及びRAM1bの停止及び再開を繰り返すことになるため、非効率的である。こうしたことから、節電状態ではOS周期の間隔を長くすることによって消費電力効果を高めることも考えられる。
しかしながら、その場合は、単にOS周期を広げているだけなので、実時間が進んでも、OSにおける時間、つまり、OSがタスク切り替えを行うかどうかを判断するためにタスクの実行時間と比較される時間(以下、「OS時間」という)は進まず、OS時間と実時間とが同期しないことになる。例えば、OS周期毎にOS時間が1進むとすると、OS周期が10ミリ秒の場合、OS時間は10ミリ秒で1進むが、OS周期を1秒に広げた場合、OS時間は1秒で1進むことになる。従って、タスクのスケジューリング上の実行タイミングと実時間における実行タイミングとに不一致が生じてしまう。即ち、OS時間に基づいて周期的に動作するようにスケジューリングされたタスクによる処理(以下、「周期処理」という)については、開始するまでの時間が長くなり、応答性が改善されない。例えば、OS時間が1進むと起動されるタスクは、OS周期が10ミリ秒の場合、10ミリ秒後に起動されるが、OS周期を1秒に広げた場合は、1秒後に起動されることになる。
そこで、第1の実施の形態では、OS周期毎の割り込みのタイミングでOS時間を実時間に合わせて補正することによって、タスクのスケジューリング上の実行タイミングを実時間における実行タイミングに合わせる。具体的には、OS周期毎に、本来1カウントアップしていたOS時間を、OS周期を広げた比率に応じた数だけカウントアップする。例えば、非節電状態でのOS周期が10ミリ秒で、このときOS時間をOS周期毎に1カウントアップしていたとすると、節電状態でOS周期を1秒に広げたならば、OS時間をOS周期毎に100(=1秒/10ミリ秒)カウントアップする。
尚、この場合、タスク実行の粒度は通常10ミリ秒ではなくなるので、10ミリ秒の粒度を必要とするタスクは実行できない、という制限がある。しかし、殆どの場合、10ミリ秒のような粒度を必要とするタスクの遷移は印刷処理や受信処理等の特定の処理を行っている場合に生じ、それとは異なるアイドル状態では分単位や時間単位でのスケジューリングが行えれば装置としてのスケジューリングに破綻は生じないので、第1の実施の形態では、この制限を問題としていない。
図2は、第1の実施の形態における画像処理装置1について示した図である。図示するように、画像処理装置1は、タスク格納部10、タスク制御部20、割り込み制御部30、受信制御部40、OSタイマ制御部50、電力消費資源60を備えている。
タスク格納部10は、電力消費資源60の節電制御に関する処理を行う節電制御タスク11、外部からのデータ(印刷データ)の受信に関する処理を行う受信タスク12等、複数のタスクを格納している。これら各タスクは、後述するタスク制御部20のタスク実行制御部23によって、タスク格納部10から読み出され実行される。尚、節電制御タスク11の詳細については後述する。
タスク制御部20は、タスク管理テーブル21と、OS時間情報記憶部22と、タスク実行制御部23とを有しており、OSの主要処理部として機能する。
タスク管理テーブル21には、複数のタスクに関するプライオリティを示す情報、タスク毎にタスクの状態を示す情報、タスク毎の起動すべきタイミング等のタスク動作の条件を示す情報等のタスクに関する情報が登録されている。
OS時間情報記憶部22は、後述するOSタイマ割り込み制御部32によってカウントアップされるOS時間に関する情報(OS時間情報)を記憶する。OS時間は、例えば、通常電力状態においてはOS周期毎に1カウントアップされ、低電力状態になってOS周期がN倍になるとOS周期毎にNカウントアップされるようになっている。尚、本明細書において、Nは1より大きい数を表す記号として用いる。
タスク実行制御部23は、タスク管理テーブル21及びOS時間情報記憶部22を参照して、指定された時間を経過する等の条件(タスク動作の条件)が成立するかどうかを判断し、タスク格納部10に格納されている複数のタスクの中から、タスク動作の条件が成立したタスクを読み出して実行する。
割り込み制御部30は、割り込み共通処理部31と、OSタイマ割り込み制御部32と、受信割り込み制御部33とを有している。
割り込み共通処理部31は、各種割り込みに共通の処理を行う。特に、受け付けた割り込みの種類を判定し、OSタイマ割り込みの場合には、OSタイマ割り込み制御部32を動作させ、一方、OSタイマ割り込み以外の割り込み例えば受信割り込みの場合は、受信割り込み制御部33を実行させる。尚、割り込み共通処理部31は、図示しないが、OSタイマ割り込み以外の割り込みが受信割り込み以外である場合は、その割り込みに対応して設けられる割り込み制御部を実行させる。
OSタイマ割り込み制御部32は、割り込み共通処理部31の制御に従って、OS時間情報記憶部22に記憶されたOS時間をカウントアップする。例えば、通常電力状態においてはOS周期毎に1カウントアップし、低電力状態になってOS周期がN倍になるとOS周期毎にNカウントアップする。本実施の形態では、周期的な割り込みの間隔に相当する時間をオペレーティングシステムにおける時間に加算する加算手段の一例として、OSタイマ割り込み制御部32を設けている。
受信割り込み制御部33は、割り込み共通処理部31の制御に従って、受信タスク12を起動させる。
受信制御部40は、受信I/F部41と、割り込み発生部42とを有している。
受信I/F部41は、ホストコンピュータ(以下、「ホストPC」という)70からデータを受信した場合に、割り込み発生部42に対し受信割り込み要求を通知する。尚、受信I/F部41とホストPC70とは、有線回線で接続するようにしてもよいし、無線回線で接続するようにしてもよい。
割り込み発生部42は、受信I/F部41からの受信割り込み要求に基づき、受信割り込みを示す信号を、割り込み制御部30の割り込み共通処理部31へ出力する。この場合の割り込み発生条件は、受信I/F部41がホストPC70からデータを受信したことである。
OSタイマ制御部50は、クロック発生部51と、OSタイマ部52と、割り込み発生部53とを有している。
クロック発生部51は、クロック(システムクロック)を生成し、これをOSタイマ部52に出力する。
OSタイマ部52は、クロック発生部51によって生成されたクロックをカウントし、クロックの数がOS周期に対応する基準計数値に達する毎に、割り込み発生部53に対しOSタイマ割り込み要求を通知する。本実施の形態では、基準個数の一例として、基準計数値を用いており、クロックの数が基準個数に達すると周期的な割り込みを行う割り込み手段の一例として、OSタイマ部52を設けている。
割り込み発生部53は、OSタイマ部52からのOSタイマ割り込み要求に基づき、OSタイマ割り込みを示す信号を、割り込み制御部30の割り込み共通処理部31へ出力する。この場合の割り込み発生条件は、クロックの数が基準計数値に達したとOSタイマ部52が判定したことである。
電力消費資源60は、画像処理装置1が有する電力を消費する資源であるが、その詳細については後述する。
尚、本実施の形態では、図示しないが、OSタイマ割り込みを要求するOSタイマ制御部50と、OSタイマ割り込み以外の割り込みを要求する、受信制御部40を含む複数の制御部とを有している。従って、割り込み制御部30において、割り込み共通処理部31は、OSタイマ制御部50、OSタイマ制御部50以外の受信制御部40を含む複数の制御部のうち、割り込みを要求した制御部からの割り込みの種類を判定し、この判定結果に基づいて、対応する割り込み制御部を起動させる。
次に、節電制御タスク11について、詳細に説明する。図3は、節電制御タスク11について説明するための図である。図示するように、節電制御タスク11は、節電制御部110として機能するようになっており、画像処理装置1詳しくは電力消費資源60の消費電力を低減させる制御を行う。
電力消費資源60は、ヒータ61、バックライト62、パネル電源63、及び外部クロック64を含んでいる。ここで、本実施の形態において、通常電力状態(非節電状態)とは、全ての電力消費資源60、即ち、ヒータ61、バックライト62、パネル電源63、外部クロック64等が定格電力(通常の電力)で動作する状態のことである。これに対し、低電力状態とは、全ての電力消費資源60が定格電力よりも低い電力(通常の電力よりも低い電力)で動作する状態のことである。
節電制御部110は、節電条件判定部111と、節電実行制御部112と、OSタイマ設定部113とを有している。
節電条件判定部111は、通常電力状態において節電移行条件が成立するかどうかの判定処理(以下、「節電移行判定処理」という)を実行すると共に、低電力状態において節電復帰条件が成立するかどうかの判定処理(以下、「節電復帰判定処理」という)を実行し、これらの判定処理の結果を節電実行制御部112へ出力する。ここで、節電移行条件は通常電力状態から低電力状態へ移行するための移行条件であり、この節電移行条件が成立する場合とは、例えば非印刷状態(印刷に関する処理を行っていない状態を含む。以下同じ。)が予め定められた時間継続したとき等である。一方、節電復帰条件は低電力状態から通常電力状態へ復帰するための復帰条件であり、この節電復帰条件が成立する場合とは、例えば印刷データを受信したとき等である。
節電実行制御部112は、節電条件判定部111の節電移行判定処理の結果又は節電復帰判定処理の結果に基づいて、電力消費資源60を低電力状態又は通常電力状態に制御すると共に、OSタイマの基準計数値及びOS時間のカウントアップ値を低電力状態又は通常電力状態に対応するものにすべき旨をOSタイマ設定部113へ通知する。具体的には、画像処理装置1(の電力消費資源60)が通常電力状態であったときに、節電移行判定処理の結果が節電移行条件が成立する旨の場合には、電力消費資源60を低電力状態つまり節電状態に制御すると共に、OSタイマ設定部113には低電力状態に対応する基準計数値及びカウントアップ値にすべき旨を通知する。これに対し、画像処理装置1(の電力消費資源60)が低電力状態であったときに、節電復帰判定処理の結果が節電復帰条件が成立する旨の場合は、電力消費資源60を通常電力状態つまり非節電状態に制御すると共に、OSタイマ設定部113には通常電力状態に対応する基準計数値及びカウントアップ値にすべき旨を通知する。本実施の形態では、自装置の電力状態を通常電力状態から低電力状態へ移行する移行手段との一例として、節電実行制御部112を設けている。
OSタイマ設定部113は、節電実行制御部112からの通知内容に応じて、OSタイマ部52の基準計数値及びOSタイマ割り込み制御部32のカウントアップ値を変更する。具体的には、通常電力状態に対応する基準計数値及びカウントアップ値にすべき旨が通知された場合には、OSタイマ部52の基準計数値及びOSタイマ割り込み制御部32のカウントアップ値を通常電力状態に対応する基準計数値及びカウントアップ値に設定する。これに対し、低電力状態に対応する基準計数値及びカウントアップ値にすべき旨が通知された場合には、OSタイマ部52の基準計数値及びOSタイマ割り込み制御部32のカウントアップ値をそれぞれ通常電力状態に対応する基準計数値及びカウントアップ値のN倍の値に設定する。ここで、OSタイマ部52において設定される基準計数値は、通常電力状態のときには例えば10ミリ秒に対応する値に、低電力状態のときには例えば1秒に対応する値にそれぞれ設定し、OSタイマ割り込み制御部32のカウントアップ値は、通常電力状態のときには例えば1に、低電力状態のときには例えば100にそれぞれ設定するとよい。本実施の形態では、オペレーティングシステムの周期的な割り込みの間隔がN倍になるような設定を行う設定手段、設定が行われた後の周期的な割り込みの時点でオペレーティングシステムにおける時間に加算される第1の時間が、設定が行われる前の周期的な割り込みの時点でオペレーティングシステムにおける時間に加算されていた第2の時間のN倍になるように制御する制御手段の一例として、OSタイマ設定部113を設けている。
尚、本実施の形態においては、タスク制御部20、割り込み制御部30、受信制御部40、クロック発生部51を除くOSタイマ制御部50のそれぞれの機能を実現するためのソフトウェア(プログラム)がROM1c又はHDD1dに格納されている。またタスク格納部10は、ROM1c又はHDD1dで実現される。CPU1aが、ROM1c又はHDD1dからRAM1bへ、これらのソフトウェアを読み出して実行することにより、各構成要素の機能を実現するようになっている。
次に、画像処理装置1の省電力制御処理について、詳細に説明する。図4は、その省電力制御処理の処理手順を示すフローチャートである。
画像処理装置1の電源が投入(オン)された場合は、最初に、タスク制御部20(のタスク実行制御部23)が、タスク格納部10から節電制御タスク11を読み出して実行するようになっている。尚、電源投入時は、OSタイマ割り込みが発生しなくとも、タスク実行制御部23が、タスク格納部10から節電制御タスク11を読み出して実行するようになっている。これ以降においては、タスク実行制御部23は、タスク管理テーブル21及びOS時間情報記憶部22を参照して決定されたタスクをタスク格納部10から読み出して実行することになる。
さて、タスク実行制御部23によって実行される節電制御タスク11、即ち節電制御部110では、節電条件判定部111が、初期状態つまり通常電力状態とすべき旨を節電実行制御部112に出力する。
節電実行制御部112は、電力消費資源60としてのヒータ61、バックライト62、パネル電源63、外部クロック64等を通常電力状態にすると共に、OSタイマ設定部113に対して通常電力状態に対応する基準計数値及びカウントアップ値にすべき旨を通知する。すると、OSタイマ設定部113は、節電実行制御部112からの通知内容に基づき、OSタイマ部52の基準計数値を通常電力状態に対応する基準計数値に設定し、OSタイマ割り込み制御部32のカウントアップ値を通常電力状態に対応するカウントアップ値(例えば1)に設定する(ステップ121)。
ステップ121が終了した後に、電力消費資源60が通常電力状態となっている画像処理装置1が、アイドル状態(通常アイドル状態)になったとする(ステップ122)。
ところで、OSタイマ部52は、クロック発生部51によって発生されるクロックの数が基準計数値に達する毎にOSタイマ割り込み要求を割り込み発生部53に送出する。そのOSタイマ割り込み要求を受け取った割り込み発生部53が、OSタイマ割り込みを示す信号を割り込み共通処理部31へ出力すると、割り込み共通処理部31は、OSタイマ割り込みを示す信号に基づきOSタイマ割り込みであると判定して、OSタイマ割り込み制御部32を動作させる。
次に、OSタイマ割り込み制御部32が、通常電力状態に対応するカウントアップ値だけ、OS時間情報記憶部22に記憶されたOS時間をカウントアップし、タスク実行制御部23は、タスク管理テーブル21を参照することにより得られるタスク動作の条件と、OS時間情報記憶部22に記憶されたOS時間とに基づき、タスク格納部10から節電制御タスク11を読み出して実行する。このようにしてタスク実行制御部23によって実行される節電制御タスク11つまり節電制御部110では、節電条件判定部111が、節電移行判定処理、即ち通常電力状態において節電移行条件が成立するかどうかを判定する処理を行う(ステップ123)。
ステップ123において、節電移行条件が成立しないと判定された場合は、ステップ122に戻る。
一方、節電条件判定部111は、ステップ123において、節電移行条件が成立したと判定した場合は、その旨を節電実行制御部112へ通知する。節電移行条件が成立した旨を受け取った節電実行制御部112は、電力消費資源60としてのヒータ61、バックライト62、パネル電源63、外部クロック64等を低電力状態にすると共に、OSタイマ設定部113に対して通常電力状態に対応する基準計数値及びカウントアップ値のN倍の基準計数値及びカウントアップ値にすべき旨を通知する。すると、OSタイマ設定部113は、節電実行制御部112からの通知内容に基づき、OSタイマ部52の基準計数値を通常電力状態に対応する基準計数値のN倍に変更し、OSタイマ割り込み制御部32のカウントアップ値を通常電力状態に対応するカウントアップ値のN倍(例えばN)に変更する(ステップ124)。
ステップ124が終了した後に、電力消費資源60が低電力状態となっている画像処理装置1がアイドル状態(節電アイドル状態)になったとする(ステップ125)。
ところで、OSタイマ部52は、クロック発生部51によって発生されるクロックの数が基準計数値に達する毎にOSタイマ割り込み要求を割り込み発生部53に送出する。上述したように割り込み発生部53によって割り込みが発生されると、割り込み共通処理部31を介して、OSタイマ割り込み制御部32、タスク実行制御部23が順次実行される。
タスク実行制御部23は、タスク管理テーブル21を参照することにより得られるタスク動作の条件と、OS時間情報記憶部22に記憶されたOS時間とに基づき、タスク格納部10から節電制御タスク11を読み出して実行する。このようにしてタスク実行制御部23によって実行される節電制御タスク11つまり節電制御部110では、節電条件判定部111が、節電復帰判定処理、即ち低電力状態において節電復帰条件が成立するかどうかを判定する処理を行う(ステップ126)。
節電条件判定部111は、ステップ126において、予め定められた時間内に印刷データが受信されない(非印刷状態が予め定められた時間継続した)等の要件が満たされて、節電復帰条件が成立しない場合(低電力状態を維持する場合)は、その旨を割り込み制御部30へ通知する。これは、節電復帰条件が成立しない旨が、節電制御タスク11を実行しているタスク実行制御部23つまりタスク制御部20から割り込み制御部30に通知されることを意味する。
一方、ステップ126において、予め定められた時間内に印刷データが受信される等の要件が満たされて、節電復帰条件が成立した場合は、ステップ121に戻る。
さて、節電復帰条件が成立しない旨(低電力状態を維持する旨)の通知を受け取った割り込み制御部30では、割り込み共通処理部31が、割り込みが発生したかどうかを判断する(ステップ127)。そして、この判断の結果、割り込みを示す信号を受信して割り込みが発生した場合は、その割り込みの種類を判定する。即ち、その割り込みがOSタイマ割り込みであるかどうかを判定する(ステップ128)。
ステップ128において、割り込みがOSタイマ割り込みであると判定された場合、割り込み共通処理部31は、OSタイマ割り込みに対応する割り込み制御部、即ちOSタイマ割り込み制御部32を動作させる。すると、OSタイマ割り込み制御部32は、OSタイマ割り込み処理を実行する。具体的には、ステップ124で設定された通常電力状態のカウントアップ値のN倍のカウントアップ値(例えばN)だけ、OS時間情報記憶部22に記憶されたOS時間をカウントアップし、OSタイマ部52を再スタートさせる(ステップ129)。
尚、上述したステップ124では、タスク制御部20において、タスク実行制御部23の動作間隔つまりOS周期が通常電力状態に対応するOS周期のN倍となり、タスク実行制御部23がタスク管理テーブル21及びOS時間情報記憶部22を参照してタスク切り替えを実施する間隔もN倍となった。しかし、このステップ129において、OS時間情報記憶部22内のOS時間には通常電力状態におけるカウントアップ値のN倍のカウントアップ値が加算されるので、OS時間と実時間とは同期することになる。
一方、ステップ128において、割り込みがOSタイマ割り込み以外の割り込みであると判定された場合、割り込み共通処理部31は、その割り込みに対応する割り込み制御部を動作させる。すると、割り込み制御部は、その割り込みを実行する(ステップ130)。
そして、ステップ129又はステップ130が終了した後に、タスク実行制御部23は、タスク管理テーブル21及びOS時間情報記憶部22を参照して、タスク切り替えを実施する(ステップ131)。
尚、ステップ127において割り込み共通処理部31によって割り込みが発生したと判断されるのは、ホストPC70が印刷処理を実行して(ステップ132)、画像処理装置1に向けて印刷データを送信し(ステップ133)、受信制御部40の受信I/F部41がホストPC70との通信を開始したことに起因して割り込み発生部42が受信割り込みを発生させた場合、OSタイマ制御部50の割り込み発生部53がOS周期毎にOSタイマ割り込みを発生させた場合等である。
図5は、第1の実施の形態における低電力状態でのタスク切り替えのシーケンスを示した図である。図示するように、低電力状態では、OSタイマ割り込み501,502,503が発生する間隔であるOS周期は1秒に広がっている。しかしながら、OS時間は、1秒毎に1ずつカウントアップするのではなく、図の右側に示すように、1秒毎に100ずつカウントアップするようになっている。
[第2の実施の形態]
第1の実施の形態では、OS時間を実時間と同期させるようにしたことで、節電状態においても、周期処理の応答性を維持することを可能としている。しかしながら、第1の実施の形態では、割り込みがOSタイマ割り込みだけであれば殆ど問題は生じないものの、割り込みがOSタイマ割り込み以外の割り込みであれば問題が生じる。それは、OSタイマ割り込み以外の割り込みはその発生時点で実行されたとしても、OS時間がOSタイマ割り込みの発生時点でしかカウントアップされないので、OSタイマ割り込み以外の割り込みが周期処理と連動しているような場合、その周期処理はその割り込みの発生時点で開始されず、この時点での応答性が改善しない、といった問題である。
そこで、第2の実施の形態では、OSタイマ割り込み以外の割り込みが発生した場合に、その時点での経過時間に相当するカウントアップ値をOS時間に加算してタスクの実行を制御する。
図6は、第2の実施の形態における画像処理装置1について示した図である。図6では、図2に示した構成要素に相当する構成要素には同じ符号を付しており、図示するように、画像処理装置1は、タスク格納部10、タスク制御部20、割り込み制御部30、受信制御部40、OSタイマ制御部50、電力消費資源60を備えている。
タスク格納部10は、節電制御タスク11、受信タスク12等、複数のタスクを格納している。これら複数のタスクは、節電制御タスク11を除き、第1の実施の形態と同じであるので、詳細な説明を省略する。尚、節電制御タスク11の詳細については後述する。
タスク制御部20は、タスク管理テーブル21と、OS時間情報記憶部22と、タスク実行制御部23とを有している。これらの構成要素は、OS時間情報記憶部22に記憶されたOS時間のカウントアップを除き、第1の実施の形態と同じであるので、詳細な説明を省略する。第2の実施の形態において、OS時間情報記憶部22に記憶されたOS時間は、OSタイマ割り込み制御部32によって通常電力状態においても低電力状態においてもOS周期毎に1カウントアップされ、後述するOSタイマ監視処理部34によって何らかの割り込みが発生した時点でのカウントアップ値だけカウントアップされる。
割り込み制御部30は、割り込み共通処理部31と、OSタイマ割り込み制御部32と、受信割り込み制御部33とを有している。
割り込み共通処理部31は、OSタイマ監視処理部34を有する点以外は、第1の実施の形態と同じである。OSタイマ監視処理部34は、OSタイマ部52でクロックの数が基準計数値に達する毎にカウントアップされるカウント値を監視し、何らかの割り込みが発生した場合に、その時点でのカウント値だけ、OS時間情報記憶部22に記憶されたOS時間をカウントアップする。但し、OSタイマ割り込みが発生した場合は、その時点でのカウント値から1減じた値だけ、OS時間情報記憶部22に記憶されたOS時間をカウントアップする。OSタイマ割り込みが発生した場合は、OSタイマ割り込み制御部32がOS時間を1カウントアップするからである。本実施の形態では、設定が行われた後の周期的な割り込みの時点でオペレーティングシステムにおける時間に加算される第1の時間が、設定が行われる前の周期的な割り込みの時点でオペレーティングシステムにおける時間に加算されていた第2の時間のN倍になるように制御する制御手段の一例として、OSタイマ監視処理部34及び次のOSタイマ割り込み制御部32を設けている。
OSタイマ割り込み制御部32は、割り込み共通処理部31の制御に従って、OS時間情報記憶部22に記憶されたOS時間をカウントアップする。第2の実施の形態では、通常電力状態においても低電力状態においてもOS周期毎に1カウントアップする。本実施の形態では、周期的な割り込みの間隔に相当する時間をオペレーティングシステムにおける時間に加算する加算手段の一例として、OSタイマ割り込み制御部32を設けている。
受信割り込み制御部33は、第1の実施の形態と同じである。
受信制御部40は、受信I/F部41と、割り込み発生部42とを有している。これらの構成要素は、第1の実施の形態と同じであるので、詳細な説明を省略する。
OSタイマ制御部50は、クロック発生部51と、OSタイマ部52と、割り込み発生部53とを有している。これらの構成要素は、第1の実施の形態と同じであるので、詳細な説明を省略する。本実施の形態では、クロックの数が基準個数に達すると周期的な割り込みを行う割り込み手段の一例として、OSタイマ部52を設けている。
電力消費資源60は、画像処理装置1が有する電力を消費する資源である。
尚、本実施の形態では、図示しないが、OSタイマ割り込みを要求するOSタイマ制御部50と、OSタイマ割り込み以外の割り込みを要求する、受信制御部40を含む複数の制御部とを有している。従って、割り込み制御部30において、割り込み共通処理部31は、OSタイマ制御部50、OSタイマ制御部50以外の受信制御部40を含む複数の制御部のうち、割り込みを要求した制御部からの割り込みの種類を判定し、この判定結果に基づいて、対応する割り込み制御部を起動させる。
次に、節電制御タスク11について、詳細に説明する。図7は、節電制御タスク11について説明するための図である。図示するように、節電制御タスク11は、節電制御部110として機能するようになっており、画像処理装置1詳しくは電力消費資源60の消費電力を低減させる制御を行う。
電力消費資源60は、第1の実施の形態と同じであるので、詳細な説明は省略する。
節電制御部110は、節電条件判定部111と、節電実行制御部112と、OSタイマ設定部113とを有している。
節電条件判定部111は、第1の実施の形態と同じであるので、詳細な説明は省略する。
節電実行制御部112は、節電条件判定部111の節電移行判定処理の結果又は節電復帰判定処理の結果に基づいて、電力消費資源60を低電力状態又は通常電力状態に制御すると共に、OSタイマの基準計数値を低電力状態又は通常電力状態に対応するものにすべき旨をOSタイマ設定部113へ通知する。具体的には、画像処理装置1(の電力消費資源60)が通常電力状態であったときに、節電移行判定処理の結果が節電移行条件が成立する旨の場合には、電力消費資源60を低電力状態つまり節電状態に制御すると共に、OSタイマ設定部113には低電力状態に対応する基準計数値にすべき旨を通知する。これに対し、画像処理装置1(の電力消費資源60)が低電力状態であったときに、節電復帰判定処理の結果が節電復帰条件が成立する旨の場合は、電力消費資源60を通常電力状態つまり非節電状態に制御すると共に、OSタイマ設定部113には通常電力状態に対応する基準計数値にすべき旨を通知する。本実施の形態では、自装置の電力状態を通常電力状態から低電力状態へ移行する移行手段との一例として、節電実行制御部112を設けている。
OSタイマ設定部113は、節電実行制御部112からの通知内容に応じて、OSタイマ部52の基準計数値を変更する。具体的には、通常電力状態に対応する基準計数値にすべき旨が通知された場合には、OSタイマ部52の基準計数値を通常電力状態に対応する基準計数値に設定する。これに対し、低電力状態に対応する基準計数値にすべき旨が通知された場合には、OSタイマ部52の基準計数値を通常電力状態に対応する基準計数値のN倍の値に設定する。ここで、OSタイマ部52において設定される基準計数値は、通常電力状態のときには例えば10ミリ秒に対応する値に、低電力状態のときには例えば1秒に対応する値にそれぞれ設定するとよい。本実施の形態では、オペレーティングシステムの周期的な割り込みの間隔がN倍になるような設定を行う設定手段の一例として、OSタイマ設定部113を設けている。
尚、本実施の形態においては、タスク制御部20、割り込み制御部30、受信制御部40、クロック発生部51を除くOSタイマ制御部50のそれぞれの機能を実現するためのソフトウェア(プログラム)がROM1c又はHDD1dに格納されている。またタスク格納部10は、ROM1c又はHDD1dで実現される。CPU1aが、ROM1c又はHDD1dからRAM1bへ、これらのソフトウェアを読み出して実行することにより、各構成要素の機能を実現するようになっている。
次に、画像処理装置1の省電力制御処理について、詳細に説明する。図8は、その省電力制御処理の処理手順を示すフローチャートである。
画像処理装置1の電源が投入(オン)されると、ステップ141〜143が実行されるが、これらのステップは図4のステップ121〜123と同じであるので、詳細な説明は省略する。
ステップ143において、節電移行条件が成立したと判定した場合、節電条件判定部111は、その旨を節電実行制御部112へ通知する。節電移行条件が成立した旨を受け取った節電実行制御部112は、電力消費資源60としてのヒータ61、バックライト62、パネル電源63、外部クロック64等を低電力状態にすると共に、OSタイマ設定部113に対して通常電力状態に対応する基準計数値のN倍の基準計数値にすべき旨を通知する。すると、OSタイマ設定部113は、節電実行制御部112からの通知内容に基づき、OSタイマ部52の基準計数値を通常電力状態に対応する基準計数値のN倍に変更する(ステップ144)。
ステップ144が終了した後にステップ145及び146が実行されるが、これらのステップは図4のステップ125及び126と同じであるので、詳細な説明は省略する。
ステップ146において、予め定められた時間内に印刷データが受信されない(非印刷状態が予め定められた時間継続した)等の要件が満たされて、節電復帰条件が成立しない場合(低電力状態を維持する場合)、割り込み制御部30では、割り込み共通処理部31が、割り込みが発生したかどうかを判断する(ステップ147)。
この判断の結果、割り込みを示す信号を受信して割り込みが発生した場合は、OSタイマ監視処理部34が、OSタイマ部52の基準計数値がN倍になっているかどうかを判定する(ステップ148)。そして、N倍になっていなければ、何もしないが、N倍になっていれば、その時点での経過時間を取得し、経過時間に基づく値を、OS時間情報記憶部22に記憶されたOS時間に加算する(ステップ149)。ここで、経過時間に基づく値とは、OSタイマ部52でクロックの数が基準計数値に達する毎にカウントアップされるカウント値を意味する。つまり、OS周期の整数倍の時間が、経過時間を超えない最大の時間である場合のその整数の値である。例えばOS周期が10ミリ秒で経過時間が33ミリ秒であるとすると、経過時間に基づく値は3となる。尚、割り込みがOSタイマ割り込みである場合は、後述するステップ151でOS時間に1が加算されるので、経過時間に基づく値は(N−1)とする。従って、経過時間に基づく値は0から(N−1)までの何れかの値をとる。
その後、割り込み共通処理部31は、ステップ147で発生したと判断された割り込みの種類を判定する。即ち、その割り込みがOSタイマ割り込みであるかどうかを判定する(ステップ150)。
ステップ150において、割り込みがOSタイマ割り込みであると判定された場合、割り込み共通処理部31は、OSタイマ割り込みに対応する割り込み制御部、即ちOSタイマ割り込み制御部32を動作させる。すると、OSタイマ割り込み制御部32は、OSタイマ割り込み処理を実行する。具体的には、通常電力状態のカウントアップ値(例えば1)だけ、OS時間情報記憶部22に記憶されたOS時間をカウントアップし、OSタイマ部52を再スタートさせる(ステップ151)。
一方、ステップ150において、割り込みがOSタイマ割り込み以外の割り込みであると判定された場合、割り込み共通処理部31は、その割り込みに対応する割り込み制御部を動作させる。すると、割り込み制御部は、その割り込みを実行する(ステップ152)。
そして、ステップ151又はステップ152が終了した後に、タスク実行制御部23は、タスク管理テーブル21及びOS時間情報記憶部22を参照して、タスク切り替えを実施する(ステップ153)。
尚、ステップ154及び155は、図4のステップ132及び133と同じであるので、詳細な説明は省略する。
図9は、第2の実施の形態における低電力状態でのタスク切り替えのシーケンスを示した図である。図示するように、低電力状態では、OSタイマ割り込み501,502,503が発生する間隔であるOS周期は1秒に広がっている。しかしながら、OS時間は、1秒毎に1ずつカウントアップするのではなく、図の右側に示すように、1秒毎に100ずつカウントアップするようになっている。また、第2の実施の形態では、1つ目のOS周期の700ミリ秒目で割り込み301が発生した場合に、その時点でのOSタイマ部52のカウント値である70をOS時間に加算している。
[第3の実施の形態]
第1及び第2の実施の形態ではクロックダウン処理について考慮しなかったが、実際はクロックダウン処理を行っている。即ち、通常時は同じクロックで動作するが、実行すべきタスクがない状態(アイドル状態)になると、低クロックで動作するようになっている。そこで、第3の実施の形態では、このクロックダウン処理に対処する。
具体的には、まず、クロックダウン処理中はOSタイマの基準計数値を低倍する処理を行う。例えば、アイドル状態においてクロックの周波数が(1/N)になると、OSタイマの基準計数値を(1/N)とし、クロックの数がこの基準計数値に達する毎にOS周期が経過したものとしてOSタイマ割り込みを行う。
また、OSタイマ割り込み以外の割り込みが発生した際に、OSタイマのカウント値を保持しつつクロックアップ又はクロックダウンを行って、OS周期を維持することも行う。なぜなら、第1及び第2の実施の形態では、本来10ミリ秒のOS周期を10ミリ秒以上としたが、クロックダウンが発生する状況では、OS周期が10ミリ秒のままだとしてもOSタイマを分割する問題が発生するからである。例えば、7ミリ秒のタイミングでOSタイマ割り込み以外の割り込みが発生した場合に、OSタイマを再セットして残り3ミリ秒を計測しなければ、10ミリ秒という本来のOS周期を達成できないからである。
図10は、第3の実施の形態における画像処理装置1について示した図である。図6では、図2に示した構成要素に相当する構成要素には同じ符号を付しており、図示するように、画像処理装置1は、タスク格納部10、タスク制御部20、割り込み制御部30、受信制御部40、OSタイマ制御部50、電力消費資源60を備えている。
タスク格納部10は、節電制御タスク11、受信タスク12等、複数のタスクを格納している。これら複数のタスクは、節電制御タスク11を除き、第1の実施の形態と同じであるので、詳細な説明を省略する。尚、節電制御タスク11の詳細については後述する。また、第1の実施の形態では、アイドルタスクが特別な動作を行うことはなかったので、図示を省略し、説明も行わなかったが、第3の実施の形態において、アイドルタスク13は、次のような動作を行う。即ち、予め定められた時間内に印刷データが受信されない等の条件が満たされた場合に、クロック発生部51で発生されるクロックの周波数を(1/N)に変更し、OSタイマ部52を残りのカウント値の(1/N)を基準計数値に設定して再スタートする。本実施の形態では、オペレーティングシステムの周期的な割り込みの間隔がN倍になるような設定を行う設定手段の一例として、アイドルタスク13を設けている。また、本実施の形態では、OSタイマ割り込み毎にOS時間を1カウントアップする構成は変更しないので、設定が行われた後の周期的な割り込みの時点でオペレーティングシステムにおける時間に加算される第1の時間が、設定が行われる前の周期的な割り込みの時点でオペレーティングシステムにおける時間に加算されていた第2の時間のN倍になるように制御する制御手段の一例として、アイドルタスク13を設けていると言える。
タスク制御部20は、タスク管理テーブル21と、OS時間情報記憶部22と、タスク実行制御部23とを有している。これらの構成要素は、OS時間情報記憶部22に記憶されたOS時間のカウントアップを除き、第1の実施の形態と同じであるので、詳細な説明を省略する。OS時間情報記憶部22に記憶されたOS時間は、第3の実施の形態では、OSタイマ割り込み制御部32によって通常電力状態においても低電力状態においてもOS周期毎に1カウントアップされる。
割り込み制御部30は、割り込み共通処理部31と、OSタイマ割り込み制御部32と、受信割り込み制御部33とを有している。
割り込み共通処理部31は、OSタイマ復帰部35及びクロック復帰部36を有する点以外は、第1の実施の形態と同じである。OSタイマ復帰部35は、OSタイマ部52のタイマ値が(1/N)になっている状態で何らかの割り込みが発生した場合に、OSタイマ部52を残りのカウント値のN倍を基準計数値に設定して再スタートする。クロック復帰部36は、クロック発生部51で発生されるクロックの周波数が(1/N)になっている状態で何らかの割り込みが発生した場合に、クロック発生部51で発生されるクロックの周波数をN倍に戻す。本実施の形態では、オペレーティングシステムの周期的な割り込みの間隔がN倍になるような設定を行う設定手段の一例として、クロック復帰部36も設けている。また、本実施の形態では、OSタイマ割り込み毎にOS時間を1カウントアップする構成は変更しないので、設定が行われた後の周期的な割り込みの時点でオペレーティングシステムにおける時間に加算される第1の時間が、設定が行われる前の周期的な割り込みの時点でオペレーティングシステムにおける時間に加算されていた第2の時間のN倍になるように制御する制御手段の一例として、OSタイマ復帰部35も設けていると言える。
OSタイマ割り込み制御部32は、割り込み共通処理部31の制御に従って、OS時間情報記憶部22に記憶されたOS時間をカウントアップする。第3の実施の形態では、通常電力状態においても低電力状態においてもOS周期毎に1カウントアップする。
受信割り込み制御部33は、第1の実施の形態と同じである。
受信制御部40は、受信I/F部41と、割り込み発生部42とを有している。これらの構成要素は、第1の実施の形態と同じであるので、詳細な説明を省略する。
OSタイマ制御部50は、クロック発生部51と、OSタイマ部52と、割り込み発生部53とを有している。
クロック発生部51は、クロック(システムクロック)を生成し、これをOSタイマ部52に出力する。第3の実施の形態では、アイドルタスク13から指示された場合に、クロックの周波数を(1/N)に変更し、クロック復帰部36から指示された場合に、クロックの周波数をN倍に変更する。本実施の形態では、基準周波数でクロックを発生する発生手段の一例として、クロック発生部51を設けている。
OSタイマ部52は、クロック発生部51によって生成されたクロックをカウントし、クロックの数がOS周期に対応する基準計数値に達する毎に、割り込み発生部53に対しOSタイマ割り込み要求を通知する。第3の実施の形態では、アイドルタスク13から指示された場合に、残りのカウント値の(1/N)を基準計数値に設定し、OSタイマ復帰部35から指示された場合に、残りのカウント値のN倍を基準計数値に設定する。本実施の形態では、基準個数の一例として、基準計数値を用いており、クロックの数が基準個数に達すると周期的な割り込みを行う割り込み手段の一例として、OSタイマ部52を設けている。
割り込み発生部53は、第1の実施の形態と同じである。
電力消費資源60は、画像処理装置1が有する電力を消費する資源である。
尚、本実施の形態では、図示しないが、OSタイマ割り込みを要求するOSタイマ制御部50と、OSタイマ割り込み以外の割り込みを要求する、受信制御部40を含む複数の制御部とを有している。従って、割り込み制御部30において、割り込み共通処理部31は、OSタイマ制御部50、OSタイマ制御部50以外の受信制御部40を含む複数の制御部のうち、割り込みを要求した制御部からの割り込みの種類を判定し、この判定結果に基づいて、対応する割り込み制御部を起動させる。
次に、節電制御タスク11について、詳細に説明する。図11は、節電制御タスク11について説明するための図である。図示するように、節電制御タスク11は、節電制御部110として機能するようになっており、画像処理装置1詳しくは電力消費資源60の消費電力を低減させる制御を行う。
電力消費資源60は、第1の実施の形態と同じであるので、詳細な説明は省略する。
節電制御部110は、第1の実施の形態の節電制御部110からOSタイマ設定部113を取り除いたものであり、節電条件判定部111と、節電実行制御部112とを有している。節電条件判定部111及び節電実行制御部112は、第1の実施の形態と同じであるので、詳細な説明は省略する。本実施の形態では、自装置の電力状態を通常電力状態から低電力状態へ移行する移行手段との一例として、節電実行制御部112を設けている。
尚、本実施の形態においては、タスク制御部20、割り込み制御部30、受信制御部40、クロック発生部51を除くOSタイマ制御部50のそれぞれの機能を実現するためのソフトウェア(プログラム)がROM1c又はHDD1dに格納されている。またタスク格納部10は、ROM1c又はHDD1dで実現される。CPU1aが、ROM1c又はHDD1dからRAM1bへ、これらのソフトウェアを読み出して実行することにより、各構成要素の機能を実現するようになっている。
次に、画像処理装置1の省電力制御処理について、詳細に説明する。図12は、その省電力制御処理の処理手順を示すフローチャートである。
画像処理装置1の電源が投入(オン)されると、ステップ161〜163が実行されるが、これらのステップは図4のステップ121〜123と同じであるので、詳細な説明は省略する。
ステップ163において、節電移行条件が成立したと判定した場合、節電条件判定部111は、その旨を節電実行制御部112へ通知する。節電移行条件が成立した旨を受け取った節電実行制御部112は、電力消費資源60としてのヒータ61、バックライト62、パネル電源63、外部クロック64等を低電力状態にする(ステップ164)。
ステップ164が終了した後にステップ165及び166が実行されるが、これらのステップは図4のステップ125及び126と同じであるので、詳細な説明は省略する。
ステップ166において、予め定められた時間内に印刷データが受信されない(非印刷状態が予め定められた時間継続した)等の要件が満たされて、節電復帰条件が成立しない場合(低電力状態を維持する場合)、アイドルタスク13は、クロック発生部51で発生されるクロックの周波数を(1/N)に変更すると共に、実際の経過時間を計測し、OSタイマ部52を残りのカウント値の(1/N)を基準計数値に設定して再スタートする(ステップ167)。そして、割り込み制御部30では、割り込み共通処理部31が、割り込みが発生したかどうかを判断する(ステップ168)。
この判断の結果、割り込みを示す信号を受信して割り込みが発生した場合は、割り込み共通処理部31がクロックの周波数が(1/N)になっているかどうかを判定する(ステップ169)。そして、(1/N)になっていなければ、OSタイマ復帰部35及びクロック復帰部36は何もしないが、(1/N)になっていれば、OSタイマ復帰部35は、実際の経過時間を計測して、OSタイマ部52を残りのカウント値のN倍を基準計数値に設定して再スタートし、クロック復帰部36は、クロック発生部51で発生されるクロックの周波数をN倍することで元に戻す(ステップ170)。例えば、クロックが1/100になっており、OS周期が10ミリ秒である場合に、7ミリ秒の時点で割り込みが発生したとすると、クロック復帰部36はクロックを100倍して元に戻し、OSタイマ復帰部35は残り時間を3ミリ秒(=10ミリ秒−7ミリ秒)としてOSタイマ部52を再スタートする。
その後、割り込み共通処理部31は、ステップ168で発生したと判断された割り込みの種類を判定する。即ち、その割り込みがOSタイマ割り込みであるかどうかを判定する(ステップ171)。
ステップ171において、割り込みがOSタイマ割り込みであると判定された場合、割り込み共通処理部31は、OSタイマ割り込みに対応する割り込み制御部、即ちOSタイマ割り込み制御部32を動作させる。すると、OSタイマ割り込み制御部32は、OSタイマ割り込み処理を実行する。具体的には、通常電力状態のカウントアップ値(例えば1)だけ、OS時間情報記憶部22に記憶されたOS時間をカウントアップし、OSタイマ部52を再スタートさせる(ステップ172)。
一方、ステップ171において、割り込みがOSタイマ割り込み以外の割り込みであると判定された場合、割り込み共通処理部31は、その割り込みに対応する割り込み制御部を動作させる。すると、割り込み制御部は、その割り込みを実行する(ステップ173)。
そして、ステップ172又はステップ173が終了した後に、タスク実行制御部23は、タスク管理テーブル21及びOS時間情報記憶部22を参照して、タスク切り替えを実施する(ステップ174)。
尚、ステップ175及び176は、図4のステップ132及び133と同じであるので、詳細な説明は省略する。
また、本実施の形態では、通常電力状態においても低電力状態においてもOS周期を同じ(例えば10ミリ秒)としたが、これには限らない。第1及び第2の実施の形態で述べたように、低電力状態においては、OS周期を100倍、1000倍等の間隔に広げるようにしてもよい。
ところで、OSタイマ割り込みの間隔がN倍になるような設定を、第1の実施の形態では、基準計数値をN倍にすることにより実現したのに対し、第3の実施の形態では、クロックの周波数を(1/N)にすることにより実現した。また、その設定が行われた後のOSタイマ割り込みの時点でOS時間に加算される時間が、その設定が行われる前のOSタイマ割り込みの時点でOS時間に加算されていた時間のN倍になるような制御を、第1の実施の形態では、OS時間に加算するOSタイマ割り込みの間隔に相当する時間をN倍にすることにより実現したのに対し、第3の実施の形態では、基準計数値を(1/N)にすることにより実現した。この意味で、第1の実施の形態と、第3の実施の形態とは、同じことを異なる手段で実現しようとするものだと言える。従って、第2の実施の形態における処理は、第1の実施の形態だけでなく、第3の実施の形態においても実施してよい。
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD−ROM等の記録媒体に格納して提供することも可能である。