本発明にかかる情報処理装置の第1の実施の形態を、図1〜図4を用いて説明する。
図1は、情報処理装置本体の電子回路、電力供給制御部、不揮発性の外部記憶装置と、取り扱う情報、供給電力の制御部の構成を模式的に示した機能ブロック図である。
本発明の情報処理装置は、少なくとも、情報処理装置本体電子回路1と、不揮発性の外部記憶装置2と、電力供給制御部3を備えている。
情報処理装置本体電子回路1は、揮発性の情報として内部記憶装置のデータ10と、LSI内部情報11と、表示メモリのデータ101を持っている。また、情報処理装置本体電子回路1は、情報処理装置の状態の遷移を記憶しておく書き換え可能な不揮発性の記憶素子12を備える。この記憶素子12は、バッテリバックアップメモリやフラッシュメモリで構成しても良い。この記憶素子12には、情報処理装置の現在の内部状態と、現在の状態に遷移する以前の内部状態の識別情報を記憶する。
外部記憶装置2には、情報処理装置本体電子回路1本体の揮発性の情報を格納する領域として、内部記憶装置のデータ格納領域21と、LSI内部情報のデータ格納領域22と、表示メモリのデータ格納領域211を備える。
電力供給制御部3は、電源回路部31と、バッテリ等の電力蓄積手段32から構成され、外部電力供給手段に接続するケーブル45、情報処理装置本体電子回路1への電力供給線42を備える。また、電源回路部31は、外部電力検出手段311と、起動/停止スイッチ313と、起動/停止制御部312と、電力切替手段314を備え、外部電力検出手段311と起動/停止制御部312の状態は、電源回路状態出力線43、44により、情報処理装置本体に伝えられる。
図2は、本発明にかかる第1の実施の形態の情報処理装置が持つ内部状態とその遷移条件を示した図である。本発明の情報処理装置は、通常の使用状況下では、動作状態S2、仮眠状態S3、冬眠状態S4の3状態を遷移する。この3状態を遷移している間は、OS等の情報処理装置の制御ソフトの再構築、交換等の処理はできない。OS等の情報処理装置の制御ソフトの再構築、交換等の処理は、情報処理装置の内部状態を初期状態S1に遷移させ、そこから動作状態S2に遷移する間に行う。
初期状態S1とは、情報処理装置の製造直後やOS等の情報処理装置の制御ソフトを情報処理装置上に再構築する場合の状態である。
動作状態S2とは、情報処理装置が情報処理を行える状態であり、電力は情報処理装置の全ての電子回路に供給されている状態を指す。
仮眠状態S3とは、内部記憶装置や表示メモリ等の揮発性記憶素子とその記憶維持に必要な制御回路にのみ電力を供給し、内部情報の記憶に関係しない電子回路への電力供給を停止している状態を指す。図3にこの状態を示す。図3では模式的に、電力供給を停止している部分にハッチングを付して示しており、内部記憶装置のデータ10と、LSI内部情報11と、表示メモリのデータ101と、電力供給制御部3が有効なことを示している。電力供給制御部3は、情報処理装置本体電子回路1に供給する電力の大きさが異なる以外は、動作状態S2と同じである。
冬眠状態S4とは、内部記憶装置のデータ10と、LSI内部情報11と、表示メモリのデータ101といった揮発性の情報を、不揮発性の外部記憶装置2のそれぞれの格納領域21,22,211に格納し、電力は電力供給制御部3の外部電力検出部手段311と、起動/停止制御部312にのみ供給されている状態である。この状態を図4に示す。図4では模式的に電力供給を停止している部分にハッチングを付しており、冬眠状態S4では外部記憶装置2への電力も切断されているが、不揮発性の記憶装置であるため、格納してある各情報が有効であることを示している。
情報処理装置は、製造直後は初期状態S1にあり、使用者が操作した起動/停止スイッチ313により、電力が供給され、動作状態S2へ遷移する(T7)。
初期状態S1と他の3状態は、OS等の情報処理装置の制御ソフトが起動したか否かにより分けられる。この初期状態S1では、情報処理装置の状態を記憶する不揮発性の記憶素子12に情報が書き込まれていない。通常な情報処理装置の電源を投入し、使用者が使用できるようになるまでの立ち上げ期間が、初期状態S1から動作状態S2への遷移時間である。動作状態S2に遷移すると、情報処理装置の状態を記憶する不揮発性の記憶素子12に、現在の状態が動作状態S2であることと、以前の状態が初期状態S1であったことを示す識別情報を書き込む。
動作状態S2から、仮眠状態S3への遷移は、外部からの電力供給がある場合の、使用者の操作する起動/停止スイッチで起きる(T1)。
動作状態S2から、冬眠状態S4への遷移は、内部の電力蓄積手段32の電力を使い、外部からの電力供給が無い場合の、使用者の操作する起動/停止スイッチ313と、内部の電力蓄積手段32の蓄積していた電力が減少し、動作状態S2の維持が不可能と判断したときに起きる(T2)。
つまり、動作状態S2に遷移すると、使用者の操作する起動/停止スイッチ313では、仮眠状態S3もしくは、冬眠状態S4にしか遷移しなくなる。外部から電力が供給されている場合は、動作状態S2から仮眠状態S3に遷移する(T1)。このとき、情報処理装置の状態を記憶する不揮発性の記憶素子12に、現在の状態が仮眠状態S3であることと、以前の状態が動作状態S2であったことを示す識別情報を書き込む。
また、動作状態S2から仮眠状態S4へ遷移する際に、内部記憶装置のデータ10、LSI内部情報11、表示メモリのデータ101といった揮発性の情報を、不揮発性の外部記憶装置2のそれぞれの格納領域21,22,211に格納する処理を行なっておいても良い。
内部バッテリ等の電力蓄積手段32の電力で動作し、外部から電力が供給されてない場合は、仮眠状態S3での電力消費をさけるため、動作状態S2から冬眠状態S4へ遷移する(T2)。このとき、情報処理装置の状態を記憶する不揮発性の記憶素子12に、現在の状態が冬眠状態S4であることと、以前の状態が動作状態S2であったことを示す識別情報を書き込む。
OS等の情報処理装置の制御ソフトの入れ替えや更新等で、情報処理装置を初期状態S1へ移行する場合は、動作状態S2から初期状態S1へ遷移する(T8)。この遷移は、情報処理装置の状態を記憶する不揮発性の記憶素子12の情報を無効にしてしまう処理により実現できる。
仮眠状態S3にある情報処理装置が、使用者の操作する起動/停止スイッチ313の変化を検出すると、動作状態S2に遷移する(T6)。このとき、情報処理装置の状態を記憶する不揮発性の記憶素子12に、現在の状態が動作状態S2であることと、以前の状態が仮眠状態S3であったことを示す識別情報を書き込む。
仮眠状態S3にある情報処理装置において、外部からの電力供給が断たれると、内部バッテリ等の電力蓄積手段32の電力を使用し、冬眠状態に遷移する(T3)。このとき、情報処理装置の状態を記憶する不揮発性の記憶素子12に、現在の状態が冬眠状態S4であることと、以前の状態が仮眠状態S3であったことを示す識別情報を書き込む。このときの電力蓄積手段32の電力の使用は、揮発性の情報を外部記憶装置2に格納する処理と、状態遷移情報を不揮発性の記憶素子12に書き込む処理が終了するまでである。
また、仮眠状態S3が、ある定められた時間を越えて、変化しなかったら、冬眠状態S4へ遷移する(T9)。このとき、情報処理装置の状態を記憶する不揮発性の記憶素子12に、現在の状態が冬眠状態S4であることと、以前の状態が仮眠状態S3であったことを示す識別情報を書き込む。これにより、長時間使用しない情報処理装置の消費電力を削減できる。
冬眠状態S4にある情報処理装置が、外部からの電力供給を検出すると、仮眠状態S3に遷移する(T5)。このとき、情報処理装置の状態を記憶する不揮発性の記憶素子12に、現在の状態が仮眠状態S3であることと、以前の状態が冬眠状態S4であったことを示す識別情報を書き込む。
冬眠状態S4にある情報処理装置が、使用者の操作する起動/停止スイッチ313の変化を検出すると、外部からの電力供給があれば外部電力を、外部からの電力供給が無ければ、内部の電力蓄積手段32の電力を用い、動作状態S2へ遷移する(T4)。このとき、情報処理装置の状態を記憶する不揮発性の記憶素子12に、現在の状態が動作状態S2であることと、以前の状態が冬眠状態S4であったことを示す識別情報を書き込む。
冬眠状態S4から仮眠状態S3に遷移した後に、外部からの電力供給が断たれて冬眠状態S4に遷移する場合に、内部記憶装置のデータ10、LSI内部情報11、表示メモリのデータ101は更新されていないため、これら揮発性の情報を外部記憶装置2に格納する処理は行わずに冬眠状態S4に遷移する(T3)。これは、仮眠状態S3に遷移した後に、動作状態S2に遷移した情報が、情報処理装置の状態を記憶する不揮発性の記憶素子12に記録されてないことで識別する。
例外的な遷移として、仮眠状態S3での記憶素子のソフトエラーや、冬眠状態S4で外部記憶装置でのデータ破損等の発生により、正常に状態遷移を行えない場合は、強制的に初期状態に遷移させる(T10)。
電源回路31は、起動/停止制御部312が起動/停止スイッチ313の変化を検出した場合と、外部電力検出手段311が外部からの電力供給の変化を検出した場合に、電力供給線42を用いて、情報処理装置本体電子回路1に電力を供給する。この時の使用電力は、外部からの供給電力または内部の電力蓄積手段32の電力を電力切替手段314で選択して使用する。
外部電力検出手段311と起動/停止制御部312は、内部の電力蓄積手段32の電力または、外部からの供給電力のどちらか一方が供給されていれば動作可能な構成にする。
電力供給を受けた情報処理装置本体電子回路1は、情報処理装置の状態を記憶する不揮発性の記憶素子12の情報と、電源回路状態出力線43,44の状態を調べ、遷移すべき内部状態を決定し、必要な処理を行う。
このときの処理とは、動作状態S2から仮眠状態S3への遷移では、内部記憶装置や表示メモリ等の揮発性記憶素子とその記憶維持に必要な制御回路にのみ電力を供給し、内部情報の記憶に関係しない電子回路への電力供給を停止する処理である。
動作状態S2または仮眠状態S3から冬眠状態S4への遷移では、内部記憶装置のデータ10、LSI内部情報11、表示メモリのデータ101といった揮発性の情報を、不揮発性の外部記憶装置2のそれぞれの格納領域21,22,211に格納し、電力切断信号44を用いて、情報処理装置本体電子回路1に対する電力供給を停止する処理である。
仮眠状態S3から動作状態S2への遷移では、情報処理装置本体電子回路1全てに電力を供給し、使用者が利用可能な状態にする処理である。
冬眠状態S4から仮眠状態S3への遷移では、不揮発性の外部記憶装置2のそれぞれの格納領域21,22,211に格納していた、情報を内部記憶装置や表示メモリ等に復元する処理である。
冬眠状態S4から動作状態S2への遷移では、不揮発性の外部記憶装置2のそれぞれの格納領域21,22,211に格納していた、情報を内部記憶装置や表示メモリ等に復元し、情報処理装置本体電子回路1全てに電力を供給し、使用者が利用可能な状態にする処理である。
これにより、外部からの電力供給が受けられる場合は、基本的に情報処理装置は仮眠状態S3にあるため、使用者が操作する起動/停止スイッチ313よる起動から使用可能となるまでの待ち時間が短縮され、使い勝手の良い情報処理装置を実現できる。
以下、本発明の第2の実施の形態を図5〜図15を用いて説明する。
図5は、本発明の第2の実施の形態にかかる情報処理装置の外観を模式的に示した外観斜視図である。
情報処理装置5は、CPU、記憶装置などを含む本体部50と、情報入力手段531と、画面表示部58とから構成される。本体部50には、動作中断スイッチ533と、外部電力供給操作部574とが設けられ、電力供給線45を介して外部から電力が供給される。外部電力供給操作部574は、外部からの電力を供給するか、遮断するかを決定する機械的なスイッチで、情報処理装置使用者は通常このスイッチをオンにしたままにしておく。情報処理装置5の動作を中断して仮眠状態S3へと移行するための作業中断スイッチ533は、作業中断操作部にあり、これは本体部50への割込み信号を発生する。仮眠状態S3から動作状態S2へは、動作中断スイッチ533または情報入力手段531からの入力により移行する。
図6は、情報処理装置5の構造を模式的に示した機能ブロック図である。この実施の形態は、動作中断時の状態に復帰する機能と、何らかの原因により、動作中断時の状態に復帰することに失敗した場合か、あるいは使用者の指示により起動時の状態へ復帰する機能とを備えている。
本発明の第2の実施の形態にかかる情報処理装置5は、少なくとも情報処理装置本体電子回路50と、不揮発性記憶装置55と、電源部57を備えている。情報処理装置本体電子回路50は、記憶装置制御部51と、揮発性記憶装置52と、動作中断スイッチ/情報入力手段53とを備えている。揮発性記憶装置52は、主記憶装置521と、表示用メモリ522とを備え、主記憶装置521にはデバイス内部情報5211が格納されている。
不揮発性記憶装置55は、内部に揮発性記憶装置内のデータを格納する領域552と、起動処理時に参照するフラグを格納する起動フラグ記憶領域551を備えている。
また、不揮発性記憶装置55の揮発性記憶装置内のデータを格納する領域552は、動作中断時の情報を格納するための領域、すなわち、作業終了時のハイバネーションファイル領域5521と、情報処理装置のOSが起動した時点での情報を格納するための領域、すなわちOS起動時のハイバネーションファイル領域5522が用意されている。この明細書では、不揮発性記憶装置内へ退避した情報を記録した部分をハイバネーションファイルと呼ぶ。
電源部57は、少なくとも揮発性記憶装置およびその内容を保持するための部分への電力供給線421と、その他の部分への電力供給線422の2系統を備えている。揮発性記憶装置52およびその内容を保持するための部分以外への電力供給線422には、情報処理装置本体電子回路50より制御が可能な電力供給遮断部571を備えている。
図7を用いて情報処理装置5のより詳細な機能ブロック構成を説明する。情報処理装置5は、情報処理装置本体電子回路50と、不揮発性記憶装置55と、電源部57と、画面表示部58とから構成される。情報処理装置本体電子回路50は、記憶装置制御部51と、揮発性記憶装置52と、動作中断スイッチ/情報入力手段53とから構成される。
情報処理装置本体電子回路50内の記憶装置制御部51は、CPU511と、BIOS ROM512と、メモリコントローラ,バスコントローラの機能を持つチップセット513と、Super I/O,キーボードコントローラ,割込みコントローラの機能を持つチップセット514と、VGAコントローラ515とで構成されている。
揮発性記憶装置部52は、主記憶として働くDRAM521と、表示用メモリとして働くVRAM522で構成されており、主記憶521には、デバイス内部情報が格納されるデバイス内部情報格納領域5211が設けられている。
動作中断スイッチ/情報入力手段53は、キーボード531と、チャタリング防止回路532と、通常ハイに設定されている電圧をGNDレベルへ落とす動作中断スイッチ533とからなっている。
不揮発性記憶装置55は、ハードディスク553およびRTC/CMOSメモリ554で構成される。動作中断時のハイバネーションファイル領域およびOS起動時のハイバネーションファイル領域5521をハードディスク553に設ける。起動フラグ記憶領域551をRTC/CMOSメモリ554に設ける。
電源部57は、FETからなる電力供給遮断部571と、電圧変換部として働くDC/DCコンバータ572と、整流部として働くAC/DCコンバータ573と、外部電力供給操作スイッチとして働くメカニカルスイッチ574とを備える。電力供給線421,422のうち、揮発性記憶装置52およびその内容を保持するため以外の電力供給線422は、DC/DCコンバータ572から電力供給遮断部(FET)571を介して記憶装置制御部51、不揮発性記憶装置55のハードディスク553、画面表示装置58の各部へ接続される。
図8を用いて、この実施の形態がとりうる状態とその遷移条件を説明する。この実施の形態では、停止状態S11と、動作状態S2と、仮眠状態S3と、冬眠状態S4と、ハイバネーションファイル作成状態S5とを有している。
停止状態S11とは、情報処理装置5に外部電源が供給されておらず、また外部電力供給操作スイッチ574がオフにある状態である。これは情報処理装置5に初めて電源を投入するときの状態で、外部電力を供給し、スイッチ574をオンにすることにより、起動処理を開始する。起動処理後、OS起動時のハイバネーションファイルを作成し、動作状態S2へと遷移する(T11)。
動作状態S2とは、情報処理装置5を使用して作業を行える状態である。使用者が作業を終了、あるいは中断する場合、動作中断スイッチ53をオンにする。これにより、情報処理装置5の状態は、ハイバネーションファイル作成状態S5へと遷移する(T12)。
ハイバネーションファイル作成状態(S5)とは、動作中断時の揮発性記憶装置52内の情報を不揮発性記憶装置55へ退避している状態である。退避中にキー入力など何か外部からの操作があった場合、退避作業を中断し、動作状態S2へと遷移する(T13)。揮発性記憶装置52内のすべての情報を退避し、ハイバネーションファイルの作成が完了すると、不揮発性記憶装置55の起動フラグ記憶領域551へハイバネーション情報を保存した後、仮眠状態S3へと遷移する(T15)。使用者の指示により、OS起動ハイバネーションが優先されている場合には退避処理を行わず、起動フラグ記憶領域551へハイバネーション情報を保存した後、仮眠状態S3へと遷移する。
仮眠状態S3とは、揮発性記憶装置52関連の部分への電力供給を停止せず、画面表示部58など動作中断時の状態に復帰する機能とは無関係の部分への電力を切断している状態である。
使用者はこの状態を通常の電源オフの状態として扱う。揮発性記憶装置52内には、動作中断スイッチ533をオンにした時点の情報がそのまま維持されており、キーボード531入力等外部からの操作があれば、直ちに切断していた部分への電力の供給を再開し、動作状態S2へと遷移し、作業を再開することができる(T14)。
仮眠状態S3中に情報処理装置5への外部電力供給が停止した場合、情報処理装置5は冬眠状態S4へと遷移する(T16)。冬眠状態S4は、停止状態S11とは異なり、外部電力供給操作スイッチ574はオンの状態のままであり、不揮発性記憶装置55内にはハイバネーションファイルが存在している。また、起動フラグも停止状態のときとは異なった値になっている。
冬眠状態S4中に外部からの電力供給が再開された場合、情報処理装置5は直ちに起動処理を開始し、仮眠状態S3へと遷移する(T17)。この起動処理は、通常、ハイバネーション作成状態S5で退避された不揮発性記憶装置55内の動作中断時の情報を、揮発性記憶装置52へと復帰させるが、これに失敗した場合、もしくはOS起動時の再現が優先されている場合は停止状態S11から動作状態S2への遷移(T11)で作成されたハイバネーションファイルを復帰する。
図9のフローチャートを用いて、停止状態S11/冬眠状態S5からの遷移(T11),(T17)を実現する起動処理を説明する。なお、この起動処理を行うプログラムはBIOS ROM512内に存在する。
まず、停止状態S11からの起動の流れ(遷移(T11))を説明する。起動処理が開始されると、CPU511はBIOS ROM512に割り当てられたアドレスをアクセスし、ここに書かれているプログラムに従ってまず情報処理装置5内の主記憶の容量の認識やハードディスクのチェックなど各デバイスのチェックと初期化処理を行う(ST1)。
次に、RTC/CMOSメモリ551に記録されている起動フラグFを参照し、停止状態S11からの起動であるか、冬眠状態S4からの起動であるか、あるいはリブートであるかを判断する(ST2)。停止状態S11からの起動時は、起動フラグFは初期値“0”となっており、起動フラグのチェック(ST2)では、起動フラグFが“0”または“2”のときはステップST3へ、起動フラグFが“0”および“2”以外のときはステップST5へと分岐する。
図10に起動フラグFの取りうる値とその機能を示す。F=0は、初期値または停止の状態である。F=1は、通常のハイバネーション状態を示し、ハイバネーションファイルがハードディスクに格納されて正常に終了した状態を示している。F=2は、OS起動ハイバネーションであり、OS起動時のハイバネーションファイルを用いてOSを起動する状態を示している。F=3は、ハイバネーションファイル作成開始状態を示し、図8の遷移(T12)状態であり、正常終了時にはF=1とされる。F=4は、ハイバネーションファイル復帰状態を示し、図8の遷移(T14)状態である。
ステップST2において、起動フラグFが“0”または“2”ときは、起動フラグFが“0”であるか“2”であるかを判定し(ST3)、起動フラグFが“0”のときは、前回作業終了時のハイバネーションファイル領域の初期化を行い(ST4)、続いてOS起動時のハイバネーションファイル領域の初期化(ST10)を行った後、OSの起動処理にはいる(ST11)。OSが起動した時点で、OS起動時の揮発性記憶装置52内の情報を不揮発性記憶装置55内のステップST4で初期化しておいた領域へと退避し、OS起動時のハイバネーションファイルを作成する(ST12)。このとき、OSが起動した時点で処理はOS側へ移るが、起動時点でシステムBIOSプログラムのコールができないOSの場合は、ある特定のハードウエア割込みで処理をシステムBIOS側へ移行してもよい。ハイバネーションファイル完成後、エラーフラグをチェックする(ST13)が、ここまでの処理でフラグが立つことはなく、動作状態S2へと移行する(ST14)。
ステップST3において、起動フラグFが“2”のときは、OS起動時のハイバネーションファイルをチェックし(ST8)、ファイルに異常があるときは、エラーフラグをセットし(ST9)、OS起動時のハイバネーションファイル領域を初期化する(ST10)。以下、起動フラグFが“0”のときと同様な処理を行なう。
次に、冬眠状態S4からの起動の場合(遷移(T17))を説明する。各デバイスをチェックした(ST1)後、通常のハイバネーションへと分岐する場合と、ユーザーがOS起動時のハイバネーションファイルを優先する選択をしていればOS起動ハイバネーションを行う場合とに別れる。ステップST2において起動フラグFをチェックした結果、起動フラグFが“0”または“2”以外の場合には、起動フラグFが“1”であるかどうかをチェックする(ST5)。ステップST5のチェックの結果、起動フラグFが“1”以外であるときには、エラーフラグをセットし(ST6)、前回作業終了時のハイバーネーションファイル領域を初期化した(ST7)後、前述のステップST8へ移行する。
通常のハイバネーションを行う場合は、起動フラグFは“1”となっており、最初の起動フラグをチェックして(ST2)、起動フラグFが“0”または“2”以外へと分岐し、さらに(ST5)の起動フラグチェックでハイバネーションファイルの保存状況をチェックする。F=1の場合は正常に前回作業終了時のハイバネーションファイルが作成されているので、ステップST15にてファイルチェックを行う。正常の場合は、起動フラグF=4をセット(ST16)し、ハイバネーションファイルを復帰するという情報を保存する。ステップST17でハイバネーションファイルを揮発性記憶装置52へと復帰し、その後エラーフラグも立っていないので仮眠状態S3へと遷移する(ST20)。
ファイルが破損した場合や、メモリの増設等、情報処理装置のハードウエア構成が変更されているなど、何らかの理由によりステップST15でファイルが異常であると判断された場合、もしくはステップST5の起動フラグチェックでF=1以外の値が検出された場合にはエラーフラグをセットし(ST6)、改めて前回作業終了時のハイバネーションファイル領域を初期化する(ST7)。なお、エラーフラグはエラー無しで0、有りで1の値を取り、起動フラグ記憶領域のような不揮発性記憶装置ではなく、揮発性メモリの主記憶上に設定される起動処理プログラムの変数の一つである。その後、OS起動時のハイバネーションファイルチェック(ST8)を行う。正常の場合はハイバネーションファイルを揮発性記憶装置へと復帰し、エラーメッセージを表示(ST19)、その後仮眠状態S3へと遷移する。
ステップST8の判定でも異常であると判断された場合は、エラーフラグをセット(ST9)(ただしこの時はステップST6ですでにエラーフラグが立っているので実際には値は変わらない)し、改めてOS起動時のハイバネーションファイル領域を初期化(ST10)した後、停止状態S11からの起動と同様にOSの起動処理を行う(ST11)。OSが起動した時点で揮発性記憶装置内の情報を不揮発性記憶装置内の初期化しておいた領域へと退避、OS起動時のハイバネーションファイルを作成する(ST12)。
ここでも停止状態S11からの起動と同様に、OSが起動した時点でシステムBIOSプログラムのコールができないOSの場合は、ある特定のハードウエア割込みで処理をシステムBIOS側へ移行してもよい。このとき、OSが起動した時点で処理はOS側へ移るが、起動時点でシステムBIOSプログラムのコールができないOSの場合は、ある特定のハードウエア割込みで処理をシステムBIOS側へ移行してもよい。
その後、エラーフラグチェック(ST13)を行い、ステップST6、ステップST9でエラーフラグが立っているため、エラーメッセージを表示し(ST19)、仮眠状態へと遷移する(ST20)。
ユーザーがOS起動時のハイバネーションファイルを優先していた場合は、最初の起動フラグチェック(ST2)でF=2へと分岐、次の起動フラグチェック(ST3)でもF=2へと分岐する。その結果、前回作業終了時のハイバネーションに関する処理をとばしてすぐにOS起動時のハイバネーションファイルチェック(ST8)まで進む。その後は同様の処理を行う。OS起動時のハイバネーションファイルを揮発性記憶装置へ復帰した場合は、起動フラグの値は変更しない。
情報処理装置を再起動する場合は、不揮発性記憶装置の起動フラグFを初期値0にセットし、停止状態S11からの起動処理を再現することで実現する。
ハイバネーションファイル作成状態S5中のフローは図11の様になる。この処理を行うプログラムは、起動処理を行うプログラムと同様にBIOS ROM512内に存在する。動作状態S2中に動作中断ボタン533を押すと、この処理を開始する(遷移(T12))。
まず、現在、不揮発性記憶装置55へアクセスを行っている全てのプログラムについて、その処理を終了させる(ST31)。次に、キーボード割込みと、動作中断スイッチ割り込みのベクタテーブルにあるアドレスをハイバネーションファイル作成を中断し、動作状態へ戻るプログラムが配置されているアドレスに書き換える(ST32)。次にOS起動時のハイバネーションファイルを優先するかどうかを判定する(ST33)。起動フラグFが“2”であれば、現在の動作中断時のハイバネーションファイルを作成せず、すぐに仮眠状態S3へ移行する(遷移(T15))。ステップST33の判定で起動フラグFが“2”以外であれば、起動フラグF=3をセットし(ST34)、ハイバネーションファイル作成開始の情報を起動フラグ領域へ保存する。その後、現在の揮発性記憶装置の内容を不揮発性記憶装置へ退避し、動作中断時のハイバネーションファイルを作成する(ST35)。
キーボード割込み、動作中断スイッチ割込みが発生せず、ハイバネーションファイルの作成が完了すると、起動フラグF=1をセットして起動フラグ記憶領域へその情報を記録し(ST36)、仮眠状態S3へと移行する(ST37)(遷移(T15))。
もし、ステップST32以降の処理中にキーボード割込み信号あるいは動作中断スイッチからの割込み信号を検出した場合は、書き換えたベクタアドレスに従ってステップST38へと分岐する。ここで書き換えたベクタアドレスをもとのアドレスに直し(ST38)、ハイバネーションファイルの作成を中断して動作状態S2へと移行する(遷移(T13))(ST39)。
メモリマップを模式的に表した図12を用いて、この実施の形態におけるメモリマップを説明する。動作中断ボタンが押されると、割込みベクタテーブル(メモリの先頭アドレス近くにある各割込みベクタアドレスがかかれている部分)に記述されている動作中断ボタン割込みアドレスADDR2に従って、ROM領域内のハイバネーションファイル作成状態プログラムの処理が開始される。
ステップST32によって書き換えられる割込みベクタテーブルのアドレスは、この動作中断ボタン割込みアドレスADDR2と、キーボード割込みアドレスADDR1である。キーボード割込みアドレスADDR1は、ROM領域内のキーコード取得プログラムの先頭アドレスを示している。アドレスADDR1,ADDR2は、両方ともハイバネーションファイル作成状態中断処理プログラムの先頭アドレスADDR3に書き換えられる。これにより、ハイバネーションファイル作成状態中にキーボードあるいは動作中断スイッチが押され、割り込みが発生した場合は処理はADDR3へとぶ。そこからの処理でステップST38の処理によって書き換えた割込みベクタアドレスを元のADDR1、ADDR2へと戻した後、ハイバネーションファイル作成状態プログラムへの割込みがかかった時点の以前の処理へと戻り、動作状態S2へと移行する。
仮眠状態S3中の処理を図13を用いて説明する。この処理を行うプログラムは、BIOS ROM512内に存在する。仮眠状態S3に遷移後は、情報処理装置は動作中断スイッチ割込みあるいはキーボード割込みの発生待ち状態となる(ST41)。割込みが発生しない限りはステップST41から先へ処理が進むことはない。割込みが発生すると、起動フラグFをチェックしてOS起動ハイバネーションを優先しているかどうかを判定する(ST42)。起動フラグFが“2”すなわちOS起動ハイバネーションであれば、すぐに動作状態S2へと移行する(ST44)(遷移T14)。起動フラグFが“2”でなかった場合は、起動フラグFに“4”すなわちハイバネーションファイル復帰をセットし(ST43)、動作状態S2へと移行する(ST44)。
図14に各状態の遷移と起動フラグFの変化の関係をまとめて模式的に示した。停止状態S11では、起動フラグFの初期値は“0”とされ、起動処理後、動作状態S2へと移行する。このとき、起動フラグFの値は“0”のままである。
動作状態S2では、起動フラグFは使用者の指示によって、OS起動ハイバネーションを優先する場合はF=2へ、再起動する場合はF=0へ書き換えることができる(再起動の場合はそのまま起動処理へ移行する)。動作状態S2では、F=0、2に加え、ハイバネーションファイル復帰後のF=4と、ハイバネーションファイル作成を中断して動作状態S2へ復帰した場合のF=3の4つの値を取りうる。
動作状態S2では、いずれの起動フラグの状態でも、動作中断スイッチ533を押すことでハイバネーションファイル作成状態S5の処理へ移行する。
動作中断スイッチ533が押されると、図11の処理に従って、起動フラグFが“2”の場合はそのまま仮眠状態S3へ、それ以外の場合はまずハイバネーションファイル作成開始時に起動フラグFは“3”となり、ハイバネーションファイル作成状態S5とされ、ハイバネーションファイル作成完了後起動フラグFが“1”とされて、仮眠状態S3へ移行する。
仮眠状態S3では、動作状態S2へと移行する際、起動フラグFが“1”の場合は、起動フラグFを“4”として動作状態S2へ復帰する。起動フラグFが“2”の場合はその値のまま動作状態S2へ復帰する。
冬眠状態S4へ移行する場合は、起動フラグFが“1”または“2”の値はそのまま持ち越される。冬眠状態S4で外部からの電力供給が再開されると、起動フラグFが“1”の通常のハイバネーションの場合は、起動処理がなされ、起動処理後起動フラグFを“4”に設定して仮眠状態S3へ移行し、起動フラグFが“2”のOS起動ハイバネーションの場合は、起動処理がなされ仮眠状態S3へ移行し、起動フラグFが“2”のまま動作状態S2となる。
図15を用いて、消費電力と情報処理装置の各状態の遷移の関係を説明する。この図は、縦軸に消費電力をとり、横軸に時間をとって消費電力と情報処理装置の各状態の遷移の関係をあらわした図である。停止状態S11の時点で消費電力は0である。ここから外部電力の供給を開始し、外部電力供給操作スイッチを入れて起動処理に入った時点で動作状態S2中と同じ消費電力は最大まであがる。動作中断スイッチをオンにし、ハイバネーションファイル作成状態S5時も消費電力は最大のままである。ハイバネーションファイル作成処理後仮眠状態S3になった時点で電力供給を遮断した部分の分消費電力は少なくなる。外部電力の供給が停止すると、当然消費電力は0になり、情報処理装置は冬眠状態S4になる。外部電力の供給が再開すると情報処理装置はただちに冬眠状態S4からの起動処理に入り、この時点で消費電力は最大となる。その後、起動処理の最後に仮眠状態S3へと移行するので消費電力は抑えられ、情報処理装置の状態は動作中断時と同じ状態に戻る。
図16を用いて、本発明の第3の実施の形態を説明する。この実施の形態は、情報処理装置をノート型情報処理装置5´とした場合の実施の形態である。ノート型情報処理装置5´は、本体部50´と、画面表示部58´とから構成される。ノート型情報処理装置5´は、本体部50´と画面表示部58´とをつなぐ可動部の根元付近に動作中断スイッチ533´が配置されており、画面表示部58´を閉じるとこのスイッチが押される。これにより、使用者は作業を中断、終了するさいは画面表示部58´を閉じることでその手順を簡明化でき、また画面表示部58´を開けることで作業再開の動作を完了でき、使い勝手を良くすることができる。