(57)【要約】【課題】  読み書き性能の悪い不揮発メモリ装置が装着された場合、その不揮発メモリ装置を用いてハイバネーション機能を実施すると、読み込み速度が遅いために、電源オン時の起動時間が長くなってしまう。【解決手段】  装着された不揮発メモリ装置の情報を取得し、その取得した情報を不揮発に記憶する。また、その不揮発メモリ装置の性能を測定し、測定した不揮発メモリ装置の性能に基づいて、不揮発メモリ装置を使用したハイバネーションによる復帰時間を予測する。そして、その復帰時間に基づいて、次回の電源オン時にハイバネーションによる起動を行うか否かを決定する。【選択図】  図２
2009146061.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶装置を装着可能な情報処理装置であって、
前記情報処理装置によるデータ処理を実行するデータ処理手段と、
前記データ処理手段による前記データ処理に用いられるデータを少なくとも記憶する揮発性記憶手段と、
前記データ処理手段及び前記揮発性記憶手段に電力を供給する電力供給手段と、
前記不揮発性メモリ装置を装着する装着手段と、
前記装着手段に装着された前記不揮発性記憶装置の情報を取得する取得手段と、
前記装着手段に装着された前記不揮発性記憶装置の性能を測定する測定手段と、
前記取得手段が取得した前記不揮発性記憶装置の情報と、前記測定手段により測定した前記不揮発性記憶装置の性能に基づいて、前記不揮発性記憶装置を使用したハイバネーションによる起動時間を予測する予測手段と、
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が遮断される場合において、前記予測手段により求めた前記起動時間が予め定められた時間より短い場合に、前記揮発性記憶手段に記憶された前記データを前記不揮発性記憶装置に記憶させるよう制御し、前記予測手段により求めた前記起動時間が前記予め定められた時間より長い場合に、前記揮発性記憶手段に記憶された前記データを前記不揮発性記憶装置に記憶させないよう制御する第１の制御手段と、
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が再開される場合において、前記不揮発性記憶手段に前記データが記憶されている場合は前記不揮発性記憶手段から前記揮発性記憶手段に前記データを読み出すよう制御する第２の制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記予め決められた時間は、前記ハイバネーションによらない通常の起動時間であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記予測手段が予測した前記ハイバネーションによる起動時間が前記予め定められた時間より短い場合に、前記データ処理手段及び前記揮発性記憶手段への電力供給が再開される場合に前記ハイバネーションによる起動を行うことを示す情報を不揮発に記憶する起動方法記憶手段を有し、
前記第２の制御手段は、前記データ処理手段及び前記揮発性記憶手段への電力供給が再開される際に、前記起動方法記憶手段に前記ハイバネーションによる起動を行うことを示す情報が記憶されている場合に、前記不揮発性記憶手段から前記揮発性記憶手段に前記データを読み出すよう制御することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が遮断される場合に、前記不揮発性記憶装置に、前記揮発性記憶手段の退避対象領域に記憶された全てのデータが退避可能であるか否かを判断する退避可否判断手段と、
前記退避可否手段が前記全てのデータを前記不揮発性記憶装置に退避できないと判断した場合に、前記退避対象領域の一部の領域のデータを前記不揮発性記憶装置に退避させたハイバネーションによる起動が可能か否かを判断する判断手段とを有し、
前記退避可否判断手段と前記判断手段とによる判断に応じて、前記ハイバネーションによる起動方法を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記取得手段により取得した前記情報を不揮発に記憶する取得情報記憶手段を有し、
前記第２の制御手段は、前記ハイバネーションによる起動時、前記不揮発性記憶装置の情報と、前記取得情報記憶手段に記憶された情報とが一致しない場合、前記起動方法記憶手段に記憶された起動方法を変更して前記情報処理装置を起動することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記不揮発性記憶装置は、ＵＳＢメモリであることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記取得手段が前記不揮発性記憶装置から取得する情報は、前記不揮発性記憶装置の記憶容量を示す情報であることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
不揮発性記憶装置を装着可能であり、データ処理を実行するデータ処理手段と、前記データ処理手段によるデータ処理に用いられるデータを少なくとも記憶する揮発性記憶手段と、前記データ処理手段及び前記揮発性記憶手段に電力を供給する電力供給手段とを有する情報処理装置の起動方法であって、
装着された不揮発性記憶装置の情報を取得する取得工程と、
前記装着された前記不揮発性記憶装置の性能を測定する測定工程と、
前記取得工程で取得した前記不揮発性記憶装置の情報と、前記測定工程で測定した前記不揮発性記憶装置の性能に基づいて、前記不揮発性記憶装置を使用したハイバネーションによる起動時間を予測する予測工程と、
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が遮断される場合において、前記予測工程で求めた前記起動時間が予め定められた時間より短い場合に、前記揮発性記憶手段に記憶された前記データを前記不揮発性記憶装置に記憶させるよう制御し、前記予測工程で求めた前記起動時間が前記予め定められた時間より長い場合に、前記揮発性記憶手段に記憶された前記データを前記不揮発性記憶装置に記憶させないよう制御する第１の制御工程と、
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が再開される場合において、前記不揮発性記憶手段に前記データが記憶されている場合は前記不揮発性記憶手段から前記揮発性記憶手段に前記データを読み出すよう制御する第２の制御工程と、
を有することを特徴とする情報処理装置の起動方法。
【請求項９】
前記予め決められた時間は、前記ハイバネーションによらない通常の起動時間であることを特徴とする請求項８に記載の情報処理装置の起動方法。
【請求項１０】
前記予測工程で求めた前記ハイバネーションによる起動時間が前記予め定められた時間より短い場合に、前記データ処理手段及び前記揮発性記憶手段への電力供給が再開される場合に前記ハイバネーションによる起動を行うことを示す情報を不揮発に記憶する起動方法記憶工程を有し、
前記第２の制御工程は、前記データ処理手段及び前記揮発性記憶手段への電力供給が再開される際に、前記起動方法記憶工程で前記ハイバネーションによる起動を行うことを示す情報が不揮発に記憶されている場合に、前記不揮発性記憶手段から前記揮発性記憶手段に前記データを読み出すよう制御することを特徴とする請求項８又は９に記載の情報処理装置の起動方法。
【請求項１１】
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が遮断される場合に、前記不揮発性記憶装置に、前記揮発性記憶手段の退避対象領域に記憶された全てのデータが退避可能であるか否かを判断する退避可否判断工程と、
前記退避可否工程が前記全てのデータを前記不揮発性記憶装置に退避できないと判断した場合に、前記退避対象領域の一部の領域のデータを前記不揮発性記憶装置に退避させたハイバネーションによる起動が可能か否かを判断する判断工程とを有し、
前記退避可否判断工程と前記判断工程とによる判断に応じて、前記ハイバネーションによる起動方法を決定することを特徴とする請求項８に記載の情報処理装置の起動方法。
【請求項１２】
前記取得工程で取得した前記情報を不揮発に記憶する取得情報記憶工程を有し、
前記第２の制御工程は、前記ハイバネーションによる起動時、前記不揮発性記憶装置の情報と、前記取得情報記憶工程にて不揮発に記憶された情報とが一致しない場合、前記起動方法記憶工程で記憶された起動方法を変更して前記情報処理装置を起動することを特徴とする請求項１０に記載の情報処理装置の起動方法。
【請求項１３】
前記取得工程で前記不揮発性記憶装置から取得する情報は、前記不揮発性記憶装置の記憶容量を示す情報であることを特徴とする請求項８乃至１２のいずれか１項に記載の情報処理装置の起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び前記装置の起動方法に関するものである。
【背景技術】
【０００２】
近年の情報処理装置では、ハイバネーション機能を備えた装置が実用化されている。このハイバネーション機能は、情報処理装置の電源をオフする前におけるメインメモリに記憶された情報をハードディスク等の不揮発性メモリ装置に保存しておき、次に電源がオンされたとき、電源をオフする直前の状態から作業を再開する機能である。このハイバネーション機能を採用することにより、電源がオンされたときの情報処理装置の起動時間を短縮できるという利点がある。しかし、このハイバネーション機能は、電源をオフされた時に、メインメモリに記憶されているデータをハードディスク等の不揮発性メモリ装置に退避し、次回の電源オン時には、その退避したデータをメインメモリに展開する処理を行う必要がある。退避したデータのデータ量によっては、展開する処理に要する時間のため、起動時間を短縮できない可能性がある。そこでハイバネーション機能におけるデータの退避／復帰時間を最適化するために様々な方法が提案されている。特許文献１では、退避するデータを圧縮して退避した方が速いか、圧縮せずに退避した方が速いかを評価して、ハイバネーション機能の実行時に退避データを圧縮するかどうかを決定する手法が開示されている。
【特許文献１】特開２００１−２２４６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ハイバネーション機能を備えた従来の情報処理装置では、大容量のハードディスク等の不揮発メモリ装置を搭載した情報処理装置を前提としているため、その不揮発性メモリ装置の性能は事前に判っている。そのため、その不揮発性メモリ装置に対するデータの退避／復元を前提に退避／復帰時間を最適化することができる。しかし大容量の不揮発性メモリを装着していない情報処理装置も存在する。そのような情報処理装置でハイバネーション機能を利用しようとする場合、ユーザはまず、その情報処理装置に不揮発メモリ装置を装着（接続）し、その装着した不揮発性メモリ装置を用いてハイバネーション機能を実現する必要がある。
【０００４】
しかし、このような挿抜可能な不揮発性メモリ装置に対してメインメモリのデータを退避したり、その不揮発性メモリ装置からデータを復元する場合、その不揮発性メモリ装置として様々な性能のものが予想される。例えば、データの読出し／書込み速度の遅い不揮発性メモリ装置が装着された場合、その不揮発性メモリ装置を用いてハイバネーション機能を実施すると、読み込み速度が遅いために、電源オン時の起動時間が長くなってしまう。このため、ユーザの装着した不揮発性メモリの性能によっては、ハイバネーションを行った方が通常の起動の場合よりも却って起動時間が長くなる可能性がある。
【０００５】
また、ユーザが装着する挿抜可能な不揮発性メモリ装置には様々な容量の不揮発性メモリが存在し、そのメモリの容量も様々である。このため、その装着された不揮発性メモリ装置では、メモリメインに保存している全てのデータを退避できない場合も発生する可能性がある。
【０００６】
また挿抜可能な不揮発性メモリ装置の場合、次回の起動時までに、その不揮発性メモリ装置が取り外されたり、異なる不揮発性メモリ装置に付け替えられたりするおそれがある。このような場合には、ハイバネーション機能が実現できなくなる。
【０００７】
本発明の目的は、上記従来技術の問題点を解決することにある。
【０００８】
本願発明の特徴は、装着可能な不揮発性記憶装置を使用したハイバネーションを行う場合に、上述した従来の問題点が発生しないように装置を起動できる点にある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
不揮発性記憶装置を装着可能な情報処理装置であって、
前記情報処理装置によるデータ処理を実行するデータ処理手段と、
前記データ処理手段による前記データ処理に用いられるデータを少なくとも記憶する揮発性記憶手段と、
前記データ処理手段及び前記揮発性記憶手段に電力を供給する電力供給手段と、
前記不揮発性メモリ装置を装着する装着手段と、
前記装着手段に装着された前記不揮発性記憶装置の情報を取得する取得手段と、
前記装着手段に装着された前記不揮発性記憶装置の性能を測定する測定手段と、
前記取得手段が取得した前記不揮発性記憶装置の情報と、前記測定手段により測定した前記不揮発性記憶装置の性能に基づいて、前記不揮発性記憶装置を使用したハイバネーションによる起動時間を予測する予測手段と、
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が遮断される場合において、前記予測手段により求めた前記起動時間が予め定められた時間より短い場合に、前記揮発性記憶手段に記憶された前記データを前記不揮発性記憶装置に記憶させるよう制御し、前記予測手段により求めた前記起動時間が前記予め定められた時間より長い場合に、前記揮発性記憶手段に記憶された前記データを前記不揮発性記憶装置に記憶させないよう制御する第１の制御手段と、
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が再開される場合において、前記不揮発性記憶手段に前記データが記憶されている場合は前記不揮発性記憶手段から前記揮発性記憶手段に前記データを読み出すよう制御する第２の制御手段と、を有することを特徴とする。
【００１０】
上記目的を達成するために本発明の一態様に係る情報処理装置の起動方法は以下のような工程を備える。即ち、
不揮発性記憶装置を装着可能であり、データ処理を実行するデータ処理手段と、前記データ処理手段によるデータ処理に用いられるデータを少なくとも記憶する揮発性記憶手段と、前記データ処理手段及び前記揮発性記憶手段に電力を供給する電力供給手段とを有する情報処理装置の起動方法であって、
装着された不揮発性記憶装置の情報を取得する取得工程と、
前記装着された前記不揮発性記憶装置の性能を測定する測定工程と、
前記取得工程で取得した前記不揮発性記憶装置の情報と、前記測定工程で測定した前記不揮発性記憶装置の性能に基づいて、前記不揮発性記憶装置を使用したハイバネーションによる起動時間を予測する予測工程と、
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が遮断される場合において、前記予測工程で求めた前記起動時間が予め定められた時間より短い場合に、前記揮発性記憶手段に記憶された前記データを前記不揮発性記憶装置に記憶させるよう制御し、前記予測工程で求めた前記起動時間が前記予め定められた時間より長い場合に、前記揮発性記憶手段に記憶された前記データを前記不揮発性記憶装置に記憶させないよう制御する第１の制御工程と、
前記電力供給手段による前記データ処理手段及び前記揮発性記憶手段への電力供給が再開される場合において、前記不揮発性記憶手段に前記データが記憶されている場合は前記不揮発性記憶手段から前記揮発性記憶手段に前記データを読み出すよう制御する第２の制御工程と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、装着された不揮発性記憶装置を使用して、最適な起動時間の起動方法を自動的に選択して起動することができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
図１は、本発明の実施の形態に係る情報処理装置の一例である画像形成装置（複合機）の構成を示すブロック図である。尚、この実施の形態では、プリンタ機能、スキャナ機能、ファクシミリ機能、ストレージ機能等を有する多機能装置（複合機）の場合で説明する。しかし本発明の情報処理装置はこれに限定されるものでなく、例えばＰＣ等の情報処理装置やゲーム機器、各種モバイル機器などにも適用できる。
【００１４】
図１において、１００は画像形成装置全体を示す。ＲＯＭ１０２に記憶されたプログラムを実行するＣＰＵ１０１が、システムバス１１５を介して接続される各部を総括的に制御して、この画像形成装置１００全体の動作を制御している。このＣＰＵ１０１とのそのプログラム及び、その周辺回路は、この画像形成装置におけるデータ処理を司るデータ処理手段及び制御手段を構成している。ＲＡＭ１０３は、ＣＰＵ１０１のメインメモリ、ワークエリア等として機能する。外部入力コントローラ（ＰＡＮＥＬＣ）１０５は、この画像形成装置１００の操作パネル（ＰＡＮＥＬ）１０６の各種ボタン或はタッチパネル１０６等を操作して入力される指示入力をシステムバス１１５に出力する。ディスプレイコントローラ（ＤＩＳＰＣ）１０７は、例えば液晶などで構成される表示部（ＤＩＳＰＬＡＹ）１０８への表示を制御する。ネットワークインタフェースカード（ＮＩＣ）１０４は、ＬＡＮＩＦ１１２にＬＡＮケーブルを接続し、他のネットワーク機器或はファイルサーバ等と双方向にデータをやりとりする。ＥＥＰＲＯＭ１１６は、書き換え可能な小容量の不揮発メモリ（内蔵不揮発メモリ）で、この画像形成装置１００の各種設定情報等を記憶している。ＵＳＢ−ＨＯＳＴＣ１０９はＵＳＢのホストコントローラで、ＵＳＢ−ＨＯＳＴＩＦ１１０に接続されるＵＳＢデバイスとのデータのやり取りや制御を行う。このＵＳＢデバイスはここではＵＳＢメモリ１１１で、不揮発メモリとして読み書きが可能なデバイスである。このＵＳＢメモリ１１１は、ＵＳＢ−ＨＯＳＴＩＦ１１０に接続されることにより、ＵＳＢ−ＨＯＳＴＣ１０９経由で、ＣＰＵ１０１によりデータの読み書きが可能となる。プリンタ部１１３は、例えば電子写真方式或はインクジェット方式などのプリンタ部である。スキャナ部１１４は、原稿を読み取って電気信号に変換する画像読み取り部である。このスキャナ部１１４には、オプションとしてオートドキュメントフィーダ（ＡＤＦ：不図示）が装着されており、このＡＤＦを使用して複数枚の原稿を連続して読み込むことができる。タイマ１１７は、ＣＰＵ１０１からの指示に応じて、経過時間の測定等を行う。
【００１５】
また、画像形成装置１００は、商用電源からのＡＣ電圧の入力に基づいて、画像形成装置１００の各部に供給する直流電圧を生成する電源ユニット（電力供給手段）１１８を備える。電源ユニット１１８は、主電源スイッチがＯＮとなっているとき画像形成装置１００の各部への電力供給を行ない、主電源スイッチがＯＦＦとなっているときに各部への電力供給を遮断する。
【００１６】
図２は、本実施の形態に係る画像形成装置における、システム終了時に、次回の電源オン時の起動方法を決定する処理の概要を説明するフローチャートである。ここではＵＳＢメモリ（不揮発性記憶装置）が装着されたことを検出すると、そのＵＳＢメモリの性能を測定してハイバネーションの復帰時間を予測し、次回の電源オン時の起動方法を決定する基本動作を説明している。各処理の詳細な内容については図を参照して詳しく説明するが、ここでは図２のフローチャートを参照して大まかな基本動作について説明する。尚、この処理を実行するプログラムはＲＯＭ１０２に記憶されており、ＣＰＵ１０１の制御の下に実行される。
【００１７】
まずステップＳ１で、ＵＳＢ−ＨＯＳＴＩＦ１１０に接続された不揮発メモリ（ＵＳＢメモリ）１１１の情報を取得して、ＥＥＰＲＯＭ１１６の不揮発メモリ情報記憶テーブル（取得情報記憶部）４００に登録する。次にステップＳ２に進み、その接続されたＵＳＢメモリ１１１の性能を測定する処理を実行する。そして、その結果を不揮発メモリ情報記憶テーブル４００に格納する。次にステップＳ３に進み、ステップＳ２の性能測定処理によって求められた性能値を基に、ハイバネーションによる復帰時間を予測する。そして、その予測結果を不揮発メモリ情報記憶テーブル４００に格納する。ここまでが認識した不揮発メモリでの復帰時間を予測して、不揮発メモリ情報記憶テーブル４００に記憶するまでの簡単な流れである。
【００１８】
次にステップＳ４に進み、実際にシャットダウン（システム終了）のイベントが発生するとステップＳ５に進み、次回の電源オン時の起動方法を決定する処理を実行する。そして、その結果をハイバネーション設定情報テーブル８００に記憶する。このハイバネーション設定情報テーブル８００もＥＥＰＲＯＭ１１６に書き込まれて記憶される。こうしてＥＥＰＲＯＭ１１６に記憶することにより、画像形成装置１００の電源がオフされても、その内容が消えることが無く、次回の電源起動時に、その情報を参照することができる。そしてステップＳ６に進み、ハイバネーション設定情報テーブル８００に記憶した起動方法に従って終了処理を実行して、シャットダウンを終了する。
【００１９】
次に各処理の詳細を詳しく説明する。
【００２０】
＜メモリ認識処理の説明＞
ここでは、ＵＳＢ−ＨＯＳＴＩＦ１１０に接続されたＵＳＢメモリ１１１を認識して、その情報を取得する処理の詳細について図３のフローチャートを参照して説明する。
【００２１】
図３は、図２のステップＳ１の処理を説明するフローチャートである。
【００２２】
この処理はＵＳＢ−ＨＯＳＴＣ１０９が、ＵＳＢ−ＨＯＳＴＩＦ１１０にＵＳＢメモリ１１１が装着されたことを検出することにより開始される。まずステップＳ１１で、その装着されたＵＳＢデバイスの種別がＵＳＢストレージ（ＵＳＢメモリ）かどうかを判定する。ＵＳＢメモリでない場合は、そのまま処理を終了するが、ＵＳＢメモリであった場合はステップＳ１２に進み、その認識したＵＳＢメモリ１１１から、そのメモリのデバイス情報を読み込む。ここでは、そのＵＳＢメモリ１１１からベンダＩＤ，プロダクトＩＤ、シリアル番号、デバイス容量（メモリの記憶容量）等の、そのメモリデバイスを一意に特定できる各種情報を読み取る。そしてステップＳ１３に進み、ステップＳ１３で読み取った情報を不揮発メモリ情報記憶テーブル４００に格納する。
【００２３】
＜不揮発メモリ情報記憶テーブルの説明＞
図４は、本実施の形態に係る不揮発メモリ情報記憶テーブル４００のデータ構成例を説明する図である。
【００２４】
デバイス識別ＩＤ４０１は、そのＵＳＢメモリ１１１を一意に特定できるデバイス識別情報（ＩＤ）である。新規にＵＳＢメモリ１１１が認識されると、そのＵＳＢメモリ１１１に新しいＩＤ値を割り当てて、そのメモリを一意に特定可能にする。ベンダＩＤ(VenderID)４０２は、このＵＳＢメモリ１１１の製造メーカもしくは販売メーカを識別する値である。プロダクトＩＤ(ProductID)４０３は、このＵＳＢメモリ１１１の製品を識別するための値である。シリアル番号(Serial No.)４０４は、このＵＳＢメモリ１１１の製造番号である。これらベンダＩＤ４０２、プロダクトＩＤ４０３、シリアル番号４０４の組で、このＵＳＢメモリ１１１を一意に特定することができる。
【００２５】
尚、前述の図２のステップＳ１では、認識したＵＳＢメモリ１１１の上述した値の組と、不揮発メモリ情報記憶テーブル４００に登録されている値とを比較して、これらが全て一致しなければ新規のＵＳＢメモリが装着されたと判断する。そして、新規のＵＳＢメモリと判断すると、その装着されているＵＳＢメモリ１１１の情報を、この不揮発メモリ情報記憶テーブル４００に新たに登録する。
【００２６】
更に、図４のデバイス容量(Device Capacity)４０５は、このＵＳＢメモリ１１１のメモリ容量を記憶している。更にまた、この不揮発メモリ情報記憶テーブル４００には、そのメモリの性能値(Performance)４０６と、起動時間予測値(EstimationTime)４０７を格納する欄が存在するが、これに関しては詳しく後述する。
【００２７】
＜不揮発メモリの性能測定処理の説明＞
次に図２のフローチャートのステップＳ２における、ＵＳＢメモリ１１１の性能を測定する処理について説明する。
【００２８】
図５は、図２のステップＳ２の処理を説明するフローチャートである。
【００２９】
まずステップＳ２１で、接続されているＵＳＢメモリ１１１のパーティションをマウントする。このマウント操作は、装着されているＵＳＢメモリ１１１を、ファイルシステムとして読み書きするために必要な作業である。次にステップＳ２２で、そのＵＳＢメモリ１１１に対して所定量のデータを書込み、それに要した時間を測定する。この時間の計時はタイマ１１７を使用して行われる。次にステップＳ２３に進み、ＵＳＢメモリ１１１から所定量のデータを読み込み、それに要した時間をタイマ１１７を使用して測定する。次にステップＳ２４に進み、ステップＳ２２〜Ｓ２３において、ＵＳＢメモリ１１１の性能を測定するために書き込んだ測定用データを削除する。次にステップＳ２５に進み、ステップＳ２２とＳ２３で読み書きしたデータ量と、それに要した時間とに基づいて、そのＵＳＢメモリ１１１の性能を算出する。このメモリの性能の算出方法は、読み書きしたデータ量を、その読み書きに要した時間の平均値で割ることにより求められる。そしてステップＳ２６に進み、ステップＳ２５で求めた性能値を、不揮発メモリ情報記憶テーブル４００の性能値４０６に保存する。こうしてＵＳＢメモリ１１１の性能測定が終了するとステップＳ２７で、ＵＳＢメモリ１１１にマウントしていたパーティションをアンマウントして、この性能測定を終了する。
【００３０】
以上の処理により、装着されたＵＳＢメモリ１１１の認識及びその性能値を求めて不揮発メモリ情報記憶テーブル４００に登録することができる。
【００３１】
＜ハイバネーション起動時間の予測処理の説明＞
次に、図２のステップＳ３における、次回の電源オン時における起動時間（復帰時間）を予測する処理について説明する。
【００３２】
図６は、本実施の形態に係る画像形成装置における復帰時間（図２のステップＳ３）の予測処理を説明するフローチャートである。
【００３３】
まずステップＳ３１で、前述のＵＳＢメモリの性能測定結果が格納されている不揮発メモリ情報記憶テーブル４００から性能値４０６を読み込む。尚、ここでは読み取った性能値を「Ｐ１」とする。次にステップＳ３２に進み、ＵＳＢメモリ１１１に退避したデータを展開するのに要する時間を、ステップＳ３１で読み取った性能値から算出する。ここではメインメモリ（ＲＡＭ１０３）の全領域サイズＳＭＳを性能値「Ｐ１」で割ることにより、概算の展開時間Ｔを求める。ハイバネーションによる実際の復帰時間には、メインメモリへの展開時間に加えて、本実施の形態に係る画像形成装置１００に接続されている各種デバイスの初期化などの時間も必要となる。そこでステップＳ３３で、その他の起動処理時間ＤＩＴを、ステップＳ３２で求めた展開時間Ｔに加算して予想起動時間ＥＴを算出する。次にステップＳ３４に進み、このステップＳ３３で求めた予測起動時間ＥＴを、不揮発メモリ情報記憶テーブル４００の起動時間予測値４０７に格納する。
【００３４】
こうして、この起動時間予測処理によって求めた起動予測時間を不揮発メモリ情報記憶テーブル４００に格納する。そして、その起動予測時間を参照して、次回電源オン時の起動方法を決定する処理について説明する。
【００３５】
＜起動方法の決定処理の説明＞
図２のステップＳ４でシャットダウンのイベントが発生した際、ハイバネーション起動予測処理により求めた起動時間と通常起動の起動時間とを比較して次回の起動方法を決定する処理を図７のフローチャートを参照して説明する。
【００３６】
図７は、図２のステップＳ５における次回の起動方法の決定処理を説明するフローチャートである。
【００３７】
まず最初に、装着されたＵＳＢメモリ１１１が、既に不揮発メモリ情報記憶テーブル４００に記憶されたデバイスであるかどうかを判断する必要がある。そこでステップＳ４１で、ＵＳＢメモリ１１１のデバイス情報を読み込む。次にステップＳ４２に進み、ベンダＩＤ４０２やプロダクトＩＤ４０３、シリアル番号４０４が一致するデバイスがあるかを不揮発メモリ情報記憶テーブル４００から検索する。具体的には、装着しているＵＳＢメモリ１１１の情報が、不揮発メモリ情報記憶テーブル４００に格納されたベンダＩＤ４０２、プロダクトＩＤ４０３、シリアル番号４０４の内容と一致するかを判断して、デバイス識別ＩＤ４０１を特定する。ここで装着しているＵＳＢメモリ１１１の情報が不揮発メモリ情報記憶テーブル４００に登録されていないときは、新規のデバイス識別ＩＤ４０１を設定する。そしてベンダＩＤ４０２、プロダクトＩＤ４０３、シリアル番号４０４、デバイス容量４０５、メモリの性能値４０６，起動時間予測値４０７の値を設定する。
【００３８】
次にステップＳ４３に進み、ステップＳ４２で特定したデバイス識別ＩＤのレコードに記憶された予測起動時間ＥＴを読み込む。次にステップＳ４４に進み、ステップＳ４３で読み込んだ予測起動時間ＥＴが、通常起動の時間ＮＢＴより短いか否かを判断する。ここで通常起動時間ＮＢＴの方が短いと判断するとステップＳ４５に進み、その起動方法を通常起動として決定する。
【００３９】
一方、ステップＳ４４で、予測起動時間ＥＴの方が短いと判断した場合はハイバネーションによる復帰起動を行うものとして、退避可否の判断を行う（ステップＳ４６〜Ｓ５０）。このハイバネーション退避可否の判定処理の詳細は、全退避可否判断処理の説明、部分退避起動可否判断処理の説明で後述するため、ここでは割愛する。
【００４０】
そして最後にステップＳ５１で、ステップＳ４５、Ｓ４８，Ｓ５０のいずれかで決定した起動方法と、退避するデバイス情報をハイバネーション設定情報テーブル８００に登録する。
【００４１】
このようにして、ＵＳＢメモリ１１１の性能を測定して算出したハイバネーションによる予測起動時間と通常起動時間とを比較し、より速い起動方法を選択することが可能となる。
【００４２】
＜起動方法記憶処理の説明＞
次に、先ほどの説明で決定した起動方法を記憶する処理を図７のフローチャートと図８のハイバネーション設定情報テーブルの例を用いて説明する。
【００４３】
図８は、本実施の形態に係るハイバネーション設定情報テーブル８００のデータ構成を説明する図である。
【００４４】
このハイバネーション設定情報テーブル８００には、起動方法８０１、デバイス識別ＩＤ８０２、退避メモリ領域８０３が設けられている。起動方法８０１には、先ほど決定した起動方法が格納される。またハイバネーションによる起動を決定した場合には、退避するＵＳＢメモリ１１１のデバイス識別ＩＤをデバイス識別ＩＤ８０２に保存し、退避する領域（退避対象領域）の情報を退避メモリ領域８０３に保存する。この退避メモリ領域の使用用途に関しては、部分退避起動可否判断処理の説明で後述する。この決定結果と、ＵＳＢデバイスとをハイバネーション設定情報テーブル８００に記憶する処理は図７のステップＳ５１で実行され、起動方法の決定及び起動方法の記憶処理を終了する。
【００４５】
こうして決定した起動方法を、ハイバネーション設定情報テーブル８００として不揮発性のＥＥＰＲＯＭ１１６に保存しておく。これにより、次回の電源オンによる起動時に、どの起動を行えばよいか判断することが可能となる。
【００４６】
＜全退避可否判断処理の説明＞
次に、メインメモリの全ての領域のデータが、接続されたＵＳＢメモリ１１１に退避できるか否かを判断する処理について図７のフローチャートを用いて説明する。
【００４７】
ステップＳ７４で、通常起動の起動時間ＮＢＴとハイバネーションによる予測起動時間ＥＴとを比較する。この判定により、ハイバネーションの方が高速に起動できるとは判断した場合はステップＳ４６に進み、ＵＳＢメモリ１１１の空き容量を読み込む。これはＵＳＢメモリ１１１のパーティションがマウントしていれば、そのマウントしているパーティションのファイルシステム情報から空き容量ＦＳを取得できる。次にステップＳ４７に進み、メインメモリの退避対象の全領域サイズＳＭＳと、ステップＳ４６で求めた空き容量ＦＳとを比較し、メインメモリの全領域ＳＭＳのデータがＵＳＢメモリ１１１に退避できるかどうかを判定する。全領域のデータが退避可能である場合（ＳＭＳ＜ＦＳ）はステップＳ４８に進み、起動方法を全領域ハイバネーションに決定する。この全領域ハイバネーションは、メインメモリの退避対象領域の全データをＵＳＢメモリ１１１に退避してハイバネーションを実行するものである。
【００４８】
一方、ステップＳ４７で、メインメモリの退避対象領域の全データがＵＳＢメモリ１１１に退避できない場合はステップＳ４９に進み、次に説明する部分退避起動可否判断処理によって、部分退避が可能かどうかを判定する。
【００４９】
＜部分退避起動可否判断処理の説明＞
メインメモリの退避対象領域の全データがＵＳＢメモリ１１１に退避できない場合はステップＳ４９に進み、部分退避によるハイバネーション起動が可能か判断する。ステップＳ４９では、退避が必須の領域の合計サイズＰＭＳと、ＵＳＢメモリ１１１の空き容量ＦＳとを比較し、ここでＵＳＢメモリ１１１の空き容量ＦＳの方が大きければ、部分退避が可能と判断する。そしてステップＳ５０に進み、起動方法を部分ハイバネーションに決定する。
【００５０】
図９は、退避が必須の領域サイズを求める処理を説明するフローチャートである。
【００５１】
図１０は、メモリ管理テーブル１０００のデータ構成例を説明する図である。
【００５２】
本実施の形態に係る画像形成装置１００は、使用する目的に応じてメモリ管理テーブル１０００により領域が管理されている。メモリ管理テーブル１０００は、メモリ領域識別ＩＤ１００１、領域名称(Name)１００２、領域の先頭アドレス(StartAddress)１００３、領域サイズ(Size)１００４、退避必須フラグ１００５からなる。
【００５３】
メモリ領域識別ＩＤ１００１には、領域を識別可能な一意の値が設定され、退避時の識別にも使われる。領域名称１００２は、その領域の名称が文字列で設定され、メモリ領域識別ＩＤ１００１とは別に管理者に分り易い名称が設定される。領域の先頭アドレス１００３は、その領域の先頭アドレスが設定され、領域サイズ１００４にはその領域のサイズ（容量）が設定される。退避時には、その先頭アドレスから領域サイズ分のデータが退避先のＵＳＢメモリ１１１に退避される。退避必須フラグ１００５は、ＵＳＢメモリ１１１に退避しないと再現できない領域かどうかを示す。ＲＯＭ１０２から展開すれば復元可能な領域や退避が不要な領域については、この退避必須フラグ１００５は「Ｎｏ」となり、退避しないと復元できない領域については「Ｙｅｓ」となる。
【００５４】
このメモリ管理テーブル１０００を参照して、退避が必須の領域の合計サイズＰＭＳを算出できる。図９のフローチャートを用いて算出方法の一例を説明する。
【００５５】
図９において、まずステップＳ６１で、メモリ管理テーブル１０００の１レコードを読み込む。次にステップＳ６２で、そのレコードの退避必須フラグ１００５を参照し、退避必須フラグが「Ｙｅｓ」であれば、退避が必須の領域の合計サイズＰＭＳにその領域サイズ１００４を加算する。これを全てのレコードに対して繰り返す（ステップＳ６１〜Ｓ６５）ことにより、退避が必須な領域の合計サイズＰＭＳを求めることが出来る。
【００５６】
このようにして求めた退避が必須の領域の合計サイズＰＭＳと、ＵＳＢメモリ１１１の空き容量ＦＳとを比較することで、部分退避によるハイバネーション起動が行えるかを判断できる。
【００５７】
＜起動方法決定処理の説明＞
先に述べた全退避可否判断処理及び起動方法決定処理によって、最終的に、「全領域ハイバネーション」か、或は「部分ハイバネーション」、「通常起動」かが決定される。そして、その決定結果がハイバネーション設定情報テーブル８００の起動方法８０１の欄に記憶され、次回の起動時に参照される。部分ハイバネーションによる起動の場合には、ＵＳＢメモリ１１１に退避されるメモリ領域のメモリ領域識別ＩＤ１００１の全てを、デバイス識別ＩＤ８０２の退避メモリ領域欄に保存する。これにより部分ハイバネーションによる起動の場合に、どの領域をＵＳＢメモリ１１１から展開すればよいかがわかる。
【００５８】
＜全領域退避処理の説明＞
次に、起動方法を全領域ハイバネーションと決定した場合の、シャットダウン処理について図１１のフローチャートを用いて説明する。
【００５９】
図１１は、全領域ハイバネーション及び部分ハイバネーションでのシャットダウン処理を説明するフローチャートである。
【００６０】
まずステップＳ７１で、ハイバネーション設定情報テーブル８００から起動方法８０１を読み込む。次にステップＳ７２で、その起動方法が通常起動と決定されているか判断する。ここで通常起動であった場合はステップＳ７７に進み、特に退避処理はせずに電源をオフにする。
【００６１】
ステップＳ７２で通常起動で無い場合はステップＳ７３に進み、ハイバネーションを行うので、まずＵＳＢメモリ１１１のパーティションをマウントする。次にステップＳ７４に進み、起動方法が全領域ハイバネーションか判断する。ここで全領域ハイバネーションであればステップＳ７５に進み、メインメモリの全領域をＵＳＢメモリ１１１に退避する。一方、全領域ハイバネーションでない場合はステップＳ７８に進み、部分退避ハイバネーションを実行する。この処理は後ほど詳しく説明する。ステップＳ７５で、全領域の退避が完了するとステップＳ７６に進み、ＵＳＢメモリ１１１のパーティションをアンマウントする。そしてステップＳ７７に進み、電源をオフする処理を行う。
【００６２】
これらの処理を実行することにより、決定された起動方法が全領域ハイバネーションであった場合にメインメモリ全領域をＵＳＢメモリに退避してシャットダウンすることが可能となる。
【００６３】
＜部分退避処理の説明＞
次に、部分ハイバネーションによる退避を行う処理について、引き続き図１１のフローチャートを用いて説明する。
【００６４】
前述したように、ステップＳ７４の起動方法判定処理で全領域ハイバネーションでないと判定した場合は部分退避ハイバネーションとなる。この場合はステップＳ７８に進み、メモリ管理テーブル１０００を参照し、退避必須領域の情報を取得して、メインメモリの退避必須領域のデータのみをＵＳＢメモリ１１１に退避する。またメモリ管理テーブル１０００も、次回の電源オンによる起動時の展開処理で必要になるため、ＥＥＰＲＯＭ１１６に保存しておく。後は全領域ハイバネーションの処理と同様に、データの退避完了後に、ステップＳ７６でＵＳＢメモリ１１１のパーティションをアンマウントする。そしてステップＳ７７で、電源をオフする処理を行ってシャットダウンを終了する。
【００６５】
この処理により、決定した起動方法に従い、実際にメインメモリのデータをＵＳＢメモリ装置に退避してシャットダウンを行うことができる。
【００６６】
＜起動方法変更処理の説明＞
次に、電源投入時に決定された起動方法に従い起動する際、前回のシャットダウン時に退避していたＵＳＢメモリ１１１が装着されていない場合の起動方法変更処理について図１２のフローチャートを用いて説明する。
【００６７】
図１２は、本実施の形態に係る画像形成装置において、電源投入時の起動方法を変更して起動する処理を説明するフローチャートである。
【００６８】
まずステップＳ８１で、起動開始時に、ハイバネーション設定情報テーブル８００の起動方法８０１を参照して起動方法を読み込む。次にステップＳ８２で、その読み込んだ起動方法が、通常起動であるかを判断し、通常起動である場合はステップＳ９５に進んで、通常起動処理を行う。一方、ステップＳ８２で通常起動でない場合はステップＳ８３に進み、ハイバネーション起動となるので、まずＵＳＢメモリ１１１が装着されているかを判断する。ＵＳＢメモリ１１１が接続されていない場合はステップＳ８４に進み、退避したデータを展開することができないため、通常起動に起動方法を変更する。そしてステップＳ９５に進んで通常起動処理を行う。
【００６９】
一方ステップＳ８３で、ＵＳＢメモリ１１１が接続されている場合はステップＳ８５に進み、そのＵＳＢメモリ１１１のデバイス情報を読み取る。そしてステップＳ８６で、不揮発メモリ情報記憶テーブル４００に記憶されたデバイスのいずれであるかを判定する。そしてステップＳ８７で、一致するデバイスがあればそのデバイス識別ＩＤを特定する。そして不揮発メモリ情報記憶テーブル４００に登録されたデバイスであるかを判断する。ここで登録されていないデバイスであると判断した場合はステップＳ８４に進み、そのデバイスには起動時のデータが退避されていないと判断して通常起動に起動方法を変更し（ステップＳ８４）、ステップＳ９５で通常起動処理を行う。
【００７０】
一方、ステップＳ８７で、登録されているデバイスであると判断するとステップＳ８８に進み、ハイバネーション設定情報テーブル８００のデバイス識別ＩＤ８０２を読み込む。次にステップＳ８９で、接続されたＵＳＢメモリ１１１のデバイス識別ＩＤと比較し、一致するか判断する。ここで一致しない場合はステップＳ８４に進み、前回データを退避したＵＳＢメモリ１１１ではないと判断する。そしてステップＳ８４で、通常起動に起動方法を変更し、ステップＳ９５で、通常起動処理を行う。
【００７１】
一方ステップＳ８９で、一致したデバイスであると判断するとステップＳ９０に進み、ハイバネーションによる復帰起動が可能であると判断する。そして全領域ハイバネーションによる起動かどうかを判断する。ここで全領域ハイバネーションであると判断した場合はステップＳ９１に進み、ＵＳＢメモリ１１１に退避した全領域のデータを読み出してメインメモリに展開する。次にステップＳ９４に進み、ＣＰＵ１０１のレジスタ値を復帰させて、ハイバネーションによる復帰起動が完了する。
【００７２】
一方、ステップＳ９０で、部分ハイバネーションであると判断した場合はステップＳ９２に進み、ＵＳＢメモリ１１１に退避した部分領域のデータをメインメモリに展開する。そしてステップＳ９３に進み、プログラム領域等の退避しなかった領域についてはＲＯＭ１０２から展開する、そしてステップＳ９４に進み、ＣＰＵ１０１のレジスタ値を復帰させて、ハイバネーションによる復帰起動が完了する。
【００７３】
この起動方法変更処理によって、ＵＳＢメモリ１１１が接続されていなかったり、或は退避したＵＳＢメモリ１１１と異なるＵＳＢメモリが接続されていた場合に、自動で通常復帰に切り替えて画像形成装置を起動することが可能となる。
【００７４】
（他の実施形態）
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また一つの機器からなる装置に適用しても良い。
【００７５】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【００７６】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００７７】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【００７８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【００７９】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【００８０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００８１】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【００８２】
以上説明したように本実施の形態によれば、装着された不揮発メモリ装置を使用して、最適な起動時間の起動方法を自動的に選択して起動することができる。
【００８３】
また、ユーザが接続した不揮発メモリ装置の空き容量を調べて、メインメモリの全領域（退避対象領域）のデータの退避が可能か、もしくは部分領域のデータの退避が可能かを判断する。そして、その判断に従って全領域のデータの退避、或は部分的なデータの退避を行うことにより、ユーザが接続した不揮発メモリ装置で可能な退避／起動方法を自動的に選択してハイバネーションを実施できる。
【００８４】
また、電源オン時に、データを退避した不揮発メモリ装置が接続されていないか、或はデータを退避した不揮発メモリ装置とは異なる不揮発メモリ装置に交換されていた場合には、自動的にハイバネーション機能を実施しない通常起動に切り替えることができる。これにより誤って不揮発メモリ装置が外されたり、交換された場合でも、正常に装置を起動することができる。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施の形態に係る情報処理装置の一例である画像形成装置（複合機）の構成を示すブロック図である。
【図２】本実施の形態に係る画像形成装置における処理を説明するフローチャートである。
【図３】図２のステップＳ１の処理を説明するフローチャートである。
【図４】本実施の形態に係る不揮発メモリ情報記憶テーブルのデータ構成例を説明する図である。
【図５】図２のステップＳ２の処理を説明するフローチャートである。
【図６】本実施の形態に係る画像形成装置における復帰時間（図２のステップＳ３）の予測処理を説明するフローチャートである。
【図７】図２のステップＳ５における次回の起動方法の決定処理を説明するフローチャートである。
【図８】本実施の形態に係るハイバネーション設定情報テーブルのデータ構成を説明する図である。
【図９】退避が必須の領域サイズを求める処理を説明するフローチャートである。
【図１０】、メモリ管理テーブルのデータ構成例を説明する図である。
【図１１】全領域ハイバネーション及び部分ハイバネーションでのシャットダウン処理を説明するフローチャートである。
【図１２】本実施の形態に係る画像形成装置において、電源投入時の起動方法を変更して起動する処理を説明するフローチャートである。
【図１】
2009146061.tif 000003
【図２】
2009146061.tif 000004
【図３】
2009146061.tif 000005
【図４】
2009146061.tif 000006
【図５】
2009146061.tif 000007
【図６】
2009146061.tif 000008
【図７】
2009146061.tif 000009
【図８】
2009146061.tif 000010
【図９】
2009146061.tif 000011
【図１０】
2009146061.tif 000012
【図１１】
2009146061.tif 000013
【図１２】
2009146061.tif 000014