画像処理装置
【課題】省エネ中に電源をOFFしたデバイスを省エネ復帰後に問題なく使用することができるようにした画像処理装置を提供する。
【解決手段】各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する手段と、省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段と、省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段とを備える。
【解決手段】各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する手段と、省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段と、省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、省エネ中に電源をOFFしたデバイスを省エネ復帰後に問題なく使用することができるようにした画像処理装置に関する。
【背景技術】
【0002】
MFP(Multi Function Printer)等の画像処理装置では、省エネ(スリープ)時にはシステム情報をメモリに保持し(STR:Suspend to RAM)、省エネ復帰時にはメモリに保持されているシステム情報を呼び出して素早く復帰(Resume)する仕組みが取り入れられているものがある。
【0003】
ところで、画像処理装置には、HDD(Hard Disk Drive)、ビデオ(回路)、圧縮伸張器、回転器、合成器、MAC(Media Access Control)、USB(Universal Serial Bus)、操作部、SD(Secure Digital)カード、パワーマネジメント(回路)、WatchDog等の各種のデバイスが装備されているが、省エネ時にはこれらのデバイスの電源がOFFとされるため、そのまま省エネから復帰した場合には状態の不整合を起こし、正常に動作することができなくなる。
【0004】
なお、出願人は出願時点までに本発明に関連する公開された先行技術文献を発見することができなかった。よって、先行技術文献情報を開示していない。
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、省エネ中に電源をOFFしたデバイスを省エネ復帰後に問題なく使用することができるようにした画像処理装置を提供することにある。
【課題を解決するための手段】
【0006】
上記の課題を解決するため、本発明にあっては、
請求項1に記載されるように、各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する手段と、省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段と、省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段とを備える画像処理装置を要旨としている。
【0007】
また、請求項2に記載されるように、請求項1に記載の画像処理装置において、上記省エネ制御のモードは、省エネ移行の第1段階であるソフトサスペンド、省エネ移行の第2段階であるサスペンド、省エネ復帰の第1段階であるリジュウム、および、省エネ復帰の第2段階であるソフトリジュウムの4種類であるものとすることができる。
【0008】
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載の画像処理装置において、省エネ移行時および省エネ復帰時に各デバイスドライバへの他からの割り込みを禁止する期間を設けるようにすることができる。
【0009】
また、請求項4に記載されるように、請求項1ないし3のいずれか一項に記載の画像処理装置において、上記パワーフックキューは優先度レベル毎に区分され、省エネ移行時および省エネ復帰時に優先度レベルの高い順に上記パワーフックキューに登録されたパワーフック関数を呼び出すようにすることができる。
【0010】
また、請求項5に記載されるように、請求項1ないし4のいずれか一項に記載の画像処理装置において、上記各デバイスドライバの初期化時における上記パワーフックキューのパワーフック関数の登録は上記デバイスドライバの初期化の順に行い、省エネ移行時における上記パワーフックキューのパワーフック関数の呼び出しは登録順もしくは登録と逆順に行い、省エネ復帰時における上記パワーフックキューのパワーフック関数の呼び出しは登録と逆順もしくは登録順に行うようにすることができる。
【0011】
また、請求項6〜10に記載されるように、画像処理装置の省エネ制御方法として構成することができる。
【0012】
また、請求項11〜15に記載されるように、画像処理装置の省エネ制御プログラムとして構成することができる。
【発明の効果】
【0013】
本発明の画像処理装置にあっては、各デバイスドライバの初期化時に省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録し、省エネ移行時および省エネ復帰時にパワーフックキューに登録されたパワーフック関数を呼び出して不整合をなくす処理を適宜に行わせることができるため、省エネ中に電源をOFFしたデバイスを省エネ復帰後に問題なく使用することができる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の好適な実施形態につき説明する。
【0015】
図1は本発明の一実施形態にかかる画像処理装置1の構成例を示す図である。
【0016】
図1において、画像処理装置1は、システム制御を行うSCS(System Control Service)2と、OS(Operating System)3内に設けられる、省エネ制御を行うSTRドライバ4と、HDD、ビデオ(回路)、圧縮伸張器、回転器、合成器、MAC、USB、操作部、SDカード、パワーマネジメント(回路)、WatchDog等の各種デバイスのデバイスドライバ5と、省エネ移行・復帰における各デバイスドライバ5の整合性確保のための処理を行うパワーフックシステム6とを備えている。また、パワーフックシステム6は主たる処理を行うパワーフック処理部7と、パワーフック関数を管理するパワーフックキュー8とを備えている。なお、画像処理装置1におけるその他の部分(エンジン、アプリケーション等)は図示を省略している。
【0017】
図2は画像処理装置1のソフトウェア構成を示す図である。
【0018】
図2において、この画像処理装置1は、白黒ラインプリンタ(B&W LP)301、カラーラインプリンタ(Color LP)302、その他ハードウェアリソース303などを有するとともに、ソフトウェア群310は、プラットホーム320およびアプリケーション340からなる。
【0019】
プラットホーム320は、汎用OS321と、共通システムサービス330と、アプリサービス329とで形成される。なお、このプラットホーム320は、あらかじめ定義された関数によりアプリケーション340からの処理要求を受信可能とするアプリケーションプログラムインターフェースを有する。
【0020】
汎用OS321は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム320並びにアプリケーション340の各ソフトウェアをそれぞれプロセスとして並列実行する。オープンソースのUNIX(登録商標)を用いることにより、プログラムの安全性を確保できるとともに、ネットワーク対応可能となり、ソースコードの入手も容易となる。さらに、OS、TCP/IPのロイヤリティが不要であり、アウトソーシングも容易となる。
【0021】
共通システムサービス330は、アプリケーション340に対して基本的な共通サービスを提供するものであり、アプリケーション330からの処理要求を解釈して、ハードウェア資源の獲得要求を発生させる下記に示すコントロールサービスと、一または複数のハードウェア資源の管理をおこない、コントロールサービスからの獲得要求を調停するシステムリソースマネージャー(SRM(SystemResource Manager)323)とを有する。
【0022】
このコントロールサービスは、複数のサービスモジュールにより形成され、具体的には、SCS(System Control Service)322と、ECS(Engine Control Service)324と、MCS(Memory Control Service)325と、OCS(Operation panel Control Service)326と、FCS(FAX Control Service)327と、NCS(Network Control Service)328とがある。
【0023】
SRM323は、SCS322とともにシステムの制御およびリソースの管理をおこなうものであり、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394I/F、RS232CI/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停をおこない、実行制御する。
【0024】
具体的には、このSRM323は、要求されたハードウェア資源が利用可能であるかどうか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、上位層からの要求に対してハードウェア資源の利用スケジューリングをおこない、要求内容(たとえば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施するようにしてもよい。
【0025】
SCS322は、(1)アプリ管理、(2)操作部制御、(3)システム画面表示(ジョブリスト画面、カウンタ表示画面など)、(4)LED表示、(5)リソース管理、(6)割り込みアプリ制御をおこなう。具体的には、(1)アプリ管理では、アプリの登録と、その情報を他のアプリに通知する処理をおこなう。登録されたアプリに対しては、システムの設定やアプリからの要求設定に応じてエンジン状態を通知する。また、登録済みのアプリに対しては、電力モード移行の問い合わせ、割り込みモードなど、システムの状態遷移のための可否問い合わせをおこなう。
【0026】
また、(2)操作部制御では、アプリの操作部使用権の排他制御をおこなう。そして、操作部の使用権を持つアプリへ操作部ドライバ(OCS)からのキー情報を排他的に通知する。このキー情報は、アプリ切替中などのシステムの状態遷移に応じて一時的に通知を停止するマスク制御をおこなう。
【0027】
また、(3)システム画面表示では、操作部使用権を持つアプリからの要求内容に応じて、エンジン状態に対応する警告画面の表示をおこなう。これらのなかには、利用者制限画面などアプリの状態に応じて警告表示をオン/オフするものもある。エンジン状態以外では、ジョブの予約・実行状況を表示するためのジョブリスト画面、トータルカウンタ類を表示するためのカウンタ画面、CSSの通報中を示す画面の表示制御をおこなう。これらのシステム画面表示に関しては、アプリへ操作部使用権の解放を要求せず、アプリ画面を覆うシステム画面として描画をおこなう。
【0028】
また、(4)LED表示では、警告LED、アプリキーなどのシステムLEDの表示制御をおこなう。アプリ固有のLEDについては、アプリが直接表示用ドライバを使用して制御する。
【0029】
また、(5)リソース管理では、アプリ(ECS)がジョブを実行するにあたって、排他しなければならないエンジンリソース(スキャナ、ステープルなど)の排他制御のためのサービスをおこない、(6)割り込みアプリ制御では、特定のアプリを優先動作せさるための制御・サービスをおこなう。
【0030】
ECS324は、白黒ラインプリンタ(B&W LP)301、カラーラインプリンタ(Color LP)302、その他ハードウェアリソース303などのエンジンを制御するものであり、画像読み込みと印刷動作、状態通知、ジャムリカバリなどをおこなう。
【0031】
具体的には、アプリケーション340から受け取ったジョブモードの指定にしたがい、印刷要求をSRM323に順次発行していくことで、一連のコピー/スキャン/印刷動作を実現する。このECS324が取り扱う対象のジョブは、画像入力デバイスにスキャナ(SCANNER)が指定されているか、または、画像出力デバイスにプロッタ(PLOTTER)が指定されているものとする。
【0032】
たとえば、コピー動作の場合には「SCANNER → PLOTTER」と指定され、ファイル蓄積の場合には「SCANNER → MEMORY」と指定され、ファクシミリ送信の場合には「SCANNER → FAX_IN」と指定される。また、蓄積ファイル印刷またはプリンタアプリ311からの印刷の場合には「MEMORY → PLOTTER」と指定され、ファクシミリ受信の場合には「FAX_OUT → PLOTTER」と指定される。
【0033】
なお、ジョブの定義はアプリケーションによって異なるが、ここでは利用者が取り扱う1セットの画像群に対する処理動作を1ジョブと定義する。たとえば、コピーのADF(Automatic Document Feeder)モードの場合は、原稿台に置かれた1セットの原稿を読み取る動作が1ジョブとなり、圧板モードは最終原稿が確定するまでの読み取り動作が1ジョブとなる。また、コピーアプリ312の場合には、一束の原稿をコピーする動作が1ジョブとなり、ファックスアプリ313の場合には、1文書の送信動作または1文書の受信動作が1ジョブとなり、プリンタアプリの場合には、1文書の印刷動作が1ジョブとなる。
【0034】
MCS325は、メモリ制御をおこなうものであり、具体的には、画像メモリの取得および開放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などをおこなう。
【0035】
ここで、ハードディスク装置に蓄積される画像データファイルとして必要な情報を管理するために必要な機能としては、(1)ファイルアクセス(生成/削除/オープン/クローズ)機能(排他処理を含む)、(2)ファイル名称/ID管理(ファイル/ユーザ)/パスワード管理/蓄積時刻管理/ページ数/データフォーマット(圧縮方式など)/アクセス制限/作成アプリ/印刷条件管理などの各種ファイル属性管理(物理的なページ単位の画像データのファイルとしての管理)、(3)ファイル単位およびページ単位での結合/挿入/切断機能、(4)ファイルソート機能(蓄積時刻順/ユーザID順など)、(5)全ファイル情報の通知(表示/検索用)、(6)リカバリ機能(破損ファイルのファイル/ページ破棄)、(7)ファイルの自動削除機能などがある。
【0036】
また、RAMなどのメモリへ画像データを保持しアクセスするための機能としては、(1)アプリケーション340からのファイルおよびページ/バンド属性情報を取得する機能、(2)アプリケーション340からの画像データ領域の確保、解放、リード(Read)、ライト(Write)機能などがある。
【0037】
OCS326は、オペレータと本体制御間の情報伝達手段となる操作パネルを制御するモジュールであり、オペレータのキー操作イベントを本体制御に通知する処理、各アプリがGUIを構築するためのライブラリ関数を提供する処理、構築されたGUI情報をアプリ別に管理する処理、操作パネル上への表示反映処理などをおこなう。
【0038】
このOCS326は、(1)GUI構築のためのライブラリの提供機能、(2)操作部ハードウェア資源管理機能、(3)VRAM描画/LCD表示機能(ハードウェア表示、表示アプリ切替、表示言語切替、ウインドウ暗色表示、メッセージ/アイコンブリンク表示、メッセージの連結表示)、(4)ハードキー入力検出機能、(5)タッチパネルキー入力検出機能、(6)LED出力機能、(7)ブザー出力機能などを有する。
【0039】
FCS327は、システムコントローラの各アプリ層からPSTN/ISDN網を使ったファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読み取り、ファクシミリ受信印刷、融合送受信をおこなうためのAPIを提供するものである。
【0040】
具体的には、このFCS327は、(1)アプリ層から送信依頼されたドキュメントをPSTN/ISDN網を使ってファクシミリ受信機に送信をおこなう送信機能、(2)PSTN/ISDN網から受信したファクシミリ受信画面、各種レポート類を各アプリ層に転送、印刷をおこなう受信機能、(3)ファックスボードに記憶されている電話帳、グループ情報などのファクシミリ管理項目の引用や登録をおこなう電話帳引用・登録機能、(4)ファックスボードに搭載されているBKMに記憶されている送受信結果履歴情報などを必要としているアプリに通知するファックスログ通知機能、(5)ファックスボードの状態変化があったときにFCSに登録してあるアプリに変化のあったイベントを通知するイベント通知機能などを有する。
【0041】
NCS328は、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介をおこなう。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有する。
【0042】
アプリサービス329は、プラットホーム320を形成する共通サービスの一つであるが、上記共通システムサービス330を形成するECS324、MCS325、OCS326、FCS327、NCS328、SRM323およびSCS322とは異なり、アプリケーション340側に立ったサービスを提供するものである。
【0043】
言い換えると、このアプリサービス329は、アプリケーション340と共通システムサービス330との間に介在し、両者の間の橋渡しを担う役割を果たしている。
【0044】
具体的には、このアプリサービス329は、コピーアプリ312、ファックスアプリ313、スキャナアプリ314などが、本来おこなうべきジョブの生成やデータ通信の機能を一括して代行する。このため、コピーアプリ312、ファックスアプリ313、スキャナアプリ314などは、画面やキー操作を対象とすれば足りるので、アプリの開発効率が向上する。
【0045】
アプリケーション340は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ311と、コピー用アプリケーションであるコピーアプリ312と、ファクシミリ用アプリケーションであるファックスアプリ313と、スキャナ用アプリケーションであるスキャナアプリ314と、ネットファイル用アプリケーションであるネットファイルアプリ315と、工程検査用アプリケーションである工程検査アプリ316とを有する。
【0046】
各アプリケーション311〜316は、プラットホーム320上の各プロセスを利用して動作実行し得るため、画面制御およびキー操作制御などをおこなう画面表示制御プログラムがその主体となる。特に、アプリサービス329がプラットホーム320上に設けられているので、ジョブの生成やデータ通信の機能を設ける必要がない。なお、NCS328により接続されたネットワークを介して新たなアプリケーションをネットワーク経由で搭載することもできる。また、各アプリケーションはアプリケーションごとに追加または削除することができる。
【0047】
図3は画像処理装置1のハードウェア構成を示す図である。
【0048】
図3において、画像処理装置1は、CPU902、SDRAM903、フラッシュメモリ904およびHD905などをASIC901に接続したコントローラボード900と、オペレーションパネル910と、ファックスコントロールユニット(FCU)920と、USB930と、IEEE1394940と、プリンタ950とからなる。
【0049】
そして、オペレーションパネル910はASIC901に直接接続され、FCU920、USB930、IEEE1394940およびプリンタ950は、PCIバスを介してASIC901に接続されている。
【0050】
図4は図3に示したASIC901の細部構成を示すブロック図である。
【0051】
図4において、このASIC901は、CPUインターフェース(CPU I/F)、SDRAMインターフェース(SDRAM I/F)、ローカルバスインターフェース(Local BUS I/F)、PCIインターフェース(PCI I/F)、1284、MAC(Media Access Controllor)、I/O、OPEインターフェース(OPE I/F)、HDインターフェース(HD I/F)、Comp/de-comp、Rotateによって形成されている。
【0052】
かかるハードウェア構成を採用することにより、デバイスの共有化による低コスト設計が可能となるとともに、アプリ間融合が容易となる。また、低速機から高速機までスケーラブルなアーキテクチャーとなり、各アプリで使用するハード/ソフトが共通化され、開発効率を向上させることができる。また、新規機能に対する対応が容易となる。
【0053】
図5は省エネ移行および省エネ復帰の処理例を示すシーケンス図である。
【0054】
図5において、各デバイスドライバ5は初期化時(機器起動時もしくはアタッチ時)にパワーフックシステム6のパワーフック処理部7に対してコールバック関数の登録を要求(powerhook_establish()のコール)する(ステップS101)。パワーフック処理部7はパワーフック関数をパワーフックキュー8に追加し(ステップS102)、登録が完了した旨がデバイスドライバ5まで返される(ステップS103、S104)。
【0055】
図6はデバイスドライバ5の初期化によりパワーフック関数が登録されたパワーフックキュー8の例を示す図であり、OSが初期化した順に、HDD→ビデオ→圧縮伸張器→回転器→合成器→MAC→USB→操作部→SDカード→パワーマネジメント→WatchDogに対応するパワーフック関数が登録された状態を示している。
【0056】
図7はパワーフック関数の例を示す図であり、SDカードに対応するパワーフック関数の例を示している。パワーフック関数は、引数で指定されるモード(mode)に応じて所定のコールバック関数を呼び出すようになっており、図示の例では、モードがPWR_SOFTSUSPENDの場合にコールバック関数sdc_suspend(sdc)を呼び出し、モードがPWR_SOFTRESUMEの場合にコールバック関数sdc_resume(sdc)を呼び出すようになっている。
【0057】
なお、デバイスドライバ5側のコールバック関数は、主に次のような処理を行う。
(1)各デバイスの制御レジスタの保存と復元(もしくは省エネ復帰時に制御レジスタの初期値設定のみ)を行なう。
(2)デバイスそのものに状態遷移がある場合、デバイスの制御(割り込み制御)を行なって使用可能な状態に移行させる。
【0058】
図5に戻り、機器の待機時間が所定値を越えた等の要因によりSTRイベントが発生すると(ステップS105)、SCS2はSTRドライバ4にSTR移行要求(sysarch(STR)をコール)する(ステップS106)。
【0059】
STRドライバ4はパワーフック処理部7に省エネ移行の第1段階であるソフトサスペンドを要求(powerhooks(PWR_SOFTSUSPED)をコール)し(ステップS107)、パワーフック処理部7はパワーフックキュー8にパワーフック関数の呼び出しを要求する(ステップS108)。
【0060】
パワーフックキュー8はパワーフック関数を実行することで、各デバイスドライバ5に対しモードに応じたコールバック関数の呼び出しを行う(ステップS109)。各デバイスドライバ5ではコールバック関数に応じた処理を行い、処理完了をパワーフックキュー8に伝える(ステップS110)。
【0061】
図8は省エネ移行時のソフトサスペンドのモードにおけるパワーフック関数の実行の例を示す図であり、パワーフックキュー8に登録された順に実行するようにしたものである。図8において網掛けを付したものはソフトサスペンドのモードに対応するコールバック関数がないものを示しており、網掛けを付していないデバイスドライバのみがコールバック関数に応じた処理を行う。なお、パワーフックキュー8に登録された順と逆順に実行するようにしてもよい。また、各デバイスドライバ5が完全に独立した動作をする場合には実行順序を考慮しなくてもよい。
【0062】
図5に戻り、パワーフックキュー8は全てのデバイスドライバ5についての処理を完了すると、その旨をパワーフック処理部7に伝え(ステップS111)、パワーフック処理部7はその旨をSTRドライバ4に伝える(ステップS112)。
【0063】
次いで、STRドライバ4は割り込み優先度を上げることで、各デバイスドライバ5への他からの割り込みを禁止する(ステップS113)。これは、デバイスそのものに状態遷移がある場合、そのようなデバイスに対応するデバイスドライバ5の処理を続く省エネ移行の第2段階であるサスペンドのモードにおいて行わせることとし、その間のコールバック関数によるデバイスの状態制御処理に支障を与えないようにするためである。なお、WatchDogは定期的にリフレッシュされないと呼び出し元に異常が発生したものとしてリブートを行うものであり、割り込み禁止状態になると誤って異常の発生と認識してしまうため、省エネ移行の第1段階であるソフトサスペンドのモードにおいて停止させるものとする。
【0064】
次いで、STRドライバ4はパワーフック処理部7に省エネ移行の第2段階であるサスペンドを要求(powerhooks(PWR_SUSPED)をコール)し(ステップS114)、パワーフック処理部7はパワーフックキュー8にパワーフック関数の呼び出しを要求する(ステップS115)。
【0065】
パワーフックキュー8はパワーフック関数を実行することで、各デバイスドライバ5に対しモードに応じたコールバック関数の呼び出しを行う(ステップS116)。各デバイスドライバ5ではコールバック関数に応じた処理を行い、処理完了をパワーフックキュー8に伝える(ステップS117)。
【0066】
図9は省エネ移行時のサスペンドのモードにおけるパワーフック関数の実行の例を示す図であり、パワーフックキュー8に登録された順に実行される。図9において網掛けを付したものはサスペンドのモードに対応するコールバック関数がないものを示しており、網掛けを付していないデバイスドライバのみがコールバック関数に応じた処理を行う。なお、パワーフックキュー8に登録された順と逆順に実行するようにしてもよい。また、各デバイスドライバ5が完全に独立した動作をする場合には実行順序を考慮しなくてもよい。
【0067】
図5に戻り、パワーフックキュー8は全てのデバイスドライバ5についての処理を完了すると、その旨をパワーフック処理部7に伝え(ステップS118)、パワーフック処理部7はその旨をSTRドライバ4に伝える(ステップS119)。
【0068】
その後、STRドライバ4はSTRを実行し(ステップS120)、省エネ状態に入る(ステップS121)。
【0069】
機器へのジョブの投入等により復帰要因が発生すると(ステップS122)、STRドライバ4はWakeupを実行する(ステップS123)。
【0070】
次いで、STRドライバ4はパワーフック処理部7に省エネ復帰の第1段階であるリジュウムを要求(powerhooks(PWR_RESUME)をコール)し(ステップS124)、パワーフック処理部7はパワーフックキュー8にパワーフック関数の呼び出しを要求する(ステップS125)。
【0071】
パワーフックキュー8はパワーフック関数を実行することで、各デバイスドライバ5に対しモードに応じたコールバック関数の呼び出しを行う(ステップS126)。各デバイスドライバ5ではコールバック関数に応じた処理を行い、処理完了をパワーフックキュー8に伝える(ステップS127)。
【0072】
図10は省エネ移行時のリジュウムのモードにおけるパワーフック関数の実行の例を示す図であり、パワーフックキュー8に登録された順とは逆順に実行される。図10において網掛けを付したものはリジュウムのモードに対応するコールバック関数がないものを示しており、網掛けを付していないデバイスドライバのみがコールバック関数に応じた処理を行う。なお、パワーフックキュー8に登録された順に実行するようにしてもよい。また、各デバイスドライバ5が完全に独立した動作をする場合には実行順序を考慮しなくてもよい。
【0073】
図5に戻り、パワーフックキュー8は全てのデバイスドライバ5についての処理を完了すると、その旨をパワーフック処理部7に伝え(ステップS128)、パワーフック処理部7はその旨をSTRドライバ4に伝える(ステップS129)。
【0074】
次いで、STRドライバ4は各デバイスドライバ5への他からの割り込み禁止を解除する(ステップS130)。
【0075】
次いで、STRドライバ4はパワーフック処理部7に省エネ復帰の第2段階であるソフトリジュウムを要求(powerhooks(PWR_SOFTRESUME)をコール)し(ステップS131)、パワーフック処理部7はパワーフックキュー8にパワーフック関数の呼び出しを要求する(ステップS132)。
【0076】
パワーフックキュー8はパワーフック関数を実行することで、各デバイスドライバ5に対しモードに応じたコールバック関数の呼び出しを行う(ステップS133)。各デバイスドライバ5ではコールバック関数に応じた処理を行い、処理完了をパワーフックキュー8に伝える(ステップS134)。
【0077】
図11は省エネ移行時のソフトリジュウムのモードにおけるパワーフック関数の実行の例を示す図であり、パワーフックキュー8に登録された順とは逆順に実行される。図11において網掛けを付したものはソフトリジュウムのモードに対応するコールバック関数がないものを示しており、網掛けを付していないデバイスドライバのみがコールバック関数に応じた処理を行う。なお、パワーフックキュー8に登録された順に実行するようにしてもよい。また、各デバイスドライバ5が完全に独立した動作をする場合には実行順序を考慮しなくてもよい。
【0078】
図5に戻り、パワーフックキュー8は全てのデバイスドライバ5についての処理を完了すると、その旨をパワーフック処理部7に伝え(ステップS135)、パワーフック処理部7はその旨をSTRドライバ4に伝える(ステップS136)。
【0079】
STRドライバ4はSCS2にSTR完了を伝え(ステップS137)、処理を終了する。
【0080】
図12は優先度レベル毎に区分されたパワーフックキュー8の例を示す図であり、最も優先度レベルの高い「0」から最も低い「3」までの4段階に分けた例を示している。例えば、「0」にはWatchdogタイマが登録され、「1」には主に画像処理装置として外部からの入力を受けるドライバが登録され、「2」にはその他のドライバが登録され、「3」には省エネの移行・復帰を行うドライバが登録される。なお、優先度レベルは各デバイスドライバ5からパワーフックシステム6にパワーフック関数の登録を要求する際に指定することで、対応する優先度レベルに順に登録される。
【0081】
図13は優先度レベル順にパワーフック関数を呼び出すプログラムの例を示す図であり、powerhooks(モード)をコールされたパワーフック処理部7の内部において実行されるプログラムの例である。図13において、(a)はソフトサスペンドのモードにおける場合、(b)はサスペンドのモードにおける場合、(c)はリジュウムのモードにおける場合、(d)はソフトリジュウムのモードにおける場合を示している。
【0082】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【0083】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図2】画像処理装置のソフトウェア構成を示す図である。
【図3】画像処理装置のハードウェア構成を示す図である。
【図4】ASICの細部構成を示すブロック図である。
【図5】省エネ移行および省エネ復帰の処理例を示すシーケンス図である。
【図6】デバイスドライバの初期化によりパワーフック関数が登録されたパワーフックキューの例を示す図である。
【図7】パワーフック関数の例を示す図である。
【図8】省エネ移行時のソフトサスペンドのモードにおけるパワーフック関数の実行の例を示す図である。
【図9】省エネ移行時のサスペンドのモードにおけるパワーフック関数の実行の例を示す図である。
【図10】省エネ移行時のリジュウムのモードにおけるパワーフック関数の実行の例を示す図である。
【図11】省エネ移行時のソフトリジュウムのモードにおけるパワーフック関数の実行の例を示す図である。
【図12】優先度レベル毎に区分されたパワーフックキューの例を示す図である。
【図13】優先度レベル順にパワーフック関数を呼び出すプログラムの例を示す図である。
【符号の説明】
【0084】
1 画像処理装置
2 SCS
3 OS
4 STRドライバ
5 デバイスドライバ
6 パワーフックシステム
7 パワーフック処理部
8 パワーフックキュー
【技術分野】
【0001】
本発明は、省エネ中に電源をOFFしたデバイスを省エネ復帰後に問題なく使用することができるようにした画像処理装置に関する。
【背景技術】
【0002】
MFP(Multi Function Printer)等の画像処理装置では、省エネ(スリープ)時にはシステム情報をメモリに保持し(STR:Suspend to RAM)、省エネ復帰時にはメモリに保持されているシステム情報を呼び出して素早く復帰(Resume)する仕組みが取り入れられているものがある。
【0003】
ところで、画像処理装置には、HDD(Hard Disk Drive)、ビデオ(回路)、圧縮伸張器、回転器、合成器、MAC(Media Access Control)、USB(Universal Serial Bus)、操作部、SD(Secure Digital)カード、パワーマネジメント(回路)、WatchDog等の各種のデバイスが装備されているが、省エネ時にはこれらのデバイスの電源がOFFとされるため、そのまま省エネから復帰した場合には状態の不整合を起こし、正常に動作することができなくなる。
【0004】
なお、出願人は出願時点までに本発明に関連する公開された先行技術文献を発見することができなかった。よって、先行技術文献情報を開示していない。
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、省エネ中に電源をOFFしたデバイスを省エネ復帰後に問題なく使用することができるようにした画像処理装置を提供することにある。
【課題を解決するための手段】
【0006】
上記の課題を解決するため、本発明にあっては、
請求項1に記載されるように、各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する手段と、省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段と、省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段とを備える画像処理装置を要旨としている。
【0007】
また、請求項2に記載されるように、請求項1に記載の画像処理装置において、上記省エネ制御のモードは、省エネ移行の第1段階であるソフトサスペンド、省エネ移行の第2段階であるサスペンド、省エネ復帰の第1段階であるリジュウム、および、省エネ復帰の第2段階であるソフトリジュウムの4種類であるものとすることができる。
【0008】
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載の画像処理装置において、省エネ移行時および省エネ復帰時に各デバイスドライバへの他からの割り込みを禁止する期間を設けるようにすることができる。
【0009】
また、請求項4に記載されるように、請求項1ないし3のいずれか一項に記載の画像処理装置において、上記パワーフックキューは優先度レベル毎に区分され、省エネ移行時および省エネ復帰時に優先度レベルの高い順に上記パワーフックキューに登録されたパワーフック関数を呼び出すようにすることができる。
【0010】
また、請求項5に記載されるように、請求項1ないし4のいずれか一項に記載の画像処理装置において、上記各デバイスドライバの初期化時における上記パワーフックキューのパワーフック関数の登録は上記デバイスドライバの初期化の順に行い、省エネ移行時における上記パワーフックキューのパワーフック関数の呼び出しは登録順もしくは登録と逆順に行い、省エネ復帰時における上記パワーフックキューのパワーフック関数の呼び出しは登録と逆順もしくは登録順に行うようにすることができる。
【0011】
また、請求項6〜10に記載されるように、画像処理装置の省エネ制御方法として構成することができる。
【0012】
また、請求項11〜15に記載されるように、画像処理装置の省エネ制御プログラムとして構成することができる。
【発明の効果】
【0013】
本発明の画像処理装置にあっては、各デバイスドライバの初期化時に省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録し、省エネ移行時および省エネ復帰時にパワーフックキューに登録されたパワーフック関数を呼び出して不整合をなくす処理を適宜に行わせることができるため、省エネ中に電源をOFFしたデバイスを省エネ復帰後に問題なく使用することができる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の好適な実施形態につき説明する。
【0015】
図1は本発明の一実施形態にかかる画像処理装置1の構成例を示す図である。
【0016】
図1において、画像処理装置1は、システム制御を行うSCS(System Control Service)2と、OS(Operating System)3内に設けられる、省エネ制御を行うSTRドライバ4と、HDD、ビデオ(回路)、圧縮伸張器、回転器、合成器、MAC、USB、操作部、SDカード、パワーマネジメント(回路)、WatchDog等の各種デバイスのデバイスドライバ5と、省エネ移行・復帰における各デバイスドライバ5の整合性確保のための処理を行うパワーフックシステム6とを備えている。また、パワーフックシステム6は主たる処理を行うパワーフック処理部7と、パワーフック関数を管理するパワーフックキュー8とを備えている。なお、画像処理装置1におけるその他の部分(エンジン、アプリケーション等)は図示を省略している。
【0017】
図2は画像処理装置1のソフトウェア構成を示す図である。
【0018】
図2において、この画像処理装置1は、白黒ラインプリンタ(B&W LP)301、カラーラインプリンタ(Color LP)302、その他ハードウェアリソース303などを有するとともに、ソフトウェア群310は、プラットホーム320およびアプリケーション340からなる。
【0019】
プラットホーム320は、汎用OS321と、共通システムサービス330と、アプリサービス329とで形成される。なお、このプラットホーム320は、あらかじめ定義された関数によりアプリケーション340からの処理要求を受信可能とするアプリケーションプログラムインターフェースを有する。
【0020】
汎用OS321は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム320並びにアプリケーション340の各ソフトウェアをそれぞれプロセスとして並列実行する。オープンソースのUNIX(登録商標)を用いることにより、プログラムの安全性を確保できるとともに、ネットワーク対応可能となり、ソースコードの入手も容易となる。さらに、OS、TCP/IPのロイヤリティが不要であり、アウトソーシングも容易となる。
【0021】
共通システムサービス330は、アプリケーション340に対して基本的な共通サービスを提供するものであり、アプリケーション330からの処理要求を解釈して、ハードウェア資源の獲得要求を発生させる下記に示すコントロールサービスと、一または複数のハードウェア資源の管理をおこない、コントロールサービスからの獲得要求を調停するシステムリソースマネージャー(SRM(SystemResource Manager)323)とを有する。
【0022】
このコントロールサービスは、複数のサービスモジュールにより形成され、具体的には、SCS(System Control Service)322と、ECS(Engine Control Service)324と、MCS(Memory Control Service)325と、OCS(Operation panel Control Service)326と、FCS(FAX Control Service)327と、NCS(Network Control Service)328とがある。
【0023】
SRM323は、SCS322とともにシステムの制御およびリソースの管理をおこなうものであり、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394I/F、RS232CI/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停をおこない、実行制御する。
【0024】
具体的には、このSRM323は、要求されたハードウェア資源が利用可能であるかどうか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、上位層からの要求に対してハードウェア資源の利用スケジューリングをおこない、要求内容(たとえば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施するようにしてもよい。
【0025】
SCS322は、(1)アプリ管理、(2)操作部制御、(3)システム画面表示(ジョブリスト画面、カウンタ表示画面など)、(4)LED表示、(5)リソース管理、(6)割り込みアプリ制御をおこなう。具体的には、(1)アプリ管理では、アプリの登録と、その情報を他のアプリに通知する処理をおこなう。登録されたアプリに対しては、システムの設定やアプリからの要求設定に応じてエンジン状態を通知する。また、登録済みのアプリに対しては、電力モード移行の問い合わせ、割り込みモードなど、システムの状態遷移のための可否問い合わせをおこなう。
【0026】
また、(2)操作部制御では、アプリの操作部使用権の排他制御をおこなう。そして、操作部の使用権を持つアプリへ操作部ドライバ(OCS)からのキー情報を排他的に通知する。このキー情報は、アプリ切替中などのシステムの状態遷移に応じて一時的に通知を停止するマスク制御をおこなう。
【0027】
また、(3)システム画面表示では、操作部使用権を持つアプリからの要求内容に応じて、エンジン状態に対応する警告画面の表示をおこなう。これらのなかには、利用者制限画面などアプリの状態に応じて警告表示をオン/オフするものもある。エンジン状態以外では、ジョブの予約・実行状況を表示するためのジョブリスト画面、トータルカウンタ類を表示するためのカウンタ画面、CSSの通報中を示す画面の表示制御をおこなう。これらのシステム画面表示に関しては、アプリへ操作部使用権の解放を要求せず、アプリ画面を覆うシステム画面として描画をおこなう。
【0028】
また、(4)LED表示では、警告LED、アプリキーなどのシステムLEDの表示制御をおこなう。アプリ固有のLEDについては、アプリが直接表示用ドライバを使用して制御する。
【0029】
また、(5)リソース管理では、アプリ(ECS)がジョブを実行するにあたって、排他しなければならないエンジンリソース(スキャナ、ステープルなど)の排他制御のためのサービスをおこない、(6)割り込みアプリ制御では、特定のアプリを優先動作せさるための制御・サービスをおこなう。
【0030】
ECS324は、白黒ラインプリンタ(B&W LP)301、カラーラインプリンタ(Color LP)302、その他ハードウェアリソース303などのエンジンを制御するものであり、画像読み込みと印刷動作、状態通知、ジャムリカバリなどをおこなう。
【0031】
具体的には、アプリケーション340から受け取ったジョブモードの指定にしたがい、印刷要求をSRM323に順次発行していくことで、一連のコピー/スキャン/印刷動作を実現する。このECS324が取り扱う対象のジョブは、画像入力デバイスにスキャナ(SCANNER)が指定されているか、または、画像出力デバイスにプロッタ(PLOTTER)が指定されているものとする。
【0032】
たとえば、コピー動作の場合には「SCANNER → PLOTTER」と指定され、ファイル蓄積の場合には「SCANNER → MEMORY」と指定され、ファクシミリ送信の場合には「SCANNER → FAX_IN」と指定される。また、蓄積ファイル印刷またはプリンタアプリ311からの印刷の場合には「MEMORY → PLOTTER」と指定され、ファクシミリ受信の場合には「FAX_OUT → PLOTTER」と指定される。
【0033】
なお、ジョブの定義はアプリケーションによって異なるが、ここでは利用者が取り扱う1セットの画像群に対する処理動作を1ジョブと定義する。たとえば、コピーのADF(Automatic Document Feeder)モードの場合は、原稿台に置かれた1セットの原稿を読み取る動作が1ジョブとなり、圧板モードは最終原稿が確定するまでの読み取り動作が1ジョブとなる。また、コピーアプリ312の場合には、一束の原稿をコピーする動作が1ジョブとなり、ファックスアプリ313の場合には、1文書の送信動作または1文書の受信動作が1ジョブとなり、プリンタアプリの場合には、1文書の印刷動作が1ジョブとなる。
【0034】
MCS325は、メモリ制御をおこなうものであり、具体的には、画像メモリの取得および開放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などをおこなう。
【0035】
ここで、ハードディスク装置に蓄積される画像データファイルとして必要な情報を管理するために必要な機能としては、(1)ファイルアクセス(生成/削除/オープン/クローズ)機能(排他処理を含む)、(2)ファイル名称/ID管理(ファイル/ユーザ)/パスワード管理/蓄積時刻管理/ページ数/データフォーマット(圧縮方式など)/アクセス制限/作成アプリ/印刷条件管理などの各種ファイル属性管理(物理的なページ単位の画像データのファイルとしての管理)、(3)ファイル単位およびページ単位での結合/挿入/切断機能、(4)ファイルソート機能(蓄積時刻順/ユーザID順など)、(5)全ファイル情報の通知(表示/検索用)、(6)リカバリ機能(破損ファイルのファイル/ページ破棄)、(7)ファイルの自動削除機能などがある。
【0036】
また、RAMなどのメモリへ画像データを保持しアクセスするための機能としては、(1)アプリケーション340からのファイルおよびページ/バンド属性情報を取得する機能、(2)アプリケーション340からの画像データ領域の確保、解放、リード(Read)、ライト(Write)機能などがある。
【0037】
OCS326は、オペレータと本体制御間の情報伝達手段となる操作パネルを制御するモジュールであり、オペレータのキー操作イベントを本体制御に通知する処理、各アプリがGUIを構築するためのライブラリ関数を提供する処理、構築されたGUI情報をアプリ別に管理する処理、操作パネル上への表示反映処理などをおこなう。
【0038】
このOCS326は、(1)GUI構築のためのライブラリの提供機能、(2)操作部ハードウェア資源管理機能、(3)VRAM描画/LCD表示機能(ハードウェア表示、表示アプリ切替、表示言語切替、ウインドウ暗色表示、メッセージ/アイコンブリンク表示、メッセージの連結表示)、(4)ハードキー入力検出機能、(5)タッチパネルキー入力検出機能、(6)LED出力機能、(7)ブザー出力機能などを有する。
【0039】
FCS327は、システムコントローラの各アプリ層からPSTN/ISDN網を使ったファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読み取り、ファクシミリ受信印刷、融合送受信をおこなうためのAPIを提供するものである。
【0040】
具体的には、このFCS327は、(1)アプリ層から送信依頼されたドキュメントをPSTN/ISDN網を使ってファクシミリ受信機に送信をおこなう送信機能、(2)PSTN/ISDN網から受信したファクシミリ受信画面、各種レポート類を各アプリ層に転送、印刷をおこなう受信機能、(3)ファックスボードに記憶されている電話帳、グループ情報などのファクシミリ管理項目の引用や登録をおこなう電話帳引用・登録機能、(4)ファックスボードに搭載されているBKMに記憶されている送受信結果履歴情報などを必要としているアプリに通知するファックスログ通知機能、(5)ファックスボードの状態変化があったときにFCSに登録してあるアプリに変化のあったイベントを通知するイベント通知機能などを有する。
【0041】
NCS328は、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのモジュール群であり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介をおこなう。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有する。
【0042】
アプリサービス329は、プラットホーム320を形成する共通サービスの一つであるが、上記共通システムサービス330を形成するECS324、MCS325、OCS326、FCS327、NCS328、SRM323およびSCS322とは異なり、アプリケーション340側に立ったサービスを提供するものである。
【0043】
言い換えると、このアプリサービス329は、アプリケーション340と共通システムサービス330との間に介在し、両者の間の橋渡しを担う役割を果たしている。
【0044】
具体的には、このアプリサービス329は、コピーアプリ312、ファックスアプリ313、スキャナアプリ314などが、本来おこなうべきジョブの生成やデータ通信の機能を一括して代行する。このため、コピーアプリ312、ファックスアプリ313、スキャナアプリ314などは、画面やキー操作を対象とすれば足りるので、アプリの開発効率が向上する。
【0045】
アプリケーション340は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ311と、コピー用アプリケーションであるコピーアプリ312と、ファクシミリ用アプリケーションであるファックスアプリ313と、スキャナ用アプリケーションであるスキャナアプリ314と、ネットファイル用アプリケーションであるネットファイルアプリ315と、工程検査用アプリケーションである工程検査アプリ316とを有する。
【0046】
各アプリケーション311〜316は、プラットホーム320上の各プロセスを利用して動作実行し得るため、画面制御およびキー操作制御などをおこなう画面表示制御プログラムがその主体となる。特に、アプリサービス329がプラットホーム320上に設けられているので、ジョブの生成やデータ通信の機能を設ける必要がない。なお、NCS328により接続されたネットワークを介して新たなアプリケーションをネットワーク経由で搭載することもできる。また、各アプリケーションはアプリケーションごとに追加または削除することができる。
【0047】
図3は画像処理装置1のハードウェア構成を示す図である。
【0048】
図3において、画像処理装置1は、CPU902、SDRAM903、フラッシュメモリ904およびHD905などをASIC901に接続したコントローラボード900と、オペレーションパネル910と、ファックスコントロールユニット(FCU)920と、USB930と、IEEE1394940と、プリンタ950とからなる。
【0049】
そして、オペレーションパネル910はASIC901に直接接続され、FCU920、USB930、IEEE1394940およびプリンタ950は、PCIバスを介してASIC901に接続されている。
【0050】
図4は図3に示したASIC901の細部構成を示すブロック図である。
【0051】
図4において、このASIC901は、CPUインターフェース(CPU I/F)、SDRAMインターフェース(SDRAM I/F)、ローカルバスインターフェース(Local BUS I/F)、PCIインターフェース(PCI I/F)、1284、MAC(Media Access Controllor)、I/O、OPEインターフェース(OPE I/F)、HDインターフェース(HD I/F)、Comp/de-comp、Rotateによって形成されている。
【0052】
かかるハードウェア構成を採用することにより、デバイスの共有化による低コスト設計が可能となるとともに、アプリ間融合が容易となる。また、低速機から高速機までスケーラブルなアーキテクチャーとなり、各アプリで使用するハード/ソフトが共通化され、開発効率を向上させることができる。また、新規機能に対する対応が容易となる。
【0053】
図5は省エネ移行および省エネ復帰の処理例を示すシーケンス図である。
【0054】
図5において、各デバイスドライバ5は初期化時(機器起動時もしくはアタッチ時)にパワーフックシステム6のパワーフック処理部7に対してコールバック関数の登録を要求(powerhook_establish()のコール)する(ステップS101)。パワーフック処理部7はパワーフック関数をパワーフックキュー8に追加し(ステップS102)、登録が完了した旨がデバイスドライバ5まで返される(ステップS103、S104)。
【0055】
図6はデバイスドライバ5の初期化によりパワーフック関数が登録されたパワーフックキュー8の例を示す図であり、OSが初期化した順に、HDD→ビデオ→圧縮伸張器→回転器→合成器→MAC→USB→操作部→SDカード→パワーマネジメント→WatchDogに対応するパワーフック関数が登録された状態を示している。
【0056】
図7はパワーフック関数の例を示す図であり、SDカードに対応するパワーフック関数の例を示している。パワーフック関数は、引数で指定されるモード(mode)に応じて所定のコールバック関数を呼び出すようになっており、図示の例では、モードがPWR_SOFTSUSPENDの場合にコールバック関数sdc_suspend(sdc)を呼び出し、モードがPWR_SOFTRESUMEの場合にコールバック関数sdc_resume(sdc)を呼び出すようになっている。
【0057】
なお、デバイスドライバ5側のコールバック関数は、主に次のような処理を行う。
(1)各デバイスの制御レジスタの保存と復元(もしくは省エネ復帰時に制御レジスタの初期値設定のみ)を行なう。
(2)デバイスそのものに状態遷移がある場合、デバイスの制御(割り込み制御)を行なって使用可能な状態に移行させる。
【0058】
図5に戻り、機器の待機時間が所定値を越えた等の要因によりSTRイベントが発生すると(ステップS105)、SCS2はSTRドライバ4にSTR移行要求(sysarch(STR)をコール)する(ステップS106)。
【0059】
STRドライバ4はパワーフック処理部7に省エネ移行の第1段階であるソフトサスペンドを要求(powerhooks(PWR_SOFTSUSPED)をコール)し(ステップS107)、パワーフック処理部7はパワーフックキュー8にパワーフック関数の呼び出しを要求する(ステップS108)。
【0060】
パワーフックキュー8はパワーフック関数を実行することで、各デバイスドライバ5に対しモードに応じたコールバック関数の呼び出しを行う(ステップS109)。各デバイスドライバ5ではコールバック関数に応じた処理を行い、処理完了をパワーフックキュー8に伝える(ステップS110)。
【0061】
図8は省エネ移行時のソフトサスペンドのモードにおけるパワーフック関数の実行の例を示す図であり、パワーフックキュー8に登録された順に実行するようにしたものである。図8において網掛けを付したものはソフトサスペンドのモードに対応するコールバック関数がないものを示しており、網掛けを付していないデバイスドライバのみがコールバック関数に応じた処理を行う。なお、パワーフックキュー8に登録された順と逆順に実行するようにしてもよい。また、各デバイスドライバ5が完全に独立した動作をする場合には実行順序を考慮しなくてもよい。
【0062】
図5に戻り、パワーフックキュー8は全てのデバイスドライバ5についての処理を完了すると、その旨をパワーフック処理部7に伝え(ステップS111)、パワーフック処理部7はその旨をSTRドライバ4に伝える(ステップS112)。
【0063】
次いで、STRドライバ4は割り込み優先度を上げることで、各デバイスドライバ5への他からの割り込みを禁止する(ステップS113)。これは、デバイスそのものに状態遷移がある場合、そのようなデバイスに対応するデバイスドライバ5の処理を続く省エネ移行の第2段階であるサスペンドのモードにおいて行わせることとし、その間のコールバック関数によるデバイスの状態制御処理に支障を与えないようにするためである。なお、WatchDogは定期的にリフレッシュされないと呼び出し元に異常が発生したものとしてリブートを行うものであり、割り込み禁止状態になると誤って異常の発生と認識してしまうため、省エネ移行の第1段階であるソフトサスペンドのモードにおいて停止させるものとする。
【0064】
次いで、STRドライバ4はパワーフック処理部7に省エネ移行の第2段階であるサスペンドを要求(powerhooks(PWR_SUSPED)をコール)し(ステップS114)、パワーフック処理部7はパワーフックキュー8にパワーフック関数の呼び出しを要求する(ステップS115)。
【0065】
パワーフックキュー8はパワーフック関数を実行することで、各デバイスドライバ5に対しモードに応じたコールバック関数の呼び出しを行う(ステップS116)。各デバイスドライバ5ではコールバック関数に応じた処理を行い、処理完了をパワーフックキュー8に伝える(ステップS117)。
【0066】
図9は省エネ移行時のサスペンドのモードにおけるパワーフック関数の実行の例を示す図であり、パワーフックキュー8に登録された順に実行される。図9において網掛けを付したものはサスペンドのモードに対応するコールバック関数がないものを示しており、網掛けを付していないデバイスドライバのみがコールバック関数に応じた処理を行う。なお、パワーフックキュー8に登録された順と逆順に実行するようにしてもよい。また、各デバイスドライバ5が完全に独立した動作をする場合には実行順序を考慮しなくてもよい。
【0067】
図5に戻り、パワーフックキュー8は全てのデバイスドライバ5についての処理を完了すると、その旨をパワーフック処理部7に伝え(ステップS118)、パワーフック処理部7はその旨をSTRドライバ4に伝える(ステップS119)。
【0068】
その後、STRドライバ4はSTRを実行し(ステップS120)、省エネ状態に入る(ステップS121)。
【0069】
機器へのジョブの投入等により復帰要因が発生すると(ステップS122)、STRドライバ4はWakeupを実行する(ステップS123)。
【0070】
次いで、STRドライバ4はパワーフック処理部7に省エネ復帰の第1段階であるリジュウムを要求(powerhooks(PWR_RESUME)をコール)し(ステップS124)、パワーフック処理部7はパワーフックキュー8にパワーフック関数の呼び出しを要求する(ステップS125)。
【0071】
パワーフックキュー8はパワーフック関数を実行することで、各デバイスドライバ5に対しモードに応じたコールバック関数の呼び出しを行う(ステップS126)。各デバイスドライバ5ではコールバック関数に応じた処理を行い、処理完了をパワーフックキュー8に伝える(ステップS127)。
【0072】
図10は省エネ移行時のリジュウムのモードにおけるパワーフック関数の実行の例を示す図であり、パワーフックキュー8に登録された順とは逆順に実行される。図10において網掛けを付したものはリジュウムのモードに対応するコールバック関数がないものを示しており、網掛けを付していないデバイスドライバのみがコールバック関数に応じた処理を行う。なお、パワーフックキュー8に登録された順に実行するようにしてもよい。また、各デバイスドライバ5が完全に独立した動作をする場合には実行順序を考慮しなくてもよい。
【0073】
図5に戻り、パワーフックキュー8は全てのデバイスドライバ5についての処理を完了すると、その旨をパワーフック処理部7に伝え(ステップS128)、パワーフック処理部7はその旨をSTRドライバ4に伝える(ステップS129)。
【0074】
次いで、STRドライバ4は各デバイスドライバ5への他からの割り込み禁止を解除する(ステップS130)。
【0075】
次いで、STRドライバ4はパワーフック処理部7に省エネ復帰の第2段階であるソフトリジュウムを要求(powerhooks(PWR_SOFTRESUME)をコール)し(ステップS131)、パワーフック処理部7はパワーフックキュー8にパワーフック関数の呼び出しを要求する(ステップS132)。
【0076】
パワーフックキュー8はパワーフック関数を実行することで、各デバイスドライバ5に対しモードに応じたコールバック関数の呼び出しを行う(ステップS133)。各デバイスドライバ5ではコールバック関数に応じた処理を行い、処理完了をパワーフックキュー8に伝える(ステップS134)。
【0077】
図11は省エネ移行時のソフトリジュウムのモードにおけるパワーフック関数の実行の例を示す図であり、パワーフックキュー8に登録された順とは逆順に実行される。図11において網掛けを付したものはソフトリジュウムのモードに対応するコールバック関数がないものを示しており、網掛けを付していないデバイスドライバのみがコールバック関数に応じた処理を行う。なお、パワーフックキュー8に登録された順に実行するようにしてもよい。また、各デバイスドライバ5が完全に独立した動作をする場合には実行順序を考慮しなくてもよい。
【0078】
図5に戻り、パワーフックキュー8は全てのデバイスドライバ5についての処理を完了すると、その旨をパワーフック処理部7に伝え(ステップS135)、パワーフック処理部7はその旨をSTRドライバ4に伝える(ステップS136)。
【0079】
STRドライバ4はSCS2にSTR完了を伝え(ステップS137)、処理を終了する。
【0080】
図12は優先度レベル毎に区分されたパワーフックキュー8の例を示す図であり、最も優先度レベルの高い「0」から最も低い「3」までの4段階に分けた例を示している。例えば、「0」にはWatchdogタイマが登録され、「1」には主に画像処理装置として外部からの入力を受けるドライバが登録され、「2」にはその他のドライバが登録され、「3」には省エネの移行・復帰を行うドライバが登録される。なお、優先度レベルは各デバイスドライバ5からパワーフックシステム6にパワーフック関数の登録を要求する際に指定することで、対応する優先度レベルに順に登録される。
【0081】
図13は優先度レベル順にパワーフック関数を呼び出すプログラムの例を示す図であり、powerhooks(モード)をコールされたパワーフック処理部7の内部において実行されるプログラムの例である。図13において、(a)はソフトサスペンドのモードにおける場合、(b)はサスペンドのモードにおける場合、(c)はリジュウムのモードにおける場合、(d)はソフトリジュウムのモードにおける場合を示している。
【0082】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【0083】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図2】画像処理装置のソフトウェア構成を示す図である。
【図3】画像処理装置のハードウェア構成を示す図である。
【図4】ASICの細部構成を示すブロック図である。
【図5】省エネ移行および省エネ復帰の処理例を示すシーケンス図である。
【図6】デバイスドライバの初期化によりパワーフック関数が登録されたパワーフックキューの例を示す図である。
【図7】パワーフック関数の例を示す図である。
【図8】省エネ移行時のソフトサスペンドのモードにおけるパワーフック関数の実行の例を示す図である。
【図9】省エネ移行時のサスペンドのモードにおけるパワーフック関数の実行の例を示す図である。
【図10】省エネ移行時のリジュウムのモードにおけるパワーフック関数の実行の例を示す図である。
【図11】省エネ移行時のソフトリジュウムのモードにおけるパワーフック関数の実行の例を示す図である。
【図12】優先度レベル毎に区分されたパワーフックキューの例を示す図である。
【図13】優先度レベル順にパワーフック関数を呼び出すプログラムの例を示す図である。
【符号の説明】
【0084】
1 画像処理装置
2 SCS
3 OS
4 STRドライバ
5 デバイスドライバ
6 パワーフックシステム
7 パワーフック処理部
8 パワーフックキュー
【特許請求の範囲】
【請求項1】
各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する手段と、
省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段と、
省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段とを備えたことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
上記省エネ制御のモードは、省エネ移行の第1段階であるソフトサスペンド、省エネ移行の第2段階であるサスペンド、省エネ復帰の第1段階であるリジュウム、および、省エネ復帰の第2段階であるソフトリジュウムの4種類であることを特徴とする画像処理装置。
【請求項3】
請求項1または2のいずれか一項に記載の画像処理装置において、
省エネ移行時および省エネ復帰時に各デバイスドライバへの他からの割り込みを禁止する期間を設けたことを特徴とする画像処理装置。
【請求項4】
請求項1ないし3のいずれか一項に記載の画像処理装置において、
上記パワーフックキューは優先度レベル毎に区分され、
省エネ移行時および省エネ復帰時に優先度レベルの高い順に上記パワーフックキューに登録されたパワーフック関数を呼び出すことを特徴とする画像処理装置。
【請求項5】
請求項1ないし4のいずれか一項に記載の画像処理装置において、
上記各デバイスドライバの初期化時における上記パワーフックキューのパワーフック関数の登録は上記デバイスドライバの初期化の順に行い、
省エネ移行時における上記パワーフックキューのパワーフック関数の呼び出しは登録順もしくは登録と逆順に行い、
省エネ復帰時における上記パワーフックキューのパワーフック関数の呼び出しは登録と逆順もしくは登録順に行うことを特徴とする画像処理装置。
【請求項6】
各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する工程と、
省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す工程と、
省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す工程とを備えたことを特徴とする画像処理装置の省エネ制御方法。
【請求項7】
請求項6に記載の画像処理装置の省エネ制御方法において、
上記省エネ制御のモードは、省エネ移行の第1段階であるソフトサスペンド、省エネ移行の第2段階であるサスペンド、省エネ復帰の第1段階であるリジュウム、および、省エネ復帰の第2段階であるソフトリジュウムの4種類であることを特徴とする画像処理装置の省エネ制御方法。
【請求項8】
請求項6または7のいずれか一項に記載の画像処理装置の省エネ制御方法において、
省エネ移行時および省エネ復帰時に各デバイスドライバへの他からの割り込みを禁止する期間を設けたことを特徴とする画像処理装置の省エネ制御方法。
【請求項9】
請求項6ないし8のいずれか一項に記載の画像処理装置の省エネ制御方法において、
上記パワーフックキューは優先度レベル毎に区分され、
省エネ移行時および省エネ復帰時に優先度レベルの高い順に上記パワーフックキューに登録されたパワーフック関数を呼び出すことを特徴とする画像処理装置の省エネ制御方法。
【請求項10】
請求項6ないし9のいずれか一項に記載の画像処理装置の省エネ制御方法において、
上記各デバイスドライバの初期化時における上記パワーフックキューのパワーフック関数の登録は上記デバイスドライバの初期化の順に行い、
省エネ移行時における上記パワーフックキューのパワーフック関数の呼び出しは登録順もしくは登録と逆順に行い、
省エネ復帰時における上記パワーフックキューのパワーフック関数の呼び出しは登録と逆順もしくは登録順に行うことを特徴とする画像処理装置の省エネ制御方法。
【請求項11】
コンピュータを、
各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する手段、
省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段、
省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段、
として動作させることを特徴とする画像処理装置の省エネ制御プログラム。
【請求項12】
請求項11に記載の画像処理装置の省エネ制御プログラムにおいて、
上記省エネ制御のモードは、省エネ移行の第1段階であるソフトサスペンド、省エネ移行の第2段階であるサスペンド、省エネ復帰の第1段階であるリジュウム、および、省エネ復帰の第2段階であるソフトリジュウムの4種類であることを特徴とする画像処理装置の省エネ制御プログラム。
【請求項13】
請求項11または12のいずれか一項に記載の画像処理装置の省エネ制御プログラムにおいて、
省エネ移行時および省エネ復帰時に各デバイスドライバへの他からの割り込みを禁止する期間を設けたことを特徴とする画像処理装置の省エネ制御プログラム。
【請求項14】
請求項11ないし13のいずれか一項に記載の画像処理装置の省エネ制御プログラムにおいて、
上記パワーフックキューは優先度レベル毎に区分され、
省エネ移行時および省エネ復帰時に優先度レベルの高い順に上記パワーフックキューに登録されたパワーフック関数を呼び出すことを特徴とする画像処理装置の省エネ制御プログラム。
【請求項15】
請求項11ないし14のいずれか一項に記載の画像処理装置の省エネ制御プログラムにおいて、
上記各デバイスドライバの初期化時における上記パワーフックキューのパワーフック関数の登録は上記デバイスドライバの初期化の順に行い、
省エネ移行時における上記パワーフックキューのパワーフック関数の呼び出しは登録順もしくは登録と逆順に行い、
省エネ復帰時における上記パワーフックキューのパワーフック関数の呼び出しは登録と逆順もしくは登録順に行うことを特徴とする画像処理装置の省エネ制御プログラム。
【請求項1】
各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する手段と、
省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段と、
省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段とを備えたことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
上記省エネ制御のモードは、省エネ移行の第1段階であるソフトサスペンド、省エネ移行の第2段階であるサスペンド、省エネ復帰の第1段階であるリジュウム、および、省エネ復帰の第2段階であるソフトリジュウムの4種類であることを特徴とする画像処理装置。
【請求項3】
請求項1または2のいずれか一項に記載の画像処理装置において、
省エネ移行時および省エネ復帰時に各デバイスドライバへの他からの割り込みを禁止する期間を設けたことを特徴とする画像処理装置。
【請求項4】
請求項1ないし3のいずれか一項に記載の画像処理装置において、
上記パワーフックキューは優先度レベル毎に区分され、
省エネ移行時および省エネ復帰時に優先度レベルの高い順に上記パワーフックキューに登録されたパワーフック関数を呼び出すことを特徴とする画像処理装置。
【請求項5】
請求項1ないし4のいずれか一項に記載の画像処理装置において、
上記各デバイスドライバの初期化時における上記パワーフックキューのパワーフック関数の登録は上記デバイスドライバの初期化の順に行い、
省エネ移行時における上記パワーフックキューのパワーフック関数の呼び出しは登録順もしくは登録と逆順に行い、
省エネ復帰時における上記パワーフックキューのパワーフック関数の呼び出しは登録と逆順もしくは登録順に行うことを特徴とする画像処理装置。
【請求項6】
各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する工程と、
省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す工程と、
省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す工程とを備えたことを特徴とする画像処理装置の省エネ制御方法。
【請求項7】
請求項6に記載の画像処理装置の省エネ制御方法において、
上記省エネ制御のモードは、省エネ移行の第1段階であるソフトサスペンド、省エネ移行の第2段階であるサスペンド、省エネ復帰の第1段階であるリジュウム、および、省エネ復帰の第2段階であるソフトリジュウムの4種類であることを特徴とする画像処理装置の省エネ制御方法。
【請求項8】
請求項6または7のいずれか一項に記載の画像処理装置の省エネ制御方法において、
省エネ移行時および省エネ復帰時に各デバイスドライバへの他からの割り込みを禁止する期間を設けたことを特徴とする画像処理装置の省エネ制御方法。
【請求項9】
請求項6ないし8のいずれか一項に記載の画像処理装置の省エネ制御方法において、
上記パワーフックキューは優先度レベル毎に区分され、
省エネ移行時および省エネ復帰時に優先度レベルの高い順に上記パワーフックキューに登録されたパワーフック関数を呼び出すことを特徴とする画像処理装置の省エネ制御方法。
【請求項10】
請求項6ないし9のいずれか一項に記載の画像処理装置の省エネ制御方法において、
上記各デバイスドライバの初期化時における上記パワーフックキューのパワーフック関数の登録は上記デバイスドライバの初期化の順に行い、
省エネ移行時における上記パワーフックキューのパワーフック関数の呼び出しは登録順もしくは登録と逆順に行い、
省エネ復帰時における上記パワーフックキューのパワーフック関数の呼び出しは登録と逆順もしくは登録順に行うことを特徴とする画像処理装置の省エネ制御方法。
【請求項11】
コンピュータを、
各デバイスドライバの初期化時に、省エネ制御のモード毎に各デバイスドライバに設けられたコールバック関数を呼び出すパワーフック関数をパワーフックキューに登録する手段、
省エネ移行時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段、
省エネ復帰時に上記パワーフックキューに登録されたパワーフック関数を呼び出す手段、
として動作させることを特徴とする画像処理装置の省エネ制御プログラム。
【請求項12】
請求項11に記載の画像処理装置の省エネ制御プログラムにおいて、
上記省エネ制御のモードは、省エネ移行の第1段階であるソフトサスペンド、省エネ移行の第2段階であるサスペンド、省エネ復帰の第1段階であるリジュウム、および、省エネ復帰の第2段階であるソフトリジュウムの4種類であることを特徴とする画像処理装置の省エネ制御プログラム。
【請求項13】
請求項11または12のいずれか一項に記載の画像処理装置の省エネ制御プログラムにおいて、
省エネ移行時および省エネ復帰時に各デバイスドライバへの他からの割り込みを禁止する期間を設けたことを特徴とする画像処理装置の省エネ制御プログラム。
【請求項14】
請求項11ないし13のいずれか一項に記載の画像処理装置の省エネ制御プログラムにおいて、
上記パワーフックキューは優先度レベル毎に区分され、
省エネ移行時および省エネ復帰時に優先度レベルの高い順に上記パワーフックキューに登録されたパワーフック関数を呼び出すことを特徴とする画像処理装置の省エネ制御プログラム。
【請求項15】
請求項11ないし14のいずれか一項に記載の画像処理装置の省エネ制御プログラムにおいて、
上記各デバイスドライバの初期化時における上記パワーフックキューのパワーフック関数の登録は上記デバイスドライバの初期化の順に行い、
省エネ移行時における上記パワーフックキューのパワーフック関数の呼び出しは登録順もしくは登録と逆順に行い、
省エネ復帰時における上記パワーフックキューのパワーフック関数の呼び出しは登録と逆順もしくは登録順に行うことを特徴とする画像処理装置の省エネ制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2007−306143(P2007−306143A)
【公開日】平成19年11月22日(2007.11.22)
【国際特許分類】
【出願番号】特願2006−130552(P2006−130552)
【出願日】平成18年5月9日(2006.5.9)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成19年11月22日(2007.11.22)
【国際特許分類】
【出願日】平成18年5月9日(2006.5.9)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]