(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
電源スイッチと、
前記電源スイッチが操作された後に第１時間が経過した場合、前記画像処理装置への電力供給を強制的に停止する電源遮断手段と、
前記電源スイッチが操作された場合に、前記画像処理装置のＣＰＵがワーク領域として使用する第１記憶手段の記憶内容を第２記憶手段に退避させるハイバネーション処理を実行する処理手段と、
前記第１時間が経過する前に前記ハイバネーション処理が完了するか否かを判定する判定手段と、
前記判定手段によって前記第１時間が経過する前に前記ハイバネーション処理が完了しないと判定された場合、前記処理手段による前記ハイバネーション処理を中断させて、前記画像処理装置のシャットダウン処理を実行する制御手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記シャットダウン処理が実行された前記画像処理装置が起動される場合にコールドブートを実行する起動手段、をさらに備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判定手段は、前記ハイバネーション処理を開始してから現在までの経過時間と、前記経過時間で終了したハイバネーション処理の進捗と、に基づいて、前記第１時間が経過する前に前記ハイバネーション処理が完了するか否を判定する、ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記判定手段は、前記第１時間が経過する前に、前記ハイバネーション処理が完了するか否かを判定する、ことを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記処理手段は、
前記第１記憶手段の複数のメモリブロックのうち、前記第２記憶手段へ記憶内容を退避させるメモリブロックを選択する選択手段と、
前記選択手段によって選択されたメモリブロックの情報を示す管理情報を生成する生成手段と、
前記選択手段によって選択されたメモリブロックの記憶内容と、前記生成手段によって生成された管理情報とを前記第２記憶手段へ格納する退避手段と、
を備えることを特徴とする請求項１乃至４に記載の画像処理装置。
【請求項６】
前記判定手段は、前記生成手段によって生成された前記管理情報を参照して、目標時間内に、前記処理手段による前記ハイバネーション処理が完了するか否かを判定する、ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記電源スイッチが操作されてからの経過時間を計時する計時手段、をさらに備え、
前記制御手段は、前記計時手段によって前記第１時間よりも短い第２時間が計時されると、前記画像処理装置のシャットダウン処理を実行する、ことを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
電源スイッチを備える画像処理装置の制御方法であって、
電源遮断手段が、前記電源スイッチが操作された後に第１時間が経過した場合、前記画像処理装置への電力供給を強制的に停止する電源遮断ステップと、
処理手段が、前記電源スイッチが操作された場合に、前記画像処理装置のＣＰＵがワーク領域として使用する第１記憶手段の記憶内容を第２記憶手段に退避させるハイバネーション処理を実行する処理ステップと、
判定手段が、前記第１時間が経過する前に前記ハイバネーション処理が完了するか否かを判定する判定ステップと、
制御手段が、前記判定ステップで前記第１時間が経過する前に前記ハイバネーション処理が完了しないと判定された場合、前記処理ステップによる前記ハイバネーション処理を中断させて、前記画像処理装置のシャットダウン処理を実行する制御ステップと、
を実行することを特徴とする画像処理装置の制御方法。
【請求項９】
請求項８に記載の画像処理装置の制御方法における各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
現行の画像処理装置は高機能化に伴い、ユーザが電源スイッチをＯＮしてから操作可能となるまでの起動時間が増加する傾向にある。これに対し、ユーザが電源ＯＦＦ操作をした際に主記憶メモリを通電させるサスペンド方式による起動時間の高速化手法がある。しかし、サスペンド方式は、メインメモリが一般的なＤＲＡＭ等である場合には通電を継続する必要があり、待機電力を増大するという問題がある。このような待機電力をゼロにする技術がハイバネーション方式であり、サスペンド方式に対して復帰時間は掛かるが、より省電力性能を向上させたい場合に採用する技術である。例えば、特許文献１には、ＯＦＦ／ＯＮの状態を有する物理的な電源スイッチ（トグル型スイッチ）をハイバネーション機能として割り当てた技術が開示されている。また、特許文献２には、バッテリ残量が少なくなった場合にハイバネーション動作を行い、その際にバッテリが切れるとハイバネーション移行中の電源断が発生することを回避する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−７３２２０号公報
【特許文献２】特開平１１−３１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術には以下に記載する問題がある。例えば、特許文献１では、画像処理装置の電源スイッチが物理的なＯＦＦ／ＯＮの状態を有する（トグル型）スイッチであるため、スイッチのＯＦＦ／ＯＮ状態と本体の電源のＯＦＦ／ＯＮ状態を合わせる必要がある。つまり、スイッチがＯＦＦなのに本体電源が切れていないという状態が発生してはならない。これを回避するために、電源スイッチがＯＦＦされた際に、ソフトウェア制御とは別に電源装置に保護タイマを設定して一定時間後に電源が必ずＯＦＦになっていることを保証する必要がある。しかし、電源スイッチをハイバネーション機能として割り当てた場合であって、さらにハイバネーション移行処理が間に合わなかった場合に、ハイバネーション移行中に強制的に上記保護タイマにより電源がＯＦＦされる障害が発生してしまう。
【０００５】
本発明は、上述の問題に鑑みて成されたものであり、電源スイッチをＯＦＦにすることより一定時間後に必ず電源が切れる構成を有する場合であっても、安全にハイバネーション移行処理を実行するとともに、電源供給の停止までに要する時間を好適に短縮する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、例えば、画像処理装置であって、電源スイッチと、前記電源スイッチが操作された後に第１時間が経過した場合、前記画像処理装置への電力供給を強制的に停止する電源遮断手段と、前記電源スイッチが操作された場合に、前記画像処理装置のＣＰＵがワーク領域として使用する第１記憶手段の記憶内容を第２記憶手段に退避させるハイバネーション処理を実行する処理手段と、前記第１時間が経過する前に前記ハイバネーション処理が完了するか否かを判定する判定手段と、前記判定手段によって前記第１時間が経過する前に前記ハイバネーション処理が完了しないと判定された場合、前記処理手段による前記ハイバネーション処理を中断させて、前記画像処理装置のシャットダウン処理を実行する制御手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明は、電源スイッチをＯＦＦにすることより一定時間後に必ず電源が切れる構成を有する場合であっても、安全にハイバネーション移行処理を実行するとともに、電源供給の停止までに要する時間を好適に短縮する仕組みを提供できる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る画像処理システムの構成例を示す図。
【図２】本実施形態に係るコントローラ部の構成例を示すブロック図。
【図３】本実施形態に係る電源構成の一例を示す図。
【図４】本実施形態に係るシャットダウン時の処理フローを示すフローチャート。
【図５】本実施形態に係るハイバネーションを説明する図。
【図６】本実施形態に係るシステム中断時の処理フローを示すフローチャート。
【図７】本実施形態に係る２次記憶デバイスを示す図。
【図８】正常な時と不具合が発生するケースを示すタイミングチャート。
【図９】本実施形態に係るタイミングチャート。
【図１０】本実施形態に係るシステム保護タイマを示すタイミングチャート。
【図１１】本実施形態に係る処理フローを示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１０】
＜画像処理装置の構成＞
まず、図１を参照して、本実施形態における画像処理システムの構成について説明する。図１に示すように、画像処理システムは、画像処理装置１００と、当該画像処理装置１００にＬＡＮ１０８を介して接続されたコンピュータ１０９を含んで構成される。なお、このシステム構成は、一例であり、本発明を限定する意図はない。例えば、他の画像処理装置や、他のコンピュータを含んで構成されてもよい。
【００１１】
画像処理装置１００は、スキャナ装置１０２、コントローラ１０３、プリンタ装置１０４、操作部１０５、ハードディスク１０６、及びＦＡＸ装置１０７を備える。スキャナ装置１０２は、原稿から光学的に画像を読み取りデジタル画像に変換する。プリンタ装置１０４は、デジタル画像を紙媒体に出力する。操作部１０５は、ユーザによって画像処理装置１００を操作するためのインタフェースである。ハードディスク１０６は、デジタル画像や制御プログラム等を記憶する。ＦＡＸ装置１０７は、電話回線等にデジタル画像を送信したり、電話回線等からデジタル画像を受信したりする。コントローラ１０３は、上述の各モジュールとそれぞれ接続され、各モジュールに指示を出すことで画像処理装置１００上でジョブを実行する。
【００１２】
画像処理装置１００は、ＬＡＮ１０８経由でコンピュータ１０９からデジタル画像の入出力、ジョブの発行や機器の指示等も行なうことが可能である。スキャナ装置１０２は、自動的に原稿束を自動的に逐次入れ替えることが可能な原稿給紙ユニット１２１、原稿を光学スキャンしデジタル画像に変換することが可能なスキャナユニット１２２を備える。変換された画像データは、コントローラ１０３に送信される。プリンタ装置１０４は、紙束から一枚づつ逐次給紙可能な給紙ユニット１４２、給紙した紙に画像データを印刷するためのマーキングユニット１４１、印刷後の紙を排紙するための排紙ユニット１４３を備える。
【００１３】
画像処理装置１００は多彩なジョブを実行可能である。一例を以下に記載する。
・複写機能
スキャナ装置１０２から読み込んだ画像をハードディスク１０６に記録し、同時にプリンタ装置１０４を使用して印刷を行なう。
・画像送信機能
スキャナ装置１０２から読み込んだ画像をＬＡＮ１０８を介してコンピュータ１０９に送信する。
・画像保存機能
スキャナ装置１０２から読み込んだ画像をハードディスク１０６に記録し、必要に応じて画像送信や画像印刷を行なう。
・画像印刷機能
コンピュータ１０９から送信された例えばページ記述言語を解析し、プリンタ装置１０４で印刷する。
【００１４】
＜コントローラの構成＞
次に、図２を参照して、コントローラ１０３の構成例について説明する。コントローラ１０３はメインボード２００と、サブボード２２０から構成される。メインボード２００はいわゆる汎用的なＣＰＵシステムであり、ＣＰＵ２０１、ブートＲＯＭ２０２、メモリ２０３、バスコントローラ２０４、不揮発性メモリ２０５、ディスクコントローラ２０６、フラッシュディスク２０７、ＵＳＢコントローラ２０８、タイマ２１０を備える。ＣＰＵ２０１は、ボード全体を統括的に制御する。ブートＲＯＭ２０２は、初期起動時のプログラムであるブートプログラムを格納する。メモリ２０３は、ＣＰＵ２０１によってワーク領域として使用される主記憶メモリである。バスコントローラ２０４は、外部バスとのブリッジ機能を有する。不揮発性メモリ２０５は、電源断された場合でも記憶内容が消えないメモリである。ディスクコントローラ２０６は、ストレージ装置を制御する。フラッシュディスク（ＳＳＤ等）２０７は、半導体デバイスで構成された比較的小容量なストレージ装置である。ＵＳＢコントローラ２０８は、ＵＳＢデバイス（ここでは、ＵＳＢメモリ２０９）を制御する。タイマ２１０は、計時手段として機能するシステム保護タイマである。また、メインボード２００には外部に、ＵＳＢメモリ２０９、操作部１０５、ハードディスク１０６等が接続される。
【００１５】
サブボード２２０は、比較的小さな汎用ＣＰＵシステムと、画像処理ハードウェアから構成される。サブボード２２０は、ＣＰＵ２２１、メモリ２２３、バスコントローラ２２４、不揮発性メモリ２２５、画像処理部２２７、及びデバイスコントローラ２２６、２２８を備える。ＣＰＵ２２１は、ボード全体を統括的に制御する。メモリ２２３は、ＣＰＵ２２１によってワークメモリとして使用される。バスコントローラ２２４は、外部バスとのブリッジ機能を有する。不揮発性メモリ２２５は、電源断された場合でも記憶内容が消えない。画像処理部２２７は、リアルタイムデジタル画像処理を行なう。デバイスコントローラ２２８、２２６は、それぞれ、外部のスキャナ装置１０２や、プリンタ装置１０４とデジタル画像データの受け渡しを行なう。なお、ＦＡＸ装置１０７についてはＣＰＵ２２１が直接制御を行なう。
【００１６】
なお、図２はブロック図であり簡略化している。例えばＣＰＵ２０１、ＣＰＵ２２１等にはチップセット、バスブリッジ、クロックジェネレータ等のＣＰＵ周辺ハードウェアが多数含まれているが、説明を容易にするため簡略化しており、このブロック構成が本発明を制限するものではないことを理解されたい。
【００１７】
ここで、コントローラ１０３の動作について、紙媒体による画像複写を例に説明する。ユーザが操作部１０５から画像複写を指示すると、ＣＰＵ２０１は、ＣＰＵ２２１を介してスキャナ装置１０２に原稿の画像読取命令を送る。スキャナ装置１０２は、紙原稿を光学スキャンしデジタル画像データに変換してデバイスコントローラ２２８を介して画像処理部２２７に入力する。画像処理部２２７はＣＰＵ２２１を介してメモリ２２３にＤＭＡ転送を行いデジタル画像データの一時保存を行なう。
【００１８】
ＣＰＵ２０１はデジタル画像データがメモリ２２３に一定量もしくは全て入ったことが確認できると、ＣＰＵ２２１を介してプリンタ装置１０４に画像出力指示を出す。ＣＰＵ２２１は、画像処理部２２７にメモリ２２３に格納された画像データの位置（アドレス）を教える。プリンタ装置１０４からの同期信号に従ってメモリ２２３上の画像データは画像処理部２２７とデバイスコントローラ２２６を介してプリンタ装置１０４に送信され、プリンタ装置１０４において紙媒体にデジタル画像データが印刷される。複数部の印刷を行なう場合には、ＣＰＵ２０１は、メモリ２２３の画像データをハードディスク１０６に保存する。したがって、２部目以降はスキャナ装置１０２から画像をもらわずともプリンタ装置１０４に画像を送ることが可能である。
【００１９】
＜電源スイッチの構成＞
次に、図３を参照して、本実施形態に係る画像処理装置１００における電源スイッチの構成について説明する。図３に示す３０１はトグル型の電源スイッチである。３０２は電源ユニットである。３０３はＡＣ−ＤＣコンバータである。３０４はＡＣ電源入力部である。３０５はプリンタ装置１０４に対してＤＣ電源を供給する電源ケーブルである。３０６はコントローラ１０３に対して電源を供給する電源ケーブルである。３０７はトグル型スイッチ３０１の状態をコントローラに通知するラインである。３０８はＡＣ−ＤＣコンバータの出力を制御することの可能な電源リモート信号である。３０９はトグル型スイッチ３０１が電源供給を停止するように操作されてから所定時間が経過するまでに確実に電源供給の停止を保障するための電源保護タイマである。３１０はＡＣ−ＤＣコンバータの出力を制御することが可能なリモート線である。
【００２０】
操作者はトグル型スイッチ３０１を操作することで画像処理装置１００をＯＮ／ＯＦＦすることが可能である。トグル型スイッチ３０１はＯＮ時にＡＣ−ＤＣコンバータに接続されており電源の通電状態を制御することができる。また、ＯＦＦ時はコントローラ１０３がシステムのシャットダウン（画像処理装置１００の終了処理）が完了するまで３０６の電源供給を停止してはならない。つまり、３０７のラインを介してトグル型スイッチ３０１の状態を通知し、シャットダウンが完了後に電源リモート信号３０８を用いてＤＣ電源供給３０６をＯＦＦにするようになっている。このように、画像処理装置１００の電源構成は、シャットダウンが必要な一般的な機器が持っている電源構成と同様である。
【００２１】
トグル型スイッチ３０１はＯＮ／ＯＦＦの状態のどちらか一方の状態をメカ的に保持し続けるスイッチである。操作者はＯＮ／ＯＦＦのいずれか側にスイッチを倒すことで電源の状態を入力することができる。タイマ３０９は、トグル型スイッチ３０１のＯＦＦに連動して時間を計測し、一定時間後に３１０のリモート信号を変化させ、ＡＣ−ＤＣコンバータ３０３の出力を強制的にＯＦＦできるようになっている。つまり、トグル型スイッチ３０１がＯＦＦされた時間を計測し、一定時間後にＡＣ−ＤＣコンバータ３０３をＯＦＦにすることで、一定時間後に装置電源を完全に落とす機能を備えた電源となっている。
【００２２】
また、コントローラ１０３は電源リモート信号３０８を用いることで自分自身の電源を落とすことが可能である。その場合トグル型スイッチ３０１の物理的なＯＦＦ／ＯＮ状態との不一致を防止するために、コントローラ１０３は、３０７による電源ＯＦＦ通知がなされた場合は、電磁石を用いたソレノイド等を用いてトグル型スイッチ３０１を自動的にＯＦＦすることができる。
【００２３】
つまり、図３に示す電源が電力を供給する「コントローラ１０３、プリンタ装置１０４、スキャナ装置１０２」への電源供給を止める方法は以下の２つの方法がある。
（１）スイッチ３０１のＯＦＦを３０７経由でコントローラ１０３が受信、シャットダウン後に電源リモート信号３０８を用いて「コントローラ１０３、プリンタ装置１０４、スキャナ装置１０２」の電源を落とす方法。
（２）スイッチ３０１のＯＦＦ状態をタイマ３０９が一定時間（１２０ｓ）の時間計測する。電源リモート信号３０８において一定時間（１２０ｓ）が経過する間にＯＦＦが発生しなかった場合、リモート制御信号３１０が変化して、「コントローラ１０３、プリンタ装置１０４、スキャナ装置１０２」の電源を落とす方法。
上記（２）はトグル型スイッチ３０１がＯＦＦされているにも関わらず、「コントローラ１０３、プリンタ装置１０４、スキャナ装置１０２」の電源が切れないことを防止するための電源保護回路となる。
【００２４】
＜シャットダウン時の処理フロー＞
次に、図４を参照して、トグル型スイッチ３０１がＯＦＦされた場合の処理フローについて説明する。ここでは、操作者が本体を終了させる時の動作について説明する。本体電源スイッチに相当するトグル型スイッチ３０１がＯＦＦされたことを検知すると、ＣＰＵ２０１は以下の処理を実行する。またこの時タイマ３０９は電源保護回路のための時間測定を開始する。以下で説明する処理は、ＣＰＵ２０１が不揮発性メモリ２０５やＨＤＤ１０６等に格納された制御プログラムをメモリ２０３に読み出して実行することにより実現される。
【００２５】
Ｓ４０１において、ＣＰＵ２０１は、トグル型スイッチ３０１がＯＦＦに操作されると、操作部１０５上にシステム終了中の画面を表示する。続いて、Ｓ４０２において、ＣＰＵ２０１は、現在行っているサービス等の中断・終了処理を行う。終了処理は複数のプロセスで平行に実行されているため、Ｓ４０３において、ＣＰＵ２０１は終了処理が完了したか否かを判定する。終了している場合はＳ４０４に進み、終了していない場合はＳ４０３の判定を定期的に繰り返す。
【００２６】
Ｓ４０４において、ＣＰＵ２０１は、メモリの値をストレージにシンク（ＳＹＮＣ）する。ここで「シンクする（ＳＹＮＣ）」とは、例えばＤＲＡＭ上にキャッシュしたストレージバッファの内容をストレージへ同期させるために、当該ストレージへバッファの内容を格納する処理を示す。続いて、Ｓ４０５において、ＣＰＵ２０１は、ＫｅｒｎｅｌのシャットダウンＩ／Ｆを呼び、カーネルのソフトウェア最終終了処理を行う。その後、Ｓ４０６において、ＣＰＵ２０１は、電源リモート信号３０８経路でＡＣ−ＤＣコンバータ３０３をＯＦＦさせ、装置全体の電源が落ちる。装置全体の電源が落ちることにより、タイマ３０９自体の電源も落ち、電源保護タイマは機能を停止する。
【００２７】
仮になんからの不具合により、図４に示すフローチャート内のいずれかで処理が停止した場合は、コントローラ１０３は、電源リモート信号３０８を変化させないことになる。しかしながら、その場合はタイマ３０９がリモート制御信号３１０を用いてＡＣ−ＤＣコンバータ３０３の出力を落とすことで強制的に電源が落とされる。
【００２８】
＜ハイバネーション＞
次に、図５を参照して、本実施形態で用いるハイバネーションの方法について説明する。ハイバネーションとは、装置の電源を切る直前の状態を保存し、次に電源をＯＮしたときに電源を切る直前の状態から動作を再開する機能を示す。したがって、電源ＯＦＦ時にハイバネーションを用いるためには、電源断時の所定のメモリの状態（内容）を保持しておく必要がある。ＣＰＵ２０１上で動作する一般的なカーネルはメモリ２０３を一定サイズ毎に「ページ」で管理している。ページには、
Ａ．破棄しても良い状態のメモリ（有効ではないメモリ）
Ｂ．破棄してはならない状態のメモリ（有効メモリ）
の２状態が存在する。
【００２９】
Ａは、例えば、ディスクキャッシュとして動作している状態で外部のディスクと中身が同期されていることが分かっているページ、又は、未使用のメモリ等である。Ｂは、例えば、ユーザにより外部ディスクに対する変更要求をメモリにキャッシュしたが、まだ同期がなされていない状態のものや、カーネル自体のメモリ等である。Ａのメモリは破棄しても構わないためハイバネーション対象として保存しなければならないメモリはＢだけで良いことになる。また、有効メモリであっても全ての領域にゼロが格納されているメモリは削除しても構わないカーネルもある。有効メモリ判断部５１０は、選択手段として機能し、このような有効メモリを判断するが、カーネルの種類や方式により判断条件は異なる。
【００３０】
本実施形態では５０１〜５０９のうち、５０１〜５０３と５０５〜５０６はＢの有効メモリとし、有効メモリだけをハイバネーション方式を用いてディスクに保存し、また、復帰させることで画像処理装置１００を同じ状態に戻すことができる。ハイバネーションはおおよそＢＩＯＳで行うものと、ソフトウェアが制御するものの２通りある。前者の方式は有効なメモリを限定する手段がないため全メモリ領域を保存・復帰する必要があった。近年主流となりつつあるのは後者の方式であり、カーネル内部で動作するためメモリの必要な部分だけを保存・復帰すれば、短い時間でハイバネーション処理を終了させることができる。近年、後者の（本実施形態では以降ソフトハイバネーションと称する。）ソフトハイバネーション方式がよく扱われている。本実施形態はソフトハイバネーション方式で説明するが、本発明はハイバネーションの方式を限定するものではない。
【００３１】
＜ハイバネーション移行処理＞
次に、図６を参照して、ハイバネーション終了する際の移行処理について説明する。ここでは、図５に示す例を用いて説明する。以下で説明する処理は、ＣＰＵ２０１が不揮発性メモリ２０５やＨＤＤ１０６等に格納された制御プログラムをメモリ２０３に読み出して実行することにより実現される。
【００３２】
Ｓ６０１において、ＣＰＵ２０１は、ハイバネーション移行処理を開始すると、操作部１０５に「システム終了処理中」を示すメッセージを出力する。続いて、Ｓ６０２において、ＣＰＵ２０１は、ボードの電源を落とすため、現在動作しているハードウェアデバイスのドライバを中断させ、動作しない状態とする。
【００３３】
次に、Ｓ６０３において、ＣＰＵ２０１は、メモリ２０３の５０１〜５０９を遂次読み込み、有効メモリ判断部５１０によって必要なメモリだけを判断する。図５における有効メモリは、５０１〜５０３、５０５〜５０６となる。Ｓ６０４において、ＣＰＵ２０１は、有効メモリページ管理情報を生成する。本実施形態では５１１のように、有効メモリページ管理情報は、有効なメモリが開始される先頭のブロックの情報と、有効なメモリブロックが連続するブロック数の情報とを含む。この管理情報はこの２つの情報に加えて、例えば、物理メモリのアドレス、仮想メモリ上のアドレス、メモリの使用用途、ストレージ上の保存位置等、必要に応じて必要な情報を追加で含んでもよい。このように、本実施形態における有効メモリページ管理情報とは、ストレージに退避したメモリブロックを、メインメモリに復元するために参照するための管理情報を意味する。
【００３４】
Ｓ６０５において、ＣＰＵ２０１は、有効メモリページ管理情報の一要素である例えば５１２に示す情報に従って、５０１から３ブロックのメモリをディスクコントローラ２０６を介在してフラッシュディスク２０７に保存する。Ｓ６０６において、ＣＰＵ２０１は、有効メモリページ管理情報でリストアップされた、退避が必要な全てのメモリブロックを保存するまでループする。メモリ２０３から５１１に従って５１３のようなデータ転送が発生する。
【００３５】
全ての有効なメモリをフラッシュディスク２０７へ退避する処理が完了すると、Ｓ６０７において、ＣＰＵ２０１は、有効メモリページ管理情報５１１自身を保存し、Ｓ６０８で全てのメモリ値をストレージ（フラッシュディスク２０７）にシンクさせる。その後、ＣＰＵ２０１は、電源リモート信号３０８を用いてシステムの電源を落とす。
【００３６】
＜２次記憶デバイス＞
次に、図７を参照して、２次記憶デバイスとしてのフラッシュディスク２０７上のメモリマップについて説明する。７０１は、ＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）である。７０２がシステムのローダである。７０３は論理パーティション群である。７０４は、ハイバネーション用に作られた領域を示し、ハイバネーションヘッダ７０５、データ領域７０６、及び有効メモリページ管理情報７０７を含む。データ領域７０６には、５０１〜５０３及び５０５〜５０６のメモリに含まれた情報が格納される。なお、このようなメモリマップは、一例であり、本発明を限定する意図はない。
【００３７】
＜タイミングチャート＞
以下では、図８を参照して、ハイバネーション移行処理が正常に行われるケース８２０と、ＣＰＵ２０１の強制電源遮断が発生してしまうケース８１０とについて説明する。まず、ケース８１０について説明する。８０１は図３の電源保護タイマ３０９のカウントアップ状態を示す。８０２はＡＣ−ＤＣコンバータ３０３の電圧出力である。８０３は図２のＣＰＵ２０１の実行している処理内容を示す。横軸は時間であり、８００に示すトグル型スイッチ３０１がＯＦＦされるタイミングから、８０１〜８０３の動作状況を記載したものである。
【００３８】
操作者が８００地点でトグル型スイッチ３０１をＯＦＦにすると、電源保護タイマ３０９は電源を保護する目的でカウントアップを開始する。本実施形態ではこの電源保護タイマ３０９の測定時間を１２０秒とする。即ち、本実施形態の場合、１２０秒後に電源ＯＦＦが保障される。
【００３９】
８０３に示すように、ＣＰＵ２０１は、図６を用いて説明したシステム中断処理（ハイバネーション移行処理）を実行する。電源保護タイマ３０９は電源を保護するための１２０秒を測定する。仮に８０３に示すように、ＣＰＵ２０１（Ｃａｓｅ１）のシステム中断処理が１２０秒以上の時間を必要とする場合、８０４のタイミングでリモート制御信号３１０がＯＦＦとなり、８０２のＡＣ−ＤＣコンバータ３０３の電源供給が停止される。これによりコントローラ１０３の電源がＯＦＦされることになり、ＣＰＵ２０１がハイバネーション処理を実行しているにもかかわらず電源が強制的に落ちることになる。ハイバネーションはメモリの値をストレージに書き込むため、ストレージアクセス中のＯＦＦとなるため、ストレージ内のデータ破損を招く可能性もある。
【００４０】
ケース８２０について説明する。ＣＰＵ２０１（Ｃａｓｅ２）のシステム中断処理が１２０秒以内に終了する場合はシャットダウン８０７が実行され、８０６に示すようにハイバネーションの処理が完了後、ＡＣ−ＤＣコンバータ３０３の電源を自発的に切ることができ、システムは正常に終了する。
【００４１】
ハイバネーション移行処理にかかる時間は、変動する複数の要因が存在し、その変動幅も大きい。例えば、
・メモリ２０３が汚れてくることによりハイバネーション対象となるデータ量が大幅に増えた
・データ領域７０６へ書き込む際のストレージのアクセス速度の一時的な低下、
等が考えられる。また、遅延が外部のデバイス要因の場合、実際にアクセスするまで所要時間は分からないため、事前に計算することはできない。
【００４２】
＜処理フロー＞
本発明は上述のような一定時間内に装置を終了させる必要がある状況下おける、ハイバネーション移行処理の方法を提案するものである。以下では、図９乃至図１１を参照して、本発明におけるトグル型スイッチ３０１がＯＦＦされた場合の処理フロー及びタイミングについて説明する。図９は、本実施形態におけるハイバネーション移行処理を実行した際のタイミングチャートを示し、図１１は、本実施形態におけるハイバネーション移行処理の処理フローを示す。以下で説明する処理は、ＣＰＵ２０１が不揮発性メモリ２０５やＨＤＤ１０６等に格納された制御プログラムをメモリ２０３に読み出して実行することにより実現される。
【００４３】
図９の９０１は電源保護タイマ３０９のカウントアップ状態を示す。９０２の縦軸はＣＰＵ２０１がＳ６０６〜Ｓ６０７の処理を実行中に、データ領域７０６に書き込む必要のある全ページ数の進捗を１００に正規化したものである。つまり、データ領域７０６に書き込むべきデータの保存処理の進捗を示すためのグラフを形成している。
【００４４】
操作者がトグル型スイッチ３０１をＯＦＦにした場合、本実施形態によれば、図１１の１１０１のフローチャートが実行される。Ｓ１１０２において、ＣＰＵ２０１は、ハイバネーション移行処理タスク（図６のフローチャートを実行するタスク）を起動し、Ｓ１１０３でシステム保護タイマタスク（図１１のフローチャート１１２１を実行するタスク）を起動する。さらに、Ｓ１１０４において、ＣＰＵ２０１は、ハイバネーション進捗管理タスク（図１１のフローチャート１１１１を実行するタスク）を起動して、処理を終了する。これら３つのフローチャートは独立したスレッドでＣＰＵ２０１上で仮想的に並行して実行される。
【００４５】
上述したように、図６のフローチャートはハイバネーション対象となる全メモリページを算出し、データ領域７０６に遂次書き込んでいく。書き込みが完了すると、シャットダウンを行うハイバネーション移行処理を実行する。フローチャート１１１１は、ハイバネーション処理実行中においても並行で動作するハイバネーションの進捗を管理するためのタスクによって実行される。具体的には目標時間９０９までに図６のフローチャートが完了するか否かを監視する。
【００４６】
まず図６のフローチャートにおいて実行されるハイバネーション保存処理（ハイバネーション処理）が図９の９１０の実線のように動作した場合の正常終了ケースについてフローチャート１１１１を用いて説明する。Ｓ１１１２において、ＣＰＵ２０１は、一定時間９０３区間の待機を実施する。続いて、Ｓ１１１３において、ＣＰＵ２０１は、現在までの経過時間ｔ（グラフ９０２における横軸上のポイント）を取得する。さらに、Ｓ１１１４において、ＣＰＵ２０１は、メモリページにおける全ページ数と現在終了したページ数を取得する。
【００４７】
次に、Ｓ１１１５において、ＣＰＵ２０１は、目標時間９０９までに現在のハイバネーションのメモリページ保存処理が完了するか否かを判定する。演算方法はいろいろあるが、例えば、以下の式を用いて計算することができる。
（式１）進捗＝書きこみ完了したメモリページ数／書き込みが必要なメモリページ数＊１００
上記式１により９０２の縦軸、つまり書き込み処理完了を１００％とした現在の時間ｔにおける進捗［％］を得ることができる。
【００４８】
次に、Ｓ１１１６において、現在の進捗において目標時間９０９に間に合うか否かを、例えば以下の条件式を用いて判定する。
（式２）（進捗＊目標時間９０９）／ｔ＞１００
上記式２を評価することにより、目標時間内９０９にハイバネーションの保存処理が完了するか否かの判断を行うことができる。
【００４９】
実線９１０の場合、破線９１２のように進捗すると予想できるため、目標時間９０９までに全ページの保存処理が完了できると判断され、Ｓ１１１２のウエイト処理に処理を戻す。Ｓ１１１２で待機した後に再び同様の評価が行われる。このようなループ処理を何度か繰り返すと、問題が無ければ破線９１２の進捗状態を推移し、上記Ｓ６０８の処理でストレージがシンクされ、ＡＣ−ＤＣコンバータ３０３はＯＦＦとなりボード電源が落ちる。これが正常ケースの処理フローとなる。
【００５０】
次に、図６のフローチャートのハイバネーション保存処理が実線９１１のように動作する、ハイバネーション中断の終了ケースについて記載する。実線９１０のときと同様にＳ１１１２乃至Ｓ１１１６が実行される。Ｓ１１１６の演算を行った結果、現在の進捗率では目標時間９０９までに処理が完了しないことが予想できる。そこでＳ１１１７に進み、ＣＰＵ２０１は、図６のフローチャートのハイバネーション処理を中断させ、７０５〜７０７のハイバネーション領域の情報のケア（中間データを破棄など）を行う。続いて、Ｓ１１１８において、ＣＰＵ２０１は、電源制御手段として機能し、システムをシャットダウンさせて、電源を切る。これは図９における９０７のシャットダウン動作となり、９０８に示すようにシャットダウン完了後にボード電源が落ちることになる。
【００５１】
このように本発明を実施することにより、所定時間内にハイバネーション保存処理が完了しない場合には、目標時間９０９まで待つことなく、短い時間でシステムを終了することが可能である。また、目標時間９０９を適切に設定することにより、外部に電源を強制的にＯＦＦする構成のタイマ装置がついている電源供給源であったとしても、ハイバネーション動作中に電源が落とされるリスクを回避することが可能となる。
【００５２】
ただし、これはハイバネーションの処理を行うＣＰＵ２０１の処理が正常に動作している場合に有効となる方法である。一方でフローチャート１１１１が正常に動作しなくなった場合や、図１０に示す１００３のタイミングでハイバネーションを実行中のプロセスが固まって動作しなくなった場合なども考えられる。このような場合にはＳ１１１６乃至Ｓ１１１８までの処理を判断・実行すらできずに強制的に電源が落とされることとなる。そこで、本実施形態によれば、システム保護タイマタスクによって、これらの異常状態でも正常に終了させるための仕組みを提供する。具体的な処理について、図１０のタイミングチャートと図１１のフローチャート１１２１を参照して、説明する。
【００５３】
まず、Ｓ１１２２において、ＣＰＵ２０１は、システム保護タイマ２１０の設定を行う。設定する時間は、
（式３）タイマ２１０時間  ＜  （タイマ３０９時間−シャットダウン１００５時間）
かつ、タイマ２１０時間  ＞  （目標時間９０９＋シャットダウン１００５時間）
とする。即ち、タイマ２１０に設定される時間（第２時間）は、シャットダウン処理に要する時間をタイマ３０９に設定する時間（第１時間）から減算した時間より短く、かつ、シャットダウン処理に要する時間を目標時間９０９に加算した時間よりも長くなるように設定される。このように設定することで、タイマ３０９の時間が経過する前にＣＰＵ２０１にイベントを発行し、イベント受信からシャットダウン処理１００５を行ったとしても電源保護タイマ３０９の時間に間に合うように制御することが可能となる。このように、上記式３の条件により求められるタイマ２１０の設定時間がＳ１１２２で設定される。
【００５４】
Ｓ１１２３において、ＣＰＵ２０１は、タイマ２１０の割り込みが発生したか否かを判定する。発生していない場合には、定期的にＳ１１２３の判定を繰り返す。一方、割り込みが発生すると、Ｓ１１２４に進む。図１０の１００４のタイミングでタイマ２１０が満了するとＳ１１２４に進み、ＣＰＵ２０１は、強制終了手段として機能し、シャットダウン処理１００５を行い、その後、電源保護タイマ３０９の時間が満了する前にボードの電源を落とす。この制御はハイバネーションを実行しているプロセス（ソフトウェア資源）と異なるプロセスやカーネルモード等の特権モードで動作するシステムに構築することで、より強い強制力を持ってシステムの正常終了処理を実行することが可能となる。
【００５５】
また、本実施形態によれば、ハイバネーションが行われなかった場合は、次回電源ＯＮ時にシステムのコールドブートが行われる。したがって、前回の終了前状態に復帰することはできない、また起動時間の低下が発生したりするものの、正常に装置を制御することが可能である。
【００５６】
以上説明したように、本実施形態によれば、トグル型スイッチ３０１のＯＦＦをトリガに外部より強制的に電源供給を停止する時限タイマを有する画像処理装置において、時間変動要因の大きいハイバネーションのデータ保存処理を安全に行うことが可能となる。また、データ保存処理が間に合わない場合には、最小の時間であきらめることが可能であり、スイッチＯＦＦから実際に電源が切れるまでの時間（システム終了時間）を短縮することが可能である。
【００５７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005852431.tif 000002
【図２】
0005852431.tif 000003
【図３】
0005852431.tif 000004
【図４】
0005852431.tif 000005
【図５】
0005852431.tif 000006
【図６】
0005852431.tif 000007
【図７】
0005852431.tif 000008
【図８】
0005852431.tif 000009
【図９】
0005852431.tif 000010
【図１０】
0005852431.tif 000011
【図１１】
0005852431.tif 000012