(57)【要約】      （修正有）【課題】休止状態への移行および休止状態からの復帰を迅速に実現することができる画像処理装置、休止方法および復帰方法を提供する。【解決手段】画像処理装置１００は、休止状態への移行要求に応答して、実行中のアプリケーション手段１３２，１３４に対して停止を通知する通知手段１３０と、休止状態への移行要求に対応して、主記憶装置の退避可能な１以上の区画内の情報をディスク型記憶装置２６に退避するメモリ管理手段１２４と、主記憶装置のスナップショットであってディスク型記憶装置２６に退避された情報による情報量が削減された当該スナップショットを、不揮発性記憶装置２４が提供する領域を含む記憶領域に作成する作成手段１２２と、スナップショットの作成が完了した後、主記憶装置への電力供給を切断するリレー手段とを含む。【選択図】図２
2011192142.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置、不揮発性記憶装置およびディスク型記憶装置を備える画像処理装置であって、
休止状態への移行要求に応答して、実行中のアプリケーション手段に対して停止を通知する通知手段と、
前記休止状態への移行要求に対応して、前記主記憶装置の退避可能な１以上の区画内の情報を前記ディスク型記憶装置に退避するメモリ管理手段と、
前記主記憶装置のスナップショットであって前記ディスク型記憶装置に退避された情報による情報量が削減された当該スナップショットを、前記不揮発性記憶装置が提供する領域を含む記憶領域に作成する作成手段と、
前記スナップショットの作成が完了した後、前記主記憶装置への電力供給を切断するリレー手段と
を含む、画像処理装置。
【請求項２】
休止状態からの復帰要求に応答して、前記記憶領域から前記スナップショットを読み出して前記主記憶装置上に展開する展開手段を含み、前記メモリ管理手段は、動作を再開した前記アプリケーション手段からの要求に応答して、前記ディスク型記憶装置に退避されている前記１以上の区画のうちの該要求に対応する区画内の情報を前記主記憶装置に書き戻す、請求項１に記載の画像処理装置。
【請求項３】
前記作成手段は、前記スナップショットのうちの少なくとも前記不揮発性記憶装置のデータ転送速度により前記ディスク型記憶装置のスピンアップ時間をかけて転送可能な容量分については前記不揮発性記憶装置が提供する領域に保存し、前記スナップショットのうちの残余分を前記ディスク型記憶装置が提供する領域に保存する、請求項１または２に記載の画像処理装置。
【請求項４】
前記展開手段は、先ず前記不揮発性記憶装置から前記スナップショットの読み出しを開始し、前記ディスク型記憶装置のスピンアップが完了した後、前記ディスク型記憶装置から前記スナップショットの読み出しを開始する、請求項３に記載の画像処理装置。
【請求項５】
前記不揮発性記憶装置と、前記ディスク型記憶装置とは、独立したデータ転送バスに接続され、前記不揮発性記憶装置および前記ディスク型記憶装置からの前記スナップショットの読み出しは、並列に行われる、請求項４に記載の画像処理装置。
【請求項６】
前記作成手段は、前記スナップショットの作成の前に、前記メモリ管理手段に対し前記主記憶装置内の区画の取得要求を行い、取得された前記主記憶装置の未使用の区画または退避後の区画内を単一の値で埋めることを特徴とし、前記スナップショットは、圧縮されて前記記憶領域に保存される、請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
前記作成手段は、前記スナップショットの作成の前に、前記メモリ管理手段に対し、前記主記憶装置内の未使用の区画の数に対する目標値を、使用中の区画を除く区画の総数へ変更させ、未使用の区画の数が目標値に達した後、前記目標値を元に戻すことを特徴とし、前記スナップショットは、前記使用中の区画のイメージと、付属情報として該使用中の区画の物理アドレスとを含み、前記未使用の区画が除外されている、請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項８】
主記憶装置、不揮発性記憶装置およびディスク型記憶装置を備える画像処理装置が実行する方法であって、
画像処理装置が、休止状態への移行要求に応答して、実行中のアプリケーション手段に対して停止を通知するステップと、
画像処理装置が、前記休止状態への移行要求に対応して、前記主記憶装置の退避可能な１以上の区画内の情報を前記ディスク型記憶装置に退避するステップと、
画像処理装置が、前記主記憶装置のスナップショットであって前記ディスク型記憶装置に退避された情報による情報量が削減された該スナップショットを、前記不揮発性記憶装置が提供する領域を含む記憶領域に作成するステップと、
画像処理装置が、前記スナップショットの作成が完了した後、リレー手段を制御して、前記主記憶装置への電力供給を切断するステップと
を含む、休止方法。
【請求項９】
前記作成するステップは、画像処理装置が、前記スナップショットのうちの少なくとも前記不揮発性記憶装置のデータ転送速度により前記ディスク型記憶装置のスピンアップ時間をかけて転送可能な容量分については前記不揮発性記憶装置が提供する領域に保存するステップと、画像処理装置が、前記スナップショットのうちの残余分を前記ディスク型記憶装置が提供する領域に保存するステップとを含む、請求項８に記載の休止方法。
【請求項１０】
前記作成するステップは、メモリ管理手段に対し前記主記憶装置内の区画の取得要求を行うステップと、取得された前記主記憶装置の未使用の区画または退避された区画内を単一の値で埋めるステップと、前記スナップショットを圧縮するステップとを含む、請求項８または９に記載の休止方法。
【請求項１１】
前記作成するステップは、メモリ管理手段に対し、前記主記憶装置内の未使用の区画の数に対する目標値を、使用中の区画を除く区画の数へ変更させるステップと、未使用の区画の数が目標値に達した後、前記目標値を元に戻すステップと、前記未使用の区画を除外して前記使用中の区画のイメージを、付属情報として該使用中の区画の物理アドレスとともにをスナップショットに含めるステップとを含み、請求項８または９に記載の休止方法。
【請求項１２】
主記憶装置、不揮発性記憶装置およびディスク型記憶装置を備える画像処理装置が実行する方法であって、
画像処理装置が、休止状態からの復帰要求に応答して、前記不揮発性記憶装置が提供する領域を含む記憶領域から、前記主記憶装置の前回の休止時点のスナップショットであって前記ディスク型記憶装置に退避された情報による情報量が削減された該スナップショットを読み出して前記主記憶装置上に展開するステップと、
画像処理装置が、前記展開が完了した後、停止中のアプリケーション手段に対して復帰通知を行うステップと、
画像処理装置が、動作を再開した前記アプリケーション手段からの要求に応答して、前記ディスク型記憶装置に退避されている前記主記憶装置内の１以上の区画のうちの該要求に対応する区画内の情報を前記主記憶装置に書き戻すステップと、
を含む、復帰方法。
【請求項１３】
前記展開するステップは、
前記不揮発性記憶装置から、前記スナップショットのうちの前記不揮発性記憶装置のデータ転送速度により前記ディスク型記憶装置のスピンアップ時間をかけて転送可能な容量分の読み出しを開始するステップと、
前記ディスク型記憶装置のスピンアップが完了した後、前記ディスク型記憶装置から前記スナップショットのうちの残余分の読み出しを開始するステップと
を含む、請求項１２に記載の復帰方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合機などの画像処理装置に関し、より詳細には、休止状態への移行および休止状態からの復帰を迅速に実現することができる画像処理装置、休止方法および復帰方法に関する。
【背景技術】
【０００２】
近年、デジタル複合機では、高機能化が進み、コピー、プリント、スキャナ、ファクシミリ、ネットワークファイル機能などの諸機能が追加されるにつれ、それに伴い起動時間が長期化する傾向にある。
【０００３】
従来より、コンピュータ機器の起動時間を短縮するための技術としては、電源を切断する際に、システムメモリおよびシステム内ハードウェアのレジスタの内容を含む作業環境情報（以下、スナップショットという）をハードディスクに退避し、電源投入時にスナップショットをシステムメモリに復帰する機能、いわゆるハイバネーション機能が知られており、この機能を複合機に適用することも試みられている（特開２００２−３２４０１２号公報：特許文献１）。
【０００４】
特許文献１は、複数のユーザ毎の作業環境に対応したハイバネーション退避および復帰処理が行える情報処理システムを提供することを目的として、デジタル複合機の起動時にオペレーティング・システムがいずれのハイバネーション領域を用いて起動するかをユーザに指定させ、この指定されたハイバネーション領域の情報を調べ、前回のオペレーティング・システムの終了がハイバネーション割り込みによって終了していた場合、その指定されたハイバネーション領域の情報を用いて復帰処理するデジタル複合機が開示されている。
【０００５】
また特開平９−４４４１７号公報（特許文献２）は、メインメモリに常駐すべきコードやデータを格納したメモリ常駐データ領域であるか、またはハードディスクとの間で適宜入れ替え可能なコードやデータを格納した非メモリ常駐データ領域であるかを管理し、給電停止の際には、メインメモリのうちメモリ非常駐データ領域の内容を先に、メモリ常駐データ領域の内容を後からハードディスクに格納することを特徴とする情報処理システムを開示する。
【０００６】
特許文献２の技術では、ハイバネーションに遷移する時にメインメモリ中のメモリ非常駐データを前もってハードディスクドライブに退避、つまりスワップアウトして、次いでメモリ常駐データをハードディスクに格納する。ウェイクアップ時には、メモリ常駐データのみをメインメモリにリストアすれば、システムはタスクを再開することができるため、これによりウェイクアップ時の高速化を図ろうというものである。
【０００７】
また特開２００３−８５０４１号公報（特許文献３）は、機器を高速に起動する目的で、キャッシュメモリを不揮発メモリとし、不揮発メモリにキャッシュされたデータを使うディスクキャッシュシステムであって、ＨＤＤのデータをキャッシュした不揮発メモリから起動時にデータを読み込むことにより、ＨＤＤのスピンアップ時間を待たずに起動処理を実行するディスクキャッシュシステムを開示する。特許文献３の技術によれば、ＨＤＤのスピンアップ前から起動処理を開始できるので、スピンアップ時間が起動時間に与える影響をある程度回避することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１および特許文献２に開示される従来技術では、スナップショットイメージは、通常、ハードディスクに退避されるため、復帰時には、ハードディスクのスピンアップを完了させなければならず、起動時間の短縮には限界があった。上記特許文献１には、半導体記憶装置についての言及があるが、フラッシュＳＳＤ（Solid State Drive）などの半導体記憶装置は、ハードディスクよりも記憶容量の単価が一般に高く、充分なスナップショット領域を確保するために大容量のＳＳＤを採用すると、ＨＤＤの容量を増加させるよりも装置のコストアップにつながる。また、特許文献１の技術のように、ユーザ毎にハイバネーション領域を設けることを想定すると、さらにコストアップとなる。
【０００９】
一方、ＳＳＤ内に充分なスナップショット領域が確保できない場合、ＳＳＤに確保されたスナップショット領域の容量を超えた分はＨＤＤ内に保存されることになる。この場合、スピンアップ完了前にＳＳＤ内のスナップショット領域の読み出しが完了してしまうと、結局スピンアップの完了を待たなければならない。特許文献３の技術は、ＨＤＤのデータをキャッシュした不揮発メモリから起動時にデータを読み込むことにより、スピンアップ時間の問題を緩和しようというものであるが、キャッシュメモリに容量は小さいため、上述したスピンアップの完了を待たなければならない点は解消されない。
【００１０】
またフラッシュＳＳＤ等には記憶素子の書換回数の実質的な上限があるため、ハイバネーション遷移のたびにスナップショット全体がＳＳＤに書き込まれてしまうことは、フラッシュＳＳＤの寿命が改善されているとはいえ、複合機などこまめな省電力動作が要請される機器においては特に好ましいとは言えない。
【００１１】
つまり、上述した起動時間の短縮化の要請を満たし、かつ、フラッシュＳＳＤなどの不揮発性記憶装置に保存されるスナップショットを削減することを可能とする技術の開発が望まれていた。
【００１２】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、本発明は、確保すべき不揮発性記憶装置内のスナップショット領域の容量を削減することができ、不揮発性記憶装置への負荷を削減し、かつ、休止状態への移行および休止状態からの復帰を短縮することができる画像処理装置、休止方法および復帰方法を提供することを目的する。
【課題を解決するための手段】
【００１３】
本発明は、上記課題を解決するために、主記憶装置、不揮発性記憶装置およびディスク型記憶装置を備え、下記の特徴を有する画像処理装置を提供する。すなわち本発明の画像処理装置は、当該画像処理装置の電源スイッチの切断等による休止状態への移行要求に応答して、実行中のアプリケーション手段に対して停止を通知する通知手段と、休止状態への移行要求に対応して、上記主記憶装置の退避可能な１以上のページまたはセグメントといった区画内の情報を上記ディスク型記憶装置に退避するメモリ管理手段と、主記憶装置のスナップショットであってディスク型記憶装置に退避された情報による情報量が削減された当該スナップショットを、上記不揮発性記憶装置が提供する領域を少なくとも含む記憶領域に作成する作成手段とを含む。本発明の画像処理装置が備えるリレー手段は、スナップショットの作成が完了した後、上記主記憶装置への電力供給を切断する。
【００１４】
さらに本発明では、画像処理装置は、当該画像処理装置の電源スイッチの投入等による休止状態からの復帰要求に応答して、上記記憶領域からスナップショットを読み出して主記憶装置上に展開する展開手段を含むことができる。この場合、メモリ管理手段は、動作を再開したアプリケーション手段からの要求に応答して、上記ディスク型記憶装置に退避されている１以上の区画のうちの該要求に対応する区画内の情報を主記憶装置に書き戻すことができる。
【００１５】
また本発明では、上記スナップショットのうちの少なくとも不揮発性記憶装置のデータ転送速度でディスク型記憶装置のスピンアップ時間をかけて転送可能な容量分については、不揮発性記憶装置が提供する領域に保存し、上記スナップショットのうちの残余分については、ディスク型記憶装置が提供する領域に保存することができる。
【００１６】
また本発明によれば、上記画像処理装置が実行する休止方法が提供される。本発明の休止方法では、画像処理装置は、休止状態への移行要求に応答して、実行中のアプリケーション手段に対して停止を通知するステップと、休止状態への移行要求に対応して、主記憶装置の退避可能な１以上の区画内の情報をディスク型記憶装置に退避するステップと、主記憶装置のスナップショットであってディスク型記憶装置に退避された情報による情報量が削減された当該スナップショットを、不揮発性記憶装置が提供する領域を少なくとも含む記憶領域に作成するステップと、スナップショットの作成が完了した後、リレー手段を制御して主記憶装置への電力供給を切断するステップとを実行する。
【００１７】
さらに本発明によれば、上記画像処理装置が実行する復帰方法が提供される。本発明の復帰方法では、画像処理装置は、休止状態からの復帰要求に応答して、不揮発性記憶装置が提供する領域を少なくとも含む記憶領域から、主記憶装置の前回の休止時点のスナップショットであってディスク型記憶装置に退避された情報による情報量が削減された当該スナップショットを読み出して、主記憶装置上に展開するステップと、展開が完了した後、停止中のアプリケーション手段に対して復帰通知を行うステップと、動作を再開したアプリケーション手段からの要求に応答して、ディスク型記憶装置に退避されている主記憶装置内の１以上の区画のうちの該要求に対応する区画内の情報を主記憶装置に書き戻すステップとを実行する。
【発明の効果】
【００１８】
上記構成によれば、主記憶装置内の退避可能なページをディスク型記憶装置に退避し、主記憶装置上の退避した区画に対応する情報量を削減した上で、主記憶装置のスナップショットが不揮発性記憶装置に保存されるため、確保すべき不揮発性記憶装置内の容量を削減することができ、不揮発性記憶装置への負荷を削減し、休止状態への移行および休止状態からの復帰の短縮を図ることが可能となる。
【図面の簡単な説明】
【００１９】
【図１】第１の実施形態の複合機のハードウェア構成を示す図。
【図２】第１の実施形態の複合機上に実現される機能ブロック図。
【図３】第１の実施形態の複合機が実行する休止処理を示すシーケンス図。
【図４】第１の実施形態の複合機が実行する強制スワップアウト処理を示すフローチャート。
【図５】システムメモリのメモリマップのデータ構造を示す図。
【図６】第１の実施形態の複合機が実行する（Ａ）スナップショット作成処理、および（Ｂ）スナップショット展開処理を示すフローチャート。
【図７】電源投入後ＳＳＤから読み出される累積的な情報量を示すグラフ（Ａ）、およびスナップショットの保存先を説明する図（Ｂ）。
【図８】第１の実施形態の複合機が実行する復帰処理を示すシーケンス図。
【図９】第２の実施形態の複合機が実行する休止処理を示すシーケンス図。
【図１０】第２の実施形態の複合機が実行する強制スワップアウト処理を示すフローチャート。
【図１１】第２の実施形態の複合機が実行するスナップショット作成処理を示すフローチャート。
【図１２】第２の実施形態の複合機が実行する復帰処理を示すシーケンス図。
【図１３】第２の実施形態の複合機が実行するスナップショット展開処理を示すフローチャート。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態を説明するが、本発明の実施形態は、以下の実施形態に限定されるものではない。なお、以下の実施形態では、画像処理装置の一例として、コピー、スキャナ、プリント等の画像を扱う複数の機能を有する複合機を用いて説明する。
【００２１】
図１は、第１の実施形態の複合機１０のハードウェア構成を示す。複合機１０は、コントローラ１２と、オペレーションパネル４０と、ＦＣＵ（ファクシミリ・コントロール・ユニット）４２と、エンジン部４４とを含み構成される。コントローラ１２は、ＣＰＵ（中央演算処理装置）１４と、ＮＢ（ノース・ブリッジ）１８と、ＮＢ１８を介してＣＰＵ１４と接続するＡＳＩＣ２０と、システムメモリ１６とを含み構成される。
【００２２】
システムメモリ１６は、作業用メモリなどとして用いられ、本実施形態の主記憶装置を構成する。ＡＳＩＣ２０は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣであり、各種画像処理を実行し、ＡＧＰ（Accelerated Graphic Port）４６を介してＮＢ１８と接続される。
【００２３】
ＡＳＩＣ２０は、ＲＯＭ（Read Only Memory）２２と、ＳＳＤ（Solid State Drive）２４と、ＨＤＤ（Hard Disk Drive）２６と接続される。ＲＯＭ２２は、後述するブートローダを含む各種制御プログラムやフォントデータを格納する。ＳＳＤ２４は、オペレーティング・システム（以下、ＯＳという。）からドライブとして認識される記憶装置であり、ＯＳ、ドライバ、標準アプリケーションなどの各種プログラム、各種システム情報を格納し、また、複合機１０が休止状態に遷移する際に使用するスナップショット領域を提供する。ＳＳＤ２４は、本実施形態の不揮発性記憶装置を構成する。なお、不揮発性記憶装置としては、上述したＳＳＤの他、ＥＥＰＲＯＭ、ＦｅＲＡＭ、ＭＲＡＭなど、スピンアップが不要な如何なる不揮発性の半導体記憶装置を採用することができる。
【００２４】
ＨＤＤ２６は、画像データ、文書データ、プログラム、フォントデータやフォームデータ、拡張アプリケーションのプログラムなどを蓄積し、また仮想記憶におけるスワップ領域、画像処理における画像領域を提供する。また、ＳＳＤ２４にハイバネーションのために確保できる容量の大きさによっては、ＨＤＤ２６は、スナップショット領域の一部を提供することもできる。ＨＤＤ２６は、アーム、ヘッド等の機械機構を含んで構成され、規定の回転数までスピンアップする必要のある記憶装置であり、本実施形態のディスク型記憶装置を構成する。
【００２５】
コントローラ１２は、さらにＳＢ（サウス・ブリッジ）２８と、ＮＩＣ（ネットワーク・インタフェース・カード）３０と、ＳＤ（Secure Digital）カード・スロット３２と、ＵＳＢインタフェース３４と、ＩＥＥＥ１３９４インタフェース３６と、セントロニクス・インタフェース３８とを含み構成され、これらはＰＣＩバス４８を介してＮＢ１８と接続される。
【００２６】
ＳＢ２８は、図示しないＰＣＩバス周辺デバイスなどとＮＢ１８とを接続するためのブリッジである。ＮＩＣ３０は、複合機１０をインターネットやＬＡＮなどのネットワークに接続するインタフェース機器である。ＳＤカード・スロット３２は、図示しないＳＤカードを着脱可能に装着する。ＵＳＢインタフェース３４、ＩＥＥＥ１３９４インタフェース３６およびセントロニクス・インタフェース３８は、それぞれの規格に準じたインタフェースであり、印刷ジョブなどを受付けている。
【００２７】
オペレーションパネル４０は、コントローラ１２上のＡＳＩＣ２０と接続され、オペレータからの各種指示の入力を受付けや、画面表示を行うためのユーザ・インタフェースを提供する。ＦＣＵ４２およびエンジン部４４は、ＰＣＩバス５０を介してＡＳＩＣ２０と接続する。ＦＣＵ４２は、Ｇ３またはＧ４といったファクシミリ通信規格に準じた通信方法を実行する。エンジン部４４は、アプリケーションが発行したプリント指令やスキャン指令を受け、画像形成処理や画像読取処理を実行する。
【００２８】
また本実施形態の複合機１０は、さらに、電源スイッチ５２とリレースイッチ５４とを含み、電源スイッチ５２とリレースイッチ５４との両方が切断された場合に、各部への給電が停止されるよう構成されている。電源スイッチ５２は、複合機１０の外部から物理的に電源を投入または切断するためのスイッチである。リレースイッチ５４は、複合機１０の内部のソフトウェアから電源の投入または切断を制御するためのスイッチであり、本実施形態のリレー手段を提供する。ＡＳＩＣ２０は、汎用入出力ポートを備え、本複合機１０の電源スイッチ５２の開閉状態を検知し、電源スイッチ５２をバイパスするリレースイッチ５４の開閉を制御することで、本複合機１０の電力供給を制御する。
【００２９】
本実施形態の複合機１０は、上述したＲＯＭ２２、ＳＳＤ２４、ＨＤＤ２６、ＳＤカード（図示せず）などから、ブートローダ、ＯＳ、各種アプリケーションなどの各種プログラムを読出し、システムメモリ１６に展開して起動し、このシステムメモリ１６を作業領域としてＣＰＵ１４の制御の下、後述する各機能部を実現する。
【００３０】
以下、機能ブロック図を参照しながら、本実施形態の複合機が有するハイバネーション機能について説明する。図２は、第１の実施形態の複合機１０上に実現される機能ブロックを示す。図２に示す複合機１０は、ブートローダ１１０と、ＯＳ１２０と、システム状態管理部１３０と、標準アプリケーション１３２と、拡張アプリケーション１３４とを含む。
【００３１】
ブートローダ１１０は、複合機１０への電源投入時に実行され、ハードウェアの初期化、コントローラの診断、ソフトウェアの初期化などを行う。また、ブートローダ１１０は、図示しないＮＶＲＡＭ（Non Volatile Random Access Memory）などに格納される起動フラグを参照するなどして、スナップショット領域にスナップショットが存在するか否かを判断し、通常起動を行うか、ハイバネーション復帰を行うかを判断する。
【００３２】
通常起動時のシーケンスでは、ＣＰＵ１４は、ＲＯＭ２２からプログラムを読み出してブートローダ１１０を起動し、ブートローダ１１０の制御の下、ＳＳＤ２４からＯＳ１２０を起動する。続いてＯＳ１２０の制御の下、ＣＰＵ１４は、ＳＳＤ２４およびＨＤＤ２６から上述したシステム状態管理部１３０およびアプリケーション１３２，１３４といった上位のソフトウェア・コンポーネントを起動し、複合機１０の起動処理を完了させる。図２においては、ＲＯＭ２２、ＳＳＤ２４およびＨＤＤ２６にプログラムが格納されている各機能手段がそれぞれ短形１４０ａ，１４０ｂ，１４０ｃで示されているが、図２に示す実施形態に限定されるものではない。
【００３３】
ＯＳ１２０は、ＵＮＩＸ（登録商標）などのオペレーティング・システムであり、複数のプロセスを並列に実行する、いわゆるマルチプロセス環境を提供する。説明する実施形態では、ＵＮＩＸ（登録商標）とするが、特に限定されるものではなく、その他、ＬＩＮＵＸ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）などの如何なるアーキテクチャのオペレーティング・システムを採用することができる。ＯＳ１２０は、具体的には、スナップショット作成部１２２と、メモリ管理部１２４と、ＯＳ用デバイスドライバ１２６と、電源スイッチ監視部１２８とを含む。
【００３４】
メモリ管理部１２４は、ＯＳ１２０が管理するシステムメモリ１６の範囲を決定し、各種ソフトウェア・コンポーネントに対し仮想メモリを提供する。メモリ管理部１２４は、プログラム毎にユーザプログラム領域とスタック領域とを割り当てる。またメモリ管理部１２４は、各種プログラムのプロセスの起動、動作状態、プロセススイッチに応じて、ページテーブルの内容を作成または変更し、各プログラムのプロセスに対して適切な物理メモリを割り当てる。プロセスに対して新たに割り当てる物理メモリが不足した場合には、メモリ管理部１２４は、ＨＤＤ２６上に確保されるスワップ領域と物理メモリとの間で、ＮＲＵ（Not Recently Used）、ＬＲＵ（Least Recently Used）アルゴリズムなどのページ置換アルゴリズムに従ってページの入れ替え、いわゆるスワッピング処理を行う。メモリ管理部１２４は、本実施形態のメモリ管理手段を提供する。
【００３５】
なお、本実施形態では、ページング方式の仮想メモリのメモリ管理方式に従い、物理メモリとスワップ領域との間で入れ替えられる記憶領域の区間の単位がページ単位であるものとして説明するが、特に限定されるものではなく、他の実施形態では、セグメント方式を採用してもよい。
【００３６】
ＯＳ用デバイスドライバ１２６は、ＯＳ１２０上からＳＳＤ２４やＨＤＤ２６などのストレージドライブへのアクセスを提供し、そのデータの読み書きを制御する。電源スイッチ監視部１２８は、図１に示したＡＳＩＣ２０の電源スイッチ５２の開閉状態が入力される汎用入出力ポートを監視し、電源スイッチ５２の切断または投入を検知し、システム状態管理部１３０に通知する。
【００３７】
スナップショット作成部１２２は、ハイバネーション機能により休止状態に移行する際に、現時点のスナップショットを作成し、次回起動時にハイバネーション復帰するべく起動フラグを変更して、リレー制御により電源を切断する。スナップショット作成部１２２は、より詳細には、複合機１０内の各ハードウェアやプロセスのコンテキストを取得し、このコンテキストとともにシステムメモリ１６の現時点のスナップショットをスナップショット領域に保存することで、スナップショットの作成を行う。スナップショット領域は、本実施形態では、少なくともＳＳＤ２４が提供する領域を含む記憶領域であり、後述するように、他の実施形態では、ＨＤＤ２６が提供する領域を含むこともできる。なお、スナップショット作成部１２２は、本実施形態の作成手段を提供する。
【００３８】
ＯＳ１２０の上位のシステム状態管理部１３０は、アプリケーション１３２，１３４の管理、オペレーションパネル４０の制御、システム画面表示、ＬＥＤ表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。システム状態管理部１３０は、本実施形態の通知手段を提供する。標準アプリケーション１３２としては、例えば、ページ記述言語（ＰＤＬ：Page Description Language）により記述された印刷対象のデータをラスタライズして印刷設定に従い印刷するプリンタアプリケーションや、その他、コピーアプリケーション、スキャナアプリケーション、ファクシミリアプリケーション、ネットワークファイル機能を提供するウェブアプリケーションを挙げることができる。
【００３９】
拡張アプリケーション１３４は、上記標準アプリケーション１３２に追加してインストールされるアプリケーションであり、複合機１０のＳＤＫ（Software Development Kit）により作成されたアプリケーションなどを挙げることができる。なお、図２に示すように、拡張アプリケーション１３４は、一般的に、ＳＳＤ２４またはＨＤＤ２６のいずれか任意のドライブにインストールすることができる。
【００４０】
上述したように、通常の起動シーケンスでは、複合機１０に電源投入後、ＲＯＭ２２、ＳＳＤ２４、ＨＤＤ２６に格納されている各種プログラムがシステムメモリ１６上に読み込まれ、図２に示す各機能部が複合機１０上に実現される。一方、ハイバネーション機能による休止状態からの復帰時のシーケンスでは、上述したスナップショット作成部１２２により作成された休止時点のシステムメモリ１６のスナップショットが、スナップショット領域から読み出されて、システムメモリ１６上に展開される。これにより、複合機１０は、休止状態に遷移する直前の状態に復帰し、図２に示す各機能部が複合機１０上に実現されることになる。
【００４１】
上記復帰処理を実現するため、本実施形態のブートローダ１１０は、スナップショット展開部１１２と、ブートローダ用デバイスドライバ１１４とを含む。スナップショット展開部１１２は、複合機１０が休止状態から復帰する際に、ブートローダ用デバイスドライバ１１４を介して、スナップショット領域からスナップショットを読み出し、システムメモリ１６上に展開し、各ハードウェアや各プロセスのコンテキストを復帰させる。ブートローダ用デバイスドライバ１１４は、スナップショット展開部１１２からの要求に従い、ＳＳＤ２４またはＨＤＤ２６からのデータ読み出しを行う。このブートローダ用デバイスドライバ１１４は、ブートローダ１１０の内部要求に対してデバイスアクセスを簡素に可能にしたものであり、ＯＳ１２０上のＯＳ用デバイスドライバ１２６とは異なるモジュールである。
【００４２】
以下、図３〜図８を参照しながら、本実施形態の複合機１０が実行する休止処理および復帰処理についてより詳細に説明する。図３は、第１の実施形態の複合機１０が実行する休止処理を示すシーケンス図である。図３に示す処理は、オペレータが電源スイッチ５２を切断したことに応答してステップＳ１０１から開始される。
【００４３】
オペレータが電源スイッチ５２を切断すると、電源スイッチ監視部１２８は、ステップＳ１０１で、ＡＳＩＣ２０の汎用入出力ポートの変化から電源スイッチ５２の切断を検知し、ステップＳ１０２で、電源切断をシステム状態管理部１３０に状態通知する。なお、説明する実施形態では、複合機１０に対する休止状態への移行要求は、複合機１０の電源スイッチ５２の切断により行われるものとするが、特に限定されるものではない。他の実施形態では、オペレーションパネル４０のソフトウェアキーや、リモート管理インタフェースを介して休止状態への移行要求が行われてもよい。
【００４４】
ステップＳ１０３では、システム状態管理部１３０は、予め登録されているアプリケーション群１３２，１３４のそれぞれに対し、停止の通知（状態変更依頼）を実施し、シャットダウン処理を依頼する。シャットダウン処理の依頼を受信した各アプリケーション１３２，１３４は、ステップＳ１０４で、内部で保持しているジョブをクリアし、シャットダウン処理を行い、ステップＳ１０５で、システム状態管理部１３０に完了を応答する。
【００４５】
システム状態管理部１３０は、アプリケーション群１３２，１３４からの完了応答をすべて受信した後、ステップＳ１０６で、スナップショット作成部１２２に対し、スナップショットの作成の依頼を行う。ステップＳ１０７では、スナップショット作成部１２２は、スナップショット作成に先立って、スナップショットのデータサイズを削減するために、強制スワップアウト処理を実行する。
【００４６】
強制スワップアウト処理中、ステップＳ１０８では、スナップショット作成部１２２がメモリ管理部１２４に対しページ取得要求を行い、ステップＳ１０９では、メモリ管理部１２４がシステムメモリ１６内の管理しているページのうちから犠牲ページを選択し、当該犠牲ページのスワップアウトをＯＳ用デバイスドライバ１２６に対して行う。なお、強制スワップアウト処理については、詳細を後述する。
【００４７】
スナップショット作成部１２２は、ステップＳ１１０で、現時点のコンテキストを取得し、ステップＳ１１１で、スナップショット作成する。スナップショット作成中、スナップショット作成部１２２は、ステップＳ１１２で、ＯＳ用デバイスドライバ１２６を介して、スナップショットの範囲を示す付属情報と、スナップショット自体と、上記コンテキストとを保存する。ステップＳ１１３では、起動時のモードを示す起動フラグを、ハイバネーション復帰を示す値に書き換える。ステップＳ１１４では、スナップショット作成部１２２は、リレースイッチ５４に接続する入出力ポートを介してリレースイッチ５４を開くよう制御し、複合機１０への電力供給を停止する。
【００４８】
なお、説明する実施形態では、説明の便宜上、ステップＳ１１４のリレー制御により複合機１０全体の電力供給が停止されるものとするが、より詳細な単位で給電を管理する他の実施形態では、ここでいう電力供給の停止は、少なくともシステムメモリ１６への電力供給が停止することをいう。他の実施形態では、ステップＳ１１４でリレースイッチ５４が開かれた後も、複合機１０の定着ユニットなどへの電力の供給が継続されてもよく、この定着ユニットへの給電を個別に制御してもよい。また、システムメモリ１６への電力供給の停止は、スナップショット作成後直ちに実施される必要はなく、システムメモリ１６からの復帰に対応させるべく、所定時間維持されていてもよい。
【００４９】
図４は、第１の実施形態の複合機１０が実行する強制スワップアウト処理を示すフローチャートである。図４に示す処理は、図３に示したステップＳ１０６でスナップショット作成部１２２がスナップショット作成依頼を受信して、図３に示したステップＳ１０７に対応してステップＳ２００から開始される。ステップＳ２０１では、スナップショット作成部１２２は、カーネル内のｍａｌｌｏｃ関数などを使用してメモリ取得を行う。ステップＳ２０２では、メモリ管理部１２４は、メモリ取得の要求に対して、空きページの取得を試みる。
【００５０】
図５は、システムメモリ１６のメモリマップを示す図である。図５に示すようにシステムメモリ１６は、ＯＳ１２０の命令コード領域（ｔｅｘｔ）と、ＯＳ１２０のデータ領域（ｄａｔａ）とを含んで構成される。システムメモリ１６は、さらにＯＳ領域の後方に、ページ管理領域と、それ以下のページメモリ領域とを含んで構成される。ＯＳ１２０内のメモリ管理部１２４は、ＯＳ１２０、システム状態管理部１３０および各アプリケーション１３２，１３４に対し、このページメモリを提供する。ページメモリは、図５に示すように、全くの未使用状態である空きページと、プログラムが使用中であるアクティブページと、プログラムがしばらく使用しておらず、ＨＤＤ２６にスワップアウト可能なスワップアウト可能ページとの３種類から構成される。ここで、スワップアウト可能ページとは、所定のページ置換アルゴリズムに従って犠牲ページとして選択されうる領域をいい、一般に、ビット、キュー、リスト、カウンタ値などにより管理される。
【００５１】
再び図４を参照すると、ステップＳ２０３では、メモリ管理部１２４は、空きページの取得に成功したか否かを判定する。ステップＳ２０３で、取得に成功したと判定された場合（ＹＥＳ）には、スナップショット作成部１２２に空きページを返却し、ステップＳ２０４へ処理を進める。ステップＳ２０４では、スナップショット作成部１２２は、取得した空きページをゼロフィルし、単一のパターンで埋め尽くし、ステップＳ２０１へ処理をループさせる。ステップＳ２０１〜Ｓ２０３の処理は、システムメモリ１６内の空きページがスナップショット作成部１２２により取得され尽くすまで繰り返される。
【００５２】
一方、ステップＳ２０３で、強制スワップアウト処理の開始時点の空きページがすべて取得されるなどし、空きページの取得に失敗したと判定された場合（ＮＯ）には、ステップＳ２０５へ処理を進める。ステップＳ２０５では、メモリ管理部１２４は、スワップアウト可能なページの取得を試み、ステップＳ２０６では、スワップアウト可能ページの取得に成功したか否かを判定する。ステップＳ２０６で、取得に成功したと判定された場合（ＹＥＳ）には、ステップＳ２０７へ処理を進め、メモリ管理部１２４は、ＯＳ用デバイスドライバ１２６のうちのＨＤＤ２６のデバイスドライバを使用して、その取得したスワップ可能ページ内の情報をＨＤＤ２６へスワップアウトさせる。
【００５３】
ステップＳ２０８では、メモリ管理部１２４は、スワップアウトさせたページに関連してページ管理領域の内容の更新を行い、ステップＳ２０２へ処理を分岐させる。この場合、スワップアウトによって空きページが生成されているため、空きページの取得に成功し、ステップＳ２０４では、当該ページをゼロフィルし、ステップＳ２０１へ再び処理をループさせることになる。一方、ステップＳ２０６で、取得に失敗したと判定された場合（ＮＯ）には、ステップＳ２０９へ処理を分岐させ、本強制スワップアウト処理を終了させる。ステップＳ２０１〜ステップＳ２０９の処理フローにより、強制スワップアウト処理の開始時点の空きページおよびスワップアウト可能ページのすべてが、スナップショット作成部１２２に取得され、単一パターンで埋め尽くされることとなる。
【００５４】
図６（Ａ）は、第１の実施形態の複合機１０が実行するスナップショット作成処理を示すフローチャートである。図６（Ａ）は、図３に示したステップＳ１１１のスナップショット作成部１２２が実行する処理の詳細を示すものである。図６（Ａ）に示す処理は、図３に示したステップＳ１１１に対応してステップＳ３００から開始される。スナップショット作成部１２２は、ステップＳ３０１で、ＯＳ１２０の命令コード領域（ｔｅｘｔ）の先頭アドレスｐを取得し、ステップＳ３０２で、ページメモリ領域の終端アドレスｑを取得し、ステップＳ３０３で、取得した先頭アドレスｐと終端アドレスｑとをスナップショットの付属情報としてスナップショット領域に保存する。
【００５５】
ステップＳ３０４では、スナップショット作成部１２２は、先頭アドレスｐから終端アドレスｐの範囲を圧縮し、ステップＳ３０５で、ＯＳ用デバイスドライバ１２６を介して、圧縮された範囲をスナップショットの本体情報としてスナップショット領域に保存する。本実施形態では、スナップショットの範囲は、ＯＳ１２０の先頭からページメモリ領域の終端までの全体を含むが、上述した強制スワップアウト処理が実施されているため、スナップショット作成部１２２が取得したページは単一パターンで埋められており、実質的に情報量を増加させるものではない。したがって、本実施形態では、ＨＤＤ２６にスワップアウトされたページ分の情報量が実質的に削減されたスナップショットが保存されることとなる。
【００５６】
上述したスナップショット領域は、第１の実施形態では、ＳＳＤ２４が提供する記憶領域のみを含むものとして説明するが、他の実施形態では、少なくともＳＳＤ２４が提供する記憶領域を含み、加えてＨＤＤ２６が提供する記憶領域を含むこともできる。以下、ＨＤＤ２６が提供する記憶領域を含むスナップショット領域を利用する他の実施形態について説明する。ＨＤＤ２６の記憶領域を利用する場合、復帰時におけるＨＤＤ２６のスピンアップ時間による不具合の回避と、ＳＳＤ２４上のスナップショット領域の削減とを両立させる観点からは、ＳＳＤ２４のデータ転送速度によりＨＤＤ２６のスピンアップ時間をかけて転送可能な容量分を少なくともＳＳＤ２４に保存しておけば良いということになる。
【００５７】
図７（Ａ）は、電源投入後ＳＳＤ２４から読み出される累積的な情報量を示すグラフである。図７（Ａ）に示すＴｉは、電源投入後からブートローダ１１０がＳＳＤ２４にアクセス可能となるまでの時間を示し、Ｔｓは、電源投入後からＨＤＤ２６のスピンアップが完了するまでの時間を示す。Ｉｓは、電源投入後からＨＤＤ２６のスピンアップが完了するまでの間にＳＳＤ２４から読み出すことができる情報量を示す。スピンアップ時間ＴｓでＳＳＤ２４から読み出された累積情報量は、アクセスが可能となった後（Ｔｉ以降）、ＳＳＤ２４の読出時のデータ転送速度ｒに概ね比例して増加する。
【００５８】
したがって、情報量Ｉｓは下記式（１）で表すことができる。また、ＳＳＤ２４は、スピンアップ時間を待つ必要がなく、電源投入後から即座にアクセス可能できる記憶装置であり、ブートローダ１１０もＲＯＭ２２に格納されていることを考慮すると、下記式（１）におけるＴｉは無視することができ、下記式（１）は下記式（２）として表される。
【００５９】
【数１】
2011192142.tif 000003
【００６０】
つまり、スナップショット領域全体のうちＳＳＤ２４上に保存されるデータ部の情報量Ｉ１がＩｓ以上であれば、ハイバネーション復帰の際、ＨＤＤ２６のスピンアップ中、システムメモリ１６へのスナップショットの読み込みが途切れないことになる。この得られた情報量ＩｓまたはＩ１の値は、ＮＶＲＡＭなどに予め保存され、スナップショット作成時に参照されることになる。
【００６１】
すなわち、以下、ＨＤＤ２６を利用する他の実施形態では、図６のステップＳ３０５で圧縮後のスナップショットの本体情報を保存する際に、図７（Ｂ）に示すように、先頭からＩ１（≧Ｉｓ）分のスナップショットのデータ部については、ＯＳ用デバイスドライバ１２６のうちのＳＳＤに対応するデバイスドライバを介してＳＳＤ内スナップショット記憶領域に保存し、残余分（Ｉ２）のデータ部は、ＯＳ用デバイスドライバ１２６のうちのＨＤＤに対応するデバイスドライバを介してＨＤＤ内スナップショット記憶領域に保存する。なお、この場合、ＳＳＤ内スナップショット記憶領域に保存されるアドレス範囲と、ＨＤＤ内スナップショット記憶領域に保存されるアドレス範囲とは、付属情報として個別に保存することができる。
【００６２】
ＳＳＤ２４自体の容量は、ＳＳＤ２４に格納されるＯＳやファームウェアの容量Ｖｆと、スナップショットの情報量Ｉ１を保存するための記憶領域容量Ｖ１（≧Ｉ１≧Ｉｓ）との和（Ｖｆ＋Ｖ１）以上となるように決定すればよい。また、ユーザ毎というようにスナップショット領域を複数準備するような場合には、ＳＳＤ２４自体の容量は、用意するスナップショット領域数ＮをＶ１に乗算して求められる和（Ｖｆ＋Ｖ１×Ｎ）以上となるように決定すればよい。したがって、ＨＤＤ２６を利用する他の実施形態では、複合機１０のシステムメモリ１６の容量にかかわらず、ＨＤＤ２６のスピンアップ時間中読み出しを継続できる容量をＳＳＤ２４に確保できればよいということになる。
【００６３】
さらに、ＳＳＤ２４上に保存される情報量Ｉ１にマージンを設ける場合や圧縮保存される場合など、ハイバネーション復帰時において、ＨＤＤ２６がスピンアップ完了した後、ＳＳＤ２４からの読み出しとＨＤＤ２６からの読み出しが並列して行われる場合がある。この場合、好ましくはＳＳＤ２４およびＨＤＤ２６へのデータ転送バスをそれぞれ独立したものとすることにより、効率的にスナップショットをシステムメモリ１６上に展開することができる。さらに他の実施形態では、ＨＤＤ２６には圧縮しない形式でスナップショットを保存することで、ＨＤＤ２６からは直接メモリアクセス（ＤＭＡ）モードでデータ転送することが可能となる。ＤＭＡモードのデータ転送では、ＣＰＵ１４を使用しないため、ＳＳＤ２４からの読み出しと独立してＨＤＤ２６内のスナップショットをシステムメモリ１６上に展開することができる。
【００６４】
以下、第１の実施形態の複合機１０が実行する復帰処理について説明する。図８は、第１の実施形態の複合機１０が実行する復帰処理を示すシーケンス図である。図８に示す処理は、オペレータが電源スイッチ５２を投入したことに応答してステップＳ４０１から開始される。説明する実施形態では、複合機１０に対する休止状態からの復帰要求は、複合機１０の電源スイッチ５２の投入により行われるものとするが、特に限定されるものではない。
【００６５】
オペレータが電源スイッチ５２を投入すると、コントローラ１２に給電が開始され、ステップＳ４０１で、ＣＰＵ１４は、ＲＯＭ２２からプログラムを読み出してブートローダ１１０を起動する。ステップＳ４０２では、ブートローダ１１０は、ハードウェアを初期化し、コントローラの診断をし、ソフトウェアの初期化をし、ＮＶＲＡＭの起動フラグを確認する。ここでは、ハイバネーション復帰を示す値が確認されるものとし、通常起動のシーケンスについては説明を割愛する。
【００６６】
ハイバネーション復帰を示す値が確認されると、ステップＳ４０３で、ブートローダ１１０は、スナップショット展開部１１２にスナップショットの展開処理の実行を依頼する。ステップＳ４０４で、スナップショット展開部１１２は、ブートローダ用デバイスドライバ１１４を介して、スナップショット領域からコンテキストを読み出し、スナップショットの付属情報を読み出してスナップショットの展開先のアドレス範囲を割り出し、スナップショット本体情報を読み出しながらシステムメモリ１６上に展開する。
【００６７】
図６（Ｂ）は、第１の実施形態の複合機１０が実行するスナップショット展開処理を示すフローチャートである。図６（Ｂ）は、図８に示したステップＳ４０４のスナップショット展開部１１２が実行する処理の詳細を示すものである。図６（Ｂ）に示す処理は、図８に示したステップＳ４０４に対応してステップＳ５００から開始される。スナップショット展開部１１２は、ステップＳ５０１で、ＳＳＤ２４のスナップショット領域からスナップショットの付属情報として保存された先頭アドレスｐと、終端アドレスｑとを取得し、ステップＳ５０２で、スナップショット領域からスナップショットを読み出し、伸張しながら、取得した先頭アドレスｐから終端アドレスｑまでの領域に展開し、ステップＳ５０３で処理を終了させる。
【００６８】
上述したＨＤＤ２６の記憶領域を含むスナップショット領域を利用する他の実施形態では、スナップショット展開部１１２は、まずブートローダ用デバイスドライバ１１４のＳＳＤ２４に関するデバイスドライバを介して、スナップショットのうちＳＳＤ２４内のデータ部をＳＳＤ２４が提供する記憶領域から読み出し、システムメモリ１６上に伸張展開する。一方、スナップショット展開部１１２は、起動直後からＨＤＤ２６のスピンアップを開始し、スピンアップが完了しアクセスが可能となることを待ち合わせる。スナップショット展開部１１２は、ＨＤＤ２６のスピンアップが完了すると、スナップショットのうちＨＤＤ２６内のデータ部をＨＤＤ２６が提供する記憶領域から読み出し、システムメモリ１６上に伸張展開する。この際に展開先は付属情報から取得することができる。
【００６９】
ＳＳＤ２４およびＨＤＤ２６へのデータ転送バスが独立している場合は、スナップショットをシステムメモリ１６上に効率的に展開することができる。さらに圧縮しない形式でスナップショットがＨＤＤ２６に保存されている場合には、ＨＤＤ２６からは直接メモリアクセス（ＤＭＡ）モードでデータ転送することができる。
【００７０】
再び図８を参照して第１の実施形態について説明する。ステップＳ４０５では、スナップショット展開部１１２は、読み出したコンテキストをハードウェアに復元し、スナップショット作成部１２２に制御を戻す。このとき、ＣＰＵ１４のプログラムカウンタを、図３に示すステップＳ１１４のリレー制御の後に変更しておき、電源切断処理分の命令をスキップさせるものとする。
【００７１】
コンテキスト復帰後、スナップショット作成部１２２は、ステップＳ４０６で起動フラグを通常起動を示す値に変更し、ステップＳ４０７でリレースイッチ５４を閉じる。ステップＳ４０８では、スナップショット作成部１２２は、メモリ管理部１２４に対し、休止状態に移行した際に要求した分のページを開放するよう依頼し、メモリ管理部１２４は、空きページを増加させる。ステップＳ４０９では、スナップショット作成部１２２は、システム状態管理部１３０にスナップショット作成依頼に対応する完了応答を行う。
【００７２】
ステップＳ４１０では、完了応答を受けたシステム状態管理部１３０は、予め登録されているアプリケーション群１３２，１３４のそれぞれに対し、復帰の通知（状態変更依頼）を実施し、復帰処理を依頼する。ステップＳ４１１では、各アプリケーション１３２，１３４は、再度動作開始を行う。この間、ＨＤＤ２６上にスワップアウトされてシステムメモリ１６上にページが存在しないアプリケーションは、ステップＳ４１２で、メモリ管理部１２４に対しページ要求をし、ステップＳ４１３で、メモリ管理部１２４は、ＯＳ用デバイスドライバ１２６を介してＨＤＤ２６上に退避されていた要求のページをシステムメモリ１６上にページインする。このように、アプリケーション１３２，１３４は、ＨＤＤ２６からページインさせながら動作し、最終的にアプリケーション群１３２，１３４が復帰処理を完了させると、ステップＳ４１４で、システム状態管理部１３０に完了を応答し、本ハイバネーション復帰処理を完了させる。
【００７３】
上述した第１の実施形態によれば、システムメモリ１６内のスワップアウト可能なページをＨＤＤ２６に強制的にスワップアウトし、システムメモリ１６上の退避したページを単一パターンで埋めることで、ＳＳＤ２４に保存されるスナップショットの情報量を削減し、復帰時にはスピンアップの制約なく起動時間を短縮することが可能となる。ひいては、高速起動が可能な複合機を低コストで実現することが可能となる。また、ＳＳＤ２４に発生する書き込みの情報量が削減されるため、負荷が軽減され、こまめな省電力動作が要請される観点から好適である。
【００７４】
また、ＨＤＤ２６の記憶領域を含むスナップショット領域を利用する実施形態では、さらに、スピンアップ中のＳＳＤからの継続的なスナップショットの読み出しを保証しつつ、ＳＳＤ２４に確保しなければならない容量を最小化することができるため、高速起動が可能な複合機をさらに低コストで実現することが可能となり、ＳＳＤ２４に発生する書き込みの情報量をさらに削減できる。
【００７５】
以下、異なる強制スワップアウト処理を実行する第２の実施形態の複合機について説明する。なお、第２の実施形態の複合機は、第１の実施形態のものと類似しているため、以下、図９〜図１３を参照しながら、相違点を中心に説明する。図９は、第２の実施形態の複合機１０が実行する休止処理を示すシーケンス図である。図９に示す処理は、第１の実施形態の説明の際に参照した図３に示す処理と類似し、ステップＳ６０１〜Ｓ６０６の処理がステップＳ１０１〜Ｓ１０６の処理と同一であるため、以下、ステップＳ６０７から説明する。
【００７６】
システム状態管理部１３０からスナップショット作成依頼を受けて、スナップショット作成部１２２は、ステップＳ６０７で、スナップショット作成に先立って、スナップショットのデータサイズを削減するために、強制スワップアウト処理を実行する。
【００７７】
強制スワップアウト処理中、ステップＳ６０８では、スナップショット作成部１２２は、メモリ管理部１２４で管理しているページ管理情報の変更を行う。ステップＳ６０９では、メモリ管理部１２４は、ＯＳ用デバイスドライバ１２６のうちＨＤＤのデバイスドライバに対して、スワップアウト可能ページのスワップアウト要求を行う。ステップＳ６１０では、メモリ管理部１２４は、スワップアウト処理の完了をスナップショット作成部１２２に報告する。ステップＳ６１１では、スナップショット作成部１２２は、メモリ管理部１２４で管理しているページ管理情報を元に戻す。
【００７８】
図１０は、第２の実施形態の複合機１０が実行する強制スワップアウト処理を示すフローチャートである。図１０に示す処理は、図９に示したステップＳ６０６でスナップショット作成部１２２がスナップショット作成依頼を受信して、図９に示したステップＳ６０７に対応してステップＳ７００から開始される。スナップショット作成部１２２は、メモリ管理部１２４にページ管理情報を問い合わせて、ステップＳ７０１で、ページメモリの総数Ｘを取得し、ステップＳ７０２で、アクティブページの数Ｙを取得し、ステップＳ７０３で、空きページの目標値Ｚ１を取得する。メモリ管理部１２４は、空きページの数が設定された目標値に一致するように仮想メモリを管理する。
【００７９】
ステップＳ７０４では、スナップショット作成部１２２は、メモリ管理部１２４の目標値をＺ１から、アクティブページを除くページの総数（つまりＸ−Ｙ）に変更し、当該目標値が達成されるまで動作を一旦停止し、処理はステップＳ７０５へ進められる。ステップＳ７０５〜Ｓ７０８の処理では、メモリ管理部１２４は、この目標値の変更に伴い、空きページの数を目標値に一致させるべく制御を行う。ステップＳ７０５では、メモリ管理部１２４は、現実の空きページ数Ｚ２が目標値（Ｘ−Ｙ）に達したか否かを判断する。
【００８０】
ステップＳ７０５で、現実の空きページ数Ｚ２が目標値（Ｘ−Ｙ）に達していないと判定された場合（ＹＥＳ）、ステップＳ７０６へ処理を進める。ステップＳ７０６では、メモリ管理部１２４は、ページメモリ領域内のスワップアウト可能ページを取得し、ステップＳ７０７で、ＯＳ用デバイスドライバ１２６のうちのＨＤＤ２６のデバイスドライバを使用して、その取得したスワップ可能ページ内の情報をＨＤＤ２６へスワップアウトさせる。
【００８１】
ステップＳ７０８では、メモリ管理部１２４は、スワップアウトさせたページに関連してページ管理領域の内容の更新を行い、ステップＳ７０５へ処理を戻し、空きページＺ２が目標値（Ｘ−Ｙ）に一致するまでループさせる。ステップＳ７０５で、現実の空きページ数Ｚ２が目標値（Ｘ−Ｙ）に達したと判定された場合（ＮＯ）には、ステップＳ７０９へ処理を進める。ステップＳ７０９では、スナップショット作成部１２２は、動作を再開し、現在の目標値（Ｘ−Ｙ）から元の目標値Ｚ１に戻し、ステップＳ７１０で本強制スワップアウト処理を終了させる。ステップＳ７０１〜Ｓ７１０の処理フローにより、強制スワップアウト処理の開始時点のスワップアウト可能ページがすべて空きページとなる。
【００８２】
再び図９を参照すると、スナップショット作成部１２２は、ステップＳ６１２で、現時点のコンテキストを取得し、ステップＳ６１３で、スナップショット作成する。スナップショット作成中、スナップショット作成部１２２は、ステップＳ６１４で、ＯＳ用デバイスドライバ１２６を介して、スナップショットの範囲を示す付属情報と、スナップショット自体と、上記コンテキストとを保存する。
【００８３】
図１１は、第２の実施形態の複合機１０が実行するスナップショット作成処理を示すフローチャートである。図１１は、図９に示したステップＳ６１３のスナップショット作成部１２２が実行する処理の詳細を示すものである。図１１に示す処理は、図９に示したステップＳ６１３に対応してステップＳ８００から開始される。スナップショット作成部１２２は、ステップＳ８０１で、ＯＳ１２０の命令コード領域（ｔｅｘｔ）の先頭アドレスｐを取得し、ステップＳ８０２で、ページ管理領域の終端アドレスｑを取得し、ステップＳ８０３で、取得した先頭アドレスｐと終端アドレスｑとをスナップショットの付属情報（基本部分）としてスナップショット領域に保存する。ステップＳ８０４では、スナップショット作成部１２２は、ＯＳ用デバイスドライバ１２６を介して、先頭アドレスｐから終端アドレスｐの範囲をスナップショット（基本部分）としてスナップショット領域に保存する。
【００８４】
スナップショット作成部１２２は、ステップＳ８０５で、ページ番号を１を処理対象の初期値として設定し、ステップＳ８０６で、ページ管理領域からページ番号ｎ（つまり初回は１である。）のページに関する情報を取得し、ステップＳ８０７で、ページ情報の取得に成功したか否かを判定する。ステップＳ８０７で、ページ情報の取得に成功した場合（ＹＥＳ）、ステップＳ８０８へ処理を進める。ステップＳ８０８では、スナップショット作成部１２２は、ｎ番目のページがアクティブページであるか否かを判定する。ステップＳ８０８で、アクティブページであると判定された場合（ＹＥＳ）には、ステップＳ８０９へ処理を進める。
【００８５】
スナップショット作成部１２２は、ステップＳ８０９で、当該ページ番号ｎの物理アドレス（例えば４バイト）をスナップショットの付属情報としてスナップショット領域に保存し、ステップＳ８１０で、当該ページ番号ｎのページをスナップショット（ページ部）としてスナップショット領域に保存する。ステップＳ８１１では、スナップショット作成部１２２は、ページ番号ｎを１インクリメントし、ステップＳ８０６へ処理をループさせる。一方、ステップＳ８０８で、アクティブページではないと判定された場合（ＮＯ）には、ステップＳ８１１へ直接処理を進め、ページ番号ｎをインクリメントし、ステップＳ８０６へ処理をループさせる。
【００８６】
終端のページまで上述した判定が繰り返されると、ステップＳ８０７では、ページ情報の取得に失敗することとなる。ステップＳ８０７で、ページ情報の取得に失敗した場合（ＮＯ）には、ステップＳ８１２へ処理を進める。ステップＳ８１２では、スナップショット作成部１２２は、スナップショット終端情報（例えば４バイトのゼロ）を付属情報として書き込み、ステップＳ８１３で処理を終了する。ステップＳ８０６〜Ｓ８１１の処理により、管理対象のページのうちすべてのアクティブページについて、物理アドレスが付属情報（ページ部）として、データがスナップショット（ページ部）としてページ毎に保存されることになる。
【００８７】
再び図９を参照すると、ステップＳ６１５では、起動フラグをハイバネーション復帰を示す値に書き換え、ステップＳ６１６では、スナップショット作成部１２２は、入出力ポートを介してリレースイッチ５４を開くよう制御し、複合機１０への電力供給を停止する。
【００８８】
本実施形態では、スナップショットは、ＯＳ１２０の先頭からページ管理領域の終端までの基本部分と、各アクティブページのページ部分とから構成され、休止状態へ移行する開始時点でのアクティブページ以外のページ、すなわち空きページおよびスワップアウト可能ページはスナップショットの対象から除外される。したがって、第２の実施形態においても、ＨＤＤ２６にスワップアウトされたページ分の情報量が削減されたスナップショットが保存されることとなる。
【００８９】
以下、第２の実施形態の複合機１０が実行する復帰処理について説明する。図１２は、第２の実施形態の複合機１０が実行する復帰処理を示すシーケンス図である。図１２に示す処理は、オペレータが電源スイッチ５２を投入したことに応答してステップＳ９０１から開始される。オペレータが電源スイッチ５２を投入すると、コントローラ１２に給電が開始され、ステップＳ９０１で、ブートローダ１１０が起動し、ステップＳ９０２では、ブートローダ１１０は、ハードウェアを初期化し、コントローラの診断をし、ソフトウェアの初期化をし、ＮＶＲＡＭの起動フラグを確認する。ここでは、第１の実施形態と同様に、ハイバネーション復帰を示す値が確認されるものとし、通常起動のシーケンスについては説明を割愛する。
【００９０】
ハイバネーション復帰を示す値が確認されると、ステップＳ９０３で、ブートローダ１１０は、スナップショット展開部１１２にスナップショットの展開処理の実行を依頼する。ステップＳ９０４で、スナップショット展開部１１２は、ブートローダ用デバイスドライバ１１４を介して、スナップショット領域からコンテキストを読み出し、スナップショットの付属情報を読み出してスナップショットの展開先のアドレス範囲を割り出し、スナップショット本体情報を読み出しながらシステムメモリ１６上に展開する。
【００９１】
図１３は、第２の実施形態の複合機１０が実行するスナップショット展開処理を示すフローチャートである。図１３は、図１２に示したステップＳ９０４のスナップショット展開部１１２が実行する処理の詳細を示すものである。図１３に示す処理は、図１２に示したステップＳ９０４に対応してステップＳ１０００から開始される。スナップショット展開部１１２は、ステップＳ１００１で、ＳＳＤ２４のスナップショット領域からスナップショットの付属情報（基本部）として保存された先頭アドレスｐと、終端アドレスｑとを取得し、ステップＳ１００２で、スナップショット領域からスナップショット（基本部）を読み出し、取得した先頭アドレスｐから終端アドレスｑまでのシステムメモリ１６の領域に展開する。
【００９２】
ステップＳ１００３では、スナップショット展開部１１２は、スナップショットの付属情報（基本部）直後の付属情報を読み出し、ステップＳ１００４で、付属情報に記述されるアドレス情報が終端情報であるか否かを判定する。ステップＳ１００４で、終端情報ではないと判定された場合（ＮＯ）には、ステップＳ１００５へ処理を進める。ステップＳ１００５では、上述したアドレス情報を物理アドレスと読み替えて、スナップショット領域からページを読み込出し、システムメモリ１６上の当該物理アドレスに展開する。ステップＳ１００６では、スナップショット展開部１１２は、付属情報（ページ部）のアドレスを物理アドレスのバイト数（例えば４バイト）進め、ステップＳ１００３へ処理をループさせる。
【００９３】
休止状態へ移行時に保存されたすべてのアクティブページの展開が完了すると、終端情報に到達することとなる。ステップＳ１００４で、終端情報ではあると判定された場合（ＹＥＳ）には、ステップＳ１００７へ分岐させ、本処理を終了する。なお、上記実施形態では、スナップショットの本体と、付属情報とが分離して保存される場合について説明したが、他の実施形態では、スナップショットの付属情報と、本体とを交互に順に保存してもよい。
【００９４】
再び図１２を参照すると、ステップＳ９０５では、読み出したコンテキストをハードウェアに復元し、スナップショット作成部１２２に制御を戻す。このとき、ＣＰＵ１４のプログラムカウンタを、図９に示すステップＳ６１６のリレー制御の後に変更しておき、電源切断処理分の命令をスキップさせるものとする。
【００９５】
コンテキスト復帰後、スナップショット作成部１２２は、ステップＳ９０６で起動フラグを通常起動を示す値に変更し、ステップＳ９０７でリレースイッチ５４を閉じる。ステップＳ９０８では、スナップショット作成部１２２は、システム状態管理部１３０にスナップショット作成依頼に対応する完了応答を行う。以降のステップＳ９０９〜Ｓ９１３の処理は、図８に示したステップＳ４１０〜４１４の処理と同様であるため割愛する。
【００９６】
上述した第２の実施形態によれば、さらに、メモリ管理部１２４の基本機構を流用してスワップアウト可能なページをＨＤＤ２６へ保存しているため、第１の実施形態に比較して、スナップショット作成部１２２における強制スワップアウト処理が簡素化されている。
【００９７】
以上説明したように上述した実施形態によれば、確保すべき不揮発性記憶装置（ＳＳＤ２４）内のスナップショット領域の容量を削減することができ、不揮発性記憶装置（ＳＳＤ２４）への負荷を削減し、かつ、休止状態への移行および休止状態からの復帰を迅速に実現することができる画像処理装置、該画像処理装置の休止方法および復帰方法を提供することができる。
【００９８】
なお画像処理装置としては、上述した実施形態の複合機能を有した複合機に限られるものではなく、特定の用途に応じて、複写機やプリンタや印刷機などの画像形成装置、スキャナなどの画像読取装置、デジタルカメラやデジタルビデオカメラなどの撮像装置、プロジェクタなどの音声映像入出力装置、不揮発性記憶装置およびディスク型記憶装置の両方を備える如何なる装置として好適に構成することができる。
【００９９】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【０１００】
１０…複合機、１２…コントローラ、１４…ＣＰＵ、１６…システムメモリ、１８…ＮＢ、２０…ＡＳＩＣ、２２…ＲＯＭ、２４…ＳＳＤ、２６…ＨＤＤ、２８…ＳＢ、３０…ＮＩＣ、３２…ＳＤカード・スロット、３４…ＵＳＢインタフェース、３６…ＩＥＥＥ１３９４インタフェース、３８…セントロニクス・インタフェース、４０…オペレーションパネル、４２…ＦＣＵ、４４…エンジン部、４６…ＡＧＰ、４８…ＰＣＩバス、５０…ＰＣＩバス、５２…電源スイッチ、５４…リレースイッチ、１１０…ブートローダ、１１２…スナップショット展開部、１１４…ブートローダ用デバイスドライバ、１２０…ＯＳ、１２２…スナップショット作成部、１２４…メモリ管理部、１２６…ＯＳ用デバイスドライバ、１２８…電源スイッチ監視部、１３０…システム状態管理部、１３２…標準アプリケーション、１３４…拡張アプリケーション
【先行技術文献】
【特許文献】
【０１０１】
【特許文献１】特開２００２−３２４０１２号公報
【特許文献２】特開平９−４４４１７号公報
【特許文献３】特開２００３−８５０４１号公報
【図１】
2011192142.tif 000004
【図２】
2011192142.tif 000005
【図３】
2011192142.tif 000006
【図４】
2011192142.tif 000007
【図５】
2011192142.tif 000008
【図６】
2011192142.tif 000009
【図７】
2011192142.tif 000010
【図８】
2011192142.tif 000011
【図９】
2011192142.tif 000012
【図１０】
2011192142.tif 000013
【図１１】
2011192142.tif 000014
【図１２】
2011192142.tif 000015
【図１３】
2011192142.tif 000016